diff --git a/AnimatedSprite-d8e8da79.js b/AnimatedSprite-b9500bfb.js similarity index 98% rename from AnimatedSprite-d8e8da79.js rename to AnimatedSprite-b9500bfb.js index 7f96120a..7e816903 100644 --- a/AnimatedSprite-d8e8da79.js +++ b/AnimatedSprite-b9500bfb.js @@ -1 +1 @@ -import{H as a,s as r,c as h,U as u}from"./ChartManager-0bba2271.js";class n extends a{constructor(t,e=!0){super(t[0]instanceof r?t[0]:t[0].texture),this._textures=null,this._durations=null,this._autoUpdate=e,this._isConnectedToTicker=!1,this.animationSpeed=1,this.loop=!0,this.updateAnchor=!1,this.onComplete=null,this.onFrameChange=null,this.onLoop=null,this._currentTime=0,this._playing=!1,this._previousFrame=null,this.textures=t}stop(){this._playing&&(this._playing=!1,this._autoUpdate&&this._isConnectedToTicker&&(h.shared.remove(this.update,this),this._isConnectedToTicker=!1))}play(){this._playing||(this._playing=!0,this._autoUpdate&&!this._isConnectedToTicker&&(h.shared.add(this.update,this,u.HIGH),this._isConnectedToTicker=!0))}gotoAndStop(t){this.stop(),this.currentFrame=t}gotoAndPlay(t){this.currentFrame=t,this.play()}update(t){if(!this._playing)return;const e=this.animationSpeed*t,s=this.currentFrame;if(this._durations!==null){let i=this._currentTime%1*this._durations[this.currentFrame];for(i+=e/60*1e3;i<0;)this._currentTime--,i+=this._durations[this.currentFrame];const o=Math.sign(this.animationSpeed*t);for(this._currentTime=Math.floor(this._currentTime);i>=this._durations[this.currentFrame];)i-=this._durations[this.currentFrame]*o,this._currentTime+=o;this._currentTime+=i/this._durations[this.currentFrame]}else this._currentTime+=e;this._currentTime<0&&!this.loop?(this.gotoAndStop(0),this.onComplete&&this.onComplete()):this._currentTime>=this._textures.length&&!this.loop?(this.gotoAndStop(this._textures.length-1),this.onComplete&&this.onComplete()):s!==this.currentFrame&&(this.loop&&this.onLoop&&(this.animationSpeed>0&&this.currentFrames)&&this.onLoop(),this.updateTexture())}updateTexture(){const t=this.currentFrame;this._previousFrame!==t&&(this._previousFrame=t,this._texture=this._textures[t],this._textureID=-1,this._textureTrimmedID=-1,this._cachedTint=16777215,this.uvs=this._texture._uvs.uvsFloat32,this.updateAnchor&&this._anchor.copyFrom(this._texture.defaultAnchor),this.onFrameChange&&this.onFrameChange(this.currentFrame))}destroy(t){this.stop(),super.destroy(t),this.onComplete=null,this.onFrameChange=null,this.onLoop=null}static fromFrames(t){const e=[];for(let s=0;sthis.totalFrames-1)throw new Error(`[AnimatedSprite]: Invalid frame index value ${t}, expected to be between 0 and totalFrames ${this.totalFrames}.`);const e=this.currentFrame;this._currentTime=t,e!==this.currentFrame&&this.updateTexture()}get playing(){return this._playing}get autoUpdate(){return this._autoUpdate}set autoUpdate(t){t!==this._autoUpdate&&(this._autoUpdate=t,!this._autoUpdate&&this._isConnectedToTicker?(h.shared.remove(this.update,this),this._isConnectedToTicker=!1):this._autoUpdate&&!this._isConnectedToTicker&&this._playing&&(h.shared.add(this.update,this),this._isConnectedToTicker=!0))}}export{n as A}; +import{H as a,s as r,c as h,U as u}from"./ChartManager-beed98d8.js";class n extends a{constructor(t,e=!0){super(t[0]instanceof r?t[0]:t[0].texture),this._textures=null,this._durations=null,this._autoUpdate=e,this._isConnectedToTicker=!1,this.animationSpeed=1,this.loop=!0,this.updateAnchor=!1,this.onComplete=null,this.onFrameChange=null,this.onLoop=null,this._currentTime=0,this._playing=!1,this._previousFrame=null,this.textures=t}stop(){this._playing&&(this._playing=!1,this._autoUpdate&&this._isConnectedToTicker&&(h.shared.remove(this.update,this),this._isConnectedToTicker=!1))}play(){this._playing||(this._playing=!0,this._autoUpdate&&!this._isConnectedToTicker&&(h.shared.add(this.update,this,u.HIGH),this._isConnectedToTicker=!0))}gotoAndStop(t){this.stop(),this.currentFrame=t}gotoAndPlay(t){this.currentFrame=t,this.play()}update(t){if(!this._playing)return;const e=this.animationSpeed*t,s=this.currentFrame;if(this._durations!==null){let i=this._currentTime%1*this._durations[this.currentFrame];for(i+=e/60*1e3;i<0;)this._currentTime--,i+=this._durations[this.currentFrame];const o=Math.sign(this.animationSpeed*t);for(this._currentTime=Math.floor(this._currentTime);i>=this._durations[this.currentFrame];)i-=this._durations[this.currentFrame]*o,this._currentTime+=o;this._currentTime+=i/this._durations[this.currentFrame]}else this._currentTime+=e;this._currentTime<0&&!this.loop?(this.gotoAndStop(0),this.onComplete&&this.onComplete()):this._currentTime>=this._textures.length&&!this.loop?(this.gotoAndStop(this._textures.length-1),this.onComplete&&this.onComplete()):s!==this.currentFrame&&(this.loop&&this.onLoop&&(this.animationSpeed>0&&this.currentFrames)&&this.onLoop(),this.updateTexture())}updateTexture(){const t=this.currentFrame;this._previousFrame!==t&&(this._previousFrame=t,this._texture=this._textures[t],this._textureID=-1,this._textureTrimmedID=-1,this._cachedTint=16777215,this.uvs=this._texture._uvs.uvsFloat32,this.updateAnchor&&this._anchor.copyFrom(this._texture.defaultAnchor),this.onFrameChange&&this.onFrameChange(this.currentFrame))}destroy(t){this.stop(),super.destroy(t),this.onComplete=null,this.onFrameChange=null,this.onLoop=null}static fromFrames(t){const e=[];for(let s=0;sthis.totalFrames-1)throw new Error(`[AnimatedSprite]: Invalid frame index value ${t}, expected to be between 0 and totalFrames ${this.totalFrames}.`);const e=this.currentFrame;this._currentTime=t,e!==this.currentFrame&&this.updateTexture()}get playing(){return this._playing}get autoUpdate(){return this._autoUpdate}set autoUpdate(t){t!==this._autoUpdate&&(this._autoUpdate=t,!this._autoUpdate&&this._isConnectedToTicker?(h.shared.remove(this.update,this),this._isConnectedToTicker=!1):this._autoUpdate&&!this._isConnectedToTicker&&this._playing&&(h.shared.add(this.update,this),this._isConnectedToTicker=!0))}}export{n as A}; diff --git a/ChartManager-0bba2271.js b/ChartManager-beed98d8.js similarity index 97% rename from ChartManager-0bba2271.js rename to ChartManager-beed98d8.js index 80ba9490..dc07cc41 100644 --- a/ChartManager-0bba2271.js +++ b/ChartManager-beed98d8.js @@ -1144,7 +1144,7 @@ void main(void)\r font-weight: ${t.weight}; font-style: ${t.style}; font-display: ${t.display}; - }`,this._stylesheet)}get stylesheet(){return this._stylesheet}set stylesheet(e){this._stylesheet!==e&&(this._stylesheet=e,this.styleID++)}normalizeColor(e){return Array.isArray(e)&&(e=Hb(e)),typeof e=="number"?Ub(e):e}dropShadowToCSS(){let e=this.normalizeColor(this.dropShadowColor);const t=this.dropShadowAlpha,i=Math.round(Math.cos(this.dropShadowAngle)*this.dropShadowDistance),s=Math.round(Math.sin(this.dropShadowAngle)*this.dropShadowDistance);e.startsWith("#")&&t<1&&(e+=(t*255|0).toString(16).padStart(2,"0"));const n=`${i}px ${s}px`;return this.dropShadowBlur>0?`text-shadow: ${n} ${this.dropShadowBlur}px ${e}`:`text-shadow: ${n} ${e}`}reset(){Object.assign(this,Vs.defaultOptions)}onBeforeDraw(){const{fontsDirty:e}=this;return this.fontsDirty=!1,this.isSafari&&this._fonts.length>0&&e?new Promise(t=>setTimeout(t,100)):Promise.resolve()}get isSafari(){const{userAgent:e}=ue.ADAPTER.getNavigator();return/^((?!chrome|android).)*safari/i.test(e)}set fillGradientStops(e){console.warn("[HTMLTextStyle] fillGradientStops is not supported by HTMLText")}get fillGradientStops(){return super.fillGradientStops}set fillGradientType(e){console.warn("[HTMLTextStyle] fillGradientType is not supported by HTMLText")}get fillGradientType(){return super.fillGradientType}set miterLimit(e){console.warn("[HTMLTextStyle] miterLimit is not supported by HTMLText")}get miterLimit(){return super.miterLimit}set trim(e){console.warn("[HTMLTextStyle] trim is not supported by HTMLText")}get trim(){return super.trim}set textBaseline(e){console.warn("[HTMLTextStyle] textBaseline is not supported by HTMLText")}get textBaseline(){return super.textBaseline}set leading(e){console.warn("[HTMLTextStyle] leading is not supported by HTMLText")}get leading(){return super.leading}set lineJoin(e){console.warn("[HTMLTextStyle] lineJoin is not supported by HTMLText")}get lineJoin(){return super.lineJoin}};Bc.availableFonts={},Bc.defaultOptions={align:"left",breakWords:!1,dropShadow:!1,dropShadowAlpha:1,dropShadowAngle:Math.PI/6,dropShadowBlur:0,dropShadowColor:"black",dropShadowDistance:5,fill:"black",fontFamily:"Arial",fontSize:26,fontStyle:"normal",fontVariant:"normal",fontWeight:"normal",letterSpacing:0,lineHeight:0,padding:0,stroke:"black",strokeThickness:0,whiteSpace:"normal",wordWrap:!1,wordWrapWidth:100};let fh=Bc;const Qa=class Ws extends Oe{constructor(e="",t={}){super(ie.EMPTY),this._text=null,this._style=null,this._autoResolution=!0,this.localStyleID=-1,this.dirty=!1,this._updateID=0,this.ownsStyle=!1;const i=new Image,s=ie.from(i,{scaleMode:ue.SCALE_MODE,resourceOptions:{autoLoad:!1}});s.orig=new ke,s.trim=new ke,this.texture=s;const n="http://www.w3.org/2000/svg",a="http://www.w3.org/1999/xhtml",o=document.createElementNS(n,"svg"),l=document.createElementNS(n,"foreignObject"),c=document.createElementNS(a,"div"),d=document.createElementNS(a,"style");l.setAttribute("width","10000"),l.setAttribute("height","10000"),l.style.overflow="hidden",o.appendChild(l),this.maxWidth=Ws.defaultMaxWidth,this.maxHeight=Ws.defaultMaxHeight,this._domElement=c,this._styleElement=d,this._svgRoot=o,this._foreignObject=l,this._foreignObject.appendChild(d),this._foreignObject.appendChild(c),this._image=i,this._loadImage=new Image,this._autoResolution=Ws.defaultAutoResolution,this._resolution=Ws.defaultResolution??ue.RESOLUTION,this.text=e,this.style=t}measureText(e){const{text:t,style:i,resolution:s}=Object.assign({text:this._text,style:this._style,resolution:this._resolution},e);Object.assign(this._domElement,{innerHTML:t,style:i.toCSS(s)}),this._styleElement.textContent=i.toGlobalCSS(),document.body.appendChild(this._svgRoot);const n=this._domElement.getBoundingClientRect();this._svgRoot.remove();const{width:a,height:o}=n;(a>this.maxWidth||o>this.maxHeight)&&console.warn("[HTMLText] Large expanse of text, increase HTMLText.maxWidth or HTMLText.maxHeight property.");const l=Math.min(this.maxWidth,Math.ceil(a)),c=Math.min(this.maxHeight,Math.ceil(o));return this._svgRoot.setAttribute("width",l.toString()),this._svgRoot.setAttribute("height",c.toString()),t!==this._text&&(this._domElement.innerHTML=this._text),i!==this._style&&(Object.assign(this._domElement,{style:this._style?.toCSS(s)}),this._styleElement.textContent=this._style?.toGlobalCSS()),{width:l+i.padding*2,height:c+i.padding*2}}async updateText(e=!0){const{style:t,_image:i,_loadImage:s}=this;if(this.localStyleID!==t.styleID&&(this.dirty=!0,this.localStyleID=t.styleID),!this.dirty&&e)return;const{width:n,height:a}=this.measureText();i.width=s.width=Math.ceil(Math.max(1,n)),i.height=s.height=Math.ceil(Math.max(1,a)),this._updateID++;const o=this._updateID;await new Promise(l=>{s.onload=async()=>{if(o/gi,"
").replace(/
/gi,"
").replace(/ /gi," ")}};Qa.defaultDestroyOptions={texture:!0,children:!1,baseTexture:!0},Qa.defaultMaxWidth=2024,Qa.defaultMaxHeight=2024,Qa.defaultAutoResolution=!0;var $t="top",fi="bottom",mi="right",Yt="left",dd="auto",xa=[$t,fi,mi,Yt],un="start",ha="end",Q1="clippingParents",wg="viewport",Ln="popper",eT="reference",wp=xa.reduce(function(r,e){return r.concat([e+"-"+un,e+"-"+ha])},[]),_g=[].concat(xa,[dd]).reduce(function(r,e){return r.concat([e,e+"-"+un,e+"-"+ha])},[]),tT="beforeRead",iT="read",rT="afterRead",sT="beforeMain",nT="main",aT="afterMain",oT="beforeWrite",lT="write",hT="afterWrite",cT=[tT,iT,rT,sT,nT,aT,oT,lT,hT];function Qi(r){return r?(r.nodeName||"").toLowerCase():null}function Jt(r){if(r==null)return window;if(r.toString()!=="[object Window]"){var e=r.ownerDocument;return e&&e.defaultView||window}return r}function Ts(r){var e=Jt(r).Element;return r instanceof e||r instanceof Element}function pi(r){var e=Jt(r).HTMLElement;return r instanceof e||r instanceof HTMLElement}function ud(r){if(typeof ShadowRoot>"u")return!1;var e=Jt(r).ShadowRoot;return r instanceof e||r instanceof ShadowRoot}function dT(r){var e=r.state;Object.keys(e.elements).forEach(function(t){var i=e.styles[t]||{},s=e.attributes[t]||{},n=e.elements[t];!pi(n)||!Qi(n)||(Object.assign(n.style,i),Object.keys(s).forEach(function(a){var o=s[a];o===!1?n.removeAttribute(a):n.setAttribute(a,o===!0?"":o)}))})}function uT(r){var e=r.state,t={popper:{position:e.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(e.elements.popper.style,t.popper),e.styles=t,e.elements.arrow&&Object.assign(e.elements.arrow.style,t.arrow),function(){Object.keys(e.elements).forEach(function(i){var s=e.elements[i],n=e.attributes[i]||{},a=Object.keys(e.styles.hasOwnProperty(i)?e.styles[i]:t[i]),o=a.reduce(function(l,c){return l[c]="",l},{});!pi(s)||!Qi(s)||(Object.assign(s.style,o),Object.keys(n).forEach(function(l){s.removeAttribute(l)}))})}}const xg={name:"applyStyles",enabled:!0,phase:"write",fn:dT,effect:uT,requires:["computeStyles"]};function qi(r){return r.split("-")[0]}var vs=Math.max,Yo=Math.min,pn=Math.round;function Rc(){var r=navigator.userAgentData;return r!=null&&r.brands&&Array.isArray(r.brands)?r.brands.map(function(e){return e.brand+"/"+e.version}).join(" "):navigator.userAgent}function Tg(){return!/^((?!chrome|android).)*safari/i.test(Rc())}function fn(r,e,t){e===void 0&&(e=!1),t===void 0&&(t=!1);var i=r.getBoundingClientRect(),s=1,n=1;e&&pi(r)&&(s=r.offsetWidth>0&&pn(i.width)/r.offsetWidth||1,n=r.offsetHeight>0&&pn(i.height)/r.offsetHeight||1);var a=Ts(r)?Jt(r):window,o=a.visualViewport,l=!Tg()&&t,c=(i.left+(l&&o?o.offsetLeft:0))/s,d=(i.top+(l&&o?o.offsetTop:0))/n,h=i.width/s,u=i.height/n;return{width:h,height:u,top:d,right:c+h,bottom:d+u,left:c,x:c,y:d}}function pd(r){var e=fn(r),t=r.offsetWidth,i=r.offsetHeight;return Math.abs(e.width-t)<=1&&(t=e.width),Math.abs(e.height-i)<=1&&(i=e.height),{x:r.offsetLeft,y:r.offsetTop,width:t,height:i}}function Eg(r,e){var t=e.getRootNode&&e.getRootNode();if(r.contains(e))return!0;if(t&&ud(t)){var i=e;do{if(i&&r.isSameNode(i))return!0;i=i.parentNode||i.host}while(i)}return!1}function mr(r){return Jt(r).getComputedStyle(r)}function pT(r){return["table","td","th"].indexOf(Qi(r))>=0}function $r(r){return((Ts(r)?r.ownerDocument:r.document)||window.document).documentElement}function pl(r){return Qi(r)==="html"?r:r.assignedSlot||r.parentNode||(ud(r)?r.host:null)||$r(r)}function _p(r){return!pi(r)||mr(r).position==="fixed"?null:r.offsetParent}function fT(r){var e=/firefox/i.test(Rc()),t=/Trident/i.test(Rc());if(t&&pi(r)){var i=mr(r);if(i.position==="fixed")return null}var s=pl(r);for(ud(s)&&(s=s.host);pi(s)&&["html","body"].indexOf(Qi(s))<0;){var n=mr(s);if(n.transform!=="none"||n.perspective!=="none"||n.contain==="paint"||["transform","perspective"].indexOf(n.willChange)!==-1||e&&n.willChange==="filter"||e&&n.filter&&n.filter!=="none")return s;s=s.parentNode}return null}function Ta(r){for(var e=Jt(r),t=_p(r);t&&pT(t)&&mr(t).position==="static";)t=_p(t);return t&&(Qi(t)==="html"||Qi(t)==="body"&&mr(t).position==="static")?e:t||fT(r)||e}function fd(r){return["top","bottom"].indexOf(r)>=0?"x":"y"}function ea(r,e,t){return vs(r,Yo(e,t))}function mT(r,e,t){var i=ea(r,e,t);return i>t?t:i}function Ag(){return{top:0,right:0,bottom:0,left:0}}function Sg(r){return Object.assign({},Ag(),r)}function Cg(r,e){return e.reduce(function(t,i){return t[i]=r,t},{})}var gT=function(e,t){return e=typeof e=="function"?e(Object.assign({},t.rects,{placement:t.placement})):e,Sg(typeof e!="number"?e:Cg(e,xa))};function yT(r){var e,t=r.state,i=r.name,s=r.options,n=t.elements.arrow,a=t.modifiersData.popperOffsets,o=qi(t.placement),l=fd(o),c=[Yt,mi].indexOf(o)>=0,d=c?"height":"width";if(!(!n||!a)){var h=gT(s.padding,t),u=pd(n),p=l==="y"?$t:Yt,f=l==="y"?fi:mi,m=t.rects.reference[d]+t.rects.reference[l]-a[l]-t.rects.popper[d],g=a[l]-t.rects.reference[l],y=Ta(n),w=y?l==="y"?y.clientHeight||0:y.clientWidth||0:0,b=m/2-g/2,v=h[p],E=w-u[d]-h[f],C=w/2-u[d]/2+b,I=ea(v,C,E),L=l;t.modifiersData[i]=(e={},e[L]=I,e.centerOffset=I-C,e)}}function vT(r){var e=r.state,t=r.options,i=t.element,s=i===void 0?"[data-popper-arrow]":i;s!=null&&(typeof s=="string"&&(s=e.elements.popper.querySelector(s),!s)||Eg(e.elements.popper,s)&&(e.elements.arrow=s))}const bT={name:"arrow",enabled:!0,phase:"main",fn:yT,effect:vT,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function mn(r){return r.split("-")[1]}var wT={top:"auto",right:"auto",bottom:"auto",left:"auto"};function _T(r,e){var t=r.x,i=r.y,s=e.devicePixelRatio||1;return{x:pn(t*s)/s||0,y:pn(i*s)/s||0}}function xp(r){var e,t=r.popper,i=r.popperRect,s=r.placement,n=r.variation,a=r.offsets,o=r.position,l=r.gpuAcceleration,c=r.adaptive,d=r.roundOffsets,h=r.isFixed,u=a.x,p=u===void 0?0:u,f=a.y,m=f===void 0?0:f,g=typeof d=="function"?d({x:p,y:m}):{x:p,y:m};p=g.x,m=g.y;var y=a.hasOwnProperty("x"),w=a.hasOwnProperty("y"),b=Yt,v=$t,E=window;if(c){var C=Ta(t),I="clientHeight",L="clientWidth";if(C===Jt(t)&&(C=$r(t),mr(C).position!=="static"&&o==="absolute"&&(I="scrollHeight",L="scrollWidth")),C=C,s===$t||(s===Yt||s===mi)&&n===ha){v=fi;var k=h&&C===E&&E.visualViewport?E.visualViewport.height:C[I];m-=k-i.height,m*=l?1:-1}if(s===Yt||(s===$t||s===fi)&&n===ha){b=mi;var N=h&&C===E&&E.visualViewport?E.visualViewport.width:C[L];p-=N-i.width,p*=l?1:-1}}var G=Object.assign({position:o},c&&wT),A=d===!0?_T({x:p,y:m},Jt(t)):{x:p,y:m};if(p=A.x,m=A.y,l){var S;return Object.assign({},G,(S={},S[v]=w?"0":"",S[b]=y?"0":"",S.transform=(E.devicePixelRatio||1)<=1?"translate("+p+"px, "+m+"px)":"translate3d("+p+"px, "+m+"px, 0)",S))}return Object.assign({},G,(e={},e[v]=w?m+"px":"",e[b]=y?p+"px":"",e.transform="",e))}function xT(r){var e=r.state,t=r.options,i=t.gpuAcceleration,s=i===void 0?!0:i,n=t.adaptive,a=n===void 0?!0:n,o=t.roundOffsets,l=o===void 0?!0:o,c={placement:qi(e.placement),variation:mn(e.placement),popper:e.elements.popper,popperRect:e.rects.popper,gpuAcceleration:s,isFixed:e.options.strategy==="fixed"};e.modifiersData.popperOffsets!=null&&(e.styles.popper=Object.assign({},e.styles.popper,xp(Object.assign({},c,{offsets:e.modifiersData.popperOffsets,position:e.options.strategy,adaptive:a,roundOffsets:l})))),e.modifiersData.arrow!=null&&(e.styles.arrow=Object.assign({},e.styles.arrow,xp(Object.assign({},c,{offsets:e.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:l})))),e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-placement":e.placement})}const TT={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:xT,data:{}};var eo={passive:!0};function ET(r){var e=r.state,t=r.instance,i=r.options,s=i.scroll,n=s===void 0?!0:s,a=i.resize,o=a===void 0?!0:a,l=Jt(e.elements.popper),c=[].concat(e.scrollParents.reference,e.scrollParents.popper);return n&&c.forEach(function(d){d.addEventListener("scroll",t.update,eo)}),o&&l.addEventListener("resize",t.update,eo),function(){n&&c.forEach(function(d){d.removeEventListener("scroll",t.update,eo)}),o&&l.removeEventListener("resize",t.update,eo)}}const AT={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:ET,data:{}};var ST={left:"right",right:"left",bottom:"top",top:"bottom"};function Ao(r){return r.replace(/left|right|bottom|top/g,function(e){return ST[e]})}var CT={start:"end",end:"start"};function Tp(r){return r.replace(/start|end/g,function(e){return CT[e]})}function md(r){var e=Jt(r),t=e.pageXOffset,i=e.pageYOffset;return{scrollLeft:t,scrollTop:i}}function gd(r){return fn($r(r)).left+md(r).scrollLeft}function MT(r,e){var t=Jt(r),i=$r(r),s=t.visualViewport,n=i.clientWidth,a=i.clientHeight,o=0,l=0;if(s){n=s.width,a=s.height;var c=Tg();(c||!c&&e==="fixed")&&(o=s.offsetLeft,l=s.offsetTop)}return{width:n,height:a,x:o+gd(r),y:l}}function kT(r){var e,t=$r(r),i=md(r),s=(e=r.ownerDocument)==null?void 0:e.body,n=vs(t.scrollWidth,t.clientWidth,s?s.scrollWidth:0,s?s.clientWidth:0),a=vs(t.scrollHeight,t.clientHeight,s?s.scrollHeight:0,s?s.clientHeight:0),o=-i.scrollLeft+gd(r),l=-i.scrollTop;return mr(s||t).direction==="rtl"&&(o+=vs(t.clientWidth,s?s.clientWidth:0)-n),{width:n,height:a,x:o,y:l}}function yd(r){var e=mr(r),t=e.overflow,i=e.overflowX,s=e.overflowY;return/auto|scroll|overlay|hidden/.test(t+s+i)}function Mg(r){return["html","body","#document"].indexOf(Qi(r))>=0?r.ownerDocument.body:pi(r)&&yd(r)?r:Mg(pl(r))}function ta(r,e){var t;e===void 0&&(e=[]);var i=Mg(r),s=i===((t=r.ownerDocument)==null?void 0:t.body),n=Jt(i),a=s?[n].concat(n.visualViewport||[],yd(i)?i:[]):i,o=e.concat(a);return s?o:o.concat(ta(pl(a)))}function Lc(r){return Object.assign({},r,{left:r.x,top:r.y,right:r.x+r.width,bottom:r.y+r.height})}function IT(r,e){var t=fn(r,!1,e==="fixed");return t.top=t.top+r.clientTop,t.left=t.left+r.clientLeft,t.bottom=t.top+r.clientHeight,t.right=t.left+r.clientWidth,t.width=r.clientWidth,t.height=r.clientHeight,t.x=t.left,t.y=t.top,t}function Ep(r,e,t){return e===wg?Lc(MT(r,t)):Ts(e)?IT(e,t):Lc(kT($r(r)))}function PT(r){var e=ta(pl(r)),t=["absolute","fixed"].indexOf(mr(r).position)>=0,i=t&&pi(r)?Ta(r):r;return Ts(i)?e.filter(function(s){return Ts(s)&&Eg(s,i)&&Qi(s)!=="body"}):[]}function BT(r,e,t,i){var s=e==="clippingParents"?PT(r):[].concat(e),n=[].concat(s,[t]),a=n[0],o=n.reduce(function(l,c){var d=Ep(r,c,i);return l.top=vs(d.top,l.top),l.right=Yo(d.right,l.right),l.bottom=Yo(d.bottom,l.bottom),l.left=vs(d.left,l.left),l},Ep(r,a,i));return o.width=o.right-o.left,o.height=o.bottom-o.top,o.x=o.left,o.y=o.top,o}function kg(r){var e=r.reference,t=r.element,i=r.placement,s=i?qi(i):null,n=i?mn(i):null,a=e.x+e.width/2-t.width/2,o=e.y+e.height/2-t.height/2,l;switch(s){case $t:l={x:a,y:e.y-t.height};break;case fi:l={x:a,y:e.y+e.height};break;case mi:l={x:e.x+e.width,y:o};break;case Yt:l={x:e.x-t.width,y:o};break;default:l={x:e.x,y:e.y}}var c=s?fd(s):null;if(c!=null){var d=c==="y"?"height":"width";switch(n){case un:l[c]=l[c]-(e[d]/2-t[d]/2);break;case ha:l[c]=l[c]+(e[d]/2-t[d]/2);break}}return l}function ca(r,e){e===void 0&&(e={});var t=e,i=t.placement,s=i===void 0?r.placement:i,n=t.strategy,a=n===void 0?r.strategy:n,o=t.boundary,l=o===void 0?Q1:o,c=t.rootBoundary,d=c===void 0?wg:c,h=t.elementContext,u=h===void 0?Ln:h,p=t.altBoundary,f=p===void 0?!1:p,m=t.padding,g=m===void 0?0:m,y=Sg(typeof g!="number"?g:Cg(g,xa)),w=u===Ln?eT:Ln,b=r.rects.popper,v=r.elements[f?w:u],E=BT(Ts(v)?v:v.contextElement||$r(r.elements.popper),l,d,a),C=fn(r.elements.reference),I=kg({reference:C,element:b,strategy:"absolute",placement:s}),L=Lc(Object.assign({},b,I)),k=u===Ln?L:C,N={top:E.top-k.top+y.top,bottom:k.bottom-E.bottom+y.bottom,left:E.left-k.left+y.left,right:k.right-E.right+y.right},G=r.modifiersData.offset;if(u===Ln&&G){var A=G[s];Object.keys(N).forEach(function(S){var x=[mi,fi].indexOf(S)>=0?1:-1,D=[$t,fi].indexOf(S)>=0?"y":"x";N[S]+=A[D]*x})}return N}function RT(r,e){e===void 0&&(e={});var t=e,i=t.placement,s=t.boundary,n=t.rootBoundary,a=t.padding,o=t.flipVariations,l=t.allowedAutoPlacements,c=l===void 0?_g:l,d=mn(i),h=d?o?wp:wp.filter(function(f){return mn(f)===d}):xa,u=h.filter(function(f){return c.indexOf(f)>=0});u.length===0&&(u=h);var p=u.reduce(function(f,m){return f[m]=ca(r,{placement:m,boundary:s,rootBoundary:n,padding:a})[qi(m)],f},{});return Object.keys(p).sort(function(f,m){return p[f]-p[m]})}function LT(r){if(qi(r)===dd)return[];var e=Ao(r);return[Tp(r),e,Tp(e)]}function DT(r){var e=r.state,t=r.options,i=r.name;if(!e.modifiersData[i]._skip){for(var s=t.mainAxis,n=s===void 0?!0:s,a=t.altAxis,o=a===void 0?!0:a,l=t.fallbackPlacements,c=t.padding,d=t.boundary,h=t.rootBoundary,u=t.altBoundary,p=t.flipVariations,f=p===void 0?!0:p,m=t.allowedAutoPlacements,g=e.options.placement,y=qi(g),w=y===g,b=l||(w||!f?[Ao(g)]:LT(g)),v=[g].concat(b).reduce(function(Q,Z){return Q.concat(qi(Z)===dd?RT(e,{placement:Z,boundary:d,rootBoundary:h,padding:c,flipVariations:f,allowedAutoPlacements:m}):Z)},[]),E=e.rects.reference,C=e.rects.popper,I=new Map,L=!0,k=v[0],N=0;N=0,D=x?"width":"height",$=ca(e,{placement:G,boundary:d,rootBoundary:h,altBoundary:u,padding:c}),R=x?S?mi:Yt:S?fi:$t;E[D]>C[D]&&(R=Ao(R));var O=Ao(R),W=[];if(n&&W.push($[A]<=0),o&&W.push($[R]<=0,$[O]<=0),W.every(function(Q){return Q})){k=G,L=!1;break}I.set(G,W)}if(L)for(var V=f?3:1,F=function(Z){var ye=v.find(function(Ce){var ce=I.get(Ce);if(ce)return ce.slice(0,Z).every(function(fe){return fe})});if(ye)return k=ye,"break"},U=V;U>0;U--){var te=F(U);if(te==="break")break}e.placement!==k&&(e.modifiersData[i]._skip=!0,e.placement=k,e.reset=!0)}}const OT={name:"flip",enabled:!0,phase:"main",fn:DT,requiresIfExists:["offset"],data:{_skip:!1}};function Ap(r,e,t){return t===void 0&&(t={x:0,y:0}),{top:r.top-e.height-t.y,right:r.right-e.width+t.x,bottom:r.bottom-e.height+t.y,left:r.left-e.width-t.x}}function Sp(r){return[$t,mi,fi,Yt].some(function(e){return r[e]>=0})}function FT(r){var e=r.state,t=r.name,i=e.rects.reference,s=e.rects.popper,n=e.modifiersData.preventOverflow,a=ca(e,{elementContext:"reference"}),o=ca(e,{altBoundary:!0}),l=Ap(a,i),c=Ap(o,s,n),d=Sp(l),h=Sp(c);e.modifiersData[t]={referenceClippingOffsets:l,popperEscapeOffsets:c,isReferenceHidden:d,hasPopperEscaped:h},e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-reference-hidden":d,"data-popper-escaped":h})}const NT={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:FT};function UT(r,e,t){var i=qi(r),s=[Yt,$t].indexOf(i)>=0?-1:1,n=typeof t=="function"?t(Object.assign({},e,{placement:r})):t,a=n[0],o=n[1];return a=a||0,o=(o||0)*s,[Yt,mi].indexOf(i)>=0?{x:o,y:a}:{x:a,y:o}}function HT(r){var e=r.state,t=r.options,i=r.name,s=t.offset,n=s===void 0?[0,0]:s,a=_g.reduce(function(d,h){return d[h]=UT(h,e.rects,n),d},{}),o=a[e.placement],l=o.x,c=o.y;e.modifiersData.popperOffsets!=null&&(e.modifiersData.popperOffsets.x+=l,e.modifiersData.popperOffsets.y+=c),e.modifiersData[i]=a}const GT={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:HT};function VT(r){var e=r.state,t=r.name;e.modifiersData[t]=kg({reference:e.rects.reference,element:e.rects.popper,strategy:"absolute",placement:e.placement})}const WT={name:"popperOffsets",enabled:!0,phase:"read",fn:VT,data:{}};function zT(r){return r==="x"?"y":"x"}function jT(r){var e=r.state,t=r.options,i=r.name,s=t.mainAxis,n=s===void 0?!0:s,a=t.altAxis,o=a===void 0?!1:a,l=t.boundary,c=t.rootBoundary,d=t.altBoundary,h=t.padding,u=t.tether,p=u===void 0?!0:u,f=t.tetherOffset,m=f===void 0?0:f,g=ca(e,{boundary:l,rootBoundary:c,padding:h,altBoundary:d}),y=qi(e.placement),w=mn(e.placement),b=!w,v=fd(y),E=zT(v),C=e.modifiersData.popperOffsets,I=e.rects.reference,L=e.rects.popper,k=typeof m=="function"?m(Object.assign({},e.rects,{placement:e.placement})):m,N=typeof k=="number"?{mainAxis:k,altAxis:k}:Object.assign({mainAxis:0,altAxis:0},k),G=e.modifiersData.offset?e.modifiersData.offset[e.placement]:null,A={x:0,y:0};if(C){if(n){var S,x=v==="y"?$t:Yt,D=v==="y"?fi:mi,$=v==="y"?"height":"width",R=C[v],O=R+g[x],W=R-g[D],V=p?-L[$]/2:0,F=w===un?I[$]:L[$],U=w===un?-L[$]:-I[$],te=e.elements.arrow,Q=p&&te?pd(te):{width:0,height:0},Z=e.modifiersData["arrow#persistent"]?e.modifiersData["arrow#persistent"].padding:Ag(),ye=Z[x],Ce=Z[D],ce=ea(0,I[$],Q[$]),fe=b?I[$]/2-V-ce-ye-N.mainAxis:F-ce-ye-N.mainAxis,we=b?-I[$]/2+V+ce+Ce+N.mainAxis:U+ce+Ce+N.mainAxis,le=e.elements.arrow&&Ta(e.elements.arrow),pe=le?v==="y"?le.clientTop||0:le.clientLeft||0:0,be=(S=G?.[v])!=null?S:0,T=R+fe-be-pe,Y=R+we-be,j=ea(p?Yo(O,T):O,R,p?vs(W,Y):W);C[v]=j,A[v]=j-R}if(o){var P,M=v==="x"?$t:Yt,H=v==="x"?fi:mi,J=C[E],ee=E==="y"?"height":"width",z=J+g[M],re=J-g[H],he=[$t,Yt].indexOf(y)!==-1,ne=(P=G?.[E])!=null?P:0,_e=he?z:J-I[ee]-L[ee]-ne+N.altAxis,Ye=he?J+I[ee]+L[ee]-ne-N.altAxis:re,Fe=p&&he?mT(_e,J,Ye):ea(p?_e:z,J,p?Ye:re);C[E]=Fe,A[E]=Fe-J}e.modifiersData[i]=A}}const $T={name:"preventOverflow",enabled:!0,phase:"main",fn:jT,requiresIfExists:["offset"]};function YT(r){return{scrollLeft:r.scrollLeft,scrollTop:r.scrollTop}}function XT(r){return r===Jt(r)||!pi(r)?md(r):YT(r)}function qT(r){var e=r.getBoundingClientRect(),t=pn(e.width)/r.offsetWidth||1,i=pn(e.height)/r.offsetHeight||1;return t!==1||i!==1}function KT(r,e,t){t===void 0&&(t=!1);var i=pi(e),s=pi(e)&&qT(e),n=$r(e),a=fn(r,s,t),o={scrollLeft:0,scrollTop:0},l={x:0,y:0};return(i||!i&&!t)&&((Qi(e)!=="body"||yd(n))&&(o=XT(e)),pi(e)?(l=fn(e,!0),l.x+=e.clientLeft,l.y+=e.clientTop):n&&(l.x=gd(n))),{x:a.left+o.scrollLeft-l.x,y:a.top+o.scrollTop-l.y,width:a.width,height:a.height}}function ZT(r){var e=new Map,t=new Set,i=[];r.forEach(function(n){e.set(n.name,n)});function s(n){t.add(n.name);var a=[].concat(n.requires||[],n.requiresIfExists||[]);a.forEach(function(o){if(!t.has(o)){var l=e.get(o);l&&s(l)}}),i.push(n)}return r.forEach(function(n){t.has(n.name)||s(n)}),i}function JT(r){var e=ZT(r);return cT.reduce(function(t,i){return t.concat(e.filter(function(s){return s.phase===i}))},[])}function QT(r){var e;return function(){return e||(e=new Promise(function(t){Promise.resolve().then(function(){e=void 0,t(r())})})),e}}function eE(r){var e=r.reduce(function(t,i){var s=t[i.name];return t[i.name]=s?Object.assign({},s,i,{options:Object.assign({},s.options,i.options),data:Object.assign({},s.data,i.data)}):i,t},{});return Object.keys(e).map(function(t){return e[t]})}var Cp={placement:"bottom",modifiers:[],strategy:"absolute"};function Mp(){for(var r=arguments.length,e=new Array(r),t=0;t-1}function Lg(r,e){return typeof r=="function"?r.apply(void 0,e):r}function kp(r,e){if(e===0)return r;var t;return function(i){clearTimeout(t),t=setTimeout(function(){r(i)},e)}}function aE(r){return r.split(/\s+/).filter(Boolean)}function zs(r){return[].concat(r)}function Ip(r,e){r.indexOf(e)===-1&&r.push(e)}function oE(r){return r.filter(function(e,t){return r.indexOf(e)===t})}function lE(r){return r.split("-")[0]}function Xo(r){return[].slice.call(r)}function Pp(r){return Object.keys(r).reduce(function(e,t){return r[t]!==void 0&&(e[t]=r[t]),e},{})}function ia(){return document.createElement("div")}function fl(r){return["Element","Fragment"].some(function(e){return vd(r,e)})}function hE(r){return vd(r,"NodeList")}function cE(r){return vd(r,"MouseEvent")}function dE(r){return!!(r&&r._tippy&&r._tippy.reference===r)}function uE(r){return fl(r)?[r]:hE(r)?Xo(r):Array.isArray(r)?r:Xo(document.querySelectorAll(r))}function gh(r,e){r.forEach(function(t){t&&(t.style.transitionDuration=e+"ms")})}function Bp(r,e){r.forEach(function(t){t&&t.setAttribute("data-state",e)})}function pE(r){var e,t=zs(r),i=t[0];return i!=null&&(e=i.ownerDocument)!=null&&e.body?i.ownerDocument:document}function fE(r,e){var t=e.clientX,i=e.clientY;return r.every(function(s){var n=s.popperRect,a=s.popperState,o=s.props,l=o.interactiveBorder,c=lE(a.placement),d=a.modifiersData.offset;if(!d)return!0;var h=c==="bottom"?d.top.y:0,u=c==="top"?d.bottom.y:0,p=c==="right"?d.left.x:0,f=c==="left"?d.right.x:0,m=n.top-i+h>l,g=i-n.bottom-u>l,y=n.left-t+p>l,w=t-n.right-f>l;return m||g||y||w})}function yh(r,e,t){var i=e+"EventListener";["transitionend","webkitTransitionEnd"].forEach(function(s){r[i](s,t)})}function Rp(r,e){for(var t=e;t;){var i;if(r.contains(t))return!0;t=t.getRootNode==null||(i=t.getRootNode())==null?void 0:i.host}return!1}var Wi={isTouch:!1},Lp=0;function mE(){Wi.isTouch||(Wi.isTouch=!0,window.performance&&document.addEventListener("mousemove",Dg))}function Dg(){var r=performance.now();r-Lp<20&&(Wi.isTouch=!1,document.removeEventListener("mousemove",Dg)),Lp=r}function gE(){var r=document.activeElement;if(dE(r)){var e=r._tippy;r.blur&&!e.state.isVisible&&r.blur()}}function yE(){document.addEventListener("touchstart",mE,ss),window.addEventListener("blur",gE)}var vE=typeof window<"u"&&typeof document<"u",bE=vE?!!window.msCrypto:!1,wE={animateFill:!1,followCursor:!1,inlinePositioning:!1,sticky:!1},_E={allowHTML:!1,animation:"fade",arrow:!0,content:"",inertia:!1,maxWidth:350,role:"tooltip",theme:"",zIndex:9999},Ai=Object.assign({appendTo:Rg,aria:{content:"auto",expanded:"auto"},delay:0,duration:[300,250],getReferenceClientRect:null,hideOnClick:!0,ignoreAttributes:!1,interactive:!1,interactiveBorder:2,interactiveDebounce:0,moveTransition:"",offset:[0,10],onAfterUpdate:function(){},onBeforeUpdate:function(){},onCreate:function(){},onDestroy:function(){},onHidden:function(){},onHide:function(){},onMount:function(){},onShow:function(){},onShown:function(){},onTrigger:function(){},onUntrigger:function(){},onClickOutside:function(){},placement:"top",plugins:[],popperOptions:{},render:null,showOnCreate:!1,touch:!0,trigger:"mouseenter focus",triggerTarget:null},wE,_E),xE=Object.keys(Ai),TE=function(e){var t=Object.keys(e);t.forEach(function(i){Ai[i]=e[i]})};function Og(r){var e=r.plugins||[],t=e.reduce(function(i,s){var n=s.name,a=s.defaultValue;if(n){var o;i[n]=r[n]!==void 0?r[n]:(o=Ai[n])!=null?o:a}return i},{});return Object.assign({},r,t)}function EE(r,e){var t=e?Object.keys(Og(Object.assign({},Ai,{plugins:e}))):xE,i=t.reduce(function(s,n){var a=(r.getAttribute("data-tippy-"+n)||"").trim();if(!a)return s;if(n==="content")s[n]=a;else try{s[n]=JSON.parse(a)}catch{s[n]=a}return s},{});return i}function Dp(r,e){var t=Object.assign({},e,{content:Lg(e.content,[r])},e.ignoreAttributes?{}:EE(r,e.plugins));return t.aria=Object.assign({},Ai.aria,t.aria),t.aria={expanded:t.aria.expanded==="auto"?e.interactive:t.aria.expanded,content:t.aria.content==="auto"?e.interactive?null:"describedby":t.aria.content},t}var AE=function(){return"innerHTML"};function Dc(r,e){r[AE()]=e}function Op(r){var e=ia();return r===!0?e.className=Pg:(e.className=Bg,fl(r)?e.appendChild(r):Dc(e,r)),e}function Fp(r,e){fl(e.content)?(Dc(r,""),r.appendChild(e.content)):typeof e.content!="function"&&(e.allowHTML?Dc(r,e.content):r.textContent=e.content)}function Oc(r){var e=r.firstElementChild,t=Xo(e.children);return{box:e,content:t.find(function(i){return i.classList.contains(Ig)}),arrow:t.find(function(i){return i.classList.contains(Pg)||i.classList.contains(Bg)}),backdrop:t.find(function(i){return i.classList.contains(nE)})}}function Fg(r){var e=ia(),t=ia();t.className=sE,t.setAttribute("data-state","hidden"),t.setAttribute("tabindex","-1");var i=ia();i.className=Ig,i.setAttribute("data-state","hidden"),Fp(i,r.props),e.appendChild(t),t.appendChild(i),s(r.props,r.props);function s(n,a){var o=Oc(e),l=o.box,c=o.content,d=o.arrow;a.theme?l.setAttribute("data-theme",a.theme):l.removeAttribute("data-theme"),typeof a.animation=="string"?l.setAttribute("data-animation",a.animation):l.removeAttribute("data-animation"),a.inertia?l.setAttribute("data-inertia",""):l.removeAttribute("data-inertia"),l.style.maxWidth=typeof a.maxWidth=="number"?a.maxWidth+"px":a.maxWidth,a.role?l.setAttribute("role",a.role):l.removeAttribute("role"),(n.content!==a.content||n.allowHTML!==a.allowHTML)&&Fp(c,r.props),a.arrow?d?n.arrow!==a.arrow&&(l.removeChild(d),l.appendChild(Op(a.arrow))):l.appendChild(Op(a.arrow)):d&&l.removeChild(d)}return{popper:e,onUpdate:s}}Fg.$$tippy=!0;var SE=1,to=[],vh=[];function CE(r,e){var t=Dp(r,Object.assign({},Ai,Og(Pp(e)))),i,s,n,a=!1,o=!1,l=!1,c=!1,d,h,u,p=[],f=kp(T,t.interactiveDebounce),m,g=SE++,y=null,w=oE(t.plugins),b={isEnabled:!0,isVisible:!1,isDestroyed:!1,isMounted:!1,isShown:!1},v={id:g,reference:r,popper:ia(),popperInstance:y,props:t,state:b,plugins:w,clearDelayTimeouts:_e,setProps:Ye,setContent:Fe,show:Gt,hide:Xr,hideWithInteractivity:Qt,enable:he,disable:ne,unmount:qr,destroy:nt};if(!t.render)return v;var E=t.render(v),C=E.popper,I=E.onUpdate;C.setAttribute("data-tippy-root",""),C.id="tippy-"+v.id,v.popper=C,r._tippy=v,C._tippy=v;var L=w.map(function(q){return q.fn(v)}),k=r.hasAttribute("aria-expanded");return le(),V(),R(),O("onCreate",[v]),t.showOnCreate&&z(),C.addEventListener("mouseenter",function(){v.props.interactive&&v.state.isVisible&&v.clearDelayTimeouts()}),C.addEventListener("mouseleave",function(){v.props.interactive&&v.props.trigger.indexOf("mouseenter")>=0&&x().addEventListener("mousemove",f)}),v;function N(){var q=v.props.touch;return Array.isArray(q)?q:[q,0]}function G(){return N()[0]==="hold"}function A(){var q;return!!((q=v.props.render)!=null&&q.$$tippy)}function S(){return m||r}function x(){var q=S().parentNode;return q?pE(q):document}function D(){return Oc(C)}function $(q){return v.state.isMounted&&!v.state.isVisible||Wi.isTouch||d&&d.type==="focus"?0:mh(v.props.delay,q?0:1,Ai.delay)}function R(q){q===void 0&&(q=!1),C.style.pointerEvents=v.props.interactive&&!q?"":"none",C.style.zIndex=""+v.props.zIndex}function O(q,me,Te){if(Te===void 0&&(Te=!0),L.forEach(function(Ve){Ve[q]&&Ve[q].apply(Ve,me)}),Te){var $e;($e=v.props)[q].apply($e,me)}}function W(){var q=v.props.aria;if(q.content){var me="aria-"+q.content,Te=C.id,$e=zs(v.props.triggerTarget||r);$e.forEach(function(Ve){var Ct=Ve.getAttribute(me);if(v.state.isVisible)Ve.setAttribute(me,Ct?Ct+" "+Te:Te);else{var Vt=Ct&&Ct.replace(Te,"").trim();Vt?Ve.setAttribute(me,Vt):Ve.removeAttribute(me)}})}}function V(){if(!(k||!v.props.aria.expanded)){var q=zs(v.props.triggerTarget||r);q.forEach(function(me){v.props.interactive?me.setAttribute("aria-expanded",v.state.isVisible&&me===S()?"true":"false"):me.removeAttribute("aria-expanded")})}}function F(){x().removeEventListener("mousemove",f),to=to.filter(function(q){return q!==f})}function U(q){if(!(Wi.isTouch&&(l||q.type==="mousedown"))){var me=q.composedPath&&q.composedPath()[0]||q.target;if(!(v.props.interactive&&Rp(C,me))){if(zs(v.props.triggerTarget||r).some(function(Te){return Rp(Te,me)})){if(Wi.isTouch||v.state.isVisible&&v.props.trigger.indexOf("click")>=0)return}else O("onClickOutside",[v,q]);v.props.hideOnClick===!0&&(v.clearDelayTimeouts(),v.hide(),o=!0,setTimeout(function(){o=!1}),v.state.isMounted||ye())}}}function te(){l=!0}function Q(){l=!1}function Z(){var q=x();q.addEventListener("mousedown",U,!0),q.addEventListener("touchend",U,ss),q.addEventListener("touchstart",Q,ss),q.addEventListener("touchmove",te,ss)}function ye(){var q=x();q.removeEventListener("mousedown",U,!0),q.removeEventListener("touchend",U,ss),q.removeEventListener("touchstart",Q,ss),q.removeEventListener("touchmove",te,ss)}function Ce(q,me){fe(q,function(){!v.state.isVisible&&C.parentNode&&C.parentNode.contains(C)&&me()})}function ce(q,me){fe(q,me)}function fe(q,me){var Te=D().box;function $e(Ve){Ve.target===Te&&(yh(Te,"remove",$e),me())}if(q===0)return me();yh(Te,"remove",h),yh(Te,"add",$e),h=$e}function we(q,me,Te){Te===void 0&&(Te=!1);var $e=zs(v.props.triggerTarget||r);$e.forEach(function(Ve){Ve.addEventListener(q,me,Te),p.push({node:Ve,eventType:q,handler:me,options:Te})})}function le(){G()&&(we("touchstart",be,{passive:!0}),we("touchend",Y,{passive:!0})),aE(v.props.trigger).forEach(function(q){if(q!=="manual")switch(we(q,be),q){case"mouseenter":we("mouseleave",Y);break;case"focus":we(bE?"focusout":"blur",j);break;case"focusin":we("focusout",j);break}})}function pe(){p.forEach(function(q){var me=q.node,Te=q.eventType,$e=q.handler,Ve=q.options;me.removeEventListener(Te,$e,Ve)}),p=[]}function be(q){var me,Te=!1;if(!(!v.state.isEnabled||P(q)||o)){var $e=((me=d)==null?void 0:me.type)==="focus";d=q,m=q.currentTarget,V(),!v.state.isVisible&&cE(q)&&to.forEach(function(Ve){return Ve(q)}),q.type==="click"&&(v.props.trigger.indexOf("mouseenter")<0||a)&&v.props.hideOnClick!==!1&&v.state.isVisible?Te=!0:z(q),q.type==="click"&&(a=!Te),Te&&!$e&&re(q)}}function T(q){var me=q.target,Te=S().contains(me)||C.contains(me);if(!(q.type==="mousemove"&&Te)){var $e=ee().concat(C).map(function(Ve){var Ct,Vt=Ve._tippy,tr=(Ct=Vt.popperInstance)==null?void 0:Ct.state;return tr?{popperRect:Ve.getBoundingClientRect(),popperState:tr,props:t}:null}).filter(Boolean);fE($e,q)&&(F(),re(q))}}function Y(q){var me=P(q)||v.props.trigger.indexOf("click")>=0&&a;if(!me){if(v.props.interactive){v.hideWithInteractivity(q);return}re(q)}}function j(q){v.props.trigger.indexOf("focusin")<0&&q.target!==S()||v.props.interactive&&q.relatedTarget&&C.contains(q.relatedTarget)||re(q)}function P(q){return Wi.isTouch?G()!==q.type.indexOf("touch")>=0:!1}function M(){H();var q=v.props,me=q.popperOptions,Te=q.placement,$e=q.offset,Ve=q.getReferenceClientRect,Ct=q.moveTransition,Vt=A()?Oc(C).arrow:null,tr=Ve?{getBoundingClientRect:Ve,contextElement:Ve.contextElement||S()}:r,wr={name:"$$tippy",enabled:!0,phase:"beforeWrite",requires:["computeStyles"],fn:function(Sa){var Cs=Sa.state;if(A()){var Ay=D(),Ml=Ay.box;["placement","reference-hidden","escaped"].forEach(function(Ca){Ca==="placement"?Ml.setAttribute("data-placement",Cs.placement):Cs.attributes.popper["data-popper-"+Ca]?Ml.setAttribute("data-"+Ca,""):Ml.removeAttribute("data-"+Ca)}),Cs.attributes.popper={}}}},ei=[{name:"offset",options:{offset:$e}},{name:"preventOverflow",options:{padding:{top:2,bottom:2,left:5,right:5}}},{name:"flip",options:{padding:5}},{name:"computeStyles",options:{adaptive:!Ct}},wr];A()&&Vt&&ei.push({name:"arrow",options:{element:Vt,padding:3}}),ei.push.apply(ei,me?.modifiers||[]),v.popperInstance=rE(tr,C,Object.assign({},me,{placement:Te,onFirstUpdate:u,modifiers:ei}))}function H(){v.popperInstance&&(v.popperInstance.destroy(),v.popperInstance=null)}function J(){var q=v.props.appendTo,me,Te=S();v.props.interactive&&q===Rg||q==="parent"?me=Te.parentNode:me=Lg(q,[Te]),me.contains(C)||me.appendChild(C),v.state.isMounted=!0,M()}function ee(){return Xo(C.querySelectorAll("[data-tippy-root]"))}function z(q){v.clearDelayTimeouts(),q&&O("onTrigger",[v,q]),Z();var me=$(!0),Te=N(),$e=Te[0],Ve=Te[1];Wi.isTouch&&$e==="hold"&&Ve&&(me=Ve),me?i=setTimeout(function(){v.show()},me):v.show()}function re(q){if(v.clearDelayTimeouts(),O("onUntrigger",[v,q]),!v.state.isVisible){ye();return}if(!(v.props.trigger.indexOf("mouseenter")>=0&&v.props.trigger.indexOf("click")>=0&&["mouseleave","mousemove"].indexOf(q.type)>=0&&a)){var me=$(!1);me?s=setTimeout(function(){v.state.isVisible&&v.hide()},me):n=requestAnimationFrame(function(){v.hide()})}}function he(){v.state.isEnabled=!0}function ne(){v.hide(),v.state.isEnabled=!1}function _e(){clearTimeout(i),clearTimeout(s),cancelAnimationFrame(n)}function Ye(q){if(!v.state.isDestroyed){O("onBeforeUpdate",[v,q]),pe();var me=v.props,Te=Dp(r,Object.assign({},me,Pp(q),{ignoreAttributes:!0}));v.props=Te,le(),me.interactiveDebounce!==Te.interactiveDebounce&&(F(),f=kp(T,Te.interactiveDebounce)),me.triggerTarget&&!Te.triggerTarget?zs(me.triggerTarget).forEach(function($e){$e.removeAttribute("aria-expanded")}):Te.triggerTarget&&r.removeAttribute("aria-expanded"),V(),R(),I&&I(me,Te),v.popperInstance&&(M(),ee().forEach(function($e){requestAnimationFrame($e._tippy.popperInstance.forceUpdate)})),O("onAfterUpdate",[v,q])}}function Fe(q){v.setProps({content:q})}function Gt(){var q=v.state.isVisible,me=v.state.isDestroyed,Te=!v.state.isEnabled,$e=Wi.isTouch&&!v.props.touch,Ve=mh(v.props.duration,0,Ai.duration);if(!(q||me||Te||$e)&&!S().hasAttribute("disabled")&&(O("onShow",[v],!1),v.props.onShow(v)!==!1)){if(v.state.isVisible=!0,A()&&(C.style.visibility="visible"),R(),Z(),v.state.isMounted||(C.style.transition="none"),A()){var Ct=D(),Vt=Ct.box,tr=Ct.content;gh([Vt,tr],0)}u=function(){var ei;if(!(!v.state.isVisible||c)){if(c=!0,C.offsetHeight,C.style.transition=v.props.moveTransition,A()&&v.props.animation){var Cl=D(),Sa=Cl.box,Cs=Cl.content;gh([Sa,Cs],Ve),Bp([Sa,Cs],"visible")}W(),V(),Ip(vh,v),(ei=v.popperInstance)==null||ei.forceUpdate(),O("onMount",[v]),v.props.animation&&A()&&ce(Ve,function(){v.state.isShown=!0,O("onShown",[v])})}},J()}}function Xr(){var q=!v.state.isVisible,me=v.state.isDestroyed,Te=!v.state.isEnabled,$e=mh(v.props.duration,1,Ai.duration);if(!(q||me||Te)&&(O("onHide",[v],!1),v.props.onHide(v)!==!1)){if(v.state.isVisible=!1,v.state.isShown=!1,c=!1,a=!1,A()&&(C.style.visibility="hidden"),F(),ye(),R(!0),A()){var Ve=D(),Ct=Ve.box,Vt=Ve.content;v.props.animation&&(gh([Ct,Vt],$e),Bp([Ct,Vt],"hidden"))}W(),V(),v.props.animation?A()&&Ce($e,v.unmount):v.unmount()}}function Qt(q){x().addEventListener("mousemove",f),Ip(to,f),f(q)}function qr(){v.state.isVisible&&v.hide(),v.state.isMounted&&(H(),ee().forEach(function(q){q._tippy.unmount()}),C.parentNode&&C.parentNode.removeChild(C),vh=vh.filter(function(q){return q!==v}),v.state.isMounted=!1,O("onHidden",[v]))}function nt(){v.state.isDestroyed||(v.clearDelayTimeouts(),v.unmount(),pe(),delete r._tippy,v.state.isDestroyed=!0,O("onDestroy",[v]))}}function Pt(r,e){e===void 0&&(e={});var t=Ai.plugins.concat(e.plugins||[]);yE();var i=Object.assign({},e,{plugins:t}),s=uE(r),n=s.reduce(function(a,o){var l=o&&CE(o,i);return l&&a.push(l),a},[]);return fl(r)?n[0]:n}Pt.defaultProps=Ai;Pt.setDefaultProps=TE;Pt.currentInput=Wi;Object.assign({},xg,{effect:function(e){var t=e.state,i={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};Object.assign(t.elements.popper.style,i.popper),t.styles=i,t.elements.arrow&&Object.assign(t.elements.arrow.style,i.arrow)}});Pt.setDefaultProps({render:Fg});const ME="modulepreload",kE=function(r){return"/smeditor/"+r},Np={},Ke=function(e,t,i){if(!t||t.length===0)return e();const s=document.getElementsByTagName("link");return Promise.all(t.map(n=>{if(n=kE(n),n in Np)return;Np[n]=!0;const a=n.endsWith(".css"),o=a?'[rel="stylesheet"]':"";if(!!i)for(let d=s.length-1;d>=0;d--){const h=s[d];if(h.href===n&&(!a||h.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${n}"]${o}`))return;const c=document.createElement("link");if(c.rel=a?"stylesheet":ME,a||(c.as="script",c.crossOrigin=""),c.href=n,document.head.appendChild(c),a)return new Promise((d,h)=>{c.addEventListener("load",d),c.addEventListener("error",()=>h(new Error(`Unable to preload CSS for ${n}`)))})})).then(()=>e()).catch(n=>{const a=new Event("vite:preloadError",{cancelable:!0});if(a.payload=n,window.dispatchEvent(a),!a.defaultPrevented)throw n})},qo={INVALID:["seeking position failed.","InvalidStateError"],GONE:["A requested file or directory could not be found at the time an operation was processed.","NotFoundError"],MISMATCH:["The path supplied exists, but was not an entry of requested type.","TypeMismatchError"],MOD_ERR:["The object can not be modified in this way.","InvalidModificationError"],SYNTAX:r=>[`Failed to execute 'write' on 'UnderlyingSinkBase': Invalid params passed. ${r}`,"SyntaxError"],ABORT:["The operation was aborted","AbortError"],SECURITY:["It was determined that certain files are unsafe for access within a Web application, or that too many calls are being made on file resources.","SecurityError"],DISALLOWED:["The request is not allowed by the user agent or the platform in the current context.","NotAllowedError"]},IE=r=>typeof r=="object"&&typeof r.type<"u";async function PE(r){var e,t,i;const{FolderHandle:s,FileHandle:n}=await Ke(()=>import("./memory-3d55e3da.js"),[]),{FileSystemDirectoryHandle:a}=await Ke(()=>Promise.resolve().then(()=>VA),void 0),o=(t=(e=r[0].webkitRelativePath)===null||e===void 0?void 0:e.split("/",1)[0])!==null&&t!==void 0?t:"",l=new s(o,!1);for(let c=0;c(f._entries[m]||(f._entries[m]=new s(m,!1)),f._entries[m]),l);p._entries[u]=new n(d.name,d,!1)}return new a(l)}async function BE(r){const{FileHandle:e}=await Ke(()=>import("./memory-3d55e3da.js"),[]),{FileSystemFileHandle:t}=await Ke(()=>Promise.resolve().then(()=>ey),void 0);return Array.from(r).map(s=>new t(new e(s.name,s,!1)))}const Ng=Object.freeze(Object.defineProperty({__proto__:null,errors:qo,isChunkObject:IE,makeDirHandleFromFileList:PE,makeFileHandlesFromFileList:BE},Symbol.toStringTag,{value:"Module"}));var ps={};/*! howler.js v2.2.4 | (c) 2013-2020, James Simpson of GoldFire Studios | MIT License | howlerjs.com */(function(r){(function(){var e=function(){this.init()};e.prototype={init:function(){var h=this||t;return h._counter=1e3,h._html5AudioPool=[],h.html5PoolSize=10,h._codecs={},h._howls=[],h._muted=!1,h._volume=1,h._canPlayEvent="canplaythrough",h._navigator=typeof window<"u"&&window.navigator?window.navigator:null,h.masterGain=null,h.noAudio=!1,h.usingWebAudio=!0,h.autoSuspend=!0,h.ctx=null,h.autoUnlock=!0,h._setup(),h},volume:function(h){var u=this||t;if(h=parseFloat(h),u.ctx||d(),h!==void 0&&h>=0&&h<=1){if(u._volume=h,u._muted)return u;u.usingWebAudio&&u.masterGain.gain.setValueAtTime(h,t.ctx.currentTime);for(var p=0;p=0;u--)h._howls[u].unload();return h.usingWebAudio&&h.ctx&&h.ctx.close!==void 0&&(h.ctx.close(),h.ctx=null,d()),h},codecs:function(h){return(this||t)._codecs[h.replace(/^x-/,"")]},_setup:function(){var h=this||t;if(h.state=h.ctx&&h.ctx.state||"suspended",h._autoSuspend(),!h.usingWebAudio)if(typeof Audio<"u")try{var u=new Audio;u.oncanplaythrough===void 0&&(h._canPlayEvent="canplay")}catch{h.noAudio=!0}else h.noAudio=!0;try{var u=new Audio;u.muted&&(h.noAudio=!0)}catch{}return h.noAudio||h._setupCodecs(),h},_setupCodecs:function(){var h=this||t,u=null;try{u=typeof Audio<"u"?new Audio:null}catch{return h}if(!u||typeof u.canPlayType!="function")return h;var p=u.canPlayType("audio/mpeg;").replace(/^no$/,""),f=h._navigator?h._navigator.userAgent:"",m=f.match(/OPR\/(\d+)/g),g=m&&parseInt(m[0].split("/")[1],10)<33,y=f.indexOf("Safari")!==-1&&f.indexOf("Chrome")===-1,w=f.match(/Version\/(.*?) /),b=y&&w&&parseInt(w[1],10)<15;return h._codecs={mp3:!(g||!p&&!u.canPlayType("audio/mp3;").replace(/^no$/,"")),mpeg:!!p,opus:!!u.canPlayType('audio/ogg; codecs="opus"').replace(/^no$/,""),ogg:!!u.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),oga:!!u.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),wav:!!(u.canPlayType('audio/wav; codecs="1"')||u.canPlayType("audio/wav")).replace(/^no$/,""),aac:!!u.canPlayType("audio/aac;").replace(/^no$/,""),caf:!!u.canPlayType("audio/x-caf;").replace(/^no$/,""),m4a:!!(u.canPlayType("audio/x-m4a;")||u.canPlayType("audio/m4a;")||u.canPlayType("audio/aac;")).replace(/^no$/,""),m4b:!!(u.canPlayType("audio/x-m4b;")||u.canPlayType("audio/m4b;")||u.canPlayType("audio/aac;")).replace(/^no$/,""),mp4:!!(u.canPlayType("audio/x-mp4;")||u.canPlayType("audio/mp4;")||u.canPlayType("audio/aac;")).replace(/^no$/,""),weba:!(b||!u.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/,"")),webm:!(b||!u.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/,"")),dolby:!!u.canPlayType('audio/mp4; codecs="ec-3"').replace(/^no$/,""),flac:!!(u.canPlayType("audio/x-flac;")||u.canPlayType("audio/flac;")).replace(/^no$/,"")},h},_unlockAudio:function(){var h=this||t;if(!h._audioUnlocked&&h.ctx){h._audioUnlocked=!1,h.autoUnlock=!1,h._mobileUnloaded||h.ctx.sampleRate===44100||(h._mobileUnloaded=!0,h.unload()),h._scratchBuffer=h.ctx.createBuffer(1,1,22050);var u=function(p){for(;h._html5AudioPool.length0?y._seek:p._sprite[h][0]/1e3),v=Math.max(0,(p._sprite[h][0]+p._sprite[h][1])/1e3-b),E=1e3*v/Math.abs(y._rate),C=p._sprite[h][0]/1e3,I=(p._sprite[h][0]+p._sprite[h][1])/1e3;y._sprite=h,y._ended=!1;var L=function(){y._paused=!1,y._seek=b,y._start=C,y._stop=I,y._loop=!(!y._loop&&!p._sprite[h][2])};if(b>=I)return void p._ended(y);var k=y._node;if(p._webAudio){var N=function(){p._playLock=!1,L(),p._refreshBuffer(y);var x=y._muted||p._muted?0:y._volume;k.gain.setValueAtTime(x,t.ctx.currentTime),y._playStart=t.ctx.currentTime,k.bufferSource.start===void 0?y._loop?k.bufferSource.noteGrainOn(0,b,86400):k.bufferSource.noteGrainOn(0,b,v):y._loop?k.bufferSource.start(0,b,86400):k.bufferSource.start(0,b,v),E!==1/0&&(p._endTimers[y._id]=setTimeout(p._ended.bind(p,y),E)),u||setTimeout(function(){p._emit("play",y._id),p._loadQueue()},0)};t.state==="running"&&t.ctx.state!=="interrupted"?N():(p._playLock=!0,p.once("resume",N),p._clearTimer(y._id))}else{var G=function(){k.currentTime=b,k.muted=y._muted||p._muted||t._muted||k.muted,k.volume=y._volume*t.volume(),k.playbackRate=y._rate;try{var x=k.play();if(x&&typeof Promise<"u"&&(x instanceof Promise||typeof x.then=="function")?(p._playLock=!0,L(),x.then(function(){p._playLock=!1,k._unlocked=!0,u?p._loadQueue():p._emit("play",y._id)}).catch(function(){p._playLock=!1,p._emit("playerror",y._id,"Playback was unable to start. This is most commonly an issue on mobile devices and Chrome where playback was not within a user interaction."),y._ended=!0,y._paused=!0})):u||(p._playLock=!1,L(),p._emit("play",y._id)),k.playbackRate=y._rate,k.paused)return void p._emit("playerror",y._id,"Playback was unable to start. This is most commonly an issue on mobile devices and Chrome where playback was not within a user interaction.");h!=="__default"||y._loop?p._endTimers[y._id]=setTimeout(p._ended.bind(p,y),E):(p._endTimers[y._id]=function(){p._ended(y),k.removeEventListener("ended",p._endTimers[y._id],!1)},k.addEventListener("ended",p._endTimers[y._id],!1))}catch(D){p._emit("playerror",y._id,D)}};k.src==="data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA"&&(k.src=p._src,k.load());var A=window&&window.ejecta||!k.readyState&&t._navigator.isCocoonJS;if(k.readyState>=3||A)G();else{p._playLock=!0,p._state="loading";var S=function(){p._state="loaded",G(),k.removeEventListener(t._canPlayEvent,S,!1)};k.addEventListener(t._canPlayEvent,S,!1),p._clearTimer(y._id)}}return y._id},pause:function(h){var u=this;if(u._state!=="loaded"||u._playLock)return u._queue.push({event:"pause",action:function(){u.pause(h)}}),u;for(var p=u._getSoundIds(h),f=0;f=0?u=parseInt(f[0],10):h=parseFloat(f[0]):f.length>=2&&(h=parseFloat(f[0]),u=parseInt(f[1],10));var m;if(!(h!==void 0&&h>=0&&h<=1))return m=u?p._soundById(u):p._sounds[0],m?m._volume:0;if(p._state!=="loaded"||p._playLock)return p._queue.push({event:"volume",action:function(){p.volume.apply(p,f)}}),p;u===void 0&&(p._volume=h),u=p._getSoundIds(u);for(var g=0;g0?f/v:f),C=Date.now();h._fadeTo=p,h._interval=setInterval(function(){var I=(Date.now()-C)/f;C=Date.now(),w+=b*I,w=Math.round(100*w)/100,w=b<0?Math.max(p,w):Math.min(p,w),y._webAudio?h._volume=w:y.volume(w,h._id,!0),g&&(y._volume=w),(pu&&w>=p)&&(clearInterval(h._interval),h._interval=null,h._fadeTo=null,y.volume(p,h._id),y._emit("fade",h._id))},E)},_stopFade:function(h){var u=this,p=u._soundById(h);return p&&p._interval&&(u._webAudio&&p._node.gain.cancelScheduledValues(t.ctx.currentTime),clearInterval(p._interval),p._interval=null,u.volume(p._fadeTo,h),p._fadeTo=null,u._emit("fade",h)),u},loop:function(){var h,u,p,f=this,m=arguments;if(m.length===0)return f._loop;if(m.length===1){if(typeof m[0]!="boolean")return!!(p=f._soundById(parseInt(m[0],10)))&&p._loop;h=m[0],f._loop=h}else m.length===2&&(h=m[0],u=parseInt(m[1],10));for(var g=f._getSoundIds(u),y=0;y=0?u=parseInt(f[0],10):h=parseFloat(f[0])}else f.length===2&&(h=parseFloat(f[0]),u=parseInt(f[1],10));var y;if(typeof h!="number")return y=p._soundById(u),y?y._rate:p._rate;if(p._state!=="loaded"||p._playLock)return p._queue.push({event:"rate",action:function(){p.rate.apply(p,f)}}),p;u===void 0&&(p._rate=h),u=p._getSoundIds(u);for(var w=0;w=0?u=parseInt(f[0],10):p._sounds.length&&(u=p._sounds[0]._id,h=parseFloat(f[0]))}else f.length===2&&(h=parseFloat(f[0]),u=parseInt(f[1],10));if(u===void 0)return 0;if(typeof h=="number"&&(p._state!=="loaded"||p._playLock))return p._queue.push({event:"seek",action:function(){p.seek.apply(p,f)}}),p;var y=p._soundById(u);if(y){if(!(typeof h=="number"&&h>=0)){if(p._webAudio){var w=p.playing(u)?t.ctx.currentTime-y._playStart:0,b=y._rateSeek?y._rateSeek-y._seek:0;return y._seek+(b+w*Math.abs(y._rate))}return y._node.currentTime}var v=p.playing(u);v&&p.pause(u,!0),y._seek=h,y._ended=!1,p._clearTimer(u),p._webAudio||!y._node||isNaN(y._node.duration)||(y._node.currentTime=h);var E=function(){v&&p.play(u,!0),p._emit("seek",u)};if(v&&!p._webAudio){var C=function(){p._playLock?setTimeout(C,0):E()};setTimeout(C,0)}else E()}return p},playing:function(h){var u=this;if(typeof h=="number"){var p=u._soundById(h);return!!p&&!p._paused}for(var f=0;f=0&&t._howls.splice(f,1);var m=!0;for(p=0;p=0){m=!1;break}return n&&m&&delete n[h._src],t.noAudio=!1,h._state="unloaded",h._sounds=[],h=null,null},on:function(h,u,p,f){var m=this,g=m["_on"+h];return typeof u=="function"&&g.push(f?{id:p,fn:u,once:f}:{id:p,fn:u}),m},off:function(h,u,p){var f=this,m=f["_on"+h],g=0;if(typeof u=="number"&&(p=u,u=null),u||p)for(g=0;g=0;g--)m[g].id&&m[g].id!==u&&h!=="load"||(setTimeout(function(y){y.call(this,u,p)}.bind(f,m[g].fn),0),m[g].once&&f.off(h,m[g].fn,m[g].id));return f._loadQueue(h),f},_loadQueue:function(h){var u=this;if(u._queue.length>0){var p=u._queue[0];p.event===h&&(u._queue.shift(),u._loadQueue()),h||p.action()}return u},_ended:function(h){var u=this,p=h._sprite;if(!u._webAudio&&h._node&&!h._node.paused&&!h._node.ended&&h._node.currentTime=0;f--){if(p<=u)return;h._sounds[f]._ended&&(h._webAudio&&h._sounds[f]._node&&h._sounds[f]._node.disconnect(0),h._sounds.splice(f,1),p--)}}},_getSoundIds:function(h){var u=this;if(h===void 0){for(var p=[],f=0;f=0;if(!h.bufferSource)return u;if(t._scratchBuffer&&h.bufferSource&&(h.bufferSource.onended=null,h.bufferSource.disconnect(0),p))try{h.bufferSource.buffer=t._scratchBuffer}catch{}return h.bufferSource=null,u},_clearSound:function(h){/MSIE |Trident\//.test(t._navigator&&t._navigator.userAgent)||(h.src="data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA")}};var s=function(h){this._parent=h,this.init()};s.prototype={init:function(){var h=this,u=h._parent;return h._muted=u._muted,h._loop=u._loop,h._volume=u._volume,h._rate=u._rate,h._seek=0,h._paused=!0,h._ended=!0,h._sprite="__default",h._id=++t._counter,u._sounds.push(h),h.create(),h},create:function(){var h=this,u=h._parent,p=t._muted||h._muted||h._parent._muted?0:h._volume;return u._webAudio?(h._node=t.ctx.createGain===void 0?t.ctx.createGainNode():t.ctx.createGain(),h._node.gain.setValueAtTime(p,t.ctx.currentTime),h._node.paused=!0,h._node.connect(t.masterGain)):t.noAudio||(h._node=t._obtainHtml5Audio(),h._errorFn=h._errorListener.bind(h),h._node.addEventListener("error",h._errorFn,!1),h._loadFn=h._loadListener.bind(h),h._node.addEventListener(t._canPlayEvent,h._loadFn,!1),h._endFn=h._endListener.bind(h),h._node.addEventListener("ended",h._endFn,!1),h._node.src=u._src,h._node.preload=u._preload===!0?"auto":u._preload,h._node.volume=p*t.volume(),h._node.load()),h},reset:function(){var h=this,u=h._parent;return h._muted=u._muted,h._loop=u._loop,h._volume=u._volume,h._rate=u._rate,h._seek=0,h._rateSeek=0,h._paused=!0,h._ended=!0,h._sprite="__default",h._id=++t._counter,h},_errorListener:function(){var h=this;h._parent._emit("loaderror",h._id,h._node.error?h._node.error.code:0),h._node.removeEventListener("error",h._errorFn,!1)},_loadListener:function(){var h=this,u=h._parent;u._duration=Math.ceil(10*h._node.duration)/10,Object.keys(u._sprite).length===0&&(u._sprite={__default:[0,1e3*u._duration]}),u._state!=="loaded"&&(u._state="loaded",u._emit("load"),u._loadQueue()),h._node.removeEventListener(t._canPlayEvent,h._loadFn,!1)},_endListener:function(){var h=this,u=h._parent;u._duration===1/0&&(u._duration=Math.ceil(10*h._node.duration)/10,u._sprite.__default[1]===1/0&&(u._sprite.__default[1]=1e3*u._duration),u._ended(h)),h._node.removeEventListener("ended",h._endFn,!1)}};var n={},a=function(h){var u=h._src;if(n[u])return h._duration=n[u].duration,void c(h);if(/^data:[^;]+;base64,/.test(u)){for(var p=atob(u.split(",")[1]),f=new Uint8Array(p.length),m=0;m0?(n[u._src]=m,c(u,m)):p()};typeof Promise<"u"&&t.ctx.decodeAudioData.length===1?t.ctx.decodeAudioData(h).then(f).catch(p):t.ctx.decodeAudioData(h,f,p)},c=function(h,u){u&&!h._duration&&(h._duration=u.duration),Object.keys(h._sprite).length===0&&(h._sprite={__default:[0,1e3*h._duration]}),h._state!=="loaded"&&(h._state="loaded",h._emit("load"),h._loadQueue())},d=function(){if(t.usingWebAudio){try{typeof AudioContext<"u"?t.ctx=new AudioContext:typeof webkitAudioContext<"u"?t.ctx=new webkitAudioContext:t.usingWebAudio=!1}catch{t.usingWebAudio=!1}t.ctx||(t.usingWebAudio=!1);var h=/iP(hone|od|ad)/.test(t._navigator&&t._navigator.platform),u=t._navigator&&t._navigator.appVersion.match(/OS (\d+)_(\d+)_?(\d+)?/),p=u?parseInt(u[1],10):null;if(h&&p&&p<9){var f=/safari/.test(t._navigator&&t._navigator.userAgent.toLowerCase());t._navigator&&!f&&(t.usingWebAudio=!1)}t.usingWebAudio&&(t.masterGain=t.ctx.createGain===void 0?t.ctx.createGainNode():t.ctx.createGain(),t.masterGain.gain.setValueAtTime(t._muted?0:t._volume,t.ctx.currentTime),t.masterGain.connect(t.ctx.destination)),t._setup()}};r.Howler=t,r.Howl=i,typeof Wt<"u"?(Wt.HowlerGlobal=e,Wt.Howler=t,Wt.Howl=i,Wt.Sound=s):typeof window<"u"&&(window.HowlerGlobal=e,window.Howler=t,window.Howl=i,window.Sound=s)})()})(ps);const RE="/smeditor/assets/assist_tick-b8aada2a.ogg",Ug="/smeditor/assets/metronome_high-6fa54e52.ogg",Hg="/smeditor/assets/metronome_low-4db4e760.ogg",LE="/smeditor/assets/mine-b65ce42d.ogg",ml=[".aac",".mid",".midi",".mp3",".oga",".ogg",".opus",".wav",".webm",".weba",".flac",".aiff"],ns=[".bmp",".gif",".jpeg",".jpg",".png",".tif",".tiff",".webp"],bd=["Hold","Roll"];function Gg(r){return!bd.includes(r.type)}function Le(r){return bd.includes(r.type)}var li="INUMBER",Sn="IOP1",Cn="IOP2",Mn="IOP3",gr="IVAR",Es="IVARNAME",gn="IFUNCALL",gl="IFUNDEF",Xt="IEXPR",wd="IEXPREVAL",Ss="IMEMBER",yl="IENDSTATEMENT",yn="IARRAY";function je(r,e){this.type=r,this.value=e??0}je.prototype.toString=function(){switch(this.type){case li:case Sn:case Cn:case Mn:case gr:case Es:case yl:return this.value;case gn:return"CALL "+this.value;case gl:return"DEF "+this.value;case yn:return"ARRAY "+this.value;case Ss:return"."+this.value;default:return"Invalid Instruction"}};function vl(r){return new je(Sn,r)}function vr(r){return new je(Cn,r)}function Vg(r){return new je(Mn,r)}function Fc(r,e,t,i,s){for(var n=[],a=[],o,l,c,d,h=0;h1)l=n.pop(),o=n.pop(),d=t[u.value],u=new je(li,d(o.value,l.value)),n.push(u);else if(p===Mn&&n.length>2)c=n.pop(),l=n.pop(),o=n.pop(),u.value==="?"?n.push(o.value?l.value:c.value):(d=i[u.value],u=new je(li,d(o.value,l.value,c.value)),n.push(u));else if(p===Sn&&n.length>0)o=n.pop(),d=e[u.value],u=new je(li,d(o.value)),n.push(u);else if(p===Xt){for(;n.length>0;)a.push(n.shift());a.push(new je(Xt,Fc(u.value,e,t,i,s)))}else if(p===Ss&&n.length>0)o=n.pop(),n.push(new je(li,o.value[u.value]));else{for(;n.length>0;)a.push(n.shift());a.push(u)}}for(;n.length>0;)a.push(n.shift());return a}function Wg(r,e,t){for(var i=[],s=0;s0;)l.unshift(sr(i.pop(),t));if(o=i.pop(),o.apply&&o.call)i.push(o.apply(void 0,l));else throw new Error(o+" is not a function")}else if(p===gl)i.push(function(){for(var m=i.pop(),g=[],y=u.value;y-- >0;)g.unshift(i.pop());var w=i.pop(),b=function(){for(var v=Object.assign({},t),E=0,C=g.length;E0;)l.unshift(i.pop());i.push(l)}else throw new Error("invalid Expression")}if(i.length>1)throw new Error("invalid Expression (parity)");return i[0]===0?0:sr(i[0],t)}function DE(r,e,t){return _d(r)?r:{type:wd,value:function(i){return hs(r.value,e,i)}}}function _d(r){return r&&r.type===wd}function sr(r,e){return _d(r)?r.value(e):r}function xd(r,e){for(var t=[],i,s,n,a,o,l,c=0;c0;)o.unshift(t.pop());a=t.pop(),t.push(a+"("+o.join(", ")+")")}else if(h===gl){for(s=t.pop(),l=d.value,o=[];l-- >0;)o.unshift(t.pop());i=t.pop(),e?t.push("("+i+" = function("+o.join(", ")+") { return "+s+" })"):t.push("("+i+"("+o.join(", ")+") = "+s+")")}else if(h===Ss)i=t.pop(),t.push(i+"."+d.value);else if(h===yn){for(l=d.value,o=[];l-- >0;)o.unshift(t.pop());t.push("["+o.join(", ")+"]")}else if(h===Xt)t.push("("+xd(d.value,e)+")");else if(h!==yl)throw new Error("invalid Expression")}return t.length>1&&(e?t=[t.join(",")]:t=[t.join(";")]),String(t[0])}function Up(r){return typeof r=="string"?JSON.stringify(r).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029"):r}function Zs(r,e){for(var t=0;t=this.expression.length)return this.newToken(da,"EOF");if(this.isWhitespace()||this.isComment())return this.next();if(this.isRadixInteger()||this.isNumber()||this.isOperator()||this.isString()||this.isParen()||this.isBracket()||this.isComma()||this.isSemicolon()||this.isNamedOp()||this.isConst()||this.isName())return this.current;this.parseError('Unknown character "'+this.expression.charAt(this.pos)+'"')};pt.prototype.isString=function(){var r=!1,e=this.pos,t=this.expression.charAt(e);if(t==="'"||t==='"')for(var i=this.expression.indexOf(t,e+1);i>=0&&this.pos"9")))break}if(e>r){var i=this.expression.substring(r,e);if(i in this.consts)return this.current=this.newToken(bl,this.consts[i]),this.pos+=i.length,!0}return!1};pt.prototype.isNamedOp=function(){for(var r=this.pos,e=r;e"9")))break}if(e>r){var i=this.expression.substring(r,e);if(this.isOperatorEnabled(i)&&(i in this.binaryOps||i in this.unaryOps||i in this.ternaryOps))return this.current=this.newToken(Ze,i),this.pos+=i.length,!0}return!1};pt.prototype.isName=function(){for(var r=this.pos,e=r,t=!1;e"9"))break}else t=!0}if(t){var s=this.expression.substring(r,e);return this.current=this.newToken(Ed,s),this.pos+=s.length,!0}return!1};pt.prototype.isWhitespace=function(){for(var r=!1,e=this.expression.charAt(this.pos);(e===" "||e===" "||e===` + }`,this._stylesheet)}get stylesheet(){return this._stylesheet}set stylesheet(e){this._stylesheet!==e&&(this._stylesheet=e,this.styleID++)}normalizeColor(e){return Array.isArray(e)&&(e=Hb(e)),typeof e=="number"?Ub(e):e}dropShadowToCSS(){let e=this.normalizeColor(this.dropShadowColor);const t=this.dropShadowAlpha,i=Math.round(Math.cos(this.dropShadowAngle)*this.dropShadowDistance),s=Math.round(Math.sin(this.dropShadowAngle)*this.dropShadowDistance);e.startsWith("#")&&t<1&&(e+=(t*255|0).toString(16).padStart(2,"0"));const n=`${i}px ${s}px`;return this.dropShadowBlur>0?`text-shadow: ${n} ${this.dropShadowBlur}px ${e}`:`text-shadow: ${n} ${e}`}reset(){Object.assign(this,Vs.defaultOptions)}onBeforeDraw(){const{fontsDirty:e}=this;return this.fontsDirty=!1,this.isSafari&&this._fonts.length>0&&e?new Promise(t=>setTimeout(t,100)):Promise.resolve()}get isSafari(){const{userAgent:e}=ue.ADAPTER.getNavigator();return/^((?!chrome|android).)*safari/i.test(e)}set fillGradientStops(e){console.warn("[HTMLTextStyle] fillGradientStops is not supported by HTMLText")}get fillGradientStops(){return super.fillGradientStops}set fillGradientType(e){console.warn("[HTMLTextStyle] fillGradientType is not supported by HTMLText")}get fillGradientType(){return super.fillGradientType}set miterLimit(e){console.warn("[HTMLTextStyle] miterLimit is not supported by HTMLText")}get miterLimit(){return super.miterLimit}set trim(e){console.warn("[HTMLTextStyle] trim is not supported by HTMLText")}get trim(){return super.trim}set textBaseline(e){console.warn("[HTMLTextStyle] textBaseline is not supported by HTMLText")}get textBaseline(){return super.textBaseline}set leading(e){console.warn("[HTMLTextStyle] leading is not supported by HTMLText")}get leading(){return super.leading}set lineJoin(e){console.warn("[HTMLTextStyle] lineJoin is not supported by HTMLText")}get lineJoin(){return super.lineJoin}};Bc.availableFonts={},Bc.defaultOptions={align:"left",breakWords:!1,dropShadow:!1,dropShadowAlpha:1,dropShadowAngle:Math.PI/6,dropShadowBlur:0,dropShadowColor:"black",dropShadowDistance:5,fill:"black",fontFamily:"Arial",fontSize:26,fontStyle:"normal",fontVariant:"normal",fontWeight:"normal",letterSpacing:0,lineHeight:0,padding:0,stroke:"black",strokeThickness:0,whiteSpace:"normal",wordWrap:!1,wordWrapWidth:100};let fh=Bc;const Qa=class Ws extends Oe{constructor(e="",t={}){super(ie.EMPTY),this._text=null,this._style=null,this._autoResolution=!0,this.localStyleID=-1,this.dirty=!1,this._updateID=0,this.ownsStyle=!1;const i=new Image,s=ie.from(i,{scaleMode:ue.SCALE_MODE,resourceOptions:{autoLoad:!1}});s.orig=new ke,s.trim=new ke,this.texture=s;const n="http://www.w3.org/2000/svg",a="http://www.w3.org/1999/xhtml",o=document.createElementNS(n,"svg"),l=document.createElementNS(n,"foreignObject"),c=document.createElementNS(a,"div"),d=document.createElementNS(a,"style");l.setAttribute("width","10000"),l.setAttribute("height","10000"),l.style.overflow="hidden",o.appendChild(l),this.maxWidth=Ws.defaultMaxWidth,this.maxHeight=Ws.defaultMaxHeight,this._domElement=c,this._styleElement=d,this._svgRoot=o,this._foreignObject=l,this._foreignObject.appendChild(d),this._foreignObject.appendChild(c),this._image=i,this._loadImage=new Image,this._autoResolution=Ws.defaultAutoResolution,this._resolution=Ws.defaultResolution??ue.RESOLUTION,this.text=e,this.style=t}measureText(e){const{text:t,style:i,resolution:s}=Object.assign({text:this._text,style:this._style,resolution:this._resolution},e);Object.assign(this._domElement,{innerHTML:t,style:i.toCSS(s)}),this._styleElement.textContent=i.toGlobalCSS(),document.body.appendChild(this._svgRoot);const n=this._domElement.getBoundingClientRect();this._svgRoot.remove();const{width:a,height:o}=n;(a>this.maxWidth||o>this.maxHeight)&&console.warn("[HTMLText] Large expanse of text, increase HTMLText.maxWidth or HTMLText.maxHeight property.");const l=Math.min(this.maxWidth,Math.ceil(a)),c=Math.min(this.maxHeight,Math.ceil(o));return this._svgRoot.setAttribute("width",l.toString()),this._svgRoot.setAttribute("height",c.toString()),t!==this._text&&(this._domElement.innerHTML=this._text),i!==this._style&&(Object.assign(this._domElement,{style:this._style?.toCSS(s)}),this._styleElement.textContent=this._style?.toGlobalCSS()),{width:l+i.padding*2,height:c+i.padding*2}}async updateText(e=!0){const{style:t,_image:i,_loadImage:s}=this;if(this.localStyleID!==t.styleID&&(this.dirty=!0,this.localStyleID=t.styleID),!this.dirty&&e)return;const{width:n,height:a}=this.measureText();i.width=s.width=Math.ceil(Math.max(1,n)),i.height=s.height=Math.ceil(Math.max(1,a)),this._updateID++;const o=this._updateID;await new Promise(l=>{s.onload=async()=>{if(o/gi,"
").replace(/
/gi,"
").replace(/ /gi," ")}};Qa.defaultDestroyOptions={texture:!0,children:!1,baseTexture:!0},Qa.defaultMaxWidth=2024,Qa.defaultMaxHeight=2024,Qa.defaultAutoResolution=!0;var $t="top",fi="bottom",mi="right",Yt="left",dd="auto",xa=[$t,fi,mi,Yt],un="start",ha="end",Q1="clippingParents",wg="viewport",Ln="popper",eT="reference",wp=xa.reduce(function(r,e){return r.concat([e+"-"+un,e+"-"+ha])},[]),_g=[].concat(xa,[dd]).reduce(function(r,e){return r.concat([e,e+"-"+un,e+"-"+ha])},[]),tT="beforeRead",iT="read",rT="afterRead",sT="beforeMain",nT="main",aT="afterMain",oT="beforeWrite",lT="write",hT="afterWrite",cT=[tT,iT,rT,sT,nT,aT,oT,lT,hT];function Qi(r){return r?(r.nodeName||"").toLowerCase():null}function Jt(r){if(r==null)return window;if(r.toString()!=="[object Window]"){var e=r.ownerDocument;return e&&e.defaultView||window}return r}function Ts(r){var e=Jt(r).Element;return r instanceof e||r instanceof Element}function pi(r){var e=Jt(r).HTMLElement;return r instanceof e||r instanceof HTMLElement}function ud(r){if(typeof ShadowRoot>"u")return!1;var e=Jt(r).ShadowRoot;return r instanceof e||r instanceof ShadowRoot}function dT(r){var e=r.state;Object.keys(e.elements).forEach(function(t){var i=e.styles[t]||{},s=e.attributes[t]||{},n=e.elements[t];!pi(n)||!Qi(n)||(Object.assign(n.style,i),Object.keys(s).forEach(function(a){var o=s[a];o===!1?n.removeAttribute(a):n.setAttribute(a,o===!0?"":o)}))})}function uT(r){var e=r.state,t={popper:{position:e.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(e.elements.popper.style,t.popper),e.styles=t,e.elements.arrow&&Object.assign(e.elements.arrow.style,t.arrow),function(){Object.keys(e.elements).forEach(function(i){var s=e.elements[i],n=e.attributes[i]||{},a=Object.keys(e.styles.hasOwnProperty(i)?e.styles[i]:t[i]),o=a.reduce(function(l,c){return l[c]="",l},{});!pi(s)||!Qi(s)||(Object.assign(s.style,o),Object.keys(n).forEach(function(l){s.removeAttribute(l)}))})}}const xg={name:"applyStyles",enabled:!0,phase:"write",fn:dT,effect:uT,requires:["computeStyles"]};function qi(r){return r.split("-")[0]}var vs=Math.max,Yo=Math.min,pn=Math.round;function Rc(){var r=navigator.userAgentData;return r!=null&&r.brands&&Array.isArray(r.brands)?r.brands.map(function(e){return e.brand+"/"+e.version}).join(" "):navigator.userAgent}function Tg(){return!/^((?!chrome|android).)*safari/i.test(Rc())}function fn(r,e,t){e===void 0&&(e=!1),t===void 0&&(t=!1);var i=r.getBoundingClientRect(),s=1,n=1;e&&pi(r)&&(s=r.offsetWidth>0&&pn(i.width)/r.offsetWidth||1,n=r.offsetHeight>0&&pn(i.height)/r.offsetHeight||1);var a=Ts(r)?Jt(r):window,o=a.visualViewport,l=!Tg()&&t,c=(i.left+(l&&o?o.offsetLeft:0))/s,d=(i.top+(l&&o?o.offsetTop:0))/n,h=i.width/s,u=i.height/n;return{width:h,height:u,top:d,right:c+h,bottom:d+u,left:c,x:c,y:d}}function pd(r){var e=fn(r),t=r.offsetWidth,i=r.offsetHeight;return Math.abs(e.width-t)<=1&&(t=e.width),Math.abs(e.height-i)<=1&&(i=e.height),{x:r.offsetLeft,y:r.offsetTop,width:t,height:i}}function Eg(r,e){var t=e.getRootNode&&e.getRootNode();if(r.contains(e))return!0;if(t&&ud(t)){var i=e;do{if(i&&r.isSameNode(i))return!0;i=i.parentNode||i.host}while(i)}return!1}function mr(r){return Jt(r).getComputedStyle(r)}function pT(r){return["table","td","th"].indexOf(Qi(r))>=0}function $r(r){return((Ts(r)?r.ownerDocument:r.document)||window.document).documentElement}function pl(r){return Qi(r)==="html"?r:r.assignedSlot||r.parentNode||(ud(r)?r.host:null)||$r(r)}function _p(r){return!pi(r)||mr(r).position==="fixed"?null:r.offsetParent}function fT(r){var e=/firefox/i.test(Rc()),t=/Trident/i.test(Rc());if(t&&pi(r)){var i=mr(r);if(i.position==="fixed")return null}var s=pl(r);for(ud(s)&&(s=s.host);pi(s)&&["html","body"].indexOf(Qi(s))<0;){var n=mr(s);if(n.transform!=="none"||n.perspective!=="none"||n.contain==="paint"||["transform","perspective"].indexOf(n.willChange)!==-1||e&&n.willChange==="filter"||e&&n.filter&&n.filter!=="none")return s;s=s.parentNode}return null}function Ta(r){for(var e=Jt(r),t=_p(r);t&&pT(t)&&mr(t).position==="static";)t=_p(t);return t&&(Qi(t)==="html"||Qi(t)==="body"&&mr(t).position==="static")?e:t||fT(r)||e}function fd(r){return["top","bottom"].indexOf(r)>=0?"x":"y"}function ea(r,e,t){return vs(r,Yo(e,t))}function mT(r,e,t){var i=ea(r,e,t);return i>t?t:i}function Ag(){return{top:0,right:0,bottom:0,left:0}}function Sg(r){return Object.assign({},Ag(),r)}function Cg(r,e){return e.reduce(function(t,i){return t[i]=r,t},{})}var gT=function(e,t){return e=typeof e=="function"?e(Object.assign({},t.rects,{placement:t.placement})):e,Sg(typeof e!="number"?e:Cg(e,xa))};function yT(r){var e,t=r.state,i=r.name,s=r.options,n=t.elements.arrow,a=t.modifiersData.popperOffsets,o=qi(t.placement),l=fd(o),c=[Yt,mi].indexOf(o)>=0,d=c?"height":"width";if(!(!n||!a)){var h=gT(s.padding,t),u=pd(n),p=l==="y"?$t:Yt,f=l==="y"?fi:mi,m=t.rects.reference[d]+t.rects.reference[l]-a[l]-t.rects.popper[d],g=a[l]-t.rects.reference[l],y=Ta(n),w=y?l==="y"?y.clientHeight||0:y.clientWidth||0:0,b=m/2-g/2,v=h[p],E=w-u[d]-h[f],C=w/2-u[d]/2+b,I=ea(v,C,E),L=l;t.modifiersData[i]=(e={},e[L]=I,e.centerOffset=I-C,e)}}function vT(r){var e=r.state,t=r.options,i=t.element,s=i===void 0?"[data-popper-arrow]":i;s!=null&&(typeof s=="string"&&(s=e.elements.popper.querySelector(s),!s)||Eg(e.elements.popper,s)&&(e.elements.arrow=s))}const bT={name:"arrow",enabled:!0,phase:"main",fn:yT,effect:vT,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function mn(r){return r.split("-")[1]}var wT={top:"auto",right:"auto",bottom:"auto",left:"auto"};function _T(r,e){var t=r.x,i=r.y,s=e.devicePixelRatio||1;return{x:pn(t*s)/s||0,y:pn(i*s)/s||0}}function xp(r){var e,t=r.popper,i=r.popperRect,s=r.placement,n=r.variation,a=r.offsets,o=r.position,l=r.gpuAcceleration,c=r.adaptive,d=r.roundOffsets,h=r.isFixed,u=a.x,p=u===void 0?0:u,f=a.y,m=f===void 0?0:f,g=typeof d=="function"?d({x:p,y:m}):{x:p,y:m};p=g.x,m=g.y;var y=a.hasOwnProperty("x"),w=a.hasOwnProperty("y"),b=Yt,v=$t,E=window;if(c){var C=Ta(t),I="clientHeight",L="clientWidth";if(C===Jt(t)&&(C=$r(t),mr(C).position!=="static"&&o==="absolute"&&(I="scrollHeight",L="scrollWidth")),C=C,s===$t||(s===Yt||s===mi)&&n===ha){v=fi;var k=h&&C===E&&E.visualViewport?E.visualViewport.height:C[I];m-=k-i.height,m*=l?1:-1}if(s===Yt||(s===$t||s===fi)&&n===ha){b=mi;var N=h&&C===E&&E.visualViewport?E.visualViewport.width:C[L];p-=N-i.width,p*=l?1:-1}}var G=Object.assign({position:o},c&&wT),A=d===!0?_T({x:p,y:m},Jt(t)):{x:p,y:m};if(p=A.x,m=A.y,l){var S;return Object.assign({},G,(S={},S[v]=w?"0":"",S[b]=y?"0":"",S.transform=(E.devicePixelRatio||1)<=1?"translate("+p+"px, "+m+"px)":"translate3d("+p+"px, "+m+"px, 0)",S))}return Object.assign({},G,(e={},e[v]=w?m+"px":"",e[b]=y?p+"px":"",e.transform="",e))}function xT(r){var e=r.state,t=r.options,i=t.gpuAcceleration,s=i===void 0?!0:i,n=t.adaptive,a=n===void 0?!0:n,o=t.roundOffsets,l=o===void 0?!0:o,c={placement:qi(e.placement),variation:mn(e.placement),popper:e.elements.popper,popperRect:e.rects.popper,gpuAcceleration:s,isFixed:e.options.strategy==="fixed"};e.modifiersData.popperOffsets!=null&&(e.styles.popper=Object.assign({},e.styles.popper,xp(Object.assign({},c,{offsets:e.modifiersData.popperOffsets,position:e.options.strategy,adaptive:a,roundOffsets:l})))),e.modifiersData.arrow!=null&&(e.styles.arrow=Object.assign({},e.styles.arrow,xp(Object.assign({},c,{offsets:e.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:l})))),e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-placement":e.placement})}const TT={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:xT,data:{}};var eo={passive:!0};function ET(r){var e=r.state,t=r.instance,i=r.options,s=i.scroll,n=s===void 0?!0:s,a=i.resize,o=a===void 0?!0:a,l=Jt(e.elements.popper),c=[].concat(e.scrollParents.reference,e.scrollParents.popper);return n&&c.forEach(function(d){d.addEventListener("scroll",t.update,eo)}),o&&l.addEventListener("resize",t.update,eo),function(){n&&c.forEach(function(d){d.removeEventListener("scroll",t.update,eo)}),o&&l.removeEventListener("resize",t.update,eo)}}const AT={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:ET,data:{}};var ST={left:"right",right:"left",bottom:"top",top:"bottom"};function Ao(r){return r.replace(/left|right|bottom|top/g,function(e){return ST[e]})}var CT={start:"end",end:"start"};function Tp(r){return r.replace(/start|end/g,function(e){return CT[e]})}function md(r){var e=Jt(r),t=e.pageXOffset,i=e.pageYOffset;return{scrollLeft:t,scrollTop:i}}function gd(r){return fn($r(r)).left+md(r).scrollLeft}function MT(r,e){var t=Jt(r),i=$r(r),s=t.visualViewport,n=i.clientWidth,a=i.clientHeight,o=0,l=0;if(s){n=s.width,a=s.height;var c=Tg();(c||!c&&e==="fixed")&&(o=s.offsetLeft,l=s.offsetTop)}return{width:n,height:a,x:o+gd(r),y:l}}function kT(r){var e,t=$r(r),i=md(r),s=(e=r.ownerDocument)==null?void 0:e.body,n=vs(t.scrollWidth,t.clientWidth,s?s.scrollWidth:0,s?s.clientWidth:0),a=vs(t.scrollHeight,t.clientHeight,s?s.scrollHeight:0,s?s.clientHeight:0),o=-i.scrollLeft+gd(r),l=-i.scrollTop;return mr(s||t).direction==="rtl"&&(o+=vs(t.clientWidth,s?s.clientWidth:0)-n),{width:n,height:a,x:o,y:l}}function yd(r){var e=mr(r),t=e.overflow,i=e.overflowX,s=e.overflowY;return/auto|scroll|overlay|hidden/.test(t+s+i)}function Mg(r){return["html","body","#document"].indexOf(Qi(r))>=0?r.ownerDocument.body:pi(r)&&yd(r)?r:Mg(pl(r))}function ta(r,e){var t;e===void 0&&(e=[]);var i=Mg(r),s=i===((t=r.ownerDocument)==null?void 0:t.body),n=Jt(i),a=s?[n].concat(n.visualViewport||[],yd(i)?i:[]):i,o=e.concat(a);return s?o:o.concat(ta(pl(a)))}function Lc(r){return Object.assign({},r,{left:r.x,top:r.y,right:r.x+r.width,bottom:r.y+r.height})}function IT(r,e){var t=fn(r,!1,e==="fixed");return t.top=t.top+r.clientTop,t.left=t.left+r.clientLeft,t.bottom=t.top+r.clientHeight,t.right=t.left+r.clientWidth,t.width=r.clientWidth,t.height=r.clientHeight,t.x=t.left,t.y=t.top,t}function Ep(r,e,t){return e===wg?Lc(MT(r,t)):Ts(e)?IT(e,t):Lc(kT($r(r)))}function PT(r){var e=ta(pl(r)),t=["absolute","fixed"].indexOf(mr(r).position)>=0,i=t&&pi(r)?Ta(r):r;return Ts(i)?e.filter(function(s){return Ts(s)&&Eg(s,i)&&Qi(s)!=="body"}):[]}function BT(r,e,t,i){var s=e==="clippingParents"?PT(r):[].concat(e),n=[].concat(s,[t]),a=n[0],o=n.reduce(function(l,c){var d=Ep(r,c,i);return l.top=vs(d.top,l.top),l.right=Yo(d.right,l.right),l.bottom=Yo(d.bottom,l.bottom),l.left=vs(d.left,l.left),l},Ep(r,a,i));return o.width=o.right-o.left,o.height=o.bottom-o.top,o.x=o.left,o.y=o.top,o}function kg(r){var e=r.reference,t=r.element,i=r.placement,s=i?qi(i):null,n=i?mn(i):null,a=e.x+e.width/2-t.width/2,o=e.y+e.height/2-t.height/2,l;switch(s){case $t:l={x:a,y:e.y-t.height};break;case fi:l={x:a,y:e.y+e.height};break;case mi:l={x:e.x+e.width,y:o};break;case Yt:l={x:e.x-t.width,y:o};break;default:l={x:e.x,y:e.y}}var c=s?fd(s):null;if(c!=null){var d=c==="y"?"height":"width";switch(n){case un:l[c]=l[c]-(e[d]/2-t[d]/2);break;case ha:l[c]=l[c]+(e[d]/2-t[d]/2);break}}return l}function ca(r,e){e===void 0&&(e={});var t=e,i=t.placement,s=i===void 0?r.placement:i,n=t.strategy,a=n===void 0?r.strategy:n,o=t.boundary,l=o===void 0?Q1:o,c=t.rootBoundary,d=c===void 0?wg:c,h=t.elementContext,u=h===void 0?Ln:h,p=t.altBoundary,f=p===void 0?!1:p,m=t.padding,g=m===void 0?0:m,y=Sg(typeof g!="number"?g:Cg(g,xa)),w=u===Ln?eT:Ln,b=r.rects.popper,v=r.elements[f?w:u],E=BT(Ts(v)?v:v.contextElement||$r(r.elements.popper),l,d,a),C=fn(r.elements.reference),I=kg({reference:C,element:b,strategy:"absolute",placement:s}),L=Lc(Object.assign({},b,I)),k=u===Ln?L:C,N={top:E.top-k.top+y.top,bottom:k.bottom-E.bottom+y.bottom,left:E.left-k.left+y.left,right:k.right-E.right+y.right},G=r.modifiersData.offset;if(u===Ln&&G){var A=G[s];Object.keys(N).forEach(function(S){var x=[mi,fi].indexOf(S)>=0?1:-1,D=[$t,fi].indexOf(S)>=0?"y":"x";N[S]+=A[D]*x})}return N}function RT(r,e){e===void 0&&(e={});var t=e,i=t.placement,s=t.boundary,n=t.rootBoundary,a=t.padding,o=t.flipVariations,l=t.allowedAutoPlacements,c=l===void 0?_g:l,d=mn(i),h=d?o?wp:wp.filter(function(f){return mn(f)===d}):xa,u=h.filter(function(f){return c.indexOf(f)>=0});u.length===0&&(u=h);var p=u.reduce(function(f,m){return f[m]=ca(r,{placement:m,boundary:s,rootBoundary:n,padding:a})[qi(m)],f},{});return Object.keys(p).sort(function(f,m){return p[f]-p[m]})}function LT(r){if(qi(r)===dd)return[];var e=Ao(r);return[Tp(r),e,Tp(e)]}function DT(r){var e=r.state,t=r.options,i=r.name;if(!e.modifiersData[i]._skip){for(var s=t.mainAxis,n=s===void 0?!0:s,a=t.altAxis,o=a===void 0?!0:a,l=t.fallbackPlacements,c=t.padding,d=t.boundary,h=t.rootBoundary,u=t.altBoundary,p=t.flipVariations,f=p===void 0?!0:p,m=t.allowedAutoPlacements,g=e.options.placement,y=qi(g),w=y===g,b=l||(w||!f?[Ao(g)]:LT(g)),v=[g].concat(b).reduce(function(Q,Z){return Q.concat(qi(Z)===dd?RT(e,{placement:Z,boundary:d,rootBoundary:h,padding:c,flipVariations:f,allowedAutoPlacements:m}):Z)},[]),E=e.rects.reference,C=e.rects.popper,I=new Map,L=!0,k=v[0],N=0;N=0,D=x?"width":"height",$=ca(e,{placement:G,boundary:d,rootBoundary:h,altBoundary:u,padding:c}),R=x?S?mi:Yt:S?fi:$t;E[D]>C[D]&&(R=Ao(R));var O=Ao(R),W=[];if(n&&W.push($[A]<=0),o&&W.push($[R]<=0,$[O]<=0),W.every(function(Q){return Q})){k=G,L=!1;break}I.set(G,W)}if(L)for(var V=f?3:1,F=function(Z){var ye=v.find(function(Ce){var ce=I.get(Ce);if(ce)return ce.slice(0,Z).every(function(fe){return fe})});if(ye)return k=ye,"break"},U=V;U>0;U--){var te=F(U);if(te==="break")break}e.placement!==k&&(e.modifiersData[i]._skip=!0,e.placement=k,e.reset=!0)}}const OT={name:"flip",enabled:!0,phase:"main",fn:DT,requiresIfExists:["offset"],data:{_skip:!1}};function Ap(r,e,t){return t===void 0&&(t={x:0,y:0}),{top:r.top-e.height-t.y,right:r.right-e.width+t.x,bottom:r.bottom-e.height+t.y,left:r.left-e.width-t.x}}function Sp(r){return[$t,mi,fi,Yt].some(function(e){return r[e]>=0})}function FT(r){var e=r.state,t=r.name,i=e.rects.reference,s=e.rects.popper,n=e.modifiersData.preventOverflow,a=ca(e,{elementContext:"reference"}),o=ca(e,{altBoundary:!0}),l=Ap(a,i),c=Ap(o,s,n),d=Sp(l),h=Sp(c);e.modifiersData[t]={referenceClippingOffsets:l,popperEscapeOffsets:c,isReferenceHidden:d,hasPopperEscaped:h},e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-reference-hidden":d,"data-popper-escaped":h})}const NT={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:FT};function UT(r,e,t){var i=qi(r),s=[Yt,$t].indexOf(i)>=0?-1:1,n=typeof t=="function"?t(Object.assign({},e,{placement:r})):t,a=n[0],o=n[1];return a=a||0,o=(o||0)*s,[Yt,mi].indexOf(i)>=0?{x:o,y:a}:{x:a,y:o}}function HT(r){var e=r.state,t=r.options,i=r.name,s=t.offset,n=s===void 0?[0,0]:s,a=_g.reduce(function(d,h){return d[h]=UT(h,e.rects,n),d},{}),o=a[e.placement],l=o.x,c=o.y;e.modifiersData.popperOffsets!=null&&(e.modifiersData.popperOffsets.x+=l,e.modifiersData.popperOffsets.y+=c),e.modifiersData[i]=a}const GT={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:HT};function VT(r){var e=r.state,t=r.name;e.modifiersData[t]=kg({reference:e.rects.reference,element:e.rects.popper,strategy:"absolute",placement:e.placement})}const WT={name:"popperOffsets",enabled:!0,phase:"read",fn:VT,data:{}};function zT(r){return r==="x"?"y":"x"}function jT(r){var e=r.state,t=r.options,i=r.name,s=t.mainAxis,n=s===void 0?!0:s,a=t.altAxis,o=a===void 0?!1:a,l=t.boundary,c=t.rootBoundary,d=t.altBoundary,h=t.padding,u=t.tether,p=u===void 0?!0:u,f=t.tetherOffset,m=f===void 0?0:f,g=ca(e,{boundary:l,rootBoundary:c,padding:h,altBoundary:d}),y=qi(e.placement),w=mn(e.placement),b=!w,v=fd(y),E=zT(v),C=e.modifiersData.popperOffsets,I=e.rects.reference,L=e.rects.popper,k=typeof m=="function"?m(Object.assign({},e.rects,{placement:e.placement})):m,N=typeof k=="number"?{mainAxis:k,altAxis:k}:Object.assign({mainAxis:0,altAxis:0},k),G=e.modifiersData.offset?e.modifiersData.offset[e.placement]:null,A={x:0,y:0};if(C){if(n){var S,x=v==="y"?$t:Yt,D=v==="y"?fi:mi,$=v==="y"?"height":"width",R=C[v],O=R+g[x],W=R-g[D],V=p?-L[$]/2:0,F=w===un?I[$]:L[$],U=w===un?-L[$]:-I[$],te=e.elements.arrow,Q=p&&te?pd(te):{width:0,height:0},Z=e.modifiersData["arrow#persistent"]?e.modifiersData["arrow#persistent"].padding:Ag(),ye=Z[x],Ce=Z[D],ce=ea(0,I[$],Q[$]),fe=b?I[$]/2-V-ce-ye-N.mainAxis:F-ce-ye-N.mainAxis,we=b?-I[$]/2+V+ce+Ce+N.mainAxis:U+ce+Ce+N.mainAxis,le=e.elements.arrow&&Ta(e.elements.arrow),pe=le?v==="y"?le.clientTop||0:le.clientLeft||0:0,be=(S=G?.[v])!=null?S:0,T=R+fe-be-pe,Y=R+we-be,j=ea(p?Yo(O,T):O,R,p?vs(W,Y):W);C[v]=j,A[v]=j-R}if(o){var P,M=v==="x"?$t:Yt,H=v==="x"?fi:mi,J=C[E],ee=E==="y"?"height":"width",z=J+g[M],re=J-g[H],he=[$t,Yt].indexOf(y)!==-1,ne=(P=G?.[E])!=null?P:0,_e=he?z:J-I[ee]-L[ee]-ne+N.altAxis,Ye=he?J+I[ee]+L[ee]-ne-N.altAxis:re,Fe=p&&he?mT(_e,J,Ye):ea(p?_e:z,J,p?Ye:re);C[E]=Fe,A[E]=Fe-J}e.modifiersData[i]=A}}const $T={name:"preventOverflow",enabled:!0,phase:"main",fn:jT,requiresIfExists:["offset"]};function YT(r){return{scrollLeft:r.scrollLeft,scrollTop:r.scrollTop}}function XT(r){return r===Jt(r)||!pi(r)?md(r):YT(r)}function qT(r){var e=r.getBoundingClientRect(),t=pn(e.width)/r.offsetWidth||1,i=pn(e.height)/r.offsetHeight||1;return t!==1||i!==1}function KT(r,e,t){t===void 0&&(t=!1);var i=pi(e),s=pi(e)&&qT(e),n=$r(e),a=fn(r,s,t),o={scrollLeft:0,scrollTop:0},l={x:0,y:0};return(i||!i&&!t)&&((Qi(e)!=="body"||yd(n))&&(o=XT(e)),pi(e)?(l=fn(e,!0),l.x+=e.clientLeft,l.y+=e.clientTop):n&&(l.x=gd(n))),{x:a.left+o.scrollLeft-l.x,y:a.top+o.scrollTop-l.y,width:a.width,height:a.height}}function ZT(r){var e=new Map,t=new Set,i=[];r.forEach(function(n){e.set(n.name,n)});function s(n){t.add(n.name);var a=[].concat(n.requires||[],n.requiresIfExists||[]);a.forEach(function(o){if(!t.has(o)){var l=e.get(o);l&&s(l)}}),i.push(n)}return r.forEach(function(n){t.has(n.name)||s(n)}),i}function JT(r){var e=ZT(r);return cT.reduce(function(t,i){return t.concat(e.filter(function(s){return s.phase===i}))},[])}function QT(r){var e;return function(){return e||(e=new Promise(function(t){Promise.resolve().then(function(){e=void 0,t(r())})})),e}}function eE(r){var e=r.reduce(function(t,i){var s=t[i.name];return t[i.name]=s?Object.assign({},s,i,{options:Object.assign({},s.options,i.options),data:Object.assign({},s.data,i.data)}):i,t},{});return Object.keys(e).map(function(t){return e[t]})}var Cp={placement:"bottom",modifiers:[],strategy:"absolute"};function Mp(){for(var r=arguments.length,e=new Array(r),t=0;t-1}function Lg(r,e){return typeof r=="function"?r.apply(void 0,e):r}function kp(r,e){if(e===0)return r;var t;return function(i){clearTimeout(t),t=setTimeout(function(){r(i)},e)}}function aE(r){return r.split(/\s+/).filter(Boolean)}function zs(r){return[].concat(r)}function Ip(r,e){r.indexOf(e)===-1&&r.push(e)}function oE(r){return r.filter(function(e,t){return r.indexOf(e)===t})}function lE(r){return r.split("-")[0]}function Xo(r){return[].slice.call(r)}function Pp(r){return Object.keys(r).reduce(function(e,t){return r[t]!==void 0&&(e[t]=r[t]),e},{})}function ia(){return document.createElement("div")}function fl(r){return["Element","Fragment"].some(function(e){return vd(r,e)})}function hE(r){return vd(r,"NodeList")}function cE(r){return vd(r,"MouseEvent")}function dE(r){return!!(r&&r._tippy&&r._tippy.reference===r)}function uE(r){return fl(r)?[r]:hE(r)?Xo(r):Array.isArray(r)?r:Xo(document.querySelectorAll(r))}function gh(r,e){r.forEach(function(t){t&&(t.style.transitionDuration=e+"ms")})}function Bp(r,e){r.forEach(function(t){t&&t.setAttribute("data-state",e)})}function pE(r){var e,t=zs(r),i=t[0];return i!=null&&(e=i.ownerDocument)!=null&&e.body?i.ownerDocument:document}function fE(r,e){var t=e.clientX,i=e.clientY;return r.every(function(s){var n=s.popperRect,a=s.popperState,o=s.props,l=o.interactiveBorder,c=lE(a.placement),d=a.modifiersData.offset;if(!d)return!0;var h=c==="bottom"?d.top.y:0,u=c==="top"?d.bottom.y:0,p=c==="right"?d.left.x:0,f=c==="left"?d.right.x:0,m=n.top-i+h>l,g=i-n.bottom-u>l,y=n.left-t+p>l,w=t-n.right-f>l;return m||g||y||w})}function yh(r,e,t){var i=e+"EventListener";["transitionend","webkitTransitionEnd"].forEach(function(s){r[i](s,t)})}function Rp(r,e){for(var t=e;t;){var i;if(r.contains(t))return!0;t=t.getRootNode==null||(i=t.getRootNode())==null?void 0:i.host}return!1}var Wi={isTouch:!1},Lp=0;function mE(){Wi.isTouch||(Wi.isTouch=!0,window.performance&&document.addEventListener("mousemove",Dg))}function Dg(){var r=performance.now();r-Lp<20&&(Wi.isTouch=!1,document.removeEventListener("mousemove",Dg)),Lp=r}function gE(){var r=document.activeElement;if(dE(r)){var e=r._tippy;r.blur&&!e.state.isVisible&&r.blur()}}function yE(){document.addEventListener("touchstart",mE,ss),window.addEventListener("blur",gE)}var vE=typeof window<"u"&&typeof document<"u",bE=vE?!!window.msCrypto:!1,wE={animateFill:!1,followCursor:!1,inlinePositioning:!1,sticky:!1},_E={allowHTML:!1,animation:"fade",arrow:!0,content:"",inertia:!1,maxWidth:350,role:"tooltip",theme:"",zIndex:9999},Ai=Object.assign({appendTo:Rg,aria:{content:"auto",expanded:"auto"},delay:0,duration:[300,250],getReferenceClientRect:null,hideOnClick:!0,ignoreAttributes:!1,interactive:!1,interactiveBorder:2,interactiveDebounce:0,moveTransition:"",offset:[0,10],onAfterUpdate:function(){},onBeforeUpdate:function(){},onCreate:function(){},onDestroy:function(){},onHidden:function(){},onHide:function(){},onMount:function(){},onShow:function(){},onShown:function(){},onTrigger:function(){},onUntrigger:function(){},onClickOutside:function(){},placement:"top",plugins:[],popperOptions:{},render:null,showOnCreate:!1,touch:!0,trigger:"mouseenter focus",triggerTarget:null},wE,_E),xE=Object.keys(Ai),TE=function(e){var t=Object.keys(e);t.forEach(function(i){Ai[i]=e[i]})};function Og(r){var e=r.plugins||[],t=e.reduce(function(i,s){var n=s.name,a=s.defaultValue;if(n){var o;i[n]=r[n]!==void 0?r[n]:(o=Ai[n])!=null?o:a}return i},{});return Object.assign({},r,t)}function EE(r,e){var t=e?Object.keys(Og(Object.assign({},Ai,{plugins:e}))):xE,i=t.reduce(function(s,n){var a=(r.getAttribute("data-tippy-"+n)||"").trim();if(!a)return s;if(n==="content")s[n]=a;else try{s[n]=JSON.parse(a)}catch{s[n]=a}return s},{});return i}function Dp(r,e){var t=Object.assign({},e,{content:Lg(e.content,[r])},e.ignoreAttributes?{}:EE(r,e.plugins));return t.aria=Object.assign({},Ai.aria,t.aria),t.aria={expanded:t.aria.expanded==="auto"?e.interactive:t.aria.expanded,content:t.aria.content==="auto"?e.interactive?null:"describedby":t.aria.content},t}var AE=function(){return"innerHTML"};function Dc(r,e){r[AE()]=e}function Op(r){var e=ia();return r===!0?e.className=Pg:(e.className=Bg,fl(r)?e.appendChild(r):Dc(e,r)),e}function Fp(r,e){fl(e.content)?(Dc(r,""),r.appendChild(e.content)):typeof e.content!="function"&&(e.allowHTML?Dc(r,e.content):r.textContent=e.content)}function Oc(r){var e=r.firstElementChild,t=Xo(e.children);return{box:e,content:t.find(function(i){return i.classList.contains(Ig)}),arrow:t.find(function(i){return i.classList.contains(Pg)||i.classList.contains(Bg)}),backdrop:t.find(function(i){return i.classList.contains(nE)})}}function Fg(r){var e=ia(),t=ia();t.className=sE,t.setAttribute("data-state","hidden"),t.setAttribute("tabindex","-1");var i=ia();i.className=Ig,i.setAttribute("data-state","hidden"),Fp(i,r.props),e.appendChild(t),t.appendChild(i),s(r.props,r.props);function s(n,a){var o=Oc(e),l=o.box,c=o.content,d=o.arrow;a.theme?l.setAttribute("data-theme",a.theme):l.removeAttribute("data-theme"),typeof a.animation=="string"?l.setAttribute("data-animation",a.animation):l.removeAttribute("data-animation"),a.inertia?l.setAttribute("data-inertia",""):l.removeAttribute("data-inertia"),l.style.maxWidth=typeof a.maxWidth=="number"?a.maxWidth+"px":a.maxWidth,a.role?l.setAttribute("role",a.role):l.removeAttribute("role"),(n.content!==a.content||n.allowHTML!==a.allowHTML)&&Fp(c,r.props),a.arrow?d?n.arrow!==a.arrow&&(l.removeChild(d),l.appendChild(Op(a.arrow))):l.appendChild(Op(a.arrow)):d&&l.removeChild(d)}return{popper:e,onUpdate:s}}Fg.$$tippy=!0;var SE=1,to=[],vh=[];function CE(r,e){var t=Dp(r,Object.assign({},Ai,Og(Pp(e)))),i,s,n,a=!1,o=!1,l=!1,c=!1,d,h,u,p=[],f=kp(T,t.interactiveDebounce),m,g=SE++,y=null,w=oE(t.plugins),b={isEnabled:!0,isVisible:!1,isDestroyed:!1,isMounted:!1,isShown:!1},v={id:g,reference:r,popper:ia(),popperInstance:y,props:t,state:b,plugins:w,clearDelayTimeouts:_e,setProps:Ye,setContent:Fe,show:Gt,hide:Xr,hideWithInteractivity:Qt,enable:he,disable:ne,unmount:qr,destroy:nt};if(!t.render)return v;var E=t.render(v),C=E.popper,I=E.onUpdate;C.setAttribute("data-tippy-root",""),C.id="tippy-"+v.id,v.popper=C,r._tippy=v,C._tippy=v;var L=w.map(function(q){return q.fn(v)}),k=r.hasAttribute("aria-expanded");return le(),V(),R(),O("onCreate",[v]),t.showOnCreate&&z(),C.addEventListener("mouseenter",function(){v.props.interactive&&v.state.isVisible&&v.clearDelayTimeouts()}),C.addEventListener("mouseleave",function(){v.props.interactive&&v.props.trigger.indexOf("mouseenter")>=0&&x().addEventListener("mousemove",f)}),v;function N(){var q=v.props.touch;return Array.isArray(q)?q:[q,0]}function G(){return N()[0]==="hold"}function A(){var q;return!!((q=v.props.render)!=null&&q.$$tippy)}function S(){return m||r}function x(){var q=S().parentNode;return q?pE(q):document}function D(){return Oc(C)}function $(q){return v.state.isMounted&&!v.state.isVisible||Wi.isTouch||d&&d.type==="focus"?0:mh(v.props.delay,q?0:1,Ai.delay)}function R(q){q===void 0&&(q=!1),C.style.pointerEvents=v.props.interactive&&!q?"":"none",C.style.zIndex=""+v.props.zIndex}function O(q,me,Te){if(Te===void 0&&(Te=!0),L.forEach(function(Ve){Ve[q]&&Ve[q].apply(Ve,me)}),Te){var $e;($e=v.props)[q].apply($e,me)}}function W(){var q=v.props.aria;if(q.content){var me="aria-"+q.content,Te=C.id,$e=zs(v.props.triggerTarget||r);$e.forEach(function(Ve){var Ct=Ve.getAttribute(me);if(v.state.isVisible)Ve.setAttribute(me,Ct?Ct+" "+Te:Te);else{var Vt=Ct&&Ct.replace(Te,"").trim();Vt?Ve.setAttribute(me,Vt):Ve.removeAttribute(me)}})}}function V(){if(!(k||!v.props.aria.expanded)){var q=zs(v.props.triggerTarget||r);q.forEach(function(me){v.props.interactive?me.setAttribute("aria-expanded",v.state.isVisible&&me===S()?"true":"false"):me.removeAttribute("aria-expanded")})}}function F(){x().removeEventListener("mousemove",f),to=to.filter(function(q){return q!==f})}function U(q){if(!(Wi.isTouch&&(l||q.type==="mousedown"))){var me=q.composedPath&&q.composedPath()[0]||q.target;if(!(v.props.interactive&&Rp(C,me))){if(zs(v.props.triggerTarget||r).some(function(Te){return Rp(Te,me)})){if(Wi.isTouch||v.state.isVisible&&v.props.trigger.indexOf("click")>=0)return}else O("onClickOutside",[v,q]);v.props.hideOnClick===!0&&(v.clearDelayTimeouts(),v.hide(),o=!0,setTimeout(function(){o=!1}),v.state.isMounted||ye())}}}function te(){l=!0}function Q(){l=!1}function Z(){var q=x();q.addEventListener("mousedown",U,!0),q.addEventListener("touchend",U,ss),q.addEventListener("touchstart",Q,ss),q.addEventListener("touchmove",te,ss)}function ye(){var q=x();q.removeEventListener("mousedown",U,!0),q.removeEventListener("touchend",U,ss),q.removeEventListener("touchstart",Q,ss),q.removeEventListener("touchmove",te,ss)}function Ce(q,me){fe(q,function(){!v.state.isVisible&&C.parentNode&&C.parentNode.contains(C)&&me()})}function ce(q,me){fe(q,me)}function fe(q,me){var Te=D().box;function $e(Ve){Ve.target===Te&&(yh(Te,"remove",$e),me())}if(q===0)return me();yh(Te,"remove",h),yh(Te,"add",$e),h=$e}function we(q,me,Te){Te===void 0&&(Te=!1);var $e=zs(v.props.triggerTarget||r);$e.forEach(function(Ve){Ve.addEventListener(q,me,Te),p.push({node:Ve,eventType:q,handler:me,options:Te})})}function le(){G()&&(we("touchstart",be,{passive:!0}),we("touchend",Y,{passive:!0})),aE(v.props.trigger).forEach(function(q){if(q!=="manual")switch(we(q,be),q){case"mouseenter":we("mouseleave",Y);break;case"focus":we(bE?"focusout":"blur",j);break;case"focusin":we("focusout",j);break}})}function pe(){p.forEach(function(q){var me=q.node,Te=q.eventType,$e=q.handler,Ve=q.options;me.removeEventListener(Te,$e,Ve)}),p=[]}function be(q){var me,Te=!1;if(!(!v.state.isEnabled||P(q)||o)){var $e=((me=d)==null?void 0:me.type)==="focus";d=q,m=q.currentTarget,V(),!v.state.isVisible&&cE(q)&&to.forEach(function(Ve){return Ve(q)}),q.type==="click"&&(v.props.trigger.indexOf("mouseenter")<0||a)&&v.props.hideOnClick!==!1&&v.state.isVisible?Te=!0:z(q),q.type==="click"&&(a=!Te),Te&&!$e&&re(q)}}function T(q){var me=q.target,Te=S().contains(me)||C.contains(me);if(!(q.type==="mousemove"&&Te)){var $e=ee().concat(C).map(function(Ve){var Ct,Vt=Ve._tippy,tr=(Ct=Vt.popperInstance)==null?void 0:Ct.state;return tr?{popperRect:Ve.getBoundingClientRect(),popperState:tr,props:t}:null}).filter(Boolean);fE($e,q)&&(F(),re(q))}}function Y(q){var me=P(q)||v.props.trigger.indexOf("click")>=0&&a;if(!me){if(v.props.interactive){v.hideWithInteractivity(q);return}re(q)}}function j(q){v.props.trigger.indexOf("focusin")<0&&q.target!==S()||v.props.interactive&&q.relatedTarget&&C.contains(q.relatedTarget)||re(q)}function P(q){return Wi.isTouch?G()!==q.type.indexOf("touch")>=0:!1}function M(){H();var q=v.props,me=q.popperOptions,Te=q.placement,$e=q.offset,Ve=q.getReferenceClientRect,Ct=q.moveTransition,Vt=A()?Oc(C).arrow:null,tr=Ve?{getBoundingClientRect:Ve,contextElement:Ve.contextElement||S()}:r,wr={name:"$$tippy",enabled:!0,phase:"beforeWrite",requires:["computeStyles"],fn:function(Sa){var Cs=Sa.state;if(A()){var Ay=D(),Ml=Ay.box;["placement","reference-hidden","escaped"].forEach(function(Ca){Ca==="placement"?Ml.setAttribute("data-placement",Cs.placement):Cs.attributes.popper["data-popper-"+Ca]?Ml.setAttribute("data-"+Ca,""):Ml.removeAttribute("data-"+Ca)}),Cs.attributes.popper={}}}},ei=[{name:"offset",options:{offset:$e}},{name:"preventOverflow",options:{padding:{top:2,bottom:2,left:5,right:5}}},{name:"flip",options:{padding:5}},{name:"computeStyles",options:{adaptive:!Ct}},wr];A()&&Vt&&ei.push({name:"arrow",options:{element:Vt,padding:3}}),ei.push.apply(ei,me?.modifiers||[]),v.popperInstance=rE(tr,C,Object.assign({},me,{placement:Te,onFirstUpdate:u,modifiers:ei}))}function H(){v.popperInstance&&(v.popperInstance.destroy(),v.popperInstance=null)}function J(){var q=v.props.appendTo,me,Te=S();v.props.interactive&&q===Rg||q==="parent"?me=Te.parentNode:me=Lg(q,[Te]),me.contains(C)||me.appendChild(C),v.state.isMounted=!0,M()}function ee(){return Xo(C.querySelectorAll("[data-tippy-root]"))}function z(q){v.clearDelayTimeouts(),q&&O("onTrigger",[v,q]),Z();var me=$(!0),Te=N(),$e=Te[0],Ve=Te[1];Wi.isTouch&&$e==="hold"&&Ve&&(me=Ve),me?i=setTimeout(function(){v.show()},me):v.show()}function re(q){if(v.clearDelayTimeouts(),O("onUntrigger",[v,q]),!v.state.isVisible){ye();return}if(!(v.props.trigger.indexOf("mouseenter")>=0&&v.props.trigger.indexOf("click")>=0&&["mouseleave","mousemove"].indexOf(q.type)>=0&&a)){var me=$(!1);me?s=setTimeout(function(){v.state.isVisible&&v.hide()},me):n=requestAnimationFrame(function(){v.hide()})}}function he(){v.state.isEnabled=!0}function ne(){v.hide(),v.state.isEnabled=!1}function _e(){clearTimeout(i),clearTimeout(s),cancelAnimationFrame(n)}function Ye(q){if(!v.state.isDestroyed){O("onBeforeUpdate",[v,q]),pe();var me=v.props,Te=Dp(r,Object.assign({},me,Pp(q),{ignoreAttributes:!0}));v.props=Te,le(),me.interactiveDebounce!==Te.interactiveDebounce&&(F(),f=kp(T,Te.interactiveDebounce)),me.triggerTarget&&!Te.triggerTarget?zs(me.triggerTarget).forEach(function($e){$e.removeAttribute("aria-expanded")}):Te.triggerTarget&&r.removeAttribute("aria-expanded"),V(),R(),I&&I(me,Te),v.popperInstance&&(M(),ee().forEach(function($e){requestAnimationFrame($e._tippy.popperInstance.forceUpdate)})),O("onAfterUpdate",[v,q])}}function Fe(q){v.setProps({content:q})}function Gt(){var q=v.state.isVisible,me=v.state.isDestroyed,Te=!v.state.isEnabled,$e=Wi.isTouch&&!v.props.touch,Ve=mh(v.props.duration,0,Ai.duration);if(!(q||me||Te||$e)&&!S().hasAttribute("disabled")&&(O("onShow",[v],!1),v.props.onShow(v)!==!1)){if(v.state.isVisible=!0,A()&&(C.style.visibility="visible"),R(),Z(),v.state.isMounted||(C.style.transition="none"),A()){var Ct=D(),Vt=Ct.box,tr=Ct.content;gh([Vt,tr],0)}u=function(){var ei;if(!(!v.state.isVisible||c)){if(c=!0,C.offsetHeight,C.style.transition=v.props.moveTransition,A()&&v.props.animation){var Cl=D(),Sa=Cl.box,Cs=Cl.content;gh([Sa,Cs],Ve),Bp([Sa,Cs],"visible")}W(),V(),Ip(vh,v),(ei=v.popperInstance)==null||ei.forceUpdate(),O("onMount",[v]),v.props.animation&&A()&&ce(Ve,function(){v.state.isShown=!0,O("onShown",[v])})}},J()}}function Xr(){var q=!v.state.isVisible,me=v.state.isDestroyed,Te=!v.state.isEnabled,$e=mh(v.props.duration,1,Ai.duration);if(!(q||me||Te)&&(O("onHide",[v],!1),v.props.onHide(v)!==!1)){if(v.state.isVisible=!1,v.state.isShown=!1,c=!1,a=!1,A()&&(C.style.visibility="hidden"),F(),ye(),R(!0),A()){var Ve=D(),Ct=Ve.box,Vt=Ve.content;v.props.animation&&(gh([Ct,Vt],$e),Bp([Ct,Vt],"hidden"))}W(),V(),v.props.animation?A()&&Ce($e,v.unmount):v.unmount()}}function Qt(q){x().addEventListener("mousemove",f),Ip(to,f),f(q)}function qr(){v.state.isVisible&&v.hide(),v.state.isMounted&&(H(),ee().forEach(function(q){q._tippy.unmount()}),C.parentNode&&C.parentNode.removeChild(C),vh=vh.filter(function(q){return q!==v}),v.state.isMounted=!1,O("onHidden",[v]))}function nt(){v.state.isDestroyed||(v.clearDelayTimeouts(),v.unmount(),pe(),delete r._tippy,v.state.isDestroyed=!0,O("onDestroy",[v]))}}function Pt(r,e){e===void 0&&(e={});var t=Ai.plugins.concat(e.plugins||[]);yE();var i=Object.assign({},e,{plugins:t}),s=uE(r),n=s.reduce(function(a,o){var l=o&&CE(o,i);return l&&a.push(l),a},[]);return fl(r)?n[0]:n}Pt.defaultProps=Ai;Pt.setDefaultProps=TE;Pt.currentInput=Wi;Object.assign({},xg,{effect:function(e){var t=e.state,i={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};Object.assign(t.elements.popper.style,i.popper),t.styles=i,t.elements.arrow&&Object.assign(t.elements.arrow.style,i.arrow)}});Pt.setDefaultProps({render:Fg});const ME="modulepreload",kE=function(r){return"/smeditor/"+r},Np={},Ke=function(e,t,i){if(!t||t.length===0)return e();const s=document.getElementsByTagName("link");return Promise.all(t.map(n=>{if(n=kE(n),n in Np)return;Np[n]=!0;const a=n.endsWith(".css"),o=a?'[rel="stylesheet"]':"";if(!!i)for(let d=s.length-1;d>=0;d--){const h=s[d];if(h.href===n&&(!a||h.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${n}"]${o}`))return;const c=document.createElement("link");if(c.rel=a?"stylesheet":ME,a||(c.as="script",c.crossOrigin=""),c.href=n,document.head.appendChild(c),a)return new Promise((d,h)=>{c.addEventListener("load",d),c.addEventListener("error",()=>h(new Error(`Unable to preload CSS for ${n}`)))})})).then(()=>e()).catch(n=>{const a=new Event("vite:preloadError",{cancelable:!0});if(a.payload=n,window.dispatchEvent(a),!a.defaultPrevented)throw n})},qo={INVALID:["seeking position failed.","InvalidStateError"],GONE:["A requested file or directory could not be found at the time an operation was processed.","NotFoundError"],MISMATCH:["The path supplied exists, but was not an entry of requested type.","TypeMismatchError"],MOD_ERR:["The object can not be modified in this way.","InvalidModificationError"],SYNTAX:r=>[`Failed to execute 'write' on 'UnderlyingSinkBase': Invalid params passed. ${r}`,"SyntaxError"],ABORT:["The operation was aborted","AbortError"],SECURITY:["It was determined that certain files are unsafe for access within a Web application, or that too many calls are being made on file resources.","SecurityError"],DISALLOWED:["The request is not allowed by the user agent or the platform in the current context.","NotAllowedError"]},IE=r=>typeof r=="object"&&typeof r.type<"u";async function PE(r){var e,t,i;const{FolderHandle:s,FileHandle:n}=await Ke(()=>import("./memory-338b395e.js"),[]),{FileSystemDirectoryHandle:a}=await Ke(()=>Promise.resolve().then(()=>VA),void 0),o=(t=(e=r[0].webkitRelativePath)===null||e===void 0?void 0:e.split("/",1)[0])!==null&&t!==void 0?t:"",l=new s(o,!1);for(let c=0;c(f._entries[m]||(f._entries[m]=new s(m,!1)),f._entries[m]),l);p._entries[u]=new n(d.name,d,!1)}return new a(l)}async function BE(r){const{FileHandle:e}=await Ke(()=>import("./memory-338b395e.js"),[]),{FileSystemFileHandle:t}=await Ke(()=>Promise.resolve().then(()=>ey),void 0);return Array.from(r).map(s=>new t(new e(s.name,s,!1)))}const Ng=Object.freeze(Object.defineProperty({__proto__:null,errors:qo,isChunkObject:IE,makeDirHandleFromFileList:PE,makeFileHandlesFromFileList:BE},Symbol.toStringTag,{value:"Module"}));var ps={};/*! howler.js v2.2.4 | (c) 2013-2020, James Simpson of GoldFire Studios | MIT License | howlerjs.com */(function(r){(function(){var e=function(){this.init()};e.prototype={init:function(){var h=this||t;return h._counter=1e3,h._html5AudioPool=[],h.html5PoolSize=10,h._codecs={},h._howls=[],h._muted=!1,h._volume=1,h._canPlayEvent="canplaythrough",h._navigator=typeof window<"u"&&window.navigator?window.navigator:null,h.masterGain=null,h.noAudio=!1,h.usingWebAudio=!0,h.autoSuspend=!0,h.ctx=null,h.autoUnlock=!0,h._setup(),h},volume:function(h){var u=this||t;if(h=parseFloat(h),u.ctx||d(),h!==void 0&&h>=0&&h<=1){if(u._volume=h,u._muted)return u;u.usingWebAudio&&u.masterGain.gain.setValueAtTime(h,t.ctx.currentTime);for(var p=0;p=0;u--)h._howls[u].unload();return h.usingWebAudio&&h.ctx&&h.ctx.close!==void 0&&(h.ctx.close(),h.ctx=null,d()),h},codecs:function(h){return(this||t)._codecs[h.replace(/^x-/,"")]},_setup:function(){var h=this||t;if(h.state=h.ctx&&h.ctx.state||"suspended",h._autoSuspend(),!h.usingWebAudio)if(typeof Audio<"u")try{var u=new Audio;u.oncanplaythrough===void 0&&(h._canPlayEvent="canplay")}catch{h.noAudio=!0}else h.noAudio=!0;try{var u=new Audio;u.muted&&(h.noAudio=!0)}catch{}return h.noAudio||h._setupCodecs(),h},_setupCodecs:function(){var h=this||t,u=null;try{u=typeof Audio<"u"?new Audio:null}catch{return h}if(!u||typeof u.canPlayType!="function")return h;var p=u.canPlayType("audio/mpeg;").replace(/^no$/,""),f=h._navigator?h._navigator.userAgent:"",m=f.match(/OPR\/(\d+)/g),g=m&&parseInt(m[0].split("/")[1],10)<33,y=f.indexOf("Safari")!==-1&&f.indexOf("Chrome")===-1,w=f.match(/Version\/(.*?) /),b=y&&w&&parseInt(w[1],10)<15;return h._codecs={mp3:!(g||!p&&!u.canPlayType("audio/mp3;").replace(/^no$/,"")),mpeg:!!p,opus:!!u.canPlayType('audio/ogg; codecs="opus"').replace(/^no$/,""),ogg:!!u.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),oga:!!u.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),wav:!!(u.canPlayType('audio/wav; codecs="1"')||u.canPlayType("audio/wav")).replace(/^no$/,""),aac:!!u.canPlayType("audio/aac;").replace(/^no$/,""),caf:!!u.canPlayType("audio/x-caf;").replace(/^no$/,""),m4a:!!(u.canPlayType("audio/x-m4a;")||u.canPlayType("audio/m4a;")||u.canPlayType("audio/aac;")).replace(/^no$/,""),m4b:!!(u.canPlayType("audio/x-m4b;")||u.canPlayType("audio/m4b;")||u.canPlayType("audio/aac;")).replace(/^no$/,""),mp4:!!(u.canPlayType("audio/x-mp4;")||u.canPlayType("audio/mp4;")||u.canPlayType("audio/aac;")).replace(/^no$/,""),weba:!(b||!u.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/,"")),webm:!(b||!u.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/,"")),dolby:!!u.canPlayType('audio/mp4; codecs="ec-3"').replace(/^no$/,""),flac:!!(u.canPlayType("audio/x-flac;")||u.canPlayType("audio/flac;")).replace(/^no$/,"")},h},_unlockAudio:function(){var h=this||t;if(!h._audioUnlocked&&h.ctx){h._audioUnlocked=!1,h.autoUnlock=!1,h._mobileUnloaded||h.ctx.sampleRate===44100||(h._mobileUnloaded=!0,h.unload()),h._scratchBuffer=h.ctx.createBuffer(1,1,22050);var u=function(p){for(;h._html5AudioPool.length0?y._seek:p._sprite[h][0]/1e3),v=Math.max(0,(p._sprite[h][0]+p._sprite[h][1])/1e3-b),E=1e3*v/Math.abs(y._rate),C=p._sprite[h][0]/1e3,I=(p._sprite[h][0]+p._sprite[h][1])/1e3;y._sprite=h,y._ended=!1;var L=function(){y._paused=!1,y._seek=b,y._start=C,y._stop=I,y._loop=!(!y._loop&&!p._sprite[h][2])};if(b>=I)return void p._ended(y);var k=y._node;if(p._webAudio){var N=function(){p._playLock=!1,L(),p._refreshBuffer(y);var x=y._muted||p._muted?0:y._volume;k.gain.setValueAtTime(x,t.ctx.currentTime),y._playStart=t.ctx.currentTime,k.bufferSource.start===void 0?y._loop?k.bufferSource.noteGrainOn(0,b,86400):k.bufferSource.noteGrainOn(0,b,v):y._loop?k.bufferSource.start(0,b,86400):k.bufferSource.start(0,b,v),E!==1/0&&(p._endTimers[y._id]=setTimeout(p._ended.bind(p,y),E)),u||setTimeout(function(){p._emit("play",y._id),p._loadQueue()},0)};t.state==="running"&&t.ctx.state!=="interrupted"?N():(p._playLock=!0,p.once("resume",N),p._clearTimer(y._id))}else{var G=function(){k.currentTime=b,k.muted=y._muted||p._muted||t._muted||k.muted,k.volume=y._volume*t.volume(),k.playbackRate=y._rate;try{var x=k.play();if(x&&typeof Promise<"u"&&(x instanceof Promise||typeof x.then=="function")?(p._playLock=!0,L(),x.then(function(){p._playLock=!1,k._unlocked=!0,u?p._loadQueue():p._emit("play",y._id)}).catch(function(){p._playLock=!1,p._emit("playerror",y._id,"Playback was unable to start. This is most commonly an issue on mobile devices and Chrome where playback was not within a user interaction."),y._ended=!0,y._paused=!0})):u||(p._playLock=!1,L(),p._emit("play",y._id)),k.playbackRate=y._rate,k.paused)return void p._emit("playerror",y._id,"Playback was unable to start. This is most commonly an issue on mobile devices and Chrome where playback was not within a user interaction.");h!=="__default"||y._loop?p._endTimers[y._id]=setTimeout(p._ended.bind(p,y),E):(p._endTimers[y._id]=function(){p._ended(y),k.removeEventListener("ended",p._endTimers[y._id],!1)},k.addEventListener("ended",p._endTimers[y._id],!1))}catch(D){p._emit("playerror",y._id,D)}};k.src==="data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA"&&(k.src=p._src,k.load());var A=window&&window.ejecta||!k.readyState&&t._navigator.isCocoonJS;if(k.readyState>=3||A)G();else{p._playLock=!0,p._state="loading";var S=function(){p._state="loaded",G(),k.removeEventListener(t._canPlayEvent,S,!1)};k.addEventListener(t._canPlayEvent,S,!1),p._clearTimer(y._id)}}return y._id},pause:function(h){var u=this;if(u._state!=="loaded"||u._playLock)return u._queue.push({event:"pause",action:function(){u.pause(h)}}),u;for(var p=u._getSoundIds(h),f=0;f=0?u=parseInt(f[0],10):h=parseFloat(f[0]):f.length>=2&&(h=parseFloat(f[0]),u=parseInt(f[1],10));var m;if(!(h!==void 0&&h>=0&&h<=1))return m=u?p._soundById(u):p._sounds[0],m?m._volume:0;if(p._state!=="loaded"||p._playLock)return p._queue.push({event:"volume",action:function(){p.volume.apply(p,f)}}),p;u===void 0&&(p._volume=h),u=p._getSoundIds(u);for(var g=0;g0?f/v:f),C=Date.now();h._fadeTo=p,h._interval=setInterval(function(){var I=(Date.now()-C)/f;C=Date.now(),w+=b*I,w=Math.round(100*w)/100,w=b<0?Math.max(p,w):Math.min(p,w),y._webAudio?h._volume=w:y.volume(w,h._id,!0),g&&(y._volume=w),(pu&&w>=p)&&(clearInterval(h._interval),h._interval=null,h._fadeTo=null,y.volume(p,h._id),y._emit("fade",h._id))},E)},_stopFade:function(h){var u=this,p=u._soundById(h);return p&&p._interval&&(u._webAudio&&p._node.gain.cancelScheduledValues(t.ctx.currentTime),clearInterval(p._interval),p._interval=null,u.volume(p._fadeTo,h),p._fadeTo=null,u._emit("fade",h)),u},loop:function(){var h,u,p,f=this,m=arguments;if(m.length===0)return f._loop;if(m.length===1){if(typeof m[0]!="boolean")return!!(p=f._soundById(parseInt(m[0],10)))&&p._loop;h=m[0],f._loop=h}else m.length===2&&(h=m[0],u=parseInt(m[1],10));for(var g=f._getSoundIds(u),y=0;y=0?u=parseInt(f[0],10):h=parseFloat(f[0])}else f.length===2&&(h=parseFloat(f[0]),u=parseInt(f[1],10));var y;if(typeof h!="number")return y=p._soundById(u),y?y._rate:p._rate;if(p._state!=="loaded"||p._playLock)return p._queue.push({event:"rate",action:function(){p.rate.apply(p,f)}}),p;u===void 0&&(p._rate=h),u=p._getSoundIds(u);for(var w=0;w=0?u=parseInt(f[0],10):p._sounds.length&&(u=p._sounds[0]._id,h=parseFloat(f[0]))}else f.length===2&&(h=parseFloat(f[0]),u=parseInt(f[1],10));if(u===void 0)return 0;if(typeof h=="number"&&(p._state!=="loaded"||p._playLock))return p._queue.push({event:"seek",action:function(){p.seek.apply(p,f)}}),p;var y=p._soundById(u);if(y){if(!(typeof h=="number"&&h>=0)){if(p._webAudio){var w=p.playing(u)?t.ctx.currentTime-y._playStart:0,b=y._rateSeek?y._rateSeek-y._seek:0;return y._seek+(b+w*Math.abs(y._rate))}return y._node.currentTime}var v=p.playing(u);v&&p.pause(u,!0),y._seek=h,y._ended=!1,p._clearTimer(u),p._webAudio||!y._node||isNaN(y._node.duration)||(y._node.currentTime=h);var E=function(){v&&p.play(u,!0),p._emit("seek",u)};if(v&&!p._webAudio){var C=function(){p._playLock?setTimeout(C,0):E()};setTimeout(C,0)}else E()}return p},playing:function(h){var u=this;if(typeof h=="number"){var p=u._soundById(h);return!!p&&!p._paused}for(var f=0;f=0&&t._howls.splice(f,1);var m=!0;for(p=0;p=0){m=!1;break}return n&&m&&delete n[h._src],t.noAudio=!1,h._state="unloaded",h._sounds=[],h=null,null},on:function(h,u,p,f){var m=this,g=m["_on"+h];return typeof u=="function"&&g.push(f?{id:p,fn:u,once:f}:{id:p,fn:u}),m},off:function(h,u,p){var f=this,m=f["_on"+h],g=0;if(typeof u=="number"&&(p=u,u=null),u||p)for(g=0;g=0;g--)m[g].id&&m[g].id!==u&&h!=="load"||(setTimeout(function(y){y.call(this,u,p)}.bind(f,m[g].fn),0),m[g].once&&f.off(h,m[g].fn,m[g].id));return f._loadQueue(h),f},_loadQueue:function(h){var u=this;if(u._queue.length>0){var p=u._queue[0];p.event===h&&(u._queue.shift(),u._loadQueue()),h||p.action()}return u},_ended:function(h){var u=this,p=h._sprite;if(!u._webAudio&&h._node&&!h._node.paused&&!h._node.ended&&h._node.currentTime=0;f--){if(p<=u)return;h._sounds[f]._ended&&(h._webAudio&&h._sounds[f]._node&&h._sounds[f]._node.disconnect(0),h._sounds.splice(f,1),p--)}}},_getSoundIds:function(h){var u=this;if(h===void 0){for(var p=[],f=0;f=0;if(!h.bufferSource)return u;if(t._scratchBuffer&&h.bufferSource&&(h.bufferSource.onended=null,h.bufferSource.disconnect(0),p))try{h.bufferSource.buffer=t._scratchBuffer}catch{}return h.bufferSource=null,u},_clearSound:function(h){/MSIE |Trident\//.test(t._navigator&&t._navigator.userAgent)||(h.src="data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA")}};var s=function(h){this._parent=h,this.init()};s.prototype={init:function(){var h=this,u=h._parent;return h._muted=u._muted,h._loop=u._loop,h._volume=u._volume,h._rate=u._rate,h._seek=0,h._paused=!0,h._ended=!0,h._sprite="__default",h._id=++t._counter,u._sounds.push(h),h.create(),h},create:function(){var h=this,u=h._parent,p=t._muted||h._muted||h._parent._muted?0:h._volume;return u._webAudio?(h._node=t.ctx.createGain===void 0?t.ctx.createGainNode():t.ctx.createGain(),h._node.gain.setValueAtTime(p,t.ctx.currentTime),h._node.paused=!0,h._node.connect(t.masterGain)):t.noAudio||(h._node=t._obtainHtml5Audio(),h._errorFn=h._errorListener.bind(h),h._node.addEventListener("error",h._errorFn,!1),h._loadFn=h._loadListener.bind(h),h._node.addEventListener(t._canPlayEvent,h._loadFn,!1),h._endFn=h._endListener.bind(h),h._node.addEventListener("ended",h._endFn,!1),h._node.src=u._src,h._node.preload=u._preload===!0?"auto":u._preload,h._node.volume=p*t.volume(),h._node.load()),h},reset:function(){var h=this,u=h._parent;return h._muted=u._muted,h._loop=u._loop,h._volume=u._volume,h._rate=u._rate,h._seek=0,h._rateSeek=0,h._paused=!0,h._ended=!0,h._sprite="__default",h._id=++t._counter,h},_errorListener:function(){var h=this;h._parent._emit("loaderror",h._id,h._node.error?h._node.error.code:0),h._node.removeEventListener("error",h._errorFn,!1)},_loadListener:function(){var h=this,u=h._parent;u._duration=Math.ceil(10*h._node.duration)/10,Object.keys(u._sprite).length===0&&(u._sprite={__default:[0,1e3*u._duration]}),u._state!=="loaded"&&(u._state="loaded",u._emit("load"),u._loadQueue()),h._node.removeEventListener(t._canPlayEvent,h._loadFn,!1)},_endListener:function(){var h=this,u=h._parent;u._duration===1/0&&(u._duration=Math.ceil(10*h._node.duration)/10,u._sprite.__default[1]===1/0&&(u._sprite.__default[1]=1e3*u._duration),u._ended(h)),h._node.removeEventListener("ended",h._endFn,!1)}};var n={},a=function(h){var u=h._src;if(n[u])return h._duration=n[u].duration,void c(h);if(/^data:[^;]+;base64,/.test(u)){for(var p=atob(u.split(",")[1]),f=new Uint8Array(p.length),m=0;m0?(n[u._src]=m,c(u,m)):p()};typeof Promise<"u"&&t.ctx.decodeAudioData.length===1?t.ctx.decodeAudioData(h).then(f).catch(p):t.ctx.decodeAudioData(h,f,p)},c=function(h,u){u&&!h._duration&&(h._duration=u.duration),Object.keys(h._sprite).length===0&&(h._sprite={__default:[0,1e3*h._duration]}),h._state!=="loaded"&&(h._state="loaded",h._emit("load"),h._loadQueue())},d=function(){if(t.usingWebAudio){try{typeof AudioContext<"u"?t.ctx=new AudioContext:typeof webkitAudioContext<"u"?t.ctx=new webkitAudioContext:t.usingWebAudio=!1}catch{t.usingWebAudio=!1}t.ctx||(t.usingWebAudio=!1);var h=/iP(hone|od|ad)/.test(t._navigator&&t._navigator.platform),u=t._navigator&&t._navigator.appVersion.match(/OS (\d+)_(\d+)_?(\d+)?/),p=u?parseInt(u[1],10):null;if(h&&p&&p<9){var f=/safari/.test(t._navigator&&t._navigator.userAgent.toLowerCase());t._navigator&&!f&&(t.usingWebAudio=!1)}t.usingWebAudio&&(t.masterGain=t.ctx.createGain===void 0?t.ctx.createGainNode():t.ctx.createGain(),t.masterGain.gain.setValueAtTime(t._muted?0:t._volume,t.ctx.currentTime),t.masterGain.connect(t.ctx.destination)),t._setup()}};r.Howler=t,r.Howl=i,typeof Wt<"u"?(Wt.HowlerGlobal=e,Wt.Howler=t,Wt.Howl=i,Wt.Sound=s):typeof window<"u"&&(window.HowlerGlobal=e,window.Howler=t,window.Howl=i,window.Sound=s)})()})(ps);const RE="/smeditor/assets/assist_tick-b8aada2a.ogg",Ug="/smeditor/assets/metronome_high-6fa54e52.ogg",Hg="/smeditor/assets/metronome_low-4db4e760.ogg",LE="/smeditor/assets/mine-b65ce42d.ogg",ml=[".aac",".mid",".midi",".mp3",".oga",".ogg",".opus",".wav",".webm",".weba",".flac",".aiff"],ns=[".bmp",".gif",".jpeg",".jpg",".png",".tif",".tiff",".webp"],bd=["Hold","Roll"];function Gg(r){return!bd.includes(r.type)}function Le(r){return bd.includes(r.type)}var li="INUMBER",Sn="IOP1",Cn="IOP2",Mn="IOP3",gr="IVAR",Es="IVARNAME",gn="IFUNCALL",gl="IFUNDEF",Xt="IEXPR",wd="IEXPREVAL",Ss="IMEMBER",yl="IENDSTATEMENT",yn="IARRAY";function je(r,e){this.type=r,this.value=e??0}je.prototype.toString=function(){switch(this.type){case li:case Sn:case Cn:case Mn:case gr:case Es:case yl:return this.value;case gn:return"CALL "+this.value;case gl:return"DEF "+this.value;case yn:return"ARRAY "+this.value;case Ss:return"."+this.value;default:return"Invalid Instruction"}};function vl(r){return new je(Sn,r)}function vr(r){return new je(Cn,r)}function Vg(r){return new je(Mn,r)}function Fc(r,e,t,i,s){for(var n=[],a=[],o,l,c,d,h=0;h1)l=n.pop(),o=n.pop(),d=t[u.value],u=new je(li,d(o.value,l.value)),n.push(u);else if(p===Mn&&n.length>2)c=n.pop(),l=n.pop(),o=n.pop(),u.value==="?"?n.push(o.value?l.value:c.value):(d=i[u.value],u=new je(li,d(o.value,l.value,c.value)),n.push(u));else if(p===Sn&&n.length>0)o=n.pop(),d=e[u.value],u=new je(li,d(o.value)),n.push(u);else if(p===Xt){for(;n.length>0;)a.push(n.shift());a.push(new je(Xt,Fc(u.value,e,t,i,s)))}else if(p===Ss&&n.length>0)o=n.pop(),n.push(new je(li,o.value[u.value]));else{for(;n.length>0;)a.push(n.shift());a.push(u)}}for(;n.length>0;)a.push(n.shift());return a}function Wg(r,e,t){for(var i=[],s=0;s0;)l.unshift(sr(i.pop(),t));if(o=i.pop(),o.apply&&o.call)i.push(o.apply(void 0,l));else throw new Error(o+" is not a function")}else if(p===gl)i.push(function(){for(var m=i.pop(),g=[],y=u.value;y-- >0;)g.unshift(i.pop());var w=i.pop(),b=function(){for(var v=Object.assign({},t),E=0,C=g.length;E0;)l.unshift(i.pop());i.push(l)}else throw new Error("invalid Expression")}if(i.length>1)throw new Error("invalid Expression (parity)");return i[0]===0?0:sr(i[0],t)}function DE(r,e,t){return _d(r)?r:{type:wd,value:function(i){return hs(r.value,e,i)}}}function _d(r){return r&&r.type===wd}function sr(r,e){return _d(r)?r.value(e):r}function xd(r,e){for(var t=[],i,s,n,a,o,l,c=0;c0;)o.unshift(t.pop());a=t.pop(),t.push(a+"("+o.join(", ")+")")}else if(h===gl){for(s=t.pop(),l=d.value,o=[];l-- >0;)o.unshift(t.pop());i=t.pop(),e?t.push("("+i+" = function("+o.join(", ")+") { return "+s+" })"):t.push("("+i+"("+o.join(", ")+") = "+s+")")}else if(h===Ss)i=t.pop(),t.push(i+"."+d.value);else if(h===yn){for(l=d.value,o=[];l-- >0;)o.unshift(t.pop());t.push("["+o.join(", ")+"]")}else if(h===Xt)t.push("("+xd(d.value,e)+")");else if(h!==yl)throw new Error("invalid Expression")}return t.length>1&&(e?t=[t.join(",")]:t=[t.join(";")]),String(t[0])}function Up(r){return typeof r=="string"?JSON.stringify(r).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029"):r}function Zs(r,e){for(var t=0;t=this.expression.length)return this.newToken(da,"EOF");if(this.isWhitespace()||this.isComment())return this.next();if(this.isRadixInteger()||this.isNumber()||this.isOperator()||this.isString()||this.isParen()||this.isBracket()||this.isComma()||this.isSemicolon()||this.isNamedOp()||this.isConst()||this.isName())return this.current;this.parseError('Unknown character "'+this.expression.charAt(this.pos)+'"')};pt.prototype.isString=function(){var r=!1,e=this.pos,t=this.expression.charAt(e);if(t==="'"||t==='"')for(var i=this.expression.indexOf(t,e+1);i>=0&&this.pos"9")))break}if(e>r){var i=this.expression.substring(r,e);if(i in this.consts)return this.current=this.newToken(bl,this.consts[i]),this.pos+=i.length,!0}return!1};pt.prototype.isNamedOp=function(){for(var r=this.pos,e=r;e"9")))break}if(e>r){var i=this.expression.substring(r,e);if(this.isOperatorEnabled(i)&&(i in this.binaryOps||i in this.unaryOps||i in this.ternaryOps))return this.current=this.newToken(Ze,i),this.pos+=i.length,!0}return!1};pt.prototype.isName=function(){for(var r=this.pos,e=r,t=!1;e"9"))break}else t=!0}if(t){var s=this.expression.substring(r,e);return this.current=this.newToken(Ed,s),this.pos+=s.length,!0}return!1};pt.prototype.isWhitespace=function(){for(var r=!1,e=this.expression.charAt(this.pos);(e===" "||e===" "||e===` `||e==="\r")&&(r=!0,this.pos++,!(this.pos>=this.expression.length));)e=this.expression.charAt(this.pos);return r};var OE=/^[0-9a-f]{4}$/i;pt.prototype.unescape=function(r){var e=r.indexOf("\\");if(e<0)return r;for(var t=r.substring(0,e);e>=0;){var i=r.charAt(++e);switch(i){case"'":t+="'";break;case'"':t+='"';break;case"\\":t+="\\";break;case"/":t+="/";break;case"b":t+="\b";break;case"f":t+="\f";break;case"n":t+=` `;break;case"r":t+="\r";break;case"t":t+=" ";break;case"u":var s=r.substring(e+1,e+5);OE.test(s)||this.parseError("Illegal escape sequence: \\u"+s),t+=String.fromCharCode(parseInt(s,16)),e+=4;break;default:throw this.parseError('Illegal escape sequence: "\\'+i+'"')}++e;var n=r.indexOf("\\",e);t+=r.substring(e,n<0?r.length:n),e=n}return t};pt.prototype.isComment=function(){var r=this.expression.charAt(this.pos);return r==="/"&&this.expression.charAt(this.pos+1)==="*"?(this.pos=this.expression.indexOf("*/",this.pos)+2,this.pos===1&&(this.pos=this.expression.length),!0):!1};pt.prototype.isRadixInteger=function(){var r=this.pos;if(r>=this.expression.length-2||this.expression.charAt(r)!=="0")return!1;++r;var e,t;if(this.expression.charAt(r)==="x")e=16,t=/^[0-9a-f]$/i,++r;else if(this.expression.charAt(r)==="b")e=2,t=/^[01]$/i,++r;else return!1;for(var i=!1,s=r;r="0"&&a<="9"||!s&&a===".");)a==="."?s=!0:n=!0,e++,r=n;if(r&&(i=e),a==="e"||a==="E"){e++;for(var o=!0,l=!1;e="0"&&a<="9")l=!0,o=!1;else break;e++}l||(e=i)}return r?(this.current=this.newToken(bl,parseFloat(this.expression.substring(t,e))),this.pos=e):this.pos=i,r};pt.prototype.isOperator=function(){var r=this.pos,e=this.expression.charAt(this.pos);if(e==="+"||e==="-"||e==="*"||e==="/"||e==="%"||e==="^"||e==="?"||e===":"||e===".")this.current=this.newToken(Ze,e);else if(e==="∙"||e==="•")this.current=this.newToken(Ze,"*");else if(e===">")this.expression.charAt(this.pos+1)==="="?(this.current=this.newToken(Ze,">="),this.pos++):this.current=this.newToken(Ze,">");else if(e==="<")this.expression.charAt(this.pos+1)==="="?(this.current=this.newToken(Ze,"<="),this.pos++):this.current=this.newToken(Ze,"<");else if(e==="|")if(this.expression.charAt(this.pos+1)==="|")this.current=this.newToken(Ze,"||"),this.pos++;else return!1;else if(e==="=")this.expression.charAt(this.pos+1)==="="?(this.current=this.newToken(Ze,"=="),this.pos++):this.current=this.newToken(Ze,e);else if(e==="!")this.expression.charAt(this.pos+1)==="="?(this.current=this.newToken(Ze,"!="),this.pos++):this.current=this.newToken(Ze,e);else return!1;return this.pos++,this.isOperatorEnabled(this.current.value)?!0:(this.pos=r,!1)};pt.prototype.isOperatorEnabled=function(r){return this.parser.isOperatorEnabled(r)};pt.prototype.getCoordinates=function(){var r=0,e,t=-1;do r++,e=this.pos-t,t=this.expression.indexOf(` `,t+1);while(t>=0&&t"u"?!0:Array.isArray(e)?Zs(e,r.value):typeof e=="function"?e(r):r.value===e};tt.prototype.save=function(){this.savedCurrent=this.current,this.savedNextToken=this.nextToken,this.tokens.save()};tt.prototype.restore=function(){this.tokens.restore(),this.current=this.savedCurrent,this.nextToken=this.savedNextToken};tt.prototype.accept=function(r,e){return this.nextToken.type===r&&this.tokenMatches(this.nextToken,e)?(this.next(),!0):!1};tt.prototype.expect=function(r,e){if(!this.accept(r,e)){var t=this.tokens.getCoordinates();throw new Error("parse error ["+t.line+":"+t.column+"]: Expected "+(e||r))}};tt.prototype.parseAtom=function(r){var e=this.tokens.unaryOps;function t(s){return s.value in e}if(this.accept(Ed)||this.accept(Ze,t))r.push(new je(gr,this.current.value));else if(this.accept(bl))r.push(new je(li,this.current.value));else if(this.accept(zg))r.push(new je(li,this.current.value));else if(this.accept(yr,"("))this.parseExpression(r),this.expect(yr,")");else if(this.accept(vn,"["))if(this.accept(vn,"]"))r.push(new je(yn,0));else{var i=this.parseArrayList(r);r.push(new je(yn,i))}else throw new Error("unexpected "+this.nextToken)};tt.prototype.parseExpression=function(r){var e=[];this.parseUntilEndStatement(r,e)||(this.parseVariableAssignmentExpression(e),!this.parseUntilEndStatement(r,e)&&this.pushExpression(r,e))};tt.prototype.pushExpression=function(r,e){for(var t=0,i=e.length;t=",">","in"];tt.prototype.parseComparison=function(r){for(this.parseAddSub(r);this.accept(Ze,FE);){var e=this.current;this.parseAddSub(r),r.push(vr(e.value))}};var NE=["+","-","||"];tt.prototype.parseAddSub=function(r){for(this.parseTerm(r);this.accept(Ze,NE);){var e=this.current;this.parseTerm(r),r.push(vr(e.value))}};var UE=["*","/","%"];tt.prototype.parseTerm=function(r){for(this.parseFactor(r);this.accept(Ze,UE);){var e=this.current;this.parseFactor(r),r.push(vr(e.value))}};tt.prototype.parseFactor=function(r){var e=this.tokens.unaryOps;function t(s){return s.value in e}if(this.save(),this.accept(Ze,t)){if(this.current.value!=="-"&&this.current.value!=="+"){if(this.nextToken.type===yr&&this.nextToken.value==="("){this.restore(),this.parseExponential(r);return}else if(this.nextToken.type===Ad||this.nextToken.type===wl||this.nextToken.type===da||this.nextToken.type===yr&&this.nextToken.value===")"){this.restore(),this.parseAtom(r);return}}var i=this.current;this.parseFactor(r),r.push(vl(i.value))}else this.parseExponential(r)};tt.prototype.parseExponential=function(r){for(this.parsePostfixExpression(r);this.accept(Ze,"^");)this.parseFactor(r),r.push(vr("^"))};tt.prototype.parsePostfixExpression=function(r){for(this.parseFunctionCall(r);this.accept(Ze,"!");)r.push(vl("!"))};tt.prototype.parseFunctionCall=function(r){var e=this.tokens.unaryOps;function t(n){return n.value in e}if(this.accept(Ze,t)){var i=this.current;this.parseAtom(r),r.push(vl(i.value))}else for(this.parseMemberExpression(r);this.accept(yr,"(");)if(this.accept(yr,")"))r.push(new je(gn,0));else{var s=this.parseArgumentList(r);r.push(new je(gn,s))}};tt.prototype.parseArgumentList=function(r){for(var e=0;!this.accept(yr,")");)for(this.parseExpression(r),++e;this.accept(wl);)this.parseExpression(r),++e;return e};tt.prototype.parseMemberExpression=function(r){for(this.parseAtom(r);this.accept(Ze,".")||this.accept(vn,"[");){var e=this.current;if(e.value==="."){if(!this.allowMemberAccess)throw new Error('unexpected ".", member access is not permitted');this.expect(Ed),r.push(new je(Ss,this.current.value))}else if(e.value==="["){if(!this.tokens.isOperatorEnabled("["))throw new Error('unexpected "[]", arrays are disabled');this.parseExpression(r),this.expect(vn,"]"),r.push(vr("["))}else throw new Error("unexpected symbol: "+e.value)}};function HE(r,e){return Number(r)+Number(e)}function GE(r,e){return r-e}function VE(r,e){return r*e}function WE(r,e){return r/e}function zE(r,e){return r%e}function jE(r,e){return Array.isArray(r)&&Array.isArray(e)?r.concat(e):""+r+e}function $E(r,e){return r===e}function YE(r,e){return r!==e}function XE(r,e){return r>e}function qE(r,e){return r=e}function ZE(r,e){return r<=e}function JE(r,e){return!!(r&&e)}function QE(r,e){return!!(r||e)}function eA(r,e){return Zs(e,r)}function tA(r){return(Math.exp(r)-Math.exp(-r))/2}function iA(r){return(Math.exp(r)+Math.exp(-r))/2}function rA(r){return r===1/0?1:r===-1/0?-1:(Math.exp(r)-Math.exp(-r))/(Math.exp(r)+Math.exp(-r))}function sA(r){return r===-1/0?r:Math.log(r+Math.sqrt(r*r+1))}function nA(r){return Math.log(r+Math.sqrt(r*r-1))}function aA(r){return Math.log((1+r)/(1-r))/2}function Hp(r){return Math.log(r)*Math.LOG10E}function oA(r){return-r}function lA(r){return!r}function hA(r){return r<0?Math.ceil(r):Math.floor(r)}function cA(r){return Math.random()*(r||1)}function Gp(r){return Sd(r+1)}function dA(r){return isFinite(r)&&r===Math.round(r)}var uA=4.7421875,bh=[.9999999999999971,57.15623566586292,-59.59796035547549,14.136097974741746,-.4919138160976202,3399464998481189e-20,4652362892704858e-20,-9837447530487956e-20,.0001580887032249125,-.00021026444172410488,.00021743961811521265,-.0001643181065367639,8441822398385275e-20,-26190838401581408e-21,36899182659531625e-22];function Sd(r){var e,t;if(dA(r)){if(r<=0)return isFinite(r)?1/0:NaN;if(r>171)return 1/0;for(var i=r-2,s=r-1;i>1;)s*=i,i--;return s===0&&(s=1),s}if(r<.5)return Math.PI/(Math.sin(Math.PI*r)*Sd(1-r));if(r>=171.35)return 1/0;if(r>85){var n=r*r,a=n*r,o=a*r,l=o*r;return Math.sqrt(2*Math.PI/r)*Math.pow(r/Math.E,r)*(1+1/(12*r)+1/(288*n)-139/(51840*a)-571/(2488320*o)+163879/(209018880*l)+5246819/(75246796800*l*r))}--r,t=bh[0];for(var c=1;c0?(s=i/e,r+=s*s):r+=i}return e===1/0?1/0:e*Math.sqrt(r)}function Wp(r,e,t){return r?e:t}function fA(r,e){return typeof e>"u"||+e==0?Math.round(r):(r=+r,e=-+e,isNaN(r)||!(typeof e=="number"&&e%1===0)?NaN:(r=r.toString().split("e"),r=Math.round(+(r[0]+"e"+(r[1]?+r[1]-e:-e))),r=r.toString().split("e"),+(r[0]+"e"+(r[1]?+r[1]+e:e))))}function mA(r,e,t){return t&&(t[r]=e),e}function gA(r,e){return r[e|0]}function yA(r){return arguments.length===1&&Array.isArray(r)?Math.max.apply(Math,r):Math.max.apply(Math,arguments)}function vA(r){return arguments.length===1&&Array.isArray(r)?Math.min.apply(Math,r):Math.min.apply(Math,arguments)}function bA(r,e){if(typeof r!="function")throw new Error("First argument to map is not a function");if(!Array.isArray(e))throw new Error("Second argument to map is not an array");return e.map(function(t,i){return r(t,i)})}function wA(r,e,t){if(typeof r!="function")throw new Error("First argument to fold is not a function");if(!Array.isArray(t))throw new Error("Second argument to fold is not an array");return t.reduce(function(i,s,n){return r(i,s,n)},e)}function _A(r,e){if(typeof r!="function")throw new Error("First argument to filter is not a function");if(!Array.isArray(e))throw new Error("Second argument to filter is not an array");return e.filter(function(t,i){return r(t,i)})}function xA(r,e){if(!(Array.isArray(e)||typeof e=="string"))throw new Error("Second argument to indexOf is not a string or array");return e.indexOf(r)}function TA(r,e){if(!Array.isArray(e))throw new Error("Second argument to join is not an array");return e.join(r)}function EA(r){return(r>0)-(r<0)||+r}var zp=1/3;function AA(r){return r<0?-Math.pow(-r,zp):Math.pow(r,zp)}function SA(r){return Math.exp(r)-1}function CA(r){return Math.log(1+r)}function MA(r){return Math.log(r)/Math.LN2}function br(r){this.options=r||{},this.unaryOps={sin:Math.sin,cos:Math.cos,tan:Math.tan,asin:Math.asin,acos:Math.acos,atan:Math.atan,sinh:Math.sinh||tA,cosh:Math.cosh||iA,tanh:Math.tanh||rA,asinh:Math.asinh||sA,acosh:Math.acosh||nA,atanh:Math.atanh||aA,sqrt:Math.sqrt,cbrt:Math.cbrt||AA,log:Math.log,log2:Math.log2||MA,ln:Math.log,lg:Math.log10||Hp,log10:Math.log10||Hp,expm1:Math.expm1||SA,log1p:Math.log1p||CA,abs:Math.abs,ceil:Math.ceil,floor:Math.floor,round:Math.round,trunc:Math.trunc||hA,"-":oA,"+":Number,exp:Math.exp,not:lA,length:pA,"!":Gp,sign:Math.sign||EA},this.binaryOps={"+":HE,"-":GE,"*":VE,"/":WE,"%":zE,"^":Math.pow,"||":jE,"==":$E,"!=":YE,">":XE,"<":qE,">=":KE,"<=":ZE,and:JE,or:QE,in:eA,"=":mA,"[":gA},this.ternaryOps={"?":Wp},this.functions={random:cA,fac:Gp,min:vA,max:yA,hypot:Math.hypot||Vp,pyt:Math.hypot||Vp,pow:Math.pow,atan2:Math.atan2,if:Wp,gamma:Sd,roundTo:fA,map:bA,fold:wA,filter:_A,indexOf:xA,join:TA},this.consts={E:Math.E,PI:Math.PI,true:!0,false:!1}}br.prototype.parse=function(r){var e=[],t=new tt(this,new pt(this,r),{allowMemberAccess:this.options.allowMemberAccess});return t.parseExpression(e),t.expect(da,"EOF"),new Ii(e,this)};br.prototype.evaluate=function(r,e){return this.parse(r).evaluate(e)};var $g=new br;br.parse=function(r){return $g.parse(r)};br.evaluate=function(r,e){return $g.parse(r).evaluate(e)};var jp={"+":"add","-":"subtract","*":"multiply","/":"divide","%":"remainder","^":"power","!":"factorial","<":"comparison",">":"comparison","<=":"comparison",">=":"comparison","==":"comparison","!=":"comparison","||":"concatenate",and:"logical",or:"logical",not:"logical","?":"conditional",":":"conditional","=":"assignment","[":"array","()=":"fndef"};function kA(r){return jp.hasOwnProperty(r)?jp[r]:r}br.prototype.isOperatorEnabled=function(r){var e=kA(r),t=this.options.operators||{};return!(e in t)||!!t[e]};const So=[1,1/2,1/3,1/4,1/6,1/8,1/12,1/16,1/24,1/48];function IA(r){for(let e=0;en),r.length==0)return-1;if(e>=t(r[r.length-1])){let n=r.length-1;for(;n>0&&t(r[n-1])==e;)n--;return n}let i=0,s=r.length;for(;i<=s&&i>>1;if(t(r[n])==e){for(;n>0&&t(r[n-1])==e;)n--;return n}t(r[n])e&&(s=n-1)}return Math.max(0,s)}function io(r,e,t){if(t=t??(s=>s),r.length==0)return-1;let i=Lt(r,e,t);for(;r[i-1]&&t(r[i-1])==e;)i--;return i}function $p(r,e){return!(Object.keys(r).some(t=>r[t]!=e[t])||Object.keys(e).some(t=>r[t]!=e[t]))}function ua(r){try{return br.evaluate(r)}catch{return null}}function Ki(r,e){let t=r.length;if(r.length!=0)for(;t--;)e(r[t],t)&&r[t].destroy()}function Uc(r){return r==""?"":r.slice(0,1).toUpperCase()+r.slice(1).toLowerCase()}function Hc(r){return r.button==2||r.getModifierState("Control")&&Si}function ZC(){try{return window.self!==window.top}catch{return!0}}function JC(r,e,t,i,s){const n=[];for(let a=0;a"),n.classList.add("icon"),this.cache.has(e))n.loadSVG(this.cache.get(e));else{const a=!this.pendingWrappers.has(e);this.pendingWrappers.has(e)||this.pendingWrappers.set(e,[]),this.pendingWrappers.get(e).push(n),a&&this.fetchIcon(e)}return n.width=t,i===void 0&&t!==void 0&&(i=t),n.height=i,n.color=s,n}static fetchIcon(e){fetch(`/smeditor/assets/svg/${e}.svg`).then(t=>t.text()).then(t=>{this.cache.set(e,t),this.pendingWrappers.get(e).forEach(i=>{i.loadSVG(t)}),this.pendingWrappers.set(e,[])})}}const Zp=globalThis.showDirectoryPicker;async function HA(r={}){if(Zp&&!r._preferPolyfill)return Zp(r);const e=document.createElement("input");e.type="file",e.webkitdirectory=!0,e.multiple=!0,e.style.position="fixed",e.style.top="-100000px",e.style.left="-100000px",document.body.appendChild(e);const{makeDirHandleFromFileList:t}=await Ke(()=>Promise.resolve().then(()=>Ng),void 0);return new Promise((i,s)=>{e.addEventListener("change",()=>{t(e.files).then(i).catch(s),document.body.removeChild(e)}),e.click()})}const Jp=globalThis.showOpenFilePicker;async function Qg(r={}){if(Jp&&!r._preferPolyfill)return Jp(r);const e=document.createElement("input");e.type="file",e.multiple=!!r.multiple,e.accept=(r.accepts||[]).map(i=>[...(i.extensions||[]).map(s=>"."+s),...i.mimeTypes||[]]).flat().join(","),e.style.position="fixed",e.style.top="-100000px",e.style.left="-100000px",document.body.appendChild(e);const{makeFileHandlesFromFileList:t}=await Ke(()=>Promise.resolve().then(()=>Ng),void 0);return new Promise((i,s)=>{e.addEventListener("change",()=>{t(e.files).then(i).catch(s),document.body.removeChild(e)}),e.click()})}const Qp=globalThis.showSaveFilePicker;async function GA(r={}){if(Qp&&!r._preferPolyfill)return Qp(r);const{FileSystemFileHandle:e}=await Ke(()=>Promise.resolve().then(()=>ey),void 0),{FileHandle:t}=await Ke(()=>import("./downloader-b702927f.js"),[]);return new e(new t(r.suggestedName))}const Ls=Symbol("adapter");let Cd=class{constructor(e){this.kind=e.kind,this.name=e.name,this[Ls]=e}get isFile(){return this.kind==="file"}get isDirectory(){return this.kind==="directory"}async queryPermission(e={mode:"read"}){const t=this[Ls];if(t.queryPermission)return t.queryPermission(e);if(e.mode==="read")return"granted";if(e.mode==="readwrite")return t.writable?"granted":"denied";throw new TypeError(`Mode ${e.mode} must be 'read' or 'readwrite'`)}async requestPermission(e={mode:"read"}){const t=this[Ls];if(t.requestPermission)return t.requestPermission(e);if(e.mode==="read")return"granted";if(e.mode==="readwrite")return t.writable?"granted":"denied";throw new TypeError(`Mode ${e.mode} must be 'read' or 'readwrite'`)}async isSameEntry(e){return this===e?!0:this.kind!==e.kind||!e[Ls]?!1:await this[Ls].isSameEntry(e[Ls])}};Object.defineProperty(Cd.prototype,Symbol.toStringTag,{value:"FileSystemHandle",writable:!1,enumerable:!1,configurable:!0});const wh=Symbol("adapter");let wn=class extends Cd{constructor(e){super(e),this.kind="file",this[wh]=e}async createWritable(e={}){const{FileSystemWritableFileStream:t}=await Ke(()=>import("./FileSystemWritableFileStream-e4c13ad9.js"),["FileSystemWritableFileStream-e4c13ad9.js","web-streams-ponyfill-4a0f4950.js"]);return new t(await this[wh].createWritable(e))}async getFile(){return this[wh].getFile()}};Object.defineProperty(wn.prototype,Symbol.toStringTag,{value:"FileSystemFileHandle",writable:!1,enumerable:!1,configurable:!0});Object.defineProperties(wn.prototype,{createWritable:{enumerable:!0},getFile:{enumerable:!0}});const ey=Object.freeze(Object.defineProperty({__proto__:null,FileSystemFileHandle:wn,default:wn},Symbol.toStringTag,{value:"Module"})),Ds=Symbol("adapter");class Wr extends Cd{constructor(e){super(e),this.kind="directory",this[Ds]=e}async getDirectoryHandle(e,t={}){if(e==="")throw new TypeError("Name can't be an empty string.");if(e==="."||e===".."||e.includes("/"))throw new TypeError("Name contains invalid characters.");return new Wr(await this[Ds].getDirectoryHandle(e,t))}getDirectory(e,t={}){return this.getDirectoryHandle(e,t)}async*entries(){for await(const[e,t]of this[Ds].entries())yield[t.name,t.kind==="file"?new wn(t):new Wr(t)]}async*getEntries(){return this.entries()}async*keys(){for await(const[e]of this[Ds].entries())yield e}async*values(){for await(const[e,t]of this.entries())yield t}async getFileHandle(e,t={}){if(e==="")throw new TypeError("Name can't be an empty string.");if(e==="."||e===".."||e.includes("/"))throw new TypeError("Name contains invalid characters.");return t.create=!!t.create,new wn(await this[Ds].getFileHandle(e,t))}getFile(e,t={}){return this.getFileHandle(e,t)}async removeEntry(e,t={}){if(e==="")throw new TypeError("Name can't be an empty string.");if(e==="."||e===".."||e.includes("/"))throw new TypeError("Name contains invalid characters.");return t.recursive=!!t.recursive,this[Ds].removeEntry(e,t)}async resolve(e){if(await e.isSameEntry(this))return[];const t=[{handle:this,path:[]}];for(;t.length;){let{handle:i,path:s}=t.pop();for await(const n of i.values()){if(await n.isSameEntry(e))return[...s,n.name];n.kind==="directory"&&t.push({handle:n,path:[...s,n.name]})}}return null}[Symbol.asyncIterator](){return this.entries()}}Object.defineProperty(Wr.prototype,Symbol.toStringTag,{value:"FileSystemDirectoryHandle",writable:!1,enumerable:!1,configurable:!0});Object.defineProperties(Wr.prototype,{getDirectoryHandle:{enumerable:!0},entries:{enumerable:!0},getFileHandle:{enumerable:!0},removeEntry:{enumerable:!0}});const VA=Object.freeze(Object.defineProperty({__proto__:null,FileSystemDirectoryHandle:Wr,default:Wr},Symbol.toStringTag,{value:"Module"}));async function ef(r,e={}){var t,i,s,n;if(!r){if(!(!((t=globalThis.navigator)===null||t===void 0)&&t.storage)&&((i=globalThis.location)===null||i===void 0?void 0:i.protocol)==="http:")throw new Error("Native getDirectory not supported in HTTP context. Please use HTTPS instead or provide an adapter.");if(!(!((n=(s=globalThis.navigator)===null||s===void 0?void 0:s.storage)===null||n===void 0)&&n.getDirectory))throw new Error("Native StorageManager.getDirectory() is not supported in current environment. Please provide an adapter instead.");return globalThis.navigator.storage.getDirectory()}const a=await r,o=typeof a=="function"?await a(e):await a.default(e);return new Wr(o)}var _h,xh;const WA={adapter:{cache:!!(globalThis.CacheStorage&&globalThis.caches instanceof CacheStorage),native:typeof((xh=(_h=globalThis.navigator)===null||_h===void 0?void 0:_h.storage)===null||xh===void 0?void 0:xh.getDirectory)=="function",sandbox:typeof window<"u"&&typeof window.webkitRequestFileSystem=="function"}},tf=r=>typeof r=="object"&&r!=null&&r.nodeType===1,rf=(r,e)=>(!e||r!=="hidden")&&r!=="visible"&&r!=="clip",Th=(r,e)=>{if(r.clientHeight{const s=(n=>{if(!n.ownerDocument||!n.ownerDocument.defaultView)return null;try{return n.ownerDocument.defaultView.frameElement}catch{return null}})(i);return!!s&&(s.clientHeightne||n>r&&a=e&&o>=t?n-r-i:a>e&&ot?a-e+s:0,zA=r=>{const e=r.parentElement;return e??(r.getRootNode().host||null)},sf=(r,e)=>{var t,i,s,n;if(typeof document>"u")return[];const{scrollMode:a,block:o,inline:l,boundary:c,skipOverflowHiddenElements:d}=e,h=typeof c=="function"?c:$=>$!==c;if(!tf(r))throw new TypeError("Invalid target");const u=document.scrollingElement||document.documentElement,p=[];let f=r;for(;tf(f)&&h(f);){if(f=zA(f),f===u){p.push(f);break}f!=null&&f===document.body&&Th(f)&&!Th(document.documentElement)||f!=null&&Th(f,d)&&p.push(f)}const m=(i=(t=window.visualViewport)==null?void 0:t.width)!=null?i:innerWidth,g=(n=(s=window.visualViewport)==null?void 0:s.height)!=null?n:innerHeight,{scrollX:y,scrollY:w}=window,{height:b,width:v,top:E,right:C,bottom:I,left:L}=r.getBoundingClientRect(),{top:k,right:N,bottom:G,left:A}=($=>{const R=window.getComputedStyle($);return{top:parseFloat(R.scrollMarginTop)||0,right:parseFloat(R.scrollMarginRight)||0,bottom:parseFloat(R.scrollMarginBottom)||0,left:parseFloat(R.scrollMarginLeft)||0}})(r);let S=o==="start"||o==="nearest"?E-k:o==="end"?I+G:E+b/2-k+G,x=l==="center"?L+v/2-A+N:l==="end"?C+N:L-A;const D=[];for(let $=0;$=0&&L>=0&&I<=g&&C<=m&&E>=V&&I<=U&&L>=te&&C<=F)return D;const Q=getComputedStyle(R),Z=parseInt(Q.borderLeftWidth,10),ye=parseInt(Q.borderTopWidth,10),Ce=parseInt(Q.borderRightWidth,10),ce=parseInt(Q.borderBottomWidth,10);let fe=0,we=0;const le="offsetWidth"in R?R.offsetWidth-R.clientWidth-Z-Ce:0,pe="offsetHeight"in R?R.offsetHeight-R.clientHeight-ye-ce:0,be="offsetWidth"in R?R.offsetWidth===0?0:W/R.offsetWidth:0,T="offsetHeight"in R?R.offsetHeight===0?0:O/R.offsetHeight:0;if(u===R)fe=o==="start"?S:o==="end"?S-g:o==="nearest"?ao(w,w+g,g,ye,ce,w+S,w+S+b,b):S-g/2,we=l==="start"?x:l==="center"?x-m/2:l==="end"?x-m:ao(y,y+m,m,Z,Ce,y+x,y+x+v,v),fe=Math.max(0,fe+w),we=Math.max(0,we+y);else{fe=o==="start"?S-V-ye:o==="end"?S-U+ce+pe:o==="nearest"?ao(V,U,O,ye,ce+pe,S,S+b,b):S-(V+O/2)+pe/2,we=l==="start"?x-te-Z:l==="center"?x-(te+W/2)+le/2:l==="end"?x-F+Ce+le:ao(te,F,W,Z,Ce+le,x,x+v,v);const{scrollLeft:Y,scrollTop:j}=R;fe=T===0?0:Math.max(0,Math.min(j+fe/T,R.scrollHeight-O/T+pe)),we=be===0?0:Math.max(0,Math.min(Y+we/be,R.scrollWidth-W/be+le)),S+=j-fe,x+=Y-we}D.push({el:R,top:fe,left:we})}return D},jA=r=>r===!1?{block:"end",inline:"nearest"}:(e=>e===Object(e)&&Object.keys(e).length!==0)(r)?r:{block:"start",inline:"nearest"};function ra(r,e){if(!r.isConnected||!(s=>{let n=s;for(;n&&n.parentNode;){if(n.parentNode===document)return!0;n=n.parentNode instanceof ShadowRoot?n.parentNode.host:n.parentNode}return!1})(r))return;const t=(s=>{const n=window.getComputedStyle(s);return{top:parseFloat(n.scrollMarginTop)||0,right:parseFloat(n.scrollMarginRight)||0,bottom:parseFloat(n.scrollMarginBottom)||0,left:parseFloat(n.scrollMarginLeft)||0}})(r);if((s=>typeof s=="object"&&typeof s.behavior=="function")(e))return e.behavior(sf(r,e));const i=typeof e=="boolean"||e==null?void 0:e.behavior;for(const{el:s,top:n,left:a}of sf(r,jA(e))){const o=n-t.top+t.bottom,l=a-t.left+t.right;s.scroll({top:o,left:l,behavior:i})}}function zi(r,e){let t=Md(r)[2];return e&&t.slice(-1*e.length)===e&&(t=t.slice(0,t.length-e.length)),t}function Ot(r){const e=Md(r),t=e[0];let i=e[1];return!t&&!i?"":(i&&(i=i.slice(0,i.length-1)),t+i)}function $i(r){return Md(r)[3]}const $A=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^/]+?|)(\.[^./]*|))(?:[/]*)$/;function Md(r){return $A.exec(r).slice(1)}const{GONE:ty}=qo;FileSystemFileHandle;class kd{_path;kind="file";name;isFile=!0;isDirectory=!1;constructor(e){this._path=e,this.name=new URL(e).pathname.split("/").pop()??""}async getFile(){return fetch(this._path).then(e=>e.blob()).then(e=>new File([e],this.name)).catch(()=>{throw new DOMException(...ty)})}async createWritable(){throw Error("Cannot call createWriteable from a URLFileHandle")}async isSameEntry(e){return FileSystemHandle instanceof kd?e._path==this._path:!1}async queryPermission(){return"granted"}async requestPermission(){return"granted"}}class YA{async handleDropEvent(e,t){throw Error("Cannot call handleDropEvent from a URLFileHandler")}async getDirectoryHandle(e,t,i){throw Error("Cannot call getDirectoryHandle from a URLFileHandler")}async hasFile(e){return fetch(e).then(t=>t.ok).catch(()=>!1)}async getFileHandle(e,t){try{if(!await this.hasFile(e))throw new DOMException(...ty);return new kd(e)}catch(i){console.error("Failed to get file "+e+": "+i);return}}async getFileHandleRelativeTo(e,t){const i=new URL(e);$i(i.pathname)!=""&&(i.pathname=i.pathname.split("/").slice(0,-1).join("/")),i.pathname+="/"+t;try{return this.getFileHandle(i.toString())}catch(s){console.error("Failed to get relative file "+i+": "+s);return}}async getDirectoryFiles(e){throw Error("Cannot call getDirectoryFiles from a URLFileHandler")}async getDirectoryFolders(e){throw Error("Cannot call getDirectoryFolders from a URLFileHandler")}async writeFile(e,t){throw Error("Cannot save to a URL file!")}getRelativePath(e,t){throw Error("Cannot call getRelativePath from a URLFileHandler")}}function oo(r){throw new Error('Could not dynamically require "'+r+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var iy={exports:{}};/*! +`,t}requiresSSC(){return this.chartName!==""||this.chartStyle!==""||this.credit!==""||this.music!==void 0||this.timingData.requiresSSC()}}class UA extends HTMLDivElement{_width;_height;_color;_svg;loadSVG(e){this.innerHTML=e,this._svg=this.children[0],this.updateStyles()}updateStyles(){this._svg&&(this.style.width="",this.style.height="",this._width!==void 0&&(this._svg.style.width=this._width+"px"),this._height!==void 0&&(this._svg.style.height=this._height+"px"),this._color!==void 0&&(this._svg.style.color=this._color))}get width(){return this._width}set width(e){e!==void 0&&(this._width=e,this.updateStyles())}get height(){return this._height}set height(e){e!==void 0&&(this._height=e,this.updateStyles())}get color(){return this._color}set color(e){e!==void 0&&(this._color=e,this.updateStyles())}}class Ae{static cache=new Map;static pendingWrappers=new Map;static getIcon(e,t,i,s){const n=document.createElement("div");if(Object.setPrototypeOf(n,UA.prototype),n.loadSVG("
"),n.classList.add("icon"),this.cache.has(e))n.loadSVG(this.cache.get(e));else{const a=!this.pendingWrappers.has(e);this.pendingWrappers.has(e)||this.pendingWrappers.set(e,[]),this.pendingWrappers.get(e).push(n),a&&this.fetchIcon(e)}return n.width=t,i===void 0&&t!==void 0&&(i=t),n.height=i,n.color=s,n}static fetchIcon(e){fetch(`/smeditor/assets/svg/${e}.svg`).then(t=>t.text()).then(t=>{this.cache.set(e,t),this.pendingWrappers.get(e).forEach(i=>{i.loadSVG(t)}),this.pendingWrappers.set(e,[])})}}const Zp=globalThis.showDirectoryPicker;async function HA(r={}){if(Zp&&!r._preferPolyfill)return Zp(r);const e=document.createElement("input");e.type="file",e.webkitdirectory=!0,e.multiple=!0,e.style.position="fixed",e.style.top="-100000px",e.style.left="-100000px",document.body.appendChild(e);const{makeDirHandleFromFileList:t}=await Ke(()=>Promise.resolve().then(()=>Ng),void 0);return new Promise((i,s)=>{e.addEventListener("change",()=>{t(e.files).then(i).catch(s),document.body.removeChild(e)}),e.click()})}const Jp=globalThis.showOpenFilePicker;async function Qg(r={}){if(Jp&&!r._preferPolyfill)return Jp(r);const e=document.createElement("input");e.type="file",e.multiple=!!r.multiple,e.accept=(r.accepts||[]).map(i=>[...(i.extensions||[]).map(s=>"."+s),...i.mimeTypes||[]]).flat().join(","),e.style.position="fixed",e.style.top="-100000px",e.style.left="-100000px",document.body.appendChild(e);const{makeFileHandlesFromFileList:t}=await Ke(()=>Promise.resolve().then(()=>Ng),void 0);return new Promise((i,s)=>{e.addEventListener("change",()=>{t(e.files).then(i).catch(s),document.body.removeChild(e)}),e.click()})}const Qp=globalThis.showSaveFilePicker;async function GA(r={}){if(Qp&&!r._preferPolyfill)return Qp(r);const{FileSystemFileHandle:e}=await Ke(()=>Promise.resolve().then(()=>ey),void 0),{FileHandle:t}=await Ke(()=>import("./downloader-0b8b331a.js"),[]);return new e(new t(r.suggestedName))}const Ls=Symbol("adapter");let Cd=class{constructor(e){this.kind=e.kind,this.name=e.name,this[Ls]=e}get isFile(){return this.kind==="file"}get isDirectory(){return this.kind==="directory"}async queryPermission(e={mode:"read"}){const t=this[Ls];if(t.queryPermission)return t.queryPermission(e);if(e.mode==="read")return"granted";if(e.mode==="readwrite")return t.writable?"granted":"denied";throw new TypeError(`Mode ${e.mode} must be 'read' or 'readwrite'`)}async requestPermission(e={mode:"read"}){const t=this[Ls];if(t.requestPermission)return t.requestPermission(e);if(e.mode==="read")return"granted";if(e.mode==="readwrite")return t.writable?"granted":"denied";throw new TypeError(`Mode ${e.mode} must be 'read' or 'readwrite'`)}async isSameEntry(e){return this===e?!0:this.kind!==e.kind||!e[Ls]?!1:await this[Ls].isSameEntry(e[Ls])}};Object.defineProperty(Cd.prototype,Symbol.toStringTag,{value:"FileSystemHandle",writable:!1,enumerable:!1,configurable:!0});const wh=Symbol("adapter");let wn=class extends Cd{constructor(e){super(e),this.kind="file",this[wh]=e}async createWritable(e={}){const{FileSystemWritableFileStream:t}=await Ke(()=>import("./FileSystemWritableFileStream-e4c13ad9.js"),["FileSystemWritableFileStream-e4c13ad9.js","web-streams-ponyfill-4a0f4950.js"]);return new t(await this[wh].createWritable(e))}async getFile(){return this[wh].getFile()}};Object.defineProperty(wn.prototype,Symbol.toStringTag,{value:"FileSystemFileHandle",writable:!1,enumerable:!1,configurable:!0});Object.defineProperties(wn.prototype,{createWritable:{enumerable:!0},getFile:{enumerable:!0}});const ey=Object.freeze(Object.defineProperty({__proto__:null,FileSystemFileHandle:wn,default:wn},Symbol.toStringTag,{value:"Module"})),Ds=Symbol("adapter");class Wr extends Cd{constructor(e){super(e),this.kind="directory",this[Ds]=e}async getDirectoryHandle(e,t={}){if(e==="")throw new TypeError("Name can't be an empty string.");if(e==="."||e===".."||e.includes("/"))throw new TypeError("Name contains invalid characters.");return new Wr(await this[Ds].getDirectoryHandle(e,t))}getDirectory(e,t={}){return this.getDirectoryHandle(e,t)}async*entries(){for await(const[e,t]of this[Ds].entries())yield[t.name,t.kind==="file"?new wn(t):new Wr(t)]}async*getEntries(){return this.entries()}async*keys(){for await(const[e]of this[Ds].entries())yield e}async*values(){for await(const[e,t]of this.entries())yield t}async getFileHandle(e,t={}){if(e==="")throw new TypeError("Name can't be an empty string.");if(e==="."||e===".."||e.includes("/"))throw new TypeError("Name contains invalid characters.");return t.create=!!t.create,new wn(await this[Ds].getFileHandle(e,t))}getFile(e,t={}){return this.getFileHandle(e,t)}async removeEntry(e,t={}){if(e==="")throw new TypeError("Name can't be an empty string.");if(e==="."||e===".."||e.includes("/"))throw new TypeError("Name contains invalid characters.");return t.recursive=!!t.recursive,this[Ds].removeEntry(e,t)}async resolve(e){if(await e.isSameEntry(this))return[];const t=[{handle:this,path:[]}];for(;t.length;){let{handle:i,path:s}=t.pop();for await(const n of i.values()){if(await n.isSameEntry(e))return[...s,n.name];n.kind==="directory"&&t.push({handle:n,path:[...s,n.name]})}}return null}[Symbol.asyncIterator](){return this.entries()}}Object.defineProperty(Wr.prototype,Symbol.toStringTag,{value:"FileSystemDirectoryHandle",writable:!1,enumerable:!1,configurable:!0});Object.defineProperties(Wr.prototype,{getDirectoryHandle:{enumerable:!0},entries:{enumerable:!0},getFileHandle:{enumerable:!0},removeEntry:{enumerable:!0}});const VA=Object.freeze(Object.defineProperty({__proto__:null,FileSystemDirectoryHandle:Wr,default:Wr},Symbol.toStringTag,{value:"Module"}));async function ef(r,e={}){var t,i,s,n;if(!r){if(!(!((t=globalThis.navigator)===null||t===void 0)&&t.storage)&&((i=globalThis.location)===null||i===void 0?void 0:i.protocol)==="http:")throw new Error("Native getDirectory not supported in HTTP context. Please use HTTPS instead or provide an adapter.");if(!(!((n=(s=globalThis.navigator)===null||s===void 0?void 0:s.storage)===null||n===void 0)&&n.getDirectory))throw new Error("Native StorageManager.getDirectory() is not supported in current environment. Please provide an adapter instead.");return globalThis.navigator.storage.getDirectory()}const a=await r,o=typeof a=="function"?await a(e):await a.default(e);return new Wr(o)}var _h,xh;const WA={adapter:{cache:!!(globalThis.CacheStorage&&globalThis.caches instanceof CacheStorage),native:typeof((xh=(_h=globalThis.navigator)===null||_h===void 0?void 0:_h.storage)===null||xh===void 0?void 0:xh.getDirectory)=="function",sandbox:typeof window<"u"&&typeof window.webkitRequestFileSystem=="function"}},tf=r=>typeof r=="object"&&r!=null&&r.nodeType===1,rf=(r,e)=>(!e||r!=="hidden")&&r!=="visible"&&r!=="clip",Th=(r,e)=>{if(r.clientHeight{const s=(n=>{if(!n.ownerDocument||!n.ownerDocument.defaultView)return null;try{return n.ownerDocument.defaultView.frameElement}catch{return null}})(i);return!!s&&(s.clientHeightne||n>r&&a=e&&o>=t?n-r-i:a>e&&ot?a-e+s:0,zA=r=>{const e=r.parentElement;return e??(r.getRootNode().host||null)},sf=(r,e)=>{var t,i,s,n;if(typeof document>"u")return[];const{scrollMode:a,block:o,inline:l,boundary:c,skipOverflowHiddenElements:d}=e,h=typeof c=="function"?c:$=>$!==c;if(!tf(r))throw new TypeError("Invalid target");const u=document.scrollingElement||document.documentElement,p=[];let f=r;for(;tf(f)&&h(f);){if(f=zA(f),f===u){p.push(f);break}f!=null&&f===document.body&&Th(f)&&!Th(document.documentElement)||f!=null&&Th(f,d)&&p.push(f)}const m=(i=(t=window.visualViewport)==null?void 0:t.width)!=null?i:innerWidth,g=(n=(s=window.visualViewport)==null?void 0:s.height)!=null?n:innerHeight,{scrollX:y,scrollY:w}=window,{height:b,width:v,top:E,right:C,bottom:I,left:L}=r.getBoundingClientRect(),{top:k,right:N,bottom:G,left:A}=($=>{const R=window.getComputedStyle($);return{top:parseFloat(R.scrollMarginTop)||0,right:parseFloat(R.scrollMarginRight)||0,bottom:parseFloat(R.scrollMarginBottom)||0,left:parseFloat(R.scrollMarginLeft)||0}})(r);let S=o==="start"||o==="nearest"?E-k:o==="end"?I+G:E+b/2-k+G,x=l==="center"?L+v/2-A+N:l==="end"?C+N:L-A;const D=[];for(let $=0;$=0&&L>=0&&I<=g&&C<=m&&E>=V&&I<=U&&L>=te&&C<=F)return D;const Q=getComputedStyle(R),Z=parseInt(Q.borderLeftWidth,10),ye=parseInt(Q.borderTopWidth,10),Ce=parseInt(Q.borderRightWidth,10),ce=parseInt(Q.borderBottomWidth,10);let fe=0,we=0;const le="offsetWidth"in R?R.offsetWidth-R.clientWidth-Z-Ce:0,pe="offsetHeight"in R?R.offsetHeight-R.clientHeight-ye-ce:0,be="offsetWidth"in R?R.offsetWidth===0?0:W/R.offsetWidth:0,T="offsetHeight"in R?R.offsetHeight===0?0:O/R.offsetHeight:0;if(u===R)fe=o==="start"?S:o==="end"?S-g:o==="nearest"?ao(w,w+g,g,ye,ce,w+S,w+S+b,b):S-g/2,we=l==="start"?x:l==="center"?x-m/2:l==="end"?x-m:ao(y,y+m,m,Z,Ce,y+x,y+x+v,v),fe=Math.max(0,fe+w),we=Math.max(0,we+y);else{fe=o==="start"?S-V-ye:o==="end"?S-U+ce+pe:o==="nearest"?ao(V,U,O,ye,ce+pe,S,S+b,b):S-(V+O/2)+pe/2,we=l==="start"?x-te-Z:l==="center"?x-(te+W/2)+le/2:l==="end"?x-F+Ce+le:ao(te,F,W,Z,Ce+le,x,x+v,v);const{scrollLeft:Y,scrollTop:j}=R;fe=T===0?0:Math.max(0,Math.min(j+fe/T,R.scrollHeight-O/T+pe)),we=be===0?0:Math.max(0,Math.min(Y+we/be,R.scrollWidth-W/be+le)),S+=j-fe,x+=Y-we}D.push({el:R,top:fe,left:we})}return D},jA=r=>r===!1?{block:"end",inline:"nearest"}:(e=>e===Object(e)&&Object.keys(e).length!==0)(r)?r:{block:"start",inline:"nearest"};function ra(r,e){if(!r.isConnected||!(s=>{let n=s;for(;n&&n.parentNode;){if(n.parentNode===document)return!0;n=n.parentNode instanceof ShadowRoot?n.parentNode.host:n.parentNode}return!1})(r))return;const t=(s=>{const n=window.getComputedStyle(s);return{top:parseFloat(n.scrollMarginTop)||0,right:parseFloat(n.scrollMarginRight)||0,bottom:parseFloat(n.scrollMarginBottom)||0,left:parseFloat(n.scrollMarginLeft)||0}})(r);if((s=>typeof s=="object"&&typeof s.behavior=="function")(e))return e.behavior(sf(r,e));const i=typeof e=="boolean"||e==null?void 0:e.behavior;for(const{el:s,top:n,left:a}of sf(r,jA(e))){const o=n-t.top+t.bottom,l=a-t.left+t.right;s.scroll({top:o,left:l,behavior:i})}}function zi(r,e){let t=Md(r)[2];return e&&t.slice(-1*e.length)===e&&(t=t.slice(0,t.length-e.length)),t}function Ot(r){const e=Md(r),t=e[0];let i=e[1];return!t&&!i?"":(i&&(i=i.slice(0,i.length-1)),t+i)}function $i(r){return Md(r)[3]}const $A=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^/]+?|)(\.[^./]*|))(?:[/]*)$/;function Md(r){return $A.exec(r).slice(1)}const{GONE:ty}=qo;FileSystemFileHandle;class kd{_path;kind="file";name;isFile=!0;isDirectory=!1;constructor(e){this._path=e,this.name=new URL(e).pathname.split("/").pop()??""}async getFile(){return fetch(this._path).then(e=>e.blob()).then(e=>new File([e],this.name)).catch(()=>{throw new DOMException(...ty)})}async createWritable(){throw Error("Cannot call createWriteable from a URLFileHandle")}async isSameEntry(e){return FileSystemHandle instanceof kd?e._path==this._path:!1}async queryPermission(){return"granted"}async requestPermission(){return"granted"}}class YA{async handleDropEvent(e,t){throw Error("Cannot call handleDropEvent from a URLFileHandler")}async getDirectoryHandle(e,t,i){throw Error("Cannot call getDirectoryHandle from a URLFileHandler")}async hasFile(e){return fetch(e).then(t=>t.ok).catch(()=>!1)}async getFileHandle(e,t){try{if(!await this.hasFile(e))throw new DOMException(...ty);return new kd(e)}catch(i){console.error("Failed to get file "+e+": "+i);return}}async getFileHandleRelativeTo(e,t){const i=new URL(e);$i(i.pathname)!=""&&(i.pathname=i.pathname.split("/").slice(0,-1).join("/")),i.pathname+="/"+t;try{return this.getFileHandle(i.toString())}catch(s){console.error("Failed to get relative file "+i+": "+s);return}}async getDirectoryFiles(e){throw Error("Cannot call getDirectoryFiles from a URLFileHandler")}async getDirectoryFolders(e){throw Error("Cannot call getDirectoryFolders from a URLFileHandler")}async writeFile(e,t){throw Error("Cannot save to a URL file!")}getRelativePath(e,t){throw Error("Cannot call getRelativePath from a URLFileHandler")}}function oo(r){throw new Error('Could not dynamically require "'+r+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var iy={exports:{}};/*! JSZip v3.10.1 - A JavaScript class for generating and reading zip files @@ -1183,7 +1183,7 @@ Dual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/js JSZip uses the library pako released under the MIT license : https://github.com/nodeca/pako/blob/main/LICENSE */(function(r,e){(function(t){r.exports=t()})(function(){return function t(i,s,n){function a(c,d){if(!s[c]){if(!i[c]){var h=typeof oo=="function"&&oo;if(!d&&h)return h(c,!0);if(o)return o(c,!0);var u=new Error("Cannot find module '"+c+"'");throw u.code="MODULE_NOT_FOUND",u}var p=s[c]={exports:{}};i[c][0].call(p.exports,function(f){var m=i[c][1][f];return a(m||f)},p,p.exports,t,i,s,n)}return s[c].exports}for(var o=typeof oo=="function"&&oo,l=0;l>2,p=(3&c)<<4|d>>4,f=1>6:64,m=2>4,d=(15&u)<<4|(p=o.indexOf(l.charAt(m++)))>>2,h=(3&p)<<6|(f=o.indexOf(l.charAt(m++))),w[g++]=c,p!==64&&(w[g++]=d),f!==64&&(w[g++]=h);return w}},{"./support":30,"./utils":32}],2:[function(t,i,s){var n=t("./external"),a=t("./stream/DataWorker"),o=t("./stream/Crc32Probe"),l=t("./stream/DataLengthProbe");function c(d,h,u,p,f){this.compressedSize=d,this.uncompressedSize=h,this.crc32=u,this.compression=p,this.compressedContent=f}c.prototype={getContentWorker:function(){var d=new a(n.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new l("data_length")),h=this;return d.on("end",function(){if(this.streamInfo.data_length!==h.uncompressedSize)throw new Error("Bug : uncompressed data size mismatch")}),d},getCompressedWorker:function(){return new a(n.Promise.resolve(this.compressedContent)).withStreamInfo("compressedSize",this.compressedSize).withStreamInfo("uncompressedSize",this.uncompressedSize).withStreamInfo("crc32",this.crc32).withStreamInfo("compression",this.compression)}},c.createWorkerFrom=function(d,h,u){return d.pipe(new o).pipe(new l("uncompressedSize")).pipe(h.compressWorker(u)).pipe(new l("compressedSize")).withStreamInfo("compression",h)},i.exports=c},{"./external":6,"./stream/Crc32Probe":25,"./stream/DataLengthProbe":26,"./stream/DataWorker":27}],3:[function(t,i,s){var n=t("./stream/GenericWorker");s.STORE={magic:"\0\0",compressWorker:function(){return new n("STORE compression")},uncompressWorker:function(){return new n("STORE decompression")}},s.DEFLATE=t("./flate")},{"./flate":7,"./stream/GenericWorker":28}],4:[function(t,i,s){var n=t("./utils"),a=function(){for(var o,l=[],c=0;c<256;c++){o=c;for(var d=0;d<8;d++)o=1&o?3988292384^o>>>1:o>>>1;l[c]=o}return l}();i.exports=function(o,l){return o!==void 0&&o.length?n.getTypeOf(o)!=="string"?function(c,d,h,u){var p=a,f=u+h;c^=-1;for(var m=u;m>>8^p[255&(c^d[m])];return-1^c}(0|l,o,o.length,0):function(c,d,h,u){var p=a,f=u+h;c^=-1;for(var m=u;m>>8^p[255&(c^d.charCodeAt(m))];return-1^c}(0|l,o,o.length,0):0}},{"./utils":32}],5:[function(t,i,s){s.base64=!1,s.binary=!1,s.dir=!1,s.createFolders=!0,s.date=null,s.compression=null,s.compressionOptions=null,s.comment=null,s.unixPermissions=null,s.dosPermissions=null},{}],6:[function(t,i,s){var n=null;n=typeof Promise<"u"?Promise:t("lie"),i.exports={Promise:n}},{lie:37}],7:[function(t,i,s){var n=typeof Uint8Array<"u"&&typeof Uint16Array<"u"&&typeof Uint32Array<"u",a=t("pako"),o=t("./utils"),l=t("./stream/GenericWorker"),c=n?"uint8array":"array";function d(h,u){l.call(this,"FlateWorker/"+h),this._pako=null,this._pakoAction=h,this._pakoOptions=u,this.meta={}}s.magic="\b\0",o.inherits(d,l),d.prototype.processChunk=function(h){this.meta=h.meta,this._pako===null&&this._createPako(),this._pako.push(o.transformTo(c,h.data),!1)},d.prototype.flush=function(){l.prototype.flush.call(this),this._pako===null&&this._createPako(),this._pako.push([],!0)},d.prototype.cleanUp=function(){l.prototype.cleanUp.call(this),this._pako=null},d.prototype._createPako=function(){this._pako=new a[this._pakoAction]({raw:!0,level:this._pakoOptions.level||-1});var h=this;this._pako.onData=function(u){h.push({data:u,meta:h.meta})}},s.compressWorker=function(h){return new d("Deflate",h)},s.uncompressWorker=function(){return new d("Inflate",{})}},{"./stream/GenericWorker":28,"./utils":32,pako:38}],8:[function(t,i,s){function n(p,f){var m,g="";for(m=0;m>>=8;return g}function a(p,f,m,g,y,w){var b,v,E=p.file,C=p.compression,I=w!==c.utf8encode,L=o.transformTo("string",w(E.name)),k=o.transformTo("string",c.utf8encode(E.name)),N=E.comment,G=o.transformTo("string",w(N)),A=o.transformTo("string",c.utf8encode(N)),S=k.length!==E.name.length,x=A.length!==N.length,D="",$="",R="",O=E.dir,W=E.date,V={crc32:0,compressedSize:0,uncompressedSize:0};f&&!m||(V.crc32=p.crc32,V.compressedSize=p.compressedSize,V.uncompressedSize=p.uncompressedSize);var F=0;f&&(F|=8),I||!S&&!x||(F|=2048);var U=0,te=0;O&&(U|=16),y==="UNIX"?(te=798,U|=function(Z,ye){var Ce=Z;return Z||(Ce=ye?16893:33204),(65535&Ce)<<16}(E.unixPermissions,O)):(te=20,U|=function(Z){return 63&(Z||0)}(E.dosPermissions)),b=W.getUTCHours(),b<<=6,b|=W.getUTCMinutes(),b<<=5,b|=W.getUTCSeconds()/2,v=W.getUTCFullYear()-1980,v<<=4,v|=W.getUTCMonth()+1,v<<=5,v|=W.getUTCDate(),S&&($=n(1,1)+n(d(L),4)+k,D+="up"+n($.length,2)+$),x&&(R=n(1,1)+n(d(G),4)+A,D+="uc"+n(R.length,2)+R);var Q="";return Q+=` -\0`,Q+=n(F,2),Q+=C.magic,Q+=n(b,2),Q+=n(v,2),Q+=n(V.crc32,4),Q+=n(V.compressedSize,4),Q+=n(V.uncompressedSize,4),Q+=n(L.length,2),Q+=n(D.length,2),{fileRecord:h.LOCAL_FILE_HEADER+Q+L+D,dirRecord:h.CENTRAL_FILE_HEADER+n(te,2)+Q+n(G.length,2)+"\0\0\0\0"+n(U,4)+n(g,4)+L+D+G}}var o=t("../utils"),l=t("../stream/GenericWorker"),c=t("../utf8"),d=t("../crc32"),h=t("../signature");function u(p,f,m,g){l.call(this,"ZipFileWorker"),this.bytesWritten=0,this.zipComment=f,this.zipPlatform=m,this.encodeFileName=g,this.streamFiles=p,this.accumulate=!1,this.contentBuffer=[],this.dirRecords=[],this.currentSourceOffset=0,this.entriesCount=0,this.currentFile=null,this._sources=[]}o.inherits(u,l),u.prototype.push=function(p){var f=p.meta.percent||0,m=this.entriesCount,g=this._sources.length;this.accumulate?this.contentBuffer.push(p):(this.bytesWritten+=p.data.length,l.prototype.push.call(this,{data:p.data,meta:{currentFile:this.currentFile,percent:m?(f+100*(m-g-1))/m:100}}))},u.prototype.openedSource=function(p){this.currentSourceOffset=this.bytesWritten,this.currentFile=p.file.name;var f=this.streamFiles&&!p.file.dir;if(f){var m=a(p,f,!1,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);this.push({data:m.fileRecord,meta:{percent:0}})}else this.accumulate=!0},u.prototype.closedSource=function(p){this.accumulate=!1;var f=this.streamFiles&&!p.file.dir,m=a(p,f,!0,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);if(this.dirRecords.push(m.dirRecord),f)this.push({data:function(g){return h.DATA_DESCRIPTOR+n(g.crc32,4)+n(g.compressedSize,4)+n(g.uncompressedSize,4)}(p),meta:{percent:100}});else for(this.push({data:m.fileRecord,meta:{percent:0}});this.contentBuffer.length;)this.push(this.contentBuffer.shift());this.currentFile=null},u.prototype.flush=function(){for(var p=this.bytesWritten,f=0;f=this.index;l--)c=(c<<8)+this.byteAt(l);return this.index+=o,c},readString:function(o){return n.transformTo("string",this.readData(o))},readData:function(){},lastIndexOfSignature:function(){},readAndCheckSignature:function(){},readDate:function(){var o=this.readInt(4);return new Date(Date.UTC(1980+(o>>25&127),(o>>21&15)-1,o>>16&31,o>>11&31,o>>5&63,(31&o)<<1))}},i.exports=a},{"../utils":32}],19:[function(t,i,s){var n=t("./Uint8ArrayReader");function a(o){n.call(this,o)}t("../utils").inherits(a,n),a.prototype.readData=function(o){this.checkOffset(o);var l=this.data.slice(this.zero+this.index,this.zero+this.index+o);return this.index+=o,l},i.exports=a},{"../utils":32,"./Uint8ArrayReader":21}],20:[function(t,i,s){var n=t("./DataReader");function a(o){n.call(this,o)}t("../utils").inherits(a,n),a.prototype.byteAt=function(o){return this.data.charCodeAt(this.zero+o)},a.prototype.lastIndexOfSignature=function(o){return this.data.lastIndexOf(o)-this.zero},a.prototype.readAndCheckSignature=function(o){return o===this.readData(4)},a.prototype.readData=function(o){this.checkOffset(o);var l=this.data.slice(this.zero+this.index,this.zero+this.index+o);return this.index+=o,l},i.exports=a},{"../utils":32,"./DataReader":18}],21:[function(t,i,s){var n=t("./ArrayReader");function a(o){n.call(this,o)}t("../utils").inherits(a,n),a.prototype.readData=function(o){if(this.checkOffset(o),o===0)return new Uint8Array(0);var l=this.data.subarray(this.zero+this.index,this.zero+this.index+o);return this.index+=o,l},i.exports=a},{"../utils":32,"./ArrayReader":17}],22:[function(t,i,s){var n=t("../utils"),a=t("../support"),o=t("./ArrayReader"),l=t("./StringReader"),c=t("./NodeBufferReader"),d=t("./Uint8ArrayReader");i.exports=function(h){var u=n.getTypeOf(h);return n.checkSupport(u),u!=="string"||a.uint8array?u==="nodebuffer"?new c(h):a.uint8array?new d(n.transformTo("uint8array",h)):new o(n.transformTo("array",h)):new l(h)}},{"../support":30,"../utils":32,"./ArrayReader":17,"./NodeBufferReader":19,"./StringReader":20,"./Uint8ArrayReader":21}],23:[function(t,i,s){s.LOCAL_FILE_HEADER="PK",s.CENTRAL_FILE_HEADER="PK",s.CENTRAL_DIRECTORY_END="PK",s.ZIP64_CENTRAL_DIRECTORY_LOCATOR="PK\x07",s.ZIP64_CENTRAL_DIRECTORY_END="PK",s.DATA_DESCRIPTOR="PK\x07\b"},{}],24:[function(t,i,s){var n=t("./GenericWorker"),a=t("../utils");function o(l){n.call(this,"ConvertWorker to "+l),this.destType=l}a.inherits(o,n),o.prototype.processChunk=function(l){this.push({data:a.transformTo(this.destType,l.data),meta:l.meta})},i.exports=o},{"../utils":32,"./GenericWorker":28}],25:[function(t,i,s){var n=t("./GenericWorker"),a=t("../crc32");function o(){n.call(this,"Crc32Probe"),this.withStreamInfo("crc32",0)}t("../utils").inherits(o,n),o.prototype.processChunk=function(l){this.streamInfo.crc32=a(l.data,this.streamInfo.crc32||0),this.push(l)},i.exports=o},{"../crc32":4,"../utils":32,"./GenericWorker":28}],26:[function(t,i,s){var n=t("../utils"),a=t("./GenericWorker");function o(l){a.call(this,"DataLengthProbe for "+l),this.propName=l,this.withStreamInfo(l,0)}n.inherits(o,a),o.prototype.processChunk=function(l){if(l){var c=this.streamInfo[this.propName]||0;this.streamInfo[this.propName]=c+l.data.length}a.prototype.processChunk.call(this,l)},i.exports=o},{"../utils":32,"./GenericWorker":28}],27:[function(t,i,s){var n=t("../utils"),a=t("./GenericWorker");function o(l){a.call(this,"DataWorker");var c=this;this.dataIsReady=!1,this.index=0,this.max=0,this.data=null,this.type="",this._tickScheduled=!1,l.then(function(d){c.dataIsReady=!0,c.data=d,c.max=d&&d.length||0,c.type=n.getTypeOf(d),c.isPaused||c._tickAndRepeat()},function(d){c.error(d)})}n.inherits(o,a),o.prototype.cleanUp=function(){a.prototype.cleanUp.call(this),this.data=null},o.prototype.resume=function(){return!!a.prototype.resume.call(this)&&(!this._tickScheduled&&this.dataIsReady&&(this._tickScheduled=!0,n.delay(this._tickAndRepeat,[],this)),!0)},o.prototype._tickAndRepeat=function(){this._tickScheduled=!1,this.isPaused||this.isFinished||(this._tick(),this.isFinished||(n.delay(this._tickAndRepeat,[],this),this._tickScheduled=!0))},o.prototype._tick=function(){if(this.isPaused||this.isFinished)return!1;var l=null,c=Math.min(this.max,this.index+16384);if(this.index>=this.max)return this.end();switch(this.type){case"string":l=this.data.substring(this.index,c);break;case"uint8array":l=this.data.subarray(this.index,c);break;case"array":case"nodebuffer":l=this.data.slice(this.index,c)}return this.index=c,this.push({data:l,meta:{percent:this.max?this.index/this.max*100:0}})},i.exports=o},{"../utils":32,"./GenericWorker":28}],28:[function(t,i,s){function n(a){this.name=a||"default",this.streamInfo={},this.generatedError=null,this.extraStreamInfo={},this.isPaused=!0,this.isFinished=!1,this.isLocked=!1,this._listeners={data:[],end:[],error:[]},this.previous=null}n.prototype={push:function(a){this.emit("data",a)},end:function(){if(this.isFinished)return!1;this.flush();try{this.emit("end"),this.cleanUp(),this.isFinished=!0}catch(a){this.emit("error",a)}return!0},error:function(a){return!this.isFinished&&(this.isPaused?this.generatedError=a:(this.isFinished=!0,this.emit("error",a),this.previous&&this.previous.error(a),this.cleanUp()),!0)},on:function(a,o){return this._listeners[a].push(o),this},cleanUp:function(){this.streamInfo=this.generatedError=this.extraStreamInfo=null,this._listeners=[]},emit:function(a,o){if(this._listeners[a])for(var l=0;l "+a:a}},i.exports=n},{}],29:[function(t,i,s){var n=t("../utils"),a=t("./ConvertWorker"),o=t("./GenericWorker"),l=t("../base64"),c=t("../support"),d=t("../external"),h=null;if(c.nodestream)try{h=t("../nodejs/NodejsStreamOutputAdapter")}catch{}function u(f,m){return new d.Promise(function(g,y){var w=[],b=f._internalType,v=f._outputType,E=f._mimeType;f.on("data",function(C,I){w.push(C),m&&m(I)}).on("error",function(C){w=[],y(C)}).on("end",function(){try{var C=function(I,L,k){switch(I){case"blob":return n.newBlob(n.transformTo("arraybuffer",L),k);case"base64":return l.encode(L);default:return n.transformTo(I,L)}}(v,function(I,L){var k,N=0,G=null,A=0;for(k=0;k"u")s.blob=!1;else{var n=new ArrayBuffer(0);try{s.blob=new Blob([n],{type:"application/zip"}).size===0}catch{try{var a=new(self.BlobBuilder||self.WebKitBlobBuilder||self.MozBlobBuilder||self.MSBlobBuilder);a.append(n),s.blob=a.getBlob("application/zip").size===0}catch{s.blob=!1}}}try{s.nodestream=!!t("readable-stream").Readable}catch{s.nodestream=!1}},{"readable-stream":16}],31:[function(t,i,s){for(var n=t("./utils"),a=t("./support"),o=t("./nodejsUtils"),l=t("./stream/GenericWorker"),c=new Array(256),d=0;d<256;d++)c[d]=252<=d?6:248<=d?5:240<=d?4:224<=d?3:192<=d?2:1;c[254]=c[254]=1;function h(){l.call(this,"utf-8 decode"),this.leftOver=null}function u(){l.call(this,"utf-8 encode")}s.utf8encode=function(p){return a.nodebuffer?o.newBufferFrom(p,"utf-8"):function(f){var m,g,y,w,b,v=f.length,E=0;for(w=0;w>>6:(g<65536?m[b++]=224|g>>>12:(m[b++]=240|g>>>18,m[b++]=128|g>>>12&63),m[b++]=128|g>>>6&63),m[b++]=128|63&g);return m}(p)},s.utf8decode=function(p){return a.nodebuffer?n.transformTo("nodebuffer",p).toString("utf-8"):function(f){var m,g,y,w,b=f.length,v=new Array(2*b);for(m=g=0;m>10&1023,v[g++]=56320|1023&y)}return v.length!==g&&(v.subarray?v=v.subarray(0,g):v.length=g),n.applyFromCharCode(v)}(p=n.transformTo(a.uint8array?"uint8array":"array",p))},n.inherits(h,l),h.prototype.processChunk=function(p){var f=n.transformTo(a.uint8array?"uint8array":"array",p.data);if(this.leftOver&&this.leftOver.length){if(a.uint8array){var m=f;(f=new Uint8Array(m.length+this.leftOver.length)).set(this.leftOver,0),f.set(m,this.leftOver.length)}else f=this.leftOver.concat(f);this.leftOver=null}var g=function(w,b){var v;for((b=b||w.length)>w.length&&(b=w.length),v=b-1;0<=v&&(192&w[v])==128;)v--;return v<0||v===0?b:v+c[w[v]]>b?v:b}(f),y=f;g!==f.length&&(a.uint8array?(y=f.subarray(0,g),this.leftOver=f.subarray(g,f.length)):(y=f.slice(0,g),this.leftOver=f.slice(g,f.length))),this.push({data:s.utf8decode(y),meta:p.meta})},h.prototype.flush=function(){this.leftOver&&this.leftOver.length&&(this.push({data:s.utf8decode(this.leftOver),meta:{}}),this.leftOver=null)},s.Utf8DecodeWorker=h,n.inherits(u,l),u.prototype.processChunk=function(p){this.push({data:s.utf8encode(p.data),meta:p.meta})},s.Utf8EncodeWorker=u},{"./nodejsUtils":14,"./stream/GenericWorker":28,"./support":30,"./utils":32}],32:[function(t,i,s){var n=t("./support"),a=t("./base64"),o=t("./nodejsUtils"),l=t("./external");function c(m){return m}function d(m,g){for(var y=0;y>8;this.dir=!!(16&this.externalFileAttributes),p==0&&(this.dosPermissions=63&this.externalFileAttributes),p==3&&(this.unixPermissions=this.externalFileAttributes>>16&65535),this.dir||this.fileNameStr.slice(-1)!=="/"||(this.dir=!0)},parseZIP64ExtraField:function(){if(this.extraFields[1]){var p=n(this.extraFields[1].value);this.uncompressedSize===a.MAX_VALUE_32BITS&&(this.uncompressedSize=p.readInt(8)),this.compressedSize===a.MAX_VALUE_32BITS&&(this.compressedSize=p.readInt(8)),this.localHeaderOffset===a.MAX_VALUE_32BITS&&(this.localHeaderOffset=p.readInt(8)),this.diskNumberStart===a.MAX_VALUE_32BITS&&(this.diskNumberStart=p.readInt(4))}},readExtraFields:function(p){var f,m,g,y=p.index+this.extraFieldsLength;for(this.extraFields||(this.extraFields={});p.index+4>>6:(p<65536?u[g++]=224|p>>>12:(u[g++]=240|p>>>18,u[g++]=128|p>>>12&63),u[g++]=128|p>>>6&63),u[g++]=128|63&p);return u},s.buf2binstring=function(h){return d(h,h.length)},s.binstring2buf=function(h){for(var u=new n.Buf8(h.length),p=0,f=u.length;p>10&1023,w[f++]=56320|1023&m)}return d(w,f)},s.utf8border=function(h,u){var p;for((u=u||h.length)>h.length&&(u=h.length),p=u-1;0<=p&&(192&h[p])==128;)p--;return p<0||p===0?u:p+l[h[p]]>u?p:u}},{"./common":41}],43:[function(t,i,s){i.exports=function(n,a,o,l){for(var c=65535&n|0,d=n>>>16&65535|0,h=0;o!==0;){for(o-=h=2e3>>1:a>>>1;o[l]=a}return o}();i.exports=function(a,o,l,c){var d=n,h=c+l;a^=-1;for(var u=c;u>>8^d[255&(a^o[u])];return-1^a}},{}],46:[function(t,i,s){var n,a=t("../utils/common"),o=t("./trees"),l=t("./adler32"),c=t("./crc32"),d=t("./messages"),h=0,u=4,p=0,f=-2,m=-1,g=4,y=2,w=8,b=9,v=286,E=30,C=19,I=2*v+1,L=15,k=3,N=258,G=N+k+1,A=42,S=113,x=1,D=2,$=3,R=4;function O(T,Y){return T.msg=d[Y],Y}function W(T){return(T<<1)-(4T.avail_out&&(j=T.avail_out),j!==0&&(a.arraySet(T.output,Y.pending_buf,Y.pending_out,j,T.next_out),T.next_out+=j,Y.pending_out+=j,T.total_out+=j,T.avail_out-=j,Y.pending-=j,Y.pending===0&&(Y.pending_out=0))}function U(T,Y){o._tr_flush_block(T,0<=T.block_start?T.block_start:-1,T.strstart-T.block_start,Y),T.block_start=T.strstart,F(T.strm)}function te(T,Y){T.pending_buf[T.pending++]=Y}function Q(T,Y){T.pending_buf[T.pending++]=Y>>>8&255,T.pending_buf[T.pending++]=255&Y}function Z(T,Y){var j,P,M=T.max_chain_length,H=T.strstart,J=T.prev_length,ee=T.nice_match,z=T.strstart>T.w_size-G?T.strstart-(T.w_size-G):0,re=T.window,he=T.w_mask,ne=T.prev,_e=T.strstart+N,Ye=re[H+J-1],Fe=re[H+J];T.prev_length>=T.good_match&&(M>>=2),ee>T.lookahead&&(ee=T.lookahead);do if(re[(j=Y)+J]===Fe&&re[j+J-1]===Ye&&re[j]===re[H]&&re[++j]===re[H+1]){H+=2,j++;do;while(re[++H]===re[++j]&&re[++H]===re[++j]&&re[++H]===re[++j]&&re[++H]===re[++j]&&re[++H]===re[++j]&&re[++H]===re[++j]&&re[++H]===re[++j]&&re[++H]===re[++j]&&H<_e);if(P=N-(_e-H),H=_e-N,Jz&&--M!=0);return J<=T.lookahead?J:T.lookahead}function ye(T){var Y,j,P,M,H,J,ee,z,re,he,ne=T.w_size;do{if(M=T.window_size-T.lookahead-T.strstart,T.strstart>=ne+(ne-G)){for(a.arraySet(T.window,T.window,ne,ne,0),T.match_start-=ne,T.strstart-=ne,T.block_start-=ne,Y=j=T.hash_size;P=T.head[--Y],T.head[Y]=ne<=P?P-ne:0,--j;);for(Y=j=ne;P=T.prev[--Y],T.prev[Y]=ne<=P?P-ne:0,--j;);M+=ne}if(T.strm.avail_in===0)break;if(J=T.strm,ee=T.window,z=T.strstart+T.lookahead,re=M,he=void 0,he=J.avail_in,re=k)for(H=T.strstart-T.insert,T.ins_h=T.window[H],T.ins_h=(T.ins_h<=k&&(T.ins_h=(T.ins_h<=k)if(P=o._tr_tally(T,T.strstart-T.match_start,T.match_length-k),T.lookahead-=T.match_length,T.match_length<=T.max_lazy_match&&T.lookahead>=k){for(T.match_length--;T.strstart++,T.ins_h=(T.ins_h<=k&&(T.ins_h=(T.ins_h<=k&&T.match_length<=T.prev_length){for(M=T.strstart+T.lookahead-k,P=o._tr_tally(T,T.strstart-1-T.prev_match,T.prev_length-k),T.lookahead-=T.prev_length-1,T.prev_length-=2;++T.strstart<=M&&(T.ins_h=(T.ins_h<T.pending_buf_size-5&&(j=T.pending_buf_size-5);;){if(T.lookahead<=1){if(ye(T),T.lookahead===0&&Y===h)return x;if(T.lookahead===0)break}T.strstart+=T.lookahead,T.lookahead=0;var P=T.block_start+j;if((T.strstart===0||T.strstart>=P)&&(T.lookahead=T.strstart-P,T.strstart=P,U(T,!1),T.strm.avail_out===0)||T.strstart-T.block_start>=T.w_size-G&&(U(T,!1),T.strm.avail_out===0))return x}return T.insert=0,Y===u?(U(T,!0),T.strm.avail_out===0?$:R):(T.strstart>T.block_start&&(U(T,!1),T.strm.avail_out),x)}),new fe(4,4,8,4,Ce),new fe(4,5,16,8,Ce),new fe(4,6,32,32,Ce),new fe(4,4,16,16,ce),new fe(8,16,32,32,ce),new fe(8,16,128,128,ce),new fe(8,32,128,256,ce),new fe(32,128,258,1024,ce),new fe(32,258,258,4096,ce)],s.deflateInit=function(T,Y){return be(T,Y,w,15,8,0)},s.deflateInit2=be,s.deflateReset=pe,s.deflateResetKeep=le,s.deflateSetHeader=function(T,Y){return T&&T.state?T.state.wrap!==2?f:(T.state.gzhead=Y,p):f},s.deflate=function(T,Y){var j,P,M,H;if(!T||!T.state||5>8&255),te(P,P.gzhead.time>>16&255),te(P,P.gzhead.time>>24&255),te(P,P.level===9?2:2<=P.strategy||P.level<2?4:0),te(P,255&P.gzhead.os),P.gzhead.extra&&P.gzhead.extra.length&&(te(P,255&P.gzhead.extra.length),te(P,P.gzhead.extra.length>>8&255)),P.gzhead.hcrc&&(T.adler=c(T.adler,P.pending_buf,P.pending,0)),P.gzindex=0,P.status=69):(te(P,0),te(P,0),te(P,0),te(P,0),te(P,0),te(P,P.level===9?2:2<=P.strategy||P.level<2?4:0),te(P,3),P.status=S);else{var J=w+(P.w_bits-8<<4)<<8;J|=(2<=P.strategy||P.level<2?0:P.level<6?1:P.level===6?2:3)<<6,P.strstart!==0&&(J|=32),J+=31-J%31,P.status=S,Q(P,J),P.strstart!==0&&(Q(P,T.adler>>>16),Q(P,65535&T.adler)),T.adler=1}if(P.status===69)if(P.gzhead.extra){for(M=P.pending;P.gzindex<(65535&P.gzhead.extra.length)&&(P.pending!==P.pending_buf_size||(P.gzhead.hcrc&&P.pending>M&&(T.adler=c(T.adler,P.pending_buf,P.pending-M,M)),F(T),M=P.pending,P.pending!==P.pending_buf_size));)te(P,255&P.gzhead.extra[P.gzindex]),P.gzindex++;P.gzhead.hcrc&&P.pending>M&&(T.adler=c(T.adler,P.pending_buf,P.pending-M,M)),P.gzindex===P.gzhead.extra.length&&(P.gzindex=0,P.status=73)}else P.status=73;if(P.status===73)if(P.gzhead.name){M=P.pending;do{if(P.pending===P.pending_buf_size&&(P.gzhead.hcrc&&P.pending>M&&(T.adler=c(T.adler,P.pending_buf,P.pending-M,M)),F(T),M=P.pending,P.pending===P.pending_buf_size)){H=1;break}H=P.gzindexM&&(T.adler=c(T.adler,P.pending_buf,P.pending-M,M)),H===0&&(P.gzindex=0,P.status=91)}else P.status=91;if(P.status===91)if(P.gzhead.comment){M=P.pending;do{if(P.pending===P.pending_buf_size&&(P.gzhead.hcrc&&P.pending>M&&(T.adler=c(T.adler,P.pending_buf,P.pending-M,M)),F(T),M=P.pending,P.pending===P.pending_buf_size)){H=1;break}H=P.gzindexM&&(T.adler=c(T.adler,P.pending_buf,P.pending-M,M)),H===0&&(P.status=103)}else P.status=103;if(P.status===103&&(P.gzhead.hcrc?(P.pending+2>P.pending_buf_size&&F(T),P.pending+2<=P.pending_buf_size&&(te(P,255&T.adler),te(P,T.adler>>8&255),T.adler=0,P.status=S)):P.status=S),P.pending!==0){if(F(T),T.avail_out===0)return P.last_flush=-1,p}else if(T.avail_in===0&&W(Y)<=W(j)&&Y!==u)return O(T,-5);if(P.status===666&&T.avail_in!==0)return O(T,-5);if(T.avail_in!==0||P.lookahead!==0||Y!==h&&P.status!==666){var ee=P.strategy===2?function(z,re){for(var he;;){if(z.lookahead===0&&(ye(z),z.lookahead===0)){if(re===h)return x;break}if(z.match_length=0,he=o._tr_tally(z,0,z.window[z.strstart]),z.lookahead--,z.strstart++,he&&(U(z,!1),z.strm.avail_out===0))return x}return z.insert=0,re===u?(U(z,!0),z.strm.avail_out===0?$:R):z.last_lit&&(U(z,!1),z.strm.avail_out===0)?x:D}(P,Y):P.strategy===3?function(z,re){for(var he,ne,_e,Ye,Fe=z.window;;){if(z.lookahead<=N){if(ye(z),z.lookahead<=N&&re===h)return x;if(z.lookahead===0)break}if(z.match_length=0,z.lookahead>=k&&0z.lookahead&&(z.match_length=z.lookahead)}if(z.match_length>=k?(he=o._tr_tally(z,1,z.match_length-k),z.lookahead-=z.match_length,z.strstart+=z.match_length,z.match_length=0):(he=o._tr_tally(z,0,z.window[z.strstart]),z.lookahead--,z.strstart++),he&&(U(z,!1),z.strm.avail_out===0))return x}return z.insert=0,re===u?(U(z,!0),z.strm.avail_out===0?$:R):z.last_lit&&(U(z,!1),z.strm.avail_out===0)?x:D}(P,Y):n[P.level].func(P,Y);if(ee!==$&&ee!==R||(P.status=666),ee===x||ee===$)return T.avail_out===0&&(P.last_flush=-1),p;if(ee===D&&(Y===1?o._tr_align(P):Y!==5&&(o._tr_stored_block(P,0,0,!1),Y===3&&(V(P.head),P.lookahead===0&&(P.strstart=0,P.block_start=0,P.insert=0))),F(T),T.avail_out===0))return P.last_flush=-1,p}return Y!==u?p:P.wrap<=0?1:(P.wrap===2?(te(P,255&T.adler),te(P,T.adler>>8&255),te(P,T.adler>>16&255),te(P,T.adler>>24&255),te(P,255&T.total_in),te(P,T.total_in>>8&255),te(P,T.total_in>>16&255),te(P,T.total_in>>24&255)):(Q(P,T.adler>>>16),Q(P,65535&T.adler)),F(T),0=j.w_size&&(H===0&&(V(j.head),j.strstart=0,j.block_start=0,j.insert=0),re=new a.Buf8(j.w_size),a.arraySet(re,Y,he-j.w_size,j.w_size,0),Y=re,he=j.w_size),J=T.avail_in,ee=T.next_in,z=T.input,T.avail_in=he,T.next_in=0,T.input=Y,ye(j);j.lookahead>=k;){for(P=j.strstart,M=j.lookahead-(k-1);j.ins_h=(j.ins_h<>>=k=L>>>24,b-=k,(k=L>>>16&255)===0)D[d++]=65535&L;else{if(!(16&k)){if(!(64&k)){L=v[(65535&L)+(w&(1<>>=k,b-=k),b<15&&(w+=x[l++]<>>=k=L>>>24,b-=k,!(16&(k=L>>>16&255))){if(!(64&k)){L=E[(65535&L)+(w&(1<>>=k,b-=k,(k=d-h)>3,w&=(1<<(b-=N<<3))-1,n.next_in=l,n.next_out=d,n.avail_in=l>>24&255)+(A>>>8&65280)+((65280&A)<<8)+((255&A)<<24)}function w(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new n.Buf16(320),this.work=new n.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function b(A){var S;return A&&A.state?(S=A.state,A.total_in=A.total_out=S.total=0,A.msg="",S.wrap&&(A.adler=1&S.wrap),S.mode=f,S.last=0,S.havedict=0,S.dmax=32768,S.head=null,S.hold=0,S.bits=0,S.lencode=S.lendyn=new n.Buf32(m),S.distcode=S.distdyn=new n.Buf32(g),S.sane=1,S.back=-1,u):p}function v(A){var S;return A&&A.state?((S=A.state).wsize=0,S.whave=0,S.wnext=0,b(A)):p}function E(A,S){var x,D;return A&&A.state?(D=A.state,S<0?(x=0,S=-S):(x=1+(S>>4),S<48&&(S&=15)),S&&(S<8||15=R.wsize?(n.arraySet(R.window,S,x-R.wsize,R.wsize,0),R.wnext=0,R.whave=R.wsize):(D<($=R.wsize-R.wnext)&&($=D),n.arraySet(R.window,S,x-D,$,R.wnext),(D-=$)?(n.arraySet(R.window,S,x-D,D,0),R.wnext=D,R.whave=R.wsize):(R.wnext+=$,R.wnext===R.wsize&&(R.wnext=0),R.whave>>8&255,x.check=o(x.check,H,2,0),U=F=0,x.mode=2;break}if(x.flags=0,x.head&&(x.head.done=!1),!(1&x.wrap)||(((255&F)<<8)+(F>>8))%31){A.msg="incorrect header check",x.mode=30;break}if((15&F)!=8){A.msg="unknown compression method",x.mode=30;break}if(U-=4,T=8+(15&(F>>>=4)),x.wbits===0)x.wbits=T;else if(T>x.wbits){A.msg="invalid window size",x.mode=30;break}x.dmax=1<>8&1),512&x.flags&&(H[0]=255&F,H[1]=F>>>8&255,x.check=o(x.check,H,2,0)),U=F=0,x.mode=3;case 3:for(;U<32;){if(W===0)break e;W--,F+=D[R++]<>>8&255,H[2]=F>>>16&255,H[3]=F>>>24&255,x.check=o(x.check,H,4,0)),U=F=0,x.mode=4;case 4:for(;U<16;){if(W===0)break e;W--,F+=D[R++]<>8),512&x.flags&&(H[0]=255&F,H[1]=F>>>8&255,x.check=o(x.check,H,2,0)),U=F=0,x.mode=5;case 5:if(1024&x.flags){for(;U<16;){if(W===0)break e;W--,F+=D[R++]<>>8&255,x.check=o(x.check,H,2,0)),U=F=0}else x.head&&(x.head.extra=null);x.mode=6;case 6:if(1024&x.flags&&(W<(Z=x.length)&&(Z=W),Z&&(x.head&&(T=x.head.extra_len-x.length,x.head.extra||(x.head.extra=new Array(x.head.extra_len)),n.arraySet(x.head.extra,D,R,Z,T)),512&x.flags&&(x.check=o(x.check,D,Z,R)),W-=Z,R+=Z,x.length-=Z),x.length))break e;x.length=0,x.mode=7;case 7:if(2048&x.flags){if(W===0)break e;for(Z=0;T=D[R+Z++],x.head&&T&&x.length<65536&&(x.head.name+=String.fromCharCode(T)),T&&Z>9&1,x.head.done=!0),A.adler=x.check=0,x.mode=12;break;case 10:for(;U<32;){if(W===0)break e;W--,F+=D[R++]<>>=7&U,U-=7&U,x.mode=27;break}for(;U<3;){if(W===0)break e;W--,F+=D[R++]<>>=1)){case 0:x.mode=14;break;case 1:if(N(x),x.mode=20,S!==6)break;F>>>=2,U-=2;break e;case 2:x.mode=17;break;case 3:A.msg="invalid block type",x.mode=30}F>>>=2,U-=2;break;case 14:for(F>>>=7&U,U-=7&U;U<32;){if(W===0)break e;W--,F+=D[R++]<>>16^65535)){A.msg="invalid stored block lengths",x.mode=30;break}if(x.length=65535&F,U=F=0,x.mode=15,S===6)break e;case 15:x.mode=16;case 16:if(Z=x.length){if(W>>=5,U-=5,x.ndist=1+(31&F),F>>>=5,U-=5,x.ncode=4+(15&F),F>>>=4,U-=4,286>>=3,U-=3}for(;x.have<19;)x.lens[J[x.have++]]=0;if(x.lencode=x.lendyn,x.lenbits=7,j={bits:x.lenbits},Y=c(0,x.lens,0,19,x.lencode,0,x.work,j),x.lenbits=j.bits,Y){A.msg="invalid code lengths set",x.mode=30;break}x.have=0,x.mode=19;case 19:for(;x.have>>16&255,we=65535&M,!((ce=M>>>24)<=U);){if(W===0)break e;W--,F+=D[R++]<>>=ce,U-=ce,x.lens[x.have++]=we;else{if(we===16){for(P=ce+2;U>>=ce,U-=ce,x.have===0){A.msg="invalid bit length repeat",x.mode=30;break}T=x.lens[x.have-1],Z=3+(3&F),F>>>=2,U-=2}else if(we===17){for(P=ce+3;U>>=ce)),F>>>=3,U-=3}else{for(P=ce+7;U>>=ce)),F>>>=7,U-=7}if(x.have+Z>x.nlen+x.ndist){A.msg="invalid bit length repeat",x.mode=30;break}for(;Z--;)x.lens[x.have++]=T}}if(x.mode===30)break;if(x.lens[256]===0){A.msg="invalid code -- missing end-of-block",x.mode=30;break}if(x.lenbits=9,j={bits:x.lenbits},Y=c(d,x.lens,0,x.nlen,x.lencode,0,x.work,j),x.lenbits=j.bits,Y){A.msg="invalid literal/lengths set",x.mode=30;break}if(x.distbits=6,x.distcode=x.distdyn,j={bits:x.distbits},Y=c(h,x.lens,x.nlen,x.ndist,x.distcode,0,x.work,j),x.distbits=j.bits,Y){A.msg="invalid distances set",x.mode=30;break}if(x.mode=20,S===6)break e;case 20:x.mode=21;case 21:if(6<=W&&258<=V){A.next_out=O,A.avail_out=V,A.next_in=R,A.avail_in=W,x.hold=F,x.bits=U,l(A,Q),O=A.next_out,$=A.output,V=A.avail_out,R=A.next_in,D=A.input,W=A.avail_in,F=x.hold,U=x.bits,x.mode===12&&(x.back=-1);break}for(x.back=0;fe=(M=x.lencode[F&(1<>>16&255,we=65535&M,!((ce=M>>>24)<=U);){if(W===0)break e;W--,F+=D[R++]<>le)])>>>16&255,we=65535&M,!(le+(ce=M>>>24)<=U);){if(W===0)break e;W--,F+=D[R++]<>>=le,U-=le,x.back+=le}if(F>>>=ce,U-=ce,x.back+=ce,x.length=we,fe===0){x.mode=26;break}if(32&fe){x.back=-1,x.mode=12;break}if(64&fe){A.msg="invalid literal/length code",x.mode=30;break}x.extra=15&fe,x.mode=22;case 22:if(x.extra){for(P=x.extra;U>>=x.extra,U-=x.extra,x.back+=x.extra}x.was=x.length,x.mode=23;case 23:for(;fe=(M=x.distcode[F&(1<>>16&255,we=65535&M,!((ce=M>>>24)<=U);){if(W===0)break e;W--,F+=D[R++]<>le)])>>>16&255,we=65535&M,!(le+(ce=M>>>24)<=U);){if(W===0)break e;W--,F+=D[R++]<>>=le,U-=le,x.back+=le}if(F>>>=ce,U-=ce,x.back+=ce,64&fe){A.msg="invalid distance code",x.mode=30;break}x.offset=we,x.extra=15&fe,x.mode=24;case 24:if(x.extra){for(P=x.extra;U>>=x.extra,U-=x.extra,x.back+=x.extra}if(x.offset>x.dmax){A.msg="invalid distance too far back",x.mode=30;break}x.mode=25;case 25:if(V===0)break e;if(Z=Q-V,x.offset>Z){if((Z=x.offset-Z)>x.whave&&x.sane){A.msg="invalid distance too far back",x.mode=30;break}ye=Z>x.wnext?(Z-=x.wnext,x.wsize-Z):x.wnext-Z,Z>x.length&&(Z=x.length),Ce=x.window}else Ce=$,ye=O-x.offset,Z=x.length;for(VI?(k=ye[Ce+g[S]],U[te+g[S]]):(k=96,0),w=1<>O)+(b-=w)]=L<<24|k<<16|N|0,b!==0;);for(w=1<>=1;if(w!==0?(F&=w-1,F+=w):F=0,S++,--Q[A]==0){if(A===D)break;A=h[u+g[S]]}if($>>7)]}function te(M,H){M.pending_buf[M.pending++]=255&H,M.pending_buf[M.pending++]=H>>>8&255}function Q(M,H,J){M.bi_valid>y-J?(M.bi_buf|=H<>y-M.bi_valid,M.bi_valid+=J-y):(M.bi_buf|=H<>>=1,J<<=1,0<--H;);return J>>>1}function Ce(M,H,J){var ee,z,re=new Array(g+1),he=0;for(ee=1;ee<=g;ee++)re[ee]=he=he+J[ee-1]<<1;for(z=0;z<=H;z++){var ne=M[2*z+1];ne!==0&&(M[2*z]=ye(re[ne]++,ne))}}function ce(M){var H;for(H=0;H>1;1<=J;J--)le(M,re,J);for(z=_e;J=M.heap[1],M.heap[1]=M.heap[M.heap_len--],le(M,re,1),ee=M.heap[1],M.heap[--M.heap_max]=J,M.heap[--M.heap_max]=ee,re[2*z]=re[2*J]+re[2*ee],M.depth[z]=(M.depth[J]>=M.depth[ee]?M.depth[J]:M.depth[ee])+1,re[2*J+1]=re[2*ee+1]=z,M.heap[1]=z++,le(M,re,1),2<=M.heap_len;);M.heap[--M.heap_max]=M.heap[1],function(Fe,Gt){var Xr,Qt,qr,nt,q,me,Te=Gt.dyn_tree,$e=Gt.max_code,Ve=Gt.stat_desc.static_tree,Ct=Gt.stat_desc.has_stree,Vt=Gt.stat_desc.extra_bits,tr=Gt.stat_desc.extra_base,wr=Gt.stat_desc.max_length,ei=0;for(nt=0;nt<=g;nt++)Fe.bl_count[nt]=0;for(Te[2*Fe.heap[Fe.heap_max]+1]=0,Xr=Fe.heap_max+1;Xr>=7;z>>=1)if(1&Ye&&ne.dyn_ltree[2*_e]!==0)return a;if(ne.dyn_ltree[18]!==0||ne.dyn_ltree[20]!==0||ne.dyn_ltree[26]!==0)return o;for(_e=32;_e>>3,(re=M.static_len+3+7>>>3)<=z&&(z=re)):z=re=J+5,J+4<=z&&H!==-1?P(M,H,J,ee):M.strategy===4||re===z?(Q(M,2+(ee?1:0),3),pe(M,G,A)):(Q(M,4+(ee?1:0),3),function(ne,_e,Ye,Fe){var Gt;for(Q(ne,_e-257,5),Q(ne,Ye-1,5),Q(ne,Fe-4,4),Gt=0;Gt>>8&255,M.pending_buf[M.d_buf+2*M.last_lit+1]=255&H,M.pending_buf[M.l_buf+M.last_lit]=255&J,M.last_lit++,H===0?M.dyn_ltree[2*J]++:(M.matches++,H--,M.dyn_ltree[2*(x[J]+h+1)]++,M.dyn_dtree[2*U(H)]++),M.last_lit===M.lit_bufsize-1},s._tr_align=function(M){Q(M,2,3),Z(M,b,G),function(H){H.bi_valid===16?(te(H,H.bi_buf),H.bi_buf=0,H.bi_valid=0):8<=H.bi_valid&&(H.pending_buf[H.pending++]=255&H.bi_buf,H.bi_buf>>=8,H.bi_valid-=8)}(M)}},{"../utils/common":41}],53:[function(t,i,s){i.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}},{}],54:[function(t,i,s){(function(n){(function(a,o){if(!a.setImmediate){var l,c,d,h,u=1,p={},f=!1,m=a.document,g=Object.getPrototypeOf&&Object.getPrototypeOf(a);g=g&&g.setTimeout?g:a,l={}.toString.call(a.process)==="[object process]"?function(v){process.nextTick(function(){w(v)})}:function(){if(a.postMessage&&!a.importScripts){var v=!0,E=a.onmessage;return a.onmessage=function(){v=!1},a.postMessage("","*"),a.onmessage=E,v}}()?(h="setImmediate$"+Math.random()+"$",a.addEventListener?a.addEventListener("message",b,!1):a.attachEvent("onmessage",b),function(v){a.postMessage(h+v,"*")}):a.MessageChannel?((d=new MessageChannel).port1.onmessage=function(v){w(v.data)},function(v){d.port2.postMessage(v)}):m&&"onreadystatechange"in m.createElement("script")?(c=m.documentElement,function(v){var E=m.createElement("script");E.onreadystatechange=function(){w(v),E.onreadystatechange=null,c.removeChild(E),E=null},c.appendChild(E)}):function(v){setTimeout(w,0,v)},g.setImmediate=function(v){typeof v!="function"&&(v=new Function(""+v));for(var E=new Array(arguments.length-1),C=0;C"u"?n===void 0?this:n:self)}).call(this,typeof Wt<"u"?Wt:typeof self<"u"?self:typeof window<"u"?window:{})},{}]},{},[10])(10)})})(iy);var XA=iy.exports;const qA=ya(XA),nr=class nr{static async writeHandle(e,t){const i=this.workID++,s=new Promise((o,l)=>this.map.set(i,[o,l])),n=new TextEncoder,a=typeof t=="string"?n.encode(t):await t.arrayBuffer();return this.worker.postMessage([i,e,a],[a]),s}};Ms(nr,"worker",new Worker(new URL("/smeditor/assets/SafariFileWorker-557e53c3.js",self.location),{type:"module"})),Ms(nr,"workID",0),Ms(nr,"map",new Map),nr.worker.onmessage=e=>{const t=e.data;t.success?nr.map.get(t.id)[0]():nr.map.get(t.id)[1](t.reason),nr.map.delete(t.id)};let Gc=nr;class KA{_root;async getRoot(){return this._root||(WA.adapter.native?await ef().then(e=>this._root=e):await ef(Ke(()=>import("./memory-3d55e3da.js"),[])).then(e=>this._root=e)),this._root}async uploadHandle(e,t){let i;if(typeof t=="string"){const s=await this.getDirectoryHandle(t,{create:!0});if(!s)return;i=s}else i=t??await this.getRoot();if(e.kind=="file"){const s=await i.getFileHandle(e.name,{create:!0});await this.writeFile(s,await e.getFile())}else{const s=await i.getDirectoryHandle(e.name,{create:!0}),n=[];for await(const a of e.values())n.push(this.uploadHandle(a,s));await Promise.all(n)}}async uploadFiles(e,t){let i;if(typeof t=="string"){const s=await this.getDirectoryHandle(t,{create:!0});if(!s)return;i=s}else i=t??await this.getRoot();if(e.isFile){const s=e;if(s.name==".DS_Store")return;s.file(async n=>{const a=await i.getFileHandle(n.name,{create:!0});await this.writeHandle(a,n)})}else if(e.isDirectory){const s=e.createReader(),n=await i.getDirectoryHandle(e.name,{create:!0});for await(const a of n.values())await n.removeEntry(a.name,{recursive:!0});s.readEntries(async a=>{const o=[];for(let l=0;li!="."&&i!="");t.indexOf("..")>-1;){const i=t.indexOf("..");if(i==0)throw Error("Path"+t.join("/")+"is invalid!");t.splice(i-1,2)}return t.join("/")}async zipDirectory(e,t){const i=t??new qA,s=$i(e)==""?e:Ot(e),n=await this.getDirectoryHandle(s);if(n){for(const a of await this.getDirectoryFiles(n))i.file(a.name,await a.getFile());for(const a of await this.getDirectoryFolders(n)){const o=i.folder(a.name);if(!o){console.error("Failed to zip folder "+s+"/"+a.name);continue}await this.zipDirectory(s+"/"+a.name,o)}return i}}async saveDirectory(e){const t=$i(e)==""?e:Ot(e);Se.create("Exporting "+t+".zip");const i=await GA({_preferPolyfill:!1,suggestedName:`${t}.zip`,types:[{accept:{"application/zip":[".zip"]}}],excludeAcceptAllOption:!1}),s=await this.zipDirectory(e);s&&await s.generateAsync({type:"blob"}).then(async n=>{if(!window.showSaveFilePicker){console.log(n);const a=document.createElement("a"),o=URL.createObjectURL(n);document.body.appendChild(a),a.href=o,a.download=t+".zip",a.click(),a.remove(),window.URL.revokeObjectURL(o);return}await this.writeHandle(i,n)})}async renameFile(e,t){if(e!=t)try{const i=await this.getDirectoryHandle(Ot(e)),s=await this.getDirectoryHandle(Ot(t),{create:!0}),n=await this.getFileHandle(e);if(!i||!s||!n)return;await this.copyToHandle(s,n,zi(t)),await i.removeEntry(zi(e))}catch(i){console.error(i)}}async renameDirectory(e,t){if(!t.startsWith(e))try{const i=await this.getDirectoryHandle(Ot(e)),s=await this.getDirectoryHandle(Ot(t),{create:!0}),n=await this.getDirectoryHandle(e);if(!i||!s||!n)return;await this.copyToHandle(s,n,zi(t)),await i.removeEntry(zi(e),{recursive:!0})}catch(i){console.error(i)}}async copyToHandle(e,t,i){try{if(t.kind=="directory"){const s=await e.getDirectoryHandle(i??t.name,{create:!0}),n=[];for await(const a of t.values())n.push(this.copyToHandle(s,a));await Promise.all(n)}else{const s=await t.getFile(),n=await e.getFileHandle(i??t.name,{create:!0});await this.writeHandle(n,s)}}catch(s){console.error(s)}}getRelativePath(e,t){const i=e.split("/"),s=t.split("/"),n=Math.min(i.length,s.length);let a=n;for(let l=0;limport("./NodeFileHandler-14aa1e9e.js"),[])).NodeFileHandler:new KA}static getStandardHandler(){return this.standardHandler}static getHandler(e){return e!==void 0&&e.startsWith("https://")||e?.startsWith("http://")?this.urlHandler:this.standardHandler}static handleDropEvent(e,t){return this.getHandler().handleDropEvent(e,t)}static getDirectoryHandle(e,t){return Ue.getHandler(e).getDirectoryHandle(e,t)}static hasFile(e){return Ue.getHandler(e).hasFile(e)}static getFileHandle(e,t){return Ue.getHandler(e).getFileHandle(e,t)}static getFileHandleRelativeTo(e,t){return Ue.getHandler(e).getFileHandleRelativeTo(e,t)}static getDirectoryFiles(e){return Ue.getHandler(typeof e=="string"?e:void 0).getDirectoryFiles(e)}static getDirectoryFolders(e){return Ue.getHandler(typeof e=="string"?e:void 0).getDirectoryFolders(e)}static writeFile(e,t){return Ue.getHandler(typeof e=="string"?e:void 0).writeFile(e,t)}static getRelativePath(e,t){return Ue.getHandler().getRelativePath(e,t)}}class St{windowManager;options;windowElement;viewElement;constructor(e){this.options=e;const t=document.createElement("div"),i=document.createElement("div"),s=document.createElement("div"),n=document.createElement("div");if(t.appendChild(s),t.appendChild(i),t.style.width=e.width+"px",t.style.left=window.innerWidth/2-e.width/2+"px",t.style.top=window.innerHeight/2-e.height/2+"px",t.classList.add("unselectable","window"),e.win_id&&(t.dataset.win_id=e.win_id),i.classList.add("view"),i.style.height=e.height+"px",i.style.width=e.width+"px",s.classList.add("navbar"),e.title!==""&&s.appendChild(n),!e.disableClose){const a=Ae.getIcon("MINIMIZE",15),o=Ae.getIcon("CLOSE_WINDOW",15);a.classList.add("unselectable"),a.draggable=!1,a.onclick=()=>{i.style.height!="0px"?i.style.height="0px":i.style.height=e.height+"px",this.clampPosition()},o.classList.add("unselectable"),o.draggable=!1,o.onclick=()=>this.closeWindow(),s.appendChild(a),s.appendChild(o)}n.innerText=e.title,n.classList.add("title"),t.addEventListener("mousedown",()=>this.focus()),e.blocking&&(window.addEventListener("mousedown",this.block,!0),document.getElementById("blocker").style.display="block",t.dataset.blocking="block"),n.addEventListener("mousedown",()=>{window.addEventListener("mousemove",this.handleDrag),window.addEventListener("mouseup",()=>window.removeEventListener("mousemove",this.handleDrag))}),this.focus(),t.classList.add("focused"),this.windowElement=t,this.viewElement=i}addToManager(e){this.windowManager=e,e.view.appendChild(this.windowElement),this.focus()}onClose(){}closeWindow(){this.windowManager&&(this.onClose(),this.windowManager.removeWindow(this),this.windowElement.classList.add("exiting"),window.removeEventListener("mousedown",this.block,!0),this.options.blocking&&this.windowManager.windows.filter(e=>e.options.blocking).length==0&&(document.getElementById("blocker").style.display="none"),setTimeout(()=>this.windowManager.view.removeChild(this.windowElement),40))}focus(){if(this.windowManager==null)return;this.windowManager.unfocusAll(),this.windowElement.classList.add("focused");const e=Array.from(this.windowManager.view.children).map(t=>t).filter(t=>t!=this.windowElement);e.sort((t,i)=>parseInt(t.style.zIndex)-parseInt(i.style.zIndex)),e.push(this.windowElement);for(let t=0;t{!e.target||this.windowElement.contains(e.target)||(e.stopImmediatePropagation(),e.preventDefault())};handleDrag=e=>{const t=parseInt(this.windowElement.style.left.slice(0,-2))+e.movementX,i=parseInt(this.windowElement.style.top.slice(0,-2))+e.movementY;this.windowElement.style.left=t+"px",this.windowElement.style.top=i+"px",this.clampPosition()};clampPosition(){if(this.windowManager==null)return;const e=parseInt(this.windowElement.style.left.slice(0,-2)),t=parseInt(this.windowElement.style.top.slice(0,-2)),i=this.windowManager.app.view.getBoundingClientRect();this.windowElement.style.left=Be(e,i.left,i.width-this.windowElement.clientWidth+i.left)+"px",this.windowElement.style.top=Be(t,i.top,i.height-this.windowElement.clientHeight+i.top)+"px"}move(e,t){this.windowElement.style.left=e+"px",this.windowElement.style.top=t+"px"}}class Id extends St{app;dirOptions;fileDropPath="";draggedElement;draggedCopy;keyHandler;dropHandler;mouseHandler;dragHandler;constructor(e,t,i){super({title:t.title,width:500,height:400,disableClose:t.disableClose,win_id:"file_selector"+Math.random(),blocking:!0}),this.app=e,this.dirOptions=t,t.accepted_file_types||=[],this.keyHandler=this.handleKeyEvent.bind(this),this.dropHandler=this.handleDropEvent.bind(this),this.mouseHandler=this.handleMouseEvent.bind(this),this.dragHandler=this.handleDragEvent.bind(this),this.initView().then(()=>{i&&this.selectPath(i),t.onload?.()})}async initView(){this.viewElement.replaceChildren();const e=document.createElement("div");e.classList.add("padding");const t=document.createElement("div");t.classList.add("menu-options");const i=document.createElement("div");i.classList.add("menu-left");const s=document.createElement("div");s.classList.add("menu-right"),t.appendChild(i),t.appendChild(s);const n=document.createElement("button");n.innerText="Cancel",n.onclick=()=>{window.removeEventListener("keydown",this.keyHandler,!0),window.removeEventListener("drop",this.dropHandler,!0),this.closeWindow()};const a=document.createElement("button");a.innerText="Select",a.classList.add("confirm"),a.onclick=()=>this.confirmFile(),a.disabled=!0,i.appendChild(n),s.appendChild(a);const o=document.createElement("div");o.classList.add("dir-selector"),o.onclick=y=>{y.target==o&&this.selectElement(void 0)};const l=document.createElement("div");l.classList.add("file-options");const c=document.createElement("button"),d=Ae.getIcon("ADD_FILE",16);c.appendChild(d),c.appendChild(document.createTextNode("Upload files")),l.appendChild(c),c.onclick=async()=>{const y=this.fileDropPath,w=await Qg({_preferPolyfill:!1,excludeAcceptAllOption:!1,multiple:!0}),v=this.viewElement.querySelector(".info.selected")?.dataset.path??"",E=[];for(const C of w)E.push(Ue.getStandardHandler().uploadHandle(C,v));await Promise.all(E),await this.refreshDirectory(y),this.getAcceptableFile(y).then(C=>this.selectPath(C))};const h=document.createElement("button"),u=Ae.getIcon("FOLDER",16);h.appendChild(u),h.appendChild(document.createTextNode("Upload folder")),l.appendChild(h),h.onclick=async()=>{const y=this.fileDropPath,w=await HA({_preferPolyfill:!1}),v=this.viewElement.querySelector(".info.selected")?.dataset.path??"";await Ue.getStandardHandler().uploadHandle(w,v),await this.refreshDirectory(y),this.getAcceptableFile(y==""?w.name:y+"/"+w.name).then(E=>this.selectPath(E))};const p=document.createElement("button");p.classList.add("rename");const f=Ae.getIcon("EDIT",16);p.appendChild(f),p.appendChild(document.createTextNode("Rename")),p.disabled=!0,p.onclick=()=>{const y=this.viewElement.querySelector(".info.selected");y?.dataset.path&&this.startEditing(y.querySelector("textarea"))},l.appendChild(p);const m=document.createElement("button");m.classList.add("delete");const g=Ae.getIcon("TRASH",16);m.appendChild(g),m.appendChild(document.createTextNode("Delete")),m.disabled=!0,m.onclick=()=>{const y=this.viewElement.querySelector(".info.selected"),w=y?.dataset.path;if(!w)return;const b=y.parentElement.classList.contains("folder");Ue.getStandardHandler()[b?"removeDirectory":"removeFile"](w).then(()=>{const v=this.getElement(w);v&&(v.parentElement?.remove(),m.disabled=!0,p.disabled=!0)})},l.appendChild(m),e.appendChild(o),e.appendChild(l),e.appendChild(t),this.viewElement.appendChild(e),window.addEventListener("keydown",this.keyHandler,!0),window.addEventListener("drop",this.dropHandler,!0),window.addEventListener("mousemove",this.dragHandler,!0),this.viewElement.addEventListener("dragover",this.mouseHandler),await this.createDiv("").then(y=>o.replaceChildren(...y))}async expand(e){if(!e.parentElement.classList.contains("folder"))return;e.parentElement.classList.remove("collapsed");const t=e.nextSibling;await this.createDiv(e.dataset.path).then(i=>{t.replaceChildren(...i)})}collapse(e){if(!e.parentElement.classList.contains("folder"))return;e.parentElement.classList.add("collapsed"),e.nextSibling.replaceChildren()}selectElement(e){if(this.viewElement.querySelector(".info.selected")?.classList.remove("selected"),!e){this.viewElement.querySelector(".delete").disabled=!0,this.viewElement.querySelector(".rename").disabled=!0;return}e.classList.add("selected"),ra(e,{scrollMode:"if-needed",block:"nearest",inline:"nearest"});const t=this.viewElement.querySelector("button.confirm"),i=e.dataset.path;t.disabled=!0,i&&(t.disabled=!this.acceptableFileType(i),this.viewElement.querySelector(".delete").disabled=!1,this.viewElement.querySelector(".rename").disabled=!1)}async createDiv(e){const t=await Ue.getStandardHandler().getDirectoryFolders(e);let i=await Ue.getStandardHandler().getDirectoryFiles(e);return t.sort((s,n)=>s.name.toLowerCase().localeCompare(n.name.toLowerCase())),i.sort((s,n)=>s.name.toLowerCase().localeCompare(n.name.toLowerCase())),i=i.filter(s=>$i(s.name)!=".crswap"),t.map(s=>this.createBaseElement(e,s)).concat(i.map(s=>this.createBaseElement(e,s)))}createBaseElement(e,t){e!=""&&(e+="/");const i=document.createElement("div");i.classList.add("item");const s=document.createElement("div");if(s.classList.add("info"),i.appendChild(s),t.kind=="directory"){const a=Ae.getIcon("CHEVRON",16);a.classList.add("folder-icon"),s.appendChild(a);const o=document.createElement("div");o.classList.add("children"),i.appendChild(o),i.classList.add("folder"),i.classList.add("collapsed"),s.addEventListener("click",l=>{const c=l.target;c?.classList.contains("options-icon")||c.tagName=="TEXTAREA"&&!c.disabled||(i.classList.contains("collapsed")?this.expand(s):this.collapse(s))})}else{this.acceptableFileType(t.name)||s.classList.add("disabled");const a=Ae.getIcon(this.getIconId(t.name),16);s.appendChild(a)}s.dataset.path=e+t.name;const n=document.createElement("textarea");return n.rows=1,n.disabled=!0,n.autocomplete="off",n.autocapitalize="off",n.spellcheck=!1,n.innerText=t.name,n.style.pointerEvents="none",n.classList.add("title"),s.appendChild(n),s.addEventListener("click",()=>this.selectElement(s)),s.addEventListener("mousedown",()=>this.startDragging(s)),s.ondblclick=()=>this.confirmFile(),i}confirmFile(){const t=this.viewElement.querySelector(".info.selected")?.dataset.path;t&&this.acceptableFileType(t)&&(this.dirOptions.callback?.(t),window.removeEventListener("keydown",this.keyHandler,!0),window.removeEventListener("drop",this.dropHandler,!0),window.removeEventListener("mousemove",this.dragHandler,!0),this.closeWindow())}acceptableFileType(e){return this.dirOptions.accepted_file_types.length==0||this.dirOptions.accepted_file_types.includes($i(e))}getIconId(e){const t=$i(e);return t==""&&!e.startsWith(".")?"FOLDER":ns.includes(t)?"IMAGE_FILE":ml.includes(t)?"VOLUME":[".sm",".ssc"].includes(t)?"SM_FILE":"UNKNOWN_FILE"}startEditing(e){const t=e.value,i=!!e.parentElement?.parentElement?.classList.contains("folder"),s=e.parentElement?.dataset.path??"",n=Ot(s);e.value=s.split("/").at(-1)??"",window.removeEventListener("keydown",this.keyHandler,!0),e.disabled=!1,e.style.pointerEvents="",e.focus(),e.addEventListener("keypress",a=>{a.code=="Enter"&&(a.preventDefault(),a.stopImmediatePropagation(),e.blur())},!0),e.addEventListener("blur",async()=>{if(window.addEventListener("keydown",this.keyHandler,!0),e.disabled=!0,e.style.pointerEvents="none",e.value.startsWith(".")){e.value=t;return}e.value=e.value.replaceAll("/","");const a=n==""?e.value:n+"/"+e.value;a!=s&&(e.parentElement.dataset.path=a,await Ue.getStandardHandler()[i?"renameDirectory":"renameFile"](s,a),this.refreshDirectory(n),e.value.length>32&&(e.value=e.value.slice(0,32)+"..."))})}async refreshDirectory(e){const t=this.viewElement.querySelector(".dir-selector");if(!t)return;let i=t.querySelector("div[data-path='"+this.escapeSelector(e)+"']")?.nextSibling;if(e==""&&(i=t),!i)return;const s=Array.from(i.parentElement.querySelectorAll(".folder:not(.collapsed)")).map(n=>n.children[0].dataset.path);await this.createDiv(e).then(n=>i.replaceChildren(...n)),await Promise.all(s.map(n=>this.expand(t.querySelector("div[data-path='"+this.escapeSelector(n)+"']"))))}getElement(e){const t=this.viewElement.querySelector(".dir-selector");return t?t.querySelector("div[data-path='"+this.escapeSelector(e)+"']"):null}async getAcceptableFile(e){const t=await Ue.getStandardHandler().getDirectoryHandle(e);if(!t)return;const i=[{path:e,handle:t}];for(;i.length>0;){const s=i.shift(),n=s.handle;for await(const a of n.values()){const o=s.path==""?"":s.path+"/";if(a.kind=="directory")i.push({path:o+a.name,handle:a});else if(this.acceptableFileType(a.name))return o+a.name}}}async selectPath(e){if(!e)return;const t=this.viewElement.querySelector(".dir-selector");if(!t)return;const i=e.split("/");i.pop();const s=[];for(;i.length>0;){s.push(i.shift());const a=t.querySelector("div[data-path='"+this.escapeSelector(s.join("/"))+"']");if(!a)return;await this.expand(a)}const n=t.querySelector("div[data-path='"+this.escapeSelector(e)+"']");n&&this.selectElement(n)}handleKeyEvent(e){if(!this.windowElement.classList.contains("focused"))return;const t=this.viewElement.querySelector(".info.selected");if(t==null){if(e.code.startsWith("Arrow")){const i=this.viewElement.querySelector(".info");i&&this.selectElement(i)}return}if(e.code=="ArrowUp"){e.preventDefault(),e.stopImmediatePropagation();const i=t.parentElement;let s=i.previousSibling?.querySelector(".info");s&&!s.parentElement.classList.contains("collapsed")&&s.parentElement.classList.contains("folder")&&(s=s.parentElement.querySelector(".children").lastChild.querySelector(".info")),!s&&i.parentElement.classList.contains("children")&&(s=i.parentElement.parentElement.querySelector(".info")),s&&(this.selectElement(s),ra(s,{scrollMode:"if-needed",block:"nearest",inline:"nearest"}))}if(e.code=="ArrowDown"){e.preventDefault(),e.stopImmediatePropagation();const i=t.parentElement;let s;i.classList.contains("folder")&&!i.classList.contains("collapsed")&&(s=i.querySelector(".children").children[0].querySelector(".info")),s||(s=t.parentElement.nextSibling?.querySelector(".info")),!s&&i.parentElement.classList.contains("children")&&(s=i.parentElement.parentElement.nextSibling.querySelector(".info")),s&&(this.selectElement(s),ra(s,{scrollMode:"if-needed",block:"nearest",inline:"nearest"}))}if(e.code=="ArrowLeft"&&(e.preventDefault(),e.stopImmediatePropagation(),this.collapse(t)),e.code=="ArrowRight"&&(e.preventDefault(),e.stopImmediatePropagation(),this.expand(t)),e.code=="Enter"&&(e.preventDefault(),e.stopImmediatePropagation(),t.parentElement?.querySelector(".title")&&this.startEditing(t.parentElement?.querySelector(".title"))),e.code=="Delete"||e.code=="Backspace"){const i=this.viewElement.querySelector(".info.selected"),s=i?.dataset.path;if(!s)return;const n=i.parentElement.classList.contains("folder");Ue.getStandardHandler()[n?"removeDirectory":"removeFile"](s).then(()=>{const a=this.getElement(s);a&&(a.parentElement?.remove(),this.viewElement.querySelector(".delete").disabled=!0,this.viewElement.querySelector(".rename").disabled=!0)})}}startDragging(e){const t=e;t.totalMovementX=0,t.totalMovementY=0,this.draggedElement=t;const i=()=>{this.stopDragging(),window.removeEventListener("mouseup",i)};window.addEventListener("mouseup",i)}handleDragEvent(e){if(this.draggedElement){if(this.draggedElement.totalMovementX+=e.movementX,this.draggedElement.totalMovementY+=e.movementY,!this.draggedCopy)if(Math.abs(this.draggedElement.totalMovementX)+Math.abs(this.draggedElement.totalMovementY)>8){this.viewElement.addEventListener("mousemove",this.mouseHandler),this.draggedCopy=this.draggedElement.parentElement.cloneNode(!0),this.draggedCopy.style.position="fixed";const t=this.draggedElement.getBoundingClientRect();this.draggedCopy.style.top=t.top+this.draggedElement.totalMovementY+"px",this.draggedCopy.style.left=t.left+this.draggedElement.totalMovementX+"px",this.draggedCopy.style.width=t.width+"px",this.draggedCopy.style.boxShadow="3px 3px 3px #222",this.draggedCopy.querySelector(".children")&&this.draggedCopy.removeChild(this.draggedCopy.querySelector(".children")),this.viewElement.appendChild(this.draggedCopy)}else return;this.draggedCopy.style.top=parseFloat(this.draggedCopy.style.top.slice(0,-2))+e.movementY+"px",this.draggedCopy.style.left=parseFloat(this.draggedCopy.style.left.slice(0,-2))+e.movementX+"px"}}async stopDragging(){if(this.draggedCopy){this.draggedCopy.remove(),this.viewElement.removeEventListener("mousemove",this.mouseHandler);const e=this.draggedCopy.classList.contains("folder"),t=this.draggedElement.dataset.path,i=this.fileDropPath==""?zi(this.draggedElement.dataset.path):this.fileDropPath+"/"+zi(this.draggedElement.dataset.path);t!=i&&await Ue.getStandardHandler()[e?"renameDirectory":"renameFile"](t,i),await this.refreshDirectory(Ot(t)),await this.refreshDirectory(Ot(i)),this.viewElement.querySelector(".outlined")?.classList.remove("outlined"),this.fileDropPath=""}this.draggedCopy=void 0,this.draggedElement=void 0}handleDropEvent(e){e.preventDefault(),e.stopImmediatePropagation(),this.viewElement.querySelector(".outlined")?.classList.remove("outlined"),e.target.closest(".dir-selector")&&Ue.getStandardHandler().handleDropEvent(e,this.fileDropPath).then(async t=>{await this.refreshDirectory(this.fileDropPath),this.getAcceptableFile(t??this.fileDropPath).then(i=>this.selectPath(i)),this.fileDropPath=""})}handleMouseEvent(e){const t=this.viewElement.querySelector(".dir-selector");let i=Array.from(t.querySelectorAll("div.item.folder"));const s=this.viewElement.querySelector(".outlined");i=i.filter(n=>!n.parentElement.closest(".collapsed")),i.reverse(),i.push(t);for(const n of i){const a=n.getBoundingClientRect();if(e.clientX>=a.x&&e.clientX<=a.x+a.width&&e.clientY>=a.y&&e.clientY<=a.y+a.height){s!=n&&s?.classList.remove("outlined");const o=n.querySelector(".info");this.fileDropPath=o?.dataset.path??"",n.classList.contains("dir-selector")&&(this.fileDropPath=""),n.classList.add("outlined");return}}this.viewElement.querySelector(".outlined")?.classList.remove("outlined"),this.fileDropPath=""}escapeSelector(e){return e.replaceAll(/'/g,"\\'")}}class mt{items=[];itemIndex=0;limit=0;app;static instance;constructor(e){this.app=e,mt.instance||(mt.instance=this)}run(e){e.action(this.app),this.items.splice(this.itemIndex,this.items.length-this.itemIndex,e),this.itemIndex++}undo(){this.items[this.itemIndex-1]&&(this.items[this.itemIndex-1].undo(this.app),this.itemIndex--,K.emit("undo"))}redo(){this.items[this.itemIndex]&&(this.items[this.itemIndex].redo?this.items[this.itemIndex].redo(this.app):this.items[this.itemIndex].action(this.app),this.itemIndex++,K.emit("redo"))}reset(){this.itemIndex=0,this.limit=0,this.items=[]}canUndo(){return this.itemIndex>0}canRedo(){return this.itemIndex!=this.items.length}setLimit(){this.limit=this.itemIndex}isDirty(){return this.itemIndex!=this.limit}}function ry(){const r=document.createElement("div");return r.spellcheck=!1,r.contentEditable="true",r.classList.add("inlineEdit"),r.onkeydown=e=>{e.key=="Enter"&&r.blur()},r}function lo(r,e){return{title:r,element:t=>{const i=ry();return i.onblur=()=>{const s=t[e];mt.instance.run({action:()=>{t[e]=i.innerText},undo:()=>{t[e]=s}}),i.scrollLeft=0},i.innerText=t[e],i}}}const ZA={name:lo("Name","chartName"),credit:lo("Artist","credit"),style:lo("Style","chartStyle"),description:lo("Description","description"),music:{title:"Music File",element:(r,e)=>{const t=document.createElement("div");t.classList.add("flex-row","flex-column-gap","flex-static","hide-buttons");const i=()=>{if(s.innerText==(r.music??e.chartManager.loadedSM.properties.MUSIC??""))return;const c=e.chartManager.chartAudio.isPlaying();if(s.innerText==""||s.innerText==e.chartManager.loadedSM.properties.MUSIC){r.music=void 0,s.innerText=e.chartManager.loadedSM.properties.MUSIC+"",e.chartManager.loadAudio(),c&&e.chartManager.chartAudio.play();return}const d=r.music;mt.instance.run({action:()=>r.music=s.innerText==e.chartManager.loadedSM.properties.MUSIC?void 0:s.innerText,undo:()=>r.music=d}),e.chartManager.loadAudio(),c&&e.chartManager.chartAudio.play()},s=ry();s.style.flex="1",s.onblur=i,s.innerText=r.music??e.chartManager.loadedSM.properties.MUSIC??"";const n=document.createElement("button");n.onclick=()=>{const c=Ot(e.chartManager.smPath);if(window.nw){const d=document.createElement("input");d.type="file",d.accept="audio/*",d.onchange=()=>{s.innerText=Ue.getRelativePath(c,d.value),i()},d.click()}else e.windowManager.openWindow(new Id(e,{title:"Select an audio file...",accepted_file_types:ml,disableClose:!0,callback:d=>{s.innerText=Ue.getRelativePath(c,d),i()}},c+"/"+(r.music??e.chartManager.loadedSM.properties.MUSIC??"")))};const a=Ae.getIcon("FOLDER",12);n.appendChild(a);const o=document.createElement("button");o.onclick=()=>{s.innerText!=(e.chartManager.loadedSM.properties.MUSIC??"")&&(s.innerText=e.chartManager.loadedSM.properties.MUSIC??"",i())};const l=Ae.getIcon("REVERT",12);return o.appendChild(l),t.appendChild(s),t.appendChild(n),t.appendChild(o),t}}};class gi{view;items=[];selectedItem;onChangeHandlers=[];static create(e,t){return new gi(document.createElement("div"),e,t)}constructor(e,t,i){this.view=e,e.classList.add("dropdown"),this.items=t??[],this.selectedItem=i??this.items[0];const s=document.createElement("div");s.classList.add("dropdown-selected");const n=document.createElement("div");n.classList.add("dropdown-selected-text");const a=Ae.getIcon("CHEVRON",12);s.appendChild(n),s.appendChild(a);const o=document.createElement("div");o.classList.add("dropdown-items"),o.style.height="",s.onclick=()=>{if(!s.classList.contains("disabled")){if(this.items.length==0){o.style.height="";return}this.createDropdown(),o.style.height==""?(o.classList.remove("collapsed"),o.style.width=Math.max(o.scrollWidth,s.clientWidth)+"px",o.style.height=o.scrollHeight+"px",Array.from(o.children).forEach((l,c)=>{l.style.animationDelay=c*.02+"s"})):(o.style.height="",o.classList.add("collapsed"))}},window.addEventListener("click",l=>{const c=l.target;(!c.closest(".dropdown")||c.closest(".dropdown")!=e)&&(o.style.height="")}),this.view.appendChild(s),this.view.appendChild(o),this.setSelected()}onChange(e){this.onChangeHandlers.push(e)}removeHandler(e){this.onChangeHandlers.includes(e)&&this.onChangeHandlers.splice(this.onChangeHandlers.indexOf(e),1)}getItems(){return this.items}setItems(e){this.items=e,e.includes(this.selectedItem)||(this.selectedItem=this.items[0],this.setSelected())}setSelected(e){this.selectedItem=e??this.selectedItem;const t=this.view.querySelector(".dropdown-selected-text");t.innerText=this.selectedItem?this.selectedItem+"":""}closeDropdown(){const e=this.view.querySelector(".dropdown-items");e&&(e.style.height="")}get value(){return this.selectedItem}get disabled(){return this.view.querySelector(".dropdown-selected").classList.contains("disabled")}set disabled(e){e?this.view.querySelector(".dropdown-selected").classList.add("disabled"):this.view.querySelector(".dropdown-selected").classList.remove("disabled")}createDropdown(){const e=this.view.querySelector(".dropdown-items"),t=this.items.map((i,s)=>{const n=document.createElement("div");return n.classList.add("dropdown-item"),n.innerText=i+"",n.onclick=()=>{e.style.height="",this.selectedItem!=i&&(this.setSelected(i),this.onChangeHandlers.forEach(a=>a(i,s)))},n});e.replaceChildren(...t)}}class El extends St{app;buttonOptions;message;resolve;resolved=new Promise(e=>this.resolve=e);constructor(e,t,i,s){super({title:t,width:300,height:100,disableClose:!0,win_id:"confirm",blocking:!0}),this.app=e,this.message=i,this.buttonOptions=s,this.initView()}initView(){this.viewElement.replaceChildren(),this.viewElement.classList.add("confirmation");const e=document.createElement("div");e.classList.add("padding");const t=document.createElement("div");t.classList.add("label"),t.innerText=this.message,e.appendChild(t);const i=document.createElement("div");i.classList.add("menu-options"),this.buttonOptions.forEach(s=>{const n=document.createElement("button");n.innerText=s.label,n.onclick=()=>{s.callback?.(),this.resolve?.(s.label),this.closeWindow()},s.type!="default"&&n.classList.add(s.type),i.append(n)}),e.appendChild(i),this.viewElement.appendChild(e)}}class sy extends St{app;gameType;chartList;chartInfo;gameTypeDropdown;smLoadHandler=()=>{this.gameTypeDropdown.setItems(We.getPriority().map(e=>{const t=this.app.chartManager.loadedSM?.charts[e.id]??[];return e.id+" ("+t.length+")"})),this.gameTypeDropdown.setSelected(this.gameType.id+" ("+(this.app.chartManager.loadedSM?.charts[this.gameType.id]??[]).length+") "),this.gameType=this.app.chartManager.loadedChart?.gameType??this.gameType,this.loadCharts()};constructor(e,t){super({title:"Chart List",width:500,height:400,win_id:"chart_list"}),this.app=e,this.gameType=t??e.chartManager.loadedChart?.gameType??We.getPriority()[0],this.initView(),K.on("smLoadedAfter",this.smLoadHandler)}initView(){this.viewElement.replaceChildren();const e=document.createElement("div");e.classList.add("padding");const t=document.createElement("div");t.classList.add("chart-view-type-wrapper");const i=document.createElement("div");i.classList.add("chart-view-type-label"),i.innerText="Game Type:",this.gameTypeDropdown=gi.create(We.getPriority().map(n=>{const a=this.app.chartManager.loadedSM?.charts[n.id]??[];return n.id+" ("+a.length+")"}),this.gameType.id+" ("+(this.app.chartManager.loadedSM?.charts[this.gameType.id]??[]).length+") "),this.gameTypeDropdown.onChange(n=>{this.gameType=We.getGameType(n.split(" ")[0])??this.gameType,this.loadCharts()}),t.appendChild(i),t.appendChild(this.gameTypeDropdown.view);const s=document.createElement("div");s.classList.add("chart-view-scroller"),e.appendChild(t),e.appendChild(s),this.chartList=document.createElement("div"),this.chartList.classList.add("chart-list"),this.chartInfo=document.createElement("div"),this.chartInfo.classList.add("chart-info"),s.appendChild(this.chartList),s.appendChild(this.chartInfo),this.viewElement.appendChild(e),this.loadCharts()}onClose(){K.off("smLoadedAfter",this.smLoadHandler)}loadCharts(){const e=this.app.chartManager.loadedSM?.charts[this.gameType.id]??[],t=[];this.gameTypeDropdown.setItems(We.getPriority().map(a=>{const o=this.app.chartManager.loadedSM?.charts[a.id]??[];return a.id+" ("+o.length+")"})),this.gameTypeDropdown.setSelected(this.gameType.id+" ("+(this.app.chartManager.loadedSM?.charts[this.gameType.id]??[]).length+") "),e.forEach(a=>{const o=document.createElement("div");o.classList.add("chart-list-item"),o.chart=a,this.app.chartManager.loadedChart==a&&o.classList.add("selected"),o.onclick=()=>{o.chart!=this.app.chartManager.loadedChart&&(this.app.chartManager.loadChart(o.chart),this.chartList.querySelectorAll(".selected").forEach(u=>u.classList.remove("selected")),o.classList.add("selected"))},o.onmouseenter=()=>{this.loadChartDetails(o.chart)},o.onmouseleave=()=>{this.loadChartDetails()};const l=document.createElement("div");l.innerText=a.meter+"",l.classList.add("title",a.difficulty);const c=document.createElement("div");c.classList.add("chart-list-info");const d=document.createElement("div");d.innerText=a.credit,d.classList.add("title","chart-credit");const h=document.createElement("div");h.innerText=a.getNotedata().length+"",h.classList.add("title","chart-step-count"),c.appendChild(d),c.appendChild(h),o.appendChild(l),o.appendChild(c),t.push(o)});const i=document.createElement("div");i.classList.add("chart-list-item");const s=document.createElement("div");s.innerText="+",s.classList.add("title");const n=document.createElement("div");n.classList.add("chart-list-info"),n.innerText="New Blank Chart",i.appendChild(s),i.appendChild(n),i.onclick=()=>{const a=new Jg(this.app.chartManager.loadedSM);a.gameType=this.gameType,this.app.chartManager.loadedSM.addChart(a),this.app.chartManager.loadChart(a),this.loadCharts()},this.chartList.replaceChildren(...t,i),this.loadChartDetails()}loadChartDetails(e){if(e=e??this.app.chartManager.loadedChart,e?.gameType.id!=this.gameType.id){this.chartInfo.replaceChildren();return}if(!e)return;const t=()=>this.app.chartManager.loadedSM.charts[e.gameType.id].sort((m,g)=>Ei.indexOf(m.difficulty)==Ei.indexOf(g.difficulty)?m.meter-g.meter:Ei.indexOf(m.difficulty)-Ei.indexOf(g.difficulty)),i=document.createElement("div");i.classList.add("chart-info-main");const s=gi.create(Ei,e.difficulty);s.view.classList.add("no-border","white"),s.onChange(m=>{const g=e.difficulty;mt.instance.run({action:()=>{e.difficulty=m,t(),this.loadCharts()},undo:()=>{e.difficulty=g,t(),this.loadCharts()}})});const n=document.createElement("div");n.spellcheck=!1,n.contentEditable="true",n.classList.add("inlineEdit","chart-meter"),n.onkeydown=m=>{m.key=="Enter"&&n.blur()},n.onblur=()=>{let m=ua(n.innerText);if(m===null){n.innerText=e?.meter+"";return}m=Math.round(Be(1,m,2**31-1));const g=e.meter;mt.instance.run({action:()=>{e.meter=m,e.meterF=m,t(),this.loadCharts()},undo:()=>{e.meter=g,e.meterF=g,t(),this.loadCharts()}}),n.scrollLeft=0},n.innerText=e.meter+"";const a=document.createElement("div");a.classList.add("chart-properties"),i.appendChild(s.view),i.appendChild(n),Object.values(ZA).forEach(m=>{const g=document.createElement("div");g.classList.add("label"),g.innerText=m.title;const y=m.element(e,this.app);m.title=="Artist"&&y.addEventListener("blur",()=>this.loadCharts()),a.appendChild(g),a.appendChild(y)});const o=e.getNotedataStats(),l=document.createElement("div");l.classList.add("chart-info-grid-item");const c=document.createElement("div");c.innerText="Peak NPS",c.classList.add("title","chart-info-grid-label");const d=document.createElement("div");d.innerText=e.getMaxNPS().toFixed(2)+"",d.classList.add("title","chart-info-grid-count"),l.appendChild(c),l.appendChild(d);const h=document.createElement("div");h.classList.add("chart-info-grid"),Object.entries(o).forEach(m=>{const g=document.createElement("div");g.classList.add("chart-info-grid-item");const y=document.createElement("div");y.innerText=m[0],y.classList.add("title","chart-info-grid-label");const w=document.createElement("div");w.innerText=m[1]+"",w.classList.add("title","chart-info-grid-count"),g.appendChild(y),g.appendChild(w),h.appendChild(g)});const u=document.createElement("div");u.classList.add("menu-options");const p=document.createElement("button");p.innerText="Duplicate Chart",p.onclick=()=>{const m=Object.assign(Object.create(Object.getPrototypeOf(e)),e);m.setNotedata(e.getNotedata().map(g=>e.computeNote(g))??[]),this.app.chartManager.loadedSM.addChart(m),this.app.chartManager.loadChart(m),this.loadCharts()},u.append(p);const f=document.createElement("button");f.innerText="Delete Chart",f.onclick=()=>{this.app.windowManager.openWindow(new El(this.app,"Delete chart","Are you sure you want to delete this chart?",[{type:"default",label:"Cancel"},{type:"delete",label:"Delete",callback:()=>{this.app.chartManager.loadedSM.removeChart(e)&&(this.app.chartManager.loadChart(),this.gameType=this.app.chartManager.loadedChart?.gameType??this.gameType,this.loadCharts())}}]))},f.classList.add("delete"),u.append(f),this.chartInfo.replaceChildren(i,a,l,h,u)}}var JA=4,QA=.001,eS=1e-7,tS=10,jn=11,ho=1/(jn-1),iS=typeof Float32Array=="function";function ny(r,e){return 1-3*e+3*r}function ay(r,e){return 3*e-6*r}function oy(r){return 3*r}function Zo(r,e,t){return((ny(e,t)*r+ay(e,t))*r+oy(e))*r}function ly(r,e,t){return 3*ny(e,t)*r*r+2*ay(e,t)*r+oy(e)}function rS(r,e,t,i,s){var n,a,o=0;do a=e+(t-e)/2,n=Zo(a,i,s)-r,n>0?t=a:e=a;while(Math.abs(n)>eS&&++o=QA?sS(l,p,e,i):f===0?p:rS(l,c,c+ho,e,i)}return function(c){return c===0?0:c===1?1:Zo(o(c),t,s)}};const Zt=ya(aS),oS=Zt(0,0,1,1);function nf(r,e){const t=e?e.split("."):[];for(;t.length&&r;){const i=t.shift(),s=new RegExp("(.+)\\[([0-9]*)\\]").exec(i);if(s!==null&&s.length==3){const n={arrName:s[1],arrIndex:s[2]};r[n.arrName]!==void 0?r=r[n.arrName][n.arrIndex]:r=void 0;continue}r=r[i]}return r}function lS(r,e,t){const i=e?e.split("."):[];for(;i.length&&r;){const s=i.shift(),n=new RegExp("(.+)\\[([0-9]*)\\]").exec(s);if(n!==null&&n.length==3){const a={arrName:n[1],arrIndex:n[2]};r[a.arrName]!==void 0&&i.length===0&&(r[a.arrName][a.arrIndex]=t);continue}r[s]===void 0&&(r[s]={}),i.length===0&&(r[s]=t),r=r[s]}return r}const Ir=class Ir{static updateObject(e,t,i){const s=Object.keys(t).sort((o,l)=>parseFloat(o)-parseFloat(l));let n="0";for(let o=s.length-2;o>=0;o--)if(parseFloat(s[o])<=i){n=s[o];break}let a="1";for(let o=1;oi){a=s[o];break}Object.keys(t[0]).forEach(o=>{let l=t[n][o],c=t[a][o];l==="inherit"&&(t[n][o]=nf(e,o),l=t[n][o]),c==="inherit"&&(t[a][o]=nf(e,o),c=t[a][o]);const d=l+(i-parseFloat(n))/(parseFloat(a)-parseFloat(n))*(c-l);lS(e,o,d)})}static stop(e,t=null){e!==void 0&&(t!==null&&this.animations.get(e)?.obj&&!this.animations.get(e).obj.destroyed&&this.updateObject(this.animations.get(e).obj,this.animations.get(e).animation,t),this.animations.delete(e))}static finish(e){e!==void 0&&this.stop(e,1)}static animate(e,t,i,s,n=()=>{},a){return a||=`${++this._id}`,this.animations.set(a,{obj:e,animation:t,seconds:1/(60*i),progress:0,curve:s!==void 0?s:oS,onend:n}),a}};Ms(Ir,"animations",new Map),Ms(Ir,"_id",0),Et.shared.add(e=>{for(const[t,i]of Ir.animations.entries())i.obj._destroyed?Ir.stop(t):(i.progress=Math.min(1,i.progress+i.seconds*e),Ir.updateObject(i.obj,i.animation,i.curve(i.progress)),i.progress>=1&&(i.onend(i.obj),Ir.stop(t,1)))});let Rt=Ir;const Eh=[{frequency:20,Q:.71},{frequency:75,gain:0},{frequency:100,gain:0,Q:.6},{frequency:250,gain:0,Q:.3},{frequency:1040,gain:0,Q:.41},{frequency:2500,gain:0,Q:.2},{frequency:7500,gain:0},{frequency:2e4,Q:.71}],af=[{freq:20,label:"20"},{freq:30,label:"30"},{freq:40,label:"40"},{freq:50,label:"50"},{freq:60,label:"60"},{freq:70,label:""},{freq:80,label:"80"},{freq:90,label:""},{freq:100,label:"100"},{freq:200,label:"200"},{freq:300,label:"300"},{freq:400,label:"400"},{freq:500,label:"500"},{freq:600,label:"600"},{freq:700,label:""},{freq:800,label:"800"},{freq:900,label:""},{freq:1e3,label:"1k"},{freq:2e3,label:"2k"},{freq:3e3,label:"3k"},{freq:4e3,label:"4k"},{freq:5e3,label:"5k"},{freq:6e3,label:"6k"},{freq:7e3,label:""},{freq:8e3,label:"8k"},{freq:9e3,label:""},{freq:1e4,label:"10k"},{freq:15e3,label:""},{freq:2e4,label:"20k"}],js=0,$s=0,ws=1200,kt=400,Jo=new Array(ws).fill(0).map((r,e)=>Pd(e)),hS=new Float32Array(Jo);function Qo(r){return Math.log(r/20)/Math.log(1102.5)*ws}function Pd(r){return Math.pow(1102.5,r/ws)*20}function cs(r){return-r*6+kt/2}function of(r){return-(r-kt/2)/6}class cS extends St{app;cachedReponse=new Array(ws).fill(0);onAudioLoad=this.onAudio.bind(this);points=[];icons;info;trackedFilter=null;constructor(e){super({title:"Audio Equalizer",width:600,height:245,win_id:"audio-eq"}),this.app=e,this.initView(),this.onAudioLoad(),K.on("audioLoaded",this.onAudioLoad)}destroy(){K.off("audioLoaded",this.onAudioLoad)}initView(){this.viewElement.replaceChildren();const e=document.createElement("div");e.classList.add("eq-container");const t=document.createElement("div");t.classList.add("icon-container"),this.app.chartManager.chartAudio.getFilters().forEach((b,v)=>{const E=Ae.getIcon(b.type.toUpperCase(),36,24,as[v]);E.classList.add("eq-icon"),E.style.backgroundColor=`${as[v]}40`,E.onclick=()=>{this.app.chartManager.chartAudio.getFilter(v).enabled?this.app.chartManager.chartAudio.disableFilter(v):this.app.chartManager.chartAudio.enableFilter(v),this.endTrack(),this.updateIcons()},E.onmouseenter=()=>this.points[v].highlight(),E.onmouseleave=()=>this.points[v].unhighlight(),t.appendChild(E)}),this.icons=t,this.updateIcons();const i=document.createElement("canvas");i.style.width="600px",i.style.height="200px",i.onmousedown=b=>{const v=this.points.filter(E=>E.hitTest(b.offsetX*2,b.offsetY*2)).at(-1);this.endTrack(),v?.mouseDown(b)};const s=document.createElement("div");s.classList.add("eq-info-container");const n=document.createElement("div");n.classList.add("eq-info");const a=document.createElement("div");a.innerText="Type",a.classList.add("eq-info-label");const o=document.createElement("div");o.classList.add("eq-info-value"),n.replaceChildren(a,o);const l=document.createElement("div");l.classList.add("eq-info");const c=document.createElement("div");c.innerText="Frequency",c.classList.add("eq-info-label");const d=document.createElement("div");d.contentEditable="false",d.classList.add("eq-info-value","inlineEdit"),l.replaceChildren(c,d),this.setupInput(d,"frequency",20,22050," Hz");const h=document.createElement("div");h.classList.add("eq-info");const u=document.createElement("div");u.innerText="Gain",u.classList.add("eq-info-label");const p=document.createElement("div");p.contentEditable="false",p.classList.add("eq-info-value","inlineEdit"),h.replaceChildren(u,p),this.setupInput(p,"gain",-24,24," dB",1);const f=document.createElement("div");f.classList.add("eq-info");const m=document.createElement("div");m.innerText="Q",m.classList.add("eq-info-label");const g=document.createElement("div");g.contentEditable="false",g.classList.add("eq-info-value","inlineEdit"),f.replaceChildren(m,g),this.setupInput(g,"Q",1e-4,1e3,"",4);const y=document.createElement("div");y.classList.add("eq-reset","disabled"),y.innerText="Reset",y.onclick=()=>{if(this.trackedFilter==null)for(let b=0;b{o=this.app.chartManager.chartAudio.getFilter(this.trackedFilter)[t].value,e.innerText=ae(o,a)+"",this.selectText(e)},e.onkeydown=l=>{if(l.key=="Enter"){e.blur();return}if(l.key=="Tab"){const d=[...e.parentElement.parentElement.children],h=d.indexOf(e.parentElement);for(let u=1;u{const c=ua(e.innerText);c!==null&&(this.app.chartManager.chartAudio.updateFilter(this.trackedFilter,{[t]:Be(c,i,s)}),this.points[this.trackedFilter].refreshPoint(),this.getResponse())})},e.onblur=()=>{ua(e.innerText)===null&&(this.app.chartManager.chartAudio.updateFilter(this.trackedFilter,{[t]:Be(o,i,s)}),this.points[this.trackedFilter].refreshPoint(),this.getResponse()),e.innerText=ae(this.app.chartManager.chartAudio.getFilter(this.trackedFilter)[t].value,a)+n}}onAudio(){this.points=this.app.chartManager.chartAudio.getFilters().map((e,t)=>new dS(this,t)),this.getResponse(),this.updateIcons(),this.endTrack()}getResponse(){this.cachedReponse=this.app.chartManager.chartAudio.getFrequencyResponse(Jo)}drawEQ(e){const t=e.getContext("2d");t.canvas.width=1200,t.canvas.height=400;const i=()=>{if(!this.app.chartManager.chartAudio)return;const s=t.createRadialGradient(e.width/2,e.height/2,0,e.width/2,e.height/2,e.width/2);s.addColorStop(0,"rgb(11, 14, 26)"),s.addColorStop(1,"rgb(5, 7, 13)"),t.fillStyle=s,t.fillRect(0,0,e.width,e.height),t.fillStyle="rgb(0, 50, 150)",this.drawFrequencies(t,this.app.chartManager.chartAudio.getFrequencyData()),this.app.chartManager.chartAudio.hasFilters()&&(t.fillStyle="rgba(200, 200, 200, 0.2)",this.drawFrequencies(t,this.app.chartManager.chartAudio.getFilteredFrequencyData())),t.fillStyle="rgba(200, 200, 200, 0.5)",this.drawResponse(t),t.fillStyle="rgba(0, 100, 150, 0.5)",t.font="22px Assistant",this.drawGrid(t),this.points.forEach(n=>n.draw(t)),e.closest("#windows")&&requestAnimationFrame(i)};return i}drawFrequencies(e,t){for(let i=0;i{this.app.chartManager.chartAudio.getFilter(t).enabled?e.classList.remove("disabled"):e.classList.add("disabled")}),this.getResponse()}trackFilter(e){this.trackedFilter=e;const t=this.app.chartManager.chartAudio.getFilter(e),[i,s,n,a]=[...this.info.children].map(o=>o.children[1]);i.innerText=t.type,s.innerText=Math.round(t.frequency.value)+" Hz",n.innerText=t.type.endsWith("pass")?"-":ae(t.gain.value,1)+" dB",a.innerText=t.type.endsWith("shelf")?"-":ae(t.Q.value,2)+"",i.style.color=as[e],s.style.color=as[e],n.style.color=as[e],a.style.color=as[e],s.contentEditable="true",n.contentEditable=`${!t.type.endsWith("pass")}`,a.contentEditable=`${!t.type.endsWith("shelf")}`}endTrack(){setTimeout(()=>{this.trackedFilter=null,this.points.forEach(n=>n.unhighlight());const[e,t,i,s]=[...this.info.children].map(n=>n.children[1]);e.innerText="",t.innerText="",i.innerText="",s.innerText="",t.contentEditable="false",i.contentEditable="false",s.contentEditable="false"})}}const co=16,as=["#a3001b","#a34f00","#d6d606","#19c402","#02c4ba","#022fc4","#5602c4","#c402b4"];class dS{filterIndex;window;dragging=!1;x=0;y=0;type;response=new Float32Array(Jo.length);_empty=new Float32Array(Jo.length);highlighted=!1;pointSize=.4;constructor(e,t){this.filterIndex=t,this.window=e,this.type=this.window.app.chartManager.chartAudio.getFilter(t).type,this.x=Qo(this.window.app.chartManager.chartAudio.getFilter(t).frequency.value??10),this.getY()}hitTest(e,t){return(e-this.x)*(e-this.x)+(t-this.y)*(t-this.y)<=co*co}canChangeGain(){return this.type=="lowshelf"||this.type=="highshelf"||this.type=="peaking"}canChangeQ(){return!this.type.endsWith("shelf")}getY(){this.type.endsWith("shelf")?this.y=cs(this.window.app.chartManager.chartAudio.getFilter(this.filterIndex).gain.value/2):this.canChangeGain()?this.y=cs(this.window.app.chartManager.chartAudio.getFilter(this.filterIndex).gain.value??0):this.y=kt/2}getGain(){if(this.canChangeGain())return this.type.endsWith("shelf")?of(this.y)*2:of(this.y)}mouseDown(e){this.calcResponse(),this.dragging=!0,this.highlighted=!0,this.window.app.chartManager.chartAudio.getFilter(this.filterIndex).enabled||(this.window.app.chartManager.chartAudio.enableFilter(this.filterIndex),this.window.updateIcons());const t=this.x,i=this.y,s=e.clientX,n=e.clientY,a=l=>{this.x=(l.clientX-s)*2+t,this.canChangeGain()?this.y=(l.clientY-n)*2+i:this.y=kt/2,this.x=Be(this.x,0,ws),this.y=Be(this.y,this.type.endsWith("shelf")?kt/4:cs(24),this.type.endsWith("shelf")?3*kt/4:cs(-24)),this.window.app.chartManager.chartAudio.updateFilter(this.filterIndex,{frequency:Pd(this.x),gain:this.getGain()}),this.window.getResponse(),this.window.trackFilter(this.filterIndex),this.calcResponse()};this.window.trackFilter(this.filterIndex);const o=()=>{Rt.animate(this,{0:{pointSize:"inherit"},1:{pointSize:.3}},.3,Zt(.11,.71,.41,.86),()=>{},`eq-point${this.filterIndex}`),this.dragging=!1,window.removeEventListener("mousemove",a),window.removeEventListener("mouseup",o)};Rt.animate(this,{0:{pointSize:"inherit"},1:{pointSize:.9}},.3,Zt(.11,.71,.41,.86),()=>{},`eq-point${this.filterIndex}`),window.addEventListener("mousemove",a),window.addEventListener("mouseup",o)}calcResponse(){this.window.app.chartManager.chartAudio.getFilter(this.filterIndex).getFrequencyResponse(hS,this.response,this._empty)}draw(e){const t=this.highlighted||this.window.app.chartManager.chartAudio.getFilter(this.filterIndex).enabled?as[this.filterIndex]:"#888888";if(e.fillStyle=t+"60",this.dragging)for(let i=0;i{navigator.clipboard.writeText(s.innerText)}),this.outputDiv=s;const n=document.createElement("div");n.classList.add("export-section-label"),n.innerText="Include",i.appendChild(n),Object.keys(this.exportOptions.include).forEach(o=>{const l=document.createElement("input");l.type="checkbox",l.id="en-i-"+o,l.checked=this.exportOptions.include[o],l.onchange=()=>{this.exportOptions.include[o]=l.checked,this.export()};const c=document.createElement("label");c.classList.add("export-label"),c.htmlFor=l.id,c.innerText=o;const d=document.createElement("div");d.replaceChildren(l,c),d.classList.add("export-option"),i.appendChild(d)});const a=document.createElement("div");a.classList.add("export-section-label"),a.innerText="Options",i.appendChild(a),Object.keys(this.exportOptions.options).forEach(o=>{const l=document.createElement("input");l.id="en-o-"+o,l.type="checkbox",l.checked=this.exportOptions.options[o],l.onchange=()=>{this.exportOptions.options[o]=l.checked,this.export()};const c=document.createElement("label");c.classList.add("export-label"),c.htmlFor=l.id,c.innerText=Ah[o].label;const d=document.createElement("div");d.replaceChildren(l,c),d.classList.add("export-option"),i.appendChild(d),Ah[o].tooltip!==void 0&&Pt(d,{content:Ah[o].tooltip})}),t.replaceChildren(i,s),e.appendChild(t),this.viewElement.appendChild(e)}export(){let e=`{ +\0`,Q+=n(F,2),Q+=C.magic,Q+=n(b,2),Q+=n(v,2),Q+=n(V.crc32,4),Q+=n(V.compressedSize,4),Q+=n(V.uncompressedSize,4),Q+=n(L.length,2),Q+=n(D.length,2),{fileRecord:h.LOCAL_FILE_HEADER+Q+L+D,dirRecord:h.CENTRAL_FILE_HEADER+n(te,2)+Q+n(G.length,2)+"\0\0\0\0"+n(U,4)+n(g,4)+L+D+G}}var o=t("../utils"),l=t("../stream/GenericWorker"),c=t("../utf8"),d=t("../crc32"),h=t("../signature");function u(p,f,m,g){l.call(this,"ZipFileWorker"),this.bytesWritten=0,this.zipComment=f,this.zipPlatform=m,this.encodeFileName=g,this.streamFiles=p,this.accumulate=!1,this.contentBuffer=[],this.dirRecords=[],this.currentSourceOffset=0,this.entriesCount=0,this.currentFile=null,this._sources=[]}o.inherits(u,l),u.prototype.push=function(p){var f=p.meta.percent||0,m=this.entriesCount,g=this._sources.length;this.accumulate?this.contentBuffer.push(p):(this.bytesWritten+=p.data.length,l.prototype.push.call(this,{data:p.data,meta:{currentFile:this.currentFile,percent:m?(f+100*(m-g-1))/m:100}}))},u.prototype.openedSource=function(p){this.currentSourceOffset=this.bytesWritten,this.currentFile=p.file.name;var f=this.streamFiles&&!p.file.dir;if(f){var m=a(p,f,!1,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);this.push({data:m.fileRecord,meta:{percent:0}})}else this.accumulate=!0},u.prototype.closedSource=function(p){this.accumulate=!1;var f=this.streamFiles&&!p.file.dir,m=a(p,f,!0,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);if(this.dirRecords.push(m.dirRecord),f)this.push({data:function(g){return h.DATA_DESCRIPTOR+n(g.crc32,4)+n(g.compressedSize,4)+n(g.uncompressedSize,4)}(p),meta:{percent:100}});else for(this.push({data:m.fileRecord,meta:{percent:0}});this.contentBuffer.length;)this.push(this.contentBuffer.shift());this.currentFile=null},u.prototype.flush=function(){for(var p=this.bytesWritten,f=0;f=this.index;l--)c=(c<<8)+this.byteAt(l);return this.index+=o,c},readString:function(o){return n.transformTo("string",this.readData(o))},readData:function(){},lastIndexOfSignature:function(){},readAndCheckSignature:function(){},readDate:function(){var o=this.readInt(4);return new Date(Date.UTC(1980+(o>>25&127),(o>>21&15)-1,o>>16&31,o>>11&31,o>>5&63,(31&o)<<1))}},i.exports=a},{"../utils":32}],19:[function(t,i,s){var n=t("./Uint8ArrayReader");function a(o){n.call(this,o)}t("../utils").inherits(a,n),a.prototype.readData=function(o){this.checkOffset(o);var l=this.data.slice(this.zero+this.index,this.zero+this.index+o);return this.index+=o,l},i.exports=a},{"../utils":32,"./Uint8ArrayReader":21}],20:[function(t,i,s){var n=t("./DataReader");function a(o){n.call(this,o)}t("../utils").inherits(a,n),a.prototype.byteAt=function(o){return this.data.charCodeAt(this.zero+o)},a.prototype.lastIndexOfSignature=function(o){return this.data.lastIndexOf(o)-this.zero},a.prototype.readAndCheckSignature=function(o){return o===this.readData(4)},a.prototype.readData=function(o){this.checkOffset(o);var l=this.data.slice(this.zero+this.index,this.zero+this.index+o);return this.index+=o,l},i.exports=a},{"../utils":32,"./DataReader":18}],21:[function(t,i,s){var n=t("./ArrayReader");function a(o){n.call(this,o)}t("../utils").inherits(a,n),a.prototype.readData=function(o){if(this.checkOffset(o),o===0)return new Uint8Array(0);var l=this.data.subarray(this.zero+this.index,this.zero+this.index+o);return this.index+=o,l},i.exports=a},{"../utils":32,"./ArrayReader":17}],22:[function(t,i,s){var n=t("../utils"),a=t("../support"),o=t("./ArrayReader"),l=t("./StringReader"),c=t("./NodeBufferReader"),d=t("./Uint8ArrayReader");i.exports=function(h){var u=n.getTypeOf(h);return n.checkSupport(u),u!=="string"||a.uint8array?u==="nodebuffer"?new c(h):a.uint8array?new d(n.transformTo("uint8array",h)):new o(n.transformTo("array",h)):new l(h)}},{"../support":30,"../utils":32,"./ArrayReader":17,"./NodeBufferReader":19,"./StringReader":20,"./Uint8ArrayReader":21}],23:[function(t,i,s){s.LOCAL_FILE_HEADER="PK",s.CENTRAL_FILE_HEADER="PK",s.CENTRAL_DIRECTORY_END="PK",s.ZIP64_CENTRAL_DIRECTORY_LOCATOR="PK\x07",s.ZIP64_CENTRAL_DIRECTORY_END="PK",s.DATA_DESCRIPTOR="PK\x07\b"},{}],24:[function(t,i,s){var n=t("./GenericWorker"),a=t("../utils");function o(l){n.call(this,"ConvertWorker to "+l),this.destType=l}a.inherits(o,n),o.prototype.processChunk=function(l){this.push({data:a.transformTo(this.destType,l.data),meta:l.meta})},i.exports=o},{"../utils":32,"./GenericWorker":28}],25:[function(t,i,s){var n=t("./GenericWorker"),a=t("../crc32");function o(){n.call(this,"Crc32Probe"),this.withStreamInfo("crc32",0)}t("../utils").inherits(o,n),o.prototype.processChunk=function(l){this.streamInfo.crc32=a(l.data,this.streamInfo.crc32||0),this.push(l)},i.exports=o},{"../crc32":4,"../utils":32,"./GenericWorker":28}],26:[function(t,i,s){var n=t("../utils"),a=t("./GenericWorker");function o(l){a.call(this,"DataLengthProbe for "+l),this.propName=l,this.withStreamInfo(l,0)}n.inherits(o,a),o.prototype.processChunk=function(l){if(l){var c=this.streamInfo[this.propName]||0;this.streamInfo[this.propName]=c+l.data.length}a.prototype.processChunk.call(this,l)},i.exports=o},{"../utils":32,"./GenericWorker":28}],27:[function(t,i,s){var n=t("../utils"),a=t("./GenericWorker");function o(l){a.call(this,"DataWorker");var c=this;this.dataIsReady=!1,this.index=0,this.max=0,this.data=null,this.type="",this._tickScheduled=!1,l.then(function(d){c.dataIsReady=!0,c.data=d,c.max=d&&d.length||0,c.type=n.getTypeOf(d),c.isPaused||c._tickAndRepeat()},function(d){c.error(d)})}n.inherits(o,a),o.prototype.cleanUp=function(){a.prototype.cleanUp.call(this),this.data=null},o.prototype.resume=function(){return!!a.prototype.resume.call(this)&&(!this._tickScheduled&&this.dataIsReady&&(this._tickScheduled=!0,n.delay(this._tickAndRepeat,[],this)),!0)},o.prototype._tickAndRepeat=function(){this._tickScheduled=!1,this.isPaused||this.isFinished||(this._tick(),this.isFinished||(n.delay(this._tickAndRepeat,[],this),this._tickScheduled=!0))},o.prototype._tick=function(){if(this.isPaused||this.isFinished)return!1;var l=null,c=Math.min(this.max,this.index+16384);if(this.index>=this.max)return this.end();switch(this.type){case"string":l=this.data.substring(this.index,c);break;case"uint8array":l=this.data.subarray(this.index,c);break;case"array":case"nodebuffer":l=this.data.slice(this.index,c)}return this.index=c,this.push({data:l,meta:{percent:this.max?this.index/this.max*100:0}})},i.exports=o},{"../utils":32,"./GenericWorker":28}],28:[function(t,i,s){function n(a){this.name=a||"default",this.streamInfo={},this.generatedError=null,this.extraStreamInfo={},this.isPaused=!0,this.isFinished=!1,this.isLocked=!1,this._listeners={data:[],end:[],error:[]},this.previous=null}n.prototype={push:function(a){this.emit("data",a)},end:function(){if(this.isFinished)return!1;this.flush();try{this.emit("end"),this.cleanUp(),this.isFinished=!0}catch(a){this.emit("error",a)}return!0},error:function(a){return!this.isFinished&&(this.isPaused?this.generatedError=a:(this.isFinished=!0,this.emit("error",a),this.previous&&this.previous.error(a),this.cleanUp()),!0)},on:function(a,o){return this._listeners[a].push(o),this},cleanUp:function(){this.streamInfo=this.generatedError=this.extraStreamInfo=null,this._listeners=[]},emit:function(a,o){if(this._listeners[a])for(var l=0;l "+a:a}},i.exports=n},{}],29:[function(t,i,s){var n=t("../utils"),a=t("./ConvertWorker"),o=t("./GenericWorker"),l=t("../base64"),c=t("../support"),d=t("../external"),h=null;if(c.nodestream)try{h=t("../nodejs/NodejsStreamOutputAdapter")}catch{}function u(f,m){return new d.Promise(function(g,y){var w=[],b=f._internalType,v=f._outputType,E=f._mimeType;f.on("data",function(C,I){w.push(C),m&&m(I)}).on("error",function(C){w=[],y(C)}).on("end",function(){try{var C=function(I,L,k){switch(I){case"blob":return n.newBlob(n.transformTo("arraybuffer",L),k);case"base64":return l.encode(L);default:return n.transformTo(I,L)}}(v,function(I,L){var k,N=0,G=null,A=0;for(k=0;k"u")s.blob=!1;else{var n=new ArrayBuffer(0);try{s.blob=new Blob([n],{type:"application/zip"}).size===0}catch{try{var a=new(self.BlobBuilder||self.WebKitBlobBuilder||self.MozBlobBuilder||self.MSBlobBuilder);a.append(n),s.blob=a.getBlob("application/zip").size===0}catch{s.blob=!1}}}try{s.nodestream=!!t("readable-stream").Readable}catch{s.nodestream=!1}},{"readable-stream":16}],31:[function(t,i,s){for(var n=t("./utils"),a=t("./support"),o=t("./nodejsUtils"),l=t("./stream/GenericWorker"),c=new Array(256),d=0;d<256;d++)c[d]=252<=d?6:248<=d?5:240<=d?4:224<=d?3:192<=d?2:1;c[254]=c[254]=1;function h(){l.call(this,"utf-8 decode"),this.leftOver=null}function u(){l.call(this,"utf-8 encode")}s.utf8encode=function(p){return a.nodebuffer?o.newBufferFrom(p,"utf-8"):function(f){var m,g,y,w,b,v=f.length,E=0;for(w=0;w>>6:(g<65536?m[b++]=224|g>>>12:(m[b++]=240|g>>>18,m[b++]=128|g>>>12&63),m[b++]=128|g>>>6&63),m[b++]=128|63&g);return m}(p)},s.utf8decode=function(p){return a.nodebuffer?n.transformTo("nodebuffer",p).toString("utf-8"):function(f){var m,g,y,w,b=f.length,v=new Array(2*b);for(m=g=0;m>10&1023,v[g++]=56320|1023&y)}return v.length!==g&&(v.subarray?v=v.subarray(0,g):v.length=g),n.applyFromCharCode(v)}(p=n.transformTo(a.uint8array?"uint8array":"array",p))},n.inherits(h,l),h.prototype.processChunk=function(p){var f=n.transformTo(a.uint8array?"uint8array":"array",p.data);if(this.leftOver&&this.leftOver.length){if(a.uint8array){var m=f;(f=new Uint8Array(m.length+this.leftOver.length)).set(this.leftOver,0),f.set(m,this.leftOver.length)}else f=this.leftOver.concat(f);this.leftOver=null}var g=function(w,b){var v;for((b=b||w.length)>w.length&&(b=w.length),v=b-1;0<=v&&(192&w[v])==128;)v--;return v<0||v===0?b:v+c[w[v]]>b?v:b}(f),y=f;g!==f.length&&(a.uint8array?(y=f.subarray(0,g),this.leftOver=f.subarray(g,f.length)):(y=f.slice(0,g),this.leftOver=f.slice(g,f.length))),this.push({data:s.utf8decode(y),meta:p.meta})},h.prototype.flush=function(){this.leftOver&&this.leftOver.length&&(this.push({data:s.utf8decode(this.leftOver),meta:{}}),this.leftOver=null)},s.Utf8DecodeWorker=h,n.inherits(u,l),u.prototype.processChunk=function(p){this.push({data:s.utf8encode(p.data),meta:p.meta})},s.Utf8EncodeWorker=u},{"./nodejsUtils":14,"./stream/GenericWorker":28,"./support":30,"./utils":32}],32:[function(t,i,s){var n=t("./support"),a=t("./base64"),o=t("./nodejsUtils"),l=t("./external");function c(m){return m}function d(m,g){for(var y=0;y>8;this.dir=!!(16&this.externalFileAttributes),p==0&&(this.dosPermissions=63&this.externalFileAttributes),p==3&&(this.unixPermissions=this.externalFileAttributes>>16&65535),this.dir||this.fileNameStr.slice(-1)!=="/"||(this.dir=!0)},parseZIP64ExtraField:function(){if(this.extraFields[1]){var p=n(this.extraFields[1].value);this.uncompressedSize===a.MAX_VALUE_32BITS&&(this.uncompressedSize=p.readInt(8)),this.compressedSize===a.MAX_VALUE_32BITS&&(this.compressedSize=p.readInt(8)),this.localHeaderOffset===a.MAX_VALUE_32BITS&&(this.localHeaderOffset=p.readInt(8)),this.diskNumberStart===a.MAX_VALUE_32BITS&&(this.diskNumberStart=p.readInt(4))}},readExtraFields:function(p){var f,m,g,y=p.index+this.extraFieldsLength;for(this.extraFields||(this.extraFields={});p.index+4>>6:(p<65536?u[g++]=224|p>>>12:(u[g++]=240|p>>>18,u[g++]=128|p>>>12&63),u[g++]=128|p>>>6&63),u[g++]=128|63&p);return u},s.buf2binstring=function(h){return d(h,h.length)},s.binstring2buf=function(h){for(var u=new n.Buf8(h.length),p=0,f=u.length;p>10&1023,w[f++]=56320|1023&m)}return d(w,f)},s.utf8border=function(h,u){var p;for((u=u||h.length)>h.length&&(u=h.length),p=u-1;0<=p&&(192&h[p])==128;)p--;return p<0||p===0?u:p+l[h[p]]>u?p:u}},{"./common":41}],43:[function(t,i,s){i.exports=function(n,a,o,l){for(var c=65535&n|0,d=n>>>16&65535|0,h=0;o!==0;){for(o-=h=2e3>>1:a>>>1;o[l]=a}return o}();i.exports=function(a,o,l,c){var d=n,h=c+l;a^=-1;for(var u=c;u>>8^d[255&(a^o[u])];return-1^a}},{}],46:[function(t,i,s){var n,a=t("../utils/common"),o=t("./trees"),l=t("./adler32"),c=t("./crc32"),d=t("./messages"),h=0,u=4,p=0,f=-2,m=-1,g=4,y=2,w=8,b=9,v=286,E=30,C=19,I=2*v+1,L=15,k=3,N=258,G=N+k+1,A=42,S=113,x=1,D=2,$=3,R=4;function O(T,Y){return T.msg=d[Y],Y}function W(T){return(T<<1)-(4T.avail_out&&(j=T.avail_out),j!==0&&(a.arraySet(T.output,Y.pending_buf,Y.pending_out,j,T.next_out),T.next_out+=j,Y.pending_out+=j,T.total_out+=j,T.avail_out-=j,Y.pending-=j,Y.pending===0&&(Y.pending_out=0))}function U(T,Y){o._tr_flush_block(T,0<=T.block_start?T.block_start:-1,T.strstart-T.block_start,Y),T.block_start=T.strstart,F(T.strm)}function te(T,Y){T.pending_buf[T.pending++]=Y}function Q(T,Y){T.pending_buf[T.pending++]=Y>>>8&255,T.pending_buf[T.pending++]=255&Y}function Z(T,Y){var j,P,M=T.max_chain_length,H=T.strstart,J=T.prev_length,ee=T.nice_match,z=T.strstart>T.w_size-G?T.strstart-(T.w_size-G):0,re=T.window,he=T.w_mask,ne=T.prev,_e=T.strstart+N,Ye=re[H+J-1],Fe=re[H+J];T.prev_length>=T.good_match&&(M>>=2),ee>T.lookahead&&(ee=T.lookahead);do if(re[(j=Y)+J]===Fe&&re[j+J-1]===Ye&&re[j]===re[H]&&re[++j]===re[H+1]){H+=2,j++;do;while(re[++H]===re[++j]&&re[++H]===re[++j]&&re[++H]===re[++j]&&re[++H]===re[++j]&&re[++H]===re[++j]&&re[++H]===re[++j]&&re[++H]===re[++j]&&re[++H]===re[++j]&&H<_e);if(P=N-(_e-H),H=_e-N,Jz&&--M!=0);return J<=T.lookahead?J:T.lookahead}function ye(T){var Y,j,P,M,H,J,ee,z,re,he,ne=T.w_size;do{if(M=T.window_size-T.lookahead-T.strstart,T.strstart>=ne+(ne-G)){for(a.arraySet(T.window,T.window,ne,ne,0),T.match_start-=ne,T.strstart-=ne,T.block_start-=ne,Y=j=T.hash_size;P=T.head[--Y],T.head[Y]=ne<=P?P-ne:0,--j;);for(Y=j=ne;P=T.prev[--Y],T.prev[Y]=ne<=P?P-ne:0,--j;);M+=ne}if(T.strm.avail_in===0)break;if(J=T.strm,ee=T.window,z=T.strstart+T.lookahead,re=M,he=void 0,he=J.avail_in,re=k)for(H=T.strstart-T.insert,T.ins_h=T.window[H],T.ins_h=(T.ins_h<=k&&(T.ins_h=(T.ins_h<=k)if(P=o._tr_tally(T,T.strstart-T.match_start,T.match_length-k),T.lookahead-=T.match_length,T.match_length<=T.max_lazy_match&&T.lookahead>=k){for(T.match_length--;T.strstart++,T.ins_h=(T.ins_h<=k&&(T.ins_h=(T.ins_h<=k&&T.match_length<=T.prev_length){for(M=T.strstart+T.lookahead-k,P=o._tr_tally(T,T.strstart-1-T.prev_match,T.prev_length-k),T.lookahead-=T.prev_length-1,T.prev_length-=2;++T.strstart<=M&&(T.ins_h=(T.ins_h<T.pending_buf_size-5&&(j=T.pending_buf_size-5);;){if(T.lookahead<=1){if(ye(T),T.lookahead===0&&Y===h)return x;if(T.lookahead===0)break}T.strstart+=T.lookahead,T.lookahead=0;var P=T.block_start+j;if((T.strstart===0||T.strstart>=P)&&(T.lookahead=T.strstart-P,T.strstart=P,U(T,!1),T.strm.avail_out===0)||T.strstart-T.block_start>=T.w_size-G&&(U(T,!1),T.strm.avail_out===0))return x}return T.insert=0,Y===u?(U(T,!0),T.strm.avail_out===0?$:R):(T.strstart>T.block_start&&(U(T,!1),T.strm.avail_out),x)}),new fe(4,4,8,4,Ce),new fe(4,5,16,8,Ce),new fe(4,6,32,32,Ce),new fe(4,4,16,16,ce),new fe(8,16,32,32,ce),new fe(8,16,128,128,ce),new fe(8,32,128,256,ce),new fe(32,128,258,1024,ce),new fe(32,258,258,4096,ce)],s.deflateInit=function(T,Y){return be(T,Y,w,15,8,0)},s.deflateInit2=be,s.deflateReset=pe,s.deflateResetKeep=le,s.deflateSetHeader=function(T,Y){return T&&T.state?T.state.wrap!==2?f:(T.state.gzhead=Y,p):f},s.deflate=function(T,Y){var j,P,M,H;if(!T||!T.state||5>8&255),te(P,P.gzhead.time>>16&255),te(P,P.gzhead.time>>24&255),te(P,P.level===9?2:2<=P.strategy||P.level<2?4:0),te(P,255&P.gzhead.os),P.gzhead.extra&&P.gzhead.extra.length&&(te(P,255&P.gzhead.extra.length),te(P,P.gzhead.extra.length>>8&255)),P.gzhead.hcrc&&(T.adler=c(T.adler,P.pending_buf,P.pending,0)),P.gzindex=0,P.status=69):(te(P,0),te(P,0),te(P,0),te(P,0),te(P,0),te(P,P.level===9?2:2<=P.strategy||P.level<2?4:0),te(P,3),P.status=S);else{var J=w+(P.w_bits-8<<4)<<8;J|=(2<=P.strategy||P.level<2?0:P.level<6?1:P.level===6?2:3)<<6,P.strstart!==0&&(J|=32),J+=31-J%31,P.status=S,Q(P,J),P.strstart!==0&&(Q(P,T.adler>>>16),Q(P,65535&T.adler)),T.adler=1}if(P.status===69)if(P.gzhead.extra){for(M=P.pending;P.gzindex<(65535&P.gzhead.extra.length)&&(P.pending!==P.pending_buf_size||(P.gzhead.hcrc&&P.pending>M&&(T.adler=c(T.adler,P.pending_buf,P.pending-M,M)),F(T),M=P.pending,P.pending!==P.pending_buf_size));)te(P,255&P.gzhead.extra[P.gzindex]),P.gzindex++;P.gzhead.hcrc&&P.pending>M&&(T.adler=c(T.adler,P.pending_buf,P.pending-M,M)),P.gzindex===P.gzhead.extra.length&&(P.gzindex=0,P.status=73)}else P.status=73;if(P.status===73)if(P.gzhead.name){M=P.pending;do{if(P.pending===P.pending_buf_size&&(P.gzhead.hcrc&&P.pending>M&&(T.adler=c(T.adler,P.pending_buf,P.pending-M,M)),F(T),M=P.pending,P.pending===P.pending_buf_size)){H=1;break}H=P.gzindexM&&(T.adler=c(T.adler,P.pending_buf,P.pending-M,M)),H===0&&(P.gzindex=0,P.status=91)}else P.status=91;if(P.status===91)if(P.gzhead.comment){M=P.pending;do{if(P.pending===P.pending_buf_size&&(P.gzhead.hcrc&&P.pending>M&&(T.adler=c(T.adler,P.pending_buf,P.pending-M,M)),F(T),M=P.pending,P.pending===P.pending_buf_size)){H=1;break}H=P.gzindexM&&(T.adler=c(T.adler,P.pending_buf,P.pending-M,M)),H===0&&(P.status=103)}else P.status=103;if(P.status===103&&(P.gzhead.hcrc?(P.pending+2>P.pending_buf_size&&F(T),P.pending+2<=P.pending_buf_size&&(te(P,255&T.adler),te(P,T.adler>>8&255),T.adler=0,P.status=S)):P.status=S),P.pending!==0){if(F(T),T.avail_out===0)return P.last_flush=-1,p}else if(T.avail_in===0&&W(Y)<=W(j)&&Y!==u)return O(T,-5);if(P.status===666&&T.avail_in!==0)return O(T,-5);if(T.avail_in!==0||P.lookahead!==0||Y!==h&&P.status!==666){var ee=P.strategy===2?function(z,re){for(var he;;){if(z.lookahead===0&&(ye(z),z.lookahead===0)){if(re===h)return x;break}if(z.match_length=0,he=o._tr_tally(z,0,z.window[z.strstart]),z.lookahead--,z.strstart++,he&&(U(z,!1),z.strm.avail_out===0))return x}return z.insert=0,re===u?(U(z,!0),z.strm.avail_out===0?$:R):z.last_lit&&(U(z,!1),z.strm.avail_out===0)?x:D}(P,Y):P.strategy===3?function(z,re){for(var he,ne,_e,Ye,Fe=z.window;;){if(z.lookahead<=N){if(ye(z),z.lookahead<=N&&re===h)return x;if(z.lookahead===0)break}if(z.match_length=0,z.lookahead>=k&&0z.lookahead&&(z.match_length=z.lookahead)}if(z.match_length>=k?(he=o._tr_tally(z,1,z.match_length-k),z.lookahead-=z.match_length,z.strstart+=z.match_length,z.match_length=0):(he=o._tr_tally(z,0,z.window[z.strstart]),z.lookahead--,z.strstart++),he&&(U(z,!1),z.strm.avail_out===0))return x}return z.insert=0,re===u?(U(z,!0),z.strm.avail_out===0?$:R):z.last_lit&&(U(z,!1),z.strm.avail_out===0)?x:D}(P,Y):n[P.level].func(P,Y);if(ee!==$&&ee!==R||(P.status=666),ee===x||ee===$)return T.avail_out===0&&(P.last_flush=-1),p;if(ee===D&&(Y===1?o._tr_align(P):Y!==5&&(o._tr_stored_block(P,0,0,!1),Y===3&&(V(P.head),P.lookahead===0&&(P.strstart=0,P.block_start=0,P.insert=0))),F(T),T.avail_out===0))return P.last_flush=-1,p}return Y!==u?p:P.wrap<=0?1:(P.wrap===2?(te(P,255&T.adler),te(P,T.adler>>8&255),te(P,T.adler>>16&255),te(P,T.adler>>24&255),te(P,255&T.total_in),te(P,T.total_in>>8&255),te(P,T.total_in>>16&255),te(P,T.total_in>>24&255)):(Q(P,T.adler>>>16),Q(P,65535&T.adler)),F(T),0=j.w_size&&(H===0&&(V(j.head),j.strstart=0,j.block_start=0,j.insert=0),re=new a.Buf8(j.w_size),a.arraySet(re,Y,he-j.w_size,j.w_size,0),Y=re,he=j.w_size),J=T.avail_in,ee=T.next_in,z=T.input,T.avail_in=he,T.next_in=0,T.input=Y,ye(j);j.lookahead>=k;){for(P=j.strstart,M=j.lookahead-(k-1);j.ins_h=(j.ins_h<>>=k=L>>>24,b-=k,(k=L>>>16&255)===0)D[d++]=65535&L;else{if(!(16&k)){if(!(64&k)){L=v[(65535&L)+(w&(1<>>=k,b-=k),b<15&&(w+=x[l++]<>>=k=L>>>24,b-=k,!(16&(k=L>>>16&255))){if(!(64&k)){L=E[(65535&L)+(w&(1<>>=k,b-=k,(k=d-h)>3,w&=(1<<(b-=N<<3))-1,n.next_in=l,n.next_out=d,n.avail_in=l>>24&255)+(A>>>8&65280)+((65280&A)<<8)+((255&A)<<24)}function w(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new n.Buf16(320),this.work=new n.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function b(A){var S;return A&&A.state?(S=A.state,A.total_in=A.total_out=S.total=0,A.msg="",S.wrap&&(A.adler=1&S.wrap),S.mode=f,S.last=0,S.havedict=0,S.dmax=32768,S.head=null,S.hold=0,S.bits=0,S.lencode=S.lendyn=new n.Buf32(m),S.distcode=S.distdyn=new n.Buf32(g),S.sane=1,S.back=-1,u):p}function v(A){var S;return A&&A.state?((S=A.state).wsize=0,S.whave=0,S.wnext=0,b(A)):p}function E(A,S){var x,D;return A&&A.state?(D=A.state,S<0?(x=0,S=-S):(x=1+(S>>4),S<48&&(S&=15)),S&&(S<8||15=R.wsize?(n.arraySet(R.window,S,x-R.wsize,R.wsize,0),R.wnext=0,R.whave=R.wsize):(D<($=R.wsize-R.wnext)&&($=D),n.arraySet(R.window,S,x-D,$,R.wnext),(D-=$)?(n.arraySet(R.window,S,x-D,D,0),R.wnext=D,R.whave=R.wsize):(R.wnext+=$,R.wnext===R.wsize&&(R.wnext=0),R.whave>>8&255,x.check=o(x.check,H,2,0),U=F=0,x.mode=2;break}if(x.flags=0,x.head&&(x.head.done=!1),!(1&x.wrap)||(((255&F)<<8)+(F>>8))%31){A.msg="incorrect header check",x.mode=30;break}if((15&F)!=8){A.msg="unknown compression method",x.mode=30;break}if(U-=4,T=8+(15&(F>>>=4)),x.wbits===0)x.wbits=T;else if(T>x.wbits){A.msg="invalid window size",x.mode=30;break}x.dmax=1<>8&1),512&x.flags&&(H[0]=255&F,H[1]=F>>>8&255,x.check=o(x.check,H,2,0)),U=F=0,x.mode=3;case 3:for(;U<32;){if(W===0)break e;W--,F+=D[R++]<>>8&255,H[2]=F>>>16&255,H[3]=F>>>24&255,x.check=o(x.check,H,4,0)),U=F=0,x.mode=4;case 4:for(;U<16;){if(W===0)break e;W--,F+=D[R++]<>8),512&x.flags&&(H[0]=255&F,H[1]=F>>>8&255,x.check=o(x.check,H,2,0)),U=F=0,x.mode=5;case 5:if(1024&x.flags){for(;U<16;){if(W===0)break e;W--,F+=D[R++]<>>8&255,x.check=o(x.check,H,2,0)),U=F=0}else x.head&&(x.head.extra=null);x.mode=6;case 6:if(1024&x.flags&&(W<(Z=x.length)&&(Z=W),Z&&(x.head&&(T=x.head.extra_len-x.length,x.head.extra||(x.head.extra=new Array(x.head.extra_len)),n.arraySet(x.head.extra,D,R,Z,T)),512&x.flags&&(x.check=o(x.check,D,Z,R)),W-=Z,R+=Z,x.length-=Z),x.length))break e;x.length=0,x.mode=7;case 7:if(2048&x.flags){if(W===0)break e;for(Z=0;T=D[R+Z++],x.head&&T&&x.length<65536&&(x.head.name+=String.fromCharCode(T)),T&&Z>9&1,x.head.done=!0),A.adler=x.check=0,x.mode=12;break;case 10:for(;U<32;){if(W===0)break e;W--,F+=D[R++]<>>=7&U,U-=7&U,x.mode=27;break}for(;U<3;){if(W===0)break e;W--,F+=D[R++]<>>=1)){case 0:x.mode=14;break;case 1:if(N(x),x.mode=20,S!==6)break;F>>>=2,U-=2;break e;case 2:x.mode=17;break;case 3:A.msg="invalid block type",x.mode=30}F>>>=2,U-=2;break;case 14:for(F>>>=7&U,U-=7&U;U<32;){if(W===0)break e;W--,F+=D[R++]<>>16^65535)){A.msg="invalid stored block lengths",x.mode=30;break}if(x.length=65535&F,U=F=0,x.mode=15,S===6)break e;case 15:x.mode=16;case 16:if(Z=x.length){if(W>>=5,U-=5,x.ndist=1+(31&F),F>>>=5,U-=5,x.ncode=4+(15&F),F>>>=4,U-=4,286>>=3,U-=3}for(;x.have<19;)x.lens[J[x.have++]]=0;if(x.lencode=x.lendyn,x.lenbits=7,j={bits:x.lenbits},Y=c(0,x.lens,0,19,x.lencode,0,x.work,j),x.lenbits=j.bits,Y){A.msg="invalid code lengths set",x.mode=30;break}x.have=0,x.mode=19;case 19:for(;x.have>>16&255,we=65535&M,!((ce=M>>>24)<=U);){if(W===0)break e;W--,F+=D[R++]<>>=ce,U-=ce,x.lens[x.have++]=we;else{if(we===16){for(P=ce+2;U>>=ce,U-=ce,x.have===0){A.msg="invalid bit length repeat",x.mode=30;break}T=x.lens[x.have-1],Z=3+(3&F),F>>>=2,U-=2}else if(we===17){for(P=ce+3;U>>=ce)),F>>>=3,U-=3}else{for(P=ce+7;U>>=ce)),F>>>=7,U-=7}if(x.have+Z>x.nlen+x.ndist){A.msg="invalid bit length repeat",x.mode=30;break}for(;Z--;)x.lens[x.have++]=T}}if(x.mode===30)break;if(x.lens[256]===0){A.msg="invalid code -- missing end-of-block",x.mode=30;break}if(x.lenbits=9,j={bits:x.lenbits},Y=c(d,x.lens,0,x.nlen,x.lencode,0,x.work,j),x.lenbits=j.bits,Y){A.msg="invalid literal/lengths set",x.mode=30;break}if(x.distbits=6,x.distcode=x.distdyn,j={bits:x.distbits},Y=c(h,x.lens,x.nlen,x.ndist,x.distcode,0,x.work,j),x.distbits=j.bits,Y){A.msg="invalid distances set",x.mode=30;break}if(x.mode=20,S===6)break e;case 20:x.mode=21;case 21:if(6<=W&&258<=V){A.next_out=O,A.avail_out=V,A.next_in=R,A.avail_in=W,x.hold=F,x.bits=U,l(A,Q),O=A.next_out,$=A.output,V=A.avail_out,R=A.next_in,D=A.input,W=A.avail_in,F=x.hold,U=x.bits,x.mode===12&&(x.back=-1);break}for(x.back=0;fe=(M=x.lencode[F&(1<>>16&255,we=65535&M,!((ce=M>>>24)<=U);){if(W===0)break e;W--,F+=D[R++]<>le)])>>>16&255,we=65535&M,!(le+(ce=M>>>24)<=U);){if(W===0)break e;W--,F+=D[R++]<>>=le,U-=le,x.back+=le}if(F>>>=ce,U-=ce,x.back+=ce,x.length=we,fe===0){x.mode=26;break}if(32&fe){x.back=-1,x.mode=12;break}if(64&fe){A.msg="invalid literal/length code",x.mode=30;break}x.extra=15&fe,x.mode=22;case 22:if(x.extra){for(P=x.extra;U>>=x.extra,U-=x.extra,x.back+=x.extra}x.was=x.length,x.mode=23;case 23:for(;fe=(M=x.distcode[F&(1<>>16&255,we=65535&M,!((ce=M>>>24)<=U);){if(W===0)break e;W--,F+=D[R++]<>le)])>>>16&255,we=65535&M,!(le+(ce=M>>>24)<=U);){if(W===0)break e;W--,F+=D[R++]<>>=le,U-=le,x.back+=le}if(F>>>=ce,U-=ce,x.back+=ce,64&fe){A.msg="invalid distance code",x.mode=30;break}x.offset=we,x.extra=15&fe,x.mode=24;case 24:if(x.extra){for(P=x.extra;U>>=x.extra,U-=x.extra,x.back+=x.extra}if(x.offset>x.dmax){A.msg="invalid distance too far back",x.mode=30;break}x.mode=25;case 25:if(V===0)break e;if(Z=Q-V,x.offset>Z){if((Z=x.offset-Z)>x.whave&&x.sane){A.msg="invalid distance too far back",x.mode=30;break}ye=Z>x.wnext?(Z-=x.wnext,x.wsize-Z):x.wnext-Z,Z>x.length&&(Z=x.length),Ce=x.window}else Ce=$,ye=O-x.offset,Z=x.length;for(VI?(k=ye[Ce+g[S]],U[te+g[S]]):(k=96,0),w=1<>O)+(b-=w)]=L<<24|k<<16|N|0,b!==0;);for(w=1<>=1;if(w!==0?(F&=w-1,F+=w):F=0,S++,--Q[A]==0){if(A===D)break;A=h[u+g[S]]}if($>>7)]}function te(M,H){M.pending_buf[M.pending++]=255&H,M.pending_buf[M.pending++]=H>>>8&255}function Q(M,H,J){M.bi_valid>y-J?(M.bi_buf|=H<>y-M.bi_valid,M.bi_valid+=J-y):(M.bi_buf|=H<>>=1,J<<=1,0<--H;);return J>>>1}function Ce(M,H,J){var ee,z,re=new Array(g+1),he=0;for(ee=1;ee<=g;ee++)re[ee]=he=he+J[ee-1]<<1;for(z=0;z<=H;z++){var ne=M[2*z+1];ne!==0&&(M[2*z]=ye(re[ne]++,ne))}}function ce(M){var H;for(H=0;H>1;1<=J;J--)le(M,re,J);for(z=_e;J=M.heap[1],M.heap[1]=M.heap[M.heap_len--],le(M,re,1),ee=M.heap[1],M.heap[--M.heap_max]=J,M.heap[--M.heap_max]=ee,re[2*z]=re[2*J]+re[2*ee],M.depth[z]=(M.depth[J]>=M.depth[ee]?M.depth[J]:M.depth[ee])+1,re[2*J+1]=re[2*ee+1]=z,M.heap[1]=z++,le(M,re,1),2<=M.heap_len;);M.heap[--M.heap_max]=M.heap[1],function(Fe,Gt){var Xr,Qt,qr,nt,q,me,Te=Gt.dyn_tree,$e=Gt.max_code,Ve=Gt.stat_desc.static_tree,Ct=Gt.stat_desc.has_stree,Vt=Gt.stat_desc.extra_bits,tr=Gt.stat_desc.extra_base,wr=Gt.stat_desc.max_length,ei=0;for(nt=0;nt<=g;nt++)Fe.bl_count[nt]=0;for(Te[2*Fe.heap[Fe.heap_max]+1]=0,Xr=Fe.heap_max+1;Xr>=7;z>>=1)if(1&Ye&&ne.dyn_ltree[2*_e]!==0)return a;if(ne.dyn_ltree[18]!==0||ne.dyn_ltree[20]!==0||ne.dyn_ltree[26]!==0)return o;for(_e=32;_e>>3,(re=M.static_len+3+7>>>3)<=z&&(z=re)):z=re=J+5,J+4<=z&&H!==-1?P(M,H,J,ee):M.strategy===4||re===z?(Q(M,2+(ee?1:0),3),pe(M,G,A)):(Q(M,4+(ee?1:0),3),function(ne,_e,Ye,Fe){var Gt;for(Q(ne,_e-257,5),Q(ne,Ye-1,5),Q(ne,Fe-4,4),Gt=0;Gt>>8&255,M.pending_buf[M.d_buf+2*M.last_lit+1]=255&H,M.pending_buf[M.l_buf+M.last_lit]=255&J,M.last_lit++,H===0?M.dyn_ltree[2*J]++:(M.matches++,H--,M.dyn_ltree[2*(x[J]+h+1)]++,M.dyn_dtree[2*U(H)]++),M.last_lit===M.lit_bufsize-1},s._tr_align=function(M){Q(M,2,3),Z(M,b,G),function(H){H.bi_valid===16?(te(H,H.bi_buf),H.bi_buf=0,H.bi_valid=0):8<=H.bi_valid&&(H.pending_buf[H.pending++]=255&H.bi_buf,H.bi_buf>>=8,H.bi_valid-=8)}(M)}},{"../utils/common":41}],53:[function(t,i,s){i.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}},{}],54:[function(t,i,s){(function(n){(function(a,o){if(!a.setImmediate){var l,c,d,h,u=1,p={},f=!1,m=a.document,g=Object.getPrototypeOf&&Object.getPrototypeOf(a);g=g&&g.setTimeout?g:a,l={}.toString.call(a.process)==="[object process]"?function(v){process.nextTick(function(){w(v)})}:function(){if(a.postMessage&&!a.importScripts){var v=!0,E=a.onmessage;return a.onmessage=function(){v=!1},a.postMessage("","*"),a.onmessage=E,v}}()?(h="setImmediate$"+Math.random()+"$",a.addEventListener?a.addEventListener("message",b,!1):a.attachEvent("onmessage",b),function(v){a.postMessage(h+v,"*")}):a.MessageChannel?((d=new MessageChannel).port1.onmessage=function(v){w(v.data)},function(v){d.port2.postMessage(v)}):m&&"onreadystatechange"in m.createElement("script")?(c=m.documentElement,function(v){var E=m.createElement("script");E.onreadystatechange=function(){w(v),E.onreadystatechange=null,c.removeChild(E),E=null},c.appendChild(E)}):function(v){setTimeout(w,0,v)},g.setImmediate=function(v){typeof v!="function"&&(v=new Function(""+v));for(var E=new Array(arguments.length-1),C=0;C"u"?n===void 0?this:n:self)}).call(this,typeof Wt<"u"?Wt:typeof self<"u"?self:typeof window<"u"?window:{})},{}]},{},[10])(10)})})(iy);var XA=iy.exports;const qA=ya(XA),nr=class nr{static async writeHandle(e,t){const i=this.workID++,s=new Promise((o,l)=>this.map.set(i,[o,l])),n=new TextEncoder,a=typeof t=="string"?n.encode(t):await t.arrayBuffer();return this.worker.postMessage([i,e,a],[a]),s}};Ms(nr,"worker",new Worker(new URL("/smeditor/assets/SafariFileWorker-557e53c3.js",self.location),{type:"module"})),Ms(nr,"workID",0),Ms(nr,"map",new Map),nr.worker.onmessage=e=>{const t=e.data;t.success?nr.map.get(t.id)[0]():nr.map.get(t.id)[1](t.reason),nr.map.delete(t.id)};let Gc=nr;class KA{_root;async getRoot(){return this._root||(WA.adapter.native?await ef().then(e=>this._root=e):await ef(Ke(()=>import("./memory-338b395e.js"),[])).then(e=>this._root=e)),this._root}async uploadHandle(e,t){let i;if(typeof t=="string"){const s=await this.getDirectoryHandle(t,{create:!0});if(!s)return;i=s}else i=t??await this.getRoot();if(e.kind=="file"){const s=await i.getFileHandle(e.name,{create:!0});await this.writeFile(s,await e.getFile())}else{const s=await i.getDirectoryHandle(e.name,{create:!0}),n=[];for await(const a of e.values())n.push(this.uploadHandle(a,s));await Promise.all(n)}}async uploadFiles(e,t){let i;if(typeof t=="string"){const s=await this.getDirectoryHandle(t,{create:!0});if(!s)return;i=s}else i=t??await this.getRoot();if(e.isFile){const s=e;if(s.name==".DS_Store")return;s.file(async n=>{const a=await i.getFileHandle(n.name,{create:!0});await this.writeHandle(a,n)})}else if(e.isDirectory){const s=e.createReader(),n=await i.getDirectoryHandle(e.name,{create:!0});for await(const a of n.values())await n.removeEntry(a.name,{recursive:!0});s.readEntries(async a=>{const o=[];for(let l=0;li!="."&&i!="");t.indexOf("..")>-1;){const i=t.indexOf("..");if(i==0)throw Error("Path"+t.join("/")+"is invalid!");t.splice(i-1,2)}return t.join("/")}async zipDirectory(e,t){const i=t??new qA,s=$i(e)==""?e:Ot(e),n=await this.getDirectoryHandle(s);if(n){for(const a of await this.getDirectoryFiles(n))i.file(a.name,await a.getFile());for(const a of await this.getDirectoryFolders(n)){const o=i.folder(a.name);if(!o){console.error("Failed to zip folder "+s+"/"+a.name);continue}await this.zipDirectory(s+"/"+a.name,o)}return i}}async saveDirectory(e){const t=$i(e)==""?e:Ot(e);Se.create("Exporting "+t+".zip");const i=await GA({_preferPolyfill:!1,suggestedName:`${t}.zip`,types:[{accept:{"application/zip":[".zip"]}}],excludeAcceptAllOption:!1}),s=await this.zipDirectory(e);s&&await s.generateAsync({type:"blob"}).then(async n=>{if(!window.showSaveFilePicker){console.log(n);const a=document.createElement("a"),o=URL.createObjectURL(n);document.body.appendChild(a),a.href=o,a.download=t+".zip",a.click(),a.remove(),window.URL.revokeObjectURL(o);return}await this.writeHandle(i,n)})}async renameFile(e,t){if(e!=t)try{const i=await this.getDirectoryHandle(Ot(e)),s=await this.getDirectoryHandle(Ot(t),{create:!0}),n=await this.getFileHandle(e);if(!i||!s||!n)return;await this.copyToHandle(s,n,zi(t)),await i.removeEntry(zi(e))}catch(i){console.error(i)}}async renameDirectory(e,t){if(!t.startsWith(e))try{const i=await this.getDirectoryHandle(Ot(e)),s=await this.getDirectoryHandle(Ot(t),{create:!0}),n=await this.getDirectoryHandle(e);if(!i||!s||!n)return;await this.copyToHandle(s,n,zi(t)),await i.removeEntry(zi(e),{recursive:!0})}catch(i){console.error(i)}}async copyToHandle(e,t,i){try{if(t.kind=="directory"){const s=await e.getDirectoryHandle(i??t.name,{create:!0}),n=[];for await(const a of t.values())n.push(this.copyToHandle(s,a));await Promise.all(n)}else{const s=await t.getFile(),n=await e.getFileHandle(i??t.name,{create:!0});await this.writeHandle(n,s)}}catch(s){console.error(s)}}getRelativePath(e,t){const i=e.split("/"),s=t.split("/"),n=Math.min(i.length,s.length);let a=n;for(let l=0;limport("./NodeFileHandler-8dea5141.js"),[])).NodeFileHandler:new KA}static getStandardHandler(){return this.standardHandler}static getHandler(e){return e!==void 0&&e.startsWith("https://")||e?.startsWith("http://")?this.urlHandler:this.standardHandler}static handleDropEvent(e,t){return this.getHandler().handleDropEvent(e,t)}static getDirectoryHandle(e,t){return Ue.getHandler(e).getDirectoryHandle(e,t)}static hasFile(e){return Ue.getHandler(e).hasFile(e)}static getFileHandle(e,t){return Ue.getHandler(e).getFileHandle(e,t)}static getFileHandleRelativeTo(e,t){return Ue.getHandler(e).getFileHandleRelativeTo(e,t)}static getDirectoryFiles(e){return Ue.getHandler(typeof e=="string"?e:void 0).getDirectoryFiles(e)}static getDirectoryFolders(e){return Ue.getHandler(typeof e=="string"?e:void 0).getDirectoryFolders(e)}static writeFile(e,t){return Ue.getHandler(typeof e=="string"?e:void 0).writeFile(e,t)}static getRelativePath(e,t){return Ue.getHandler().getRelativePath(e,t)}}class St{windowManager;options;windowElement;viewElement;constructor(e){this.options=e;const t=document.createElement("div"),i=document.createElement("div"),s=document.createElement("div"),n=document.createElement("div");if(t.appendChild(s),t.appendChild(i),t.style.width=e.width+"px",t.style.left=window.innerWidth/2-e.width/2+"px",t.style.top=window.innerHeight/2-e.height/2+"px",t.classList.add("unselectable","window"),e.win_id&&(t.dataset.win_id=e.win_id),i.classList.add("view"),i.style.height=e.height+"px",i.style.width=e.width+"px",s.classList.add("navbar"),e.title!==""&&s.appendChild(n),!e.disableClose){const a=Ae.getIcon("MINIMIZE",15),o=Ae.getIcon("CLOSE_WINDOW",15);a.classList.add("unselectable"),a.draggable=!1,a.onclick=()=>{i.style.height!="0px"?i.style.height="0px":i.style.height=e.height+"px",this.clampPosition()},o.classList.add("unselectable"),o.draggable=!1,o.onclick=()=>this.closeWindow(),s.appendChild(a),s.appendChild(o)}n.innerText=e.title,n.classList.add("title"),t.addEventListener("mousedown",()=>this.focus()),e.blocking&&(window.addEventListener("mousedown",this.block,!0),document.getElementById("blocker").style.display="block",t.dataset.blocking="block"),n.addEventListener("mousedown",()=>{window.addEventListener("mousemove",this.handleDrag),window.addEventListener("mouseup",()=>window.removeEventListener("mousemove",this.handleDrag))}),this.focus(),t.classList.add("focused"),this.windowElement=t,this.viewElement=i}addToManager(e){this.windowManager=e,e.view.appendChild(this.windowElement),this.focus()}onClose(){}closeWindow(){this.windowManager&&(this.onClose(),this.windowManager.removeWindow(this),this.windowElement.classList.add("exiting"),window.removeEventListener("mousedown",this.block,!0),this.options.blocking&&this.windowManager.windows.filter(e=>e.options.blocking).length==0&&(document.getElementById("blocker").style.display="none"),setTimeout(()=>this.windowManager.view.removeChild(this.windowElement),40))}focus(){if(this.windowManager==null)return;this.windowManager.unfocusAll(),this.windowElement.classList.add("focused");const e=Array.from(this.windowManager.view.children).map(t=>t).filter(t=>t!=this.windowElement);e.sort((t,i)=>parseInt(t.style.zIndex)-parseInt(i.style.zIndex)),e.push(this.windowElement);for(let t=0;t{!e.target||this.windowElement.contains(e.target)||(e.stopImmediatePropagation(),e.preventDefault())};handleDrag=e=>{const t=parseInt(this.windowElement.style.left.slice(0,-2))+e.movementX,i=parseInt(this.windowElement.style.top.slice(0,-2))+e.movementY;this.windowElement.style.left=t+"px",this.windowElement.style.top=i+"px",this.clampPosition()};clampPosition(){if(this.windowManager==null)return;const e=parseInt(this.windowElement.style.left.slice(0,-2)),t=parseInt(this.windowElement.style.top.slice(0,-2)),i=this.windowManager.app.view.getBoundingClientRect();this.windowElement.style.left=Be(e,i.left,i.width-this.windowElement.clientWidth+i.left)+"px",this.windowElement.style.top=Be(t,i.top,i.height-this.windowElement.clientHeight+i.top)+"px"}move(e,t){this.windowElement.style.left=e+"px",this.windowElement.style.top=t+"px"}}class Id extends St{app;dirOptions;fileDropPath="";draggedElement;draggedCopy;keyHandler;dropHandler;mouseHandler;dragHandler;constructor(e,t,i){super({title:t.title,width:500,height:400,disableClose:t.disableClose,win_id:"file_selector"+Math.random(),blocking:!0}),this.app=e,this.dirOptions=t,t.accepted_file_types||=[],this.keyHandler=this.handleKeyEvent.bind(this),this.dropHandler=this.handleDropEvent.bind(this),this.mouseHandler=this.handleMouseEvent.bind(this),this.dragHandler=this.handleDragEvent.bind(this),this.initView().then(()=>{i&&this.selectPath(i),t.onload?.()})}async initView(){this.viewElement.replaceChildren();const e=document.createElement("div");e.classList.add("padding");const t=document.createElement("div");t.classList.add("menu-options");const i=document.createElement("div");i.classList.add("menu-left");const s=document.createElement("div");s.classList.add("menu-right"),t.appendChild(i),t.appendChild(s);const n=document.createElement("button");n.innerText="Cancel",n.onclick=()=>{window.removeEventListener("keydown",this.keyHandler,!0),window.removeEventListener("drop",this.dropHandler,!0),this.closeWindow()};const a=document.createElement("button");a.innerText="Select",a.classList.add("confirm"),a.onclick=()=>this.confirmFile(),a.disabled=!0,i.appendChild(n),s.appendChild(a);const o=document.createElement("div");o.classList.add("dir-selector"),o.onclick=y=>{y.target==o&&this.selectElement(void 0)};const l=document.createElement("div");l.classList.add("file-options");const c=document.createElement("button"),d=Ae.getIcon("ADD_FILE",16);c.appendChild(d),c.appendChild(document.createTextNode("Upload files")),l.appendChild(c),c.onclick=async()=>{const y=this.fileDropPath,w=await Qg({_preferPolyfill:!1,excludeAcceptAllOption:!1,multiple:!0}),v=this.viewElement.querySelector(".info.selected")?.dataset.path??"",E=[];for(const C of w)E.push(Ue.getStandardHandler().uploadHandle(C,v));await Promise.all(E),await this.refreshDirectory(y),this.getAcceptableFile(y).then(C=>this.selectPath(C))};const h=document.createElement("button"),u=Ae.getIcon("FOLDER",16);h.appendChild(u),h.appendChild(document.createTextNode("Upload folder")),l.appendChild(h),h.onclick=async()=>{const y=this.fileDropPath,w=await HA({_preferPolyfill:!1}),v=this.viewElement.querySelector(".info.selected")?.dataset.path??"";await Ue.getStandardHandler().uploadHandle(w,v),await this.refreshDirectory(y),this.getAcceptableFile(y==""?w.name:y+"/"+w.name).then(E=>this.selectPath(E))};const p=document.createElement("button");p.classList.add("rename");const f=Ae.getIcon("EDIT",16);p.appendChild(f),p.appendChild(document.createTextNode("Rename")),p.disabled=!0,p.onclick=()=>{const y=this.viewElement.querySelector(".info.selected");y?.dataset.path&&this.startEditing(y.querySelector("textarea"))},l.appendChild(p);const m=document.createElement("button");m.classList.add("delete");const g=Ae.getIcon("TRASH",16);m.appendChild(g),m.appendChild(document.createTextNode("Delete")),m.disabled=!0,m.onclick=()=>{const y=this.viewElement.querySelector(".info.selected"),w=y?.dataset.path;if(!w)return;const b=y.parentElement.classList.contains("folder");Ue.getStandardHandler()[b?"removeDirectory":"removeFile"](w).then(()=>{const v=this.getElement(w);v&&(v.parentElement?.remove(),m.disabled=!0,p.disabled=!0)})},l.appendChild(m),e.appendChild(o),e.appendChild(l),e.appendChild(t),this.viewElement.appendChild(e),window.addEventListener("keydown",this.keyHandler,!0),window.addEventListener("drop",this.dropHandler,!0),window.addEventListener("mousemove",this.dragHandler,!0),this.viewElement.addEventListener("dragover",this.mouseHandler),await this.createDiv("").then(y=>o.replaceChildren(...y))}async expand(e){if(!e.parentElement.classList.contains("folder"))return;e.parentElement.classList.remove("collapsed");const t=e.nextSibling;await this.createDiv(e.dataset.path).then(i=>{t.replaceChildren(...i)})}collapse(e){if(!e.parentElement.classList.contains("folder"))return;e.parentElement.classList.add("collapsed"),e.nextSibling.replaceChildren()}selectElement(e){if(this.viewElement.querySelector(".info.selected")?.classList.remove("selected"),!e){this.viewElement.querySelector(".delete").disabled=!0,this.viewElement.querySelector(".rename").disabled=!0;return}e.classList.add("selected"),ra(e,{scrollMode:"if-needed",block:"nearest",inline:"nearest"});const t=this.viewElement.querySelector("button.confirm"),i=e.dataset.path;t.disabled=!0,i&&(t.disabled=!this.acceptableFileType(i),this.viewElement.querySelector(".delete").disabled=!1,this.viewElement.querySelector(".rename").disabled=!1)}async createDiv(e){const t=await Ue.getStandardHandler().getDirectoryFolders(e);let i=await Ue.getStandardHandler().getDirectoryFiles(e);return t.sort((s,n)=>s.name.toLowerCase().localeCompare(n.name.toLowerCase())),i.sort((s,n)=>s.name.toLowerCase().localeCompare(n.name.toLowerCase())),i=i.filter(s=>$i(s.name)!=".crswap"),t.map(s=>this.createBaseElement(e,s)).concat(i.map(s=>this.createBaseElement(e,s)))}createBaseElement(e,t){e!=""&&(e+="/");const i=document.createElement("div");i.classList.add("item");const s=document.createElement("div");if(s.classList.add("info"),i.appendChild(s),t.kind=="directory"){const a=Ae.getIcon("CHEVRON",16);a.classList.add("folder-icon"),s.appendChild(a);const o=document.createElement("div");o.classList.add("children"),i.appendChild(o),i.classList.add("folder"),i.classList.add("collapsed"),s.addEventListener("click",l=>{const c=l.target;c?.classList.contains("options-icon")||c.tagName=="TEXTAREA"&&!c.disabled||(i.classList.contains("collapsed")?this.expand(s):this.collapse(s))})}else{this.acceptableFileType(t.name)||s.classList.add("disabled");const a=Ae.getIcon(this.getIconId(t.name),16);s.appendChild(a)}s.dataset.path=e+t.name;const n=document.createElement("textarea");return n.rows=1,n.disabled=!0,n.autocomplete="off",n.autocapitalize="off",n.spellcheck=!1,n.innerText=t.name,n.style.pointerEvents="none",n.classList.add("title"),s.appendChild(n),s.addEventListener("click",()=>this.selectElement(s)),s.addEventListener("mousedown",()=>this.startDragging(s)),s.ondblclick=()=>this.confirmFile(),i}confirmFile(){const t=this.viewElement.querySelector(".info.selected")?.dataset.path;t&&this.acceptableFileType(t)&&(this.dirOptions.callback?.(t),window.removeEventListener("keydown",this.keyHandler,!0),window.removeEventListener("drop",this.dropHandler,!0),window.removeEventListener("mousemove",this.dragHandler,!0),this.closeWindow())}acceptableFileType(e){return this.dirOptions.accepted_file_types.length==0||this.dirOptions.accepted_file_types.includes($i(e))}getIconId(e){const t=$i(e);return t==""&&!e.startsWith(".")?"FOLDER":ns.includes(t)?"IMAGE_FILE":ml.includes(t)?"VOLUME":[".sm",".ssc"].includes(t)?"SM_FILE":"UNKNOWN_FILE"}startEditing(e){const t=e.value,i=!!e.parentElement?.parentElement?.classList.contains("folder"),s=e.parentElement?.dataset.path??"",n=Ot(s);e.value=s.split("/").at(-1)??"",window.removeEventListener("keydown",this.keyHandler,!0),e.disabled=!1,e.style.pointerEvents="",e.focus(),e.addEventListener("keypress",a=>{a.code=="Enter"&&(a.preventDefault(),a.stopImmediatePropagation(),e.blur())},!0),e.addEventListener("blur",async()=>{if(window.addEventListener("keydown",this.keyHandler,!0),e.disabled=!0,e.style.pointerEvents="none",e.value.startsWith(".")){e.value=t;return}e.value=e.value.replaceAll("/","");const a=n==""?e.value:n+"/"+e.value;a!=s&&(e.parentElement.dataset.path=a,await Ue.getStandardHandler()[i?"renameDirectory":"renameFile"](s,a),this.refreshDirectory(n),e.value.length>32&&(e.value=e.value.slice(0,32)+"..."))})}async refreshDirectory(e){const t=this.viewElement.querySelector(".dir-selector");if(!t)return;let i=t.querySelector("div[data-path='"+this.escapeSelector(e)+"']")?.nextSibling;if(e==""&&(i=t),!i)return;const s=Array.from(i.parentElement.querySelectorAll(".folder:not(.collapsed)")).map(n=>n.children[0].dataset.path);await this.createDiv(e).then(n=>i.replaceChildren(...n)),await Promise.all(s.map(n=>this.expand(t.querySelector("div[data-path='"+this.escapeSelector(n)+"']"))))}getElement(e){const t=this.viewElement.querySelector(".dir-selector");return t?t.querySelector("div[data-path='"+this.escapeSelector(e)+"']"):null}async getAcceptableFile(e){const t=await Ue.getStandardHandler().getDirectoryHandle(e);if(!t)return;const i=[{path:e,handle:t}];for(;i.length>0;){const s=i.shift(),n=s.handle;for await(const a of n.values()){const o=s.path==""?"":s.path+"/";if(a.kind=="directory")i.push({path:o+a.name,handle:a});else if(this.acceptableFileType(a.name))return o+a.name}}}async selectPath(e){if(!e)return;const t=this.viewElement.querySelector(".dir-selector");if(!t)return;const i=e.split("/");i.pop();const s=[];for(;i.length>0;){s.push(i.shift());const a=t.querySelector("div[data-path='"+this.escapeSelector(s.join("/"))+"']");if(!a)return;await this.expand(a)}const n=t.querySelector("div[data-path='"+this.escapeSelector(e)+"']");n&&this.selectElement(n)}handleKeyEvent(e){if(!this.windowElement.classList.contains("focused"))return;const t=this.viewElement.querySelector(".info.selected");if(t==null){if(e.code.startsWith("Arrow")){const i=this.viewElement.querySelector(".info");i&&this.selectElement(i)}return}if(e.code=="ArrowUp"){e.preventDefault(),e.stopImmediatePropagation();const i=t.parentElement;let s=i.previousSibling?.querySelector(".info");s&&!s.parentElement.classList.contains("collapsed")&&s.parentElement.classList.contains("folder")&&(s=s.parentElement.querySelector(".children").lastChild.querySelector(".info")),!s&&i.parentElement.classList.contains("children")&&(s=i.parentElement.parentElement.querySelector(".info")),s&&(this.selectElement(s),ra(s,{scrollMode:"if-needed",block:"nearest",inline:"nearest"}))}if(e.code=="ArrowDown"){e.preventDefault(),e.stopImmediatePropagation();const i=t.parentElement;let s;i.classList.contains("folder")&&!i.classList.contains("collapsed")&&(s=i.querySelector(".children").children[0].querySelector(".info")),s||(s=t.parentElement.nextSibling?.querySelector(".info")),!s&&i.parentElement.classList.contains("children")&&(s=i.parentElement.parentElement.nextSibling.querySelector(".info")),s&&(this.selectElement(s),ra(s,{scrollMode:"if-needed",block:"nearest",inline:"nearest"}))}if(e.code=="ArrowLeft"&&(e.preventDefault(),e.stopImmediatePropagation(),this.collapse(t)),e.code=="ArrowRight"&&(e.preventDefault(),e.stopImmediatePropagation(),this.expand(t)),e.code=="Enter"&&(e.preventDefault(),e.stopImmediatePropagation(),t.parentElement?.querySelector(".title")&&this.startEditing(t.parentElement?.querySelector(".title"))),e.code=="Delete"||e.code=="Backspace"){const i=this.viewElement.querySelector(".info.selected"),s=i?.dataset.path;if(!s)return;const n=i.parentElement.classList.contains("folder");Ue.getStandardHandler()[n?"removeDirectory":"removeFile"](s).then(()=>{const a=this.getElement(s);a&&(a.parentElement?.remove(),this.viewElement.querySelector(".delete").disabled=!0,this.viewElement.querySelector(".rename").disabled=!0)})}}startDragging(e){const t=e;t.totalMovementX=0,t.totalMovementY=0,this.draggedElement=t;const i=()=>{this.stopDragging(),window.removeEventListener("mouseup",i)};window.addEventListener("mouseup",i)}handleDragEvent(e){if(this.draggedElement){if(this.draggedElement.totalMovementX+=e.movementX,this.draggedElement.totalMovementY+=e.movementY,!this.draggedCopy)if(Math.abs(this.draggedElement.totalMovementX)+Math.abs(this.draggedElement.totalMovementY)>8){this.viewElement.addEventListener("mousemove",this.mouseHandler),this.draggedCopy=this.draggedElement.parentElement.cloneNode(!0),this.draggedCopy.style.position="fixed";const t=this.draggedElement.getBoundingClientRect();this.draggedCopy.style.top=t.top+this.draggedElement.totalMovementY+"px",this.draggedCopy.style.left=t.left+this.draggedElement.totalMovementX+"px",this.draggedCopy.style.width=t.width+"px",this.draggedCopy.style.boxShadow="3px 3px 3px #222",this.draggedCopy.querySelector(".children")&&this.draggedCopy.removeChild(this.draggedCopy.querySelector(".children")),this.viewElement.appendChild(this.draggedCopy)}else return;this.draggedCopy.style.top=parseFloat(this.draggedCopy.style.top.slice(0,-2))+e.movementY+"px",this.draggedCopy.style.left=parseFloat(this.draggedCopy.style.left.slice(0,-2))+e.movementX+"px"}}async stopDragging(){if(this.draggedCopy){this.draggedCopy.remove(),this.viewElement.removeEventListener("mousemove",this.mouseHandler);const e=this.draggedCopy.classList.contains("folder"),t=this.draggedElement.dataset.path,i=this.fileDropPath==""?zi(this.draggedElement.dataset.path):this.fileDropPath+"/"+zi(this.draggedElement.dataset.path);t!=i&&await Ue.getStandardHandler()[e?"renameDirectory":"renameFile"](t,i),await this.refreshDirectory(Ot(t)),await this.refreshDirectory(Ot(i)),this.viewElement.querySelector(".outlined")?.classList.remove("outlined"),this.fileDropPath=""}this.draggedCopy=void 0,this.draggedElement=void 0}handleDropEvent(e){e.preventDefault(),e.stopImmediatePropagation(),this.viewElement.querySelector(".outlined")?.classList.remove("outlined"),e.target.closest(".dir-selector")&&Ue.getStandardHandler().handleDropEvent(e,this.fileDropPath).then(async t=>{await this.refreshDirectory(this.fileDropPath),this.getAcceptableFile(t??this.fileDropPath).then(i=>this.selectPath(i)),this.fileDropPath=""})}handleMouseEvent(e){const t=this.viewElement.querySelector(".dir-selector");let i=Array.from(t.querySelectorAll("div.item.folder"));const s=this.viewElement.querySelector(".outlined");i=i.filter(n=>!n.parentElement.closest(".collapsed")),i.reverse(),i.push(t);for(const n of i){const a=n.getBoundingClientRect();if(e.clientX>=a.x&&e.clientX<=a.x+a.width&&e.clientY>=a.y&&e.clientY<=a.y+a.height){s!=n&&s?.classList.remove("outlined");const o=n.querySelector(".info");this.fileDropPath=o?.dataset.path??"",n.classList.contains("dir-selector")&&(this.fileDropPath=""),n.classList.add("outlined");return}}this.viewElement.querySelector(".outlined")?.classList.remove("outlined"),this.fileDropPath=""}escapeSelector(e){return e.replaceAll(/'/g,"\\'")}}class mt{items=[];itemIndex=0;limit=0;app;static instance;constructor(e){this.app=e,mt.instance||(mt.instance=this)}run(e){e.action(this.app),this.items.splice(this.itemIndex,this.items.length-this.itemIndex,e),this.itemIndex++}undo(){this.items[this.itemIndex-1]&&(this.items[this.itemIndex-1].undo(this.app),this.itemIndex--,K.emit("undo"))}redo(){this.items[this.itemIndex]&&(this.items[this.itemIndex].redo?this.items[this.itemIndex].redo(this.app):this.items[this.itemIndex].action(this.app),this.itemIndex++,K.emit("redo"))}reset(){this.itemIndex=0,this.limit=0,this.items=[]}canUndo(){return this.itemIndex>0}canRedo(){return this.itemIndex!=this.items.length}setLimit(){this.limit=this.itemIndex}isDirty(){return this.itemIndex!=this.limit}}function ry(){const r=document.createElement("div");return r.spellcheck=!1,r.contentEditable="true",r.classList.add("inlineEdit"),r.onkeydown=e=>{e.key=="Enter"&&r.blur()},r}function lo(r,e){return{title:r,element:t=>{const i=ry();return i.onblur=()=>{const s=t[e];mt.instance.run({action:()=>{t[e]=i.innerText},undo:()=>{t[e]=s}}),i.scrollLeft=0},i.innerText=t[e],i}}}const ZA={name:lo("Name","chartName"),credit:lo("Artist","credit"),style:lo("Style","chartStyle"),description:lo("Description","description"),music:{title:"Music File",element:(r,e)=>{const t=document.createElement("div");t.classList.add("flex-row","flex-column-gap","flex-static","hide-buttons");const i=()=>{if(s.innerText==(r.music??e.chartManager.loadedSM.properties.MUSIC??""))return;const c=e.chartManager.chartAudio.isPlaying();if(s.innerText==""||s.innerText==e.chartManager.loadedSM.properties.MUSIC){r.music=void 0,s.innerText=e.chartManager.loadedSM.properties.MUSIC+"",e.chartManager.loadAudio(),c&&e.chartManager.chartAudio.play();return}const d=r.music;mt.instance.run({action:()=>r.music=s.innerText==e.chartManager.loadedSM.properties.MUSIC?void 0:s.innerText,undo:()=>r.music=d}),e.chartManager.loadAudio(),c&&e.chartManager.chartAudio.play()},s=ry();s.style.flex="1",s.onblur=i,s.innerText=r.music??e.chartManager.loadedSM.properties.MUSIC??"";const n=document.createElement("button");n.onclick=()=>{const c=Ot(e.chartManager.smPath);if(window.nw){const d=document.createElement("input");d.type="file",d.accept="audio/*",d.onchange=()=>{s.innerText=Ue.getRelativePath(c,d.value),i()},d.click()}else e.windowManager.openWindow(new Id(e,{title:"Select an audio file...",accepted_file_types:ml,disableClose:!0,callback:d=>{s.innerText=Ue.getRelativePath(c,d),i()}},c+"/"+(r.music??e.chartManager.loadedSM.properties.MUSIC??"")))};const a=Ae.getIcon("FOLDER",12);n.appendChild(a);const o=document.createElement("button");o.onclick=()=>{s.innerText!=(e.chartManager.loadedSM.properties.MUSIC??"")&&(s.innerText=e.chartManager.loadedSM.properties.MUSIC??"",i())};const l=Ae.getIcon("REVERT",12);return o.appendChild(l),t.appendChild(s),t.appendChild(n),t.appendChild(o),t}}};class gi{view;items=[];selectedItem;onChangeHandlers=[];static create(e,t){return new gi(document.createElement("div"),e,t)}constructor(e,t,i){this.view=e,e.classList.add("dropdown"),this.items=t??[],this.selectedItem=i??this.items[0];const s=document.createElement("div");s.classList.add("dropdown-selected");const n=document.createElement("div");n.classList.add("dropdown-selected-text");const a=Ae.getIcon("CHEVRON",12);s.appendChild(n),s.appendChild(a);const o=document.createElement("div");o.classList.add("dropdown-items"),o.style.height="",s.onclick=()=>{if(!s.classList.contains("disabled")){if(this.items.length==0){o.style.height="";return}this.createDropdown(),o.style.height==""?(o.classList.remove("collapsed"),o.style.width=Math.max(o.scrollWidth,s.clientWidth)+"px",o.style.height=o.scrollHeight+"px",Array.from(o.children).forEach((l,c)=>{l.style.animationDelay=c*.02+"s"})):(o.style.height="",o.classList.add("collapsed"))}},window.addEventListener("click",l=>{const c=l.target;(!c.closest(".dropdown")||c.closest(".dropdown")!=e)&&(o.style.height="")}),o.classList.add("collapsed"),this.view.appendChild(s),this.view.appendChild(o),this.setSelected()}onChange(e){this.onChangeHandlers.push(e)}removeHandler(e){this.onChangeHandlers.includes(e)&&this.onChangeHandlers.splice(this.onChangeHandlers.indexOf(e),1)}getItems(){return this.items}setItems(e){this.items=e,e.includes(this.selectedItem)||(this.selectedItem=this.items[0],this.setSelected())}setSelected(e){this.selectedItem=e??this.selectedItem;const t=this.view.querySelector(".dropdown-selected-text");t.innerText=this.selectedItem?this.selectedItem+"":""}closeDropdown(){const e=this.view.querySelector(".dropdown-items");e&&(e.style.height="")}get value(){return this.selectedItem}get disabled(){return this.view.querySelector(".dropdown-selected").classList.contains("disabled")}set disabled(e){e?this.view.querySelector(".dropdown-selected").classList.add("disabled"):this.view.querySelector(".dropdown-selected").classList.remove("disabled")}createDropdown(){const e=this.view.querySelector(".dropdown-items"),t=this.items.map((i,s)=>{const n=document.createElement("div");return n.classList.add("dropdown-item"),n.innerText=i+"",n.onclick=()=>{e.style.height="",this.selectedItem!=i&&(this.setSelected(i),this.onChangeHandlers.forEach(a=>a(i,s)))},n});e.replaceChildren(...t)}}class El extends St{app;buttonOptions;message;resolve;resolved=new Promise(e=>this.resolve=e);constructor(e,t,i,s){super({title:t,width:300,height:100,disableClose:!0,win_id:"confirm",blocking:!0}),this.app=e,this.message=i,this.buttonOptions=s,this.initView()}initView(){this.viewElement.replaceChildren(),this.viewElement.classList.add("confirmation");const e=document.createElement("div");e.classList.add("padding");const t=document.createElement("div");t.classList.add("label"),t.innerText=this.message,e.appendChild(t);const i=document.createElement("div");i.classList.add("menu-options"),this.buttonOptions.forEach(s=>{const n=document.createElement("button");n.innerText=s.label,n.onclick=()=>{s.callback?.(),this.resolve?.(s.label),this.closeWindow()},s.type!="default"&&n.classList.add(s.type),i.append(n)}),e.appendChild(i),this.viewElement.appendChild(e)}}class sy extends St{app;gameType;chartList;chartInfo;gameTypeDropdown;smLoadHandler=()=>{this.gameTypeDropdown.setItems(We.getPriority().map(e=>{const t=this.app.chartManager.loadedSM?.charts[e.id]??[];return e.id+" ("+t.length+")"})),this.gameTypeDropdown.setSelected(this.gameType.id+" ("+(this.app.chartManager.loadedSM?.charts[this.gameType.id]??[]).length+") "),this.gameType=this.app.chartManager.loadedChart?.gameType??this.gameType,this.loadCharts()};constructor(e,t){super({title:"Chart List",width:500,height:400,win_id:"chart_list"}),this.app=e,this.gameType=t??e.chartManager.loadedChart?.gameType??We.getPriority()[0],this.initView(),K.on("smLoadedAfter",this.smLoadHandler)}initView(){this.viewElement.replaceChildren();const e=document.createElement("div");e.classList.add("padding");const t=document.createElement("div");t.classList.add("chart-view-type-wrapper");const i=document.createElement("div");i.classList.add("chart-view-type-label"),i.innerText="Game Type:",this.gameTypeDropdown=gi.create(We.getPriority().map(n=>{const a=this.app.chartManager.loadedSM?.charts[n.id]??[];return n.id+" ("+a.length+")"}),this.gameType.id+" ("+(this.app.chartManager.loadedSM?.charts[this.gameType.id]??[]).length+") "),this.gameTypeDropdown.onChange(n=>{this.gameType=We.getGameType(n.split(" ")[0])??this.gameType,this.loadCharts()}),t.appendChild(i),t.appendChild(this.gameTypeDropdown.view);const s=document.createElement("div");s.classList.add("chart-view-scroller"),e.appendChild(t),e.appendChild(s),this.chartList=document.createElement("div"),this.chartList.classList.add("chart-list"),this.chartInfo=document.createElement("div"),this.chartInfo.classList.add("chart-info"),s.appendChild(this.chartList),s.appendChild(this.chartInfo),this.viewElement.appendChild(e),this.loadCharts()}onClose(){K.off("smLoadedAfter",this.smLoadHandler)}loadCharts(){const e=this.app.chartManager.loadedSM?.charts[this.gameType.id]??[],t=[];this.gameTypeDropdown.setItems(We.getPriority().map(a=>{const o=this.app.chartManager.loadedSM?.charts[a.id]??[];return a.id+" ("+o.length+")"})),this.gameTypeDropdown.setSelected(this.gameType.id+" ("+(this.app.chartManager.loadedSM?.charts[this.gameType.id]??[]).length+") "),e.forEach(a=>{const o=document.createElement("div");o.classList.add("chart-list-item"),o.chart=a,this.app.chartManager.loadedChart==a&&o.classList.add("selected"),o.onclick=()=>{o.chart!=this.app.chartManager.loadedChart&&(this.app.chartManager.loadChart(o.chart),this.chartList.querySelectorAll(".selected").forEach(u=>u.classList.remove("selected")),o.classList.add("selected"))},o.onmouseenter=()=>{this.loadChartDetails(o.chart)},o.onmouseleave=()=>{this.loadChartDetails()};const l=document.createElement("div");l.innerText=a.meter+"",l.classList.add("title",a.difficulty);const c=document.createElement("div");c.classList.add("chart-list-info");const d=document.createElement("div");d.innerText=a.credit,d.classList.add("title","chart-credit");const h=document.createElement("div");h.innerText=a.getNotedata().length+"",h.classList.add("title","chart-step-count"),c.appendChild(d),c.appendChild(h),o.appendChild(l),o.appendChild(c),t.push(o)});const i=document.createElement("div");i.classList.add("chart-list-item");const s=document.createElement("div");s.innerText="+",s.classList.add("title");const n=document.createElement("div");n.classList.add("chart-list-info"),n.innerText="New Blank Chart",i.appendChild(s),i.appendChild(n),i.onclick=()=>{const a=new Jg(this.app.chartManager.loadedSM);a.gameType=this.gameType,this.app.chartManager.loadedSM.addChart(a),this.app.chartManager.loadChart(a),this.loadCharts()},this.chartList.replaceChildren(...t,i),this.loadChartDetails()}loadChartDetails(e){if(e=e??this.app.chartManager.loadedChart,e?.gameType.id!=this.gameType.id){this.chartInfo.replaceChildren();return}if(!e)return;const t=()=>this.app.chartManager.loadedSM.charts[e.gameType.id].sort((m,g)=>Ei.indexOf(m.difficulty)==Ei.indexOf(g.difficulty)?m.meter-g.meter:Ei.indexOf(m.difficulty)-Ei.indexOf(g.difficulty)),i=document.createElement("div");i.classList.add("chart-info-main");const s=gi.create(Ei,e.difficulty);s.view.classList.add("no-border","white"),s.onChange(m=>{const g=e.difficulty;mt.instance.run({action:()=>{e.difficulty=m,t(),this.loadCharts()},undo:()=>{e.difficulty=g,t(),this.loadCharts()}})});const n=document.createElement("div");n.spellcheck=!1,n.contentEditable="true",n.classList.add("inlineEdit","chart-meter"),n.onkeydown=m=>{m.key=="Enter"&&n.blur()},n.onblur=()=>{let m=ua(n.innerText);if(m===null){n.innerText=e?.meter+"";return}m=Math.round(Be(1,m,2**31-1));const g=e.meter;mt.instance.run({action:()=>{e.meter=m,e.meterF=m,t(),this.loadCharts()},undo:()=>{e.meter=g,e.meterF=g,t(),this.loadCharts()}}),n.scrollLeft=0},n.innerText=e.meter+"";const a=document.createElement("div");a.classList.add("chart-properties"),i.appendChild(s.view),i.appendChild(n),Object.values(ZA).forEach(m=>{const g=document.createElement("div");g.classList.add("label"),g.innerText=m.title;const y=m.element(e,this.app);m.title=="Artist"&&y.addEventListener("blur",()=>this.loadCharts()),a.appendChild(g),a.appendChild(y)});const o=e.getNotedataStats(),l=document.createElement("div");l.classList.add("chart-info-grid-item");const c=document.createElement("div");c.innerText="Peak NPS",c.classList.add("title","chart-info-grid-label");const d=document.createElement("div");d.innerText=e.getMaxNPS().toFixed(2)+"",d.classList.add("title","chart-info-grid-count"),l.appendChild(c),l.appendChild(d);const h=document.createElement("div");h.classList.add("chart-info-grid"),Object.entries(o).forEach(m=>{const g=document.createElement("div");g.classList.add("chart-info-grid-item");const y=document.createElement("div");y.innerText=m[0],y.classList.add("title","chart-info-grid-label");const w=document.createElement("div");w.innerText=m[1]+"",w.classList.add("title","chart-info-grid-count"),g.appendChild(y),g.appendChild(w),h.appendChild(g)});const u=document.createElement("div");u.classList.add("menu-options");const p=document.createElement("button");p.innerText="Duplicate Chart",p.onclick=()=>{const m=Object.assign(Object.create(Object.getPrototypeOf(e)),e);m.setNotedata(e.getNotedata().map(g=>e.computeNote(g))??[]),this.app.chartManager.loadedSM.addChart(m),this.app.chartManager.loadChart(m),this.loadCharts()},u.append(p);const f=document.createElement("button");f.innerText="Delete Chart",f.onclick=()=>{this.app.windowManager.openWindow(new El(this.app,"Delete chart","Are you sure you want to delete this chart?",[{type:"default",label:"Cancel"},{type:"delete",label:"Delete",callback:()=>{this.app.chartManager.loadedSM.removeChart(e)&&(this.app.chartManager.loadChart(),this.gameType=this.app.chartManager.loadedChart?.gameType??this.gameType,this.loadCharts())}}]))},f.classList.add("delete"),u.append(f),this.chartInfo.replaceChildren(i,a,l,h,u)}}var JA=4,QA=.001,eS=1e-7,tS=10,jn=11,ho=1/(jn-1),iS=typeof Float32Array=="function";function ny(r,e){return 1-3*e+3*r}function ay(r,e){return 3*e-6*r}function oy(r){return 3*r}function Zo(r,e,t){return((ny(e,t)*r+ay(e,t))*r+oy(e))*r}function ly(r,e,t){return 3*ny(e,t)*r*r+2*ay(e,t)*r+oy(e)}function rS(r,e,t,i,s){var n,a,o=0;do a=e+(t-e)/2,n=Zo(a,i,s)-r,n>0?t=a:e=a;while(Math.abs(n)>eS&&++o=QA?sS(l,p,e,i):f===0?p:rS(l,c,c+ho,e,i)}return function(c){return c===0?0:c===1?1:Zo(o(c),t,s)}};const Zt=ya(aS),oS=Zt(0,0,1,1);function nf(r,e){const t=e?e.split("."):[];for(;t.length&&r;){const i=t.shift(),s=new RegExp("(.+)\\[([0-9]*)\\]").exec(i);if(s!==null&&s.length==3){const n={arrName:s[1],arrIndex:s[2]};r[n.arrName]!==void 0?r=r[n.arrName][n.arrIndex]:r=void 0;continue}r=r[i]}return r}function lS(r,e,t){const i=e?e.split("."):[];for(;i.length&&r;){const s=i.shift(),n=new RegExp("(.+)\\[([0-9]*)\\]").exec(s);if(n!==null&&n.length==3){const a={arrName:n[1],arrIndex:n[2]};r[a.arrName]!==void 0&&i.length===0&&(r[a.arrName][a.arrIndex]=t);continue}r[s]===void 0&&(r[s]={}),i.length===0&&(r[s]=t),r=r[s]}return r}const Ir=class Ir{static updateObject(e,t,i){const s=Object.keys(t).sort((o,l)=>parseFloat(o)-parseFloat(l));let n="0";for(let o=s.length-2;o>=0;o--)if(parseFloat(s[o])<=i){n=s[o];break}let a="1";for(let o=1;oi){a=s[o];break}Object.keys(t[0]).forEach(o=>{let l=t[n][o],c=t[a][o];l==="inherit"&&(t[n][o]=nf(e,o),l=t[n][o]),c==="inherit"&&(t[a][o]=nf(e,o),c=t[a][o]);const d=l+(i-parseFloat(n))/(parseFloat(a)-parseFloat(n))*(c-l);lS(e,o,d)})}static stop(e,t=null){e!==void 0&&(t!==null&&this.animations.get(e)?.obj&&!this.animations.get(e).obj.destroyed&&this.updateObject(this.animations.get(e).obj,this.animations.get(e).animation,t),this.animations.delete(e))}static finish(e){e!==void 0&&this.stop(e,1)}static animate(e,t,i,s,n=()=>{},a){return a||=`${++this._id}`,this.animations.set(a,{obj:e,animation:t,seconds:1/(60*i),progress:0,curve:s!==void 0?s:oS,onend:n}),a}};Ms(Ir,"animations",new Map),Ms(Ir,"_id",0),Et.shared.add(e=>{for(const[t,i]of Ir.animations.entries())i.obj._destroyed?Ir.stop(t):(i.progress=Math.min(1,i.progress+i.seconds*e),Ir.updateObject(i.obj,i.animation,i.curve(i.progress)),i.progress>=1&&(i.onend(i.obj),Ir.stop(t,1)))});let Rt=Ir;const Eh=[{frequency:20,Q:.71},{frequency:75,gain:0},{frequency:100,gain:0,Q:.6},{frequency:250,gain:0,Q:.3},{frequency:1040,gain:0,Q:.41},{frequency:2500,gain:0,Q:.2},{frequency:7500,gain:0},{frequency:2e4,Q:.71}],af=[{freq:20,label:"20"},{freq:30,label:"30"},{freq:40,label:"40"},{freq:50,label:"50"},{freq:60,label:"60"},{freq:70,label:""},{freq:80,label:"80"},{freq:90,label:""},{freq:100,label:"100"},{freq:200,label:"200"},{freq:300,label:"300"},{freq:400,label:"400"},{freq:500,label:"500"},{freq:600,label:"600"},{freq:700,label:""},{freq:800,label:"800"},{freq:900,label:""},{freq:1e3,label:"1k"},{freq:2e3,label:"2k"},{freq:3e3,label:"3k"},{freq:4e3,label:"4k"},{freq:5e3,label:"5k"},{freq:6e3,label:"6k"},{freq:7e3,label:""},{freq:8e3,label:"8k"},{freq:9e3,label:""},{freq:1e4,label:"10k"},{freq:15e3,label:""},{freq:2e4,label:"20k"}],js=0,$s=0,ws=1200,kt=400,Jo=new Array(ws).fill(0).map((r,e)=>Pd(e)),hS=new Float32Array(Jo);function Qo(r){return Math.log(r/20)/Math.log(1102.5)*ws}function Pd(r){return Math.pow(1102.5,r/ws)*20}function cs(r){return-r*6+kt/2}function of(r){return-(r-kt/2)/6}class cS extends St{app;cachedReponse=new Array(ws).fill(0);onAudioLoad=this.onAudio.bind(this);points=[];icons;info;trackedFilter=null;constructor(e){super({title:"Audio Equalizer",width:600,height:245,win_id:"audio-eq"}),this.app=e,this.initView(),this.onAudioLoad(),K.on("audioLoaded",this.onAudioLoad)}destroy(){K.off("audioLoaded",this.onAudioLoad)}initView(){this.viewElement.replaceChildren();const e=document.createElement("div");e.classList.add("eq-container");const t=document.createElement("div");t.classList.add("icon-container"),this.app.chartManager.chartAudio.getFilters().forEach((b,v)=>{const E=Ae.getIcon(b.type.toUpperCase(),36,24,as[v]);E.classList.add("eq-icon"),E.style.backgroundColor=`${as[v]}40`,E.onclick=()=>{this.app.chartManager.chartAudio.getFilter(v).enabled?this.app.chartManager.chartAudio.disableFilter(v):this.app.chartManager.chartAudio.enableFilter(v),this.endTrack(),this.updateIcons()},E.onmouseenter=()=>this.points[v].highlight(),E.onmouseleave=()=>this.points[v].unhighlight(),t.appendChild(E)}),this.icons=t,this.updateIcons();const i=document.createElement("canvas");i.style.width="600px",i.style.height="200px",i.onmousedown=b=>{const v=this.points.filter(E=>E.hitTest(b.offsetX*2,b.offsetY*2)).at(-1);this.endTrack(),v?.mouseDown(b)};const s=document.createElement("div");s.classList.add("eq-info-container");const n=document.createElement("div");n.classList.add("eq-info");const a=document.createElement("div");a.innerText="Type",a.classList.add("eq-info-label");const o=document.createElement("div");o.classList.add("eq-info-value"),n.replaceChildren(a,o);const l=document.createElement("div");l.classList.add("eq-info");const c=document.createElement("div");c.innerText="Frequency",c.classList.add("eq-info-label");const d=document.createElement("div");d.contentEditable="false",d.classList.add("eq-info-value","inlineEdit"),l.replaceChildren(c,d),this.setupInput(d,"frequency",20,22050," Hz");const h=document.createElement("div");h.classList.add("eq-info");const u=document.createElement("div");u.innerText="Gain",u.classList.add("eq-info-label");const p=document.createElement("div");p.contentEditable="false",p.classList.add("eq-info-value","inlineEdit"),h.replaceChildren(u,p),this.setupInput(p,"gain",-24,24," dB",1);const f=document.createElement("div");f.classList.add("eq-info");const m=document.createElement("div");m.innerText="Q",m.classList.add("eq-info-label");const g=document.createElement("div");g.contentEditable="false",g.classList.add("eq-info-value","inlineEdit"),f.replaceChildren(m,g),this.setupInput(g,"Q",1e-4,1e3,"",4);const y=document.createElement("div");y.classList.add("eq-reset","disabled"),y.innerText="Reset",y.onclick=()=>{if(this.trackedFilter==null)for(let b=0;b{o=this.app.chartManager.chartAudio.getFilter(this.trackedFilter)[t].value,e.innerText=ae(o,a)+"",this.selectText(e)},e.onkeydown=l=>{if(l.key=="Enter"){e.blur();return}if(l.key=="Tab"){const d=[...e.parentElement.parentElement.children],h=d.indexOf(e.parentElement);for(let u=1;u{const c=ua(e.innerText);c!==null&&(this.app.chartManager.chartAudio.updateFilter(this.trackedFilter,{[t]:Be(c,i,s)}),this.points[this.trackedFilter].refreshPoint(),this.getResponse())})},e.onblur=()=>{ua(e.innerText)===null&&(this.app.chartManager.chartAudio.updateFilter(this.trackedFilter,{[t]:Be(o,i,s)}),this.points[this.trackedFilter].refreshPoint(),this.getResponse()),e.innerText=ae(this.app.chartManager.chartAudio.getFilter(this.trackedFilter)[t].value,a)+n}}onAudio(){this.points=this.app.chartManager.chartAudio.getFilters().map((e,t)=>new dS(this,t)),this.getResponse(),this.updateIcons(),this.endTrack()}getResponse(){this.cachedReponse=this.app.chartManager.chartAudio.getFrequencyResponse(Jo)}drawEQ(e){const t=e.getContext("2d");t.canvas.width=1200,t.canvas.height=400;const i=()=>{if(!this.app.chartManager.chartAudio)return;const s=t.createRadialGradient(e.width/2,e.height/2,0,e.width/2,e.height/2,e.width/2);s.addColorStop(0,"rgb(11, 14, 26)"),s.addColorStop(1,"rgb(5, 7, 13)"),t.fillStyle=s,t.fillRect(0,0,e.width,e.height),t.fillStyle="rgb(0, 50, 150)",this.drawFrequencies(t,this.app.chartManager.chartAudio.getFrequencyData()),this.app.chartManager.chartAudio.hasFilters()&&(t.fillStyle="rgba(200, 200, 200, 0.2)",this.drawFrequencies(t,this.app.chartManager.chartAudio.getFilteredFrequencyData())),t.fillStyle="rgba(200, 200, 200, 0.5)",this.drawResponse(t),t.fillStyle="rgba(0, 100, 150, 0.5)",t.font="22px Assistant",this.drawGrid(t),this.points.forEach(n=>n.draw(t)),e.closest("#windows")&&requestAnimationFrame(i)};return i}drawFrequencies(e,t){for(let i=0;i{this.app.chartManager.chartAudio.getFilter(t).enabled?e.classList.remove("disabled"):e.classList.add("disabled")}),this.getResponse()}trackFilter(e){this.trackedFilter=e;const t=this.app.chartManager.chartAudio.getFilter(e),[i,s,n,a]=[...this.info.children].map(o=>o.children[1]);i.innerText=t.type,s.innerText=Math.round(t.frequency.value)+" Hz",n.innerText=t.type.endsWith("pass")?"-":ae(t.gain.value,1)+" dB",a.innerText=t.type.endsWith("shelf")?"-":ae(t.Q.value,2)+"",i.style.color=as[e],s.style.color=as[e],n.style.color=as[e],a.style.color=as[e],s.contentEditable="true",n.contentEditable=`${!t.type.endsWith("pass")}`,a.contentEditable=`${!t.type.endsWith("shelf")}`}endTrack(){setTimeout(()=>{this.trackedFilter=null,this.points.forEach(n=>n.unhighlight());const[e,t,i,s]=[...this.info.children].map(n=>n.children[1]);e.innerText="",t.innerText="",i.innerText="",s.innerText="",t.contentEditable="false",i.contentEditable="false",s.contentEditable="false"})}}const co=16,as=["#a3001b","#a34f00","#d6d606","#19c402","#02c4ba","#022fc4","#5602c4","#c402b4"];class dS{filterIndex;window;dragging=!1;x=0;y=0;type;response=new Float32Array(Jo.length);_empty=new Float32Array(Jo.length);highlighted=!1;pointSize=.4;constructor(e,t){this.filterIndex=t,this.window=e,this.type=this.window.app.chartManager.chartAudio.getFilter(t).type,this.x=Qo(this.window.app.chartManager.chartAudio.getFilter(t).frequency.value??10),this.getY()}hitTest(e,t){return(e-this.x)*(e-this.x)+(t-this.y)*(t-this.y)<=co*co}canChangeGain(){return this.type=="lowshelf"||this.type=="highshelf"||this.type=="peaking"}canChangeQ(){return!this.type.endsWith("shelf")}getY(){this.type.endsWith("shelf")?this.y=cs(this.window.app.chartManager.chartAudio.getFilter(this.filterIndex).gain.value/2):this.canChangeGain()?this.y=cs(this.window.app.chartManager.chartAudio.getFilter(this.filterIndex).gain.value??0):this.y=kt/2}getGain(){if(this.canChangeGain())return this.type.endsWith("shelf")?of(this.y)*2:of(this.y)}mouseDown(e){this.calcResponse(),this.dragging=!0,this.highlighted=!0,this.window.app.chartManager.chartAudio.getFilter(this.filterIndex).enabled||(this.window.app.chartManager.chartAudio.enableFilter(this.filterIndex),this.window.updateIcons());const t=this.x,i=this.y,s=e.clientX,n=e.clientY,a=l=>{this.x=(l.clientX-s)*2+t,this.canChangeGain()?this.y=(l.clientY-n)*2+i:this.y=kt/2,this.x=Be(this.x,0,ws),this.y=Be(this.y,this.type.endsWith("shelf")?kt/4:cs(24),this.type.endsWith("shelf")?3*kt/4:cs(-24)),this.window.app.chartManager.chartAudio.updateFilter(this.filterIndex,{frequency:Pd(this.x),gain:this.getGain()}),this.window.getResponse(),this.window.trackFilter(this.filterIndex),this.calcResponse()};this.window.trackFilter(this.filterIndex);const o=()=>{Rt.animate(this,{0:{pointSize:"inherit"},1:{pointSize:.3}},.3,Zt(.11,.71,.41,.86),()=>{},`eq-point${this.filterIndex}`),this.dragging=!1,window.removeEventListener("mousemove",a),window.removeEventListener("mouseup",o)};Rt.animate(this,{0:{pointSize:"inherit"},1:{pointSize:.9}},.3,Zt(.11,.71,.41,.86),()=>{},`eq-point${this.filterIndex}`),window.addEventListener("mousemove",a),window.addEventListener("mouseup",o)}calcResponse(){this.window.app.chartManager.chartAudio.getFilter(this.filterIndex).getFrequencyResponse(hS,this.response,this._empty)}draw(e){const t=this.highlighted||this.window.app.chartManager.chartAudio.getFilter(this.filterIndex).enabled?as[this.filterIndex]:"#888888";if(e.fillStyle=t+"60",this.dragging)for(let i=0;i{navigator.clipboard.writeText(s.innerText)}),this.outputDiv=s;const n=document.createElement("div");n.classList.add("export-section-label"),n.innerText="Include",i.appendChild(n),Object.keys(this.exportOptions.include).forEach(o=>{const l=document.createElement("input");l.type="checkbox",l.id="en-i-"+o,l.checked=this.exportOptions.include[o],l.onchange=()=>{this.exportOptions.include[o]=l.checked,this.export()};const c=document.createElement("label");c.classList.add("export-label"),c.htmlFor=l.id,c.innerText=o;const d=document.createElement("div");d.replaceChildren(l,c),d.classList.add("export-option"),i.appendChild(d)});const a=document.createElement("div");a.classList.add("export-section-label"),a.innerText="Options",i.appendChild(a),Object.keys(this.exportOptions.options).forEach(o=>{const l=document.createElement("input");l.id="en-o-"+o,l.type="checkbox",l.checked=this.exportOptions.options[o],l.onchange=()=>{this.exportOptions.options[o]=l.checked,this.export()};const c=document.createElement("label");c.classList.add("export-label"),c.htmlFor=l.id,c.innerText=Ah[o].label;const d=document.createElement("div");d.replaceChildren(l,c),d.classList.add("export-option"),i.appendChild(d),Ah[o].tooltip!==void 0&&Pt(d,{content:Ah[o].tooltip})}),t.replaceChildren(i,s),e.appendChild(t),this.viewElement.appendChild(e)}export(){let e=`{ `+this.selection.map(t=>{let i=" {";return this.exportOptions.include.Beat&&(i+=this.padNum(t.beat)+","),this.exportOptions.include.Second&&(i+=this.padNum(t.second)+","),this.exportOptions.include.Column&&(this.exportOptions.options.columnOneBased?i+=t.col+1+",":i+=t.col+","),this.exportOptions.include.Type&&(this.exportOptions.options.notitgNoteTypes&&lf[t.type]!==void 0?i+=lf[t.type]+",":i+='"'+t.type+'",'),this.exportOptions.include.Quantization&&(i+=t.quant+","),this.exportOptions.include.Length&&Le(t)&&(this.exportOptions.options.lengthAsNumberIndex?i+=this.padNum(t.hold)+",":i+="length="+this.padNum(t.hold)+","),i.endsWith(",")&&(i=i.slice(0,-1)),i+="}",this.getNumIncludes()==1&&(i=i.replaceAll("{",""),i=i.replaceAll("}","")),i}).join(`, `)+` }`;this.exportOptions.options.minify&&(e=e.replaceAll(/\s/g,"")),this.outputDiv.innerText=e}getNumIncludes(){return Object.values(this.exportOptions.include).map(e=>+e).reduce((e,t)=>e+t,0)}padNum(e){return this.exportOptions.options.padNumbers?(Math.round(e*1e3)/1e3).toFixed(3):Math.round(e*1e3)/1e3}}const Br={"dance-single":[{label:"Left",keys:["Left","A"]},{label:"Down",keys:["Down","S"]},{label:"Up",keys:["Up","W"]},{label:"Right",keys:["Right","D"]}],"dance-double":[{label:"P1 Left",keys:["Left"]},{label:"P1 Down",keys:["Down"]},{label:"P1 Up",keys:["Up"]},{label:"P1 Right",keys:["Right"]},{label:"P2 Left",keys:["A"]},{label:"P2 Down",keys:["S"]},{label:"P2 Up",keys:["W"]},{label:"P2 Right",keys:["D"]}],"dance-couple":[{label:"P1 Left",keys:["Left"]},{label:"P1 Down",keys:["Down"]},{label:"P1 Up",keys:["Up"]},{label:"P1 Right",keys:["Right"]},{label:"P2 Left",keys:["A"]},{label:"P2 Down",keys:["S"]},{label:"P2 Up",keys:["W"]},{label:"P2 Right",keys:["D"]}],"dance-solo":[{label:"Left",keys:["Left","A"]},{label:"UpLeft",keys:["Q"]},{label:"Down",keys:["Down","S"]},{label:"Up",keys:["Up","W"]},{label:"UpRight",keys:["E"]},{label:"Right",keys:["Right","D"]}],"dance-solodouble":[{label:"P1 Left",keys:["A"]},{label:"P1 UpLeft",keys:["Q"]},{label:"P1 Down",keys:["S"]},{label:"P1 Up",keys:["W"]},{label:"P1 UpRight",keys:["E"]},{label:"P1 Right",keys:["D"]},{label:"P2 Left",keys:["J"]},{label:"P2 UpLeft",keys:["U"]},{label:"P2 Down",keys:["K"]},{label:"P2 Up",keys:["I"]},{label:"P2 UpRight",keys:["O"]},{label:"P2 Right",keys:["L"]}],"dance-threepanel":[{label:"UpLeft",keys:["Left","Q"]},{label:"Down",keys:["Down","S"]},{label:"UpRight",keys:["Right","E"]}],"dance-threedouble":[{label:"P1 UpLeft",keys:["Left"]},{label:"P1 Down",keys:["Down"]},{label:"P1 UpRight",keys:["Right"]},{label:"P2 UpLeft",keys:["Q"]},{label:"P2 Down",keys:["S"]},{label:"P2 UpRight",keys:["E"]}],"pump-single":[{label:"DownLeft",keys:["Z"]},{label:"UpLeft",keys:["Q"]},{label:"Center",keys:["S"]},{label:"UpRight",keys:["E"]},{label:"DownRight",keys:["C"]}],"pump-double":[{label:"P1 DownLeft",keys:["Z"]},{label:"P1 UpLeft",keys:["Q"]},{label:"P1 Center",keys:["S"]},{label:"P1 UpRight",keys:["E"]},{label:"P1 DownRight",keys:["C"]},{label:"P2 DownLeft",keys:["V"]},{label:"P2 UpLeft",keys:["R"]},{label:"P2 Center",keys:["G"]},{label:"P2 UpRight",keys:["Y"]},{label:"P2 DownRight",keys:["N"]}],"pump-versus":[{label:"P1 DownLeft",keys:["Z"]},{label:"P1 UpLeft",keys:["Q"]},{label:"P1 Center",keys:["S"]},{label:"P1 UpRight",keys:["E"]},{label:"P1 DownRight",keys:["C"]},{label:"P2 DownLeft",keys:["V"]},{label:"P2 UpLeft",keys:["R"]},{label:"P2 Center",keys:["G"]},{label:"P2 UpRight",keys:["Y"]},{label:"P2 DownRight",keys:["N"]}],"pump-couple":[{label:"P1 DownLeft",keys:["Z"]},{label:"P1 UpLeft",keys:["Q"]},{label:"P1 Center",keys:["S"]},{label:"P1 UpRight",keys:["E"]},{label:"P1 DownRight",keys:["C"]},{label:"P2 DownLeft",keys:["V"]},{label:"P2 UpLeft",keys:["R"]},{label:"P2 Center",keys:["G"]},{label:"P2 UpRight",keys:["Y"]},{label:"P2 DownRight",keys:["N"]}],"pump-halfdouble":[{label:"P1 Center",keys:["S"]},{label:"P1 UpRight",keys:["E"]},{label:"P1 DownRight",keys:["C"]},{label:"P2 DownLeft",keys:["V"]},{label:"P2 UpLeft",keys:["R"]},{label:"P2 Center",keys:["G"]}]};class Re{static app;static userKeybinds=new Map;static userGameplayKeybinds=new Map;static load(e){this.app=e;try{this.loadKeybinds()}catch(t){console.error("Failed to load user keybinds!"),console.error(t.stack),this.userKeybinds.clear(),this.userGameplayKeybinds.clear()}window.addEventListener("keydown",t=>this.checkKey(t,"keydown")),window.addEventListener("keyup",t=>this.checkKey(t,"keyup"))}static checkKey(e,t){if(e.target.classList.contains("inlineEdit")||e.target instanceof HTMLTextAreaElement||e.target instanceof HTMLInputElement||e.target instanceof HTMLButtonElement||["Meta","Control","Shift","Alt"].includes(e.key))return;const i=[];for(let a=0;a(o[d]??c.keys).some(h=>s==h));if(l!=-1){if(e.preventDefault(),this.app.windowManager.getFocusedWindow()?.options?.win_id=="keybind_options"||this.app.windowManager.isBlocked())return;this.app.chartManager[t=="keydown"?"judgeCol":"judgeColUp"](l);return}}const n=Object.keys(Tt).filter(a=>!["cut","copy","paste","pasteReplace"].includes(a)).filter(a=>{for(const o of this.getCombosForKeybind(a))if(this.compareModifiers(o.mods,i)&&o.key==s)return!0;return!1}).map(a=>Tt[a]);if(n.length>0){if(n.every(a=>a.preventDefault!=!1)&&e.preventDefault(),this.app.windowManager.getFocusedWindow()?.options?.win_id=="keybind_options"||this.app.windowManager.isBlocked())return;for(const a of n){let o=a.disabled;if(o instanceof Function&&(o=o(this.app)),!o&&!(a.disableRepeat&&e.repeat)){t=="keydown"?a.callback(this.app):a.callbackKeyUp?.(this.app);return}}}}static getKeyNameFromCode(e){let t=e;return t.startsWith("Digit")&&(t=t.slice(5)),t.startsWith("Key")&&(t=t.slice(3)),t in yf&&(t=yf[t]),t}static getKeybindString(e){return this.getCombosForKeybind(e).map(t=>this.getComboString(t)).join(" / ")}static getComboString(e){const t=Co.filter(i=>e.mods.includes(i)).map(i=>FS[i]).join("");return t+(t!=""?" ":"")+(by[e.key]??e.key)}static getCombosForKeybind(e){return e in Tt?this.userKeybinds.get(e)??Tt[e].combos:(console.log("Couldn't find keybind with id "+e),[])}static getKeysForGameType(e){const t=We.getGameType(e);return t?new Array(t.numCols).fill(null).map((i,s)=>this.userGameplayKeybinds.get(e)?.[s]??Br[e]?.[s].keys??[]):(console.log("Couldn't find game type with id "+e),[])}static compareModifiers(e,t){if(e.length!=t.length)return!1;for(const i of Co)if((e.includes(i)?1:0)+(t.includes(i)?1:0)==1)return!1;return!0}static compareCombos(e,t){return e.key==t.key&&this.compareModifiers(e.mods,t.mods)}static loadKeybinds(){const e=localStorage.getItem("keybinds");if(e){const i=JSON.parse(e);if(typeof i!="object")return console.error("Couldn't load keybinds from storage");for(const[s,n]of Object.entries(i)){if(!(s in Tt)){console.warn("Couldn't load keybind "+s+": key doesn't exist");continue}Array.isArray(n)||console.warn("Couldn't load keybind "+s+": value is not an array"),this.userKeybinds.set(s,n.filter(a=>typeof a.key!="string"||!Array.isArray(a.mods)?(console.warn("Couldn't load keycombo for keybind "+s+": "+JSON.stringify(a)),!1):!0))}}const t=localStorage.getItem("keybindsGP");if(t){const i=JSON.parse(t);if(typeof i!="object")return console.error("Couldn't load gameplay keybinds from storage");for(const[s,n]of Object.entries(i)){if(!We.getGameType(s)){console.warn("Couldn't load gameplay keybinds for gameType "+s+": gameType doesn't exist");continue}Array.isArray(n)||console.warn("Couldn't load gameplay keybind "+s+": value is not an array"),this.userGameplayKeybinds.set(s,n.map((a,o)=>!Array.isArray(a)&&a!==null?(console.warn("Couldn't load gameplay keys for type "+s+" col "+o+": "+JSON.stringify(a)),null):a))}}}static clearSave(){localStorage.removeItem("keybinds"),localStorage.removeItem("keybindsGP")}static setKeybind(e,t){this.userKeybinds.has(e)||this.userKeybinds.set(e,[...Tt[e].combos]),this.userKeybinds.get(e)?.push(t),this.checkIsDefault(e),this.saveKeybinds()}static removeKeybind(e,t){this.userKeybinds.has(e)||this.userKeybinds.set(e,[...Tt[e].combos]),this.userKeybinds.set(e,this.userKeybinds.get(e).filter(i=>!this.compareCombos(i,t))),this.checkIsDefault(e),this.saveKeybinds()}static revertKeybind(e){this.userKeybinds.delete(e),this.saveKeybinds()}static revertGameplayKeybind(e,t){this.userGameplayKeybinds.has(e)&&(this.userGameplayKeybinds.get(e)[t]=null,this.userGameplayKeybinds.get(e).every(i=>i===null)&&this.userGameplayKeybinds.delete(e)),this.saveKeybinds()}static setGameplayKeybind(e,t,i){this.userGameplayKeybinds.has(e)||this.userGameplayKeybinds.set(e,new Array(We.getGameType(e).numCols).fill(null)),this.userGameplayKeybinds.get(e)[t]==null&&(this.userGameplayKeybinds.get(e)[t]=[...Br[e]?.[t].keys??[]]),this.userGameplayKeybinds.get(e)[t].push(i),this.checkIsDefaultGameplay(e,t),this.saveKeybinds()}static removeGameplayKeybind(e,t,i){this.userGameplayKeybinds.has(e)||this.userGameplayKeybinds.set(e,new Array(We.getGameType(e).numCols).fill(null)),this.userGameplayKeybinds.get(e)[t]==null&&(this.userGameplayKeybinds.get(e)[t]=[...Br[e]?.[t].keys??[]]),this.userGameplayKeybinds.get(e)[t]=this.userGameplayKeybinds.get(e)[t].filter(s=>s!=i),this.checkIsDefaultGameplay(e,t),this.saveKeybinds()}static checkIsDefault(e){if(!this.userKeybinds.has(e))return!0;const t=this.userKeybinds.get(e),i=[...Tt[e].combos];return t.length!=i.length?!1:t.map(s=>this.getComboString(s)).sort().join("∆")==i.map(s=>this.getComboString(s)).sort().join("∆")?(this.userKeybinds.delete(e),!0):!1}static checkIsDefaultGameplay(e,t){if(!this.userGameplayKeybinds.has(e)||this.userGameplayKeybinds.get(e)[t]===null)return!0;const i=this.userGameplayKeybinds.get(e)[t],s=[...Br[e]?.[t].keys??[]];return i.length!=s.length?!1:i.sort().join("∆")==s.sort().join("∆")?(this.userGameplayKeybinds.get(e)[t]=null,this.userGameplayKeybinds.get(e).every(n=>n===null)&&this.userGameplayKeybinds.delete(e),!0):!1}static saveKeybinds(){const e={};for(const[i,s]of this.userKeybinds.entries())e[i]=s;localStorage.setItem("keybinds",JSON.stringify(e));const t={};for(const[i,s]of this.userGameplayKeybinds.entries())t[i]=s;localStorage.setItem("keybindsGP",JSON.stringify(t))}static getKeybindTooltip(e){return this.getCombosForKeybind(e).map(i=>{let s=this.getComboString(i);return s==""?"":(s=s.replaceAll("&","&").replaceAll("<","<").replaceAll(">",">").replaceAll('"',""").replaceAll("'","'"),"")}).join("")}static evaluateTaggedTooltip(e,t){t=t.map(s=>s.startsWith("\\")?s.slice(1):this.getKeybindTooltip(s));const i=[];for(let s=0;s"+i.join("")+""}static createKeybindTooltip(e){return(t,...i)=>{Pt(e,{allowHTML:!0,onShow:s=>{s.setContent(this.evaluateTaggedTooltip(t,i))}})}}}class hy extends St{app;allowMods;callback;combo={mods:[],key:""};conflictCheck;listener;constructor(e,t,i,s){super({title:"",width:300,height:168,disableClose:!0,win_id:"keyComboSelector",blocking:!0}),this.app=e,this.allowMods=t,this.callback=i,this.conflictCheck=s??(()=>[]),this.initView()}initView(){this.viewElement.replaceChildren(),this.viewElement.classList.add("confirmation");const e=document.createElement("div");e.classList.add("padding"),e.style.gap="8px";const t=document.createElement("div");t.classList.add("label"),t.innerText="Input a key combo and select Ok when finished.",e.appendChild(t);const i=document.createElement("input");i.type="text",i.disabled=!0,i.style.fontSize="18px",i.style.height="24px",i.style.flex="0",i.style.textAlign="center",e.appendChild(i);const s=document.createElement("div");s.classList.add("detail"),s.innerText="No conflicts",s.style.flex="1",e.appendChild(s);const n=document.createElement("div");n.classList.add("menu-options");const a=document.createElement("button");a.innerText="Ok",a.onclick=()=>{this.callback(this.combo),this.closeWindow()},a.classList.add("confirm"),a.disabled=!0;const o=document.createElement("button");o.innerText="Cancel",o.onclick=()=>{this.closeWindow()},n.append(o),n.append(a),e.appendChild(n),this.viewElement.appendChild(e),this.listener=l=>{if(["Meta","Control","Shift","Alt","Escape"].includes(l.key))return;if(this.combo.key=Re.getKeyNameFromCode(l.code),this.allowMods){const d=[];for(let h=0;h=3?s.innerText=`Conflicts with ${c.length} keybinds`:c.length>=1?s.innerText=`Conflicts with ${c.join(",")}`:s.innerText="No conflicts"),l.preventDefault()},window.addEventListener("keydown",this.listener)}onClose(){window.removeEventListener("keydown",this.listener)}}class pS extends St{app;observer;conflictMap=this.calculateConflicts();constructor(e){super({title:"Gameplay Keybind Options",width:600,height:400,disableClose:!1,win_id:"gameplay_keybind_options",blocking:!1}),this.app=e,this.initView()}initView(){this.viewElement.replaceChildren();const e=document.createElement("div");e.classList.add("padding");const t=document.createElement("div");t.classList.add("pref-container");const i=document.createElement("div");i.classList.add("pref-scrollers");const s=document.createElement("div");s.classList.add("pref-section-scroller");const n=document.createElement("div");n.classList.add("pref-option-scroller"),i.replaceChildren(s,n),this.observer=new IntersectionObserver(a=>{a.forEach(o=>{const l=o.target.dataset.id,c=s.querySelector(`.pref-section[data-id=${l}]`);c&&(o.intersectionRatio>0?c.classList.add("selected"):c.classList.remove("selected"))})},{}),t.replaceChildren(i),s.replaceChildren(...this.createSections()),n.replaceChildren(...this.createOptions()),e.appendChild(t),this.viewElement.appendChild(e)}createSections(){return Object.keys(We.getTypes()).map(e=>this.createEmptySection(e))}createOptions(){return Object.keys(We.getTypes()).map(e=>{const t=new Array(We.getTypes()[e].numCols).fill(null).map((n,a)=>this.createKeybindItem(e,a)),i=document.createElement("div");i.classList.add("pref-group"),i.dataset.id=e;const s=document.createElement("div");return s.classList.add("pref-group-label"),s.innerText=e,i.replaceChildren(s,...t),this.observer.observe(i),i})}createEmptySection(e){const t=document.createElement("div");return t.classList.add("pref-section"),t.dataset.id=e,t.innerText=e,t.onclick=()=>{t.parentElement.parentElement.querySelector(`.pref-group[data-id=${e}]`).scrollIntoView()},t}createKeybindItem(e,t){const i=document.createElement("div");i.classList.add("pref-keybind"),i.dataset.id=e+"-"+t,i.onclick=o=>{o.target.classList.contains("pref-keybind-combo")||i.querySelector(".icon")?.contains(o.target)||this.app.windowManager.openWindow(new hy(this.app,!1,l=>{Re.setGameplayKeybind(e,t,l.key),this.conflictMap=this.calculateConflicts(),i.replaceWith(this.createKeybindItem(e,t))},l=>{const c=this.conflictMap.get(e)?.get(l.key)?.map(d=>Br[d[0]]?.[d[1]].label??"Column "+d[1])??[];return c.includes(Br[e]?.[t].label??"Column "+t)?"self":c}))};const s=document.createElement("div");s.classList.add("pref-keybind-label"),s.innerText=Br[e]?.[t].label??"Column "+t;const n=Ae.getIcon("REVERT");n.style.width="12px",n.addEventListener("click",()=>{Re.revertGameplayKeybind(e,t),this.conflictMap=this.calculateConflicts(),i.replaceWith(this.createKeybindItem(e,t))}),n.style.display=Re.checkIsDefaultGameplay(e,t)?"none":"block";const a=document.createElement("div");return a.classList.add("pref-keybind-combos"),a.replaceChildren(...Re.getKeysForGameType(e)[t].map(o=>{const l=document.createElement("button");return l.classList.add("pref-keybind-combo"),l.innerText=o,this.conflictMap.get(e).get(o).length>1&&l.classList.add("conflict"),l.onclick=()=>{Re.removeGameplayKeybind(e,t,o),this.conflictMap=this.calculateConflicts(),i.replaceWith(this.createKeybindItem(e,t))},l})),i.replaceChildren(s,n,a),i}calculateConflicts(){const e=new Map;Object.keys(We.getTypes()).forEach(t=>{const i=new Map;Re.getKeysForGameType(t).forEach((s,n)=>{s.forEach((a,o)=>{i.has(a)||i.set(a,[]),i.get(a).push([t,n,o])})}),e.set(t,i)}),[...this.viewElement.querySelectorAll(".pref-keybind-combo.conflict")].forEach(t=>t.classList.remove("conflict"));for(const t of e.values())for(const i of t.values())i.length!=1&&i.forEach(s=>{const n=this.viewElement.querySelector(`.pref-keybind[data-id=${s[0]}-${s[1]}] .pref-keybind-combos`);n?.children[s[2]]&&n.children[s[2]].classList.add("conflict")});return e}onClose(){this.observer?.disconnect()}}class cy{static _model;static async getModel(){return this._model||await this._load(),this._model}static async _load(){this._model=[];const e=localStorage.getItem("recentFiles");if(e){try{const t=JSON.parse(e);if(!Array.isArray(t))return;for(const i of t)typeof i!="object"||Array.isArray(i)||typeof i?.name!="string"||typeof i?.path!="string"||this._model.find(s=>s.path==i.path)||this._model.push({name:i.name,path:i.path})}catch{console.log("Failed to load recent file entries");return}await this.saveEntries()}}static async getRecents(){return await this.getModel()}static async addSM(e,t){const i=await this.getModel(),s=i.findIndex(n=>n.path==e);s!=-1&&i.splice(s,1),i.unshift({name:t.properties.TITLE??"Untitled Song",path:e}),this.saveEntries()}static async limitEntries(){(await this.getModel()).splice(15)}static async saveEntries(){this.limitEntries();const e=await Promise.all(this._model.map(async t=>await Ue.hasFile(t.path)));this._model=this._model.filter((t,i)=>e[i]),localStorage.setItem("recentFiles",JSON.stringify(this._model))}}function ti(r){return!!r.simfileTimingData}class dy{_cache={warpedBeats:new Map,beatsToSeconds:new Map};columns={};offset;buildBeatTimingDataCache(){const e=[];let t=this.getTimingData("BPMS","STOPS","WARPS","DELAYS");t=t.concat(this.getTimingData("WARPS").map(n=>({type:"WARP_DEST",beat:n.beat+n.value,value:n.value})));const i=["WARP_DEST","BPMS","STOPS","WARPS","DELAYS"];t.sort((n,a)=>n.beat==a.beat?i.indexOf(n.type)-i.indexOf(a.type):n.beat-a.beat);const s=this.getOffset();e.push({beat:0,secondBefore:-s,secondOf:-s,secondAfter:-s,secondClamp:-s,bpm:this.getTimingData("BPMS")[0]?.value??120,warped:!1});for(const n of t){if(e.at(-1)?.beat!=n.beat){e.at(-1).secondClamp=Math.max(Math.max(e.at(-2)?.secondClamp??-s,e.at(-2)?.secondAfter??-s),e.at(-1).secondBefore);let a=(n.beat-e.at(-1).beat)*60/e.at(-1).bpm;e.at(-1).warped&&(a=0),e.push({beat:n.beat,secondBefore:e.at(-1).secondAfter+a,secondOf:e.at(-1).secondAfter+a,secondAfter:e.at(-1).secondAfter+a,secondClamp:0,bpm:e.at(-1).bpm,warped:e.at(-1).warped})}n.type=="WARPS"&&(e.at(-1).warped=!0),n.type=="WARP_DEST"&&(e.at(-1).warped=!1),n.type=="BPMS"&&(e.at(-1).bpm=n.value),n.type=="STOPS"&&(e.at(-1).secondAfter+=n.value),n.type=="DELAYS"&&(e.at(-1).secondOf+=n.value,e.at(-1).secondAfter+=n.value)}e.at(-1).secondClamp=Math.max(e.at(-2)?.secondClamp??-s,e.at(-1).secondBefore),this._cache.beatTiming=e,this._cache.warpedBeats.clear(),this._cache.beatsToSeconds.clear()}buildEffectiveBeatTimingDataCache(){const e=[...this.getTimingData("SCROLLS")];let t=0;if(e.length==0){this._cache.effectiveBeatTiming=[];return}e[0].beat!=0&&e.unshift({type:"SCROLLS",beat:0,value:e[0].value??1}),t=e[0].beat;for(let i=0;is[t])}mergeColumns(e){if(e.length==0)return[];for(e=e.filter(t=>t.length>0);e.length>1;){const t=[];for(let i=0;i=e.length)return n.concat(t.slice(s))}else if(n.push(t[s]),s++,s>=t.length)return n.concat(e.slice(i))}splitEvents(e){const t=new Map;return e.forEach(i=>{t.has(i.type)||t.set(i.type,[]),t.get(i.type).push(i)}),t}splitEventPairs(e){const t=new Map;return e.forEach(i=>{t.has(i[0].type)||t.set(i[0].type,[]),t.get(i[0].type).push(i)}),t}parse(e,t){if(e=="OFFSET"){this.offset=parseFloat(t);return}e in this.columns||this.createColumn(e),this.parseEvents(e,t)}setOffset(e){const t=this.offset;mt.instance.run({action:()=>{this.offset=e,this.reloadCache(["OFFSET"]),K.emit("timingModified"),K.emit("chartModified")},undo:()=>{this.offset=t,this.reloadCache(["OFFSET"]),K.emit("timingModified"),K.emit("chartModified")}})}serialize(e){this.reloadCache();let t="";this.offset&&(t+="#OFFSET:"+this.offset+`; @@ -1238,7 +1238,7 @@ https://github.com/nodeca/pako/blob/main/LICENSE #FGCHANGES:; #KEYSOUNDS:; #ATTACKS:; -`;class at{view;input;onChange;min=-Number.MAX_VALUE;max=Number.MAX_VALUE;precision;step=1;lastVal="";constructor(e,t,i,s,n,a){this.view=e,this.view.classList.add("spinner"),this.view.onfocus=()=>{o.focus()};const o=document.createElement("input");o.classList.add("spinner-input"),o.type="text",o.autocomplete="off",o.spellcheck=!1,o.onblur=()=>{if(o.value===this.lastVal)return;if(o.value===""){this.onChange?.(void 0);return}const h=ua(o.value);if(h===null){o.value=this.lastVal;return}let u=ae(h,this.precision??3);u=Be(u,this.min,this.max),o.value=this.formatValue(u),this.onChange?.(u)},o.onkeydown=h=>{h.key=="Enter"&&o.blur(),h.key=="Escape"&&(o.value=this.lastVal,o.blur())},o.onfocus=()=>{this.lastVal=o.value},this.input=o,this.min=n??this.min,this.max=a??this.max,this.step=i,this.precision=s,this.setValue(t),e.appendChild(o);const l=document.createElement("div");l.classList.add("spinner-btns"),e.appendChild(l);const c=document.createElement("button");c.classList.add("spinner-up"),c.appendChild(Ae.getIcon("CHEVRON",10)),c.tabIndex=-1,c.onclick=h=>{let u=i??_.general.spinnerStep;h.getModifierState("Shift")&&(u/=10),!(a!==void 0&&parseFloat(o.value)+u>a)&&(o.value=this.formatValue(parseFloat(o.value)+u),this.onChange?.(parseFloat(o.value)))},l.appendChild(c);const d=document.createElement("button");d.classList.add("spinner-down"),d.appendChild(Ae.getIcon("CHEVRON",10)),d.tabIndex=-1,d.onclick=h=>{let u=i??_.general.spinnerStep;h.getModifierState("Shift")&&(u/=10),!(n!==void 0&&parseFloat(o.value)-ur.chartManager.loadAudio()}},{title:"Background Image",propName:"BACKGROUND",input:{type:"file",typeName:"image",accept:ns}},{title:"Banner Image",propName:"BANNER",input:{type:"file",typeName:"image",accept:ns}},{title:"CD Title",propName:"CDTITLE",input:{type:"file",typeName:"image",accept:ns}},{title:"CD Image",propName:"CDIMAGE",input:{type:"file",typeName:"image",accept:ns}},{title:"Jacket",propName:"JACKET",input:{type:"file",typeName:"image",accept:ns}},{title:"Disc Image",propName:"DISCIMAGE",input:{type:"file",typeName:"image",accept:ns}}]},{title:"Song",items:[{title:"Song Preview",propName:"SAMPLESTART",input:{type:"custom",create:(r,e,t)=>{const i=t??mt.instance,s=()=>{a.value{(e??p.chartManager.loadedSM).properties.SAMPLESTART=h,(e??p.chartManager.loadedSM).properties.SAMPLELENGTH=u,n.setValue(parseFloat(h)),a.setValue(parseFloat(h)+parseFloat(u))},undo:()=>{(e??r.chartManager.loadedSM).properties.SAMPLESTART=c,(e??r.chartManager.loadedSM).properties.SAMPLELENGTH=d,n.setValue(parseFloat(c)),a.setValue(parseFloat(c)+parseFloat(d))}})},n=at.create(parseFloat((e??r.chartManager.loadedSM).properties.SAMPLESTART??"0"),void 0,3,0);n.onChange=c=>{if(c===void 0){n.setValue(parseFloat((e??r.chartManager.loadedSM).properties.SAMPLESTART??"0"));return}s()};const a=at.create(parseFloat((e??r.chartManager.loadedSM).properties.SAMPLESTART??"0")+parseFloat((e??r.chartManager.loadedSM).properties.SAMPLELENGTH??"10"),void 0,3,0);a.onChange=c=>{if(c===void 0){a.setValue(parseFloat((e??r.chartManager.loadedSM).properties.SAMPLESTART??"0")+parseFloat((e??r.chartManager.loadedSM).properties.SAMPLELENGTH??"10"));return}s()};const o=document.createElement("div"),l=document.createElement("div");return l.innerText="to",o.classList.add("flex-row","flex-column-gap"),o.replaceChildren(n.view,l,a.view),o}}}]}];function fy(r,e,t,i){const s=i??mt.instance;switch(e.input.type){case"custom":return e.input.create(r,t,i);case"string":{const n=document.createElement("input");return n.type="text",n.autocomplete="off",n.spellcheck=!1,n.onkeydown=a=>{a.key=="Enter"&&n.blur()},n.onblur=()=>{const a=(t??r.chartManager.loadedSM).properties[e.propName],o=n.value;s.run({action:l=>{(t??l.chartManager.loadedSM).properties[e.propName]=o,n.value=o},undo:()=>{(t??r.chartManager.loadedSM).properties[e.propName]=a,n.value=a??""}})},n.value=(t??r.chartManager.loadedSM).properties[e.propName]??"",n}case"number":{const n=e.input,a=at.create(parseFloat((t??r.chartManager.loadedSM).properties[e.propName])??15,n.step,n.precision,n.min,n.max);return a.onChange=o=>{if(o===void 0){a.setValue(parseFloat((t??r.chartManager.loadedSM).properties[e.propName]??"0"));return}const l=(t??r.chartManager.loadedSM).properties[e.propName],c=o.toString();s.run({action:d=>{(t??d.chartManager.loadedSM).properties[e.propName]=c,a.setValue(parseFloat(c))},undo:()=>{(t??r.chartManager.loadedSM).properties[e.propName]=l,a.setValue(parseFloat(l??"0"))}})},a.view}case"file":{const n=e.input,a=e.input.onChange,o=document.createElement("div");o.classList.add("flex-row","flex-column-gap");const l=document.createElement("input");l.type="text",l.autocomplete="off",l.spellcheck=!1,l.placeholder="click to select a file",l.onclick=h=>{h.preventDefault(),l.blur();const u=Ot(r.chartManager.smPath);if(window.nw){const p=document.createElement("input");p.type="file",p.accept=n.accept.join(","),p.onchange=()=>{const f=Ue.getRelativePath(u,p.value),m=(t??r.chartManager.loadedSM).properties[e.propName]??"";s.run({action:g=>{(t??g.chartManager.loadedSM).properties[e.propName]=f,l.value=f},undo:()=>{(t??r.chartManager.loadedSM).properties[e.propName]=m,l.value=m}}),a?.(r)},p.click()}else r.windowManager.openWindow(new Id(r,{title:`Select a${n.typeName.match(/^[aieouAIEOU].*/)?"n":""} ${n.typeName} file...`,accepted_file_types:n.accept,disableClose:!0,callback:p=>{const f=Ue.getRelativePath(u,p),m=(t??r.chartManager.loadedSM).properties[e.propName]??"";s.run({action:g=>{(t??g.chartManager.loadedSM).properties[e.propName]=f,l.value=f},undo:()=>{(t??r.chartManager.loadedSM).properties[e.propName]=m,l.value=m}}),a?.(r)}},(t??r.chartManager.loadedSM).properties[e.propName]?u+"/"+(t??r.chartManager.loadedSM).properties[e.propName]:r.chartManager.smPath))},l.value=(t??r.chartManager.loadedSM).properties[e.propName]??"",o.appendChild(l);const c=document.createElement("button");c.style.height="100%",c.classList.add("delete"),c.disabled=!(t??r.chartManager.loadedSM).properties[e.propName],c.onclick=()=>{l.value="",c.disabled=!0};const d=Ae.getIcon("TRASH",12);return c.appendChild(d),o.appendChild(c),o}}}class my extends St{app;sm;actionHistory;fileTable={};constructor(e){super({title:"New Song",width:450,height:492,disableClose:!0,win_id:"sm_properties",blocking:!0});const t=new Blob([yS],{type:"text/plain"}),i=new File([t],"song.sm",{type:"text/plain"});this.sm=new uy(i),this.app=e,this.actionHistory=new mt(this.app),this.initView()}initView(){this.viewElement.replaceChildren(),this.viewElement.classList.add("sm-properties");const e=document.createElement("div");e.classList.add("padding");const t=document.createElement("div");t.classList.add("label"),t.innerText="Apply to",py.forEach(l=>{const c=document.createElement("div");c.classList.add("sm-container");const d=document.createElement("div");d.classList.add("sm-title"),d.innerText=l.title;const h=document.createElement("div");h.classList.add("property-grid"),l.items.forEach(u=>{const p=document.createElement("div");p.classList.add("label"),p.innerText=u.title,h.appendChild(p),u.input.type=="file"?h.appendChild(this.createFileElement(u.propName,u.input.typeName)):h.appendChild(fy(this.app,u,this.sm,this.actionHistory))}),c.appendChild(d),c.appendChild(h),e.appendChild(c)});const i=document.createElement("div");i.classList.add("menu-options");const s=document.createElement("div");s.classList.add("menu-left");const n=document.createElement("div");n.classList.add("menu-right"),i.appendChild(s),i.appendChild(n);const a=document.createElement("button");a.innerText="Cancel",a.onclick=()=>{this.closeWindow()};const o=document.createElement("button");o.innerText="Create",o.classList.add("confirm"),o.onclick=()=>{this.sm.properties.MUSIC===void 0||this.sm.properties.MUSIC===""?this.app.windowManager.openWindow(new El(this.app,"No audio file uploaded","Are you sure you want to create a file with no audio?",[{type:"confirm",label:"Yes",callback:()=>{this.createSong(),this.closeWindow()}},{type:"default",label:"No"}])):(this.createSong(),this.closeWindow())},s.appendChild(a),n.appendChild(o),e.appendChild(i),this.viewElement.appendChild(e)}async createSong(){let e=this.sm.properties.TITLE;if(window.nw){const t=nw.require("path"),i=document.createElement("input");i.type="file",i.nwsaveas=e+".sm",i.onchange=async()=>{const s=t.basename(i.value,t.extname(i.value));e=t.dirname(i.value);const n=t.join(e,s+".sm");await Ue.writeFile(n,this.sm.serialize("sm")),await Promise.all(Object.entries(this.fileTable).map(a=>Ue.writeFile(e+`/${a[0]}`,a[1]))),await this.app.chartManager.loadSM(n),this.app.windowManager?.getWindowById("select_sm_initial")?.closeWindow()},i.click()}else{if(await Ue.getDirectoryHandle(e)){let t=2;for(;await Ue.getDirectoryHandle(e);)e=`${this.sm.properties.TITLE} ${t++}`}await Ue.writeFile(e+"/song.sm",this.sm.serialize("sm")),await Promise.all(Object.entries(this.fileTable).map(t=>Ue.writeFile(e+`/${t[0]}`,t[1]))),await this.app.chartManager.loadSM(e+"/song.sm"),this.app.windowManager?.getWindowById("select_sm_initial")?.closeWindow()}}createFileElement(e,t){const i=document.createElement("div");i.classList.add("flex-row","flex-column-gap");const s=document.createElement("input");s.type="text",s.autocomplete="off",s.spellcheck=!1,s.placeholder="click to upload a file",s.style.color="white",s.readOnly=!0,s.onclick=o=>{o.preventDefault(),s.blur();const l=document.createElement("input");l.type="file",l.accept=t=="audio"?"audio/*":"image/*",l.onchange=()=>{const c=l.files?.[0];if(!c)return;this.sm.properties[e]&&this.fileTable[this.sm.properties[e]]&&delete this.fileTable[this.sm.properties[e]];let d=c.name;for(;this.fileTable[c.name]&&(this.fileTable[c.name].size!=c.size||this.fileTable[c.name].type!=c.type);)d="_"+d;this.fileTable[d]=c,s.value=d,this.sm.properties[e]=s.value,n.disabled=!1},l.click()},s.value=this.sm.properties[e]??"",i.appendChild(s);const n=document.createElement("button");n.style.height="100%",n.classList.add("delete"),n.disabled=!0,n.onclick=()=>{this.sm.properties[e]&&this.fileTable[this.sm.properties[e]]&&delete this.fileTable[this.sm.properties[e]],this.sm.properties[e]=void 0,s.value="",n.disabled=!0};const a=Ae.getIcon("TRASH",12);return n.appendChild(a),i.appendChild(n),i}}class gy extends St{app;keyHandler;constructor(e,t=!0){super({title:"Open a Song",width:400,height:320,disableClose:t,win_id:"select_sm_initial"}),this.app=e,this.keyHandler=this.handleKeyEvent.bind(this),window.addEventListener("keydown",this.keyHandler),this.initView(),K.on("resize",()=>{this.move(window.innerWidth/2-this.options.width/2,window.innerHeight/2-this.options.height/2)})}onClose(){window.removeEventListener("keydown",this.keyHandler)}initView(){this.viewElement.replaceChildren();const e=document.createElement("div");e.classList.add("padding");const t=document.createElement("div");t.classList.add("open-container"),e.appendChild(t);const i=document.createElement("div");i.classList.add("top-container");const s=document.createElement("div");s.classList.add("separator"),s.style.margin="10px";const n=document.createElement("div");n.classList.add("bottom-container"),t.appendChild(i),t.appendChild(s),t.appendChild(n);const a=document.createElement("button");a.style.display="flex",a.style.flexDirection="column",a.style.padding="10px",a.style.backgroundColor="#414352",a.style.color="white",i.appendChild(a);const o=Ae.getIcon("UPLOAD",30);a.appendChild(o);const l=document.createElement("div");l.innerText=window.nw?"Open an existing song":"Import a song folder",a.appendChild(l),a.onclick=()=>{if(window.nw){const f=document.createElement("input");f.type="file",f.accept=".sm,.ssc",f.onchange=()=>{this.app.chartManager.loadSM(f.value),this.closeWindow()},f.click()}else this.app.windowManager.openWindow(new Id(this.app,{title:"Select an sm/ssc file...",accepted_file_types:[".sm",".ssc"],disableClose:!0,callback:f=>{this.app.chartManager.loadSM(f),this.closeWindow()}}))};const c=document.createElement("button");c.style.display="flex",c.style.flexDirection="column",c.style.padding="10px",c.style.backgroundColor="#506352",c.style.color="white",i.appendChild(c);const d=Ae.getIcon("PLUS",30);c.appendChild(d);const h=document.createElement("div");h.innerText="New Song",c.appendChild(h),c.onclick=()=>{this.app.windowManager.openWindow(new my(this.app))};const u=document.createElement("div");u.innerText="Recently Opened",u.classList.add("title"),n.appendChild(u);const p=document.createElement("div");p.classList.add("recent-selector"),n.appendChild(p),cy.getRecents().then(f=>f.forEach(m=>{const g=document.createElement("div");g.classList.add("recent-item");const y=document.createElement("div");y.classList.add("recent-name"),y.innerText=m.name;const w=document.createElement("div");w.classList.add("recent-path"),w.innerText=m.path,g.appendChild(y),g.appendChild(w),g.onclick=()=>{p.querySelectorAll(".selected").forEach(b=>b.classList.remove("selected")),g.classList.add("selected")},g.ondblclick=()=>{this.app.chartManager.loadSM(m.path),this.closeWindow()},p.appendChild(g)})),this.viewElement.appendChild(e)}handleKeyEvent(e){if(!this.windowElement.classList.contains("focused"))return;const t=this.viewElement.querySelector(".selected");if(t){if(e.code=="ArrowUp"){e.preventDefault(),e.stopImmediatePropagation();const i=t.previousElementSibling;i&&(t.parentElement.querySelectorAll(".selected").forEach(s=>s.classList.remove("selected")),i.classList.add("selected"),ra(i,{scrollMode:"if-needed",block:"nearest",inline:"nearest"}))}if(e.code=="ArrowDown"){e.preventDefault(),e.stopImmediatePropagation();const i=t.nextElementSibling;i&&(t.parentElement.querySelectorAll(".selected").forEach(s=>s.classList.remove("selected")),i.classList.add("selected"),ra(i,{scrollMode:"if-needed",block:"nearest",inline:"nearest"}))}}}}function iM(){const r=new URLSearchParams(location.search),e=r.get("flags");if(e!=null){const n=new Set(e.split("").map(a=>bS[a]).filter(a=>a));for(const a of n.values())Ie[a]=!Ie[a]}const t=r.get("url");if(t!=null)try{Ie.url=new URL(t).toString()}catch{Se.createFormatted("Invalid url "+t,"warn"),Ie.url=null}const i=r.get("chartIndex");if(i!=null)try{Ie.chartIndex=parseInt(i)}catch{Se.createFormatted("Invalid chartIndex "+i,"warn"),Ie.chartIndex=null}const s=r.get("chartType");s!==null&&(We.getGameType(s)?Ie.chartType=s:(Se.createFormatted("Invalid chartType "+s,"warn"),Ie.chartType=null))}const vS={viewMode:{char:"V",name:"Force view mode (disables record mode)"},menuBar:{char:"M",name:"Hide menu bar"},playbackOptions:{char:"o",name:"Hide playback options"},barlines:{char:"B",name:"Hide barlines, waveform, and timing boxes"},assist:{char:"A",name:"Disable assist sounds"},recordMode:{char:"R",name:"Disable record mode"},playMode:{char:"P",name:"Disable play mode"},layout:{char:"L",name:"Hide note layout"},status:{char:"S",name:"Hide status bar"},autoPlay:{char:"a",name:"Play automatically"},openWindows:{char:"O",name:"Disable opening windows"},hidePoweredByText:{char:"H",name:'Hide "Powered by SMEditor" text'}},bS=Object.fromEntries(Object.entries(vS).map(([r,e])=>[e.char,r])),Ie={viewMode:!1,menuBar:!0,playbackOptions:!0,barlines:!0,assist:!0,recordMode:!0,playMode:!0,layout:!0,status:!0,autoPlay:!1,hidePoweredByText:!1,openWindows:!0,url:null,chartIndex:null,chartType:null},$n={file:{type:"menu",title:"File",options:[{type:"selection",id:"newSong"},{type:"selection",id:"openSong"},{type:"separator"},{type:"selection",id:"save"},{type:"selection",id:"export"}]},edit:{type:"menu",title:"Edit",options:[{type:"selection",id:"cut"},{type:"selection",id:"copy"},{type:"selection",id:"paste"},{type:"selection",id:"pasteReplace"},{type:"separator"},{type:"selection",id:"undo"},{type:"selection",id:"redo"},{type:"separator"},{type:"checkbox",id:"mousePlacement",checked:()=>_.chart.mousePlacement}]},view:{type:"menu",title:"View",options:[{type:"dropdown",title:"Cursor",options:[{type:"selection",id:"cursorUp"},{type:"selection",id:"cursorDown"},{type:"separator"},{type:"selection",id:"previousNote"},{type:"selection",id:"nextNote"},{type:"separator"},{type:"selection",id:"previousMeasure"},{type:"selection",id:"nextMeasure"},{type:"separator"},{type:"selection",id:"jumpChartStart"},{type:"selection",id:"jumpChartEnd"},{type:"separator"},{type:"selection",id:"jumpSongStart"},{type:"selection",id:"jumpSongEnd"}]},{type:"dropdown",title:"Snap",options:[{type:"selection",id:"decreaseSnap"},{type:"selection",id:"increaseSnap"}]},{type:"dropdown",title:"Scroll",options:[{type:"checkbox",id:"XMod",checked:()=>!_.chart.CMod},{type:"checkbox",id:"CMod",checked:()=>_.chart.CMod},{type:"separator"},{type:"selection",id:"increaseScrollSpeed"},{type:"selection",id:"decreaseScrollSpeed"}]},{type:"dropdown",title:"Zoom",options:[{type:"selection",id:"zoomIn"},{type:"selection",id:"zoomOut"},{type:"separator"},{type:"selection",id:"zoomDefault"}]},{type:"separator"},{type:"selection",id:"playMode"},{type:"selection",id:"playModeStart"},{type:"separator"},{type:"selection",id:"recordMode"},{type:"selection",id:"recordModeStart"},{type:"separator"},{type:"checkbox",id:"reverse",checked:()=>_.chart.reverse},{type:"checkbox",id:"hideWarpedArrows",checked:()=>_.chart.hideWarpedArrows},{type:"checkbox",id:"hideFakedArrows",checked:()=>_.chart.hideFakedArrows},{type:"checkbox",id:"doSpeedChanges",checked:()=>_.chart.doSpeedChanges}]},chart:{type:"menu",title:"Chart",options:[{type:"selection",id:"openChart"},{type:"separator"},{type:"selection",id:"previousChart"},{type:"selection",id:"nextChart"},{type:"separator"},{type:"selection",id:"songProperties"},{type:"separator"},{type:"selection",id:"timingDataRow"}]},selection:{type:"menu",title:"Selection",options:[{type:"dropdown",title:"Convert",options:[{type:"selection",id:"convertHoldsRolls"},{type:"selection",id:"convertRollsHolds"},{type:"selection",id:"swapHoldsRolls"},{type:"separator"},{type:"selection",id:"convertHoldsTaps"},{type:"selection",id:"convertTapsMines"},{type:"selection",id:"convertTapsLifts"},{type:"selection",id:"convertTapsFakes"}]},{type:"dropdown",title:"Mirror",options:[{type:"selection",id:"mirrorHorizontally"},{type:"selection",id:"mirrorVertically"},{type:"selection",id:"mirrorBoth"}]},{type:"dropdown",title:"Stretch",options:[{type:"selection",id:"expand2to1"},{type:"selection",id:"expand3to2"},{type:"selection",id:"expand4to3"},{type:"separator"},{type:"selection",id:"compress1to2"},{type:"selection",id:"compress2to3"},{type:"selection",id:"compress3to4"}]},{type:"dropdown",title:"Quantize",options:[{type:"selection",id:"quantize4th"},{type:"selection",id:"quantize8th"},{type:"selection",id:"quantize12th"},{type:"selection",id:"quantize16th"},{type:"selection",id:"quantize24th"},{type:"selection",id:"quantize32nd"},{type:"selection",id:"quantize48th"},{type:"selection",id:"quantize96th"}]},{type:"separator"},{type:"selection",id:"setSongPreview"},{type:"separator"},{type:"selection",id:"exportNotedata"},{type:"separator"},{type:"selection",id:"selectBeforeCursor"},{type:"selection",id:"selectAfterCursor"},{type:"selection",id:"selectAll"}]},audio:{type:"menu",title:"Audio",options:[{type:"selection",id:"detectSync"},{type:"separator"},{type:"checkbox",id:"assistTick",checked:()=>_.audio.assistTick&&Ie.assist},{type:"checkbox",id:"metronome",checked:()=>_.audio.metronome&&Ie.assist},{type:"separator"},{type:"dropdown",title:()=>"Master Volume ("+Math.round(_.audio.masterVolume*100)+"%)",options:[{type:"selection",id:"volumeUp"},{type:"selection",id:"volumeDown"}]},{type:"dropdown",title:()=>"Song Volume ("+Math.round(_.audio.songVolume*100)+"%)",options:[{type:"selection",id:"songVolumeUp"},{type:"selection",id:"songVolumeDown"}]},{type:"dropdown",title:()=>"Effect Volume ("+Math.round(_.audio.soundEffectVolume*100)+"%)",options:[{type:"selection",id:"effectvolumeUp"},{type:"selection",id:"effectvolumeDown"}]},{type:"dropdown",title:()=>"Playback rate ("+Math.round(_.audio.rate*100)+"%)",options:[{type:"selection",id:"rateUp"},{type:"selection",id:"rateDown"},{type:"separator"},{type:"selection",id:"rateDefault"}]},{type:"separator"},{type:"selection",id:"showEq"}]},preferences:{type:"menu",title:"Preferences",options:[{type:"selection",id:"options"},{type:"selection",id:"themes"},{type:"selection",id:"keybinds"},{type:"selection",id:"gameplayKeybinds"},{type:"selection",id:"noteskinWindow"}]},help:{type:"menu",title:"Help",options:[{type:"selection",id:"openGuide"}]}},hf=["cut","copy","paste","pasteReplace"],cf={edit:[{ids:["delete"],after:"redo"},{ids:["previousNoteType","nextNoteType","noteTypeTap","noteTypeMine","noteTypeFake","noteTypeLift","quant4","quant8","quant12","quant16","quant24","quant32","quant48","quant96","quant192"],after:"mousePlacement"}],view:[{ids:["playback","selectRegion"]}],debug:[{ids:["showFPSCounter","showDebugTimers"]}]};class Ui extends St{static GROUPS;app;observer;searchDropdown;conflictMap=this.calculateConflicts();constructor(e){super({title:"Keybind Options",width:600,height:400,disableClose:!1,win_id:"keybind_options",blocking:!1}),this.app=e,Ui.GROUPS||(Ui.GROUPS=Ui.createGroups()),this.initView()}initView(){this.viewElement.replaceChildren();const e=document.createElement("div");e.classList.add("padding");const t=document.createElement("div");t.classList.add("pref-container");const i=document.createElement("div");i.classList.add("pref-search");const s=document.createElement("input");s.classList.add("pref-search-bar"),s.type="text",s.placeholder="Search for a keybind...",s.oninput=()=>{o.replaceChildren(...this.createSections(s.value)),l.replaceChildren(...this.createOptions(s.value))};const n=gi.create(["Name","Key"],"Name");n.onChange(()=>{o.replaceChildren(...this.createSections(s.value)),l.replaceChildren(...this.createOptions(s.value))}),this.searchDropdown=n,i.replaceChildren(s,n.view);const a=document.createElement("div");a.classList.add("pref-scrollers");const o=document.createElement("div");o.classList.add("pref-section-scroller");const l=document.createElement("div");l.classList.add("pref-option-scroller"),a.replaceChildren(o,l),this.observer=new IntersectionObserver(c=>{c.forEach(d=>{const h=d.target.dataset.id,u=o.querySelector(`.pref-section[data-id=${h}]`);u&&(d.intersectionRatio>0?u.classList.add("selected"):u.classList.remove("selected"))})},{}),t.replaceChildren(i,a),o.replaceChildren(...this.createSections()),l.replaceChildren(...this.createOptions()),e.appendChild(t),this.viewElement.appendChild(e)}createSections(e=""){return Object.keys(Ui.GROUPS).filter(t=>Ui.GROUPS[t].some(i=>this.filterID(e,i))).map(t=>this.createEmptySection($n[t]?.title??Uc(t),t))}createOptions(e=""){return Object.keys(Ui.GROUPS).filter(t=>Ui.GROUPS[t].some(i=>this.filterID(e,i))).map(t=>{const i=Ui.GROUPS[t].filter(a=>this.filterID(e,a)).map(a=>this.createKeybindItem(a)),s=document.createElement("div");s.classList.add("pref-group"),s.dataset.id=t;const n=document.createElement("div");return n.classList.add("pref-group-label"),n.innerText=$n[t]?.title??Uc(t),s.replaceChildren(n,...i),this.observer.observe(s),s})}static createGroups(){const e=Object.keys(Tt),t={};return Object.keys($n).forEach(i=>{t[i]=this.expandMenubarOptions($n[i]).map(s=>{const n=e.indexOf(s);return n!=-1&&e.splice(n,1),s}).filter(s=>!hf.includes(s))}),Object.keys(cf).forEach(i=>{t[i]===void 0&&(t[i]=[]),cf[i].forEach(s=>{const n=s.after?t[i].findIndex(a=>s.after==a)+1:0;t[i].splice(n,0,...s.ids),s.ids.forEach(a=>{const o=e.indexOf(a);o!=-1&&e.splice(o,1)})})}),hf.forEach(i=>{const s=e.indexOf(i);s!=-1&&e.splice(s,1)}),e.length>0&&(console.warn("Missing keybinds not shown:"),console.warn(e)),t}filterID(e,t){if((this.searchDropdown?.value??"Name")=="Name")return(Tt[t].bindLabel??Tt[t].label).toLowerCase().includes(e.toLowerCase());{const i=Re.getCombosForKeybind(t);if(i.some(n=>n.key.toLowerCase().includes(e.toLowerCase()))||i.some(n=>(by[n.key]??n.key).toLowerCase().includes(e.toLowerCase())))return!0;let s=e.split(" ").map(n=>n.toLowerCase());return i.some(n=>(s.includes("shift")||s.includes("⇧"))&&!n.mods.includes(Yn.SHIFT)||(s.includes("ctrl")||s.includes("control")||s.includes("⌃"))&&!n.mods.includes(Yn.CTRL)||(s.includes("meta")||s.includes("cmd")||s.includes("command")||s.includes("⌘"))&&!n.mods.includes(Yn.META)||(s.includes("alt")||s.includes("⌥"))&&!n.mods.includes(Yn.ALT)?!1:(s=s.filter(a=>!["shift","ctrl","control","meta","cmd","command","alt","⇧","⌃","⌘","⌥",""].includes(a)),s.length==0||s.length==1&&n.key.toLowerCase().includes(s[0])))}}static expandMenubarOptions(e){switch(e.type){case"menu":case"dropdown":return e.options.map(t=>this.expandMenubarOptions(t)).flat();case"selection":case"checkbox":return[e.id];case"separator":return[]}}createEmptySection(e,t){const i=document.createElement("div");return i.classList.add("pref-section"),i.dataset.id=t,i.innerText=e,i.onclick=()=>{i.parentElement.parentElement.querySelector(`.pref-group[data-id=${t}]`).scrollIntoView()},i}createKeybindItem(e){const t=document.createElement("div");t.classList.add("pref-keybind"),t.dataset.id=e,t.onclick=a=>{a.target.classList.contains("pref-keybind-combo")||t.querySelector(".icon")?.contains(a.target)||this.app.windowManager.openWindow(new hy(this.app,!0,o=>{Re.setKeybind(e,o),this.conflictMap=this.calculateConflicts(),t.replaceWith(this.createKeybindItem(e))},o=>{const l=this.conflictMap.get(Re.getComboString(o))?.map(c=>c[0]).map(c=>Tt[c].bindLabel??Tt[c].label)??[];return l.includes(e)?"self":l}))};const i=document.createElement("div");i.classList.add("pref-keybind-label"),i.innerText=Tt[e].bindLabel??Tt[e].label;const s=Ae.getIcon("REVERT");s.style.width="12px",s.addEventListener("click",()=>{Re.revertKeybind(e),this.conflictMap=this.calculateConflicts(),t.replaceWith(this.createKeybindItem(e))}),s.style.display=Re.checkIsDefault(e)?"none":"block";const n=document.createElement("div");return n.classList.add("pref-keybind-combos"),n.replaceChildren(...Re.getCombosForKeybind(e).map(a=>{const o=document.createElement("button");return o.classList.add("pref-keybind-combo"),o.innerText=Re.getComboString(a),this.conflictMap.get(Re.getComboString(a)).length>1&&o.classList.add("conflict"),o.onclick=()=>{Re.removeKeybind(e,a),this.conflictMap=this.calculateConflicts(),t.replaceWith(this.createKeybindItem(e))},o})),t.replaceChildren(i,s,n),t}calculateConflicts(){const e=new Map;Object.keys(Tt).forEach(t=>{Re.getCombosForKeybind(t).forEach((i,s)=>{const n=Re.getComboString(i);e.has(n)||e.set(n,[]),e.get(n).push([t,s])})}),[...this.viewElement.querySelectorAll(".pref-keybind-combo.conflict")].forEach(t=>t.classList.remove("conflict"));for(const t of e.values())t.length!=1&&t.forEach(i=>{const s=this.viewElement.querySelector(`.pref-keybind[data-id=${i[0]}] .pref-keybind-combos`);s?.children[i[1]]&&s.children[i[1]].classList.add("conflict")});return e}onClose(){this.observer?.disconnect()}}class st{static noteskins=new Map;static register(e){for(const t of new Set(e.gameTypes))st.noteskins.has(t)||st.noteskins.set(t,new Map),st.noteskins.get(t).set(e.id,e)}static async getNoteskin(e,t){const i=this.noteskins.get(e.id);if(!i||i.size==0)return;const s=i.get(t)??[...i.values()][0];return i.get(t)||Se.createFormatted(`Couldn't find the noteskin ${t}!`,"warn"),await s.load()}static getNoteskinData(e,t){const i=this.noteskins.get(e.id);return!i||i.size==0?void 0:i.get(t)??[...i.values()][0]}static getNoteskins(){return this.noteskins}static getPreviewUrl(e,t){return this.getNoteskinData(e,t).preview}}st.register({id:"default",gameTypes:["dance-single","dance-double","dance-couple","dance-solo","dance-solodouble","dance-threepanel","dance-threedouble"],load:async()=>(await Ke(()=>import("./Noteskin-ebdca60a.js"),["Noteskin-ebdca60a.js","HoldBody-2ee2d035.js"])).default,preview:new URL("/smeditor/assets/preview-17ffcc02.png",self.location).href,title:"Scalable",subtitle:"Pete-Lawrence"});st.register({id:"cf-chrome",gameTypes:["dance-single","dance-double","dance-couple","dance-solo","dance-solodouble","dance-threepanel","dance-threedouble"],load:async()=>(await Ke(()=>import("./Noteskin-f5d3d85f.js"),["Noteskin-f5d3d85f.js","HoldBody-2ee2d035.js"])).default,preview:new URL("/smeditor/assets/preview-40b76b28.png",self.location).href,title:"CF_CHROME",subtitle:"Pete-Lawrence"});st.register({id:"ddr-note",gameTypes:["dance-single","dance-double","dance-couple","dance-solo","dance-solodouble","dance-threepanel","dance-threedouble"],load:async()=>(await Ke(()=>import("./Noteskin-ae57ec63.js"),["Noteskin-ae57ec63.js","AnimatedSprite-d8e8da79.js","HoldBody-2ee2d035.js"])).default,preview:new URL("/smeditor/assets/preview-b8f75a15.png",self.location).href,title:"DDR-Note",subtitle:"Pete-Lawrence"});st.register({id:"ddr-note-itg",gameTypes:["dance-single","dance-double","dance-couple","dance-solo","dance-solodouble","dance-threepanel","dance-threedouble"],load:async()=>(await Ke(()=>import("./Noteskin-8cda25e2.js"),["Noteskin-8cda25e2.js","AnimatedSprite-d8e8da79.js","HoldBody-2ee2d035.js"])).default,preview:new URL("/smeditor/assets/preview-f113aacc.png",self.location).href,title:"DDR-Note (ITG quants)",subtitle:"Pete-Lawrence"});st.register({id:"ddr-rainbow",gameTypes:["dance-single","dance-double","dance-couple"],load:async()=>(await Ke(()=>import("./Noteskin-9af5a76e.js"),["Noteskin-9af5a76e.js","AnimatedSprite-d8e8da79.js","HoldBody-2ee2d035.js"])).default,preview:new URL("/smeditor/assets/preview-0f9b00cd.png",self.location).href,title:"DDR-Rainbow",subtitle:"LemmaEOF"});st.register({id:"ddr-rainbow-itg",gameTypes:["dance-single","dance-double","dance-couple"],load:async()=>(await Ke(()=>import("./Noteskin-5c44b6a2.js"),["Noteskin-5c44b6a2.js","AnimatedSprite-d8e8da79.js","HoldBody-2ee2d035.js"])).default,preview:new URL("/smeditor/assets/preview-2fd7d50c.png",self.location).href,title:"DDR-Rainbow (ITG quants)",subtitle:"LemmaEOF"});st.register({id:"metal",gameTypes:["dance-single","dance-double","dance-couple","dance-solo","dance-solodouble","dance-threepanel","dance-threedouble"],load:async()=>(await Ke(()=>import("./Noteskin-42c37b68.js"),["Noteskin-42c37b68.js","HoldBody-2ee2d035.js"])).default,preview:new URL("/smeditor/assets/preview-26b1bdce.png",self.location).href,title:"Metal",subtitle:"Pete-Lawrence"});st.register({id:"pastel",gameTypes:["dance-single","dance-double","dance-couple","dance-solo","dance-solodouble","dance-threepanel","dance-threedouble"],load:async()=>(await Ke(()=>import("./Noteskin-66017985.js"),["Noteskin-66017985.js","AnimatedSprite-d8e8da79.js","HoldBody-2ee2d035.js"])).default,preview:new URL("/smeditor/assets/preview-d67630f1.png",self.location).href,title:"Pastel",subtitle:"halcyoniix"});st.register({id:"dividebyzero",gameTypes:["dance-single","dance-double","dance-couple","dance-solo","dance-solodouble","dance-threepanel","dance-threedouble"],load:async()=>(await Ke(()=>import("./Noteskin-0eb7987c.js"),["Noteskin-0eb7987c.js","AnimatedSprite-d8e8da79.js","HoldBody-2ee2d035.js"])).default,preview:new URL("/smeditor/assets/preview-d763e667.png",self.location).href,title:"DivideByZero",subtitle:"MinaciousGrace"});st.register({id:"subtractbyzero",gameTypes:["dance-single","dance-double","dance-couple","dance-solo","dance-solodouble","dance-threepanel","dance-threedouble"],load:async()=>(await Ke(()=>import("./Noteskin-288e1d0a.js"),["Noteskin-288e1d0a.js","AnimatedSprite-d8e8da79.js","HoldBody-2ee2d035.js"])).default,preview:new URL("/smeditor/assets/preview-72ea0444.png",self.location).href,title:"SubtractByZero",subtitle:"qwertyzoro/Vague"});st.register({id:"sm4",gameTypes:["dance-single","dance-double","dance-couple","dance-solo","dance-solodouble","dance-threepanel","dance-threedouble"],load:async()=>(await Ke(()=>import("./Noteskin-4b0e23b8.js"),["Noteskin-4b0e23b8.js","AnimatedSprite-d8e8da79.js","HoldBody-2ee2d035.js"])).default,preview:new URL("/smeditor/assets/preview-3514cbb3.png",self.location).href,title:"SM4",subtitle:"from SM4"});st.register({id:"sm4-bold",gameTypes:["dance-single","dance-double","dance-couple","dance-solo","dance-solodouble","dance-threepanel","dance-threedouble"],load:async()=>(await Ke(()=>import("./Noteskin-4623e307.js"),["Noteskin-4623e307.js","AnimatedSprite-d8e8da79.js","HoldBody-2ee2d035.js"])).default,preview:new URL("/smeditor/assets/preview-9fe2bd96.png",self.location).href,title:"SM4 Bold",subtitle:"from SM4"});st.register({id:"starlight-vivid",gameTypes:["dance-single","dance-double","dance-couple"],load:async()=>(await Ke(()=>import("./Noteskin-3e1bbc62.js"),["Noteskin-3e1bbc62.js","AnimatedSprite-d8e8da79.js","HoldBody-2ee2d035.js"])).default,preview:new URL("/smeditor/assets/preview-5ecfc22a.png",self.location).href,title:"SLNEXXT-vivid",subtitle:"from STARLiGHT-NEXXT"});st.register({id:"default",gameTypes:["pump-single","pump-double","pump-couple","pump-versus","pump-halfdouble"],load:async()=>(await Ke(()=>import("./Noteskin-83848dd1.js"),["Noteskin-83848dd1.js","AnimatedSprite-d8e8da79.js","HoldBody-2ee2d035.js"])).default,preview:new URL("/smeditor/assets/preview-d6d59d37.png",self.location).href,title:"Fiesta"});st.register({id:"fourv2",gameTypes:["pump-single","pump-double","pump-couple","pump-versus","pump-halfdouble"],load:async()=>(await Ke(()=>import("./Noteskin-f02aebb8.js"),["Noteskin-f02aebb8.js","AnimatedSprite-d8e8da79.js","HoldBody-2ee2d035.js"])).default,preview:new URL("/smeditor/assets/preview-5d9781d2.png",self.location).href,title:"FourV2",subtitle:"Jousway"});st.register({id:"prime",gameTypes:["pump-single","pump-double","pump-couple","pump-versus","pump-halfdouble"],load:async()=>(await Ke(()=>import("./Noteskin-008db546.js"),["Noteskin-008db546.js","AnimatedSprite-d8e8da79.js","HoldBody-2ee2d035.js"])).default,preview:new URL("/smeditor/assets/preview-4f79831b.png",self.location).href,title:"Prime"});const wS="/smeditor/assets/preview-747db171.png";class _S extends St{app;grid;lastGameType=null;constructor(e){super({title:"Noteskin Selection",width:600,height:400,disableClose:!1,win_id:"noteskin-selection",blocking:!1}),this.app=e,this.initView(),this.loadGrid(),K.on("chartLoaded",()=>{const t=e.chartManager.loadedChart.gameType.id;this.lastGameType!=t&&this.loadGrid()})}initView(){this.viewElement.replaceChildren();const e=document.createElement("div");e.classList.add("padding");const t=document.createElement("input");t.classList.add("pref-search-bar"),t.type="text",t.placeholder="Search for a noteskin...",t.oninput=()=>{this.filterGrid(t.value)};const i=document.createElement("div");i.classList.add("noteskin-grid"),this.grid=i,e.replaceChildren(t,i),this.viewElement.appendChild(e)}loadGrid(){if(this.grid.replaceChildren(),!this.app.chartManager.loadedChart)return;const e=this.app.chartManager.loadedChart.gameType;this.lastGameType=e.id;const t=st.getNoteskins().get(e.id);if(t)for(const[i,s]of t.entries()){const n=document.createElement("div"),a=document.createElement("img"),o=document.createElement("div"),l=document.createElement("div"),c=document.createElement("div");n.classList.add("noteskin-cell"),o.classList.add("noteskin-label"),l.classList.add("noteskin-title"),c.classList.add("noteskin-subtitle"),l.innerText=s.title??i,c.innerText=s.subtitle??"",a.src=st.getPreviewUrl(e,i),a.onerror=()=>{a.src=wS},n.replaceChildren(a,o),o.replaceChildren(l,c),this.grid.appendChild(n),i==_.chart.noteskin.name&&(n.classList.add("selected"),setTimeout(()=>{n.scrollIntoView({behavior:_.general.smoothAnimations?"smooth":"instant",block:"center"})})),n.dataset.id=i,n.dataset.title=s.title??"",n.dataset.subtitle=s.subtitle??"",n.onclick=()=>{_.chart.noteskin.name!=i&&(this.app.chartManager.chartView?.swapNoteskin(i),this.removeAllSelections(),n.classList.add("selected"))}}}removeAllSelections(){[...this.grid.querySelectorAll(".selected")].forEach(e=>e.classList.remove("selected"))}filterGrid(e){[...this.grid.children].forEach(t=>{if(!(t instanceof HTMLDivElement))return;const i=t,s=this.containsQuery(e,i.dataset.id)||this.containsQuery(e,i.dataset.title)||this.containsQuery(e,i.dataset.subtitle);i.style.display=s?"":"none"})}containsQuery(e,t){return t?t.toLowerCase().includes(e.trim().toLowerCase()):!1}}class xS extends St{app;metronomeInterval;startTime;me_high=new ps.Howl({src:Ug,volume:_.audio.soundEffectVolume});me_low=new ps.Howl({src:Hg,volume:_.audio.soundEffectVolume});tickLines=[];resultLines=[];previousOffsets=[];keyHandler;constructor(e){super({title:"Offset Adjuster",width:300,height:200,win_id:"offset",blocking:!0}),this.app=e,this.initView(),this.startTime=performance.now();let t=this.startTime+500;this.tickLines.push({time:t+500,beat:0}),this.tickLines.push({time:t+500*2,beat:1}),this.tickLines.push({time:t+500*3,beat:2}),this.tickLines.push({time:t+500*4,beat:3});let i=0;this.metronomeInterval=setInterval(()=>{const s=performance.now();if(s-t>500){for(t=s,(i%4==0?this.me_high:this.me_low).play();this.tickLines[0]?.time+1e3s-n.startTime<8e3)},5),this.keyHandler=s=>{if(s.code.startsWith("Digit")||s.code.startsWith("Key")||s.code=="Space"){let n=this.tickLines[0];const a=performance.now();for(const l of this.tickLines)if(a-l.time+_.play.offset*1e3<300){n=l;break}s.preventDefault();const o=a-n.time+_.play.offset*1e3;o>-300&&(this.tickLines.splice(this.tickLines.indexOf(n),1),this.resultLines.push({startTime:performance.now(),offset:o}),this.previousOffsets.push(o),this.previousOffsets.length==16&&(qg(this.previousOffsets)<70&&(_.play.offset-=Tl(this.previousOffsets)/1e3),this.previousOffsets=[]))}},window.addEventListener("keydown",this.keyHandler)}initView(){this.viewElement.replaceChildren();const e=document.createElement("canvas");this.viewElement.appendChild(e);const t=this.drawEQ(e);requestAnimationFrame(t)}drawEQ(e){const t=e.getContext("2d");t.canvas.width=250,t.canvas.height=100;const i=()=>{t.fillStyle="rgba(0, 0, 0, 1)",t.fillRect(0,0,e.width,e.height),t.fillStyle="rgb(255, 255, 255)",t.fillRect(e.width/2-1,8,2,e.height-16);const s=performance.now();for(const n of this.resultLines){t.fillStyle="rgba(255, 255, 255, 1)";const a=Math.min(1,4-(s-n.startTime)/2e3);if(n.offset<0&&(t.fillStyle=`rgba(160, ${Ht(160,0,-n.offset/250)}, ${Ht(160,0,-n.offset/250)}, ${a})`),n.offset>0&&(t.fillStyle=`rgba(${Ht(160,0,n.offset/250)}, ${Ht(160,0,n.offset/250)}, 160, ${a})`),t.fillRect(e.width/2-.5+n.offset/4,12,1,e.height-24),s-n.startTime<250){const o=(s-n.startTime)/250;t.globalAlpha=1-o,t.fillRect(e.width/2-.5-o*3+n.offset/4,12-o*10,1+o*6,e.height-24+o*20)}t.globalAlpha=1}for(const n of this.tickLines){const a=n.time-s-_.play.offset*1e3;t.fillStyle="rgba(255, 255, 255, 0.8)",n.beat%4!=0?t.fillRect(e.width/2-1-a/4,12,2,e.height-24):t.fillRect(e.width/2-2-a/4,12,4,e.height-24)}e.closest("#windows")&&requestAnimationFrame(i)};return i}onClose(){clearInterval(this.metronomeInterval),window.removeEventListener("keydown",this.keyHandler)}}class TS extends St{app;changeHandler=()=>this.initView();constructor(e){super({title:"Song Properties",width:450,height:486,disableClose:!1,win_id:"sm_properties",blocking:!1}),this.app=e,this.initView(),K.on("smLoaded",this.changeHandler),K.on("undo",this.changeHandler),K.on("redo",this.changeHandler)}onClose(){K.off("smLoaded",this.changeHandler),K.off("undo",this.changeHandler),K.off("redo",this.changeHandler)}initView(){this.viewElement.replaceChildren(),this.viewElement.classList.add("sm-properties");const e=document.createElement("div");e.classList.add("padding");const t=document.createElement("div");t.classList.add("label"),t.innerText="Apply to",py.forEach(i=>{const s=document.createElement("div");s.classList.add("sm-container");const n=document.createElement("div");n.classList.add("sm-title"),n.innerText=i.title;const a=document.createElement("div");a.classList.add("property-grid"),i.items.forEach(o=>{const l=document.createElement("div");l.classList.add("label"),l.innerText=o.title,a.appendChild(l),a.appendChild(fy(this.app,o))}),s.appendChild(n),s.appendChild(a),e.appendChild(s)}),this.viewElement.appendChild(e)}}var ES=MS,el=8192,Bd=65536,Rd=new ArrayBuffer(Bd*4),AS=new Float64Array(Rd,Bd,el),SS=new Float64Array(Rd,Bd*2,el/2),CS=kS({Math,Float64Array},null,Rd);function MS(r){if(!r)throw Error("Input data is not provided, pass an array.");var e=r.length;if(e>el)throw Error("Input length is too big, must be under "+el);var t=Math.floor(Math.log(e)/Math.LN2);if(Math.pow(2,t)!==e)throw Error("Invalid array size, must be a power of 2.");return AS.set(r),CS(e,t),SS.subarray(0,e/2)}function kS(r,e,t){var i=6.283185307179586,s=r.Math.sqrt,n=r.Math.sin,a=r.Math.cos,o=r.Math.abs,l=r.Math.SQRT1_2,c=r.Math.imul,d=new r.Float64Array(t),h=new r.Float64Array(t),u=8192,p=16384;function f(g,y){g=g|0,y=y|0;var w=0,b=0,v=0,E=0,C=0,I=0,L=0,k=0,N=0,G=0,A=0,S=0,x=0,D=0,$=0,R=0,O=0,W=0,V=0,F=0,U=0,te=0,Q=0,Z=0,ye=0,Ce=0,ce=0,fe=0,we=0,le=0,pe=0,be=0;for(w=g>>>1,v=2/+(g|0),m(g),le=0,be=4;(le|0)<(g|0);be=c(be,4)){for(pe=le;(pe|0)<(g|0);pe=pe+be|0)F=h[pe<<3>>3]-h[pe+1<<3>>3],h[pe<<3>>3]=h[pe<<3>>3]+h[pe+1<<3>>3],h[pe+1<<3>>3]=F;le=c(2,be-1)}for(E=2,L=g>>>1;L=L>>>1;){le=0,E=E<<1,be=E<<1,C=E>>>2,I=E>>>3;do{if((C|0)!=1)for(pe=le;(pe|0)<(g|0);pe=pe+be|0)S=pe,x=S+C|0,D=x+C|0,$=D+C|0,k=h[D<<3>>3]+h[$<<3>>3],h[$<<3>>3]=h[$<<3>>3]-h[D<<3>>3],h[D<<3>>3]=h[S<<3>>3]-k,h[S<<3>>3]=h[S<<3>>3]+k,S=S+I|0,x=x+I|0,D=D+I|0,$=$+I|0,k=h[D<<3>>3]+h[$<<3>>3],N=h[D<<3>>3]-h[$<<3>>3],k=-k*l,N=N*l,F=+h[x<<3>>3],h[$<<3>>3]=k+F,h[D<<3>>3]=k-F,h[x<<3>>3]=h[S<<3>>3]-N,h[S<<3>>3]=h[S<<3>>3]+N;else for(pe=le;(pe|0)<(g|0);pe=pe+be|0)S=pe,x=S+C|0,D=x+C|0,$=D+C|0,k=h[D<<3>>3]+h[$<<3>>3],h[$<<3>>3]=h[$<<3>>3]-h[D<<3>>3],h[D<<3>>3]=h[S<<3>>3]-k,h[S<<3>>3]=h[S<<3>>3]+k;le=(be<<1)-E|0,be=be<<2}while((le|0)<(g|0));for(ye=i/+(E|0),b=1;(b|0)<(I|0);b=b+1|0){Ce=+(b|0)*ye,te=n(Ce),U=a(Ce),Q=4*U*(U*U-.75),Z=4*te*(.75-te*te),le=0,be=E<<1;do{for(pe=le;(pe|0)<(g|0);pe=pe+be|0)S=pe+b|0,x=S+C|0,D=x+C|0,$=D+C|0,R=pe+C-b|0,O=R+C|0,W=O+C|0,V=W+C|0,N=h[W<<3>>3]*U-h[D<<3>>3]*te,k=h[W<<3>>3]*te+h[D<<3>>3]*U,A=h[V<<3>>3]*Q-h[$<<3>>3]*Z,G=h[V<<3>>3]*Z+h[$<<3>>3]*Q,F=N-A,N=N+A,A=F,h[V<<3>>3]=N+h[O<<3>>3],h[D<<3>>3]=N-h[O<<3>>3],F=G-k,k=k+G,G=F,h[$<<3>>3]=G+h[x<<3>>3],h[W<<3>>3]=G-h[x<<3>>3],h[O<<3>>3]=h[S<<3>>3]-k,h[S<<3>>3]=h[S<<3>>3]+k,h[x<<3>>3]=A+h[R<<3>>3],h[R<<3>>3]=h[R<<3>>3]-A;le=(be<<1)-E|0,be=be<<2}while((le|0)<(g|0))}}for(;w=w-1|0;)ce=+h[w<<3>>3],fe=+h[g-w-1<<3>>3],we=v*s(ce*ce+fe*fe),d[p+w<<3>>3]=we;d[p+0<<3>>3]=o(v*h[0])}function m(g){g=g|0;var y=0,w=0,b=1,v=0,E=0;y=g>>>1,w=g-1|0,h[0]=d[u+0<<3>>3];do{for(v=v+y|0,h[b<<3>>3]=d[u+v<<3>>3],h[v<<3>>3]=d[u+b<<3>>3],b=b+1|0,E=y<<1;E=E>>1,((v=v^E)&E)==0;);(v|0)>=(b|0)&&(h[b<<3>>3]=d[u+v<<3>>3],h[v<<3>>3]=d[u+b<<3>>3],h[w-b<<3>>3]=d[u+w-v<<3>>3],h[w-v<<3>>3]=d[u+w-b<<3>>3]),b=b+1|0}while((b|0)<(y|0));h[w<<3>>3]=d[u+w<<3>>3]}return f}const df=ya(ES);class ds{view;slider;text;options;constructor(e,t){this.view=e,this.options=t,this.view.classList.add("slider");const i=document.createElement("input");i.classList.add("slider-input"),i.type="range",i.min=t.min.toString(),i.max=t.max.toString(),i.step=t.step.toString(),i.value=(t.value??(t.min+t.max)/2).toString(),i.oninput=()=>{s.innerText=this.formatValue(parseFloat(i.value))+"",this.options.onChange?.(parseFloat(i.value))},t.width!==void 0&&(i.style.width=t.width+"px"),this.slider=i,e.appendChild(i);const s=document.createElement("div");s.innerText=this.formatValue(parseFloat(i.value))+"",s.style.width="30px",this.text=s,e.appendChild(s)}get value(){return parseFloat(this.slider.value)}setValue(e){this.slider.value=e+"",this.text.innerText=this.formatValue(parseFloat(this.slider.value))+""}static create(e){return new ds(document.createElement("div"),e)}formatValue(e){return this.options.transformer?this.options.transformer(e):this.options.precision===void 0?ae(e,3).toString():ae(e,this.options.precision).toFixed(this.options.precision)}}const ii=800,qe=200,Sh=3,Dn=125,On=250,uo=3,IS=.02,Os=6,Ch=800,uf=15,qt=32768,Mh=[{frequency:20,weight:.4006009013520281},{frequency:25,weight:.4258037044922291},{frequency:31.5,weight:.4536690484291709},{frequency:40,weight:.4840856831659204},{frequency:50,weight:.5142710208279764},{frequency:63,weight:.5473453749315819},{frequency:80,weight:.5841121495327103},{frequency:100,weight:.6214074879602299},{frequency:125,weight:.6601749463607856},{frequency:160,weight:.7054673721340388},{frequency:200,weight:.7489234225800412},{frequency:250,weight:.7936507936507937},{frequency:315,weight:.8406893652795292},{frequency:400,weight:.889284126278346},{frequency:500,weight:.9291521486643438},{frequency:630,weight:.9675858732462506},{frequency:800,weight:.9985022466300548},{frequency:1e3,weight:.9997500624843789},{frequency:1250,weight:.9564801530368244},{frequency:1600,weight:.9409550693954364},{frequency:2e3,weight:1.0196278358399185},{frequency:2500,weight:1.0955902492467817},{frequency:3150,weight:1.1232799775344005},{frequency:4e3,weight:1.0914051841746248},{frequency:5e3,weight:.9997500624843789},{frequency:6300,weight:.8727907484180668},{frequency:8e3,weight:.7722007722007722},{frequency:1e4,weight:.7369196757553427},{frequency:12500,weight:.7768498737618955},{frequency:16e3,weight:.7698229407236336},{frequency:2e4,weight:.4311738708634257},{frequency:22550,weight:.2},{frequency:25e3,weight:0}];class yy extends St{app;onAudioLoad=this.reset.bind(this);windowStep=512;fftSize=1024;tempoFftSize=4096;tempoStep=2;monoAudioData;audioLength=0;sampleRate=44100;tempogram=[];tempogramGroups=[];spectrogram=[];spectrogramDifference=[];noveltyCurve=[];noveltyCurveIsolated=[];spectrogramCanvases=[];lowestFinishedBlock=0;numRenderedBlocks=0;peaks=[];_threshold=.3;spectroHeights=[];spectroWeights=[];placeNotesSelectionButton;toggleButton;resetButton;onsetResults;offsetTableLabel;offsetRows=[];bpmRows=[];covers=[];doAnalysis=!1;lastSecond=0;constructor(e){super({title:"Detect Audio Sync",width:400,height:450,win_id:"detect-sync"}),this.app=e,this.initView(),this.reset(),K.on("audioLoaded",this.onAudioLoad)}onClose(){K.off("audioLoaded",this.onAudioLoad),this.app.chartManager.chartAudio.offLoad(this.onAudioLoad)}initView(){this.viewElement.replaceChildren();const e=document.createElement("div");e.classList.add("sync-container"),e.style.display="flex",e.style.flexDirection="column",e.style.alignItems="center";const t=document.createElement("canvas");t.style.width=`${ii/2}px`,t.style.height=`${qe}px`;const i=document.createElement("div");i.classList.add("sync-tab-container");const s=document.createElement("div");s.classList.add("sync-tab-option","active"),s.innerText="Analysis Options";const n=document.createElement("div");n.classList.add("sync-tab-option"),n.innerText="Tempo Results";const a=document.createElement("div");a.classList.add("sync-tab-option"),a.innerText="Onset Results",i.replaceChildren(s,n,a),[...i.children].forEach((m,g)=>{m.onclick=()=>{l.scrollLeft=370*g,i.querySelectorAll(".active").forEach(y=>y.classList.remove("active")),m.classList.add("active")}});const o=document.createElement("div");o.classList.add("sync-tab-view");const l=document.createElement("div");l.classList.add("sync-tab-scroller");const c=this.createOptionsView(),d=this.createTempoView(),h=this.createOnsetsView(),u=(m,g)=>{const y=document.createElement("div");return y.classList.add("sync-cover"),y.innerText=m,y.style.left=`${g*370}px`,y};this.covers=[u("Clear analysis results to edit",0),u("Start analysis to view",1),u("Start analysis to view",2)],o.appendChild(l),l.replaceChildren(c,this.covers[0],d,this.covers[1],h,this.covers[2]);const p=document.createElement("div");p.classList.add("sync-bottom-container"),this.resetButton=document.createElement("button"),this.resetButton.classList.add("delete"),this.resetButton.innerText="Clear results",this.resetButton.style.width="120px",this.resetButton.disabled=!0,this.resetButton.onclick=()=>{this.resetButton.disabled=!0,s.click(),this.reset()},this.toggleButton=document.createElement("button"),this.toggleButton.innerText="Start analyzing",this.toggleButton.style.width="200px",this.toggleButton.onclick=()=>{this.doAnalysis||n.click(),this.doAnalysis=!this.doAnalysis,this.toggleButton.innerText=this.doAnalysis?"Stop analyzing":this.hasData()?"Resume analyzing":"Start analyzing",this.resetButton.disabled=this.doAnalysis},p.replaceChildren(this.toggleButton,this.resetButton),e.replaceChildren(t,i,o,p),this.viewElement.appendChild(e);const f=this.windowLoop(t);requestAnimationFrame(f)}createOptionsView(){const e=document.createElement("div");e.style.display="flex",e.style.position="relative",e.style.flexDirection="column",e.style.gap="3px",e.style.height="100%";const t=(c,d,h)=>{const u=document.createElement("div");u.style.display="flex",u.style.flexDirection="row",u.style.justifyContent="space-between",u.style.alignItems="center";const p=document.createElement("div");return p.innerText=c,u.replaceChildren(p,d),Pt(u,{content:h}),u},i=document.createElement("div");i.innerText="Onsets",i.style.fontWeight="600";const s=ds.create({min:Math.log2(128),max:Math.log2(8192),step:1,value:Math.log2(this.fftSize),transformer:c=>2**c,onChange:c=>{this.fftSize=2**c,this.windowStep>this.fftSize&&(this.windowStep=this.fftSize,n.setValue(c)),this.reset()}}),n=ds.create({min:Math.log2(128),max:Math.log2(8192),step:1,value:Math.log2(this.windowStep),transformer:c=>2**c,onChange:c=>{this.windowStep=2**c,this.windowStep>this.fftSize&&(this.windowStep=this.fftSize,n.setValue(Math.log2(this.fftSize))),this.reset()}}),a=document.createElement("div");a.innerText="Tempo",a.style.fontWeight="600",a.style.marginTop="15px";const o=ds.create({min:Math.log2(128),max:Math.log2(8192),step:1,value:Math.log2(this.tempoFftSize),transformer:c=>2**c,onChange:c=>{this.tempoStep=2**c,this.tempoStep>this.tempoFftSize&&(this.tempoStep=this.tempoFftSize,l.setValue(c)),this.reset()}}),l=ds.create({min:Math.log2(1),max:Math.log2(1024),step:1,value:Math.log2(this.tempoStep),transformer:c=>2**c,onChange:c=>{this.tempoStep=2**c,this.tempoStep>this.tempoFftSize&&(this.tempoStep=this.tempoFftSize,l.setValue(Math.log2(this.tempoFftSize))),this.reset()}});return e.replaceChildren(i,t("FFT Size",s.view,"Determines the amount of audio to analyze at every block. Higher values result in more accurate frequencies, while lower values result in more accurate timings. Defaults to 1024."),t("Window Step",n.view,"Determines the number of blocks per second. Lower values result in more time-accurate spectrograms, but may take more time and mess up tempo analysis. Defaults to 512 and must be lower than FFT Size."),a,t("FFT Size",o.view,"Determines the amount of the onset graph to analyze at every block. Higher values result in more accurate tempos, while lower values result in more accurate timings. Defaults to 4096."),t("Window Step",l.view,"Determines the number of blocks per second. Lower values result in more time-accurate tempograms, but may take more time. Defaults to 2 and must be lower than FFT Size.")),e}createTempoView(){const e=document.createElement("div");e.style.display="flex",e.style.position="relative",e.style.gap="10px";const t=document.createElement("div");t.style.flex="1";const i=document.createElement("div");i.classList.add("sync-table-label"),i.innerText="Offsets",this.offsetTableLabel=i;const s=document.createElement("table");s.classList.add("sync-table");const n=document.createElement("tr"),a=document.createElement("th");a.innerText="Offset";const o=document.createElement("th");o.innerText="Confidence",n.replaceChildren(a,o),s.appendChild(n),t.replaceChildren(i,s);const l=document.createElement("div");l.style.flex="1";const c=document.createElement("div");c.classList.add("sync-table-label"),c.innerText="Current Tempos";const d=document.createElement("table");d.classList.add("sync-table");const h=document.createElement("tr"),u=document.createElement("th");u.innerText="BPM";const p=document.createElement("th");p.innerText="Confidence",h.replaceChildren(u,p),d.appendChild(h);for(let f=0;f<5;f++){const m=document.createElement("tr"),g=document.createElement("td");g.innerText="-";const y=document.createElement("td");y.innerText="-",m.replaceChildren(g,y),s.appendChild(m),this.offsetRows.push(m);const w=m.cloneNode(!0);d.appendChild(w),this.bpmRows.push(w)}return l.replaceChildren(c,d),e.replaceChildren(t,l),e}createOnsetsView(){const e=document.createElement("div");e.style.display="flex",e.style.flexDirection="column",e.style.gap="10px",e.style.justifyContent="center",e.style.alignItems="center",e.style.position="relative";const t=document.createElement("div");t.style.display="flex",t.style.justifyContent="space-between",t.style.alignItems="center",t.style.width="100%",Pt(t,{content:"Adjust the threshold for a block to be considered an onset (red line)."});const i=document.createElement("div");i.innerText="Onset Threshold";const s=ds.create({min:0,max:1,step:.01,value:.3,onChange:c=>{this.threshold=c}}),n=document.createElement("div");n.style.color="#888888",n.style.fontStyle="italic",n.style.fontSize="11px",n.style.marginBottom="15px",n.style.marginTop="-6px",n.innerText="Found 0 onsets",this.onsetResults=n,t.replaceChildren(i,s.view);const a=document.createElement("div");a.style.display="flex",a.style.justifyContent="space-between",a.style.alignItems="center",a.style.width="100%";const o=document.createElement("button");o.innerText="Place onsets as notes",o.onclick=()=>this.placeOnsets();const l=document.createElement("button");return l.innerText="Place onsets as notes in selection",l.disabled=!0,l.onclick=()=>this.placeOnsets(!0),this.placeNotesSelectionButton=l,a.replaceChildren(o,l),e.replaceChildren(t,n,a),e}async reset(){this._threshold=.3,this.doAnalysis=!1,this.toggleButton.disabled=!1,this.toggleButton.style.background="",this.toggleButton.innerText="Start analyzing",this.app.chartManager.chartAudio.onLoad(this.onAudioLoad),await this.getMonoAudioData(),this.sampleRate=this.app.chartManager.chartAudio.getSampleRate(),this.spectroHeights=new Array(this.fftSize).fill(0).map((t,i)=>{const s=i/(this.fftSize/2)*this.sampleRate/2,n=(i+1)/(this.fftSize/2)*this.sampleRate/2,a=qe-Be(Math.log(s/20)/Math.log(this.sampleRate/40)*qe,0,qe),o=qe-Be(Math.log(n/20)/Math.log(this.sampleRate/40)*qe,0,qe);return{y:o,height:a-o}}),this.spectroWeights=new Array(this.fftSize).fill(0).map((t,i)=>{const s=i/(this.fftSize/2)*this.sampleRate/2,n=Mh.findIndex(l=>l.frequency>s);if(n<1)return 0;const a=Mh[n-1],o=Mh[n];return Ht(a.weight,o.weight,Nt(Math.log(1+a.frequency),Math.log(1+o.frequency),Math.log(1+s)))});const e=Math.max(1,Math.ceil(this.audioLength/this.windowStep));this.spectrogramCanvases=[];for(let t=0;t{t.firstChild.innerText="-",t.lastChild.innerText="-"}),this.bpmRows.forEach(t=>{t.firstChild.innerText="-",t.lastChild.innerText="-"})}hasData(){return this.numRenderedBlocks>0}windowLoop(e){const t=e.getContext("2d");t.canvas.width=ii,t.canvas.height=qe*2,t.imageSmoothingEnabled=!1;const i=()=>{if(this.placeNotesSelectionButton.disabled=this.app.chartManager.startRegion===void 0||this.app.chartManager.endRegion===void 0||this.app.chartManager.startRegion==this.app.chartManager.endRegion,this.covers[0].classList.toggle("active",this.hasData()),this.covers[1].classList.toggle("active",!this.hasData()),this.covers[2].classList.toggle("active",!this.hasData()),!this.app.chartManager.chartAudio)return;const s=Math.ceil(this.audioLength/this.windowStep);if(this.monoAudioData!==void 0&&this.doAnalysis){const h=performance.now();for(;performance.now()-h=s){this.tempogram.length==0&&(this.toggleButton.disabled=!0,this.calcTempogram());break}this.spectrogram[this.lowestFinishedBlock]===void 0&&(this.renderBlock(this.lowestFinishedBlock),this.calcDifference(this.lowestFinishedBlock),this.calcIsolatedNovelty(this.lowestFinishedBlock),this.numRenderedBlocks++),this.lowestFinishedBlock++}this.lowestFinishedBlockw.centeru.center-Os);y!==void 0&&(p+=y.groups[0].value,f+=y.avg,m++)}p/=m,f/=m,h.push({bpm:f,weight:u.groups[0].value,smoothedWeight:p})}h.sort((u,p)=>p.smoothedWeight-u.smoothedWeight);for(const u of h)u.weight<.01||(t.font=`${18+u.weight*300}px Assistant`,t.globalAlpha=Math.min(1,u.weight*100),t.fillText(ae(u.bpm,0)+"",200,Ht(qe*2,qe*1.5,Nt(Dn,On,u.bpm))));if(this.lastSecond!=this.app.chartManager.getTime()){this.lastSecond=this.app.chartManager.getTime();const u=h.slice(0,5).reduce((p,f)=>p+f.smoothedWeight,0);for(let p=0;p<5;p++){const f=this.bpmRows[p],m=h[p]?.bpm,g=h[p]?.weight;f.firstChild.innerText=m===void 0?"-":Math.round(m).toString(),f.lastChild.innerText=g===void 0?"-":Math.round(g/u*100)+"%"}}}t.globalAlpha=1,t.font="22px Assistant",t.textAlign="left",t.textBaseline="top",t.fillText("Spectrogram",10,10),t.fillText("Onsets",10,qe+10),t.fillText("Tempogram",10,qe*1.5+10),e.closest("#windows")&&requestAnimationFrame(i)};return i}renderBlock(e){if(!this.monoAudioData)return;const t=new Float32Array(this.fftSize);t.set(this.monoAudioData.subarray(Math.max(0,e*this.windowStep-this.fftSize/2),e*this.windowStep+this.fftSize/2),-Math.min(0,e*this.windowStep-this.fftSize/2));for(let s=0;s{const a=this.spectroHeights[n],o=Be(s*2e3,0,255);i.globalAlpha=o/255,i.fillRect(e%qt,a.y,1,a.height)}),i.globalAlpha=1}storeDifferenceResponse(e,t){this.spectrogramDifference[e]=t;const i=t.reduce((s,n)=>s+n,0);this.noveltyCurve[e]=i}calcIsolatedNovelty(e){for(let t=e-Sh;t<=e;t++){if(t<0)continue;let i=0,s=0;for(let n=t-Sh;n<=t+Sh;n++)this.noveltyCurve[n]!==void 0&&(i+=this.noveltyCurve[n],s++);i/=s,this.storeIsolatedNovelty(t,Math.max(0,this.noveltyCurve[t]-i))}}storeIsolatedNovelty(e,t){this.noveltyCurveIsolated[e]=Math.log(1+t),Math.log(1+t)>this._threshold&&Math.log(1+t)>(this.noveltyCurveIsolated[e-1]??0)?(this.peaks[e-1]&&(this.peaks[e-1]=!1),this.peaks[e]=!0,this.onsetResults.innerText=`Found ${this.peaks.filter(n=>n).length} onsets`):this.peaks[e]=!1;const i=this.spectrogramCanvases[Math.floor(e/qt)].getContext("2d"),s=Math.min(1,Math.log(1+t))*qe*.5;i.fillStyle="rgb(11, 14, 26)",i.fillRect(e%qt,qe,1,qe*.5),i.fillStyle="rgba(0, 100, 150, 0.5)",i.fillRect(e%qt,qe*1.5-s,1,s)}async getMonoAudioData(){const e=this.app.chartManager.chartAudio;if(!e)return;const t=e.getBuffer(),i=new OfflineAudioContext(t.numberOfChannels,t.length,t.sampleRate),s=i.createBufferSource();s.buffer=t;const n=i.createChannelMerger(t.numberOfChannels);s.connect(n),n.connect(i.destination),s.start(),await i.startRendering().then(a=>{this.monoAudioData=a.getChannelData(0),this.audioLength=this.monoAudioData.length}).catch(()=>{Se.createFormatted("Failed to load audio: audio rendering failed","error")})}get threshold(){return this._threshold}set threshold(e){this._threshold=e,this.peaks=this.noveltyCurveIsolated.map((t,i)=>t>this._threshold&&(this.noveltyCurveIsolated[i-1]??0)t).length} onsets`}calculateOffset(){const e=new Map;let t=0,i=0,s=0;for(let c=0;cu.groups[0].value>=IS);if(h.length!=0&&(i=c,h.forEach(u=>{let p=0,f=0;for(let g=c-uo;g<=c+uo;g++){if(this.tempogramGroups[g]===void 0)continue;const y=this.tempogramGroups[g].find(w=>w.centeru.center-Os);y!==void 0&&(f+=y.avg,p++)}const m=Math.round(f/p);e.has(m)||e.set(m,0),e.set(m,e.get(m)+1),e.get(m)>t&&(t=e.get(m),s=m)}),t>50))break}if(s==0)return;const n=60/s*(this.sampleRate/this.windowStep),a=new Array(Ch).fill(0).map((c,d)=>{const h=d%n/n;let u=0,p=0;for(let f=1;f<=4;f++)p+=Math.max(1-Math.abs(Math.round(h*f)/f-h)*12,0)*1/f,u+=1/f;return p/u}),o=[];for(let c=i;ca[u]*h).reduce((h,u)=>h+u,0);o.push({block:c,offset:-(c*this.windowStep/this.sampleRate)%(60/s),response:d,curve:this.noveltyCurveIsolated.slice(c,c+Ch).map((h,u)=>a[u]*h)})}o.sort((c,d)=>d.response-c.response);const l=o.slice(0,5).reduce((c,d)=>c+d.response,0);this.offsetTableLabel.innerText=`Offsets (first BPM: ${s})`;for(let c=0;c{if(!i)return null;let n=this.app.chartManager.loadedChart.getBeatFromSeconds(s*this.windowStep/this.sampleRate);return n=Math.round(n*48)/48,n<0?null:{type:"Tap",beat:n,col:0}}).filter(i=>i!==null).filter(i=>e?i.beat>this.app.chartManager.startRegion&&i.beatu.beat==n.beat):-1,o=i.getDivisionLength(e);const l=i.getDivisionOfMeasure(e)%1*o;let c=Math.max(0,e-l);c=s[a+1]?.beat&&(a++,n=s[a],c=n.beat,o=i.getDivisionLength(c),d=0,h=n.upper)}calcTempogram(){let e=0;for(let a=0;ae&&(e=this.noveltyCurveIsolated[a]);const t=new Float32Array(this.noveltyCurveIsolated.length);for(let a=0;a{const o=new Float32Array(this.tempoFftSize);o.set(t.subarray(Math.max(0,a*this.tempoStep-this.tempoFftSize/2),a*this.tempoStep+this.tempoFftSize/2),-Math.min(0,a*this.tempoStep-this.tempoFftSize/2));for(let c=0;cn(++a),1)):(this.calculateOffset(),this.spectrogram=[],this.noveltyCurve=[],this.tempogram=[],this.monoAudioData=void 0,this.toggleButton.innerText="Finished analyzing",this.resetButton.disabled=!1,this.doAnalysis=!1,this.toggleButton.style.background="var(--accent-color)")};n(0)}storeTempogram(e,t){const i=new Map,s=[];t.forEach((a,o)=>{let l=this.sampleRate*60/(this.windowStep*this.tempoFftSize)*o;if(!(l>On*4||lOn&&l!=1/0;)l/=2;for(;l({bpm:a,value:o})).sort((a,o)=>o.value-a.value).filter(a=>a.value!=0);for(let a=0;ac.centero.bpm-Os);if(l===void 0){s.push({center:o.bpm,groups:[o]});continue}l.groups.push(o)}this.tempogramGroups[e]=s.map(a=>({...a,avg:a.groups.reduce((o,l)=>o+l.bpm*l.value,0)/a.groups.reduce((o,l)=>o+l.value,0)}));const n=this.spectrogramCanvases[Math.floor(e*this.tempoStep/qt)].getContext("2d");n.fillStyle="rgba(0, 166, 255, 1)",this.tempogram[e].forEach(a=>{const o=Be(a.value*8e3,0,255);n.globalAlpha=o/255,n.fillRect(e*this.tempoStep%qt,Ht(qe*2,qe*1.5,Nt(Dn,On,a.bpm)),1*this.tempoStep,qe*.5/(On-Dn))})}}const pf=["accent-color","editor-bg","widget-bg","editable-overlay-hover","editable-overlay-active","text-color","text-color-secondary","text-color-detail","text-color-disabled","primary-bg","primary-border","primary-bg-active","primary-bg-hover","secondary-bg","secondary-border","secondary-bg-active","secondary-bg-hover","tooltip-bg","input-bg","input-bg-active","input-bg-hover","input-border","navbar-bg","navbar-bg-inactive","window-bg","window-border"],PS=["primary-bg","secondary-bg","text-color","accent-color","widget-bg","editor-bg","editable-overlay-active","input-bg","window-bg"],BS=[{name:"primary-bg",ids:[{id:"primary-bg",label:"base"},{id:"primary-bg-active",label:"active"},{id:"primary-bg-hover",label:"hover"},{id:"primary-border",label:"border"}]},{name:"secondary-bg",ids:[{id:"secondary-bg",label:"base"},{id:"secondary-bg-active",label:"active"},{id:"secondary-bg-hover",label:"hover"},{id:"secondary-border",label:"border"}]},{name:"text-color",ids:[{id:"text-color",label:"primary"},{id:"text-color-secondary",label:"secondary"},{id:"text-color-detail",label:"detail"},{id:"text-color-disabled",label:"disabled"}]},{name:"other",ids:[{id:"accent-color",label:"accent-color"},{id:"widget-bg",label:"widget-bg"},{id:"tooltip-bg",label:"tooltip-bg"},{id:"editor-bg",label:"editor-bg"}]},{name:"editable-overlay",ids:[{id:"editable-overlay-hover",label:"hover"},{id:"editable-overlay-active",label:"active"}]},{name:"input",ids:[{id:"input-bg",label:"background"},{id:"input-bg-active",label:"active"},{id:"input-bg-hover",label:"hover"},{id:"input-border",label:"border"}]},{name:"window",ids:[{id:"window-bg",label:"background"},{id:"window-border",label:"border"}]},{name:"window-navbar",ids:[{id:"navbar-bg",label:"active"},{id:"navbar-bg-inactive",label:"inactive"}]}],ff={"accent-color":"Color used for focus input rings, confirm buttons","text-color":"Base text color","text-color-secondary":"Secondary text color, used for text in recent files, menubar keybinds","text-color-detail":"Detail text color, used for text in timing event boxes","text-color-disabled":"Used for texts relating to empty/disabled things (ex. no files in directory picker)","primary-bg":"Primary background, used for menubar, context/dropdown menus","primary-border":"","primary-bg-active":"","primary-bg-hover":"","navbar-bg":"Window navbar background","navbar-bg-inactive":"","window-bg":"Window background","window-border":"","secondary-bg":"Secondary background, used for subareas in menus","secondary-border":"","secondary-bg-active":"","secondary-bg-hover":"","editable-overlay-hover":"Overlay on top of editable items (status widget buttons, playback option toggles, textareas)","editable-overlay-active":"","input-bg":"Background color for input","input-bg-active":"","input-bg-hover":"","input-border":"","widget-bg":"Widget background","tooltip-bg":"Color of these tooltips","editor-bg":"Editor background"},kh={"primary-bg":{"primary-border":function(r){return this.lighten(r,10).setAlpha(187/255)},"primary-bg-active":function(r){return this.lighten(r,10)},"primary-bg-hover":function(r){return this.lighten(r,30)},"widget-bg":function(r){return this.add(r,-50).setAlpha(136/255)},"window-bg":function(r){return this.lighten(r,-10)},"text-color":function(r){return this.average(r)>.5?new B("#000"):new B("#fff")},"input-bg":function(r){return this.average(r)<.5?new B("#000"):new B("#fff")},"input-border":function(r){return this.average(r)>.5?this.add(r,-30).setAlpha(119/255):this.add(r,30).setAlpha(119/255)},"tooltip-bg":function(r){return this.lighten(r,-10).setAlpha(238/255)},"secondary-bg":function(r){return this.lighten(r,-20)},"editor-bg":function(r){return this.lighten(r,-60)}},"window-bg":{"navbar-bg":function(r){return new B(r)}},"secondary-bg":{"secondary-border":function(r){return this.lighten(r,10).setAlpha(187/255)},"secondary-bg-active":function(r){return this.lighten(r,50)},"secondary-bg-hover":function(r){return this.lighten(r,30)}},"navbar-bg":{"navbar-bg-inactive":function(r){return this.lighten(r,-33)}},"text-color":{"text-color-secondary":function(r){return new B(r).setAlpha(119/255)},"text-color-detail":function(r){return new B(r).setAlpha(68/255)},"text-color-disabled":function(r){return new B(r).setAlpha(136/255)}},"input-bg":{"input-border":function(r){return this.lighten(r,10).setAlpha(187/255)},"input-bg-active":function(r){return this.lighten(r,50)},"input-bg-hover":function(r){return this.lighten(r,30)}}},Ys={default:{"accent-color":new B("rgb(23, 131, 208)"),"text-color":new B("#fff"),"text-color-secondary":new B("#888"),"text-color-detail":new B("#757a89"),"text-color-disabled":new B("#888"),"primary-bg":new B("#555"),"primary-border":new B("#444"),"primary-bg-active":new B("#575757"),"primary-bg-hover":new B("#666"),"navbar-bg":new B("#3d3d3d"),"navbar-bg-inactive":new B("#626262"),"window-bg":new B("#3d3d3d"),"window-border":new B("#00000000"),"secondary-bg":new B("#373737"),"secondary-border":new B("#333"),"secondary-bg-active":new B("#555"),"secondary-bg-hover":new B("#454545"),"editable-overlay-hover":new B("rgb(255, 255, 255, 0.1)"),"editable-overlay-active":new B("rgb(255, 255, 255, 0.2)"),"input-bg":new B("rgba(35, 35, 35, 0.309)"),"input-bg-active":new B("rgba(50, 50, 50, 0.309)"),"input-bg-hover":new B("rgba(79, 79, 79, 0.309)"),"input-border":new B("rgba(0, 0, 0, 0.3)"),"widget-bg":new B("rgba(0, 0, 0, 0.5)"),"tooltip-bg":new B("rgba(20, 20, 20, 0.95)"),"editor-bg":new B("#18191c")},dusk:{"accent-color":new B("#b34e97ff"),"text-color":new B("#ffffffff"),"text-color-secondary":new B("#ffffff77"),"text-color-detail":new B("#ffffff44"),"text-color-disabled":new B("#ffffff88"),"primary-bg":new B("#1b0131ff"),"primary-border":new B("#1e0136bb"),"primary-bg-active":new B("#2f0057ff"),"primary-bg-hover":new B("#230140ff"),"navbar-bg":new B("#18012cff"),"navbar-bg-inactive":new B("#10011dff"),"window-bg":new B("#18012cff"),"window-border":new B("#00000000"),"secondary-bg":new B("#160127ff"),"secondary-border":new B("#18012bbb"),"secondary-bg-active":new B("#310a52ff"),"secondary-bg-hover":new B("#25033fff"),"editable-overlay-hover":new B("#e79dff1a"),"editable-overlay-active":new B("#e79dff33"),"input-bg":new B("#000000ff"),"input-bg-active":new B("#000000ff"),"input-bg-hover":new B("#000000ff"),"input-border":new B("#391f4f77"),"widget-bg":new B("#00000088"),"tooltip-bg":new B("#18012cee"),"editor-bg":new B("#0b0014ff")},nord:{"accent-color":new B("#1783d0ff"),"text-color":new B("#d9dee8ff"),"text-color-secondary":new B("#d9dee878"),"text-color-detail":new B("#d9dee845"),"text-color-disabled":new B("#d9dee887"),"primary-bg":new B("#2e3440ff"),"primary-border":new B("#323946ba"),"primary-bg-active":new B("#636d83ff"),"primary-bg-hover":new B("#485061ff"),"navbar-bg":new B("#292e39ff"),"navbar-bg-inactive":new B("#2f333cff"),"window-bg":new B("#292e39ff"),"window-border":new B("#00000000"),"secondary-bg":new B("#242933ff"),"secondary-border":new B("#272d38ba"),"secondary-bg-active":new B("#444d5fff"),"secondary-bg-hover":new B("#3f4755ff"),"editable-overlay-hover":new B("#ffffff1a"),"editable-overlay-active":new B("#ffffff33"),"input-bg":new B("#1212124f"),"input-bg-active":new B("#141414ff"),"input-bg-hover":new B("#171717ff"),"input-border":new B("#121212ff"),"widget-bg":new B("#00020e87"),"tooltip-bg":new B("#292e39ed"),"editor-bg":new B("#18191cff")},light:{"accent-color":new B("#ff594cff"),"text-color":new B("#000000ff"),"text-color-secondary":new B("#00000078"),"text-color-detail":new B("#00000045"),"text-color-disabled":new B("#00000087"),"primary-bg":new B("#ffffffff"),"primary-border":new B("#b5b5b5ff"),"primary-bg-active":new B("#ebebebff"),"primary-bg-hover":new B("#ffd4d1ff"),"navbar-bg":new B("#edededff"),"navbar-bg-inactive":new B("#d1d1d1ff"),"window-bg":new B("#edededff"),"window-border":new B("#00000000"),"secondary-bg":new B("#d9d9d9ff"),"secondary-border":new B("#c7c7c7ff"),"secondary-bg-active":new B("#f0f0f0ff"),"secondary-bg-hover":new B("#e3e3e3ff"),"editable-overlay-hover":new B("#ff594c3d"),"editable-overlay-active":new B("#ff594c73"),"input-bg":new B("#ebebebff"),"input-bg-active":new B("#e0e0e0ff"),"input-bg-hover":new B("#ffffffff"),"input-border":new B("#9e9e9eff"),"widget-bg":new B("#f7f7f7e5"),"tooltip-bg":new B("#ffffffff"),"editor-bg":new B("#cfcfcfff")},rust:{"accent-color":new B("#b37100ff"),"text-color":new B("#ffd7bdf2"),"text-color-secondary":new B("#ffd7bd78"),"text-color-detail":new B("#ffd7bd45"),"text-color-disabled":new B("#ffd7bd87"),"primary-bg":new B("#3c2e2aff"),"primary-border":new B("#42332eff"),"primary-bg-active":new B("#68524bff"),"primary-bg-hover":new B("#4e3c37ff"),"navbar-bg":new B("#362926ff"),"navbar-bg-inactive":new B("#241b19ff"),"window-bg":new B("#58413cff"),"window-border":new B("#00000000"),"secondary-bg":new B("#40302ba1"),"secondary-border":new B("#46352fff"),"secondary-bg-active":new B("#614a42ff"),"secondary-bg-hover":new B("#533e38ff"),"editable-overlay-hover":new B("#fff8e01a"),"editable-overlay-active":new B("#fff8e033"),"input-bg":new B("#231515ff"),"input-bg-active":new B("#271717ff"),"input-bg-hover":new B("#2e1b1bff"),"input-border":new B("#4b413fff"),"widget-bg":new B("#311e1cff"),"tooltip-bg":new B("#362926ff"),"editor-bg":new B("#181211ff")},tron:{"accent-color":new B("#00ccffff"),"text-color":new B("#ffffffff"),"text-color-secondary":new B("#ffffffe4"),"text-color-detail":new B("#ffffff5b"),"text-color-disabled":new B("#ffffff88"),"primary-bg":new B("#000000ff"),"primary-border":new B("#ff7b00c9"),"primary-bg-active":new B("#00e1ff98"),"primary-bg-hover":new B("#ff751a5a"),"navbar-bg":new B("#000000ff"),"navbar-bg-inactive":new B("#000000ff"),"window-bg":new B("#000000ff"),"window-border":new B("#ff880085"),"secondary-bg":new B("#121212ff"),"secondary-border":new B("#ff8800aa"),"secondary-bg-active":new B("#00e1ffa3"),"secondary-bg-hover":new B("#ff7e145a"),"editable-overlay-hover":new B("#ffffff1a"),"editable-overlay-active":new B("#ffffff33"),"input-bg":new B("#000000ff"),"input-bg-active":new B("#000000ff"),"input-bg-hover":new B("#000000ff"),"input-border":new B("#1e1e1eff"),"widget-bg":new B("#000000ad"),"tooltip-bg":new B("#000000ff"),"editor-bg":new B("#000000ff")},gilded:{"accent-color":new B("#ffc014ff"),"text-color":new B("#e6e6e6ff"),"text-color-secondary":new B("#ffffff6b"),"text-color-detail":new B("#e6e6e645"),"text-color-disabled":new B("#e6e6e687"),"primary-bg":new B("#232325ff"),"primary-border":new B("#272729ff"),"primary-bg-active":new B("#ffc0145b"),"primary-bg-hover":new B("#ffc01421"),"navbar-bg":new B("#202021ff"),"navbar-bg-inactive":new B("#151516ff"),"window-bg":new B("#202021ff"),"window-border":new B("#00000000"),"secondary-bg":new B("#1c1c1eff"),"secondary-border":new B("#1f1f21ff"),"secondary-bg-active":new B("#1f1f21ff"),"secondary-bg-hover":new B("#242427ff"),"editable-overlay-hover":new B("#ffffff1a"),"editable-overlay-active":new B("#ffffff33"),"input-bg":new B("#0d0d0dff"),"input-bg-active":new B("#0e0e0eff"),"input-bg-hover":new B("#111111ff"),"input-border":new B("#0e0e0eff"),"widget-bg":new B("#171717db"),"tooltip-bg":new B("#202021ff"),"editor-bg":new B("#0e0e0fff")}};function Ld(r,e,t){return(r<<16)+(e<<8)+t}function Dd(r,e){let t=r>>16,i=r>>8&255,s=r&255;return t=Be(Math.round(t*e),0,255),i=Be(Math.round(i*e),0,255),s=Be(Math.round(s*e),0,255),Ld(t,i,s)}function RS(r,e){let t=r>>16,i=r>>8&255,s=r&255;return t=Be(Math.round(t+e),0,255),i=Be(Math.round(i+e),0,255),s=Be(Math.round(s+e),0,255),Ld(t,i,s)}function Vc(r,e,t){const[i,s,n]=r.match(/\w\w/g).map(u=>parseInt(u,16)),[a,o,l]=e.match(/\w\w/g).map(u=>parseInt(u,16)),c=Math.round(i+(a-i)*t).toString(16).padStart(2,"0"),d=Math.round(s+(o-s)*t).toString(16).padStart(2,"0"),h=Math.round(n+(l-n)*t).toString(16).padStart(2,"0");return"#"+c+d+h}function LS(r,e,t){const i=Ht(r.red,e.red,t),s=Ht(r.green,e.green,t),n=Ht(r.blue,e.blue,t),a=Ht(r.alpha,e.alpha,t);return new B([i,s,n,a])}function tl(r){return new B(document.body.computedStyleMap().get(r)?.toString()??"rgba(0, 0, 0, 1)")}const sa=new Map;K.on("themeChanged",()=>{for(const[r,e]of sa.entries()){const t=tl(r);e.forEach(i=>{i.destroyed||(i.tint=t.toNumber(),i.alpha=t.alpha)}),sa.set(r,e.filter(i=>!i.destroyed))}});function Qe(r,e){sa.has(e)||sa.set(e,[]),sa.get(e).push(r);const t=tl(e);r.tint=t.toNumber(),r.alpha=t.alpha}function Ih(r){const{r:e,g:t,b:i,a:s}=r.toRgba(),n=Math.max(e,t,i),a=Math.min(e,t,i);let o=0,l=0;const c=(n+a)/2;if(n==a)o=l=0;else{const d=n-a;switch(l=c>.5?d/(2-n-a):d/(n+a),n){case e:o=(t-i)/d+(t[t,this.convertThemeToString(i)]));localStorage.setItem("themes",JSON.stringify(e))}static validateTheme(e){const t={...Ys.default};if(typeof e!="object")return t;for(const i of pf)if(e[i]!==void 0)try{t[i]=new B(e[i])}catch{console.warn(`Invalid color ${e[i]} for ${i}`)}return t}static getThemes(){return{...this._themes,...this._userThemes}}static getBuiltinThemes(){return this._themes}static getUserThemes(){return this._userThemes}static loadTheme(e){this._initialized||this.initialize();let t=this.getThemes()[e];t||(Se.createFormatted("Error loading theme: Invalid theme id","error"),t=Ys.default),_.general.theme=e,this._applyTheme(t)}static _applyTheme(e){const t=`body{${pf.map(i=>`--${i}: ${(e[i]??Ys.default[i]).toHexa()};`).join("")}}`;this.style.innerHTML=t,this.currentTheme={...e},K.emit("themeChanged")}static loadThemeFromColors(e){this._applyTheme(this.validateTheme(e))}static getCurrentTheme(){return this.currentTheme}static convertThemeToString(e){return Object.fromEntries(Object.entries(e).map(([t,i])=>[t,i.toHexa()]))}static exportCurrentTheme(e){return e={code:!1,spaces:!1,...e},e.code?JSON.stringify(Object.fromEntries(Object.entries(this.currentTheme).map(([t,i])=>[t,`^new Color('${i.toHexa()}')^`])),null,e.spaces?2:0).replaceAll('"^',"").replaceAll('^"',""):JSON.stringify(this.convertThemeToString(this.currentTheme),null,e.spaces?2:0)}static createUserTheme(e,t){this.getThemes()[e]===void 0&&(t?this._userThemes[e]={...t}:this._userThemes[e]={...Ys.default},this._saveUserThemes())}static setUserTheme(e,t){this._userThemes[e]!==void 0&&(this._userThemes[e]={...t},this._saveUserThemes())}static deleteUserTheme(e){this._userThemes[e]!==void 0&&(delete this._userThemes[e],this.loadTheme("default"),this._saveUserThemes())}static renameUserTheme(e,t){this._userThemes[e]!==void 0&&this.getThemes()[t]===void 0&&(this._userThemes[t]=this._userThemes[e],delete this._userThemes[e],this._saveUserThemes())}static parseThemeText(e){let t;try{t=JSON.parse(e)}catch{return null}return this.validateTheme(t)}}class vy extends HTMLDivElement{colorElement;set color(e){this.colorElement.style.background=e.toHexa()}}function Ph(){const r=document.createElement("div");r.classList.add("color-picker-transparent"),Object.setPrototypeOf(r,vy.prototype);const e=document.createElement("div");return e.style.width="100%",e.style.height="100%",r.colorElement=e,r.appendChild(e),r}class Js extends HTMLDivElement{inputs;opts;getValue;onupdate;static create(e){const t=document.createElement("div");Object.setPrototypeOf(t,Js.prototype),t.opts=e.inputs,t.inputs={},t.getValue=e.getValue.bind(t),t.onupdate=e.onupdate,t.classList.add("color-format");const i=document.createElement("div");i.classList.add("color-format-label"),i.innerText=e.label;const s=document.createElement("div");return s.classList.add("color-format-inputs"),Object.entries(e.inputs).forEach(([n,a])=>{const o=document.createElement("input");o.type="text";let l="";o.onfocus=()=>{l=o.value},o.onkeydown=c=>{c.key=="Enter"&&(o.blur(),c.preventDefault()),c.key=="Escape"&&(o.value=l,o.blur(),c.stopImmediatePropagation())},o.oninput=()=>{a.isValid(o.value)!==null&&t.onupdate?.(t.getValue())},o.onblur=()=>{const c=a.isValid(o.value);c===null?o.value=l:o.value=c,t.onupdate?.(t.getValue())},t.inputs[n]=o,s.appendChild(o)}),t.replaceChildren(i,s),t}setValue(e){Object.entries(this.inputs).forEach(([t,i])=>{document.activeElement!=i&&(i.value=this.opts[t].setValue(e))})}}const ri=(r,e,t)=>i=>{t!==void 0&&i.endsWith(t)&&(i=i.slice(0,i.length-t.length));let s;try{s=parseInt(i)}catch{return null}return Be(s,r,e)+""},si=(r,e,t,i)=>{let s;i!==void 0&&r.endsWith(i)&&(r=r.slice(0,r.length-i.length));try{s=parseInt(r)}catch{return e}return Be(s,e,t)};class Al extends vy{_value;_hue=0;_sat=0;_val=0;_alp=1;popup;matrix;matrixDot;matrixDragging=!1;hueDragging=!1;hueThumb;alphaDragging=!1;alphaBg;alphaThumb;previewNew;formats=[];onColorChange;static create(e){const t=Ph();return Object.setPrototypeOf(t,Al.prototype),t.value=pa(e.value),t.classList.add("color-picker"),t.formats=[],e.height!==void 0&&(t.style.height=e.height+"px"),e.width!==void 0&&(t.style.width=e.width+"px"),t.addEventListener("click",()=>{t.createPopup()}),t}updatePreview(){this.color=this._value}get value(){return this._value}set value(e){this._value=e;const t=po(this._value);this._hue=t[0],this._sat=t[1],this._val=t[2],this._alp=t[3],this.updatePreview(),this.updatePopup()}get hue(){return this._hue}set hue(e){this._hue=e,this.updateColor()}get sat(){return this._sat}set sat(e){this._sat=e,this.updateColor()}get val(){return this._val}set val(e){this._val=e,this.updateColor()}get alpha(){return this._alp}set alpha(e){this._alp=e,this.updateColor()}updateColor(){this._value=new B({h:this._hue*360,s:this._sat*100,v:this._val*100,a:this._alp}),this.updatePreview(),this.updatePopup()}createPopup(){if(this.popup){this.closePopup();return}const e=document.createElement("div");e.classList.add("color-picker-popup");const t=document.createElement("div");t.classList.add("color-picker-area");const[i,s]=this.createMatrix();this.matrix=i,this.matrixDot=s,s.style.background="#f00";const[n,a]=this.createSlider({ondrag:()=>this.hueDragging=!0,offdrag:()=>this.hueDragging=!1,change:E=>{this.hue=E,this.onColorChange?.(this._value)}});this.hueThumb=a,n.style.background="linear-gradient(to right, red 0%, #ff0 17%, lime 33%, cyan 50%, blue 66%, #f0f 83%, red 100%)";const[o,l]=this.createSlider({ondrag:()=>this.alphaDragging=!0,offdrag:()=>this.alphaDragging=!1,change:E=>{this.alpha=E,this.onColorChange?.(this._value)}});this.alphaThumb=l,o.classList.add("color-picker-transparent");const c=document.createElement("div");c.classList.add("color-slider"),o.appendChild(c),this.alphaBg=c,t.replaceChildren(i,n,o);const d=document.createElement("div");d.classList.add("color-picker-area");const h=Js.create({label:"HEX",inputs:{hex:{setValue:E=>E.alpha!=1?E.toHexa():E.toHex(),isValid:E=>{const C=/#?([0-9a-fA-F]+)/.exec(E);return C&&[3,4,6,8].includes(C[1].length)?(E[0]!="#"&&(E="#"+E),E):null}}},getValue(){let E=this.inputs.hex.value;return E[0]!="#"&&(E="#"+E),new B(E)},onupdate:E=>{this.value=E,this.onColorChange?.(this._value)}});this.formats.push(h),d.appendChild(h);const u=Js.create({label:"RGBA",inputs:{r:{setValue:E=>Math.round(E.red*255).toString(),isValid:ri(0,255)},g:{setValue:E=>Math.round(E.green*255).toString(),isValid:ri(0,255)},b:{setValue:E=>Math.round(E.blue*255).toString(),isValid:ri(0,255)},a:{setValue:E=>Math.round(E.alpha*100)+"%",isValid:ri(0,100,"%")}},getValue(){return new B({r:si(this.inputs.r.value,0,255),g:si(this.inputs.g.value,0,255),b:si(this.inputs.b.value,0,255),a:si(this.inputs.a.value,0,100,"%")/100})},onupdate:E=>{this.value=E,this.onColorChange?.(this._value)}});this.formats.push(u),d.appendChild(u);const p=Js.create({label:"HSVA",inputs:{h:{setValue:E=>Math.round(po(E)[0]*360)+"º",isValid:ri(0,360,"º")},s:{setValue:E=>Math.round(po(E)[1]*100)+"%",isValid:ri(0,100,"%")},v:{setValue:E=>Math.round(po(E)[2]*100)+"%",isValid:ri(0,100,"%")},a:{setValue:E=>Math.round(E.alpha*100)+"%",isValid:ri(0,100,"%")}},getValue(){return new B({h:si(this.inputs.h.value,0,360,"º"),s:si(this.inputs.s.value,0,100,"%"),v:si(this.inputs.v.value,0,100,"%"),a:si(this.inputs.a.value,0,100,"%")/100})},onupdate:E=>{this.value=E,this.onColorChange?.(this._value)}});this.formats.push(p),d.appendChild(p);const f=Js.create({label:"HSLA",inputs:{h:{setValue:E=>Math.round(Ih(E)[0]*360)+"º",isValid:ri(0,360,"º")},s:{setValue:E=>Math.round(Ih(E)[1]*100)+"%",isValid:ri(0,100,"%")},l:{setValue:E=>Math.round(Ih(E)[2]*100)+"%",isValid:ri(0,100,"%")},a:{setValue:E=>Math.round(E.alpha*100)+"%",isValid:ri(0,100,"%")}},getValue(){return new B({h:si(this.inputs.h.value,0,360,"º"),s:si(this.inputs.s.value,0,100,"%"),l:si(this.inputs.l.value,0,100,"%"),a:si(this.inputs.a.value,0,100,"%")/100})},onupdate:E=>{this.value=E,this.onColorChange?.(this._value)}});this.formats.push(f),d.appendChild(f);const m=document.createElement("div");m.classList.add("color-picker-preview");const g=Ph(),y=Ph();y.color=this._value,g.color=this._value,m.replaceChildren(g,y),this.previewNew=g,d.appendChild(m),e.replaceChildren(t,d),this.popup=e,this.updatePopup();const w=this._value,b=E=>{E.key=="Escape"&&(E.stopImmediatePropagation(),window.removeEventListener("keydown",b),window.removeEventListener("mousedown",v),this.closePopup(),this.value=w,this.onColorChange?.(this._value))},v=E=>{e.contains(E.target)||(window.removeEventListener("keydown",b),window.removeEventListener("mousedown",v),this.closePopup())};window.addEventListener("keydown",b),window.addEventListener("mousedown",v),document.getElementById("popups").appendChild(e),setTimeout(()=>this.movePosition())}updatePopup(){if(!this.popup)return;this.matrix.style.backgroundColor=`hsl(${this._hue*360} 100% 50%)`,this.matrixDot.style.backgroundColor=this._value.toHex(),this.matrixDragging||(this.matrixDot.style.left=this._sat*200+"px",this.matrixDot.style.top=(1-this._val)*200+"px"),this.hueDragging||(this.hueThumb.style.left=this._hue*200+"px");const e=`rgba(${this._value.red*255}, ${this._value.green*255}, ${this._value.blue*255}`;this.alphaBg.style.background=`linear-gradient(to right, ${e}, 0 ), ${e}, 1))`,this.alphaDragging||(this.alphaThumb.style.left=this._alp*200+"px"),this.formats.forEach(t=>t.setValue(this._value)),this.previewNew.color=this._value}closePopup(){const e=this.popup;this.popup=void 0,e&&(e.classList.add("exiting"),setTimeout(()=>{e.remove()},500))}createMatrix(){const e=document.createElement("div");e.classList.add("color-matrix"),e.style.backgroundColor="#ff0000";const t=document.createElement("div");t.classList.add("color-matrix-x");const i=document.createElement("div");i.classList.add("color-matrix-y");const s=document.createElement("div");s.classList.add("color-matrix-dot"),e.appendChild(s),e.replaceChildren(t,i,s),e.onmousedown=o=>{window.addEventListener("mousemove",n),window.addEventListener("mouseup",a),n(o),this.matrixDragging=!0};const n=o=>{const l=e.getBoundingClientRect(),c=Be((o.clientX-l.left)/l.width,0,1),d=Be((o.clientY-l.top)/l.height,0,1);s.style.left=c*l.width+"px",s.style.top=d*l.height+"px",this._sat=c,this.val=1-d,this.onColorChange?.(this._value)},a=()=>{window.removeEventListener("mousemove",n),window.removeEventListener("mouseup",a),this.matrixDragging=!1};return[e,s]}createSlider(e){const t=document.createElement("div");t.classList.add("color-slider");const i=document.createElement("div");i.classList.add("color-slider-thumb"),t.appendChild(i),t.onmousedown=a=>{window.addEventListener("mousemove",s),window.addEventListener("mouseup",n),s(a),e.ondrag?.(),this.onColorChange?.(this._value)};const s=a=>{const o=t.getBoundingClientRect(),l=Be((a.clientX-o.left)/o.width,0,1);i.style.left=l*o.width+"px",e.change(l)},n=()=>{window.removeEventListener("mousemove",s),window.removeEventListener("mouseup",n),e.offdrag?.()};return[t,i]}movePosition(){const e=this.getBoundingClientRect(),t=e.left+e.width/2-this.popup.clientWidth/2,i=e.top+e.height+10,s=15,n=window.innerWidth-this.popup.clientWidth-15;this.popup.style.left=`${Be(t,s,n)}px`,this.popup.style.top=`${i}px`,i+this.popup.clientHeight>window.innerHeight-15&&(this.popup.style.transformOrigin="bottom center",this.popup.style.top=`${e.top-this.popup.clientHeight-10}px`)}isActive(){return this.popup!==void 0}}class Wc extends St{app;grid;actions={};constructor(e){super({title:"Themes",width:600,height:400,disableClose:!1,win_id:"theme-selection",blocking:!1}),this.app=e,this.initView(),this.loadGrid()}initView(){this.viewElement.replaceChildren();const e=document.createElement("div");e.classList.add("padding");const t=document.createElement("div");t.classList.add("pref-search");const i=document.createElement("input");i.classList.add("pref-search-bar"),i.type="text",i.placeholder="Search for a theme...",i.oninput=()=>{this.filterGrid(i.value)},t.appendChild(i);const s=document.createElement("div");s.classList.add("theme-grid"),this.grid=s;const n=this.createOptionTray();e.replaceChildren(t,s,n),this.viewElement.appendChild(e)}createOptionTray(){const e=document.createElement("div");e.classList.add("theme-tray");const t=document.createElement("button");t.appendChild(Ae.getIcon("PLUS",16)),t.appendChild(document.createTextNode("New")),t.onclick=()=>{const l=this.getNonConflictingName("new-theme");ft.createUserTheme(l),ft.loadTheme(l),this.loadGrid()},this.actions.add=t,e.appendChild(t);const i=document.createElement("button");i.appendChild(Ae.getIcon("COPY",16)),i.appendChild(document.createTextNode("Duplicate")),i.onclick=()=>{const l=this.getNonConflictingName(_.general.theme);ft.createUserTheme(l,ft.getCurrentTheme()),ft.loadTheme(l),this.loadGrid()},i.disabled=!0,this.actions.copy=i,e.appendChild(i);const s=document.createElement("button");s.classList.add("confirm"),s.appendChild(Ae.getIcon("EDIT",16)),s.appendChild(document.createTextNode("Edit")),s.onclick=()=>{this.closeWindow(),this.app.windowManager.openWindow(new fa(this.app))},s.disabled=!0,this.actions.edit=s,e.appendChild(s);const n=document.createElement("button");n.classList.add("delete"),n.appendChild(Ae.getIcon("TRASH",16)),n.appendChild(document.createTextNode("Delete")),n.onclick=()=>{this.app.windowManager.openWindow(new El(this.app,"Delete theme","Are you sure you want to delete this theme?",[{type:"default",label:"Cancel"},{type:"delete",label:"Delete",callback:()=>{ft.deleteUserTheme(_.general.theme),this.loadGrid()}}]))},n.disabled=!0,this.actions.del=n,e.appendChild(n);const a=document.createElement("button");a.appendChild(Ae.getIcon("UPLOAD",16)),a.appendChild(document.createTextNode("Import")),a.onclick=async()=>{(await Qg({_preferPolyfill:!1,excludeAcceptAllOption:!1,multiple:!0,accepts:[{extensions:["txt"]}]})).forEach(c=>{c.getFile().then(d=>d.text()).then(d=>{const h=ft.parseThemeText(d);let u=zi(c.name,".txt");if(!h){Se.createFormatted("Failed to load theme "+u,"error");return}u=this.getNonConflictingName(u),ft.createUserTheme(u,h),this.loadGrid()})})},this.actions.imp=a,e.appendChild(a);const o=document.createElement("button");return o.appendChild(Ae.getIcon("DOWNLOAD",16)),o.appendChild(document.createTextNode("Export")),o.onclick=()=>{const l=ft.exportCurrentTheme({spaces:!0}),c=new File([l],_.general.theme+".txt",{type:"text/plain"}),d=document.createElement("a"),h=URL.createObjectURL(c);d.href=h,d.download=c.name,document.body.appendChild(d),d.click(),document.body.removeChild(d),window.URL.revokeObjectURL(h)},this.actions.exp=o,o.disabled=!0,e.appendChild(o),e}loadGrid(){this.grid.replaceChildren();const e=ft.getThemes();if(e)for(const[t,i]of Object.entries(e)){let s=t;const n=Ys[t]!==void 0,a=document.createElement("div"),o=document.createElement("div");if(o.classList.add("inlineEdit"),n)o.style.fontWeight="bold";else{o.contentEditable="true";let c=t;o.onfocus=()=>{c=o.innerText},o.onkeydown=d=>{d.key=="Enter"&&(o.blur(),d.preventDefault()),d.key=="Escape"&&(o.innerText=c,o.blur(),d.stopImmediatePropagation())},o.onblur=()=>{if(o.innerText==c)return;const d=this.getNonConflictingName(o.innerText);ft.renameUserTheme(c,d),ft.loadTheme(d),o.innerText=d,s=d,a.dataset.id=d}}const l=document.createElement("div");l.classList.add("theme-preview-grid");for(const c of PS){const d=document.createElement("div");d.style.backgroundColor=i[c].toHex(),l.appendChild(d)}o.innerText=t,a.classList.add("theme-cell"),o.classList.add("theme-title"),a.replaceChildren(o,l),this.grid.appendChild(a),t==_.general.theme&&(a.classList.add("selected"),setTimeout(()=>{a.scrollIntoView({behavior:_.general.smoothAnimations?"smooth":"instant",block:"center"})}),this.actions.edit.disabled=n,this.actions.del.disabled=n,this.actions.copy.disabled=!1,this.actions.exp.disabled=!1),a.dataset.id=t,a.onclick=()=>{_.general.theme!=s&&(ft.loadTheme(s),this.removeAllSelections(),a.classList.add("selected"),this.actions.edit.disabled=n,this.actions.del.disabled=n,this.actions.copy.disabled=!1,this.actions.exp.disabled=!1)}}}removeAllSelections(){[...this.grid.querySelectorAll(".selected")].forEach(e=>e.classList.remove("selected"))}filterGrid(e){[...this.grid.children].forEach(t=>{if(!(t instanceof HTMLDivElement))return;const i=t,s=this.containsQuery(e,i.dataset.id);i.style.display=s?"":"none"})}containsQuery(e,t){return t?t.toLowerCase().includes(e.trim().toLowerCase()):!1}getNonConflictingName(e){const t=ft.getThemes();if(t[e]==null)return e;let i=2;const s=/([^]+)-(\d+)$/.exec(e);s&&(e=s[1],i=parseInt(s[2]));let n=`${e}-${i}`;for(;t[n]!==void 0;)n=`${e}-${i}`,i++;return n}}class fa extends St{app;pickers={};handlers=[];linkBlacklist=new Set;static isOpen=!1;constructor(e){super({title:"Theme Color Editor",width:500,height:400,win_id:"theme-editor",disableClose:!0}),this.app=e,this.initView(),fa.isOpen=!0}initView(){this.viewElement.replaceChildren();const e=document.createElement("div");e.classList.add("padding");const t=document.createElement("div");t.classList.add("theme-color-grid"),BS.forEach(l=>{t.appendChild(this.createGroup(l))});const i=document.createElement("div");i.classList.add("menu-options");const s=document.createElement("div");s.classList.add("menu-left");const n=document.createElement("div");n.classList.add("menu-right"),i.appendChild(s),i.appendChild(n);const a=document.createElement("button");a.innerText="Cancel",a.onclick=()=>{this.closeWindow(),ft.loadTheme(_.general.theme),this.app.windowManager.openWindow(new Wc(this.app))},s.appendChild(a);const o=document.createElement("button");o.innerText="Save",o.classList.add("confirm"),o.onclick=()=>{ft.setUserTheme(_.general.theme,ft.getCurrentTheme()),ft.loadTheme(_.general.theme),this.app.windowManager.openWindow(new Wc(this.app)),this.closeWindow()},n.appendChild(o),e.replaceChildren(t,i),this.viewElement.appendChild(e)}createGroup(e){const t=document.createElement("div");t.classList.add("theme-group");const i=document.createElement("div");i.classList.add("theme-group-label"),i.innerText=e.name;const s=document.createElement("div");return s.classList.add("theme-picker-grid"),e.ids.forEach(n=>{s.appendChild(this.createPicker(n))}),t.replaceChildren(i,s),t}createPicker(e){const t=()=>{const d=new B(ft.getCurrentTheme()[e.id]);o.innerText=d.toHex()+" | "+Math.round(d.alpha*100)+"%",!l.isActive()&&(l.value=d)},i=d=>{const h=ft.getCurrentTheme();h[e.id]=d,ft._applyTheme(this.updateLinks(e.id,h))},s=document.createElement("div");s.classList.add("theme-color-cell"),ff[e.id]!=""&&Pt(s,{content:ff[e.id]});const n=kh[e.id];n&&(s.onmouseover=()=>{Object.keys(n).forEach(d=>{this.linkBlacklist.has(d)||this.pickers[d].classList.add("linked")})},s.onmouseout=()=>{Object.keys(n).forEach(d=>{this.pickers[d].classList.remove("linked")})});const a=document.createElement("div");a.innerText=e.label;const o=document.createElement("div");o.classList.add("theme-color-detail");const l=Al.create({value:"white",width:30,height:30});l.onColorChange=i,s.replaceChildren(a,o,l);const c=this.getLink(e.id);if(c!==null){const d=document.createElement("div");d.classList.add("ico-checkbox");const h=Ae.getIcon("LINK",16),u=Ae.getIcon("LINK_BROKEN",16);let p=!0;const f=()=>{p?this.linkBlacklist.delete(e.id):this.linkBlacklist.add(e.id),h.style.display=p?"":"none",u.style.display=p?"none":""};d.onclick=()=>{p=!p,f()},Pt(d,{onShow(g){g.setContent(p?`Linked to ${c}`:"Unlinked")}}),Pt(d,{trigger:"click",onShow(g){g.setContent(p?`Linked to ${c}`:"Unlinked")}}),f(),d.replaceChildren(h,u),s.appendChild(d);const m=g=>{p&&(p=!1,f()),i(g)};l.onColorChange=m}return t(),K.on("themeChanged",t),this.handlers.push(t),this.pickers[e.id]=s,s}getLink(e){for(const[t,i]of Object.entries(kh))if(e in i)return t;return null}average(e){return(e.red+e.green+e.blue)/3}lighten(e,t){return new B(Dd(new B(e).toNumber(),1+t/100))}add(e,t){return new B(RS(new B(e).toNumber(),t))}updateLinks(e,t){const i=new Set,s=[e];for(;s.length!=0;){const n=s.shift(),a=kh[n];if(a)for(const[o,l]of Object.entries(a))this.linkBlacklist.has(o)||i.has(o)||(t[o]=l.bind(this)(t[n]),s.push(o),i.add(o))}return t}onClose(){fa.isOpen=!1}}const ni=r=>r,mf={offset:{title:"Offset",element:ni({create:(r,e)=>{const t=at.create(0,_.general.spinnerStep/100,3);return t.onChange=i=>{i!=null&&(e().setOffset(i),r.chartManager.setBeat(r.chartManager.getBeat()))},t.view},update:(r,e)=>{const t=r.querySelector(".spinner-input");if(document.activeElement==t)return;const i=e.getOffset();t.value!=ae(i,3).toFixed(3)&&(t.value=ae(i,3).toFixed(3))}})},bpm:{title:"BPM",element:ni({create:(r,e)=>{const t=at.create(120,void 0,3);return t.onChange=i=>{if(i==null){const s=r.chartManager.getBeat();e().delete([{type:"BPMS",beat:s}]);return}e().insert([{type:"BPMS",beat:r.chartManager.getBeat(),value:i}])},t.view},update:(r,e,t)=>{const i=r.querySelector(".spinner-input");if(document.activeElement==i)return;const s=e.getEventAtBeat("BPMS",t)?.value??120;i.value!=ae(s,3).toFixed(3)&&(i.value=ae(s,3).toFixed(3))}})},stop:{title:"Stop",element:ni({create:(r,e)=>{const t=at.create(0,void 0,3);return t.onChange=i=>{if(i==null||i==0){const s=r.chartManager.getBeat();e().delete([{type:"STOPS",beat:s}]);return}e().insert([{type:"STOPS",beat:r.chartManager.getBeat(),value:i}])},t.view},update:(r,e,t)=>{const i=r.querySelector(".spinner-input");if(document.activeElement==i)return;const s=e.getEventAtBeat("STOPS",t);let n=s?.value??0;t!=s?.beat&&(n=0),i.value!=ae(n,3).toFixed(3)&&(i.value=ae(n,3).toFixed(3))}})},delay:{title:"Delay",element:ni({create:(r,e)=>{const t=at.create(0,void 0,3);return t.onChange=i=>{if(i==null||i==0){const s=r.chartManager.getBeat();e().delete([{type:"DELAYS",beat:s}]);return}e().insert([{type:"DELAYS",beat:r.chartManager.getBeat(),value:i}])},t.view},update:(r,e,t)=>{const i=r.querySelector(".spinner-input");if(document.activeElement==i)return;const s=e.getEventAtBeat("DELAYS",t);let n=s?.value??0;t!=s?.beat&&(n=0),i.value!=ae(n,3).toFixed(3)&&(i.value=ae(n,3).toFixed(3))}})},warp:{title:"Warp",element:ni({create:(r,e)=>{const t=at.create(0,void 0,3,0);return t.onChange=i=>{if(i==null||i==0){const s=r.chartManager.getBeat();e().delete([{type:"WARPS",beat:s}]);return}i<0||e().insert([{type:"WARPS",beat:r.chartManager.getBeat(),value:i}])},t.view},update:(r,e,t)=>{const i=r.querySelector(".spinner-input");if(document.activeElement==i)return;const s=e.getEventAtBeat("WARPS",t);let n=s?.value??0;t!=s?.beat&&(n=0),i.value!=ae(n,3).toFixed(3)&&(i.value=ae(n,3).toFixed(3))}})},timeSig:{title:"Time Sig.",element:ni({create:(r,e)=>{const t=document.createElement("div");t.classList.add("flex-column-gap");const i=at.create(4,1,0,1);i.onChange=n=>{if(n==null){const a=r.chartManager.getBeat();e().delete([{type:"TIMESIGNATURES",beat:a}]);return}n<1||e().insert([{type:"TIMESIGNATURES",beat:r.chartManager.getBeat(),upper:n,lower:s.value}])};const s=at.create(4,1,0,1);return s.onChange=n=>{if(n==null){const a=r.chartManager.getBeat();e().delete([{type:"TIMESIGNATURES",beat:a}]);return}n<1||e().insert([{type:"TIMESIGNATURES",beat:r.chartManager.getBeat(),upper:i.value,lower:n}])},t.appendChild(i.view),t.appendChild(s.view),t},update:(r,e,t)=>{const i=r.firstElementChild.querySelector(".spinner-input"),s=r.lastElementChild.querySelector(".spinner-input"),n=e.getEventAtBeat("TIMESIGNATURES",t),a=n?.upper??4,o=n?.lower??4;document.activeElement!=i&&i.value!=Math.round(a).toString()&&(i.value=Math.round(a).toString()),document.activeElement!=s&&s.value!=Math.round(o).toString()&&(s.value=Math.round(o).toString())}})},tick:{title:"Tickcount",element:ni({create:(r,e)=>{const t=at.create(4,1,0,0);return t.onChange=i=>{if(i==null){const s=r.chartManager.getBeat();e().delete([{type:"TICKCOUNTS",beat:s}]);return}i<0||e().insert([{type:"TICKCOUNTS",beat:r.chartManager.getBeat(),value:i}])},t.view},update:(r,e,t)=>{const i=r.querySelector(".spinner-input");if(document.activeElement==i)return;const s=e.getEventAtBeat("TICKCOUNTS",t)?.value??4;i.value!=Math.round(s).toString()&&(i.value=Math.round(s).toString())}})},combo:{title:"Combo",element:ni({create:(r,e)=>{const t=document.createElement("div");t.classList.add("flex-column-gap");const i=at.create(1,1,0,0);i.onChange=n=>{if(n==null){const a=r.chartManager.getBeat();e().delete([{type:"COMBOS",beat:a}]);return}n<0||e().insert([{type:"COMBOS",beat:r.chartManager.getBeat(),hitMult:n,missMult:s.value}])};const s=at.create(1,1,0,0);return s.onChange=n=>{if(n==null){const a=r.chartManager.getBeat();s.setValue(r.chartManager.loadedChart?.timingData.getEventAtBeat("COMBOS",a)?.missMult??1);return}n<0||e().insert([{type:"COMBOS",beat:r.chartManager.getBeat(),hitMult:i.value,missMult:n}])},t.appendChild(i.view),t.appendChild(s.view),t},update:(r,e,t)=>{const i=r.firstElementChild.querySelector(".spinner-input"),s=r.lastElementChild.querySelector(".spinner-input"),n=e.getEventAtBeat("COMBOS",t),a=n?.hitMult??1,o=n?.missMult??1;document.activeElement!=i&&i.value!=Math.round(a).toString()&&(i.value=Math.round(a).toString()),document.activeElement!=s&&s.value!=Math.round(o).toString()&&(s.value=Math.round(o).toString())}})},speed:{title:"Speed",element:ni({create:(r,e)=>{const t=document.createElement("div");t.classList.add("flex-column-gap");const i=()=>{e().insert([{type:"SPEEDS",beat:r.chartManager.getBeat(),value:s.value,delay:n.value,unit:a.value=="Beats"?"B":"T"}])},s=at.create(1,.1,0);s.onChange=o=>{if(o==null){const l=r.chartManager.getBeat();e().delete([{type:"SPEEDS",beat:l}]);return}i()};const n=at.create(1,.1,0);n.onChange=o=>{o==null||o<0||i()};const a=gi.create(["Beat","Time"],"Beats");return a.onChange=i,t.appendChild(s.view),t.appendChild(n.view),t.appendChild(a.view),t},update:(r,e,t)=>{const i=r.firstElementChild.querySelector(".spinner-input"),s=r.children[1].querySelector(".spinner-input"),n=e.getEventAtBeat("SPEEDS",t),a=n?.value??1,o=n?.delay??0,l=n?.unit=="B"?"Beat":"Time";document.activeElement!=i&&i.value!=ae(a,3).toFixed(3)&&(i.value=ae(a,3).toFixed(3)),document.activeElement!=s&&s.value!=ae(o,3).toFixed(3)&&(s.value=ae(o,3).toFixed(3)),s.disabled=n?.beat!=t;const c=r.lastElementChild.querySelector(".dropdown-selected-text");c.innerText!=l&&(c.innerText=l),n?.beat!=t?c.classList.add("disabled"):c.classList.remove("disabled")}})},scroll:{title:"Scroll",element:ni({create:(r,e)=>{const t=at.create(1,void 0,3);return t.onChange=i=>{if(i==null){const s=r.chartManager.getBeat();e().delete([{type:"SCROLLS",beat:s}]);return}e().insert([{type:"SCROLLS",beat:r.chartManager.getBeat(),value:i}])},t.view},update:(r,e,t)=>{const i=r.querySelector(".spinner-input");if(document.activeElement==i)return;const s=e.getEventAtBeat("SCROLLS",t)?.value??1;i.value!=ae(s,3).toFixed(3)&&(i.value=ae(s,3).toFixed(3))}})},fake:{title:"Fake",element:ni({create:(r,e)=>{const t=at.create(1,void 0,3,0);return t.onChange=i=>{if(i==null){const s=r.chartManager.getBeat();e().delete([{type:"FAKES",beat:s}]);return}i<0||e().insert([{type:"FAKES",beat:r.chartManager.getBeat(),value:i}])},t.view},update:(r,e,t)=>{const i=r.querySelector(".spinner-input");if(document.activeElement==i)return;const s=e.getEventAtBeat("FAKES",t);let n=s?.value??1;t!=s?.beat&&(n=0),i.value!=ae(n,3).toFixed(3)&&(i.value=ae(n,3).toFixed(3))}})},label:{title:"Label",element:ni({create:(r,e)=>{const t=document.createElement("input");return t.type="text",t.autocomplete="off",t.spellcheck=!1,t.onkeydown=i=>{i.key=="Enter"&&t.blur()},t.onblur=()=>{if(t.value==""){const i=r.chartManager.getBeat();e().delete([{type:"LABELS",beat:i}]);return}e().insert([{type:"LABELS",beat:r.chartManager.getBeat(),value:t.value}])},t},update:(r,e,t)=>{const i=r;if(document.activeElement==i)return;const n=e.getEventAtBeat("LABELS",t)?.value??"";i.value!=n&&(i.value=n)}})}};class DS extends St{app;lastBeat;chartTiming=!1;interval;changeHandler=()=>this.setData();constructor(e){super({title:"Edit Timing Data",width:300,height:340,disableClose:!1,win_id:"timing_data",blocking:!1}),this.app=e,this.lastBeat=Math.round(this.app.chartManager.getBeat()*1e3)/1e3,this.chartTiming=this.app.chartManager.loadedChart.timingData.usesChartTiming(),this.initView(),this.interval=setInterval(()=>{Math.round(this.app.chartManager.getBeat()*1e3)/1e3!=this.lastBeat&&(this.lastBeat=Math.round(this.app.chartManager.getBeat()*1e3)/1e3,this.setData())},17),K.on("timingModified",this.changeHandler),K.on("chartLoaded",this.changeHandler)}onClose(){K.off("timingModified",this.changeHandler),clearInterval(this.interval)}initView(){this.viewElement.replaceChildren(),this.viewElement.classList.add("timing-data");const e=document.createElement("div");e.classList.add("padding");const t=document.createElement("div");t.classList.add("label"),t.innerText="Apply to";const i=gi.create(["All charts","This chart"],this.chartTiming?"This chart":"All charts");i.onChange(s=>{this.chartTiming=s=="This chart"}),e.appendChild(t),e.appendChild(i.view),Object.values(mf).forEach(s=>{const n=document.createElement("div");n.classList.add("label"),n.innerText=s.title;const a=s.element.create(this.app,()=>this.chartTiming?this.app.chartManager.loadedChart.timingData:this.app.chartManager.loadedSM.timingData);e.appendChild(n),e.appendChild(a)}),this.viewElement.appendChild(e),this.setData()}setData(){this.app.chartManager.loadedChart&&Object.values(mf).forEach((e,t)=>{const i=this.viewElement.children[0].children[t*2+3];e.element.update(i,this.app.chartManager.loadedChart.timingData,this.lastBeat)})}}const gf=[{type:"group",id:"app",label:"App",disable:()=>window.nw===void 0,children:[{type:"subgroup",children:[{type:"item",label:"Window Width",id:"app.width",input:{type:"number",step:50,min:300,onChange:(r,e)=>{const t=nw.Window.get();t.isFullscreen||(t.width=e)}}},{type:"item",label:"Window Height",id:"app.height",input:{type:"number",step:50,min:300,onChange:(r,e)=>{const t=nw.Window.get();t.isFullscreen||(t.height=e)}}}]},{type:"subgroup",children:[{type:"item",label:"Fullscreen",id:"app.fullscreen",input:{type:"checkbox",onChange:(r,e)=>{const t=nw.Window.get();e?nw.Window.get().enterFullscreen():(t.hide(),nw.Window.get().leaveFullscreen(),t.show())}}}]}]},{type:"group",id:"general",label:"General",children:[{type:"subgroup",children:[{type:"item",label:"Smooth Animations",id:"general.smoothAnimations",input:{type:"checkbox",onChange:(r,e)=>{e?document.body.classList.add("animated"):document.body.classList.remove("animated")}}},{type:"item",label:"Warn before exit",id:"general.warnBeforeExit",input:{type:"checkbox"},tooltip:"Warn before exiting the editor if you have unsaved changes."},{type:"item",label:"Spinner step",id:"general.spinnerStep",input:{type:"slider",min:0,step:.1,max:5,hardMin:0,hardMax:2**31-1},tooltip:"The default increment for all number spinners."}]}]},{type:"group",id:"chart",label:"Chart",children:[{type:"subgroup",label:"Playfield",children:[{type:"subgroup",children:[{type:"item",label:"Enable mouse placement",id:"chart.mousePlacement",input:{type:"checkbox"}}]},{type:"subgroup",children:[{type:"item",label:"Zoom",id:"chart.zoom",input:{type:"slider",min:50,step:1,max:200,hardMax:2**31-1,transformers:{serialize:r=>r*100,deserialize:r=>r/100}}},{type:"item",label:"Reverse playfield",id:"chart.reverse",input:{type:"checkbox"}}]},{type:"subgroup",children:[{type:"item",label:"Y position",id:"chart.receptorYPos",input:{type:"slider",min:-400,max:0,hardMin:-(2**31-1),hardMax:2**31-1}},{type:"item",label:"Draw length",id:"chart.maxDrawBeats",input:{type:"slider",min:0,max:30,hardMax:2**31-1},tooltip:"Maximum number of beats to draw notes. Increasing this works well for songs with high bpm but can affect performance. Only applies to XMod."},{type:"item",label:"Draw length past receptors",id:"chart.maxDrawBeatsBack",input:{type:"slider",min:0,max:30,hardMax:2**31-1},tooltip:"Maximum number of beats to draw notes past the receptors. Increasing this can affect performance. Only applies to XMod."}]},{type:"subgroup",children:[{type:"item",label:"Draw noteflashes",id:"chart.drawNoteFlash",input:{type:"checkbox"}},{type:"item",label:"Draw note icons",id:"chart.drawIcons",input:{type:"checkbox"},tooltip:"Draw indicators above notes that some noteskins may not differentiate, like Fakes and Lifts."}]}]},{type:"subgroup",label:"Scrolling",children:[{type:"item",label:"Scroll sensitivity",id:"chart.scroll.scrollSensitivity",input:{type:"slider",min:0,step:1,max:200,hardMax:2**31-1,transformers:{serialize:r=>r*100,deserialize:r=>r/100}},tooltip:"Adjust the scroll sensitivity when scrolling through the chart."},{type:"item",label:"Snap every scroll",id:"chart.scroll.scrollSnapEveryScroll",input:{type:"checkbox"},tooltip:"Whether each scroll movement corresponds to moving one snap unit when scrolling. Turning this on will have the same behavior as ArrowVortex. Recommended on for those using a mouse, off for those using trackpad."},{type:"item",label:"Invert zoom in/out",id:"chart.scroll.invertZoomScroll",input:{type:"checkbox"},tooltip:"Inverts the zoom in/out control when scrolling."},{type:"item",label:"Invert scroll direction when in reverse",id:"chart.scroll.invertReverseScroll",input:{type:"checkbox"}}]},{type:"subgroup",label:"Waveform",children:[{type:"item",label:"Draw waveform",id:"chart.waveform.enabled",input:{type:"checkbox"}},{type:"subgroup",children:[{type:"item",label:"Color",id:"chart.waveform.color",input:{type:"color"}}]},{type:"subgroup",children:[{type:"item",label:"Draw filtered waveform",id:"chart.waveform.allowFilter",input:{type:"checkbox"}},{type:"item",label:"Filtered color",id:"chart.waveform.filteredColor",input:{type:"color"}}]},{type:"item",label:"Line height",id:"chart.waveform.lineHeight",input:{type:"slider",min:1,max:3,step:.1,hardMax:100},tooltip:"The height of each line of the waveform. Increasing this can help performance."},{type:"item",label:"Antialiasing",id:"chart.waveform.antialiasing",input:{type:"checkbox"}},{type:"item",label:"Allow speed changes",id:"chart.waveform.speedChanges",input:{type:"checkbox"},tooltip:"Allows the waveform to be affected by SPEEDS and SCROLLS."}]},{type:"subgroup",label:"Note Layout",children:[{type:"item",label:"Show Note Layout",id:"chart.noteLayout.enabled",input:{type:"checkbox"}}]},{type:"subgroup",label:"NPS Graph",children:[{type:"item",label:"Show NPS Graph",id:"chart.npsGraph.enabled",input:{type:"checkbox"}},{type:"subgroup",children:[{type:"item",label:"Start Color",id:"chart.npsGraph.color1",input:{type:"color"}},{type:"item",label:"End Color",id:"chart.npsGraph.color2",input:{type:"color"}}]}]}]},{type:"group",id:"audio",label:"Audio",children:[{type:"subgroup",children:[{type:"item",label:"Master volume",id:"audio.masterVolume",input:{type:"slider",min:0,step:1,max:100,hardMax:2**31-1,transformers:{serialize:r=>r*100,deserialize:r=>r/100}}},{type:"item",label:"Song volume",id:"audio.songVolume",input:{type:"slider",min:0,step:1,max:100,hardMax:2**31-1,transformers:{serialize:r=>r*100,deserialize:r=>r/100}}},{type:"item",label:"Sound effect volume",id:"audio.soundEffectVolume",input:{type:"slider",min:0,step:1,max:100,hardMax:2**31-1,transformers:{serialize:r=>r*100,deserialize:r=>r/100}}}]},{type:"subgroup",children:[{type:"item",label:"Enable assist tick",id:"audio.assistTick",input:{type:"checkbox"},tooltip:"Plays a sound when a note passes the receptors"},{type:"item",label:"Enable metronome",id:"audio.metronome",input:{type:"checkbox"}}]},{type:"subgroup",children:[{type:"item",label:"Allow filters to affect audio",id:"audio.allowFilter",input:{type:"checkbox",onChange:r=>{r.chartManager.chartAudio.reload()}}},{type:"item",label:"Enable metronome",id:"audio.metronome",input:{type:"checkbox"}}]}]},{type:"group",id:"play",label:"Play mode",children:[{type:"subgroup",label:"Calibration",children:[{type:"item",label:"Global offset",id:"play.offset",input:{type:"slider",min:-1,step:.001,max:1,hardMin:-(2**31-1),hardMax:2**31-1},tooltip:"Offset in seconds when playing a chart. Set to positive if you are hitting early and negative if you are hitting late."},{type:"item",label:"Sound effect offset",id:"play.effectOffset",input:{type:"slider",min:-1,step:.001,max:1,hardMin:-(2**31-1),hardMax:2**31-1},tooltip:"Offset in seconds when playing sound effects like assist tick and metronome."},{type:"item",label:"Visual offset",id:"play.visualOffset",input:{type:"slider",min:-1,step:.001,max:1,hardMin:-(2**31-1),hardMax:2**31-1},tooltip:"Offset in seconds when displaying notes."}]},{type:"subgroup",children:[{type:"item",label:"Judgement tilt",id:"play.judgementTilt",input:{type:"checkbox"},tooltip:"Tilts the judgement text left if you are hitting early and right if you are hitting late."},{type:"item",label:"Hide barlines during play",id:"play.hideBarlines",input:{type:"checkbox"}}]},{type:"subgroup",label:"Timing windows",children:[{type:"item",id:"play.timingCollection",label:"Timing window collection",input:{type:"dropdown",advanced:!1,get items(){return Object.keys(Je.getCollections())}}},{type:"item",id:"play.timingWindowScale",label:"Timing window scale",input:{type:"slider",min:0,step:.001,max:2,hardMax:2**31-1},tooltip:"Scales all timing windows by the given amount."},{type:"item",id:"play.timingWindowAdd",label:"Timing window add",input:{type:"slider",min:0,step:.001,max:1,hardMax:2**31-1},tooltip:"Adds this value (in seconds) to all timing windows."}]}]},{type:"group",id:"performance",label:"Performance",children:[{type:"item",label:"Antialiasing",id:"performance.antialiasing",input:{type:"checkbox"}},{type:"item",label:"Resolution",id:"performance.resolution",input:{type:"slider",min:1,step:1,max:4,hardMin:0,hardMax:2**31-1},tooltip:"Requires a reload."}]},{type:"group",id:"debug",label:"Debug",children:[{type:"item",label:"Show FPS",id:"debug.showFPS",input:{type:"checkbox"}},{type:"item",label:"Show rendering timers",id:"debug.showTimers",input:{type:"checkbox"}},{type:"item",label:"Show scrolls/speeds debug visual",id:"debug.showScroll",input:{type:"checkbox"}},{type:"item",label:"Show noteskin errors",id:"debug.showNoteskinErrors",input:{type:"checkbox"}}]}];class OS extends St{app;observer;sectionContainer;constructor(e){super({title:"Options",width:600,height:400,disableClose:!1,win_id:"user_options",blocking:!1}),this.app=e,this.initView(),K.on("resize",()=>{this.move(window.innerWidth/2-this.options.width/2,window.innerHeight/2-this.options.height/2)})}initView(){this.viewElement.replaceChildren();const e=document.createElement("div");e.classList.add("padding");const t=document.createElement("div");t.classList.add("pref-container");const i=document.createElement("div");i.classList.add("pref-search");const s=document.createElement("input");s.classList.add("pref-search-bar"),s.type="text",s.placeholder="Search for an option...",s.oninput=()=>{a.replaceChildren(),o.replaceChildren(...this.createOptions(this.filterOptions(s.value)))},i.appendChild(s);const n=document.createElement("div");n.classList.add("pref-scrollers");const a=document.createElement("div");a.classList.add("pref-section-scroller"),this.sectionContainer=a;const o=document.createElement("div");o.classList.add("pref-option-scroller"),n.replaceChildren(a,o),this.observer=new IntersectionObserver(l=>{l.forEach(c=>{const d=c.target.dataset.id,h=a.querySelector(`.pref-section[data-id=${d}]`);h&&(c.intersectionRatio>0?h.classList.add("selected"):h.classList.remove("selected"))})},{}),t.replaceChildren(i,n),a.replaceChildren(),o.replaceChildren(...this.createOptions(gf)),e.appendChild(t),this.viewElement.appendChild(e)}createOptions(e){return e.filter(t=>!t.disable?.(this.app)).map(t=>{const i=this.makeOption(t);return t.type=="group"&&(this.observer.observe(i),this.sectionContainer?.appendChild(this.createEmptyGroup(t))),i})}makeOption(e){const t=document.createElement("div");t.classList.add("pref-"+e.type),(e.type=="group"||e.type=="item")&&(t.dataset.id=e.id);const i=document.createElement("div");i.classList.add(`pref-${e.type}-label`),e.label!==void 0&&(i.innerText=e.label,t.appendChild(i));const s=Ae.getIcon("REVERT");if(e.type=="item"&&(s.style.width="12px",s.addEventListener("click",()=>{_.applyOption([e.id,_.getDefaultOption(e.id)]);const n=e.input.onChange;n?.(this.app,_.getDefaultOption(e.id)),K.emit("userOptionUpdated",e.id),t.replaceWith(this.makeOption(e))}),s.style.display=_.getDefaultOption(e.id)===_.getOption(e.id)?"none":"block",t.appendChild(s)),e.type=="item"){const n=_.getOption(e.id);let a;if(!e.input)return t;switch(i.innerText=e.label,e.input.type){case"checkbox":{const o=document.createElement("input"),l=e.input.onChange;o.type="checkbox",o.checked=n,o.onblur=null,o.onchange=()=>{_.applyOption([e.id,o.checked]),K.emit("userOptionUpdated",e.id),s.style.display=_.getDefaultOption(e.id)===_.getOption(e.id)?"none":"block",l?.(this.app,o.checked)},o.classList.add("pref-input","right"),o.onkeydown=c=>{c.key=="Enter"&&o.blur()},a=o;break}case"dropdown":{if(e.input.advanced){const o=e.input.transformers.deserialize,l=e.input.transformers.serialize,c=e.input.onChange,d=gi.create(e.input.items,l(n));d.onChange(h=>{_.applyOption([e.id,o(h)]),K.emit("userOptionUpdated",e.id),s.style.display=_.getDefaultOption(e.id)===_.getOption(e.id)?"none":"block",c?.(this.app,o(h))}),d.view.classList.add("pref-input","dropdown-right"),a=d.view}else{const o=e.input.onChange,l=gi.create(e.input.items,n);l.onChange(c=>{_.applyOption([e.id,c]),K.emit("userOptionUpdated",e.id),s.style.display=_.getDefaultOption(e.id)===_.getOption(e.id)?"none":"block",o?.(this.app,c)}),l.view.classList.add("pref-input","dropdown-right"),a=l.view}break}case"number":{const o=e.input.transformers?.deserialize??(h=>h),l=e.input.transformers?.serialize??(h=>h),c=e.input.onChange,d=at.create(l(n),e.input.step,e.input.precision,e.input.min,e.input.max);d.onChange=h=>{if(!h){d.setValue(l(h));return}_.applyOption([e.id,o(h)]),K.emit("userOptionUpdated",e.id),s.style.display=_.getDefaultOption(e.id)===_.getOption(e.id)?"none":"block",c?.(this.app,o(h))},a=d.view;break}case"slider":{const o=e.input.transformers?.deserialize??(m=>m),l=e.input.transformers?.serialize??(m=>m),c=e.input.onChange,d=document.createElement("div");d.style.display="flex",d.style.alignItems="center";const h=document.createElement("input");h.type="range",h.min=e.input.min?.toString()??"",h.max=e.input.max?.toString()??"",h.step=e.input.step?.toString()??"1",h.value=l(n).toString();const u=document.createElement("input");u.type="text",u.value=(Math.round(l(n)*1e3)/1e3).toString();const p=e.input.min??e.input.hardMin??-Number.MAX_VALUE,f=e.input.max??e.input.hardMax??Number.MAX_VALUE;u.onblur=()=>{let m=ua(u.value);if(m===null){u.value=(Math.round(l(n)*1e3)/1e3).toString();return}m=Be(m,p,f),u.value=ae(m,3).toString(),u.blur(),u.value==""?u.value=l(m).toString():(_.applyOption([e.id,o(m)]),K.emit("userOptionUpdated",e.id)),h.value=m.toString(),s.style.display=_.getDefaultOption(e.id)===_.getOption(e.id)?"none":"block",c?.(this.app,o(m))},h.oninput=()=>{const m=parseFloat(h.value);u.value=ae(m,3).toString(),_.applyOption([e.id,o(m)]),s.style.display=_.getDefaultOption(e.id)===_.getOption(e.id)?"none":"block"},u.style.width="50px",u.onkeydown=m=>{m.key=="Enter"&&u.blur()},d.appendChild(h),d.appendChild(u),a=d;break}case"text":{const o=e.input.onChange,l=document.createElement("input");l.type="text",l.value=n.toString(),l.onblur=()=>{_.applyOption([e.id,l.value]),K.emit("userOptionUpdated",e.id),s.style.display=_.getDefaultOption(e.id)===_.getOption(e.id)?"none":"block",o?.(this.app,l.value)},l.onkeydown=c=>{c.key=="Enter"&&l.blur()},a=l;break}case"color":{const o=e.input.onChange,l=Al.create({value:n});l.onColorChange=c=>{_.applyOption([e.id,c.toHexa()]),K.emit("userOptionUpdated",e.id),s.style.display=_.getDefaultOption(e.id)===_.getOption(e.id)?"none":"block",o?.(this.app,c)},a=l}}a.classList.add("pref-item-input"),t.appendChild(a)}else{const n=document.createElement("div");n.classList.add("pref-children"),t.appendChild(n),n.replaceChildren(...this.createOptions(e.children))}return e.type=="item"&&e.tooltip!==void 0&&Pt(t,{content:e.tooltip}),t}filterOptions(e,t=gf){const i=[];return t.forEach(s=>{if(s.label&&s.label.toLowerCase().includes(e.toLowerCase())){i.push(s);return}if(s.type=="group"||s.type=="subgroup"){const n=this.filterOptions(e,s.children);n.length!=0&&i.push({...s,children:n})}}),i}createEmptyGroup(e){const t=document.createElement("div");return t.classList.add("pref-section"),t.dataset.id=e.id,t.innerText=e.label,t.onclick=()=>{t.parentElement.parentElement.querySelector(`.pref-group[data-id=${e.id}]`).scrollIntoView()},t}onClose(){this.observer?.disconnect()}}var Yn=(r=>(r.SHIFT="Shift",r.CTRL="Ctrl",r.ALT="Alt",r.META="Command",r))(Yn||{});const Si=navigator.userAgent.indexOf("Mac OS X")>-1,ct=Si?"Command":"Ctrl",FS={Shift:Si?"⇧":"Shift",Ctrl:Si?"⌃":"Ctrl",Alt:Si?"⌥":"Alt",Command:"⌘"},yf={ArrowLeft:"Left",ArrowUp:"Up",ArrowRight:"Right",ArrowDown:"Down",BracketLeft:"[",BracketRight:"]",Semicolon:";",Quote:"'",Backslash:"\\",Slash:"/",Period:".",Comma:",",Backquote:"`",Minus:"-",Equal:"+"},by={Home:Si?"fn Left":"Home",End:Si?"fn Right":"End",PageUp:Si?"fn Up":"End",PageDown:Si?"fn Down":"End"},il=["ctrlKey","altKey","shiftKey","metaKey"],Co=["Ctrl","Alt","Shift","Command"],Tt={playback:{label:"Play/Pause",combos:[{key:"Space",mods:[]}],disabled:r=>!r.chartManager.chartView||r.chartManager.getMode()==X.Play||r.chartManager.getMode()==X.Record,callback:r=>r.chartManager.playPause()},decreaseSnap:{label:"Decrease snap",combos:[{key:"Left",mods:[]}],disabled:r=>!r.chartManager.chartView||r.chartManager.getMode()==X.Play||r.chartManager.getMode()==X.Record,callback:r=>r.chartManager.previousSnap()},increaseSnap:{label:"Increase snap",combos:[{key:"Right",mods:[]}],disabled:r=>!r.chartManager.chartView||r.chartManager.getMode()==X.Play||r.chartManager.getMode()==X.Record,callback:r=>r.chartManager.nextSnap()},cursorUp:{label:"Move cursor up",combos:[{key:"Up",mods:[]}],disabled:r=>!r.chartManager.chartView||r.chartManager.getMode()==X.Play||r.chartManager.getMode()==X.Record,callback:r=>{r.chartManager.snapToPreviousTick()}},cursorDown:{label:"Move cursor down",combos:[{key:"Down",mods:[]}],disabled:r=>!r.chartManager.chartView||r.chartManager.getMode()==X.Play||r.chartManager.getMode()==X.Record,callback:r=>{r.chartManager.snapToNextTick()}},increaseScrollSpeed:{label:"Increase scroll speed",combos:[{key:"Up",mods:[ct]}],disabled:r=>!r.chartManager.chartView,callback:()=>_.chart.speed=Math.max(10,_.chart.speed*Math.pow(1.01,30))},decreaseScrollSpeed:{label:"Decrease scroll speed",combos:[{key:"Down",mods:[ct]}],disabled:r=>!r.chartManager.chartView,callback:()=>_.chart.speed=Math.max(10,_.chart.speed*Math.pow(1.01,-30))},zoomIn:{label:"Zoom in",combos:[{key:"+",mods:[ct]}],disabled:r=>!r.chartManager.chartView,callback:()=>{_.chart.zoom+=.1,Se.create("Zoom: "+Math.round(_.chart.zoom*100)+"%")}},zoomOut:{label:"Zoom out",combos:[{key:"-",mods:[ct]}],disabled:r=>!r.chartManager.chartView,callback:()=>{_.chart.zoom=Math.max(.1,_.chart.zoom-.1),Se.create("Zoom: "+Math.round(_.chart.zoom*100)+"%")}},zoomDefault:{label:"Reset zoom",combos:[{key:"0",mods:[ct]}],disabled:r=>!r.chartManager.chartView,callback:()=>{_.chart.zoom=1,Se.create("Zoom: "+Math.round(_.chart.zoom*100)+"%")}},newSong:{label:"New song...",bindLabel:"New song",combos:[{key:"N",mods:[ct]}],disabled:r=>!r.chartManager.loadedSM||!Ie.openWindows,callback:r=>{r.windowManager.openWindow(new my(r))}},openSong:{label:"Open song...",bindLabel:"Open song",combos:[{key:"O",mods:[ct]}],disabled:r=>!r.chartManager.loadedSM||!Ie.openWindows,callback:r=>{if(window.nw){const e=document.createElement("input");e.type="file",e.accept=".sm,.ssc",e.onchange=()=>r.chartManager.loadSM(e.value),e.click()}else r.windowManager.openWindow(new gy(r,!1))}},songProperties:{label:"Song properties...",bindLabel:"Open song properties",combos:[{key:"O",mods:["Shift"]}],disabled:r=>!r.chartManager.loadedSM||!Ie.openWindows,callback:r=>r.windowManager.openWindow(new TS(r))},save:{label:"Save...",bindLabel:"Save",combos:[{key:"S",mods:[ct]}],disabled:r=>!r.chartManager.loadedSM||r.chartManager.smPath.startsWith("https://")||r.chartManager.smPath.startsWith("http://"),callback:r=>r.chartManager.save()},export:{label:"Save and export current song",combos:[{key:"E",mods:[ct]}],disabled:r=>!!window.nw||!r.chartManager.loadedSM||r.chartManager.smPath.startsWith("https://")||r.chartManager.smPath.startsWith("http://"),callback:r=>{r.chartManager.save(),Ue.getStandardHandler().saveDirectory(r.chartManager.smPath)}},exportNotedata:{label:"Export to notedata...",bindLabel:"Export to notedata",combos:[{key:"E",mods:[ct,"Shift"]}],disabled:r=>!r.chartManager.loadedSM||!Ie.openWindows,callback:r=>r.windowManager.openWindow(new uS(r,r.chartManager.selection.notes))},openChart:{label:"Chart list",bindLabel:"Open chart list",combos:[{key:"O",mods:[ct,"Shift"]}],disabled:r=>!r.chartManager.loadedSM||!Ie.openWindows,callback:r=>r.windowManager.openWindow(new sy(r))},timingDataRow:{label:"Edit timing data at row",combos:[{key:"T",mods:["Shift"]}],disabled:r=>!r.chartManager.chartView||!Ie.openWindows,callback:r=>r.windowManager.openWindow(new DS(r))},selectRegion:{label:"Select region",combos:[{key:"Tab",mods:[]}],disabled:r=>!r.chartManager.loadedChart&&r.chartManager.getMode()!=X.Edit,callback:r=>r.chartManager.selectRegion()},volumeUp:{label:"Increase master volume",combos:[{key:"Up",mods:["Alt"]}],disabled:!1,callback:()=>{_.audio.masterVolume=Math.min(_.audio.masterVolume+.05,1),Se.create("Master volume: "+Math.round(_.audio.masterVolume*100)+"%")}},volumeDown:{label:"Decrease master volume",combos:[{key:"Down",mods:["Alt"]}],disabled:!1,callback:()=>{_.audio.masterVolume=Math.max(_.audio.masterVolume-.05,0),Se.create("Master volume: "+Math.round(_.audio.masterVolume*100)+"%")}},songVolumeUp:{label:"Increase song volume",combos:[{key:"Up",mods:["Shift","Alt"]}],disabled:!1,callback:()=>{_.audio.songVolume=Math.min(_.audio.songVolume+.05,1),Se.create("Song volume: "+Math.round(_.audio.songVolume*100)+"%")}},songVolumeDown:{label:"Decrease song volume",combos:[{key:"Down",mods:["Shift","Alt"]}],disabled:!1,callback:()=>{_.audio.songVolume=Math.max(_.audio.songVolume-.05,0),Se.create("Song volume: "+Math.round(_.audio.songVolume*100)+"%")}},effectvolumeUp:{label:"Increase tick/metronome volume",combos:[{key:"Up",mods:["Shift",ct,"Alt"]}],disabled:!1,callback:()=>{_.audio.soundEffectVolume=Math.min(_.audio.soundEffectVolume+.05,1),Se.create("Effect volume: "+Math.round(_.audio.soundEffectVolume*100)+"%")}},effectvolumeDown:{label:"Decrease tick/metronome volume",combos:[{key:"Down",mods:["Shift",ct,"Alt"]}],disabled:!1,callback:()=>{_.audio.soundEffectVolume=Math.max(_.audio.soundEffectVolume-.05,0),Se.create("Effect Volume: "+Math.round(_.audio.soundEffectVolume*100)+"%")}},rateUp:{label:"Increase playback rate",combos:[{key:"Right",mods:["Shift"]}],disabled:r=>r.chartManager.getMode()==X.Play||r.chartManager.getMode()==X.Record,callback:()=>{_.audio.rate+=.05,Se.create("Playback Rate: "+Math.round(_.audio.rate*100)+"%")}},rateDown:{label:"Decrease playback rate",combos:[{key:"Left",mods:["Shift"]}],disabled:r=>r.chartManager.getMode()==X.Play||r.chartManager.getMode()==X.Record,callback:()=>{_.audio.rate=Math.max(_.audio.rate-.05,.1),Se.create("Playback Rate: "+Math.round(_.audio.rate*100)+"%")}},rateDefault:{label:"Reset playback rate",combos:[],disabled:!1,callback:()=>{_.audio.rate=1,Se.create("Playback Rate: "+Math.round(_.audio.rate)+"%")}},previousMeasure:{label:"Previous measure",combos:[{key:"PageUp",mods:[]},{key:";",mods:[]}],disabled:r=>!r.chartManager.chartView||r.chartManager.getMode()==X.Play||r.chartManager.getMode()==X.Record,callback:r=>{const e=r.chartManager.getBeat(),t=r.chartManager.loadedChart.timingData.getMeasureLength(e-.001);r.chartManager.snapToNearestTick(Math.max(0,e-t))}},nextMeasure:{label:"Next measure",combos:[{key:"PageDown",mods:[]},{key:"'",mods:[]}],disabled:r=>!r.chartManager.chartView||r.chartManager.getMode()==X.Play||r.chartManager.getMode()==X.Record,callback:r=>{const e=r.chartManager.getBeat(),t=r.chartManager.loadedChart.timingData.getMeasureLength(e);r.chartManager.snapToNearestTick(Math.max(0,e+t))}},previousNote:{label:"Previous note",combos:[{key:",",mods:[]}],disabled:r=>!r.chartManager.chartView||r.chartManager.getMode()==X.Play||r.chartManager.getMode()==X.Record,callback:r=>r.chartManager.previousNote()},nextNote:{label:"Next note",combos:[{key:".",mods:[]}],disabled:r=>!r.chartManager.chartView||r.chartManager.getMode()==X.Play||r.chartManager.getMode()==X.Record,callback:r=>r.chartManager.nextNote()},jumpChartStart:{label:"Jump to first note",combos:[],disabled:r=>!r.chartManager.chartView||r.chartManager.getMode()==X.Play||r.chartManager.getMode()==X.Record,callback:r=>r.chartManager.firstNote()},jumpChartEnd:{label:"Jump to last note",combos:[],disabled:r=>!r.chartManager.chartView||r.chartManager.getMode()==X.Play||r.chartManager.getMode()==X.Record,callback:r=>r.chartManager.lastNote()},jumpSongStart:{label:"Jump to song start",combos:[{key:"Home",mods:[]}],disabled:r=>!r.chartManager.chartView||r.chartManager.getMode()==X.Play||r.chartManager.getMode()==X.Record,callback:r=>r.chartManager.setBeat(Math.max(0,r.chartManager.loadedChart.getBeatFromSeconds(0)))},jumpSongEnd:{label:"Jump to song end",combos:[{key:"End",mods:[]}],disabled:r=>!r.chartManager.chartView||r.chartManager.getMode()==X.Play||r.chartManager.getMode()==X.Record,callback:r=>r.chartManager.setBeat(r.chartManager.loadedChart.getBeatFromSeconds(r.chartManager.chartAudio.getSongLength()))},assistTick:{label:"Assist tick",combos:[{key:"F7",mods:[]}],disabled:()=>!Ie.assist,callback:()=>{_.audio.assistTick=!_.audio.assistTick,Se.create("Assist Tick: "+(_.audio.assistTick?"on":"off"))}},metronome:{label:"Metronome",combos:[{key:"F7",mods:["Alt"]}],disabled:()=>!Ie.assist,callback:()=>{_.audio.metronome=!_.audio.metronome,Se.create("Metronome: "+(_.audio.metronome?"on":"off"))}},XMod:{label:"XMod (Beat-based)",combos:[{key:"X",mods:["Shift"]}],disabled:!1,callback:()=>{_.chart.CMod=!1,Se.create("Switched to XMod")}},CMod:{label:"CMod (Time-based)",combos:[{key:"C",mods:["Shift"]}],disabled:!1,callback:()=>{_.chart.CMod=!0,Se.create("Switched to CMod")}},reverse:{label:"Reverse playfield",combos:[],disabled:!1,callback:()=>{_.chart.reverse=!_.chart.reverse,Se.create("Reverse Playfield: "+(_.chart.reverse?"on":"off"))}},hideWarpedArrows:{label:"Hide warped notes (CMod only)",combos:[{key:"W",mods:["Shift"]}],disabled:!1,callback:()=>{_.chart.hideWarpedArrows=!_.chart.hideWarpedArrows,Se.create("Hide Warped Arrows: "+(_.chart.hideWarpedArrows?"on":"off"))}},hideFakedArrows:{label:"Hide faked notes (CMod only)",combos:[{key:"F",mods:["Shift"]}],disabled:!1,callback:()=>{_.chart.hideFakedArrows=!_.chart.hideFakedArrows,Se.create("Hide Faked Arrows: "+(_.chart.hideFakedArrows?"on":"off"))}},doSpeedChanges:{label:"Do speed changes (XMod only)",combos:[{key:"S",mods:["Shift"]}],disabled:!1,callback:()=>{_.chart.doSpeedChanges=!_.chart.doSpeedChanges,Se.create("Speed Changes: "+(_.chart.doSpeedChanges?"on":"off"))}},showEq:{label:"Equalizer",combos:[{key:"E",mods:["Shift"]}],disabled:r=>!r.chartManager.chartAudio||!Ie.openWindows,callback:r=>r.windowManager.openWindow(new cS(r))},detectSync:{label:"Detect audio sync",combos:[{key:"L",mods:["Shift"]}],disabled:r=>!r.chartManager.chartAudio||!Ie.openWindows,callback:r=>r.windowManager.openWindow(new yy(r))},previousNoteType:{label:"Previous note type",combos:[{key:"N",mods:[]}],disabled:r=>!r.chartManager.chartView||r.chartManager.getMode()==X.Play||r.chartManager.getMode()==X.Record,callback:r=>r.chartManager.previousNoteType()},nextNoteType:{label:"Next note type",combos:[{key:"M",mods:[]}],disabled:r=>!r.chartManager.chartView||r.chartManager.getMode()==X.Play||r.chartManager.getMode()==X.Record,callback:r=>r.chartManager.nextNoteType()},undo:{label:"Undo",combos:[{key:"Z",mods:[ct]}],disabled:r=>!r.actionHistory.canUndo()||r.chartManager.getMode()!=X.Edit,callback:r=>r.actionHistory.undo()},redo:{label:"Redo",combos:[{key:"Y",mods:[ct]},{key:"Z",mods:[ct,"Shift"]}],disabled:r=>!r.actionHistory.canRedo()||r.chartManager.getMode()!=X.Edit,callback:r=>r.actionHistory.redo()},mousePlacement:{label:"Enable Mouse Note Placement",combos:[{key:"M",mods:["Shift"]}],disabled:!1,callback:()=>{_.chart.mousePlacement=!_.chart.mousePlacement,Se.create("Mouse Note Placement: "+(_.chart.mousePlacement?"on":"off"))}},playMode:{label:"Enter/Exit Play Mode",combos:[{key:"P",mods:[]}],disabled:r=>!r.chartManager.chartView||r.chartManager.getMode()==X.Record||!Ie.playMode,callback:r=>r.chartManager.setMode(X.Play)},recordMode:{label:"Enter/Exit Record Mode",combos:[{key:"R",mods:[]}],disabled:r=>!r.chartManager.chartView||r.chartManager.getMode()==X.Play||r.chartManager.getMode()==X.View||!Ie.recordMode,callback:r=>r.chartManager.setMode(X.Record)},playModeStart:{label:"Play from start",combos:[{key:"P",mods:["Shift"]}],disabled:r=>!r.chartManager.chartView||r.chartManager.getMode()==X.Record||!Ie.playMode,callback:r=>{r.chartManager.setBeat(0),r.chartManager.setMode(X.Play)}},recordModeStart:{label:"Record from start",combos:[{key:"R",mods:["Shift"]}],disabled:r=>!r.chartManager.chartView||r.chartManager.getMode()==X.Play||r.chartManager.getMode()==X.View||!Ie.recordMode,callback:r=>r.chartManager.setMode(X.Record)},options:{label:"Options...",bindLabel:"Edit options",combos:[{key:",",mods:[ct]}],disabled:()=>!Ie.openWindows||!Ie.openWindows,callback:r=>{r.windowManager.openWindow(new OS(r))}},keybinds:{label:"Keybinds...",bindLabel:"Edit keybinds",combos:[],disabled:()=>!Ie.openWindows||!Ie.openWindows,callback:r=>{r.windowManager.openWindow(new Ui(r))}},gameplayKeybinds:{label:"Gameplay keybinds...",bindLabel:"Edit gameplay keybinds",combos:[],disabled:()=>!Ie.openWindows||!Ie.openWindows,callback:r=>{r.windowManager.openWindow(new pS(r))}},themes:{label:"Themes...",bindLabel:"Edit themes",combos:[],disabled:()=>!Ie.openWindows||!Ie.openWindows||fa.isOpen,callback:r=>{r.windowManager.openWindow(new Wc(r))}},convertHoldsRolls:{label:"Holds to rolls",bindLabel:"Convert holds to rolls",combos:[],disabled:r=>r.chartManager.selection.notes.length==0||r.chartManager.getMode()!=X.Edit,callback:r=>{r.chartManager.modifySelection(e=>(e.type=="Hold"&&(e.type="Roll"),e))}},convertRollsHolds:{label:"Rolls to holds",bindLabel:"Convert rolls to holds",combos:[],disabled:r=>r.chartManager.selection.notes.length==0||r.chartManager.getMode()!=X.Edit,callback:r=>{r.chartManager.modifySelection(e=>(e.type=="Roll"&&(e.type="Hold"),e))}},swapHoldsRolls:{label:"Swap holds and rolls",combos:[],disabled:r=>r.chartManager.selection.notes.length==0||r.chartManager.getMode()!=X.Edit,callback:r=>{r.chartManager.modifySelection(e=>(e.type=="Hold"?e.type="Roll":e.type=="Roll"&&(e.type="Hold"),e))}},convertHoldsTaps:{label:"Holds/rolls to taps",bindLabel:"Convert holds/rolls to taps",combos:[],disabled:r=>r.chartManager.selection.notes.length==0||r.chartManager.getMode()!=X.Edit,callback:r=>{r.chartManager.modifySelection(e=>((e.type=="Hold"||e.type=="Roll")&&(e.type="Tap"),e))}},convertTapsMines:{label:"Taps to mines",bindLabel:"Convert ntapsotes to mines",combos:[],disabled:r=>r.chartManager.selection.notes.length==0||r.chartManager.getMode()!=X.Edit,callback:r=>{r.chartManager.modifySelection(e=>(e.type=="Tap"&&(e.type="Mine"),e))}},convertTapsLifts:{label:"Taps to lifts",bindLabel:"Convert taps to lifts",combos:[],disabled:r=>r.chartManager.selection.notes.length==0||r.chartManager.getMode()!=X.Edit,callback:r=>{r.chartManager.modifySelection(e=>(e.type=="Tap"&&(e.type="Lift"),e))}},convertTapsFakes:{label:"Taps to fakes",bindLabel:"Convert taps to fakes",combos:[],disabled:r=>r.chartManager.selection.notes.length==0||r.chartManager.getMode()!=X.Edit,callback:r=>{r.chartManager.modifySelection(e=>(e.type=="Tap"&&(e.type="Fake"),e))}},mirrorHorizontally:{label:"Horizontally",bindLabel:"Mirror horizontally",combos:[],disabled:r=>r.chartManager.selection.notes.length==0||r.chartManager.getMode()!=X.Edit,callback:r=>{r.chartManager.modifySelection(e=>(e.col=r.chartManager.loadedChart.gameType.flipColumns.horizontal[e.col],e))}},mirrorVertically:{label:"Vertically",bindLabel:"Mirror vertically",combos:[],disabled:r=>r.chartManager.selection.notes.length==0||r.chartManager.getMode()!=X.Edit,callback:r=>{r.chartManager.modifySelection(e=>(e.col=r.chartManager.loadedChart.gameType.flipColumns.vertical[e.col],e))}},mirrorBoth:{label:"Both",bindLabel:"Mirror both",combos:[],disabled:r=>r.chartManager.selection.notes.length==0||r.chartManager.getMode()!=X.Edit,callback:r=>{r.chartManager.modifySelection(e=>(e.col=r.chartManager.loadedChart.gameType.flipColumns.horizontal[e.col],e.col=r.chartManager.loadedChart.gameType.flipColumns.vertical[e.col],e))}},selectBeforeCursor:{label:"Select before cursor",combos:[{key:"Home",mods:["Shift"]}],disabled:r=>!r.chartManager.loadedChart,callback:r=>{r.chartManager.editTimingMode==Ne.Off?r.chartManager.setNoteSelection(r.chartManager.loadedChart.getNotedata().filter(e=>e.beate.beat!r.chartManager.loadedChart,callback:r=>{r.chartManager.editTimingMode==Ne.Off?r.chartManager.setNoteSelection(r.chartManager.loadedChart.getNotedata().filter(e=>e.beat>r.chartManager.getBeat())):r.chartManager.setEventSelection(r.chartManager.loadedChart.timingData.getTimingData().filter(e=>e.beat>r.chartManager.getBeat()))}},selectAll:{label:"Select all",combos:[{key:"A",mods:[ct]}],disabled:r=>!r.chartManager.loadedChart,callback:r=>{r.chartManager.editTimingMode==Ne.Off?r.chartManager.setNoteSelection(r.chartManager.loadedChart.getNotedata()):r.chartManager.setEventSelection(r.chartManager.loadedChart.timingData.getTimingData())}},expand2to1:{label:"Expand 2:1 (8th to 4th)",combos:[],disabled:r=>r.chartManager.selection.notes.length<2||r.chartManager.getMode()!=X.Edit,callback:r=>{const e=Math.min(...r.chartManager.selection.notes.map(t=>t.beat));r.chartManager.modifySelection(t=>(t.beat=(t.beat-e)*2+e,t.beat=Math.round(t.beat*48)/48,Le(t)&&(t.hold*=2,t.hold=Math.round(t.hold*48)/48),t))}},expand3to2:{label:"Expand 3:2 (12th to 8th)",combos:[],disabled:r=>r.chartManager.selection.notes.length<2||r.chartManager.getMode()!=X.Edit,callback:r=>{const e=Math.min(...r.chartManager.selection.notes.map(t=>t.beat));r.chartManager.modifySelection(t=>(t.beat=(t.beat-e)*1.5+e,t.beat=Math.round(t.beat*48)/48,Le(t)&&(t.hold*=1.5,t.hold=Math.round(t.hold*48)/48),t))}},expand4to3:{label:"Expand 4:3 (16th to 2th)",combos:[],disabled:r=>r.chartManager.selection.notes.length<2||r.chartManager.getMode()!=X.Edit,callback:r=>{const e=Math.min(...r.chartManager.selection.notes.map(t=>t.beat));r.chartManager.modifySelection(t=>(t.beat=(t.beat-e)*4/3+e,t.beat=Math.round(t.beat*48)/48,Le(t)&&(t.hold*=4/3,t.hold=Math.round(t.hold*48)/48),t))}},compress1to2:{label:"Compress 1:2 (4th to 8th)",combos:[],disabled:r=>r.chartManager.selection.notes.length<2||r.chartManager.getMode()!=X.Edit,callback:r=>{const e=Math.min(...r.chartManager.selection.notes.map(t=>t.beat));r.chartManager.modifySelection(t=>(t.beat=(t.beat-e)/2+e,t.beat=Math.round(t.beat*48)/48,Le(t)&&(t.hold/=2,t.hold=Math.round(t.hold*48)/48),t))}},compress2to3:{label:"Compress 2:3 (8th to 12th)",combos:[],disabled:r=>r.chartManager.selection.notes.length<2||r.chartManager.getMode()!=X.Edit,callback:r=>{const e=Math.min(...r.chartManager.selection.notes.map(t=>t.beat));r.chartManager.modifySelection(t=>(t.beat=(t.beat-e)/1.5+e,t.beat=Math.round(t.beat*48)/48,Le(t)&&(t.hold/=1.5,t.hold=Math.round(t.hold*48)/48),t))}},compress3to4:{label:"Compress 3:4 (12th to 16th)",combos:[],disabled:r=>r.chartManager.selection.notes.length<2||r.chartManager.getMode()!=X.Edit,callback:r=>{const e=Math.min(...r.chartManager.selection.notes.map(t=>t.beat));r.chartManager.modifySelection(t=>(t.beat=(t.beat-e)*.75+e,t.beat=Math.round(t.beat*48)/48,Le(t)&&(t.hold*=.75,t.hold=Math.round(t.hold*48)/48),t))}},quantize4th:{label:"4ths",bindLabel:"Quantize to 4ths",combos:[],disabled:r=>r.chartManager.selection.notes.length==0||r.chartManager.getMode()!=X.Edit,callback:r=>{r.chartManager.modifySelection(e=>(e.beat=r.chartManager.getClosestTick(e.beat,4),e.beat=Math.round(e.beat*48)/48,e))}},quantize8th:{label:"8ths",bindLabel:"Quantize to 8ths",combos:[],disabled:r=>r.chartManager.selection.notes.length==0||r.chartManager.getMode()!=X.Edit,callback:r=>{r.chartManager.modifySelection(e=>(e.beat=r.chartManager.getClosestTick(e.beat,8),e.beat=Math.round(e.beat*48)/48,e))}},quantize12th:{label:"12ths",bindLabel:"Quantize to 12ths",combos:[],disabled:r=>r.chartManager.selection.notes.length==0||r.chartManager.getMode()!=X.Edit,callback:r=>{r.chartManager.modifySelection(e=>(e.beat=r.chartManager.getClosestTick(e.beat,12),e.beat=Math.round(e.beat*48)/48,e))}},quantize16th:{label:"16ths",bindLabel:"Quantize to 16ths",combos:[],disabled:r=>r.chartManager.selection.notes.length==0||r.chartManager.getMode()!=X.Edit,callback:r=>{r.chartManager.modifySelection(e=>(e.beat=r.chartManager.getClosestTick(e.beat,16),e.beat=Math.round(e.beat*48)/48,e))}},quantize24th:{label:"24ths",bindLabel:"Quantize to 24ths",combos:[],disabled:r=>r.chartManager.selection.notes.length==0||r.chartManager.getMode()!=X.Edit,callback:r=>{r.chartManager.modifySelection(e=>(e.beat=r.chartManager.getClosestTick(e.beat,24),e.beat=Math.round(e.beat*48)/48,e))}},quantize32nd:{label:"32nds",bindLabel:"Quantize to 32nds",combos:[],disabled:r=>r.chartManager.selection.notes.length==0||r.chartManager.getMode()!=X.Edit,callback:r=>{r.chartManager.modifySelection(e=>(e.beat=r.chartManager.getClosestTick(e.beat,32),e.beat=Math.round(e.beat*48)/48,e))}},quantize48th:{label:"48ths",bindLabel:"Quantize to 48ths",combos:[],disabled:r=>r.chartManager.selection.notes.length==0||r.chartManager.getMode()!=X.Edit,callback:r=>{r.chartManager.modifySelection(e=>(e.beat=r.chartManager.getClosestTick(e.beat,48),e.beat=Math.round(e.beat*48)/48,e))}},quantize96th:{label:"96ths",bindLabel:"Quantize to 96ths",combos:[],disabled:r=>r.chartManager.selection.notes.length==0||r.chartManager.getMode()!=X.Edit,callback:r=>{r.chartManager.modifySelection(e=>(e.beat=r.chartManager.getClosestTick(e.beat,96),e.beat=Math.round(e.beat*48)/48,e))}},delete:{label:"Delete",combos:[{key:"Backspace",mods:[]},{key:"Delete",mods:[]}],disabled:r=>r.chartManager.getMode()!=X.Edit||r.chartManager.selection.notes.length==0&&r.chartManager.eventSelection.timingEvents.length==0,callback:r=>{r.chartManager.deleteSelection(),r.chartManager.deleteEventSelection()}},paste:{label:"Paste",combos:[{mods:[ct],key:"V"}],preventDefault:!1,disabled:r=>!r.chartManager.chartView||r.chartManager.getMode()!=X.Edit,callback:async r=>{const e=await navigator.clipboard.readText();r.chartManager.paste(e)}},pasteReplace:{label:"Clear and paste",combos:[{mods:[ct,"Shift"],key:"V"}],preventDefault:!1,disabled:r=>!r.chartManager.chartView||r.chartManager.getMode()!=X.Edit,callback:async r=>{const e=await navigator.clipboard.readText();r.chartManager.paste(e,!0)}},copy:{label:"Copy",combos:[{mods:[ct],key:"C"}],preventDefault:!1,disabled:r=>!r.chartManager.chartView||r.chartManager.getMode()!=X.Edit||!r.chartManager.hasSelection(),callback:async r=>{const e=r.chartManager.copy();e&&await navigator.clipboard.writeText(e)}},cut:{label:"Cut",combos:[{mods:[ct],key:"X"}],preventDefault:!1,disabled:r=>!r.chartManager.chartView||r.chartManager.getMode()!=X.Edit||!r.chartManager.hasSelection(),callback:async r=>{const e=r.chartManager.copy();e&&await navigator.clipboard.writeText(e),r.chartManager.deleteSelection()}},adjustOffset:{label:"Adjust offset",combos:[],disabled:()=>!Ie.openWindows,callback:r=>r.windowManager.openWindow(new xS(r))},setSongPreview:{label:"Set as song preview",combos:[],disabled:r=>!r.chartManager.chartView||r.chartManager.getMode()!=X.Edit||!r.chartManager.hasRange(),callback:r=>{const e=r.chartManager.loadedChart,t=r.chartManager.loadedSM.properties.SAMPLESTART??"0",i=r.chartManager.loadedSM.properties.SAMPLELENGTH??"10";let s="",n="";if(r.chartManager.startRegion!==void 0&&r.chartManager.endRegion!==void 0){const a=e.getSecondsFromBeat(r.chartManager.startRegion),o=e.getSecondsFromBeat(r.chartManager.endRegion);s=ae(a,3).toString(),n=ae(o-a,3).toString()}else{const o=(r.chartManager.selection.notes.length>0?r.chartManager.selection.notes:r.chartManager.eventSelection.timingEvents).map(d=>d.beat),l=e.getSecondsFromBeat(Math.min(...o)),c=e.getSecondsFromBeat(Math.max(...o));s=ae(l,3).toString(),n=ae(c-l,3).toString()}mt.instance.run({action:a=>{a.chartManager.loadedSM.properties.SAMPLESTART=s,a.chartManager.loadedSM.properties.SAMPLELENGTH=n},undo:()=>{r.chartManager.loadedSM.properties.SAMPLESTART=t,r.chartManager.loadedSM.properties.SAMPLELENGTH=i}})}},showDebugTimers:{label:"Toggle Debug Timers",combos:[{key:"F3",mods:["Shift"]}],disabled:!1,callback:()=>{_.debug.showTimers=!_.debug.showTimers}},showFPSCounter:{label:"Toggle FPS Counter",combos:[{key:"F3",mods:[]}],disabled:!1,callback:()=>{_.debug.showFPS=!_.debug.showFPS}},noteTypeTap:{label:"Switch to Taps",combos:[],disabled:r=>!r.chartManager.chartView,callback:r=>{r.chartManager.setEditingNoteType("Tap")}},noteTypeLift:{label:"Switch to Lifts",combos:[],disabled:r=>!r.chartManager.chartView,callback:r=>{r.chartManager.setEditingNoteType("Lift")}},noteTypeMine:{label:"Switch to Mines",combos:[],disabled:r=>!r.chartManager.chartView,callback:r=>{r.chartManager.setEditingNoteType("Mine")}},noteTypeFake:{label:"Switch to Fakes",combos:[],disabled:r=>!r.chartManager.chartView,callback:r=>{r.chartManager.setEditingNoteType("Fake")}},quant4:{label:"Switch to 4ths",combos:[],disabled:r=>!r.chartManager.chartView,callback:()=>{_.chart.snap=1}},quant8:{label:"Switch to 8ths",combos:[],disabled:r=>!r.chartManager.chartView,callback:()=>{_.chart.snap=1/2}},quant12:{label:"Switch to 12ths",combos:[],disabled:r=>!r.chartManager.chartView,callback:()=>{_.chart.snap=1/3}},quant16:{label:"Switch to 16ths",combos:[],disabled:r=>!r.chartManager.chartView,callback:()=>{_.chart.snap=1/4}},quant24:{label:"Switch to 24ths",combos:[],disabled:r=>!r.chartManager.chartView,callback:()=>{_.chart.snap=1/6}},quant32:{label:"Switch to 32ths",combos:[],disabled:r=>!r.chartManager.chartView,callback:()=>{_.chart.snap=1/8}},quant48:{label:"Switch to 48ths",combos:[],disabled:r=>!r.chartManager.chartView,callback:()=>{_.chart.snap=1/12}},quant96:{label:"Switch to 96ths",combos:[],disabled:r=>!r.chartManager.chartView,callback:()=>{_.chart.snap=1/24}},quant192:{label:"Switch to 192nds",combos:[],disabled:r=>!r.chartManager.chartView,callback:()=>{_.chart.snap=1/48}},openGuide:{label:"Open Help Guide",combos:[],disabled:!1,callback:()=>{window.open("/smeditor/guide/")}},noteskinWindow:{label:"Noteskins...",bindLabel:"Open Noteskin Window",combos:[{mods:["Shift"],key:"N"}],disabled:r=>!r.chartManager.chartView,callback:r=>r.windowManager.openWindow(new _S(r))},previousChart:{label:"Previous chart",combos:[{key:"F5",mods:[]}],disabled:r=>!r.chartManager.chartView,callback:r=>{if(!r.chartManager.loadedSM?.charts||!r.chartManager.loadedChart)return;const e=r.chartManager.loadedSM?.charts[r.chartManager.loadedChart.gameType.id],t=e.indexOf(r.chartManager.loadedChart);e[t-1]&&r.chartManager.loadChart(e[t-1])}},nextChart:{label:"Next chart",combos:[{key:"F6",mods:[]}],disabled:r=>!r.chartManager.chartView,callback:r=>{if(!r.chartManager.loadedSM?.charts||!r.chartManager.loadedChart)return;const e=r.chartManager.loadedSM?.charts[r.chartManager.loadedChart.gameType.id],t=e.indexOf(r.chartManager.loadedChart);e[t+1]&&r.chartManager.loadChart(e[t+1])}}};class NS{static popup;static open(e,t){this.popup=this.build(e,t),document.getElementById("popups")?.appendChild(this.popup)}static build(e,t){const i=document.createElement("div");i.classList.add("update-popup");const s=document.createElement("div");s.classList.add("title"),s.innerText=`A new version of the desktop app is available! (${e})`;const n=document.createElement("div");return n.classList.add("desc"),n.innerText="Click here to download the new version.",i.replaceChildren(s,n),i.onclick=()=>{localStorage.setItem("downloadedVersion",e),nw.require("nw.gui").Shell.openExternal(t),this.close()},i}static close(){this.popup&&(this.popup.style.opacity="0",this.popup.onclick=null,setTimeout(()=>this.popup.remove(),300))}}class jt extends ng{static graphics=new An;static textures={default:Ft.create({width:50,height:50}),noBorder:Ft.create({width:50,height:50}),onlyBorder:Ft.create({width:50,height:50})};static init(e){this.textures.default=Ft.create({width:50,height:50,resolution:e.resolution}),this.textures.noBorder=Ft.create({width:50,height:50,resolution:e.resolution}),this.textures.onlyBorder=Ft.create({width:50,height:50,resolution:e.resolution}),this.graphics.beginFill(16777215,1),this.graphics.lineStyle(1,0),this.graphics.drawRoundedRect(0,0,50,50,5),this.graphics.endFill(),e.render(this.graphics,{renderTexture:this.textures.default}),this.graphics.clear(),this.graphics.beginFill(16777215,1),this.graphics.lineStyle(0,16777215),this.graphics.drawRoundedRect(0,0,50,50,5),this.graphics.endFill(),e.render(this.graphics,{renderTexture:this.textures.noBorder}),this.graphics.clear(),this.graphics.beginFill(16777215,0),this.graphics.lineStyle(2,16777215),this.graphics.drawRoundedRect(0,0,50,50,5),this.graphics.endFill(),e.render(this.graphics,{renderTexture:this.textures.onlyBorder})}constructor(e){super(jt.textures[e??"default"],5,5,5,5)}}const Xn=[];function vf(){return Xn.length}function rM(){for(Xn.push(Date.now());Xn.length>0&&Xn[0]0&&qn[0]vf()+" FPS"});drawUpdateTimeGraph=new Fn({width:300,height:wi,color:6034982,min:0,unit:"ms",label:"DrawUpdate",precision:1});updateTimeGraph=new Fn({width:300,height:wi,color:1516101,min:0,unit:"ms",label:"Update",precision:1,sublabel:()=>bf()+" TPS"});memoryTimeGraph=new Fn({width:300,height:wi,color:6626406,min:0,formatter:e=>Math.round(e/1048576)+" MB",label:"Memory"});cpuGraph=new Fn({width:300,height:wi,color:5190685,min:0,label:"CPU"});graphs=new Ee;fpsCounter=new Ee;fpsBg=new jt("noBorder");fpsText=new De("",{fontName:"Main",fontSize:12});lastFrameTime=0;constructor(e){super(e),this.drawUpdateTimeGraph.y+=wi+5,this.updateTimeGraph.y+=(wi+5)*2,this.memoryTimeGraph.y+=(wi+5)*3,this.cpuGraph.y+=(wi+5)*4,ma.instance=this,this.fpsText.x=5,this.fpsBg.y=-5,Qe(this.fpsBg,"--widget-bg"),Qe(this.fpsText,"--text-color"),this.graphs.addChild(this.frameTimeGraph,this.drawUpdateTimeGraph,this.updateTimeGraph),performance.memory&&this.graphs.addChild(this.memoryTimeGraph),this.fpsCounter.addChild(this.fpsBg,this.fpsText),this.graphs.visible=_.debug.showTimers,this.fpsCounter.visible=_.debug.showFPS,this.addChild(this.graphs,this.fpsCounter)}update(){this.x=-this.manager.app.renderer.screen.width/2+20,this.y=-this.manager.app.renderer.screen.height/2+20,this.graphs.children.forEach(e=>e.update()),this.graphs.visible=_.debug.showTimers,this.fpsCounter.visible=_.debug.showFPS,this.fpsText.text=`${vf()} FPS +`;class at{view;input;onChange;min=-Number.MAX_VALUE;max=Number.MAX_VALUE;precision;step=1;lastVal="";constructor(e,t,i,s,n,a){this.view=e,this.view.classList.add("spinner"),this.view.onfocus=()=>{o.focus()};const o=document.createElement("input");o.classList.add("spinner-input"),o.type="text",o.autocomplete="off",o.spellcheck=!1,o.onblur=()=>{if(o.value===this.lastVal)return;if(o.value===""){this.onChange?.(void 0);return}const h=ua(o.value);if(h===null){o.value=this.lastVal;return}let u=ae(h,this.precision??3);u=Be(u,this.min,this.max),o.value=this.formatValue(u),this.onChange?.(u)},o.onkeydown=h=>{h.key=="Enter"&&o.blur(),h.key=="Escape"&&(o.value=this.lastVal,o.blur())},o.onfocus=()=>{this.lastVal=o.value},this.input=o,this.min=n??this.min,this.max=a??this.max,this.step=i,this.precision=s,this.setValue(t),e.appendChild(o);const l=document.createElement("div");l.classList.add("spinner-btns"),e.appendChild(l);const c=document.createElement("button");c.classList.add("spinner-up"),c.appendChild(Ae.getIcon("CHEVRON",10)),c.tabIndex=-1,c.onclick=h=>{let u=i??_.general.spinnerStep;h.getModifierState("Shift")&&(u/=10),!(a!==void 0&&parseFloat(o.value)+u>a)&&(o.value=this.formatValue(parseFloat(o.value)+u),this.onChange?.(parseFloat(o.value)))},l.appendChild(c);const d=document.createElement("button");d.classList.add("spinner-down"),d.appendChild(Ae.getIcon("CHEVRON",10)),d.tabIndex=-1,d.onclick=h=>{let u=i??_.general.spinnerStep;h.getModifierState("Shift")&&(u/=10),!(n!==void 0&&parseFloat(o.value)-ur.chartManager.loadAudio()}},{title:"Background Image",propName:"BACKGROUND",input:{type:"file",typeName:"image",accept:ns}},{title:"Banner Image",propName:"BANNER",input:{type:"file",typeName:"image",accept:ns}},{title:"CD Title",propName:"CDTITLE",input:{type:"file",typeName:"image",accept:ns}},{title:"CD Image",propName:"CDIMAGE",input:{type:"file",typeName:"image",accept:ns}},{title:"Jacket",propName:"JACKET",input:{type:"file",typeName:"image",accept:ns}},{title:"Disc Image",propName:"DISCIMAGE",input:{type:"file",typeName:"image",accept:ns}}]},{title:"Song",items:[{title:"Song Preview",propName:"SAMPLESTART",input:{type:"custom",create:(r,e,t)=>{const i=t??mt.instance,s=()=>{a.value{(e??p.chartManager.loadedSM).properties.SAMPLESTART=h,(e??p.chartManager.loadedSM).properties.SAMPLELENGTH=u,n.setValue(parseFloat(h)),a.setValue(parseFloat(h)+parseFloat(u))},undo:()=>{(e??r.chartManager.loadedSM).properties.SAMPLESTART=c,(e??r.chartManager.loadedSM).properties.SAMPLELENGTH=d,n.setValue(parseFloat(c)),a.setValue(parseFloat(c)+parseFloat(d))}})},n=at.create(parseFloat((e??r.chartManager.loadedSM).properties.SAMPLESTART??"0"),void 0,3,0);n.onChange=c=>{if(c===void 0){n.setValue(parseFloat((e??r.chartManager.loadedSM).properties.SAMPLESTART??"0"));return}s()};const a=at.create(parseFloat((e??r.chartManager.loadedSM).properties.SAMPLESTART??"0")+parseFloat((e??r.chartManager.loadedSM).properties.SAMPLELENGTH??"10"),void 0,3,0);a.onChange=c=>{if(c===void 0){a.setValue(parseFloat((e??r.chartManager.loadedSM).properties.SAMPLESTART??"0")+parseFloat((e??r.chartManager.loadedSM).properties.SAMPLELENGTH??"10"));return}s()};const o=document.createElement("div"),l=document.createElement("div");return l.innerText="to",o.classList.add("flex-row","flex-column-gap"),o.replaceChildren(n.view,l,a.view),o}}}]}];function fy(r,e,t,i){const s=i??mt.instance;switch(e.input.type){case"custom":return e.input.create(r,t,i);case"string":{const n=document.createElement("input");return n.type="text",n.autocomplete="off",n.spellcheck=!1,n.onkeydown=a=>{a.key=="Enter"&&n.blur()},n.onblur=()=>{const a=(t??r.chartManager.loadedSM).properties[e.propName],o=n.value;s.run({action:l=>{(t??l.chartManager.loadedSM).properties[e.propName]=o,n.value=o},undo:()=>{(t??r.chartManager.loadedSM).properties[e.propName]=a,n.value=a??""}})},n.value=(t??r.chartManager.loadedSM).properties[e.propName]??"",n}case"number":{const n=e.input,a=at.create(parseFloat((t??r.chartManager.loadedSM).properties[e.propName])??15,n.step,n.precision,n.min,n.max);return a.onChange=o=>{if(o===void 0){a.setValue(parseFloat((t??r.chartManager.loadedSM).properties[e.propName]??"0"));return}const l=(t??r.chartManager.loadedSM).properties[e.propName],c=o.toString();s.run({action:d=>{(t??d.chartManager.loadedSM).properties[e.propName]=c,a.setValue(parseFloat(c))},undo:()=>{(t??r.chartManager.loadedSM).properties[e.propName]=l,a.setValue(parseFloat(l??"0"))}})},a.view}case"file":{const n=e.input,a=e.input.onChange,o=document.createElement("div");o.classList.add("flex-row","flex-column-gap");const l=document.createElement("input");l.type="text",l.autocomplete="off",l.spellcheck=!1,l.placeholder="click to select a file",l.onclick=h=>{h.preventDefault(),l.blur();const u=Ot(r.chartManager.smPath);if(window.nw){const p=document.createElement("input");p.type="file",p.accept=n.accept.join(","),p.onchange=()=>{const f=Ue.getRelativePath(u,p.value),m=(t??r.chartManager.loadedSM).properties[e.propName]??"";s.run({action:g=>{(t??g.chartManager.loadedSM).properties[e.propName]=f,l.value=f},undo:()=>{(t??r.chartManager.loadedSM).properties[e.propName]=m,l.value=m}}),a?.(r)},p.click()}else r.windowManager.openWindow(new Id(r,{title:`Select a${n.typeName.match(/^[aieouAIEOU].*/)?"n":""} ${n.typeName} file...`,accepted_file_types:n.accept,disableClose:!0,callback:p=>{const f=Ue.getRelativePath(u,p),m=(t??r.chartManager.loadedSM).properties[e.propName]??"";s.run({action:g=>{(t??g.chartManager.loadedSM).properties[e.propName]=f,l.value=f},undo:()=>{(t??r.chartManager.loadedSM).properties[e.propName]=m,l.value=m}}),a?.(r)}},(t??r.chartManager.loadedSM).properties[e.propName]?u+"/"+(t??r.chartManager.loadedSM).properties[e.propName]:r.chartManager.smPath))},l.value=(t??r.chartManager.loadedSM).properties[e.propName]??"",o.appendChild(l);const c=document.createElement("button");c.style.height="100%",c.classList.add("delete"),c.disabled=!(t??r.chartManager.loadedSM).properties[e.propName],c.onclick=()=>{l.value="",c.disabled=!0};const d=Ae.getIcon("TRASH",12);return c.appendChild(d),o.appendChild(c),o}}}class my extends St{app;sm;actionHistory;fileTable={};constructor(e){super({title:"New Song",width:450,height:492,disableClose:!0,win_id:"sm_properties",blocking:!0});const t=new Blob([yS],{type:"text/plain"}),i=new File([t],"song.sm",{type:"text/plain"});this.sm=new uy(i),this.app=e,this.actionHistory=new mt(this.app),this.initView()}initView(){this.viewElement.replaceChildren(),this.viewElement.classList.add("sm-properties");const e=document.createElement("div");e.classList.add("padding");const t=document.createElement("div");t.classList.add("label"),t.innerText="Apply to",py.forEach(l=>{const c=document.createElement("div");c.classList.add("sm-container");const d=document.createElement("div");d.classList.add("sm-title"),d.innerText=l.title;const h=document.createElement("div");h.classList.add("property-grid"),l.items.forEach(u=>{const p=document.createElement("div");p.classList.add("label"),p.innerText=u.title,h.appendChild(p),u.input.type=="file"?h.appendChild(this.createFileElement(u.propName,u.input.typeName)):h.appendChild(fy(this.app,u,this.sm,this.actionHistory))}),c.appendChild(d),c.appendChild(h),e.appendChild(c)});const i=document.createElement("div");i.classList.add("menu-options");const s=document.createElement("div");s.classList.add("menu-left");const n=document.createElement("div");n.classList.add("menu-right"),i.appendChild(s),i.appendChild(n);const a=document.createElement("button");a.innerText="Cancel",a.onclick=()=>{this.closeWindow()};const o=document.createElement("button");o.innerText="Create",o.classList.add("confirm"),o.onclick=()=>{this.sm.properties.MUSIC===void 0||this.sm.properties.MUSIC===""?this.app.windowManager.openWindow(new El(this.app,"No audio file uploaded","Are you sure you want to create a file with no audio?",[{type:"confirm",label:"Yes",callback:()=>{this.createSong(),this.closeWindow()}},{type:"default",label:"No"}])):(this.createSong(),this.closeWindow())},s.appendChild(a),n.appendChild(o),e.appendChild(i),this.viewElement.appendChild(e)}async createSong(){let e=this.sm.properties.TITLE;if(window.nw){const t=nw.require("path"),i=document.createElement("input");i.type="file",i.nwsaveas=e+".sm",i.onchange=async()=>{const s=t.basename(i.value,t.extname(i.value));e=t.dirname(i.value);const n=t.join(e,s+".sm");await Ue.writeFile(n,this.sm.serialize("sm")),await Promise.all(Object.entries(this.fileTable).map(a=>Ue.writeFile(e+`/${a[0]}`,a[1]))),await this.app.chartManager.loadSM(n),this.app.windowManager?.getWindowById("select_sm_initial")?.closeWindow()},i.click()}else{if(await Ue.getDirectoryHandle(e)){let t=2;for(;await Ue.getDirectoryHandle(e);)e=`${this.sm.properties.TITLE} ${t++}`}await Ue.writeFile(e+"/song.sm",this.sm.serialize("sm")),await Promise.all(Object.entries(this.fileTable).map(t=>Ue.writeFile(e+`/${t[0]}`,t[1]))),await this.app.chartManager.loadSM(e+"/song.sm"),this.app.windowManager?.getWindowById("select_sm_initial")?.closeWindow()}}createFileElement(e,t){const i=document.createElement("div");i.classList.add("flex-row","flex-column-gap");const s=document.createElement("input");s.type="text",s.autocomplete="off",s.spellcheck=!1,s.placeholder="click to upload a file",s.style.color="white",s.readOnly=!0,s.onclick=o=>{o.preventDefault(),s.blur();const l=document.createElement("input");l.type="file",l.accept=t=="audio"?"audio/*":"image/*",l.onchange=()=>{const c=l.files?.[0];if(!c)return;this.sm.properties[e]&&this.fileTable[this.sm.properties[e]]&&delete this.fileTable[this.sm.properties[e]];let d=c.name;for(;this.fileTable[c.name]&&(this.fileTable[c.name].size!=c.size||this.fileTable[c.name].type!=c.type);)d="_"+d;this.fileTable[d]=c,s.value=d,this.sm.properties[e]=s.value,n.disabled=!1},l.click()},s.value=this.sm.properties[e]??"",i.appendChild(s);const n=document.createElement("button");n.style.height="100%",n.classList.add("delete"),n.disabled=!0,n.onclick=()=>{this.sm.properties[e]&&this.fileTable[this.sm.properties[e]]&&delete this.fileTable[this.sm.properties[e]],this.sm.properties[e]=void 0,s.value="",n.disabled=!0};const a=Ae.getIcon("TRASH",12);return n.appendChild(a),i.appendChild(n),i}}class gy extends St{app;keyHandler;constructor(e,t=!0){super({title:"Open a Song",width:400,height:320,disableClose:t,win_id:"select_sm_initial"}),this.app=e,this.keyHandler=this.handleKeyEvent.bind(this),window.addEventListener("keydown",this.keyHandler),this.initView(),K.on("resize",()=>{this.move(window.innerWidth/2-this.options.width/2,window.innerHeight/2-this.options.height/2)})}onClose(){window.removeEventListener("keydown",this.keyHandler)}initView(){this.viewElement.replaceChildren();const e=document.createElement("div");e.classList.add("padding");const t=document.createElement("div");t.classList.add("open-container"),e.appendChild(t);const i=document.createElement("div");i.classList.add("top-container");const s=document.createElement("div");s.classList.add("separator"),s.style.margin="10px";const n=document.createElement("div");n.classList.add("bottom-container"),t.appendChild(i),t.appendChild(s),t.appendChild(n);const a=document.createElement("button");a.style.display="flex",a.style.flexDirection="column",a.style.padding="10px",a.style.backgroundColor="#414352",a.style.color="white",i.appendChild(a);const o=Ae.getIcon("UPLOAD",30);a.appendChild(o);const l=document.createElement("div");l.innerText=window.nw?"Open an existing song":"Import a song folder",a.appendChild(l),a.onclick=()=>{if(window.nw){const f=document.createElement("input");f.type="file",f.accept=".sm,.ssc",f.onchange=()=>{this.app.chartManager.loadSM(f.value),this.closeWindow()},f.click()}else this.app.windowManager.openWindow(new Id(this.app,{title:"Select an sm/ssc file...",accepted_file_types:[".sm",".ssc"],disableClose:!0,callback:f=>{this.app.chartManager.loadSM(f),this.closeWindow()}}))};const c=document.createElement("button");c.style.display="flex",c.style.flexDirection="column",c.style.padding="10px",c.style.backgroundColor="#506352",c.style.color="white",i.appendChild(c);const d=Ae.getIcon("PLUS",30);c.appendChild(d);const h=document.createElement("div");h.innerText="New Song",c.appendChild(h),c.onclick=()=>{this.app.windowManager.openWindow(new my(this.app))};const u=document.createElement("div");u.innerText="Recently Opened",u.classList.add("title"),n.appendChild(u);const p=document.createElement("div");p.classList.add("recent-selector"),n.appendChild(p),cy.getRecents().then(f=>f.forEach(m=>{const g=document.createElement("div");g.classList.add("recent-item");const y=document.createElement("div");y.classList.add("recent-name"),y.innerText=m.name;const w=document.createElement("div");w.classList.add("recent-path"),w.innerText=m.path,g.appendChild(y),g.appendChild(w),g.onclick=()=>{p.querySelectorAll(".selected").forEach(b=>b.classList.remove("selected")),g.classList.add("selected")},g.ondblclick=()=>{this.app.chartManager.loadSM(m.path),this.closeWindow()},p.appendChild(g)})),this.viewElement.appendChild(e)}handleKeyEvent(e){if(!this.windowElement.classList.contains("focused"))return;const t=this.viewElement.querySelector(".selected");if(t){if(e.code=="ArrowUp"){e.preventDefault(),e.stopImmediatePropagation();const i=t.previousElementSibling;i&&(t.parentElement.querySelectorAll(".selected").forEach(s=>s.classList.remove("selected")),i.classList.add("selected"),ra(i,{scrollMode:"if-needed",block:"nearest",inline:"nearest"}))}if(e.code=="ArrowDown"){e.preventDefault(),e.stopImmediatePropagation();const i=t.nextElementSibling;i&&(t.parentElement.querySelectorAll(".selected").forEach(s=>s.classList.remove("selected")),i.classList.add("selected"),ra(i,{scrollMode:"if-needed",block:"nearest",inline:"nearest"}))}}}}function iM(){const r=new URLSearchParams(location.search),e=r.get("flags");if(e!=null){const n=new Set(e.split("").map(a=>bS[a]).filter(a=>a));for(const a of n.values())Ie[a]=!Ie[a]}const t=r.get("url");if(t!=null)try{Ie.url=new URL(t).toString()}catch{Se.createFormatted("Invalid url "+t,"warn"),Ie.url=null}const i=r.get("chartIndex");if(i!=null)try{Ie.chartIndex=parseInt(i)}catch{Se.createFormatted("Invalid chartIndex "+i,"warn"),Ie.chartIndex=null}const s=r.get("chartType");s!==null&&(We.getGameType(s)?Ie.chartType=s:(Se.createFormatted("Invalid chartType "+s,"warn"),Ie.chartType=null))}const vS={viewMode:{char:"V",name:"Force view mode (disables record mode)"},menuBar:{char:"M",name:"Hide menu bar"},playbackOptions:{char:"o",name:"Hide playback options"},barlines:{char:"B",name:"Hide barlines, waveform, and timing boxes"},assist:{char:"A",name:"Disable assist sounds"},recordMode:{char:"R",name:"Disable record mode"},playMode:{char:"P",name:"Disable play mode"},layout:{char:"L",name:"Hide note layout"},status:{char:"S",name:"Hide status bar"},autoPlay:{char:"a",name:"Play automatically"},openWindows:{char:"O",name:"Disable opening windows"},hidePoweredByText:{char:"H",name:'Hide "Powered by SMEditor" text'}},bS=Object.fromEntries(Object.entries(vS).map(([r,e])=>[e.char,r])),Ie={viewMode:!1,menuBar:!0,playbackOptions:!0,barlines:!0,assist:!0,recordMode:!0,playMode:!0,layout:!0,status:!0,autoPlay:!1,hidePoweredByText:!1,openWindows:!0,url:null,chartIndex:null,chartType:null},$n={file:{type:"menu",title:"File",options:[{type:"selection",id:"newSong"},{type:"selection",id:"openSong"},{type:"separator"},{type:"selection",id:"save"},{type:"selection",id:"export"}]},edit:{type:"menu",title:"Edit",options:[{type:"selection",id:"cut"},{type:"selection",id:"copy"},{type:"selection",id:"paste"},{type:"selection",id:"pasteReplace"},{type:"separator"},{type:"selection",id:"undo"},{type:"selection",id:"redo"},{type:"separator"},{type:"checkbox",id:"mousePlacement",checked:()=>_.chart.mousePlacement}]},view:{type:"menu",title:"View",options:[{type:"dropdown",title:"Cursor",options:[{type:"selection",id:"cursorUp"},{type:"selection",id:"cursorDown"},{type:"separator"},{type:"selection",id:"previousNote"},{type:"selection",id:"nextNote"},{type:"separator"},{type:"selection",id:"previousMeasure"},{type:"selection",id:"nextMeasure"},{type:"separator"},{type:"selection",id:"jumpChartStart"},{type:"selection",id:"jumpChartEnd"},{type:"separator"},{type:"selection",id:"jumpSongStart"},{type:"selection",id:"jumpSongEnd"}]},{type:"dropdown",title:"Snap",options:[{type:"selection",id:"decreaseSnap"},{type:"selection",id:"increaseSnap"}]},{type:"dropdown",title:"Scroll",options:[{type:"checkbox",id:"XMod",checked:()=>!_.chart.CMod},{type:"checkbox",id:"CMod",checked:()=>_.chart.CMod},{type:"separator"},{type:"selection",id:"increaseScrollSpeed"},{type:"selection",id:"decreaseScrollSpeed"}]},{type:"dropdown",title:"Zoom",options:[{type:"selection",id:"zoomIn"},{type:"selection",id:"zoomOut"},{type:"separator"},{type:"selection",id:"zoomDefault"}]},{type:"separator"},{type:"selection",id:"playMode"},{type:"selection",id:"playModeStart"},{type:"separator"},{type:"selection",id:"recordMode"},{type:"selection",id:"recordModeStart"},{type:"separator"},{type:"checkbox",id:"reverse",checked:()=>_.chart.reverse},{type:"checkbox",id:"hideWarpedArrows",checked:()=>_.chart.hideWarpedArrows},{type:"checkbox",id:"hideFakedArrows",checked:()=>_.chart.hideFakedArrows},{type:"checkbox",id:"doSpeedChanges",checked:()=>_.chart.doSpeedChanges}]},chart:{type:"menu",title:"Chart",options:[{type:"selection",id:"openChart"},{type:"separator"},{type:"selection",id:"previousChart"},{type:"selection",id:"nextChart"},{type:"separator"},{type:"selection",id:"songProperties"},{type:"separator"},{type:"selection",id:"timingDataRow"}]},selection:{type:"menu",title:"Selection",options:[{type:"dropdown",title:"Convert",options:[{type:"selection",id:"convertHoldsRolls"},{type:"selection",id:"convertRollsHolds"},{type:"selection",id:"swapHoldsRolls"},{type:"separator"},{type:"selection",id:"convertHoldsTaps"},{type:"selection",id:"convertTapsMines"},{type:"selection",id:"convertTapsLifts"},{type:"selection",id:"convertTapsFakes"}]},{type:"dropdown",title:"Mirror",options:[{type:"selection",id:"mirrorHorizontally"},{type:"selection",id:"mirrorVertically"},{type:"selection",id:"mirrorBoth"}]},{type:"dropdown",title:"Stretch",options:[{type:"selection",id:"expand2to1"},{type:"selection",id:"expand3to2"},{type:"selection",id:"expand4to3"},{type:"separator"},{type:"selection",id:"compress1to2"},{type:"selection",id:"compress2to3"},{type:"selection",id:"compress3to4"}]},{type:"dropdown",title:"Quantize",options:[{type:"selection",id:"quantize4th"},{type:"selection",id:"quantize8th"},{type:"selection",id:"quantize12th"},{type:"selection",id:"quantize16th"},{type:"selection",id:"quantize24th"},{type:"selection",id:"quantize32nd"},{type:"selection",id:"quantize48th"},{type:"selection",id:"quantize96th"}]},{type:"separator"},{type:"selection",id:"setSongPreview"},{type:"separator"},{type:"selection",id:"exportNotedata"},{type:"separator"},{type:"selection",id:"selectBeforeCursor"},{type:"selection",id:"selectAfterCursor"},{type:"selection",id:"selectAll"}]},audio:{type:"menu",title:"Audio",options:[{type:"selection",id:"detectSync"},{type:"separator"},{type:"checkbox",id:"assistTick",checked:()=>_.audio.assistTick&&Ie.assist},{type:"checkbox",id:"metronome",checked:()=>_.audio.metronome&&Ie.assist},{type:"separator"},{type:"dropdown",title:()=>"Master Volume ("+Math.round(_.audio.masterVolume*100)+"%)",options:[{type:"selection",id:"volumeUp"},{type:"selection",id:"volumeDown"}]},{type:"dropdown",title:()=>"Song Volume ("+Math.round(_.audio.songVolume*100)+"%)",options:[{type:"selection",id:"songVolumeUp"},{type:"selection",id:"songVolumeDown"}]},{type:"dropdown",title:()=>"Effect Volume ("+Math.round(_.audio.soundEffectVolume*100)+"%)",options:[{type:"selection",id:"effectvolumeUp"},{type:"selection",id:"effectvolumeDown"}]},{type:"dropdown",title:()=>"Playback rate ("+Math.round(_.audio.rate*100)+"%)",options:[{type:"selection",id:"rateUp"},{type:"selection",id:"rateDown"},{type:"separator"},{type:"selection",id:"rateDefault"}]},{type:"separator"},{type:"selection",id:"showEq"}]},preferences:{type:"menu",title:"Preferences",options:[{type:"selection",id:"options"},{type:"selection",id:"themes"},{type:"selection",id:"keybinds"},{type:"selection",id:"gameplayKeybinds"},{type:"selection",id:"noteskinWindow"}]},help:{type:"menu",title:"Help",options:[{type:"selection",id:"openGuide"}]}},hf=["cut","copy","paste","pasteReplace"],cf={edit:[{ids:["delete"],after:"redo"},{ids:["previousNoteType","nextNoteType","noteTypeTap","noteTypeMine","noteTypeFake","noteTypeLift","quant4","quant8","quant12","quant16","quant24","quant32","quant48","quant96","quant192"],after:"mousePlacement"}],view:[{ids:["playback","selectRegion"]}],debug:[{ids:["showFPSCounter","showDebugTimers"]}]};class Ui extends St{static GROUPS;app;observer;searchDropdown;conflictMap=this.calculateConflicts();constructor(e){super({title:"Keybind Options",width:600,height:400,disableClose:!1,win_id:"keybind_options",blocking:!1}),this.app=e,Ui.GROUPS||(Ui.GROUPS=Ui.createGroups()),this.initView()}initView(){this.viewElement.replaceChildren();const e=document.createElement("div");e.classList.add("padding");const t=document.createElement("div");t.classList.add("pref-container");const i=document.createElement("div");i.classList.add("pref-search");const s=document.createElement("input");s.classList.add("pref-search-bar"),s.type="text",s.placeholder="Search for a keybind...",s.oninput=()=>{o.replaceChildren(...this.createSections(s.value)),l.replaceChildren(...this.createOptions(s.value))};const n=gi.create(["Name","Key"],"Name");n.onChange(()=>{o.replaceChildren(...this.createSections(s.value)),l.replaceChildren(...this.createOptions(s.value))}),this.searchDropdown=n,i.replaceChildren(s,n.view);const a=document.createElement("div");a.classList.add("pref-scrollers");const o=document.createElement("div");o.classList.add("pref-section-scroller");const l=document.createElement("div");l.classList.add("pref-option-scroller"),a.replaceChildren(o,l),this.observer=new IntersectionObserver(c=>{c.forEach(d=>{const h=d.target.dataset.id,u=o.querySelector(`.pref-section[data-id=${h}]`);u&&(d.intersectionRatio>0?u.classList.add("selected"):u.classList.remove("selected"))})},{}),t.replaceChildren(i,a),o.replaceChildren(...this.createSections()),l.replaceChildren(...this.createOptions()),e.appendChild(t),this.viewElement.appendChild(e)}createSections(e=""){return Object.keys(Ui.GROUPS).filter(t=>Ui.GROUPS[t].some(i=>this.filterID(e,i))).map(t=>this.createEmptySection($n[t]?.title??Uc(t),t))}createOptions(e=""){return Object.keys(Ui.GROUPS).filter(t=>Ui.GROUPS[t].some(i=>this.filterID(e,i))).map(t=>{const i=Ui.GROUPS[t].filter(a=>this.filterID(e,a)).map(a=>this.createKeybindItem(a)),s=document.createElement("div");s.classList.add("pref-group"),s.dataset.id=t;const n=document.createElement("div");return n.classList.add("pref-group-label"),n.innerText=$n[t]?.title??Uc(t),s.replaceChildren(n,...i),this.observer.observe(s),s})}static createGroups(){const e=Object.keys(Tt),t={};return Object.keys($n).forEach(i=>{t[i]=this.expandMenubarOptions($n[i]).map(s=>{const n=e.indexOf(s);return n!=-1&&e.splice(n,1),s}).filter(s=>!hf.includes(s))}),Object.keys(cf).forEach(i=>{t[i]===void 0&&(t[i]=[]),cf[i].forEach(s=>{const n=s.after?t[i].findIndex(a=>s.after==a)+1:0;t[i].splice(n,0,...s.ids),s.ids.forEach(a=>{const o=e.indexOf(a);o!=-1&&e.splice(o,1)})})}),hf.forEach(i=>{const s=e.indexOf(i);s!=-1&&e.splice(s,1)}),e.length>0&&(console.warn("Missing keybinds not shown:"),console.warn(e)),t}filterID(e,t){if((this.searchDropdown?.value??"Name")=="Name")return(Tt[t].bindLabel??Tt[t].label).toLowerCase().includes(e.toLowerCase());{const i=Re.getCombosForKeybind(t);if(i.some(n=>n.key.toLowerCase().includes(e.toLowerCase()))||i.some(n=>(by[n.key]??n.key).toLowerCase().includes(e.toLowerCase())))return!0;let s=e.split(" ").map(n=>n.toLowerCase());return i.some(n=>(s.includes("shift")||s.includes("⇧"))&&!n.mods.includes(Yn.SHIFT)||(s.includes("ctrl")||s.includes("control")||s.includes("⌃"))&&!n.mods.includes(Yn.CTRL)||(s.includes("meta")||s.includes("cmd")||s.includes("command")||s.includes("⌘"))&&!n.mods.includes(Yn.META)||(s.includes("alt")||s.includes("⌥"))&&!n.mods.includes(Yn.ALT)?!1:(s=s.filter(a=>!["shift","ctrl","control","meta","cmd","command","alt","⇧","⌃","⌘","⌥",""].includes(a)),s.length==0||s.length==1&&n.key.toLowerCase().includes(s[0])))}}static expandMenubarOptions(e){switch(e.type){case"menu":case"dropdown":return e.options.map(t=>this.expandMenubarOptions(t)).flat();case"selection":case"checkbox":return[e.id];case"separator":return[]}}createEmptySection(e,t){const i=document.createElement("div");return i.classList.add("pref-section"),i.dataset.id=t,i.innerText=e,i.onclick=()=>{i.parentElement.parentElement.querySelector(`.pref-group[data-id=${t}]`).scrollIntoView()},i}createKeybindItem(e){const t=document.createElement("div");t.classList.add("pref-keybind"),t.dataset.id=e,t.onclick=a=>{a.target.classList.contains("pref-keybind-combo")||t.querySelector(".icon")?.contains(a.target)||this.app.windowManager.openWindow(new hy(this.app,!0,o=>{Re.setKeybind(e,o),this.conflictMap=this.calculateConflicts(),t.replaceWith(this.createKeybindItem(e))},o=>{const l=this.conflictMap.get(Re.getComboString(o))?.map(c=>c[0]).map(c=>Tt[c].bindLabel??Tt[c].label)??[];return l.includes(e)?"self":l}))};const i=document.createElement("div");i.classList.add("pref-keybind-label"),i.innerText=Tt[e].bindLabel??Tt[e].label;const s=Ae.getIcon("REVERT");s.style.width="12px",s.addEventListener("click",()=>{Re.revertKeybind(e),this.conflictMap=this.calculateConflicts(),t.replaceWith(this.createKeybindItem(e))}),s.style.display=Re.checkIsDefault(e)?"none":"block";const n=document.createElement("div");return n.classList.add("pref-keybind-combos"),n.replaceChildren(...Re.getCombosForKeybind(e).map(a=>{const o=document.createElement("button");return o.classList.add("pref-keybind-combo"),o.innerText=Re.getComboString(a),this.conflictMap.get(Re.getComboString(a)).length>1&&o.classList.add("conflict"),o.onclick=()=>{Re.removeKeybind(e,a),this.conflictMap=this.calculateConflicts(),t.replaceWith(this.createKeybindItem(e))},o})),t.replaceChildren(i,s,n),t}calculateConflicts(){const e=new Map;Object.keys(Tt).forEach(t=>{Re.getCombosForKeybind(t).forEach((i,s)=>{const n=Re.getComboString(i);e.has(n)||e.set(n,[]),e.get(n).push([t,s])})}),[...this.viewElement.querySelectorAll(".pref-keybind-combo.conflict")].forEach(t=>t.classList.remove("conflict"));for(const t of e.values())t.length!=1&&t.forEach(i=>{const s=this.viewElement.querySelector(`.pref-keybind[data-id=${i[0]}] .pref-keybind-combos`);s?.children[i[1]]&&s.children[i[1]].classList.add("conflict")});return e}onClose(){this.observer?.disconnect()}}class st{static noteskins=new Map;static register(e){for(const t of new Set(e.gameTypes))st.noteskins.has(t)||st.noteskins.set(t,new Map),st.noteskins.get(t).set(e.id,e)}static async getNoteskin(e,t){const i=this.noteskins.get(e.id);if(!i||i.size==0)return;const s=i.get(t)??[...i.values()][0];return i.get(t)||Se.createFormatted(`Couldn't find the noteskin ${t}!`,"warn"),await s.load()}static getNoteskinData(e,t){const i=this.noteskins.get(e.id);return!i||i.size==0?void 0:i.get(t)??[...i.values()][0]}static getNoteskins(){return this.noteskins}static getPreviewUrl(e,t){return this.getNoteskinData(e,t).preview}}st.register({id:"default",gameTypes:["dance-single","dance-double","dance-couple","dance-solo","dance-solodouble","dance-threepanel","dance-threedouble"],load:async()=>(await Ke(()=>import("./Noteskin-03c71a59.js"),["Noteskin-03c71a59.js","HoldBody-b84029dd.js"])).default,preview:new URL("/smeditor/assets/preview-17ffcc02.png",self.location).href,title:"Scalable",subtitle:"Pete-Lawrence"});st.register({id:"cf-chrome",gameTypes:["dance-single","dance-double","dance-couple","dance-solo","dance-solodouble","dance-threepanel","dance-threedouble"],load:async()=>(await Ke(()=>import("./Noteskin-11a7e121.js"),["Noteskin-11a7e121.js","HoldBody-b84029dd.js"])).default,preview:new URL("/smeditor/assets/preview-40b76b28.png",self.location).href,title:"CF_CHROME",subtitle:"Pete-Lawrence"});st.register({id:"ddr-note",gameTypes:["dance-single","dance-double","dance-couple","dance-solo","dance-solodouble","dance-threepanel","dance-threedouble"],load:async()=>(await Ke(()=>import("./Noteskin-246a4d2b.js"),["Noteskin-246a4d2b.js","AnimatedSprite-b9500bfb.js","HoldBody-b84029dd.js"])).default,preview:new URL("/smeditor/assets/preview-b8f75a15.png",self.location).href,title:"DDR-Note",subtitle:"Pete-Lawrence"});st.register({id:"ddr-note-itg",gameTypes:["dance-single","dance-double","dance-couple","dance-solo","dance-solodouble","dance-threepanel","dance-threedouble"],load:async()=>(await Ke(()=>import("./Noteskin-b4c11d59.js"),["Noteskin-b4c11d59.js","AnimatedSprite-b9500bfb.js","HoldBody-b84029dd.js"])).default,preview:new URL("/smeditor/assets/preview-f113aacc.png",self.location).href,title:"DDR-Note (ITG quants)",subtitle:"Pete-Lawrence"});st.register({id:"ddr-rainbow",gameTypes:["dance-single","dance-double","dance-couple"],load:async()=>(await Ke(()=>import("./Noteskin-0b1bf5ac.js"),["Noteskin-0b1bf5ac.js","AnimatedSprite-b9500bfb.js","HoldBody-b84029dd.js"])).default,preview:new URL("/smeditor/assets/preview-0f9b00cd.png",self.location).href,title:"DDR-Rainbow",subtitle:"LemmaEOF"});st.register({id:"ddr-rainbow-itg",gameTypes:["dance-single","dance-double","dance-couple"],load:async()=>(await Ke(()=>import("./Noteskin-c0555f91.js"),["Noteskin-c0555f91.js","AnimatedSprite-b9500bfb.js","HoldBody-b84029dd.js"])).default,preview:new URL("/smeditor/assets/preview-2fd7d50c.png",self.location).href,title:"DDR-Rainbow (ITG quants)",subtitle:"LemmaEOF"});st.register({id:"metal",gameTypes:["dance-single","dance-double","dance-couple","dance-solo","dance-solodouble","dance-threepanel","dance-threedouble"],load:async()=>(await Ke(()=>import("./Noteskin-ac1c3283.js"),["Noteskin-ac1c3283.js","HoldBody-b84029dd.js"])).default,preview:new URL("/smeditor/assets/preview-26b1bdce.png",self.location).href,title:"Metal",subtitle:"Pete-Lawrence"});st.register({id:"pastel",gameTypes:["dance-single","dance-double","dance-couple","dance-solo","dance-solodouble","dance-threepanel","dance-threedouble"],load:async()=>(await Ke(()=>import("./Noteskin-7dfd06de.js"),["Noteskin-7dfd06de.js","AnimatedSprite-b9500bfb.js","HoldBody-b84029dd.js"])).default,preview:new URL("/smeditor/assets/preview-d67630f1.png",self.location).href,title:"Pastel",subtitle:"halcyoniix"});st.register({id:"dividebyzero",gameTypes:["dance-single","dance-double","dance-couple","dance-solo","dance-solodouble","dance-threepanel","dance-threedouble"],load:async()=>(await Ke(()=>import("./Noteskin-4cb99da6.js"),["Noteskin-4cb99da6.js","AnimatedSprite-b9500bfb.js","HoldBody-b84029dd.js"])).default,preview:new URL("/smeditor/assets/preview-d763e667.png",self.location).href,title:"DivideByZero",subtitle:"MinaciousGrace"});st.register({id:"subtractbyzero",gameTypes:["dance-single","dance-double","dance-couple","dance-solo","dance-solodouble","dance-threepanel","dance-threedouble"],load:async()=>(await Ke(()=>import("./Noteskin-8fb8953e.js"),["Noteskin-8fb8953e.js","AnimatedSprite-b9500bfb.js","HoldBody-b84029dd.js"])).default,preview:new URL("/smeditor/assets/preview-72ea0444.png",self.location).href,title:"SubtractByZero",subtitle:"qwertyzoro/Vague"});st.register({id:"sm4",gameTypes:["dance-single","dance-double","dance-couple","dance-solo","dance-solodouble","dance-threepanel","dance-threedouble"],load:async()=>(await Ke(()=>import("./Noteskin-50fcabf7.js"),["Noteskin-50fcabf7.js","AnimatedSprite-b9500bfb.js","HoldBody-b84029dd.js"])).default,preview:new URL("/smeditor/assets/preview-3514cbb3.png",self.location).href,title:"SM4",subtitle:"from SM4"});st.register({id:"sm4-bold",gameTypes:["dance-single","dance-double","dance-couple","dance-solo","dance-solodouble","dance-threepanel","dance-threedouble"],load:async()=>(await Ke(()=>import("./Noteskin-66177a43.js"),["Noteskin-66177a43.js","AnimatedSprite-b9500bfb.js","HoldBody-b84029dd.js"])).default,preview:new URL("/smeditor/assets/preview-9fe2bd96.png",self.location).href,title:"SM4 Bold",subtitle:"from SM4"});st.register({id:"starlight-vivid",gameTypes:["dance-single","dance-double","dance-couple"],load:async()=>(await Ke(()=>import("./Noteskin-3e814503.js"),["Noteskin-3e814503.js","AnimatedSprite-b9500bfb.js","HoldBody-b84029dd.js"])).default,preview:new URL("/smeditor/assets/preview-5ecfc22a.png",self.location).href,title:"SLNEXXT-vivid",subtitle:"from STARLiGHT-NEXXT"});st.register({id:"default",gameTypes:["pump-single","pump-double","pump-couple","pump-versus","pump-halfdouble"],load:async()=>(await Ke(()=>import("./Noteskin-fcff308e.js"),["Noteskin-fcff308e.js","AnimatedSprite-b9500bfb.js","HoldBody-b84029dd.js"])).default,preview:new URL("/smeditor/assets/preview-d6d59d37.png",self.location).href,title:"Fiesta"});st.register({id:"fourv2",gameTypes:["pump-single","pump-double","pump-couple","pump-versus","pump-halfdouble"],load:async()=>(await Ke(()=>import("./Noteskin-df1a4e5a.js"),["Noteskin-df1a4e5a.js","AnimatedSprite-b9500bfb.js","HoldBody-b84029dd.js"])).default,preview:new URL("/smeditor/assets/preview-5d9781d2.png",self.location).href,title:"FourV2",subtitle:"Jousway"});st.register({id:"prime",gameTypes:["pump-single","pump-double","pump-couple","pump-versus","pump-halfdouble"],load:async()=>(await Ke(()=>import("./Noteskin-771aeac1.js"),["Noteskin-771aeac1.js","AnimatedSprite-b9500bfb.js","HoldBody-b84029dd.js"])).default,preview:new URL("/smeditor/assets/preview-4f79831b.png",self.location).href,title:"Prime"});const wS="/smeditor/assets/preview-747db171.png";class _S extends St{app;grid;lastGameType=null;constructor(e){super({title:"Noteskin Selection",width:600,height:400,disableClose:!1,win_id:"noteskin-selection",blocking:!1}),this.app=e,this.initView(),this.loadGrid(),K.on("chartLoaded",()=>{const t=e.chartManager.loadedChart.gameType.id;this.lastGameType!=t&&this.loadGrid()})}initView(){this.viewElement.replaceChildren();const e=document.createElement("div");e.classList.add("padding");const t=document.createElement("input");t.classList.add("pref-search-bar"),t.type="text",t.placeholder="Search for a noteskin...",t.oninput=()=>{this.filterGrid(t.value)};const i=document.createElement("div");i.classList.add("noteskin-grid"),this.grid=i,e.replaceChildren(t,i),this.viewElement.appendChild(e)}loadGrid(){if(this.grid.replaceChildren(),!this.app.chartManager.loadedChart)return;const e=this.app.chartManager.loadedChart.gameType;this.lastGameType=e.id;const t=st.getNoteskins().get(e.id);if(t)for(const[i,s]of t.entries()){const n=document.createElement("div"),a=document.createElement("img"),o=document.createElement("div"),l=document.createElement("div"),c=document.createElement("div");n.classList.add("noteskin-cell"),o.classList.add("noteskin-label"),l.classList.add("noteskin-title"),c.classList.add("noteskin-subtitle"),l.innerText=s.title??i,c.innerText=s.subtitle??"",a.src=st.getPreviewUrl(e,i),a.onerror=()=>{a.src=wS},n.replaceChildren(a,o),o.replaceChildren(l,c),this.grid.appendChild(n),i==_.chart.noteskin.name&&(n.classList.add("selected"),setTimeout(()=>{n.scrollIntoView({behavior:_.general.smoothAnimations?"smooth":"instant",block:"center"})})),n.dataset.id=i,n.dataset.title=s.title??"",n.dataset.subtitle=s.subtitle??"",n.onclick=()=>{_.chart.noteskin.name!=i&&(this.app.chartManager.chartView?.swapNoteskin(i),this.removeAllSelections(),n.classList.add("selected"))}}}removeAllSelections(){[...this.grid.querySelectorAll(".selected")].forEach(e=>e.classList.remove("selected"))}filterGrid(e){[...this.grid.children].forEach(t=>{if(!(t instanceof HTMLDivElement))return;const i=t,s=this.containsQuery(e,i.dataset.id)||this.containsQuery(e,i.dataset.title)||this.containsQuery(e,i.dataset.subtitle);i.style.display=s?"":"none"})}containsQuery(e,t){return t?t.toLowerCase().includes(e.trim().toLowerCase()):!1}}class xS extends St{app;metronomeInterval;startTime;me_high=new ps.Howl({src:Ug,volume:_.audio.soundEffectVolume});me_low=new ps.Howl({src:Hg,volume:_.audio.soundEffectVolume});tickLines=[];resultLines=[];previousOffsets=[];keyHandler;constructor(e){super({title:"Offset Adjuster",width:300,height:200,win_id:"offset",blocking:!0}),this.app=e,this.initView(),this.startTime=performance.now();let t=this.startTime+500;this.tickLines.push({time:t+500,beat:0}),this.tickLines.push({time:t+500*2,beat:1}),this.tickLines.push({time:t+500*3,beat:2}),this.tickLines.push({time:t+500*4,beat:3});let i=0;this.metronomeInterval=setInterval(()=>{const s=performance.now();if(s-t>500){for(t=s,(i%4==0?this.me_high:this.me_low).play();this.tickLines[0]?.time+1e3s-n.startTime<8e3)},5),this.keyHandler=s=>{if(s.code.startsWith("Digit")||s.code.startsWith("Key")||s.code=="Space"){let n=this.tickLines[0];const a=performance.now();for(const l of this.tickLines)if(a-l.time+_.play.offset*1e3<300){n=l;break}s.preventDefault();const o=a-n.time+_.play.offset*1e3;o>-300&&(this.tickLines.splice(this.tickLines.indexOf(n),1),this.resultLines.push({startTime:performance.now(),offset:o}),this.previousOffsets.push(o),this.previousOffsets.length==16&&(qg(this.previousOffsets)<70&&(_.play.offset-=Tl(this.previousOffsets)/1e3),this.previousOffsets=[]))}},window.addEventListener("keydown",this.keyHandler)}initView(){this.viewElement.replaceChildren();const e=document.createElement("canvas");this.viewElement.appendChild(e);const t=this.drawEQ(e);requestAnimationFrame(t)}drawEQ(e){const t=e.getContext("2d");t.canvas.width=250,t.canvas.height=100;const i=()=>{t.fillStyle="rgba(0, 0, 0, 1)",t.fillRect(0,0,e.width,e.height),t.fillStyle="rgb(255, 255, 255)",t.fillRect(e.width/2-1,8,2,e.height-16);const s=performance.now();for(const n of this.resultLines){t.fillStyle="rgba(255, 255, 255, 1)";const a=Math.min(1,4-(s-n.startTime)/2e3);if(n.offset<0&&(t.fillStyle=`rgba(160, ${Ht(160,0,-n.offset/250)}, ${Ht(160,0,-n.offset/250)}, ${a})`),n.offset>0&&(t.fillStyle=`rgba(${Ht(160,0,n.offset/250)}, ${Ht(160,0,n.offset/250)}, 160, ${a})`),t.fillRect(e.width/2-.5+n.offset/4,12,1,e.height-24),s-n.startTime<250){const o=(s-n.startTime)/250;t.globalAlpha=1-o,t.fillRect(e.width/2-.5-o*3+n.offset/4,12-o*10,1+o*6,e.height-24+o*20)}t.globalAlpha=1}for(const n of this.tickLines){const a=n.time-s-_.play.offset*1e3;t.fillStyle="rgba(255, 255, 255, 0.8)",n.beat%4!=0?t.fillRect(e.width/2-1-a/4,12,2,e.height-24):t.fillRect(e.width/2-2-a/4,12,4,e.height-24)}e.closest("#windows")&&requestAnimationFrame(i)};return i}onClose(){clearInterval(this.metronomeInterval),window.removeEventListener("keydown",this.keyHandler)}}class TS extends St{app;changeHandler=()=>this.initView();constructor(e){super({title:"Song Properties",width:450,height:486,disableClose:!1,win_id:"sm_properties",blocking:!1}),this.app=e,this.initView(),K.on("smLoaded",this.changeHandler),K.on("undo",this.changeHandler),K.on("redo",this.changeHandler)}onClose(){K.off("smLoaded",this.changeHandler),K.off("undo",this.changeHandler),K.off("redo",this.changeHandler)}initView(){this.viewElement.replaceChildren(),this.viewElement.classList.add("sm-properties");const e=document.createElement("div");e.classList.add("padding");const t=document.createElement("div");t.classList.add("label"),t.innerText="Apply to",py.forEach(i=>{const s=document.createElement("div");s.classList.add("sm-container");const n=document.createElement("div");n.classList.add("sm-title"),n.innerText=i.title;const a=document.createElement("div");a.classList.add("property-grid"),i.items.forEach(o=>{const l=document.createElement("div");l.classList.add("label"),l.innerText=o.title,a.appendChild(l),a.appendChild(fy(this.app,o))}),s.appendChild(n),s.appendChild(a),e.appendChild(s)}),this.viewElement.appendChild(e)}}var ES=MS,el=8192,Bd=65536,Rd=new ArrayBuffer(Bd*4),AS=new Float64Array(Rd,Bd,el),SS=new Float64Array(Rd,Bd*2,el/2),CS=kS({Math,Float64Array},null,Rd);function MS(r){if(!r)throw Error("Input data is not provided, pass an array.");var e=r.length;if(e>el)throw Error("Input length is too big, must be under "+el);var t=Math.floor(Math.log(e)/Math.LN2);if(Math.pow(2,t)!==e)throw Error("Invalid array size, must be a power of 2.");return AS.set(r),CS(e,t),SS.subarray(0,e/2)}function kS(r,e,t){var i=6.283185307179586,s=r.Math.sqrt,n=r.Math.sin,a=r.Math.cos,o=r.Math.abs,l=r.Math.SQRT1_2,c=r.Math.imul,d=new r.Float64Array(t),h=new r.Float64Array(t),u=8192,p=16384;function f(g,y){g=g|0,y=y|0;var w=0,b=0,v=0,E=0,C=0,I=0,L=0,k=0,N=0,G=0,A=0,S=0,x=0,D=0,$=0,R=0,O=0,W=0,V=0,F=0,U=0,te=0,Q=0,Z=0,ye=0,Ce=0,ce=0,fe=0,we=0,le=0,pe=0,be=0;for(w=g>>>1,v=2/+(g|0),m(g),le=0,be=4;(le|0)<(g|0);be=c(be,4)){for(pe=le;(pe|0)<(g|0);pe=pe+be|0)F=h[pe<<3>>3]-h[pe+1<<3>>3],h[pe<<3>>3]=h[pe<<3>>3]+h[pe+1<<3>>3],h[pe+1<<3>>3]=F;le=c(2,be-1)}for(E=2,L=g>>>1;L=L>>>1;){le=0,E=E<<1,be=E<<1,C=E>>>2,I=E>>>3;do{if((C|0)!=1)for(pe=le;(pe|0)<(g|0);pe=pe+be|0)S=pe,x=S+C|0,D=x+C|0,$=D+C|0,k=h[D<<3>>3]+h[$<<3>>3],h[$<<3>>3]=h[$<<3>>3]-h[D<<3>>3],h[D<<3>>3]=h[S<<3>>3]-k,h[S<<3>>3]=h[S<<3>>3]+k,S=S+I|0,x=x+I|0,D=D+I|0,$=$+I|0,k=h[D<<3>>3]+h[$<<3>>3],N=h[D<<3>>3]-h[$<<3>>3],k=-k*l,N=N*l,F=+h[x<<3>>3],h[$<<3>>3]=k+F,h[D<<3>>3]=k-F,h[x<<3>>3]=h[S<<3>>3]-N,h[S<<3>>3]=h[S<<3>>3]+N;else for(pe=le;(pe|0)<(g|0);pe=pe+be|0)S=pe,x=S+C|0,D=x+C|0,$=D+C|0,k=h[D<<3>>3]+h[$<<3>>3],h[$<<3>>3]=h[$<<3>>3]-h[D<<3>>3],h[D<<3>>3]=h[S<<3>>3]-k,h[S<<3>>3]=h[S<<3>>3]+k;le=(be<<1)-E|0,be=be<<2}while((le|0)<(g|0));for(ye=i/+(E|0),b=1;(b|0)<(I|0);b=b+1|0){Ce=+(b|0)*ye,te=n(Ce),U=a(Ce),Q=4*U*(U*U-.75),Z=4*te*(.75-te*te),le=0,be=E<<1;do{for(pe=le;(pe|0)<(g|0);pe=pe+be|0)S=pe+b|0,x=S+C|0,D=x+C|0,$=D+C|0,R=pe+C-b|0,O=R+C|0,W=O+C|0,V=W+C|0,N=h[W<<3>>3]*U-h[D<<3>>3]*te,k=h[W<<3>>3]*te+h[D<<3>>3]*U,A=h[V<<3>>3]*Q-h[$<<3>>3]*Z,G=h[V<<3>>3]*Z+h[$<<3>>3]*Q,F=N-A,N=N+A,A=F,h[V<<3>>3]=N+h[O<<3>>3],h[D<<3>>3]=N-h[O<<3>>3],F=G-k,k=k+G,G=F,h[$<<3>>3]=G+h[x<<3>>3],h[W<<3>>3]=G-h[x<<3>>3],h[O<<3>>3]=h[S<<3>>3]-k,h[S<<3>>3]=h[S<<3>>3]+k,h[x<<3>>3]=A+h[R<<3>>3],h[R<<3>>3]=h[R<<3>>3]-A;le=(be<<1)-E|0,be=be<<2}while((le|0)<(g|0))}}for(;w=w-1|0;)ce=+h[w<<3>>3],fe=+h[g-w-1<<3>>3],we=v*s(ce*ce+fe*fe),d[p+w<<3>>3]=we;d[p+0<<3>>3]=o(v*h[0])}function m(g){g=g|0;var y=0,w=0,b=1,v=0,E=0;y=g>>>1,w=g-1|0,h[0]=d[u+0<<3>>3];do{for(v=v+y|0,h[b<<3>>3]=d[u+v<<3>>3],h[v<<3>>3]=d[u+b<<3>>3],b=b+1|0,E=y<<1;E=E>>1,((v=v^E)&E)==0;);(v|0)>=(b|0)&&(h[b<<3>>3]=d[u+v<<3>>3],h[v<<3>>3]=d[u+b<<3>>3],h[w-b<<3>>3]=d[u+w-v<<3>>3],h[w-v<<3>>3]=d[u+w-b<<3>>3]),b=b+1|0}while((b|0)<(y|0));h[w<<3>>3]=d[u+w<<3>>3]}return f}const df=ya(ES);class ds{view;slider;text;options;constructor(e,t){this.view=e,this.options=t,this.view.classList.add("slider");const i=document.createElement("input");i.classList.add("slider-input"),i.type="range",i.min=t.min.toString(),i.max=t.max.toString(),i.step=t.step.toString(),i.value=(t.value??(t.min+t.max)/2).toString(),i.oninput=()=>{s.innerText=this.formatValue(parseFloat(i.value))+"",this.options.onChange?.(parseFloat(i.value))},t.width!==void 0&&(i.style.width=t.width+"px"),this.slider=i,e.appendChild(i);const s=document.createElement("div");s.innerText=this.formatValue(parseFloat(i.value))+"",s.style.width="30px",this.text=s,e.appendChild(s)}get value(){return parseFloat(this.slider.value)}setValue(e){this.slider.value=e+"",this.text.innerText=this.formatValue(parseFloat(this.slider.value))+""}static create(e){return new ds(document.createElement("div"),e)}formatValue(e){return this.options.transformer?this.options.transformer(e):this.options.precision===void 0?ae(e,3).toString():ae(e,this.options.precision).toFixed(this.options.precision)}}const ii=800,qe=200,Sh=3,Dn=125,On=250,uo=3,IS=.02,Os=6,Ch=800,uf=15,qt=32768,Mh=[{frequency:20,weight:.4006009013520281},{frequency:25,weight:.4258037044922291},{frequency:31.5,weight:.4536690484291709},{frequency:40,weight:.4840856831659204},{frequency:50,weight:.5142710208279764},{frequency:63,weight:.5473453749315819},{frequency:80,weight:.5841121495327103},{frequency:100,weight:.6214074879602299},{frequency:125,weight:.6601749463607856},{frequency:160,weight:.7054673721340388},{frequency:200,weight:.7489234225800412},{frequency:250,weight:.7936507936507937},{frequency:315,weight:.8406893652795292},{frequency:400,weight:.889284126278346},{frequency:500,weight:.9291521486643438},{frequency:630,weight:.9675858732462506},{frequency:800,weight:.9985022466300548},{frequency:1e3,weight:.9997500624843789},{frequency:1250,weight:.9564801530368244},{frequency:1600,weight:.9409550693954364},{frequency:2e3,weight:1.0196278358399185},{frequency:2500,weight:1.0955902492467817},{frequency:3150,weight:1.1232799775344005},{frequency:4e3,weight:1.0914051841746248},{frequency:5e3,weight:.9997500624843789},{frequency:6300,weight:.8727907484180668},{frequency:8e3,weight:.7722007722007722},{frequency:1e4,weight:.7369196757553427},{frequency:12500,weight:.7768498737618955},{frequency:16e3,weight:.7698229407236336},{frequency:2e4,weight:.4311738708634257},{frequency:22550,weight:.2},{frequency:25e3,weight:0}];class yy extends St{app;onAudioLoad=this.reset.bind(this);windowStep=512;fftSize=1024;tempoFftSize=4096;tempoStep=2;monoAudioData;audioLength=0;sampleRate=44100;tempogram=[];tempogramGroups=[];spectrogram=[];spectrogramDifference=[];noveltyCurve=[];noveltyCurveIsolated=[];spectrogramCanvases=[];lowestFinishedBlock=0;numRenderedBlocks=0;peaks=[];_threshold=.3;spectroHeights=[];spectroWeights=[];placeNotesSelectionButton;toggleButton;resetButton;onsetResults;offsetTableLabel;offsetRows=[];bpmRows=[];covers=[];doAnalysis=!1;lastSecond=0;constructor(e){super({title:"Detect Audio Sync",width:400,height:450,win_id:"detect-sync"}),this.app=e,this.initView(),this.reset(),K.on("audioLoaded",this.onAudioLoad)}onClose(){K.off("audioLoaded",this.onAudioLoad),this.app.chartManager.chartAudio.offLoad(this.onAudioLoad)}initView(){this.viewElement.replaceChildren();const e=document.createElement("div");e.classList.add("sync-container"),e.style.display="flex",e.style.flexDirection="column",e.style.alignItems="center";const t=document.createElement("canvas");t.style.width=`${ii/2}px`,t.style.height=`${qe}px`;const i=document.createElement("div");i.classList.add("sync-tab-container");const s=document.createElement("div");s.classList.add("sync-tab-option","active"),s.innerText="Analysis Options";const n=document.createElement("div");n.classList.add("sync-tab-option"),n.innerText="Tempo Results";const a=document.createElement("div");a.classList.add("sync-tab-option"),a.innerText="Onset Results",i.replaceChildren(s,n,a),[...i.children].forEach((m,g)=>{m.onclick=()=>{l.scrollLeft=370*g,i.querySelectorAll(".active").forEach(y=>y.classList.remove("active")),m.classList.add("active")}});const o=document.createElement("div");o.classList.add("sync-tab-view");const l=document.createElement("div");l.classList.add("sync-tab-scroller");const c=this.createOptionsView(),d=this.createTempoView(),h=this.createOnsetsView(),u=(m,g)=>{const y=document.createElement("div");return y.classList.add("sync-cover"),y.innerText=m,y.style.left=`${g*370}px`,y};this.covers=[u("Clear analysis results to edit",0),u("Start analysis to view",1),u("Start analysis to view",2)],o.appendChild(l),l.replaceChildren(c,this.covers[0],d,this.covers[1],h,this.covers[2]);const p=document.createElement("div");p.classList.add("sync-bottom-container"),this.resetButton=document.createElement("button"),this.resetButton.classList.add("delete"),this.resetButton.innerText="Clear results",this.resetButton.style.width="120px",this.resetButton.disabled=!0,this.resetButton.onclick=()=>{this.resetButton.disabled=!0,s.click(),this.reset()},this.toggleButton=document.createElement("button"),this.toggleButton.innerText="Start analyzing",this.toggleButton.style.width="200px",this.toggleButton.onclick=()=>{this.doAnalysis||n.click(),this.doAnalysis=!this.doAnalysis,this.toggleButton.innerText=this.doAnalysis?"Stop analyzing":this.hasData()?"Resume analyzing":"Start analyzing",this.resetButton.disabled=this.doAnalysis},p.replaceChildren(this.toggleButton,this.resetButton),e.replaceChildren(t,i,o,p),this.viewElement.appendChild(e);const f=this.windowLoop(t);requestAnimationFrame(f)}createOptionsView(){const e=document.createElement("div");e.style.display="flex",e.style.position="relative",e.style.flexDirection="column",e.style.gap="3px",e.style.height="100%";const t=(c,d,h)=>{const u=document.createElement("div");u.style.display="flex",u.style.flexDirection="row",u.style.justifyContent="space-between",u.style.alignItems="center";const p=document.createElement("div");return p.innerText=c,u.replaceChildren(p,d),Pt(u,{content:h}),u},i=document.createElement("div");i.innerText="Onsets",i.style.fontWeight="600";const s=ds.create({min:Math.log2(128),max:Math.log2(8192),step:1,value:Math.log2(this.fftSize),transformer:c=>2**c,onChange:c=>{this.fftSize=2**c,this.windowStep>this.fftSize&&(this.windowStep=this.fftSize,n.setValue(c)),this.reset()}}),n=ds.create({min:Math.log2(128),max:Math.log2(8192),step:1,value:Math.log2(this.windowStep),transformer:c=>2**c,onChange:c=>{this.windowStep=2**c,this.windowStep>this.fftSize&&(this.windowStep=this.fftSize,n.setValue(Math.log2(this.fftSize))),this.reset()}}),a=document.createElement("div");a.innerText="Tempo",a.style.fontWeight="600",a.style.marginTop="15px";const o=ds.create({min:Math.log2(128),max:Math.log2(8192),step:1,value:Math.log2(this.tempoFftSize),transformer:c=>2**c,onChange:c=>{this.tempoStep=2**c,this.tempoStep>this.tempoFftSize&&(this.tempoStep=this.tempoFftSize,l.setValue(c)),this.reset()}}),l=ds.create({min:Math.log2(1),max:Math.log2(1024),step:1,value:Math.log2(this.tempoStep),transformer:c=>2**c,onChange:c=>{this.tempoStep=2**c,this.tempoStep>this.tempoFftSize&&(this.tempoStep=this.tempoFftSize,l.setValue(Math.log2(this.tempoFftSize))),this.reset()}});return e.replaceChildren(i,t("FFT Size",s.view,"Determines the amount of audio to analyze at every block. Higher values result in more accurate frequencies, while lower values result in more accurate timings. Defaults to 1024."),t("Window Step",n.view,"Determines the number of blocks per second. Lower values result in more time-accurate spectrograms, but may take more time and mess up tempo analysis. Defaults to 512 and must be lower than FFT Size."),a,t("FFT Size",o.view,"Determines the amount of the onset graph to analyze at every block. Higher values result in more accurate tempos, while lower values result in more accurate timings. Defaults to 4096."),t("Window Step",l.view,"Determines the number of blocks per second. Lower values result in more time-accurate tempograms, but may take more time. Defaults to 2 and must be lower than FFT Size.")),e}createTempoView(){const e=document.createElement("div");e.style.display="flex",e.style.position="relative",e.style.gap="10px";const t=document.createElement("div");t.style.flex="1";const i=document.createElement("div");i.classList.add("sync-table-label"),i.innerText="Offsets",this.offsetTableLabel=i;const s=document.createElement("table");s.classList.add("sync-table");const n=document.createElement("tr"),a=document.createElement("th");a.innerText="Offset";const o=document.createElement("th");o.innerText="Confidence",n.replaceChildren(a,o),s.appendChild(n),t.replaceChildren(i,s);const l=document.createElement("div");l.style.flex="1";const c=document.createElement("div");c.classList.add("sync-table-label"),c.innerText="Current Tempos";const d=document.createElement("table");d.classList.add("sync-table");const h=document.createElement("tr"),u=document.createElement("th");u.innerText="BPM";const p=document.createElement("th");p.innerText="Confidence",h.replaceChildren(u,p),d.appendChild(h);for(let f=0;f<5;f++){const m=document.createElement("tr"),g=document.createElement("td");g.innerText="-";const y=document.createElement("td");y.innerText="-",m.replaceChildren(g,y),s.appendChild(m),this.offsetRows.push(m);const w=m.cloneNode(!0);d.appendChild(w),this.bpmRows.push(w)}return l.replaceChildren(c,d),e.replaceChildren(t,l),e}createOnsetsView(){const e=document.createElement("div");e.style.display="flex",e.style.flexDirection="column",e.style.gap="10px",e.style.justifyContent="center",e.style.alignItems="center",e.style.position="relative";const t=document.createElement("div");t.style.display="flex",t.style.justifyContent="space-between",t.style.alignItems="center",t.style.width="100%",Pt(t,{content:"Adjust the threshold for a block to be considered an onset (red line)."});const i=document.createElement("div");i.innerText="Onset Threshold";const s=ds.create({min:0,max:1,step:.01,value:.3,onChange:c=>{this.threshold=c}}),n=document.createElement("div");n.style.color="#888888",n.style.fontStyle="italic",n.style.fontSize="11px",n.style.marginBottom="15px",n.style.marginTop="-6px",n.innerText="Found 0 onsets",this.onsetResults=n,t.replaceChildren(i,s.view);const a=document.createElement("div");a.style.display="flex",a.style.justifyContent="space-between",a.style.alignItems="center",a.style.width="100%";const o=document.createElement("button");o.innerText="Place onsets as notes",o.onclick=()=>this.placeOnsets();const l=document.createElement("button");return l.innerText="Place onsets as notes in selection",l.disabled=!0,l.onclick=()=>this.placeOnsets(!0),this.placeNotesSelectionButton=l,a.replaceChildren(o,l),e.replaceChildren(t,n,a),e}async reset(){this._threshold=.3,this.doAnalysis=!1,this.toggleButton.disabled=!1,this.toggleButton.style.background="",this.toggleButton.innerText="Start analyzing",this.app.chartManager.chartAudio.onLoad(this.onAudioLoad),await this.getMonoAudioData(),this.sampleRate=this.app.chartManager.chartAudio.getSampleRate(),this.spectroHeights=new Array(this.fftSize).fill(0).map((t,i)=>{const s=i/(this.fftSize/2)*this.sampleRate/2,n=(i+1)/(this.fftSize/2)*this.sampleRate/2,a=qe-Be(Math.log(s/20)/Math.log(this.sampleRate/40)*qe,0,qe),o=qe-Be(Math.log(n/20)/Math.log(this.sampleRate/40)*qe,0,qe);return{y:o,height:a-o}}),this.spectroWeights=new Array(this.fftSize).fill(0).map((t,i)=>{const s=i/(this.fftSize/2)*this.sampleRate/2,n=Mh.findIndex(l=>l.frequency>s);if(n<1)return 0;const a=Mh[n-1],o=Mh[n];return Ht(a.weight,o.weight,Nt(Math.log(1+a.frequency),Math.log(1+o.frequency),Math.log(1+s)))});const e=Math.max(1,Math.ceil(this.audioLength/this.windowStep));this.spectrogramCanvases=[];for(let t=0;t{t.firstChild.innerText="-",t.lastChild.innerText="-"}),this.bpmRows.forEach(t=>{t.firstChild.innerText="-",t.lastChild.innerText="-"})}hasData(){return this.numRenderedBlocks>0}windowLoop(e){const t=e.getContext("2d");t.canvas.width=ii,t.canvas.height=qe*2,t.imageSmoothingEnabled=!1;const i=()=>{if(this.placeNotesSelectionButton.disabled=this.app.chartManager.startRegion===void 0||this.app.chartManager.endRegion===void 0||this.app.chartManager.startRegion==this.app.chartManager.endRegion,this.covers[0].classList.toggle("active",this.hasData()),this.covers[1].classList.toggle("active",!this.hasData()),this.covers[2].classList.toggle("active",!this.hasData()),!this.app.chartManager.chartAudio)return;const s=Math.ceil(this.audioLength/this.windowStep);if(this.monoAudioData!==void 0&&this.doAnalysis){const h=performance.now();for(;performance.now()-h=s){this.tempogram.length==0&&(this.toggleButton.disabled=!0,this.calcTempogram());break}this.spectrogram[this.lowestFinishedBlock]===void 0&&(this.renderBlock(this.lowestFinishedBlock),this.calcDifference(this.lowestFinishedBlock),this.calcIsolatedNovelty(this.lowestFinishedBlock),this.numRenderedBlocks++),this.lowestFinishedBlock++}this.lowestFinishedBlockw.centeru.center-Os);y!==void 0&&(p+=y.groups[0].value,f+=y.avg,m++)}p/=m,f/=m,h.push({bpm:f,weight:u.groups[0].value,smoothedWeight:p})}h.sort((u,p)=>p.smoothedWeight-u.smoothedWeight);for(const u of h)u.weight<.01||(t.font=`${18+u.weight*300}px Assistant`,t.globalAlpha=Math.min(1,u.weight*100),t.fillText(ae(u.bpm,0)+"",200,Ht(qe*2,qe*1.5,Nt(Dn,On,u.bpm))));if(this.lastSecond!=this.app.chartManager.getTime()){this.lastSecond=this.app.chartManager.getTime();const u=h.slice(0,5).reduce((p,f)=>p+f.smoothedWeight,0);for(let p=0;p<5;p++){const f=this.bpmRows[p],m=h[p]?.bpm,g=h[p]?.weight;f.firstChild.innerText=m===void 0?"-":Math.round(m).toString(),f.lastChild.innerText=g===void 0?"-":Math.round(g/u*100)+"%"}}}t.globalAlpha=1,t.font="22px Assistant",t.textAlign="left",t.textBaseline="top",t.fillText("Spectrogram",10,10),t.fillText("Onsets",10,qe+10),t.fillText("Tempogram",10,qe*1.5+10),e.closest("#windows")&&requestAnimationFrame(i)};return i}renderBlock(e){if(!this.monoAudioData)return;const t=new Float32Array(this.fftSize);t.set(this.monoAudioData.subarray(Math.max(0,e*this.windowStep-this.fftSize/2),e*this.windowStep+this.fftSize/2),-Math.min(0,e*this.windowStep-this.fftSize/2));for(let s=0;s{const a=this.spectroHeights[n],o=Be(s*2e3,0,255);i.globalAlpha=o/255,i.fillRect(e%qt,a.y,1,a.height)}),i.globalAlpha=1}storeDifferenceResponse(e,t){this.spectrogramDifference[e]=t;const i=t.reduce((s,n)=>s+n,0);this.noveltyCurve[e]=i}calcIsolatedNovelty(e){for(let t=e-Sh;t<=e;t++){if(t<0)continue;let i=0,s=0;for(let n=t-Sh;n<=t+Sh;n++)this.noveltyCurve[n]!==void 0&&(i+=this.noveltyCurve[n],s++);i/=s,this.storeIsolatedNovelty(t,Math.max(0,this.noveltyCurve[t]-i))}}storeIsolatedNovelty(e,t){this.noveltyCurveIsolated[e]=Math.log(1+t),Math.log(1+t)>this._threshold&&Math.log(1+t)>(this.noveltyCurveIsolated[e-1]??0)?(this.peaks[e-1]&&(this.peaks[e-1]=!1),this.peaks[e]=!0,this.onsetResults.innerText=`Found ${this.peaks.filter(n=>n).length} onsets`):this.peaks[e]=!1;const i=this.spectrogramCanvases[Math.floor(e/qt)].getContext("2d"),s=Math.min(1,Math.log(1+t))*qe*.5;i.fillStyle="rgb(11, 14, 26)",i.fillRect(e%qt,qe,1,qe*.5),i.fillStyle="rgba(0, 100, 150, 0.5)",i.fillRect(e%qt,qe*1.5-s,1,s)}async getMonoAudioData(){const e=this.app.chartManager.chartAudio;if(!e)return;const t=e.getBuffer(),i=new OfflineAudioContext(t.numberOfChannels,t.length,t.sampleRate),s=i.createBufferSource();s.buffer=t;const n=i.createChannelMerger(t.numberOfChannels);s.connect(n),n.connect(i.destination),s.start(),await i.startRendering().then(a=>{this.monoAudioData=a.getChannelData(0),this.audioLength=this.monoAudioData.length}).catch(()=>{Se.createFormatted("Failed to load audio: audio rendering failed","error")})}get threshold(){return this._threshold}set threshold(e){this._threshold=e,this.peaks=this.noveltyCurveIsolated.map((t,i)=>t>this._threshold&&(this.noveltyCurveIsolated[i-1]??0)t).length} onsets`}calculateOffset(){const e=new Map;let t=0,i=0,s=0;for(let c=0;cu.groups[0].value>=IS);if(h.length!=0&&(i=c,h.forEach(u=>{let p=0,f=0;for(let g=c-uo;g<=c+uo;g++){if(this.tempogramGroups[g]===void 0)continue;const y=this.tempogramGroups[g].find(w=>w.centeru.center-Os);y!==void 0&&(f+=y.avg,p++)}const m=Math.round(f/p);e.has(m)||e.set(m,0),e.set(m,e.get(m)+1),e.get(m)>t&&(t=e.get(m),s=m)}),t>50))break}if(s==0)return;const n=60/s*(this.sampleRate/this.windowStep),a=new Array(Ch).fill(0).map((c,d)=>{const h=d%n/n;let u=0,p=0;for(let f=1;f<=4;f++)p+=Math.max(1-Math.abs(Math.round(h*f)/f-h)*12,0)*1/f,u+=1/f;return p/u}),o=[];for(let c=i;ca[u]*h).reduce((h,u)=>h+u,0);o.push({block:c,offset:-(c*this.windowStep/this.sampleRate)%(60/s),response:d,curve:this.noveltyCurveIsolated.slice(c,c+Ch).map((h,u)=>a[u]*h)})}o.sort((c,d)=>d.response-c.response);const l=o.slice(0,5).reduce((c,d)=>c+d.response,0);this.offsetTableLabel.innerText=`Offsets (first BPM: ${s})`;for(let c=0;c{if(!i)return null;let n=this.app.chartManager.loadedChart.getBeatFromSeconds(s*this.windowStep/this.sampleRate);return n=Math.round(n*48)/48,n<0?null:{type:"Tap",beat:n,col:0}}).filter(i=>i!==null).filter(i=>e?i.beat>this.app.chartManager.startRegion&&i.beatu.beat==n.beat):-1,o=i.getDivisionLength(e);const l=i.getDivisionOfMeasure(e)%1*o;let c=Math.max(0,e-l);c=s[a+1]?.beat&&(a++,n=s[a],c=n.beat,o=i.getDivisionLength(c),d=0,h=n.upper)}calcTempogram(){let e=0;for(let a=0;ae&&(e=this.noveltyCurveIsolated[a]);const t=new Float32Array(this.noveltyCurveIsolated.length);for(let a=0;a{const o=new Float32Array(this.tempoFftSize);o.set(t.subarray(Math.max(0,a*this.tempoStep-this.tempoFftSize/2),a*this.tempoStep+this.tempoFftSize/2),-Math.min(0,a*this.tempoStep-this.tempoFftSize/2));for(let c=0;cn(++a),1)):(this.calculateOffset(),this.spectrogram=[],this.noveltyCurve=[],this.tempogram=[],this.monoAudioData=void 0,this.toggleButton.innerText="Finished analyzing",this.resetButton.disabled=!1,this.doAnalysis=!1,this.toggleButton.style.background="var(--accent-color)")};n(0)}storeTempogram(e,t){const i=new Map,s=[];t.forEach((a,o)=>{let l=this.sampleRate*60/(this.windowStep*this.tempoFftSize)*o;if(!(l>On*4||lOn&&l!=1/0;)l/=2;for(;l({bpm:a,value:o})).sort((a,o)=>o.value-a.value).filter(a=>a.value!=0);for(let a=0;ac.centero.bpm-Os);if(l===void 0){s.push({center:o.bpm,groups:[o]});continue}l.groups.push(o)}this.tempogramGroups[e]=s.map(a=>({...a,avg:a.groups.reduce((o,l)=>o+l.bpm*l.value,0)/a.groups.reduce((o,l)=>o+l.value,0)}));const n=this.spectrogramCanvases[Math.floor(e*this.tempoStep/qt)].getContext("2d");n.fillStyle="rgba(0, 166, 255, 1)",this.tempogram[e].forEach(a=>{const o=Be(a.value*8e3,0,255);n.globalAlpha=o/255,n.fillRect(e*this.tempoStep%qt,Ht(qe*2,qe*1.5,Nt(Dn,On,a.bpm)),1*this.tempoStep,qe*.5/(On-Dn))})}}const pf=["accent-color","editor-bg","widget-bg","editable-overlay-hover","editable-overlay-active","text-color","text-color-secondary","text-color-detail","text-color-disabled","primary-bg","primary-border","primary-bg-active","primary-bg-hover","secondary-bg","secondary-border","secondary-bg-active","secondary-bg-hover","tooltip-bg","input-bg","input-bg-active","input-bg-hover","input-border","navbar-bg","navbar-bg-inactive","window-bg","window-border"],PS=["primary-bg","secondary-bg","text-color","accent-color","widget-bg","editor-bg","editable-overlay-active","input-bg","window-bg"],BS=[{name:"primary-bg",ids:[{id:"primary-bg",label:"base"},{id:"primary-bg-active",label:"active"},{id:"primary-bg-hover",label:"hover"},{id:"primary-border",label:"border"}]},{name:"secondary-bg",ids:[{id:"secondary-bg",label:"base"},{id:"secondary-bg-active",label:"active"},{id:"secondary-bg-hover",label:"hover"},{id:"secondary-border",label:"border"}]},{name:"text-color",ids:[{id:"text-color",label:"primary"},{id:"text-color-secondary",label:"secondary"},{id:"text-color-detail",label:"detail"},{id:"text-color-disabled",label:"disabled"}]},{name:"other",ids:[{id:"accent-color",label:"accent-color"},{id:"widget-bg",label:"widget-bg"},{id:"tooltip-bg",label:"tooltip-bg"},{id:"editor-bg",label:"editor-bg"}]},{name:"editable-overlay",ids:[{id:"editable-overlay-hover",label:"hover"},{id:"editable-overlay-active",label:"active"}]},{name:"input",ids:[{id:"input-bg",label:"background"},{id:"input-bg-active",label:"active"},{id:"input-bg-hover",label:"hover"},{id:"input-border",label:"border"}]},{name:"window",ids:[{id:"window-bg",label:"background"},{id:"window-border",label:"border"}]},{name:"window-navbar",ids:[{id:"navbar-bg",label:"active"},{id:"navbar-bg-inactive",label:"inactive"}]}],ff={"accent-color":"Color used for focus input rings, confirm buttons","text-color":"Base text color","text-color-secondary":"Secondary text color, used for text in recent files, menubar keybinds","text-color-detail":"Detail text color, used for text in timing event boxes","text-color-disabled":"Used for texts relating to empty/disabled things (ex. no files in directory picker)","primary-bg":"Primary background, used for menubar, context/dropdown menus","primary-border":"","primary-bg-active":"","primary-bg-hover":"","navbar-bg":"Window navbar background","navbar-bg-inactive":"","window-bg":"Window background","window-border":"","secondary-bg":"Secondary background, used for subareas in menus","secondary-border":"","secondary-bg-active":"","secondary-bg-hover":"","editable-overlay-hover":"Overlay on top of editable items (status widget buttons, playback option toggles, textareas)","editable-overlay-active":"","input-bg":"Background color for input","input-bg-active":"","input-bg-hover":"","input-border":"","widget-bg":"Widget background","tooltip-bg":"Color of these tooltips","editor-bg":"Editor background"},kh={"primary-bg":{"primary-border":function(r){return this.lighten(r,10).setAlpha(187/255)},"primary-bg-active":function(r){return this.lighten(r,10)},"primary-bg-hover":function(r){return this.lighten(r,30)},"widget-bg":function(r){return this.add(r,-50).setAlpha(136/255)},"window-bg":function(r){return this.lighten(r,-10)},"text-color":function(r){return this.average(r)>.5?new B("#000"):new B("#fff")},"input-bg":function(r){return this.average(r)<.5?new B("#000"):new B("#fff")},"input-border":function(r){return this.average(r)>.5?this.add(r,-30).setAlpha(119/255):this.add(r,30).setAlpha(119/255)},"tooltip-bg":function(r){return this.lighten(r,-10).setAlpha(238/255)},"secondary-bg":function(r){return this.lighten(r,-20)},"editor-bg":function(r){return this.lighten(r,-60)}},"window-bg":{"navbar-bg":function(r){return new B(r)}},"secondary-bg":{"secondary-border":function(r){return this.lighten(r,10).setAlpha(187/255)},"secondary-bg-active":function(r){return this.lighten(r,50)},"secondary-bg-hover":function(r){return this.lighten(r,30)}},"navbar-bg":{"navbar-bg-inactive":function(r){return this.lighten(r,-33)}},"text-color":{"text-color-secondary":function(r){return new B(r).setAlpha(119/255)},"text-color-detail":function(r){return new B(r).setAlpha(68/255)},"text-color-disabled":function(r){return new B(r).setAlpha(136/255)}},"input-bg":{"input-border":function(r){return this.lighten(r,10).setAlpha(187/255)},"input-bg-active":function(r){return this.lighten(r,50)},"input-bg-hover":function(r){return this.lighten(r,30)}}},Ys={default:{"accent-color":new B("rgb(23, 131, 208)"),"text-color":new B("#fff"),"text-color-secondary":new B("#888"),"text-color-detail":new B("#757a89"),"text-color-disabled":new B("#888"),"primary-bg":new B("#555"),"primary-border":new B("#444"),"primary-bg-active":new B("#575757"),"primary-bg-hover":new B("#666"),"navbar-bg":new B("#3d3d3d"),"navbar-bg-inactive":new B("#626262"),"window-bg":new B("#3d3d3d"),"window-border":new B("#00000000"),"secondary-bg":new B("#373737"),"secondary-border":new B("#333"),"secondary-bg-active":new B("#555"),"secondary-bg-hover":new B("#454545"),"editable-overlay-hover":new B("rgb(255, 255, 255, 0.1)"),"editable-overlay-active":new B("rgb(255, 255, 255, 0.2)"),"input-bg":new B("rgba(35, 35, 35, 0.309)"),"input-bg-active":new B("rgba(50, 50, 50, 0.309)"),"input-bg-hover":new B("rgba(79, 79, 79, 0.309)"),"input-border":new B("rgba(0, 0, 0, 0.3)"),"widget-bg":new B("rgba(0, 0, 0, 0.5)"),"tooltip-bg":new B("rgba(20, 20, 20, 0.95)"),"editor-bg":new B("#18191c")},dusk:{"accent-color":new B("#b34e97ff"),"text-color":new B("#ffffffff"),"text-color-secondary":new B("#ffffff77"),"text-color-detail":new B("#ffffff44"),"text-color-disabled":new B("#ffffff88"),"primary-bg":new B("#1b0131ff"),"primary-border":new B("#1e0136bb"),"primary-bg-active":new B("#2f0057ff"),"primary-bg-hover":new B("#230140ff"),"navbar-bg":new B("#18012cff"),"navbar-bg-inactive":new B("#10011dff"),"window-bg":new B("#18012cff"),"window-border":new B("#00000000"),"secondary-bg":new B("#160127ff"),"secondary-border":new B("#18012bbb"),"secondary-bg-active":new B("#310a52ff"),"secondary-bg-hover":new B("#25033fff"),"editable-overlay-hover":new B("#e79dff1a"),"editable-overlay-active":new B("#e79dff33"),"input-bg":new B("#000000ff"),"input-bg-active":new B("#000000ff"),"input-bg-hover":new B("#000000ff"),"input-border":new B("#391f4f77"),"widget-bg":new B("#00000088"),"tooltip-bg":new B("#18012cee"),"editor-bg":new B("#0b0014ff")},nord:{"accent-color":new B("#1783d0ff"),"text-color":new B("#d9dee8ff"),"text-color-secondary":new B("#d9dee878"),"text-color-detail":new B("#d9dee845"),"text-color-disabled":new B("#d9dee887"),"primary-bg":new B("#2e3440ff"),"primary-border":new B("#323946ba"),"primary-bg-active":new B("#636d83ff"),"primary-bg-hover":new B("#485061ff"),"navbar-bg":new B("#292e39ff"),"navbar-bg-inactive":new B("#2f333cff"),"window-bg":new B("#292e39ff"),"window-border":new B("#00000000"),"secondary-bg":new B("#242933ff"),"secondary-border":new B("#272d38ba"),"secondary-bg-active":new B("#444d5fff"),"secondary-bg-hover":new B("#3f4755ff"),"editable-overlay-hover":new B("#ffffff1a"),"editable-overlay-active":new B("#ffffff33"),"input-bg":new B("#1212124f"),"input-bg-active":new B("#141414ff"),"input-bg-hover":new B("#171717ff"),"input-border":new B("#121212ff"),"widget-bg":new B("#00020e87"),"tooltip-bg":new B("#292e39ed"),"editor-bg":new B("#18191cff")},light:{"accent-color":new B("#ff594cff"),"text-color":new B("#000000ff"),"text-color-secondary":new B("#00000078"),"text-color-detail":new B("#00000045"),"text-color-disabled":new B("#00000087"),"primary-bg":new B("#ffffffff"),"primary-border":new B("#b5b5b5ff"),"primary-bg-active":new B("#ebebebff"),"primary-bg-hover":new B("#ffd4d1ff"),"navbar-bg":new B("#edededff"),"navbar-bg-inactive":new B("#d1d1d1ff"),"window-bg":new B("#edededff"),"window-border":new B("#00000000"),"secondary-bg":new B("#d9d9d9ff"),"secondary-border":new B("#c7c7c7ff"),"secondary-bg-active":new B("#f0f0f0ff"),"secondary-bg-hover":new B("#e3e3e3ff"),"editable-overlay-hover":new B("#ff594c3d"),"editable-overlay-active":new B("#ff594c73"),"input-bg":new B("#ebebebff"),"input-bg-active":new B("#e0e0e0ff"),"input-bg-hover":new B("#ffffffff"),"input-border":new B("#9e9e9eff"),"widget-bg":new B("#f7f7f7e5"),"tooltip-bg":new B("#ffffffff"),"editor-bg":new B("#cfcfcfff")},rust:{"accent-color":new B("#b37100ff"),"text-color":new B("#ffd7bdf2"),"text-color-secondary":new B("#ffd7bd78"),"text-color-detail":new B("#ffd7bd45"),"text-color-disabled":new B("#ffd7bd87"),"primary-bg":new B("#3c2e2aff"),"primary-border":new B("#42332eff"),"primary-bg-active":new B("#68524bff"),"primary-bg-hover":new B("#4e3c37ff"),"navbar-bg":new B("#362926ff"),"navbar-bg-inactive":new B("#241b19ff"),"window-bg":new B("#58413cff"),"window-border":new B("#00000000"),"secondary-bg":new B("#40302ba1"),"secondary-border":new B("#46352fff"),"secondary-bg-active":new B("#614a42ff"),"secondary-bg-hover":new B("#533e38ff"),"editable-overlay-hover":new B("#fff8e01a"),"editable-overlay-active":new B("#fff8e033"),"input-bg":new B("#231515ff"),"input-bg-active":new B("#271717ff"),"input-bg-hover":new B("#2e1b1bff"),"input-border":new B("#4b413fff"),"widget-bg":new B("#311e1cff"),"tooltip-bg":new B("#362926ff"),"editor-bg":new B("#181211ff")},tron:{"accent-color":new B("#00ccffff"),"text-color":new B("#ffffffff"),"text-color-secondary":new B("#ffffffe4"),"text-color-detail":new B("#ffffff5b"),"text-color-disabled":new B("#ffffff88"),"primary-bg":new B("#000000ff"),"primary-border":new B("#ff7b00c9"),"primary-bg-active":new B("#00e1ff98"),"primary-bg-hover":new B("#ff751a5a"),"navbar-bg":new B("#000000ff"),"navbar-bg-inactive":new B("#000000ff"),"window-bg":new B("#000000ff"),"window-border":new B("#ff880085"),"secondary-bg":new B("#121212ff"),"secondary-border":new B("#ff8800aa"),"secondary-bg-active":new B("#00e1ffa3"),"secondary-bg-hover":new B("#ff7e145a"),"editable-overlay-hover":new B("#ffffff1a"),"editable-overlay-active":new B("#ffffff33"),"input-bg":new B("#000000ff"),"input-bg-active":new B("#000000ff"),"input-bg-hover":new B("#000000ff"),"input-border":new B("#1e1e1eff"),"widget-bg":new B("#000000ad"),"tooltip-bg":new B("#000000ff"),"editor-bg":new B("#000000ff")},gilded:{"accent-color":new B("#ffc014ff"),"text-color":new B("#e6e6e6ff"),"text-color-secondary":new B("#ffffff6b"),"text-color-detail":new B("#e6e6e645"),"text-color-disabled":new B("#e6e6e687"),"primary-bg":new B("#232325ff"),"primary-border":new B("#272729ff"),"primary-bg-active":new B("#ffc0145b"),"primary-bg-hover":new B("#ffc01421"),"navbar-bg":new B("#202021ff"),"navbar-bg-inactive":new B("#151516ff"),"window-bg":new B("#202021ff"),"window-border":new B("#00000000"),"secondary-bg":new B("#1c1c1eff"),"secondary-border":new B("#1f1f21ff"),"secondary-bg-active":new B("#1f1f21ff"),"secondary-bg-hover":new B("#242427ff"),"editable-overlay-hover":new B("#ffffff1a"),"editable-overlay-active":new B("#ffffff33"),"input-bg":new B("#0d0d0dff"),"input-bg-active":new B("#0e0e0eff"),"input-bg-hover":new B("#111111ff"),"input-border":new B("#0e0e0eff"),"widget-bg":new B("#171717db"),"tooltip-bg":new B("#202021ff"),"editor-bg":new B("#0e0e0fff")}};function Ld(r,e,t){return(r<<16)+(e<<8)+t}function Dd(r,e){let t=r>>16,i=r>>8&255,s=r&255;return t=Be(Math.round(t*e),0,255),i=Be(Math.round(i*e),0,255),s=Be(Math.round(s*e),0,255),Ld(t,i,s)}function RS(r,e){let t=r>>16,i=r>>8&255,s=r&255;return t=Be(Math.round(t+e),0,255),i=Be(Math.round(i+e),0,255),s=Be(Math.round(s+e),0,255),Ld(t,i,s)}function Vc(r,e,t){const[i,s,n]=r.match(/\w\w/g).map(u=>parseInt(u,16)),[a,o,l]=e.match(/\w\w/g).map(u=>parseInt(u,16)),c=Math.round(i+(a-i)*t).toString(16).padStart(2,"0"),d=Math.round(s+(o-s)*t).toString(16).padStart(2,"0"),h=Math.round(n+(l-n)*t).toString(16).padStart(2,"0");return"#"+c+d+h}function LS(r,e,t){const i=Ht(r.red,e.red,t),s=Ht(r.green,e.green,t),n=Ht(r.blue,e.blue,t),a=Ht(r.alpha,e.alpha,t);return new B([i,s,n,a])}function tl(r){return new B(document.body.computedStyleMap().get(r)?.toString()??"rgba(0, 0, 0, 1)")}const sa=new Map;K.on("themeChanged",()=>{for(const[r,e]of sa.entries()){const t=tl(r);e.forEach(i=>{i.destroyed||(i.tint=t.toNumber(),i.alpha=t.alpha)}),sa.set(r,e.filter(i=>!i.destroyed))}});function Qe(r,e){sa.has(e)||sa.set(e,[]),sa.get(e).push(r);const t=tl(e);r.tint=t.toNumber(),r.alpha=t.alpha}function Ih(r){const{r:e,g:t,b:i,a:s}=r.toRgba(),n=Math.max(e,t,i),a=Math.min(e,t,i);let o=0,l=0;const c=(n+a)/2;if(n==a)o=l=0;else{const d=n-a;switch(l=c>.5?d/(2-n-a):d/(n+a),n){case e:o=(t-i)/d+(t[t,this.convertThemeToString(i)]));localStorage.setItem("themes",JSON.stringify(e))}static validateTheme(e){const t={...Ys.default};if(typeof e!="object")return t;for(const i of pf)if(e[i]!==void 0)try{t[i]=new B(e[i])}catch{console.warn(`Invalid color ${e[i]} for ${i}`)}return t}static getThemes(){return{...this._themes,...this._userThemes}}static getBuiltinThemes(){return this._themes}static getUserThemes(){return this._userThemes}static loadTheme(e){this._initialized||this.initialize();let t=this.getThemes()[e];t||(Se.createFormatted("Error loading theme: Invalid theme id","error"),t=Ys.default),_.general.theme=e,this._applyTheme(t)}static _applyTheme(e){const t=`body{${pf.map(i=>`--${i}: ${(e[i]??Ys.default[i]).toHexa()};`).join("")}}`;this.style.innerHTML=t,this.currentTheme={...e},K.emit("themeChanged")}static loadThemeFromColors(e){this._applyTheme(this.validateTheme(e))}static getCurrentTheme(){return this.currentTheme}static convertThemeToString(e){return Object.fromEntries(Object.entries(e).map(([t,i])=>[t,i.toHexa()]))}static exportCurrentTheme(e){return e={code:!1,spaces:!1,...e},e.code?JSON.stringify(Object.fromEntries(Object.entries(this.currentTheme).map(([t,i])=>[t,`^new Color('${i.toHexa()}')^`])),null,e.spaces?2:0).replaceAll('"^',"").replaceAll('^"',""):JSON.stringify(this.convertThemeToString(this.currentTheme),null,e.spaces?2:0)}static createUserTheme(e,t){this.getThemes()[e]===void 0&&(t?this._userThemes[e]={...t}:this._userThemes[e]={...Ys.default},this._saveUserThemes())}static setUserTheme(e,t){this._userThemes[e]!==void 0&&(this._userThemes[e]={...t},this._saveUserThemes())}static deleteUserTheme(e){this._userThemes[e]!==void 0&&(delete this._userThemes[e],this.loadTheme("default"),this._saveUserThemes())}static renameUserTheme(e,t){this._userThemes[e]!==void 0&&this.getThemes()[t]===void 0&&(this._userThemes[t]=this._userThemes[e],delete this._userThemes[e],this._saveUserThemes())}static parseThemeText(e){let t;try{t=JSON.parse(e)}catch{return null}return this.validateTheme(t)}}class vy extends HTMLDivElement{colorElement;set color(e){this.colorElement.style.background=e.toHexa()}}function Ph(){const r=document.createElement("div");r.classList.add("color-picker-transparent"),Object.setPrototypeOf(r,vy.prototype);const e=document.createElement("div");return e.style.width="100%",e.style.height="100%",r.colorElement=e,r.appendChild(e),r}class Js extends HTMLDivElement{inputs;opts;getValue;onupdate;static create(e){const t=document.createElement("div");Object.setPrototypeOf(t,Js.prototype),t.opts=e.inputs,t.inputs={},t.getValue=e.getValue.bind(t),t.onupdate=e.onupdate,t.classList.add("color-format");const i=document.createElement("div");i.classList.add("color-format-label"),i.innerText=e.label;const s=document.createElement("div");return s.classList.add("color-format-inputs"),Object.entries(e.inputs).forEach(([n,a])=>{const o=document.createElement("input");o.type="text";let l="";o.onfocus=()=>{l=o.value},o.onkeydown=c=>{c.key=="Enter"&&(o.blur(),c.preventDefault()),c.key=="Escape"&&(o.value=l,o.blur(),c.stopImmediatePropagation())},o.oninput=()=>{a.isValid(o.value)!==null&&t.onupdate?.(t.getValue())},o.onblur=()=>{const c=a.isValid(o.value);c===null?o.value=l:o.value=c,t.onupdate?.(t.getValue())},t.inputs[n]=o,s.appendChild(o)}),t.replaceChildren(i,s),t}setValue(e){Object.entries(this.inputs).forEach(([t,i])=>{document.activeElement!=i&&(i.value=this.opts[t].setValue(e))})}}const ri=(r,e,t)=>i=>{t!==void 0&&i.endsWith(t)&&(i=i.slice(0,i.length-t.length));let s;try{s=parseInt(i)}catch{return null}return Be(s,r,e)+""},si=(r,e,t,i)=>{let s;i!==void 0&&r.endsWith(i)&&(r=r.slice(0,r.length-i.length));try{s=parseInt(r)}catch{return e}return Be(s,e,t)};class Al extends vy{_value;_hue=0;_sat=0;_val=0;_alp=1;popup;matrix;matrixDot;matrixDragging=!1;hueDragging=!1;hueThumb;alphaDragging=!1;alphaBg;alphaThumb;previewNew;formats=[];onColorChange;static create(e){const t=Ph();return Object.setPrototypeOf(t,Al.prototype),t.value=pa(e.value),t.classList.add("color-picker"),t.formats=[],e.height!==void 0&&(t.style.height=e.height+"px"),e.width!==void 0&&(t.style.width=e.width+"px"),t.addEventListener("click",()=>{t.createPopup()}),t}updatePreview(){this.color=this._value}get value(){return this._value}set value(e){this._value=e;const t=po(this._value);this._hue=t[0],this._sat=t[1],this._val=t[2],this._alp=t[3],this.updatePreview(),this.updatePopup()}get hue(){return this._hue}set hue(e){this._hue=e,this.updateColor()}get sat(){return this._sat}set sat(e){this._sat=e,this.updateColor()}get val(){return this._val}set val(e){this._val=e,this.updateColor()}get alpha(){return this._alp}set alpha(e){this._alp=e,this.updateColor()}updateColor(){this._value=new B({h:this._hue*360,s:this._sat*100,v:this._val*100,a:this._alp}),this.updatePreview(),this.updatePopup()}createPopup(){if(this.popup){this.closePopup();return}const e=document.createElement("div");e.classList.add("color-picker-popup");const t=document.createElement("div");t.classList.add("color-picker-area");const[i,s]=this.createMatrix();this.matrix=i,this.matrixDot=s,s.style.background="#f00";const[n,a]=this.createSlider({ondrag:()=>this.hueDragging=!0,offdrag:()=>this.hueDragging=!1,change:E=>{this.hue=E,this.onColorChange?.(this._value)}});this.hueThumb=a,n.style.background="linear-gradient(to right, red 0%, #ff0 17%, lime 33%, cyan 50%, blue 66%, #f0f 83%, red 100%)";const[o,l]=this.createSlider({ondrag:()=>this.alphaDragging=!0,offdrag:()=>this.alphaDragging=!1,change:E=>{this.alpha=E,this.onColorChange?.(this._value)}});this.alphaThumb=l,o.classList.add("color-picker-transparent");const c=document.createElement("div");c.classList.add("color-slider"),o.appendChild(c),this.alphaBg=c,t.replaceChildren(i,n,o);const d=document.createElement("div");d.classList.add("color-picker-area");const h=Js.create({label:"HEX",inputs:{hex:{setValue:E=>E.alpha!=1?E.toHexa():E.toHex(),isValid:E=>{const C=/#?([0-9a-fA-F]+)/.exec(E);return C&&[3,4,6,8].includes(C[1].length)?(E[0]!="#"&&(E="#"+E),E):null}}},getValue(){let E=this.inputs.hex.value;return E[0]!="#"&&(E="#"+E),new B(E)},onupdate:E=>{this.value=E,this.onColorChange?.(this._value)}});this.formats.push(h),d.appendChild(h);const u=Js.create({label:"RGBA",inputs:{r:{setValue:E=>Math.round(E.red*255).toString(),isValid:ri(0,255)},g:{setValue:E=>Math.round(E.green*255).toString(),isValid:ri(0,255)},b:{setValue:E=>Math.round(E.blue*255).toString(),isValid:ri(0,255)},a:{setValue:E=>Math.round(E.alpha*100)+"%",isValid:ri(0,100,"%")}},getValue(){return new B({r:si(this.inputs.r.value,0,255),g:si(this.inputs.g.value,0,255),b:si(this.inputs.b.value,0,255),a:si(this.inputs.a.value,0,100,"%")/100})},onupdate:E=>{this.value=E,this.onColorChange?.(this._value)}});this.formats.push(u),d.appendChild(u);const p=Js.create({label:"HSVA",inputs:{h:{setValue:E=>Math.round(po(E)[0]*360)+"º",isValid:ri(0,360,"º")},s:{setValue:E=>Math.round(po(E)[1]*100)+"%",isValid:ri(0,100,"%")},v:{setValue:E=>Math.round(po(E)[2]*100)+"%",isValid:ri(0,100,"%")},a:{setValue:E=>Math.round(E.alpha*100)+"%",isValid:ri(0,100,"%")}},getValue(){return new B({h:si(this.inputs.h.value,0,360,"º"),s:si(this.inputs.s.value,0,100,"%"),v:si(this.inputs.v.value,0,100,"%"),a:si(this.inputs.a.value,0,100,"%")/100})},onupdate:E=>{this.value=E,this.onColorChange?.(this._value)}});this.formats.push(p),d.appendChild(p);const f=Js.create({label:"HSLA",inputs:{h:{setValue:E=>Math.round(Ih(E)[0]*360)+"º",isValid:ri(0,360,"º")},s:{setValue:E=>Math.round(Ih(E)[1]*100)+"%",isValid:ri(0,100,"%")},l:{setValue:E=>Math.round(Ih(E)[2]*100)+"%",isValid:ri(0,100,"%")},a:{setValue:E=>Math.round(E.alpha*100)+"%",isValid:ri(0,100,"%")}},getValue(){return new B({h:si(this.inputs.h.value,0,360,"º"),s:si(this.inputs.s.value,0,100,"%"),l:si(this.inputs.l.value,0,100,"%"),a:si(this.inputs.a.value,0,100,"%")/100})},onupdate:E=>{this.value=E,this.onColorChange?.(this._value)}});this.formats.push(f),d.appendChild(f);const m=document.createElement("div");m.classList.add("color-picker-preview");const g=Ph(),y=Ph();y.color=this._value,g.color=this._value,m.replaceChildren(g,y),this.previewNew=g,d.appendChild(m),e.replaceChildren(t,d),this.popup=e,this.updatePopup();const w=this._value,b=E=>{E.key=="Escape"&&(E.stopImmediatePropagation(),window.removeEventListener("keydown",b),window.removeEventListener("mousedown",v),this.closePopup(),this.value=w,this.onColorChange?.(this._value))},v=E=>{e.contains(E.target)||(window.removeEventListener("keydown",b),window.removeEventListener("mousedown",v),this.closePopup())};window.addEventListener("keydown",b),window.addEventListener("mousedown",v),document.getElementById("popups").appendChild(e),setTimeout(()=>this.movePosition())}updatePopup(){if(!this.popup)return;this.matrix.style.backgroundColor=`hsl(${this._hue*360} 100% 50%)`,this.matrixDot.style.backgroundColor=this._value.toHex(),this.matrixDragging||(this.matrixDot.style.left=this._sat*200+"px",this.matrixDot.style.top=(1-this._val)*200+"px"),this.hueDragging||(this.hueThumb.style.left=this._hue*200+"px");const e=`rgba(${this._value.red*255}, ${this._value.green*255}, ${this._value.blue*255}`;this.alphaBg.style.background=`linear-gradient(to right, ${e}, 0 ), ${e}, 1))`,this.alphaDragging||(this.alphaThumb.style.left=this._alp*200+"px"),this.formats.forEach(t=>t.setValue(this._value)),this.previewNew.color=this._value}closePopup(){const e=this.popup;this.popup=void 0,e&&(e.classList.add("exiting"),setTimeout(()=>{e.remove()},500))}createMatrix(){const e=document.createElement("div");e.classList.add("color-matrix"),e.style.backgroundColor="#ff0000";const t=document.createElement("div");t.classList.add("color-matrix-x");const i=document.createElement("div");i.classList.add("color-matrix-y");const s=document.createElement("div");s.classList.add("color-matrix-dot"),e.appendChild(s),e.replaceChildren(t,i,s),e.onmousedown=o=>{window.addEventListener("mousemove",n),window.addEventListener("mouseup",a),n(o),this.matrixDragging=!0};const n=o=>{const l=e.getBoundingClientRect(),c=Be((o.clientX-l.left)/l.width,0,1),d=Be((o.clientY-l.top)/l.height,0,1);s.style.left=c*l.width+"px",s.style.top=d*l.height+"px",this._sat=c,this.val=1-d,this.onColorChange?.(this._value)},a=()=>{window.removeEventListener("mousemove",n),window.removeEventListener("mouseup",a),this.matrixDragging=!1};return[e,s]}createSlider(e){const t=document.createElement("div");t.classList.add("color-slider");const i=document.createElement("div");i.classList.add("color-slider-thumb"),t.appendChild(i),t.onmousedown=a=>{window.addEventListener("mousemove",s),window.addEventListener("mouseup",n),s(a),e.ondrag?.(),this.onColorChange?.(this._value)};const s=a=>{const o=t.getBoundingClientRect(),l=Be((a.clientX-o.left)/o.width,0,1);i.style.left=l*o.width+"px",e.change(l)},n=()=>{window.removeEventListener("mousemove",s),window.removeEventListener("mouseup",n),e.offdrag?.()};return[t,i]}movePosition(){const e=this.getBoundingClientRect(),t=e.left+e.width/2-this.popup.clientWidth/2,i=e.top+e.height+10,s=15,n=window.innerWidth-this.popup.clientWidth-15;this.popup.style.left=`${Be(t,s,n)}px`,this.popup.style.top=`${i}px`,i+this.popup.clientHeight>window.innerHeight-15&&(this.popup.style.transformOrigin="bottom center",this.popup.style.top=`${e.top-this.popup.clientHeight-10}px`)}isActive(){return this.popup!==void 0}}class Wc extends St{app;grid;actions={};constructor(e){super({title:"Themes",width:600,height:400,disableClose:!1,win_id:"theme-selection",blocking:!1}),this.app=e,this.initView(),this.loadGrid()}initView(){this.viewElement.replaceChildren();const e=document.createElement("div");e.classList.add("padding");const t=document.createElement("div");t.classList.add("pref-search");const i=document.createElement("input");i.classList.add("pref-search-bar"),i.type="text",i.placeholder="Search for a theme...",i.oninput=()=>{this.filterGrid(i.value)},t.appendChild(i);const s=document.createElement("div");s.classList.add("theme-grid"),this.grid=s;const n=this.createOptionTray();e.replaceChildren(t,s,n),this.viewElement.appendChild(e)}createOptionTray(){const e=document.createElement("div");e.classList.add("theme-tray");const t=document.createElement("button");t.appendChild(Ae.getIcon("PLUS",16)),t.appendChild(document.createTextNode("New")),t.onclick=()=>{const l=this.getNonConflictingName("new-theme");ft.createUserTheme(l),ft.loadTheme(l),this.loadGrid()},this.actions.add=t,e.appendChild(t);const i=document.createElement("button");i.appendChild(Ae.getIcon("COPY",16)),i.appendChild(document.createTextNode("Duplicate")),i.onclick=()=>{const l=this.getNonConflictingName(_.general.theme);ft.createUserTheme(l,ft.getCurrentTheme()),ft.loadTheme(l),this.loadGrid()},i.disabled=!0,this.actions.copy=i,e.appendChild(i);const s=document.createElement("button");s.classList.add("confirm"),s.appendChild(Ae.getIcon("EDIT",16)),s.appendChild(document.createTextNode("Edit")),s.onclick=()=>{this.closeWindow(),this.app.windowManager.openWindow(new fa(this.app))},s.disabled=!0,this.actions.edit=s,e.appendChild(s);const n=document.createElement("button");n.classList.add("delete"),n.appendChild(Ae.getIcon("TRASH",16)),n.appendChild(document.createTextNode("Delete")),n.onclick=()=>{this.app.windowManager.openWindow(new El(this.app,"Delete theme","Are you sure you want to delete this theme?",[{type:"default",label:"Cancel"},{type:"delete",label:"Delete",callback:()=>{ft.deleteUserTheme(_.general.theme),this.loadGrid()}}]))},n.disabled=!0,this.actions.del=n,e.appendChild(n);const a=document.createElement("button");a.appendChild(Ae.getIcon("UPLOAD",16)),a.appendChild(document.createTextNode("Import")),a.onclick=async()=>{(await Qg({_preferPolyfill:!1,excludeAcceptAllOption:!1,multiple:!0,accepts:[{extensions:["txt"]}]})).forEach(c=>{c.getFile().then(d=>d.text()).then(d=>{const h=ft.parseThemeText(d);let u=zi(c.name,".txt");if(!h){Se.createFormatted("Failed to load theme "+u,"error");return}u=this.getNonConflictingName(u),ft.createUserTheme(u,h),this.loadGrid()})})},this.actions.imp=a,e.appendChild(a);const o=document.createElement("button");return o.appendChild(Ae.getIcon("DOWNLOAD",16)),o.appendChild(document.createTextNode("Export")),o.onclick=()=>{const l=ft.exportCurrentTheme({spaces:!0}),c=new File([l],_.general.theme+".txt",{type:"text/plain"}),d=document.createElement("a"),h=URL.createObjectURL(c);d.href=h,d.download=c.name,document.body.appendChild(d),d.click(),document.body.removeChild(d),window.URL.revokeObjectURL(h)},this.actions.exp=o,o.disabled=!0,e.appendChild(o),e}loadGrid(){this.grid.replaceChildren();const e=ft.getThemes();if(e)for(const[t,i]of Object.entries(e)){let s=t;const n=Ys[t]!==void 0,a=document.createElement("div"),o=document.createElement("div");if(o.classList.add("inlineEdit"),n)o.style.fontWeight="bold";else{o.contentEditable="true";let c=t;o.onfocus=()=>{c=o.innerText},o.onkeydown=d=>{d.key=="Enter"&&(o.blur(),d.preventDefault()),d.key=="Escape"&&(o.innerText=c,o.blur(),d.stopImmediatePropagation())},o.onblur=()=>{if(o.innerText==c)return;const d=this.getNonConflictingName(o.innerText);ft.renameUserTheme(c,d),ft.loadTheme(d),o.innerText=d,s=d,a.dataset.id=d}}const l=document.createElement("div");l.classList.add("theme-preview-grid");for(const c of PS){const d=document.createElement("div");d.style.backgroundColor=i[c].toHex(),l.appendChild(d)}o.innerText=t,a.classList.add("theme-cell"),o.classList.add("theme-title"),a.replaceChildren(o,l),this.grid.appendChild(a),t==_.general.theme&&(a.classList.add("selected"),setTimeout(()=>{a.scrollIntoView({behavior:_.general.smoothAnimations?"smooth":"instant",block:"center"})}),this.actions.edit.disabled=n,this.actions.del.disabled=n,this.actions.copy.disabled=!1,this.actions.exp.disabled=!1),a.dataset.id=t,a.onclick=()=>{_.general.theme!=s&&(ft.loadTheme(s),this.removeAllSelections(),a.classList.add("selected"),this.actions.edit.disabled=n,this.actions.del.disabled=n,this.actions.copy.disabled=!1,this.actions.exp.disabled=!1)}}}removeAllSelections(){[...this.grid.querySelectorAll(".selected")].forEach(e=>e.classList.remove("selected"))}filterGrid(e){[...this.grid.children].forEach(t=>{if(!(t instanceof HTMLDivElement))return;const i=t,s=this.containsQuery(e,i.dataset.id);i.style.display=s?"":"none"})}containsQuery(e,t){return t?t.toLowerCase().includes(e.trim().toLowerCase()):!1}getNonConflictingName(e){const t=ft.getThemes();if(t[e]==null)return e;let i=2;const s=/([^]+)-(\d+)$/.exec(e);s&&(e=s[1],i=parseInt(s[2]));let n=`${e}-${i}`;for(;t[n]!==void 0;)n=`${e}-${i}`,i++;return n}}class fa extends St{app;pickers={};handlers=[];linkBlacklist=new Set;static isOpen=!1;constructor(e){super({title:"Theme Color Editor",width:500,height:400,win_id:"theme-editor",disableClose:!0}),this.app=e,this.initView(),fa.isOpen=!0}initView(){this.viewElement.replaceChildren();const e=document.createElement("div");e.classList.add("padding");const t=document.createElement("div");t.classList.add("theme-color-grid"),BS.forEach(l=>{t.appendChild(this.createGroup(l))});const i=document.createElement("div");i.classList.add("menu-options");const s=document.createElement("div");s.classList.add("menu-left");const n=document.createElement("div");n.classList.add("menu-right"),i.appendChild(s),i.appendChild(n);const a=document.createElement("button");a.innerText="Cancel",a.onclick=()=>{this.closeWindow(),ft.loadTheme(_.general.theme),this.app.windowManager.openWindow(new Wc(this.app))},s.appendChild(a);const o=document.createElement("button");o.innerText="Save",o.classList.add("confirm"),o.onclick=()=>{ft.setUserTheme(_.general.theme,ft.getCurrentTheme()),ft.loadTheme(_.general.theme),this.app.windowManager.openWindow(new Wc(this.app)),this.closeWindow()},n.appendChild(o),e.replaceChildren(t,i),this.viewElement.appendChild(e)}createGroup(e){const t=document.createElement("div");t.classList.add("theme-group");const i=document.createElement("div");i.classList.add("theme-group-label"),i.innerText=e.name;const s=document.createElement("div");return s.classList.add("theme-picker-grid"),e.ids.forEach(n=>{s.appendChild(this.createPicker(n))}),t.replaceChildren(i,s),t}createPicker(e){const t=()=>{const d=new B(ft.getCurrentTheme()[e.id]);o.innerText=d.toHex()+" | "+Math.round(d.alpha*100)+"%",!l.isActive()&&(l.value=d)},i=d=>{const h=ft.getCurrentTheme();h[e.id]=d,ft._applyTheme(this.updateLinks(e.id,h))},s=document.createElement("div");s.classList.add("theme-color-cell"),ff[e.id]!=""&&Pt(s,{content:ff[e.id]});const n=kh[e.id];n&&(s.onmouseover=()=>{Object.keys(n).forEach(d=>{this.linkBlacklist.has(d)||this.pickers[d].classList.add("linked")})},s.onmouseout=()=>{Object.keys(n).forEach(d=>{this.pickers[d].classList.remove("linked")})});const a=document.createElement("div");a.innerText=e.label;const o=document.createElement("div");o.classList.add("theme-color-detail");const l=Al.create({value:"white",width:30,height:30});l.onColorChange=i,s.replaceChildren(a,o,l);const c=this.getLink(e.id);if(c!==null){const d=document.createElement("div");d.classList.add("ico-checkbox");const h=Ae.getIcon("LINK",16),u=Ae.getIcon("LINK_BROKEN",16);let p=!0;const f=()=>{p?this.linkBlacklist.delete(e.id):this.linkBlacklist.add(e.id),h.style.display=p?"":"none",u.style.display=p?"none":""};d.onclick=()=>{p=!p,f()},Pt(d,{onShow(g){g.setContent(p?`Linked to ${c}`:"Unlinked")}}),Pt(d,{trigger:"click",onShow(g){g.setContent(p?`Linked to ${c}`:"Unlinked")}}),f(),d.replaceChildren(h,u),s.appendChild(d);const m=g=>{p&&(p=!1,f()),i(g)};l.onColorChange=m}return t(),K.on("themeChanged",t),this.handlers.push(t),this.pickers[e.id]=s,s}getLink(e){for(const[t,i]of Object.entries(kh))if(e in i)return t;return null}average(e){return(e.red+e.green+e.blue)/3}lighten(e,t){return new B(Dd(new B(e).toNumber(),1+t/100))}add(e,t){return new B(RS(new B(e).toNumber(),t))}updateLinks(e,t){const i=new Set,s=[e];for(;s.length!=0;){const n=s.shift(),a=kh[n];if(a)for(const[o,l]of Object.entries(a))this.linkBlacklist.has(o)||i.has(o)||(t[o]=l.bind(this)(t[n]),s.push(o),i.add(o))}return t}onClose(){fa.isOpen=!1}}const ni=r=>r,mf={offset:{title:"Offset",element:ni({create:(r,e)=>{const t=at.create(0,_.general.spinnerStep/100,3);return t.onChange=i=>{i!=null&&(e().setOffset(i),r.chartManager.setBeat(r.chartManager.getBeat()))},t.view},update:(r,e)=>{const t=r.querySelector(".spinner-input");if(document.activeElement==t)return;const i=e.getOffset();t.value!=ae(i,3).toFixed(3)&&(t.value=ae(i,3).toFixed(3))}})},bpm:{title:"BPM",element:ni({create:(r,e)=>{const t=at.create(120,void 0,3);return t.onChange=i=>{if(i==null){const s=r.chartManager.getBeat();e().delete([{type:"BPMS",beat:s}]);return}e().insert([{type:"BPMS",beat:r.chartManager.getBeat(),value:i}])},t.view},update:(r,e,t)=>{const i=r.querySelector(".spinner-input");if(document.activeElement==i)return;const s=e.getEventAtBeat("BPMS",t)?.value??120;i.value!=ae(s,3).toFixed(3)&&(i.value=ae(s,3).toFixed(3))}})},stop:{title:"Stop",element:ni({create:(r,e)=>{const t=at.create(0,void 0,3);return t.onChange=i=>{if(i==null||i==0){const s=r.chartManager.getBeat();e().delete([{type:"STOPS",beat:s}]);return}e().insert([{type:"STOPS",beat:r.chartManager.getBeat(),value:i}])},t.view},update:(r,e,t)=>{const i=r.querySelector(".spinner-input");if(document.activeElement==i)return;const s=e.getEventAtBeat("STOPS",t);let n=s?.value??0;t!=s?.beat&&(n=0),i.value!=ae(n,3).toFixed(3)&&(i.value=ae(n,3).toFixed(3))}})},delay:{title:"Delay",element:ni({create:(r,e)=>{const t=at.create(0,void 0,3);return t.onChange=i=>{if(i==null||i==0){const s=r.chartManager.getBeat();e().delete([{type:"DELAYS",beat:s}]);return}e().insert([{type:"DELAYS",beat:r.chartManager.getBeat(),value:i}])},t.view},update:(r,e,t)=>{const i=r.querySelector(".spinner-input");if(document.activeElement==i)return;const s=e.getEventAtBeat("DELAYS",t);let n=s?.value??0;t!=s?.beat&&(n=0),i.value!=ae(n,3).toFixed(3)&&(i.value=ae(n,3).toFixed(3))}})},warp:{title:"Warp",element:ni({create:(r,e)=>{const t=at.create(0,void 0,3,0);return t.onChange=i=>{if(i==null||i==0){const s=r.chartManager.getBeat();e().delete([{type:"WARPS",beat:s}]);return}i<0||e().insert([{type:"WARPS",beat:r.chartManager.getBeat(),value:i}])},t.view},update:(r,e,t)=>{const i=r.querySelector(".spinner-input");if(document.activeElement==i)return;const s=e.getEventAtBeat("WARPS",t);let n=s?.value??0;t!=s?.beat&&(n=0),i.value!=ae(n,3).toFixed(3)&&(i.value=ae(n,3).toFixed(3))}})},timeSig:{title:"Time Sig.",element:ni({create:(r,e)=>{const t=document.createElement("div");t.classList.add("flex-column-gap");const i=at.create(4,1,0,1);i.onChange=n=>{if(n==null){const a=r.chartManager.getBeat();e().delete([{type:"TIMESIGNATURES",beat:a}]);return}n<1||e().insert([{type:"TIMESIGNATURES",beat:r.chartManager.getBeat(),upper:n,lower:s.value}])};const s=at.create(4,1,0,1);return s.onChange=n=>{if(n==null){const a=r.chartManager.getBeat();e().delete([{type:"TIMESIGNATURES",beat:a}]);return}n<1||e().insert([{type:"TIMESIGNATURES",beat:r.chartManager.getBeat(),upper:i.value,lower:n}])},t.appendChild(i.view),t.appendChild(s.view),t},update:(r,e,t)=>{const i=r.firstElementChild.querySelector(".spinner-input"),s=r.lastElementChild.querySelector(".spinner-input"),n=e.getEventAtBeat("TIMESIGNATURES",t),a=n?.upper??4,o=n?.lower??4;document.activeElement!=i&&i.value!=Math.round(a).toString()&&(i.value=Math.round(a).toString()),document.activeElement!=s&&s.value!=Math.round(o).toString()&&(s.value=Math.round(o).toString())}})},tick:{title:"Tickcount",element:ni({create:(r,e)=>{const t=at.create(4,1,0,0);return t.onChange=i=>{if(i==null){const s=r.chartManager.getBeat();e().delete([{type:"TICKCOUNTS",beat:s}]);return}i<0||e().insert([{type:"TICKCOUNTS",beat:r.chartManager.getBeat(),value:i}])},t.view},update:(r,e,t)=>{const i=r.querySelector(".spinner-input");if(document.activeElement==i)return;const s=e.getEventAtBeat("TICKCOUNTS",t)?.value??4;i.value!=Math.round(s).toString()&&(i.value=Math.round(s).toString())}})},combo:{title:"Combo",element:ni({create:(r,e)=>{const t=document.createElement("div");t.classList.add("flex-column-gap");const i=at.create(1,1,0,0);i.onChange=n=>{if(n==null){const a=r.chartManager.getBeat();e().delete([{type:"COMBOS",beat:a}]);return}n<0||e().insert([{type:"COMBOS",beat:r.chartManager.getBeat(),hitMult:n,missMult:s.value}])};const s=at.create(1,1,0,0);return s.onChange=n=>{if(n==null){const a=r.chartManager.getBeat();s.setValue(r.chartManager.loadedChart?.timingData.getEventAtBeat("COMBOS",a)?.missMult??1);return}n<0||e().insert([{type:"COMBOS",beat:r.chartManager.getBeat(),hitMult:i.value,missMult:n}])},t.appendChild(i.view),t.appendChild(s.view),t},update:(r,e,t)=>{const i=r.firstElementChild.querySelector(".spinner-input"),s=r.lastElementChild.querySelector(".spinner-input"),n=e.getEventAtBeat("COMBOS",t),a=n?.hitMult??1,o=n?.missMult??1;document.activeElement!=i&&i.value!=Math.round(a).toString()&&(i.value=Math.round(a).toString()),document.activeElement!=s&&s.value!=Math.round(o).toString()&&(s.value=Math.round(o).toString())}})},speed:{title:"Speed",element:ni({create:(r,e)=>{const t=document.createElement("div");t.classList.add("flex-column-gap");const i=()=>{e().insert([{type:"SPEEDS",beat:r.chartManager.getBeat(),value:s.value,delay:n.value,unit:a.value=="Beats"?"B":"T"}])},s=at.create(1,.1,0);s.onChange=o=>{if(o==null){const l=r.chartManager.getBeat();e().delete([{type:"SPEEDS",beat:l}]);return}i()};const n=at.create(1,.1,0);n.onChange=o=>{o==null||o<0||i()};const a=gi.create(["Beat","Time"],"Beats");return a.onChange=i,t.appendChild(s.view),t.appendChild(n.view),t.appendChild(a.view),t},update:(r,e,t)=>{const i=r.firstElementChild.querySelector(".spinner-input"),s=r.children[1].querySelector(".spinner-input"),n=e.getEventAtBeat("SPEEDS",t),a=n?.value??1,o=n?.delay??0,l=n?.unit=="B"?"Beat":"Time";document.activeElement!=i&&i.value!=ae(a,3).toFixed(3)&&(i.value=ae(a,3).toFixed(3)),document.activeElement!=s&&s.value!=ae(o,3).toFixed(3)&&(s.value=ae(o,3).toFixed(3)),s.disabled=n?.beat!=t;const c=r.lastElementChild.querySelector(".dropdown-selected-text");c.innerText!=l&&(c.innerText=l),n?.beat!=t?c.classList.add("disabled"):c.classList.remove("disabled")}})},scroll:{title:"Scroll",element:ni({create:(r,e)=>{const t=at.create(1,void 0,3);return t.onChange=i=>{if(i==null){const s=r.chartManager.getBeat();e().delete([{type:"SCROLLS",beat:s}]);return}e().insert([{type:"SCROLLS",beat:r.chartManager.getBeat(),value:i}])},t.view},update:(r,e,t)=>{const i=r.querySelector(".spinner-input");if(document.activeElement==i)return;const s=e.getEventAtBeat("SCROLLS",t)?.value??1;i.value!=ae(s,3).toFixed(3)&&(i.value=ae(s,3).toFixed(3))}})},fake:{title:"Fake",element:ni({create:(r,e)=>{const t=at.create(1,void 0,3,0);return t.onChange=i=>{if(i==null){const s=r.chartManager.getBeat();e().delete([{type:"FAKES",beat:s}]);return}i<0||e().insert([{type:"FAKES",beat:r.chartManager.getBeat(),value:i}])},t.view},update:(r,e,t)=>{const i=r.querySelector(".spinner-input");if(document.activeElement==i)return;const s=e.getEventAtBeat("FAKES",t);let n=s?.value??1;t!=s?.beat&&(n=0),i.value!=ae(n,3).toFixed(3)&&(i.value=ae(n,3).toFixed(3))}})},label:{title:"Label",element:ni({create:(r,e)=>{const t=document.createElement("input");return t.type="text",t.autocomplete="off",t.spellcheck=!1,t.onkeydown=i=>{i.key=="Enter"&&t.blur()},t.onblur=()=>{if(t.value==""){const i=r.chartManager.getBeat();e().delete([{type:"LABELS",beat:i}]);return}e().insert([{type:"LABELS",beat:r.chartManager.getBeat(),value:t.value}])},t},update:(r,e,t)=>{const i=r;if(document.activeElement==i)return;const n=e.getEventAtBeat("LABELS",t)?.value??"";i.value!=n&&(i.value=n)}})}};class DS extends St{app;lastBeat;chartTiming=!1;interval;changeHandler=()=>this.setData();constructor(e){super({title:"Edit Timing Data",width:300,height:340,disableClose:!1,win_id:"timing_data",blocking:!1}),this.app=e,this.lastBeat=Math.round(this.app.chartManager.getBeat()*1e3)/1e3,this.chartTiming=this.app.chartManager.loadedChart.timingData.usesChartTiming(),this.initView(),this.interval=setInterval(()=>{Math.round(this.app.chartManager.getBeat()*1e3)/1e3!=this.lastBeat&&(this.lastBeat=Math.round(this.app.chartManager.getBeat()*1e3)/1e3,this.setData())},17),K.on("timingModified",this.changeHandler),K.on("chartLoaded",this.changeHandler)}onClose(){K.off("timingModified",this.changeHandler),clearInterval(this.interval)}initView(){this.viewElement.replaceChildren(),this.viewElement.classList.add("timing-data");const e=document.createElement("div");e.classList.add("padding");const t=document.createElement("div");t.classList.add("label"),t.innerText="Apply to";const i=gi.create(["All charts","This chart"],this.chartTiming?"This chart":"All charts");i.onChange(s=>{this.chartTiming=s=="This chart"}),e.appendChild(t),e.appendChild(i.view),Object.values(mf).forEach(s=>{const n=document.createElement("div");n.classList.add("label"),n.innerText=s.title;const a=s.element.create(this.app,()=>this.chartTiming?this.app.chartManager.loadedChart.timingData:this.app.chartManager.loadedSM.timingData);e.appendChild(n),e.appendChild(a)}),this.viewElement.appendChild(e),this.setData()}setData(){this.app.chartManager.loadedChart&&Object.values(mf).forEach((e,t)=>{const i=this.viewElement.children[0].children[t*2+3];e.element.update(i,this.app.chartManager.loadedChart.timingData,this.lastBeat)})}}const gf=[{type:"group",id:"app",label:"App",disable:()=>window.nw===void 0,children:[{type:"subgroup",children:[{type:"item",label:"Window Width",id:"app.width",input:{type:"number",step:50,min:300,onChange:(r,e)=>{const t=nw.Window.get();t.isFullscreen||(t.width=e)}}},{type:"item",label:"Window Height",id:"app.height",input:{type:"number",step:50,min:300,onChange:(r,e)=>{const t=nw.Window.get();t.isFullscreen||(t.height=e)}}}]},{type:"subgroup",children:[{type:"item",label:"Fullscreen",id:"app.fullscreen",input:{type:"checkbox",onChange:(r,e)=>{const t=nw.Window.get();e?nw.Window.get().enterFullscreen():(t.hide(),nw.Window.get().leaveFullscreen(),t.show())}}}]}]},{type:"group",id:"general",label:"General",children:[{type:"subgroup",children:[{type:"item",label:"Smooth Animations",id:"general.smoothAnimations",input:{type:"checkbox",onChange:(r,e)=>{e?document.body.classList.add("animated"):document.body.classList.remove("animated")}}},{type:"item",label:"Warn before exit",id:"general.warnBeforeExit",input:{type:"checkbox"},tooltip:"Warn before exiting the editor if you have unsaved changes."},{type:"item",label:"Spinner step",id:"general.spinnerStep",input:{type:"slider",min:0,step:.1,max:5,hardMin:0,hardMax:2**31-1},tooltip:"The default increment for all number spinners."}]}]},{type:"group",id:"chart",label:"Chart",children:[{type:"subgroup",label:"Playfield",children:[{type:"subgroup",children:[{type:"item",label:"Enable mouse placement",id:"chart.mousePlacement",input:{type:"checkbox"}}]},{type:"subgroup",children:[{type:"item",label:"Zoom",id:"chart.zoom",input:{type:"slider",min:50,step:1,max:200,hardMax:2**31-1,transformers:{serialize:r=>r*100,deserialize:r=>r/100}}},{type:"item",label:"Reverse playfield",id:"chart.reverse",input:{type:"checkbox"}}]},{type:"subgroup",children:[{type:"item",label:"Y position",id:"chart.receptorYPos",input:{type:"slider",min:-400,max:0,hardMin:-(2**31-1),hardMax:2**31-1}},{type:"item",label:"Draw length",id:"chart.maxDrawBeats",input:{type:"slider",min:0,max:30,hardMax:2**31-1},tooltip:"Maximum number of beats to draw notes. Increasing this works well for songs with high bpm but can affect performance. Only applies to XMod."},{type:"item",label:"Draw length past receptors",id:"chart.maxDrawBeatsBack",input:{type:"slider",min:0,max:30,hardMax:2**31-1},tooltip:"Maximum number of beats to draw notes past the receptors. Increasing this can affect performance. Only applies to XMod."}]},{type:"subgroup",children:[{type:"item",label:"Draw noteflashes",id:"chart.drawNoteFlash",input:{type:"checkbox"}},{type:"item",label:"Draw note icons",id:"chart.drawIcons",input:{type:"checkbox"},tooltip:"Draw indicators above notes that some noteskins may not differentiate, like Fakes and Lifts."}]}]},{type:"subgroup",label:"Scrolling",children:[{type:"item",label:"Scroll sensitivity",id:"chart.scroll.scrollSensitivity",input:{type:"slider",min:0,step:1,max:200,hardMax:2**31-1,transformers:{serialize:r=>r*100,deserialize:r=>r/100}},tooltip:"Adjust the scroll sensitivity when scrolling through the chart."},{type:"item",label:"Snap every scroll",id:"chart.scroll.scrollSnapEveryScroll",input:{type:"checkbox"},tooltip:"Whether each scroll movement corresponds to moving one snap unit when scrolling. Turning this on will have the same behavior as ArrowVortex. Recommended on for those using a mouse, off for those using trackpad."},{type:"item",label:"Invert zoom in/out",id:"chart.scroll.invertZoomScroll",input:{type:"checkbox"},tooltip:"Inverts the zoom in/out control when scrolling."},{type:"item",label:"Invert scroll direction when in reverse",id:"chart.scroll.invertReverseScroll",input:{type:"checkbox"}}]},{type:"subgroup",label:"Waveform",children:[{type:"item",label:"Draw waveform",id:"chart.waveform.enabled",input:{type:"checkbox"}},{type:"subgroup",children:[{type:"item",label:"Color",id:"chart.waveform.color",input:{type:"color"}}]},{type:"subgroup",children:[{type:"item",label:"Draw filtered waveform",id:"chart.waveform.allowFilter",input:{type:"checkbox"}},{type:"item",label:"Filtered color",id:"chart.waveform.filteredColor",input:{type:"color"}}]},{type:"item",label:"Line height",id:"chart.waveform.lineHeight",input:{type:"slider",min:1,max:3,step:.1,hardMax:100},tooltip:"The height of each line of the waveform. Increasing this can help performance."},{type:"item",label:"Antialiasing",id:"chart.waveform.antialiasing",input:{type:"checkbox"}},{type:"item",label:"Allow speed changes",id:"chart.waveform.speedChanges",input:{type:"checkbox"},tooltip:"Allows the waveform to be affected by SPEEDS and SCROLLS."}]},{type:"subgroup",label:"Note Layout",children:[{type:"item",label:"Show Note Layout",id:"chart.noteLayout.enabled",input:{type:"checkbox"}}]},{type:"subgroup",label:"NPS Graph",children:[{type:"item",label:"Show NPS Graph",id:"chart.npsGraph.enabled",input:{type:"checkbox"}},{type:"subgroup",children:[{type:"item",label:"Start Color",id:"chart.npsGraph.color1",input:{type:"color"}},{type:"item",label:"End Color",id:"chart.npsGraph.color2",input:{type:"color"}}]}]}]},{type:"group",id:"audio",label:"Audio",children:[{type:"subgroup",children:[{type:"item",label:"Master volume",id:"audio.masterVolume",input:{type:"slider",min:0,step:1,max:100,hardMax:2**31-1,transformers:{serialize:r=>r*100,deserialize:r=>r/100}}},{type:"item",label:"Song volume",id:"audio.songVolume",input:{type:"slider",min:0,step:1,max:100,hardMax:2**31-1,transformers:{serialize:r=>r*100,deserialize:r=>r/100}}},{type:"item",label:"Sound effect volume",id:"audio.soundEffectVolume",input:{type:"slider",min:0,step:1,max:100,hardMax:2**31-1,transformers:{serialize:r=>r*100,deserialize:r=>r/100}}}]},{type:"subgroup",children:[{type:"item",label:"Enable assist tick",id:"audio.assistTick",input:{type:"checkbox"},tooltip:"Plays a sound when a note passes the receptors"},{type:"item",label:"Enable metronome",id:"audio.metronome",input:{type:"checkbox"}}]},{type:"subgroup",children:[{type:"item",label:"Allow filters to affect audio",id:"audio.allowFilter",input:{type:"checkbox",onChange:r=>{r.chartManager.chartAudio.reload()}}},{type:"item",label:"Enable metronome",id:"audio.metronome",input:{type:"checkbox"}}]}]},{type:"group",id:"play",label:"Play mode",children:[{type:"subgroup",label:"Calibration",children:[{type:"item",label:"Global offset",id:"play.offset",input:{type:"slider",min:-1,step:.001,max:1,hardMin:-(2**31-1),hardMax:2**31-1},tooltip:"Offset in seconds when playing a chart. Set to positive if you are hitting early and negative if you are hitting late."},{type:"item",label:"Sound effect offset",id:"play.effectOffset",input:{type:"slider",min:-1,step:.001,max:1,hardMin:-(2**31-1),hardMax:2**31-1},tooltip:"Offset in seconds when playing sound effects like assist tick and metronome."},{type:"item",label:"Visual offset",id:"play.visualOffset",input:{type:"slider",min:-1,step:.001,max:1,hardMin:-(2**31-1),hardMax:2**31-1},tooltip:"Offset in seconds when displaying notes."}]},{type:"subgroup",children:[{type:"item",label:"Judgement tilt",id:"play.judgementTilt",input:{type:"checkbox"},tooltip:"Tilts the judgement text left if you are hitting early and right if you are hitting late."},{type:"item",label:"Hide barlines during play",id:"play.hideBarlines",input:{type:"checkbox"}}]},{type:"subgroup",label:"Timing windows",children:[{type:"item",id:"play.timingCollection",label:"Timing window collection",input:{type:"dropdown",advanced:!1,get items(){return Object.keys(Je.getCollections())}}},{type:"item",id:"play.timingWindowScale",label:"Timing window scale",input:{type:"slider",min:0,step:.001,max:2,hardMax:2**31-1},tooltip:"Scales all timing windows by the given amount."},{type:"item",id:"play.timingWindowAdd",label:"Timing window add",input:{type:"slider",min:0,step:.001,max:1,hardMax:2**31-1},tooltip:"Adds this value (in seconds) to all timing windows."}]}]},{type:"group",id:"performance",label:"Performance",children:[{type:"item",label:"Antialiasing",id:"performance.antialiasing",input:{type:"checkbox"}},{type:"item",label:"Resolution",id:"performance.resolution",input:{type:"slider",min:1,step:1,max:4,hardMin:0,hardMax:2**31-1},tooltip:"Requires a reload."}]},{type:"group",id:"debug",label:"Debug",children:[{type:"item",label:"Show FPS",id:"debug.showFPS",input:{type:"checkbox"}},{type:"item",label:"Show rendering timers",id:"debug.showTimers",input:{type:"checkbox"}},{type:"item",label:"Show scrolls/speeds debug visual",id:"debug.showScroll",input:{type:"checkbox"}},{type:"item",label:"Show noteskin errors",id:"debug.showNoteskinErrors",input:{type:"checkbox"}}]}];class OS extends St{app;observer;sectionContainer;constructor(e){super({title:"Options",width:600,height:400,disableClose:!1,win_id:"user_options",blocking:!1}),this.app=e,this.initView(),K.on("resize",()=>{this.move(window.innerWidth/2-this.options.width/2,window.innerHeight/2-this.options.height/2)})}initView(){this.viewElement.replaceChildren();const e=document.createElement("div");e.classList.add("padding");const t=document.createElement("div");t.classList.add("pref-container");const i=document.createElement("div");i.classList.add("pref-search");const s=document.createElement("input");s.classList.add("pref-search-bar"),s.type="text",s.placeholder="Search for an option...",s.oninput=()=>{a.replaceChildren(),o.replaceChildren(...this.createOptions(this.filterOptions(s.value)))},i.appendChild(s);const n=document.createElement("div");n.classList.add("pref-scrollers");const a=document.createElement("div");a.classList.add("pref-section-scroller"),this.sectionContainer=a;const o=document.createElement("div");o.classList.add("pref-option-scroller"),n.replaceChildren(a,o),this.observer=new IntersectionObserver(l=>{l.forEach(c=>{const d=c.target.dataset.id,h=a.querySelector(`.pref-section[data-id=${d}]`);h&&(c.intersectionRatio>0?h.classList.add("selected"):h.classList.remove("selected"))})},{}),t.replaceChildren(i,n),a.replaceChildren(),o.replaceChildren(...this.createOptions(gf)),e.appendChild(t),this.viewElement.appendChild(e)}createOptions(e){return e.filter(t=>!t.disable?.(this.app)).map(t=>{const i=this.makeOption(t);return t.type=="group"&&(this.observer.observe(i),this.sectionContainer?.appendChild(this.createEmptyGroup(t))),i})}makeOption(e){const t=document.createElement("div");t.classList.add("pref-"+e.type),(e.type=="group"||e.type=="item")&&(t.dataset.id=e.id);const i=document.createElement("div");i.classList.add(`pref-${e.type}-label`),e.label!==void 0&&(i.innerText=e.label,t.appendChild(i));const s=Ae.getIcon("REVERT");if(e.type=="item"&&(s.style.width="12px",s.addEventListener("click",()=>{_.applyOption([e.id,_.getDefaultOption(e.id)]);const n=e.input.onChange;n?.(this.app,_.getDefaultOption(e.id)),K.emit("userOptionUpdated",e.id),t.replaceWith(this.makeOption(e))}),s.style.display=_.getDefaultOption(e.id)===_.getOption(e.id)?"none":"block",t.appendChild(s)),e.type=="item"){const n=_.getOption(e.id);let a;if(!e.input)return t;switch(i.innerText=e.label,e.input.type){case"checkbox":{const o=document.createElement("input"),l=e.input.onChange;o.type="checkbox",o.checked=n,o.onblur=null,o.onchange=()=>{_.applyOption([e.id,o.checked]),K.emit("userOptionUpdated",e.id),s.style.display=_.getDefaultOption(e.id)===_.getOption(e.id)?"none":"block",l?.(this.app,o.checked)},o.classList.add("pref-input","right"),o.onkeydown=c=>{c.key=="Enter"&&o.blur()},a=o;break}case"dropdown":{if(e.input.advanced){const o=e.input.transformers.deserialize,l=e.input.transformers.serialize,c=e.input.onChange,d=gi.create(e.input.items,l(n));d.onChange(h=>{_.applyOption([e.id,o(h)]),K.emit("userOptionUpdated",e.id),s.style.display=_.getDefaultOption(e.id)===_.getOption(e.id)?"none":"block",c?.(this.app,o(h))}),d.view.classList.add("pref-input","dropdown-right"),a=d.view}else{const o=e.input.onChange,l=gi.create(e.input.items,n);l.onChange(c=>{_.applyOption([e.id,c]),K.emit("userOptionUpdated",e.id),s.style.display=_.getDefaultOption(e.id)===_.getOption(e.id)?"none":"block",o?.(this.app,c)}),l.view.classList.add("pref-input","dropdown-right"),a=l.view}break}case"number":{const o=e.input.transformers?.deserialize??(h=>h),l=e.input.transformers?.serialize??(h=>h),c=e.input.onChange,d=at.create(l(n),e.input.step,e.input.precision,e.input.min,e.input.max);d.onChange=h=>{if(!h){d.setValue(l(h));return}_.applyOption([e.id,o(h)]),K.emit("userOptionUpdated",e.id),s.style.display=_.getDefaultOption(e.id)===_.getOption(e.id)?"none":"block",c?.(this.app,o(h))},a=d.view;break}case"slider":{const o=e.input.transformers?.deserialize??(m=>m),l=e.input.transformers?.serialize??(m=>m),c=e.input.onChange,d=document.createElement("div");d.style.display="flex",d.style.alignItems="center";const h=document.createElement("input");h.type="range",h.min=e.input.min?.toString()??"",h.max=e.input.max?.toString()??"",h.step=e.input.step?.toString()??"1",h.value=l(n).toString();const u=document.createElement("input");u.type="text",u.value=(Math.round(l(n)*1e3)/1e3).toString();const p=e.input.min??e.input.hardMin??-Number.MAX_VALUE,f=e.input.max??e.input.hardMax??Number.MAX_VALUE;u.onblur=()=>{let m=ua(u.value);if(m===null){u.value=(Math.round(l(n)*1e3)/1e3).toString();return}m=Be(m,p,f),u.value=ae(m,3).toString(),u.blur(),u.value==""?u.value=l(m).toString():(_.applyOption([e.id,o(m)]),K.emit("userOptionUpdated",e.id)),h.value=m.toString(),s.style.display=_.getDefaultOption(e.id)===_.getOption(e.id)?"none":"block",c?.(this.app,o(m))},h.oninput=()=>{const m=parseFloat(h.value);u.value=ae(m,3).toString(),_.applyOption([e.id,o(m)]),s.style.display=_.getDefaultOption(e.id)===_.getOption(e.id)?"none":"block"},u.style.width="50px",u.onkeydown=m=>{m.key=="Enter"&&u.blur()},d.appendChild(h),d.appendChild(u),a=d;break}case"text":{const o=e.input.onChange,l=document.createElement("input");l.type="text",l.value=n.toString(),l.onblur=()=>{_.applyOption([e.id,l.value]),K.emit("userOptionUpdated",e.id),s.style.display=_.getDefaultOption(e.id)===_.getOption(e.id)?"none":"block",o?.(this.app,l.value)},l.onkeydown=c=>{c.key=="Enter"&&l.blur()},a=l;break}case"color":{const o=e.input.onChange,l=Al.create({value:n});l.onColorChange=c=>{_.applyOption([e.id,c.toHexa()]),K.emit("userOptionUpdated",e.id),s.style.display=_.getDefaultOption(e.id)===_.getOption(e.id)?"none":"block",o?.(this.app,c)},a=l}}a.classList.add("pref-item-input"),t.appendChild(a)}else{const n=document.createElement("div");n.classList.add("pref-children"),t.appendChild(n),n.replaceChildren(...this.createOptions(e.children))}return e.type=="item"&&e.tooltip!==void 0&&Pt(t,{content:e.tooltip}),t}filterOptions(e,t=gf){const i=[];return t.forEach(s=>{if(s.label&&s.label.toLowerCase().includes(e.toLowerCase())){i.push(s);return}if(s.type=="group"||s.type=="subgroup"){const n=this.filterOptions(e,s.children);n.length!=0&&i.push({...s,children:n})}}),i}createEmptyGroup(e){const t=document.createElement("div");return t.classList.add("pref-section"),t.dataset.id=e.id,t.innerText=e.label,t.onclick=()=>{t.parentElement.parentElement.querySelector(`.pref-group[data-id=${e.id}]`).scrollIntoView()},t}onClose(){this.observer?.disconnect()}}var Yn=(r=>(r.SHIFT="Shift",r.CTRL="Ctrl",r.ALT="Alt",r.META="Command",r))(Yn||{});const Si=navigator.userAgent.indexOf("Mac OS X")>-1,ct=Si?"Command":"Ctrl",FS={Shift:Si?"⇧":"Shift",Ctrl:Si?"⌃":"Ctrl",Alt:Si?"⌥":"Alt",Command:"⌘"},yf={ArrowLeft:"Left",ArrowUp:"Up",ArrowRight:"Right",ArrowDown:"Down",BracketLeft:"[",BracketRight:"]",Semicolon:";",Quote:"'",Backslash:"\\",Slash:"/",Period:".",Comma:",",Backquote:"`",Minus:"-",Equal:"+"},by={Home:Si?"fn Left":"Home",End:Si?"fn Right":"End",PageUp:Si?"fn Up":"End",PageDown:Si?"fn Down":"End"},il=["ctrlKey","altKey","shiftKey","metaKey"],Co=["Ctrl","Alt","Shift","Command"],Tt={playback:{label:"Play/Pause",combos:[{key:"Space",mods:[]}],disabled:r=>!r.chartManager.chartView||r.chartManager.getMode()==X.Play||r.chartManager.getMode()==X.Record,callback:r=>r.chartManager.playPause()},decreaseSnap:{label:"Decrease snap",combos:[{key:"Left",mods:[]}],disabled:r=>!r.chartManager.chartView||r.chartManager.getMode()==X.Play||r.chartManager.getMode()==X.Record,callback:r=>r.chartManager.previousSnap()},increaseSnap:{label:"Increase snap",combos:[{key:"Right",mods:[]}],disabled:r=>!r.chartManager.chartView||r.chartManager.getMode()==X.Play||r.chartManager.getMode()==X.Record,callback:r=>r.chartManager.nextSnap()},cursorUp:{label:"Move cursor up",combos:[{key:"Up",mods:[]}],disabled:r=>!r.chartManager.chartView||r.chartManager.getMode()==X.Play||r.chartManager.getMode()==X.Record,callback:r=>{r.chartManager.snapToPreviousTick()}},cursorDown:{label:"Move cursor down",combos:[{key:"Down",mods:[]}],disabled:r=>!r.chartManager.chartView||r.chartManager.getMode()==X.Play||r.chartManager.getMode()==X.Record,callback:r=>{r.chartManager.snapToNextTick()}},increaseScrollSpeed:{label:"Increase scroll speed",combos:[{key:"Up",mods:[ct]}],disabled:r=>!r.chartManager.chartView,callback:()=>_.chart.speed=Math.max(10,_.chart.speed*Math.pow(1.01,30))},decreaseScrollSpeed:{label:"Decrease scroll speed",combos:[{key:"Down",mods:[ct]}],disabled:r=>!r.chartManager.chartView,callback:()=>_.chart.speed=Math.max(10,_.chart.speed*Math.pow(1.01,-30))},zoomIn:{label:"Zoom in",combos:[{key:"+",mods:[ct]}],disabled:r=>!r.chartManager.chartView,callback:()=>{_.chart.zoom+=.1,Se.create("Zoom: "+Math.round(_.chart.zoom*100)+"%")}},zoomOut:{label:"Zoom out",combos:[{key:"-",mods:[ct]}],disabled:r=>!r.chartManager.chartView,callback:()=>{_.chart.zoom=Math.max(.1,_.chart.zoom-.1),Se.create("Zoom: "+Math.round(_.chart.zoom*100)+"%")}},zoomDefault:{label:"Reset zoom",combos:[{key:"0",mods:[ct]}],disabled:r=>!r.chartManager.chartView,callback:()=>{_.chart.zoom=1,Se.create("Zoom: "+Math.round(_.chart.zoom*100)+"%")}},newSong:{label:"New song...",bindLabel:"New song",combos:[{key:"N",mods:[ct]}],disabled:r=>!r.chartManager.loadedSM||!Ie.openWindows,callback:r=>{r.windowManager.openWindow(new my(r))}},openSong:{label:"Open song...",bindLabel:"Open song",combos:[{key:"O",mods:[ct]}],disabled:r=>!r.chartManager.loadedSM||!Ie.openWindows,callback:r=>{if(window.nw){const e=document.createElement("input");e.type="file",e.accept=".sm,.ssc",e.onchange=()=>r.chartManager.loadSM(e.value),e.click()}else r.windowManager.openWindow(new gy(r,!1))}},songProperties:{label:"Song properties...",bindLabel:"Open song properties",combos:[{key:"O",mods:["Shift"]}],disabled:r=>!r.chartManager.loadedSM||!Ie.openWindows,callback:r=>r.windowManager.openWindow(new TS(r))},save:{label:"Save...",bindLabel:"Save",combos:[{key:"S",mods:[ct]}],disabled:r=>!r.chartManager.loadedSM||r.chartManager.smPath.startsWith("https://")||r.chartManager.smPath.startsWith("http://"),callback:r=>r.chartManager.save()},export:{label:"Save and export current song",combos:[{key:"E",mods:[ct]}],disabled:r=>!!window.nw||!r.chartManager.loadedSM||r.chartManager.smPath.startsWith("https://")||r.chartManager.smPath.startsWith("http://"),callback:r=>{r.chartManager.save(),Ue.getStandardHandler().saveDirectory(r.chartManager.smPath)}},exportNotedata:{label:"Export to notedata...",bindLabel:"Export to notedata",combos:[{key:"E",mods:[ct,"Shift"]}],disabled:r=>!r.chartManager.loadedSM||!Ie.openWindows,callback:r=>r.windowManager.openWindow(new uS(r,r.chartManager.selection.notes))},openChart:{label:"Chart list",bindLabel:"Open chart list",combos:[{key:"O",mods:[ct,"Shift"]}],disabled:r=>!r.chartManager.loadedSM||!Ie.openWindows,callback:r=>r.windowManager.openWindow(new sy(r))},timingDataRow:{label:"Edit timing data at row",combos:[{key:"T",mods:["Shift"]}],disabled:r=>!r.chartManager.chartView||!Ie.openWindows,callback:r=>r.windowManager.openWindow(new DS(r))},selectRegion:{label:"Select region",combos:[{key:"Tab",mods:[]}],disabled:r=>!r.chartManager.loadedChart&&r.chartManager.getMode()!=X.Edit,callback:r=>r.chartManager.selectRegion()},volumeUp:{label:"Increase master volume",combos:[{key:"Up",mods:["Alt"]}],disabled:!1,callback:()=>{_.audio.masterVolume=Math.min(_.audio.masterVolume+.05,1),Se.create("Master volume: "+Math.round(_.audio.masterVolume*100)+"%")}},volumeDown:{label:"Decrease master volume",combos:[{key:"Down",mods:["Alt"]}],disabled:!1,callback:()=>{_.audio.masterVolume=Math.max(_.audio.masterVolume-.05,0),Se.create("Master volume: "+Math.round(_.audio.masterVolume*100)+"%")}},songVolumeUp:{label:"Increase song volume",combos:[{key:"Up",mods:["Shift","Alt"]}],disabled:!1,callback:()=>{_.audio.songVolume=Math.min(_.audio.songVolume+.05,1),Se.create("Song volume: "+Math.round(_.audio.songVolume*100)+"%")}},songVolumeDown:{label:"Decrease song volume",combos:[{key:"Down",mods:["Shift","Alt"]}],disabled:!1,callback:()=>{_.audio.songVolume=Math.max(_.audio.songVolume-.05,0),Se.create("Song volume: "+Math.round(_.audio.songVolume*100)+"%")}},effectvolumeUp:{label:"Increase tick/metronome volume",combos:[{key:"Up",mods:["Shift",ct,"Alt"]}],disabled:!1,callback:()=>{_.audio.soundEffectVolume=Math.min(_.audio.soundEffectVolume+.05,1),Se.create("Effect volume: "+Math.round(_.audio.soundEffectVolume*100)+"%")}},effectvolumeDown:{label:"Decrease tick/metronome volume",combos:[{key:"Down",mods:["Shift",ct,"Alt"]}],disabled:!1,callback:()=>{_.audio.soundEffectVolume=Math.max(_.audio.soundEffectVolume-.05,0),Se.create("Effect Volume: "+Math.round(_.audio.soundEffectVolume*100)+"%")}},rateUp:{label:"Increase playback rate",combos:[{key:"Right",mods:["Shift"]}],disabled:r=>r.chartManager.getMode()==X.Play||r.chartManager.getMode()==X.Record,callback:()=>{_.audio.rate+=.05,Se.create("Playback Rate: "+Math.round(_.audio.rate*100)+"%")}},rateDown:{label:"Decrease playback rate",combos:[{key:"Left",mods:["Shift"]}],disabled:r=>r.chartManager.getMode()==X.Play||r.chartManager.getMode()==X.Record,callback:()=>{_.audio.rate=Math.max(_.audio.rate-.05,.1),Se.create("Playback Rate: "+Math.round(_.audio.rate*100)+"%")}},rateDefault:{label:"Reset playback rate",combos:[],disabled:!1,callback:()=>{_.audio.rate=1,Se.create("Playback Rate: "+Math.round(_.audio.rate)+"%")}},previousMeasure:{label:"Previous measure",combos:[{key:"PageUp",mods:[]},{key:";",mods:[]}],disabled:r=>!r.chartManager.chartView||r.chartManager.getMode()==X.Play||r.chartManager.getMode()==X.Record,callback:r=>{const e=r.chartManager.getBeat(),t=r.chartManager.loadedChart.timingData.getMeasureLength(e-.001);r.chartManager.snapToNearestTick(Math.max(0,e-t))}},nextMeasure:{label:"Next measure",combos:[{key:"PageDown",mods:[]},{key:"'",mods:[]}],disabled:r=>!r.chartManager.chartView||r.chartManager.getMode()==X.Play||r.chartManager.getMode()==X.Record,callback:r=>{const e=r.chartManager.getBeat(),t=r.chartManager.loadedChart.timingData.getMeasureLength(e);r.chartManager.snapToNearestTick(Math.max(0,e+t))}},previousNote:{label:"Previous note",combos:[{key:",",mods:[]}],disabled:r=>!r.chartManager.chartView||r.chartManager.getMode()==X.Play||r.chartManager.getMode()==X.Record,callback:r=>r.chartManager.previousNote()},nextNote:{label:"Next note",combos:[{key:".",mods:[]}],disabled:r=>!r.chartManager.chartView||r.chartManager.getMode()==X.Play||r.chartManager.getMode()==X.Record,callback:r=>r.chartManager.nextNote()},jumpChartStart:{label:"Jump to first note",combos:[],disabled:r=>!r.chartManager.chartView||r.chartManager.getMode()==X.Play||r.chartManager.getMode()==X.Record,callback:r=>r.chartManager.firstNote()},jumpChartEnd:{label:"Jump to last note",combos:[],disabled:r=>!r.chartManager.chartView||r.chartManager.getMode()==X.Play||r.chartManager.getMode()==X.Record,callback:r=>r.chartManager.lastNote()},jumpSongStart:{label:"Jump to song start",combos:[{key:"Home",mods:[]}],disabled:r=>!r.chartManager.chartView||r.chartManager.getMode()==X.Play||r.chartManager.getMode()==X.Record,callback:r=>r.chartManager.setBeat(Math.max(0,r.chartManager.loadedChart.getBeatFromSeconds(0)))},jumpSongEnd:{label:"Jump to song end",combos:[{key:"End",mods:[]}],disabled:r=>!r.chartManager.chartView||r.chartManager.getMode()==X.Play||r.chartManager.getMode()==X.Record,callback:r=>r.chartManager.setBeat(r.chartManager.loadedChart.getBeatFromSeconds(r.chartManager.chartAudio.getSongLength()))},assistTick:{label:"Assist tick",combos:[{key:"F7",mods:[]}],disabled:()=>!Ie.assist,callback:()=>{_.audio.assistTick=!_.audio.assistTick,Se.create("Assist Tick: "+(_.audio.assistTick?"on":"off"))}},metronome:{label:"Metronome",combos:[{key:"F7",mods:["Alt"]}],disabled:()=>!Ie.assist,callback:()=>{_.audio.metronome=!_.audio.metronome,Se.create("Metronome: "+(_.audio.metronome?"on":"off"))}},XMod:{label:"XMod (Beat-based)",combos:[{key:"X",mods:["Shift"]}],disabled:!1,callback:()=>{_.chart.CMod=!1,Se.create("Switched to XMod")}},CMod:{label:"CMod (Time-based)",combos:[{key:"C",mods:["Shift"]}],disabled:!1,callback:()=>{_.chart.CMod=!0,Se.create("Switched to CMod")}},reverse:{label:"Reverse playfield",combos:[],disabled:!1,callback:()=>{_.chart.reverse=!_.chart.reverse,Se.create("Reverse Playfield: "+(_.chart.reverse?"on":"off"))}},hideWarpedArrows:{label:"Hide warped notes (CMod only)",combos:[{key:"W",mods:["Shift"]}],disabled:!1,callback:()=>{_.chart.hideWarpedArrows=!_.chart.hideWarpedArrows,Se.create("Hide Warped Arrows: "+(_.chart.hideWarpedArrows?"on":"off"))}},hideFakedArrows:{label:"Hide faked notes (CMod only)",combos:[{key:"F",mods:["Shift"]}],disabled:!1,callback:()=>{_.chart.hideFakedArrows=!_.chart.hideFakedArrows,Se.create("Hide Faked Arrows: "+(_.chart.hideFakedArrows?"on":"off"))}},doSpeedChanges:{label:"Do speed changes (XMod only)",combos:[{key:"S",mods:["Shift"]}],disabled:!1,callback:()=>{_.chart.doSpeedChanges=!_.chart.doSpeedChanges,Se.create("Speed Changes: "+(_.chart.doSpeedChanges?"on":"off"))}},showEq:{label:"Equalizer",combos:[{key:"E",mods:["Shift"]}],disabled:r=>!r.chartManager.chartAudio||!Ie.openWindows,callback:r=>r.windowManager.openWindow(new cS(r))},detectSync:{label:"Detect audio sync",combos:[{key:"L",mods:["Shift"]}],disabled:r=>!r.chartManager.chartAudio||!Ie.openWindows,callback:r=>r.windowManager.openWindow(new yy(r))},previousNoteType:{label:"Previous note type",combos:[{key:"N",mods:[]}],disabled:r=>!r.chartManager.chartView||r.chartManager.getMode()==X.Play||r.chartManager.getMode()==X.Record,callback:r=>r.chartManager.previousNoteType()},nextNoteType:{label:"Next note type",combos:[{key:"M",mods:[]}],disabled:r=>!r.chartManager.chartView||r.chartManager.getMode()==X.Play||r.chartManager.getMode()==X.Record,callback:r=>r.chartManager.nextNoteType()},undo:{label:"Undo",combos:[{key:"Z",mods:[ct]}],disabled:r=>!r.actionHistory.canUndo()||r.chartManager.getMode()!=X.Edit,callback:r=>r.actionHistory.undo()},redo:{label:"Redo",combos:[{key:"Y",mods:[ct]},{key:"Z",mods:[ct,"Shift"]}],disabled:r=>!r.actionHistory.canRedo()||r.chartManager.getMode()!=X.Edit,callback:r=>r.actionHistory.redo()},mousePlacement:{label:"Enable Mouse Note Placement",combos:[{key:"M",mods:["Shift"]}],disabled:!1,callback:()=>{_.chart.mousePlacement=!_.chart.mousePlacement,Se.create("Mouse Note Placement: "+(_.chart.mousePlacement?"on":"off"))}},playMode:{label:"Enter/Exit Play Mode",combos:[{key:"P",mods:[]}],disabled:r=>!r.chartManager.chartView||r.chartManager.getMode()==X.Record||!Ie.playMode,callback:r=>r.chartManager.setMode(X.Play)},recordMode:{label:"Enter/Exit Record Mode",combos:[{key:"R",mods:[]}],disabled:r=>!r.chartManager.chartView||r.chartManager.getMode()==X.Play||r.chartManager.getMode()==X.View||!Ie.recordMode,callback:r=>r.chartManager.setMode(X.Record)},playModeStart:{label:"Play from start",combos:[{key:"P",mods:["Shift"]}],disabled:r=>!r.chartManager.chartView||r.chartManager.getMode()==X.Record||!Ie.playMode,callback:r=>{r.chartManager.setBeat(0),r.chartManager.setMode(X.Play)}},recordModeStart:{label:"Record from start",combos:[{key:"R",mods:["Shift"]}],disabled:r=>!r.chartManager.chartView||r.chartManager.getMode()==X.Play||r.chartManager.getMode()==X.View||!Ie.recordMode,callback:r=>r.chartManager.setMode(X.Record)},options:{label:"Options...",bindLabel:"Edit options",combos:[{key:",",mods:[ct]}],disabled:()=>!Ie.openWindows||!Ie.openWindows,callback:r=>{r.windowManager.openWindow(new OS(r))}},keybinds:{label:"Keybinds...",bindLabel:"Edit keybinds",combos:[],disabled:()=>!Ie.openWindows||!Ie.openWindows,callback:r=>{r.windowManager.openWindow(new Ui(r))}},gameplayKeybinds:{label:"Gameplay keybinds...",bindLabel:"Edit gameplay keybinds",combos:[],disabled:()=>!Ie.openWindows||!Ie.openWindows,callback:r=>{r.windowManager.openWindow(new pS(r))}},themes:{label:"Themes...",bindLabel:"Edit themes",combos:[],disabled:()=>!Ie.openWindows||!Ie.openWindows||fa.isOpen,callback:r=>{r.windowManager.openWindow(new Wc(r))}},convertHoldsRolls:{label:"Holds to rolls",bindLabel:"Convert holds to rolls",combos:[],disabled:r=>r.chartManager.selection.notes.length==0||r.chartManager.getMode()!=X.Edit,callback:r=>{r.chartManager.modifySelection(e=>(e.type=="Hold"&&(e.type="Roll"),e))}},convertRollsHolds:{label:"Rolls to holds",bindLabel:"Convert rolls to holds",combos:[],disabled:r=>r.chartManager.selection.notes.length==0||r.chartManager.getMode()!=X.Edit,callback:r=>{r.chartManager.modifySelection(e=>(e.type=="Roll"&&(e.type="Hold"),e))}},swapHoldsRolls:{label:"Swap holds and rolls",combos:[],disabled:r=>r.chartManager.selection.notes.length==0||r.chartManager.getMode()!=X.Edit,callback:r=>{r.chartManager.modifySelection(e=>(e.type=="Hold"?e.type="Roll":e.type=="Roll"&&(e.type="Hold"),e))}},convertHoldsTaps:{label:"Holds/rolls to taps",bindLabel:"Convert holds/rolls to taps",combos:[],disabled:r=>r.chartManager.selection.notes.length==0||r.chartManager.getMode()!=X.Edit,callback:r=>{r.chartManager.modifySelection(e=>((e.type=="Hold"||e.type=="Roll")&&(e.type="Tap"),e))}},convertTapsMines:{label:"Taps to mines",bindLabel:"Convert ntapsotes to mines",combos:[],disabled:r=>r.chartManager.selection.notes.length==0||r.chartManager.getMode()!=X.Edit,callback:r=>{r.chartManager.modifySelection(e=>(e.type=="Tap"&&(e.type="Mine"),e))}},convertTapsLifts:{label:"Taps to lifts",bindLabel:"Convert taps to lifts",combos:[],disabled:r=>r.chartManager.selection.notes.length==0||r.chartManager.getMode()!=X.Edit,callback:r=>{r.chartManager.modifySelection(e=>(e.type=="Tap"&&(e.type="Lift"),e))}},convertTapsFakes:{label:"Taps to fakes",bindLabel:"Convert taps to fakes",combos:[],disabled:r=>r.chartManager.selection.notes.length==0||r.chartManager.getMode()!=X.Edit,callback:r=>{r.chartManager.modifySelection(e=>(e.type=="Tap"&&(e.type="Fake"),e))}},mirrorHorizontally:{label:"Horizontally",bindLabel:"Mirror horizontally",combos:[],disabled:r=>r.chartManager.selection.notes.length==0||r.chartManager.getMode()!=X.Edit,callback:r=>{r.chartManager.modifySelection(e=>(e.col=r.chartManager.loadedChart.gameType.flipColumns.horizontal[e.col],e))}},mirrorVertically:{label:"Vertically",bindLabel:"Mirror vertically",combos:[],disabled:r=>r.chartManager.selection.notes.length==0||r.chartManager.getMode()!=X.Edit,callback:r=>{r.chartManager.modifySelection(e=>(e.col=r.chartManager.loadedChart.gameType.flipColumns.vertical[e.col],e))}},mirrorBoth:{label:"Both",bindLabel:"Mirror both",combos:[],disabled:r=>r.chartManager.selection.notes.length==0||r.chartManager.getMode()!=X.Edit,callback:r=>{r.chartManager.modifySelection(e=>(e.col=r.chartManager.loadedChart.gameType.flipColumns.horizontal[e.col],e.col=r.chartManager.loadedChart.gameType.flipColumns.vertical[e.col],e))}},selectBeforeCursor:{label:"Select before cursor",combos:[{key:"Home",mods:["Shift"]}],disabled:r=>!r.chartManager.loadedChart,callback:r=>{r.chartManager.editTimingMode==Ne.Off?r.chartManager.setNoteSelection(r.chartManager.loadedChart.getNotedata().filter(e=>e.beate.beat!r.chartManager.loadedChart,callback:r=>{r.chartManager.editTimingMode==Ne.Off?r.chartManager.setNoteSelection(r.chartManager.loadedChart.getNotedata().filter(e=>e.beat>r.chartManager.getBeat())):r.chartManager.setEventSelection(r.chartManager.loadedChart.timingData.getTimingData().filter(e=>e.beat>r.chartManager.getBeat()))}},selectAll:{label:"Select all",combos:[{key:"A",mods:[ct]}],disabled:r=>!r.chartManager.loadedChart,callback:r=>{r.chartManager.editTimingMode==Ne.Off?r.chartManager.setNoteSelection(r.chartManager.loadedChart.getNotedata()):r.chartManager.setEventSelection(r.chartManager.loadedChart.timingData.getTimingData())}},expand2to1:{label:"Expand 2:1 (8th to 4th)",combos:[],disabled:r=>r.chartManager.selection.notes.length<2||r.chartManager.getMode()!=X.Edit,callback:r=>{const e=Math.min(...r.chartManager.selection.notes.map(t=>t.beat));r.chartManager.modifySelection(t=>(t.beat=(t.beat-e)*2+e,t.beat=Math.round(t.beat*48)/48,Le(t)&&(t.hold*=2,t.hold=Math.round(t.hold*48)/48),t))}},expand3to2:{label:"Expand 3:2 (12th to 8th)",combos:[],disabled:r=>r.chartManager.selection.notes.length<2||r.chartManager.getMode()!=X.Edit,callback:r=>{const e=Math.min(...r.chartManager.selection.notes.map(t=>t.beat));r.chartManager.modifySelection(t=>(t.beat=(t.beat-e)*1.5+e,t.beat=Math.round(t.beat*48)/48,Le(t)&&(t.hold*=1.5,t.hold=Math.round(t.hold*48)/48),t))}},expand4to3:{label:"Expand 4:3 (16th to 2th)",combos:[],disabled:r=>r.chartManager.selection.notes.length<2||r.chartManager.getMode()!=X.Edit,callback:r=>{const e=Math.min(...r.chartManager.selection.notes.map(t=>t.beat));r.chartManager.modifySelection(t=>(t.beat=(t.beat-e)*4/3+e,t.beat=Math.round(t.beat*48)/48,Le(t)&&(t.hold*=4/3,t.hold=Math.round(t.hold*48)/48),t))}},compress1to2:{label:"Compress 1:2 (4th to 8th)",combos:[],disabled:r=>r.chartManager.selection.notes.length<2||r.chartManager.getMode()!=X.Edit,callback:r=>{const e=Math.min(...r.chartManager.selection.notes.map(t=>t.beat));r.chartManager.modifySelection(t=>(t.beat=(t.beat-e)/2+e,t.beat=Math.round(t.beat*48)/48,Le(t)&&(t.hold/=2,t.hold=Math.round(t.hold*48)/48),t))}},compress2to3:{label:"Compress 2:3 (8th to 12th)",combos:[],disabled:r=>r.chartManager.selection.notes.length<2||r.chartManager.getMode()!=X.Edit,callback:r=>{const e=Math.min(...r.chartManager.selection.notes.map(t=>t.beat));r.chartManager.modifySelection(t=>(t.beat=(t.beat-e)/1.5+e,t.beat=Math.round(t.beat*48)/48,Le(t)&&(t.hold/=1.5,t.hold=Math.round(t.hold*48)/48),t))}},compress3to4:{label:"Compress 3:4 (12th to 16th)",combos:[],disabled:r=>r.chartManager.selection.notes.length<2||r.chartManager.getMode()!=X.Edit,callback:r=>{const e=Math.min(...r.chartManager.selection.notes.map(t=>t.beat));r.chartManager.modifySelection(t=>(t.beat=(t.beat-e)*.75+e,t.beat=Math.round(t.beat*48)/48,Le(t)&&(t.hold*=.75,t.hold=Math.round(t.hold*48)/48),t))}},quantize4th:{label:"4ths",bindLabel:"Quantize to 4ths",combos:[],disabled:r=>r.chartManager.selection.notes.length==0||r.chartManager.getMode()!=X.Edit,callback:r=>{r.chartManager.modifySelection(e=>(e.beat=r.chartManager.getClosestTick(e.beat,4),e.beat=Math.round(e.beat*48)/48,e))}},quantize8th:{label:"8ths",bindLabel:"Quantize to 8ths",combos:[],disabled:r=>r.chartManager.selection.notes.length==0||r.chartManager.getMode()!=X.Edit,callback:r=>{r.chartManager.modifySelection(e=>(e.beat=r.chartManager.getClosestTick(e.beat,8),e.beat=Math.round(e.beat*48)/48,e))}},quantize12th:{label:"12ths",bindLabel:"Quantize to 12ths",combos:[],disabled:r=>r.chartManager.selection.notes.length==0||r.chartManager.getMode()!=X.Edit,callback:r=>{r.chartManager.modifySelection(e=>(e.beat=r.chartManager.getClosestTick(e.beat,12),e.beat=Math.round(e.beat*48)/48,e))}},quantize16th:{label:"16ths",bindLabel:"Quantize to 16ths",combos:[],disabled:r=>r.chartManager.selection.notes.length==0||r.chartManager.getMode()!=X.Edit,callback:r=>{r.chartManager.modifySelection(e=>(e.beat=r.chartManager.getClosestTick(e.beat,16),e.beat=Math.round(e.beat*48)/48,e))}},quantize24th:{label:"24ths",bindLabel:"Quantize to 24ths",combos:[],disabled:r=>r.chartManager.selection.notes.length==0||r.chartManager.getMode()!=X.Edit,callback:r=>{r.chartManager.modifySelection(e=>(e.beat=r.chartManager.getClosestTick(e.beat,24),e.beat=Math.round(e.beat*48)/48,e))}},quantize32nd:{label:"32nds",bindLabel:"Quantize to 32nds",combos:[],disabled:r=>r.chartManager.selection.notes.length==0||r.chartManager.getMode()!=X.Edit,callback:r=>{r.chartManager.modifySelection(e=>(e.beat=r.chartManager.getClosestTick(e.beat,32),e.beat=Math.round(e.beat*48)/48,e))}},quantize48th:{label:"48ths",bindLabel:"Quantize to 48ths",combos:[],disabled:r=>r.chartManager.selection.notes.length==0||r.chartManager.getMode()!=X.Edit,callback:r=>{r.chartManager.modifySelection(e=>(e.beat=r.chartManager.getClosestTick(e.beat,48),e.beat=Math.round(e.beat*48)/48,e))}},quantize96th:{label:"96ths",bindLabel:"Quantize to 96ths",combos:[],disabled:r=>r.chartManager.selection.notes.length==0||r.chartManager.getMode()!=X.Edit,callback:r=>{r.chartManager.modifySelection(e=>(e.beat=r.chartManager.getClosestTick(e.beat,96),e.beat=Math.round(e.beat*48)/48,e))}},delete:{label:"Delete",combos:[{key:"Backspace",mods:[]},{key:"Delete",mods:[]}],disabled:r=>r.chartManager.getMode()!=X.Edit||r.chartManager.selection.notes.length==0&&r.chartManager.eventSelection.timingEvents.length==0,callback:r=>{r.chartManager.deleteSelection(),r.chartManager.deleteEventSelection()}},paste:{label:"Paste",combos:[{mods:[ct],key:"V"}],preventDefault:!1,disabled:r=>!r.chartManager.chartView||r.chartManager.getMode()!=X.Edit,callback:async r=>{const e=await navigator.clipboard.readText();r.chartManager.paste(e)}},pasteReplace:{label:"Clear and paste",combos:[{mods:[ct,"Shift"],key:"V"}],preventDefault:!1,disabled:r=>!r.chartManager.chartView||r.chartManager.getMode()!=X.Edit,callback:async r=>{const e=await navigator.clipboard.readText();r.chartManager.paste(e,!0)}},copy:{label:"Copy",combos:[{mods:[ct],key:"C"}],preventDefault:!1,disabled:r=>!r.chartManager.chartView||r.chartManager.getMode()!=X.Edit||!r.chartManager.hasSelection(),callback:async r=>{const e=r.chartManager.copy();e&&await navigator.clipboard.writeText(e)}},cut:{label:"Cut",combos:[{mods:[ct],key:"X"}],preventDefault:!1,disabled:r=>!r.chartManager.chartView||r.chartManager.getMode()!=X.Edit||!r.chartManager.hasSelection(),callback:async r=>{const e=r.chartManager.copy();e&&await navigator.clipboard.writeText(e),r.chartManager.deleteSelection()}},adjustOffset:{label:"Adjust offset",combos:[],disabled:()=>!Ie.openWindows,callback:r=>r.windowManager.openWindow(new xS(r))},setSongPreview:{label:"Set as song preview",combos:[],disabled:r=>!r.chartManager.chartView||r.chartManager.getMode()!=X.Edit||!r.chartManager.hasRange(),callback:r=>{const e=r.chartManager.loadedChart,t=r.chartManager.loadedSM.properties.SAMPLESTART??"0",i=r.chartManager.loadedSM.properties.SAMPLELENGTH??"10";let s="",n="";if(r.chartManager.startRegion!==void 0&&r.chartManager.endRegion!==void 0){const a=e.getSecondsFromBeat(r.chartManager.startRegion),o=e.getSecondsFromBeat(r.chartManager.endRegion);s=ae(a,3).toString(),n=ae(o-a,3).toString()}else{const o=(r.chartManager.selection.notes.length>0?r.chartManager.selection.notes:r.chartManager.eventSelection.timingEvents).map(d=>d.beat),l=e.getSecondsFromBeat(Math.min(...o)),c=e.getSecondsFromBeat(Math.max(...o));s=ae(l,3).toString(),n=ae(c-l,3).toString()}mt.instance.run({action:a=>{a.chartManager.loadedSM.properties.SAMPLESTART=s,a.chartManager.loadedSM.properties.SAMPLELENGTH=n},undo:()=>{r.chartManager.loadedSM.properties.SAMPLESTART=t,r.chartManager.loadedSM.properties.SAMPLELENGTH=i}})}},showDebugTimers:{label:"Toggle Debug Timers",combos:[{key:"F3",mods:["Shift"]}],disabled:!1,callback:()=>{_.debug.showTimers=!_.debug.showTimers}},showFPSCounter:{label:"Toggle FPS Counter",combos:[{key:"F3",mods:[]}],disabled:!1,callback:()=>{_.debug.showFPS=!_.debug.showFPS}},noteTypeTap:{label:"Switch to Taps",combos:[],disabled:r=>!r.chartManager.chartView,callback:r=>{r.chartManager.setEditingNoteType("Tap")}},noteTypeLift:{label:"Switch to Lifts",combos:[],disabled:r=>!r.chartManager.chartView,callback:r=>{r.chartManager.setEditingNoteType("Lift")}},noteTypeMine:{label:"Switch to Mines",combos:[],disabled:r=>!r.chartManager.chartView,callback:r=>{r.chartManager.setEditingNoteType("Mine")}},noteTypeFake:{label:"Switch to Fakes",combos:[],disabled:r=>!r.chartManager.chartView,callback:r=>{r.chartManager.setEditingNoteType("Fake")}},quant4:{label:"Switch to 4ths",combos:[],disabled:r=>!r.chartManager.chartView,callback:()=>{_.chart.snap=1}},quant8:{label:"Switch to 8ths",combos:[],disabled:r=>!r.chartManager.chartView,callback:()=>{_.chart.snap=1/2}},quant12:{label:"Switch to 12ths",combos:[],disabled:r=>!r.chartManager.chartView,callback:()=>{_.chart.snap=1/3}},quant16:{label:"Switch to 16ths",combos:[],disabled:r=>!r.chartManager.chartView,callback:()=>{_.chart.snap=1/4}},quant24:{label:"Switch to 24ths",combos:[],disabled:r=>!r.chartManager.chartView,callback:()=>{_.chart.snap=1/6}},quant32:{label:"Switch to 32ths",combos:[],disabled:r=>!r.chartManager.chartView,callback:()=>{_.chart.snap=1/8}},quant48:{label:"Switch to 48ths",combos:[],disabled:r=>!r.chartManager.chartView,callback:()=>{_.chart.snap=1/12}},quant96:{label:"Switch to 96ths",combos:[],disabled:r=>!r.chartManager.chartView,callback:()=>{_.chart.snap=1/24}},quant192:{label:"Switch to 192nds",combos:[],disabled:r=>!r.chartManager.chartView,callback:()=>{_.chart.snap=1/48}},openGuide:{label:"Open Help Guide",combos:[],disabled:!1,callback:()=>{window.open("/smeditor/guide/")}},noteskinWindow:{label:"Noteskins...",bindLabel:"Open Noteskin Window",combos:[{mods:["Shift"],key:"N"}],disabled:r=>!r.chartManager.chartView,callback:r=>r.windowManager.openWindow(new _S(r))},previousChart:{label:"Previous chart",combos:[{key:"F5",mods:[]}],disabled:r=>!r.chartManager.chartView,callback:r=>{if(!r.chartManager.loadedSM?.charts||!r.chartManager.loadedChart)return;const e=r.chartManager.loadedSM?.charts[r.chartManager.loadedChart.gameType.id],t=e.indexOf(r.chartManager.loadedChart);e[t-1]&&r.chartManager.loadChart(e[t-1])}},nextChart:{label:"Next chart",combos:[{key:"F6",mods:[]}],disabled:r=>!r.chartManager.chartView,callback:r=>{if(!r.chartManager.loadedSM?.charts||!r.chartManager.loadedChart)return;const e=r.chartManager.loadedSM?.charts[r.chartManager.loadedChart.gameType.id],t=e.indexOf(r.chartManager.loadedChart);e[t+1]&&r.chartManager.loadChart(e[t+1])}}};class NS{static popup;static open(e,t){this.popup=this.build(e,t),document.getElementById("popups")?.appendChild(this.popup)}static build(e,t){const i=document.createElement("div");i.classList.add("update-popup");const s=document.createElement("div");s.classList.add("title"),s.innerText=`A new version of the desktop app is available! (${e})`;const n=document.createElement("div");return n.classList.add("desc"),n.innerText="Click here to download the new version.",i.replaceChildren(s,n),i.onclick=()=>{localStorage.setItem("downloadedVersion",e),nw.require("nw.gui").Shell.openExternal(t),this.close()},i}static close(){this.popup&&(this.popup.style.opacity="0",this.popup.onclick=null,setTimeout(()=>this.popup.remove(),300))}}class jt extends ng{static graphics=new An;static textures={default:Ft.create({width:50,height:50}),noBorder:Ft.create({width:50,height:50}),onlyBorder:Ft.create({width:50,height:50})};static init(e){this.textures.default=Ft.create({width:50,height:50,resolution:e.resolution}),this.textures.noBorder=Ft.create({width:50,height:50,resolution:e.resolution}),this.textures.onlyBorder=Ft.create({width:50,height:50,resolution:e.resolution}),this.graphics.beginFill(16777215,1),this.graphics.lineStyle(1,0),this.graphics.drawRoundedRect(0,0,50,50,5),this.graphics.endFill(),e.render(this.graphics,{renderTexture:this.textures.default}),this.graphics.clear(),this.graphics.beginFill(16777215,1),this.graphics.lineStyle(0,16777215),this.graphics.drawRoundedRect(0,0,50,50,5),this.graphics.endFill(),e.render(this.graphics,{renderTexture:this.textures.noBorder}),this.graphics.clear(),this.graphics.beginFill(16777215,0),this.graphics.lineStyle(2,16777215),this.graphics.drawRoundedRect(0,0,50,50,5),this.graphics.endFill(),e.render(this.graphics,{renderTexture:this.textures.onlyBorder})}constructor(e){super(jt.textures[e??"default"],5,5,5,5)}}const Xn=[];function vf(){return Xn.length}function rM(){for(Xn.push(Date.now());Xn.length>0&&Xn[0]0&&qn[0]vf()+" FPS"});drawUpdateTimeGraph=new Fn({width:300,height:wi,color:6034982,min:0,unit:"ms",label:"DrawUpdate",precision:1});updateTimeGraph=new Fn({width:300,height:wi,color:1516101,min:0,unit:"ms",label:"Update",precision:1,sublabel:()=>bf()+" TPS"});memoryTimeGraph=new Fn({width:300,height:wi,color:6626406,min:0,formatter:e=>Math.round(e/1048576)+" MB",label:"Memory"});cpuGraph=new Fn({width:300,height:wi,color:5190685,min:0,label:"CPU"});graphs=new Ee;fpsCounter=new Ee;fpsBg=new jt("noBorder");fpsText=new De("",{fontName:"Main",fontSize:12});lastFrameTime=0;constructor(e){super(e),this.drawUpdateTimeGraph.y+=wi+5,this.updateTimeGraph.y+=(wi+5)*2,this.memoryTimeGraph.y+=(wi+5)*3,this.cpuGraph.y+=(wi+5)*4,ma.instance=this,this.fpsText.x=5,this.fpsBg.y=-5,Qe(this.fpsBg,"--widget-bg"),Qe(this.fpsText,"--text-color"),this.graphs.addChild(this.frameTimeGraph,this.drawUpdateTimeGraph,this.updateTimeGraph),performance.memory&&this.graphs.addChild(this.memoryTimeGraph),this.fpsCounter.addChild(this.fpsBg,this.fpsText),this.graphs.visible=_.debug.showTimers,this.fpsCounter.visible=_.debug.showFPS,this.addChild(this.graphs,this.fpsCounter)}update(){this.x=-this.manager.app.renderer.screen.width/2+20,this.y=-this.manager.app.renderer.screen.height/2+20,this.graphs.children.forEach(e=>e.update()),this.graphs.visible=_.debug.showTimers,this.fpsCounter.visible=_.debug.showFPS,this.fpsText.text=`${vf()} FPS ${bf()} TPS ${this.lastFrameTime.toFixed(2)} ms `,this.fpsBg.width=this.fpsText.width+10,this.fpsBg.height=this.fpsText.height+10,_.debug.showTimers?(this.fpsBg.y=(wi+5)*this.graphs.children.length-5,this.fpsText.y=(wi+5)*this.graphs.children.length):(this.fpsBg.y=-5,this.fpsText.y=0)}addMemoryTimeValue(e){this.memoryTimeGraph.addValue(e)}addFrameTimeValue(e){this.lastFrameTime=e,this.frameTimeGraph.addValue(e)}addUpdateTimeValue(e){this.updateTimeGraph.addValue(e)}addDrawUpdateTimeValue(e){this.drawUpdateTimeGraph.addValue(e)}}class Fn extends Ee{graphWidth;graphHeight;color;unit;precision;formatter;sublabel;maxEase=1;targetMax=1;minEase=1;targetMin=1;constrainedMin=null;constrainedMax=null;dataPoints=[];linePool=[];lineContainer;labelText;sublabelText;topText;bottomText;constructor(e){super();const{width:t,height:i,color:s=16777215,unit:n="",label:a="",min:o=null,max:l=null,precision:c=0,formatter:d=null,sublabel:h=()=>""}=e;this.graphWidth=t,this.graphHeight=i,this.color=s,this.unit=n,this.constrainedMax=l,this.constrainedMin=o,this.precision=c,this.formatter=d,this.sublabel=h,this.lineContainer=new cd(t,{position:!0},16384,!0);const u=new jt("noBorder");u.tint=0,u.alpha=.3,u.width=this.graphWidth,u.height=this.graphHeight,Qe(u,"--text-color"),this.labelText=new De(a,{fontName:"Main",fontSize:Math.min(i/5,16)}),this.labelText.alpha=.8,this.sublabelText=new De("",{fontName:"Main",fontSize:Math.min(i/5,16)}),this.topText=new De("",{fontName:"Main",fontSize:Math.min(i/7,12)}),this.topText.anchor.x=1,this.topText.alpha=.5,this.topText.x=this.graphWidth,this.bottomText=new De("",{fontName:"Main",fontSize:Math.min(i/7,12)}),this.bottomText.anchor.x=1,this.bottomText.anchor.y=1,this.bottomText.alpha=.5,this.bottomText.x=this.graphWidth,this.bottomText.y=this.graphHeight,this.sublabelText.y=this.graphHeight,this.sublabelText.anchor.y=1,this.sublabelText.alpha=.5,this.addChild(u,this.lineContainer,this.labelText,this.sublabelText,this.topText,this.bottomText)}addValue(e){if(this.lineContainer.children[0]?.x+this.lineContainer.x<0){const i=this.lineContainer.children[0];this.dataPoints.shift(),this.removeChild(i),this.linePool.push(i)}this.lineContainer.x-=1,this.lineContainer.x<-1e7&&(this.lineContainer.children.forEach(i=>{i.x-=1e7}),this.lineContainer.x+=1e7);const t=this.linePool.shift()??new Oe(ie.WHITE);t.width=1,t.anchor.x=.5,t.anchor.y=1,t.tint=this.color,t.alpha=.6,t.x=this.graphWidth-this.lineContainer.x,t.y=this.graphHeight,t.value=e,this.dataPoints.push(e),this.targetMax=this.constrainedMax!==null?this.constrainedMax:Math.max(...this.dataPoints),this.targetMin=this.constrainedMin!==null?this.constrainedMin:Math.min(...this.dataPoints),this.lineContainer.addChild(t)}update(){this.dataPoints.length!=0&&(this.maxEase=(this.maxEase-this.targetMax)*.1+this.targetMax,this.minEase=(this.minEase-this.targetMin)*.1+this.targetMin,this.lineContainer.children.forEach(e=>{e.height=Be((e.value-this.minEase)/this.maxEase,0,1)*this.graphHeight}),this.topText.text=this.formatter?.(this.maxEase)??`${ae(this.maxEase,this.precision)} ${this.unit}`,this.bottomText.text=this.formatter?.(this.minEase)??`${ae(this.minEase,this.precision)} ${this.unit}`,this.sublabelText.text=this.sublabel())}}class wy extends Aa{backing=new jt("noBorder");overlay=new Oe(ie.WHITE);selectionOverlay=new Oe(ie.WHITE);container=new Ee;lastHeight=0;lastCMod;mouseDown=!1;queued=!1;verticalMargin=40;backingVerticalPadding=10;backingWidth=32;xOffset=20;constructor(e,t=20,i=32){super(e),this.backingWidth=i,this.xOffset=t,this.addChild(this.backing),this.addChild(this.container),this.visible=!1,Qe(this.backing,"--widget-bg"),this.overlay.anchor.x=.5,this.overlay.anchor.y=0,this.overlay.alpha=.3,this.lastCMod=_.chart.CMod,this.addChild(this.overlay),this.x=this.manager.app.renderer.screen.width/2-this.xOffset,K.on("chartLoaded",()=>{this.queued=!1,this.populate()}),K.on("chartModifiedAfter",()=>{this.queued||this.populate(),this.queued=!0});const s=setInterval(()=>{this.queued&&(this.queued=!1,this.populate())},3e3);this.on("destroyed",()=>clearInterval(s)),this.eventMode="static",this.on("mousedown",n=>{this.mouseDown=!0,this.handleMouse(n)}),this.on("mousemove",n=>{this.mouseDown&&this.handleMouse(n)}),this.on("mouseup",()=>{this.mouseDown=!1}),this.on("mouseleave",()=>{this.mouseDown=!1})}handleMouse(e){if(this.manager.chartManager.getMode()==X.Play||!this.getChart())return;let t=(this.container.toLocal(e.global).y+this.container.height/2)/this.container.height;t=Be(t,0,1),this.getChart().getNotedata().at(-1)&&(_.chart.CMod?this.manager.chartManager.setTime(Ht(-this.getChart().timingData.getOffset(),this.getChart().getLastSecond(),t)):this.manager.chartManager.setBeat(this.getChart().getLastBeat()*t))}update(){this.scale.y=_.chart.reverse?-1:1;const e=this.manager.app.renderer.screen.height-this.verticalMargin;this.backing.height=e+this.backingVerticalPadding,this.backing.position.y=-this.backing.height/2,this.backing.position.x=-this.backing.width/2,this.x=this.manager.app.renderer.screen.width/2-this.xOffset;const t=this.getChart(),i=this.manager.chartManager.chartView;if(!t||!i||!Ie.layout){this.visible=!1;return}if(this.visible=!0,!t.getNotedata().at(-1)){this.overlay.height=0;return}const n=_.chart.CMod?i.getSecondFromYPos(-this.manager.app.renderer.screen.height/2):i.getBeatFromYPos(-this.manager.app.renderer.screen.height/2,!0),a=_.chart.CMod?i.getSecondFromYPos(this.manager.app.renderer.screen.height/2):i.getBeatFromYPos(this.manager.app.renderer.screen.height/2,!0),o=this.getYFromRange(t,n,a);this.overlay.y=o.startY,this.overlay.height=o.endY-o.startY,this.overlay.height=Math.max(2,this.overlay.height);const l=this.manager.chartManager.selection.notes;if(l.length<1)this.selectionOverlay.visible=!1;else{this.selectionOverlay.visible=!0;let c,d;_.chart.CMod?(c=qp(l.map(u=>u.second)),d=Kp(l.map(u=>t.getSecondsFromBeat(dr(u))))):(c=qp(l.map(u=>u.beat)),d=Kp(l.map(u=>dr(u))));const h=this.getYFromRange(t,c,d);this.selectionOverlay.y=h.startY,this.selectionOverlay.height=h.endY-h.startY,this.selectionOverlay.height=Math.max(2,this.selectionOverlay.height)}(this.manager.app.renderer.screen.height!=this.lastHeight||this.lastCMod!=_.chart.CMod)&&(this.lastCMod=_.chart.CMod,this.lastHeight=this.manager.app.renderer.screen.height,this.updateDimensions(),this.populate())}getYFromRange(e,t,i){const s=e.getLastBeat(),n=e.getLastSecond();let a=Nt(0,s,t),o=Nt(0,s,i);_.chart.CMod&&(a=Nt(-e.timingData.getOffset(),n,t),o=Nt(-e.timingData.getOffset(),n,i)),a=Be(a,0,1),o=Be(o,0,1),a>o&&([a,o]=[o,a]);const l=(a-.5)*this.container.height,c=(o-.5)*this.container.height;return{startY:l,endY:c}}updateDimensions(){if(!this.getChart())return;const t=this.manager.app.renderer.screen.height-this.verticalMargin;this.backing.height=t+this.backingVerticalPadding,this.backing.width=this.backingWidth,this.overlay.width=this.backingWidth,this.selectionOverlay.width=this.backingWidth,this.pivot.x=this.backing.width/2}populate(){}getChart(){return this.manager.chartManager.loadedChart}}class HS extends wy{npsGraph;graphGradient=null;graphWidth=40;npsText=new De("",{fontName:"Main",fontSize:12});constructor(e){super(e,60,40),this.graphWidth=40,this.graphGradient=this.makeGradient(),this.npsGraph=new An,this.container.addChild(this.npsGraph),this.npsText.visible=!1,this.npsText.anchor.x=1,this.npsText.anchor.y=.5,Qe(this.npsText,"--text-color"),this.addChild(this.npsText),K.on("userOptionUpdated",i=>{(i=="chart.npsGraph.color1"||i=="chart.npsGraph.color2")&&(this.graphGradient=this.makeGradient(),this.populate())}),this.on("mouseleave",()=>{this.hideNpsDisplay()}),this.on("mouseenter",()=>{this.showNpsDisplay()}),this.on("mousemove",i=>{this.updateNpsDisplay(i)}),this.populate()}updateNpsDisplay(e){const t=this.getChart();if(!t){this.npsText.visible=!1;return}if(!t.getNotedata().at(-1)){this.npsText.visible=!1;return}const s=t.getNPSGraph();let n=this.npsGraph.toLocal(e.global).y/this.npsGraph.height;n=Be(n,0,1);let a=Ht(0,t.getLastBeat(),n);if(_.chart.CMod){const c=Ht(-t.timingData.getOffset(),t.getLastSecond(),n);a=t.timingData.getBeatFromSeconds(c)}const o=Math.floor(t.timingData.getMeasure(a)),l=s[o]??0;this.npsText.text=l.toFixed(1)+" nps",this.npsText.position.y=this.getYFromBeat(a)-this.npsGraph.height/2,this.npsText.position.x=-this.backing.width/2-10,this.npsText.visible=!0}hideNpsDisplay(){this.npsText.visible=!1}showNpsDisplay(){const e=this.getChart();if(!e){this.npsText.visible=!1;return}if(!e.getNotedata().at(-1)){this.npsText.visible=!1;return}this.npsText.visible=!0}update(){if(!_.chart.npsGraph.enabled){this.visible=!1;return}this.visible=!0;const e=this.manager.getChildByName("note-layout");e!==void 0&&e.visible?this.xOffset=e.backingWidth+28:this.xOffset=20,this.npsText.scale.y=_.chart.reverse?-1:1,super.update()}populate(){const e=this.getChart();if(!e)return;const t=this.manager.app.renderer.screen.height-40;if(e.getNotedata().length==0)return;const i=e.getMaxNPS(),s=e.getNPSGraph(),n=e.getLastBeat();this.npsGraph.clear(),this.graphGradient?this.npsGraph.beginTextureFill({texture:this.graphGradient}):this.npsGraph.beginFill(0,1),this.npsGraph.pivot.x=this.backing.width/2,this.npsGraph.pivot.y=t/2;const a=s.length,o=this.getYFromBeat(0);this.npsGraph.moveTo(0,o);for(let h=0;h{this.popup?.contains(t.target)||(this.persistent=!1,this.close())},K.on("snapChanged",this.onSnapChange),this.popup.style.display="none",setTimeout(()=>this.movePosition(e)),this.moveInterval=setInterval(()=>this.movePosition(e),150),this.active=!0)}static movePosition(e){this.popup.style.display="";const t=e.getBounds(),i=t.left+t.width/2,s=200,n=s/2+15,a=window.innerWidth-s/2-15;this.popup.style.left=`${Be(i,n,a)}px`;const o=document.getElementById("pixi").offsetTop+9,l=(t.top+t.height+o)/2;this.popup.style.top=`${t.top+t.height+o}px`,l+this.popup.clientHeight>window.innerHeight-15&&(this.popup.style.transform="translate(-50%, -100%)",this.popup.style.top=`${t.top-t.height/2}px`)}static build(){const e=document.createElement("div");e.classList.add("popup");const t=document.createElement("div");t.classList.add("popup-zoomer"),t.style.width="200px",t.style.backgroundColor="#333333",e.appendChild(t),this.zoomer=t;const i=document.createElement("div");i.innerText="Snap Options",i.classList.add("popup-title"),t.appendChild(i);const s=document.createElement("div");s.classList.add("popup-flex"),t.appendChild(s);const n=document.createElement("div");n.classList.add("popup-row");const a=document.createElement("div");a.innerText="Snap to nearest ";const o=at.create(_.chart.snap==0?0:Math.round(4/_.chart.snap),1,0,0,1e3);o.onChange=f=>{if(f===void 0){this.updateValues();return}f==0?_.chart.snap=0:_.chart.snap=4/f,this.updateValues()};const l=document.createElement("div");l.innerText=this.suffixSnap()+" note",n.replaceChildren(a,o.view,l);const c=document.createElement("div");c.classList.add("popup-row");const d=document.createElement("div");d.innerText="Snap every";const h=at.create(_.chart.snap,.001,3,0);h.onChange=f=>{if(f===void 0){this.updateValues();return}f==0?_.chart.snap=0:_.chart.snap=f,this.updateValues()};const u=document.createElement("div");u.innerText=" beats",c.replaceChildren(d,h.view,u),s.replaceChildren(n,c),this.beatInput=h,this.divInput=o,this.divLabel=l;const p=document.createElement("div");return p.innerText="click to edit",p.style.marginTop="4px",p.style.height="10px",t.appendChild(p),p.classList.add("popup-desc"),this.editText=p,e}static updateValues(){document.activeElement==this.divInput.input||document.activeElement==this.beatInput.input||(this.divInput.setValue(_.chart.snap==0?0:Math.round(4/_.chart.snap)),this.divLabel.innerText=this.suffixSnap()+" note",this.beatInput.setValue(_.chart.snap))}static suffixSnap(){const e=_.chart.snap==0?0:Math.round(4/_.chart.snap);return e%10==1&&e!=11?"st":e%10==2&&e!=12?"nd":e%10==3&&e!=13?"rd":"th"}static close(){if(!this.popup||!this.active||this.persistent)return;window.removeEventListener("click",this.clickOutside,!0),this.popup.classList.add("exiting");const e=this.popup;setTimeout(()=>e.remove(),200),this.active=!1,this.persistent=!1,clearInterval(this.moveInterval),clearInterval(this.updateInterval),K.off("timingModified",this.onSnapChange)}static select(){this.persistent=!0,this.zoomer.classList.add("selected"),this.editText.style.transform="scale(0)",this.editText.style.height="0px",setTimeout(()=>window.addEventListener("click",this.clickOutside,!0),200)}}const GS={fontName:"Main",fontSize:10,fill:["#ffffff"]},_y={4:15157287,8:4033015,12:11152884,16:8577607,24:14167723,32:15376696,48:15699179,64:7071886,96:8553090,192:8553090};class VS extends Ee{renderer;children=[];constructor(e){super(),this.renderer=e;for(let t=0;t<2;t++){const i=new Ee,s=new An,n=new De("4",GS);i.x=(t-.5)*(this.renderer.chart.gameType.notefieldWidth+48),s.rotation=Math.PI/4,s.lineStyle(1,0,1),s.beginFill(16777215),s.drawRect(-12,-12,24,24),s.endFill(),n.anchor.set(.5),i.addChild(s,n),this.addChild(i),i.eventMode="static",i.on("mouseenter",()=>Bh.open(s)),i.on("mousedown",()=>Bh.select()),i.on("mouseleave",()=>Bh.close())}}update(){this.y=this.renderer.getActualReceptorYPos(),this.visible=this.renderer.chartManager.getMode()!=X.Play;for(let e=0;e<2;e++){const t=this.children[e],i=t.children[0];i.tint=_y[4/_.chart.snap]??7368816;const s=t.children[1];s.text=""+(_.chart.snap==0||4/_.chart.snap%1!=0?"":4/_.chart.snap)}}}class WS extends wy{barContainer=new cd(1500,{position:!0,scale:!0,tint:!0},16384,!0);bars;barTexture;constructor(e){super(e),this.addChild(this.backing),this.addChild(this.container),this.visible=!1,this.name="note-layout",this.backing.tint=0,this.backing.alpha=.3,this.barTexture=Ft.create({resolution:this.manager.app.renderer.resolution}),this.bars=new Oe(this.barTexture),this.bars.anchor.set(.5),this.container.addChild(this.bars),this.populate()}update(){if(!_.chart.noteLayout.enabled){this.visible=!1;return}this.visible=!0,super.update()}populate(){const e=this.getChart();if(!e){Ki(this.barContainer.children,()=>!0),this.manager.app.renderer.render(this.barContainer,{renderTexture:this.barTexture});return}let t=0;const i=e.gameType.numCols,s=e.getNotedata().at(-1),n=this.manager.app.renderer.screen.height-40;if(this.barTexture.resize(i*6,n),this.backingWidth=i*6+8,this.updateDimensions(),!s){Ki(this.barContainer.children,()=>!0),this.manager.app.renderer.render(this.barContainer,{renderTexture:this.barTexture});return}const a=s.beat+(Le(s)?s.hold:0),o=e.getSecondsFromBeat(a),l=e.timingData.getOffset();e.getNotedata().forEach(c=>{let d=this.barContainer.children[t];d||(d=new Oe(ie.WHITE),d.width=4,this.barContainer.addChild(d)),d.anchor.set(.5),d.height=1,d.x=(c.col+.5)*6;let h=Nt(0,a,c.beat);if(_.chart.CMod&&(h=Nt(l,o,c.second)),d.y=h*n,d.tint=_y[c.quant],c.type=="Mine"&&(d.tint=8421504),t++,Le(c)){let u=this.barContainer.children[t];u||(u=new Oe(ie.WHITE),u.width=4,u.height=2,this.barContainer.addChild(u)),u.anchor.x=.5,u.anchor.y=0,u.x=(c.col+.5)*6;const p=(_.chart.CMod?e.getSecondsFromBeat(c.beat+c.hold)/o:(c.beat+c.hold)/a)*n+1;u.y=d.y,u.height=p-d.y,c.type=="Hold"&&(u.tint=10526880),c.type=="Roll"&&(u.tint=11379586),t++}}),Ki(this.barContainer.children,(c,d)=>d>=t),this.manager.app.renderer.render(this.barContainer,{renderTexture:this.barTexture})}}const Xe=300,it=150,wf=[.045,.09,.18,.37,.18,.09,.045];class zS extends Aa{max=0;barlines=new Ee;backgroundRect=new jt("noBorder");background=new Ee;backgroundLines=new Ee;statText=new Ee;meanText;medianText;modeText;stddevText;errorMS=[];texts=new Ee;showEase=0;toggled=!1;drag=!1;dragStart=0;lastMode=this.manager.chartManager.getMode();constructor(e){super(e),this.visible=!1,this.background.addChild(this.backgroundRect),Qe(this.backgroundRect,"--widget-bg"),this.addChild(this.background),this.addChild(this.backgroundLines),this.eventMode="static",this.on("mousedown",()=>{this.manager.chartManager.getMode()!=X.Play&&(this.drag=!0,this.dragStart=Date.now(),Rt.stop("play-widget"))}),window.addEventListener("mousemove",f=>{this.drag&&(this.showEase+=f.movementY/-400)}),window.addEventListener("mouseup",()=>{this.drag&&(Date.now()-this.dragStart>400?this.toggled=this.showEase>.5:this.toggled=!this.toggled,Rt.animate(this,{0:{showEase:"inherit"},1:{showEase:this.toggled?1:0}},.6,Zt(.11,.71,.33,1.39),()=>{},"play-widget")),this.drag=!1}),this.on("mouseenter",()=>{!this.toggled&&this.manager.chartManager.getMode()!=X.Play&&Rt.animate(this,{0:{showEase:"inherit"},1:{showEase:.05}},.6,Zt(.11,.71,.33,1.39),()=>{},"play-widget")}),this.on("mouseleave",()=>{!this.toggled&&this.manager.chartManager.getMode()!=X.Play&&Rt.animate(this,{0:{showEase:"inherit"},1:{showEase:0}},.6,Zt(.11,.71,.33,1.39),()=>{},"play-widget")});const t=new De("Early",{fontName:"Main",fontSize:15});t.x=-Xe/2+5,t.y=-it-40,t.alpha=.3,this.background.addChild(t),Qe(t,"--text-color");const i=new De("Late",{fontName:"Main",fontSize:15});i.anchor.x=1,i.x=Xe/2-5,i.y=-it-40,i.alpha=.3,this.background.addChild(i),Qe(i,"--text-color"),this.meanText=new De("-",{fontName:"Main",fontSize:15}),this.meanText.anchor.x=.5,this.meanText.x=Xe/4*-1.5,this.meanText.y=-it-70,this.statText.addChild(this.meanText),this.medianText=new De("-",{fontName:"Main",fontSize:15}),this.medianText.anchor.x=.5,this.medianText.x=Xe/4*-.5,this.medianText.y=-it-70,this.statText.addChild(this.medianText),this.modeText=new De("-",{fontName:"Main",fontSize:15}),this.modeText.anchor.x=.5,this.modeText.x=Xe/4*.5,this.modeText.y=-it-70,this.statText.addChild(this.modeText),this.stddevText=new De("-",{fontName:"Main",fontSize:15}),this.stddevText.anchor.x=.5,this.stddevText.x=Xe/4*1.5,this.stddevText.y=-it-70,this.statText.addChild(this.stddevText);const s=new De("Mean",{fontName:"Main",fontSize:10});s.anchor.x=.5,s.x=Xe/4*-1.5,s.y=-it-80,this.statText.addChild(s);const n=new De("Median",{fontName:"Main",fontSize:10});n.anchor.x=.5,n.x=Xe/4*-.5,n.y=-it-80,this.statText.addChild(n);const a=new De("Mode",{fontName:"Main",fontSize:10});a.anchor.x=.5,a.x=Xe/4*.5,a.y=-it-80,this.statText.addChild(a);const o=new De("Std Dev.",{fontName:"Main",fontSize:10});o.anchor.x=.5,o.x=Xe/4*1.5,o.y=-it-80,this.statText.addChild(o),this.statText.children.forEach(f=>{Qe(f,"--text-color")});const l=new Ee,c=new jt("noBorder");c.tint=3355443,c.alpha=.3,c.width=Xe/2-10,c.height=30,c.y=-25,c.x=-Xe/4,c.pivot.x=(Xe/2-10)/2,c.pivot.y=15;const d=new De("Adjust song offset",{fontName:"Main",fontSize:12});d.anchor.set(.5),d.x=-Xe/4,d.y=-25,l.addChild(c,d),l.eventMode="static",l.addEventListener("mouseenter",()=>{c.alpha=.6}),l.addEventListener("mousedown",f=>{f.stopImmediatePropagation(),this.adjustOffset("song")}),l.addEventListener("mouseleave",()=>{c.alpha=.3}),this.statText.addChild(l),Qe(d,"--text-color");const h=new Ee,u=new jt("noBorder");u.tint=3355443,u.alpha=.3,u.width=Xe/2-10,u.height=30,u.y=-25,u.x=Xe/4,u.pivot.x=(Xe/2-10)/2,u.pivot.y=15,u.eventMode="static",h.addEventListener("mouseenter",()=>{u.alpha=.6}),h.addEventListener("mouseleave",()=>{u.alpha=.3});const p=new De("Adjust global offset",{fontName:"Main",fontSize:12});p.anchor.set(.5),p.x=Xe/4,p.y=-25,h.addChild(u,p),Qe(p,"--text-color"),h.eventMode="static",h.addEventListener("mouseenter",()=>{u.alpha=.6}),h.addEventListener("mousedown",f=>{f.stopImmediatePropagation(),this.adjustOffset("global")}),h.addEventListener("mouseleave",()=>{u.alpha=.3}),this.statText.addChild(h),this.addChild(this.background),this.addChild(this.backgroundLines),this.eventMode="static",this.addChild(this.statText),this.addChild(this.barlines),this.addChild(this.texts)}update(){this.visible=!!this.manager.chartManager.gameStats,this.x=-this.manager.chartManager.app.renderer.screen.width/2+20+Xe/2,this.y=this.manager.chartManager.app.renderer.screen.height/2-20,this.backgroundRect.width=Xe+10,this.backgroundRect.height=it+260,this.backgroundRect.x=-Xe/2-5,this.backgroundRect.y=-it-260,this.visible=!!this.manager.chartManager.gameStats;for(const e of this.barlines.children)_.general.smoothAnimations?e.height=(e.targetHeight-e.height)*.2+e.height:e.height=e.targetHeight;this.lastMode!=this.manager.chartManager.getMode()&&(this.lastMode=this.manager.chartManager.getMode(),Rt.animate(this,{0:{showEase:"inherit"},1:{showEase:this.manager.chartManager.getMode()==X.Play?1:0}},.6,Zt(.11,.71,.33,1.39),()=>{},"play-widget")),_.general.smoothAnimations?this.y+=(1-Math.abs(this.showEase))*400:this.manager.chartManager.getMode()!=X.Play&&(this.y+=400)}newLine(){const e=new Oe(ie.WHITE);return e.smoothCount=0,e.targetHeight=0,e.anchor.y=1,e.anchor.x=.5,e.height=0,e.visible=!1,e}startPlay(){const e=this.manager.chartManager.gameStats;this.max=0,this.errorMS=[],this.meanText.text="-",this.medianText.text="-",this.modeText.text="-",this.stddevText.text="-",Ki(this.barlines.children,()=>!0),Ki(this.backgroundLines.children,()=>!0),Ki(this.texts.children,()=>!0);const t=Je.getCollection(_.play.timingCollection),i=t.getStandardWindows().length+1,s=Math.round(t.maxWindowMS());for(let f=0;fw.type==m&&!w.fake).length),g.alpha=.8,y.alpha=.8,y.name=m,this.texts.addChild(g),this.texts.addChild(y),g.x=-Xe/2+160,y.x=-Xe/2+290,g.y=80/l*n-it-220,y.y=80/l*n++-it-220,g.anchor.y=.5,y.anchor.y=.5,y.anchor.x=1}const c=new De("Max Combo",{fontName:"Main",fontSize:15});Qe(c,"--text-color");const d=new De("0",{fontName:"Main",fontSize:15});Qe(d,"--text-color"),c.alpha=.8,d.alpha=.8,d.name="Combo",this.texts.addChild(c),this.texts.addChild(d),c.x=-Xe/2+160,d.x=-Xe/2+290,c.y=80/l*n-it-220,d.y=80/l*n++-it-220,c.anchor.y=.5,d.anchor.y=.5,d.anchor.x=1;const h=new De("0.00 / 0.00",{fontName:"Main",fontSize:20});Qe(h,"--text-color"),h.alpha=.8,h.x=-Xe/2+225,h.y=-it-112,h.name="Score",this.texts.addChild(h),h.anchor.set(.5);const u=new De("Score / Current Score",{fontName:"Main",fontSize:13});Qe(u,"--text-color"),u.alpha=.5,u.x=-Xe/2+225,u.y=-it-135,this.texts.addChild(u),u.anchor.set(.5);const p=new De("Play Statistics",{fontName:"Main",fontSize:13});p.y=-it-245,p.anchor.set(.5),Qe(p,"--text-color"),this.texts.addChild(p),e.onJudge((f,m)=>{let g="";(Pi(m)||Zi(m))&&(g=m.id),bs(m)&&(g=m.noteType),xl(m)&&(g="Mine");const y=this.texts.getChildByName(g);if(bs(m)){const b=y.text.split(" / ")[1];y.text=e.getCount(m)+" / "+b}else bn(m)||(y.text=e.getCount(m)+"");if(this.texts.getChildByName("Combo").text=e.getMaxCombo()+"",this.texts.getChildByName("Score").text=ae(e.getScore()*100,2).toFixed(2)+" / "+ae(e.getCumulativeScore()*100,2).toFixed(2),Pi(m)||!Zi(m)||f==null)return;const w=Math.round(f*1e3);for(let b=-3;b<=3;b++)this.barlines.children[w+s+b]&&(this.barlines.children[w+s+b].smoothCount+=wf[b+3],this.barlines.children[w+s+b].visible=!0,this.barlines.children[w+s+b].smoothCount>this.max&&(this.modeText.text=w+"ms",this.max=this.barlines.children[w+s+b].smoothCount));this.errorMS.push(f*1e3),this.meanText.text=DA(this.errorMS).toFixed(2)+"ms",this.medianText.text=Tl(this.errorMS).toFixed(2)+"ms",this.stddevText.text=qg(this.errorMS).toFixed(2)+"ms",this.redraw()})}redraw(){for(const e of this.barlines.children)e.targetHeight=e.smoothCount*(it-20)/this.max}adjustOffset(e){const t=this.manager.chartManager.gameStats;if(!t)return;const i=Math.round(t.getMedian()*1e3)/1e3;if(i==0)return;t.applyOffset(-i),this.barlines.children.forEach(o=>{o.smoothCount=0});const s=Je.getCollection(_.play.timingCollection),n=Math.round(s.maxWindowMS());t.getDataPoints().forEach(o=>{if(Pi(o.judgement)||!Zi(o.judgement)||o.error===null)return;const l=Math.round(o.error*1e3);for(let c=-3;c<=3;c++)this.barlines.children[l+n+c]&&(this.barlines.children[l+n+c].smoothCount+=wf[c+3],this.barlines.children[l+n+c].visible=!0,this.barlines.children[l+n+c].smoothCount>this.max&&(this.modeText.text=l+"ms",this.max=this.barlines.children[l+n+c].smoothCount))}),this.redraw();const a=e=="global"?_.play.offset:this.manager.app.chartManager.loadedChart.timingData.getOffset();if(e=="global")_.play.offset=ae(_.play.offset-i,3);else if(e=="song"){const o=this.manager.app.chartManager.loadedChart.timingData.hasChartOffset()?this.manager.app.chartManager.loadedChart.timingData:this.manager.app.chartManager.loadedSM.timingData;o.setOffset(ae(o.getOffset()-i,3))}Se.create(`Adjusted ${e} offset from ${ae(a,3).toFixed(3)} to ${ae(a-i,3).toFixed(3)}`),this.manager.app.chartManager.setBeat(this.manager.app.chartManager.getBeat())}}class jS extends Aa{registeredSpinners=[];registeredToggles=[];registeredCheckboxes=[];changeRow;warpRow;fakeRow;view;collapseButton;lastSpeedMod=_.chart.CMod;rateSpinner;enteredMain=!1;constructor(e){super(e),this.visible=!1;const t=document.createElement("div");t.id="playback-options",_.general.showPlaybackOptions||t.classList.add("collapsed"),t.style.height="0px",document.getElementById("menubar")?.insertAdjacentElement("afterend",t),this.view=t;const i=document.createElement("button");i.classList.add("po-collapse"),i.tabIndex=-1;const s=Ae.getIcon("CHEVRON",18);i.appendChild(s),_.general.showPlaybackOptions&&i.classList.add("toggled"),this.collapseButton=i,i.onclick=()=>{_.general.showPlaybackOptions=!_.general.showPlaybackOptions,t.classList.toggle("collapsed"),i.classList.toggle("toggled",!t.classList.contains("collapsed")),i.blur()},i.style.display="none",Pt(i,{onShow(O){O.setContent((t.classList.contains("collapsed")?"Show ":"Hide ")+"playback options")}});const n=this.createRow("Zoom"),a=this.createSpinner({value:_.chart.zoom*100,step:10,altStep:2,min:10,hardMin:0,onChange:O=>_.chart.zoom=O/100,getValue:()=>_.chart.zoom*100});n.appendChild(a),t.appendChild(n);const o=document.createElement("div"),l=document.createElement("h1");l.innerText="a",o.appendChild(l),Re.createKeybindTooltip(n)`Adjust playfield size ${"zoomOut"}/${"zoomIn"}`,t.appendChild(this.createSeparator());const c=this.createRow("Playback"),d=this.createSpinner({value:_.audio.rate*100,step:10,altStep:2,min:10,hardMin:0,onChange:O=>_.audio.rate=O/100,getValue:()=>_.audio.rate*100});c.appendChild(d),t.appendChild(c),this.rateSpinner=this.registeredSpinners.at(-1),Re.createKeybindTooltip(c)`Adjust audio playback rate ${"rateDown"}/${"rateUp"}`;const h=document.createElement("div");h.style.gap="5px",h.style.display="flex",h.style.alignItems="center";const u=this.createCheckbox({getValue:()=>_.audio.assistTick,value:_.audio.assistTick,onEl:Ae.getIcon("CLAP",18),offEl:Ae.getIcon("X_CLAP",18),onChange:O=>_.audio.assistTick=O});h.appendChild(u),Re.createKeybindTooltip(u)`Toggle assist tick ${"assistTick"}`;const p=this.createCheckbox({getValue:()=>_.audio.metronome,value:_.audio.metronome,onEl:Ae.getIcon("METRONOME",18),offEl:Ae.getIcon("X_METRONOME",18),onChange:O=>_.audio.metronome=O});h.appendChild(p),t.appendChild(h),Re.createKeybindTooltip(p)`Toggle metronome ${"metronome"}`,t.appendChild(this.createSeparator());const f=this.createRow("Scroll"),m=Ae.getIcon("DBL_CHEVRON",16);m.style.padding="2px";const g=Ae.getIcon("DBL_CHEVRON",16);g.style.padding="2px",g.style.transform="rotate(180deg)";const y=this.createToggle({values:[m,g],value:_.chart.reverse?1:0,getValue:()=>_.chart.reverse?1:0,onChange:(O,W)=>_.chart.reverse=W!=0});f.appendChild(y),t.appendChild(f),Re.createKeybindTooltip(f)`Change scroll direction ${"reverse"}`;const w=this.createRow("Speedmod"),b=this.createToggle({values:["X","C"],value:_.chart.CMod?1:0,getValue:()=>_.chart.CMod?1:0,onChange:O=>_.chart.CMod=O!="X"});Re.createKeybindTooltip(b)`Change speedmod type ${"XMod"}/${"CMod"}`;const v=this.createSpinner({value:_.chart.speed,step:25,altStep:5,min:10,hardMin:10,hardMax:35e3,onChange:O=>_.chart.speed=O,getValue:()=>_.chart.speed});w.appendChild(b),w.appendChild(v),t.appendChild(w),Re.createKeybindTooltip(v)`Adjust scroll speed ${"increaseScrollSpeed"}/${"decreaseScrollSpeed"}`,t.appendChild(this.createSeparator());const E=this.createRow("Speed Changes"),C=this.createToggle({values:["On","Off"],value:_.chart.doSpeedChanges?0:1,getValue:()=>_.chart.doSpeedChanges?0:1,onChange:O=>_.chart.doSpeedChanges=O=="On"});E.appendChild(C),t.appendChild(E),Re.createKeybindTooltip(E)`Allow scroll/speed events (XMod only) ${"doSpeedChanges"}`,this.changeRow=E;const I=this.createRow("Warped Notes"),L=this.createCheckbox({getValue:()=>_.chart.hideWarpedArrows,value:_.chart.hideWarpedArrows,onEl:Ae.getIcon("X_EYE",18),offEl:Ae.getIcon("EYE",18),onChange:O=>_.chart.hideWarpedArrows=O});I.appendChild(L),t.appendChild(I),Re.createKeybindTooltip(I)`Show/hide warped notes (CMod only) ${"hideWarpedArrows"}`,this.warpRow=I;const k=this.createRow("Faked Notes"),N=this.createCheckbox({getValue:()=>_.chart.hideFakedArrows,value:_.chart.hideFakedArrows,onEl:Ae.getIcon("X_EYE",18),offEl:Ae.getIcon("EYE",18),onChange:O=>_.chart.hideFakedArrows=O});k.appendChild(N),t.appendChild(k),Re.createKeybindTooltip(k)`Show/hide faked notes (CMod only) ${"hideFakedArrows"}`,this.fakeRow=k;const G=Ae.getIcon("VOLUME",22);G.style.marginLeft="auto",G.style.marginRight="-16px",G.style.height="22px",G.style.width="22px",G.style.alignSelf="center",t.appendChild(G);const A=this.createRow("Master"),S=this.createSpinner({value:_.audio.masterVolume*100,step:5,altStep:1,min:0,max:200,hardMin:0,hardMax:200,onChange:O=>_.audio.masterVolume=O/100,getValue:()=>_.audio.masterVolume*100});A.appendChild(S),t.appendChild(A);const x=this.createRow("Song"),D=this.createSpinner({value:_.audio.songVolume*100,step:5,altStep:1,min:0,max:200,hardMin:0,hardMax:200,onChange:O=>_.audio.songVolume=O/100,getValue:()=>_.audio.songVolume*100});x.appendChild(D),t.appendChild(x);const $=this.createRow("FX"),R=this.createSpinner({value:_.audio.soundEffectVolume*100,step:5,altStep:1,min:0,max:200,hardMin:0,hardMax:200,onChange:O=>_.audio.soundEffectVolume=O/100,getValue:()=>_.audio.soundEffectVolume*100});$.appendChild(R),t.appendChild($),this.changeRow.style.setProperty("--w",this.changeRow.offsetWidth+"px"),this.warpRow.style.setProperty("--w",this.warpRow.offsetWidth+"px"),this.fakeRow.style.setProperty("--w",this.fakeRow.offsetWidth+"px"),this.changeRow.classList.toggle("hidden",_.chart.CMod),this.warpRow.classList.toggle("hidden",!_.chart.CMod),this.fakeRow.classList.toggle("hidden",!_.chart.CMod),Ie.playbackOptions||(t.style.display="none",i.style.display="none")}createRow(e){const t=document.createElement("div");t.classList.add("playback-options-row");const i=document.createElement("div");return i.classList.add("playback-options-label"),i.innerText=e,t.appendChild(i),t}createSeparator(){const e=document.createElement("div");return e.classList.add("po-separator"),e}createSpinner(e){const t=document.createElement("div");t.classList.add("po-spinner");const i=c=>{let d=_.general.spinnerStep;return c.getModifierState("Shift")?d=e.altStep??(e.step!==void 0?e.step/10:_.general.spinnerStep):d=e.step??_.general.spinnerStep,d},s=document.createElement("button");s.classList.add("po-spinner-btn"),s.innerText="-",s.onclick=c=>{l.currentValue-=i(c),e.min!==void 0&&l.currentValue{l.currentValue+=i(c),e.max!==void 0&&l.currentValue>e.max&&(l.currentValue=e.max),o(!0)};const a=document.createElement("input");a.classList.add("po-spinner-input"),a.type="text";const o=(c=!0)=>{e.hardMin!==void 0&&l.currentValuee.hardMax&&(l.currentValue=e.hardMax),c&&e.onChange(l.currentValue),a.value=l.currentValue.toFixed()};a.onwheel=c=>{l.currentValue+=i(c)*c.deltaY/100*(_.chart.scroll.invertZoomScroll?-1:1)*_.chart.scroll.scrollSensitivity,e.max!==void 0&&l.currentValue>e.max&&(l.currentValue=e.max),e.min!==void 0&&l.currentValue{c.key=="Enter"&&a.blur(),c.key=="Escape"&&(l.currentValue=e.getValue(),o(!1))},a.onfocus=()=>{a.select()},a.onblur=()=>{const c=this.parseString(a);if(c==null){l.currentValue=e.getValue(),o(!1);return}l.currentValue=c,o()},a.ondragstart=c=>c.preventDefault(),this.registeredSpinners.push(l),t}createToggle(e){const t=document.createElement("div");if(t.classList.add("po-toggle"),e.values.length==0)return t;const i=document.createElement("div");i.classList.add("po-toggle-highlight");const s=e.values.map((l,c)=>{if(typeof l=="string"){const d=document.createElement("div");return d.classList.add("po-toggle-item"),d.innerText=l,t.appendChild(d),d.onclick=()=>{o.currentValue!=c&&(o.currentValue=c,a())},d}else return l.onclick=()=>{o.currentValue!=c&&(o.currentValue=c,a())},t.appendChild(l),l});t.style.visibility="hidden",document.body.appendChild(t);const n=l=>{i.style.left=s[l].getBoundingClientRect().left-s[0].getBoundingClientRect().left+"px",i.style.width=s[l].getBoundingClientRect().width+"px",i.style.height=s[l].getBoundingClientRect().height+"px"},a=(l=!0)=>{l&&e.onChange(e.values[o.currentValue],o.currentValue),[...t.querySelectorAll(".active")].forEach(c=>c.classList.remove("active")),n(o.currentValue),s[o.currentValue].classList.add("active")},o={currentValue:e.value??0,options:e,update:a};return this.registeredToggles.push(o),a(!1),t.remove(),t.style.visibility="",t.appendChild(i),t}createCheckbox(e){const t=document.createElement("div");t.classList.add("ico-checkbox");const i=(n=!0)=>{n&&e.onChange(s.currentValue),s.options.onEl.style.display=s.currentValue?"":"none",s.options.offEl.style.display=s.currentValue?"none":""},s={currentValue:e.value??!0,options:e,update:i};return t.onclick=()=>{s.currentValue=!s.currentValue,i()},this.registeredCheckboxes.push(s),i(!1),t.replaceChildren(s.options.onEl,s.options.offEl),t}update(){!this.enteredMain&&this.manager.chartManager.loadedChart!==void 0&&(this.enteredMain=!0,this.view.style.height="",this.collapseButton.style.display="",document.getElementById("menubar")?.appendChild(this.collapseButton));for(const t of this.registeredSpinners)t.currentValue!=t.options.getValue()&&document.activeElement!=t.input&&(t.currentValue=t.options.getValue(),t.update(!1));for(const t of this.registeredToggles)t.currentValue!=t.options.getValue()&&(t.currentValue=t.options.getValue(),t.update(!1));for(const t of this.registeredCheckboxes)t.currentValue!=t.options.getValue()&&(t.currentValue=t.options.getValue(),t.update(!1));const e=this.manager.chartManager.getMode()==X.Play||this.manager.chartManager.getMode()==X.Record;this.rateSpinner.btnMinus.disabled=e,this.rateSpinner.btnPlus.disabled=e,this.rateSpinner.input.disabled=e,_.chart.CMod!=this.lastSpeedMod&&(this.lastSpeedMod=_.chart.CMod,this.changeRow.classList.toggle("hidden",_.chart.CMod),this.warpRow.classList.toggle("hidden",!_.chart.CMod),this.fakeRow.classList.toggle("hidden",!_.chart.CMod))}parseString(e){try{const t=br.evaluate(e.value);return isFinite(t)?t:0}catch{return null}}}class ga extends Ee{pool=[];options;constructor(e){super(),this.options=e}createChild(){if(this.pool.length==0&&this.options.maxPoolSize!==void 0&&this.children.length>=this.options.maxPoolSize)return;const e=this.pool.pop()??this.options.create();return this.addChild(e),e._disabledTime=Date.now(),e}destroyChild(e){this.children.includes(e)&&(e.removeFromParent(),e.removeAllListeners(),e.eventMode="auto",e._disabledTime=Date.now(),this.pool.push(e))}destroyAll(){this.children.forEach(e=>e._disabledTime=Date.now()),this.pool.push(...this.children),this.children.forEach(e=>{e.removeAllListeners(),e.eventMode="auto"}),this.removeChildren()}_render(e){super._render(e);const t=Date.now();for(;t-this.pool[0]?._disabledTime>(this.options.destroyTimer??5e3);)this.pool.shift().destroy()}}const Hr={BPMS:9182254,STOPS:4934913,DELAYS:217453,WARPS:9243998,FAKES:4868682,COMBOS:939078,SPEEDS:2968693,LABELS:7747359,SCROLLS:3557006,TIMESIGNATURES:5392684,TICKCOUNTS:1594906,BGCHANGES:8460415,FGCHANGES:8857115,ATTACKS:1856083};class $S extends Ee{renderer;areaPool=new ga({create:()=>{const e=new Oe(ie.WHITE);return Object.assign(e,{alpha:.2,width:this.renderer.chart.gameType.notefieldWidth+128}),e.anchor.set(.5,0),e}});timingAreaMap=new Map;timingEvents=[];timingDirty=!0;constructor(e){super(),this.renderer=e,this.addChild(this.areaPool);const t=()=>this.timingDirty=!0;K.on("timingModified",t),this.on("destroyed",()=>K.off("timingModified",t))}update(e,t){this.timingDirty&&(this.timingAreaMap.clear(),this.areaPool.destroyAll(),this.timingDirty=!1,this.timingEvents=this.renderer.chart.timingData.getTimingData("STOPS","WARPS","DELAYS","FAKES")),this.visible=this.renderer.shouldDisplayBarlines();for(const i of this.timingEvents){if(i.beat>t)break;if(this.shouldDrawEvent(i,e,t)&&!this.timingAreaMap.has(i)){const s=this.areaPool.createChild();if(!s)break;s.tint=Hr[i.type],this.timingAreaMap.set(i,s)}}for(const[i,s]of this.timingAreaMap.entries()){if(!this.shouldDrawEvent(i,e,t)){this.timingAreaMap.delete(i),this.areaPool.destroyChild(s);continue}let n=_.chart.CMod?this.renderer.getYPosFromSecond(i.second):this.renderer.getYPosFromBeat(i.beat),a=n;switch(i.type){case"STOPS":case"DELAYS":{_.chart.CMod&&i.value>0?a=this.renderer.getYPosFromSecond(i.second+i.value):i.value<0&&(a=this.renderer.getYPosFromBeat(this.renderer.chart.getBeatFromSeconds(i.second+1e-4)));break}case"FAKES":{a=this.renderer.getYPosFromBeat(i.beat+i.value);break}case"WARPS":{_.chart.CMod||(a=this.renderer.getYPosFromBeat(i.beat+i.value));break}}a0)||e.type=="WARPS"&&_.chart.CMod?!1:e.beat<=i}}class Rh{static active=!1;static popup;static clickOutside;static moveInterval;static exitTimeout;static draggedElement;static dragOffsetX=0;static dragOffsetY=0;static grid;static leftovers;static boundaryCache=[];static open(){this.active||(this.popup=this.build(),document.getElementById("popups")?.appendChild(this.popup),this.clickOutside=e=>{!this.popup?.contains(e.target)&&!this.draggedElement?.contains(e.target)&&!document.getElementById("toggle-tracks")?.contains(e.target)&&this.close()},setTimeout(()=>window.addEventListener("click",this.clickOutside,!0)),this.popup.style.transitionDuration="0s",setTimeout(()=>this.movePosition()),clearTimeout(this.exitTimeout),this.moveInterval=setInterval(()=>this.movePosition(),150),this.active=!0)}static build(){const e=document.createElement("div");e.classList.add("popup"),e.id="timing-track-order";const t=document.createElement("div");t.classList.add("popup-zoomer"),e.appendChild(t);const i=document.createElement("div");i.classList.add("container"),t.appendChild(i);const s=document.createElement("div");s.classList.add("track-grid-options");const n=document.createElement("button");n.classList.add("delete"),n.innerText="Reset",n.onclick=()=>{_.chart.timingEventOrder=structuredClone(Ko.chart.timingEventOrder),this.clearBoundaries(),this.grid?.replaceChildren(),this.leftovers?.replaceChildren();const l=[...ur];for(const d of _.chart.timingEventOrder.left){const h=this.makeDraggableTrack(d);h.classList.add("left"),this.grid?.appendChild(h),l.splice(l.indexOf(d),1)}const c=document.createElement("div");c.classList.add("draggable-track"),c.innerText="PLAYFIELD",c.style.backgroundColor="#2D2D2D",c.style.padding="20px 10px",c.style.writingMode="horizontal-tb",c.addEventListener("mousedown",d=>this.startDragging(d,c)),c.dataset.type="PLAYFIELD",this.grid?.appendChild(c);for(const d of _.chart.timingEventOrder.right){const h=this.makeDraggableTrack(d);h.classList.add("right"),this.grid?.appendChild(h),l.splice(l.indexOf(d),1)}for(const d of l)this.leftovers?.appendChild(this.makeLeftoverTrack(d))},this.grid=document.createElement("div"),this.grid.classList.add("track-grid"),i.appendChild(this.grid),i.appendChild(s);const a=[...ur];for(const l of _.chart.timingEventOrder.left){const c=this.makeDraggableTrack(l);c.classList.add("left"),this.grid.appendChild(c),a.splice(a.indexOf(l),1)}const o=document.createElement("div");o.classList.add("draggable-track"),o.innerText="PLAYFIELD",o.style.backgroundColor="#2D2D2D",o.style.padding="20px 10px",o.style.writingMode="horizontal-tb",o.addEventListener("mousedown",l=>this.startDragging(l,o)),o.dataset.type="PLAYFIELD",this.grid.appendChild(o);for(const l of _.chart.timingEventOrder.right){const c=this.makeDraggableTrack(l);c.classList.add("right"),this.grid.appendChild(c),a.splice(a.indexOf(l),1)}this.leftovers=document.createElement("div"),this.leftovers.classList.add("track-selector"),s.appendChild(this.leftovers),s.appendChild(n);for(const l of a)this.leftovers.appendChild(this.makeLeftoverTrack(l));return e}static makeDraggableTrack(e){const t=document.createElement("div");t.classList.add("draggable-track");const i=document.createElement("div");i.classList.add("draggable-track-text"),i.innerText=e,t.style.backgroundColor=Vc(Hr[e].toString(16).padStart(6,"0"),"#333333",.7),t.appendChild(i);let s=!0;const n=Ae.getIcon("TRASH",16);return n.addEventListener("click",()=>{if(!s)return;s=!1,this.deleteTrack(e),t.classList.add("exiting"),setTimeout(()=>t.remove(),400);const a=this.makeLeftoverTrack(e);a.classList.add("entering"),setTimeout(()=>a.classList.remove("entering"),400),this.leftovers?.appendChild(a),this.clearBoundaries()}),t.appendChild(n),t.addEventListener("mousedown",a=>{s&&(n.contains(a.target)||this.startDragging(a,t))}),t.dataset.type=e,t}static makeLeftoverTrack(e){const t=document.createElement("div");t.classList.add("leftover-track");const i=Ae.getIcon("PLUS",8);t.append(i);const s=document.createElement("div");s.classList.add("leftover-track-text"),s.innerText=e,t.style.backgroundColor=Vc(Hr[e].toString(16).padStart(6,"0"),"#333333",.7),t.appendChild(s);let n=0,a=0,o=!1,l=!1;return t.addEventListener("mousedown",()=>{o=!0}),t.addEventListener("mousemove",c=>{if(!(!o||l)&&(n+=c.movementX,a+=c.movementY,n*n+a*a>15)){l=!0;const d=this.makeDraggableTrack(e);this.grid?.appendChild(d),this.clearBoundaries();const h=t.getBoundingClientRect(),u=this.getClosestSlot(h.left),p=_.chart.timingEventOrder.left.concat(["PLAYFIELD"],_.chart.timingEventOrder.right);p.splice(u,0,e),this.saveOptions(p),p.forEach(f=>{const m=this.grid?.querySelector(`div[data-type=${f}]`);this.grid?.appendChild(m),f!="PLAYFIELD"&&(m?.classList.remove("left","right"),_.chart.timingEventOrder.left.includes(f)&&m?.classList.add("left"),_.chart.timingEventOrder.right.includes(f)&&m?.classList.add("right"))}),this.startDragging(c,d,c.clientX,c.clientY),_.general.smoothAnimations?(t.style.width=t.clientWidth+"px",t.style.transition="0.4s cubic-bezier(0, 0.91, 0.34, 1.05)",setTimeout(()=>{t.style.width="0px",t.style.opacity="0",t.style.padding="0",t.style.fontSize="0"},10),setTimeout(()=>t.remove(),400)):t.remove()}}),t.addEventListener("mouseup",()=>{if(!o||l)return;l=!0,_.chart.timingEventOrder.right.push(e),_.general.smoothAnimations?(t.style.width=t.clientWidth+"px",t.style.transition="0.4s cubic-bezier(0, 0.91, 0.34, 1.05)",setTimeout(()=>{t.style.width="0px",t.style.opacity="0",t.style.padding="0",t.style.fontSize="0"},10),setTimeout(()=>t.remove(),400)):t.remove();const c=this.makeDraggableTrack(e);c.classList.add("entering"),c.classList.add("right"),setTimeout(()=>c.classList.remove("entering"),400),this.grid?.appendChild(c),this.clearBoundaries()}),t}static startDragging(e,t,i,s){if(!this.popup)return;this.draggedElement=t.cloneNode(!0),this.draggedElement.style.position="fixed";const n=t.getBoundingClientRect(),a=this.popup.getBoundingClientRect();!i||!s?(this.dragOffsetX=e.clientX-n.left,this.dragOffsetY=e.clientY-n.top,this.draggedElement.style.left=n.left-a.left+"px",this.draggedElement.style.top=n.top-a.top+"px"):(this.dragOffsetX=n.width/2,this.dragOffsetY=n.height/4*3,this.draggedElement.style.left=i-n.width/2-a.left+"px",this.draggedElement.style.top=s-n.height/4*3-a.top+"px",this.draggedElement.classList.add("entering")),this.draggedElement.style.boxShadow="6px 6px 6px #222",this.draggedElement.style.transition="none",t.style.opacity="0.03",this.popup.appendChild(this.draggedElement);const o=_.chart.timingEventOrder.left.concat(["PLAYFIELD"],_.chart.timingEventOrder.right),l=t.dataset.type;let c=o.indexOf(l);const d=o.indexOf(l),h=p=>{this.draggedElement.style.left=p.clientX-this.dragOffsetX-a.left+"px",this.draggedElement.style.top=p.clientY-this.dragOffsetY-a.top+"px";let f=this.getClosestSlot(p.clientX-this.dragOffsetX);Math.abs(p.clientY-this.dragOffsetY-a.top-(n.top-a.top))>140&&(f=d),c!=f&&(o.splice(c,1),o.splice(f,0,l),this.saveOptions(o),o.forEach(m=>{const g=this.grid?.querySelector(`div[data-type=${m}]`);this.grid?.appendChild(g),m!="PLAYFIELD"&&(g?.classList.remove("left","right"),_.chart.timingEventOrder.left.includes(m)&&g?.classList.add("left"),_.chart.timingEventOrder.right.includes(m)&&g?.classList.add("right"))}),l!="PLAYFIELD"&&(this.draggedElement?.classList.remove("left","right"),_.chart.timingEventOrder.left.includes(l)&&this.draggedElement?.classList.add("left"),_.chart.timingEventOrder.right.includes(l)&&this.draggedElement?.classList.add("right")),c=f)};window.addEventListener("mousemove",h);const u=()=>{this.draggedElement?.remove(),this.draggedElement=void 0,window.removeEventListener("mousemove",h),t.style.opacity="",this.clearBoundaries(),window.removeEventListener("mouseup",u)};window.addEventListener("mouseup",u)}static saveOptions(e){const t=e.indexOf("PLAYFIELD");t!=-1&&(_.chart.timingEventOrder.left=e.slice(0,t),_.chart.timingEventOrder.right=e.slice(t+1))}static deleteTrack(e){const t=_.chart.timingEventOrder.left.indexOf(e);t!=-1&&_.chart.timingEventOrder.left.splice(t,1);const i=_.chart.timingEventOrder.right.indexOf(e);i!=-1&&_.chart.timingEventOrder.right.splice(i,1)}static movePosition(){if(!this.popup)return;const e=document.getElementById("toggle-tracks");if(!e)return;this.popup.style.display="";const t=e.getBoundingClientRect(),i=t.left+t.width/2,s=this.popup.clientWidth,n=s/2+15,a=window.innerWidth-s/2-15;this.popup.style.left=`${Be(i,n,a)}px`;const o=t.top+t.height/2;this.popup.style.top=`${t.top+t.height}px`,o+this.popup.clientHeight>window.innerHeight-15&&(this.popup.style.transform="translate(-50%, -100%)",this.popup.style.top=`${t.top-t.height/2}px`),setTimeout(()=>this.popup.style.transitionDuration="",10)}static getClosestSlot(e){this.boundaryCache.length==0&&this.getBoundaries();let t=-1,i=999999,s=999999;for(let n=0;ns)break;s=a}return t}static getBoundaries(){if(this.grid){for(const e of this.grid.children)this.boundaryCache.push([e,e.getBoundingClientRect()]);this.boundaryCache.sort((e,t)=>e[1].left-t[1].left)}}static clearBoundaries(){this.boundaryCache=[]}static close(){!this.popup||!this.active||(window.removeEventListener("click",this.clickOutside,!0),this.popup.classList.add("exiting"),this.exitTimeout=setTimeout(()=>this.popup.remove(),200),this.active=!1,clearInterval(this.moveInterval),this.clearBoundaries())}}class YS extends Aa{view;playbackBar;skipStart;skipEnd;play;playIcon;stopIcon;record;playtest;timeCounter;beatCounter;min;sec;millis;beat;beatDropdown;editBar;editSteps;editTiming;stepsContainer;timingContainer;editChoiceContainer;addTimingEvent;toggleTimingTracks;detectSync;offsetCounter;offset;noteArrows=[];noteArrowMask;lastTime=null;lastBeat=null;lastOffset=null;lastMode=X.Edit;lastTimingMode=Ne.Off;lastHover=0;lastPlaying=!1;hovering=!1;trackingMovement=!0;idleFrames=0;lastBounds;constructor(e){super(e);const t=document.createElement("div");t.id="status-widget",document.getElementById("view-wrapper")?.appendChild(t),Ie.viewMode&&t.classList.add("collapsed"),this.playbackBar=document.createElement("div"),this.playbackBar.classList.add("playback-bar"),this.editBar=document.createElement("div"),this.editBar.classList.add("edit-bar"),this.skipStart=document.createElement("button"),this.skipStart.tabIndex=-1;const i=Ae.getIcon("SKIP_START",36);this.skipStart.appendChild(i),this.skipStart.onclick=()=>{this.manager.chartManager.setBeat(0),this.skipStart.blur()},Re.createKeybindTooltip(this.skipStart)`Skip to start ${"jumpSongStart"}`,this.skipEnd=document.createElement("button"),this.skipEnd.tabIndex=-1;const s=Ae.getIcon("SKIP_END",36);this.skipEnd.appendChild(s),this.skipEnd.onclick=()=>{this.manager.chartManager.setBeat(this.manager.chartManager.loadedChart.getBeatFromSeconds(this.manager.chartManager.chartAudio.getSongLength())),this.skipEnd.blur()},Re.createKeybindTooltip(this.skipEnd)`Skip to end ${"jumpSongEnd"}`,this.play=document.createElement("button"),this.play.tabIndex=-1;const n=Ae.getIcon("PLAY",40);this.play.appendChild(n),this.playIcon=n;const a=Ae.getIcon("STOP",32);this.play.appendChild(a),this.stopIcon=a,this.stopIcon.style.display="none",this.play.onclick=()=>{(this.manager.chartManager.getMode()==X.Record||this.manager.chartManager.getMode()==X.Play)&&this.manager.chartManager.setMode(X.Edit),this.manager.chartManager.playPause(),this.play.blur()},Re.createKeybindTooltip(this.play)`Play/Pause ${"playback"}`,this.record=document.createElement("button"),this.record.tabIndex=-1;const o=Ae.getIcon("RECORD",36,void 0,"red");this.record.appendChild(o),this.record.onclick=()=>{this.manager.chartManager.setMode(X.Record),this.record.blur()},Re.createKeybindTooltip(this.record)`Record ${"recordMode"}`,(Ie.viewMode||!Ie.recordMode)&&(this.record.style.display="none"),this.playtest=document.createElement("button"),this.playtest.tabIndex=-1;const l=Ae.getIcon("PLAYTEST",30);this.playtest.appendChild(l),this.playtest.onclick=()=>{this.manager.chartManager.setMode(X.Play),this.playtest.blur()},Re.createKeybindTooltip(this.playtest)`Playtest ${"playMode"}`,Ie.playMode||(this.playtest.style.display="none");const c=document.createElement("div");c.classList.add("playback-separator"),this.timeCounter=document.createElement("div"),this.timeCounter.classList.add("playback-counter");const d=document.createElement("div");d.style.display="flex",d.classList.add("playback-counter-main");const h=document.createElement("div");h.classList.add("inlineEdit"),h.innerText="00",h.spellcheck=!1,h.contentEditable="true",h.style.maxWidth="27px",h.onkeydown=A=>{A.key=="Enter"&&h.blur(),A.key=="Escape"&&(h.innerText=Math.floor(Math.abs(this.manager.chartManager.getTime())/60).toString().padStart(2,"0"),h.blur())},h.onfocus=()=>setTimeout(()=>this.selectText(h),25),h.onblur=()=>this.updateTime(),h.ondragstart=A=>A.preventDefault();const u=document.createElement("div");u.classList.add("inlineEdit"),u.innerText="00",u.spellcheck=!1,u.contentEditable="true",u.style.maxWidth="18px",u.onkeydown=A=>{A.key=="Enter"&&u.blur(),A.key=="Escape"&&(u.innerText=Math.floor(Math.abs(this.manager.chartManager.getTime())%60).toString().padStart(2,"0"),u.blur())},u.onfocus=()=>setTimeout(()=>this.selectText(u),25),u.onblur=()=>this.updateTime(),u.ondragstart=A=>A.preventDefault();const p=document.createElement("div");p.classList.add("inlineEdit"),p.innerText="000",p.spellcheck=!1,p.contentEditable="true",p.style.maxWidth="27px",p.onkeydown=A=>{A.key=="Enter"&&p.blur(),A.key=="Escape"&&(p.innerText=(ae(Math.abs(this.manager.chartManager.getTime())%1,3)*1e3).toString().padStart(3,"0"),p.blur())},p.onfocus=()=>setTimeout(()=>this.selectText(p),25),p.onblur=()=>this.updateTime(),p.ondragstart=A=>A.preventDefault(),this.min=h,this.sec=u,this.millis=p;const f=document.createElement("div");f.classList.add("playback-counter-label"),f.innerText="Time",d.appendChild(h),d.appendChild(document.createTextNode(":")),d.appendChild(u),d.appendChild(document.createTextNode(".")),d.appendChild(p),this.timeCounter.appendChild(d),this.timeCounter.appendChild(f);const m=document.createElement("div");m.classList.add("playback-separator"),this.beatCounter=document.createElement("div"),this.beatCounter.classList.add("playback-counter");const g=document.createElement("div");g.classList.add("playback-counter-main","inlineEdit"),g.innerText="0.000",g.spellcheck=!1,g.contentEditable="true",g.onkeydown=A=>{if(A.key=="Enter"&&g.blur(),A.key=="Escape"){if(this.beatDropdown.value=="Measure"){const S=this.manager.chartManager.loadedChart?.timingData?.getMeasure(this.manager.chartManager.getBeat())??this.manager.chartManager.getBeat()/4;g.innerText=ae(S,3).toFixed(3)}else g.innerText=ae(this.manager.chartManager.getBeat(),3).toFixed(3);g.blur()}},g.onfocus=()=>{setTimeout(()=>this.selectText(g),25)},g.onblur=()=>this.updateBeat(),g.ondragstart=A=>A.preventDefault(),this.beat=g,this.beatDropdown=gi.create(["Beat","Measure"],"Beat"),this.beatDropdown.view.querySelector(".dropdown-selected").classList.add("playback-counter-label"),this.beatCounter.appendChild(g),this.beatCounter.appendChild(this.beatDropdown.view),this.beatDropdown.onChange(()=>{if(this.beatDropdown.value=="Measure"){const A=this.manager.chartManager.loadedChart?.timingData?.getMeasure(this.manager.chartManager.getBeat())??this.manager.chartManager.getBeat()/4;g.innerText=ae(A,3).toFixed(3)}else g.innerText=ae(this.manager.chartManager.getBeat(),3).toFixed(3)}),this.playbackBar.appendChild(this.skipStart),this.playbackBar.appendChild(this.skipEnd),this.playbackBar.appendChild(this.play),this.playbackBar.appendChild(this.record),this.playbackBar.appendChild(this.playtest),this.playbackBar.appendChild(c),this.playbackBar.appendChild(this.timeCounter),this.playbackBar.appendChild(m),this.playbackBar.appendChild(this.beatCounter),this.editSteps=document.createElement("button"),this.editSteps.tabIndex=-1,this.editSteps.classList.add("edit-fancy-button");const y=Ae.getIcon("FEET",24);y.style.marginBottom="2px",this.editSteps.appendChild(y),this.editSteps.appendChild(document.createTextNode("Edit Steps")),this.editSteps.onclick=()=>{this.manager.chartManager.editTimingMode=Ne.Off,this.editSteps.blur()},this.editSteps.classList.add("active"),this.editTiming=document.createElement("button"),this.editTiming.tabIndex=-1,this.editTiming.classList.add("edit-fancy-button");const w=Ae.getIcon("METRONOME",24);w.style.marginBottom="2px",this.editTiming.appendChild(w),this.editTiming.appendChild(document.createTextNode("Edit Timing")),this.editTiming.onclick=()=>{this.manager.chartManager.editTimingMode=Ne.Edit,this.editTiming.blur()};const b=document.createElement("div");b.classList.add("playback-separator");const v=document.createElement("div");v.classList.add("edit-bar-left"),v.appendChild(this.editSteps),v.appendChild(this.editTiming),v.appendChild(b),this.editBar.appendChild(v),this.editChoiceContainer=document.createElement("div"),this.editChoiceContainer.classList.add("edit-choice-container"),this.stepsContainer=document.createElement("div"),this.stepsContainer.classList.add("edit-steps-container"),this.timingContainer=document.createElement("div"),this.timingContainer.classList.add("edit-timing-container"),this.editChoiceContainer.appendChild(this.stepsContainer),this.editChoiceContainer.appendChild(this.timingContainer),this.addTimingEvent=document.createElement("button"),this.addTimingEvent.tabIndex=-1;const E=Ae.getIcon("ADD_EVENT",32);this.addTimingEvent.appendChild(E),this.addTimingEvent.onclick=()=>{this.manager.chartManager.editTimingMode==Ne.Add?this.manager.chartManager.editTimingMode=Ne.Edit:this.manager.chartManager.editTimingMode=Ne.Add,this.addTimingEvent.blur()},this.timingContainer.appendChild(this.addTimingEvent),Pt(this.addTimingEvent,{content:"Add timing events"}),this.toggleTimingTracks=document.createElement("button"),this.toggleTimingTracks.tabIndex=-1;const C=Ae.getIcon("EYE",32);this.toggleTimingTracks.appendChild(C),this.toggleTimingTracks.onclick=()=>{Rh.active?Rh.close():Rh.open(),this.toggleTimingTracks.blur()},this.toggleTimingTracks.id="toggle-tracks",this.timingContainer.appendChild(this.toggleTimingTracks),Pt(this.toggleTimingTracks,{content:"Toggle timing track visibility"}),this.detectSync=document.createElement("button"),this.detectSync.tabIndex=-1;const I=Ae.getIcon("DETECT_SYNC",32);this.detectSync.appendChild(I),this.detectSync.onclick=()=>{this.manager.app.windowManager.openWindow(new yy(this.manager.app)),this.detectSync.blur()},this.detectSync.id="detect-sync",this.timingContainer.appendChild(this.detectSync),Re.createKeybindTooltip(this.detectSync)`Detect audio sync ${"detectSync"}`;const L=document.createElement("div");L.classList.add("playback-separator"),this.timingContainer.appendChild(L),this.offsetCounter=document.createElement("div"),this.offsetCounter.classList.add("playback-counter");const k=document.createElement("div");k.classList.add("playback-counter-label"),k.innerText="Offset";const N=document.createElement("div");N.classList.add("playback-counter-main","inlineEdit"),N.innerText="0.000",N.spellcheck=!1,N.contentEditable="true",N.onkeydown=A=>{A.key=="Enter"&&N.blur(),A.key=="Escape"&&(N.innerText=ae(this.manager.chartManager.loadedChart?.timingData.getOffset()??0,3).toFixed(3),N.blur())},N.tabIndex=-1,N.onfocus=()=>{setTimeout(()=>this.selectText(N),25)},N.onblur=()=>this.updateOffset(),N.ondragstart=A=>A.preventDefault(),this.offset=N,this.offsetCounter.appendChild(N),this.offsetCounter.appendChild(k),this.timingContainer.appendChild(this.offsetCounter),this.editBar.appendChild(this.editChoiceContainer);const G=document.createElement("div");G.classList.add("note-placeholder-right"),this.stepsContainer.appendChild(G),K.on("resize",()=>{this.trackingMovement=!0,this.idleFrames=5}),K.on("noteskinLoaded",()=>{this.stepsContainer.replaceChildren(),this.noteArrows.forEach(S=>{this.removeChild(S.sprite),this.removeChild(S.bg),this.removeChild(S.highlight)}),this.noteArrows=[];const A=document.createElement("div");if(A.classList.add("note-placeholder-right"),this.stepsContainer.appendChild(A),!!this.manager.chartManager.loadedChart){for(const S of this.manager.chartManager.loadedChart.gameType.editNoteTypes){if(bd.includes(S))continue;const x=this.manager.chartManager.chartView.getNotefield().createNote({type:S,beat:0,col:0,quant:4,second:0,warped:!1,fake:!1});x.scale.set(.5);const D=new Oe(ie.WHITE);Qe(D,"--widget-bg"),D.width=48,D.height=48,D.anchor.set(.5);const $=new jt("noBorder");$.alpha=0,$.width=48,$.height=48,$.pivot.x=24,$.pivot.y=24;const R=document.createElement("button");R.tabIndex=-1,R.style.height="48px",R.style.width="48px",R.classList.add("note-placeholder"),R.onclick=()=>{this.manager.chartManager.setEditingNoteType(S),R.blur()},Re.createKeybindTooltip(R)`${"\\"+S} ${"noteType"+S}`;const O={element:R,sprite:x,type:S,bg:D,highlight:$,hovered:!1};R.onmouseover=()=>{O.hovered=!0},R.onmouseleave=()=>{O.hovered=!1},this.addChild(D),this.addChild(x),this.addChild($);const W=R.getBoundingClientRect();x.position.y=W.top-this.manager.app.view.clientHeight/2-this.manager.app.view.getBoundingClientRect().top+24,x.position.x=W.left-this.manager.app.view.clientWidth/2+24,D.position=x.position,this.noteArrows.push(O)}this.stepsContainer.replaceChildren(...this.noteArrows.map(S=>S.element),A),this.trackingMovement=!0,this.idleFrames=5}}),this.noteArrowMask=new Oe(ie.WHITE),this.noteArrowMask.height=48,this.noteArrowMask.width=2500,this.noteArrowMask.anchor.y=1,this.noteArrowMask.anchor.x=.5,this.addChild(this.noteArrowMask),this.mask=this.noteArrowMask,t.onmouseenter=()=>{this.lastHover=Date.now(),this.hovering=!0,this.view.style.opacity="",this.view.style.transition=""},t.onmouseleave=()=>this.hovering=!1,t.appendChild(this.playbackBar),t.appendChild(this.editBar),this.view=t,t.style.display="none"}update(){this.view.style.display=this.manager.chartManager.loadedSM&&Ie.status?"":"none";const e=this.manager.chartManager.getTime();this.lastTime!=e&&(document.activeElement!=this.min&&(this.min.innerText=(e<0?"-":"")+Math.floor(Math.abs(e)/60).toString().padStart(2,"0")),document.activeElement!=this.sec&&(this.sec.innerText=Math.floor(Math.abs(e)%60).toString().padStart(2,"0")),document.activeElement!=this.millis&&(this.millis.innerText=(ae(Math.abs(e)%1,3)*1e3).toString().padStart(3,"0")),this.lastTime=e);const t=this.manager.chartManager.getBeat();if(this.lastBeat!=t){if(document.activeElement!=this.beat)if(this.beatDropdown.value=="Measure"){const h=this.manager.chartManager.loadedChart?.timingData?.getMeasure(t)??t/4;this.beat.innerText=ae(h,3).toFixed(3)}else this.beat.innerText=ae(t,3).toFixed(3);this.lastBeat=t}const i=this.manager.chartManager.loadedChart?.timingData.getOffset()??0;this.lastOffset!=i&&document.activeElement!=this.offset&&(this.offset.innerText=ae(i,3).toFixed(3));const s=this.manager.chartManager.getMode(),n=this.manager.chartManager.editTimingMode;if(this.lastMode!=s){switch(s){case X.Edit:this.skipStart.disabled=!1,this.skipEnd.disabled=!1,this.record.disabled=!1,this.playtest.disabled=!1,this.min.contentEditable="true",this.sec.contentEditable="true",this.millis.contentEditable="true",this.beat.contentEditable="true",this.offset.contentEditable="true",this.record.style.background="",this.playtest.style.background="",this.view.style.opacity="",this.view.style.transition="",this.view.classList.remove("collapsed"),this.beatDropdown.disabled=!1;break;case X.Record:this.lastHover=Date.now(),this.skipStart.disabled=!0,this.skipEnd.disabled=!0,this.record.disabled=!1,this.record.style.background="rgba(170, 0, 0, 0.35)",this.playtest.disabled=!0,this.min.contentEditable="false",this.sec.contentEditable="false",this.millis.contentEditable="false",this.beat.contentEditable="false",this.offset.contentEditable="false",n!=Ne.Off&&(this.visible=!1),this.view.classList.add("collapsed"),this.beatDropdown.closeDropdown(),this.beatDropdown.disabled=!0;break;case X.Play:this.lastHover=Date.now(),this.skipStart.disabled=!0,this.skipEnd.disabled=!0,this.record.disabled=!0,this.playtest.disabled=!1,this.playtest.style.background="rgba(12, 97, 31, 0.35)",this.min.contentEditable="false",this.sec.contentEditable="false",this.millis.contentEditable="false",this.beat.contentEditable="false",this.offset.contentEditable="false",n!=Ne.Off&&(this.visible=!1),this.view.classList.add("collapsed"),this.beatDropdown.closeDropdown(),this.beatDropdown.disabled=!0;break;case X.View:this.lastHover=Date.now(),this.skipStart.disabled=!1,this.skipEnd.disabled=!1,this.record.disabled=!0,this.playtest.disabled=!1,this.min.contentEditable="true",this.sec.contentEditable="true",this.millis.contentEditable="true",this.beat.contentEditable="true",this.offset.contentEditable="true",n!=Ne.Off&&(this.visible=!1),this.view.classList.add("collapsed"),this.beatDropdown.closeDropdown(),this.beatDropdown.disabled=!0}this.trackingMovement=!0,this.idleFrames=5,this.lastMode=s}if(this.lastTimingMode!=n){switch(n){case Ne.Off:this.visible=!0,this.stepsContainer.style.transform="",this.timingContainer.style.transform="",this.editSteps.classList.add("active"),this.editTiming.classList.remove("active"),this.offset.tabIndex=-1;break;case Ne.Add:this.addTimingEvent.classList.add("active");break;case Ne.Edit:this.addTimingEvent.classList.remove("active"),this.offset.tabIndex=0}(this.lastTimingMode==Ne.Off&&n!=Ne.Off||this.lastTimingMode!=Ne.Off&&n==Ne.Off)&&this.manager.chartManager.clearSelections(),this.trackingMovement=!0,this.idleFrames=5,this.lastTimingMode=n,this.stepsContainer.style.transform=n==Ne.Off?"":"translateY(-48px)",this.timingContainer.style.transform=n==Ne.Off?"":"translateY(-48px)",this.editSteps.classList.toggle("active",n==Ne.Off),this.editTiming.classList.toggle("active",n!=Ne.Off)}const a=this.manager.chartManager.chartAudio.isPlaying();if(this.lastPlaying!=a&&(this.playIcon.style.display=a?"none":"",this.stopIcon.style.display=a?"":"none",this.lastPlaying=a),(s==X.Play||s==X.Record)&&this.view.style.opacity==""&&!this.hovering&&Date.now()-this.lastHover>3e3&&(this.view.style.opacity="0.2",this.view.style.transition="2s cubic-bezier(.11,.72,.51,1.14)"),this.trackingMovement){const h=this.noteArrows[0];if(h){const p=h.element.getBoundingClientRect();this.noteArrows.forEach((f,m)=>{f.sprite.position.y=p.top-this.manager.app.view.clientHeight/2-this.manager.app.view.getBoundingClientRect().top+24,f.sprite.position.x=p.left-this.manager.app.view.clientWidth/2+24+m*48,f.bg.position=f.sprite.position,f.highlight.position=f.sprite.position}),this.lastBounds&&Math.abs(this.lastBounds.top-p.top)+Math.abs(this.lastBounds.left-p.left)==0&&(this.idleFrames--,this.idleFrames<0&&(this.trackingMovement=!1,this.lastBounds=void 0,n!=Ne.Off&&(this.visible=!1))),this.lastBounds=p}const u=this.view.getBoundingClientRect();this.noteArrowMask.y=u.bottom-this.manager.app.view.clientHeight/2-this.manager.app.view.getBoundingClientRect().top}const o=this.manager.chartManager.getEditingNoteType(),l=tl("--editable-overlay-hover"),c=tl("--editable-overlay-active"),d=new B(l).setAlpha(0);this.noteArrows.forEach(h=>{let u=o==h.type?c:h.hovered?l:d;_.general.smoothAnimations&&(u=new B(LS(new B(h.highlight.tint).setAlpha(h.highlight.alpha),u,.3))),h.highlight.tint=u.toNumber(),h.highlight.alpha=u.alpha})}selectText(e){const t=window.getSelection(),i=document.createRange();!t||!i||(i.selectNodeContents(e),t.removeAllRanges(),t.addRange(i))}updateTime(){this.millis.innerText=this.millis.innerText.padEnd(3,"0").slice(0,3);const e=this.parseString(this.min),t=this.parseString(this.sec),i=this.parseString(this.millis);if(e===null||t===null||i===null){this.lastTime=null;return}let s=e*60+t+i/1e3;s>9999999&&(s=9999999),s<0&&(s=0),this.manager.chartManager.setTime(s),this.lastTime=null}updateBeat(){let e=this.parseString(this.beat);if(e===null){this.lastBeat=null;return}this.beatDropdown.value=="Measure"&&(e=this.manager.chartManager.loadedChart?.timingData?.getBeatFromMeasure(e)??e*4),e>9999999&&(e=9999999),e<0&&(e=0),this.manager.chartManager.setBeat(e),this.lastBeat=null}updateOffset(){let e=this.parseString(this.offset);if(e===null){this.lastOffset=null;return}e>9999999&&(e=9999999),e<-9999999&&(e=-9999999),this.lastOffset=null,!(!this.manager.chartManager.loadedChart||!this.manager.chartManager.loadedSM)&&((this.manager.chartManager.loadedChart.timingData.hasChartOffset()?this.manager.chartManager.loadedChart.timingData:this.manager.chartManager.loadedSM.timingData).setOffset(e),this.manager.chartManager.setBeat(this.manager.chartManager.getBeat()))}parseString(e){try{const t=br.evaluate(e.innerText);return isFinite(t)?t:0}catch{return null}}}class XS extends Ee{app;chartManager;children=[];constructor(e){super(),this.app=e.app,this.chartManager=e,this.addChild(new WS(this)),this.addChild(new zS(this)),this.addChild(new YS(this)),this.addChild(new ma(this)),this.addChild(new HS(this)),this.addChild(new jS(this)),this.zIndex=2}update(){this.x=this.app.renderer.screen.width/2,this.y=this.app.renderer.screen.height/2,this.children.forEach(e=>e.update())}startPlay(){this.children.forEach(e=>e.startPlay())}endPlay(){this.children.forEach(e=>e.endPlay())}}const zc=Array(85).fill(void 0).map((r,e)=>33+e),xy=[];for(const r of zc)for(const e of zc)xy.push([r,e]);const jc="<~".split("").map(r=>r.charCodeAt(0)),$c="~>".split("").map(r=>r.charCodeAt(0));function qS(r,e,t,i=!1,s=!1,n=!1){let a;typeof r=="string"?a=r.split("").map(h=>h.charCodeAt(0)):a=[...new Uint8Array(r)];const o=4-a.length%4;for(let h=0;h=r&&s.x=a&&s.y{this.tileScale.set(e/this.texture.width)}),this.uvRespectAnchor=!0,this.anchor.y=1,this.x=-e/2,this.width=e}}class T extends g{_playing=!1;_autoUpdate=!1;_isConnectedToTicker=!1;_tickerUpdate=this.update.bind(this);_currentTime=0;_textures;_previousFrame=null;onComplete=null;onLoop=null;onFrameChange=null;animationSpeed=1;loop=!1;updateAnchor=!1;constructor(t,e){super(t[0],e),this.textures=t}stop(){this._playing&&(this._playing=!1,this._autoUpdate&&this._isConnectedToTicker&&(h.shared.remove(this._tickerUpdate),this._isConnectedToTicker=!1))}play(){this._playing||(this._playing=!0,this._autoUpdate&&!this._isConnectedToTicker&&(h.shared.add(this._tickerUpdate,this,m.HIGH),this._isConnectedToTicker=!0))}gotoAndStop(t){this.stop(),this.currentFrame=t}gotoAndPlay(t){this.currentFrame=t,this.play()}update(t){if(!this._playing)return;const e=this.animationSpeed*t,i=this.currentFrame;this._currentTime+=e,this._currentTime<0&&!this.loop?(this.gotoAndStop(0),this.onComplete?.()):this._currentTime>=this._textures.length&&!this.loop?(this.gotoAndStop(this._textures.length-1),this.onComplete?.()):i!==this.currentFrame&&(this.loop&&this.onLoop&&(this.animationSpeed>0&&this.currentFramei)&&this.onLoop(),this.updateTexture())}updateTexture(){const t=this.currentFrame;this._previousFrame!==t&&(this._previousFrame=t,this.texture=this._textures[t],this._textureID=-1,this._textureTrimmedID=-1,this._cachedTint=16777215,this.uvs=this._texture._uvs.uvsFloat32,this.updateAnchor&&this._anchor.copyFrom(this._texture.defaultAnchor),this.onFrameChange?.(this.currentFrame))}destroy(t){this.stop(),super.destroy(t),this.onComplete=null,this.onFrameChange=null,this.onLoop=null}get totalFrames(){return this._textures?.length??0}get textures(){return this._textures??[]}set textures(t){this._textures=t,this._previousFrame=null,this.gotoAndStop(0),this.updateTexture()}get currentFrame(){let t=Math.floor(this._currentTime)%this._textures.length;return t<0&&(t+=this._textures.length),t}set currentFrame(t){if(t<0||t>this.totalFrames-1)throw new Error(`[AnimatedSprite]: Invalid frame index value ${t}, expected to be between 0 and totalFrames ${this.totalFrames}.`);const e=this.currentFrame;this._currentTime=t,e!==this.currentFrame&&this.updateTexture()}get playing(){return this._playing}get autoUpdate(){return this._autoUpdate}set autoUpdate(t){t!==this._autoUpdate&&(this._autoUpdate=t,!this._autoUpdate&&this._isConnectedToTicker?(h.shared.remove(this._tickerUpdate),this._isConnectedToTicker=!1):this._autoUpdate&&!this._isConnectedToTicker&&this._playing&&(h.shared.add(this._tickerUpdate),this._isConnectedToTicker=!0))}}export{T as A,g as H,n as T}; +import{H as c,$ as l,a0 as _,J as d,s as o,a1 as p,c as h,U as m}from"./ChartManager-beed98d8.js";const s=new p;class n extends c{constructor(t,e=100,i=100){super(t),this.tileTransform=new l,this._width=e,this._height=i,this.uvMatrix=this.texture.uvMatrix||new _(t),this.pluginName="tilingSprite",this.uvRespectAnchor=!1}get clampMargin(){return this.uvMatrix.clampMargin}set clampMargin(t){this.uvMatrix.clampMargin=t,this.uvMatrix.update(!0)}get tileScale(){return this.tileTransform.scale}set tileScale(t){this.tileTransform.scale.copyFrom(t)}get tilePosition(){return this.tileTransform.position}set tilePosition(t){this.tileTransform.position.copyFrom(t)}_onTextureUpdate(){this.uvMatrix&&(this.uvMatrix.texture=this._texture),this._cachedTint=16777215}_render(t){const e=this._texture;!e||!e.valid||(this.tileTransform.updateLocalTransform(),this.uvMatrix.update(),t.batch.setObjectRenderer(t.plugins[this.pluginName]),t.plugins[this.pluginName].render(this))}_calculateBounds(){const t=this._width*-this._anchor._x,e=this._height*-this._anchor._y,i=this._width*(1-this._anchor._x),r=this._height*(1-this._anchor._y);this._bounds.addFrame(this.transform,t,e,i,r)}getLocalBounds(t){return this.children.length===0?(this._bounds.minX=this._width*-this._anchor._x,this._bounds.minY=this._height*-this._anchor._y,this._bounds.maxX=this._width*(1-this._anchor._x),this._bounds.maxY=this._height*(1-this._anchor._y),t||(this._localBoundsRect||(this._localBoundsRect=new d),t=this._localBoundsRect),this._bounds.getRectangle(t)):super.getLocalBounds.call(this,t)}containsPoint(t){this.worldTransform.applyInverse(t,s);const e=this._width,i=this._height,r=-e*this.anchor._x;if(s.x>=r&&s.x=a&&s.y{this.tileScale.set(e/this.texture.width)}),this.uvRespectAnchor=!0,this.anchor.y=1,this.x=-e/2,this.width=e}}class T extends g{_playing=!1;_autoUpdate=!1;_isConnectedToTicker=!1;_tickerUpdate=this.update.bind(this);_currentTime=0;_textures;_previousFrame=null;onComplete=null;onLoop=null;onFrameChange=null;animationSpeed=1;loop=!1;updateAnchor=!1;constructor(t,e){super(t[0],e),this.textures=t}stop(){this._playing&&(this._playing=!1,this._autoUpdate&&this._isConnectedToTicker&&(h.shared.remove(this._tickerUpdate),this._isConnectedToTicker=!1))}play(){this._playing||(this._playing=!0,this._autoUpdate&&!this._isConnectedToTicker&&(h.shared.add(this._tickerUpdate,this,m.HIGH),this._isConnectedToTicker=!0))}gotoAndStop(t){this.stop(),this.currentFrame=t}gotoAndPlay(t){this.currentFrame=t,this.play()}update(t){if(!this._playing)return;const e=this.animationSpeed*t,i=this.currentFrame;this._currentTime+=e,this._currentTime<0&&!this.loop?(this.gotoAndStop(0),this.onComplete?.()):this._currentTime>=this._textures.length&&!this.loop?(this.gotoAndStop(this._textures.length-1),this.onComplete?.()):i!==this.currentFrame&&(this.loop&&this.onLoop&&(this.animationSpeed>0&&this.currentFramei)&&this.onLoop(),this.updateTexture())}updateTexture(){const t=this.currentFrame;this._previousFrame!==t&&(this._previousFrame=t,this.texture=this._textures[t],this._textureID=-1,this._textureTrimmedID=-1,this._cachedTint=16777215,this.uvs=this._texture._uvs.uvsFloat32,this.updateAnchor&&this._anchor.copyFrom(this._texture.defaultAnchor),this.onFrameChange?.(this.currentFrame))}destroy(t){this.stop(),super.destroy(t),this.onComplete=null,this.onFrameChange=null,this.onLoop=null}get totalFrames(){return this._textures?.length??0}get textures(){return this._textures??[]}set textures(t){this._textures=t,this._previousFrame=null,this.gotoAndStop(0),this.updateTexture()}get currentFrame(){let t=Math.floor(this._currentTime)%this._textures.length;return t<0&&(t+=this._textures.length),t}set currentFrame(t){if(t<0||t>this.totalFrames-1)throw new Error(`[AnimatedSprite]: Invalid frame index value ${t}, expected to be between 0 and totalFrames ${this.totalFrames}.`);const e=this.currentFrame;this._currentTime=t,e!==this.currentFrame&&this.updateTexture()}get playing(){return this._playing}get autoUpdate(){return this._autoUpdate}set autoUpdate(t){t!==this._autoUpdate&&(this._autoUpdate=t,!this._autoUpdate&&this._isConnectedToTicker?(h.shared.remove(this._tickerUpdate),this._isConnectedToTicker=!1):this._autoUpdate&&!this._isConnectedToTicker&&this._playing&&(h.shared.add(this._tickerUpdate),this._isConnectedToTicker=!0))}}export{T as A,g as H,n as T}; diff --git a/NodeFileHandler-14aa1e9e.js b/NodeFileHandler-8dea5141.js similarity index 99% rename from NodeFileHandler-14aa1e9e.js rename to NodeFileHandler-8dea5141.js index cf9bc8f9..60ec999c 100644 --- a/NodeFileHandler-14aa1e9e.js +++ b/NodeFileHandler-8dea5141.js @@ -1,4 +1,4 @@ -import{a2 as Nr,a3 as Xr,g as ra,a4 as bi,a5 as na,a6 as oi,a7 as ai,W as ia}from"./ChartManager-0bba2271.js";var dr={exports:{}};/** +import{a2 as Nr,a3 as Xr,g as ra,a4 as bi,a5 as na,a6 as oi,a7 as ai,W as ia}from"./ChartManager-beed98d8.js";var dr={exports:{}};/** * @license * web-streams-polyfill v3.3.3 * Copyright 2024 Mattias Buelens, Diwank Singh Tomer and other contributors. diff --git a/Noteskin-ebdca60a.js b/Noteskin-03c71a59.js similarity index 99% rename from Noteskin-ebdca60a.js rename to Noteskin-03c71a59.js index 6e75f9c0..6009d15b 100644 --- a/Noteskin-ebdca60a.js +++ b/Noteskin-03c71a59.js @@ -1,4 +1,4 @@ -import{s as e,u as v,v as U,b as c,w,O as m,x as l,y as Q,z as h,H as i,J as u,L as C,P as F,Q as x,V as G,X as f,Y as b}from"./ChartManager-0bba2271.js";import{H as E}from"./HoldBody-2ee2d035.js";const S="/smeditor/assets/parts-0c8fa692.png",M="/smeditor/assets/frame-d599a2fe.png",T="/smeditor/assets/parts-b37af2cf.png",K="/smeditor/assets/parts-9668caec.png",P=`precision mediump float; +import{s as e,u as v,v as U,b as c,w,O as m,x as l,y as Q,z as h,H as i,J as u,L as C,P as F,Q as x,V as G,X as f,Y as b}from"./ChartManager-beed98d8.js";import{H as E}from"./HoldBody-b84029dd.js";const S="/smeditor/assets/parts-0c8fa692.png",M="/smeditor/assets/frame-d599a2fe.png",T="/smeditor/assets/parts-b37af2cf.png",K="/smeditor/assets/parts-9668caec.png",P=`precision mediump float; varying vec2 vUvs; diff --git a/Noteskin-9af5a76e.js b/Noteskin-0b1bf5ac.js similarity index 99% rename from Noteskin-9af5a76e.js rename to Noteskin-0b1bf5ac.js index 719eb963..cbeb47f0 100644 --- a/Noteskin-9af5a76e.js +++ b/Noteskin-0b1bf5ac.js @@ -1,4 +1,4 @@ -import{s as e,u as D,v as H,b as l,w as E,O as f,x as Q,y as I,z as c,H as a,J,Z as d,L as s,Q as h,X as v}from"./ChartManager-0bba2271.js";import{A as F}from"./AnimatedSprite-d8e8da79.js";import{H as P}from"./HoldBody-2ee2d035.js";const L="/smeditor/assets/downBodyActive-dd1fd694.png",Y="/smeditor/assets/downBodyInactive-c781a303.png",p="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB98FAw0dOV1YU4MAAAPKSURBVHja7d1dTupQFIbh0pwJkDBA4xjEQVjGcOIATZwBnFslHC1l7b2/v3WHiUL6PimUwHI3Xc1pWS5fbz8/vU5bZn843/07nx/zVDVb7h/5sW29/7/vb99uvxyPu6+356nRbHnAldEqg7HGXzPt/rIIAuX4zQGwI1CP3wUAKwKH+N0AsCFwid8VAAsCp/jdAaAjcIs/BAAqAsf4wwCgIXCNPxQACgLn+MMBICBwjg8BQAEBa3wYAMwImONDAWBEwB4fDgATAoX4kAAYEKjEhwWAjEApPjQARARq8eEBICFQjE8BAAGBanwaACMRKMefpmn60+NUWXVAPj/mu4PsD+fN94/4yeZqXHPr+NWn415nAtSPtVe/vplbP2BGBOjfaag8ll2frBgQqH2hBe5FIDICt/jDrgIQETjGH3oZiITANX4pAMYvf+wPZ8r4lfdfegZQ+kKoQ/wmTwHKCBQ/QDqjHCh0BKqfHs5+AOP4za8Csh8AO36Xy8DsB8CN3+19gOwHyH6A7AcAjN8VAAuC7AcwRpD9AMYIsh/AGEH2AxgjyH6AwZP9AJM3AAUE2Q9gjCD7AYwRZD+AMYLsBzBGkP0AxgiyH8AYQfYDGCPIfgBjBNkPYIwg+wEKDlj2A+AdyyZngOwHyH6ALs/J2Q+Q/QDZD8D6IjD7AXDiD7sKyH4AjPhDLwOzH2B8/FIA2Q/A+T5D9gMYx2/yFJD9ADzxVwG4/v/zrggY469pt7v1w9OyXK5/9vz0Sqe8CpVK/JfjcbcKQBB4xP8RQBDox/8VgDMCh/irADgicIm/GoATAqf4dwFwQOAW/24Ayggc428CoIjANf5mAEoIKoct/kMAgoA//sMAgoA7fgkAdwTM8csAuCJgj18KwA2BQvxyAC4IVOI3AaCOQCl+MwCqCNTiNwWghkAxfnMAKghU43cBwI5AOX43AKwI1ON3BcCGwCF+dwAsCFziDwGAjsAp/jAAqAjc4g8FgIbAMf5wACgIXONDABiNYMuoxIcBwIRAKT4UAAYEavHhACAjUIwPCQARgWp8WABICJTjQwNAQKAeHx7ASAQO8SkAjEDgEp8GQE8ETvGpAPRA4BafDkBLBI7xKQG0QOAanxZAJYItoxKfGsAoBErx6QH0RqAWXwJALwSK8WUAtEagGl8KQCsEyvHlAFQjUI8vCaAKgUN8WQCPInCJLw1gKwKn+PIA7kXgFt8CwFoEjvFtAPyGwDW+FYD/Ibg1LvHtAKxB4BTfEsBPCNzi2wK4hcAxvv2cluWy9nVBJpPJZDKZjNL8A8iasRIljXPgAAAAAElFTkSuQmCC",k="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB98FAw0eB7cUHesAAAO/SURBVHja7dw7VhtBEIXh0WzGGWtxahZop6yFzKuREwKQBcy0uqvuqzM4Bwv6/yxN61GX7f91ff/F6+vPbWT9/vPj9M88//q7zVojt4/8u43e/tPTy+23Lu+/2LdFa+QXnhltZjDW+EfWMgAqCJTjLwfAjkA9fgkAVgQO8csAsCFwiV8KgAWBU/xyAOgI3OK3AEBF4Bi/DQAaAtf423bzrNDbmvJMoOqGsf0tbc8EstwTuEPeETaPHQHzvdiOsomsCNgfwmAAMCJQuH6BAsCEQOXiFQ4AAwKlkwskAGQESvGhASAiUIsPDwAJgWJ8CgAICFTj0wDoRKAcf9sWvBZwb8NYX2xBfGfz2X+/9LWAzzas++1dI7eP+rb22dc3e9X/TCYE6J9pmLmXpdcADAjUPtACdxGIjMAtftspABGBY/zWYyASAtf404+BLhvJdKwtPQYqfSBUIX7LQ4AyAsV3D+8oG4WOQPWt45kPYBx/+Skg8wGw45ccAzMfADd+2fMAmQ+Q+QCZDwAYvxQAC4LMBzBGkPkAxggyH8AYQeYDfFyZDyD0t2Q+gHF86IcAJQSZD2CMIPMBjBFkPoAxgswHMEaQ+QDGCDIfwBhB5gMYI8h8AGMEmQ9gjCDzATIfoC1+5gM03hNkPsDkDct8AMy9zHwAsvj0F4GZD4ATv+0UkPkAGPFbj4GZD9Aff/oxMPMB8I6amQ9gHL/lISDzAXjiHwJw5y7EEgFj/CPtLp98/3r7jZG3h6tcEwjFvxwFEAQG8b8DYI9APf4RALYIHOIfBWCHwCX+GQA2CJzinwUgj8At/ggAWQSO8UcByCFwjf8IABkEMxdb/EcBBAF5/BkAgoA4/iwA1giY488EYImAPf5sAFYIFOKvAGCBQCX+KgDSCJTirwQgiUAt/moAUggU41cAkECgGr8KADUC5fiVACgRqMevBkCFwCF+BwAKBC7xuwBAI3CK3wkAEoFb/G4AUAgc4yMAgEDgGh8FQCuCkaUSHwkADQKl+GgA4BGoxUcEAItAMT4qADgEqvGRAcAgUI6PDqAdgXp8BgBtCBziswAoR+ASnwlAGQKn+GwAliNwi88IYBkCx/isAKYjcI3PDGAagpGlEp8dQAsCpfgKAEoRqMVXAVCCQDG+EoClCFTjqwFYgkA5viKAqQjU46sCmILAIb4ygIcQuMRXBzCEwCm+A4BTCNziuwA4hMAxvhOALxG4xncDcBeB+764ATiCwGpPHAF8hcBuP1wB3EPgvBfWCK7ZhqysrKysrCy39Q9gQ/q5SfcuvQAAAABJRU5ErkJggg==",b="/smeditor/assets/leftBodyActive-75d41033.png",z="/smeditor/assets/leftBodyInactive-bbc074cd.png",x="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAAAXNSR0IArs4c6QAAAAZiS0dEANIA0gBQ7xAn7AAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB+EDFAI2I6Ho7PYAAANMSURBVHja7Z1bTgMxDEU7VjeAxAJR10C7CMoaEAus1B0Av6XiMY/EsX2PJT4GoTHpOZNJMhl32t3F6/n8eXt8eDrt1sTD48eiv79ebNcqluZumX9N7p7/39v7y7fj5+Nxuj3e7zrF9WKzP4xM8HsBHhXW8+RzPtgqVz4CrPiAM8IfIUzPnDaqAZmvfE8JeueyEQ2p0O17SOCRw7U/u16s1D2/JyCvXibtCCjKgC/LOX+LPfBzAZPvAZjqCQsAfGEBgC8sAPCFBQC+sADAFxYA+MICAF9YAOD7xh74f+evLpcB/+/81XYAhRQgKnwFCQz4ta/w0AIAX1gA4AvPApTgR5/WGvDjrTN4CmrAjwXfWwIDfjz4nhIY8GPC95LAgB8XvocEBnztqaYBX3udIczTQOoDFBOA+gA5gvoA1AcY17VTH2B8TuoDBAPinYv6AIEloD5A8Hs+9QEGBvUBiq0DZB7tUx9AGD7TQOAjAPARAPgIAHwEAD4CjIRPFBEA+MICAF9YAOALCwB8YQGALyxAS/hMAZMJAHxhAYAfI/YV4fccU3jkoz6AMHzvQbEBP2Y+6gMIw/fMYcCPCd8rlwE/LnyPnJbZXm8YFVcsDfi68GcJcP/980RxAZ6Px6mFBL0XM7xX/6quNv7YKiTQkeDXFkWUwPsLHaJ8gcSw+gBIMF6CLbnmsJrmnOj1fP68/93h6cSaQOeZQWv4P13Q09wTIoFvPg/4iwRAAr98XvAXC5BJAsVYCn+VAEhQB/5qAZCgBvxNAiBBfvj/rgP8F1lWDIHfSQAkyA2/iQBIkBd+MwGQICf8zYPAiAPDpQJl3++wBX7THoCeIB/8LgKMlkDlTeMW8LsJgAQ54HcZA0QaE6yRp/UgK3q4NAwJxAVAAgRAAgRAAgRAAgRAAgRAAgRAAgRAAgRAAgRAAgRAAgRAAgRAAgRAggERet9Vtk0la+REgGISIAASIAASIEA5CRAACRAACRAACRBAT4LKkqRvWW8JqvcQJVrXUoL7H24BYhIwBkCC1ZFRuJLvu7V6irgVPo+DRSRgQ4iwBGwJE5aATaHCErAtXFgCXgwRloBXwwpK0HrtAQFEJOD1cGEJKBAhLEHlsnEEQRAEQWjEFz4LZYAP3C09AAAAAElFTkSuQmCC",O="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAAAXNSR0IArs4c6QAAAAZiS0dEAAAAAAAA+UO7fwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB+EDFAI3FABOeLgAAAM3SURBVHja7d09csJADIZhW+O7pOMsaeGASZuz0HGapGUIMP7Z1Ur6XnVkMgj8PdjrxV7m6X/93j+4Xj+nPfX1/bHp/y/n29SqtvZu2X9P756v73T6efzTfP9gmTrV5XxbvTEyhd8r4FFlPZ98zYat8skHwI4NnDH8EWB69rRRbyDzJ98TQe9eNuKNVNjteyDw6DH3OgvwqAjH/Gij/q1nATYlrSgDvizP+aoWws8VWNoxAKd6ACB8ABA+AAgfAIQPAMIHAOEDgPABQPhjayH89/2r4zLCf9+/2hVAIQFEDV8BgRF+7U94aACELwyA8IXPApTCj35aa4Qfb57BE6gRfqzwvREY4ccL3xOBEX7M8L0QGOHHDd8DgRG+9qmmEb72PEOYbwNZH6AYANYHyFGsD8D6AON27awPML4n6wMEC8S7F+sDBEbA+gAJjvmsDyAcfqbnDD8PkHm0z/oAwuFzGkj4ACB8ABA+AAgfAIQPgJHhU0UAEL4wAMIXBkD4wgAIXxgA4QsDaBk+p4DJABC+MADCj1FLxfB7jik8+rE+gHD43oNiI/yY/VgfQDh8zx5G+DHD9+plhB83fI+ellmvdxgVZyyN8HXDXwXgyZ0lVHEAcwsEvSczvGf/qs42vtoDgEAEwbtDQDgE3j/oEOUHJEauDwCCwQiO9FqT1bzyuX4f/7DntnHmBIaHP+8FAALnfh7hbwUAgin+18Fbwt8DIA0Cxdoa/l4AICgS/hEAICgQ/lEAIEge/pp5gM2AIs4YEn4/ACBIHH4rACBIGn5LACBIGH6LQWC4geFWQAWudziUoXm8IPYEMcPvBWAoAqE7jZvsvc3zBYIgVvi9xgBhxgR78LQeZMlIAgEAQAAAEAAABAAAAQBAAAAQAAAEAAABAEAAABAAAAQAAAEAQAAAEEQqywY08kUlkX9pPSuAdAgAAAIAgAAA5RAAAAQAAAEAQAAAPQSVkViB99AVQfU9RKVLnJtMGx+tJ/iYCs60J2AMAIKWn34OASqHA74OFkbABSHCCLgkTBgBF4UKI+CycGEE3BgijIBbwwoiUN6GigBaIuD2cGEELBAhjEB9u1EURVEUlbz+AOnsq2p4bKxbAAAAAElFTkSuQmCC",y="/smeditor/assets/rightBodyActive-07f95372.png",R="/smeditor/assets/rightBodyInactive-fdefc2a4.png",X="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAAAXNSR0IArs4c6QAAAAZiS0dEAAAAAAAA+UO7fwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB+EDFAI3NtUuOVwAAAOHSURBVHja7Z3RTSsxEEUdKw0gUSCiBkIRhBoQBSLRQeDr6YWQEK/j8c7MPfcvIO0sPmcd24RhU07yut9/Hb9+fHguPbm7PxSLfH7UIdfpub9RtXvq99Z+e3/58fppt9scv96WYLk2cK0D9flRF0O4uz8Mk2BJ/ZHinaYW4fQM7MiZraW+JXxTAaxvfFRNzxLMGMPqDcgatTxKMGvsqmcwM2t4kmDmg1O9P50zr+1BgtlvndOqWfxgXq5pteWdkanbwDUWhtZbNIstYsoZgC0iAiABAiABAiABAiABAiABAiABAiABAiDButlmB3Vu0Nf4UMfx/Xg6Maxq8Ec/idFngqoGHwlYAyABAiABAiDB/F3A2p/Fn7U6j7Q7qBGfsghPYpSZoGaEjwSOBFh7kYMEKwrgZa+LBCsI4O3cGwmCbgMzQfAoQYhzACQ4aAvwbxBGDURECaxCf4CFtekPkCj0B6A/AP0BvAFZoxb9AYJLQH8A52sA+gO016c/QMBr0h8g4P7X8xYx5QzAFhEBkAABkAABkAABkAABkAABdEJ/AEJ/AOJTAgQQlwABxCVAAHEJEGDCVtCzBAggLgECiEvgvj/AUgiWg3lar+dzA3+NDf0BBlzTchCt69EfAAnoD4AE9AdAgkJ/ACQo9AcIIZ51PfoDIAH9AUhf3t5fNAWYfaBiXa/n+ufgP+12m/QCAL8dvqkAXvoDzDwaHl3PGn6TAC3vIx4kAP5y+KWUcvabr/v91+nXHh+e3a6Sgd8H/6IAkSQAfj/8PwWIIAHwb4N/VQALCTIlOvwmAZAgL/xmAZAgJ/xFAiBBPvhN5wDXCt1yTqAcD/AXC4AEueB3CYAEeeB3C4AEOeAvXgS2LgwjZekitncR6BH+TTOA1Q3x5M+DP0QAJQlm/efTWfCHCaAgQUb4Q9YAnjPq4Cor/NQCAF9YAOALCwB8YQGALywA8IUFAL6wAMAXFgD4wgIAX1gA4AsLAHxhAYAvLADwhQUAvrAAwLdNuA4hwBcXAPgIAHwEAD4CDI4ifAQQh48A4vDlBVCHn1qAa3CBLzADXIIM/P/ZluQZ0a00K3wWgeLwQwowswlFdviliP06GPhBBZgtgQr8UALMkkAJfjgBrCVQgx9SACsJFOGHFWC0BKrwQwswSgJl+OEFuCTBLVFre5f2z8OBLyTACAlUG16mbxEDfEIIIYSQ3/kGeiN5xirmRdUAAAAASUVORK5CYII=",S="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAAAXNSR0IArs4c6QAAAAZiS0dEAAAAAAAA+UO7fwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB+EDFAI3NUwnaOYAAANgSURBVHja7Z1BUuNADEUdF3dhx1lmyxxw2HIWdnMas6JqKpCx3ZbUkv7TLiFJR/1eOurGiNvyPbZ/b3x8/FpG4s/b8+IRv1//mrzOyPuzGntk/NGxX17e7++6PbxRQQDLiaoiwZUx9wRYF+EYmVhLsY+MbyncT7FmmtwZY2aWIGIO12xAZoyVUYKouVszg4kcI5MEkR8ctyKw2q4gS2FoHWmKQI9JyvKas3Y8pVaAatFlJWAbyEowtwhEAgRAAgRAAgRAAgRAAgRAAgRAAgRAgjTR/iTwp0mfeWWP9fh7IX0S+AhO9EUdmVeCVQ0+ElADIAECIAECIEH8LiCyYq523b/X7iDNLiDa8gqXfGdYCdaO8JEgkQCzixwkmChAlr0uEkwQINu5NxIU3QZ2gpBRghLnAEjwrC3A1yRYTURFCbyC/gAT4dEfgMJw+mpBfwD6A+QCMmMs+gMUl4D+AAmLwKiikP4ARYpA+gPkDPoDNF8J2AayEswtApEAAZAAAZAAAZAAAZAAAdhSIgASIAASIAASIAASIAASIIDAVjCzBAggLgECiEuQvj/AWQiek+k9Hv0BDF7T86KMjC3nSnwFeCaGBMkFiEgICZIKEJkIEiQTYMb3GRKwDQwXz3s8+gMgAf0BCLMzAA0Bov9Aw3u8kdd/AP/WXgDgH4fvKkCW/gBqR8Nn4B8S4Mj3SAYJgH8e/v9+uN3fceWXQt5VMvDH4O89oIQEwB+Hf+RBqSUA/jX4Rx9oKkGnqA7/zIORoCH8s09AgmbwR54kL0En+IfOAfYGunJOoBwZ4I8IgASN4I8KgARN4F8RAAkawF+WZXm6+PzbfWFYTYKoIjYj/KsrgMsb4pMfB99KABkJorqHRsG3FKC9BB3hK3xyTQ6uusLvLgDwhQUAvrAAwBcWAPjCAgBfWADgCwsAfGEBgC8sAPCFBQC+sADAFxYA+MICAF9YAOALCwB8xyjXIQT44gIAHwGAjwDARwDjUISPAOLwEUAcvrwA6vBbC7AHF/gCK8AjyMCvlYDbfzFTh08RKA6/pACR/Qe6w6+UTHh3MgX41RIKk0AFfsWk3CVQgl81MTcJ1OBXTs5cAkX41RM0k0AVfockL0ugDL9LohtzQrIb80HCG3NB0hvzQBAEQRAEsR+fBPrG1xa4jMQAAAAASUVORK5CYII=",T="data:image/png;base64,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",j="/smeditor/assets/upBodyInactive-87a7969e.png",N="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAAAXNSR0IArs4c6QAAAAZiS0dEAHgAeQB3paCnMQAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB+EDFAI5IlF3wK8AAAPCSURBVHja7Z1bbsIwFETNKBtAYoFV11C6iNI1VF0gEjug/YUoRbWxfR8zV+oHH9TG58QhUe6wK6v6PJ1+bl+/vryX2tofrtXvuZxRelXL+BHm2DL+1/fH3eu343F3+xq9Fykr/N7/u+Uzj/hsEHxuCcAM/3KGOQTr8VGMytP5NKIEoQXw+GWKVQIIPrcEEHxuCTBr4pGuob1L0HMtMeMIj3gDxasEvXeIxfM2b32peTmjesz94dptDWacDuyuP4LcZ/Byx45aAOubTJklgOBzSwDB55YAgs8tAQSfWwIIPrcEEHxuCSD43BJA8LklgOBzSwBm+PvDNeWDniEE8PQMIbMEYIfPLgEEn1sCCD63BBB8bgkg+NwSQPC5JYDgc0sAweeWAILPLYHyAcglUD4AuQQQfG4JaPMBoksQWoDo8DNJAMHnlgCCzy0BTT5AJgmUD+C0lA9Q/OUDWEgQKR9gKUFqxtHVa4yeEqS8DPR6fmU5VYUSYPY3bDYJwAz/r74AJgnADP/RWCwSgB0+uwQQfG4JIPjcEkDwuSVYosKvAdLaF7Ae49GYlomioXcAj/Bb3qt8AIfwZ5fyAYjhR5UAgs8tAQSfWwIIPrcEEHxuCSD43BJA8LklgOBzSwDB55ZgiQb/6/vj7vXry7sp0Jb5WP8a2dAdQEd+rJ0Ags8tAQSfW4JQ+QDr863Hapmj8gGSwI8oAQSfWwIwwr+csfnHKIHrfIBR8Gcu/ggJKPIBthbu7Xjcjd6Bnl3crTn2lKC3pBhxhD27tc6CP6o3sKcEo09T7i7EZ8J/dF3tRQLz7wAzJ20BP7ME/xkLXiY9Av5WzfrNoCjrCQ+T9gA/kwQ16wnrSXuCn0GC2vWE5aQ9wo8sQct6wmrSnuFHlKB1PWEx6VnwvZan9cTsSbPD97aeS+2kP0+nn57bFyN8T+sJS2DM8L2sJ6wmLfg+1hMWkxZ8P+u56CjOeToYvgOocpQEkAAqCaCSACoJoJIAKgmgkgAqCaCSACoJoJIA0euZ5g6GBBOKHaAFJEt8Dc0poAYoU3YR1XeA2T8dKwGCScCYWrYUwlI8nS4DVVkEsAxdiJhetq6QD3WumylKmR8anaXDKexTvZYSZGpvC/1Yt4UE2Xobwz/XP1OCjI2tKRo7ZkiQtas5TWfPSAkyt7Snau0aIUH2PIN0vX09JWAIs0jZ3NlDApYkk7Tdvc9IwBRjk7q9u0UCtgyj9P39WxLUVPYMBIqAh1YJGAIwaBI+aiVgST+hinj5rwSKvlGpVCqVSpW9fgGbIppuMBFz1QAAAABJRU5ErkJggg==",q="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAAAXNSR0IArs4c6QAAAAZiS0dEAHgAeQB3paCnMQAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB+EDFAI5JlYaBLYAAAO8SURBVHja7Z1LUt1ADEXtW94LM9aSKSwQpllLZqzmZZQq6oUX4nZ/JN2jGVDgRud0t21aYt/+jtvnD379+rGdjbf3p9Pf8/rysfWKlutnGGPL9Z+ff95/av/8gXonqSr83j+75Xce8bsJ+N4SyBn+68vHcgirr69tUUTaTzNKkFqAiDdTrhII+N4SCPjeEmjWwDM9Q0eXoGcuNWOGZ3yBElWC3ivE/sXnLr8JjPQMfjVhqx9vr8b0N4GV4EdYCUo+BmabhZUlEPC9JRDwvSUQ8L0lEPC9JRDwvSUQ8L0lEPC9JRDwvSUQ8L0lkDP8t/enkgc9UwgQ6QyhswRyh+8ugYDvLYGA7y2BgO8tgYDvLYGA7y2BgO8tgYDvLYGA7y0B/QHMJaA/gLkEAr63BLb9AbJLkFqA7PArSSDge0sg4HtLYNMfoJIE9AcIGvQHSJTgLFvd1fiuP8CxJYkZs6vXNd7en0KeXA71HiDi/uqyVaUSYPYdtpsEcob/qC7ASQI5w//XtVwkkDt8dwkEfG8JBHxvCQR8bwlCvAkcfZikNeGjrzHjZVH4TqFR4Z/9XvoDBIQ/O+gPYAw/qwQCvrcEAr63BAK+twQCvrcEAr63BAK+twQCvrcEAr63BEc2+PfvtlefWm4Zz+vLx+kcjTpoKma+90og4HtLIOB7S5CqP8AXf9sOFy1jpD9AEfgZJRDwvSU4HOGPrg38PPazj6ktj4ghVoARNe0z4Y+agSNWAov+AA8St49egTokdx8pQW9Jj5kzLBr8P0vt/dc6LMP7dne6unU7KPkUEAn+o70/ykowOr6tC9i2ee/b/xP+5bqFR7O701a1Z8qnopg7YuafvdMfdPcdOp+KMOgI8CtJcCafWj3oSPArSHA2n1o56IjwM0vQkk+tGnRk+BklaM2nVgx6FvzAESafmj1o4MfK59Ew6Fvn5csRfph8ajEwZ/gh8qmFgwZ+gHxq0aCBHySfB7O47HYwfAUgCgQCIACBAAQCEAhAIACBAAQCEAhAIACBAAQCZI8rFT4OHUwsVoAWkC7ta2y2gDNAnXoXWd0DzP7XsQiQTALHrmXHZhi0p+MxkKgiwMqmCxm7l91H1kOdy5oufAN/RwADCSqVt2U/1j1dgmq1jRXO9U+ToGJha5XCjuESVK1qrlTZM0yCyiXt1Uq7uktQvZ9Bxdq+bhI4NLOoWtx5WQKXTiaVq3ubJXBqY1O9vPu0BG49jBzq+2/kyFuAKxKUz49Th48bufEW4IwEtL4hCIIgCKJ0/AYcP+o66BZ87AAAAABJRU5ErkJggg==",V="data:image/png;base64,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",W="data:image/png;base64,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",Z="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACAAgMAAAC+UIlYAAAADFBMVEUAAACMi4sM5Jj////jFK10AAAAAXRSTlMAQObYZgAAAcBJREFUeAHt1LGtKjEQhWHf4JZAP7wOCPAGlEA/WwIBJqAE+qEEAnjGiNGc82vjm6wTS+vD+EMaTym1tXZ9vZ5t7H09Wl+3z17LJ3Dp39vY+7q3vj57BFp8T8mWA7eoHHc9JRAIIURAEEH4BjZHQQjhvO+B34MghHDa9cDPJAghzNsCBAiOAMERIDiCBEOAAAQJW0EI4Wf3/v1OEEL4fdeo+zJFYSHMZfNW1Fqm+C7JudQRmP9NUjnu6gcjcKqHsIm2H4zAuR7l38X/7Qcj0GpLXZJ6p9VvR11Sn6Xuu0fLXVOnpv59pEBqtGg+DQQiCBYIRBAsEIgg5EAqK48zAgmmjzMCqW66LQIL82GdD+t8WOfDOh+Oy/PhPJ7eYXk+nMbTm5bnwzyeniCMsC1AgACEERwBAhBOAMIIRBiBCCMQYQQijEAECECAAAQICQECECAAAQIQIAAhBCBAAAIEIEAAQghEgACEEYgwAhFGIMIIRBiBCCMQAQIQQgACBCBAAAIEIIRABAhAGIEIIxBhBCKMQIQRiDACESAAIQQgQAACBCBAAEIIRIAAhBGIMAIRRiDCCEQYgQgjEGEEIkj4+/UfcWPZV43B2RYAAAAASUVORK5CYII=",_="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACAAgMAAAC+UIlYAAAADFBMVEUAAAAAAAAM5Jh4eXeN9UBxAAAAAXRSTlMAQObYZgAAAcBJREFUeAHt1LGtKjEQhWHf4JZAP7wOCPAGlEA/WwIBJqAE+qEEAnjGiNGc82vjm6wTS+vD+EMaTym1tXZ9vZ5t7H09Wl+3z17LJ3Dp39vY+7q3vj57BFp8T8mWA7eoHHc9JRAIIURAEEH4BjZHQQjhvO+B34MghHDa9cDPJAghzNsCBAiOAMERIDiCBEOAAAQJW0EI4Wf3/v1OEEL4fdeo+zJFYSHMZfNW1Fqm+C7JudQRmP9NUjnu6gcjcKqHsIm2H4zAuR7l38X/7Qcj0GpLXZJ6p9VvR11Sn6Xuu0fLXVOnpv59pEBqtGg+DQQiCBYIRBAsEIgg5EAqK48zAgmmjzMCqW66LQIL82GdD+t8WOfDOh+Oy/PhPJ7eYXk+nMbTm5bnwzyeniCMsC1AgACEERwBAhBOAMIIRBiBCCMQYQQijEAECECAAAQICQECECAAAQIQIAAhBCBAAAIEIEAAQghEgACEEYgwAhFGIMIIRBiBCCMQAQIQQgACBCBAAAIEIIRABAhAGIEIIxBhBCKMQIQRiDACESAAIQQgQAACBCBAAEIIRIAAhBGIMAIRRiDCCEQYgQgjEGEEIkj4+/UfcWPZV43B2RYAAAAASUVORK5CYII=",$="data:image/png;base64,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",A0="data:image/png;base64,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",n0="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACAAgMAAAC+UIlYAAAADFBMVEUAAACMi4sM5Jj////jFK10AAAAAXRSTlMAQObYZgAAAgxJREFUeAHt1LGRo0AQheFeQyEoH20GMmgZCkH5EAIGjUEImw8hYGiubni19+YVNO5W3Y4zBv+KD3ZoM4+IuZQ1IuILe/m71rEzsy2YSllwYcHlNohSYutKUOD/gq93bHd61xvVtYTfvoOZCfMWRPT372AiQr1T/a2hQ4AFAhBrxOh3DkAAov6WdxyAwKv3GiABgddYg9FfTGhWDQZ/tgQN+s+HECRwewhBgq4GQqDgev94KKEJLrfLUwlNYHZ9KUECZ8JUQgMi1H3RgAh1XyUQQtFACU0w+g6Bg94bAu10YISAXY4cCLTLoQWBdj32Sgj9cJQQ+ukpYdKPVwkzB7/z4X+dD+VsPpSz+VDS+XAcgHAcgHAQEOFgyjFBX6TMh50X2XtLwHHlAyOEgo2PHBOmQltzaEGYC206H5Sg80EJO/OhvKdCm3z+9cpcsEnwOgmuz5NbXB4nyA9PHhOI7EUBcfCqU8QakSHw7zZB7B2oBiEBDIzghadoEe3ymwlil8CIXQIjdgmMOCAAsQVOy0wQEoDAiKUJQGDEygEIDeINGi1F4OF4KWIgmyL4lGD9In4+wjIEggSBIEO4JQgECUICRSDIEBooAk+RIMIlEESM/nJLEDH40y1BRP/pbgkievPOMkRv17tliP52uVmGGPTvFTFCcIzQZ1BEGhjmY4LAfDxGYD4mCMzHn7T+AIoBqFgX1z4vAAAAAElFTkSuQmCC",g0="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACAAgMAAAC+UIlYAAAADFBMVEUAAAAAAAAM5Jh4eXeN9UBxAAAAAXRSTlMAQObYZgAAAgxJREFUeAHt1LGRo0AQheFeQyEoH20GMmgZCkH5EAIGjUEImw8hYGiubni19+YVNO5W3Y4zBv+KD3ZoM4+IuZQ1IuILe/m71rEzsy2YSllwYcHlNohSYutKUOD/gq93bHd61xvVtYTfvoOZCfMWRPT372AiQr1T/a2hQ4AFAhBrxOh3DkAAov6WdxyAwKv3GiABgddYg9FfTGhWDQZ/tgQN+s+HECRwewhBgq4GQqDgev94KKEJLrfLUwlNYHZ9KUECZ8JUQgMi1H3RgAh1XyUQQtFACU0w+g6Bg94bAu10YISAXY4cCLTLoQWBdj32Sgj9cJQQ+ukpYdKPVwkzB7/z4X+dD+VsPpSz+VDS+XAcgHAcgHAQEOFgyjFBX6TMh50X2XtLwHHlAyOEgo2PHBOmQltzaEGYC206H5Sg80EJO/OhvKdCm3z+9cpcsEnwOgmuz5NbXB4nyA9PHhOI7EUBcfCqU8QakSHw7zZB7B2oBiEBDIzghadoEe3ymwlil8CIXQIjdgmMOCAAsQVOy0wQEoDAiKUJQGDEygEIDeINGi1F4OF4KWIgmyL4lGD9In4+wjIEggSBIEO4JQgECUICRSDIEBooAk+RIMIlEESM/nJLEDH40y1BRP/pbgkievPOMkRv17tliP52uVmGGPTvFTFCcIzQZ1BEGhjmY4LAfDxGYD4mCMzHn7T+AIoBqFgX1z4vAAAAAElFTkSuQmCC",B0="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAAEACAMAAABMJ46VAAABR1BMVEUAAACMi4sM5Jj///8L45oL4poL4psL4ZwL4J0L4J4L354L358L3qAL3aEL3aIL3KML26QL26UK2qUK2qYK2acK2KgK2KkK16kK16oK1qsK1awK1a0K1K4K068K07AK0rAK0rEJ0bIJ0LMJ0LQJz7QJz7UJz7YJzrcJzbgJzbkJzLkJzLoJy7sJyrwJyr0Jyb0Jyb4IyL8Ix8AIx8EIxsIIxcMIxcQIxMQIxMUIw8YIwscIwsgIwcgIwckIwMoIwMsHv8sHv8wHvs0Hvc4Hvc8HvM8HvNAHu9EHutIHutMHudQHuNUHuNYHt9YHt9cGttgGtdkGtdoGtNoGtNsGs9wGst0Gst4Gsd8GsOAGsOEGr+EGr+IGruMFreQFreUFrOUFrOYFq+cFq+gFqugFqukFqeoFqOsFqOwFp+wFp+0Fpu4Fpe8FpfA7URZ1AAAAAXRSTlMAQObYZgAACMdJREFUeAGs2EXzJLcSBPDXm4vPzMtoZi+zmb2MZi/j9z/bFT0dXZqs1D9qpN9pQlkRysNMj1r/Kwz/WWcQWkfKmOnYtrItucB6g6r1s3KdyTAsMJgNBlUbnDJgKooKDGbjCBUbC2XERBAUGMymCSRLvTJk8bIvwPsbvX+6AS1ygWG02UNoc0APaGWBYbSlhMCWkB6RigLD6P+rg+cDiQs80wRebXDaigo82wieHhuMbdZSoKHBsBAUeK4ZvHjENlpsRwWebwcvnLBNF/tRgRc6gBcNTJu2FWhoMMwN6Dn0YhfwgnxuQA/il/qAF+T6HPJyEoxYNyqXB5FXcjCSic7VSeTVFExkpnNq0FCgV4PBvJaBmUx1Tg2G0etMgSNjnasGb5TgrR1lctVgq4fC1hJnuVwdirfNUNq2hMJkvmYDUIG+DeSLyfYRlm0nFKdy/Wq2w4DsYE25/lPYacB2spY8WaB/A11gl0FoF+G4pGNdYLdB1e4Zr5dkqL+Eewyq9jgclFQkf4Z7R6jYW+CoJAL1INo3gWSpx2EpXvYFeH+j9883CBbj+4H9HkL7A3pAC+8HDpQQOBCSI1p0P/Dm6uD5QOICbzWBVxuctqICbzeCp8cGY5tRgXdawVNDw4J9yhdobzDfD3CBd9vBCydq9wPvdQAvGqjdD7zfA7wgr90PfNAFvCCv3A982Ae8INfnkJV2amhABT7KwUgnMlcnkY9TMNGZzMVR5JMUTKBDmYuzyKcZmOlU5urd+DOJwJGxzmWDEjwRdW5w0EPhYImzXK4OxYdmKB1awmEuVw0OT7Dk8DJOU3lZgBuACnRuoF/NjhiQI6wp138KRw3YUdaS6wLHDALHWEOuCxw3CB0nZcx0rAucMKg6MSvXmQz1lzBRINGAIvkzPDlCxclCGTERqAfRqQkkS70yZPGy+E8+PYNwmpQxCxfj+4EzHkJnAnpAC+8HzpYQOBuSI1p0P/D56uD5QOICXzSBVxuctqICXzaCp8cGY5tRga9awVNDw4J9ai+QbzDfD3CBr9vBCydq9wPfdAAvGqjdD3zbA7wgr90PfNcFvCCv3A983we8INfnkJV2amhABX7IwUgmOlcnkR9TMJGZzsVR5KcUYCJDnYuzSK5A3wbD6GeJwJGxzlWDX0rw1o4yuWpwzkPhXImzXK4OxednKJ1fwmEuVw0uTLDkwjJOU3lZgBuACnRuoF/NLhqQi6wp138KlwzYJdaS6wKXDQKXWUOuC1wxCF0hZcx0rAtcNai6OivXmQz1lzBRINGAIvkzvDZCxbVCGTERqAfR9QkkS70yZPGy+E++MYNwg5QxCxfj+4FiRO6faKCF9wM3SwjcDMkRLbof+HV18HwgcYHfmsCrDU5bUYHfG8HTY4OxzajAH63gqaFhwT61F8g3mO8HuMCf7eCFE7X7gb86gBcN1O4H/u4BXpDX7gf+6QJekFfuB271AS/I9TnkdhKMWjcilweROzkY6UTm6iRyNwUTnclcHEXupWACHcpcnEXyBfo1GEb3JQJHxzJXDR6U4K0V5XLV4KGHwsMSZclcHYofzVB6tITCZK4aPJ5gyeNllOZyLlA2ABfo20C/mj0xIE9YU67/FJ4asKesJc8XaG6QL0DyDZoKaPkGHGa+hCT/TeQo8TMkuV+jCJIPIi//PNAPouqjWMg/dfWjOPNnNHkY0AOaL6D/jtmDkBzRXIH8gSR/AmFc4F6ePoVp01ZUQMz3bjAMJipwtxU8NTQsjJ9aXkzybyTGNlpsRwVut4P3b2/nrXRVEMNg/liS6UgtmY5Qk0tiyfs/BcFkvuvVSHvPivAH3RmrOrPHa0s7PzHqD+z/zXQHRv2BxW/nfA59Xt2h+Kt+36LZf5emP4dEHamgU9UeRLKeXNCt604iUf1cAQWkjdmga9ucRdLedNC57t6Nw/Z80L2nAn1hoSiPhwJ9ZaNuaUweCuSl1adtFehru4/WbZ3m7YvLD4CgBW9f3b4npnh9eb2xguD6/h0xwbsDDIV8goG0M8IB+FMcJJ0hFsCfZCFljPEAwTQPCT3I1MKdJxKDTGKUi/CntsQolxxmw1AbID8gptnEOB9G8/zpPTHQZw806glGDQp4k0FPcXKcE2Oddv1cwUEBAuyxXmOaFyO9P6pBwKsMeqKZQ81VDgI2mCsn2B+ggC0VvBz1B1ZP9+M59Hz5hkN9zVc8wi2P/hwSbbQEmy7tQSTb6Qm2fbqTSFQ/V0AB6WJXsPXVnEXS3bZg8617Nw7X+4LtPyrQC4+K8ngo0CufasvT5KFALr2qTVeXt9d+sbcL1uPtxeengKAFb69+PyGmeL38vrGCYP3/MTHBuwYIhdwBgbRjAQEELhAgHRMMIHDCAGXYgACBGwgJaYQi6hsKhBGKsoIBfNcXbQXTm+EQRUnnG40SoO2AgCK0+49GCWD9EIECCngYQLtAAb9KQcCDANoJCzgo/PxmwhYscAMrVPmqBgH3QmhHNJiiVTkI2MKXDmB/IBcQKRj1B1a7A+I5dHu5Q2J9zS0iQ5fI/hwSOWIGTpntQSTzBA3cQruTSFQ/V0ABqTFs4BrbnEVSb9zAObd7Nw7tgQP3YCrQhsmK8ngqkJbRlku05sem3YXAq9vhbdtwVcHlbeP0m4CgBW9bx98gpnjfPP86McMH8QHXiAneDVAozCUo5AkOQKAApBOiAQRJGqCMGBEgSBMhYQep5JkuKkhFRMkAfmpMHyWjw3SIomRyjkYJ0HFCQBE6PUijBISBSkGCEkEBVzKIFCngVykIuJxBJGkBB4X6JhAwr+DgJ3YIuBRDJKoxVK3KQcDFBCJVDhj1B7ZI1gNG/YHV6YJ4Dp1bnrB4JhUwrwBIQjarQpC02R5EskzRIG20O4mEqapB4ioV5AJyBRRwkGbrBsm73btxGC8cpA9TgQ5c1pTDQ4GOnDZTphU/Dv0uJFnfBm/HjtsVBG8Hr58Cgha8HT1/Qkzxfvj+MTHD9wIOv+NoBw6JCf6XgK922LD/rjCl5wAAAABJRU5ErkJggg==",t0="data:image/png;base64,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",w0="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACAAgMAAAC+UIlYAAAADFBMVEUAAACMi4sM5Jj////jFK10AAAAAXRSTlMAQObYZgAAAgdJREFUeAHtlLHRozAQhSGgBPr53QGBl4AS1A8lECACl0A/lEBg3RrLbx743XGhZ36/ZD3jD/RJrLbw1OGWHoke/3XPdfViBYCMTBn0ugAwAmJ6/uM1voDSnPc8Xz5v7/Z6B1C1zm9ZWWIFUHfbc/ndkFheQGUhRmwDEp4M1PbgswIkCLA2UiBBQIgcSHjsCUQOS4wWJACJwToJQKK/tBKARF+YAiDhQC0BSPQ/1VUBkBiaslEAJEZ//gikhSXsDZjSupcAgNXve4l3IL1LWGBASFjLgJBAw2yAkEDLgWMJblosjnpoeyyOerg4UUjw1cPiqMfLuwgJBrA4KoDvfPjV8yGdzYd0Nh+Sng8MyPnAACT+BkBCA3PS84GPUs4HZCKJQ8MkFJLglpupQIKb9kZlUW0/oYj5oCT46gkJcXmXmcoigHWmsv4HMJ4tMVxPJPvmZJv288+DgoI+alLQHwsKhf7cUBAtRQpw2IUV8i72YYV8DvuwgpQgBS1BClqCFLQEKeQY5QFAARIHAAqQMAYmUoAEAzdWoEB3JgUEG5YKZNspBYqFj1b4KiBagQFW0IBWQEwoCAAKGmAFDZCCBqCggQkKGrAIBQmMFiIUFDBYF6GgALu0USggtRVtFApIdXVAKCBlU7ZaAak6qUAWQSsgxgoa0AqIeaQCz0upwPNSKvC8hMIH5Q+bbaeb663kYwAAAABJRU5ErkJggg==",e0="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACAAgMAAAC+UIlYAAAADFBMVEUAAAAAAAAM5Jh4eXeN9UBxAAAAAXRSTlMAQObYZgAAAgdJREFUeAHtlLHRozAQhSGgBPr53QGBl4AS1A8lECACl0A/lEBg3RrLbx743XGhZ36/ZD3jD/RJrLbw1OGWHoke/3XPdfViBYCMTBn0ugAwAmJ6/uM1voDSnPc8Xz5v7/Z6B1C1zm9ZWWIFUHfbc/ndkFheQGUhRmwDEp4M1PbgswIkCLA2UiBBQIgcSHjsCUQOS4wWJACJwToJQKK/tBKARF+YAiDhQC0BSPQ/1VUBkBiaslEAJEZ//gikhSXsDZjSupcAgNXve4l3IL1LWGBASFjLgJBAw2yAkEDLgWMJblosjnpoeyyOerg4UUjw1cPiqMfLuwgJBrA4KoDvfPjV8yGdzYd0Nh+Sng8MyPnAACT+BkBCA3PS84GPUs4HZCKJQ8MkFJLglpupQIKb9kZlUW0/oYj5oCT46gkJcXmXmcoigHWmsv4HMJ4tMVxPJPvmZJv288+DgoI+alLQHwsKhf7cUBAtRQpw2IUV8i72YYV8DvuwgpQgBS1BClqCFLQEKeQY5QFAARIHAAqQMAYmUoAEAzdWoEB3JgUEG5YKZNspBYqFj1b4KiBagQFW0IBWQEwoCAAKGmAFDZCCBqCggQkKGrAIBQmMFiIUFDBYF6GgALu0USggtRVtFApIdXVAKCBlU7ZaAak6qUAWQSsgxgoa0AqIeaQCz0upwPNSKvC8hMIH5Q+bbaeb663kYwAAAABJRU5ErkJggg==",o0="data:image/png;base64,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",a0="data:image/png;base64,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",C0="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACAAgMAAAC+UIlYAAAADFBMVEUAAACMi4sM5Jj////jFK10AAAAAXRSTlMAQObYZgAAApFJREFUeAHtlgGG5EAUhqvRR+j7ZG4Q5AU5Qu6TAyyCVNBHmPv0EQabfVW/2b+e5B8Y1mALEpVP8qUz7zMpWc75/Tg+cj36+l3OnjhaAuDbr4yjr3K2+5HA3uw27OsvgPvhyKf5kQA3CQeAt+XjAkAxCgegeTVKENip0BjzLSy3b0aJbAA2mzMVKJH9QgVWmzIVKJH9QgWWtzHzAsHsFypgCQBujUcBSFaBoQDcBwngUYBHfxt55/ZZS3cfHLh396ndJrr2tz6V9ZjbG/Nh25CwLCqQNVyPClGiAkEhSlwpRImzwv4KEmeF50eUOCm8A6NEq4BjlDgpgAsSFhTCVBCgQhxNAlSgBIGgECQARIUoAeAf94ESog+Q0H3A0n3A+qoPWLoPWLoPWF/1IUjkX+c+oHK6D5+V031A5UQfcO/99TxEH3Dh+eGg6oMvnwtKNH2gQmEO2Yej3J8S7EOjAEj3AXOh+4C50H0AoPtAQPUBgO4DAd0HALoPAHQfAHyjDwRkHwDIPtgnYKIPBEQfCIg+ELjuw0ZgvuzDSmC67MNCYLzsgxXAZxNn5z5sFci5AvNFH9bBgTKbvv2YLvqw9A6U2XTgPl78/2CdA2U2/fRmbR/sbaw4vgq+gM21D1anG31YB3wVfIHHhD7U6UYflh7vA/f7iD70DtzQB+uS8Qe+GfrA4XQFBzCbDlQJjCYmoygk/tSpSrAPUGgBSBgBV4hAkSBQVmoBbsLBT4cAcBNv4ed9ALiJSPl5FwFuckUA6z/wkwH80WqAXVEABkcDGD0NcHgVgPUNYMb1TQCIAlJxtTCPqJUAUCbMqZSggpaAgpbQCpDQCpCggpTQCpDQCpDQClgMk5JgmIQEw6QkoPCz1h+YGLTO62qDAQAAAABJRU5ErkJggg==",i0="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACAAgMAAAC+UIlYAAAADFBMVEUAAAAAAAAM5Jh4eXeN9UBxAAAAAXRSTlMAQObYZgAAApFJREFUeAHtlgGG5EAUhqvRR+j7ZG4Q5AU5Qu6TAyyCVNBHmPv0EQabfVW/2b+e5B8Y1mALEpVP8qUz7zMpWc75/Tg+cj36+l3OnjhaAuDbr4yjr3K2+5HA3uw27OsvgPvhyKf5kQA3CQeAt+XjAkAxCgegeTVKENip0BjzLSy3b0aJbAA2mzMVKJH9QgVWmzIVKJH9QgWWtzHzAsHsFypgCQBujUcBSFaBoQDcBwngUYBHfxt55/ZZS3cfHLh396ndJrr2tz6V9ZjbG/Nh25CwLCqQNVyPClGiAkEhSlwpRImzwv4KEmeF50eUOCm8A6NEq4BjlDgpgAsSFhTCVBCgQhxNAlSgBIGgECQARIUoAeAf94ESog+Q0H3A0n3A+qoPWLoPWLoPWF/1IUjkX+c+oHK6D5+V031A5UQfcO/99TxEH3Dh+eGg6oMvnwtKNH2gQmEO2Yej3J8S7EOjAEj3AXOh+4C50H0AoPtAQPUBgO4DAd0HALoPAHQfAHyjDwRkHwDIPtgnYKIPBEQfCIg+ELjuw0ZgvuzDSmC67MNCYLzsgxXAZxNn5z5sFci5AvNFH9bBgTKbvv2YLvqw9A6U2XTgPl78/2CdA2U2/fRmbR/sbaw4vgq+gM21D1anG31YB3wVfIHHhD7U6UYflh7vA/f7iD70DtzQB+uS8Qe+GfrA4XQFBzCbDlQJjCYmoygk/tSpSrAPUGgBSBgBV4hAkSBQVmoBbsLBT4cAcBNv4ed9ALiJSPl5FwFuckUA6z/wkwH80WqAXVEABkcDGD0NcHgVgPUNYMb1TQCIAlJxtTCPqJUAUCbMqZSggpaAgpbQCpDQCpCggpTQCpDQCpDQClgMk5JgmIQEw6QkoPCz1h+YGLTO62qDAQAAAABJRU5ErkJggg==",s0="/smeditor/assets/parts-9a3f637b.png",Q0="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAABACAYAAAD1Xam+AAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAABXFJREFUeJztnb+LXVUQx+e+3X171/gjJAipgim1EdTOQhAEixQJQbCysAgI6SVpRLDVSrDwLxBsBDs7U/sH5I+IYGCzb9/uvuM9d88kx3k3MDNn4eU53w8M9xTvu685871zZ859u0sgNIs/KNE/wyLHkxLDuv+BOtUfeLJI9Hi45vi7XHPc61X6Q/ouHdIlkvExfQK9gj7dSWn5CqXlAaWTA6J8HeL0+jcq/a7mQ+B/zHGJZQleazkqsRBrJUua0wnt/SdODdsyuj6d7Q0xfH41xHDN67TS62EA0ZlK/mODfir5j/Tyqc2fr9ArKck/mkBlBFpgANHhhK+T31IBcMIvxFoJb/h85bUlAaLr0+p54tdrLTCA6ExVAFYDqOOYTAYg74DWBIiup7Mq8cs6oQIAapYvCC3SAIwVwNTmtzwDR9c/e/ZfVeU/KgCgpr7716HlAnoAdenreYaOrJcNQPQAgA1Z+nsqgAvoAchEgF7Jqkr8FaYAwIpo/vW/Kuf/jEz8H3Xzf0aWv5/Tu9BbEFOA1Tv3THoYQHS8zT/G2fxjvKUv9AU5BTACA4iOnAJYkT0AI+7SF/qRJKYAVmAA0ZHnAKzIHoCRevN7EiC6fm0KYAQGEJ2XoAJoSYDoepJTACMwgOh43wFg+Nmf+wBG3PNv6EeSPAZsBAYQnXr011IBGOf/DG/8liZaZP3aMWAjMIDo1Id/WnoAxvk/s+ln6G3XkzgGbAUGEJ1y9+8fGuf/DCf+b7b5P8Mb/yu6Dr0DngKk979w6WEA0fGW/oyz9Gfcdz7oz3GW/gwMIDre0p9xNv8Yb/ML+oKz+cfAAKKz4QrA3fyCfsT6+q8EBhCd1grA2fxjNl1Cb7seFQBow/sOAIMeAHoAYItBD2Cr9eevAu+49TCA6LQkf6ah/M803f2gbyr/MzCA4PSPnPN/5i/f/J95QK9B38KHt5r0MAAAAgMDACAwMAAAAgMDACAwMAAAAgMDACAwMAAAAgMDCM7iLUr0xrDI8XqJYd3/pDwf8PYi0dXhmuNKuea4rzsf8C0t0iU6JBmf0kfQa/jz99TNn1I3P6Ju74goX4c4vfFApYcBRGe/xLwEr7UclOjFWsmcluJnMU/GH8iCXke3czLE8PnZEMM1r7uZXg8DiM5U8u8b9FPJf6CXT23+fIVeSUn+0QQqI9ACA4gOJ3yd/JYKgBO+F2slvOF3y09jciJAr6ObPU/8eq3/fhCbqQrAagB17JPJAOQd0JoA0fW0UyV+WXeoAICa+QtCizQAYwUwtfktz8DR9c+e/WdV+Y8KAKip7/51aLmAHkBd+nqeoSPrZQMQPQBgQ5b+ngrgAnoAMhGgVzKrEn+GKQCwIpp//X3j7wPIxL9t+30AWf6+R59Bb0FMAZZvfm/SwwCi423+Mc7mH+MtfaEvyCmAERhAdOQUwIrsARhxl77Qj3RiCmAFBhAdeQ7AiuwBGKk3vycBouvXpgDm7wexeQkqgJYEiK4nOQUwAgOIjvcdAIaf/bkPYMQ9/4Z+pJPHgI3AAKJTj/5aKgDj/J/hjd/SRIusXzsGbAQGEJ368E9LD8A4/2c2/Qy97XoSx4Dt3w9iU+7+/ZfO/w/Aif+B7/8D8Ma/QXehd8BTgONXf3bpYQDR8Zb+jLP0Z9x3PujPcZb+DAwgOt7Sn3E2/xhv8wv6grP5x8AAorPhCsDd/IJ+xPr67/r3g9i0VgDO5h+z6RJ62/WoAEAb3ncAGPQA0AMAWwx6AFutP38V+MythwFEpyX5Mw3lf6bp7gd9U/mfgQEEp7/pnP8z13zzf+YyfQ19A4vdX5r0MAAAAgMDACAwMAAAAgMDACAwMAAAAgMDACAwMAAAAvMv7uiZXHUwyMcAAAAASUVORK5CYII=",I0="/smeditor/assets/frame-d599a2fe.png",c0="/smeditor/assets/parts-b37af2cf.png",r0="data:image/png;base64,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",G=`precision mediump float; +import{s as e,u as D,v as H,b as l,w as E,O as f,x as Q,y as I,z as c,H as a,J,Z as d,L as s,Q as h,X as v}from"./ChartManager-beed98d8.js";import{A as F}from"./AnimatedSprite-b9500bfb.js";import{H as P}from"./HoldBody-b84029dd.js";const L="/smeditor/assets/downBodyActive-dd1fd694.png",Y="/smeditor/assets/downBodyInactive-c781a303.png",p="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB98FAw0dOV1YU4MAAAPKSURBVHja7d1dTupQFIbh0pwJkDBA4xjEQVjGcOIATZwBnFslHC1l7b2/v3WHiUL6PimUwHI3Xc1pWS5fbz8/vU5bZn843/07nx/zVDVb7h/5sW29/7/vb99uvxyPu6+356nRbHnAldEqg7HGXzPt/rIIAuX4zQGwI1CP3wUAKwKH+N0AsCFwid8VAAsCp/jdAaAjcIs/BAAqAsf4wwCgIXCNPxQACgLn+MMBICBwjg8BQAEBa3wYAMwImONDAWBEwB4fDgATAoX4kAAYEKjEhwWAjEApPjQARARq8eEBICFQjE8BAAGBanwaACMRKMefpmn60+NUWXVAPj/mu4PsD+fN94/4yeZqXHPr+NWn415nAtSPtVe/vplbP2BGBOjfaag8ll2frBgQqH2hBe5FIDICt/jDrgIQETjGH3oZiITANX4pAMYvf+wPZ8r4lfdfegZQ+kKoQ/wmTwHKCBQ/QDqjHCh0BKqfHs5+AOP4za8Csh8AO36Xy8DsB8CN3+19gOwHyH6A7AcAjN8VAAuC7AcwRpD9AMYIsh/AGEH2AxgjyH6AwZP9AJM3AAUE2Q9gjCD7AYwRZD+AMYLsBzBGkP0AxgiyH8AYQfYDGCPIfgBjBNkPYIwg+wEKDlj2A+AdyyZngOwHyH6ALs/J2Q+Q/QDZD8D6IjD7AXDiD7sKyH4AjPhDLwOzH2B8/FIA2Q/A+T5D9gMYx2/yFJD9ADzxVwG4/v/zrggY469pt7v1w9OyXK5/9vz0Sqe8CpVK/JfjcbcKQBB4xP8RQBDox/8VgDMCh/irADgicIm/GoATAqf4dwFwQOAW/24Ayggc428CoIjANf5mAEoIKoct/kMAgoA//sMAgoA7fgkAdwTM8csAuCJgj18KwA2BQvxyAC4IVOI3AaCOQCl+MwCqCNTiNwWghkAxfnMAKghU43cBwI5AOX43AKwI1ON3BcCGwCF+dwAsCFziDwGAjsAp/jAAqAjc4g8FgIbAMf5wACgIXONDABiNYMuoxIcBwIRAKT4UAAYEavHhACAjUIwPCQARgWp8WABICJTjQwNAQKAeHx7ASAQO8SkAjEDgEp8GQE8ETvGpAPRA4BafDkBLBI7xKQG0QOAanxZAJYItoxKfGsAoBErx6QH0RqAWXwJALwSK8WUAtEagGl8KQCsEyvHlAFQjUI8vCaAKgUN8WQCPInCJLw1gKwKn+PIA7kXgFt8CwFoEjvFtAPyGwDW+FYD/Ibg1LvHtAKxB4BTfEsBPCNzi2wK4hcAxvv2cluWy9nVBJpPJZDKZjNL8A8iasRIljXPgAAAAAElFTkSuQmCC",k="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB98FAw0eB7cUHesAAAO/SURBVHja7dw7VhtBEIXh0WzGGWtxahZop6yFzKuREwKQBcy0uqvuqzM4Bwv6/yxN61GX7f91ff/F6+vPbWT9/vPj9M88//q7zVojt4/8u43e/tPTy+23Lu+/2LdFa+QXnhltZjDW+EfWMgAqCJTjLwfAjkA9fgkAVgQO8csAsCFwiV8KgAWBU/xyAOgI3OK3AEBF4Bi/DQAaAtf423bzrNDbmvJMoOqGsf0tbc8EstwTuEPeETaPHQHzvdiOsomsCNgfwmAAMCJQuH6BAsCEQOXiFQ4AAwKlkwskAGQESvGhASAiUIsPDwAJgWJ8CgAICFTj0wDoRKAcf9sWvBZwb8NYX2xBfGfz2X+/9LWAzzas++1dI7eP+rb22dc3e9X/TCYE6J9pmLmXpdcADAjUPtACdxGIjMAtftspABGBY/zWYyASAtf404+BLhvJdKwtPQYqfSBUIX7LQ4AyAsV3D+8oG4WOQPWt45kPYBx/+Skg8wGw45ccAzMfADd+2fMAmQ+Q+QCZDwAYvxQAC4LMBzBGkPkAxggyH8AYQeYDfFyZDyD0t2Q+gHF86IcAJQSZD2CMIPMBjBFkPoAxgswHMEaQ+QDGCDIfwBhB5gMYI8h8AGMEmQ9gjCDzATIfoC1+5gM03hNkPsDkDct8AMy9zHwAsvj0F4GZD4ATv+0UkPkAGPFbj4GZD9Aff/oxMPMB8I6amQ9gHL/lISDzAXjiHwJw5y7EEgFj/CPtLp98/3r7jZG3h6tcEwjFvxwFEAQG8b8DYI9APf4RALYIHOIfBWCHwCX+GQA2CJzinwUgj8At/ggAWQSO8UcByCFwjf8IABkEMxdb/EcBBAF5/BkAgoA4/iwA1giY488EYImAPf5sAFYIFOKvAGCBQCX+KgDSCJTirwQgiUAt/moAUggU41cAkECgGr8KADUC5fiVACgRqMevBkCFwCF+BwAKBC7xuwBAI3CK3wkAEoFb/G4AUAgc4yMAgEDgGh8FQCuCkaUSHwkADQKl+GgA4BGoxUcEAItAMT4qADgEqvGRAcAgUI6PDqAdgXp8BgBtCBziswAoR+ASnwlAGQKn+GwAliNwi88IYBkCx/isAKYjcI3PDGAagpGlEp8dQAsCpfgKAEoRqMVXAVCCQDG+EoClCFTjqwFYgkA5viKAqQjU46sCmILAIb4ygIcQuMRXBzCEwCm+A4BTCNziuwA4hMAxvhOALxG4xncDcBeB+764ATiCwGpPHAF8hcBuP1wB3EPgvBfWCK7ZhqysrKysrCy39Q9gQ/q5SfcuvQAAAABJRU5ErkJggg==",b="/smeditor/assets/leftBodyActive-75d41033.png",z="/smeditor/assets/leftBodyInactive-bbc074cd.png",x="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAAAXNSR0IArs4c6QAAAAZiS0dEANIA0gBQ7xAn7AAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB+EDFAI2I6Ho7PYAAANMSURBVHja7Z1bTgMxDEU7VjeAxAJR10C7CMoaEAus1B0Av6XiMY/EsX2PJT4GoTHpOZNJMhl32t3F6/n8eXt8eDrt1sTD48eiv79ebNcqluZumX9N7p7/39v7y7fj5+Nxuj3e7zrF9WKzP4xM8HsBHhXW8+RzPtgqVz4CrPiAM8IfIUzPnDaqAZmvfE8JeueyEQ2p0O17SOCRw7U/u16s1D2/JyCvXibtCCjKgC/LOX+LPfBzAZPvAZjqCQsAfGEBgC8sAPCFBQC+sADAFxYA+MICAF9YAOD7xh74f+evLpcB/+/81XYAhRQgKnwFCQz4ta/w0AIAX1gA4AvPApTgR5/WGvDjrTN4CmrAjwXfWwIDfjz4nhIY8GPC95LAgB8XvocEBnztqaYBX3udIczTQOoDFBOA+gA5gvoA1AcY17VTH2B8TuoDBAPinYv6AIEloD5A8Hs+9QEGBvUBiq0DZB7tUx9AGD7TQOAjAPARAPgIAHwEAD4CjIRPFBEA+MICAF9YAOALCwB8YQGALyxAS/hMAZMJAHxhAYAfI/YV4fccU3jkoz6AMHzvQbEBP2Y+6gMIw/fMYcCPCd8rlwE/LnyPnJbZXm8YFVcsDfi68GcJcP/980RxAZ6Px6mFBL0XM7xX/6quNv7YKiTQkeDXFkWUwPsLHaJ8gcSw+gBIMF6CLbnmsJrmnOj1fP68/93h6cSaQOeZQWv4P13Q09wTIoFvPg/4iwRAAr98XvAXC5BJAsVYCn+VAEhQB/5qAZCgBvxNAiBBfvj/rgP8F1lWDIHfSQAkyA2/iQBIkBd+MwGQICf8zYPAiAPDpQJl3++wBX7THoCeIB/8LgKMlkDlTeMW8LsJgAQ54HcZA0QaE6yRp/UgK3q4NAwJxAVAAgRAAgRAAgRAAgRAAgRAAgRAAgRAAgRAAgRAAgRAAgRAAgRAAgRAggERet9Vtk0la+REgGISIAASIAASIEA5CRAACRAACRAACRBAT4LKkqRvWW8JqvcQJVrXUoL7H24BYhIwBkCC1ZFRuJLvu7V6irgVPo+DRSRgQ4iwBGwJE5aATaHCErAtXFgCXgwRloBXwwpK0HrtAQFEJOD1cGEJKBAhLEHlsnEEQRAEQWjEFz4LZYAP3C09AAAAAElFTkSuQmCC",O="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAAAXNSR0IArs4c6QAAAAZiS0dEAAAAAAAA+UO7fwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB+EDFAI3FABOeLgAAAM3SURBVHja7d09csJADIZhW+O7pOMsaeGASZuz0HGapGUIMP7Z1Ur6XnVkMgj8PdjrxV7m6X/93j+4Xj+nPfX1/bHp/y/n29SqtvZu2X9P756v73T6efzTfP9gmTrV5XxbvTEyhd8r4FFlPZ98zYat8skHwI4NnDH8EWB69rRRbyDzJ98TQe9eNuKNVNjteyDw6DH3OgvwqAjH/Gij/q1nATYlrSgDvizP+aoWws8VWNoxAKd6ACB8ABA+AAgfAIQPAMIHAOEDgPABQPhjayH89/2r4zLCf9+/2hVAIQFEDV8BgRF+7U94aACELwyA8IXPApTCj35aa4Qfb57BE6gRfqzwvREY4ccL3xOBEX7M8L0QGOHHDd8DgRG+9qmmEb72PEOYbwNZH6AYANYHyFGsD8D6AON27awPML4n6wMEC8S7F+sDBEbA+gAJjvmsDyAcfqbnDD8PkHm0z/oAwuFzGkj4ACB8ABA+AAgfAIQPgJHhU0UAEL4wAMIXBkD4wgAIXxgA4QsDaBk+p4DJABC+MADCj1FLxfB7jik8+rE+gHD43oNiI/yY/VgfQDh8zx5G+DHD9+plhB83fI+ellmvdxgVZyyN8HXDXwXgyZ0lVHEAcwsEvSczvGf/qs42vtoDgEAEwbtDQDgE3j/oEOUHJEauDwCCwQiO9FqT1bzyuX4f/7DntnHmBIaHP+8FAALnfh7hbwUAgin+18Fbwt8DIA0Cxdoa/l4AICgS/hEAICgQ/lEAIEge/pp5gM2AIs4YEn4/ACBIHH4rACBIGn5LACBIGH6LQWC4geFWQAWudziUoXm8IPYEMcPvBWAoAqE7jZvsvc3zBYIgVvi9xgBhxgR78LQeZMlIAgEAQAAAEAAABAAAAQBAAAAQAAAEAAABAEAAABAAAAQAAAEAQAAAEEQqywY08kUlkX9pPSuAdAgAAAIAgAAA5RAAAAQAAAEAQAAAPQSVkViB99AVQfU9RKVLnJtMGx+tJ/iYCs60J2AMAIKWn34OASqHA74OFkbABSHCCLgkTBgBF4UKI+CycGEE3BgijIBbwwoiUN6GigBaIuD2cGEELBAhjEB9u1EURVEUlbz+AOnsq2p4bKxbAAAAAElFTkSuQmCC",y="/smeditor/assets/rightBodyActive-07f95372.png",R="/smeditor/assets/rightBodyInactive-fdefc2a4.png",X="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAAAXNSR0IArs4c6QAAAAZiS0dEAAAAAAAA+UO7fwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB+EDFAI3NtUuOVwAAAOHSURBVHja7Z3RTSsxEEUdKw0gUSCiBkIRhBoQBSLRQeDr6YWQEK/j8c7MPfcvIO0sPmcd24RhU07yut9/Hb9+fHguPbm7PxSLfH7UIdfpub9RtXvq99Z+e3/58fppt9scv96WYLk2cK0D9flRF0O4uz8Mk2BJ/ZHinaYW4fQM7MiZraW+JXxTAaxvfFRNzxLMGMPqDcgatTxKMGvsqmcwM2t4kmDmg1O9P50zr+1BgtlvndOqWfxgXq5pteWdkanbwDUWhtZbNIstYsoZgC0iAiABAiABAiABAiABAiABAiABAiABAiDButlmB3Vu0Nf4UMfx/Xg6Maxq8Ec/idFngqoGHwlYAyABAiABAiDB/F3A2p/Fn7U6j7Q7qBGfsghPYpSZoGaEjwSOBFh7kYMEKwrgZa+LBCsI4O3cGwmCbgMzQfAoQYhzACQ4aAvwbxBGDURECaxCf4CFtekPkCj0B6A/AP0BvAFZoxb9AYJLQH8A52sA+gO016c/QMBr0h8g4P7X8xYx5QzAFhEBkAABkAABkAABkAABkAABdEJ/AEJ/AOJTAgQQlwABxCVAAHEJEGDCVtCzBAggLgECiEvgvj/AUgiWg3lar+dzA3+NDf0BBlzTchCt69EfAAnoD4AE9AdAgkJ/ACQo9AcIIZ51PfoDIAH9AUhf3t5fNAWYfaBiXa/n+ufgP+12m/QCAL8dvqkAXvoDzDwaHl3PGn6TAC3vIx4kAP5y+KWUcvabr/v91+nXHh+e3a6Sgd8H/6IAkSQAfj/8PwWIIAHwb4N/VQALCTIlOvwmAZAgL/xmAZAgJ/xFAiBBPvhN5wDXCt1yTqAcD/AXC4AEueB3CYAEeeB3C4AEOeAvXgS2LgwjZekitncR6BH+TTOA1Q3x5M+DP0QAJQlm/efTWfCHCaAgQUb4Q9YAnjPq4Cor/NQCAF9YAOALCwB8YQGALywA8IUFAL6wAMAXFgD4wgIAX1gA4AsLAHxhAYAvLADwhQUAvrAAwLdNuA4hwBcXAPgIAHwEAD4CDI4ifAQQh48A4vDlBVCHn1qAa3CBLzADXIIM/P/ZluQZ0a00K3wWgeLwQwowswlFdviliP06GPhBBZgtgQr8UALMkkAJfjgBrCVQgx9SACsJFOGHFWC0BKrwQwswSgJl+OEFuCTBLVFre5f2z8OBLyTACAlUG16mbxEDfEIIIYSQ3/kGeiN5xirmRdUAAAAASUVORK5CYII=",S="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAAAXNSR0IArs4c6QAAAAZiS0dEAAAAAAAA+UO7fwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB+EDFAI3NUwnaOYAAANgSURBVHja7Z1BUuNADEUdF3dhx1lmyxxw2HIWdnMas6JqKpCx3ZbUkv7TLiFJR/1eOurGiNvyPbZ/b3x8/FpG4s/b8+IRv1//mrzOyPuzGntk/NGxX17e7++6PbxRQQDLiaoiwZUx9wRYF+EYmVhLsY+MbyncT7FmmtwZY2aWIGIO12xAZoyVUYKouVszg4kcI5MEkR8ctyKw2q4gS2FoHWmKQI9JyvKas3Y8pVaAatFlJWAbyEowtwhEAgRAAgRAAgRAAgRAAgRAAgRAAgRAgjTR/iTwp0mfeWWP9fh7IX0S+AhO9EUdmVeCVQ0+ElADIAECIAECIEH8LiCyYq523b/X7iDNLiDa8gqXfGdYCdaO8JEgkQCzixwkmChAlr0uEkwQINu5NxIU3QZ2gpBRghLnAEjwrC3A1yRYTURFCbyC/gAT4dEfgMJw+mpBfwD6A+QCMmMs+gMUl4D+AAmLwKiikP4ARYpA+gPkDPoDNF8J2AayEswtApEAAZAAAZAAAZAAAZAAAdhSIgASIAASIAASIAASIAASIIDAVjCzBAggLgECiEuQvj/AWQiek+k9Hv0BDF7T86KMjC3nSnwFeCaGBMkFiEgICZIKEJkIEiQTYMb3GRKwDQwXz3s8+gMgAf0BCLMzAA0Bov9Aw3u8kdd/AP/WXgDgH4fvKkCW/gBqR8Nn4B8S4Mj3SAYJgH8e/v9+uN3fceWXQt5VMvDH4O89oIQEwB+Hf+RBqSUA/jX4Rx9oKkGnqA7/zIORoCH8s09AgmbwR54kL0En+IfOAfYGunJOoBwZ4I8IgASN4I8KgARN4F8RAAkawF+WZXm6+PzbfWFYTYKoIjYj/KsrgMsb4pMfB99KABkJorqHRsG3FKC9BB3hK3xyTQ6uusLvLgDwhQUAvrAAwBcWAPjCAgBfWADgCwsAfGEBgC8sAPCFBQC+sADAFxYA+MICAF9YAOALCwB8xyjXIQT44gIAHwGAjwDARwDjUISPAOLwEUAcvrwA6vBbC7AHF/gCK8AjyMCvlYDbfzFTh08RKA6/pACR/Qe6w6+UTHh3MgX41RIKk0AFfsWk3CVQgl81MTcJ1OBXTs5cAkX41RM0k0AVfockL0ugDL9LohtzQrIb80HCG3NB0hvzQBAEQRAEsR+fBPrG1xa4jMQAAAAASUVORK5CYII=",T="data:image/png;base64,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",j="/smeditor/assets/upBodyInactive-87a7969e.png",N="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAAAXNSR0IArs4c6QAAAAZiS0dEAHgAeQB3paCnMQAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB+EDFAI5IlF3wK8AAAPCSURBVHja7Z1bbsIwFETNKBtAYoFV11C6iNI1VF0gEjug/YUoRbWxfR8zV+oHH9TG58QhUe6wK6v6PJ1+bl+/vryX2tofrtXvuZxRelXL+BHm2DL+1/fH3eu343F3+xq9Fykr/N7/u+Uzj/hsEHxuCcAM/3KGOQTr8VGMytP5NKIEoQXw+GWKVQIIPrcEEHxuCTBr4pGuob1L0HMtMeMIj3gDxasEvXeIxfM2b32peTmjesz94dptDWacDuyuP4LcZ/Byx45aAOubTJklgOBzSwDB55YAgs8tAQSfWwIIPrcEEHxuCSD43BJA8LklgOBzSwBm+PvDNeWDniEE8PQMIbMEYIfPLgEEn1sCCD63BBB8bgkg+NwSQPC5JYDgc0sAweeWAILPLYHyAcglUD4AuQQQfG4JaPMBoksQWoDo8DNJAMHnlgCCzy0BTT5AJgmUD+C0lA9Q/OUDWEgQKR9gKUFqxtHVa4yeEqS8DPR6fmU5VYUSYPY3bDYJwAz/r74AJgnADP/RWCwSgB0+uwQQfG4JIPjcEkDwuSVYosKvAdLaF7Ae49GYlomioXcAj/Bb3qt8AIfwZ5fyAYjhR5UAgs8tAQSfWwIIPrcEEHxuCSD43BJA8LklgOBzSwDB55ZgiQb/6/vj7vXry7sp0Jb5WP8a2dAdQEd+rJ0Ags8tAQSfW4JQ+QDr863Hapmj8gGSwI8oAQSfWwIwwr+csfnHKIHrfIBR8Gcu/ggJKPIBthbu7Xjcjd6Bnl3crTn2lKC3pBhxhD27tc6CP6o3sKcEo09T7i7EZ8J/dF3tRQLz7wAzJ20BP7ME/xkLXiY9Av5WzfrNoCjrCQ+T9gA/kwQ16wnrSXuCn0GC2vWE5aQ9wo8sQct6wmrSnuFHlKB1PWEx6VnwvZan9cTsSbPD97aeS+2kP0+nn57bFyN8T+sJS2DM8L2sJ6wmLfg+1hMWkxZ8P+u56CjOeToYvgOocpQEkAAqCaCSACoJoJIAKgmgkgAqCaCSACoJoJIA0euZ5g6GBBOKHaAFJEt8Dc0poAYoU3YR1XeA2T8dKwGCScCYWrYUwlI8nS4DVVkEsAxdiJhetq6QD3WumylKmR8anaXDKexTvZYSZGpvC/1Yt4UE2Xobwz/XP1OCjI2tKRo7ZkiQtas5TWfPSAkyt7Snau0aIUH2PIN0vX09JWAIs0jZ3NlDApYkk7Tdvc9IwBRjk7q9u0UCtgyj9P39WxLUVPYMBIqAh1YJGAIwaBI+aiVgST+hinj5rwSKvlGpVCqVSpW9fgGbIppuMBFz1QAAAABJRU5ErkJggg==",q="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAAAXNSR0IArs4c6QAAAAZiS0dEAHgAeQB3paCnMQAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB+EDFAI5JlYaBLYAAAO8SURBVHja7Z1LUt1ADEXtW94LM9aSKSwQpllLZqzmZZQq6oUX4nZ/JN2jGVDgRud0t21aYt/+jtvnD379+rGdjbf3p9Pf8/rysfWKlutnGGPL9Z+ff95/av/8gXonqSr83j+75Xce8bsJ+N4SyBn+68vHcgirr69tUUTaTzNKkFqAiDdTrhII+N4SCPjeEmjWwDM9Q0eXoGcuNWOGZ3yBElWC3ivE/sXnLr8JjPQMfjVhqx9vr8b0N4GV4EdYCUo+BmabhZUlEPC9JRDwvSUQ8L0lEPC9JRDwvSUQ8L0lEPC9JRDwvSUQ8L0lkDP8t/enkgc9UwgQ6QyhswRyh+8ugYDvLYGA7y2BgO8tgYDvLYGA7y2BgO8tgYDvLYGA7y0B/QHMJaA/gLkEAr63BLb9AbJLkFqA7PArSSDge0sg4HtLYNMfoJIE9AcIGvQHSJTgLFvd1fiuP8CxJYkZs6vXNd7en0KeXA71HiDi/uqyVaUSYPYdtpsEcob/qC7ASQI5w//XtVwkkDt8dwkEfG8JBHxvCQR8bwlCvAkcfZikNeGjrzHjZVH4TqFR4Z/9XvoDBIQ/O+gPYAw/qwQCvrcEAr63BAK+twQCvrcEAr63BAK+twQCvrcEAr63BEc2+PfvtlefWm4Zz+vLx+kcjTpoKma+90og4HtLIOB7S5CqP8AXf9sOFy1jpD9AEfgZJRDwvSU4HOGPrg38PPazj6ktj4ghVoARNe0z4Y+agSNWAov+AA8St49egTokdx8pQW9Jj5kzLBr8P0vt/dc6LMP7dne6unU7KPkUEAn+o70/ykowOr6tC9i2ee/b/xP+5bqFR7O701a1Z8qnopg7YuafvdMfdPcdOp+KMOgI8CtJcCafWj3oSPArSHA2n1o56IjwM0vQkk+tGnRk+BklaM2nVgx6FvzAESafmj1o4MfK59Ew6Fvn5csRfph8ajEwZ/gh8qmFgwZ+gHxq0aCBHySfB7O47HYwfAUgCgQCIACBAAQCEAhAIACBAAQCEAhAIACBAAQCZI8rFT4OHUwsVoAWkC7ta2y2gDNAnXoXWd0DzP7XsQiQTALHrmXHZhi0p+MxkKgiwMqmCxm7l91H1kOdy5oufAN/RwADCSqVt2U/1j1dgmq1jRXO9U+ToGJha5XCjuESVK1qrlTZM0yCyiXt1Uq7uktQvZ9Bxdq+bhI4NLOoWtx5WQKXTiaVq3ubJXBqY1O9vPu0BG49jBzq+2/kyFuAKxKUz49Th48bufEW4IwEtL4hCIIgCKJ0/AYcP+o66BZ87AAAAABJRU5ErkJggg==",V="data:image/png;base64,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",W="data:image/png;base64,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",Z="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACAAgMAAAC+UIlYAAAADFBMVEUAAACMi4sM5Jj////jFK10AAAAAXRSTlMAQObYZgAAAcBJREFUeAHt1LGtKjEQhWHf4JZAP7wOCPAGlEA/WwIBJqAE+qEEAnjGiNGc82vjm6wTS+vD+EMaTym1tXZ9vZ5t7H09Wl+3z17LJ3Dp39vY+7q3vj57BFp8T8mWA7eoHHc9JRAIIURAEEH4BjZHQQjhvO+B34MghHDa9cDPJAghzNsCBAiOAMERIDiCBEOAAAQJW0EI4Wf3/v1OEEL4fdeo+zJFYSHMZfNW1Fqm+C7JudQRmP9NUjnu6gcjcKqHsIm2H4zAuR7l38X/7Qcj0GpLXZJ6p9VvR11Sn6Xuu0fLXVOnpv59pEBqtGg+DQQiCBYIRBAsEIgg5EAqK48zAgmmjzMCqW66LQIL82GdD+t8WOfDOh+Oy/PhPJ7eYXk+nMbTm5bnwzyeniCMsC1AgACEERwBAhBOAMIIRBiBCCMQYQQijEAECECAAAQICQECECAAAQIQIAAhBCBAAAIEIEAAQghEgACEEYgwAhFGIMIIRBiBCCMQAQIQQgACBCBAAAIEIIRABAhAGIEIIxBhBCKMQIQRiDACESAAIQQgQAACBCBAAEIIRIAAhBGIMAIRRiDCCEQYgQgjEGEEIkj4+/UfcWPZV43B2RYAAAAASUVORK5CYII=",_="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACAAgMAAAC+UIlYAAAADFBMVEUAAAAAAAAM5Jh4eXeN9UBxAAAAAXRSTlMAQObYZgAAAcBJREFUeAHt1LGtKjEQhWHf4JZAP7wOCPAGlEA/WwIBJqAE+qEEAnjGiNGc82vjm6wTS+vD+EMaTym1tXZ9vZ5t7H09Wl+3z17LJ3Dp39vY+7q3vj57BFp8T8mWA7eoHHc9JRAIIURAEEH4BjZHQQjhvO+B34MghHDa9cDPJAghzNsCBAiOAMERIDiCBEOAAAQJW0EI4Wf3/v1OEEL4fdeo+zJFYSHMZfNW1Fqm+C7JudQRmP9NUjnu6gcjcKqHsIm2H4zAuR7l38X/7Qcj0GpLXZJ6p9VvR11Sn6Xuu0fLXVOnpv59pEBqtGg+DQQiCBYIRBAsEIgg5EAqK48zAgmmjzMCqW66LQIL82GdD+t8WOfDOh+Oy/PhPJ7eYXk+nMbTm5bnwzyeniCMsC1AgACEERwBAhBOAMIIRBiBCCMQYQQijEAECECAAAQICQECECAAAQIQIAAhBCBAAAIEIEAAQghEgACEEYgwAhFGIMIIRBiBCCMQAQIQQgACBCBAAAIEIIRABAhAGIEIIxBhBCKMQIQRiDACESAAIQQgQAACBCBAAEIIRIAAhBGIMAIRRiDCCEQYgQgjEGEEIkj4+/UfcWPZV43B2RYAAAAASUVORK5CYII=",$="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAAEACAMAAABMJ46VAAABR1BMVEUAAACMi4sM5Jj///8L45oL4poL4psL4ZwL4J0L4J4L354L358L3qAL3aEL3aIL3KML26QL26UK2qUK2qYK2acK2KgK2KkK16kK16oK1qsK1awK1a0K1K4K068K07AK0rAK0rEJ0bIJ0LMJ0LQJz7QJz7UJz7YJzrcJzbgJzbkJzLkJzLoJy7sJyrwJyr0Jyb0Jyb4IyL8Ix8AIx8EIxsIIxcMIxcQIxMQIxMUIw8YIwscIwsgIwcgIwckIwMoIwMsHv8sHv8wHvs0Hvc4Hvc8HvM8HvNAHu9EHutIHutMHudQHuNUHuNYHt9YHt9cGttgGtdkGtdoGtNoGtNsGs9wGst0Gst4Gsd8GsOAGsOEGr+EGr+IGruMFreQFreUFrOUFrOYFq+cFq+gFqugFqukFqeoFqOsFqOwFp+wFp+0Fpu4Fpe8FpfA7URZ1AAAAAXRSTlMAQObYZgAACMxJREFUeAG8zgUSw0AMQ9G6KvP9T1tvUcl3GV441ow1aCINO2SGJHdnzFykAUQadeliRHL+HxC8XWDco5MxyWHgmIymLDDp08GE5DDqYrJsEGkKSlOSwxCQjKYqQE/sBwGS0bDA7DlyZQCQjKNegflT5J6I1Ek0iLQgklu8r98g0jKdnjfJLT/CAqvVKg5WN8mtPlQUiJO/7GeBdaTTa0lu/TEUaE7vm4rc5nNVgfP7tiC3/QIrkGx/+vF+Fki+f0dyuz0rdrUjZw5FUVit/QTJ8EyYaRjCTMMQZubk/a+nlGp17/qXt1VH8XczsI5kX1SXXR4in8sbSG7DGPFY3khyqW8sSqfyRySXO0NXOJQ/Jrnc2fpsA4PWV30DWP8Tkgs91wy3kpWZT0kud+a+9pXkM5KrdSTTXv9zkit25dhe/wuSq3Yp5XApHbQ+KgbStfzLKTnU0JExEn+YfDUh56HUMZR/mm1aJOeh1jGVD8Hx6xc3sHmBzGaS62TO5Q1sWaQ1k2ARXYDBvIGtE1q1leQQHCfzh3DblN7bRnIxOZ+Mf4bbQTPbSQ4RMJm+iLZTbX3kNBm+incsR647kCfbh9HOpcj1RzqTzfeBXURyHopa7wO7Z+b/zORQS7iBPXv2zLe1J5JDLcIG9u5dWbU3kEOt4gbW3wfGrh/03gf2tcgxl/XeB/Y3yDHX9d4HDpBco9d13gcOktzBIfK5fIjkDo2BDRTXR/+gDdj6X5Nc7Cx94VD+huRyZ+trn8nfklyvI/Y13we+I7ncQ82a7wPfk1y/M2crc2PX13Ipr/8DyRW7cmyv/yPJVbuUcriU/gRyqKGjYiBdy4esj8yR+MPk5wk5D5XOofzT7JdFch5KnVP5EDy8QM5DrXMsb+DIApkjJNfJnMsbOLpIaybBIroAg/0NuMr6hQ3kD+GxKb13jORycjYZ/wyPg2aOkxwiYDJ9EZ0g6QTJdXOaDF/FJ5cj1x3Ik+3D6NRS5Lojvcnm+8BpIjkPRa33gTMz839mcswV3MDZs2fn2zobyTHXYAPnzq2sOhfIMRdxA+vvA2PXD3rvA+db5JjLeu8DFxrkmOt67wMXSa7R6zrvA5dI7tIQ+Vy+THKXx+AGauujf8gGfP1fSS52lr5wKP9Gcrmz9bXP5N9JrtcR+2wDg9ZXdX2+D/xBcrkz97WvJH+SXK0jmfb6f5FcsSvH9vp/k1y1SymHS+k/IIcaOioG0rV8yPrIHIk/TP6dkPNQ6RzKP83+WyTnodQ5lQ/BKwvkPNQ6x/IGri6QuUpyncy5vIFri7RmEiyiCzDY34CrrF/YQP4QXp/Se9dJLifjk/HP8AZo5gbJIQIm0xfRTZJuklw/h0nsIG2AuD4JMNk+jG4tRa4/0plsvg/cJpLzUNR6H7gzM/9nJsdcwQ3cvXt3vq27kRxzDTZw797KqnuBHHMRN7D+PjB2/aD3PnC/RY65rPc+8KBBjrmu9z7wkOQava7zPvCI5B4Nkc/lxyT3eIx4LD8hudSfFKVT+SnJxc7SFw7lZySXO1tf+0x+TnK9jthnGxi0vqrr833gBcnlztzXvpK8JLlaRzLt9V+RXLErx/b6r0mu2qWUw6X0Dcihho6KgXQtH7I+MkfiD5O3E3IeKp1D+afZu0VyHkqdU/kQHL/+sA3U15erbMDU1+fCtQ3wQ1T//AkKH8I3U9W/P6TinyEXKq7PWPsiek3F71/m0lfxq+XI9QeKh9HLpcj1RyrHMW8jgRxq+UKC69j8n5kcc0VzA/NtjV4/wAbmF2VczY0ccxE28HT9feB/3s0YN2IYiIHPuyp16iT//0OKKz3ygAOc2dLGqhPEHf6h+H2SdZcP/JL4fdZ1lw/8PPE+5Xzgwfc55wM1nwg638slnwk6Xsshn0q51elWDvkcOyY4QJ9fTsB3cshn2XRhPhDyaXZdmA+EfB5tl6wsZD9hvv/K8239Yj55bD4y/3teWtl+bvXntZ3tJ1d/Xlzafrb5w+r2w/N9eW37+eZfPgsAg/IJZDvA4AhH4DdgqiEcDrE4v8KGQSyO8Qz8DlkzxsODfP7JdJDJUS7nt8SeUK4vkPFr8oHAbA7zGb8nnyjOZzRj4BtHoPGCcwLWKXxnFh7gfawwv+hygDdoC2iv8L1VlwO8SWOAm4VvrrrLB16vB/jyu3zgifkvzgce4vsB76/9hq7zvRz6HUXHazn0W1Lv5XQrh34POyY4QJ6fTsB3cuh3senCfCD029h1YT4Q+n1sq6TyaP1G9+VXnm/1zdGfK5/Wb139ufRq/d7Vn2u/1m9e/bn4bP3u4G/V7w/P9/K79fs3P9T//3s7A40MojAK0hsU1L5DUL3/uxUXbGN3zFf3PwDn5nyQn8UMAQadf8DaAQiOgAj8B2wKAkIgGIl/gcIgGI4BafwPVBkDwqG6j7KBUL4Y579InVAwnxbn3/BBgeF8MMr/8SeOAyoHyH4HIgEHBSxU5EOF8IDFqQIYq/CxUnDAAnUBDRb4YC04YJHKAEcTPto8d98H3pENfLq77wMb9hn+H27mAwoecDsfEbn+Xd7Dh0Quf5Y7H3P1Q0gm9gd8UDYZEzraR98P4H7hw6LvqFjsD/i4bBMsV4jBzgeW+iqGTHY+svcKTMa+86FTn5HRzsdufYZm133rMzbc+eitz+B058P3PqHjnY/f+wTPD36A0ONZFyi4H0HqbHBY6fsc9gNMohH8GSxcouEakeIPYRU1Igfyd39LEqkcjO9LnVQybxb35/BBkem8SkQSxCeuE1KbUvcrRaESdFLQSgW/VAwPWJ4riLWCX6uFB6z9n+zalwOW6YxyNferzXL3feAFUb9cz933gedH+PX4f7jTL+h6wS1+RRcsItv3eQD2u19z9UPJJvYHflE0QTOK/eBXRd9Fq/+7PzgA+8Wvy77Ldn/vD/zCUl/FlMvuV/ZehcvYN3107LNy2vzatc/S7bpvfdaOm1+99lm87n753if1vPv1e5/k+0+nnP7y1KSez3DAN7aMsP+9sCEFAAAAAElFTkSuQmCC",A0="data:image/png;base64,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",n0="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACAAgMAAAC+UIlYAAAADFBMVEUAAACMi4sM5Jj////jFK10AAAAAXRSTlMAQObYZgAAAgxJREFUeAHt1LGRo0AQheFeQyEoH20GMmgZCkH5EAIGjUEImw8hYGiubni19+YVNO5W3Y4zBv+KD3ZoM4+IuZQ1IuILe/m71rEzsy2YSllwYcHlNohSYutKUOD/gq93bHd61xvVtYTfvoOZCfMWRPT372AiQr1T/a2hQ4AFAhBrxOh3DkAAov6WdxyAwKv3GiABgddYg9FfTGhWDQZ/tgQN+s+HECRwewhBgq4GQqDgev94KKEJLrfLUwlNYHZ9KUECZ8JUQgMi1H3RgAh1XyUQQtFACU0w+g6Bg94bAu10YISAXY4cCLTLoQWBdj32Sgj9cJQQ+ukpYdKPVwkzB7/z4X+dD+VsPpSz+VDS+XAcgHAcgHAQEOFgyjFBX6TMh50X2XtLwHHlAyOEgo2PHBOmQltzaEGYC206H5Sg80EJO/OhvKdCm3z+9cpcsEnwOgmuz5NbXB4nyA9PHhOI7EUBcfCqU8QakSHw7zZB7B2oBiEBDIzghadoEe3ymwlil8CIXQIjdgmMOCAAsQVOy0wQEoDAiKUJQGDEygEIDeINGi1F4OF4KWIgmyL4lGD9In4+wjIEggSBIEO4JQgECUICRSDIEBooAk+RIMIlEESM/nJLEDH40y1BRP/pbgkievPOMkRv17tliP52uVmGGPTvFTFCcIzQZ1BEGhjmY4LAfDxGYD4mCMzHn7T+AIoBqFgX1z4vAAAAAElFTkSuQmCC",g0="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACAAgMAAAC+UIlYAAAADFBMVEUAAAAAAAAM5Jh4eXeN9UBxAAAAAXRSTlMAQObYZgAAAgxJREFUeAHt1LGRo0AQheFeQyEoH20GMmgZCkH5EAIGjUEImw8hYGiubni19+YVNO5W3Y4zBv+KD3ZoM4+IuZQ1IuILe/m71rEzsy2YSllwYcHlNohSYutKUOD/gq93bHd61xvVtYTfvoOZCfMWRPT372AiQr1T/a2hQ4AFAhBrxOh3DkAAov6WdxyAwKv3GiABgddYg9FfTGhWDQZ/tgQN+s+HECRwewhBgq4GQqDgev94KKEJLrfLUwlNYHZ9KUECZ8JUQgMi1H3RgAh1XyUQQtFACU0w+g6Bg94bAu10YISAXY4cCLTLoQWBdj32Sgj9cJQQ+ukpYdKPVwkzB7/z4X+dD+VsPpSz+VDS+XAcgHAcgHAQEOFgyjFBX6TMh50X2XtLwHHlAyOEgo2PHBOmQltzaEGYC206H5Sg80EJO/OhvKdCm3z+9cpcsEnwOgmuz5NbXB4nyA9PHhOI7EUBcfCqU8QakSHw7zZB7B2oBiEBDIzghadoEe3ymwlil8CIXQIjdgmMOCAAsQVOy0wQEoDAiKUJQGDEygEIDeINGi1F4OF4KWIgmyL4lGD9In4+wjIEggSBIEO4JQgECUICRSDIEBooAk+RIMIlEESM/nJLEDH40y1BRP/pbgkievPOMkRv17tliP52uVmGGPTvFTFCcIzQZ1BEGhjmY4LAfDxGYD4mCMzHn7T+AIoBqFgX1z4vAAAAAElFTkSuQmCC",B0="data:image/png;base64,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",t0="data:image/png;base64,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",w0="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACAAgMAAAC+UIlYAAAADFBMVEUAAACMi4sM5Jj////jFK10AAAAAXRSTlMAQObYZgAAAgdJREFUeAHtlLHRozAQhSGgBPr53QGBl4AS1A8lECACl0A/lEBg3RrLbx743XGhZ36/ZD3jD/RJrLbw1OGWHoke/3XPdfViBYCMTBn0ugAwAmJ6/uM1voDSnPc8Xz5v7/Z6B1C1zm9ZWWIFUHfbc/ndkFheQGUhRmwDEp4M1PbgswIkCLA2UiBBQIgcSHjsCUQOS4wWJACJwToJQKK/tBKARF+YAiDhQC0BSPQ/1VUBkBiaslEAJEZ//gikhSXsDZjSupcAgNXve4l3IL1LWGBASFjLgJBAw2yAkEDLgWMJblosjnpoeyyOerg4UUjw1cPiqMfLuwgJBrA4KoDvfPjV8yGdzYd0Nh+Sng8MyPnAACT+BkBCA3PS84GPUs4HZCKJQ8MkFJLglpupQIKb9kZlUW0/oYj5oCT46gkJcXmXmcoigHWmsv4HMJ4tMVxPJPvmZJv288+DgoI+alLQHwsKhf7cUBAtRQpw2IUV8i72YYV8DvuwgpQgBS1BClqCFLQEKeQY5QFAARIHAAqQMAYmUoAEAzdWoEB3JgUEG5YKZNspBYqFj1b4KiBagQFW0IBWQEwoCAAKGmAFDZCCBqCggQkKGrAIBQmMFiIUFDBYF6GgALu0USggtRVtFApIdXVAKCBlU7ZaAak6qUAWQSsgxgoa0AqIeaQCz0upwPNSKvC8hMIH5Q+bbaeb663kYwAAAABJRU5ErkJggg==",e0="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACAAgMAAAC+UIlYAAAADFBMVEUAAAAAAAAM5Jh4eXeN9UBxAAAAAXRSTlMAQObYZgAAAgdJREFUeAHtlLHRozAQhSGgBPr53QGBl4AS1A8lECACl0A/lEBg3RrLbx743XGhZ36/ZD3jD/RJrLbw1OGWHoke/3XPdfViBYCMTBn0ugAwAmJ6/uM1voDSnPc8Xz5v7/Z6B1C1zm9ZWWIFUHfbc/ndkFheQGUhRmwDEp4M1PbgswIkCLA2UiBBQIgcSHjsCUQOS4wWJACJwToJQKK/tBKARF+YAiDhQC0BSPQ/1VUBkBiaslEAJEZ//gikhSXsDZjSupcAgNXve4l3IL1LWGBASFjLgJBAw2yAkEDLgWMJblosjnpoeyyOerg4UUjw1cPiqMfLuwgJBrA4KoDvfPjV8yGdzYd0Nh+Sng8MyPnAACT+BkBCA3PS84GPUs4HZCKJQ8MkFJLglpupQIKb9kZlUW0/oYj5oCT46gkJcXmXmcoigHWmsv4HMJ4tMVxPJPvmZJv288+DgoI+alLQHwsKhf7cUBAtRQpw2IUV8i72YYV8DvuwgpQgBS1BClqCFLQEKeQY5QFAARIHAAqQMAYmUoAEAzdWoEB3JgUEG5YKZNspBYqFj1b4KiBagQFW0IBWQEwoCAAKGmAFDZCCBqCggQkKGrAIBQmMFiIUFDBYF6GgALu0USggtRVtFApIdXVAKCBlU7ZaAak6qUAWQSsgxgoa0AqIeaQCz0upwPNSKvC8hMIH5Q+bbaeb663kYwAAAABJRU5ErkJggg==",o0="data:image/png;base64,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",a0="data:image/png;base64,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",C0="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACAAgMAAAC+UIlYAAAADFBMVEUAAACMi4sM5Jj////jFK10AAAAAXRSTlMAQObYZgAAApFJREFUeAHtlgGG5EAUhqvRR+j7ZG4Q5AU5Qu6TAyyCVNBHmPv0EQabfVW/2b+e5B8Y1mALEpVP8qUz7zMpWc75/Tg+cj36+l3OnjhaAuDbr4yjr3K2+5HA3uw27OsvgPvhyKf5kQA3CQeAt+XjAkAxCgegeTVKENip0BjzLSy3b0aJbAA2mzMVKJH9QgVWmzIVKJH9QgWWtzHzAsHsFypgCQBujUcBSFaBoQDcBwngUYBHfxt55/ZZS3cfHLh396ndJrr2tz6V9ZjbG/Nh25CwLCqQNVyPClGiAkEhSlwpRImzwv4KEmeF50eUOCm8A6NEq4BjlDgpgAsSFhTCVBCgQhxNAlSgBIGgECQARIUoAeAf94ESog+Q0H3A0n3A+qoPWLoPWLoPWF/1IUjkX+c+oHK6D5+V031A5UQfcO/99TxEH3Dh+eGg6oMvnwtKNH2gQmEO2Yej3J8S7EOjAEj3AXOh+4C50H0AoPtAQPUBgO4DAd0HALoPAHQfAHyjDwRkHwDIPtgnYKIPBEQfCIg+ELjuw0ZgvuzDSmC67MNCYLzsgxXAZxNn5z5sFci5AvNFH9bBgTKbvv2YLvqw9A6U2XTgPl78/2CdA2U2/fRmbR/sbaw4vgq+gM21D1anG31YB3wVfIHHhD7U6UYflh7vA/f7iD70DtzQB+uS8Qe+GfrA4XQFBzCbDlQJjCYmoygk/tSpSrAPUGgBSBgBV4hAkSBQVmoBbsLBT4cAcBNv4ed9ALiJSPl5FwFuckUA6z/wkwH80WqAXVEABkcDGD0NcHgVgPUNYMb1TQCIAlJxtTCPqJUAUCbMqZSggpaAgpbQCpDQCpCggpTQCpDQCpDQClgMk5JgmIQEw6QkoPCz1h+YGLTO62qDAQAAAABJRU5ErkJggg==",i0="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACAAgMAAAC+UIlYAAAADFBMVEUAAAAAAAAM5Jh4eXeN9UBxAAAAAXRSTlMAQObYZgAAApFJREFUeAHtlgGG5EAUhqvRR+j7ZG4Q5AU5Qu6TAyyCVNBHmPv0EQabfVW/2b+e5B8Y1mALEpVP8qUz7zMpWc75/Tg+cj36+l3OnjhaAuDbr4yjr3K2+5HA3uw27OsvgPvhyKf5kQA3CQeAt+XjAkAxCgegeTVKENip0BjzLSy3b0aJbAA2mzMVKJH9QgVWmzIVKJH9QgWWtzHzAsHsFypgCQBujUcBSFaBoQDcBwngUYBHfxt55/ZZS3cfHLh396ndJrr2tz6V9ZjbG/Nh25CwLCqQNVyPClGiAkEhSlwpRImzwv4KEmeF50eUOCm8A6NEq4BjlDgpgAsSFhTCVBCgQhxNAlSgBIGgECQARIUoAeAf94ESog+Q0H3A0n3A+qoPWLoPWLoPWF/1IUjkX+c+oHK6D5+V031A5UQfcO/99TxEH3Dh+eGg6oMvnwtKNH2gQmEO2Yej3J8S7EOjAEj3AXOh+4C50H0AoPtAQPUBgO4DAd0HALoPAHQfAHyjDwRkHwDIPtgnYKIPBEQfCIg+ELjuw0ZgvuzDSmC67MNCYLzsgxXAZxNn5z5sFci5AvNFH9bBgTKbvv2YLvqw9A6U2XTgPl78/2CdA2U2/fRmbR/sbaw4vgq+gM21D1anG31YB3wVfIHHhD7U6UYflh7vA/f7iD70DtzQB+uS8Qe+GfrA4XQFBzCbDlQJjCYmoygk/tSpSrAPUGgBSBgBV4hAkSBQVmoBbsLBT4cAcBNv4ed9ALiJSPl5FwFuckUA6z/wkwH80WqAXVEABkcDGD0NcHgVgPUNYMb1TQCIAlJxtTCPqJUAUCbMqZSggpaAgpbQCpDQCpCggpTQCpDQCpDQClgMk5JgmIQEw6QkoPCz1h+YGLTO62qDAQAAAABJRU5ErkJggg==",s0="/smeditor/assets/parts-9a3f637b.png",Q0="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAABACAYAAAD1Xam+AAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAABXFJREFUeJztnb+LXVUQx+e+3X171/gjJAipgim1EdTOQhAEixQJQbCysAgI6SVpRLDVSrDwLxBsBDs7U/sH5I+IYGCzb9/uvuM9d88kx3k3MDNn4eU53w8M9xTvu685871zZ859u0sgNIs/KNE/wyLHkxLDuv+BOtUfeLJI9Hi45vi7XHPc61X6Q/ouHdIlkvExfQK9gj7dSWn5CqXlAaWTA6J8HeL0+jcq/a7mQ+B/zHGJZQleazkqsRBrJUua0wnt/SdODdsyuj6d7Q0xfH41xHDN67TS62EA0ZlK/mODfir5j/Tyqc2fr9ArKck/mkBlBFpgANHhhK+T31IBcMIvxFoJb/h85bUlAaLr0+p54tdrLTCA6ExVAFYDqOOYTAYg74DWBIiup7Mq8cs6oQIAapYvCC3SAIwVwNTmtzwDR9c/e/ZfVeU/KgCgpr7716HlAnoAdenreYaOrJcNQPQAgA1Z+nsqgAvoAchEgF7Jqkr8FaYAwIpo/vW/Kuf/jEz8H3Xzf0aWv5/Tu9BbEFOA1Tv3THoYQHS8zT/G2fxjvKUv9AU5BTACA4iOnAJYkT0AI+7SF/qRJKYAVmAA0ZHnAKzIHoCRevN7EiC6fm0KYAQGEJ2XoAJoSYDoepJTACMwgOh43wFg+Nmf+wBG3PNv6EeSPAZsBAYQnXr011IBGOf/DG/8liZaZP3aMWAjMIDo1Id/WnoAxvk/s+ln6G3XkzgGbAUGEJ1y9+8fGuf/DCf+b7b5P8Mb/yu6Dr0DngKk979w6WEA0fGW/oyz9Gfcdz7oz3GW/gwMIDre0p9xNv8Yb/ML+oKz+cfAAKKz4QrA3fyCfsT6+q8EBhCd1grA2fxjNl1Cb7seFQBow/sOAIMeAHoAYItBD2Cr9eevAu+49TCA6LQkf6ah/M803f2gbyr/MzCA4PSPnPN/5i/f/J95QK9B38KHt5r0MAAAAgMDACAwMAAAAgMDACAwMAAAAgMDACAwMAAAAgMDCM7iLUr0xrDI8XqJYd3/pDwf8PYi0dXhmuNKuea4rzsf8C0t0iU6JBmf0kfQa/jz99TNn1I3P6Ju74goX4c4vfFApYcBRGe/xLwEr7UclOjFWsmcluJnMU/GH8iCXke3czLE8PnZEMM1r7uZXg8DiM5U8u8b9FPJf6CXT23+fIVeSUn+0QQqI9ACA4gOJ3yd/JYKgBO+F2slvOF3y09jciJAr6ObPU/8eq3/fhCbqQrAagB17JPJAOQd0JoA0fW0UyV+WXeoAICa+QtCizQAYwUwtfktz8DR9c+e/WdV+Y8KAKip7/51aLmAHkBd+nqeoSPrZQMQPQBgQ5b+ngrgAnoAMhGgVzKrEn+GKQCwIpp//X3j7wPIxL9t+30AWf6+R59Bb0FMAZZvfm/SwwCi423+Mc7mH+MtfaEvyCmAERhAdOQUwIrsARhxl77Qj3RiCmAFBhAdeQ7AiuwBGKk3vycBouvXpgDm7wexeQkqgJYEiK4nOQUwAgOIjvcdAIaf/bkPYMQ9/4Z+pJPHgI3AAKJTj/5aKgDj/J/hjd/SRIusXzsGbAQGEJ368E9LD8A4/2c2/Qy97XoSx4Dt3w9iU+7+/ZfO/w/Aif+B7/8D8Ma/QXehd8BTgONXf3bpYQDR8Zb+jLP0Z9x3PujPcZb+DAwgOt7Sn3E2/xhv8wv6grP5x8AAorPhCsDd/IJ+xPr67/r3g9i0VgDO5h+z6RJ62/WoAEAb3ncAGPQA0AMAWwx6AFutP38V+MythwFEpyX5Mw3lf6bp7gd9U/mfgQEEp7/pnP8z13zzf+YyfQ19A4vdX5r0MAAAAgMDACAwMAAAAgMDACAwMAAAAgMDACAwMAAAAvMv7uiZXHUwyMcAAAAASUVORK5CYII=",I0="/smeditor/assets/frame-d599a2fe.png",c0="/smeditor/assets/parts-b37af2cf.png",r0="data:image/png;base64,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",G=`precision mediump float; varying vec2 vUvs; diff --git a/Noteskin-f5d3d85f.js b/Noteskin-11a7e121.js similarity index 99% rename from Noteskin-f5d3d85f.js rename to Noteskin-11a7e121.js index 7c52b06a..24afb56f 100644 --- a/Noteskin-f5d3d85f.js +++ b/Noteskin-11a7e121.js @@ -1,4 +1,4 @@ -import{s as a,u as h,v as d,b as u,w as x,O as g,x as w,y as f,z as p,H as s,J as E,L as A,P as F,Q as I,V as G,X as v,Y as H}from"./ChartManager-0bba2271.js";import{H as B}from"./HoldBody-2ee2d035.js";const P="/smeditor/assets/frame-d599a2fe.png",N="/smeditor/assets/parts-b37af2cf.png",k="data:image/png;base64,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",O="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAIAAAACCAIAAAD91JpzAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAFiUAABYlAUlSJPAAAAAMSURBVBhXY0ACDAwAAA4AAXqxuTAAAAAASUVORK5CYII=",Y="/smeditor/assets/frameChrome-2ea8bbf3.png",L="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAIAAAACCAIAAAD91JpzAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAFiUAABYlAUlSJPAAAAAMSURBVBhXY0ACDAwAAA4AAXqxuTAAAAAASUVORK5CYII=",V="/smeditor/assets/frameChrome-2ea8bbf3.png",T=`precision mediump float; +import{s as a,u as h,v as d,b as u,w as x,O as g,x as w,y as f,z as p,H as s,J as E,L as A,P as F,Q as I,V as G,X as v,Y as H}from"./ChartManager-beed98d8.js";import{H as B}from"./HoldBody-b84029dd.js";const P="/smeditor/assets/frame-d599a2fe.png",N="/smeditor/assets/parts-b37af2cf.png",k="data:image/png;base64,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",O="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAIAAAACCAIAAAD91JpzAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAFiUAABYlAUlSJPAAAAAMSURBVBhXY0ACDAwAAA4AAXqxuTAAAAAASUVORK5CYII=",Y="/smeditor/assets/frameChrome-2ea8bbf3.png",L="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAIAAAACCAIAAAD91JpzAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAFiUAABYlAUlSJPAAAAAMSURBVBhXY0ACDAwAAA4AAXqxuTAAAAAASUVORK5CYII=",V="/smeditor/assets/frameChrome-2ea8bbf3.png",T=`precision mediump float; varying vec2 vUvs; diff --git a/Noteskin-ae57ec63.js b/Noteskin-246a4d2b.js similarity index 99% rename from Noteskin-ae57ec63.js rename to Noteskin-246a4d2b.js index a74fb643..1b2adaaf 100644 --- a/Noteskin-ae57ec63.js +++ b/Noteskin-246a4d2b.js @@ -1,4 +1,4 @@ -import{s as r,u as I,v as E,b as P,w as v,O as m,x as w,y as c,z as Q,H as a,J as p,Z as L,L as C,Q as x,X as l}from"./ChartManager-0bba2271.js";import{A as H}from"./AnimatedSprite-d8e8da79.js";import{H as d}from"./HoldBody-2ee2d035.js";const b="/smeditor/assets/downBodyActive-dd1fd694.png",G="/smeditor/assets/downBodyInactive-c781a303.png",y="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB98FAw0dOV1YU4MAAAPKSURBVHja7d1dTupQFIbh0pwJkDBA4xjEQVjGcOIATZwBnFslHC1l7b2/v3WHiUL6PimUwHI3Xc1pWS5fbz8/vU5bZn843/07nx/zVDVb7h/5sW29/7/vb99uvxyPu6+356nRbHnAldEqg7HGXzPt/rIIAuX4zQGwI1CP3wUAKwKH+N0AsCFwid8VAAsCp/jdAaAjcIs/BAAqAsf4wwCgIXCNPxQACgLn+MMBICBwjg8BQAEBa3wYAMwImONDAWBEwB4fDgATAoX4kAAYEKjEhwWAjEApPjQARARq8eEBICFQjE8BAAGBanwaACMRKMefpmn60+NUWXVAPj/mu4PsD+fN94/4yeZqXHPr+NWn415nAtSPtVe/vplbP2BGBOjfaag8ll2frBgQqH2hBe5FIDICt/jDrgIQETjGH3oZiITANX4pAMYvf+wPZ8r4lfdfegZQ+kKoQ/wmTwHKCBQ/QDqjHCh0BKqfHs5+AOP4za8Csh8AO36Xy8DsB8CN3+19gOwHyH6A7AcAjN8VAAuC7AcwRpD9AMYIsh/AGEH2AxgjyH6AwZP9AJM3AAUE2Q9gjCD7AYwRZD+AMYLsBzBGkP0AxgiyH8AYQfYDGCPIfgBjBNkPYIwg+wEKDlj2A+AdyyZngOwHyH6ALs/J2Q+Q/QDZD8D6IjD7AXDiD7sKyH4AjPhDLwOzH2B8/FIA2Q/A+T5D9gMYx2/yFJD9ADzxVwG4/v/zrggY469pt7v1w9OyXK5/9vz0Sqe8CpVK/JfjcbcKQBB4xP8RQBDox/8VgDMCh/irADgicIm/GoATAqf4dwFwQOAW/24Ayggc428CoIjANf5mAEoIKoct/kMAgoA//sMAgoA7fgkAdwTM8csAuCJgj18KwA2BQvxyAC4IVOI3AaCOQCl+MwCqCNTiNwWghkAxfnMAKghU43cBwI5AOX43AKwI1ON3BcCGwCF+dwAsCFziDwGAjsAp/jAAqAjc4g8FgIbAMf5wACgIXONDABiNYMuoxIcBwIRAKT4UAAYEavHhACAjUIwPCQARgWp8WABICJTjQwNAQKAeHx7ASAQO8SkAjEDgEp8GQE8ETvGpAPRA4BafDkBLBI7xKQG0QOAanxZAJYItoxKfGsAoBErx6QH0RqAWXwJALwSK8WUAtEagGl8KQCsEyvHlAFQjUI8vCaAKgUN8WQCPInCJLw1gKwKn+PIA7kXgFt8CwFoEjvFtAPyGwDW+FYD/Ibg1LvHtAKxB4BTfEsBPCNzi2wK4hcAxvv2cluWy9nVBJpPJZDKZjNL8A8iasRIljXPgAAAAAElFTkSuQmCC",S="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB98FAw0eB7cUHesAAAO/SURBVHja7dw7VhtBEIXh0WzGGWtxahZop6yFzKuREwKQBcy0uqvuqzM4Bwv6/yxN61GX7f91ff/F6+vPbWT9/vPj9M88//q7zVojt4/8u43e/tPTy+23Lu+/2LdFa+QXnhltZjDW+EfWMgAqCJTjLwfAjkA9fgkAVgQO8csAsCFwiV8KgAWBU/xyAOgI3OK3AEBF4Bi/DQAaAtf423bzrNDbmvJMoOqGsf0tbc8EstwTuEPeETaPHQHzvdiOsomsCNgfwmAAMCJQuH6BAsCEQOXiFQ4AAwKlkwskAGQESvGhASAiUIsPDwAJgWJ8CgAICFTj0wDoRKAcf9sWvBZwb8NYX2xBfGfz2X+/9LWAzzas++1dI7eP+rb22dc3e9X/TCYE6J9pmLmXpdcADAjUPtACdxGIjMAtftspABGBY/zWYyASAtf404+BLhvJdKwtPQYqfSBUIX7LQ4AyAsV3D+8oG4WOQPWt45kPYBx/+Skg8wGw45ccAzMfADd+2fMAmQ+Q+QCZDwAYvxQAC4LMBzBGkPkAxggyH8AYQeYDfFyZDyD0t2Q+gHF86IcAJQSZD2CMIPMBjBFkPoAxgswHMEaQ+QDGCDIfwBhB5gMYI8h8AGMEmQ9gjCDzATIfoC1+5gM03hNkPsDkDct8AMy9zHwAsvj0F4GZD4ATv+0UkPkAGPFbj4GZD9Aff/oxMPMB8I6amQ9gHL/lISDzAXjiHwJw5y7EEgFj/CPtLp98/3r7jZG3h6tcEwjFvxwFEAQG8b8DYI9APf4RALYIHOIfBWCHwCX+GQA2CJzinwUgj8At/ggAWQSO8UcByCFwjf8IABkEMxdb/EcBBAF5/BkAgoA4/iwA1giY488EYImAPf5sAFYIFOKvAGCBQCX+KgDSCJTirwQgiUAt/moAUggU41cAkECgGr8KADUC5fiVACgRqMevBkCFwCF+BwAKBC7xuwBAI3CK3wkAEoFb/G4AUAgc4yMAgEDgGh8FQCuCkaUSHwkADQKl+GgA4BGoxUcEAItAMT4qADgEqvGRAcAgUI6PDqAdgXp8BgBtCBziswAoR+ASnwlAGQKn+GwAliNwi88IYBkCx/isAKYjcI3PDGAagpGlEp8dQAsCpfgKAEoRqMVXAVCCQDG+EoClCFTjqwFYgkA5viKAqQjU46sCmILAIb4ygIcQuMRXBzCEwCm+A4BTCNziuwA4hMAxvhOALxG4xncDcBeB+764ATiCwGpPHAF8hcBuP1wB3EPgvBfWCK7ZhqysrKysrCy39Q9gQ/q5SfcuvQAAAABJRU5ErkJggg==",Y="/smeditor/assets/leftBodyActive-75d41033.png",V="/smeditor/assets/leftBodyInactive-bbc074cd.png",N="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAAAXNSR0IArs4c6QAAAAZiS0dEANIA0gBQ7xAn7AAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB+EDFAI2I6Ho7PYAAANMSURBVHja7Z1bTgMxDEU7VjeAxAJR10C7CMoaEAus1B0Av6XiMY/EsX2PJT4GoTHpOZNJMhl32t3F6/n8eXt8eDrt1sTD48eiv79ebNcqluZumX9N7p7/39v7y7fj5+Nxuj3e7zrF9WKzP4xM8HsBHhXW8+RzPtgqVz4CrPiAM8IfIUzPnDaqAZmvfE8JeueyEQ2p0O17SOCRw7U/u16s1D2/JyCvXibtCCjKgC/LOX+LPfBzAZPvAZjqCQsAfGEBgC8sAPCFBQC+sADAFxYA+MICAF9YAOD7xh74f+evLpcB/+/81XYAhRQgKnwFCQz4ta/w0AIAX1gA4AvPApTgR5/WGvDjrTN4CmrAjwXfWwIDfjz4nhIY8GPC95LAgB8XvocEBnztqaYBX3udIczTQOoDFBOA+gA5gvoA1AcY17VTH2B8TuoDBAPinYv6AIEloD5A8Hs+9QEGBvUBiq0DZB7tUx9AGD7TQOAjAPARAPgIAHwEAD4CjIRPFBEA+MICAF9YAOALCwB8YQGALyxAS/hMAZMJAHxhAYAfI/YV4fccU3jkoz6AMHzvQbEBP2Y+6gMIw/fMYcCPCd8rlwE/LnyPnJbZXm8YFVcsDfi68GcJcP/980RxAZ6Px6mFBL0XM7xX/6quNv7YKiTQkeDXFkWUwPsLHaJ8gcSw+gBIMF6CLbnmsJrmnOj1fP68/93h6cSaQOeZQWv4P13Q09wTIoFvPg/4iwRAAr98XvAXC5BJAsVYCn+VAEhQB/5qAZCgBvxNAiBBfvj/rgP8F1lWDIHfSQAkyA2/iQBIkBd+MwGQICf8zYPAiAPDpQJl3++wBX7THoCeIB/8LgKMlkDlTeMW8LsJgAQ54HcZA0QaE6yRp/UgK3q4NAwJxAVAAgRAAgRAAgRAAgRAAgRAAgRAAgRAAgRAAgRAAgRAAgRAAgRAAgRAggERet9Vtk0la+REgGISIAASIAASIEA5CRAACRAACRAACRBAT4LKkqRvWW8JqvcQJVrXUoL7H24BYhIwBkCC1ZFRuJLvu7V6irgVPo+DRSRgQ4iwBGwJE5aATaHCErAtXFgCXgwRloBXwwpK0HrtAQFEJOD1cGEJKBAhLEHlsnEEQRAEQWjEFz4LZYAP3C09AAAAAElFTkSuQmCC",O="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAAAXNSR0IArs4c6QAAAAZiS0dEAAAAAAAA+UO7fwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB+EDFAI3FABOeLgAAAM3SURBVHja7d09csJADIZhW+O7pOMsaeGASZuz0HGapGUIMP7Z1Ur6XnVkMgj8PdjrxV7m6X/93j+4Xj+nPfX1/bHp/y/n29SqtvZu2X9P756v73T6efzTfP9gmTrV5XxbvTEyhd8r4FFlPZ98zYat8skHwI4NnDH8EWB69rRRbyDzJ98TQe9eNuKNVNjteyDw6DH3OgvwqAjH/Gij/q1nATYlrSgDvizP+aoWws8VWNoxAKd6ACB8ABA+AAgfAIQPAMIHAOEDgPABQPhjayH89/2r4zLCf9+/2hVAIQFEDV8BgRF+7U94aACELwyA8IXPApTCj35aa4Qfb57BE6gRfqzwvREY4ccL3xOBEX7M8L0QGOHHDd8DgRG+9qmmEb72PEOYbwNZH6AYANYHyFGsD8D6AON27awPML4n6wMEC8S7F+sDBEbA+gAJjvmsDyAcfqbnDD8PkHm0z/oAwuFzGkj4ACB8ABA+AAgfAIQPgJHhU0UAEL4wAMIXBkD4wgAIXxgA4QsDaBk+p4DJABC+MADCj1FLxfB7jik8+rE+gHD43oNiI/yY/VgfQDh8zx5G+DHD9+plhB83fI+ellmvdxgVZyyN8HXDXwXgyZ0lVHEAcwsEvSczvGf/qs42vtoDgEAEwbtDQDgE3j/oEOUHJEauDwCCwQiO9FqT1bzyuX4f/7DntnHmBIaHP+8FAALnfh7hbwUAgin+18Fbwt8DIA0Cxdoa/l4AICgS/hEAICgQ/lEAIEge/pp5gM2AIs4YEn4/ACBIHH4rACBIGn5LACBIGH6LQWC4geFWQAWudziUoXm8IPYEMcPvBWAoAqE7jZvsvc3zBYIgVvi9xgBhxgR78LQeZMlIAgEAQAAAEAAABAAAAQBAAAAQAAAEAAABAEAAABAAAAQAAAEAQAAAEEQqywY08kUlkX9pPSuAdAgAAAIAgAAA5RAAAAQAAAEAQAAAPQSVkViB99AVQfU9RKVLnJtMGx+tJ/iYCs60J2AMAIKWn34OASqHA74OFkbABSHCCLgkTBgBF4UKI+CycGEE3BgijIBbwwoiUN6GigBaIuD2cGEELBAhjEB9u1EURVEUlbz+AOnsq2p4bKxbAAAAAElFTkSuQmCC",X="/smeditor/assets/rightBodyActive-07f95372.png",K="/smeditor/assets/rightBodyInactive-fdefc2a4.png",R="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAAAXNSR0IArs4c6QAAAAZiS0dEAAAAAAAA+UO7fwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB+EDFAI3NtUuOVwAAAOHSURBVHja7Z3RTSsxEEUdKw0gUSCiBkIRhBoQBSLRQeDr6YWQEK/j8c7MPfcvIO0sPmcd24RhU07yut9/Hb9+fHguPbm7PxSLfH7UIdfpub9RtXvq99Z+e3/58fppt9scv96WYLk2cK0D9flRF0O4uz8Mk2BJ/ZHinaYW4fQM7MiZraW+JXxTAaxvfFRNzxLMGMPqDcgatTxKMGvsqmcwM2t4kmDmg1O9P50zr+1BgtlvndOqWfxgXq5pteWdkanbwDUWhtZbNIstYsoZgC0iAiABAiABAiABAiABAiABAiABAiABAiDButlmB3Vu0Nf4UMfx/Xg6Maxq8Ec/idFngqoGHwlYAyABAiABAiDB/F3A2p/Fn7U6j7Q7qBGfsghPYpSZoGaEjwSOBFh7kYMEKwrgZa+LBCsI4O3cGwmCbgMzQfAoQYhzACQ4aAvwbxBGDURECaxCf4CFtekPkCj0B6A/AP0BvAFZoxb9AYJLQH8A52sA+gO016c/QMBr0h8g4P7X8xYx5QzAFhEBkAABkAABkAABkAABkAABdEJ/AEJ/AOJTAgQQlwABxCVAAHEJEGDCVtCzBAggLgECiEvgvj/AUgiWg3lar+dzA3+NDf0BBlzTchCt69EfAAnoD4AE9AdAgkJ/ACQo9AcIIZ51PfoDIAH9AUhf3t5fNAWYfaBiXa/n+ufgP+12m/QCAL8dvqkAXvoDzDwaHl3PGn6TAC3vIx4kAP5y+KWUcvabr/v91+nXHh+e3a6Sgd8H/6IAkSQAfj/8PwWIIAHwb4N/VQALCTIlOvwmAZAgL/xmAZAgJ/xFAiBBPvhN5wDXCt1yTqAcD/AXC4AEueB3CYAEeeB3C4AEOeAvXgS2LgwjZekitncR6BH+TTOA1Q3x5M+DP0QAJQlm/efTWfCHCaAgQUb4Q9YAnjPq4Cor/NQCAF9YAOALCwB8YQGALywA8IUFAL6wAMAXFgD4wgIAX1gA4AsLAHxhAYAvLADwhQUAvrAAwLdNuA4hwBcXAPgIAHwEAD4CDI4ifAQQh48A4vDlBVCHn1qAa3CBLzADXIIM/P/ZluQZ0a00K3wWgeLwQwowswlFdviliP06GPhBBZgtgQr8UALMkkAJfjgBrCVQgx9SACsJFOGHFWC0BKrwQwswSgJl+OEFuCTBLVFre5f2z8OBLyTACAlUG16mbxEDfEIIIYSQ3/kGeiN5xirmRdUAAAAASUVORK5CYII=",k="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAAAXNSR0IArs4c6QAAAAZiS0dEAAAAAAAA+UO7fwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB+EDFAI3NUwnaOYAAANgSURBVHja7Z1BUuNADEUdF3dhx1lmyxxw2HIWdnMas6JqKpCx3ZbUkv7TLiFJR/1eOurGiNvyPbZ/b3x8/FpG4s/b8+IRv1//mrzOyPuzGntk/NGxX17e7++6PbxRQQDLiaoiwZUx9wRYF+EYmVhLsY+MbyncT7FmmtwZY2aWIGIO12xAZoyVUYKouVszg4kcI5MEkR8ctyKw2q4gS2FoHWmKQI9JyvKas3Y8pVaAatFlJWAbyEowtwhEAgRAAgRAAgRAAgRAAgRAAgRAAgRAgjTR/iTwp0mfeWWP9fh7IX0S+AhO9EUdmVeCVQ0+ElADIAECIAECIEH8LiCyYq523b/X7iDNLiDa8gqXfGdYCdaO8JEgkQCzixwkmChAlr0uEkwQINu5NxIU3QZ2gpBRghLnAEjwrC3A1yRYTURFCbyC/gAT4dEfgMJw+mpBfwD6A+QCMmMs+gMUl4D+AAmLwKiikP4ARYpA+gPkDPoDNF8J2AayEswtApEAAZAAAZAAAZAAAZAAAdhSIgASIAASIAASIAASIAASIIDAVjCzBAggLgECiEuQvj/AWQiek+k9Hv0BDF7T86KMjC3nSnwFeCaGBMkFiEgICZIKEJkIEiQTYMb3GRKwDQwXz3s8+gMgAf0BCLMzAA0Bov9Aw3u8kdd/AP/WXgDgH4fvKkCW/gBqR8Nn4B8S4Mj3SAYJgH8e/v9+uN3fceWXQt5VMvDH4O89oIQEwB+Hf+RBqSUA/jX4Rx9oKkGnqA7/zIORoCH8s09AgmbwR54kL0En+IfOAfYGunJOoBwZ4I8IgASN4I8KgARN4F8RAAkawF+WZXm6+PzbfWFYTYKoIjYj/KsrgMsb4pMfB99KABkJorqHRsG3FKC9BB3hK3xyTQ6uusLvLgDwhQUAvrAAwBcWAPjCAgBfWADgCwsAfGEBgC8sAPCFBQC+sADAFxYA+MICAF9YAOALCwB8xyjXIQT44gIAHwGAjwDARwDjUISPAOLwEUAcvrwA6vBbC7AHF/gCK8AjyMCvlYDbfzFTh08RKA6/pACR/Qe6w6+UTHh3MgX41RIKk0AFfsWk3CVQgl81MTcJ1OBXTs5cAkX41RM0k0AVfockL0ugDL9LohtzQrIb80HCG3NB0hvzQBAEQRAEsR+fBPrG1xa4jMQAAAAASUVORK5CYII=",M="data:image/png;base64,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",Z="/smeditor/assets/upBodyInactive-87a7969e.png",J="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAAAXNSR0IArs4c6QAAAAZiS0dEAHgAeQB3paCnMQAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB+EDFAI5IlF3wK8AAAPCSURBVHja7Z1bbsIwFETNKBtAYoFV11C6iNI1VF0gEjug/YUoRbWxfR8zV+oHH9TG58QhUe6wK6v6PJ1+bl+/vryX2tofrtXvuZxRelXL+BHm2DL+1/fH3eu343F3+xq9Fykr/N7/u+Uzj/hsEHxuCcAM/3KGOQTr8VGMytP5NKIEoQXw+GWKVQIIPrcEEHxuCTBr4pGuob1L0HMtMeMIj3gDxasEvXeIxfM2b32peTmjesz94dptDWacDuyuP4LcZ/Byx45aAOubTJklgOBzSwDB55YAgs8tAQSfWwIIPrcEEHxuCSD43BJA8LklgOBzSwBm+PvDNeWDniEE8PQMIbMEYIfPLgEEn1sCCD63BBB8bgkg+NwSQPC5JYDgc0sAweeWAILPLYHyAcglUD4AuQQQfG4JaPMBoksQWoDo8DNJAMHnlgCCzy0BTT5AJgmUD+C0lA9Q/OUDWEgQKR9gKUFqxtHVa4yeEqS8DPR6fmU5VYUSYPY3bDYJwAz/r74AJgnADP/RWCwSgB0+uwQQfG4JIPjcEkDwuSVYosKvAdLaF7Ae49GYlomioXcAj/Bb3qt8AIfwZ5fyAYjhR5UAgs8tAQSfWwIIPrcEEHxuCSD43BJA8LklgOBzSwDB55ZgiQb/6/vj7vXry7sp0Jb5WP8a2dAdQEd+rJ0Ags8tAQSfW4JQ+QDr863Hapmj8gGSwI8oAQSfWwIwwr+csfnHKIHrfIBR8Gcu/ggJKPIBthbu7Xjcjd6Bnl3crTn2lKC3pBhxhD27tc6CP6o3sKcEo09T7i7EZ8J/dF3tRQLz7wAzJ20BP7ME/xkLXiY9Av5WzfrNoCjrCQ+T9gA/kwQ16wnrSXuCn0GC2vWE5aQ9wo8sQct6wmrSnuFHlKB1PWEx6VnwvZan9cTsSbPD97aeS+2kP0+nn57bFyN8T+sJS2DM8L2sJ6wmLfg+1hMWkxZ8P+u56CjOeToYvgOocpQEkAAqCaCSACoJoJIAKgmgkgAqCaCSACoJoJIA0euZ5g6GBBOKHaAFJEt8Dc0poAYoU3YR1XeA2T8dKwGCScCYWrYUwlI8nS4DVVkEsAxdiJhetq6QD3WumylKmR8anaXDKexTvZYSZGpvC/1Yt4UE2Xobwz/XP1OCjI2tKRo7ZkiQtas5TWfPSAkyt7Snau0aIUH2PIN0vX09JWAIs0jZ3NlDApYkk7Tdvc9IwBRjk7q9u0UCtgyj9P39WxLUVPYMBIqAh1YJGAIwaBI+aiVgST+hinj5rwSKvlGpVCqVSpW9fgGbIppuMBFz1QAAAABJRU5ErkJggg==",z="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAAAXNSR0IArs4c6QAAAAZiS0dEAHgAeQB3paCnMQAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB+EDFAI5JlYaBLYAAAO8SURBVHja7Z1LUt1ADEXtW94LM9aSKSwQpllLZqzmZZQq6oUX4nZ/JN2jGVDgRud0t21aYt/+jtvnD379+rGdjbf3p9Pf8/rysfWKlutnGGPL9Z+ff95/av/8gXonqSr83j+75Xce8bsJ+N4SyBn+68vHcgirr69tUUTaTzNKkFqAiDdTrhII+N4SCPjeEmjWwDM9Q0eXoGcuNWOGZ3yBElWC3ivE/sXnLr8JjPQMfjVhqx9vr8b0N4GV4EdYCUo+BmabhZUlEPC9JRDwvSUQ8L0lEPC9JRDwvSUQ8L0lEPC9JRDwvSUQ8L0lkDP8t/enkgc9UwgQ6QyhswRyh+8ugYDvLYGA7y2BgO8tgYDvLYGA7y2BgO8tgYDvLYGA7y0B/QHMJaA/gLkEAr63BLb9AbJLkFqA7PArSSDge0sg4HtLYNMfoJIE9AcIGvQHSJTgLFvd1fiuP8CxJYkZs6vXNd7en0KeXA71HiDi/uqyVaUSYPYdtpsEcob/qC7ASQI5w//XtVwkkDt8dwkEfG8JBHxvCQR8bwlCvAkcfZikNeGjrzHjZVH4TqFR4Z/9XvoDBIQ/O+gPYAw/qwQCvrcEAr63BAK+twQCvrcEAr63BAK+twQCvrcEAr63BEc2+PfvtlefWm4Zz+vLx+kcjTpoKma+90og4HtLIOB7S5CqP8AXf9sOFy1jpD9AEfgZJRDwvSU4HOGPrg38PPazj6ktj4ghVoARNe0z4Y+agSNWAov+AA8St49egTokdx8pQW9Jj5kzLBr8P0vt/dc6LMP7dne6unU7KPkUEAn+o70/ykowOr6tC9i2ee/b/xP+5bqFR7O701a1Z8qnopg7YuafvdMfdPcdOp+KMOgI8CtJcCafWj3oSPArSHA2n1o56IjwM0vQkk+tGnRk+BklaM2nVgx6FvzAESafmj1o4MfK59Ew6Fvn5csRfph8ajEwZ/gh8qmFgwZ+gHxq0aCBHySfB7O47HYwfAUgCgQCIACBAAQCEAhAIACBAAQCEAhAIACBAAQCZI8rFT4OHUwsVoAWkC7ta2y2gDNAnXoXWd0DzP7XsQiQTALHrmXHZhi0p+MxkKgiwMqmCxm7l91H1kOdy5oufAN/RwADCSqVt2U/1j1dgmq1jRXO9U+ToGJha5XCjuESVK1qrlTZM0yCyiXt1Uq7uktQvZ9Bxdq+bhI4NLOoWtx5WQKXTiaVq3ubJXBqY1O9vPu0BG49jBzq+2/kyFuAKxKUz49Th48bufEW4IwEtL4hCIIgCKJ0/AYcP+o66BZ87AAAAABJRU5ErkJggg==",j="/smeditor/assets/upleftBodyActive-bc79d60f.png",q="/smeditor/assets/upleftBodyInactive-f60085c6.png",W="data:image/png;base64,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",_="data:image/png;base64,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",$="/smeditor/assets/uprightBodyActive-3d912f52.png",A0="/smeditor/assets/uprightBodyInactive-01c6c977.png",n0="data:image/png;base64,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",t0="data:image/png;base64,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",o0="/smeditor/assets/bodyActive-889762ad.png",g0="/smeditor/assets/bodyInactive-5d99335a.png",e0="data:image/png;base64,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",r0="data:image/png;base64,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",B0="/smeditor/assets/parts-9a3f637b.png",a0="data:image/png;base64,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",i0="/smeditor/assets/frame-d599a2fe.png",C0="/smeditor/assets/parts-b37af2cf.png",s0="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAABACAYAAAD1Xam+AAAKTWlDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVN3WJP3Fj7f92UPVkLY8LGXbIEAIiOsCMgQWaIQkgBhhBASQMWFiApWFBURnEhVxILVCkidiOKgKLhnQYqIWotVXDjuH9yntX167+3t+9f7vOec5/zOec8PgBESJpHmomoAOVKFPDrYH49PSMTJvYACFUjgBCAQ5svCZwXFAADwA3l4fnSwP/wBr28AAgBw1S4kEsfh/4O6UCZXACCRAOAiEucLAZBSAMguVMgUAMgYALBTs2QKAJQAAGx5fEIiAKoNAOz0ST4FANipk9wXANiiHKkIAI0BAJkoRyQCQLsAYFWBUiwCwMIAoKxAIi4EwK4BgFm2MkcCgL0FAHaOWJAPQGAAgJlCLMwAIDgCAEMeE80DIEwDoDDSv+CpX3CFuEgBAMDLlc2XS9IzFLiV0Bp38vDg4iHiwmyxQmEXKRBmCeQinJebIxNI5wNMzgwAABr50cH+OD+Q5+bk4eZm52zv9MWi/mvwbyI+IfHf/ryMAgQAEE7P79pf5eXWA3DHAbB1v2upWwDaVgBo3/ldM9sJoFoK0Hr5i3k4/EAenqFQyDwdHAoLC+0lYqG9MOOLPv8z4W/gi372/EAe/tt68ABxmkCZrcCjg/1xYW52rlKO58sEQjFu9+cj/seFf/2OKdHiNLFcLBWK8ViJuFAiTcd5uVKRRCHJleIS6X8y8R+W/QmTdw0ArIZPwE62B7XLbMB+7gECiw5Y0nYAQH7zLYwaC5EAEGc0Mnn3AACTv/mPQCsBAM2XpOMAALzoGFyolBdMxggAAESggSqwQQcMwRSswA6cwR28wBcCYQZEQAwkwDwQQgbkgBwKoRiWQRlUwDrYBLWwAxqgEZrhELTBMTgN5+ASXIHrcBcGYBiewhi8hgkEQcgIE2EhOogRYo7YIs4IF5mOBCJhSDSSgKQg6YgUUSLFyHKkAqlCapFdSCPyLXIUOY1cQPqQ28ggMor8irxHMZSBslED1AJ1QLmoHxqKxqBz0XQ0D12AlqJr0Rq0Hj2AtqKn0UvodXQAfYqOY4DRMQ5mjNlhXIyHRWCJWBomxxZj5Vg1Vo81Yx1YN3YVG8CeYe8IJAKLgBPsCF6EEMJsgpCQR1hMWEOoJewjtBK6CFcJg4Qxwicik6hPtCV6EvnEeGI6sZBYRqwm7iEeIZ4lXicOE1+TSCQOyZLkTgohJZAySQtJa0jbSC2kU6Q+0hBpnEwm65Btyd7kCLKArCCXkbeQD5BPkvvJw+S3FDrFiOJMCaIkUqSUEko1ZT/lBKWfMkKZoKpRzame1AiqiDqfWkltoHZQL1OHqRM0dZolzZsWQ8ukLaPV0JppZ2n3aC/pdLoJ3YMeRZfQl9Jr6Afp5+mD9HcMDYYNg8dIYigZaxl7GacYtxkvmUymBdOXmchUMNcyG5lnmA+Yb1VYKvYqfBWRyhKVOpVWlX6V56pUVXNVP9V5qgtUq1UPq15WfaZGVbNQ46kJ1Bar1akdVbupNq7OUndSj1DPUV+jvl/9gvpjDbKGhUaghkijVGO3xhmNIRbGMmXxWELWclYD6yxrmE1iW7L57Ex2Bfsbdi97TFNDc6pmrGaRZp3mcc0BDsax4PA52ZxKziHODc57LQMtPy2x1mqtZq1+rTfaetq+2mLtcu0W7eva73VwnUCdLJ31Om0693UJuja6UbqFutt1z+o+02PreekJ9cr1Dund0Uf1bfSj9Rfq79bv0R83MDQINpAZbDE4Y/DMkGPoa5hpuNHwhOGoEctoupHEaKPRSaMnuCbuh2fjNXgXPmasbxxirDTeZdxrPGFiaTLbpMSkxeS+Kc2Ua5pmutG003TMzMgs3KzYrMnsjjnVnGueYb7ZvNv8jYWlRZzFSos2i8eW2pZ8ywWWTZb3rJhWPlZ5VvVW16xJ1lzrLOtt1ldsUBtXmwybOpvLtqitm63Edptt3xTiFI8p0in1U27aMez87ArsmuwG7Tn2YfYl9m32zx3MHBId1jt0O3xydHXMdmxwvOuk4TTDqcSpw+lXZxtnoXOd8zUXpkuQyxKXdpcXU22niqdun3rLleUa7rrStdP1o5u7m9yt2W3U3cw9xX2r+00umxvJXcM970H08PdY4nHM452nm6fC85DnL152Xlle+70eT7OcJp7WMG3I28Rb4L3Le2A6Pj1l+s7pAz7GPgKfep+Hvqa+It89viN+1n6Zfgf8nvs7+sv9j/i/4XnyFvFOBWABwQHlAb2BGoGzA2sDHwSZBKUHNQWNBbsGLww+FUIMCQ1ZH3KTb8AX8hv5YzPcZyya0RXKCJ0VWhv6MMwmTB7WEY6GzwjfEH5vpvlM6cy2CIjgR2yIuB9pGZkX+X0UKSoyqi7qUbRTdHF09yzWrORZ+2e9jvGPqYy5O9tqtnJ2Z6xqbFJsY+ybuIC4qriBeIf4RfGXEnQTJAntieTE2MQ9ieNzAudsmjOc5JpUlnRjruXcorkX5unOy553PFk1WZB8OIWYEpeyP+WDIEJQLxhP5aduTR0T8oSbhU9FvqKNolGxt7hKPJLmnVaV9jjdO31D+miGT0Z1xjMJT1IreZEZkrkj801WRNberM/ZcdktOZSclJyjUg1plrQr1zC3KLdPZisrkw3keeZtyhuTh8r35CP5c/PbFWyFTNGjtFKuUA4WTC+oK3hbGFt4uEi9SFrUM99m/ur5IwuCFny9kLBQuLCz2Lh4WfHgIr9FuxYji1MXdy4xXVK6ZHhp8NJ9y2jLspb9UOJYUlXyannc8o5Sg9KlpUMrglc0lamUycturvRauWMVYZVkVe9ql9VbVn8qF5VfrHCsqK74sEa45uJXTl/VfPV5bdra3kq3yu3rSOuk626s91m/r0q9akHV0IbwDa0b8Y3lG19tSt50oXpq9Y7NtM3KzQM1YTXtW8y2rNvyoTaj9nqdf13LVv2tq7e+2Sba1r/dd3vzDoMdFTve75TsvLUreFdrvUV99W7S7oLdjxpiG7q/5n7duEd3T8Wej3ulewf2Re/ranRvbNyvv7+yCW1SNo0eSDpw5ZuAb9qb7Zp3tXBaKg7CQeXBJ9+mfHvjUOihzsPcw83fmX+39QjrSHkr0jq/dawto22gPaG97+iMo50dXh1Hvrf/fu8x42N1xzWPV56gnSg98fnkgpPjp2Snnp1OPz3Umdx590z8mWtdUV29Z0PPnj8XdO5Mt1/3yfPe549d8Lxw9CL3Ytslt0utPa49R35w/eFIr1tv62X3y+1XPK509E3rO9Hv03/6asDVc9f41y5dn3m978bsG7duJt0cuCW69fh29u0XdwruTNxdeo94r/y+2v3qB/oP6n+0/rFlwG3g+GDAYM/DWQ/vDgmHnv6U/9OH4dJHzEfVI0YjjY+dHx8bDRq98mTOk+GnsqcTz8p+Vv9563Or59/94vtLz1j82PAL+YvPv655qfNy76uprzrHI8cfvM55PfGm/K3O233vuO+638e9H5ko/ED+UPPR+mPHp9BP9z7nfP78L/eE8/sl0p8zAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4QMUBBw2p9O4hwAABHNJREFUeNrtnL1u20gUhWcY2YkoKbAEZJu4T7GAncdZp0q1vWvHzTrGvsMiRSo9T+wmldvAKTYrRbQiGQZni4VcMOQd0ncZcTLfV0o4PJJAHt0z/LHGGGcixrmov74x5+elL9s3b6wxxuTTqfgD/Xl1VPr6yam1xhgzneai/uqo3P/Unv6nz2X/23evSl9//buxxhjz25EV9b9O/1D5X9mroPWJAYBo6fETgIS9u1Pp81znnxvdBnZ23Fb9u64nAECuSLe3Kv16rTsA124tvv/IGwC2VX9jw9YTAFDa/e+5uWmk33T/DctlM/9Nd73XG3kDo4ruv2E4bNc/dD0BAHIgND2CC2SZbpkpS7JGAVCk33et+oeuJwBArgC+ANiV316tdB10la9Unz8d6CqAz7+X9MLWs4uDOAFknn+gifz2YiEfgGOP/8IuVJ9/MJAngG9K/7HnG3RdTwBAefevW+In5d2/rnxc0V2bduBi97+fAFJTKwAe6r85AEPVEwAgkjdcBPw+AHSnsZa5bg1iOJTXIP7W+j8KW08AgMzXryr5fK7r4HM7V+mfPjVb9e+6ngAAkWSu2wFnM91ZgFkyUwZAvlX/ruut4V6AuLu/teJftDs4EH8ge3kp6g8P5R/44kL2P3SHst5eiPoPl/L+/fLAtOrfdT0TAMh8/qySX1/r7K+NbgPPftmuf9f1TABMAPIE4Nk/rOdiVGvlH9g52d86+W4+Z52ov/Poex691r/reu4GBIgYKkDkuLdvS/8hKq8LKHB+Vv4PX3VdQJEzd1aqrzqvXeT9X+UTStV1Af+3f+h6JgCAiCEAAAgAAGANAKKnbvevom73r6Jud62ibvdvyz80PRMAABUAAAgAAGANAOj+dP849EwAAFQAACAAACCu6me4GzDuHYC7AbkbEACoAABAAABALHAdQOTwPACeBwAAVAAAIAAAgDUAiBPuCeB5AABABQAAAgAAWAMAuj/d/+fTMwEAUAEAgAAAgLiqn+F5AHHvADwPgOcBAAAVAAAIAACIBa4DiByeB8DzAACACQCghNFIJR8OdfZD49vAQn534TnLM9L6h60nAEDm+XOVfH9fZ79vfBv4KL776ZNH/kLrH7aeAAC5+4/HjfTF7r+318y/2F33TLMNFLv/P19+rH9oegIARPKGAVBkMsl1+nyi0s9mSbv+Sdh6AgDkiUC5BjAaWZ3e6vy9awAt+3ddTwCAHACDgUrf/iKgzM2N26o/i4AQZvdveARXnfevGwBV563rHgBV5/2z7Mf4h6onAEBeA1BOAP2+7h+47/q6CSBL2vW3YesJABBJfAHgfBVAPgB9S4TDRDcCL5eywxOlf+75Bl3XEwCgmwA8I3aa5hq5SfNU9fkzzwTwROmfJVnQegKA7i8OkUlfHiFPjuVr/tNUPgCPPdesp0n6oO6/YbXKH9Sd6/of2+Og9QQAeErkY6VctwbwWLkGsFqZrfp3XU8AgFzxd3QB0NvV+e8qd9H12ncdgmvVv+t67gYEiJh/AchBW6zwsfy0AAAAAElFTkSuQmCC",u=`precision mediump float; +import{s as r,u as I,v as E,b as P,w as v,O as m,x as w,y as c,z as Q,H as a,J as p,Z as L,L as C,Q as x,X as l}from"./ChartManager-beed98d8.js";import{A as H}from"./AnimatedSprite-b9500bfb.js";import{H as d}from"./HoldBody-b84029dd.js";const b="/smeditor/assets/downBodyActive-dd1fd694.png",G="/smeditor/assets/downBodyInactive-c781a303.png",y="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB98FAw0dOV1YU4MAAAPKSURBVHja7d1dTupQFIbh0pwJkDBA4xjEQVjGcOIATZwBnFslHC1l7b2/v3WHiUL6PimUwHI3Xc1pWS5fbz8/vU5bZn843/07nx/zVDVb7h/5sW29/7/vb99uvxyPu6+356nRbHnAldEqg7HGXzPt/rIIAuX4zQGwI1CP3wUAKwKH+N0AsCFwid8VAAsCp/jdAaAjcIs/BAAqAsf4wwCgIXCNPxQACgLn+MMBICBwjg8BQAEBa3wYAMwImONDAWBEwB4fDgATAoX4kAAYEKjEhwWAjEApPjQARARq8eEBICFQjE8BAAGBanwaACMRKMefpmn60+NUWXVAPj/mu4PsD+fN94/4yeZqXHPr+NWn415nAtSPtVe/vplbP2BGBOjfaag8ll2frBgQqH2hBe5FIDICt/jDrgIQETjGH3oZiITANX4pAMYvf+wPZ8r4lfdfegZQ+kKoQ/wmTwHKCBQ/QDqjHCh0BKqfHs5+AOP4za8Csh8AO36Xy8DsB8CN3+19gOwHyH6A7AcAjN8VAAuC7AcwRpD9AMYIsh/AGEH2AxgjyH6AwZP9AJM3AAUE2Q9gjCD7AYwRZD+AMYLsBzBGkP0AxgiyH8AYQfYDGCPIfgBjBNkPYIwg+wEKDlj2A+AdyyZngOwHyH6ALs/J2Q+Q/QDZD8D6IjD7AXDiD7sKyH4AjPhDLwOzH2B8/FIA2Q/A+T5D9gMYx2/yFJD9ADzxVwG4/v/zrggY469pt7v1w9OyXK5/9vz0Sqe8CpVK/JfjcbcKQBB4xP8RQBDox/8VgDMCh/irADgicIm/GoATAqf4dwFwQOAW/24Ayggc428CoIjANf5mAEoIKoct/kMAgoA//sMAgoA7fgkAdwTM8csAuCJgj18KwA2BQvxyAC4IVOI3AaCOQCl+MwCqCNTiNwWghkAxfnMAKghU43cBwI5AOX43AKwI1ON3BcCGwCF+dwAsCFziDwGAjsAp/jAAqAjc4g8FgIbAMf5wACgIXONDABiNYMuoxIcBwIRAKT4UAAYEavHhACAjUIwPCQARgWp8WABICJTjQwNAQKAeHx7ASAQO8SkAjEDgEp8GQE8ETvGpAPRA4BafDkBLBI7xKQG0QOAanxZAJYItoxKfGsAoBErx6QH0RqAWXwJALwSK8WUAtEagGl8KQCsEyvHlAFQjUI8vCaAKgUN8WQCPInCJLw1gKwKn+PIA7kXgFt8CwFoEjvFtAPyGwDW+FYD/Ibg1LvHtAKxB4BTfEsBPCNzi2wK4hcAxvv2cluWy9nVBJpPJZDKZjNL8A8iasRIljXPgAAAAAElFTkSuQmCC",S="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB98FAw0eB7cUHesAAAO/SURBVHja7dw7VhtBEIXh0WzGGWtxahZop6yFzKuREwKQBcy0uqvuqzM4Bwv6/yxN61GX7f91ff/F6+vPbWT9/vPj9M88//q7zVojt4/8u43e/tPTy+23Lu+/2LdFa+QXnhltZjDW+EfWMgAqCJTjLwfAjkA9fgkAVgQO8csAsCFwiV8KgAWBU/xyAOgI3OK3AEBF4Bi/DQAaAtf423bzrNDbmvJMoOqGsf0tbc8EstwTuEPeETaPHQHzvdiOsomsCNgfwmAAMCJQuH6BAsCEQOXiFQ4AAwKlkwskAGQESvGhASAiUIsPDwAJgWJ8CgAICFTj0wDoRKAcf9sWvBZwb8NYX2xBfGfz2X+/9LWAzzas++1dI7eP+rb22dc3e9X/TCYE6J9pmLmXpdcADAjUPtACdxGIjMAtftspABGBY/zWYyASAtf404+BLhvJdKwtPQYqfSBUIX7LQ4AyAsV3D+8oG4WOQPWt45kPYBx/+Skg8wGw45ccAzMfADd+2fMAmQ+Q+QCZDwAYvxQAC4LMBzBGkPkAxggyH8AYQeYDfFyZDyD0t2Q+gHF86IcAJQSZD2CMIPMBjBFkPoAxgswHMEaQ+QDGCDIfwBhB5gMYI8h8AGMEmQ9gjCDzATIfoC1+5gM03hNkPsDkDct8AMy9zHwAsvj0F4GZD4ATv+0UkPkAGPFbj4GZD9Aff/oxMPMB8I6amQ9gHL/lISDzAXjiHwJw5y7EEgFj/CPtLp98/3r7jZG3h6tcEwjFvxwFEAQG8b8DYI9APf4RALYIHOIfBWCHwCX+GQA2CJzinwUgj8At/ggAWQSO8UcByCFwjf8IABkEMxdb/EcBBAF5/BkAgoA4/iwA1giY488EYImAPf5sAFYIFOKvAGCBQCX+KgDSCJTirwQgiUAt/moAUggU41cAkECgGr8KADUC5fiVACgRqMevBkCFwCF+BwAKBC7xuwBAI3CK3wkAEoFb/G4AUAgc4yMAgEDgGh8FQCuCkaUSHwkADQKl+GgA4BGoxUcEAItAMT4qADgEqvGRAcAgUI6PDqAdgXp8BgBtCBziswAoR+ASnwlAGQKn+GwAliNwi88IYBkCx/isAKYjcI3PDGAagpGlEp8dQAsCpfgKAEoRqMVXAVCCQDG+EoClCFTjqwFYgkA5viKAqQjU46sCmILAIb4ygIcQuMRXBzCEwCm+A4BTCNziuwA4hMAxvhOALxG4xncDcBeB+764ATiCwGpPHAF8hcBuP1wB3EPgvBfWCK7ZhqysrKysrCy39Q9gQ/q5SfcuvQAAAABJRU5ErkJggg==",Y="/smeditor/assets/leftBodyActive-75d41033.png",V="/smeditor/assets/leftBodyInactive-bbc074cd.png",N="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAAAXNSR0IArs4c6QAAAAZiS0dEANIA0gBQ7xAn7AAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB+EDFAI2I6Ho7PYAAANMSURBVHja7Z1bTgMxDEU7VjeAxAJR10C7CMoaEAus1B0Av6XiMY/EsX2PJT4GoTHpOZNJMhl32t3F6/n8eXt8eDrt1sTD48eiv79ebNcqluZumX9N7p7/39v7y7fj5+Nxuj3e7zrF9WKzP4xM8HsBHhXW8+RzPtgqVz4CrPiAM8IfIUzPnDaqAZmvfE8JeueyEQ2p0O17SOCRw7U/u16s1D2/JyCvXibtCCjKgC/LOX+LPfBzAZPvAZjqCQsAfGEBgC8sAPCFBQC+sADAFxYA+MICAF9YAOD7xh74f+evLpcB/+/81XYAhRQgKnwFCQz4ta/w0AIAX1gA4AvPApTgR5/WGvDjrTN4CmrAjwXfWwIDfjz4nhIY8GPC95LAgB8XvocEBnztqaYBX3udIczTQOoDFBOA+gA5gvoA1AcY17VTH2B8TuoDBAPinYv6AIEloD5A8Hs+9QEGBvUBiq0DZB7tUx9AGD7TQOAjAPARAPgIAHwEAD4CjIRPFBEA+MICAF9YAOALCwB8YQGALyxAS/hMAZMJAHxhAYAfI/YV4fccU3jkoz6AMHzvQbEBP2Y+6gMIw/fMYcCPCd8rlwE/LnyPnJbZXm8YFVcsDfi68GcJcP/980RxAZ6Px6mFBL0XM7xX/6quNv7YKiTQkeDXFkWUwPsLHaJ8gcSw+gBIMF6CLbnmsJrmnOj1fP68/93h6cSaQOeZQWv4P13Q09wTIoFvPg/4iwRAAr98XvAXC5BJAsVYCn+VAEhQB/5qAZCgBvxNAiBBfvj/rgP8F1lWDIHfSQAkyA2/iQBIkBd+MwGQICf8zYPAiAPDpQJl3++wBX7THoCeIB/8LgKMlkDlTeMW8LsJgAQ54HcZA0QaE6yRp/UgK3q4NAwJxAVAAgRAAgRAAgRAAgRAAgRAAgRAAgRAAgRAAgRAAgRAAgRAAgRAAgRAggERet9Vtk0la+REgGISIAASIAASIEA5CRAACRAACRAACRBAT4LKkqRvWW8JqvcQJVrXUoL7H24BYhIwBkCC1ZFRuJLvu7V6irgVPo+DRSRgQ4iwBGwJE5aATaHCErAtXFgCXgwRloBXwwpK0HrtAQFEJOD1cGEJKBAhLEHlsnEEQRAEQWjEFz4LZYAP3C09AAAAAElFTkSuQmCC",O="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAAAXNSR0IArs4c6QAAAAZiS0dEAAAAAAAA+UO7fwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB+EDFAI3FABOeLgAAAM3SURBVHja7d09csJADIZhW+O7pOMsaeGASZuz0HGapGUIMP7Z1Ur6XnVkMgj8PdjrxV7m6X/93j+4Xj+nPfX1/bHp/y/n29SqtvZu2X9P756v73T6efzTfP9gmTrV5XxbvTEyhd8r4FFlPZ98zYat8skHwI4NnDH8EWB69rRRbyDzJ98TQe9eNuKNVNjteyDw6DH3OgvwqAjH/Gij/q1nATYlrSgDvizP+aoWws8VWNoxAKd6ACB8ABA+AAgfAIQPAMIHAOEDgPABQPhjayH89/2r4zLCf9+/2hVAIQFEDV8BgRF+7U94aACELwyA8IXPApTCj35aa4Qfb57BE6gRfqzwvREY4ccL3xOBEX7M8L0QGOHHDd8DgRG+9qmmEb72PEOYbwNZH6AYANYHyFGsD8D6AON27awPML4n6wMEC8S7F+sDBEbA+gAJjvmsDyAcfqbnDD8PkHm0z/oAwuFzGkj4ACB8ABA+AAgfAIQPgJHhU0UAEL4wAMIXBkD4wgAIXxgA4QsDaBk+p4DJABC+MADCj1FLxfB7jik8+rE+gHD43oNiI/yY/VgfQDh8zx5G+DHD9+plhB83fI+ellmvdxgVZyyN8HXDXwXgyZ0lVHEAcwsEvSczvGf/qs42vtoDgEAEwbtDQDgE3j/oEOUHJEauDwCCwQiO9FqT1bzyuX4f/7DntnHmBIaHP+8FAALnfh7hbwUAgin+18Fbwt8DIA0Cxdoa/l4AICgS/hEAICgQ/lEAIEge/pp5gM2AIs4YEn4/ACBIHH4rACBIGn5LACBIGH6LQWC4geFWQAWudziUoXm8IPYEMcPvBWAoAqE7jZvsvc3zBYIgVvi9xgBhxgR78LQeZMlIAgEAQAAAEAAABAAAAQBAAAAQAAAEAAABAEAAABAAAAQAAAEAQAAAEEQqywY08kUlkX9pPSuAdAgAAAIAgAAA5RAAAAQAAAEAQAAAPQSVkViB99AVQfU9RKVLnJtMGx+tJ/iYCs60J2AMAIKWn34OASqHA74OFkbABSHCCLgkTBgBF4UKI+CycGEE3BgijIBbwwoiUN6GigBaIuD2cGEELBAhjEB9u1EURVEUlbz+AOnsq2p4bKxbAAAAAElFTkSuQmCC",X="/smeditor/assets/rightBodyActive-07f95372.png",K="/smeditor/assets/rightBodyInactive-fdefc2a4.png",R="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAAAXNSR0IArs4c6QAAAAZiS0dEAAAAAAAA+UO7fwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB+EDFAI3NtUuOVwAAAOHSURBVHja7Z3RTSsxEEUdKw0gUSCiBkIRhBoQBSLRQeDr6YWQEK/j8c7MPfcvIO0sPmcd24RhU07yut9/Hb9+fHguPbm7PxSLfH7UIdfpub9RtXvq99Z+e3/58fppt9scv96WYLk2cK0D9flRF0O4uz8Mk2BJ/ZHinaYW4fQM7MiZraW+JXxTAaxvfFRNzxLMGMPqDcgatTxKMGvsqmcwM2t4kmDmg1O9P50zr+1BgtlvndOqWfxgXq5pteWdkanbwDUWhtZbNIstYsoZgC0iAiABAiABAiABAiABAiABAiABAiABAiDButlmB3Vu0Nf4UMfx/Xg6Maxq8Ec/idFngqoGHwlYAyABAiABAiDB/F3A2p/Fn7U6j7Q7qBGfsghPYpSZoGaEjwSOBFh7kYMEKwrgZa+LBCsI4O3cGwmCbgMzQfAoQYhzACQ4aAvwbxBGDURECaxCf4CFtekPkCj0B6A/AP0BvAFZoxb9AYJLQH8A52sA+gO016c/QMBr0h8g4P7X8xYx5QzAFhEBkAABkAABkAABkAABkAABdEJ/AEJ/AOJTAgQQlwABxCVAAHEJEGDCVtCzBAggLgECiEvgvj/AUgiWg3lar+dzA3+NDf0BBlzTchCt69EfAAnoD4AE9AdAgkJ/ACQo9AcIIZ51PfoDIAH9AUhf3t5fNAWYfaBiXa/n+ufgP+12m/QCAL8dvqkAXvoDzDwaHl3PGn6TAC3vIx4kAP5y+KWUcvabr/v91+nXHh+e3a6Sgd8H/6IAkSQAfj/8PwWIIAHwb4N/VQALCTIlOvwmAZAgL/xmAZAgJ/xFAiBBPvhN5wDXCt1yTqAcD/AXC4AEueB3CYAEeeB3C4AEOeAvXgS2LgwjZekitncR6BH+TTOA1Q3x5M+DP0QAJQlm/efTWfCHCaAgQUb4Q9YAnjPq4Cor/NQCAF9YAOALCwB8YQGALywA8IUFAL6wAMAXFgD4wgIAX1gA4AsLAHxhAYAvLADwhQUAvrAAwLdNuA4hwBcXAPgIAHwEAD4CDI4ifAQQh48A4vDlBVCHn1qAa3CBLzADXIIM/P/ZluQZ0a00K3wWgeLwQwowswlFdviliP06GPhBBZgtgQr8UALMkkAJfjgBrCVQgx9SACsJFOGHFWC0BKrwQwswSgJl+OEFuCTBLVFre5f2z8OBLyTACAlUG16mbxEDfEIIIYSQ3/kGeiN5xirmRdUAAAAASUVORK5CYII=",k="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAAAXNSR0IArs4c6QAAAAZiS0dEAAAAAAAA+UO7fwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB+EDFAI3NUwnaOYAAANgSURBVHja7Z1BUuNADEUdF3dhx1lmyxxw2HIWdnMas6JqKpCx3ZbUkv7TLiFJR/1eOurGiNvyPbZ/b3x8/FpG4s/b8+IRv1//mrzOyPuzGntk/NGxX17e7++6PbxRQQDLiaoiwZUx9wRYF+EYmVhLsY+MbyncT7FmmtwZY2aWIGIO12xAZoyVUYKouVszg4kcI5MEkR8ctyKw2q4gS2FoHWmKQI9JyvKas3Y8pVaAatFlJWAbyEowtwhEAgRAAgRAAgRAAgRAAgRAAgRAAgRAgjTR/iTwp0mfeWWP9fh7IX0S+AhO9EUdmVeCVQ0+ElADIAECIAECIEH8LiCyYq523b/X7iDNLiDa8gqXfGdYCdaO8JEgkQCzixwkmChAlr0uEkwQINu5NxIU3QZ2gpBRghLnAEjwrC3A1yRYTURFCbyC/gAT4dEfgMJw+mpBfwD6A+QCMmMs+gMUl4D+AAmLwKiikP4ARYpA+gPkDPoDNF8J2AayEswtApEAAZAAAZAAAZAAAZAAAdhSIgASIAASIAASIAASIAASIIDAVjCzBAggLgECiEuQvj/AWQiek+k9Hv0BDF7T86KMjC3nSnwFeCaGBMkFiEgICZIKEJkIEiQTYMb3GRKwDQwXz3s8+gMgAf0BCLMzAA0Bov9Aw3u8kdd/AP/WXgDgH4fvKkCW/gBqR8Nn4B8S4Mj3SAYJgH8e/v9+uN3fceWXQt5VMvDH4O89oIQEwB+Hf+RBqSUA/jX4Rx9oKkGnqA7/zIORoCH8s09AgmbwR54kL0En+IfOAfYGunJOoBwZ4I8IgASN4I8KgARN4F8RAAkawF+WZXm6+PzbfWFYTYKoIjYj/KsrgMsb4pMfB99KABkJorqHRsG3FKC9BB3hK3xyTQ6uusLvLgDwhQUAvrAAwBcWAPjCAgBfWADgCwsAfGEBgC8sAPCFBQC+sADAFxYA+MICAF9YAOALCwB8xyjXIQT44gIAHwGAjwDARwDjUISPAOLwEUAcvrwA6vBbC7AHF/gCK8AjyMCvlYDbfzFTh08RKA6/pACR/Qe6w6+UTHh3MgX41RIKk0AFfsWk3CVQgl81MTcJ1OBXTs5cAkX41RM0k0AVfockL0ugDL9LohtzQrIb80HCG3NB0hvzQBAEQRAEsR+fBPrG1xa4jMQAAAAASUVORK5CYII=",M="data:image/png;base64,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",Z="/smeditor/assets/upBodyInactive-87a7969e.png",J="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAAAXNSR0IArs4c6QAAAAZiS0dEAHgAeQB3paCnMQAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB+EDFAI5IlF3wK8AAAPCSURBVHja7Z1bbsIwFETNKBtAYoFV11C6iNI1VF0gEjug/YUoRbWxfR8zV+oHH9TG58QhUe6wK6v6PJ1+bl+/vryX2tofrtXvuZxRelXL+BHm2DL+1/fH3eu343F3+xq9Fykr/N7/u+Uzj/hsEHxuCcAM/3KGOQTr8VGMytP5NKIEoQXw+GWKVQIIPrcEEHxuCTBr4pGuob1L0HMtMeMIj3gDxasEvXeIxfM2b32peTmjesz94dptDWacDuyuP4LcZ/Byx45aAOubTJklgOBzSwDB55YAgs8tAQSfWwIIPrcEEHxuCSD43BJA8LklgOBzSwBm+PvDNeWDniEE8PQMIbMEYIfPLgEEn1sCCD63BBB8bgkg+NwSQPC5JYDgc0sAweeWAILPLYHyAcglUD4AuQQQfG4JaPMBoksQWoDo8DNJAMHnlgCCzy0BTT5AJgmUD+C0lA9Q/OUDWEgQKR9gKUFqxtHVa4yeEqS8DPR6fmU5VYUSYPY3bDYJwAz/r74AJgnADP/RWCwSgB0+uwQQfG4JIPjcEkDwuSVYosKvAdLaF7Ae49GYlomioXcAj/Bb3qt8AIfwZ5fyAYjhR5UAgs8tAQSfWwIIPrcEEHxuCSD43BJA8LklgOBzSwDB55ZgiQb/6/vj7vXry7sp0Jb5WP8a2dAdQEd+rJ0Ags8tAQSfW4JQ+QDr863Hapmj8gGSwI8oAQSfWwIwwr+csfnHKIHrfIBR8Gcu/ggJKPIBthbu7Xjcjd6Bnl3crTn2lKC3pBhxhD27tc6CP6o3sKcEo09T7i7EZ8J/dF3tRQLz7wAzJ20BP7ME/xkLXiY9Av5WzfrNoCjrCQ+T9gA/kwQ16wnrSXuCn0GC2vWE5aQ9wo8sQct6wmrSnuFHlKB1PWEx6VnwvZan9cTsSbPD97aeS+2kP0+nn57bFyN8T+sJS2DM8L2sJ6wmLfg+1hMWkxZ8P+u56CjOeToYvgOocpQEkAAqCaCSACoJoJIAKgmgkgAqCaCSACoJoJIA0euZ5g6GBBOKHaAFJEt8Dc0poAYoU3YR1XeA2T8dKwGCScCYWrYUwlI8nS4DVVkEsAxdiJhetq6QD3WumylKmR8anaXDKexTvZYSZGpvC/1Yt4UE2Xobwz/XP1OCjI2tKRo7ZkiQtas5TWfPSAkyt7Snau0aIUH2PIN0vX09JWAIs0jZ3NlDApYkk7Tdvc9IwBRjk7q9u0UCtgyj9P39WxLUVPYMBIqAh1YJGAIwaBI+aiVgST+hinj5rwSKvlGpVCqVSpW9fgGbIppuMBFz1QAAAABJRU5ErkJggg==",z="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAAAXNSR0IArs4c6QAAAAZiS0dEAHgAeQB3paCnMQAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB+EDFAI5JlYaBLYAAAO8SURBVHja7Z1LUt1ADEXtW94LM9aSKSwQpllLZqzmZZQq6oUX4nZ/JN2jGVDgRud0t21aYt/+jtvnD379+rGdjbf3p9Pf8/rysfWKlutnGGPL9Z+ff95/av/8gXonqSr83j+75Xce8bsJ+N4SyBn+68vHcgirr69tUUTaTzNKkFqAiDdTrhII+N4SCPjeEmjWwDM9Q0eXoGcuNWOGZ3yBElWC3ivE/sXnLr8JjPQMfjVhqx9vr8b0N4GV4EdYCUo+BmabhZUlEPC9JRDwvSUQ8L0lEPC9JRDwvSUQ8L0lEPC9JRDwvSUQ8L0lkDP8t/enkgc9UwgQ6QyhswRyh+8ugYDvLYGA7y2BgO8tgYDvLYGA7y2BgO8tgYDvLYGA7y0B/QHMJaA/gLkEAr63BLb9AbJLkFqA7PArSSDge0sg4HtLYNMfoJIE9AcIGvQHSJTgLFvd1fiuP8CxJYkZs6vXNd7en0KeXA71HiDi/uqyVaUSYPYdtpsEcob/qC7ASQI5w//XtVwkkDt8dwkEfG8JBHxvCQR8bwlCvAkcfZikNeGjrzHjZVH4TqFR4Z/9XvoDBIQ/O+gPYAw/qwQCvrcEAr63BAK+twQCvrcEAr63BAK+twQCvrcEAr63BEc2+PfvtlefWm4Zz+vLx+kcjTpoKma+90og4HtLIOB7S5CqP8AXf9sOFy1jpD9AEfgZJRDwvSU4HOGPrg38PPazj6ktj4ghVoARNe0z4Y+agSNWAov+AA8St49egTokdx8pQW9Jj5kzLBr8P0vt/dc6LMP7dne6unU7KPkUEAn+o70/ykowOr6tC9i2ee/b/xP+5bqFR7O701a1Z8qnopg7YuafvdMfdPcdOp+KMOgI8CtJcCafWj3oSPArSHA2n1o56IjwM0vQkk+tGnRk+BklaM2nVgx6FvzAESafmj1o4MfK59Ew6Fvn5csRfph8ajEwZ/gh8qmFgwZ+gHxq0aCBHySfB7O47HYwfAUgCgQCIACBAAQCEAhAIACBAAQCEAhAIACBAAQCZI8rFT4OHUwsVoAWkC7ta2y2gDNAnXoXWd0DzP7XsQiQTALHrmXHZhi0p+MxkKgiwMqmCxm7l91H1kOdy5oufAN/RwADCSqVt2U/1j1dgmq1jRXO9U+ToGJha5XCjuESVK1qrlTZM0yCyiXt1Uq7uktQvZ9Bxdq+bhI4NLOoWtx5WQKXTiaVq3ubJXBqY1O9vPu0BG49jBzq+2/kyFuAKxKUz49Th48bufEW4IwEtL4hCIIgCKJ0/AYcP+o66BZ87AAAAABJRU5ErkJggg==",j="/smeditor/assets/upleftBodyActive-bc79d60f.png",q="/smeditor/assets/upleftBodyInactive-f60085c6.png",W="data:image/png;base64,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",_="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/AV/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAARKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAAAAGYktHRADSANIAUO8QJ+wAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQfhAxQCNRlMyWaHAAACeUlEQVR42u3dPU4jQRRF4S7Le5nMayGFBTIpa3HGajzBaKQBDBi56/d+J8NCDa57eO9Vu2zKVo/L/1+czw9ffvPz718b/vL0+PrhsdPp5f1DZY+fdbDc44dfk6Ml7xtAb1SA4PAJEB4+AcLDX3IGSA4zvgIIf+IKIDwVAAQAAUAAEAAEAAFAABAABAABQAAQAAQAAbAbQ50I8t6A9uciDsIfi9broAWES0CAcAkIYBcAAoAAyNwOEiD8XgABgsPfNp8P0D0AM4DwCSD8fhyFaBsofAIInwDCNwPMHv5PX0EjT/guwCEU28B4CdwHCJeAAOESECBcAgKES0CAcAkIEC4BAcIlIEC4BAQIl8CnhYdLsFwFIIEWQIIEAb4LmQS3cVz5L/zp8fWusBLOCxxWDf/eEFMOi0RsA1tJQ4BF2kYSUW8N+24mSDxjGHcn0O4gXAASEIAEBCDB0gKcTi8kSBXgX/gkCBTgfegkMAP8SIKajCrBUgKczw8kSK8AJNACtAMC2CISgAQEmEECArShkEAFIIEWQAIzAAkMgSQgAAkIQAICdJZgBHkI0EmCUSoHATpIMFLb8D+DPkpwuSbBZy8zzz4TqAAVKgEBSEAAEhBg96m4Q39dXoKhKsBXAXccrpaWYLgWcC3oASbrZSUoFa/9Zjt16zZqD64EU2o8p1bP7RPRypIVwGDYLvwlBWhQlptJUDv8pi1g9lJ5azuYrWWXyr9wMwkah99DgjLNRVtL0Cn8lhKU6S7cSoLO4beQoGyzXry2BIOE7z5ADwmEP6cANcul8CdatIvwswXYUwLhT7x4F+EDAAAAAAAAAAAAAAAAAAAAwD38AT8g+uUAT65wAAAAAElFTkSuQmCC",$="/smeditor/assets/uprightBodyActive-3d912f52.png",A0="/smeditor/assets/uprightBodyInactive-01c6c977.png",n0="data:image/png;base64,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",t0="data:image/png;base64,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",o0="/smeditor/assets/bodyActive-889762ad.png",g0="/smeditor/assets/bodyInactive-5d99335a.png",e0="data:image/png;base64,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",r0="data:image/png;base64,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",B0="/smeditor/assets/parts-9a3f637b.png",a0="data:image/png;base64,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",i0="/smeditor/assets/frame-d599a2fe.png",C0="/smeditor/assets/parts-b37af2cf.png",s0="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAABACAYAAAD1Xam+AAAKTWlDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVN3WJP3Fj7f92UPVkLY8LGXbIEAIiOsCMgQWaIQkgBhhBASQMWFiApWFBURnEhVxILVCkidiOKgKLhnQYqIWotVXDjuH9yntX167+3t+9f7vOec5/zOec8PgBESJpHmomoAOVKFPDrYH49PSMTJvYACFUjgBCAQ5svCZwXFAADwA3l4fnSwP/wBr28AAgBw1S4kEsfh/4O6UCZXACCRAOAiEucLAZBSAMguVMgUAMgYALBTs2QKAJQAAGx5fEIiAKoNAOz0ST4FANipk9wXANiiHKkIAI0BAJkoRyQCQLsAYFWBUiwCwMIAoKxAIi4EwK4BgFm2MkcCgL0FAHaOWJAPQGAAgJlCLMwAIDgCAEMeE80DIEwDoDDSv+CpX3CFuEgBAMDLlc2XS9IzFLiV0Bp38vDg4iHiwmyxQmEXKRBmCeQinJebIxNI5wNMzgwAABr50cH+OD+Q5+bk4eZm52zv9MWi/mvwbyI+IfHf/ryMAgQAEE7P79pf5eXWA3DHAbB1v2upWwDaVgBo3/ldM9sJoFoK0Hr5i3k4/EAenqFQyDwdHAoLC+0lYqG9MOOLPv8z4W/gi372/EAe/tt68ABxmkCZrcCjg/1xYW52rlKO58sEQjFu9+cj/seFf/2OKdHiNLFcLBWK8ViJuFAiTcd5uVKRRCHJleIS6X8y8R+W/QmTdw0ArIZPwE62B7XLbMB+7gECiw5Y0nYAQH7zLYwaC5EAEGc0Mnn3AACTv/mPQCsBAM2XpOMAALzoGFyolBdMxggAAESggSqwQQcMwRSswA6cwR28wBcCYQZEQAwkwDwQQgbkgBwKoRiWQRlUwDrYBLWwAxqgEZrhELTBMTgN5+ASXIHrcBcGYBiewhi8hgkEQcgIE2EhOogRYo7YIs4IF5mOBCJhSDSSgKQg6YgUUSLFyHKkAqlCapFdSCPyLXIUOY1cQPqQ28ggMor8irxHMZSBslED1AJ1QLmoHxqKxqBz0XQ0D12AlqJr0Rq0Hj2AtqKn0UvodXQAfYqOY4DRMQ5mjNlhXIyHRWCJWBomxxZj5Vg1Vo81Yx1YN3YVG8CeYe8IJAKLgBPsCF6EEMJsgpCQR1hMWEOoJewjtBK6CFcJg4Qxwicik6hPtCV6EvnEeGI6sZBYRqwm7iEeIZ4lXicOE1+TSCQOyZLkTgohJZAySQtJa0jbSC2kU6Q+0hBpnEwm65Btyd7kCLKArCCXkbeQD5BPkvvJw+S3FDrFiOJMCaIkUqSUEko1ZT/lBKWfMkKZoKpRzame1AiqiDqfWkltoHZQL1OHqRM0dZolzZsWQ8ukLaPV0JppZ2n3aC/pdLoJ3YMeRZfQl9Jr6Afp5+mD9HcMDYYNg8dIYigZaxl7GacYtxkvmUymBdOXmchUMNcyG5lnmA+Yb1VYKvYqfBWRyhKVOpVWlX6V56pUVXNVP9V5qgtUq1UPq15WfaZGVbNQ46kJ1Bar1akdVbupNq7OUndSj1DPUV+jvl/9gvpjDbKGhUaghkijVGO3xhmNIRbGMmXxWELWclYD6yxrmE1iW7L57Ex2Bfsbdi97TFNDc6pmrGaRZp3mcc0BDsax4PA52ZxKziHODc57LQMtPy2x1mqtZq1+rTfaetq+2mLtcu0W7eva73VwnUCdLJ31Om0693UJuja6UbqFutt1z+o+02PreekJ9cr1Dund0Uf1bfSj9Rfq79bv0R83MDQINpAZbDE4Y/DMkGPoa5hpuNHwhOGoEctoupHEaKPRSaMnuCbuh2fjNXgXPmasbxxirDTeZdxrPGFiaTLbpMSkxeS+Kc2Ua5pmutG003TMzMgs3KzYrMnsjjnVnGueYb7ZvNv8jYWlRZzFSos2i8eW2pZ8ywWWTZb3rJhWPlZ5VvVW16xJ1lzrLOtt1ldsUBtXmwybOpvLtqitm63Edptt3xTiFI8p0in1U27aMez87ArsmuwG7Tn2YfYl9m32zx3MHBId1jt0O3xydHXMdmxwvOuk4TTDqcSpw+lXZxtnoXOd8zUXpkuQyxKXdpcXU22niqdun3rLleUa7rrStdP1o5u7m9yt2W3U3cw9xX2r+00umxvJXcM970H08PdY4nHM452nm6fC85DnL152Xlle+70eT7OcJp7WMG3I28Rb4L3Le2A6Pj1l+s7pAz7GPgKfep+Hvqa+It89viN+1n6Zfgf8nvs7+sv9j/i/4XnyFvFOBWABwQHlAb2BGoGzA2sDHwSZBKUHNQWNBbsGLww+FUIMCQ1ZH3KTb8AX8hv5YzPcZyya0RXKCJ0VWhv6MMwmTB7WEY6GzwjfEH5vpvlM6cy2CIjgR2yIuB9pGZkX+X0UKSoyqi7qUbRTdHF09yzWrORZ+2e9jvGPqYy5O9tqtnJ2Z6xqbFJsY+ybuIC4qriBeIf4RfGXEnQTJAntieTE2MQ9ieNzAudsmjOc5JpUlnRjruXcorkX5unOy553PFk1WZB8OIWYEpeyP+WDIEJQLxhP5aduTR0T8oSbhU9FvqKNolGxt7hKPJLmnVaV9jjdO31D+miGT0Z1xjMJT1IreZEZkrkj801WRNberM/ZcdktOZSclJyjUg1plrQr1zC3KLdPZisrkw3keeZtyhuTh8r35CP5c/PbFWyFTNGjtFKuUA4WTC+oK3hbGFt4uEi9SFrUM99m/ur5IwuCFny9kLBQuLCz2Lh4WfHgIr9FuxYji1MXdy4xXVK6ZHhp8NJ9y2jLspb9UOJYUlXyannc8o5Sg9KlpUMrglc0lamUycturvRauWMVYZVkVe9ql9VbVn8qF5VfrHCsqK74sEa45uJXTl/VfPV5bdra3kq3yu3rSOuk626s91m/r0q9akHV0IbwDa0b8Y3lG19tSt50oXpq9Y7NtM3KzQM1YTXtW8y2rNvyoTaj9nqdf13LVv2tq7e+2Sba1r/dd3vzDoMdFTve75TsvLUreFdrvUV99W7S7oLdjxpiG7q/5n7duEd3T8Wej3ulewf2Re/ranRvbNyvv7+yCW1SNo0eSDpw5ZuAb9qb7Zp3tXBaKg7CQeXBJ9+mfHvjUOihzsPcw83fmX+39QjrSHkr0jq/dawto22gPaG97+iMo50dXh1Hvrf/fu8x42N1xzWPV56gnSg98fnkgpPjp2Snnp1OPz3Umdx590z8mWtdUV29Z0PPnj8XdO5Mt1/3yfPe549d8Lxw9CL3Ytslt0utPa49R35w/eFIr1tv62X3y+1XPK509E3rO9Hv03/6asDVc9f41y5dn3m978bsG7duJt0cuCW69fh29u0XdwruTNxdeo94r/y+2v3qB/oP6n+0/rFlwG3g+GDAYM/DWQ/vDgmHnv6U/9OH4dJHzEfVI0YjjY+dHx8bDRq98mTOk+GnsqcTz8p+Vv9563Or59/94vtLz1j82PAL+YvPv655qfNy76uprzrHI8cfvM55PfGm/K3O233vuO+638e9H5ko/ED+UPPR+mPHp9BP9z7nfP78L/eE8/sl0p8zAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4QMUBBw2p9O4hwAABHNJREFUeNrtnL1u20gUhWcY2YkoKbAEZJu4T7GAncdZp0q1vWvHzTrGvsMiRSo9T+wmldvAKTYrRbQiGQZni4VcMOQd0ncZcTLfV0o4PJJAHt0z/LHGGGcixrmov74x5+elL9s3b6wxxuTTqfgD/Xl1VPr6yam1xhgzneai/uqo3P/Unv6nz2X/23evSl9//buxxhjz25EV9b9O/1D5X9mroPWJAYBo6fETgIS9u1Pp81znnxvdBnZ23Fb9u64nAECuSLe3Kv16rTsA124tvv/IGwC2VX9jw9YTAFDa/e+5uWmk33T/DctlM/9Nd73XG3kDo4ruv2E4bNc/dD0BAHIgND2CC2SZbpkpS7JGAVCk33et+oeuJwBArgC+ANiV316tdB10la9Unz8d6CqAz7+X9MLWs4uDOAFknn+gifz2YiEfgGOP/8IuVJ9/MJAngG9K/7HnG3RdTwBAefevW+In5d2/rnxc0V2bduBi97+fAFJTKwAe6r85AEPVEwAgkjdcBPw+AHSnsZa5bg1iOJTXIP7W+j8KW08AgMzXryr5fK7r4HM7V+mfPjVb9e+6ngAAkWSu2wFnM91ZgFkyUwZAvlX/ruut4V6AuLu/teJftDs4EH8ge3kp6g8P5R/44kL2P3SHst5eiPoPl/L+/fLAtOrfdT0TAMh8/qySX1/r7K+NbgPPftmuf9f1TABMAPIE4Nk/rOdiVGvlH9g52d86+W4+Z52ov/Poex691r/reu4GBIgYKkDkuLdvS/8hKq8LKHB+Vv4PX3VdQJEzd1aqrzqvXeT9X+UTStV1Af+3f+h6JgCAiCEAAAgAAGANAKKnbvevom73r6Jud62ibvdvyz80PRMAABUAAAgAAGANAOj+dP849EwAAFQAACAAACCu6me4GzDuHYC7AbkbEACoAABAAABALHAdQOTwPACeBwAAVAAAIAAAgDUAiBPuCeB5AABABQAAAgAAWAMAuj/d/+fTMwEAUAEAgAAAgLiqn+F5AHHvADwPgOcBAAAVAAAIAACIBa4DiByeB8DzAACACQCghNFIJR8OdfZD49vAQn534TnLM9L6h60nAEDm+XOVfH9fZ79vfBv4KL776ZNH/kLrH7aeAAC5+4/HjfTF7r+318y/2F33TLMNFLv/P19+rH9oegIARPKGAVBkMsl1+nyi0s9mSbv+Sdh6AgDkiUC5BjAaWZ3e6vy9awAt+3ddTwCAHACDgUrf/iKgzM2N26o/i4AQZvdveARXnfevGwBV563rHgBV5/2z7Mf4h6onAEBeA1BOAP2+7h+47/q6CSBL2vW3YesJABBJfAHgfBVAPgB9S4TDRDcCL5eywxOlf+75Bl3XEwCgmwA8I3aa5hq5SfNU9fkzzwTwROmfJVnQegKA7i8OkUlfHiFPjuVr/tNUPgCPPdesp0n6oO6/YbXKH9Sd6/of2+Og9QQAeErkY6VctwbwWLkGsFqZrfp3XU8AgFzxd3QB0NvV+e8qd9H12ncdgmvVv+t67gYEiJh/AchBW6zwsfy0AAAAAElFTkSuQmCC",u=`precision mediump float; varying vec2 vUvs; diff --git a/Noteskin-3e1bbc62.js b/Noteskin-3e814503.js similarity index 98% rename from Noteskin-3e1bbc62.js rename to Noteskin-3e814503.js index 268370d8..514aabd9 100644 --- a/Noteskin-3e1bbc62.js +++ b/Noteskin-3e814503.js @@ -1 +1 @@ -import{s as i,Z as b,b as g,H as l,Q as B,L as r,P as A,O as y,w as I,J as R,X as v}from"./ChartManager-0bba2271.js";import{A as u}from"./AnimatedSprite-d8e8da79.js";import{T as $,H as f}from"./HoldBody-2ee2d035.js";const M="/smeditor/assets/active-d06e5c33.png",U="/smeditor/assets/downBodyActive-8cf886d3.png",F="/smeditor/assets/downBodyInactive-7465edd0.png",L="/smeditor/assets/downBottomCapActive-b10d1f0d.png",k="/smeditor/assets/downBottomCapInactive-12cafebe.png",P="/smeditor/assets/inactive-a4aecb82.png",O="/smeditor/assets/leftBodyActive-5d89f111.png",D="/smeditor/assets/leftBodyInactive-1110dc77.png",S="/smeditor/assets/leftBottomCapActive-f759c91c.png",j="/smeditor/assets/leftBottomCapInactive-a4ac7bba.png",V="/smeditor/assets/rightBodyActive-8af7624b.png",Y="/smeditor/assets/rightBodyInactive-695480aa.png",z="/smeditor/assets/rightBottomCapActive-6edeea1e.png",X="/smeditor/assets/rightBottomCapInactive-d674960e.png",q="/smeditor/assets/upBodyActive-c813881f.png",J="/smeditor/assets/upBodyInactive-0222237a.png",Q="/smeditor/assets/upBottomCapActive-19e4c05d.png",W="/smeditor/assets/upBottomCapInactive-23aae747.png",Z="/smeditor/assets/active-29dd632a.png",G="/smeditor/assets/downBodyActive-77f6502e.png",K="/smeditor/assets/downBodyInactive-a5759c62.png",tt="/smeditor/assets/downBottomCapActive-57ef4d54.png",et="/smeditor/assets/downBottomCapInactive-13ddf252.png",ot="/smeditor/assets/inactive-48f23de3.png",st="/smeditor/assets/leftBodyActive-fd4e902b.png",at="/smeditor/assets/leftBodyInactive-8fe6311e.png",nt="/smeditor/assets/leftBottomCapActive-057c49fb.png",it="/smeditor/assets/leftBottomCapInactive-df6350c7.png",ct="/smeditor/assets/rightBodyActive-751fadec.png",lt="/smeditor/assets/rightBodyInactive-46202369.png",rt="/smeditor/assets/rightBottomCapActive-a736d803.png",dt="/smeditor/assets/rightBottomCapInactive-a64cea2c.png",pt="/smeditor/assets/upBodyActive-b06d82f3.png",ht="/smeditor/assets/upBodyInactive-4ef75342.png",mt="/smeditor/assets/upBottomCapActive-07fb7c6e.png",_t="/smeditor/assets/upBottomCapInactive-75f78aac.png",gt="/smeditor/assets/hold-4cf23d59.png",vt="/smeditor/assets/mine-f6147b04.png",ft="/smeditor/assets/particles-18ec6c1d.png",wt="/smeditor/assets/w0-6f86addb.png",ut="/smeditor/assets/w1-c8c43b0f.png",bt="/smeditor/assets/w2-37282ba8.png",Bt="/smeditor/assets/w3-3c2ca2d8.png",At="/smeditor/assets/w4-ce0f95de.png",yt="/smeditor/assets/w5-23173d4f.png",Ct="/smeditor/assets/hold-4cf23d59.png",xt="/smeditor/assets/mine-f6147b04.png",It="/smeditor/assets/particles-18ec6c1d.png",Tt=i.from(Ct),Nt=b(i.from(xt),16,1,160,1024)[0],Ht=i.from(It),N=["w0","w1","w2","w3","w4","w5"],H={};N.forEach(t=>H[t]=i.from(new URL(Object.assign({"./flash/hold.png":gt,"./flash/mine.png":vt,"./flash/particles.png":ft,"./flash/w0.png":wt,"./flash/w1.png":ut,"./flash/w2.png":bt,"./flash/w3.png":Bt,"./flash/w4.png":At,"./flash/w5.png":yt})[`./flash/${t}.png`],self.location).href));class Et extends g{holdExplosion=new l(Tt);particles=new l(Ht);mine=new u(Nt);standard={};anims=new Set;particleAnim;mineAnim;constructor(e,s,n){super();const a=.5;N.forEach(o=>{const c=new l(H[o]);c.anchor.set(.5),c.alpha=0,c.blendMode=B.ADD,this.standard[o]=c,this.addChild(c)}),e.on(this,"hit",o=>{if(s==o.columnNumber){const c=this.standard[o.judgement.id];if(!c)return;this.anims.forEach(d=>r.finish(d)),this.anims.clear(),this.anims.add(r.animate(c,{0:{alpha:.875,"scale.x":.8*a,"scale.y":.8*a},"0.5":{alpha:.875,"scale.x":1.1*a,"scale.y":1.1*a},1:{alpha:0,"scale.x":1.1*a,"scale.y":1.1*a}},.12))}}),e.on(this,"held",o=>{s==o.columnNumber&&(this.anims.forEach(c=>r.finish(c)),this.anims.clear(),this.anims.add(r.animate(this.standard.w0,{0:{alpha:.875,"scale.x":.8*a,"scale.y":.8*a},"0.5":{alpha:.875,"scale.x":1.1*a,"scale.y":1.1*a},1:{alpha:0,"scale.x":1.1*a,"scale.y":1.1*a}},.12)))}),e.on(this,"holdon",o=>{s==o.columnNumber&&(this.holdExplosion.visible=!0)}),e.on(this,"holdoff",o=>{s==o.columnNumber&&(this.holdExplosion.visible=!1)}),e.on(this,"rollon",o=>{s==o.columnNumber&&(this.holdExplosion.visible=!0)}),e.on(this,"rolloff",o=>{s==o.columnNumber&&(this.holdExplosion.visible=!1)}),e.onUpdate(this,()=>{this.holdExplosion.alpha=Math.sin(Date.now()/1e3*Math.PI*2*20)*.1+1}),this.holdExplosion.visible=!1,this.holdExplosion.anchor.set(.5),this.holdExplosion.scale.set(.5),this.addChild(this.holdExplosion),this.particles.alpha=0,this.particles.blendMode=B.ADD,this.particles.anchor.set(.5),e.on(this,"hit",o=>{if(s==o.columnNumber){if(this.particles.rotation=Math.random()*Math.PI*2,r.finish(this.particleAnim),!["w0","w1","w2","w3"].includes(o.judgement.id))return;this.particleAnim=r.animate(this.particles,{0:{alpha:.6,"scale.x":1*a,"scale.y":1*a},"0.7":{alpha:.6,"scale.x":1.2*a,"scale.y":1.2*a},1:{alpha:0,"scale.x":1.2*a,"scale.y":1.2*a}},.185,A(.16,.73,.63,.75))}}),this.addChild(this.particles),this.mine.anchor.x=.5,this.mine.scale.set(.5),this.mine.rotation=-C[n]*Math.PI/180,this.mine.animationSpeed=1/3,this.mine.alpha=0,this.addChild(this.mine),e.on(this,"hitmine",o=>{s==o.columnNumber&&(r.finish(this.mineAnim),this.mine.anchor.y=y.chart.reverse?1:0,this.mine.currentFrame=0,this.mine.play(),this.mineAnim=r.animate(this.mine,{0:{alpha:1},"0.5":{alpha:1},1:{alpha:0}},.6))})}}const Rt="/smeditor/assets/colors-63f923d2.png",$t="/smeditor/assets/mask-f1b4d033.png",Mt="/smeditor/assets/note-07e5d79f.png",Ut="/smeditor/assets/outline-72e881a7.png",Ft="/smeditor/assets/stroke-1f54ba14.png",Lt="/smeditor/assets/top-74da30ae.png",_={};["colors","mask","note","outline","stroke","top"].forEach(t=>_[t]=i.from(new URL(Object.assign({"./tap/colors.png":Rt,"./tap/mask.png":$t,"./tap/note.png":Mt,"./tap/outline.png":Ut,"./tap/stroke.png":Ft,"./tap/top.png":Lt})[`./tap/${t}.png`],self.location).href));const kt=b(_.top,4,1,384,384)[0],T=[-80,0,80];class p{static arrowFrameTex;static arrowFrameContainer=new g;static arrowTex;static arrowContainer=new g;static loaded=!1;static async initArrowTex(){if(!this.loaded){p.arrowFrameTex=I.create({width:64,height:64,resolution:y.performance.resolution}),p.arrowTex=I.create({width:64*3,height:64,resolution:y.performance.resolution});{const e=new l(_.note);e.width=64,e.height=64;const s=new l(_.outline);s.width=64,s.height=64;const n=new l(_.stroke);n.width=64,n.height=64,this.arrowFrameContainer.addChild(e,s,n)}for(let e=0;e<3;e++){const s=new l(this.arrowFrameTex);s.x=e*64;const n=new l(_.mask);n.scale.set(1/6),n.x=e*64,n.y=32,n.anchor.y=.5,n.alpha=1;const a=new $(_.colors,256,1024);a.tileScale.y=1/4,a.uvRespectAnchor=!0,a.x=e*64,a.y=32,a.tilePosition.y=128+T[e],a.anchor.y=.5,a.height=64,a.width=64,a.alpha=1,a.mask=n,a.name="c"+e;const o=new u(kt);o.scale.set(1/6),o.x=e*64,o.y=32,o.anchor.y=.5,o.alpha=1,o.name="t"+e,this.arrowContainer.addChild(s,a,n,o)}this.loaded=!0}}static setArrowTexTime(e){if(!this.loaded)return;const s=e.chartManager.chartView.getVisualBeat(),n=(s%1+1)%1,a=(s%4+4)%4;for(let o=0;o<3;o++)this.arrowContainer.getChildByName("c"+o).tilePosition.y=128+T[o]-a/4*256,this.arrowContainer.getChildByName("t"+o).currentFrame=Math.floor(n*4);e.renderer.render(p.arrowFrameContainer,{renderTexture:p.arrowFrameTex}),e.renderer.render(p.arrowContainer,{renderTexture:p.arrowTex})}static setNoteTex(e,s){let n=[4,8].indexOf(s?.quant??4);n==-1&&(n=2),e.texture=new i(p.arrowTex.baseTexture,new R(n*64,0,64,64))}}const Pt="/smeditor/assets/mine-335f4545.png",Ot="/smeditor/assets/spark-2c59cc0e.png",Dt="/smeditor/assets/receptor-a0a69b2b.png",St="/smeditor/assets/receptorFlash-c7675c53.png",jt=i.from(Dt),Vt=i.from(St),Yt=i.from(Pt),zt=b(i.from(Ot),4,4,160,128).flat(),Xt={Left:0,Down:5,Up:8,Right:13},h={},m={},w={Hold:{Active:i.from(new URL("/smeditor/assets/active-d06e5c33.png",self.location).href),Inactive:i.from(new URL("/smeditor/assets/inactive-a4aecb82.png",self.location).href)},Roll:{Active:i.from(new URL("/smeditor/assets/active-29dd632a.png",self.location).href),Inactive:i.from(new URL("/smeditor/assets/inactive-48f23de3.png",self.location).href)}};for(const t of["Left","Down","Up","Right"])for(const e of["Body","BottomCap"])for(const s of["Active","Inactive"])h[t]===void 0&&(h[t]={}),h[t][s]===void 0&&(h[t][s]={}),h[t][s][e]=i.from(new URL(Object.assign({"./hold/active.png":M,"./hold/downBodyActive.png":U,"./hold/downBodyInactive.png":F,"./hold/downBottomCapActive.png":L,"./hold/downBottomCapInactive.png":k,"./hold/inactive.png":P,"./hold/leftBodyActive.png":O,"./hold/leftBodyInactive.png":D,"./hold/leftBottomCapActive.png":S,"./hold/leftBottomCapInactive.png":j,"./hold/rightBodyActive.png":V,"./hold/rightBodyInactive.png":Y,"./hold/rightBottomCapActive.png":z,"./hold/rightBottomCapInactive.png":X,"./hold/upBodyActive.png":q,"./hold/upBodyInactive.png":J,"./hold/upBottomCapActive.png":Q,"./hold/upBottomCapInactive.png":W})[`./hold/${t.toLowerCase()}${e}${s}.png`],self.location).href),m[t]===void 0&&(m[t]={}),m[t][s]===void 0&&(m[t][s]={}),m[t][s][e]=i.from(new URL(Object.assign({"./roll/active.png":Z,"./roll/downBodyActive.png":G,"./roll/downBodyInactive.png":K,"./roll/downBottomCapActive.png":tt,"./roll/downBottomCapInactive.png":et,"./roll/inactive.png":ot,"./roll/leftBodyActive.png":st,"./roll/leftBodyInactive.png":at,"./roll/leftBottomCapActive.png":nt,"./roll/leftBottomCapInactive.png":it,"./roll/rightBodyActive.png":ct,"./roll/rightBodyInactive.png":lt,"./roll/rightBottomCapActive.png":rt,"./roll/rightBottomCapInactive.png":dt,"./roll/upBodyActive.png":pt,"./roll/upBodyInactive.png":ht,"./roll/upBottomCapActive.png":mt,"./roll/upBottomCapInactive.png":_t})[`./roll/${t.toLowerCase()}${e}${s}.png`],self.location).href);const C={Left:90,Down:0,Up:180,Right:-90},qt=["Receptor","Tap","Lift","Fake","Hold Inactive Head","Hold Active Head","Roll Inactive Head","Roll Active Head","NoteFlash"],Zt={elements:{Left:{Receptor:t=>{let e,s;const n=b(jt,2,1,404,404),a=new g,o=new u(n[0]);o.width=64,o.height=64,o.anchor.set(.5),t.noteskin.on(o,"ghosttap",d=>{d.columnNumber==t.columnNumber&&(r.finish(e),e=r.animate(o,{0:{alpha:.9,width:.85*64,height:.85*64},1:{alpha:1,width:64,height:64}},.11))});const c=new l(Vt);return c.blendMode=B.ADD,c.width=64,c.height=64,c.anchor.set(.5),c.alpha=0,t.noteskin.on(a,"press",d=>{d.columnNumber==t.columnNumber&&(r.finish(s),s=r.animate(c,{0:{alpha:0,width:.85*64,height:.85*64},1:{alpha:.6,width:64,height:64}},.12,A(.5,1,.89,1)))}),t.noteskin.on(a,"lift",d=>{d.columnNumber==t.columnNumber&&(r.finish(s),s=r.animate(c,{0:{alpha:"inherit",width:"inherit",height:"inherit"},1:{alpha:0,width:64*1.2,height:64}},.12,A(.11,0,.5,1)))}),t.noteskin.onUpdate(a,d=>{const x=d.chart.getNotedata()[0]?.beat;if(x===void 0||d.getVisualBeat(){const e=new l(i.WHITE);return p.setNoteTex(e,t.note),e.anchor.set(.5),e},NoteFlash:t=>new Et(t.noteskin,t.columnNumber,t.columnName),Fake:{element:"Tap"},Lift:{element:"Tap"},Mine:t=>{const e=new g,s=new l(Yt);s.anchor.set(.5),s.width=64,s.height=64,s.rotation=C[t.columnName]*Math.PI/180;const n=new u(zt);return n.anchor.set(.5),n.scale.set(.5),e.addChild(s,n),t.noteskin.onUpdate(e,a=>{const o=a.getVisualTime();n.currentFrame=((Math.floor(o*20)+Xt[t.columnName])%16+16)%16}),e},"Hold Active Head":()=>{const t=new l(w.Hold.Active);return t.anchor.set(.5),t.scale.set(1/6),t},"Hold Inactive Head":()=>{const t=new l(w.Hold.Inactive);return t.anchor.set(.5),t.scale.set(1/6),t},"Hold Active Body":t=>new f(h[t.columnName].Active.Body),"Hold Inactive Body":t=>new f(h[t.columnName].Inactive.Body),"Hold Active TopCap":()=>new l(i.EMPTY),"Hold Inactive TopCap":()=>new l(i.EMPTY),"Hold Active BottomCap":t=>new v(h[t.columnName].Active.BottomCap),"Hold Inactive BottomCap":t=>new v(h[t.columnName].Inactive.BottomCap),"Roll Active Head":()=>{const t=new l(w.Roll.Active);return t.anchor.set(.5),t.scale.set(1/6),t},"Roll Inactive Head":()=>{const t=new l(w.Roll.Inactive);return t.anchor.set(.5),t.scale.set(1/6),t},"Roll Active Body":t=>new f(m[t.columnName].Active.Body),"Roll Inactive Body":t=>new f(m[t.columnName].Inactive.Body),"Roll Active TopCap":()=>new l(i.EMPTY),"Roll Inactive TopCap":()=>new l(i.EMPTY),"Roll Active BottomCap":t=>new v(m[t.columnName].Active.BottomCap),"Roll Inactive BottomCap":t=>new v(m[t.columnName].Inactive.BottomCap)}},load:function(t,e){const s=t.columnName;t.columnName="Left";const n=this.loadElement(t,e);return qt.includes(t.element)&&(n.rotation=C[s]*Math.PI/180),n},init(){p.initArrowTex()},update(t){p.setArrowTexTime(t.chartManager.app)},metrics:{HoldBodyBottomOffset:-16,RollBodyBottomOffset:-16}};export{Zt as default,C as rotationMap}; +import{s as i,Z as b,b as g,H as l,Q as B,L as r,P as A,O as y,w as I,J as R,X as v}from"./ChartManager-beed98d8.js";import{A as u}from"./AnimatedSprite-b9500bfb.js";import{T as $,H as f}from"./HoldBody-b84029dd.js";const M="/smeditor/assets/active-d06e5c33.png",U="/smeditor/assets/downBodyActive-8cf886d3.png",F="/smeditor/assets/downBodyInactive-7465edd0.png",L="/smeditor/assets/downBottomCapActive-b10d1f0d.png",k="/smeditor/assets/downBottomCapInactive-12cafebe.png",P="/smeditor/assets/inactive-a4aecb82.png",O="/smeditor/assets/leftBodyActive-5d89f111.png",D="/smeditor/assets/leftBodyInactive-1110dc77.png",S="/smeditor/assets/leftBottomCapActive-f759c91c.png",j="/smeditor/assets/leftBottomCapInactive-a4ac7bba.png",V="/smeditor/assets/rightBodyActive-8af7624b.png",Y="/smeditor/assets/rightBodyInactive-695480aa.png",z="/smeditor/assets/rightBottomCapActive-6edeea1e.png",X="/smeditor/assets/rightBottomCapInactive-d674960e.png",q="/smeditor/assets/upBodyActive-c813881f.png",J="/smeditor/assets/upBodyInactive-0222237a.png",Q="/smeditor/assets/upBottomCapActive-19e4c05d.png",W="/smeditor/assets/upBottomCapInactive-23aae747.png",Z="/smeditor/assets/active-29dd632a.png",G="/smeditor/assets/downBodyActive-77f6502e.png",K="/smeditor/assets/downBodyInactive-a5759c62.png",tt="/smeditor/assets/downBottomCapActive-57ef4d54.png",et="/smeditor/assets/downBottomCapInactive-13ddf252.png",ot="/smeditor/assets/inactive-48f23de3.png",st="/smeditor/assets/leftBodyActive-fd4e902b.png",at="/smeditor/assets/leftBodyInactive-8fe6311e.png",nt="/smeditor/assets/leftBottomCapActive-057c49fb.png",it="/smeditor/assets/leftBottomCapInactive-df6350c7.png",ct="/smeditor/assets/rightBodyActive-751fadec.png",lt="/smeditor/assets/rightBodyInactive-46202369.png",rt="/smeditor/assets/rightBottomCapActive-a736d803.png",dt="/smeditor/assets/rightBottomCapInactive-a64cea2c.png",pt="/smeditor/assets/upBodyActive-b06d82f3.png",ht="/smeditor/assets/upBodyInactive-4ef75342.png",mt="/smeditor/assets/upBottomCapActive-07fb7c6e.png",_t="/smeditor/assets/upBottomCapInactive-75f78aac.png",gt="/smeditor/assets/hold-4cf23d59.png",vt="/smeditor/assets/mine-f6147b04.png",ft="/smeditor/assets/particles-18ec6c1d.png",wt="/smeditor/assets/w0-6f86addb.png",ut="/smeditor/assets/w1-c8c43b0f.png",bt="/smeditor/assets/w2-37282ba8.png",Bt="/smeditor/assets/w3-3c2ca2d8.png",At="/smeditor/assets/w4-ce0f95de.png",yt="/smeditor/assets/w5-23173d4f.png",Ct="/smeditor/assets/hold-4cf23d59.png",xt="/smeditor/assets/mine-f6147b04.png",It="/smeditor/assets/particles-18ec6c1d.png",Tt=i.from(Ct),Nt=b(i.from(xt),16,1,160,1024)[0],Ht=i.from(It),N=["w0","w1","w2","w3","w4","w5"],H={};N.forEach(t=>H[t]=i.from(new URL(Object.assign({"./flash/hold.png":gt,"./flash/mine.png":vt,"./flash/particles.png":ft,"./flash/w0.png":wt,"./flash/w1.png":ut,"./flash/w2.png":bt,"./flash/w3.png":Bt,"./flash/w4.png":At,"./flash/w5.png":yt})[`./flash/${t}.png`],self.location).href));class Et extends g{holdExplosion=new l(Tt);particles=new l(Ht);mine=new u(Nt);standard={};anims=new Set;particleAnim;mineAnim;constructor(e,s,n){super();const a=.5;N.forEach(o=>{const c=new l(H[o]);c.anchor.set(.5),c.alpha=0,c.blendMode=B.ADD,this.standard[o]=c,this.addChild(c)}),e.on(this,"hit",o=>{if(s==o.columnNumber){const c=this.standard[o.judgement.id];if(!c)return;this.anims.forEach(d=>r.finish(d)),this.anims.clear(),this.anims.add(r.animate(c,{0:{alpha:.875,"scale.x":.8*a,"scale.y":.8*a},"0.5":{alpha:.875,"scale.x":1.1*a,"scale.y":1.1*a},1:{alpha:0,"scale.x":1.1*a,"scale.y":1.1*a}},.12))}}),e.on(this,"held",o=>{s==o.columnNumber&&(this.anims.forEach(c=>r.finish(c)),this.anims.clear(),this.anims.add(r.animate(this.standard.w0,{0:{alpha:.875,"scale.x":.8*a,"scale.y":.8*a},"0.5":{alpha:.875,"scale.x":1.1*a,"scale.y":1.1*a},1:{alpha:0,"scale.x":1.1*a,"scale.y":1.1*a}},.12)))}),e.on(this,"holdon",o=>{s==o.columnNumber&&(this.holdExplosion.visible=!0)}),e.on(this,"holdoff",o=>{s==o.columnNumber&&(this.holdExplosion.visible=!1)}),e.on(this,"rollon",o=>{s==o.columnNumber&&(this.holdExplosion.visible=!0)}),e.on(this,"rolloff",o=>{s==o.columnNumber&&(this.holdExplosion.visible=!1)}),e.onUpdate(this,()=>{this.holdExplosion.alpha=Math.sin(Date.now()/1e3*Math.PI*2*20)*.1+1}),this.holdExplosion.visible=!1,this.holdExplosion.anchor.set(.5),this.holdExplosion.scale.set(.5),this.addChild(this.holdExplosion),this.particles.alpha=0,this.particles.blendMode=B.ADD,this.particles.anchor.set(.5),e.on(this,"hit",o=>{if(s==o.columnNumber){if(this.particles.rotation=Math.random()*Math.PI*2,r.finish(this.particleAnim),!["w0","w1","w2","w3"].includes(o.judgement.id))return;this.particleAnim=r.animate(this.particles,{0:{alpha:.6,"scale.x":1*a,"scale.y":1*a},"0.7":{alpha:.6,"scale.x":1.2*a,"scale.y":1.2*a},1:{alpha:0,"scale.x":1.2*a,"scale.y":1.2*a}},.185,A(.16,.73,.63,.75))}}),this.addChild(this.particles),this.mine.anchor.x=.5,this.mine.scale.set(.5),this.mine.rotation=-C[n]*Math.PI/180,this.mine.animationSpeed=1/3,this.mine.alpha=0,this.addChild(this.mine),e.on(this,"hitmine",o=>{s==o.columnNumber&&(r.finish(this.mineAnim),this.mine.anchor.y=y.chart.reverse?1:0,this.mine.currentFrame=0,this.mine.play(),this.mineAnim=r.animate(this.mine,{0:{alpha:1},"0.5":{alpha:1},1:{alpha:0}},.6))})}}const Rt="/smeditor/assets/colors-63f923d2.png",$t="/smeditor/assets/mask-f1b4d033.png",Mt="/smeditor/assets/note-07e5d79f.png",Ut="/smeditor/assets/outline-72e881a7.png",Ft="/smeditor/assets/stroke-1f54ba14.png",Lt="/smeditor/assets/top-74da30ae.png",_={};["colors","mask","note","outline","stroke","top"].forEach(t=>_[t]=i.from(new URL(Object.assign({"./tap/colors.png":Rt,"./tap/mask.png":$t,"./tap/note.png":Mt,"./tap/outline.png":Ut,"./tap/stroke.png":Ft,"./tap/top.png":Lt})[`./tap/${t}.png`],self.location).href));const kt=b(_.top,4,1,384,384)[0],T=[-80,0,80];class p{static arrowFrameTex;static arrowFrameContainer=new g;static arrowTex;static arrowContainer=new g;static loaded=!1;static async initArrowTex(){if(!this.loaded){p.arrowFrameTex=I.create({width:64,height:64,resolution:y.performance.resolution}),p.arrowTex=I.create({width:64*3,height:64,resolution:y.performance.resolution});{const e=new l(_.note);e.width=64,e.height=64;const s=new l(_.outline);s.width=64,s.height=64;const n=new l(_.stroke);n.width=64,n.height=64,this.arrowFrameContainer.addChild(e,s,n)}for(let e=0;e<3;e++){const s=new l(this.arrowFrameTex);s.x=e*64;const n=new l(_.mask);n.scale.set(1/6),n.x=e*64,n.y=32,n.anchor.y=.5,n.alpha=1;const a=new $(_.colors,256,1024);a.tileScale.y=1/4,a.uvRespectAnchor=!0,a.x=e*64,a.y=32,a.tilePosition.y=128+T[e],a.anchor.y=.5,a.height=64,a.width=64,a.alpha=1,a.mask=n,a.name="c"+e;const o=new u(kt);o.scale.set(1/6),o.x=e*64,o.y=32,o.anchor.y=.5,o.alpha=1,o.name="t"+e,this.arrowContainer.addChild(s,a,n,o)}this.loaded=!0}}static setArrowTexTime(e){if(!this.loaded)return;const s=e.chartManager.chartView.getVisualBeat(),n=(s%1+1)%1,a=(s%4+4)%4;for(let o=0;o<3;o++)this.arrowContainer.getChildByName("c"+o).tilePosition.y=128+T[o]-a/4*256,this.arrowContainer.getChildByName("t"+o).currentFrame=Math.floor(n*4);e.renderer.render(p.arrowFrameContainer,{renderTexture:p.arrowFrameTex}),e.renderer.render(p.arrowContainer,{renderTexture:p.arrowTex})}static setNoteTex(e,s){let n=[4,8].indexOf(s?.quant??4);n==-1&&(n=2),e.texture=new i(p.arrowTex.baseTexture,new R(n*64,0,64,64))}}const Pt="/smeditor/assets/mine-335f4545.png",Ot="/smeditor/assets/spark-2c59cc0e.png",Dt="/smeditor/assets/receptor-a0a69b2b.png",St="/smeditor/assets/receptorFlash-c7675c53.png",jt=i.from(Dt),Vt=i.from(St),Yt=i.from(Pt),zt=b(i.from(Ot),4,4,160,128).flat(),Xt={Left:0,Down:5,Up:8,Right:13},h={},m={},w={Hold:{Active:i.from(new URL("/smeditor/assets/active-d06e5c33.png",self.location).href),Inactive:i.from(new URL("/smeditor/assets/inactive-a4aecb82.png",self.location).href)},Roll:{Active:i.from(new URL("/smeditor/assets/active-29dd632a.png",self.location).href),Inactive:i.from(new URL("/smeditor/assets/inactive-48f23de3.png",self.location).href)}};for(const t of["Left","Down","Up","Right"])for(const e of["Body","BottomCap"])for(const s of["Active","Inactive"])h[t]===void 0&&(h[t]={}),h[t][s]===void 0&&(h[t][s]={}),h[t][s][e]=i.from(new URL(Object.assign({"./hold/active.png":M,"./hold/downBodyActive.png":U,"./hold/downBodyInactive.png":F,"./hold/downBottomCapActive.png":L,"./hold/downBottomCapInactive.png":k,"./hold/inactive.png":P,"./hold/leftBodyActive.png":O,"./hold/leftBodyInactive.png":D,"./hold/leftBottomCapActive.png":S,"./hold/leftBottomCapInactive.png":j,"./hold/rightBodyActive.png":V,"./hold/rightBodyInactive.png":Y,"./hold/rightBottomCapActive.png":z,"./hold/rightBottomCapInactive.png":X,"./hold/upBodyActive.png":q,"./hold/upBodyInactive.png":J,"./hold/upBottomCapActive.png":Q,"./hold/upBottomCapInactive.png":W})[`./hold/${t.toLowerCase()}${e}${s}.png`],self.location).href),m[t]===void 0&&(m[t]={}),m[t][s]===void 0&&(m[t][s]={}),m[t][s][e]=i.from(new URL(Object.assign({"./roll/active.png":Z,"./roll/downBodyActive.png":G,"./roll/downBodyInactive.png":K,"./roll/downBottomCapActive.png":tt,"./roll/downBottomCapInactive.png":et,"./roll/inactive.png":ot,"./roll/leftBodyActive.png":st,"./roll/leftBodyInactive.png":at,"./roll/leftBottomCapActive.png":nt,"./roll/leftBottomCapInactive.png":it,"./roll/rightBodyActive.png":ct,"./roll/rightBodyInactive.png":lt,"./roll/rightBottomCapActive.png":rt,"./roll/rightBottomCapInactive.png":dt,"./roll/upBodyActive.png":pt,"./roll/upBodyInactive.png":ht,"./roll/upBottomCapActive.png":mt,"./roll/upBottomCapInactive.png":_t})[`./roll/${t.toLowerCase()}${e}${s}.png`],self.location).href);const C={Left:90,Down:0,Up:180,Right:-90},qt=["Receptor","Tap","Lift","Fake","Hold Inactive Head","Hold Active Head","Roll Inactive Head","Roll Active Head","NoteFlash"],Zt={elements:{Left:{Receptor:t=>{let e,s;const n=b(jt,2,1,404,404),a=new g,o=new u(n[0]);o.width=64,o.height=64,o.anchor.set(.5),t.noteskin.on(o,"ghosttap",d=>{d.columnNumber==t.columnNumber&&(r.finish(e),e=r.animate(o,{0:{alpha:.9,width:.85*64,height:.85*64},1:{alpha:1,width:64,height:64}},.11))});const c=new l(Vt);return c.blendMode=B.ADD,c.width=64,c.height=64,c.anchor.set(.5),c.alpha=0,t.noteskin.on(a,"press",d=>{d.columnNumber==t.columnNumber&&(r.finish(s),s=r.animate(c,{0:{alpha:0,width:.85*64,height:.85*64},1:{alpha:.6,width:64,height:64}},.12,A(.5,1,.89,1)))}),t.noteskin.on(a,"lift",d=>{d.columnNumber==t.columnNumber&&(r.finish(s),s=r.animate(c,{0:{alpha:"inherit",width:"inherit",height:"inherit"},1:{alpha:0,width:64*1.2,height:64}},.12,A(.11,0,.5,1)))}),t.noteskin.onUpdate(a,d=>{const x=d.chart.getNotedata()[0]?.beat;if(x===void 0||d.getVisualBeat(){const e=new l(i.WHITE);return p.setNoteTex(e,t.note),e.anchor.set(.5),e},NoteFlash:t=>new Et(t.noteskin,t.columnNumber,t.columnName),Fake:{element:"Tap"},Lift:{element:"Tap"},Mine:t=>{const e=new g,s=new l(Yt);s.anchor.set(.5),s.width=64,s.height=64,s.rotation=C[t.columnName]*Math.PI/180;const n=new u(zt);return n.anchor.set(.5),n.scale.set(.5),e.addChild(s,n),t.noteskin.onUpdate(e,a=>{const o=a.getVisualTime();n.currentFrame=((Math.floor(o*20)+Xt[t.columnName])%16+16)%16}),e},"Hold Active Head":()=>{const t=new l(w.Hold.Active);return t.anchor.set(.5),t.scale.set(1/6),t},"Hold Inactive Head":()=>{const t=new l(w.Hold.Inactive);return t.anchor.set(.5),t.scale.set(1/6),t},"Hold Active Body":t=>new f(h[t.columnName].Active.Body),"Hold Inactive Body":t=>new f(h[t.columnName].Inactive.Body),"Hold Active TopCap":()=>new l(i.EMPTY),"Hold Inactive TopCap":()=>new l(i.EMPTY),"Hold Active BottomCap":t=>new v(h[t.columnName].Active.BottomCap),"Hold Inactive BottomCap":t=>new v(h[t.columnName].Inactive.BottomCap),"Roll Active Head":()=>{const t=new l(w.Roll.Active);return t.anchor.set(.5),t.scale.set(1/6),t},"Roll Inactive Head":()=>{const t=new l(w.Roll.Inactive);return t.anchor.set(.5),t.scale.set(1/6),t},"Roll Active Body":t=>new f(m[t.columnName].Active.Body),"Roll Inactive Body":t=>new f(m[t.columnName].Inactive.Body),"Roll Active TopCap":()=>new l(i.EMPTY),"Roll Inactive TopCap":()=>new l(i.EMPTY),"Roll Active BottomCap":t=>new v(m[t.columnName].Active.BottomCap),"Roll Inactive BottomCap":t=>new v(m[t.columnName].Inactive.BottomCap)}},load:function(t,e){const s=t.columnName;t.columnName="Left";const n=this.loadElement(t,e);return qt.includes(t.element)&&(n.rotation=C[s]*Math.PI/180),n},init(){p.initArrowTex()},update(t){p.setArrowTexTime(t.chartManager.app)},metrics:{HoldBodyBottomOffset:-16,RollBodyBottomOffset:-16}};export{Zt as default,C as rotationMap}; diff --git a/Noteskin-0eb7987c.js b/Noteskin-4cb99da6.js similarity index 99% rename from Noteskin-0eb7987c.js rename to Noteskin-4cb99da6.js index a5c73c08..9d294525 100644 --- a/Noteskin-0eb7987c.js +++ b/Noteskin-4cb99da6.js @@ -1 +1 @@ -import{s as B,b as n,Z as Q,H as C,Q as s,L as a,X as D}from"./ChartManager-0bba2271.js";import{A as i}from"./AnimatedSprite-d8e8da79.js";import{H as h}from"./HoldBody-2ee2d035.js";const w="/smeditor/assets/hold-3ccaaf09.png",E="/smeditor/assets/mine-590d445e.png",l=B.from(w),f=B.from(E);class c extends n{hold=new i(Q(l,2,1,72,128)[0]);anims=new Set;constructor(e,A){super(),e.on(this,"holdon",g=>{A==g.columnNumber&&(this.hold.visible=!0)}),e.on(this,"holdoff",g=>{A==g.columnNumber&&(this.hold.visible=!1)}),e.on(this,"rollon",g=>{A==g.columnNumber&&(this.hold.visible=!0)}),e.on(this,"rolloff",g=>{A==g.columnNumber&&(this.hold.visible=!1)}),e.on(this,"hitmine",g=>{if(A==g.columnNumber){const t=new C(f);t.alpha=0,t.anchor.set(.5),t.blendMode=s.ADD,this.addChild(t),a.animate(t,{0:{alpha:1,rotation:0},"0.5":{alpha:1,rotation:90*Math.PI/180},1:{alpha:0,rotation:180*Math.PI/180}},.4,void 0,()=>t.destroy())}}),e.onUpdate(this,()=>{this.hold.alpha=Math.sin(Date.now()/1e3*Math.PI*2*20)*.1+1}),this.hold.visible=!1,this.hold.anchor.set(.5),this.addChild(this.hold)}}const r="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAACACAMAAACMX59YAAAAIVBMVEUAAAD///+6urq4uLizs7OoqKinp6ecnJyVlZWUlJSIiIh18TD6AAAAAXRSTlMAQObYZgAAAKhJREFUeNrt2AMCA0EQRNFRVXD/A8fmWv/F6vTuCOGj+CBUMGgAAMDw4p4UKpHiXpsB3HsGfg7g1/+QfL68furfGUiWrnc1MogPfmZgVQsgtZ2Bqmbg1wwq8XA1sf1DAACM3+v8oILv84Pxr97ZPwAAxL2UQyUlNVwzyQ2XfW5//0DV5gevAfx9ftDH8n/wAJUPYeYVqf39AwAA+wfrtVbbzf52fAyf7ADSzwa2IX7vawAAAABJRU5ErkJggg==",I="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAACAAgMAAADG74f5AAAACVBMVEUAAAAAAACoqKjq2/gjAAAAAXRSTlMAQObYZgAAACRJREFUeNpjGAWDAjBGNSA4TEsdhrfAKBgFo2C0/BgtP0Y6AACvVTE5zX7vswAAAABJRU5ErkJggg==",d="data:image/png;base64,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",P="data:image/png;base64,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",v="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgAAAABACAMAAABbYT+NAAAAOVBMVEUAAAAAAAAICAgoKChAQEBfAABvAACRAACYmJieAACoqKi4uLi7AADQ0NDRAADg4ODpAADw8PD////pSTDZAAAAAXRSTlMAQObYZgAAATxJREFUeNrt2EGOgzAMQNGxSVxI0hK4/2Fnokx7AHuBVP7bf0W2WgT5AQAAAAAAAAAAAAAAAAAAAAAAAPB9ZLhrTy+q2bKKBPoc6SXcD9Hz4/Nftv8lpbQEelv3Y19NxdnnXmrp2d+33ntz96K2bZupBM+Pz3/R/lP560savYfa8xyeJr4+r3VYs3OA/OrDy9vrow0PjZ8fn9+//+rdf5r9M3n3t57TquLqe526s299as7e2mTR8+PzX7H/pZxTWcT3B9jPac/i6kudirPvb75etzZtGjw/Pv8V+0+fPvl+AHac02G+Aerb/X4A8fnj+0+fPvEE4AnAOwDvAP6vAA2+BevNvwLUuf96DtU0+BWg3ANwD+AhEryJkjvfBMb7+P7/bwK5C6cHAAAAAAAAAAAAAAAAAAAAAADAl/kFHH4jM43eaVYAAAAASUVORK5CYII=",F="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAABAAQMAAADoGO08AAAABlBMVEUAAAD///+l2Z/dAAAAAXRSTlMAQObYZgAAANlJREFUeNrN04GGpWAYBuAnIUAAH47ObRzE3lbABuxtBexttBYHsAF7MKYBL/LDYDA/eSjpy/u9vuiMx1X311XzfNUyXXWMV7t9WCHqt36DaFi7HaKBPX7nG8P5iz/nHo3nb/6eRzR1T57rEt38559HVH7yrqLygzcVlTsvFZWRQ0VlYFdR6dlUVDpWFRVQ0Q14RMk1Sq5Rco2Sa5RcIweMRAtMRDPMRBMsRCMcRMNKtxP12/WSp5G8H/OFmBlipoz5j9hscrPrbRvavrSNajvXtrLt7bCLnzkfnOqGiVWVifMAAAAASUVORK5CYII=",H="data:image/png;base64,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",M=B.from(F),U=Q(B.from(v),8,1,64,64)[0],m=Q(B.from(H),1,8,64,64),p=Q(B.from(d),1,8,64,64),u=Q(B.from(P),1,8,64,64),K=B.from(I),R=B.from(r),X={Left:90,Down:0,Up:180,Right:-90,UpLeft:135,UpRight:-135,DownRight:-45,DownLeft:45},L=["Receptor","Tap","Lift","Fake","Hold Inactive Head","Hold Active Head","Roll Inactive Head","Roll Active Head","NoteFlash"],Y={elements:{Left:{Receptor:o=>{let e;const A=new i(Q(M,2,1,64,64)[0]);return A.width=64,A.height=64,A.anchor.set(.5),o.noteskin.on(A,"ghosttap",g=>{g.columnNumber==o.columnNumber&&(a.finish(e),e=a.animate(A,{0:{alpha:1.2,width:48,height:48},1:{alpha:1,width:64,height:64}},.06))}),o.noteskin.onUpdate(A,g=>{const t=(g.getVisualBeat()%1+1)%1;A.currentFrame=t<.2?0:1}),A},Tap:o=>{const e=m[Math.min([4,8,12,16,24,32,48,64,96,192].indexOf(o.note?.quant??4)??0,7)],A=new C(e[0]);return A.anchor.set(.5),A.width=64,A.height=64,A},NoteFlash:o=>new c(o.noteskin,o.columnNumber),Fake:{element:"Tap"},Lift:o=>{const e=u[Math.min([4,8,12,16,24,32,48,64,96,192].indexOf(o.note?.quant??4)??0,7)],A=new C(e[0]);return A.anchor.set(.5),A.width=64,A.height=64,A},Mine:o=>{const e=new i(U);return e.anchor.set(.5),e.width=64,e.height=64,o.noteskin.onUpdate(e,A=>e.currentFrame=Math.floor((A.getVisualBeat()%4+4)%4*2)),e},"Hold Active Head":o=>{const e=p[Math.min([4,8,12,16,24,32,48,64,96,192].indexOf(o.note?.quant??4)??0,7)],A=new C(e[0]);return A.anchor.set(.5),A.width=64,A.height=64,A},"Hold Inactive Head":{element:"Tap"},"Hold Active Body":()=>new h(K),"Hold Inactive Body":{element:"Hold Active Body"},"Hold Active TopCap":()=>new C(B.EMPTY),"Hold Inactive TopCap":()=>new C(B.EMPTY),"Hold Active BottomCap":()=>new D(B.EMPTY),"Hold Inactive BottomCap":{element:"Hold Active BottomCap"},"Roll Active Head":{element:"Hold Active Head"},"Roll Inactive Head":{element:"Tap"},"Roll Active Body":()=>new h(R),"Roll Inactive Body":{element:"Roll Active Body"},"Roll Active TopCap":()=>new C(B.EMPTY),"Roll Inactive TopCap":()=>new C(B.EMPTY),"Roll Active BottomCap":()=>new D(B.EMPTY),"Roll Inactive BottomCap":{element:"Roll Active BottomCap"}}},load:function(o,e){const A=o.columnName;o.columnName="Left";const g=this.loadElement(o,e);return L.includes(o.element)&&(g.rotation=X[A]*Math.PI/180),g},hideIcons:["Lift"]};export{Y as default}; +import{s as B,b as n,Z as Q,H as C,Q as s,L as a,X as D}from"./ChartManager-beed98d8.js";import{A as i}from"./AnimatedSprite-b9500bfb.js";import{H as h}from"./HoldBody-b84029dd.js";const w="/smeditor/assets/hold-3ccaaf09.png",E="/smeditor/assets/mine-590d445e.png",l=B.from(w),f=B.from(E);class c extends n{hold=new i(Q(l,2,1,72,128)[0]);anims=new Set;constructor(e,A){super(),e.on(this,"holdon",g=>{A==g.columnNumber&&(this.hold.visible=!0)}),e.on(this,"holdoff",g=>{A==g.columnNumber&&(this.hold.visible=!1)}),e.on(this,"rollon",g=>{A==g.columnNumber&&(this.hold.visible=!0)}),e.on(this,"rolloff",g=>{A==g.columnNumber&&(this.hold.visible=!1)}),e.on(this,"hitmine",g=>{if(A==g.columnNumber){const t=new C(f);t.alpha=0,t.anchor.set(.5),t.blendMode=s.ADD,this.addChild(t),a.animate(t,{0:{alpha:1,rotation:0},"0.5":{alpha:1,rotation:90*Math.PI/180},1:{alpha:0,rotation:180*Math.PI/180}},.4,void 0,()=>t.destroy())}}),e.onUpdate(this,()=>{this.hold.alpha=Math.sin(Date.now()/1e3*Math.PI*2*20)*.1+1}),this.hold.visible=!1,this.hold.anchor.set(.5),this.addChild(this.hold)}}const r="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAACACAMAAACMX59YAAAAIVBMVEUAAAD///+6urq4uLizs7OoqKinp6ecnJyVlZWUlJSIiIh18TD6AAAAAXRSTlMAQObYZgAAAKhJREFUeNrt2AMCA0EQRNFRVXD/A8fmWv/F6vTuCOGj+CBUMGgAAMDw4p4UKpHiXpsB3HsGfg7g1/+QfL68furfGUiWrnc1MogPfmZgVQsgtZ2Bqmbg1wwq8XA1sf1DAACM3+v8oILv84Pxr97ZPwAAxL2UQyUlNVwzyQ2XfW5//0DV5gevAfx9ftDH8n/wAJUPYeYVqf39AwAA+wfrtVbbzf52fAyf7ADSzwa2IX7vawAAAABJRU5ErkJggg==",I="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAACAAgMAAADG74f5AAAACVBMVEUAAAAAAACoqKjq2/gjAAAAAXRSTlMAQObYZgAAACRJREFUeNpjGAWDAjBGNSA4TEsdhrfAKBgFo2C0/BgtP0Y6AACvVTE5zX7vswAAAABJRU5ErkJggg==",d="data:image/png;base64,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",P="data:image/png;base64,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",v="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgAAAABACAMAAABbYT+NAAAAOVBMVEUAAAAAAAAICAgoKChAQEBfAABvAACRAACYmJieAACoqKi4uLi7AADQ0NDRAADg4ODpAADw8PD////pSTDZAAAAAXRSTlMAQObYZgAAATxJREFUeNrt2EGOgzAMQNGxSVxI0hK4/2Fnokx7AHuBVP7bf0W2WgT5AQAAAAAAAAAAAAAAAAAAAAAAAPB9ZLhrTy+q2bKKBPoc6SXcD9Hz4/Nftv8lpbQEelv3Y19NxdnnXmrp2d+33ntz96K2bZupBM+Pz3/R/lP560savYfa8xyeJr4+r3VYs3OA/OrDy9vrow0PjZ8fn9+//+rdf5r9M3n3t57TquLqe526s299as7e2mTR8+PzX7H/pZxTWcT3B9jPac/i6kudirPvb75etzZtGjw/Pv8V+0+fPvl+AHac02G+Aerb/X4A8fnj+0+fPvEE4AnAOwDvAP6vAA2+BevNvwLUuf96DtU0+BWg3ANwD+AhEryJkjvfBMb7+P7/bwK5C6cHAAAAAAAAAAAAAAAAAAAAAADAl/kFHH4jM43eaVYAAAAASUVORK5CYII=",F="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAABAAQMAAADoGO08AAAABlBMVEUAAAD///+l2Z/dAAAAAXRSTlMAQObYZgAAANlJREFUeNrN04GGpWAYBuAnIUAAH47ObRzE3lbABuxtBexttBYHsAF7MKYBL/LDYDA/eSjpy/u9vuiMx1X311XzfNUyXXWMV7t9WCHqt36DaFi7HaKBPX7nG8P5iz/nHo3nb/6eRzR1T57rEt38559HVH7yrqLygzcVlTsvFZWRQ0VlYFdR6dlUVDpWFRVQ0Q14RMk1Sq5Rco2Sa5RcIweMRAtMRDPMRBMsRCMcRMNKtxP12/WSp5G8H/OFmBlipoz5j9hscrPrbRvavrSNajvXtrLt7bCLnzkfnOqGiVWVifMAAAAASUVORK5CYII=",H="data:image/png;base64,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",M=B.from(F),U=Q(B.from(v),8,1,64,64)[0],m=Q(B.from(H),1,8,64,64),p=Q(B.from(d),1,8,64,64),u=Q(B.from(P),1,8,64,64),K=B.from(I),R=B.from(r),X={Left:90,Down:0,Up:180,Right:-90,UpLeft:135,UpRight:-135,DownRight:-45,DownLeft:45},L=["Receptor","Tap","Lift","Fake","Hold Inactive Head","Hold Active Head","Roll Inactive Head","Roll Active Head","NoteFlash"],Y={elements:{Left:{Receptor:o=>{let e;const A=new i(Q(M,2,1,64,64)[0]);return A.width=64,A.height=64,A.anchor.set(.5),o.noteskin.on(A,"ghosttap",g=>{g.columnNumber==o.columnNumber&&(a.finish(e),e=a.animate(A,{0:{alpha:1.2,width:48,height:48},1:{alpha:1,width:64,height:64}},.06))}),o.noteskin.onUpdate(A,g=>{const t=(g.getVisualBeat()%1+1)%1;A.currentFrame=t<.2?0:1}),A},Tap:o=>{const e=m[Math.min([4,8,12,16,24,32,48,64,96,192].indexOf(o.note?.quant??4)??0,7)],A=new C(e[0]);return A.anchor.set(.5),A.width=64,A.height=64,A},NoteFlash:o=>new c(o.noteskin,o.columnNumber),Fake:{element:"Tap"},Lift:o=>{const e=u[Math.min([4,8,12,16,24,32,48,64,96,192].indexOf(o.note?.quant??4)??0,7)],A=new C(e[0]);return A.anchor.set(.5),A.width=64,A.height=64,A},Mine:o=>{const e=new i(U);return e.anchor.set(.5),e.width=64,e.height=64,o.noteskin.onUpdate(e,A=>e.currentFrame=Math.floor((A.getVisualBeat()%4+4)%4*2)),e},"Hold Active Head":o=>{const e=p[Math.min([4,8,12,16,24,32,48,64,96,192].indexOf(o.note?.quant??4)??0,7)],A=new C(e[0]);return A.anchor.set(.5),A.width=64,A.height=64,A},"Hold Inactive Head":{element:"Tap"},"Hold Active Body":()=>new h(K),"Hold Inactive Body":{element:"Hold Active Body"},"Hold Active TopCap":()=>new C(B.EMPTY),"Hold Inactive TopCap":()=>new C(B.EMPTY),"Hold Active BottomCap":()=>new D(B.EMPTY),"Hold Inactive BottomCap":{element:"Hold Active BottomCap"},"Roll Active Head":{element:"Hold Active Head"},"Roll Inactive Head":{element:"Tap"},"Roll Active Body":()=>new h(R),"Roll Inactive Body":{element:"Roll Active Body"},"Roll Active TopCap":()=>new C(B.EMPTY),"Roll Inactive TopCap":()=>new C(B.EMPTY),"Roll Active BottomCap":()=>new D(B.EMPTY),"Roll Inactive BottomCap":{element:"Roll Active BottomCap"}}},load:function(o,e){const A=o.columnName;o.columnName="Left";const g=this.loadElement(o,e);return L.includes(o.element)&&(g.rotation=X[A]*Math.PI/180),g},hideIcons:["Lift"]};export{Y as default}; diff --git a/Noteskin-4b0e23b8.js b/Noteskin-50fcabf7.js similarity index 99% rename from Noteskin-4b0e23b8.js rename to Noteskin-50fcabf7.js index 8181d15c..ea75ef59 100644 --- a/Noteskin-4b0e23b8.js +++ b/Noteskin-50fcabf7.js @@ -1,4 +1,4 @@ -import{s as a,Z as T,u,v as Q,b as d,w as C,O as f,x as E,y as N,z as y,H as r,J as D,V as B,L as c,Q as v,X as p,Y as H}from"./ChartManager-0bba2271.js";import{A as I}from"./AnimatedSprite-d8e8da79.js";import{H as h}from"./HoldBody-2ee2d035.js";const P="/smeditor/assets/frame-d599a2fe.png",Y="/smeditor/assets/parts-b37af2cf.png",Z=`precision mediump float; +import{s as a,Z as T,u,v as Q,b as d,w as C,O as f,x as E,y as N,z as y,H as r,J as D,V as B,L as c,Q as v,X as p,Y as H}from"./ChartManager-beed98d8.js";import{A as I}from"./AnimatedSprite-b9500bfb.js";import{H as h}from"./HoldBody-b84029dd.js";const P="/smeditor/assets/frame-d599a2fe.png",Y="/smeditor/assets/parts-b37af2cf.png",Z=`precision mediump float; varying vec2 vUvs; diff --git a/Noteskin-4623e307.js b/Noteskin-66177a43.js similarity index 99% rename from Noteskin-4623e307.js rename to Noteskin-66177a43.js index 94d85872..9ff1c29e 100644 --- a/Noteskin-4623e307.js +++ b/Noteskin-66177a43.js @@ -1,4 +1,4 @@ -import{s as a,Z as T,u as B,v as N,b as p,w as f,O as u,x as y,y as V,z as E,H as r,J as Q,V as x,L as c,Q as w,X as h,Y as L}from"./ChartManager-0bba2271.js";import{A as C}from"./AnimatedSprite-d8e8da79.js";import{H as m}from"./HoldBody-2ee2d035.js";const H="/smeditor/assets/frame-d599a2fe.png",P="/smeditor/assets/parts-b37af2cf.png",b=`precision mediump float; +import{s as a,Z as T,u as B,v as N,b as p,w as f,O as u,x as y,y as V,z as E,H as r,J as Q,V as x,L as c,Q as w,X as h,Y as L}from"./ChartManager-beed98d8.js";import{A as C}from"./AnimatedSprite-b9500bfb.js";import{H as m}from"./HoldBody-b84029dd.js";const H="/smeditor/assets/frame-d599a2fe.png",P="/smeditor/assets/parts-b37af2cf.png",b=`precision mediump float; varying vec2 vUvs; diff --git a/Noteskin-008db546.js b/Noteskin-771aeac1.js similarity index 97% rename from Noteskin-008db546.js rename to Noteskin-771aeac1.js index 54ebe8b1..5cf3b78e 100644 --- a/Noteskin-008db546.js +++ b/Noteskin-771aeac1.js @@ -1 +1 @@ -import{Z as d,s as i,b as f,w as u,O as T,J as g,H as l,Q as m,L as p,_ as R}from"./ChartManager-0bba2271.js";import{A as w}from"./AnimatedSprite-d8e8da79.js";import{A as U}from"./HoldBody-2ee2d035.js";const L="/smeditor/assets/Center-df4c129b.png",B="/smeditor/assets/DownLeft-63c88ff1.png",y="/smeditor/assets/DownRight-bcd0e463.png",M="/smeditor/assets/UpLeft-ef9a2609.png",O="/smeditor/assets/UpRight-7924deeb.png",I="/smeditor/assets/Center-461a85de.png",E="/smeditor/assets/DownLeft-4943410c.png",S="/smeditor/assets/DownRight-d5c3b98a.png",F="/smeditor/assets/UpLeft-be2bb52b.png",$="/smeditor/assets/UpRight-2e4dc3f1.png",N="/smeditor/assets/Center-274a1642.png",P="/smeditor/assets/DownLeft-15647c81.png",V="/smeditor/assets/DownRight-9aba7559.png",j="/smeditor/assets/UpLeft-36744666.png",k="/smeditor/assets/UpRight-af6dd110.png",v={},c=["DownLeft","UpLeft","Center","UpRight","DownRight"];for(const t of c)v[t]=d(i.from(new URL(Object.assign({"./tap/Center.png":I,"./tap/DownLeft.png":E,"./tap/DownRight.png":S,"./tap/UpLeft.png":F,"./tap/UpRight.png":$})[`./tap/${t}.png`],self.location).href),3,2,96,96).flat();const D={};for(const t of c)D[t]=d(i.from(new URL(Object.assign({"./roll/Center.png":N,"./roll/DownLeft.png":P,"./roll/DownRight.png":V,"./roll/UpLeft.png":j,"./roll/UpRight.png":k})[`./roll/${t}.png`],self.location).href),3,2,96,96).flat();const Y=d(i.from(new URL("/smeditor/assets/mine-0e34ec01.png",self.location).href),3,2,96,96).flat();class a{static noteTex;static noteContainer=new f;static rollTex;static rollContainer=new f;static mineTex;static mine;static loaded=!1;static async initArrowTex(){if(!this.loaded){a.noteTex=u.create({width:96*5,height:96,resolution:T.performance.resolution}),a.rollTex=u.create({width:96*5,height:96,resolution:T.performance.resolution}),a.mineTex=u.create({width:96,height:96,resolution:T.performance.resolution});for(const e of c)this.createSprite(this.noteContainer,e,v);for(const e of c)this.createSprite(this.rollContainer,e,D);this.mine=new w(Y),this.loaded=!0}}static createSprite(e,o,n){const s=c.indexOf(o)*96,r=new w(n[o]);r.x=s,e.addChild(r)}static setArrowTexTime(e){if(!this.loaded)return;const o=e.chartManager.chartView.getVisualTime(),n=Math.floor((o%.3+.3)%.3/.3*6);this.noteContainer.children.forEach(s=>s.currentFrame=n),this.rollContainer.children.forEach(s=>s.currentFrame=n),this.mine.currentFrame=n,e.renderer.render(a.noteContainer,{renderTexture:a.noteTex}),e.renderer.render(a.rollContainer,{renderTexture:a.rollTex}),e.renderer.render(a.mine,{renderTexture:a.mineTex})}static setNoteTex(e,o,n){if(o===void 0)return i.WHITE;if(o.type=="Mine")e.texture=this.mineTex;else{const s=c.indexOf(n)*96;e.texture=new i(this.noteTex.baseTexture,new g(s,0,96,96))}}static setRollTex(e,o){const n=c.indexOf(o)*96;e.texture=new i(this.rollTex.baseTexture,new g(n,0,96,96))}}const W="/smeditor/assets/receptors-5a0beefb.png",J="/smeditor/assets/flash-d0eff0a1.png",z="/smeditor/assets/mine-590d445e.png",Q="/smeditor/assets/press-55cccb8c.png",Z=d(i.from(J),5,1,128,128)[0],q=i.from(z),C=d(i.from(Q),5,2,96,96),G=["w0","w1","w2","w3"];class K extends f{press;pressAnim;hitContainer=new f;tap;note;flash;hitAnim;anims=new Set;constructor(e,o,n){super();const s=1/1.5;this.press=new l(C[1][_.indexOf(o)]),this.press.alpha=0,this.press.anchor.set(.5),this.tap=new l(C[0][_.indexOf(o)]),this.tap.blendMode=m.ADD,this.tap.scale.set(s),this.tap.anchor.set(.5),this.note=new w(v[o]),this.note.scale.set(s),this.note.blendMode=m.ADD,this.note.animationSpeed=1/3,this.note.play(),this.note.anchor.set(.5),this.flash=new w(Z),this.flash.scale.set(2),this.flash.blendMode=m.ADD,this.flash.animationSpeed=1/3,this.flash.loop=!1,this.flash.visible=!1,this.flash.anchor.set(.5),this.flash.onComplete=()=>{this.flash.visible=!1,this.flash.stop()},this.hitContainer.alpha=0,this.hitContainer.addChild(this.tap,this.note),e.on(this,"ghosttap",r=>{n==r.columnNumber&&(p.finish(this.pressAnim),this.pressAnim=p.animate(this.press,{0:{alpha:1,"scale.x":1*s,"scale.y":1*s},1:{alpha:0,"scale.x":1.3*s,"scale.y":1.3*s}},.25))}),e.on(this,"hit",r=>{if(n==r.columnNumber){if(!G.includes(r.judgement.id))return;p.finish(this.pressAnim),p.finish(this.hitAnim),this.hitAnim=p.animate(this.hitContainer,{0:{alpha:1,"scale.x":1,"scale.y":1},1:{alpha:0,"scale.x":1.2,"scale.y":1.2}},.4),this.flash.visible=!0,this.flash.currentFrame=0,this.flash.play()}}),e.on(this,"hitmine",r=>{if(n==r.columnNumber){const h=new l(q);h.alpha=0,h.anchor.set(.5),h.blendMode=m.ADD,this.addChild(h),p.animate(h,{0:{alpha:1,rotation:0},"0.5":{alpha:1,rotation:90*Math.PI/180},1:{alpha:0,rotation:180*Math.PI/180}},.4,void 0,()=>h.destroy())}}),this.addChild(this.press,this.hitContainer,this.flash)}}const A=d(i.from(W),5,2,96,96),_=["DownLeft","UpLeft","Center","UpRight","DownRight"],b={},x=96;for(const t of _){const e=i.from(new URL(Object.assign({"./hold/Center.png":L,"./hold/DownLeft.png":B,"./hold/DownRight.png":y,"./hold/UpLeft.png":M,"./hold/UpRight.png":O})[`./hold/${t}.png`],self.location).href),o=[],n=[];for(let s=0;s<6;s++)o.push(new i(e.baseTexture,new g(s*96,0,96,288-x))),n.push(new i(e.baseTexture,new g(s*96,288-x,96,x)));b[t]={body:o,cap:n}}const se={elements:{DownLeft:{Receptor:t=>{const e=new f,o=_.indexOf(t.columnName),n=new l(A[0][o]);n.width=72,n.height=72,n.anchor.set(.5);const s=new l(A[1][o]);return s.width=n.width,s.height=n.height,s.anchor.set(.5),s.blendMode=m.ADD,e.addChild(n,s),t.noteskin.onUpdate(e,r=>{const H=(r.getVisualBeat()%1+1)%1;s.alpha=(1-H)/2}),e},Tap:t=>{const e=new l(i.WHITE);return a.setNoteTex(e,t.note,t.columnName),e.anchor.set(.5),e.width=72,e.height=72,e},Fake:{element:"Tap"},Lift:{element:"Tap"},Mine:{element:"Tap"},NoteFlash:t=>new K(t.noteskin,t.columnName,t.columnNumber),"Hold Active Head":{element:"Tap"},"Hold Inactive Head":{element:"Tap"},"Hold Active Body":t=>{const e=new U(b[t.columnName].body,72);return t.noteskin.onUpdate(e,o=>{const n=o.getVisualTime(),s=Math.floor((n%.3+.3)%.3/.3*6);e.currentFrame=s}),e},"Hold Inactive Body":{element:"Hold Active Body"},"Hold Active TopCap":()=>new l(i.EMPTY),"Hold Inactive TopCap":()=>new l(i.EMPTY),"Hold Active BottomCap":t=>{const e=new R(b[t.columnName].cap,72);return t.noteskin.onUpdate(e,o=>{const n=o.getVisualTime(),s=Math.floor((n%.3+.3)%.3/.3*6);e.currentFrame=s}),e},"Hold Inactive BottomCap":{element:"Hold Active BottomCap"},"Roll Active Head":t=>{const e=new l(i.WHITE);return a.setRollTex(e,t.columnName),e.anchor.set(.5),e.width=72,e.height=72,e},"Roll Inactive Head":{element:"Roll Active Head"},"Roll Active Body":{element:"Hold Active Body"},"Roll Inactive Body":{element:"Hold Active Body"},"Roll Active TopCap":()=>new l(i.EMPTY),"Roll Inactive TopCap":()=>new l(i.EMPTY),"Roll Active BottomCap":{element:"Hold Active BottomCap"},"Roll Inactive BottomCap":{element:"Hold Active BottomCap"}}},load:function(t,e){return t.columnName="DownLeft",this.loadElement(t,e)},init(){a.initArrowTex()},update(t){a.setArrowTexTime(t.chartManager.app)},metrics:{HoldBodyBottomOffset:-36,RollBodyBottomOffset:-36}};export{se as default,_ as texOrder}; +import{Z as d,s as i,b as f,w as u,O as T,J as g,H as l,Q as m,L as p,_ as R}from"./ChartManager-beed98d8.js";import{A as w}from"./AnimatedSprite-b9500bfb.js";import{A as U}from"./HoldBody-b84029dd.js";const L="/smeditor/assets/Center-df4c129b.png",B="/smeditor/assets/DownLeft-63c88ff1.png",y="/smeditor/assets/DownRight-bcd0e463.png",M="/smeditor/assets/UpLeft-ef9a2609.png",O="/smeditor/assets/UpRight-7924deeb.png",I="/smeditor/assets/Center-461a85de.png",E="/smeditor/assets/DownLeft-4943410c.png",S="/smeditor/assets/DownRight-d5c3b98a.png",F="/smeditor/assets/UpLeft-be2bb52b.png",$="/smeditor/assets/UpRight-2e4dc3f1.png",N="/smeditor/assets/Center-274a1642.png",P="/smeditor/assets/DownLeft-15647c81.png",V="/smeditor/assets/DownRight-9aba7559.png",j="/smeditor/assets/UpLeft-36744666.png",k="/smeditor/assets/UpRight-af6dd110.png",v={},c=["DownLeft","UpLeft","Center","UpRight","DownRight"];for(const t of c)v[t]=d(i.from(new URL(Object.assign({"./tap/Center.png":I,"./tap/DownLeft.png":E,"./tap/DownRight.png":S,"./tap/UpLeft.png":F,"./tap/UpRight.png":$})[`./tap/${t}.png`],self.location).href),3,2,96,96).flat();const D={};for(const t of c)D[t]=d(i.from(new URL(Object.assign({"./roll/Center.png":N,"./roll/DownLeft.png":P,"./roll/DownRight.png":V,"./roll/UpLeft.png":j,"./roll/UpRight.png":k})[`./roll/${t}.png`],self.location).href),3,2,96,96).flat();const Y=d(i.from(new URL("/smeditor/assets/mine-0e34ec01.png",self.location).href),3,2,96,96).flat();class a{static noteTex;static noteContainer=new f;static rollTex;static rollContainer=new f;static mineTex;static mine;static loaded=!1;static async initArrowTex(){if(!this.loaded){a.noteTex=u.create({width:96*5,height:96,resolution:T.performance.resolution}),a.rollTex=u.create({width:96*5,height:96,resolution:T.performance.resolution}),a.mineTex=u.create({width:96,height:96,resolution:T.performance.resolution});for(const e of c)this.createSprite(this.noteContainer,e,v);for(const e of c)this.createSprite(this.rollContainer,e,D);this.mine=new w(Y),this.loaded=!0}}static createSprite(e,o,n){const s=c.indexOf(o)*96,r=new w(n[o]);r.x=s,e.addChild(r)}static setArrowTexTime(e){if(!this.loaded)return;const o=e.chartManager.chartView.getVisualTime(),n=Math.floor((o%.3+.3)%.3/.3*6);this.noteContainer.children.forEach(s=>s.currentFrame=n),this.rollContainer.children.forEach(s=>s.currentFrame=n),this.mine.currentFrame=n,e.renderer.render(a.noteContainer,{renderTexture:a.noteTex}),e.renderer.render(a.rollContainer,{renderTexture:a.rollTex}),e.renderer.render(a.mine,{renderTexture:a.mineTex})}static setNoteTex(e,o,n){if(o===void 0)return i.WHITE;if(o.type=="Mine")e.texture=this.mineTex;else{const s=c.indexOf(n)*96;e.texture=new i(this.noteTex.baseTexture,new g(s,0,96,96))}}static setRollTex(e,o){const n=c.indexOf(o)*96;e.texture=new i(this.rollTex.baseTexture,new g(n,0,96,96))}}const W="/smeditor/assets/receptors-5a0beefb.png",J="/smeditor/assets/flash-d0eff0a1.png",z="/smeditor/assets/mine-590d445e.png",Q="/smeditor/assets/press-55cccb8c.png",Z=d(i.from(J),5,1,128,128)[0],q=i.from(z),C=d(i.from(Q),5,2,96,96),G=["w0","w1","w2","w3"];class K extends f{press;pressAnim;hitContainer=new f;tap;note;flash;hitAnim;anims=new Set;constructor(e,o,n){super();const s=1/1.5;this.press=new l(C[1][_.indexOf(o)]),this.press.alpha=0,this.press.anchor.set(.5),this.tap=new l(C[0][_.indexOf(o)]),this.tap.blendMode=m.ADD,this.tap.scale.set(s),this.tap.anchor.set(.5),this.note=new w(v[o]),this.note.scale.set(s),this.note.blendMode=m.ADD,this.note.animationSpeed=1/3,this.note.play(),this.note.anchor.set(.5),this.flash=new w(Z),this.flash.scale.set(2),this.flash.blendMode=m.ADD,this.flash.animationSpeed=1/3,this.flash.loop=!1,this.flash.visible=!1,this.flash.anchor.set(.5),this.flash.onComplete=()=>{this.flash.visible=!1,this.flash.stop()},this.hitContainer.alpha=0,this.hitContainer.addChild(this.tap,this.note),e.on(this,"ghosttap",r=>{n==r.columnNumber&&(p.finish(this.pressAnim),this.pressAnim=p.animate(this.press,{0:{alpha:1,"scale.x":1*s,"scale.y":1*s},1:{alpha:0,"scale.x":1.3*s,"scale.y":1.3*s}},.25))}),e.on(this,"hit",r=>{if(n==r.columnNumber){if(!G.includes(r.judgement.id))return;p.finish(this.pressAnim),p.finish(this.hitAnim),this.hitAnim=p.animate(this.hitContainer,{0:{alpha:1,"scale.x":1,"scale.y":1},1:{alpha:0,"scale.x":1.2,"scale.y":1.2}},.4),this.flash.visible=!0,this.flash.currentFrame=0,this.flash.play()}}),e.on(this,"hitmine",r=>{if(n==r.columnNumber){const h=new l(q);h.alpha=0,h.anchor.set(.5),h.blendMode=m.ADD,this.addChild(h),p.animate(h,{0:{alpha:1,rotation:0},"0.5":{alpha:1,rotation:90*Math.PI/180},1:{alpha:0,rotation:180*Math.PI/180}},.4,void 0,()=>h.destroy())}}),this.addChild(this.press,this.hitContainer,this.flash)}}const A=d(i.from(W),5,2,96,96),_=["DownLeft","UpLeft","Center","UpRight","DownRight"],b={},x=96;for(const t of _){const e=i.from(new URL(Object.assign({"./hold/Center.png":L,"./hold/DownLeft.png":B,"./hold/DownRight.png":y,"./hold/UpLeft.png":M,"./hold/UpRight.png":O})[`./hold/${t}.png`],self.location).href),o=[],n=[];for(let s=0;s<6;s++)o.push(new i(e.baseTexture,new g(s*96,0,96,288-x))),n.push(new i(e.baseTexture,new g(s*96,288-x,96,x)));b[t]={body:o,cap:n}}const se={elements:{DownLeft:{Receptor:t=>{const e=new f,o=_.indexOf(t.columnName),n=new l(A[0][o]);n.width=72,n.height=72,n.anchor.set(.5);const s=new l(A[1][o]);return s.width=n.width,s.height=n.height,s.anchor.set(.5),s.blendMode=m.ADD,e.addChild(n,s),t.noteskin.onUpdate(e,r=>{const H=(r.getVisualBeat()%1+1)%1;s.alpha=(1-H)/2}),e},Tap:t=>{const e=new l(i.WHITE);return a.setNoteTex(e,t.note,t.columnName),e.anchor.set(.5),e.width=72,e.height=72,e},Fake:{element:"Tap"},Lift:{element:"Tap"},Mine:{element:"Tap"},NoteFlash:t=>new K(t.noteskin,t.columnName,t.columnNumber),"Hold Active Head":{element:"Tap"},"Hold Inactive Head":{element:"Tap"},"Hold Active Body":t=>{const e=new U(b[t.columnName].body,72);return t.noteskin.onUpdate(e,o=>{const n=o.getVisualTime(),s=Math.floor((n%.3+.3)%.3/.3*6);e.currentFrame=s}),e},"Hold Inactive Body":{element:"Hold Active Body"},"Hold Active TopCap":()=>new l(i.EMPTY),"Hold Inactive TopCap":()=>new l(i.EMPTY),"Hold Active BottomCap":t=>{const e=new R(b[t.columnName].cap,72);return t.noteskin.onUpdate(e,o=>{const n=o.getVisualTime(),s=Math.floor((n%.3+.3)%.3/.3*6);e.currentFrame=s}),e},"Hold Inactive BottomCap":{element:"Hold Active BottomCap"},"Roll Active Head":t=>{const e=new l(i.WHITE);return a.setRollTex(e,t.columnName),e.anchor.set(.5),e.width=72,e.height=72,e},"Roll Inactive Head":{element:"Roll Active Head"},"Roll Active Body":{element:"Hold Active Body"},"Roll Inactive Body":{element:"Hold Active Body"},"Roll Active TopCap":()=>new l(i.EMPTY),"Roll Inactive TopCap":()=>new l(i.EMPTY),"Roll Active BottomCap":{element:"Hold Active BottomCap"},"Roll Inactive BottomCap":{element:"Hold Active BottomCap"}}},load:function(t,e){return t.columnName="DownLeft",this.loadElement(t,e)},init(){a.initArrowTex()},update(t){a.setArrowTexTime(t.chartManager.app)},metrics:{HoldBodyBottomOffset:-36,RollBodyBottomOffset:-36}};export{se as default,_ as texOrder}; diff --git a/Noteskin-66017985.js b/Noteskin-7dfd06de.js similarity index 98% rename from Noteskin-66017985.js rename to Noteskin-7dfd06de.js index 9cd52713..30ac9b93 100644 --- a/Noteskin-66017985.js +++ b/Noteskin-7dfd06de.js @@ -1,4 +1,4 @@ -import{s,u as v,v as w,b as h,w as x,O as B,x as u,y as D,z as b,H as r,L as l,P as A,Q as H,Z as T,X as d}from"./ChartManager-0bba2271.js";import{A as C}from"./AnimatedSprite-d8e8da79.js";import{H as m}from"./HoldBody-2ee2d035.js";const I="/smeditor/assets/0-c5249fef.png",U="/smeditor/assets/1-0e354907.png",M="/smeditor/assets/2-ce5f7b2f.png",P="/smeditor/assets/3-648105cf.png",y="/smeditor/assets/4-da345826.png",F="/smeditor/assets/5-f6bb9779.png",O="/smeditor/assets/6-12d00670.png",Y="/smeditor/assets/7-00801dd0.png",G="/smeditor/assets/8-9a73d4f3.png",Q="/smeditor/assets/0-0543793c.png",z="/smeditor/assets/1-84dd19f7.png",L="/smeditor/assets/2-3b873573.png",_="/smeditor/assets/3-e5952ffa.png",N="/smeditor/assets/4-1f9a4a43.png",E="/smeditor/assets/5-b9acdc27.png",j="/smeditor/assets/6-565a7261.png",W="/smeditor/assets/7-dd1c0ecf.png",R="/smeditor/assets/8-94163432.png",X="/smeditor/assets/frame-d599a2fe.png",S="/smeditor/assets/parts-b37af2cf.png",k=`precision mediump float; +import{s,u as v,v as w,b as h,w as x,O as B,x as u,y as D,z as b,H as r,L as l,P as A,Q as H,Z as T,X as d}from"./ChartManager-beed98d8.js";import{A as C}from"./AnimatedSprite-b9500bfb.js";import{H as m}from"./HoldBody-b84029dd.js";const I="/smeditor/assets/0-c5249fef.png",U="/smeditor/assets/1-0e354907.png",M="/smeditor/assets/2-ce5f7b2f.png",P="/smeditor/assets/3-648105cf.png",y="/smeditor/assets/4-da345826.png",F="/smeditor/assets/5-f6bb9779.png",O="/smeditor/assets/6-12d00670.png",Y="/smeditor/assets/7-00801dd0.png",G="/smeditor/assets/8-9a73d4f3.png",Q="/smeditor/assets/0-0543793c.png",z="/smeditor/assets/1-84dd19f7.png",L="/smeditor/assets/2-3b873573.png",_="/smeditor/assets/3-e5952ffa.png",N="/smeditor/assets/4-1f9a4a43.png",E="/smeditor/assets/5-b9acdc27.png",j="/smeditor/assets/6-565a7261.png",W="/smeditor/assets/7-dd1c0ecf.png",R="/smeditor/assets/8-94163432.png",X="/smeditor/assets/frame-d599a2fe.png",S="/smeditor/assets/parts-b37af2cf.png",k=`precision mediump float; varying vec2 vUvs; diff --git a/Noteskin-288e1d0a.js b/Noteskin-8fb8953e.js similarity index 98% rename from Noteskin-288e1d0a.js rename to Noteskin-8fb8953e.js index 628ed1b0..28116097 100644 --- a/Noteskin-288e1d0a.js +++ b/Noteskin-8fb8953e.js @@ -1 +1 @@ -import{s as o,b as r,Z as i,H as g,Q as c,L as l,X as B}from"./ChartManager-0bba2271.js";import{A as s}from"./AnimatedSprite-d8e8da79.js";import{H as h}from"./HoldBody-2ee2d035.js";const D="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAABACAYAAADS1n9/AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsEAAA7BAbiRa+0AAAOLSURBVHhe7ZvLitRAGEY7KuMFbyiiggsviCheVuozCF72vogrV658EffqwmdQV/aAOsioC0FFFG/gBZ32O6FqiLEnJN0hxNR34JB0VZLOn6n6U6nOjIwxxhhjjDHGGGOMMcYYY4wxxhhjjDEDIgvL0WQyWV1PgSzLJmE1J9X486AV/DotFuLnBCD4n7oIK/mHhOPPQvDb5CG5UQ79IhD8D/lCfqFAJBs/DWCzVo7JS5J1GOpFyNOe+CbvyqeSDkD8F2Vq8S/RALZo5ZS8It/KoabDPO1J0v5eeVuO5Xp5Ul6WqcW/GBvAackFeCdpDIcl6XBIkPaey0W5R96Rj2SxAaQW/7jYAMgAH+UFyUWI6RDifSOmkL5D7y3fz0l7BH9P7pT0gGIDSDH+fxrAp7A8IzdJDkDKYLC0LD/Lvl8Eznm7PCIZ3JHSOefvkj84ge8Iy3IDWCv+r/K95Bj/Q/yc+265VVbFX9kAYg9gx8fyVljyuc8Q/Al5NSz5DPSAJg2gGP9r+UrSCH7LPkM8/PEPyP2yKv5aDYAdH8ibYcnnPsN5n5PXwrIYxywNgP1eyiX5Rv6SfWaD3Cd5sjkoq+Ifkx7qQBqkJ3CQeeQYVSk0pqpp+zaRY3DObcF50fP5489jnezR1vfUulXVbQB/wTRiU9lNck8+Ls/K8yUpo45ttMv041Sp/foM8fN4uUvSQ0nPRSmjrtNH0JkaQFN0m4nBMzDj3kx6vl6SMurYZiHsMyS41ZB6ecQ8KmnsRSmjjm3YthM6aQABvovezcCMe3M5A1BGXRy5DxE6AfdkBmjcn4tSRh3bdMZQL7SpSZcNIM4n8CjJ08T9kpRRxzZtDuD6BFOxDFJ5pOTJoihl1LFNZ3TSAMIAjcCYTGI+gUfKGyUpo45t+Kmy74O6pjAy5zGT6dhn8klJyqhjmzpPC60wUwNggNZUdpP0boJ9KMsZgDLq2Ea7TD9Oldqvz8RO8EEyn8DkUlHKqGObzhp/3QbAdswoMUiZR45R9Yeirq3vaTO7cV6MzJlkmcc6o/u2vqdWh6DneCrYU8H+MUhWxZ/Mj0H+OTjhn4P9QkjCL4QQND3Ar4SlFX/+Shipzi+FJvxSKBeAwZJfC08w/jzY0AiGmPbWIk+Hmf8xZGU1YF2EVILPKU81px6/McYYY4wxxhhjjDHGGGOMMcaYQcEbQWHVpAhvwpiEcQNImtHoDycKQp3RP5gyAAAAAElFTkSuQmCC",d="/smeditor/assets/mine-590d445e.png",C=o.from(D),m=o.from(d);class f extends r{hold=new s(i(C,2,1,64,64)[0]);anims=new Set;constructor(e,A){super(),e.on(this,"holdon",n=>{A==n.columnNumber&&(this.hold.visible=!0)}),e.on(this,"holdoff",n=>{A==n.columnNumber&&(this.hold.visible=!1)}),e.on(this,"rollon",n=>{A==n.columnNumber&&(this.hold.visible=!0)}),e.on(this,"rolloff",n=>{A==n.columnNumber&&(this.hold.visible=!1)}),e.on(this,"hitmine",n=>{if(A==n.columnNumber){const a=new g(m);a.alpha=0,a.anchor.set(.5),a.blendMode=c.ADD,this.addChild(a),l.animate(a,{0:{alpha:1,rotation:0},"0.5":{alpha:1,rotation:90*Math.PI/180},1:{alpha:0,rotation:180*Math.PI/180}},.4,void 0,()=>a.destroy())}}),e.onUpdate(this,()=>{this.hold.alpha=Math.sin(Date.now()/1e3*Math.PI*2*20)*.1+1}),this.hold.visible=!1,this.hold.anchor.set(.5),this.addChild(this.hold)}}const w="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAACACAMAAACMX59YAAAAIVBMVEUAAAD///+6urq4uLizs7OoqKinp6ecnJyVlZWUlJSIiIh18TD6AAAAAXRSTlMAQObYZgAAAKhJREFUeNrt2AMCA0EQRNFRVXD/A8fmWv/F6vTuCOGj+CBUMGgAAMDw4p4UKpHiXpsB3HsGfg7g1/+QfL68furfGUiWrnc1MogPfmZgVQsgtZ2Bqmbg1wwq8XA1sf1DAACM3+v8oILv84Pxr97ZPwAAxL2UQyUlNVwzyQ2XfW5//0DV5gevAfx9ftDH8n/wAJUPYeYVqf39AwAA+wfrtVbbzf52fAyf7ADSzwa2IX7vawAAAABJRU5ErkJggg==",E="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAACAAgMAAADG74f5AAAACVBMVEUAAAAAAACoqKjq2/gjAAAAAXRSTlMAQObYZgAAACRJREFUeNpjGAWDAjBGNSA4TEsdhrfAKBgFo2C0/BgtP0Y6AACvVTE5zX7vswAAAABJRU5ErkJggg==",P="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAAIACAMAAAAFcJqpAAAAflBMVEUAAAD///8AAAAAQP8A/wAA//8BAQECAgIDAwMEBAQFAAAFBQUGBgYHBwcICAgJAAAJCQkKCgoLCwsODg5AQEBAUIBAgEBAgIB/Pz+APz+AQECAQHCAaUCAgECCPj6EPT2oqKj5AAD7AQH7AgL8AQH+AAD/AL//pAD//wD///82s5ztAAAAAnRSTlMAAHaTzTgAAAHgSURBVHja7djZTgIxFIBh1wPIIjhu4IJsLu//gsapTUCpctomPZP5v0uif5ouc3GOjgAAOX0kcIETZzIej0bD4WDQ7/d63U5H5GTLhXPpdN2PPrDZtnA2B9gfUFAF1l+Wy9UqHJjVnp3pl9ke7sc/AofZDVR/B+7/DSSvwAfmP//M34EDA7/+XxuYlQtI6iZKrlPIEthzfetbPf2+4vN5OFBbLutXs454jYvk57yIDzj1t+r7y3Wx9TET6XS63V6/PxgMh6PReDyZXF3tfNJSP6oAAAAA84PQ/OA0krnAjULmQFV8BcGAvwMtCEjqJordY1QGGv2cmR8AAAAAVucHZ5HMBW4VMgeq4isIBvwdaEFAUjdR7B6jMtDo58z8AAAAALA6P3iPZC7wpJA5UBVfQTDg70ALApK6iWL3GJWBRj9n5gcAAACA1fnBayRzgQeFzIGq+AqCAX8HWhCQ1E0Uu8eoDDT6OTM/AAAAAKzOD94imQs8KmQOVMVXEAz4O9CCgKRuotg9RmWg0c+Z+QEAAABgdX5wHslc4E4hc6AqvoJgwN+BFgQkdRPF7jEqA41+zswPAAAAAKvzg5dI5gLXCpkDVfEVBAP+DrQgIKmbKHaPURlo9HNmfgAAznGi8oFPHljdxHwy+70AAAAASUVORK5CYII=",p="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAAIACAMAAAAFcJqpAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAEhQTFRFAAAA/gAAAAAACgoKCQkJCAgIBwcHBgYGBQUFBAQEAwMDAgICAQEBBQAACQAADg4OCwsLAED/AP8A//8A/wC//6MAAP//qKio3mg4lAAAABh0Uk5TAP//////////////////////////////6dxENgAAAlJJREFUeJzt2NlOwzAQhWHgkn3n/R+vdAPE0kKhYHtkepEqynEiR6N/KrUyjb+pJQt75vCgMA4BAAAAAHaBEmMbARP+Pnde4e1959GTnDDEZpXmG/Aj5j8CyMD5c+1fsBc4ss+93/sBTl73PNAWvQH1d6IHIA1Pw9vWvnv7f+z474/b8N/r/3V28BK/MkDMn/KN4lwAAAAAAAAAAAAAaAKuCqYvI2CFq9A/uDBAvu4DZOBH7h8MvoTW4tsP8CWX/30B9XeiByANhf6BAWL+EMtxnAsAAAAAAAAAAAAATcB1wfRFBJ7M6t4/uDRAvu4DZOBb7h8MvoTW4tsP8CmX/30B9XeiByANhf6BAWL+EItxnAsAAAAAAAAAAAAATcBNwfR5BJZmde8fXBkgX/cBMrCR+weDL6G1+PYDrOXyvy+g/k70AKSh0D8wQMwfYj6OcwEAAAAAAAAAAACgCbgtmD6LwMKs7v2DawPk6z5ABr7k/sHgS2gtvv0AK7n87wuovxM9AGko9A8MEPOHmI3jXAAAAAAAAAAAAABoAu4Kpk8jMDere//gxgD5ug+QgU+5fzD4ElqLbz/Ah1z+9wXU34kegDQU+gcGiPlDTMdxLgAAAAAAAAAAAAA0AfcF0x8jMDOre//g1gD5ug+QgbXcPxh8Ca3Ftx/gXS7/+wLq70QPQBoK/QMDxPwhHsdxLgAAAAAAAAAAAAA0AQ8F0ycRmJrVvX9wZ4B83QfIwEruHwy+hNbi2w/wJpf/fQH1d6IHIA2F/oEBYv4Qk3GcCwAAAABegF+OB3ofloROsgAAAABJRU5ErkJggg==",M="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgAAAABACAMAAABbYT+NAAAAOVBMVEUAAAAAAAAICAgoKChAQEBfAABvAACRAACYmJieAACoqKi4uLi7AADQ0NDRAADg4ODpAADw8PD////pSTDZAAAAAXRSTlMAQObYZgAAATxJREFUeNrt2EGOgzAMQNGxSVxI0hK4/2Fnokx7AHuBVP7bf0W2WgT5AQAAAAAAAAAAAAAAAAAAAAAAAPB9ZLhrTy+q2bKKBPoc6SXcD9Hz4/Nftv8lpbQEelv3Y19NxdnnXmrp2d+33ntz96K2bZupBM+Pz3/R/lP560savYfa8xyeJr4+r3VYs3OA/OrDy9vrow0PjZ8fn9+//+rdf5r9M3n3t57TquLqe526s299as7e2mTR8+PzX7H/pZxTWcT3B9jPac/i6kudirPvb75etzZtGjw/Pv8V+0+fPvl+AHac02G+Aerb/X4A8fnj+0+fPvEE4AnAOwDvAP6vAA2+BevNvwLUuf96DtU0+BWg3ANwD+AhEryJkjvfBMb7+P7/bwK5C6cHAAAAAAAAAAAAAAAAAAAAAADAl/kFHH4jM43eaVYAAAAASUVORK5CYII=",v="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAABAAgMAAACvuJfsAAAACVBMVEVlAEsAAAD////TJSq6AAAAAXRSTlMAQObYZgAAACxJREFUSMdjYBgFo2CoAa5VKGABOp+BA1W9Ajp/VMGoAnorIJhoR8EoGGoAAAiuLhkqD4nBAAAAAElFTkSuQmCC",Q="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAAIACAMAAAAFcJqpAAAAflBMVEUAAAD///8AAAAAQP8A/wAA//8BAQECAgIDAwMEBAQFAAAFBQUGBgYHBwcICAgJAAAJCQkKCgoLCwsODg5AQEBAUIBAgEBAgIB/Pz+APz+AQECAQHCAaUCAgECCPj6EPT2oqKj5AAD7AQH7AgL8AQH+AAD/AL//pAD//wD///82s5ztAAAAAnRSTlMAAHaTzTgAAAHgSURBVHja7djZTgIxFIBh1wPIIjhu4IJsLu//gsapTUCpctomPZP5v0uif5ouc3GOjgAAOX0kcIETZzIej0bD4WDQ7/d63U5H5GTLhXPpdN2PPrDZtnA2B9gfUFAF1l+Wy9UqHJjVnp3pl9ke7sc/AofZDVR/B+7/DSSvwAfmP//M34EDA7/+XxuYlQtI6iZKrlPIEthzfetbPf2+4vN5OFBbLutXs454jYvk57yIDzj1t+r7y3Wx9TET6XS63V6/PxgMh6PReDyZXF3tfNJSP6oAAAAA84PQ/OA0krnAjULmQFV8BcGAvwMtCEjqJordY1QGGv2cmR8AAAAAVucHZ5HMBW4VMgeq4isIBvwdaEFAUjdR7B6jMtDo58z8AAAAALA6P3iPZC7wpJA5UBVfQTDg70ALApK6iWL3GJWBRj9n5gcAAACA1fnBayRzgQeFzIGq+AqCAX8HWhCQ1E0Uu8eoDDT6OTM/AAAAAKzOD94imQs8KmQOVMVXEAz4O9CCgKRuotg9RmWg0c+Z+QEAAABgdX5wHslc4E4hc6AqvoJgwN+BFgQkdRPF7jEqA41+zswPAAAAAKvzg5dI5gLXCpkDVfEVBAP+DrQgIKmbKHaPURlo9HNmfgAAznGi8oFPHljdxHwy+70AAAAASUVORK5CYII=",U=i(o.from(v),2,1,64,64)[0],R=i(o.from(M),8,1,64,64)[0],I=i(o.from(Q),1,8,64,64),H=i(o.from(P),1,8,64,64),T=i(o.from(p),1,8,64,64),u=o.from(E),V=o.from(w),S={elements:{Left:{Receptor:t=>{let e;const A=new s(U);return A.width=64,A.height=64,A.anchor.set(.5),t.noteskin.on(A,"ghosttap",n=>{n.columnNumber==t.columnNumber&&(l.finish(e),e=l.animate(A,{0:{alpha:1.2,width:48,height:48},1:{alpha:1,width:64,height:64}},.06))}),t.noteskin.onUpdate(A,n=>{const a=(n.getVisualBeat()%1+1)%1;A.currentFrame=a<.2?0:1}),A},Tap:t=>{const e=I[Math.min([4,8,12,16,24,32,48,64,96,192].indexOf(t.note?.quant??4)??0,7)],A=new g(e[0]);return A.anchor.set(.5),A.width=64,A.height=64,A},NoteFlash:t=>new f(t.noteskin,t.columnNumber),Fake:{element:"Tap"},Lift:t=>{const e=T[Math.min([4,8,12,16,24,32,48,64,96,192].indexOf(t.note?.quant??4)??0,7)],A=new g(e[0]);return A.anchor.set(.5),A.width=64,A.height=64,A},Mine:t=>{const e=new s(R);return e.anchor.set(.5),e.width=64,e.height=64,t.noteskin.onUpdate(e,A=>e.currentFrame=Math.floor((A.getVisualBeat()%4+4)%4*2)),e},"Hold Active Head":t=>{const e=H[Math.min([4,8,12,16,24,32,48,64,96,192].indexOf(t.note?.quant??4)??0,7)],A=new g(e[0]);return A.anchor.set(.5),A.width=64,A.height=64,A},"Hold Inactive Head":{element:"Tap"},"Hold Active Body":()=>new h(u),"Hold Inactive Body":{element:"Hold Active Body"},"Hold Active TopCap":()=>new g(o.EMPTY),"Hold Inactive TopCap":()=>new g(o.EMPTY),"Hold Active BottomCap":()=>new B(o.EMPTY),"Hold Inactive BottomCap":{element:"Hold Active BottomCap"},"Roll Active Head":{element:"Hold Active Head"},"Roll Inactive Head":{element:"Tap"},"Roll Active Body":()=>new h(V),"Roll Inactive Body":{element:"Roll Active Body"},"Roll Active TopCap":()=>new g(o.EMPTY),"Roll Inactive TopCap":()=>new g(o.EMPTY),"Roll Active BottomCap":()=>new B(o.EMPTY),"Roll Inactive BottomCap":{element:"Roll Active BottomCap"}}},load:function(t,e){return t.columnName="Left",this.loadElement(t,e)},hideIcons:["Lift"]};export{S as default}; +import{s as o,b as r,Z as i,H as g,Q as c,L as l,X as B}from"./ChartManager-beed98d8.js";import{A as s}from"./AnimatedSprite-b9500bfb.js";import{H as h}from"./HoldBody-b84029dd.js";const D="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAABACAYAAADS1n9/AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsEAAA7BAbiRa+0AAAOLSURBVHhe7ZvLitRAGEY7KuMFbyiiggsviCheVuozCF72vogrV658EffqwmdQV/aAOsioC0FFFG/gBZ32O6FqiLEnJN0hxNR34JB0VZLOn6n6U6nOjIwxxhhjjDHGGGOMMcYYY4wxxhhjjDEDIgvL0WQyWV1PgSzLJmE1J9X486AV/DotFuLnBCD4n7oIK/mHhOPPQvDb5CG5UQ79IhD8D/lCfqFAJBs/DWCzVo7JS5J1GOpFyNOe+CbvyqeSDkD8F2Vq8S/RALZo5ZS8It/KoabDPO1J0v5eeVuO5Xp5Ul6WqcW/GBvAackFeCdpDIcl6XBIkPaey0W5R96Rj2SxAaQW/7jYAMgAH+UFyUWI6RDifSOmkL5D7y3fz0l7BH9P7pT0gGIDSDH+fxrAp7A8IzdJDkDKYLC0LD/Lvl8Eznm7PCIZ3JHSOefvkj84ge8Iy3IDWCv+r/K95Bj/Q/yc+265VVbFX9kAYg9gx8fyVljyuc8Q/Al5NSz5DPSAJg2gGP9r+UrSCH7LPkM8/PEPyP2yKv5aDYAdH8ibYcnnPsN5n5PXwrIYxywNgP1eyiX5Rv6SfWaD3Cd5sjkoq+Ifkx7qQBqkJ3CQeeQYVSk0pqpp+zaRY3DObcF50fP5489jnezR1vfUulXVbQB/wTRiU9lNck8+Ls/K8yUpo45ttMv041Sp/foM8fN4uUvSQ0nPRSmjrtNH0JkaQFN0m4nBMzDj3kx6vl6SMurYZiHsMyS41ZB6ecQ8KmnsRSmjjm3YthM6aQABvovezcCMe3M5A1BGXRy5DxE6AfdkBmjcn4tSRh3bdMZQL7SpSZcNIM4n8CjJ08T9kpRRxzZtDuD6BFOxDFJ5pOTJoihl1LFNZ3TSAMIAjcCYTGI+gUfKGyUpo45t+Kmy74O6pjAy5zGT6dhn8klJyqhjmzpPC60wUwNggNZUdpP0boJ9KMsZgDLq2Ea7TD9Oldqvz8RO8EEyn8DkUlHKqGObzhp/3QbAdswoMUiZR45R9Yeirq3vaTO7cV6MzJlkmcc6o/u2vqdWh6DneCrYU8H+MUhWxZ/Mj0H+OTjhn4P9QkjCL4QQND3Ar4SlFX/+Shipzi+FJvxSKBeAwZJfC08w/jzY0AiGmPbWIk+Hmf8xZGU1YF2EVILPKU81px6/McYYY4wxxhhjjDHGGGOMMcaYQcEbQWHVpAhvwpiEcQNImtHoDycKQp3RP5gyAAAAAElFTkSuQmCC",d="/smeditor/assets/mine-590d445e.png",C=o.from(D),m=o.from(d);class f extends r{hold=new s(i(C,2,1,64,64)[0]);anims=new Set;constructor(e,A){super(),e.on(this,"holdon",n=>{A==n.columnNumber&&(this.hold.visible=!0)}),e.on(this,"holdoff",n=>{A==n.columnNumber&&(this.hold.visible=!1)}),e.on(this,"rollon",n=>{A==n.columnNumber&&(this.hold.visible=!0)}),e.on(this,"rolloff",n=>{A==n.columnNumber&&(this.hold.visible=!1)}),e.on(this,"hitmine",n=>{if(A==n.columnNumber){const a=new g(m);a.alpha=0,a.anchor.set(.5),a.blendMode=c.ADD,this.addChild(a),l.animate(a,{0:{alpha:1,rotation:0},"0.5":{alpha:1,rotation:90*Math.PI/180},1:{alpha:0,rotation:180*Math.PI/180}},.4,void 0,()=>a.destroy())}}),e.onUpdate(this,()=>{this.hold.alpha=Math.sin(Date.now()/1e3*Math.PI*2*20)*.1+1}),this.hold.visible=!1,this.hold.anchor.set(.5),this.addChild(this.hold)}}const w="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAACACAMAAACMX59YAAAAIVBMVEUAAAD///+6urq4uLizs7OoqKinp6ecnJyVlZWUlJSIiIh18TD6AAAAAXRSTlMAQObYZgAAAKhJREFUeNrt2AMCA0EQRNFRVXD/A8fmWv/F6vTuCOGj+CBUMGgAAMDw4p4UKpHiXpsB3HsGfg7g1/+QfL68furfGUiWrnc1MogPfmZgVQsgtZ2Bqmbg1wwq8XA1sf1DAACM3+v8oILv84Pxr97ZPwAAxL2UQyUlNVwzyQ2XfW5//0DV5gevAfx9ftDH8n/wAJUPYeYVqf39AwAA+wfrtVbbzf52fAyf7ADSzwa2IX7vawAAAABJRU5ErkJggg==",E="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAACAAgMAAADG74f5AAAACVBMVEUAAAAAAACoqKjq2/gjAAAAAXRSTlMAQObYZgAAACRJREFUeNpjGAWDAjBGNSA4TEsdhrfAKBgFo2C0/BgtP0Y6AACvVTE5zX7vswAAAABJRU5ErkJggg==",P="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAAIACAMAAAAFcJqpAAAAflBMVEUAAAD///8AAAAAQP8A/wAA//8BAQECAgIDAwMEBAQFAAAFBQUGBgYHBwcICAgJAAAJCQkKCgoLCwsODg5AQEBAUIBAgEBAgIB/Pz+APz+AQECAQHCAaUCAgECCPj6EPT2oqKj5AAD7AQH7AgL8AQH+AAD/AL//pAD//wD///82s5ztAAAAAnRSTlMAAHaTzTgAAAHgSURBVHja7djZTgIxFIBh1wPIIjhu4IJsLu//gsapTUCpctomPZP5v0uif5ouc3GOjgAAOX0kcIETZzIej0bD4WDQ7/d63U5H5GTLhXPpdN2PPrDZtnA2B9gfUFAF1l+Wy9UqHJjVnp3pl9ke7sc/AofZDVR/B+7/DSSvwAfmP//M34EDA7/+XxuYlQtI6iZKrlPIEthzfetbPf2+4vN5OFBbLutXs454jYvk57yIDzj1t+r7y3Wx9TET6XS63V6/PxgMh6PReDyZXF3tfNJSP6oAAAAA84PQ/OA0krnAjULmQFV8BcGAvwMtCEjqJordY1QGGv2cmR8AAAAAVucHZ5HMBW4VMgeq4isIBvwdaEFAUjdR7B6jMtDo58z8AAAAALA6P3iPZC7wpJA5UBVfQTDg70ALApK6iWL3GJWBRj9n5gcAAACA1fnBayRzgQeFzIGq+AqCAX8HWhCQ1E0Uu8eoDDT6OTM/AAAAAKzOD94imQs8KmQOVMVXEAz4O9CCgKRuotg9RmWg0c+Z+QEAAABgdX5wHslc4E4hc6AqvoJgwN+BFgQkdRPF7jEqA41+zswPAAAAAKvzg5dI5gLXCpkDVfEVBAP+DrQgIKmbKHaPURlo9HNmfgAAznGi8oFPHljdxHwy+70AAAAASUVORK5CYII=",p="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAAIACAMAAAAFcJqpAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAEhQTFRFAAAA/gAAAAAACgoKCQkJCAgIBwcHBgYGBQUFBAQEAwMDAgICAQEBBQAACQAADg4OCwsLAED/AP8A//8A/wC//6MAAP//qKio3mg4lAAAABh0Uk5TAP//////////////////////////////6dxENgAAAlJJREFUeJzt2NlOwzAQhWHgkn3n/R+vdAPE0kKhYHtkepEqynEiR6N/KrUyjb+pJQt75vCgMA4BAAAAAHaBEmMbARP+Pnde4e1959GTnDDEZpXmG/Aj5j8CyMD5c+1fsBc4ss+93/sBTl73PNAWvQH1d6IHIA1Pw9vWvnv7f+z474/b8N/r/3V28BK/MkDMn/KN4lwAAAAAAAAAAAAAaAKuCqYvI2CFq9A/uDBAvu4DZOBH7h8MvoTW4tsP8CWX/30B9XeiByANhf6BAWL+EMtxnAsAAAAAAAAAAAAATcB1wfRFBJ7M6t4/uDRAvu4DZOBb7h8MvoTW4tsP8CmX/30B9XeiByANhf6BAWL+EItxnAsAAAAAAAAAAAAATcBNwfR5BJZmde8fXBkgX/cBMrCR+weDL6G1+PYDrOXyvy+g/k70AKSh0D8wQMwfYj6OcwEAAAAAAAAAAACgCbgtmD6LwMKs7v2DawPk6z5ABr7k/sHgS2gtvv0AK7n87wuovxM9AGko9A8MEPOHmI3jXAAAAAAAAAAAAABoAu4Kpk8jMDere//gxgD5ug+QgU+5fzD4ElqLbz/Ah1z+9wXU34kegDQU+gcGiPlDTMdxLgAAAAAAAAAAAAA0AfcF0x8jMDOre//g1gD5ug+QgbXcPxh8Ca3Ftx/gXS7/+wLq70QPQBoK/QMDxPwhHsdxLgAAAAAAAAAAAAA0AQ8F0ycRmJrVvX9wZ4B83QfIwEruHwy+hNbi2w/wJpf/fQH1d6IHIA2F/oEBYv4Qk3GcCwAAAABegF+OB3ofloROsgAAAABJRU5ErkJggg==",M="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgAAAABACAMAAABbYT+NAAAAOVBMVEUAAAAAAAAICAgoKChAQEBfAABvAACRAACYmJieAACoqKi4uLi7AADQ0NDRAADg4ODpAADw8PD////pSTDZAAAAAXRSTlMAQObYZgAAATxJREFUeNrt2EGOgzAMQNGxSVxI0hK4/2Fnokx7AHuBVP7bf0W2WgT5AQAAAAAAAAAAAAAAAAAAAAAAAPB9ZLhrTy+q2bKKBPoc6SXcD9Hz4/Nftv8lpbQEelv3Y19NxdnnXmrp2d+33ntz96K2bZupBM+Pz3/R/lP560savYfa8xyeJr4+r3VYs3OA/OrDy9vrow0PjZ8fn9+//+rdf5r9M3n3t57TquLqe526s299as7e2mTR8+PzX7H/pZxTWcT3B9jPac/i6kudirPvb75etzZtGjw/Pv8V+0+fPvl+AHac02G+Aerb/X4A8fnj+0+fPvEE4AnAOwDvAP6vAA2+BevNvwLUuf96DtU0+BWg3ANwD+AhEryJkjvfBMb7+P7/bwK5C6cHAAAAAAAAAAAAAAAAAAAAAADAl/kFHH4jM43eaVYAAAAASUVORK5CYII=",v="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAABAAgMAAACvuJfsAAAACVBMVEVlAEsAAAD////TJSq6AAAAAXRSTlMAQObYZgAAACxJREFUSMdjYBgFo2CoAa5VKGABOp+BA1W9Ajp/VMGoAnorIJhoR8EoGGoAAAiuLhkqD4nBAAAAAElFTkSuQmCC",Q="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAAIACAMAAAAFcJqpAAAAflBMVEUAAAD///8AAAAAQP8A/wAA//8BAQECAgIDAwMEBAQFAAAFBQUGBgYHBwcICAgJAAAJCQkKCgoLCwsODg5AQEBAUIBAgEBAgIB/Pz+APz+AQECAQHCAaUCAgECCPj6EPT2oqKj5AAD7AQH7AgL8AQH+AAD/AL//pAD//wD///82s5ztAAAAAnRSTlMAAHaTzTgAAAHgSURBVHja7djZTgIxFIBh1wPIIjhu4IJsLu//gsapTUCpctomPZP5v0uif5ouc3GOjgAAOX0kcIETZzIej0bD4WDQ7/d63U5H5GTLhXPpdN2PPrDZtnA2B9gfUFAF1l+Wy9UqHJjVnp3pl9ke7sc/AofZDVR/B+7/DSSvwAfmP//M34EDA7/+XxuYlQtI6iZKrlPIEthzfetbPf2+4vN5OFBbLutXs454jYvk57yIDzj1t+r7y3Wx9TET6XS63V6/PxgMh6PReDyZXF3tfNJSP6oAAAAA84PQ/OA0krnAjULmQFV8BcGAvwMtCEjqJordY1QGGv2cmR8AAAAAVucHZ5HMBW4VMgeq4isIBvwdaEFAUjdR7B6jMtDo58z8AAAAALA6P3iPZC7wpJA5UBVfQTDg70ALApK6iWL3GJWBRj9n5gcAAACA1fnBayRzgQeFzIGq+AqCAX8HWhCQ1E0Uu8eoDDT6OTM/AAAAAKzOD94imQs8KmQOVMVXEAz4O9CCgKRuotg9RmWg0c+Z+QEAAABgdX5wHslc4E4hc6AqvoJgwN+BFgQkdRPF7jEqA41+zswPAAAAAKvzg5dI5gLXCpkDVfEVBAP+DrQgIKmbKHaPURlo9HNmfgAAznGi8oFPHljdxHwy+70AAAAASUVORK5CYII=",U=i(o.from(v),2,1,64,64)[0],R=i(o.from(M),8,1,64,64)[0],I=i(o.from(Q),1,8,64,64),H=i(o.from(P),1,8,64,64),T=i(o.from(p),1,8,64,64),u=o.from(E),V=o.from(w),S={elements:{Left:{Receptor:t=>{let e;const A=new s(U);return A.width=64,A.height=64,A.anchor.set(.5),t.noteskin.on(A,"ghosttap",n=>{n.columnNumber==t.columnNumber&&(l.finish(e),e=l.animate(A,{0:{alpha:1.2,width:48,height:48},1:{alpha:1,width:64,height:64}},.06))}),t.noteskin.onUpdate(A,n=>{const a=(n.getVisualBeat()%1+1)%1;A.currentFrame=a<.2?0:1}),A},Tap:t=>{const e=I[Math.min([4,8,12,16,24,32,48,64,96,192].indexOf(t.note?.quant??4)??0,7)],A=new g(e[0]);return A.anchor.set(.5),A.width=64,A.height=64,A},NoteFlash:t=>new f(t.noteskin,t.columnNumber),Fake:{element:"Tap"},Lift:t=>{const e=T[Math.min([4,8,12,16,24,32,48,64,96,192].indexOf(t.note?.quant??4)??0,7)],A=new g(e[0]);return A.anchor.set(.5),A.width=64,A.height=64,A},Mine:t=>{const e=new s(R);return e.anchor.set(.5),e.width=64,e.height=64,t.noteskin.onUpdate(e,A=>e.currentFrame=Math.floor((A.getVisualBeat()%4+4)%4*2)),e},"Hold Active Head":t=>{const e=H[Math.min([4,8,12,16,24,32,48,64,96,192].indexOf(t.note?.quant??4)??0,7)],A=new g(e[0]);return A.anchor.set(.5),A.width=64,A.height=64,A},"Hold Inactive Head":{element:"Tap"},"Hold Active Body":()=>new h(u),"Hold Inactive Body":{element:"Hold Active Body"},"Hold Active TopCap":()=>new g(o.EMPTY),"Hold Inactive TopCap":()=>new g(o.EMPTY),"Hold Active BottomCap":()=>new B(o.EMPTY),"Hold Inactive BottomCap":{element:"Hold Active BottomCap"},"Roll Active Head":{element:"Hold Active Head"},"Roll Inactive Head":{element:"Tap"},"Roll Active Body":()=>new h(V),"Roll Inactive Body":{element:"Roll Active Body"},"Roll Active TopCap":()=>new g(o.EMPTY),"Roll Inactive TopCap":()=>new g(o.EMPTY),"Roll Active BottomCap":()=>new B(o.EMPTY),"Roll Inactive BottomCap":{element:"Roll Active BottomCap"}}},load:function(t,e){return t.columnName="Left",this.loadElement(t,e)},hideIcons:["Lift"]};export{S as default}; diff --git a/Noteskin-42c37b68.js b/Noteskin-ac1c3283.js similarity index 99% rename from Noteskin-42c37b68.js rename to Noteskin-ac1c3283.js index d36ae778..9af09ca3 100644 --- a/Noteskin-42c37b68.js +++ b/Noteskin-ac1c3283.js @@ -1,4 +1,4 @@ -import{s as o,u as v,v as p,b as C,w as c,O as l,x as m,y as f,z as h,H as i,J as G,L as B,P as F,Q as H,V as U,X as E,Y as u}from"./ChartManager-0bba2271.js";import{H as D}from"./HoldBody-2ee2d035.js";const Y="/smeditor/assets/parts-0c8fa692.png",b="/smeditor/assets/frame-d599a2fe.png",x="/smeditor/assets/parts-b37af2cf.png",J="/smeditor/assets/parts-9668caec.png",T=`precision mediump float; +import{s as o,u as v,v as p,b as C,w as c,O as l,x as m,y as f,z as h,H as i,J as G,L as B,P as F,Q as H,V as U,X as E,Y as u}from"./ChartManager-beed98d8.js";import{H as D}from"./HoldBody-b84029dd.js";const Y="/smeditor/assets/parts-0c8fa692.png",b="/smeditor/assets/frame-d599a2fe.png",x="/smeditor/assets/parts-b37af2cf.png",J="/smeditor/assets/parts-9668caec.png",T=`precision mediump float; varying vec2 vUvs; diff --git a/Noteskin-8cda25e2.js b/Noteskin-b4c11d59.js similarity index 99% rename from Noteskin-8cda25e2.js rename to Noteskin-b4c11d59.js index acb76865..a723b497 100644 --- a/Noteskin-8cda25e2.js +++ b/Noteskin-b4c11d59.js @@ -1,4 +1,4 @@ -import{s as B,u as I,v as E,b as v,w as l,O as P,x as w,y as c,z as f,H as r,J as p,Z as F,L as s,Q as y,X as D}from"./ChartManager-0bba2271.js";import{A as x}from"./AnimatedSprite-d8e8da79.js";import{H as m}from"./HoldBody-2ee2d035.js";const U="/smeditor/assets/downBodyActive-dd1fd694.png",b="/smeditor/assets/downBodyInactive-c781a303.png",N="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB98FAw0dOV1YU4MAAAPKSURBVHja7d1dTupQFIbh0pwJkDBA4xjEQVjGcOIATZwBnFslHC1l7b2/v3WHiUL6PimUwHI3Xc1pWS5fbz8/vU5bZn843/07nx/zVDVb7h/5sW29/7/vb99uvxyPu6+356nRbHnAldEqg7HGXzPt/rIIAuX4zQGwI1CP3wUAKwKH+N0AsCFwid8VAAsCp/jdAaAjcIs/BAAqAsf4wwCgIXCNPxQACgLn+MMBICBwjg8BQAEBa3wYAMwImONDAWBEwB4fDgATAoX4kAAYEKjEhwWAjEApPjQARARq8eEBICFQjE8BAAGBanwaACMRKMefpmn60+NUWXVAPj/mu4PsD+fN94/4yeZqXHPr+NWn415nAtSPtVe/vplbP2BGBOjfaag8ll2frBgQqH2hBe5FIDICt/jDrgIQETjGH3oZiITANX4pAMYvf+wPZ8r4lfdfegZQ+kKoQ/wmTwHKCBQ/QDqjHCh0BKqfHs5+AOP4za8Csh8AO36Xy8DsB8CN3+19gOwHyH6A7AcAjN8VAAuC7AcwRpD9AMYIsh/AGEH2AxgjyH6AwZP9AJM3AAUE2Q9gjCD7AYwRZD+AMYLsBzBGkP0AxgiyH8AYQfYDGCPIfgBjBNkPYIwg+wEKDlj2A+AdyyZngOwHyH6ALs/J2Q+Q/QDZD8D6IjD7AXDiD7sKyH4AjPhDLwOzH2B8/FIA2Q/A+T5D9gMYx2/yFJD9ADzxVwG4/v/zrggY469pt7v1w9OyXK5/9vz0Sqe8CpVK/JfjcbcKQBB4xP8RQBDox/8VgDMCh/irADgicIm/GoATAqf4dwFwQOAW/24Ayggc428CoIjANf5mAEoIKoct/kMAgoA//sMAgoA7fgkAdwTM8csAuCJgj18KwA2BQvxyAC4IVOI3AaCOQCl+MwCqCNTiNwWghkAxfnMAKghU43cBwI5AOX43AKwI1ON3BcCGwCF+dwAsCFziDwGAjsAp/jAAqAjc4g8FgIbAMf5wACgIXONDABiNYMuoxIcBwIRAKT4UAAYEavHhACAjUIwPCQARgWp8WABICJTjQwNAQKAeHx7ASAQO8SkAjEDgEp8GQE8ETvGpAPRA4BafDkBLBI7xKQG0QOAanxZAJYItoxKfGsAoBErx6QH0RqAWXwJALwSK8WUAtEagGl8KQCsEyvHlAFQjUI8vCaAKgUN8WQCPInCJLw1gKwKn+PIA7kXgFt8CwFoEjvFtAPyGwDW+FYD/Ibg1LvHtAKxB4BTfEsBPCNzi2wK4hcAxvv2cluWy9nVBJpPJZDKZjNL8A8iasRIljXPgAAAAAElFTkSuQmCC",X="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB98FAw0eB7cUHesAAAO/SURBVHja7dw7VhtBEIXh0WzGGWtxahZop6yFzKuREwKQBcy0uqvuqzM4Bwv6/yxN61GX7f91ff/F6+vPbWT9/vPj9M88//q7zVojt4/8u43e/tPTy+23Lu+/2LdFa+QXnhltZjDW+EfWMgAqCJTjLwfAjkA9fgkAVgQO8csAsCFwiV8KgAWBU/xyAOgI3OK3AEBF4Bi/DQAaAtf423bzrNDbmvJMoOqGsf0tbc8EstwTuEPeETaPHQHzvdiOsomsCNgfwmAAMCJQuH6BAsCEQOXiFQ4AAwKlkwskAGQESvGhASAiUIsPDwAJgWJ8CgAICFTj0wDoRKAcf9sWvBZwb8NYX2xBfGfz2X+/9LWAzzas++1dI7eP+rb22dc3e9X/TCYE6J9pmLmXpdcADAjUPtACdxGIjMAtftspABGBY/zWYyASAtf404+BLhvJdKwtPQYqfSBUIX7LQ4AyAsV3D+8oG4WOQPWt45kPYBx/+Skg8wGw45ccAzMfADd+2fMAmQ+Q+QCZDwAYvxQAC4LMBzBGkPkAxggyH8AYQeYDfFyZDyD0t2Q+gHF86IcAJQSZD2CMIPMBjBFkPoAxgswHMEaQ+QDGCDIfwBhB5gMYI8h8AGMEmQ9gjCDzATIfoC1+5gM03hNkPsDkDct8AMy9zHwAsvj0F4GZD4ATv+0UkPkAGPFbj4GZD9Aff/oxMPMB8I6amQ9gHL/lISDzAXjiHwJw5y7EEgFj/CPtLp98/3r7jZG3h6tcEwjFvxwFEAQG8b8DYI9APf4RALYIHOIfBWCHwCX+GQA2CJzinwUgj8At/ggAWQSO8UcByCFwjf8IABkEMxdb/EcBBAF5/BkAgoA4/iwA1giY488EYImAPf5sAFYIFOKvAGCBQCX+KgDSCJTirwQgiUAt/moAUggU41cAkECgGr8KADUC5fiVACgRqMevBkCFwCF+BwAKBC7xuwBAI3CK3wkAEoFb/G4AUAgc4yMAgEDgGh8FQCuCkaUSHwkADQKl+GgA4BGoxUcEAItAMT4qADgEqvGRAcAgUI6PDqAdgXp8BgBtCBziswAoR+ASnwlAGQKn+GwAliNwi88IYBkCx/isAKYjcI3PDGAagpGlEp8dQAsCpfgKAEoRqMVXAVCCQDG+EoClCFTjqwFYgkA5viKAqQjU46sCmILAIb4ygIcQuMRXBzCEwCm+A4BTCNziuwA4hMAxvhOALxG4xncDcBeB+764ATiCwGpPHAF8hcBuP1wB3EPgvBfWCK7ZhqysrKysrCy39Q9gQ/q5SfcuvQAAAABJRU5ErkJggg==",G="/smeditor/assets/leftBodyActive-75d41033.png",R="/smeditor/assets/leftBodyInactive-bbc074cd.png",J="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAAAXNSR0IArs4c6QAAAAZiS0dEANIA0gBQ7xAn7AAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB+EDFAI2I6Ho7PYAAANMSURBVHja7Z1bTgMxDEU7VjeAxAJR10C7CMoaEAus1B0Av6XiMY/EsX2PJT4GoTHpOZNJMhl32t3F6/n8eXt8eDrt1sTD48eiv79ebNcqluZumX9N7p7/39v7y7fj5+Nxuj3e7zrF9WKzP4xM8HsBHhXW8+RzPtgqVz4CrPiAM8IfIUzPnDaqAZmvfE8JeueyEQ2p0O17SOCRw7U/u16s1D2/JyCvXibtCCjKgC/LOX+LPfBzAZPvAZjqCQsAfGEBgC8sAPCFBQC+sADAFxYA+MICAF9YAOD7xh74f+evLpcB/+/81XYAhRQgKnwFCQz4ta/w0AIAX1gA4AvPApTgR5/WGvDjrTN4CmrAjwXfWwIDfjz4nhIY8GPC95LAgB8XvocEBnztqaYBX3udIczTQOoDFBOA+gA5gvoA1AcY17VTH2B8TuoDBAPinYv6AIEloD5A8Hs+9QEGBvUBiq0DZB7tUx9AGD7TQOAjAPARAPgIAHwEAD4CjIRPFBEA+MICAF9YAOALCwB8YQGALyxAS/hMAZMJAHxhAYAfI/YV4fccU3jkoz6AMHzvQbEBP2Y+6gMIw/fMYcCPCd8rlwE/LnyPnJbZXm8YFVcsDfi68GcJcP/980RxAZ6Px6mFBL0XM7xX/6quNv7YKiTQkeDXFkWUwPsLHaJ8gcSw+gBIMF6CLbnmsJrmnOj1fP68/93h6cSaQOeZQWv4P13Q09wTIoFvPg/4iwRAAr98XvAXC5BJAsVYCn+VAEhQB/5qAZCgBvxNAiBBfvj/rgP8F1lWDIHfSQAkyA2/iQBIkBd+MwGQICf8zYPAiAPDpQJl3++wBX7THoCeIB/8LgKMlkDlTeMW8LsJgAQ54HcZA0QaE6yRp/UgK3q4NAwJxAVAAgRAAgRAAgRAAgRAAgRAAgRAAgRAAgRAAgRAAgRAAgRAAgRAAgRAggERet9Vtk0la+REgGISIAASIAASIEA5CRAACRAACRAACRBAT4LKkqRvWW8JqvcQJVrXUoL7H24BYhIwBkCC1ZFRuJLvu7V6irgVPo+DRSRgQ4iwBGwJE5aATaHCErAtXFgCXgwRloBXwwpK0HrtAQFEJOD1cGEJKBAhLEHlsnEEQRAEQWjEFz4LZYAP3C09AAAAAElFTkSuQmCC",S="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAAAXNSR0IArs4c6QAAAAZiS0dEAAAAAAAA+UO7fwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB+EDFAI3FABOeLgAAAM3SURBVHja7d09csJADIZhW+O7pOMsaeGASZuz0HGapGUIMP7Z1Ur6XnVkMgj8PdjrxV7m6X/93j+4Xj+nPfX1/bHp/y/n29SqtvZu2X9P756v73T6efzTfP9gmTrV5XxbvTEyhd8r4FFlPZ98zYat8skHwI4NnDH8EWB69rRRbyDzJ98TQe9eNuKNVNjteyDw6DH3OgvwqAjH/Gij/q1nATYlrSgDvizP+aoWws8VWNoxAKd6ACB8ABA+AAgfAIQPAMIHAOEDgPABQPhjayH89/2r4zLCf9+/2hVAIQFEDV8BgRF+7U94aACELwyA8IXPApTCj35aa4Qfb57BE6gRfqzwvREY4ccL3xOBEX7M8L0QGOHHDd8DgRG+9qmmEb72PEOYbwNZH6AYANYHyFGsD8D6AON27awPML4n6wMEC8S7F+sDBEbA+gAJjvmsDyAcfqbnDD8PkHm0z/oAwuFzGkj4ACB8ABA+AAgfAIQPgJHhU0UAEL4wAMIXBkD4wgAIXxgA4QsDaBk+p4DJABC+MADCj1FLxfB7jik8+rE+gHD43oNiI/yY/VgfQDh8zx5G+DHD9+plhB83fI+ellmvdxgVZyyN8HXDXwXgyZ0lVHEAcwsEvSczvGf/qs42vtoDgEAEwbtDQDgE3j/oEOUHJEauDwCCwQiO9FqT1bzyuX4f/7DntnHmBIaHP+8FAALnfh7hbwUAgin+18Fbwt8DIA0Cxdoa/l4AICgS/hEAICgQ/lEAIEge/pp5gM2AIs4YEn4/ACBIHH4rACBIGn5LACBIGH6LQWC4geFWQAWudziUoXm8IPYEMcPvBWAoAqE7jZvsvc3zBYIgVvi9xgBhxgR78LQeZMlIAgEAQAAAEAAABAAAAQBAAAAQAAAEAAABAEAAABAAAAQAAAEAQAAAEEQqywY08kUlkX9pPSuAdAgAAAIAgAAA5RAAAAQAAAEAQAAAPQSVkViB99AVQfU9RKVLnJtMGx+tJ/iYCs60J2AMAIKWn34OASqHA74OFkbABSHCCLgkTBgBF4UKI+CycGEE3BgijIBbwwoiUN6GigBaIuD2cGEELBAhjEB9u1EURVEUlbz+AOnsq2p4bKxbAAAAAElFTkSuQmCC",Y="/smeditor/assets/rightBodyActive-07f95372.png",Z="/smeditor/assets/rightBodyInactive-fdefc2a4.png",K="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAAAXNSR0IArs4c6QAAAAZiS0dEAAAAAAAA+UO7fwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB+EDFAI3NtUuOVwAAAOHSURBVHja7Z3RTSsxEEUdKw0gUSCiBkIRhBoQBSLRQeDr6YWQEK/j8c7MPfcvIO0sPmcd24RhU07yut9/Hb9+fHguPbm7PxSLfH7UIdfpub9RtXvq99Z+e3/58fppt9scv96WYLk2cK0D9flRF0O4uz8Mk2BJ/ZHinaYW4fQM7MiZraW+JXxTAaxvfFRNzxLMGMPqDcgatTxKMGvsqmcwM2t4kmDmg1O9P50zr+1BgtlvndOqWfxgXq5pteWdkanbwDUWhtZbNIstYsoZgC0iAiABAiABAiABAiABAiABAiABAiABAiDButlmB3Vu0Nf4UMfx/Xg6Maxq8Ec/idFngqoGHwlYAyABAiABAiDB/F3A2p/Fn7U6j7Q7qBGfsghPYpSZoGaEjwSOBFh7kYMEKwrgZa+LBCsI4O3cGwmCbgMzQfAoQYhzACQ4aAvwbxBGDURECaxCf4CFtekPkCj0B6A/AP0BvAFZoxb9AYJLQH8A52sA+gO016c/QMBr0h8g4P7X8xYx5QzAFhEBkAABkAABkAABkAABkAABdEJ/AEJ/AOJTAgQQlwABxCVAAHEJEGDCVtCzBAggLgECiEvgvj/AUgiWg3lar+dzA3+NDf0BBlzTchCt69EfAAnoD4AE9AdAgkJ/ACQo9AcIIZ51PfoDIAH9AUhf3t5fNAWYfaBiXa/n+ufgP+12m/QCAL8dvqkAXvoDzDwaHl3PGn6TAC3vIx4kAP5y+KWUcvabr/v91+nXHh+e3a6Sgd8H/6IAkSQAfj/8PwWIIAHwb4N/VQALCTIlOvwmAZAgL/xmAZAgJ/xFAiBBPvhN5wDXCt1yTqAcD/AXC4AEueB3CYAEeeB3C4AEOeAvXgS2LgwjZekitncR6BH+TTOA1Q3x5M+DP0QAJQlm/efTWfCHCaAgQUb4Q9YAnjPq4Cor/NQCAF9YAOALCwB8YQGALywA8IUFAL6wAMAXFgD4wgIAX1gA4AsLAHxhAYAvLADwhQUAvrAAwLdNuA4hwBcXAPgIAHwEAD4CDI4ifAQQh48A4vDlBVCHn1qAa3CBLzADXIIM/P/ZluQZ0a00K3wWgeLwQwowswlFdviliP06GPhBBZgtgQr8UALMkkAJfjgBrCVQgx9SACsJFOGHFWC0BKrwQwswSgJl+OEFuCTBLVFre5f2z8OBLyTACAlUG16mbxEDfEIIIYSQ3/kGeiN5xirmRdUAAAAASUVORK5CYII=",O="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAAAXNSR0IArs4c6QAAAAZiS0dEAAAAAAAA+UO7fwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB+EDFAI3NUwnaOYAAANgSURBVHja7Z1BUuNADEUdF3dhx1lmyxxw2HIWdnMas6JqKpCx3ZbUkv7TLiFJR/1eOurGiNvyPbZ/b3x8/FpG4s/b8+IRv1//mrzOyPuzGntk/NGxX17e7++6PbxRQQDLiaoiwZUx9wRYF+EYmVhLsY+MbyncT7FmmtwZY2aWIGIO12xAZoyVUYKouVszg4kcI5MEkR8ctyKw2q4gS2FoHWmKQI9JyvKas3Y8pVaAatFlJWAbyEowtwhEAgRAAgRAAgRAAgRAAgRAAgRAAgRAgjTR/iTwp0mfeWWP9fh7IX0S+AhO9EUdmVeCVQ0+ElADIAECIAECIEH8LiCyYq523b/X7iDNLiDa8gqXfGdYCdaO8JEgkQCzixwkmChAlr0uEkwQINu5NxIU3QZ2gpBRghLnAEjwrC3A1yRYTURFCbyC/gAT4dEfgMJw+mpBfwD6A+QCMmMs+gMUl4D+AAmLwKiikP4ARYpA+gPkDPoDNF8J2AayEswtApEAAZAAAZAAAZAAAZAAAdhSIgASIAASIAASIAASIAASIIDAVjCzBAggLgECiEuQvj/AWQiek+k9Hv0BDF7T86KMjC3nSnwFeCaGBMkFiEgICZIKEJkIEiQTYMb3GRKwDQwXz3s8+gMgAf0BCLMzAA0Bov9Aw3u8kdd/AP/WXgDgH4fvKkCW/gBqR8Nn4B8S4Mj3SAYJgH8e/v9+uN3fceWXQt5VMvDH4O89oIQEwB+Hf+RBqSUA/jX4Rx9oKkGnqA7/zIORoCH8s09AgmbwR54kL0En+IfOAfYGunJOoBwZ4I8IgASN4I8KgARN4F8RAAkawF+WZXm6+PzbfWFYTYKoIjYj/KsrgMsb4pMfB99KABkJorqHRsG3FKC9BB3hK3xyTQ6uusLvLgDwhQUAvrAAwBcWAPjCAgBfWADgCwsAfGEBgC8sAPCFBQC+sADAFxYA+MICAF9YAOALCwB8xyjXIQT44gIAHwGAjwDARwDjUISPAOLwEUAcvrwA6vBbC7AHF/gCK8AjyMCvlYDbfzFTh08RKA6/pACR/Qe6w6+UTHh3MgX41RIKk0AFfsWk3CVQgl81MTcJ1OBXTs5cAkX41RM0k0AVfockL0ugDL9LohtzQrIb80HCG3NB0hvzQBAEQRAEsR+fBPrG1xa4jMQAAAAASUVORK5CYII=",k="data:image/png;base64,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",V="/smeditor/assets/upBodyInactive-87a7969e.png",z="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAAAXNSR0IArs4c6QAAAAZiS0dEAHgAeQB3paCnMQAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB+EDFAI5IlF3wK8AAAPCSURBVHja7Z1bbsIwFETNKBtAYoFV11C6iNI1VF0gEjug/YUoRbWxfR8zV+oHH9TG58QhUe6wK6v6PJ1+bl+/vryX2tofrtXvuZxRelXL+BHm2DL+1/fH3eu343F3+xq9Fykr/N7/u+Uzj/hsEHxuCcAM/3KGOQTr8VGMytP5NKIEoQXw+GWKVQIIPrcEEHxuCTBr4pGuob1L0HMtMeMIj3gDxasEvXeIxfM2b32peTmjesz94dptDWacDuyuP4LcZ/Byx45aAOubTJklgOBzSwDB55YAgs8tAQSfWwIIPrcEEHxuCSD43BJA8LklgOBzSwBm+PvDNeWDniEE8PQMIbMEYIfPLgEEn1sCCD63BBB8bgkg+NwSQPC5JYDgc0sAweeWAILPLYHyAcglUD4AuQQQfG4JaPMBoksQWoDo8DNJAMHnlgCCzy0BTT5AJgmUD+C0lA9Q/OUDWEgQKR9gKUFqxtHVa4yeEqS8DPR6fmU5VYUSYPY3bDYJwAz/r74AJgnADP/RWCwSgB0+uwQQfG4JIPjcEkDwuSVYosKvAdLaF7Ae49GYlomioXcAj/Bb3qt8AIfwZ5fyAYjhR5UAgs8tAQSfWwIIPrcEEHxuCSD43BJA8LklgOBzSwDB55ZgiQb/6/vj7vXry7sp0Jb5WP8a2dAdQEd+rJ0Ags8tAQSfW4JQ+QDr863Hapmj8gGSwI8oAQSfWwIwwr+csfnHKIHrfIBR8Gcu/ggJKPIBthbu7Xjcjd6Bnl3crTn2lKC3pBhxhD27tc6CP6o3sKcEo09T7i7EZ8J/dF3tRQLz7wAzJ20BP7ME/xkLXiY9Av5WzfrNoCjrCQ+T9gA/kwQ16wnrSXuCn0GC2vWE5aQ9wo8sQct6wmrSnuFHlKB1PWEx6VnwvZan9cTsSbPD97aeS+2kP0+nn57bFyN8T+sJS2DM8L2sJ6wmLfg+1hMWkxZ8P+u56CjOeToYvgOocpQEkAAqCaCSACoJoJIAKgmgkgAqCaCSACoJoJIA0euZ5g6GBBOKHaAFJEt8Dc0poAYoU3YR1XeA2T8dKwGCScCYWrYUwlI8nS4DVVkEsAxdiJhetq6QD3WumylKmR8anaXDKexTvZYSZGpvC/1Yt4UE2Xobwz/XP1OCjI2tKRo7ZkiQtas5TWfPSAkyt7Snau0aIUH2PIN0vX09JWAIs0jZ3NlDApYkk7Tdvc9IwBRjk7q9u0UCtgyj9P39WxLUVPYMBIqAh1YJGAIwaBI+aiVgST+hinj5rwSKvlGpVCqVSpW9fgGbIppuMBFz1QAAAABJRU5ErkJggg==",M="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAAAXNSR0IArs4c6QAAAAZiS0dEAHgAeQB3paCnMQAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB+EDFAI5JlYaBLYAAAO8SURBVHja7Z1LUt1ADEXtW94LM9aSKSwQpllLZqzmZZQq6oUX4nZ/JN2jGVDgRud0t21aYt/+jtvnD379+rGdjbf3p9Pf8/rysfWKlutnGGPL9Z+ff95/av/8gXonqSr83j+75Xce8bsJ+N4SyBn+68vHcgirr69tUUTaTzNKkFqAiDdTrhII+N4SCPjeEmjWwDM9Q0eXoGcuNWOGZ3yBElWC3ivE/sXnLr8JjPQMfjVhqx9vr8b0N4GV4EdYCUo+BmabhZUlEPC9JRDwvSUQ8L0lEPC9JRDwvSUQ8L0lEPC9JRDwvSUQ8L0lkDP8t/enkgc9UwgQ6QyhswRyh+8ugYDvLYGA7y2BgO8tgYDvLYGA7y2BgO8tgYDvLYGA7y0B/QHMJaA/gLkEAr63BLb9AbJLkFqA7PArSSDge0sg4HtLYNMfoJIE9AcIGvQHSJTgLFvd1fiuP8CxJYkZs6vXNd7en0KeXA71HiDi/uqyVaUSYPYdtpsEcob/qC7ASQI5w//XtVwkkDt8dwkEfG8JBHxvCQR8bwlCvAkcfZikNeGjrzHjZVH4TqFR4Z/9XvoDBIQ/O+gPYAw/qwQCvrcEAr63BAK+twQCvrcEAr63BAK+twQCvrcEAr63BEc2+PfvtlefWm4Zz+vLx+kcjTpoKma+90og4HtLIOB7S5CqP8AXf9sOFy1jpD9AEfgZJRDwvSU4HOGPrg38PPazj6ktj4ghVoARNe0z4Y+agSNWAov+AA8St49egTokdx8pQW9Jj5kzLBr8P0vt/dc6LMP7dne6unU7KPkUEAn+o70/ykowOr6tC9i2ee/b/xP+5bqFR7O701a1Z8qnopg7YuafvdMfdPcdOp+KMOgI8CtJcCafWj3oSPArSHA2n1o56IjwM0vQkk+tGnRk+BklaM2nVgx6FvzAESafmj1o4MfK59Ew6Fvn5csRfph8ajEwZ/gh8qmFgwZ+gHxq0aCBHySfB7O47HYwfAUgCgQCIACBAAQCEAhAIACBAAQCEAhAIACBAAQCZI8rFT4OHUwsVoAWkC7ta2y2gDNAnXoXWd0DzP7XsQiQTALHrmXHZhi0p+MxkKgiwMqmCxm7l91H1kOdy5oufAN/RwADCSqVt2U/1j1dgmq1jRXO9U+ToGJha5XCjuESVK1qrlTZM0yCyiXt1Uq7uktQvZ9Bxdq+bhI4NLOoWtx5WQKXTiaVq3ubJXBqY1O9vPu0BG49jBzq+2/kyFuAKxKUz49Th48bufEW4IwEtL4hCIIgCKJ0/AYcP+o66BZ87AAAAABJRU5ErkJggg==",j="/smeditor/assets/upleftBodyActive-bc79d60f.png",q="/smeditor/assets/upleftBodyInactive-f60085c6.png",W="data:image/png;base64,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",_="data:image/png;base64,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",$="/smeditor/assets/uprightBodyActive-3d912f52.png",A0="/smeditor/assets/uprightBodyInactive-01c6c977.png",n0="data:image/png;base64,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",t0="data:image/png;base64,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",o0="/smeditor/assets/bodyActive-889762ad.png",g0="/smeditor/assets/bodyInactive-5d99335a.png",a0="data:image/png;base64,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",B0="data:image/png;base64,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",r0="/smeditor/assets/parts-9a3f637b.png",e0="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAABACAMAAADCg1mMAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAq9QTFRFAAAA/////4SJAAAA/qa9hYP/pqb+zJL/3LT/g/+Dpv6m/oT+/qb+/7lv/8qRrP/lzv/vwcHBzdfN/6K4pKT+27L/pP6k/qT+/8mPzP/vzNbM/pywnZ3916r/nf2d/J39/8WHxP/sydHJ/pGgk5P906D/k/2T/JT8/8B9uv/pxcvF/4ePh4f/zpb/h/+H/oj+/7tzsP/mw8PD/n19f3/9yYz/f/1//ID8/7Zppv/jvr6+/3FxcnL+xID/cv5y/XP9/7Fdmv/fuLi4/2dnaGj+v3b/aP5o/Wn9/6xTkP/cs7Oz/VxcXl78umr/Xvxe+1/7/6ZH/vr+hP/Yra2t/U5OT0/9s1z/T/1P/FD8/585/O78dv/Upqam/z8/Pz//rU7/P/8/90f3/5gr++L7Zv/Kn5+f/y4uLy//pED9L/8v8D7w/ZEb99T3Vf/Al5eX/xcXFxf/li34F/8X5y/n+IkD7sHuPP+yi4uL/wAAAQH/ihr0Af8B4R/h4n8A6K/oJf+mgICA/w0NDQ3/kCX2Df8N5Cjk74UA67nrMf+shoaG/ygoKSn/oDv8Kf8p7jru/I8V9c/1T/+8lJSU/zk5OTn/qkj/Of859UP1/5Ul+tz6YP/GnJyc/UpKS0v9sVj/S/1L/Ez8/501/Or8cv/SpKSk/ldXWFj+uGb/WP5Y/Vn9/6RD/vb+gP/Xq6ur/2JiZGT+vXL/ZP5k/WX9/6pPjP/bsbGx/25ucHD+w37/cP5w/XH9/7BbmP/et7e3/Xl5eXn9x4b/ef15/Hr8/7NjoP/hu7u7hYX/zZT/hf+F/ob+/7pxrv/lwsLC/Y+dj4/90Zz/j/2P/JD8/755tv/oxMjE/5iqmZn/16j/mf+Z/pr+/8SFwv/syc/J/6CzoqD+267/oP6i/qD8/8mLyP/vytTK2fi5aQAAAOV0Uk5T////AP///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////xt8+5oAAAYhSURBVHic7Zt3bBxFFIefHSGEEL33hN5DTyWQgtMIaYReHHrvvYbeO4RO6DgNcBqkk0o66aST0EQXchxzHMbA2/fN3l12LXHDH4d0u9LNT59uz37zefe8I70pkf94lHidXxJ+zrJOGuRwrWyQw2nZMIdTslEO18jG8NpgLP3nJ9qxaTBWyyY551fJZp71R45EgNf5JbI5XBWMdbIFbBOolS3h6mBMy1bwumBMydZwDeM28PfBGBWwLZzit27nWX/k8BWwPfxDMNbJDvCPwVgrO8I/BWNadoJ/DsaU7Az/Eow1sgu8JhijAnaFfw3GKtnNs/7I4SNAXw3hL0WCYhvBX4lOX2R3+GvR6YvsAX8j9lfcE/5W7CrYC14qOn3JEaBX0d7wd2JX3T6e9cdOKN/z9bUvvEys2P3g5WIC9odXiAk4AF4pJuBAeJWYgIPgeRIv4GB4tZiAxp71x04o3/P1dQg8X6zYQ+EFYgIOgxeKCTgcXiQm4Ah4sZiAI+HpEi/gKHiJmIAmnvXHTijf8/XVFJ4hVmwzeKaYgObwLDEBLeDZYgJawnPEBBwNT5B4Aa3guWICjvGsP3ZC+Z1vnzgWnkipreFJwfRF2sCTg+mLtIWn8D3eDp7K/4Hj4JHB9LMF2P+RMnga/3fae9YfOXwFdIBHUWpHeDQCOsFjENAZHouA4+FxCOgCVyLghPB9E9AVHo+Abp71Rw5fAd3hSgT0gIcgoCc8FAEnwsMQ0AsejoCT4AoEnBy+bwJOgUcg4FTP+iOHr4DT4AoEnA73R8AZ8AAEnAkPRMBZ8CAEnA33Q0B5+L4J6A0PRsA5nvVHjnx/QCl5LvkqeR75Cnk++TJ5AfkSeSH5InkR+QJ5Mfk8eQnZl7yULJiAy8hnycvJZ8gryKfJK8mnyKvIJ8mrySfIa8jHyWvJx8jryIIJuJ58hLyBfJi8kXyIvIl8kLyZfIC8hbyfvJW8j7yNvJe8nUwE/NvC6zt8F0NOgF2SdaEAu2RrQwF2SadDAXbJp0IBdkvUhAJsgqWhAHu/OhRgt1RVIiAR4Fl/5EgEeJyvr2wB+iiULUAfhbIF6KNQtgB9FMoWoI9C2QL0izZbgD4KZQvQR6FEgGf9sRPK9/xEgBS1APtERoAthjICbDGUEWCLoYwAWwxlBNhiKCPAHrUyAmwxlBFgi6FEgGf9kSMRkPf5RS6g6BdDiQAyEUAWnYBkMcSYCIATAcFYZAKKfDGUCEgEFLmAIl8MJQISAUUuoOgXQ4kAMhFAFp2AZDHEWPQC7oCt4Dq5E7ZLtlb6wHZJp+Uu2C75lNwN2y1RI/fANvHS8FK396vDW8FuqarwVimYAHfvWsF14b1tf6na8N63v1Q6/G4wcanwu8PE1cijsHWHlYbdYPZ+ddgt1icYq8JusoIthlx7mxasj0Ku/U3b2fRRyLXHaTubPgq59jm9dfRRyLXX6a2jj0LPwdofqF+0fbPe10ch1y+ot5Y+Crl+woIJcA2OWrAKcA2Q2tCoAlyDpDY0qgDXQKn9hSrANVhqf6EKeA0uFxPQL+t9FfA6rP2HKuANz/pjJ5Tv+fp6Ey4XE/AW3FtMwNuwtrSqgHdg7TBVAe/C2mGqAt6DtUdYBVRkva8C+sPagaoCBnjWHzuhfM/X10BYC1YBg2BtalYBg2FtalYB78PaY6wCPoC1x1gFfAhrl3jcfoFKWHuOVcAQz/pjJ5Tf+faJoXBXSh0Gd2MxNBzuzmJoBNyDxdBHcE8WQx/DZfXsFxgJ92IxNMqz/sjhK2A03J5Sx8AdEDAW7oiAcXAnBIyHOyPgE7hVPQImwF0QMNGz/sjhK+AvuAGlToJbI2Ay3AYBU+C2CJgKt0PAp3CTegRMg8sQMN2z/sjhK2AG3JRSZ8LNEDALbo6A2XALBMyBWyLgM7hxPQLmwq0QMM+z/sjhuxiaT7rtbAtIt/1tIem2xy0i3fa5xaTbXvc56bbfOQHu9y0h3Xa9pWTBBCwj3YbG5aTbALmCdBskV5JuA+Uq0m2w/IJsRK4vYDXZkFxDFkyA+1zmu8COP0m3efoP0m2e/p10m6d/I93m6XXk+gLc5um1ZME2T//fBPwNay9iq3+k++8AAAAASUVORK5CYII=",i0="/smeditor/assets/frame-d599a2fe.png",s0="/smeditor/assets/parts-b37af2cf.png",C0="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAABACAMAAADCg1mMAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAt9QTFRFAAAA/////4SJAAAA/qa9hYP/pqb+zJL/3LT/g/+Dpv6m/oT+/qb+/7lv/8qR/8f//+b/rP/lzv/vwcHBzdfN/6K4pKT+27L/pP6k/qT+/8mP/+T/zP/vzNbM/pywnZ3916r/nf2d/J39/8WH/uD+xP/sydHJ/pGgk5P906D/k/2T/JT8/8B9/tj+uv/pxcvF/4ePh4f/zpb/h/+H/oj+/7tz/8z/sP/mw8PD/n19f3/9yYz/f/1//ID8/7Zp/sT+pv/jvr6+/3FxcnL+xID/cv5y/XP9/7Fd/rX+mv/fuLi4/2dnaGj+v3b/aP5o/Wn9/6xT/qj+kP/cs7Oz/VxcXl78umr/Xvxe+1/7/6ZH/Zz9hP/Yra2t/U5OT0/9s1z/T/1P/FD8/585/YP9dv/Upqam/z8/Pz//rU7/P/8/90f3/5gr+Xf5Zv/Kn5+f/y4uLy//pED9L/8v8D7w/ZEb9Wv1Vf/Al5eX/xcXFxf/li34F/8X5y/n+IkD7lfuPP+yi4uL/wAAAQH/ihr0Af8B4R/h4n8A6UPpJf+mgICA/w0NDQ3/kCX2Df8N5Cjk74UA7E7sMf+shoaG/ygoKSn/oDv8Kf8p7jru/I8V82XzT/+8lJSU/zk5OTn/qkj/Of859UP1/5Ul+HH4YP/GnJyc/UpKS0v9sVj/S/1L/Ez8/501/X39cv/SpKSk/ldXWFj+uGb/WP5Y/Vn9/6RD/pL+gP/Xq6ur/2JiZGT+vXL/ZP5k/WX9/6pP/qP+jP/bsbGx/25ucHD+w37/cP5w/XH9/7Bb/rL+mP/et7e3/Xl5eXn9x4b/ef15/Hr8/7Nj/r7+oP/hu7u7hYX/zZT/hf+F/ob+/7px/8r/rv/lwsLC/Y+dj4/90Zz/j/2P/JD8/755/tX+tv/oxMjE/5iqmZn/16j/mf+Z/pr+/8SF/93/wv/syc/J/6CzoqD+267/oP6i/qD8/8mL/+L+yP/vytTKfd22ZwAAAPV0Uk5T////AP////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////90oRikAAAGVUlEQVR4nO2bd4xUVRSHz0qMMcbYe8Ne6Ci9g3TsvYO9914XCyr23qUjHelIRzrSkY50pOOwDMu6rqs573z3zQ4zJs71jzWZd5N3f/nIm9lzP2Z2303OzZH/OHK87s8JX2dZLGWSuEj2T+JCOSCJC+TAJM6Xg5I4LgcncZ4cksQxOcyz/pQRCfC6P0cOh2PBXCxHwLuCuUiOhPOCuVCOgncHc4EcDceDOV+Ogffwr8fC+bzLcfBefurxnvWnDF8BJ8CbgrlYToQ3B3ORnARvCeZCORneGswFcgq8LZjzpSy8PZjjciq8I5jz5DR4ZzDH5HTP+lOGjwC9zoBXiS5f5Ex4tejyRc6C14guX+RseK3o8kXOgdeJ/S+fC68X+1ScB28Q+xSVgzeKferKe9afdkGZ3q9XBXiRmICK8GIxAZXgJWICKsNLxQRUgZeJCagKLxcTcD68QkzABfBKMQHVPOtPu6BM79erOjxLTEANeLaYgJrwHDEBteC5YgJqw/PEBNSB54sJqAsvEBNQD14oJqC+Z/1pF5Tp/Xo1gCeJCWgITxYT0AieIiagMTxVTEATeJqYgAvh6WICmsIzxAQ0g2eKCWjuWX/aBWV2v72iBTwqWL5IS3h0sHyRVvCYYPkireGxwfJF2sDj+D1/ETyevwsXwxP4O3IJPJG/O5d61p8yfAVcBg9CwOXwYARcAQ9BwJXwUARcBQ9DwNXwcARcA49AwLXwSARc51l/yvAVcD3cCwE3wL0RcCPcBwE3wX0RcDPcDwG3wP0R0BYegIB28EAE3OpZf8rwFXAb3AkBt8OdEXAH3AUBd8JdEXAX3A0Bd8PdEXAP3AMB98I9EXCfZ/0pI9M32I+8n/yYfID8iHyQ/JB8iPyAfJh8n3yEfI98lHyXfIx8h3ycLDUBT5BvkU+SHcmnyDfJp8k3yGfI18lnyQ7kc+Rr5PPkq+QLZKkJeJF8mXyJbE/m7pPt97nPvc69zyukW5hbqFu4E+HEOFGRgH9X9j8P382QK9wKLQ4XZoUWhQu3QgtDAfaRLwgF2FciPxRgX5l4KMC+UnmhAPvKxSIBkQDP+lNGJMDjfr1KCtBHoZIC9FEoF9ZC9VGopAB9FCopQB+FSgqIiyQJyBNJEhCTUv4lGAmQSEA2C7BXJATYZighwDZDuXAHNkMJAbYZSgiwzVBCQJz3tdGRzVBCQIz39as/ZUQCMr4/EhBk1grI+s1QJICMBJBZJyDaDDFHAuBIQDBnmYAs3wxFAiIBWS4gyzdDkYBIQJYLyPrNUCSAjASQWScg2gwxZ70A19xkH8nisPnJPrJFYXOUfaQLw+YpE1cQNleZuHx5G84N5njYDWbi8sJuMRMXC7vJSk2Aa2+zdrbisP3N2tmKwvY4a2crDNvnrLusIGyvs+6yfPkEtu6yuHwKW3dZnnwGW3dZTD73rD9l+G6GvoC1oVEfhb6EtaFRH4W+grWhUR+Fvoa1v1Afhb6Btb9QH4W+hbW/UB+FOsHaX6iPQp1h7S/UR6EunvWnXVCm9+vVFW4rJqAb3E5MQHdYW1pVQA9YO0xVQE9YO0xVwHewdpiqgF6wdpiqgN6wdpiqgD6e9addUKb369UX1qZmFdAP1qZmFdAf1qZmFTAA1h5jFTAQ1h5jFfA9rD3GKmAQrD3GKmAwrD3GKmCIZ/1pF5Tp/XoNhbWtXQUMg7WtXQUMh7WtXQWMgLXLXAWMhLXLXAX8AGuXuQoYBWuXuQoYDWuXuQoY41l/2gVldr+9YizclM3QOLgZm6HxcHM2QxPgFmyGJsIt2Qz9CLdiMzQJbs1maDLchs3QFM/6U4avgKlwXQRMg+shYDpcHwEz4AYImAk3RMBPcCMEzIIbI2A23AQBczzrTxm+Av6CyyBgLlwNAfPg6giYD9dAwAK4JgIWwrUQ8DNcGwGL4DoIWOxZf8rwFbAELoeApXB5BCyDKyBgOVwRASvgSghYCVdGwC9wFQSsgqsiYLVn/SnDdzO0hixLriXdgch1pDswuZ50Byo3kO7A5UbSHcj8lXQnRDeR7gTpZrLUBGwh3ZHXraQ7EruNdEdmt5PuSO0O0h253Um6I7m/ke6McIw8lNxFlpoA97rE7wIbf5Lu8PQfpDs8/TvpDk/vJd3h6T2kOzy9m3SHp93CS+3w9P9NwN85VJDW1dBaWwAAAABJRU5ErkJggg==",u=`precision mediump float; +import{s as B,u as I,v as E,b as v,w as l,O as P,x as w,y as c,z as f,H as r,J as p,Z as F,L as s,Q as y,X as D}from"./ChartManager-beed98d8.js";import{A as x}from"./AnimatedSprite-b9500bfb.js";import{H as m}from"./HoldBody-b84029dd.js";const U="/smeditor/assets/downBodyActive-dd1fd694.png",b="/smeditor/assets/downBodyInactive-c781a303.png",N="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB98FAw0dOV1YU4MAAAPKSURBVHja7d1dTupQFIbh0pwJkDBA4xjEQVjGcOIATZwBnFslHC1l7b2/v3WHiUL6PimUwHI3Xc1pWS5fbz8/vU5bZn843/07nx/zVDVb7h/5sW29/7/vb99uvxyPu6+356nRbHnAldEqg7HGXzPt/rIIAuX4zQGwI1CP3wUAKwKH+N0AsCFwid8VAAsCp/jdAaAjcIs/BAAqAsf4wwCgIXCNPxQACgLn+MMBICBwjg8BQAEBa3wYAMwImONDAWBEwB4fDgATAoX4kAAYEKjEhwWAjEApPjQARARq8eEBICFQjE8BAAGBanwaACMRKMefpmn60+NUWXVAPj/mu4PsD+fN94/4yeZqXHPr+NWn415nAtSPtVe/vplbP2BGBOjfaag8ll2frBgQqH2hBe5FIDICt/jDrgIQETjGH3oZiITANX4pAMYvf+wPZ8r4lfdfegZQ+kKoQ/wmTwHKCBQ/QDqjHCh0BKqfHs5+AOP4za8Csh8AO36Xy8DsB8CN3+19gOwHyH6A7AcAjN8VAAuC7AcwRpD9AMYIsh/AGEH2AxgjyH6AwZP9AJM3AAUE2Q9gjCD7AYwRZD+AMYLsBzBGkP0AxgiyH8AYQfYDGCPIfgBjBNkPYIwg+wEKDlj2A+AdyyZngOwHyH6ALs/J2Q+Q/QDZD8D6IjD7AXDiD7sKyH4AjPhDLwOzH2B8/FIA2Q/A+T5D9gMYx2/yFJD9ADzxVwG4/v/zrggY469pt7v1w9OyXK5/9vz0Sqe8CpVK/JfjcbcKQBB4xP8RQBDox/8VgDMCh/irADgicIm/GoATAqf4dwFwQOAW/24Ayggc428CoIjANf5mAEoIKoct/kMAgoA//sMAgoA7fgkAdwTM8csAuCJgj18KwA2BQvxyAC4IVOI3AaCOQCl+MwCqCNTiNwWghkAxfnMAKghU43cBwI5AOX43AKwI1ON3BcCGwCF+dwAsCFziDwGAjsAp/jAAqAjc4g8FgIbAMf5wACgIXONDABiNYMuoxIcBwIRAKT4UAAYEavHhACAjUIwPCQARgWp8WABICJTjQwNAQKAeHx7ASAQO8SkAjEDgEp8GQE8ETvGpAPRA4BafDkBLBI7xKQG0QOAanxZAJYItoxKfGsAoBErx6QH0RqAWXwJALwSK8WUAtEagGl8KQCsEyvHlAFQjUI8vCaAKgUN8WQCPInCJLw1gKwKn+PIA7kXgFt8CwFoEjvFtAPyGwDW+FYD/Ibg1LvHtAKxB4BTfEsBPCNzi2wK4hcAxvv2cluWy9nVBJpPJZDKZjNL8A8iasRIljXPgAAAAAElFTkSuQmCC",X="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB98FAw0eB7cUHesAAAO/SURBVHja7dw7VhtBEIXh0WzGGWtxahZop6yFzKuREwKQBcy0uqvuqzM4Bwv6/yxN61GX7f91ff/F6+vPbWT9/vPj9M88//q7zVojt4/8u43e/tPTy+23Lu+/2LdFa+QXnhltZjDW+EfWMgAqCJTjLwfAjkA9fgkAVgQO8csAsCFwiV8KgAWBU/xyAOgI3OK3AEBF4Bi/DQAaAtf423bzrNDbmvJMoOqGsf0tbc8EstwTuEPeETaPHQHzvdiOsomsCNgfwmAAMCJQuH6BAsCEQOXiFQ4AAwKlkwskAGQESvGhASAiUIsPDwAJgWJ8CgAICFTj0wDoRKAcf9sWvBZwb8NYX2xBfGfz2X+/9LWAzzas++1dI7eP+rb22dc3e9X/TCYE6J9pmLmXpdcADAjUPtACdxGIjMAtftspABGBY/zWYyASAtf404+BLhvJdKwtPQYqfSBUIX7LQ4AyAsV3D+8oG4WOQPWt45kPYBx/+Skg8wGw45ccAzMfADd+2fMAmQ+Q+QCZDwAYvxQAC4LMBzBGkPkAxggyH8AYQeYDfFyZDyD0t2Q+gHF86IcAJQSZD2CMIPMBjBFkPoAxgswHMEaQ+QDGCDIfwBhB5gMYI8h8AGMEmQ9gjCDzATIfoC1+5gM03hNkPsDkDct8AMy9zHwAsvj0F4GZD4ATv+0UkPkAGPFbj4GZD9Aff/oxMPMB8I6amQ9gHL/lISDzAXjiHwJw5y7EEgFj/CPtLp98/3r7jZG3h6tcEwjFvxwFEAQG8b8DYI9APf4RALYIHOIfBWCHwCX+GQA2CJzinwUgj8At/ggAWQSO8UcByCFwjf8IABkEMxdb/EcBBAF5/BkAgoA4/iwA1giY488EYImAPf5sAFYIFOKvAGCBQCX+KgDSCJTirwQgiUAt/moAUggU41cAkECgGr8KADUC5fiVACgRqMevBkCFwCF+BwAKBC7xuwBAI3CK3wkAEoFb/G4AUAgc4yMAgEDgGh8FQCuCkaUSHwkADQKl+GgA4BGoxUcEAItAMT4qADgEqvGRAcAgUI6PDqAdgXp8BgBtCBziswAoR+ASnwlAGQKn+GwAliNwi88IYBkCx/isAKYjcI3PDGAagpGlEp8dQAsCpfgKAEoRqMVXAVCCQDG+EoClCFTjqwFYgkA5viKAqQjU46sCmILAIb4ygIcQuMRXBzCEwCm+A4BTCNziuwA4hMAxvhOALxG4xncDcBeB+764ATiCwGpPHAF8hcBuP1wB3EPgvBfWCK7ZhqysrKysrCy39Q9gQ/q5SfcuvQAAAABJRU5ErkJggg==",G="/smeditor/assets/leftBodyActive-75d41033.png",R="/smeditor/assets/leftBodyInactive-bbc074cd.png",J="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAAAXNSR0IArs4c6QAAAAZiS0dEANIA0gBQ7xAn7AAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB+EDFAI2I6Ho7PYAAANMSURBVHja7Z1bTgMxDEU7VjeAxAJR10C7CMoaEAus1B0Av6XiMY/EsX2PJT4GoTHpOZNJMhl32t3F6/n8eXt8eDrt1sTD48eiv79ebNcqluZumX9N7p7/39v7y7fj5+Nxuj3e7zrF9WKzP4xM8HsBHhXW8+RzPtgqVz4CrPiAM8IfIUzPnDaqAZmvfE8JeueyEQ2p0O17SOCRw7U/u16s1D2/JyCvXibtCCjKgC/LOX+LPfBzAZPvAZjqCQsAfGEBgC8sAPCFBQC+sADAFxYA+MICAF9YAOD7xh74f+evLpcB/+/81XYAhRQgKnwFCQz4ta/w0AIAX1gA4AvPApTgR5/WGvDjrTN4CmrAjwXfWwIDfjz4nhIY8GPC95LAgB8XvocEBnztqaYBX3udIczTQOoDFBOA+gA5gvoA1AcY17VTH2B8TuoDBAPinYv6AIEloD5A8Hs+9QEGBvUBiq0DZB7tUx9AGD7TQOAjAPARAPgIAHwEAD4CjIRPFBEA+MICAF9YAOALCwB8YQGALyxAS/hMAZMJAHxhAYAfI/YV4fccU3jkoz6AMHzvQbEBP2Y+6gMIw/fMYcCPCd8rlwE/LnyPnJbZXm8YFVcsDfi68GcJcP/980RxAZ6Px6mFBL0XM7xX/6quNv7YKiTQkeDXFkWUwPsLHaJ8gcSw+gBIMF6CLbnmsJrmnOj1fP68/93h6cSaQOeZQWv4P13Q09wTIoFvPg/4iwRAAr98XvAXC5BJAsVYCn+VAEhQB/5qAZCgBvxNAiBBfvj/rgP8F1lWDIHfSQAkyA2/iQBIkBd+MwGQICf8zYPAiAPDpQJl3++wBX7THoCeIB/8LgKMlkDlTeMW8LsJgAQ54HcZA0QaE6yRp/UgK3q4NAwJxAVAAgRAAgRAAgRAAgRAAgRAAgRAAgRAAgRAAgRAAgRAAgRAAgRAAgRAggERet9Vtk0la+REgGISIAASIAASIEA5CRAACRAACRAACRBAT4LKkqRvWW8JqvcQJVrXUoL7H24BYhIwBkCC1ZFRuJLvu7V6irgVPo+DRSRgQ4iwBGwJE5aATaHCErAtXFgCXgwRloBXwwpK0HrtAQFEJOD1cGEJKBAhLEHlsnEEQRAEQWjEFz4LZYAP3C09AAAAAElFTkSuQmCC",S="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAAAXNSR0IArs4c6QAAAAZiS0dEAAAAAAAA+UO7fwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB+EDFAI3FABOeLgAAAM3SURBVHja7d09csJADIZhW+O7pOMsaeGASZuz0HGapGUIMP7Z1Ur6XnVkMgj8PdjrxV7m6X/93j+4Xj+nPfX1/bHp/y/n29SqtvZu2X9P756v73T6efzTfP9gmTrV5XxbvTEyhd8r4FFlPZ98zYat8skHwI4NnDH8EWB69rRRbyDzJ98TQe9eNuKNVNjteyDw6DH3OgvwqAjH/Gij/q1nATYlrSgDvizP+aoWws8VWNoxAKd6ACB8ABA+AAgfAIQPAMIHAOEDgPABQPhjayH89/2r4zLCf9+/2hVAIQFEDV8BgRF+7U94aACELwyA8IXPApTCj35aa4Qfb57BE6gRfqzwvREY4ccL3xOBEX7M8L0QGOHHDd8DgRG+9qmmEb72PEOYbwNZH6AYANYHyFGsD8D6AON27awPML4n6wMEC8S7F+sDBEbA+gAJjvmsDyAcfqbnDD8PkHm0z/oAwuFzGkj4ACB8ABA+AAgfAIQPgJHhU0UAEL4wAMIXBkD4wgAIXxgA4QsDaBk+p4DJABC+MADCj1FLxfB7jik8+rE+gHD43oNiI/yY/VgfQDh8zx5G+DHD9+plhB83fI+ellmvdxgVZyyN8HXDXwXgyZ0lVHEAcwsEvSczvGf/qs42vtoDgEAEwbtDQDgE3j/oEOUHJEauDwCCwQiO9FqT1bzyuX4f/7DntnHmBIaHP+8FAALnfh7hbwUAgin+18Fbwt8DIA0Cxdoa/l4AICgS/hEAICgQ/lEAIEge/pp5gM2AIs4YEn4/ACBIHH4rACBIGn5LACBIGH6LQWC4geFWQAWudziUoXm8IPYEMcPvBWAoAqE7jZvsvc3zBYIgVvi9xgBhxgR78LQeZMlIAgEAQAAAEAAABAAAAQBAAAAQAAAEAAABAEAAABAAAAQAAAEAQAAAEEQqywY08kUlkX9pPSuAdAgAAAIAgAAA5RAAAAQAAAEAQAAAPQSVkViB99AVQfU9RKVLnJtMGx+tJ/iYCs60J2AMAIKWn34OASqHA74OFkbABSHCCLgkTBgBF4UKI+CycGEE3BgijIBbwwoiUN6GigBaIuD2cGEELBAhjEB9u1EURVEUlbz+AOnsq2p4bKxbAAAAAElFTkSuQmCC",Y="/smeditor/assets/rightBodyActive-07f95372.png",Z="/smeditor/assets/rightBodyInactive-fdefc2a4.png",K="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAAAXNSR0IArs4c6QAAAAZiS0dEAAAAAAAA+UO7fwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB+EDFAI3NtUuOVwAAAOHSURBVHja7Z3RTSsxEEUdKw0gUSCiBkIRhBoQBSLRQeDr6YWQEK/j8c7MPfcvIO0sPmcd24RhU07yut9/Hb9+fHguPbm7PxSLfH7UIdfpub9RtXvq99Z+e3/58fppt9scv96WYLk2cK0D9flRF0O4uz8Mk2BJ/ZHinaYW4fQM7MiZraW+JXxTAaxvfFRNzxLMGMPqDcgatTxKMGvsqmcwM2t4kmDmg1O9P50zr+1BgtlvndOqWfxgXq5pteWdkanbwDUWhtZbNIstYsoZgC0iAiABAiABAiABAiABAiABAiABAiABAiDButlmB3Vu0Nf4UMfx/Xg6Maxq8Ec/idFngqoGHwlYAyABAiABAiDB/F3A2p/Fn7U6j7Q7qBGfsghPYpSZoGaEjwSOBFh7kYMEKwrgZa+LBCsI4O3cGwmCbgMzQfAoQYhzACQ4aAvwbxBGDURECaxCf4CFtekPkCj0B6A/AP0BvAFZoxb9AYJLQH8A52sA+gO016c/QMBr0h8g4P7X8xYx5QzAFhEBkAABkAABkAABkAABkAABdEJ/AEJ/AOJTAgQQlwABxCVAAHEJEGDCVtCzBAggLgECiEvgvj/AUgiWg3lar+dzA3+NDf0BBlzTchCt69EfAAnoD4AE9AdAgkJ/ACQo9AcIIZ51PfoDIAH9AUhf3t5fNAWYfaBiXa/n+ufgP+12m/QCAL8dvqkAXvoDzDwaHl3PGn6TAC3vIx4kAP5y+KWUcvabr/v91+nXHh+e3a6Sgd8H/6IAkSQAfj/8PwWIIAHwb4N/VQALCTIlOvwmAZAgL/xmAZAgJ/xFAiBBPvhN5wDXCt1yTqAcD/AXC4AEueB3CYAEeeB3C4AEOeAvXgS2LgwjZekitncR6BH+TTOA1Q3x5M+DP0QAJQlm/efTWfCHCaAgQUb4Q9YAnjPq4Cor/NQCAF9YAOALCwB8YQGALywA8IUFAL6wAMAXFgD4wgIAX1gA4AsLAHxhAYAvLADwhQUAvrAAwLdNuA4hwBcXAPgIAHwEAD4CDI4ifAQQh48A4vDlBVCHn1qAa3CBLzADXIIM/P/ZluQZ0a00K3wWgeLwQwowswlFdviliP06GPhBBZgtgQr8UALMkkAJfjgBrCVQgx9SACsJFOGHFWC0BKrwQwswSgJl+OEFuCTBLVFre5f2z8OBLyTACAlUG16mbxEDfEIIIYSQ3/kGeiN5xirmRdUAAAAASUVORK5CYII=",O="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAAAXNSR0IArs4c6QAAAAZiS0dEAAAAAAAA+UO7fwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB+EDFAI3NUwnaOYAAANgSURBVHja7Z1BUuNADEUdF3dhx1lmyxxw2HIWdnMas6JqKpCx3ZbUkv7TLiFJR/1eOurGiNvyPbZ/b3x8/FpG4s/b8+IRv1//mrzOyPuzGntk/NGxX17e7++6PbxRQQDLiaoiwZUx9wRYF+EYmVhLsY+MbyncT7FmmtwZY2aWIGIO12xAZoyVUYKouVszg4kcI5MEkR8ctyKw2q4gS2FoHWmKQI9JyvKas3Y8pVaAatFlJWAbyEowtwhEAgRAAgRAAgRAAgRAAgRAAgRAAgRAgjTR/iTwp0mfeWWP9fh7IX0S+AhO9EUdmVeCVQ0+ElADIAECIAECIEH8LiCyYq523b/X7iDNLiDa8gqXfGdYCdaO8JEgkQCzixwkmChAlr0uEkwQINu5NxIU3QZ2gpBRghLnAEjwrC3A1yRYTURFCbyC/gAT4dEfgMJw+mpBfwD6A+QCMmMs+gMUl4D+AAmLwKiikP4ARYpA+gPkDPoDNF8J2AayEswtApEAAZAAAZAAAZAAAZAAAdhSIgASIAASIAASIAASIAASIIDAVjCzBAggLgECiEuQvj/AWQiek+k9Hv0BDF7T86KMjC3nSnwFeCaGBMkFiEgICZIKEJkIEiQTYMb3GRKwDQwXz3s8+gMgAf0BCLMzAA0Bov9Aw3u8kdd/AP/WXgDgH4fvKkCW/gBqR8Nn4B8S4Mj3SAYJgH8e/v9+uN3fceWXQt5VMvDH4O89oIQEwB+Hf+RBqSUA/jX4Rx9oKkGnqA7/zIORoCH8s09AgmbwR54kL0En+IfOAfYGunJOoBwZ4I8IgASN4I8KgARN4F8RAAkawF+WZXm6+PzbfWFYTYKoIjYj/KsrgMsb4pMfB99KABkJorqHRsG3FKC9BB3hK3xyTQ6uusLvLgDwhQUAvrAAwBcWAPjCAgBfWADgCwsAfGEBgC8sAPCFBQC+sADAFxYA+MICAF9YAOALCwB8xyjXIQT44gIAHwGAjwDARwDjUISPAOLwEUAcvrwA6vBbC7AHF/gCK8AjyMCvlYDbfzFTh08RKA6/pACR/Qe6w6+UTHh3MgX41RIKk0AFfsWk3CVQgl81MTcJ1OBXTs5cAkX41RM0k0AVfockL0ugDL9LohtzQrIb80HCG3NB0hvzQBAEQRAEsR+fBPrG1xa4jMQAAAAASUVORK5CYII=",k="data:image/png;base64,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",V="/smeditor/assets/upBodyInactive-87a7969e.png",z="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAAAXNSR0IArs4c6QAAAAZiS0dEAHgAeQB3paCnMQAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB+EDFAI5IlF3wK8AAAPCSURBVHja7Z1bbsIwFETNKBtAYoFV11C6iNI1VF0gEjug/YUoRbWxfR8zV+oHH9TG58QhUe6wK6v6PJ1+bl+/vryX2tofrtXvuZxRelXL+BHm2DL+1/fH3eu343F3+xq9Fykr/N7/u+Uzj/hsEHxuCcAM/3KGOQTr8VGMytP5NKIEoQXw+GWKVQIIPrcEEHxuCTBr4pGuob1L0HMtMeMIj3gDxasEvXeIxfM2b32peTmjesz94dptDWacDuyuP4LcZ/Byx45aAOubTJklgOBzSwDB55YAgs8tAQSfWwIIPrcEEHxuCSD43BJA8LklgOBzSwBm+PvDNeWDniEE8PQMIbMEYIfPLgEEn1sCCD63BBB8bgkg+NwSQPC5JYDgc0sAweeWAILPLYHyAcglUD4AuQQQfG4JaPMBoksQWoDo8DNJAMHnlgCCzy0BTT5AJgmUD+C0lA9Q/OUDWEgQKR9gKUFqxtHVa4yeEqS8DPR6fmU5VYUSYPY3bDYJwAz/r74AJgnADP/RWCwSgB0+uwQQfG4JIPjcEkDwuSVYosKvAdLaF7Ae49GYlomioXcAj/Bb3qt8AIfwZ5fyAYjhR5UAgs8tAQSfWwIIPrcEEHxuCSD43BJA8LklgOBzSwDB55ZgiQb/6/vj7vXry7sp0Jb5WP8a2dAdQEd+rJ0Ags8tAQSfW4JQ+QDr863Hapmj8gGSwI8oAQSfWwIwwr+csfnHKIHrfIBR8Gcu/ggJKPIBthbu7Xjcjd6Bnl3crTn2lKC3pBhxhD27tc6CP6o3sKcEo09T7i7EZ8J/dF3tRQLz7wAzJ20BP7ME/xkLXiY9Av5WzfrNoCjrCQ+T9gA/kwQ16wnrSXuCn0GC2vWE5aQ9wo8sQct6wmrSnuFHlKB1PWEx6VnwvZan9cTsSbPD97aeS+2kP0+nn57bFyN8T+sJS2DM8L2sJ6wmLfg+1hMWkxZ8P+u56CjOeToYvgOocpQEkAAqCaCSACoJoJIAKgmgkgAqCaCSACoJoJIA0euZ5g6GBBOKHaAFJEt8Dc0poAYoU3YR1XeA2T8dKwGCScCYWrYUwlI8nS4DVVkEsAxdiJhetq6QD3WumylKmR8anaXDKexTvZYSZGpvC/1Yt4UE2Xobwz/XP1OCjI2tKRo7ZkiQtas5TWfPSAkyt7Snau0aIUH2PIN0vX09JWAIs0jZ3NlDApYkk7Tdvc9IwBRjk7q9u0UCtgyj9P39WxLUVPYMBIqAh1YJGAIwaBI+aiVgST+hinj5rwSKvlGpVCqVSpW9fgGbIppuMBFz1QAAAABJRU5ErkJggg==",M="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAAAXNSR0IArs4c6QAAAAZiS0dEAHgAeQB3paCnMQAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB+EDFAI5JlYaBLYAAAO8SURBVHja7Z1LUt1ADEXtW94LM9aSKSwQpllLZqzmZZQq6oUX4nZ/JN2jGVDgRud0t21aYt/+jtvnD379+rGdjbf3p9Pf8/rysfWKlutnGGPL9Z+ff95/av/8gXonqSr83j+75Xce8bsJ+N4SyBn+68vHcgirr69tUUTaTzNKkFqAiDdTrhII+N4SCPjeEmjWwDM9Q0eXoGcuNWOGZ3yBElWC3ivE/sXnLr8JjPQMfjVhqx9vr8b0N4GV4EdYCUo+BmabhZUlEPC9JRDwvSUQ8L0lEPC9JRDwvSUQ8L0lEPC9JRDwvSUQ8L0lkDP8t/enkgc9UwgQ6QyhswRyh+8ugYDvLYGA7y2BgO8tgYDvLYGA7y2BgO8tgYDvLYGA7y0B/QHMJaA/gLkEAr63BLb9AbJLkFqA7PArSSDge0sg4HtLYNMfoJIE9AcIGvQHSJTgLFvd1fiuP8CxJYkZs6vXNd7en0KeXA71HiDi/uqyVaUSYPYdtpsEcob/qC7ASQI5w//XtVwkkDt8dwkEfG8JBHxvCQR8bwlCvAkcfZikNeGjrzHjZVH4TqFR4Z/9XvoDBIQ/O+gPYAw/qwQCvrcEAr63BAK+twQCvrcEAr63BAK+twQCvrcEAr63BEc2+PfvtlefWm4Zz+vLx+kcjTpoKma+90og4HtLIOB7S5CqP8AXf9sOFy1jpD9AEfgZJRDwvSU4HOGPrg38PPazj6ktj4ghVoARNe0z4Y+agSNWAov+AA8St49egTokdx8pQW9Jj5kzLBr8P0vt/dc6LMP7dne6unU7KPkUEAn+o70/ykowOr6tC9i2ee/b/xP+5bqFR7O701a1Z8qnopg7YuafvdMfdPcdOp+KMOgI8CtJcCafWj3oSPArSHA2n1o56IjwM0vQkk+tGnRk+BklaM2nVgx6FvzAESafmj1o4MfK59Ew6Fvn5csRfph8ajEwZ/gh8qmFgwZ+gHxq0aCBHySfB7O47HYwfAUgCgQCIACBAAQCEAhAIACBAAQCEAhAIACBAAQCZI8rFT4OHUwsVoAWkC7ta2y2gDNAnXoXWd0DzP7XsQiQTALHrmXHZhi0p+MxkKgiwMqmCxm7l91H1kOdy5oufAN/RwADCSqVt2U/1j1dgmq1jRXO9U+ToGJha5XCjuESVK1qrlTZM0yCyiXt1Uq7uktQvZ9Bxdq+bhI4NLOoWtx5WQKXTiaVq3ubJXBqY1O9vPu0BG49jBzq+2/kyFuAKxKUz49Th48bufEW4IwEtL4hCIIgCKJ0/AYcP+o66BZ87AAAAABJRU5ErkJggg==",j="/smeditor/assets/upleftBodyActive-bc79d60f.png",q="/smeditor/assets/upleftBodyInactive-f60085c6.png",W="data:image/png;base64,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",_="data:image/png;base64,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",$="/smeditor/assets/uprightBodyActive-3d912f52.png",A0="/smeditor/assets/uprightBodyInactive-01c6c977.png",n0="data:image/png;base64,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",t0="data:image/png;base64,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",o0="/smeditor/assets/bodyActive-889762ad.png",g0="/smeditor/assets/bodyInactive-5d99335a.png",a0="data:image/png;base64,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",B0="data:image/png;base64,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",r0="/smeditor/assets/parts-9a3f637b.png",e0="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAABACAMAAADCg1mMAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAq9QTFRFAAAA/////4SJAAAA/qa9hYP/pqb+zJL/3LT/g/+Dpv6m/oT+/qb+/7lv/8qRrP/lzv/vwcHBzdfN/6K4pKT+27L/pP6k/qT+/8mPzP/vzNbM/pywnZ3916r/nf2d/J39/8WHxP/sydHJ/pGgk5P906D/k/2T/JT8/8B9uv/pxcvF/4ePh4f/zpb/h/+H/oj+/7tzsP/mw8PD/n19f3/9yYz/f/1//ID8/7Zppv/jvr6+/3FxcnL+xID/cv5y/XP9/7Fdmv/fuLi4/2dnaGj+v3b/aP5o/Wn9/6xTkP/cs7Oz/VxcXl78umr/Xvxe+1/7/6ZH/vr+hP/Yra2t/U5OT0/9s1z/T/1P/FD8/585/O78dv/Upqam/z8/Pz//rU7/P/8/90f3/5gr++L7Zv/Kn5+f/y4uLy//pED9L/8v8D7w/ZEb99T3Vf/Al5eX/xcXFxf/li34F/8X5y/n+IkD7sHuPP+yi4uL/wAAAQH/ihr0Af8B4R/h4n8A6K/oJf+mgICA/w0NDQ3/kCX2Df8N5Cjk74UA67nrMf+shoaG/ygoKSn/oDv8Kf8p7jru/I8V9c/1T/+8lJSU/zk5OTn/qkj/Of859UP1/5Ul+tz6YP/GnJyc/UpKS0v9sVj/S/1L/Ez8/501/Or8cv/SpKSk/ldXWFj+uGb/WP5Y/Vn9/6RD/vb+gP/Xq6ur/2JiZGT+vXL/ZP5k/WX9/6pPjP/bsbGx/25ucHD+w37/cP5w/XH9/7BbmP/et7e3/Xl5eXn9x4b/ef15/Hr8/7NjoP/hu7u7hYX/zZT/hf+F/ob+/7pxrv/lwsLC/Y+dj4/90Zz/j/2P/JD8/755tv/oxMjE/5iqmZn/16j/mf+Z/pr+/8SFwv/syc/J/6CzoqD+267/oP6i/qD8/8mLyP/vytTK2fi5aQAAAOV0Uk5T////AP///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////xt8+5oAAAYhSURBVHic7Zt3bBxFFIefHSGEEL33hN5DTyWQgtMIaYReHHrvvYbeO4RO6DgNcBqkk0o66aST0EQXchxzHMbA2/fN3l12LXHDH4d0u9LNT59uz37zefe8I70pkf94lHidXxJ+zrJOGuRwrWyQw2nZMIdTslEO18jG8NpgLP3nJ9qxaTBWyyY551fJZp71R45EgNf5JbI5XBWMdbIFbBOolS3h6mBMy1bwumBMydZwDeM28PfBGBWwLZzit27nWX/k8BWwPfxDMNbJDvCPwVgrO8I/BWNadoJ/DsaU7Az/Eow1sgu8JhijAnaFfw3GKtnNs/7I4SNAXw3hL0WCYhvBX4lOX2R3+GvR6YvsAX8j9lfcE/5W7CrYC14qOn3JEaBX0d7wd2JX3T6e9cdOKN/z9bUvvEys2P3g5WIC9odXiAk4AF4pJuBAeJWYgIPgeRIv4GB4tZiAxp71x04o3/P1dQg8X6zYQ+EFYgIOgxeKCTgcXiQm4Ah4sZiAI+HpEi/gKHiJmIAmnvXHTijf8/XVFJ4hVmwzeKaYgObwLDEBLeDZYgJawnPEBBwNT5B4Aa3guWICjvGsP3ZC+Z1vnzgWnkipreFJwfRF2sCTg+mLtIWn8D3eDp7K/4Hj4JHB9LMF2P+RMnga/3fae9YfOXwFdIBHUWpHeDQCOsFjENAZHouA4+FxCOgCVyLghPB9E9AVHo+Abp71Rw5fAd3hSgT0gIcgoCc8FAEnwsMQ0AsejoCT4AoEnBy+bwJOgUcg4FTP+iOHr4DT4AoEnA73R8AZ8AAEnAkPRMBZ8CAEnA33Q0B5+L4J6A0PRsA5nvVHjnx/QCl5LvkqeR75Cnk++TJ5AfkSeSH5InkR+QJ5Mfk8eQnZl7yULJiAy8hnycvJZ8gryKfJK8mnyKvIJ8mrySfIa8jHyWvJx8jryIIJuJ58hLyBfJi8kXyIvIl8kLyZfIC8hbyfvJW8j7yNvJe8nUwE/NvC6zt8F0NOgF2SdaEAu2RrQwF2SadDAXbJp0IBdkvUhAJsgqWhAHu/OhRgt1RVIiAR4Fl/5EgEeJyvr2wB+iiULUAfhbIF6KNQtgB9FMoWoI9C2QL0izZbgD4KZQvQR6FEgGf9sRPK9/xEgBS1APtERoAthjICbDGUEWCLoYwAWwxlBNhiKCPAHrUyAmwxlBFgi6FEgGf9kSMRkPf5RS6g6BdDiQAyEUAWnYBkMcSYCIATAcFYZAKKfDGUCEgEFLmAIl8MJQISAUUuoOgXQ4kAMhFAFp2AZDHEWPQC7oCt4Dq5E7ZLtlb6wHZJp+Uu2C75lNwN2y1RI/fANvHS8FK396vDW8FuqarwVimYAHfvWsF14b1tf6na8N63v1Q6/G4wcanwu8PE1cijsHWHlYbdYPZ+ddgt1icYq8JusoIthlx7mxasj0Ku/U3b2fRRyLXHaTubPgq59jm9dfRRyLXX6a2jj0LPwdofqF+0fbPe10ch1y+ot5Y+Crl+woIJcA2OWrAKcA2Q2tCoAlyDpDY0qgDXQKn9hSrANVhqf6EKeA0uFxPQL+t9FfA6rP2HKuANz/pjJ5Tv+fp6Ey4XE/AW3FtMwNuwtrSqgHdg7TBVAe/C2mGqAt6DtUdYBVRkva8C+sPagaoCBnjWHzuhfM/X10BYC1YBg2BtalYBg2FtalYB78PaY6wCPoC1x1gFfAhrl3jcfoFKWHuOVcAQz/pjJ5Tf+faJoXBXSh0Gd2MxNBzuzmJoBNyDxdBHcE8WQx/DZfXsFxgJ92IxNMqz/sjhK2A03J5Sx8AdEDAW7oiAcXAnBIyHOyPgE7hVPQImwF0QMNGz/sjhK+AvuAGlToJbI2Ay3AYBU+C2CJgKt0PAp3CTegRMg8sQMN2z/sjhK2AG3JRSZ8LNEDALbo6A2XALBMyBWyLgM7hxPQLmwq0QMM+z/sjhuxiaT7rtbAtIt/1tIem2xy0i3fa5xaTbXvc56bbfOQHu9y0h3Xa9pWTBBCwj3YbG5aTbALmCdBskV5JuA+Uq0m2w/IJsRK4vYDXZkFxDFkyA+1zmu8COP0m3efoP0m2e/p10m6d/I93m6XXk+gLc5um1ZME2T//fBPwNay9iq3+k++8AAAAASUVORK5CYII=",i0="/smeditor/assets/frame-d599a2fe.png",s0="/smeditor/assets/parts-b37af2cf.png",C0="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAABACAMAAADCg1mMAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAt9QTFRFAAAA/////4SJAAAA/qa9hYP/pqb+zJL/3LT/g/+Dpv6m/oT+/qb+/7lv/8qR/8f//+b/rP/lzv/vwcHBzdfN/6K4pKT+27L/pP6k/qT+/8mP/+T/zP/vzNbM/pywnZ3916r/nf2d/J39/8WH/uD+xP/sydHJ/pGgk5P906D/k/2T/JT8/8B9/tj+uv/pxcvF/4ePh4f/zpb/h/+H/oj+/7tz/8z/sP/mw8PD/n19f3/9yYz/f/1//ID8/7Zp/sT+pv/jvr6+/3FxcnL+xID/cv5y/XP9/7Fd/rX+mv/fuLi4/2dnaGj+v3b/aP5o/Wn9/6xT/qj+kP/cs7Oz/VxcXl78umr/Xvxe+1/7/6ZH/Zz9hP/Yra2t/U5OT0/9s1z/T/1P/FD8/585/YP9dv/Upqam/z8/Pz//rU7/P/8/90f3/5gr+Xf5Zv/Kn5+f/y4uLy//pED9L/8v8D7w/ZEb9Wv1Vf/Al5eX/xcXFxf/li34F/8X5y/n+IkD7lfuPP+yi4uL/wAAAQH/ihr0Af8B4R/h4n8A6UPpJf+mgICA/w0NDQ3/kCX2Df8N5Cjk74UA7E7sMf+shoaG/ygoKSn/oDv8Kf8p7jru/I8V82XzT/+8lJSU/zk5OTn/qkj/Of859UP1/5Ul+HH4YP/GnJyc/UpKS0v9sVj/S/1L/Ez8/501/X39cv/SpKSk/ldXWFj+uGb/WP5Y/Vn9/6RD/pL+gP/Xq6ur/2JiZGT+vXL/ZP5k/WX9/6pP/qP+jP/bsbGx/25ucHD+w37/cP5w/XH9/7Bb/rL+mP/et7e3/Xl5eXn9x4b/ef15/Hr8/7Nj/r7+oP/hu7u7hYX/zZT/hf+F/ob+/7px/8r/rv/lwsLC/Y+dj4/90Zz/j/2P/JD8/755/tX+tv/oxMjE/5iqmZn/16j/mf+Z/pr+/8SF/93/wv/syc/J/6CzoqD+267/oP6i/qD8/8mL/+L+yP/vytTKfd22ZwAAAPV0Uk5T////AP////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////90oRikAAAGVUlEQVR4nO2bd4xUVRSHz0qMMcbYe8Ne6Ci9g3TsvYO9914XCyr23qUjHelIRzrSkY50pOOwDMu6rqs573z3zQ4zJs71jzWZd5N3f/nIm9lzP2Z2303OzZH/OHK87s8JX2dZLGWSuEj2T+JCOSCJC+TAJM6Xg5I4LgcncZ4cksQxOcyz/pQRCfC6P0cOh2PBXCxHwLuCuUiOhPOCuVCOgncHc4EcDceDOV+Ogffwr8fC+bzLcfBefurxnvWnDF8BJ8CbgrlYToQ3B3ORnARvCeZCORneGswFcgq8LZjzpSy8PZjjciq8I5jz5DR4ZzDH5HTP+lOGjwC9zoBXiS5f5Ex4tejyRc6C14guX+RseK3o8kXOgdeJ/S+fC68X+1ScB28Q+xSVgzeKferKe9afdkGZ3q9XBXiRmICK8GIxAZXgJWICKsNLxQRUgZeJCagKLxcTcD68QkzABfBKMQHVPOtPu6BM79erOjxLTEANeLaYgJrwHDEBteC5YgJqw/PEBNSB54sJqAsvEBNQD14oJqC+Z/1pF5Tp/Xo1gCeJCWgITxYT0AieIiagMTxVTEATeJqYgAvh6WICmsIzxAQ0g2eKCWjuWX/aBWV2v72iBTwqWL5IS3h0sHyRVvCYYPkireGxwfJF2sDj+D1/ETyevwsXwxP4O3IJPJG/O5d61p8yfAVcBg9CwOXwYARcAQ9BwJXwUARcBQ9DwNXwcARcA49AwLXwSARc51l/yvAVcD3cCwE3wL0RcCPcBwE3wX0RcDPcDwG3wP0R0BYegIB28EAE3OpZf8rwFXAb3AkBt8OdEXAH3AUBd8JdEXAX3A0Bd8PdEXAP3AMB98I9EXCfZ/0pI9M32I+8n/yYfID8iHyQ/JB8iPyAfJh8n3yEfI98lHyXfIx8h3ycLDUBT5BvkU+SHcmnyDfJp8k3yGfI18lnyQ7kc+Rr5PPkq+QLZKkJeJF8mXyJbE/m7pPt97nPvc69zyukW5hbqFu4E+HEOFGRgH9X9j8P382QK9wKLQ4XZoUWhQu3QgtDAfaRLwgF2FciPxRgX5l4KMC+UnmhAPvKxSIBkQDP+lNGJMDjfr1KCtBHoZIC9FEoF9ZC9VGopAB9FCopQB+FSgqIiyQJyBNJEhCTUv4lGAmQSEA2C7BXJATYZighwDZDuXAHNkMJAbYZSgiwzVBCQJz3tdGRzVBCQIz39as/ZUQCMr4/EhBk1grI+s1QJICMBJBZJyDaDDFHAuBIQDBnmYAs3wxFAiIBWS4gyzdDkYBIQJYLyPrNUCSAjASQWScg2gwxZ70A19xkH8nisPnJPrJFYXOUfaQLw+YpE1cQNleZuHx5G84N5njYDWbi8sJuMRMXC7vJSk2Aa2+zdrbisP3N2tmKwvY4a2crDNvnrLusIGyvs+6yfPkEtu6yuHwKW3dZnnwGW3dZTD73rD9l+G6GvoC1oVEfhb6EtaFRH4W+grWhUR+Fvoa1v1Afhb6Btb9QH4W+hbW/UB+FOsHaX6iPQp1h7S/UR6EunvWnXVCm9+vVFW4rJqAb3E5MQHdYW1pVQA9YO0xVQE9YO0xVwHewdpiqgF6wdpiqgN6wdpiqgD6e9addUKb369UX1qZmFdAP1qZmFdAf1qZmFTAA1h5jFTAQ1h5jFfA9rD3GKmAQrD3GKmAwrD3GKmCIZ/1pF5Tp/XoNhbWtXQUMg7WtXQUMh7WtXQWMgLXLXAWMhLXLXAX8AGuXuQoYBWuXuQoYDWuXuQoY41l/2gVldr+9YizclM3QOLgZm6HxcHM2QxPgFmyGJsIt2Qz9CLdiMzQJbs1maDLchs3QFM/6U4avgKlwXQRMg+shYDpcHwEz4AYImAk3RMBPcCMEzIIbI2A23AQBczzrTxm+Av6CyyBgLlwNAfPg6giYD9dAwAK4JgIWwrUQ8DNcGwGL4DoIWOxZf8rwFbAELoeApXB5BCyDKyBgOVwRASvgSghYCVdGwC9wFQSsgqsiYLVn/SnDdzO0hixLriXdgch1pDswuZ50Byo3kO7A5UbSHcj8lXQnRDeR7gTpZrLUBGwh3ZHXraQ7EruNdEdmt5PuSO0O0h253Um6I7m/ke6McIw8lNxFlpoA97rE7wIbf5Lu8PQfpDs8/TvpDk/vJd3h6T2kOzy9m3SHp93CS+3w9P9NwN85VJDW1dBaWwAAAABJRU5ErkJggg==",u=`precision mediump float; varying vec2 vUvs; diff --git a/Noteskin-5c44b6a2.js b/Noteskin-c0555f91.js similarity index 99% rename from Noteskin-5c44b6a2.js rename to Noteskin-c0555f91.js index 84b1534e..9b5487db 100644 --- a/Noteskin-5c44b6a2.js +++ b/Noteskin-c0555f91.js @@ -1,4 +1,4 @@ -import{s as o,u as H,v as r,b as G,w as E,O as f,x as Q,y as I,z as c,H as C,J as F,Z as K,L as a,Q as u,X as P}from"./ChartManager-0bba2271.js";import{A as h}from"./AnimatedSprite-d8e8da79.js";import{H as v}from"./HoldBody-2ee2d035.js";const L="/smeditor/assets/downBodyActive-dd1fd694.png",k="/smeditor/assets/downBodyInactive-c781a303.png",Y="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB98FAw0dOV1YU4MAAAPKSURBVHja7d1dTupQFIbh0pwJkDBA4xjEQVjGcOIATZwBnFslHC1l7b2/v3WHiUL6PimUwHI3Xc1pWS5fbz8/vU5bZn843/07nx/zVDVb7h/5sW29/7/vb99uvxyPu6+356nRbHnAldEqg7HGXzPt/rIIAuX4zQGwI1CP3wUAKwKH+N0AsCFwid8VAAsCp/jdAaAjcIs/BAAqAsf4wwCgIXCNPxQACgLn+MMBICBwjg8BQAEBa3wYAMwImONDAWBEwB4fDgATAoX4kAAYEKjEhwWAjEApPjQARARq8eEBICFQjE8BAAGBanwaACMRKMefpmn60+NUWXVAPj/mu4PsD+fN94/4yeZqXHPr+NWn415nAtSPtVe/vplbP2BGBOjfaag8ll2frBgQqH2hBe5FIDICt/jDrgIQETjGH3oZiITANX4pAMYvf+wPZ8r4lfdfegZQ+kKoQ/wmTwHKCBQ/QDqjHCh0BKqfHs5+AOP4za8Csh8AO36Xy8DsB8CN3+19gOwHyH6A7AcAjN8VAAuC7AcwRpD9AMYIsh/AGEH2AxgjyH6AwZP9AJM3AAUE2Q9gjCD7AYwRZD+AMYLsBzBGkP0AxgiyH8AYQfYDGCPIfgBjBNkPYIwg+wEKDlj2A+AdyyZngOwHyH6ALs/J2Q+Q/QDZD8D6IjD7AXDiD7sKyH4AjPhDLwOzH2B8/FIA2Q/A+T5D9gMYx2/yFJD9ADzxVwG4/v/zrggY469pt7v1w9OyXK5/9vz0Sqe8CpVK/JfjcbcKQBB4xP8RQBDox/8VgDMCh/irADgicIm/GoATAqf4dwFwQOAW/24Ayggc428CoIjANf5mAEoIKoct/kMAgoA//sMAgoA7fgkAdwTM8csAuCJgj18KwA2BQvxyAC4IVOI3AaCOQCl+MwCqCNTiNwWghkAxfnMAKghU43cBwI5AOX43AKwI1ON3BcCGwCF+dwAsCFziDwGAjsAp/jAAqAjc4g8FgIbAMf5wACgIXONDABiNYMuoxIcBwIRAKT4UAAYEavHhACAjUIwPCQARgWp8WABICJTjQwNAQKAeHx7ASAQO8SkAjEDgEp8GQE8ETvGpAPRA4BafDkBLBI7xKQG0QOAanxZAJYItoxKfGsAoBErx6QH0RqAWXwJALwSK8WUAtEagGl8KQCsEyvHlAFQjUI8vCaAKgUN8WQCPInCJLw1gKwKn+PIA7kXgFt8CwFoEjvFtAPyGwDW+FYD/Ibg1LvHtAKxB4BTfEsBPCNzi2wK4hcAxvv2cluWy9nVBJpPJZDKZjNL8A8iasRIljXPgAAAAAElFTkSuQmCC",z="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB98FAw0eB7cUHesAAAO/SURBVHja7dw7VhtBEIXh0WzGGWtxahZop6yFzKuREwKQBcy0uqvuqzM4Bwv6/yxN61GX7f91ff/F6+vPbWT9/vPj9M88//q7zVojt4/8u43e/tPTy+23Lu+/2LdFa+QXnhltZjDW+EfWMgAqCJTjLwfAjkA9fgkAVgQO8csAsCFwiV8KgAWBU/xyAOgI3OK3AEBF4Bi/DQAaAtf423bzrNDbmvJMoOqGsf0tbc8EstwTuEPeETaPHQHzvdiOsomsCNgfwmAAMCJQuH6BAsCEQOXiFQ4AAwKlkwskAGQESvGhASAiUIsPDwAJgWJ8CgAICFTj0wDoRKAcf9sWvBZwb8NYX2xBfGfz2X+/9LWAzzas++1dI7eP+rb22dc3e9X/TCYE6J9pmLmXpdcADAjUPtACdxGIjMAtftspABGBY/zWYyASAtf404+BLhvJdKwtPQYqfSBUIX7LQ4AyAsV3D+8oG4WOQPWt45kPYBx/+Skg8wGw45ccAzMfADd+2fMAmQ+Q+QCZDwAYvxQAC4LMBzBGkPkAxggyH8AYQeYDfFyZDyD0t2Q+gHF86IcAJQSZD2CMIPMBjBFkPoAxgswHMEaQ+QDGCDIfwBhB5gMYI8h8AGMEmQ9gjCDzATIfoC1+5gM03hNkPsDkDct8AMy9zHwAsvj0F4GZD4ATv+0UkPkAGPFbj4GZD9Aff/oxMPMB8I6amQ9gHL/lISDzAXjiHwJw5y7EEgFj/CPtLp98/3r7jZG3h6tcEwjFvxwFEAQG8b8DYI9APf4RALYIHOIfBWCHwCX+GQA2CJzinwUgj8At/ggAWQSO8UcByCFwjf8IABkEMxdb/EcBBAF5/BkAgoA4/iwA1giY488EYImAPf5sAFYIFOKvAGCBQCX+KgDSCJTirwQgiUAt/moAUggU41cAkECgGr8KADUC5fiVACgRqMevBkCFwCF+BwAKBC7xuwBAI3CK3wkAEoFb/G4AUAgc4yMAgEDgGh8FQCuCkaUSHwkADQKl+GgA4BGoxUcEAItAMT4qADgEqvGRAcAgUI6PDqAdgXp8BgBtCBziswAoR+ASnwlAGQKn+GwAliNwi88IYBkCx/isAKYjcI3PDGAagpGlEp8dQAsCpfgKAEoRqMVXAVCCQDG+EoClCFTjqwFYgkA5viKAqQjU46sCmILAIb4ygIcQuMRXBzCEwCm+A4BTCNziuwA4hMAxvhOALxG4xncDcBeB+764ATiCwGpPHAF8hcBuP1wB3EPgvBfWCK7ZhqysrKysrCy39Q9gQ/q5SfcuvQAAAABJRU5ErkJggg==",p="/smeditor/assets/leftBodyActive-75d41033.png",b="/smeditor/assets/leftBodyInactive-bbc074cd.png",O="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAAAXNSR0IArs4c6QAAAAZiS0dEANIA0gBQ7xAn7AAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB+EDFAI2I6Ho7PYAAANMSURBVHja7Z1bTgMxDEU7VjeAxAJR10C7CMoaEAus1B0Av6XiMY/EsX2PJT4GoTHpOZNJMhl32t3F6/n8eXt8eDrt1sTD48eiv79ebNcqluZumX9N7p7/39v7y7fj5+Nxuj3e7zrF9WKzP4xM8HsBHhXW8+RzPtgqVz4CrPiAM8IfIUzPnDaqAZmvfE8JeueyEQ2p0O17SOCRw7U/u16s1D2/JyCvXibtCCjKgC/LOX+LPfBzAZPvAZjqCQsAfGEBgC8sAPCFBQC+sADAFxYA+MICAF9YAOD7xh74f+evLpcB/+/81XYAhRQgKnwFCQz4ta/w0AIAX1gA4AvPApTgR5/WGvDjrTN4CmrAjwXfWwIDfjz4nhIY8GPC95LAgB8XvocEBnztqaYBX3udIczTQOoDFBOA+gA5gvoA1AcY17VTH2B8TuoDBAPinYv6AIEloD5A8Hs+9QEGBvUBiq0DZB7tUx9AGD7TQOAjAPARAPgIAHwEAD4CjIRPFBEA+MICAF9YAOALCwB8YQGALyxAS/hMAZMJAHxhAYAfI/YV4fccU3jkoz6AMHzvQbEBP2Y+6gMIw/fMYcCPCd8rlwE/LnyPnJbZXm8YFVcsDfi68GcJcP/980RxAZ6Px6mFBL0XM7xX/6quNv7YKiTQkeDXFkWUwPsLHaJ8gcSw+gBIMF6CLbnmsJrmnOj1fP68/93h6cSaQOeZQWv4P13Q09wTIoFvPg/4iwRAAr98XvAXC5BJAsVYCn+VAEhQB/5qAZCgBvxNAiBBfvj/rgP8F1lWDIHfSQAkyA2/iQBIkBd+MwGQICf8zYPAiAPDpQJl3++wBX7THoCeIB/8LgKMlkDlTeMW8LsJgAQ54HcZA0QaE6yRp/UgK3q4NAwJxAVAAgRAAgRAAgRAAgRAAgRAAgRAAgRAAgRAAgRAAgRAAgRAAgRAAgRAggERet9Vtk0la+REgGISIAASIAASIEA5CRAACRAACRAACRBAT4LKkqRvWW8JqvcQJVrXUoL7H24BYhIwBkCC1ZFRuJLvu7V6irgVPo+DRSRgQ4iwBGwJE5aATaHCErAtXFgCXgwRloBXwwpK0HrtAQFEJOD1cGEJKBAhLEHlsnEEQRAEQWjEFz4LZYAP3C09AAAAAElFTkSuQmCC",R="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAAAXNSR0IArs4c6QAAAAZiS0dEAAAAAAAA+UO7fwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB+EDFAI3FABOeLgAAAM3SURBVHja7d09csJADIZhW+O7pOMsaeGASZuz0HGapGUIMP7Z1Ur6XnVkMgj8PdjrxV7m6X/93j+4Xj+nPfX1/bHp/y/n29SqtvZu2X9P756v73T6efzTfP9gmTrV5XxbvTEyhd8r4FFlPZ98zYat8skHwI4NnDH8EWB69rRRbyDzJ98TQe9eNuKNVNjteyDw6DH3OgvwqAjH/Gij/q1nATYlrSgDvizP+aoWws8VWNoxAKd6ACB8ABA+AAgfAIQPAMIHAOEDgPABQPhjayH89/2r4zLCf9+/2hVAIQFEDV8BgRF+7U94aACELwyA8IXPApTCj35aa4Qfb57BE6gRfqzwvREY4ccL3xOBEX7M8L0QGOHHDd8DgRG+9qmmEb72PEOYbwNZH6AYANYHyFGsD8D6AON27awPML4n6wMEC8S7F+sDBEbA+gAJjvmsDyAcfqbnDD8PkHm0z/oAwuFzGkj4ACB8ABA+AAgfAIQPgJHhU0UAEL4wAMIXBkD4wgAIXxgA4QsDaBk+p4DJABC+MADCj1FLxfB7jik8+rE+gHD43oNiI/yY/VgfQDh8zx5G+DHD9+plhB83fI+ellmvdxgVZyyN8HXDXwXgyZ0lVHEAcwsEvSczvGf/qs42vtoDgEAEwbtDQDgE3j/oEOUHJEauDwCCwQiO9FqT1bzyuX4f/7DntnHmBIaHP+8FAALnfh7hbwUAgin+18Fbwt8DIA0Cxdoa/l4AICgS/hEAICgQ/lEAIEge/pp5gM2AIs4YEn4/ACBIHH4rACBIGn5LACBIGH6LQWC4geFWQAWudziUoXm8IPYEMcPvBWAoAqE7jZvsvc3zBYIgVvi9xgBhxgR78LQeZMlIAgEAQAAAEAAABAAAAQBAAAAQAAAEAAABAEAAABAAAAQAAAEAQAAAEEQqywY08kUlkX9pPSuAdAgAAAIAgAAA5RAAAAQAAAEAQAAAPQSVkViB99AVQfU9RKVLnJtMGx+tJ/iYCs60J2AMAIKWn34OASqHA74OFkbABSHCCLgkTBgBF4UKI+CycGEE3BgijIBbwwoiUN6GigBaIuD2cGEELBAhjEB9u1EURVEUlbz+AOnsq2p4bKxbAAAAAElFTkSuQmCC",x="/smeditor/assets/rightBodyActive-07f95372.png",y="/smeditor/assets/rightBodyInactive-fdefc2a4.png",T="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAAAXNSR0IArs4c6QAAAAZiS0dEAAAAAAAA+UO7fwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB+EDFAI3NtUuOVwAAAOHSURBVHja7Z3RTSsxEEUdKw0gUSCiBkIRhBoQBSLRQeDr6YWQEK/j8c7MPfcvIO0sPmcd24RhU07yut9/Hb9+fHguPbm7PxSLfH7UIdfpub9RtXvq99Z+e3/58fppt9scv96WYLk2cK0D9flRF0O4uz8Mk2BJ/ZHinaYW4fQM7MiZraW+JXxTAaxvfFRNzxLMGMPqDcgatTxKMGvsqmcwM2t4kmDmg1O9P50zr+1BgtlvndOqWfxgXq5pteWdkanbwDUWhtZbNIstYsoZgC0iAiABAiABAiABAiABAiABAiABAiABAiDButlmB3Vu0Nf4UMfx/Xg6Maxq8Ec/idFngqoGHwlYAyABAiABAiDB/F3A2p/Fn7U6j7Q7qBGfsghPYpSZoGaEjwSOBFh7kYMEKwrgZa+LBCsI4O3cGwmCbgMzQfAoQYhzACQ4aAvwbxBGDURECaxCf4CFtekPkCj0B6A/AP0BvAFZoxb9AYJLQH8A52sA+gO016c/QMBr0h8g4P7X8xYx5QzAFhEBkAABkAABkAABkAABkAABdEJ/AEJ/AOJTAgQQlwABxCVAAHEJEGDCVtCzBAggLgECiEvgvj/AUgiWg3lar+dzA3+NDf0BBlzTchCt69EfAAnoD4AE9AdAgkJ/ACQo9AcIIZ51PfoDIAH9AUhf3t5fNAWYfaBiXa/n+ufgP+12m/QCAL8dvqkAXvoDzDwaHl3PGn6TAC3vIx4kAP5y+KWUcvabr/v91+nXHh+e3a6Sgd8H/6IAkSQAfj/8PwWIIAHwb4N/VQALCTIlOvwmAZAgL/xmAZAgJ/xFAiBBPvhN5wDXCt1yTqAcD/AXC4AEueB3CYAEeeB3C4AEOeAvXgS2LgwjZekitncR6BH+TTOA1Q3x5M+DP0QAJQlm/efTWfCHCaAgQUb4Q9YAnjPq4Cor/NQCAF9YAOALCwB8YQGALywA8IUFAL6wAMAXFgD4wgIAX1gA4AsLAHxhAYAvLADwhQUAvrAAwLdNuA4hwBcXAPgIAHwEAD4CDI4ifAQQh48A4vDlBVCHn1qAa3CBLzADXIIM/P/ZluQZ0a00K3wWgeLwQwowswlFdviliP06GPhBBZgtgQr8UALMkkAJfjgBrCVQgx9SACsJFOGHFWC0BKrwQwswSgJl+OEFuCTBLVFre5f2z8OBLyTACAlUG16mbxEDfEIIIYSQ3/kGeiN5xirmRdUAAAAASUVORK5CYII=",X="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAAAXNSR0IArs4c6QAAAAZiS0dEAAAAAAAA+UO7fwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB+EDFAI3NUwnaOYAAANgSURBVHja7Z1BUuNADEUdF3dhx1lmyxxw2HIWdnMas6JqKpCx3ZbUkv7TLiFJR/1eOurGiNvyPbZ/b3x8/FpG4s/b8+IRv1//mrzOyPuzGntk/NGxX17e7++6PbxRQQDLiaoiwZUx9wRYF+EYmVhLsY+MbyncT7FmmtwZY2aWIGIO12xAZoyVUYKouVszg4kcI5MEkR8ctyKw2q4gS2FoHWmKQI9JyvKas3Y8pVaAatFlJWAbyEowtwhEAgRAAgRAAgRAAgRAAgRAAgRAAgRAgjTR/iTwp0mfeWWP9fh7IX0S+AhO9EUdmVeCVQ0+ElADIAECIAECIEH8LiCyYq523b/X7iDNLiDa8gqXfGdYCdaO8JEgkQCzixwkmChAlr0uEkwQINu5NxIU3QZ2gpBRghLnAEjwrC3A1yRYTURFCbyC/gAT4dEfgMJw+mpBfwD6A+QCMmMs+gMUl4D+AAmLwKiikP4ARYpA+gPkDPoDNF8J2AayEswtApEAAZAAAZAAAZAAAZAAAdhSIgASIAASIAASIAASIAASIIDAVjCzBAggLgECiEuQvj/AWQiek+k9Hv0BDF7T86KMjC3nSnwFeCaGBMkFiEgICZIKEJkIEiQTYMb3GRKwDQwXz3s8+gMgAf0BCLMzAA0Bov9Aw3u8kdd/AP/WXgDgH4fvKkCW/gBqR8Nn4B8S4Mj3SAYJgH8e/v9+uN3fceWXQt5VMvDH4O89oIQEwB+Hf+RBqSUA/jX4Rx9oKkGnqA7/zIORoCH8s09AgmbwR54kL0En+IfOAfYGunJOoBwZ4I8IgASN4I8KgARN4F8RAAkawF+WZXm6+PzbfWFYTYKoIjYj/KsrgMsb4pMfB99KABkJorqHRsG3FKC9BB3hK3xyTQ6uusLvLgDwhQUAvrAAwBcWAPjCAgBfWADgCwsAfGEBgC8sAPCFBQC+sADAFxYA+MICAF9YAOALCwB8xyjXIQT44gIAHwGAjwDARwDjUISPAOLwEUAcvrwA6vBbC7AHF/gCK8AjyMCvlYDbfzFTh08RKA6/pACR/Qe6w6+UTHh3MgX41RIKk0AFfsWk3CVQgl81MTcJ1OBXTs5cAkX41RM0k0AVfockL0ugDL9LohtzQrIb80HCG3NB0hvzQBAEQRAEsR+fBPrG1xa4jMQAAAAASUVORK5CYII=",S="data:image/png;base64,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",j="/smeditor/assets/upBodyInactive-87a7969e.png",N="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAAAXNSR0IArs4c6QAAAAZiS0dEAHgAeQB3paCnMQAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB+EDFAI5IlF3wK8AAAPCSURBVHja7Z1bbsIwFETNKBtAYoFV11C6iNI1VF0gEjug/YUoRbWxfR8zV+oHH9TG58QhUe6wK6v6PJ1+bl+/vryX2tofrtXvuZxRelXL+BHm2DL+1/fH3eu343F3+xq9Fykr/N7/u+Uzj/hsEHxuCcAM/3KGOQTr8VGMytP5NKIEoQXw+GWKVQIIPrcEEHxuCTBr4pGuob1L0HMtMeMIj3gDxasEvXeIxfM2b32peTmjesz94dptDWacDuyuP4LcZ/Byx45aAOubTJklgOBzSwDB55YAgs8tAQSfWwIIPrcEEHxuCSD43BJA8LklgOBzSwBm+PvDNeWDniEE8PQMIbMEYIfPLgEEn1sCCD63BBB8bgkg+NwSQPC5JYDgc0sAweeWAILPLYHyAcglUD4AuQQQfG4JaPMBoksQWoDo8DNJAMHnlgCCzy0BTT5AJgmUD+C0lA9Q/OUDWEgQKR9gKUFqxtHVa4yeEqS8DPR6fmU5VYUSYPY3bDYJwAz/r74AJgnADP/RWCwSgB0+uwQQfG4JIPjcEkDwuSVYosKvAdLaF7Ae49GYlomioXcAj/Bb3qt8AIfwZ5fyAYjhR5UAgs8tAQSfWwIIPrcEEHxuCSD43BJA8LklgOBzSwDB55ZgiQb/6/vj7vXry7sp0Jb5WP8a2dAdQEd+rJ0Ags8tAQSfW4JQ+QDr863Hapmj8gGSwI8oAQSfWwIwwr+csfnHKIHrfIBR8Gcu/ggJKPIBthbu7Xjcjd6Bnl3crTn2lKC3pBhxhD27tc6CP6o3sKcEo09T7i7EZ8J/dF3tRQLz7wAzJ20BP7ME/xkLXiY9Av5WzfrNoCjrCQ+T9gA/kwQ16wnrSXuCn0GC2vWE5aQ9wo8sQct6wmrSnuFHlKB1PWEx6VnwvZan9cTsSbPD97aeS+2kP0+nn57bFyN8T+sJS2DM8L2sJ6wmLfg+1hMWkxZ8P+u56CjOeToYvgOocpQEkAAqCaCSACoJoJIAKgmgkgAqCaCSACoJoJIA0euZ5g6GBBOKHaAFJEt8Dc0poAYoU3YR1XeA2T8dKwGCScCYWrYUwlI8nS4DVVkEsAxdiJhetq6QD3WumylKmR8anaXDKexTvZYSZGpvC/1Yt4UE2Xobwz/XP1OCjI2tKRo7ZkiQtas5TWfPSAkyt7Snau0aIUH2PIN0vX09JWAIs0jZ3NlDApYkk7Tdvc9IwBRjk7q9u0UCtgyj9P39WxLUVPYMBIqAh1YJGAIwaBI+aiVgST+hinj5rwSKvlGpVCqVSpW9fgGbIppuMBFz1QAAAABJRU5ErkJggg==",q="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAAAXNSR0IArs4c6QAAAAZiS0dEAHgAeQB3paCnMQAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB+EDFAI5JlYaBLYAAAO8SURBVHja7Z1LUt1ADEXtW94LM9aSKSwQpllLZqzmZZQq6oUX4nZ/JN2jGVDgRud0t21aYt/+jtvnD379+rGdjbf3p9Pf8/rysfWKlutnGGPL9Z+ff95/av/8gXonqSr83j+75Xce8bsJ+N4SyBn+68vHcgirr69tUUTaTzNKkFqAiDdTrhII+N4SCPjeEmjWwDM9Q0eXoGcuNWOGZ3yBElWC3ivE/sXnLr8JjPQMfjVhqx9vr8b0N4GV4EdYCUo+BmabhZUlEPC9JRDwvSUQ8L0lEPC9JRDwvSUQ8L0lEPC9JRDwvSUQ8L0lkDP8t/enkgc9UwgQ6QyhswRyh+8ugYDvLYGA7y2BgO8tgYDvLYGA7y2BgO8tgYDvLYGA7y0B/QHMJaA/gLkEAr63BLb9AbJLkFqA7PArSSDge0sg4HtLYNMfoJIE9AcIGvQHSJTgLFvd1fiuP8CxJYkZs6vXNd7en0KeXA71HiDi/uqyVaUSYPYdtpsEcob/qC7ASQI5w//XtVwkkDt8dwkEfG8JBHxvCQR8bwlCvAkcfZikNeGjrzHjZVH4TqFR4Z/9XvoDBIQ/O+gPYAw/qwQCvrcEAr63BAK+twQCvrcEAr63BAK+twQCvrcEAr63BEc2+PfvtlefWm4Zz+vLx+kcjTpoKma+90og4HtLIOB7S5CqP8AXf9sOFy1jpD9AEfgZJRDwvSU4HOGPrg38PPazj6ktj4ghVoARNe0z4Y+agSNWAov+AA8St49egTokdx8pQW9Jj5kzLBr8P0vt/dc6LMP7dne6unU7KPkUEAn+o70/ykowOr6tC9i2ee/b/xP+5bqFR7O701a1Z8qnopg7YuafvdMfdPcdOp+KMOgI8CtJcCafWj3oSPArSHA2n1o56IjwM0vQkk+tGnRk+BklaM2nVgx6FvzAESafmj1o4MfK59Ew6Fvn5csRfph8ajEwZ/gh8qmFgwZ+gHxq0aCBHySfB7O47HYwfAUgCgQCIACBAAQCEAhAIACBAAQCEAhAIACBAAQCZI8rFT4OHUwsVoAWkC7ta2y2gDNAnXoXWd0DzP7XsQiQTALHrmXHZhi0p+MxkKgiwMqmCxm7l91H1kOdy5oufAN/RwADCSqVt2U/1j1dgmq1jRXO9U+ToGJha5XCjuESVK1qrlTZM0yCyiXt1Uq7uktQvZ9Bxdq+bhI4NLOoWtx5WQKXTiaVq3ubJXBqY1O9vPu0BG49jBzq+2/kyFuAKxKUz49Th48bufEW4IwEtL4hCIIgCKJ0/AYcP+o66BZ87AAAAABJRU5ErkJggg==",V="data:image/png;base64,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",W="data:image/png;base64,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",Z="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACAAgMAAAC+UIlYAAAADFBMVEUAAACMi4sM5Jj////jFK10AAAAAXRSTlMAQObYZgAAAcBJREFUeAHt1LGtKjEQhWHf4JZAP7wOCPAGlEA/WwIBJqAE+qEEAnjGiNGc82vjm6wTS+vD+EMaTym1tXZ9vZ5t7H09Wl+3z17LJ3Dp39vY+7q3vj57BFp8T8mWA7eoHHc9JRAIIURAEEH4BjZHQQjhvO+B34MghHDa9cDPJAghzNsCBAiOAMERIDiCBEOAAAQJW0EI4Wf3/v1OEEL4fdeo+zJFYSHMZfNW1Fqm+C7JudQRmP9NUjnu6gcjcKqHsIm2H4zAuR7l38X/7Qcj0GpLXZJ6p9VvR11Sn6Xuu0fLXVOnpv59pEBqtGg+DQQiCBYIRBAsEIgg5EAqK48zAgmmjzMCqW66LQIL82GdD+t8WOfDOh+Oy/PhPJ7eYXk+nMbTm5bnwzyeniCMsC1AgACEERwBAhBOAMIIRBiBCCMQYQQijEAECECAAAQICQECECAAAQIQIAAhBCBAAAIEIEAAQghEgACEEYgwAhFGIMIIRBiBCCMQAQIQQgACBCBAAAIEIIRABAhAGIEIIxBhBCKMQIQRiDACESAAIQQgQAACBCBAAEIIRIAAhBGIMAIRRiDCCEQYgQgjEGEEIkj4+/UfcWPZV43B2RYAAAAASUVORK5CYII=",_="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACAAgMAAAC+UIlYAAAADFBMVEUAAAAAAAAM5Jh4eXeN9UBxAAAAAXRSTlMAQObYZgAAAcBJREFUeAHt1LGtKjEQhWHf4JZAP7wOCPAGlEA/WwIBJqAE+qEEAnjGiNGc82vjm6wTS+vD+EMaTym1tXZ9vZ5t7H09Wl+3z17LJ3Dp39vY+7q3vj57BFp8T8mWA7eoHHc9JRAIIURAEEH4BjZHQQjhvO+B34MghHDa9cDPJAghzNsCBAiOAMERIDiCBEOAAAQJW0EI4Wf3/v1OEEL4fdeo+zJFYSHMZfNW1Fqm+C7JudQRmP9NUjnu6gcjcKqHsIm2H4zAuR7l38X/7Qcj0GpLXZJ6p9VvR11Sn6Xuu0fLXVOnpv59pEBqtGg+DQQiCBYIRBAsEIgg5EAqK48zAgmmjzMCqW66LQIL82GdD+t8WOfDOh+Oy/PhPJ7eYXk+nMbTm5bnwzyeniCMsC1AgACEERwBAhBOAMIIRBiBCCMQYQQijEAECECAAAQICQECECAAAQIQIAAhBCBAAAIEIEAAQghEgACEEYgwAhFGIMIIRBiBCCMQAQIQQgACBCBAAAIEIIRABAhAGIEIIxBhBCKMQIQRiDACESAAIQQgQAACBCBAAEIIRIAAhBGIMAIRRiDCCEQYgQgjEGEEIkj4+/UfcWPZV43B2RYAAAAASUVORK5CYII=",$="data:image/png;base64,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",A0="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAAEACAMAAABMJ46VAAABR1BMVEUAAAAAAAAM5Jh4eXcL45oL4poL4psL4ZwL4J0L4J4L354L358L3qAL3aEL3aIL3KML26QL26UK2qUK2qYK2acK2KgK2KkK16kK16oK1qsK1awK1a0K1K4K068K07AK0rAK0rEJ0bIJ0LMJ0LQJz7QJz7UJz7YJzrcJzbgJzbkJzLkJzLoJy7sJyrwJyr0Jyb0Jyb4IyL8Ix8AIx8EIxsIIxcMIxcQIxMQIxMUIw8YIwscIwsgIwcgIwckIwMoIwMsHv8sHv8wHvs0Hvc4Hvc8HvM8HvNAHu9EHutIHutMHudQHuNUHuNYHt9YHt9cGttgGtdkGtdoGtNoGtNsGs9wGst0Gst4Gsd8GsOAGsOEGr+EGr+IGruMFreQFreUFrOUFrOYFq+cFq+gFqugFqukFqeoFqOsFqOwFp+wFp+0Fpu4Fpe8FpfBBspG0AAAAAXRSTlMAQObYZgAACMxJREFUeAG8zgUSw0AMQ9G6KvP9T1tvUcl3GV441ow1aCINO2SGJHdnzFykAUQadeliRHL+HxC8XWDco5MxyWHgmIymLDDp08GE5DDqYrJsEGkKSlOSwxCQjKYqQE/sBwGS0bDA7DlyZQCQjKNegflT5J6I1Ek0iLQgklu8r98g0jKdnjfJLT/CAqvVKg5WN8mtPlQUiJO/7GeBdaTTa0lu/TEUaE7vm4rc5nNVgfP7tiC3/QIrkGx/+vF+Fki+f0dyuz0rdrUjZw5FUVit/QTJ8EyYaRjCTMMQZubk/a+nlGp17/qXt1VH8XczsI5kX1SXXR4in8sbSG7DGPFY3khyqW8sSqfyRySXO0NXOJQ/Jrnc2fpsA4PWV30DWP8Tkgs91wy3kpWZT0kud+a+9pXkM5KrdSTTXv9zkit25dhe/wuSq3Yp5XApHbQ+KgbStfzLKTnU0JExEn+YfDUh56HUMZR/mm1aJOeh1jGVD8Hx6xc3sHmBzGaS62TO5Q1sWaQ1k2ARXYDBvIGtE1q1leQQHCfzh3DblN7bRnIxOZ+Mf4bbQTPbSQ4RMJm+iLZTbX3kNBm+incsR647kCfbh9HOpcj1RzqTzfeBXURyHopa7wO7Z+b/zORQS7iBPXv2zLe1J5JDLcIG9u5dWbU3kEOt4gbW3wfGrh/03gf2tcgxl/XeB/Y3yDHX9d4HDpBco9d13gcOktzBIfK5fIjkDo2BDRTXR/+gDdj6X5Nc7Cx94VD+huRyZ+trn8nfklyvI/Y13we+I7ncQ82a7wPfk1y/M2crc2PX13Ipr/8DyRW7cmyv/yPJVbuUcriU/gRyqKGjYiBdy4esj8yR+MPk5wk5D5XOofzT7JdFch5KnVP5EDy8QM5DrXMsb+DIApkjJNfJnMsbOLpIaybBIroAg/0NuMr6hQ3kD+GxKb13jORycjYZ/wyPg2aOkxwiYDJ9EZ0g6QTJdXOaDF/FJ5cj1x3Ik+3D6NRS5Lojvcnm+8BpIjkPRa33gTMz839mcswV3MDZs2fn2zobyTHXYAPnzq2sOhfIMRdxA+vvA2PXD3rvA+db5JjLeu8DFxrkmOt67wMXSa7R6zrvA5dI7tIQ+Vy+THKXx+AGauujf8gGfP1fSS52lr5wKP9Gcrmz9bXP5N9JrtcR+2wDg9ZXdX2+D/xBcrkz97WvJH+SXK0jmfb6f5FcsSvH9vp/k1y1SymHS+k/IIcaOioG0rV8yPrIHIk/TP6dkPNQ6RzKP83+WyTnodQ5lQ/BKwvkPNQ6x/IGri6QuUpyncy5vIFri7RmEiyiCzDY34CrrF/YQP4QXp/Se9dJLifjk/HP8AZo5gbJIQIm0xfRTZJuklw/h0nsIG2AuD4JMNk+jG4tRa4/0plsvg/cJpLzUNR6H7gzM/9nJsdcwQ3cvXt3vq27kRxzDTZw797KqnuBHHMRN7D+PjB2/aD3PnC/RY65rPc+8KBBjrmu9z7wkOQava7zPvCI5B4Nkc/lxyT3eIx4LD8hudSfFKVT+SnJxc7SFw7lZySXO1tf+0x+TnK9jthnGxi0vqrr833gBcnlztzXvpK8JLlaRzLt9V+RXLErx/b6r0mu2qWUw6X0Dcihho6KgXQtH7I+MkfiD5O3E3IeKp1D+afZu0VyHkqdU/kQHL/+sA3U15erbMDU1+fCtQ3wQ1T//AkKH8I3U9W/P6TinyEXKq7PWPsiek3F71/m0lfxq+XI9QeKh9HLpcj1RyrHMW8jgRxq+UKC69j8n5kcc0VzA/NtjV4/wAbmF2VczY0ccxE28HT9feB/3s0YN2IYiIHPuyp16iT//0OKKz3ygAOc2dLGqhPEHf6h+H2SdZcP/JL4fdZ1lw/8PPE+5Xzgwfc55wM1nwg638slnwk6Xsshn0q51elWDvkcOyY4QJ9fTsB3cshn2XRhPhDyaXZdmA+EfB5tl6wsZD9hvv/K8239Yj55bD4y/3teWtl+bvXntZ3tJ1d/Xlzafrb5w+r2w/N9eW37+eZfPgsAg/IJZDvA4AhH4DdgqiEcDrE4v8KGQSyO8Qz8DlkzxsODfP7JdJDJUS7nt8SeUK4vkPFr8oHAbA7zGb8nnyjOZzRj4BtHoPGCcwLWKXxnFh7gfawwv+hygDdoC2iv8L1VlwO8SWOAm4VvrrrLB16vB/jyu3zgifkvzgce4vsB76/9hq7zvRz6HUXHazn0W1Lv5XQrh34POyY4QJ6fTsB3cuh3senCfCD029h1YT4Q+n1sq6TyaP1G9+VXnm/1zdGfK5/Wb139ufRq/d7Vn2u/1m9e/bn4bP3u4G/V7w/P9/K79fs3P9T//3s7A40MojAK0hsU1L5DUL3/uxUXbGN3zFf3PwDn5nyQn8UMAQadf8DaAQiOgAj8B2wKAkIgGIl/gcIgGI4BafwPVBkDwqG6j7KBUL4Y579InVAwnxbn3/BBgeF8MMr/8SeOAyoHyH4HIgEHBSxU5EOF8IDFqQIYq/CxUnDAAnUBDRb4YC04YJHKAEcTPto8d98H3pENfLq77wMb9hn+H27mAwoecDsfEbn+Xd7Dh0Quf5Y7H3P1Q0gm9gd8UDYZEzraR98P4H7hw6LvqFjsD/i4bBMsV4jBzgeW+iqGTHY+svcKTMa+86FTn5HRzsdufYZm133rMzbc+eitz+B058P3PqHjnY/f+wTPD36A0ONZFyi4H0HqbHBY6fsc9gNMohH8GSxcouEakeIPYRU1Igfyd39LEqkcjO9LnVQybxb35/BBkem8SkQSxCeuE1KbUvcrRaESdFLQSgW/VAwPWJ4riLWCX6uFB6z9n+zalwOW6YxyNferzXL3feAFUb9cz933gedH+PX4f7jTL+h6wS1+RRcsItv3eQD2u19z9UPJJvYHflE0QTOK/eBXRd9Fq/+7PzgA+8Wvy77Ldn/vD/zCUl/FlMvuV/ZehcvYN3107LNy2vzatc/S7bpvfdaOm1+99lm87n753if1vPv1e5/k+0+nnP7y1KSez3DAN7aMsP+9sCEFAAAAAElFTkSuQmCC",n0="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACAAgMAAAC+UIlYAAAADFBMVEUAAACMi4sM5Jj////jFK10AAAAAXRSTlMAQObYZgAAAgxJREFUeAHt1LGRo0AQheFeQyEoH20GMmgZCkH5EAIGjUEImw8hYGiubni19+YVNO5W3Y4zBv+KD3ZoM4+IuZQ1IuILe/m71rEzsy2YSllwYcHlNohSYutKUOD/gq93bHd61xvVtYTfvoOZCfMWRPT372AiQr1T/a2hQ4AFAhBrxOh3DkAAov6WdxyAwKv3GiABgddYg9FfTGhWDQZ/tgQN+s+HECRwewhBgq4GQqDgev94KKEJLrfLUwlNYHZ9KUECZ8JUQgMi1H3RgAh1XyUQQtFACU0w+g6Bg94bAu10YISAXY4cCLTLoQWBdj32Sgj9cJQQ+ukpYdKPVwkzB7/z4X+dD+VsPpSz+VDS+XAcgHAcgHAQEOFgyjFBX6TMh50X2XtLwHHlAyOEgo2PHBOmQltzaEGYC206H5Sg80EJO/OhvKdCm3z+9cpcsEnwOgmuz5NbXB4nyA9PHhOI7EUBcfCqU8QakSHw7zZB7B2oBiEBDIzghadoEe3ymwlil8CIXQIjdgmMOCAAsQVOy0wQEoDAiKUJQGDEygEIDeINGi1F4OF4KWIgmyL4lGD9In4+wjIEggSBIEO4JQgECUICRSDIEBooAk+RIMIlEESM/nJLEDH40y1BRP/pbgkievPOMkRv17tliP52uVmGGPTvFTFCcIzQZ1BEGhjmY4LAfDxGYD4mCMzHn7T+AIoBqFgX1z4vAAAAAElFTkSuQmCC",g0="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACAAgMAAAC+UIlYAAAADFBMVEUAAAAAAAAM5Jh4eXeN9UBxAAAAAXRSTlMAQObYZgAAAgxJREFUeAHt1LGRo0AQheFeQyEoH20GMmgZCkH5EAIGjUEImw8hYGiubni19+YVNO5W3Y4zBv+KD3ZoM4+IuZQ1IuILe/m71rEzsy2YSllwYcHlNohSYutKUOD/gq93bHd61xvVtYTfvoOZCfMWRPT372AiQr1T/a2hQ4AFAhBrxOh3DkAAov6WdxyAwKv3GiABgddYg9FfTGhWDQZ/tgQN+s+HECRwewhBgq4GQqDgev94KKEJLrfLUwlNYHZ9KUECZ8JUQgMi1H3RgAh1XyUQQtFACU0w+g6Bg94bAu10YISAXY4cCLTLoQWBdj32Sgj9cJQQ+ukpYdKPVwkzB7/z4X+dD+VsPpSz+VDS+XAcgHAcgHAQEOFgyjFBX6TMh50X2XtLwHHlAyOEgo2PHBOmQltzaEGYC206H5Sg80EJO/OhvKdCm3z+9cpcsEnwOgmuz5NbXB4nyA9PHhOI7EUBcfCqU8QakSHw7zZB7B2oBiEBDIzghadoEe3ymwlil8CIXQIjdgmMOCAAsQVOy0wQEoDAiKUJQGDEygEIDeINGi1F4OF4KWIgmyL4lGD9In4+wjIEggSBIEO4JQgECUICRSDIEBooAk+RIMIlEESM/nJLEDH40y1BRP/pbgkievPOMkRv17tliP52uVmGGPTvFTFCcIzQZ1BEGhjmY4LAfDxGYD4mCMzHn7T+AIoBqFgX1z4vAAAAAElFTkSuQmCC",B0="data:image/png;base64,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",t0="data:image/png;base64,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",w0="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACAAgMAAAC+UIlYAAAADFBMVEUAAACMi4sM5Jj////jFK10AAAAAXRSTlMAQObYZgAAAgdJREFUeAHtlLHRozAQhSGgBPr53QGBl4AS1A8lECACl0A/lEBg3RrLbx743XGhZ36/ZD3jD/RJrLbw1OGWHoke/3XPdfViBYCMTBn0ugAwAmJ6/uM1voDSnPc8Xz5v7/Z6B1C1zm9ZWWIFUHfbc/ndkFheQGUhRmwDEp4M1PbgswIkCLA2UiBBQIgcSHjsCUQOS4wWJACJwToJQKK/tBKARF+YAiDhQC0BSPQ/1VUBkBiaslEAJEZ//gikhSXsDZjSupcAgNXve4l3IL1LWGBASFjLgJBAw2yAkEDLgWMJblosjnpoeyyOerg4UUjw1cPiqMfLuwgJBrA4KoDvfPjV8yGdzYd0Nh+Sng8MyPnAACT+BkBCA3PS84GPUs4HZCKJQ8MkFJLglpupQIKb9kZlUW0/oYj5oCT46gkJcXmXmcoigHWmsv4HMJ4tMVxPJPvmZJv288+DgoI+alLQHwsKhf7cUBAtRQpw2IUV8i72YYV8DvuwgpQgBS1BClqCFLQEKeQY5QFAARIHAAqQMAYmUoAEAzdWoEB3JgUEG5YKZNspBYqFj1b4KiBagQFW0IBWQEwoCAAKGmAFDZCCBqCggQkKGrAIBQmMFiIUFDBYF6GgALu0USggtRVtFApIdXVAKCBlU7ZaAak6qUAWQSsgxgoa0AqIeaQCz0upwPNSKvC8hMIH5Q+bbaeb663kYwAAAABJRU5ErkJggg==",o0="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACAAgMAAAC+UIlYAAAADFBMVEUAAAAAAAAM5Jh4eXeN9UBxAAAAAXRSTlMAQObYZgAAAgdJREFUeAHtlLHRozAQhSGgBPr53QGBl4AS1A8lECACl0A/lEBg3RrLbx743XGhZ36/ZD3jD/RJrLbw1OGWHoke/3XPdfViBYCMTBn0ugAwAmJ6/uM1voDSnPc8Xz5v7/Z6B1C1zm9ZWWIFUHfbc/ndkFheQGUhRmwDEp4M1PbgswIkCLA2UiBBQIgcSHjsCUQOS4wWJACJwToJQKK/tBKARF+YAiDhQC0BSPQ/1VUBkBiaslEAJEZ//gikhSXsDZjSupcAgNXve4l3IL1LWGBASFjLgJBAw2yAkEDLgWMJblosjnpoeyyOerg4UUjw1cPiqMfLuwgJBrA4KoDvfPjV8yGdzYd0Nh+Sng8MyPnAACT+BkBCA3PS84GPUs4HZCKJQ8MkFJLglpupQIKb9kZlUW0/oYj5oCT46gkJcXmXmcoigHWmsv4HMJ4tMVxPJPvmZJv288+DgoI+alLQHwsKhf7cUBAtRQpw2IUV8i72YYV8DvuwgpQgBS1BClqCFLQEKeQY5QFAARIHAAqQMAYmUoAEAzdWoEB3JgUEG5YKZNspBYqFj1b4KiBagQFW0IBWQEwoCAAKGmAFDZCCBqCggQkKGrAIBQmMFiIUFDBYF6GgALu0USggtRVtFApIdXVAKCBlU7ZaAak6qUAWQSsgxgoa0AqIeaQCz0upwPNSKvC8hMIH5Q+bbaeb663kYwAAAABJRU5ErkJggg==",e0="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAAEACAMAAABMJ46VAAABiVBMVEUAAACMi4sL45n///8M5JgL45oL4poL4psL4ZwL4J0L4Z0L4J4L354L358L3qAL3aEL3qEL3aIL3KML26QL3KQL26UK2qUK2qYK2acK2KgK2agK2KkK16oK16kK1qsK1qwK1a0K1awK1K4K1K8K068K07AK0rEK0rAJ0bIJ0bMJ0LMJ0LQJz7UJz7QJzrYJz7YJzrcJzbgJzbkJzLkJzLoJy7oJy7sJyrwJyb0Jyr0Jyb4IyL4IyL8Ix8AIx8EIxsEIxsIIxcMIxMQIxcQIxMUIw8UIw8YIwscIwcgIwsgIwckIwMoHv8sIwMsHv8wHvswHvs0Hvc4HvM8Hvc8HvNAHu9AHu9EHutIHutMHudQHudUHuNUHuNYHt9cHt9YGttgGttkGtdkGtdoGtNsGtNoGs9wGs90Gst4Gst0Gsd8GseAGsOAGsOEGr+IGr+EGruMGruQFreQFreUFrOYFrOUFq+cFq+gFqukFqugFqeoFqesFqOsFqOwFp+0Fp+wFpu4Fpu8Fpe8FpfAk576DAAAAAXRSTlMAQObYZgAADDVJREFUeAGs1Ady20oQhGHta+Wcc86R4f6XewAFrH6xh/Suy58tCTU9rGnFhVZq/EciBp7Dopudp8ZCLzWWQMTA89KqlluB5R+iZScqK+u5FVjJRCtOVLueWYHVTLDqRDZYcdUF6u77yISpFVjLlOWRh8zXResuCq3ARqbehlPGPKxFQWYFNn/o26YTILdixhMrsNXoP6q15USFEXPesALb29tpYmubSLRN3oAoTcQFUqf+fhw73rACO6nRPYZE0+FuQ7Qb+rmxawVa3fNeRORxWNHkGy0v0D/vB0RBHpY0OMIC7YBR6f36tdTAQWBw4ESYw+GE6NCxwUIgNY6ciAGVVeVnHt8/diKPO4Vl2SC6f+JEllavs4HfP3UiS6G+wb+9X/4Sa5DvnzlRlGN43hOdOzbg/QsninOMi2unht+/vLy8miK6clNBefHUsPtONCf/i5f6X+JrJ4pyC6sboMDNRNV9qK9vBW6/3WWiO6do4QZEN9PCAiRiwLx8xXIrcP+bKE8tt6XiBlbgoVN1v3zNcivwSCIGltviwy+iB7ICTyBi4LmvzqnKwAo8Zy+iFyeHZSsLmM8pIHp2otr1zAq8ZoJXJ4oG3qCowFtWd99GLkytwHum7N2JZgzfpil7y6zAR6behxPNHHtt/5SswGfrq/H5qW9fTjQ7+DD+KYUF+o9qfTpRaYScN6zAYDBIE8Nh8ziMiDz0Bm6YJqICo1HqjIBEf4gHQKkzGFiBcWp0Xcbjce19Wwjhxv+c2IWS20wQxPFK9QuFmRkNYWbGjxnz4gdSvGrpP/KO/QvZ26uaDt/Nsv3Arogc49yV5H5g954tu/vkPHDVBsn9wN5te3rkPFjtWm4/sK+118jtpfTFzH5gP8kxdnL7qL4fOFCsMT9xGQ0wH+QYr3qdDXz+QXeoIXcoId+A8w/3NC3kDgIkHhnfDxwZ2Cohd5h4mHhobD9wlOTiPD42RyjeDxyjzHwGieLRfuA4yR2jRDSW81/iEyR3nJJhnOM/o5Mgd5IScXECUODUUGZ+/gLSagE5D5hnriBHgdN9cmdIULtUK3C2R+40CSrXkKPAOSd3lkSVi8hR4LyRO0+i1NVzBgUudOQuXKjMzzVAjgKj80Euex05ClwsZJqDSz1yPKBkgcuFOu3BRScXHkGYosCVQsXi5HJHLj6kKMwUuEJyo8cQZChwtaOWnVz7Ru6aYeCuXCnzm7dhgcmWxY/aNjH9ZujHCMr54ieLAtPpdEdjMg00NeQmbjSEbzMmExSYzZqoeRWTWy2etroZ0ykKzJuT9iVxAPECdDNmy/YD84gc0uSV5H7gekDuxgheKpr5N5L7gZskV1pB7VpuP3CL5NDO1C5m9gO3SQ5p7uqtVn0/cIfy8xNl4wb5+UhXvu4NOP8uyTHOP8AGnH+P5II8/0hpMr4fuE+1+dIapcf2Aw9IbiRPP3a/iPcDD0luNE8/2DWM9gOPSG774HHfIioHjHq5NbQG6fmQDOMc/xk9AbknVI+RLyvwdEhuccgB2QZDKPBsQM4D5IkrJX9aoMDzPjkPkCcuWV7aocCLHrle8rKhwEtiXsqhQGo+8vRF5Cjwysh5wLx2FflogdcduddDmJ9qgBwF3hRyb0ju7dv+W0D+upUokJmfLowYBd4V6rwjueiIBulIgfeFiveEYckGCFHgQ6GFDyRXPWb+Yevn8OH9NhT42FHrI8klgqJ0237TdEKBT1sWP2rbJ5L73MOI+Vazz58XP9mowI4G54bzEyHZDBT48qWJmlcxuUxMZUZQ4Lv2pHkZkksVpG7Gl2X7ge8jckiTV5L7gR8Cckizl5L7gR9Jrjn5KSIX5In9QGY+5C9m9gM/kxzjVa7W9wO/kBzj1S7X9gO/kpyd/xaTC3I2WHM+JR9AA5v/O8khpcQj4/uBP0hukLXD1m+A+X+S3Ei+xmPxfuAvkhvN13gw2g/8TXJL8n9IJsq9wdrzk2Gc4z+jf0HuX8rGcY4C/w3JecB8nQYo8P+AnAfIU1eQo8DXvt7D/WiTFLNAYCgGYeih53r178bSkmRlrrwvhQT8nH8JPycAfn6XAA9BU36fAE9C//g3EWTL0Dv/U9g6AQB8Pub6n4Pg1ncnAEANk0rcXwVrQgOA97tQxr/fPD+tur8ESSF6vbCTsTaHyHrTAIDnE5o5a/RK9w2E8y4dbwUAFDTT80QfSQokEoIiCHJ0lkorgSm1atItEK5iaH4EgFGujgSa3OVwEKOKnHMMZAAwWoY57kHxE7nNPg4E8zbO+xkALrt3FywPdSS3Yuw5btl8gJs+3ZUFxKs4H+C213CmR8KLOB8Ilt7y5/i1yKrNB5TRx7ln3SyQGwhiIFh+XZiZmfH/RTnW3bZuNdlyF5m3w/Fo5LGkfEAKf+goqsb5AJKtJB/7baCkL0vVKB/Q4zfixHmOaj4fUPPRjEYonMsHvkkUwYbKGQOc/4983PxGsmpuPJcPvIfzAWPkF2l/Ez8fiOYz72PMLx5sfJLOAFOr/HwIpHe9G9EMhb+Jw/nYFI6CJHlT9QeX8wO/wC/SpyBHtyn5+Wnlx4ll/Ak0/OF12fzYHjKVpKHhCZTPz2NJ3P88U2B47BDPlx9Gg5kKR1F/whoKpf0BK7GU9UdU1UeDApn6S7ZfI8rCEAJXDWJ/yEiu3pIZQwoMxP0po7zwBIHLhusKlsBmz9crX7HARUslEfXnWFIrKZ1BAB3GuCio1v5GhtcDEGAh0m6AW4NcfDTDplLYWkGgL3sOBnJVk3edTxkM61Jl/+WGQFt3rVDrsoIcqT7G7qN0BBYdamFYr/9ar3bR4Qh0lWe/3M3zQ0HDVE/sjNNcPqBVtgkMgJgPHIKkX3/UUCAp5gP7gLV9H2gmqlo+EK1O7GdYxn6BvDxCT0E1zgd2Cc83Ilm4RvnATnD+bkRiQPL5wDaZvODOmF2iCOfygU2CFa6ASozKgoGt/G1NiJbYcKOydzaXD2j7hUbnNzWWdu/8fGCdaIuMgvhWgpcPrBJllRN3eQbEDLD2uzYgLbPiTnEPNbN3XLJ/vGZAz9eHQLAyHfj5gjQ0MsvvRfvn9hDxUwiBYG3+j5U70IwYCqIwLM/SEqBEVaUU0Pd/pbJ71uzfO/fMneiBVhb5LdCh38+fXfy/89gQUMABrk/TR9NMBhgCQnQCaQXTh1C0tvyBvj8xUyDmqVZgqPgM/34fi0KNAYBQerzHmOsKDIKRGyrxdN7XCTYOScrIfMeYp6WPFBqrA2gB5YyOQ274cA2tQQAxpNr/0WaPjc1DjmemQeWUktoIHbGgDB9FInJYj58pJuWpJ6aN0/vvGFMaIC5r277OfAV2ZeLIUenrTgI2rQOOnTGTF9u0+28U4eJv9wVyrQ7ElPoZ7zjdfaB+fyMRW7wPlOzeR6wXuXgfqOBBpvlMpq7dB47jsPTiu9l/+IQdfLKfWt8HKn7zwBqxKqzuA2+3NfjPdq6/DzxA1ad5APWCV+ruAz2flq1lsi8gGTxheNO+MnpMZQHNZM34xJhhhV02CohGa1OfmWvBys+F2X2g9qmjT+vR0ihUwciGaz0Me/hQcaSqWWjc8oZf7vKK/JGOx/Y98dtN35KY7gNesb5fv2P1VzgEvHB9v7+KvH2tsd/WzgHNgTAKgmvb3uj+V4x63A89qJiv8udTWCSghAcsP11z1ZKLExJ6GMG5Yr6QoYAepxjecLAzIsDtd8TzBdlIQAmQGH6ebrqcJMANFjWQYgr/19jrqQlIkZo+yZeg5GKVeH67GPNZipEEjIaS2Dcys0OOQRDT+dqBLtMxUPtOYngJbjDeQgKITeHQi1HZqSgtPVWeXz7dJIDc1t7gfUc2P7vwy+QDMyDSFTgs6B0sy/XAO9YYj5IEXuvX7oi0hX03QZB5fa9nfETvDyBTp/ftVMXnd/H9AZT69L6fIgkm6hu+dFA0gfb+wCMQwonMFH3D+wKpbwl6qObvDzyUaH1PuMqysYETOc3zoWKOFKpkQMHZEjWgqgtDNXp/QOvbEj2br2RAyWFg9n3Zr5c0GdjNZcB9YwZnx1liJ7nL8686cN+ZKC8QwsygdLXeH0j71sBKSV8paWpg9paRHWf0mHYmXzv7yelkfuKXLh8RpeeB03+3/eTiui9w1KFv//6MiJeQBKJs/xEzuHtf6pFAMP+EGd7+78b3N7uli+qn7ek9AAAAAElFTkSuQmCC",C0="data:image/png;base64,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",s0="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACAAgMAAAC+UIlYAAAADFBMVEUAAACMi4sM5Jj////jFK10AAAAAXRSTlMAQObYZgAAApFJREFUeAHtlgGG5EAUhqvRR+j7ZG4Q5AU5Qu6TAyyCVNBHmPv0EQabfVW/2b+e5B8Y1mALEpVP8qUz7zMpWc75/Tg+cj36+l3OnjhaAuDbr4yjr3K2+5HA3uw27OsvgPvhyKf5kQA3CQeAt+XjAkAxCgegeTVKENip0BjzLSy3b0aJbAA2mzMVKJH9QgVWmzIVKJH9QgWWtzHzAsHsFypgCQBujUcBSFaBoQDcBwngUYBHfxt55/ZZS3cfHLh396ndJrr2tz6V9ZjbG/Nh25CwLCqQNVyPClGiAkEhSlwpRImzwv4KEmeF50eUOCm8A6NEq4BjlDgpgAsSFhTCVBCgQhxNAlSgBIGgECQARIUoAeAf94ESog+Q0H3A0n3A+qoPWLoPWLoPWF/1IUjkX+c+oHK6D5+V031A5UQfcO/99TxEH3Dh+eGg6oMvnwtKNH2gQmEO2Yej3J8S7EOjAEj3AXOh+4C50H0AoPtAQPUBgO4DAd0HALoPAHQfAHyjDwRkHwDIPtgnYKIPBEQfCIg+ELjuw0ZgvuzDSmC67MNCYLzsgxXAZxNn5z5sFci5AvNFH9bBgTKbvv2YLvqw9A6U2XTgPl78/2CdA2U2/fRmbR/sbaw4vgq+gM21D1anG31YB3wVfIHHhD7U6UYflh7vA/f7iD70DtzQB+uS8Qe+GfrA4XQFBzCbDlQJjCYmoygk/tSpSrAPUGgBSBgBV4hAkSBQVmoBbsLBT4cAcBNv4ed9ALiJSPl5FwFuckUA6z/wkwH80WqAXVEABkcDGD0NcHgVgPUNYMb1TQCIAlJxtTCPqJUAUCbMqZSggpaAgpbQCpDQCpCggpTQCpDQCpDQClgMk5JgmIQEw6QkoPCz1h+YGLTO62qDAQAAAABJRU5ErkJggg==",i0="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACAAgMAAAC+UIlYAAAADFBMVEUAAAAAAAAM5Jh4eXeN9UBxAAAAAXRSTlMAQObYZgAAApFJREFUeAHtlgGG5EAUhqvRR+j7ZG4Q5AU5Qu6TAyyCVNBHmPv0EQabfVW/2b+e5B8Y1mALEpVP8qUz7zMpWc75/Tg+cj36+l3OnjhaAuDbr4yjr3K2+5HA3uw27OsvgPvhyKf5kQA3CQeAt+XjAkAxCgegeTVKENip0BjzLSy3b0aJbAA2mzMVKJH9QgVWmzIVKJH9QgWWtzHzAsHsFypgCQBujUcBSFaBoQDcBwngUYBHfxt55/ZZS3cfHLh396ndJrr2tz6V9ZjbG/Nh25CwLCqQNVyPClGiAkEhSlwpRImzwv4KEmeF50eUOCm8A6NEq4BjlDgpgAsSFhTCVBCgQhxNAlSgBIGgECQARIUoAeAf94ESog+Q0H3A0n3A+qoPWLoPWLoPWF/1IUjkX+c+oHK6D5+V031A5UQfcO/99TxEH3Dh+eGg6oMvnwtKNH2gQmEO2Yej3J8S7EOjAEj3AXOh+4C50H0AoPtAQPUBgO4DAd0HALoPAHQfAHyjDwRkHwDIPtgnYKIPBEQfCIg+ELjuw0ZgvuzDSmC67MNCYLzsgxXAZxNn5z5sFci5AvNFH9bBgTKbvv2YLvqw9A6U2XTgPl78/2CdA2U2/fRmbR/sbaw4vgq+gM21D1anG31YB3wVfIHHhD7U6UYflh7vA/f7iD70DtzQB+uS8Qe+GfrA4XQFBzCbDlQJjCYmoygk/tSpSrAPUGgBSBgBV4hAkSBQVmoBbsLBT4cAcBNv4ed9ALiJSPl5FwFuckUA6z/wkwH80WqAXVEABkcDGD0NcHgVgPUNYMb1TQCIAlJxtTCPqJUAUCbMqZSggpaAgpbQCpDQCpCggpTQCpDQCpDQClgMk5JgmIQEw6QkoPCz1h+YGLTO62qDAQAAAABJRU5ErkJggg==",a0="/smeditor/assets/parts-9a3f637b.png",Q0="data:image/png;base64,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",I0="/smeditor/assets/frame-d599a2fe.png",c0="/smeditor/assets/parts-b37af2cf.png",D0="data:image/png;base64,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",M=`precision mediump float; +import{s as o,u as H,v as r,b as G,w as E,O as f,x as Q,y as I,z as c,H as C,J as F,Z as K,L as a,Q as u,X as P}from"./ChartManager-beed98d8.js";import{A as h}from"./AnimatedSprite-b9500bfb.js";import{H as v}from"./HoldBody-b84029dd.js";const L="/smeditor/assets/downBodyActive-dd1fd694.png",k="/smeditor/assets/downBodyInactive-c781a303.png",Y="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB98FAw0dOV1YU4MAAAPKSURBVHja7d1dTupQFIbh0pwJkDBA4xjEQVjGcOIATZwBnFslHC1l7b2/v3WHiUL6PimUwHI3Xc1pWS5fbz8/vU5bZn843/07nx/zVDVb7h/5sW29/7/vb99uvxyPu6+356nRbHnAldEqg7HGXzPt/rIIAuX4zQGwI1CP3wUAKwKH+N0AsCFwid8VAAsCp/jdAaAjcIs/BAAqAsf4wwCgIXCNPxQACgLn+MMBICBwjg8BQAEBa3wYAMwImONDAWBEwB4fDgATAoX4kAAYEKjEhwWAjEApPjQARARq8eEBICFQjE8BAAGBanwaACMRKMefpmn60+NUWXVAPj/mu4PsD+fN94/4yeZqXHPr+NWn415nAtSPtVe/vplbP2BGBOjfaag8ll2frBgQqH2hBe5FIDICt/jDrgIQETjGH3oZiITANX4pAMYvf+wPZ8r4lfdfegZQ+kKoQ/wmTwHKCBQ/QDqjHCh0BKqfHs5+AOP4za8Csh8AO36Xy8DsB8CN3+19gOwHyH6A7AcAjN8VAAuC7AcwRpD9AMYIsh/AGEH2AxgjyH6AwZP9AJM3AAUE2Q9gjCD7AYwRZD+AMYLsBzBGkP0AxgiyH8AYQfYDGCPIfgBjBNkPYIwg+wEKDlj2A+AdyyZngOwHyH6ALs/J2Q+Q/QDZD8D6IjD7AXDiD7sKyH4AjPhDLwOzH2B8/FIA2Q/A+T5D9gMYx2/yFJD9ADzxVwG4/v/zrggY469pt7v1w9OyXK5/9vz0Sqe8CpVK/JfjcbcKQBB4xP8RQBDox/8VgDMCh/irADgicIm/GoATAqf4dwFwQOAW/24Ayggc428CoIjANf5mAEoIKoct/kMAgoA//sMAgoA7fgkAdwTM8csAuCJgj18KwA2BQvxyAC4IVOI3AaCOQCl+MwCqCNTiNwWghkAxfnMAKghU43cBwI5AOX43AKwI1ON3BcCGwCF+dwAsCFziDwGAjsAp/jAAqAjc4g8FgIbAMf5wACgIXONDABiNYMuoxIcBwIRAKT4UAAYEavHhACAjUIwPCQARgWp8WABICJTjQwNAQKAeHx7ASAQO8SkAjEDgEp8GQE8ETvGpAPRA4BafDkBLBI7xKQG0QOAanxZAJYItoxKfGsAoBErx6QH0RqAWXwJALwSK8WUAtEagGl8KQCsEyvHlAFQjUI8vCaAKgUN8WQCPInCJLw1gKwKn+PIA7kXgFt8CwFoEjvFtAPyGwDW+FYD/Ibg1LvHtAKxB4BTfEsBPCNzi2wK4hcAxvv2cluWy9nVBJpPJZDKZjNL8A8iasRIljXPgAAAAAElFTkSuQmCC",z="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB98FAw0eB7cUHesAAAO/SURBVHja7dw7VhtBEIXh0WzGGWtxahZop6yFzKuREwKQBcy0uqvuqzM4Bwv6/yxN61GX7f91ff/F6+vPbWT9/vPj9M88//q7zVojt4/8u43e/tPTy+23Lu+/2LdFa+QXnhltZjDW+EfWMgAqCJTjLwfAjkA9fgkAVgQO8csAsCFwiV8KgAWBU/xyAOgI3OK3AEBF4Bi/DQAaAtf423bzrNDbmvJMoOqGsf0tbc8EstwTuEPeETaPHQHzvdiOsomsCNgfwmAAMCJQuH6BAsCEQOXiFQ4AAwKlkwskAGQESvGhASAiUIsPDwAJgWJ8CgAICFTj0wDoRKAcf9sWvBZwb8NYX2xBfGfz2X+/9LWAzzas++1dI7eP+rb22dc3e9X/TCYE6J9pmLmXpdcADAjUPtACdxGIjMAtftspABGBY/zWYyASAtf404+BLhvJdKwtPQYqfSBUIX7LQ4AyAsV3D+8oG4WOQPWt45kPYBx/+Skg8wGw45ccAzMfADd+2fMAmQ+Q+QCZDwAYvxQAC4LMBzBGkPkAxggyH8AYQeYDfFyZDyD0t2Q+gHF86IcAJQSZD2CMIPMBjBFkPoAxgswHMEaQ+QDGCDIfwBhB5gMYI8h8AGMEmQ9gjCDzATIfoC1+5gM03hNkPsDkDct8AMy9zHwAsvj0F4GZD4ATv+0UkPkAGPFbj4GZD9Aff/oxMPMB8I6amQ9gHL/lISDzAXjiHwJw5y7EEgFj/CPtLp98/3r7jZG3h6tcEwjFvxwFEAQG8b8DYI9APf4RALYIHOIfBWCHwCX+GQA2CJzinwUgj8At/ggAWQSO8UcByCFwjf8IABkEMxdb/EcBBAF5/BkAgoA4/iwA1giY488EYImAPf5sAFYIFOKvAGCBQCX+KgDSCJTirwQgiUAt/moAUggU41cAkECgGr8KADUC5fiVACgRqMevBkCFwCF+BwAKBC7xuwBAI3CK3wkAEoFb/G4AUAgc4yMAgEDgGh8FQCuCkaUSHwkADQKl+GgA4BGoxUcEAItAMT4qADgEqvGRAcAgUI6PDqAdgXp8BgBtCBziswAoR+ASnwlAGQKn+GwAliNwi88IYBkCx/isAKYjcI3PDGAagpGlEp8dQAsCpfgKAEoRqMVXAVCCQDG+EoClCFTjqwFYgkA5viKAqQjU46sCmILAIb4ygIcQuMRXBzCEwCm+A4BTCNziuwA4hMAxvhOALxG4xncDcBeB+764ATiCwGpPHAF8hcBuP1wB3EPgvBfWCK7ZhqysrKysrCy39Q9gQ/q5SfcuvQAAAABJRU5ErkJggg==",p="/smeditor/assets/leftBodyActive-75d41033.png",b="/smeditor/assets/leftBodyInactive-bbc074cd.png",O="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAAAXNSR0IArs4c6QAAAAZiS0dEANIA0gBQ7xAn7AAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB+EDFAI2I6Ho7PYAAANMSURBVHja7Z1bTgMxDEU7VjeAxAJR10C7CMoaEAus1B0Av6XiMY/EsX2PJT4GoTHpOZNJMhl32t3F6/n8eXt8eDrt1sTD48eiv79ebNcqluZumX9N7p7/39v7y7fj5+Nxuj3e7zrF9WKzP4xM8HsBHhXW8+RzPtgqVz4CrPiAM8IfIUzPnDaqAZmvfE8JeueyEQ2p0O17SOCRw7U/u16s1D2/JyCvXibtCCjKgC/LOX+LPfBzAZPvAZjqCQsAfGEBgC8sAPCFBQC+sADAFxYA+MICAF9YAOD7xh74f+evLpcB/+/81XYAhRQgKnwFCQz4ta/w0AIAX1gA4AvPApTgR5/WGvDjrTN4CmrAjwXfWwIDfjz4nhIY8GPC95LAgB8XvocEBnztqaYBX3udIczTQOoDFBOA+gA5gvoA1AcY17VTH2B8TuoDBAPinYv6AIEloD5A8Hs+9QEGBvUBiq0DZB7tUx9AGD7TQOAjAPARAPgIAHwEAD4CjIRPFBEA+MICAF9YAOALCwB8YQGALyxAS/hMAZMJAHxhAYAfI/YV4fccU3jkoz6AMHzvQbEBP2Y+6gMIw/fMYcCPCd8rlwE/LnyPnJbZXm8YFVcsDfi68GcJcP/980RxAZ6Px6mFBL0XM7xX/6quNv7YKiTQkeDXFkWUwPsLHaJ8gcSw+gBIMF6CLbnmsJrmnOj1fP68/93h6cSaQOeZQWv4P13Q09wTIoFvPg/4iwRAAr98XvAXC5BJAsVYCn+VAEhQB/5qAZCgBvxNAiBBfvj/rgP8F1lWDIHfSQAkyA2/iQBIkBd+MwGQICf8zYPAiAPDpQJl3++wBX7THoCeIB/8LgKMlkDlTeMW8LsJgAQ54HcZA0QaE6yRp/UgK3q4NAwJxAVAAgRAAgRAAgRAAgRAAgRAAgRAAgRAAgRAAgRAAgRAAgRAAgRAAgRAggERet9Vtk0la+REgGISIAASIAASIEA5CRAACRAACRAACRBAT4LKkqRvWW8JqvcQJVrXUoL7H24BYhIwBkCC1ZFRuJLvu7V6irgVPo+DRSRgQ4iwBGwJE5aATaHCErAtXFgCXgwRloBXwwpK0HrtAQFEJOD1cGEJKBAhLEHlsnEEQRAEQWjEFz4LZYAP3C09AAAAAElFTkSuQmCC",R="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAAAXNSR0IArs4c6QAAAAZiS0dEAAAAAAAA+UO7fwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB+EDFAI3FABOeLgAAAM3SURBVHja7d09csJADIZhW+O7pOMsaeGASZuz0HGapGUIMP7Z1Ur6XnVkMgj8PdjrxV7m6X/93j+4Xj+nPfX1/bHp/y/n29SqtvZu2X9P756v73T6efzTfP9gmTrV5XxbvTEyhd8r4FFlPZ98zYat8skHwI4NnDH8EWB69rRRbyDzJ98TQe9eNuKNVNjteyDw6DH3OgvwqAjH/Gij/q1nATYlrSgDvizP+aoWws8VWNoxAKd6ACB8ABA+AAgfAIQPAMIHAOEDgPABQPhjayH89/2r4zLCf9+/2hVAIQFEDV8BgRF+7U94aACELwyA8IXPApTCj35aa4Qfb57BE6gRfqzwvREY4ccL3xOBEX7M8L0QGOHHDd8DgRG+9qmmEb72PEOYbwNZH6AYANYHyFGsD8D6AON27awPML4n6wMEC8S7F+sDBEbA+gAJjvmsDyAcfqbnDD8PkHm0z/oAwuFzGkj4ACB8ABA+AAgfAIQPgJHhU0UAEL4wAMIXBkD4wgAIXxgA4QsDaBk+p4DJABC+MADCj1FLxfB7jik8+rE+gHD43oNiI/yY/VgfQDh8zx5G+DHD9+plhB83fI+ellmvdxgVZyyN8HXDXwXgyZ0lVHEAcwsEvSczvGf/qs42vtoDgEAEwbtDQDgE3j/oEOUHJEauDwCCwQiO9FqT1bzyuX4f/7DntnHmBIaHP+8FAALnfh7hbwUAgin+18Fbwt8DIA0Cxdoa/l4AICgS/hEAICgQ/lEAIEge/pp5gM2AIs4YEn4/ACBIHH4rACBIGn5LACBIGH6LQWC4geFWQAWudziUoXm8IPYEMcPvBWAoAqE7jZvsvc3zBYIgVvi9xgBhxgR78LQeZMlIAgEAQAAAEAAABAAAAQBAAAAQAAAEAAABAEAAABAAAAQAAAEAQAAAEEQqywY08kUlkX9pPSuAdAgAAAIAgAAA5RAAAAQAAAEAQAAAPQSVkViB99AVQfU9RKVLnJtMGx+tJ/iYCs60J2AMAIKWn34OASqHA74OFkbABSHCCLgkTBgBF4UKI+CycGEE3BgijIBbwwoiUN6GigBaIuD2cGEELBAhjEB9u1EURVEUlbz+AOnsq2p4bKxbAAAAAElFTkSuQmCC",x="/smeditor/assets/rightBodyActive-07f95372.png",y="/smeditor/assets/rightBodyInactive-fdefc2a4.png",T="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAAAXNSR0IArs4c6QAAAAZiS0dEAAAAAAAA+UO7fwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB+EDFAI3NtUuOVwAAAOHSURBVHja7Z3RTSsxEEUdKw0gUSCiBkIRhBoQBSLRQeDr6YWQEK/j8c7MPfcvIO0sPmcd24RhU07yut9/Hb9+fHguPbm7PxSLfH7UIdfpub9RtXvq99Z+e3/58fppt9scv96WYLk2cK0D9flRF0O4uz8Mk2BJ/ZHinaYW4fQM7MiZraW+JXxTAaxvfFRNzxLMGMPqDcgatTxKMGvsqmcwM2t4kmDmg1O9P50zr+1BgtlvndOqWfxgXq5pteWdkanbwDUWhtZbNIstYsoZgC0iAiABAiABAiABAiABAiABAiABAiABAiDButlmB3Vu0Nf4UMfx/Xg6Maxq8Ec/idFngqoGHwlYAyABAiABAiDB/F3A2p/Fn7U6j7Q7qBGfsghPYpSZoGaEjwSOBFh7kYMEKwrgZa+LBCsI4O3cGwmCbgMzQfAoQYhzACQ4aAvwbxBGDURECaxCf4CFtekPkCj0B6A/AP0BvAFZoxb9AYJLQH8A52sA+gO016c/QMBr0h8g4P7X8xYx5QzAFhEBkAABkAABkAABkAABkAABdEJ/AEJ/AOJTAgQQlwABxCVAAHEJEGDCVtCzBAggLgECiEvgvj/AUgiWg3lar+dzA3+NDf0BBlzTchCt69EfAAnoD4AE9AdAgkJ/ACQo9AcIIZ51PfoDIAH9AUhf3t5fNAWYfaBiXa/n+ufgP+12m/QCAL8dvqkAXvoDzDwaHl3PGn6TAC3vIx4kAP5y+KWUcvabr/v91+nXHh+e3a6Sgd8H/6IAkSQAfj/8PwWIIAHwb4N/VQALCTIlOvwmAZAgL/xmAZAgJ/xFAiBBPvhN5wDXCt1yTqAcD/AXC4AEueB3CYAEeeB3C4AEOeAvXgS2LgwjZekitncR6BH+TTOA1Q3x5M+DP0QAJQlm/efTWfCHCaAgQUb4Q9YAnjPq4Cor/NQCAF9YAOALCwB8YQGALywA8IUFAL6wAMAXFgD4wgIAX1gA4AsLAHxhAYAvLADwhQUAvrAAwLdNuA4hwBcXAPgIAHwEAD4CDI4ifAQQh48A4vDlBVCHn1qAa3CBLzADXIIM/P/ZluQZ0a00K3wWgeLwQwowswlFdviliP06GPhBBZgtgQr8UALMkkAJfjgBrCVQgx9SACsJFOGHFWC0BKrwQwswSgJl+OEFuCTBLVFre5f2z8OBLyTACAlUG16mbxEDfEIIIYSQ3/kGeiN5xirmRdUAAAAASUVORK5CYII=",X="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAAAXNSR0IArs4c6QAAAAZiS0dEAAAAAAAA+UO7fwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB+EDFAI3NUwnaOYAAANgSURBVHja7Z1BUuNADEUdF3dhx1lmyxxw2HIWdnMas6JqKpCx3ZbUkv7TLiFJR/1eOurGiNvyPbZ/b3x8/FpG4s/b8+IRv1//mrzOyPuzGntk/NGxX17e7++6PbxRQQDLiaoiwZUx9wRYF+EYmVhLsY+MbyncT7FmmtwZY2aWIGIO12xAZoyVUYKouVszg4kcI5MEkR8ctyKw2q4gS2FoHWmKQI9JyvKas3Y8pVaAatFlJWAbyEowtwhEAgRAAgRAAgRAAgRAAgRAAgRAAgRAgjTR/iTwp0mfeWWP9fh7IX0S+AhO9EUdmVeCVQ0+ElADIAECIAECIEH8LiCyYq523b/X7iDNLiDa8gqXfGdYCdaO8JEgkQCzixwkmChAlr0uEkwQINu5NxIU3QZ2gpBRghLnAEjwrC3A1yRYTURFCbyC/gAT4dEfgMJw+mpBfwD6A+QCMmMs+gMUl4D+AAmLwKiikP4ARYpA+gPkDPoDNF8J2AayEswtApEAAZAAAZAAAZAAAZAAAdhSIgASIAASIAASIAASIAASIIDAVjCzBAggLgECiEuQvj/AWQiek+k9Hv0BDF7T86KMjC3nSnwFeCaGBMkFiEgICZIKEJkIEiQTYMb3GRKwDQwXz3s8+gMgAf0BCLMzAA0Bov9Aw3u8kdd/AP/WXgDgH4fvKkCW/gBqR8Nn4B8S4Mj3SAYJgH8e/v9+uN3fceWXQt5VMvDH4O89oIQEwB+Hf+RBqSUA/jX4Rx9oKkGnqA7/zIORoCH8s09AgmbwR54kL0En+IfOAfYGunJOoBwZ4I8IgASN4I8KgARN4F8RAAkawF+WZXm6+PzbfWFYTYKoIjYj/KsrgMsb4pMfB99KABkJorqHRsG3FKC9BB3hK3xyTQ6uusLvLgDwhQUAvrAAwBcWAPjCAgBfWADgCwsAfGEBgC8sAPCFBQC+sADAFxYA+MICAF9YAOALCwB8xyjXIQT44gIAHwGAjwDARwDjUISPAOLwEUAcvrwA6vBbC7AHF/gCK8AjyMCvlYDbfzFTh08RKA6/pACR/Qe6w6+UTHh3MgX41RIKk0AFfsWk3CVQgl81MTcJ1OBXTs5cAkX41RM0k0AVfockL0ugDL9LohtzQrIb80HCG3NB0hvzQBAEQRAEsR+fBPrG1xa4jMQAAAAASUVORK5CYII=",S="data:image/png;base64,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",j="/smeditor/assets/upBodyInactive-87a7969e.png",N="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAAAXNSR0IArs4c6QAAAAZiS0dEAHgAeQB3paCnMQAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB+EDFAI5IlF3wK8AAAPCSURBVHja7Z1bbsIwFETNKBtAYoFV11C6iNI1VF0gEjug/YUoRbWxfR8zV+oHH9TG58QhUe6wK6v6PJ1+bl+/vryX2tofrtXvuZxRelXL+BHm2DL+1/fH3eu343F3+xq9Fykr/N7/u+Uzj/hsEHxuCcAM/3KGOQTr8VGMytP5NKIEoQXw+GWKVQIIPrcEEHxuCTBr4pGuob1L0HMtMeMIj3gDxasEvXeIxfM2b32peTmjesz94dptDWacDuyuP4LcZ/Byx45aAOubTJklgOBzSwDB55YAgs8tAQSfWwIIPrcEEHxuCSD43BJA8LklgOBzSwBm+PvDNeWDniEE8PQMIbMEYIfPLgEEn1sCCD63BBB8bgkg+NwSQPC5JYDgc0sAweeWAILPLYHyAcglUD4AuQQQfG4JaPMBoksQWoDo8DNJAMHnlgCCzy0BTT5AJgmUD+C0lA9Q/OUDWEgQKR9gKUFqxtHVa4yeEqS8DPR6fmU5VYUSYPY3bDYJwAz/r74AJgnADP/RWCwSgB0+uwQQfG4JIPjcEkDwuSVYosKvAdLaF7Ae49GYlomioXcAj/Bb3qt8AIfwZ5fyAYjhR5UAgs8tAQSfWwIIPrcEEHxuCSD43BJA8LklgOBzSwDB55ZgiQb/6/vj7vXry7sp0Jb5WP8a2dAdQEd+rJ0Ags8tAQSfW4JQ+QDr863Hapmj8gGSwI8oAQSfWwIwwr+csfnHKIHrfIBR8Gcu/ggJKPIBthbu7Xjcjd6Bnl3crTn2lKC3pBhxhD27tc6CP6o3sKcEo09T7i7EZ8J/dF3tRQLz7wAzJ20BP7ME/xkLXiY9Av5WzfrNoCjrCQ+T9gA/kwQ16wnrSXuCn0GC2vWE5aQ9wo8sQct6wmrSnuFHlKB1PWEx6VnwvZan9cTsSbPD97aeS+2kP0+nn57bFyN8T+sJS2DM8L2sJ6wmLfg+1hMWkxZ8P+u56CjOeToYvgOocpQEkAAqCaCSACoJoJIAKgmgkgAqCaCSACoJoJIA0euZ5g6GBBOKHaAFJEt8Dc0poAYoU3YR1XeA2T8dKwGCScCYWrYUwlI8nS4DVVkEsAxdiJhetq6QD3WumylKmR8anaXDKexTvZYSZGpvC/1Yt4UE2Xobwz/XP1OCjI2tKRo7ZkiQtas5TWfPSAkyt7Snau0aIUH2PIN0vX09JWAIs0jZ3NlDApYkk7Tdvc9IwBRjk7q9u0UCtgyj9P39WxLUVPYMBIqAh1YJGAIwaBI+aiVgST+hinj5rwSKvlGpVCqVSpW9fgGbIppuMBFz1QAAAABJRU5ErkJggg==",q="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAAAXNSR0IArs4c6QAAAAZiS0dEAHgAeQB3paCnMQAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB+EDFAI5JlYaBLYAAAO8SURBVHja7Z1LUt1ADEXtW94LM9aSKSwQpllLZqzmZZQq6oUX4nZ/JN2jGVDgRud0t21aYt/+jtvnD379+rGdjbf3p9Pf8/rysfWKlutnGGPL9Z+ff95/av/8gXonqSr83j+75Xce8bsJ+N4SyBn+68vHcgirr69tUUTaTzNKkFqAiDdTrhII+N4SCPjeEmjWwDM9Q0eXoGcuNWOGZ3yBElWC3ivE/sXnLr8JjPQMfjVhqx9vr8b0N4GV4EdYCUo+BmabhZUlEPC9JRDwvSUQ8L0lEPC9JRDwvSUQ8L0lEPC9JRDwvSUQ8L0lkDP8t/enkgc9UwgQ6QyhswRyh+8ugYDvLYGA7y2BgO8tgYDvLYGA7y2BgO8tgYDvLYGA7y0B/QHMJaA/gLkEAr63BLb9AbJLkFqA7PArSSDge0sg4HtLYNMfoJIE9AcIGvQHSJTgLFvd1fiuP8CxJYkZs6vXNd7en0KeXA71HiDi/uqyVaUSYPYdtpsEcob/qC7ASQI5w//XtVwkkDt8dwkEfG8JBHxvCQR8bwlCvAkcfZikNeGjrzHjZVH4TqFR4Z/9XvoDBIQ/O+gPYAw/qwQCvrcEAr63BAK+twQCvrcEAr63BAK+twQCvrcEAr63BEc2+PfvtlefWm4Zz+vLx+kcjTpoKma+90og4HtLIOB7S5CqP8AXf9sOFy1jpD9AEfgZJRDwvSU4HOGPrg38PPazj6ktj4ghVoARNe0z4Y+agSNWAov+AA8St49egTokdx8pQW9Jj5kzLBr8P0vt/dc6LMP7dne6unU7KPkUEAn+o70/ykowOr6tC9i2ee/b/xP+5bqFR7O701a1Z8qnopg7YuafvdMfdPcdOp+KMOgI8CtJcCafWj3oSPArSHA2n1o56IjwM0vQkk+tGnRk+BklaM2nVgx6FvzAESafmj1o4MfK59Ew6Fvn5csRfph8ajEwZ/gh8qmFgwZ+gHxq0aCBHySfB7O47HYwfAUgCgQCIACBAAQCEAhAIACBAAQCEAhAIACBAAQCZI8rFT4OHUwsVoAWkC7ta2y2gDNAnXoXWd0DzP7XsQiQTALHrmXHZhi0p+MxkKgiwMqmCxm7l91H1kOdy5oufAN/RwADCSqVt2U/1j1dgmq1jRXO9U+ToGJha5XCjuESVK1qrlTZM0yCyiXt1Uq7uktQvZ9Bxdq+bhI4NLOoWtx5WQKXTiaVq3ubJXBqY1O9vPu0BG49jBzq+2/kyFuAKxKUz49Th48bufEW4IwEtL4hCIIgCKJ0/AYcP+o66BZ87AAAAABJRU5ErkJggg==",V="data:image/png;base64,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",W="data:image/png;base64,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",Z="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACAAgMAAAC+UIlYAAAADFBMVEUAAACMi4sM5Jj////jFK10AAAAAXRSTlMAQObYZgAAAcBJREFUeAHt1LGtKjEQhWHf4JZAP7wOCPAGlEA/WwIBJqAE+qEEAnjGiNGc82vjm6wTS+vD+EMaTym1tXZ9vZ5t7H09Wl+3z17LJ3Dp39vY+7q3vj57BFp8T8mWA7eoHHc9JRAIIURAEEH4BjZHQQjhvO+B34MghHDa9cDPJAghzNsCBAiOAMERIDiCBEOAAAQJW0EI4Wf3/v1OEEL4fdeo+zJFYSHMZfNW1Fqm+C7JudQRmP9NUjnu6gcjcKqHsIm2H4zAuR7l38X/7Qcj0GpLXZJ6p9VvR11Sn6Xuu0fLXVOnpv59pEBqtGg+DQQiCBYIRBAsEIgg5EAqK48zAgmmjzMCqW66LQIL82GdD+t8WOfDOh+Oy/PhPJ7eYXk+nMbTm5bnwzyeniCMsC1AgACEERwBAhBOAMIIRBiBCCMQYQQijEAECECAAAQICQECECAAAQIQIAAhBCBAAAIEIEAAQghEgACEEYgwAhFGIMIIRBiBCCMQAQIQQgACBCBAAAIEIIRABAhAGIEIIxBhBCKMQIQRiDACESAAIQQgQAACBCBAAEIIRIAAhBGIMAIRRiDCCEQYgQgjEGEEIkj4+/UfcWPZV43B2RYAAAAASUVORK5CYII=",_="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACAAgMAAAC+UIlYAAAADFBMVEUAAAAAAAAM5Jh4eXeN9UBxAAAAAXRSTlMAQObYZgAAAcBJREFUeAHt1LGtKjEQhWHf4JZAP7wOCPAGlEA/WwIBJqAE+qEEAnjGiNGc82vjm6wTS+vD+EMaTym1tXZ9vZ5t7H09Wl+3z17LJ3Dp39vY+7q3vj57BFp8T8mWA7eoHHc9JRAIIURAEEH4BjZHQQjhvO+B34MghHDa9cDPJAghzNsCBAiOAMERIDiCBEOAAAQJW0EI4Wf3/v1OEEL4fdeo+zJFYSHMZfNW1Fqm+C7JudQRmP9NUjnu6gcjcKqHsIm2H4zAuR7l38X/7Qcj0GpLXZJ6p9VvR11Sn6Xuu0fLXVOnpv59pEBqtGg+DQQiCBYIRBAsEIgg5EAqK48zAgmmjzMCqW66LQIL82GdD+t8WOfDOh+Oy/PhPJ7eYXk+nMbTm5bnwzyeniCMsC1AgACEERwBAhBOAMIIRBiBCCMQYQQijEAECECAAAQICQECECAAAQIQIAAhBCBAAAIEIEAAQghEgACEEYgwAhFGIMIIRBiBCCMQAQIQQgACBCBAAAIEIIRABAhAGIEIIxBhBCKMQIQRiDACESAAIQQgQAACBCBAAEIIRIAAhBGIMAIRRiDCCEQYgQgjEGEEIkj4+/UfcWPZV43B2RYAAAAASUVORK5CYII=",$="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAAEACAMAAABMJ46VAAABR1BMVEUAAACMi4sM5Jj///8L45oL4poL4psL4ZwL4J0L4J4L354L358L3qAL3aEL3aIL3KML26QL26UK2qUK2qYK2acK2KgK2KkK16kK16oK1qsK1awK1a0K1K4K068K07AK0rAK0rEJ0bIJ0LMJ0LQJz7QJz7UJz7YJzrcJzbgJzbkJzLkJzLoJy7sJyrwJyr0Jyb0Jyb4IyL8Ix8AIx8EIxsIIxcMIxcQIxMQIxMUIw8YIwscIwsgIwcgIwckIwMoIwMsHv8sHv8wHvs0Hvc4Hvc8HvM8HvNAHu9EHutIHutMHudQHuNUHuNYHt9YHt9cGttgGtdkGtdoGtNoGtNsGs9wGst0Gst4Gsd8GsOAGsOEGr+EGr+IGruMFreQFreUFrOUFrOYFq+cFq+gFqugFqukFqeoFqOsFqOwFp+wFp+0Fpu4Fpe8FpfA7URZ1AAAAAXRSTlMAQObYZgAACMxJREFUeAG8zgUSw0AMQ9G6KvP9T1tvUcl3GV441ow1aCINO2SGJHdnzFykAUQadeliRHL+HxC8XWDco5MxyWHgmIymLDDp08GE5DDqYrJsEGkKSlOSwxCQjKYqQE/sBwGS0bDA7DlyZQCQjKNegflT5J6I1Ek0iLQgklu8r98g0jKdnjfJLT/CAqvVKg5WN8mtPlQUiJO/7GeBdaTTa0lu/TEUaE7vm4rc5nNVgfP7tiC3/QIrkGx/+vF+Fki+f0dyuz0rdrUjZw5FUVit/QTJ8EyYaRjCTMMQZubk/a+nlGp17/qXt1VH8XczsI5kX1SXXR4in8sbSG7DGPFY3khyqW8sSqfyRySXO0NXOJQ/Jrnc2fpsA4PWV30DWP8Tkgs91wy3kpWZT0kud+a+9pXkM5KrdSTTXv9zkit25dhe/wuSq3Yp5XApHbQ+KgbStfzLKTnU0JExEn+YfDUh56HUMZR/mm1aJOeh1jGVD8Hx6xc3sHmBzGaS62TO5Q1sWaQ1k2ARXYDBvIGtE1q1leQQHCfzh3DblN7bRnIxOZ+Mf4bbQTPbSQ4RMJm+iLZTbX3kNBm+incsR647kCfbh9HOpcj1RzqTzfeBXURyHopa7wO7Z+b/zORQS7iBPXv2zLe1J5JDLcIG9u5dWbU3kEOt4gbW3wfGrh/03gf2tcgxl/XeB/Y3yDHX9d4HDpBco9d13gcOktzBIfK5fIjkDo2BDRTXR/+gDdj6X5Nc7Cx94VD+huRyZ+trn8nfklyvI/Y13we+I7ncQ82a7wPfk1y/M2crc2PX13Ipr/8DyRW7cmyv/yPJVbuUcriU/gRyqKGjYiBdy4esj8yR+MPk5wk5D5XOofzT7JdFch5KnVP5EDy8QM5DrXMsb+DIApkjJNfJnMsbOLpIaybBIroAg/0NuMr6hQ3kD+GxKb13jORycjYZ/wyPg2aOkxwiYDJ9EZ0g6QTJdXOaDF/FJ5cj1x3Ik+3D6NRS5Lojvcnm+8BpIjkPRa33gTMz839mcswV3MDZs2fn2zobyTHXYAPnzq2sOhfIMRdxA+vvA2PXD3rvA+db5JjLeu8DFxrkmOt67wMXSa7R6zrvA5dI7tIQ+Vy+THKXx+AGauujf8gGfP1fSS52lr5wKP9Gcrmz9bXP5N9JrtcR+2wDg9ZXdX2+D/xBcrkz97WvJH+SXK0jmfb6f5FcsSvH9vp/k1y1SymHS+k/IIcaOioG0rV8yPrIHIk/TP6dkPNQ6RzKP83+WyTnodQ5lQ/BKwvkPNQ6x/IGri6QuUpyncy5vIFri7RmEiyiCzDY34CrrF/YQP4QXp/Se9dJLifjk/HP8AZo5gbJIQIm0xfRTZJuklw/h0nsIG2AuD4JMNk+jG4tRa4/0plsvg/cJpLzUNR6H7gzM/9nJsdcwQ3cvXt3vq27kRxzDTZw797KqnuBHHMRN7D+PjB2/aD3PnC/RY65rPc+8KBBjrmu9z7wkOQava7zPvCI5B4Nkc/lxyT3eIx4LD8hudSfFKVT+SnJxc7SFw7lZySXO1tf+0x+TnK9jthnGxi0vqrr833gBcnlztzXvpK8JLlaRzLt9V+RXLErx/b6r0mu2qWUw6X0Dcihho6KgXQtH7I+MkfiD5O3E3IeKp1D+afZu0VyHkqdU/kQHL/+sA3U15erbMDU1+fCtQ3wQ1T//AkKH8I3U9W/P6TinyEXKq7PWPsiek3F71/m0lfxq+XI9QeKh9HLpcj1RyrHMW8jgRxq+UKC69j8n5kcc0VzA/NtjV4/wAbmF2VczY0ccxE28HT9feB/3s0YN2IYiIHPuyp16iT//0OKKz3ygAOc2dLGqhPEHf6h+H2SdZcP/JL4fdZ1lw/8PPE+5Xzgwfc55wM1nwg638slnwk6Xsshn0q51elWDvkcOyY4QJ9fTsB3cshn2XRhPhDyaXZdmA+EfB5tl6wsZD9hvv/K8239Yj55bD4y/3teWtl+bvXntZ3tJ1d/Xlzafrb5w+r2w/N9eW37+eZfPgsAg/IJZDvA4AhH4DdgqiEcDrE4v8KGQSyO8Qz8DlkzxsODfP7JdJDJUS7nt8SeUK4vkPFr8oHAbA7zGb8nnyjOZzRj4BtHoPGCcwLWKXxnFh7gfawwv+hygDdoC2iv8L1VlwO8SWOAm4VvrrrLB16vB/jyu3zgifkvzgce4vsB76/9hq7zvRz6HUXHazn0W1Lv5XQrh34POyY4QJ6fTsB3cuh3senCfCD029h1YT4Q+n1sq6TyaP1G9+VXnm/1zdGfK5/Wb139ufRq/d7Vn2u/1m9e/bn4bP3u4G/V7w/P9/K79fs3P9T//3s7A40MojAK0hsU1L5DUL3/uxUXbGN3zFf3PwDn5nyQn8UMAQadf8DaAQiOgAj8B2wKAkIgGIl/gcIgGI4BafwPVBkDwqG6j7KBUL4Y579InVAwnxbn3/BBgeF8MMr/8SeOAyoHyH4HIgEHBSxU5EOF8IDFqQIYq/CxUnDAAnUBDRb4YC04YJHKAEcTPto8d98H3pENfLq77wMb9hn+H27mAwoecDsfEbn+Xd7Dh0Quf5Y7H3P1Q0gm9gd8UDYZEzraR98P4H7hw6LvqFjsD/i4bBMsV4jBzgeW+iqGTHY+svcKTMa+86FTn5HRzsdufYZm133rMzbc+eitz+B058P3PqHjnY/f+wTPD36A0ONZFyi4H0HqbHBY6fsc9gNMohH8GSxcouEakeIPYRU1Igfyd39LEqkcjO9LnVQybxb35/BBkem8SkQSxCeuE1KbUvcrRaESdFLQSgW/VAwPWJ4riLWCX6uFB6z9n+zalwOW6YxyNferzXL3feAFUb9cz933gedH+PX4f7jTL+h6wS1+RRcsItv3eQD2u19z9UPJJvYHflE0QTOK/eBXRd9Fq/+7PzgA+8Wvy77Ldn/vD/zCUl/FlMvuV/ZehcvYN3107LNy2vzatc/S7bpvfdaOm1+99lm87n753if1vPv1e5/k+0+nnP7y1KSez3DAN7aMsP+9sCEFAAAAAElFTkSuQmCC",A0="data:image/png;base64,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",n0="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACAAgMAAAC+UIlYAAAADFBMVEUAAACMi4sM5Jj////jFK10AAAAAXRSTlMAQObYZgAAAgxJREFUeAHt1LGRo0AQheFeQyEoH20GMmgZCkH5EAIGjUEImw8hYGiubni19+YVNO5W3Y4zBv+KD3ZoM4+IuZQ1IuILe/m71rEzsy2YSllwYcHlNohSYutKUOD/gq93bHd61xvVtYTfvoOZCfMWRPT372AiQr1T/a2hQ4AFAhBrxOh3DkAAov6WdxyAwKv3GiABgddYg9FfTGhWDQZ/tgQN+s+HECRwewhBgq4GQqDgev94KKEJLrfLUwlNYHZ9KUECZ8JUQgMi1H3RgAh1XyUQQtFACU0w+g6Bg94bAu10YISAXY4cCLTLoQWBdj32Sgj9cJQQ+ukpYdKPVwkzB7/z4X+dD+VsPpSz+VDS+XAcgHAcgHAQEOFgyjFBX6TMh50X2XtLwHHlAyOEgo2PHBOmQltzaEGYC206H5Sg80EJO/OhvKdCm3z+9cpcsEnwOgmuz5NbXB4nyA9PHhOI7EUBcfCqU8QakSHw7zZB7B2oBiEBDIzghadoEe3ymwlil8CIXQIjdgmMOCAAsQVOy0wQEoDAiKUJQGDEygEIDeINGi1F4OF4KWIgmyL4lGD9In4+wjIEggSBIEO4JQgECUICRSDIEBooAk+RIMIlEESM/nJLEDH40y1BRP/pbgkievPOMkRv17tliP52uVmGGPTvFTFCcIzQZ1BEGhjmY4LAfDxGYD4mCMzHn7T+AIoBqFgX1z4vAAAAAElFTkSuQmCC",g0="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACAAgMAAAC+UIlYAAAADFBMVEUAAAAAAAAM5Jh4eXeN9UBxAAAAAXRSTlMAQObYZgAAAgxJREFUeAHt1LGRo0AQheFeQyEoH20GMmgZCkH5EAIGjUEImw8hYGiubni19+YVNO5W3Y4zBv+KD3ZoM4+IuZQ1IuILe/m71rEzsy2YSllwYcHlNohSYutKUOD/gq93bHd61xvVtYTfvoOZCfMWRPT372AiQr1T/a2hQ4AFAhBrxOh3DkAAov6WdxyAwKv3GiABgddYg9FfTGhWDQZ/tgQN+s+HECRwewhBgq4GQqDgev94KKEJLrfLUwlNYHZ9KUECZ8JUQgMi1H3RgAh1XyUQQtFACU0w+g6Bg94bAu10YISAXY4cCLTLoQWBdj32Sgj9cJQQ+ukpYdKPVwkzB7/z4X+dD+VsPpSz+VDS+XAcgHAcgHAQEOFgyjFBX6TMh50X2XtLwHHlAyOEgo2PHBOmQltzaEGYC206H5Sg80EJO/OhvKdCm3z+9cpcsEnwOgmuz5NbXB4nyA9PHhOI7EUBcfCqU8QakSHw7zZB7B2oBiEBDIzghadoEe3ymwlil8CIXQIjdgmMOCAAsQVOy0wQEoDAiKUJQGDEygEIDeINGi1F4OF4KWIgmyL4lGD9In4+wjIEggSBIEO4JQgECUICRSDIEBooAk+RIMIlEESM/nJLEDH40y1BRP/pbgkievPOMkRv17tliP52uVmGGPTvFTFCcIzQZ1BEGhjmY4LAfDxGYD4mCMzHn7T+AIoBqFgX1z4vAAAAAElFTkSuQmCC",B0="data:image/png;base64,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",t0="data:image/png;base64,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",w0="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACAAgMAAAC+UIlYAAAADFBMVEUAAACMi4sM5Jj////jFK10AAAAAXRSTlMAQObYZgAAAgdJREFUeAHtlLHRozAQhSGgBPr53QGBl4AS1A8lECACl0A/lEBg3RrLbx743XGhZ36/ZD3jD/RJrLbw1OGWHoke/3XPdfViBYCMTBn0ugAwAmJ6/uM1voDSnPc8Xz5v7/Z6B1C1zm9ZWWIFUHfbc/ndkFheQGUhRmwDEp4M1PbgswIkCLA2UiBBQIgcSHjsCUQOS4wWJACJwToJQKK/tBKARF+YAiDhQC0BSPQ/1VUBkBiaslEAJEZ//gikhSXsDZjSupcAgNXve4l3IL1LWGBASFjLgJBAw2yAkEDLgWMJblosjnpoeyyOerg4UUjw1cPiqMfLuwgJBrA4KoDvfPjV8yGdzYd0Nh+Sng8MyPnAACT+BkBCA3PS84GPUs4HZCKJQ8MkFJLglpupQIKb9kZlUW0/oYj5oCT46gkJcXmXmcoigHWmsv4HMJ4tMVxPJPvmZJv288+DgoI+alLQHwsKhf7cUBAtRQpw2IUV8i72YYV8DvuwgpQgBS1BClqCFLQEKeQY5QFAARIHAAqQMAYmUoAEAzdWoEB3JgUEG5YKZNspBYqFj1b4KiBagQFW0IBWQEwoCAAKGmAFDZCCBqCggQkKGrAIBQmMFiIUFDBYF6GgALu0USggtRVtFApIdXVAKCBlU7ZaAak6qUAWQSsgxgoa0AqIeaQCz0upwPNSKvC8hMIH5Q+bbaeb663kYwAAAABJRU5ErkJggg==",o0="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACAAgMAAAC+UIlYAAAADFBMVEUAAAAAAAAM5Jh4eXeN9UBxAAAAAXRSTlMAQObYZgAAAgdJREFUeAHtlLHRozAQhSGgBPr53QGBl4AS1A8lECACl0A/lEBg3RrLbx743XGhZ36/ZD3jD/RJrLbw1OGWHoke/3XPdfViBYCMTBn0ugAwAmJ6/uM1voDSnPc8Xz5v7/Z6B1C1zm9ZWWIFUHfbc/ndkFheQGUhRmwDEp4M1PbgswIkCLA2UiBBQIgcSHjsCUQOS4wWJACJwToJQKK/tBKARF+YAiDhQC0BSPQ/1VUBkBiaslEAJEZ//gikhSXsDZjSupcAgNXve4l3IL1LWGBASFjLgJBAw2yAkEDLgWMJblosjnpoeyyOerg4UUjw1cPiqMfLuwgJBrA4KoDvfPjV8yGdzYd0Nh+Sng8MyPnAACT+BkBCA3PS84GPUs4HZCKJQ8MkFJLglpupQIKb9kZlUW0/oYj5oCT46gkJcXmXmcoigHWmsv4HMJ4tMVxPJPvmZJv288+DgoI+alLQHwsKhf7cUBAtRQpw2IUV8i72YYV8DvuwgpQgBS1BClqCFLQEKeQY5QFAARIHAAqQMAYmUoAEAzdWoEB3JgUEG5YKZNspBYqFj1b4KiBagQFW0IBWQEwoCAAKGmAFDZCCBqCggQkKGrAIBQmMFiIUFDBYF6GgALu0USggtRVtFApIdXVAKCBlU7ZaAak6qUAWQSsgxgoa0AqIeaQCz0upwPNSKvC8hMIH5Q+bbaeb663kYwAAAABJRU5ErkJggg==",e0="data:image/png;base64,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",C0="data:image/png;base64,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",s0="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACAAgMAAAC+UIlYAAAADFBMVEUAAACMi4sM5Jj////jFK10AAAAAXRSTlMAQObYZgAAApFJREFUeAHtlgGG5EAUhqvRR+j7ZG4Q5AU5Qu6TAyyCVNBHmPv0EQabfVW/2b+e5B8Y1mALEpVP8qUz7zMpWc75/Tg+cj36+l3OnjhaAuDbr4yjr3K2+5HA3uw27OsvgPvhyKf5kQA3CQeAt+XjAkAxCgegeTVKENip0BjzLSy3b0aJbAA2mzMVKJH9QgVWmzIVKJH9QgWWtzHzAsHsFypgCQBujUcBSFaBoQDcBwngUYBHfxt55/ZZS3cfHLh396ndJrr2tz6V9ZjbG/Nh25CwLCqQNVyPClGiAkEhSlwpRImzwv4KEmeF50eUOCm8A6NEq4BjlDgpgAsSFhTCVBCgQhxNAlSgBIGgECQARIUoAeAf94ESog+Q0H3A0n3A+qoPWLoPWLoPWF/1IUjkX+c+oHK6D5+V031A5UQfcO/99TxEH3Dh+eGg6oMvnwtKNH2gQmEO2Yej3J8S7EOjAEj3AXOh+4C50H0AoPtAQPUBgO4DAd0HALoPAHQfAHyjDwRkHwDIPtgnYKIPBEQfCIg+ELjuw0ZgvuzDSmC67MNCYLzsgxXAZxNn5z5sFci5AvNFH9bBgTKbvv2YLvqw9A6U2XTgPl78/2CdA2U2/fRmbR/sbaw4vgq+gM21D1anG31YB3wVfIHHhD7U6UYflh7vA/f7iD70DtzQB+uS8Qe+GfrA4XQFBzCbDlQJjCYmoygk/tSpSrAPUGgBSBgBV4hAkSBQVmoBbsLBT4cAcBNv4ed9ALiJSPl5FwFuckUA6z/wkwH80WqAXVEABkcDGD0NcHgVgPUNYMb1TQCIAlJxtTCPqJUAUCbMqZSggpaAgpbQCpDQCpCggpTQCpDQCpDQClgMk5JgmIQEw6QkoPCz1h+YGLTO62qDAQAAAABJRU5ErkJggg==",i0="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACAAgMAAAC+UIlYAAAADFBMVEUAAAAAAAAM5Jh4eXeN9UBxAAAAAXRSTlMAQObYZgAAApFJREFUeAHtlgGG5EAUhqvRR+j7ZG4Q5AU5Qu6TAyyCVNBHmPv0EQabfVW/2b+e5B8Y1mALEpVP8qUz7zMpWc75/Tg+cj36+l3OnjhaAuDbr4yjr3K2+5HA3uw27OsvgPvhyKf5kQA3CQeAt+XjAkAxCgegeTVKENip0BjzLSy3b0aJbAA2mzMVKJH9QgVWmzIVKJH9QgWWtzHzAsHsFypgCQBujUcBSFaBoQDcBwngUYBHfxt55/ZZS3cfHLh396ndJrr2tz6V9ZjbG/Nh25CwLCqQNVyPClGiAkEhSlwpRImzwv4KEmeF50eUOCm8A6NEq4BjlDgpgAsSFhTCVBCgQhxNAlSgBIGgECQARIUoAeAf94ESog+Q0H3A0n3A+qoPWLoPWLoPWF/1IUjkX+c+oHK6D5+V031A5UQfcO/99TxEH3Dh+eGg6oMvnwtKNH2gQmEO2Yej3J8S7EOjAEj3AXOh+4C50H0AoPtAQPUBgO4DAd0HALoPAHQfAHyjDwRkHwDIPtgnYKIPBEQfCIg+ELjuw0ZgvuzDSmC67MNCYLzsgxXAZxNn5z5sFci5AvNFH9bBgTKbvv2YLvqw9A6U2XTgPl78/2CdA2U2/fRmbR/sbaw4vgq+gM21D1anG31YB3wVfIHHhD7U6UYflh7vA/f7iD70DtzQB+uS8Qe+GfrA4XQFBzCbDlQJjCYmoygk/tSpSrAPUGgBSBgBV4hAkSBQVmoBbsLBT4cAcBNv4ed9ALiJSPl5FwFuckUA6z/wkwH80WqAXVEABkcDGD0NcHgVgPUNYMb1TQCIAlJxtTCPqJUAUCbMqZSggpaAgpbQCpDQCpCggpTQCpDQCpDQClgMk5JgmIQEw6QkoPCz1h+YGLTO62qDAQAAAABJRU5ErkJggg==",a0="/smeditor/assets/parts-9a3f637b.png",Q0="data:image/png;base64,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",I0="/smeditor/assets/frame-d599a2fe.png",c0="/smeditor/assets/parts-b37af2cf.png",D0="data:image/png;base64,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",M=`precision mediump float; varying vec2 vUvs; diff --git a/Noteskin-f02aebb8.js b/Noteskin-df1a4e5a.js similarity index 99% rename from Noteskin-f02aebb8.js rename to Noteskin-df1a4e5a.js index 3a842593..e35520db 100644 --- a/Noteskin-f02aebb8.js +++ b/Noteskin-df1a4e5a.js @@ -1 +1 @@ -import{s as o,b as w,w as C,O as B,Z as u,H as l,V as I,J as x,Q as L,L as h,X as T}from"./ChartManager-0bba2271.js";import{A as v}from"./AnimatedSprite-d8e8da79.js";import{H as m}from"./HoldBody-2ee2d035.js";const N="/smeditor/assets/tapCenter-103680e8.png",V="/smeditor/assets/tapDownLeft-17ba3b42.png",y="/smeditor/assets/liftCenter-9712ce74.png",E="/smeditor/assets/liftDownLeft-0205bdc8.png",Q="/smeditor/assets/fakeCenter-581c6a3b.png",R="/smeditor/assets/fakeDownLeft-e3208bb3.png",Z="/smeditor/assets/base-29930c78.png",b="/smeditor/assets/overlay-f63a3b18.png",D="/smeditor/assets/underlay-95144bef.png",d={Tap:{DownLeft:o.from(V),Center:o.from(N)},Lift:{DownLeft:o.from(E),Center:o.from(y)},Fake:{DownLeft:o.from(R),Center:o.from(Q)},Mine:{Base:o.from(Z),Overlay:o.from(b),Underlay:o.from(D)}};class s{static downLeftTex;static downLeftContainer=new w;static centerTex;static centerContainer=new w;static mineTex;static mineContainer=new w;static loaded=!1;static async initArrowTex(){this.loaded||(s.downLeftTex=C.create({width:128*9,height:128*3,resolution:B.performance.resolution}),s.centerTex=C.create({width:128*9,height:128*3,resolution:B.performance.resolution}),s.mineTex=C.create({width:128*9,height:128,resolution:B.performance.resolution}),this.layoutRow(this.downLeftContainer,d.Tap.DownLeft,0),this.layoutRow(this.downLeftContainer,d.Fake.DownLeft,1),this.layoutRow(this.downLeftContainer,d.Lift.DownLeft,2),this.layoutRow(this.centerContainer,d.Tap.Center,0),this.layoutRow(this.centerContainer,d.Fake.Center,1),this.layoutRow(this.centerContainer,d.Lift.Center,2),this.createMines(this.mineContainer),this.loaded=!0)}static layoutRow(t,a,e){const n=u(a,6,9,128,128);for(let A=0;A<9;A++){const c=new v(n[A]);c.x=A*128,c.y=e*128,t.addChild(c)}}static createMines(t){const a=u(d.Mine.Base,1,9,128,128).map(A=>A[0]),e=u(d.Mine.Overlay,1,9,128,128).map(A=>A[0]),n=u(d.Mine.Underlay,1,9,128,128).map(A=>A[0]);for(let A=0;A<9;A++){const c=new l(n[A]);c.x=A*128+64,c.y=64,c.name="u"+A,c.anchor.set(.5);const p=new l(a[A]);p.x=A*128+64,p.y=64,p.name="b"+A,p.anchor.set(.5);const g=new l(e[A]);g.x=A*128+64,g.y=64,g.name="o"+A,g.anchor.set(.5),t.addChild(c,p,g)}}static setArrowTexTime(t){if(!this.loaded)return;const a=t.chartManager.chartView.getVisualBeat(),e=(a%1+1)%1,n=Math.floor(e*6);this.downLeftContainer.children.forEach(A=>A.currentFrame=n),this.centerContainer.children.forEach(A=>A.currentFrame=n),t.renderer.render(s.downLeftContainer,{renderTexture:s.downLeftTex}),t.renderer.render(s.centerContainer,{renderTexture:s.centerTex}),t.renderer.render(s.mineContainer,{renderTexture:s.mineTex});for(let A=0;A<9;A++)this.mineContainer.getChildByName("u"+A).tint=I(Math.round(255-153*e),0,0),this.mineContainer.getChildByName("b"+A).rotation=80/180*Math.PI*a,this.mineContainer.getChildByName("o"+A).rotation=-40/180*Math.PI*a}static setNoteTex(t,a,e){if(a===void 0)return o.WHITE;if(a.type=="Mine"){const n=[4,8,12,16,24,32,48,64,96,192].indexOf(a.quant);t.texture=new o(this.mineTex.baseTexture,new x(Math.min(8,n)*128,0,128,128))}else{const n=[4,8,12,16,24,32,48,64,96,192].indexOf(a.quant),A=this.getNoteRow(a.type),c=e=="Center"?this.centerTex:this.downLeftTex;t.texture=new o(c.baseTexture,new x(Math.min(8,n)*128,A*128,128,128))}}static getNoteRow(t){switch(t){case"Fake":return 1;case"Lift":return 2;default:return 0}}}const q="/smeditor/assets/centerReceptor-44665c43.png",Y="/smeditor/assets/downLeftReceptor-9be8faae.png",U="data:image/png;base64,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",H="data:image/png;base64,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",K="/smeditor/assets/capActive-59a3b423.png",O="/smeditor/assets/capInactive-efc3b952.png";class f extends l{constructor(t,a=64,e=!1){super(t),this.scale.set(a/this.texture.width),this.anchor.x=.5,e&&(this.rotation=Math.PI),this.texture.on("update",()=>{this.scale.set(a/this.texture.width)})}}const P="/smeditor/assets/flash-5a32532f.png",G="/smeditor/assets/mine-590d445e.png",S={w0:[1,1,1,1],w2:[1,1,.3,1],w3:[0,1,.4,1],w4:[.3,.8,1,1],w5:[.8,0,.6,1],held:[1,1,1,1]},z=o.from(P),X=o.from(G);class F extends w{standard=new l(z);standardAnim;anims=new Set;constructor(t,a){super(),this.standard.blendMode=L.ADD;const e=.5;t.on(this,"hit",n=>{if(a==n.columnNumber){const A=S[n.judgement.id]??[1,1,1,1];this.standard.tint=I(A[0]*255,A[1]*255,A[2]*255),h.finish(this.standardAnim),this.standardAnim=h.animate(this.standard,{0:{alpha:1,"scale.x":1*e,"scale.y":1*e},"0.5":{alpha:1.1,"scale.x":1.1*e,"scale.y":1.1*e},1:{alpha:0,"scale.x":1.1*e,"scale.y":1.1*e}},.12)}}),t.on(this,"held",n=>{a==n.columnNumber&&(this.standard.tint=16777215,h.finish(this.standardAnim),this.standardAnim=h.animate(this.standard,{0:{alpha:1,"scale.x":1*e,"scale.y":1*e},"0.5":{alpha:1.1,"scale.x":1.1*e,"scale.y":1.1*e},1:{alpha:0,"scale.x":1.1*e,"scale.y":1.1*e}},.12))}),t.on(this,"holdon",n=>{a==n.columnNumber&&(this.standard.alpha=1)}),t.on(this,"holdoff",n=>{a==n.columnNumber&&(this.standard.alpha=0)}),t.on(this,"rollon",n=>{a==n.columnNumber&&(this.standard.alpha=1)}),t.on(this,"rolloff",n=>{a==n.columnNumber&&(this.standard.alpha=0)}),t.on(this,"hitmine",n=>{if(a==n.columnNumber){const A=new l(X);A.alpha=0,A.anchor.set(.5),A.blendMode=L.ADD,this.addChild(A),h.animate(A,{0:{alpha:1,rotation:0},"0.5":{alpha:1,rotation:90*Math.PI/180},1:{alpha:0,rotation:180*Math.PI/180}},.4,void 0,()=>A.destroy())}}),this.standard.alpha=0,this.standard.anchor.set(.5),this.addChild(this.standard)}}const k="data:image/png;base64,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",J="data:image/png;base64,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",M="/smeditor/assets/capActive-e83fb138.png",W="/smeditor/assets/capInactive-4622d5f2.png",j=o.from(Y),$=o.from(q),i={hold:{active:{body:o.from(U),cap:o.from(K)},inactive:{body:o.from(H),cap:o.from(O)}},roll:{active:{body:o.from(k),cap:o.from(M)},inactive:{body:o.from(J),cap:o.from(W)}}},_={Center:0,DownLeft:0,UpLeft:90,UpRight:180,DownRight:270},AA=["Receptor","Tap","Lift","Fake","Hold Inactive Head","Hold Active Head","Roll Inactive Head","Roll Active Head"],nA={elements:{DownLeft:{Receptor:r=>{const t=new l(r.columnName=="Center"?$:j);t.width=72,t.height=72,t.anchor.set(.5);let a;return r.noteskin.on(t,"ghosttap",e=>{e.columnNumber==r.columnNumber&&(h.finish(a),a=h.animate(t,{0:{width:54,height:54},1:{width:72,height:72}},.11))}),r.noteskin.onUpdate(t,e=>{const n=e.getVisualBeat();let A=204;(n%1+1)%1>.2&&(A=102),t.tint=I(A,A,A)}),t},Tap:r=>{const t=new l(o.WHITE);return s.setNoteTex(t,r.note,r.columnName),t.anchor.set(.5),t.width=72,t.height=72,t},Fake:{element:"Tap"},Lift:{element:"Tap"},Mine:{element:"Tap"},NoteFlash:r=>new F(r.noteskin,r.columnNumber),"Hold Active Head":{element:"Tap"},"Hold Inactive Head":{element:"Tap"},"Hold Active Body":()=>new m(i.hold.active.body),"Hold Inactive Body":()=>new m(i.hold.inactive.body),"Hold Active TopCap":()=>new f(i.hold.active.cap,64,!0),"Hold Inactive TopCap":()=>new f(i.hold.inactive.cap,64,!0),"Hold Active BottomCap":()=>new T(i.hold.active.cap),"Hold Inactive BottomCap":()=>new T(i.hold.inactive.cap),"Roll Active Head":{element:"Tap"},"Roll Inactive Head":{element:"Tap"},"Roll Active Body":()=>new m(i.roll.active.body),"Roll Inactive Body":()=>new m(i.roll.inactive.body),"Roll Active TopCap":()=>new f(i.roll.active.cap,64,!0),"Roll Inactive TopCap":()=>new f(i.roll.inactive.cap,64,!0),"Roll Active BottomCap":()=>new T(i.roll.active.cap),"Roll Inactive BottomCap":()=>new T(i.roll.inactive.cap)}},load:function(r,t){const a=r.columnName;r.columnName="DownLeft";const e=this.loadElement(r,t);return AA.includes(r.element)&&(e.rotation=_[a]*Math.PI/180),e},init(){s.initArrowTex()},update(r){s.setArrowTexTime(r.chartManager.app)},hideIcons:["Lift","Fake"]};export{nA as default}; +import{s as o,b as w,w as C,O as B,Z as u,H as l,V as I,J as x,Q as L,L as h,X as T}from"./ChartManager-beed98d8.js";import{A as v}from"./AnimatedSprite-b9500bfb.js";import{H as m}from"./HoldBody-b84029dd.js";const N="/smeditor/assets/tapCenter-103680e8.png",V="/smeditor/assets/tapDownLeft-17ba3b42.png",y="/smeditor/assets/liftCenter-9712ce74.png",E="/smeditor/assets/liftDownLeft-0205bdc8.png",Q="/smeditor/assets/fakeCenter-581c6a3b.png",R="/smeditor/assets/fakeDownLeft-e3208bb3.png",Z="/smeditor/assets/base-29930c78.png",b="/smeditor/assets/overlay-f63a3b18.png",D="/smeditor/assets/underlay-95144bef.png",d={Tap:{DownLeft:o.from(V),Center:o.from(N)},Lift:{DownLeft:o.from(E),Center:o.from(y)},Fake:{DownLeft:o.from(R),Center:o.from(Q)},Mine:{Base:o.from(Z),Overlay:o.from(b),Underlay:o.from(D)}};class s{static downLeftTex;static downLeftContainer=new w;static centerTex;static centerContainer=new w;static mineTex;static mineContainer=new w;static loaded=!1;static async initArrowTex(){this.loaded||(s.downLeftTex=C.create({width:128*9,height:128*3,resolution:B.performance.resolution}),s.centerTex=C.create({width:128*9,height:128*3,resolution:B.performance.resolution}),s.mineTex=C.create({width:128*9,height:128,resolution:B.performance.resolution}),this.layoutRow(this.downLeftContainer,d.Tap.DownLeft,0),this.layoutRow(this.downLeftContainer,d.Fake.DownLeft,1),this.layoutRow(this.downLeftContainer,d.Lift.DownLeft,2),this.layoutRow(this.centerContainer,d.Tap.Center,0),this.layoutRow(this.centerContainer,d.Fake.Center,1),this.layoutRow(this.centerContainer,d.Lift.Center,2),this.createMines(this.mineContainer),this.loaded=!0)}static layoutRow(t,a,e){const n=u(a,6,9,128,128);for(let A=0;A<9;A++){const c=new v(n[A]);c.x=A*128,c.y=e*128,t.addChild(c)}}static createMines(t){const a=u(d.Mine.Base,1,9,128,128).map(A=>A[0]),e=u(d.Mine.Overlay,1,9,128,128).map(A=>A[0]),n=u(d.Mine.Underlay,1,9,128,128).map(A=>A[0]);for(let A=0;A<9;A++){const c=new l(n[A]);c.x=A*128+64,c.y=64,c.name="u"+A,c.anchor.set(.5);const p=new l(a[A]);p.x=A*128+64,p.y=64,p.name="b"+A,p.anchor.set(.5);const g=new l(e[A]);g.x=A*128+64,g.y=64,g.name="o"+A,g.anchor.set(.5),t.addChild(c,p,g)}}static setArrowTexTime(t){if(!this.loaded)return;const a=t.chartManager.chartView.getVisualBeat(),e=(a%1+1)%1,n=Math.floor(e*6);this.downLeftContainer.children.forEach(A=>A.currentFrame=n),this.centerContainer.children.forEach(A=>A.currentFrame=n),t.renderer.render(s.downLeftContainer,{renderTexture:s.downLeftTex}),t.renderer.render(s.centerContainer,{renderTexture:s.centerTex}),t.renderer.render(s.mineContainer,{renderTexture:s.mineTex});for(let A=0;A<9;A++)this.mineContainer.getChildByName("u"+A).tint=I(Math.round(255-153*e),0,0),this.mineContainer.getChildByName("b"+A).rotation=80/180*Math.PI*a,this.mineContainer.getChildByName("o"+A).rotation=-40/180*Math.PI*a}static setNoteTex(t,a,e){if(a===void 0)return o.WHITE;if(a.type=="Mine"){const n=[4,8,12,16,24,32,48,64,96,192].indexOf(a.quant);t.texture=new o(this.mineTex.baseTexture,new x(Math.min(8,n)*128,0,128,128))}else{const n=[4,8,12,16,24,32,48,64,96,192].indexOf(a.quant),A=this.getNoteRow(a.type),c=e=="Center"?this.centerTex:this.downLeftTex;t.texture=new o(c.baseTexture,new x(Math.min(8,n)*128,A*128,128,128))}}static getNoteRow(t){switch(t){case"Fake":return 1;case"Lift":return 2;default:return 0}}}const q="/smeditor/assets/centerReceptor-44665c43.png",Y="/smeditor/assets/downLeftReceptor-9be8faae.png",U="data:image/png;base64,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",H="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAABACAYAAADS1n9/AAAACXBIWXMAAAsTAAALEwEAmpwYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/AV/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAARKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAAAAgY0hSTQAAeiUAAICDAAD5/wAAgOkAAHUwAADqYAAAOpgAABdvkl/FRgAAARNJREFUeNrs3b9uglAYh+FfiwGSRjuUvTMb9+B1ew9uzt3tICwaNPQaINGQ5nn28yffeffzNk1T5tjv9z/X6/Wzqqq0bZvdbpckGYYhx+Mx5/M5RVHkWcqyfOr+Sz0ej4zjmLnznHtG0zTpui7b7TZJ0vd9TqdTbrdb6rq+HA6H7zl7bhbc4yvJR1ij2e/5vuCQuzmv1v0VAfCPCEAACAABIAAEgAAQAAJAAAgAASAABIAAEAACQAAIAAEgAASAABAAAkAACAABIAAEgAAQAAJAAAgAASAABIAAEAACQAAIAAEgAASAABAAAkAACAABIAAEgAAQAAJAAKwlgI2xrdbmFY/5Gx9Ir9Vl7oI/AAAA//8DAOX/Ln1VvXQfAAAAAElFTkSuQmCC",K="/smeditor/assets/capActive-59a3b423.png",O="/smeditor/assets/capInactive-efc3b952.png";class f extends l{constructor(t,a=64,e=!1){super(t),this.scale.set(a/this.texture.width),this.anchor.x=.5,e&&(this.rotation=Math.PI),this.texture.on("update",()=>{this.scale.set(a/this.texture.width)})}}const P="/smeditor/assets/flash-5a32532f.png",G="/smeditor/assets/mine-590d445e.png",S={w0:[1,1,1,1],w2:[1,1,.3,1],w3:[0,1,.4,1],w4:[.3,.8,1,1],w5:[.8,0,.6,1],held:[1,1,1,1]},z=o.from(P),X=o.from(G);class F extends w{standard=new l(z);standardAnim;anims=new Set;constructor(t,a){super(),this.standard.blendMode=L.ADD;const e=.5;t.on(this,"hit",n=>{if(a==n.columnNumber){const A=S[n.judgement.id]??[1,1,1,1];this.standard.tint=I(A[0]*255,A[1]*255,A[2]*255),h.finish(this.standardAnim),this.standardAnim=h.animate(this.standard,{0:{alpha:1,"scale.x":1*e,"scale.y":1*e},"0.5":{alpha:1.1,"scale.x":1.1*e,"scale.y":1.1*e},1:{alpha:0,"scale.x":1.1*e,"scale.y":1.1*e}},.12)}}),t.on(this,"held",n=>{a==n.columnNumber&&(this.standard.tint=16777215,h.finish(this.standardAnim),this.standardAnim=h.animate(this.standard,{0:{alpha:1,"scale.x":1*e,"scale.y":1*e},"0.5":{alpha:1.1,"scale.x":1.1*e,"scale.y":1.1*e},1:{alpha:0,"scale.x":1.1*e,"scale.y":1.1*e}},.12))}),t.on(this,"holdon",n=>{a==n.columnNumber&&(this.standard.alpha=1)}),t.on(this,"holdoff",n=>{a==n.columnNumber&&(this.standard.alpha=0)}),t.on(this,"rollon",n=>{a==n.columnNumber&&(this.standard.alpha=1)}),t.on(this,"rolloff",n=>{a==n.columnNumber&&(this.standard.alpha=0)}),t.on(this,"hitmine",n=>{if(a==n.columnNumber){const A=new l(X);A.alpha=0,A.anchor.set(.5),A.blendMode=L.ADD,this.addChild(A),h.animate(A,{0:{alpha:1,rotation:0},"0.5":{alpha:1,rotation:90*Math.PI/180},1:{alpha:0,rotation:180*Math.PI/180}},.4,void 0,()=>A.destroy())}}),this.standard.alpha=0,this.standard.anchor.set(.5),this.addChild(this.standard)}}const k="data:image/png;base64,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",J="data:image/png;base64,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",M="/smeditor/assets/capActive-e83fb138.png",W="/smeditor/assets/capInactive-4622d5f2.png",j=o.from(Y),$=o.from(q),i={hold:{active:{body:o.from(U),cap:o.from(K)},inactive:{body:o.from(H),cap:o.from(O)}},roll:{active:{body:o.from(k),cap:o.from(M)},inactive:{body:o.from(J),cap:o.from(W)}}},_={Center:0,DownLeft:0,UpLeft:90,UpRight:180,DownRight:270},AA=["Receptor","Tap","Lift","Fake","Hold Inactive Head","Hold Active Head","Roll Inactive Head","Roll Active Head"],nA={elements:{DownLeft:{Receptor:r=>{const t=new l(r.columnName=="Center"?$:j);t.width=72,t.height=72,t.anchor.set(.5);let a;return r.noteskin.on(t,"ghosttap",e=>{e.columnNumber==r.columnNumber&&(h.finish(a),a=h.animate(t,{0:{width:54,height:54},1:{width:72,height:72}},.11))}),r.noteskin.onUpdate(t,e=>{const n=e.getVisualBeat();let A=204;(n%1+1)%1>.2&&(A=102),t.tint=I(A,A,A)}),t},Tap:r=>{const t=new l(o.WHITE);return s.setNoteTex(t,r.note,r.columnName),t.anchor.set(.5),t.width=72,t.height=72,t},Fake:{element:"Tap"},Lift:{element:"Tap"},Mine:{element:"Tap"},NoteFlash:r=>new F(r.noteskin,r.columnNumber),"Hold Active Head":{element:"Tap"},"Hold Inactive Head":{element:"Tap"},"Hold Active Body":()=>new m(i.hold.active.body),"Hold Inactive Body":()=>new m(i.hold.inactive.body),"Hold Active TopCap":()=>new f(i.hold.active.cap,64,!0),"Hold Inactive TopCap":()=>new f(i.hold.inactive.cap,64,!0),"Hold Active BottomCap":()=>new T(i.hold.active.cap),"Hold Inactive BottomCap":()=>new T(i.hold.inactive.cap),"Roll Active Head":{element:"Tap"},"Roll Inactive Head":{element:"Tap"},"Roll Active Body":()=>new m(i.roll.active.body),"Roll Inactive Body":()=>new m(i.roll.inactive.body),"Roll Active TopCap":()=>new f(i.roll.active.cap,64,!0),"Roll Inactive TopCap":()=>new f(i.roll.inactive.cap,64,!0),"Roll Active BottomCap":()=>new T(i.roll.active.cap),"Roll Inactive BottomCap":()=>new T(i.roll.inactive.cap)}},load:function(r,t){const a=r.columnName;r.columnName="DownLeft";const e=this.loadElement(r,t);return AA.includes(r.element)&&(e.rotation=_[a]*Math.PI/180),e},init(){s.initArrowTex()},update(r){s.setArrowTexTime(r.chartManager.app)},hideIcons:["Lift","Fake"]};export{nA as default}; diff --git a/Noteskin-83848dd1.js b/Noteskin-fcff308e.js similarity index 97% rename from Noteskin-83848dd1.js rename to Noteskin-fcff308e.js index f5f93294..8384b84c 100644 --- a/Noteskin-83848dd1.js +++ b/Noteskin-fcff308e.js @@ -1 +1 @@ -import{Z as d,s as i,b as f,w as u,O as T,J as g,H as l,Q as m,L as p,_ as R}from"./ChartManager-0bba2271.js";import{A as w}from"./AnimatedSprite-d8e8da79.js";import{A as U}from"./HoldBody-2ee2d035.js";const L="/smeditor/assets/Center-1b6bfec9.png",B="/smeditor/assets/DownLeft-242c6bf3.png",y="/smeditor/assets/DownRight-a869fa38.png",M="/smeditor/assets/UpLeft-d457a441.png",O="/smeditor/assets/UpRight-fda6b516.png",I="/smeditor/assets/Center-cb4b6c25.png",E="/smeditor/assets/DownLeft-94341616.png",S="/smeditor/assets/DownRight-3c57e4fa.png",F="/smeditor/assets/UpLeft-752b6821.png",$="/smeditor/assets/UpRight-91e454bc.png",N="/smeditor/assets/Center-55e9b68a.png",P="/smeditor/assets/DownLeft-19d91486.png",V="/smeditor/assets/DownRight-e2cf2b7d.png",j="/smeditor/assets/UpLeft-28515625.png",k="/smeditor/assets/UpRight-8a892589.png",v={},c=["DownLeft","UpLeft","Center","UpRight","DownRight"];for(const t of c)v[t]=d(i.from(new URL(Object.assign({"./tap/Center.png":I,"./tap/DownLeft.png":E,"./tap/DownRight.png":S,"./tap/UpLeft.png":F,"./tap/UpRight.png":$})[`./tap/${t}.png`],self.location).href),3,2,96,96).flat();const D={};for(const t of c)D[t]=d(i.from(new URL(Object.assign({"./roll/Center.png":N,"./roll/DownLeft.png":P,"./roll/DownRight.png":V,"./roll/UpLeft.png":j,"./roll/UpRight.png":k})[`./roll/${t}.png`],self.location).href),3,2,96,96).flat();const Y=d(i.from(new URL("/smeditor/assets/mine-0e34ec01.png",self.location).href),3,2,96,96).flat();class a{static noteTex;static noteContainer=new f;static rollTex;static rollContainer=new f;static mineTex;static mine;static loaded=!1;static async initArrowTex(){if(!this.loaded){a.noteTex=u.create({width:96*5,height:96,resolution:T.performance.resolution}),a.rollTex=u.create({width:96*5,height:96,resolution:T.performance.resolution}),a.mineTex=u.create({width:96,height:96,resolution:T.performance.resolution});for(const e of c)this.createSprite(this.noteContainer,e,v);for(const e of c)this.createSprite(this.rollContainer,e,D);this.mine=new w(Y),this.loaded=!0}}static createSprite(e,o,n){const s=c.indexOf(o)*96,r=new w(n[o]);r.x=s,e.addChild(r)}static setArrowTexTime(e){if(!this.loaded)return;const o=e.chartManager.chartView.getVisualTime(),n=Math.floor((o%.3+.3)%.3/.3*6);this.noteContainer.children.forEach(s=>s.currentFrame=n),this.rollContainer.children.forEach(s=>s.currentFrame=n),this.mine.currentFrame=n,e.renderer.render(a.noteContainer,{renderTexture:a.noteTex}),e.renderer.render(a.rollContainer,{renderTexture:a.rollTex}),e.renderer.render(a.mine,{renderTexture:a.mineTex})}static setNoteTex(e,o,n){if(o===void 0)return i.WHITE;if(o.type=="Mine")e.texture=this.mineTex;else{const s=c.indexOf(n)*96;e.texture=new i(this.noteTex.baseTexture,new g(s,0,96,96))}}static setRollTex(e,o){const n=c.indexOf(o)*96;e.texture=new i(this.rollTex.baseTexture,new g(n,0,96,96))}}const W="/smeditor/assets/receptors-0a59df78.png",J="/smeditor/assets/flash-e524b5bd.png",z="/smeditor/assets/mine-590d445e.png",Q="/smeditor/assets/press-feed8aa6.png",Z=d(i.from(J),5,1,128,128)[0],q=i.from(z),C=d(i.from(Q),5,2,96,96),G=["w0","w1","w2","w3"];class K extends f{press;pressAnim;hitContainer=new f;tap;note;flash;hitAnim;anims=new Set;constructor(e,o,n){super();const s=1/1.5;this.press=new l(C[1][_.indexOf(o)]),this.press.alpha=0,this.press.anchor.set(.5),this.tap=new l(C[0][_.indexOf(o)]),this.tap.blendMode=m.ADD,this.tap.scale.set(s),this.tap.anchor.set(.5),this.note=new w(v[o]),this.note.scale.set(s),this.note.blendMode=m.ADD,this.note.animationSpeed=1/3,this.note.play(),this.note.anchor.set(.5),this.flash=new w(Z),this.flash.scale.set(2),this.flash.blendMode=m.ADD,this.flash.animationSpeed=1/3,this.flash.loop=!1,this.flash.visible=!1,this.flash.anchor.set(.5),this.flash.onComplete=()=>{this.flash.visible=!1,this.flash.stop()},this.hitContainer.alpha=0,this.hitContainer.addChild(this.tap,this.note),e.on(this,"ghosttap",r=>{n==r.columnNumber&&(p.finish(this.pressAnim),this.pressAnim=p.animate(this.press,{0:{alpha:1,"scale.x":1*s,"scale.y":1*s},1:{alpha:0,"scale.x":1.3*s,"scale.y":1.3*s}},.25))}),e.on(this,"hit",r=>{if(n==r.columnNumber){if(!G.includes(r.judgement.id))return;p.finish(this.pressAnim),p.finish(this.hitAnim),this.hitAnim=p.animate(this.hitContainer,{0:{alpha:1,"scale.x":1,"scale.y":1},1:{alpha:0,"scale.x":1.2,"scale.y":1.2}},.4),this.flash.visible=!0,this.flash.currentFrame=0,this.flash.play()}}),e.on(this,"hitmine",r=>{if(n==r.columnNumber){const h=new l(q);h.alpha=0,h.anchor.set(.5),h.blendMode=m.ADD,this.addChild(h),p.animate(h,{0:{alpha:1,rotation:0},"0.5":{alpha:1,rotation:90*Math.PI/180},1:{alpha:0,rotation:180*Math.PI/180}},.4,void 0,()=>h.destroy())}}),this.addChild(this.press,this.hitContainer,this.flash)}}const A=d(i.from(W),5,2,96,96),_=["DownLeft","UpLeft","Center","UpRight","DownRight"],b={},x=96;for(const t of _){const e=i.from(new URL(Object.assign({"./hold/Center.png":L,"./hold/DownLeft.png":B,"./hold/DownRight.png":y,"./hold/UpLeft.png":M,"./hold/UpRight.png":O})[`./hold/${t}.png`],self.location).href),o=[],n=[];for(let s=0;s<6;s++)o.push(new i(e.baseTexture,new g(s*96,0,96,288-x))),n.push(new i(e.baseTexture,new g(s*96,288-x,96,x)));b[t]={body:o,cap:n}}const se={elements:{DownLeft:{Receptor:t=>{const e=new f,o=_.indexOf(t.columnName),n=new l(A[0][o]);n.width=72,n.height=72,n.anchor.set(.5);const s=new l(A[1][o]);return s.width=n.width,s.height=n.height,s.anchor.set(.5),s.blendMode=m.ADD,e.addChild(n,s),t.noteskin.onUpdate(e,r=>{const H=(r.getVisualBeat()%1+1)%1;s.alpha=(1-H)/2}),e},Tap:t=>{const e=new l(i.WHITE);return a.setNoteTex(e,t.note,t.columnName),e.anchor.set(.5),e.width=72,e.height=72,e},Fake:{element:"Tap"},Lift:{element:"Tap"},Mine:{element:"Tap"},NoteFlash:t=>new K(t.noteskin,t.columnName,t.columnNumber),"Hold Active Head":{element:"Tap"},"Hold Inactive Head":{element:"Tap"},"Hold Active Body":t=>{const e=new U(b[t.columnName].body,72);return t.noteskin.onUpdate(e,o=>{const n=o.getVisualTime(),s=Math.floor((n%.3+.3)%.3/.3*6);e.currentFrame=s}),e},"Hold Inactive Body":{element:"Hold Active Body"},"Hold Active TopCap":()=>new l(i.EMPTY),"Hold Inactive TopCap":()=>new l(i.EMPTY),"Hold Active BottomCap":t=>{const e=new R(b[t.columnName].cap,72);return t.noteskin.onUpdate(e,o=>{const n=o.getVisualTime(),s=Math.floor((n%.3+.3)%.3/.3*6);e.currentFrame=s}),e},"Hold Inactive BottomCap":{element:"Hold Active BottomCap"},"Roll Active Head":t=>{const e=new l(i.WHITE);return a.setRollTex(e,t.columnName),e.anchor.set(.5),e.width=72,e.height=72,e},"Roll Inactive Head":{element:"Roll Active Head"},"Roll Active Body":{element:"Hold Active Body"},"Roll Inactive Body":{element:"Hold Active Body"},"Roll Active TopCap":()=>new l(i.EMPTY),"Roll Inactive TopCap":()=>new l(i.EMPTY),"Roll Active BottomCap":{element:"Hold Active BottomCap"},"Roll Inactive BottomCap":{element:"Hold Active BottomCap"}}},load:function(t,e){return t.columnName="DownLeft",this.loadElement(t,e)},init(){a.initArrowTex()},update(t){a.setArrowTexTime(t.chartManager.app)},metrics:{HoldBodyBottomOffset:-36,RollBodyBottomOffset:-36}};export{se as default,_ as texOrder}; +import{Z as d,s as i,b as f,w as u,O as T,J as g,H as l,Q as m,L as p,_ as R}from"./ChartManager-beed98d8.js";import{A as w}from"./AnimatedSprite-b9500bfb.js";import{A as U}from"./HoldBody-b84029dd.js";const L="/smeditor/assets/Center-1b6bfec9.png",B="/smeditor/assets/DownLeft-242c6bf3.png",y="/smeditor/assets/DownRight-a869fa38.png",M="/smeditor/assets/UpLeft-d457a441.png",O="/smeditor/assets/UpRight-fda6b516.png",I="/smeditor/assets/Center-cb4b6c25.png",E="/smeditor/assets/DownLeft-94341616.png",S="/smeditor/assets/DownRight-3c57e4fa.png",F="/smeditor/assets/UpLeft-752b6821.png",$="/smeditor/assets/UpRight-91e454bc.png",N="/smeditor/assets/Center-55e9b68a.png",P="/smeditor/assets/DownLeft-19d91486.png",V="/smeditor/assets/DownRight-e2cf2b7d.png",j="/smeditor/assets/UpLeft-28515625.png",k="/smeditor/assets/UpRight-8a892589.png",v={},c=["DownLeft","UpLeft","Center","UpRight","DownRight"];for(const t of c)v[t]=d(i.from(new URL(Object.assign({"./tap/Center.png":I,"./tap/DownLeft.png":E,"./tap/DownRight.png":S,"./tap/UpLeft.png":F,"./tap/UpRight.png":$})[`./tap/${t}.png`],self.location).href),3,2,96,96).flat();const D={};for(const t of c)D[t]=d(i.from(new URL(Object.assign({"./roll/Center.png":N,"./roll/DownLeft.png":P,"./roll/DownRight.png":V,"./roll/UpLeft.png":j,"./roll/UpRight.png":k})[`./roll/${t}.png`],self.location).href),3,2,96,96).flat();const Y=d(i.from(new URL("/smeditor/assets/mine-0e34ec01.png",self.location).href),3,2,96,96).flat();class a{static noteTex;static noteContainer=new f;static rollTex;static rollContainer=new f;static mineTex;static mine;static loaded=!1;static async initArrowTex(){if(!this.loaded){a.noteTex=u.create({width:96*5,height:96,resolution:T.performance.resolution}),a.rollTex=u.create({width:96*5,height:96,resolution:T.performance.resolution}),a.mineTex=u.create({width:96,height:96,resolution:T.performance.resolution});for(const e of c)this.createSprite(this.noteContainer,e,v);for(const e of c)this.createSprite(this.rollContainer,e,D);this.mine=new w(Y),this.loaded=!0}}static createSprite(e,o,n){const s=c.indexOf(o)*96,r=new w(n[o]);r.x=s,e.addChild(r)}static setArrowTexTime(e){if(!this.loaded)return;const o=e.chartManager.chartView.getVisualTime(),n=Math.floor((o%.3+.3)%.3/.3*6);this.noteContainer.children.forEach(s=>s.currentFrame=n),this.rollContainer.children.forEach(s=>s.currentFrame=n),this.mine.currentFrame=n,e.renderer.render(a.noteContainer,{renderTexture:a.noteTex}),e.renderer.render(a.rollContainer,{renderTexture:a.rollTex}),e.renderer.render(a.mine,{renderTexture:a.mineTex})}static setNoteTex(e,o,n){if(o===void 0)return i.WHITE;if(o.type=="Mine")e.texture=this.mineTex;else{const s=c.indexOf(n)*96;e.texture=new i(this.noteTex.baseTexture,new g(s,0,96,96))}}static setRollTex(e,o){const n=c.indexOf(o)*96;e.texture=new i(this.rollTex.baseTexture,new g(n,0,96,96))}}const W="/smeditor/assets/receptors-0a59df78.png",J="/smeditor/assets/flash-e524b5bd.png",z="/smeditor/assets/mine-590d445e.png",Q="/smeditor/assets/press-feed8aa6.png",Z=d(i.from(J),5,1,128,128)[0],q=i.from(z),C=d(i.from(Q),5,2,96,96),G=["w0","w1","w2","w3"];class K extends f{press;pressAnim;hitContainer=new f;tap;note;flash;hitAnim;anims=new Set;constructor(e,o,n){super();const s=1/1.5;this.press=new l(C[1][_.indexOf(o)]),this.press.alpha=0,this.press.anchor.set(.5),this.tap=new l(C[0][_.indexOf(o)]),this.tap.blendMode=m.ADD,this.tap.scale.set(s),this.tap.anchor.set(.5),this.note=new w(v[o]),this.note.scale.set(s),this.note.blendMode=m.ADD,this.note.animationSpeed=1/3,this.note.play(),this.note.anchor.set(.5),this.flash=new w(Z),this.flash.scale.set(2),this.flash.blendMode=m.ADD,this.flash.animationSpeed=1/3,this.flash.loop=!1,this.flash.visible=!1,this.flash.anchor.set(.5),this.flash.onComplete=()=>{this.flash.visible=!1,this.flash.stop()},this.hitContainer.alpha=0,this.hitContainer.addChild(this.tap,this.note),e.on(this,"ghosttap",r=>{n==r.columnNumber&&(p.finish(this.pressAnim),this.pressAnim=p.animate(this.press,{0:{alpha:1,"scale.x":1*s,"scale.y":1*s},1:{alpha:0,"scale.x":1.3*s,"scale.y":1.3*s}},.25))}),e.on(this,"hit",r=>{if(n==r.columnNumber){if(!G.includes(r.judgement.id))return;p.finish(this.pressAnim),p.finish(this.hitAnim),this.hitAnim=p.animate(this.hitContainer,{0:{alpha:1,"scale.x":1,"scale.y":1},1:{alpha:0,"scale.x":1.2,"scale.y":1.2}},.4),this.flash.visible=!0,this.flash.currentFrame=0,this.flash.play()}}),e.on(this,"hitmine",r=>{if(n==r.columnNumber){const h=new l(q);h.alpha=0,h.anchor.set(.5),h.blendMode=m.ADD,this.addChild(h),p.animate(h,{0:{alpha:1,rotation:0},"0.5":{alpha:1,rotation:90*Math.PI/180},1:{alpha:0,rotation:180*Math.PI/180}},.4,void 0,()=>h.destroy())}}),this.addChild(this.press,this.hitContainer,this.flash)}}const A=d(i.from(W),5,2,96,96),_=["DownLeft","UpLeft","Center","UpRight","DownRight"],b={},x=96;for(const t of _){const e=i.from(new URL(Object.assign({"./hold/Center.png":L,"./hold/DownLeft.png":B,"./hold/DownRight.png":y,"./hold/UpLeft.png":M,"./hold/UpRight.png":O})[`./hold/${t}.png`],self.location).href),o=[],n=[];for(let s=0;s<6;s++)o.push(new i(e.baseTexture,new g(s*96,0,96,288-x))),n.push(new i(e.baseTexture,new g(s*96,288-x,96,x)));b[t]={body:o,cap:n}}const se={elements:{DownLeft:{Receptor:t=>{const e=new f,o=_.indexOf(t.columnName),n=new l(A[0][o]);n.width=72,n.height=72,n.anchor.set(.5);const s=new l(A[1][o]);return s.width=n.width,s.height=n.height,s.anchor.set(.5),s.blendMode=m.ADD,e.addChild(n,s),t.noteskin.onUpdate(e,r=>{const H=(r.getVisualBeat()%1+1)%1;s.alpha=(1-H)/2}),e},Tap:t=>{const e=new l(i.WHITE);return a.setNoteTex(e,t.note,t.columnName),e.anchor.set(.5),e.width=72,e.height=72,e},Fake:{element:"Tap"},Lift:{element:"Tap"},Mine:{element:"Tap"},NoteFlash:t=>new K(t.noteskin,t.columnName,t.columnNumber),"Hold Active Head":{element:"Tap"},"Hold Inactive Head":{element:"Tap"},"Hold Active Body":t=>{const e=new U(b[t.columnName].body,72);return t.noteskin.onUpdate(e,o=>{const n=o.getVisualTime(),s=Math.floor((n%.3+.3)%.3/.3*6);e.currentFrame=s}),e},"Hold Inactive Body":{element:"Hold Active Body"},"Hold Active TopCap":()=>new l(i.EMPTY),"Hold Inactive TopCap":()=>new l(i.EMPTY),"Hold Active BottomCap":t=>{const e=new R(b[t.columnName].cap,72);return t.noteskin.onUpdate(e,o=>{const n=o.getVisualTime(),s=Math.floor((n%.3+.3)%.3/.3*6);e.currentFrame=s}),e},"Hold Inactive BottomCap":{element:"Hold Active BottomCap"},"Roll Active Head":t=>{const e=new l(i.WHITE);return a.setRollTex(e,t.columnName),e.anchor.set(.5),e.width=72,e.height=72,e},"Roll Inactive Head":{element:"Roll Active Head"},"Roll Active Body":{element:"Hold Active Body"},"Roll Inactive Body":{element:"Hold Active Body"},"Roll Active TopCap":()=>new l(i.EMPTY),"Roll Inactive TopCap":()=>new l(i.EMPTY),"Roll Active BottomCap":{element:"Hold Active BottomCap"},"Roll Inactive BottomCap":{element:"Hold Active BottomCap"}}},load:function(t,e){return t.columnName="DownLeft",this.loadElement(t,e)},init(){a.initArrowTex()},update(t){a.setArrowTexTime(t.chartManager.app)},metrics:{HoldBodyBottomOffset:-36,RollBodyBottomOffset:-36}};export{se as default,_ as texOrder}; diff --git a/app.js b/app.js index 48b5af52..cf9767de 100644 --- a/app.js +++ b/app.js @@ -1,4 +1,4 @@ -import{g as St,F as M,M as Yt,K as Kt,a as Nt,I as Zt,G as Jt,N as Qt,O as k,E as Ne,T as Ae,t as er,e as ue,l as tr,C as Je,b as rr,R as nr,c as sr,D as Qe,U as ir,B as or,d as ar,A as et,i as lr,f as tt,h as cr,j as rt,k as hr,m as ur,n as fr,o as dr,W as nt,p as pr}from"./ChartManager-0bba2271.js";var be={exports:{}};const mr="2.0.0",At=256,Er=Number.MAX_SAFE_INTEGER||9007199254740991,wr=16,gr=At-6,vr=["major","premajor","minor","preminor","patch","prepatch","prerelease"];var Ee={MAX_LENGTH:At,MAX_SAFE_COMPONENT_LENGTH:wr,MAX_SAFE_BUILD_LENGTH:gr,MAX_SAFE_INTEGER:Er,RELEASE_TYPES:vr,SEMVER_SPEC_VERSION:mr,FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2};const $r=typeof process=="object"&&process.env&&{}.NODE_DEBUG&&/\bsemver\b/i.test({}.NODE_DEBUG)?(...i)=>console.error("SEMVER",...i):()=>{};var we=$r;(function(i,e){const{MAX_SAFE_COMPONENT_LENGTH:t,MAX_SAFE_BUILD_LENGTH:s,MAX_LENGTH:o}=Ee,u=we;e=i.exports={};const f=e.re=[],$=e.safeRe=[],l=e.src=[],c=e.t={};let m=0;const R="[a-zA-Z0-9-]",_=[["\\s",1],["\\d",o],[R,s]],I=B=>{for(const[V,q]of _)B=B.split(`${V}*`).join(`${V}{0,${q}}`).split(`${V}+`).join(`${V}{1,${q}}`);return B},T=(B,V,q)=>{const te=I(V),b=m++;u(B,b,V),c[B]=b,l[b]=V,f[b]=new RegExp(V,q?"g":void 0),$[b]=new RegExp(te,q?"g":void 0)};T("NUMERICIDENTIFIER","0|[1-9]\\d*"),T("NUMERICIDENTIFIERLOOSE","\\d+"),T("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${R}*`),T("MAINVERSION",`(${l[c.NUMERICIDENTIFIER]})\\.(${l[c.NUMERICIDENTIFIER]})\\.(${l[c.NUMERICIDENTIFIER]})`),T("MAINVERSIONLOOSE",`(${l[c.NUMERICIDENTIFIERLOOSE]})\\.(${l[c.NUMERICIDENTIFIERLOOSE]})\\.(${l[c.NUMERICIDENTIFIERLOOSE]})`),T("PRERELEASEIDENTIFIER",`(?:${l[c.NUMERICIDENTIFIER]}|${l[c.NONNUMERICIDENTIFIER]})`),T("PRERELEASEIDENTIFIERLOOSE",`(?:${l[c.NUMERICIDENTIFIERLOOSE]}|${l[c.NONNUMERICIDENTIFIER]})`),T("PRERELEASE",`(?:-(${l[c.PRERELEASEIDENTIFIER]}(?:\\.${l[c.PRERELEASEIDENTIFIER]})*))`),T("PRERELEASELOOSE",`(?:-?(${l[c.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${l[c.PRERELEASEIDENTIFIERLOOSE]})*))`),T("BUILDIDENTIFIER",`${R}+`),T("BUILD",`(?:\\+(${l[c.BUILDIDENTIFIER]}(?:\\.${l[c.BUILDIDENTIFIER]})*))`),T("FULLPLAIN",`v?${l[c.MAINVERSION]}${l[c.PRERELEASE]}?${l[c.BUILD]}?`),T("FULL",`^${l[c.FULLPLAIN]}$`),T("LOOSEPLAIN",`[v=\\s]*${l[c.MAINVERSIONLOOSE]}${l[c.PRERELEASELOOSE]}?${l[c.BUILD]}?`),T("LOOSE",`^${l[c.LOOSEPLAIN]}$`),T("GTLT","((?:<|>)?=?)"),T("XRANGEIDENTIFIERLOOSE",`${l[c.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`),T("XRANGEIDENTIFIER",`${l[c.NUMERICIDENTIFIER]}|x|X|\\*`),T("XRANGEPLAIN",`[v=\\s]*(${l[c.XRANGEIDENTIFIER]})(?:\\.(${l[c.XRANGEIDENTIFIER]})(?:\\.(${l[c.XRANGEIDENTIFIER]})(?:${l[c.PRERELEASE]})?${l[c.BUILD]}?)?)?`),T("XRANGEPLAINLOOSE",`[v=\\s]*(${l[c.XRANGEIDENTIFIERLOOSE]})(?:\\.(${l[c.XRANGEIDENTIFIERLOOSE]})(?:\\.(${l[c.XRANGEIDENTIFIERLOOSE]})(?:${l[c.PRERELEASELOOSE]})?${l[c.BUILD]}?)?)?`),T("XRANGE",`^${l[c.GTLT]}\\s*${l[c.XRANGEPLAIN]}$`),T("XRANGELOOSE",`^${l[c.GTLT]}\\s*${l[c.XRANGEPLAINLOOSE]}$`),T("COERCEPLAIN",`(^|[^\\d])(\\d{1,${t}})(?:\\.(\\d{1,${t}}))?(?:\\.(\\d{1,${t}}))?`),T("COERCE",`${l[c.COERCEPLAIN]}(?:$|[^\\d])`),T("COERCEFULL",l[c.COERCEPLAIN]+`(?:${l[c.PRERELEASE]})?(?:${l[c.BUILD]})?(?:$|[^\\d])`),T("COERCERTL",l[c.COERCE],!0),T("COERCERTLFULL",l[c.COERCEFULL],!0),T("LONETILDE","(?:~>?)"),T("TILDETRIM",`(\\s*)${l[c.LONETILDE]}\\s+`,!0),e.tildeTrimReplace="$1~",T("TILDE",`^${l[c.LONETILDE]}${l[c.XRANGEPLAIN]}$`),T("TILDELOOSE",`^${l[c.LONETILDE]}${l[c.XRANGEPLAINLOOSE]}$`),T("LONECARET","(?:\\^)"),T("CARETTRIM",`(\\s*)${l[c.LONECARET]}\\s+`,!0),e.caretTrimReplace="$1^",T("CARET",`^${l[c.LONECARET]}${l[c.XRANGEPLAIN]}$`),T("CARETLOOSE",`^${l[c.LONECARET]}${l[c.XRANGEPLAINLOOSE]}$`),T("COMPARATORLOOSE",`^${l[c.GTLT]}\\s*(${l[c.LOOSEPLAIN]})$|^$`),T("COMPARATOR",`^${l[c.GTLT]}\\s*(${l[c.FULLPLAIN]})$|^$`),T("COMPARATORTRIM",`(\\s*)${l[c.GTLT]}\\s*(${l[c.LOOSEPLAIN]}|${l[c.XRANGEPLAIN]})`,!0),e.comparatorTrimReplace="$1$2$3",T("HYPHENRANGE",`^\\s*(${l[c.XRANGEPLAIN]})\\s+-\\s+(${l[c.XRANGEPLAIN]})\\s*$`),T("HYPHENRANGELOOSE",`^\\s*(${l[c.XRANGEPLAINLOOSE]})\\s+-\\s+(${l[c.XRANGEPLAINLOOSE]})\\s*$`),T("STAR","(<|>)?=?\\s*\\*"),T("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$"),T("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")})(be,be.exports);var oe=be.exports;const Rr=Object.freeze({loose:!0}),Ir=Object.freeze({}),yr=i=>i?typeof i!="object"?Rr:i:Ir;var De=yr;const st=/^[0-9]+$/,Ot=(i,e)=>{const t=st.test(i),s=st.test(e);return t&&s&&(i=+i,e=+e),i===e?0:t&&!s?-1:s&&!t?1:iOt(e,i);var Ct={compareIdentifiers:Ot,rcompareIdentifiers:Lr};const fe=we,{MAX_LENGTH:it,MAX_SAFE_INTEGER:de}=Ee,{safeRe:ot,t:at}=oe,Tr=De,{compareIdentifiers:ne}=Ct;let Sr=class Z{constructor(e,t){if(t=Tr(t),e instanceof Z){if(e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease)return e;e=e.version}else if(typeof e!="string")throw new TypeError(`Invalid version. Must be a string. Got type "${typeof e}".`);if(e.length>it)throw new TypeError(`version is longer than ${it} characters`);fe("SemVer",e,t),this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease;const s=e.trim().match(t.loose?ot[at.LOOSE]:ot[at.FULL]);if(!s)throw new TypeError(`Invalid Version: ${e}`);if(this.raw=e,this.major=+s[1],this.minor=+s[2],this.patch=+s[3],this.major>de||this.major<0)throw new TypeError("Invalid major version");if(this.minor>de||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>de||this.patch<0)throw new TypeError("Invalid patch version");s[4]?this.prerelease=s[4].split(".").map(o=>{if(/^[0-9]+$/.test(o)){const u=+o;if(u>=0&&u=0;)typeof this.prerelease[u]=="number"&&(this.prerelease[u]++,u=-2);if(u===-1){if(t===this.prerelease.join(".")&&s===!1)throw new Error("invalid increment argument: identifier already exists");this.prerelease.push(o)}}if(t){let u=[t,o];s===!1&&(u=[t]),ne(this.prerelease[0],t)===0?isNaN(this.prerelease[1])&&(this.prerelease=u):this.prerelease=u}break}default:throw new Error(`invalid increment argument: ${e}`)}return this.raw=this.format(),this.build.length&&(this.raw+=`+${this.build.join(".")}`),this}};var U=Sr;const lt=U,Nr=(i,e,t=!1)=>{if(i instanceof lt)return i;try{return new lt(i,e)}catch(s){if(!t)return null;throw s}};var se=Nr;const Ar=se,Or=(i,e)=>{const t=Ar(i,e);return t?t.version:null};var Cr=Or;const Pr=se,_r=(i,e)=>{const t=Pr(i.trim().replace(/^[=v]+/,""),e);return t?t.version:null};var xr=_r;const ct=U,br=(i,e,t,s,o)=>{typeof t=="string"&&(o=s,s=t,t=void 0);try{return new ct(i instanceof ct?i.version:i,t).inc(e,s,o).version}catch{return null}};var Dr=br;const ht=se,Fr=(i,e)=>{const t=ht(i,null,!0),s=ht(e,null,!0),o=t.compare(s);if(o===0)return null;const u=o>0,f=u?t:s,$=u?s:t,l=!!f.prerelease.length;if(!!$.prerelease.length&&!l)return!$.patch&&!$.minor?"major":f.patch?"patch":f.minor?"minor":"major";const m=l?"pre":"";return t.major!==s.major?m+"major":t.minor!==s.minor?m+"minor":t.patch!==s.patch?m+"patch":"prerelease"};var jr=Fr;const Gr=U,kr=(i,e)=>new Gr(i,e).major;var Mr=kr;const Wr=U,Ur=(i,e)=>new Wr(i,e).minor;var Vr=Ur;const Xr=U,Hr=(i,e)=>new Xr(i,e).patch;var Br=Hr;const qr=se,zr=(i,e)=>{const t=qr(i,e);return t&&t.prerelease.length?t.prerelease:null};var Yr=zr;const ut=U,Kr=(i,e,t)=>new ut(i,t).compare(new ut(e,t));var Y=Kr;const Zr=Y,Jr=(i,e,t)=>Zr(e,i,t);var Qr=Jr;const en=Y,tn=(i,e)=>en(i,e,!0);var rn=tn;const ft=U,nn=(i,e,t)=>{const s=new ft(i,t),o=new ft(e,t);return s.compare(o)||s.compareBuild(o)};var Fe=nn;const sn=Fe,on=(i,e)=>i.sort((t,s)=>sn(t,s,e));var an=on;const ln=Fe,cn=(i,e)=>i.sort((t,s)=>ln(s,t,e));var hn=cn;const un=Y,fn=(i,e,t)=>un(i,e,t)>0;var ge=fn;const dn=Y,pn=(i,e,t)=>dn(i,e,t)<0;var je=pn;const mn=Y,En=(i,e,t)=>mn(i,e,t)===0;var Pt=En;const wn=Y,gn=(i,e,t)=>wn(i,e,t)!==0;var _t=gn;const vn=Y,$n=(i,e,t)=>vn(i,e,t)>=0;var Ge=$n;const Rn=Y,In=(i,e,t)=>Rn(i,e,t)<=0;var ke=In;const yn=Pt,Ln=_t,Tn=ge,Sn=Ge,Nn=je,An=ke,On=(i,e,t,s)=>{switch(e){case"===":return typeof i=="object"&&(i=i.version),typeof t=="object"&&(t=t.version),i===t;case"!==":return typeof i=="object"&&(i=i.version),typeof t=="object"&&(t=t.version),i!==t;case"":case"=":case"==":return yn(i,t,s);case"!=":return Ln(i,t,s);case">":return Tn(i,t,s);case">=":return Sn(i,t,s);case"<":return Nn(i,t,s);case"<=":return An(i,t,s);default:throw new TypeError(`Invalid operator: ${e}`)}};var xt=On;const Cn=U,Pn=se,{safeRe:pe,t:me}=oe,_n=(i,e)=>{if(i instanceof Cn)return i;if(typeof i=="number"&&(i=String(i)),typeof i!="string")return null;e=e||{};let t=null;if(!e.rtl)t=i.match(e.includePrerelease?pe[me.COERCEFULL]:pe[me.COERCE]);else{const l=e.includePrerelease?pe[me.COERCERTLFULL]:pe[me.COERCERTL];let c;for(;(c=l.exec(i))&&(!t||t.index+t[0].length!==i.length);)(!t||c.index+c[0].length!==t.index+t[0].length)&&(t=c),l.lastIndex=c.index+c[1].length+c[2].length;l.lastIndex=-1}if(t===null)return null;const s=t[2],o=t[3]||"0",u=t[4]||"0",f=e.includePrerelease&&t[5]?`-${t[5]}`:"",$=e.includePrerelease&&t[6]?`+${t[6]}`:"";return Pn(`${s}.${o}.${u}${f}${$}`,e)};var xn=_n;class bn{constructor(){this.max=1e3,this.map=new Map}get(e){const t=this.map.get(e);if(t!==void 0)return this.map.delete(e),this.map.set(e,t),t}delete(e){return this.map.delete(e)}set(e,t){if(!this.delete(e)&&t!==void 0){if(this.map.size>=this.max){const o=this.map.keys().next().value;this.delete(o)}this.map.set(e,t)}return this}}var Dn=bn,Oe,dt;function K(){if(dt)return Oe;dt=1;const i=/\s+/g;class e{constructor(p,y){if(y=o(y),p instanceof e)return p.loose===!!y.loose&&p.includePrerelease===!!y.includePrerelease?p:new e(p.raw,y);if(p instanceof u)return this.raw=p.value,this.set=[[p]],this.formatted=void 0,this;if(this.options=y,this.loose=!!y.loose,this.includePrerelease=!!y.includePrerelease,this.raw=p.trim().replace(i," "),this.set=this.raw.split("||").map(w=>this.parseRange(w.trim())).filter(w=>w.length),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${this.raw}`);if(this.set.length>1){const w=this.set[0];if(this.set=this.set.filter(L=>!B(L[0])),this.set.length===0)this.set=[w];else if(this.set.length>1){for(const L of this.set)if(L.length===1&&V(L[0])){this.set=[L];break}}}this.formatted=void 0}get range(){if(this.formatted===void 0){this.formatted="";for(let p=0;p0&&(this.formatted+="||");const y=this.set[p];for(let w=0;w0&&(this.formatted+=" "),this.formatted+=y[w].toString().trim()}}return this.formatted}format(){return this.range}toString(){return this.range}parseRange(p){const w=((this.options.includePrerelease&&I)|(this.options.loose&&T))+":"+p,L=s.get(w);if(L)return L;const g=this.options.loose,N=g?l[c.HYPHENRANGELOOSE]:l[c.HYPHENRANGE];p=p.replace(N,ce(this.options.includePrerelease)),f("hyphen replace",p),p=p.replace(l[c.COMPARATORTRIM],m),f("comparator trim",p),p=p.replace(l[c.TILDETRIM],R),f("tilde trim",p),p=p.replace(l[c.CARETTRIM],_),f("caret trim",p);let O=p.split(" ").map(D=>te(D,this.options)).join(" ").split(/\s+/).map(D=>Le(D,this.options));g&&(O=O.filter(D=>(f("loose invalid filter",D,this.options),!!D.match(l[c.COMPARATORLOOSE])))),f("range list",O);const A=new Map,x=O.map(D=>new u(D,this.options));for(const D of x){if(B(D))return[D];A.set(D.value,D)}A.size>1&&A.has("")&&A.delete("");const G=[...A.values()];return s.set(w,G),G}intersects(p,y){if(!(p instanceof e))throw new TypeError("a Range is required");return this.set.some(w=>q(w,y)&&p.set.some(L=>q(L,y)&&w.every(g=>L.every(N=>g.intersects(N,y)))))}test(p){if(!p)return!1;if(typeof p=="string")try{p=new $(p,this.options)}catch{return!1}for(let y=0;yE.value==="<0.0.0-0",V=E=>E.value==="",q=(E,p)=>{let y=!0;const w=E.slice();let L=w.pop();for(;y&&w.length;)y=w.every(g=>L.intersects(g,p)),L=w.pop();return y},te=(E,p)=>(f("comp",E,p),E=ae(E,p),f("caret",E),E=H(E,p),f("tildes",E),E=le(E,p),f("xrange",E),E=ye(E,p),f("stars",E),E),b=E=>!E||E.toLowerCase()==="x"||E==="*",H=(E,p)=>E.trim().split(/\s+/).map(y=>Re(y,p)).join(" "),Re=(E,p)=>{const y=p.loose?l[c.TILDELOOSE]:l[c.TILDE];return E.replace(y,(w,L,g,N,O)=>{f("tilde",E,w,L,g,N,O);let A;return b(L)?A="":b(g)?A=`>=${L}.0.0 <${+L+1}.0.0-0`:b(N)?A=`>=${L}.${g}.0 <${L}.${+g+1}.0-0`:O?(f("replaceTilde pr",O),A=`>=${L}.${g}.${N}-${O} <${L}.${+g+1}.0-0`):A=`>=${L}.${g}.${N} <${L}.${+g+1}.0-0`,f("tilde return",A),A})},ae=(E,p)=>E.trim().split(/\s+/).map(y=>X(y,p)).join(" "),X=(E,p)=>{f("caret",E,p);const y=p.loose?l[c.CARETLOOSE]:l[c.CARET],w=p.includePrerelease?"-0":"";return E.replace(y,(L,g,N,O,A)=>{f("caret",E,L,g,N,O,A);let x;return b(g)?x="":b(N)?x=`>=${g}.0.0${w} <${+g+1}.0.0-0`:b(O)?g==="0"?x=`>=${g}.${N}.0${w} <${g}.${+N+1}.0-0`:x=`>=${g}.${N}.0${w} <${+g+1}.0.0-0`:A?(f("replaceCaret pr",A),g==="0"?N==="0"?x=`>=${g}.${N}.${O}-${A} <${g}.${N}.${+O+1}-0`:x=`>=${g}.${N}.${O}-${A} <${g}.${+N+1}.0-0`:x=`>=${g}.${N}.${O}-${A} <${+g+1}.0.0-0`):(f("no pr"),g==="0"?N==="0"?x=`>=${g}.${N}.${O}${w} <${g}.${N}.${+O+1}-0`:x=`>=${g}.${N}.${O}${w} <${g}.${+N+1}.0-0`:x=`>=${g}.${N}.${O} <${+g+1}.0.0-0`),f("caret return",x),x})},le=(E,p)=>(f("replaceXRanges",E,p),E.split(/\s+/).map(y=>Ie(y,p)).join(" ")),Ie=(E,p)=>{E=E.trim();const y=p.loose?l[c.XRANGELOOSE]:l[c.XRANGE];return E.replace(y,(w,L,g,N,O,A)=>{f("xRange",E,w,L,g,N,O,A);const x=b(g),G=x||b(N),D=G||b(O),ee=D;return L==="="&&ee&&(L=""),A=p.includePrerelease?"-0":"",x?L===">"||L==="<"?w="<0.0.0-0":w="*":L&&ee?(G&&(N=0),O=0,L===">"?(L=">=",G?(g=+g+1,N=0,O=0):(N=+N+1,O=0)):L==="<="&&(L="<",G?g=+g+1:N=+N+1),L==="<"&&(A="-0"),w=`${L+g}.${N}.${O}${A}`):G?w=`>=${g}.0.0${A} <${+g+1}.0.0-0`:D&&(w=`>=${g}.${N}.0${A} <${g}.${+N+1}.0-0`),f("xRange return",w),w})},ye=(E,p)=>(f("replaceStars",E,p),E.trim().replace(l[c.STAR],"")),Le=(E,p)=>(f("replaceGTE0",E,p),E.trim().replace(l[p.includePrerelease?c.GTE0PRE:c.GTE0],"")),ce=E=>(p,y,w,L,g,N,O,A,x,G,D,ee)=>(b(w)?y="":b(L)?y=`>=${w}.0.0${E?"-0":""}`:b(g)?y=`>=${w}.${L}.0${E?"-0":""}`:N?y=`>=${y}`:y=`>=${y}${E?"-0":""}`,b(x)?A="":b(G)?A=`<${+x+1}.0.0-0`:b(D)?A=`<${x}.${+G+1}.0-0`:ee?A=`<=${x}.${G}.${D}-${ee}`:E?A=`<${x}.${G}.${+D+1}-0`:A=`<=${A}`,`${y} ${A}`.trim()),J=(E,p,y)=>{for(let w=0;w0){const L=E[w].semver;if(L.major===p.major&&L.minor===p.minor&&L.patch===p.patch)return!0}return!1}return!0};return Oe}var Ce,pt;function ve(){if(pt)return Ce;pt=1;const i=Symbol("SemVer ANY");class e{static get ANY(){return i}constructor(m,R){if(R=t(R),m instanceof e){if(m.loose===!!R.loose)return m;m=m.value}m=m.trim().split(/\s+/).join(" "),f("comparator",m,R),this.options=R,this.loose=!!R.loose,this.parse(m),this.semver===i?this.value="":this.value=this.operator+this.semver.version,f("comp",this)}parse(m){const R=this.options.loose?s[o.COMPARATORLOOSE]:s[o.COMPARATOR],_=m.match(R);if(!_)throw new TypeError(`Invalid comparator: ${m}`);this.operator=_[1]!==void 0?_[1]:"",this.operator==="="&&(this.operator=""),_[2]?this.semver=new $(_[2],this.options.loose):this.semver=i}toString(){return this.value}test(m){if(f("Comparator.test",m,this.options.loose),this.semver===i||m===i)return!0;if(typeof m=="string")try{m=new $(m,this.options)}catch{return!1}return u(m,this.operator,this.semver,this.options)}intersects(m,R){if(!(m instanceof e))throw new TypeError("a Comparator is required");return this.operator===""?this.value===""?!0:new l(m.value,R).test(this.value):m.operator===""?m.value===""?!0:new l(this.value,R).test(m.semver):(R=t(R),R.includePrerelease&&(this.value==="<0.0.0-0"||m.value==="<0.0.0-0")||!R.includePrerelease&&(this.value.startsWith("<0.0.0")||m.value.startsWith("<0.0.0"))?!1:!!(this.operator.startsWith(">")&&m.operator.startsWith(">")||this.operator.startsWith("<")&&m.operator.startsWith("<")||this.semver.version===m.semver.version&&this.operator.includes("=")&&m.operator.includes("=")||u(this.semver,"<",m.semver,R)&&this.operator.startsWith(">")&&m.operator.startsWith("<")||u(this.semver,">",m.semver,R)&&this.operator.startsWith("<")&&m.operator.startsWith(">")))}}Ce=e;const t=De,{safeRe:s,t:o}=oe,u=xt,f=we,$=U,l=K();return Ce}const Fn=K(),jn=(i,e,t)=>{try{e=new Fn(e,t)}catch{return!1}return e.test(i)};var $e=jn;const Gn=K(),kn=(i,e)=>new Gn(i,e).set.map(t=>t.map(s=>s.value).join(" ").trim().split(" "));var Mn=kn;const Wn=U,Un=K(),Vn=(i,e,t)=>{let s=null,o=null,u=null;try{u=new Un(e,t)}catch{return null}return i.forEach(f=>{u.test(f)&&(!s||o.compare(f)===-1)&&(s=f,o=new Wn(s,t))}),s};var Xn=Vn;const Hn=U,Bn=K(),qn=(i,e,t)=>{let s=null,o=null,u=null;try{u=new Bn(e,t)}catch{return null}return i.forEach(f=>{u.test(f)&&(!s||o.compare(f)===1)&&(s=f,o=new Hn(s,t))}),s};var zn=qn;const Pe=U,Yn=K(),mt=ge,Kn=(i,e)=>{i=new Yn(i,e);let t=new Pe("0.0.0");if(i.test(t)||(t=new Pe("0.0.0-0"),i.test(t)))return t;t=null;for(let s=0;s{const $=new Pe(f.semver.version);switch(f.operator){case">":$.prerelease.length===0?$.patch++:$.prerelease.push(0),$.raw=$.format();case"":case">=":(!u||mt($,u))&&(u=$);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${f.operator}`)}}),u&&(!t||mt(t,u))&&(t=u)}return t&&i.test(t)?t:null};var Zn=Kn;const Jn=K(),Qn=(i,e)=>{try{return new Jn(i,e).range||"*"}catch{return null}};var es=Qn;const ts=U,bt=ve(),{ANY:rs}=bt,ns=K(),ss=$e,Et=ge,wt=je,is=ke,os=Ge,as=(i,e,t,s)=>{i=new ts(i,s),e=new ns(e,s);let o,u,f,$,l;switch(t){case">":o=Et,u=is,f=wt,$=">",l=">=";break;case"<":o=wt,u=os,f=Et,$="<",l="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(ss(i,e,s))return!1;for(let c=0;c{I.semver===rs&&(I=new bt(">=0.0.0")),R=R||I,_=_||I,o(I.semver,R.semver,s)?R=I:f(I.semver,_.semver,s)&&(_=I)}),R.operator===$||R.operator===l||(!_.operator||_.operator===$)&&u(i,_.semver))return!1;if(_.operator===l&&f(i,_.semver))return!1}return!0};var Me=as;const ls=Me,cs=(i,e,t)=>ls(i,e,">",t);var hs=cs;const us=Me,fs=(i,e,t)=>us(i,e,"<",t);var ds=fs;const gt=K(),ps=(i,e,t)=>(i=new gt(i,t),e=new gt(e,t),i.intersects(e,t));var ms=ps;const Es=$e,ws=Y;var gs=(i,e,t)=>{const s=[];let o=null,u=null;const f=i.sort((m,R)=>ws(m,R,t));for(const m of f)Es(m,e,t)?(u=m,o||(o=m)):(u&&s.push([o,u]),u=null,o=null);o&&s.push([o,null]);const $=[];for(const[m,R]of s)m===R?$.push(m):!R&&m===f[0]?$.push("*"):R?m===f[0]?$.push(`<=${R}`):$.push(`${m} - ${R}`):$.push(`>=${m}`);const l=$.join(" || "),c=typeof e.raw=="string"?e.raw:String(e);return l.length{if(i===e)return!0;i=new vt(i,t),e=new vt(e,t);let s=!1;e:for(const o of i.set){for(const u of e.set){const f=Rs(o,u,t);if(s=s||f!==null,f)continue e}if(s)return!1}return!0},$s=[new We(">=0.0.0-0")],$t=[new We(">=0.0.0")],Rs=(i,e,t)=>{if(i===e)return!0;if(i.length===1&&i[0].semver===_e){if(e.length===1&&e[0].semver===_e)return!0;t.includePrerelease?i=$s:i=$t}if(e.length===1&&e[0].semver===_e){if(t.includePrerelease)return!0;e=$t}const s=new Set;let o,u;for(const I of i)I.operator===">"||I.operator===">="?o=Rt(o,I,t):I.operator==="<"||I.operator==="<="?u=It(u,I,t):s.add(I.semver);if(s.size>1)return null;let f;if(o&&u){if(f=Ue(o.semver,u.semver,t),f>0)return null;if(f===0&&(o.operator!==">="||u.operator!=="<="))return null}for(const I of s){if(o&&!ie(I,String(o),t)||u&&!ie(I,String(u),t))return null;for(const T of e)if(!ie(I,String(T),t))return!1;return!0}let $,l,c,m,R=u&&!t.includePrerelease&&u.semver.prerelease.length?u.semver:!1,_=o&&!t.includePrerelease&&o.semver.prerelease.length?o.semver:!1;R&&R.prerelease.length===1&&u.operator==="<"&&R.prerelease[0]===0&&(R=!1);for(const I of e){if(m=m||I.operator===">"||I.operator===">=",c=c||I.operator==="<"||I.operator==="<=",o){if(_&&I.semver.prerelease&&I.semver.prerelease.length&&I.semver.major===_.major&&I.semver.minor===_.minor&&I.semver.patch===_.patch&&(_=!1),I.operator===">"||I.operator===">="){if($=Rt(o,I,t),$===I&&$!==o)return!1}else if(o.operator===">="&&!ie(o.semver,String(I),t))return!1}if(u){if(R&&I.semver.prerelease&&I.semver.prerelease.length&&I.semver.major===R.major&&I.semver.minor===R.minor&&I.semver.patch===R.patch&&(R=!1),I.operator==="<"||I.operator==="<="){if(l=It(u,I,t),l===I&&l!==u)return!1}else if(u.operator==="<="&&!ie(u.semver,String(I),t))return!1}if(!I.operator&&(u||o)&&f!==0)return!1}return!(o&&c&&!u&&f!==0||u&&m&&!o&&f!==0||_||R)},Rt=(i,e,t)=>{if(!i)return e;const s=Ue(i.semver,e.semver,t);return s>0?i:s<0||e.operator===">"&&i.operator===">="?e:i},It=(i,e,t)=>{if(!i)return e;const s=Ue(i.semver,e.semver,t);return s<0?i:s>0||e.operator==="<"&&i.operator==="<="?e:i};var Is=vs;const xe=oe,yt=Ee,ys=U,Lt=Ct,Ls=se,Ts=Cr,Ss=xr,Ns=Dr,As=jr,Os=Mr,Cs=Vr,Ps=Br,_s=Yr,xs=Y,bs=Qr,Ds=rn,Fs=Fe,js=an,Gs=hn,ks=ge,Ms=je,Ws=Pt,Us=_t,Vs=Ge,Xs=ke,Hs=xt,Bs=xn,qs=ve(),zs=K(),Ys=$e,Ks=Mn,Zs=Xn,Js=zn,Qs=Zn,ei=es,ti=Me,ri=hs,ni=ds,si=ms,ii=gs,oi=Is;var ai={parse:Ls,valid:Ts,clean:Ss,inc:Ns,diff:As,major:Os,minor:Cs,patch:Ps,prerelease:_s,compare:xs,rcompare:bs,compareLoose:Ds,compareBuild:Fs,sort:js,rsort:Gs,gt:ks,lt:Ms,eq:Ws,neq:Us,gte:Vs,lte:Xs,cmp:Hs,coerce:Bs,Comparator:qs,Range:zs,satisfies:Ys,toComparators:Ks,maxSatisfying:Zs,minSatisfying:Js,minVersion:Qs,validRange:ei,outside:ti,gtr:ri,ltr:ni,intersects:si,simplifyRange:ii,subset:oi,SemVer:ys,re:xe.re,src:xe.src,tokens:xe.t,SEMVER_SPEC_VERSION:yt.SEMVER_SPEC_VERSION,RELEASE_TYPES:yt.RELEASE_TYPES,compareIdentifiers:Lt.compareIdentifiers,rcompareIdentifiers:Lt.rcompareIdentifiers};const li=St(ai);var Dt={exports:{}};(function(i){(function(){function e(r,n,h){return r.call.apply(r.bind,arguments)}function t(r,n,h){if(!r)throw Error();if(2=n.f?C():r.fonts.load(Re(n.a),n.h).then(function(F){1<=F.length?S():setTimeout(P,25)},function(){C()})}P()}),d=null,v=new Promise(function(S,C){d=setTimeout(C,n.f)});Promise.race([v,a]).then(function(){d&&(clearTimeout(d),d=null),n.g(n.a)},function(){n.j(n.a)})};function N(r,n,h,a,d,v,S){this.v=r,this.B=n,this.c=h,this.a=a,this.s=S||"BESbswy",this.f={},this.w=d||3e3,this.u=v||null,this.m=this.j=this.h=this.g=null,this.g=new y(this.c,this.s),this.h=new y(this.c,this.s),this.j=new y(this.c,this.s),this.m=new y(this.c,this.s),r=new H(this.a.c+",serif",X(this.a)),r=L(r),this.g.a.style.cssText=r,r=new H(this.a.c+",sans-serif",X(this.a)),r=L(r),this.h.a.style.cssText=r,r=new H("serif",X(this.a)),r=L(r),this.j.a.style.cssText=r,r=new H("sans-serif",X(this.a)),r=L(r),this.m.a.style.cssText=r,w(this.g),w(this.h),w(this.j),w(this.m)}var O={D:"serif",C:"sans-serif"},A=null;function x(){if(A===null){var r=/AppleWebKit\/([0-9]+)(?:\.([0-9]+))/.exec(window.navigator.userAgent);A=!!r&&(536>parseInt(r[1],10)||parseInt(r[1],10)===536&&11>=parseInt(r[2],10))}return A}N.prototype.start=function(){this.f.serif=this.j.a.offsetWidth,this.f["sans-serif"]=this.m.a.offsetWidth,this.A=o(),D(this)};function G(r,n,h){for(var a in O)if(O.hasOwnProperty(a)&&n===r.f[O[a]]&&h===r.f[O[a]])return!0;return!1}function D(r){var n=r.g.a.offsetWidth,h=r.h.a.offsetWidth,a;(a=n===r.f.serif&&h===r.f["sans-serif"])||(a=x()&&G(r,n,h)),a?o()-r.A>=r.w?x()&&G(r,n,h)&&(r.u===null||r.u.hasOwnProperty(r.a.c))?Te(r,r.v):Te(r,r.B):ee(r):Te(r,r.v)}function ee(r){setTimeout(s(function(){D(this)},r),50)}function Te(r,n){setTimeout(s(function(){c(this.g.a),c(this.h.a),c(this.j.a),c(this.m.a),n(this.a)},r),0)}function Se(r,n,h){this.c=r,this.a=n,this.f=0,this.m=this.j=!1,this.s=h}var he=null;Se.prototype.g=function(r){var n=this.a;n.g&&m(n.f,[n.a.c("wf",r.c,X(r).toString(),"active")],[n.a.c("wf",r.c,X(r).toString(),"loading"),n.a.c("wf",r.c,X(r).toString(),"inactive")]),J(n,"fontactive",r),this.m=!0,Ve(this)},Se.prototype.h=function(r){var n=this.a;if(n.g){var h=R(n.f,n.a.c("wf",r.c,X(r).toString(),"active")),a=[],d=[n.a.c("wf",r.c,X(r).toString(),"loading")];h||a.push(n.a.c("wf",r.c,X(r).toString(),"inactive")),m(n.f,a,d)}J(n,"fontinactive",r),Ve(this)};function Ve(r){--r.f==0&&r.j&&(r.m?(r=r.a,r.g&&m(r.f,[r.a.c("wf","active")],[r.a.c("wf","loading"),r.a.c("wf","inactive")]),J(r,"active")):ce(r.a))}function Xe(r){this.j=r,this.a=new E,this.h=0,this.f=this.g=!0}Xe.prototype.load=function(r){this.c=new u(this.j,r.context||this.j),this.g=r.events!==!1,this.f=r.classes!==!1,jt(this,new ye(this.c,r),r)};function Ft(r,n,h,a,d){var v=--r.h==0;(r.f||r.g)&&setTimeout(function(){var S=d||null,C=a||null||{};if(h.length===0&&v)ce(n.a);else{n.f+=h.length,v&&(n.j=v);var P,F=[];for(P=0;Pthis.createElement(o));t.replaceChildren(...s)}createElement(e){if(e.type=="separator"){const t=document.createElement("div");return t.classList.add("separator"),t}if(e.type=="selection"||e.type=="checkbox"||e.type=="dropdown"){const t=document.createElement("div"),s=document.createElement("div"),o=document.createElement("div");let u;if(e.type=="selection"||e.type=="checkbox"){const f=Kt[e.id]??{label:e.id,combos:[],callback:()=>{}};u=document.createElement("div"),u.innerText=Nt.getKeybindString(e.id),u.classList.add("keybind","unselectable"),o.innerText=f.label;let $=f.disabled;typeof $=="function"&&($=$(this.app)),$&&t.classList.add("disabled"),t.addEventListener("click",()=>{if($)return;f.callback(this.app),t.closest(".menu-main").querySelector(".menubar-dropdown").replaceChildren()})}else u=Zt.getIcon("CHEVRON",16),u.style.transform="rotate(-90deg)",o.innerText=typeof e.title=="function"?e.title(this.app):e.title;if(s.appendChild(o),s.appendChild(u),t.appendChild(s),t.classList.add("menu-item"),s.classList.add("menu-item-title","menu-hover"),o.classList.add("title","unselectable"),e.type=="dropdown"){const f=document.createElement("div");t.appendChild(f),f.classList.add("menubar-dropdown"),e.options.map($=>this.createElement($)).forEach($=>f.appendChild($))}if(e.type=="checkbox"){let f=e.checked;typeof f=="function"&&(f=f(this.app)),f&&(o.innerText="✓ "+o.innerText)}return t}if(e.type=="menu"){const t=document.createElement("div"),s=document.createElement("div"),o=document.createElement("div");return t.appendChild(s),s.innerText=e.title,t.appendChild(o),s.classList.add("title","unselectable"),t.classList.add("menu-item","menu-main"),s.classList.add("menu-hover"),o.classList.add("menubar-dropdown","unselectable"),t.onmouseenter=()=>{o.replaceChildren(...e.options.map(u=>this.createElement(u)))},t.onmouseleave=()=>{o.replaceChildren()},t}return document.createElement("div")}}class fi{view;windows=[];app;constructor(e,t){this.app=e,this.view=t}unfocusAll(){for(const e of this.view.querySelectorAll(".focused"))e.classList.remove("focused")}getFocusedWindow(){for(const e of this.windows)if(e.windowElement.classList.contains("focused"))return e;return null}isBlocked(){return!this.windows.every(e=>!e.options.blocking)}openWindow(e){if(e.options.win_id){const t=this.getWindowById(e.options.win_id);if(t){t.focus();return}}e.addToManager(this),this.windows.push(e)}removeWindow(e){this.windows.splice(this.windows.indexOf(e),1)}getWindowById(e){for(const t of this.windows)if(t.options.win_id==e)return t}}class di{options=k;events=Ne;themes=Ae;renderer;ticker;stage;view;chartManager;windowManager;menubarManager;actionHistory;lastWidth=window.innerWidth;lastHeight=window.innerHeight;constructor(){if(er.setDefaultProps({duration:[200,100],theme:"sm"}),window.nw){const e=nw.Window.get();nw.App.on("open",t=>{if(!t||t?.length===0){nw.Window.open(window.location.href);return}let s="";for(const o of t)if(ue(o)==".ssc"){s=o;break}else s==""&&ue(o)==".sm"&&(s=o);s!=""&&(this.chartManager.loadSM(s),this.windowManager.getWindowById("select_sm_initial")?.closeWindow())}),window.addEventListener("keydown",t=>{t.key=="r"&&(t.metaKey||t.ctrlKey)&&(t.preventDefault(),e.reload()),t.code=="KeyW"&&(t.metaKey||t.ctrlKey)&&(t.preventDefault(),e.close()),process.versions["nw-flavor"]=="sdk"&&t.code=="KeyI"&&t.metaKey&&t.altKey&&(t.preventDefault(),e.showDevTools())}),e.on("enter-fullscreen",()=>{k.app.fullscreen=e.isFullscreen}),e.on("resize",(t,s)=>{e.isFullscreen||(k.app.width=t,k.app.height=s)}),e.on("restore",()=>{k.app.fullscreen=e.isFullscreen}),this.checkAppVersion()}if(k.loadOptions(),tr(),Nt.load(this),window.nw){const e=nw.Window.get();k.app.fullscreen?e.enterFullscreen():e.resizeTo(k.app.width,k.app.height)}if(setInterval(()=>k.saveOptions(),1e4),k.general.smoothAnimations&&document.body.classList.add("animated"),this.registerFonts(),this.view=document.getElementById("pixi"),document.oncontextmenu=e=>{e.preventDefault(),this.chartManager.loadedChart&&e.target==this.view&&Je.open(this,e)},this.view.onmousedown=()=>{Je.close()},this.stage=new rr,this.stage.sortableChildren=!0,this.renderer=new nr({backgroundColor:1579292,antialias:k.performance.antialiasing,width:this.view.clientWidth,height:this.view.clientHeight,resolution:k.performance.resolution,autoDensity:!0,view:this.view,powerPreference:"low-power"}),this.ticker=new sr,this.ticker.maxFPS=0,this.ticker.add(()=>{const e=performance.now();this.renderer.render(this.stage),Qe.instance?.addFrameTimeValue(performance.now()-e),performance.memory?.usedJSHeapSize&&Qe.instance?.addMemoryTimeValue(performance.memory.usedJSHeapSize),pr()},ir.LOW),this.ticker.start(),or.init(this.renderer),this.chartManager=new ar(this),this.menubarManager=new ui(this,document.getElementById("menubar")),this.windowManager=new fi(this,document.getElementById("windows")),this.actionHistory=new et(this),this.registerListeners(),!M.hidePoweredByText&&lr()){const e=document.getElementById("embed");e.appendChild(document.createTextNode("Powered by "));const t=document.createElement("a");if(t.href="https://tillvit.github.io/smeditor/",t.innerText="SMEditor",t.target="_blank",e.appendChild(t),M.url!=null){e.appendChild(document.createTextNode(" | Open this chart in a "));const s=document.createElement("a"),o=new URL(location.origin+"/smeditor/app/");s.innerText="new tab",s.target="_blank",o.searchParams.append("url",M.url),M.chartType!==null&&o.searchParams.append("chartType",M.chartType),M.chartIndex!==null&&o.searchParams.append("chartIndex",M.chartIndex+""),s.href=o.toString(),e.appendChild(s)}}tt.initFileSystem().then(()=>{if(M.url){this.chartManager.loadSM(M.url).then(()=>{const e=this.chartManager.loadedSM;if(!e)return;let t;if(M.chartType!=null&&(t=e.charts[M.chartType],t===void 0)){nt.createFormatted(`Couldn't find chart with type ${M.chartType}`,"warn");return}if(t===void 0){const o=Object.keys(e.charts);if(o.length==0||(t=e.charts[o[0]],t.length==0))return}let s;if(M.chartIndex!=null&&(s=t.at(M.chartIndex),s===void 0)){nt.createFormatted(`Couldn't find chart with index ${M.chartIndex}`,"warn");return}s===void 0&&(s=t.at(-1),!s)||this.chartManager.loadChart(s)});return}this.windowManager.openWindow(new cr(this))}),window.onbeforeunload=e=>{if(et.instance.isDirty()&&k.general.warnBeforeExit)return e.preventDefault(),e.returnValue="Are you sure you want to exit?"},window.onunload=()=>{k.saveOptions()},Ae.loadTheme(k.general.theme)}registerFonts(){rt.from("Main",{fontFamily:"Assistant",fontSize:20,fill:"white"},{chars:[["a","z"],["A","Z"],"!@#$%^&*()~{}[]:.-?=,_","0123456789/"," "],resolution:window.devicePixelRatio}),rt.from("Fancy",{fontFamily:"Assistant",fontSize:40,fontWeight:"700",fill:["#dddddd","#ffffff"],fillGradientType:hr.LINEAR_VERTICAL,stroke:11184810,strokeThickness:3},{chars:[["a","z"],["A","Z"],"!@#$%^&*()~{}[]:.-?=,_","0123456789/"," "],resolution:window.devicePixelRatio})}registerListeners(){this.view.addEventListener("mousedown",()=>{this.windowManager.unfocusAll()}),Ne.on("themeChanged",()=>{this.renderer.background.color=new ur(Ae.getCurrentTheme()["editor-bg"]).toNumber()}),window.addEventListener("keydown",function(e){e.code=="Enter"&&e.target instanceof HTMLButtonElement&&e.preventDefault()}),window.addEventListener("dragstart",function(e){e.target instanceof HTMLImageElement&&e.preventDefault()}),setInterval(()=>{const e=window.innerWidth,t=window.innerHeight-document.getElementById("menubar").clientHeight-document.getElementById("playback-options").clientHeight;(this.lastHeight!=t||this.lastWidth!=e)&&(this.lastHeight=t,this.lastWidth=e,this.onResize(e,t),Ne.emit("resize"))},100),window.addEventListener("dragover",e=>{e.preventDefault(),e.dataTransfer.dropEffect="copy"}),window.addEventListener("drop",e=>{if(window.nw){e.stopPropagation(),e.preventDefault();let t="";for(const s of e.dataTransfer.files)if(s.path)if(ue(s.path)==".ssc"){t=s.path;break}else t==""&&ue(s.path)==".sm"&&(t=s.path);t!=""&&(this.chartManager.loadSM(t),this.windowManager.getWindowById("select_sm_initial")?.closeWindow())}else tt.handleDropEvent(e).then(t=>{const s=new fr(this,{title:"Select an sm/ssc file...",accepted_file_types:[".sm",".ssc"],disableClose:!0,callback:o=>{this.chartManager.loadSM(o),this.windowManager.getWindowById("select_sm_initial")?.closeWindow()},onload:()=>{s.getAcceptableFile(t??"").then(o=>s.selectPath(o))}});this.windowManager.openWindow(s)})})}onResize(e,t){this.renderer.screen.width=e,this.renderer.screen.height=t,this.view.width=e*this.renderer.resolution,this.view.height=t*this.renderer.resolution,this.view.style.width=`${e}px`,this.view.style.height=`${t}px`}checkAppVersion(){if(!window.nw)return;const e=nw.require("nw.gui"),t={stable:3,beta:2,alpha:1,nightly:0};let s="win";process.platform=="darwin"?s=nw.require("os").arch()=="arm64"?"mac-arm":"mac-x64":process.platform=="linux"&&(s="linux"),fetch("/smeditor/assets/app/versions.json").then(o=>o.json()).then(o=>{o=o.sort((f,$)=>t[f.type]!=t[$.type]?t[$.type]-t[f.type]:$.date-f.date);const u=o[0];li.lt(e.App.manifest.version,u.version)&&localStorage.getItem("downloadedVersion")!==u.version&&dr.open(u.version,u.downloads[s])})}}document.querySelector("body").innerHTML=`
+import{g as St,F as M,M as Yt,K as Kt,a as Nt,I as Zt,G as Jt,N as Qt,O as k,E as Ne,T as Ae,t as er,e as ue,l as tr,C as Je,b as rr,R as nr,c as sr,D as Qe,U as ir,B as or,d as ar,A as et,i as lr,f as tt,h as cr,j as rt,k as hr,m as ur,n as fr,o as dr,W as nt,p as pr}from"./ChartManager-beed98d8.js";var be={exports:{}};const mr="2.0.0",At=256,Er=Number.MAX_SAFE_INTEGER||9007199254740991,wr=16,gr=At-6,vr=["major","premajor","minor","preminor","patch","prepatch","prerelease"];var Ee={MAX_LENGTH:At,MAX_SAFE_COMPONENT_LENGTH:wr,MAX_SAFE_BUILD_LENGTH:gr,MAX_SAFE_INTEGER:Er,RELEASE_TYPES:vr,SEMVER_SPEC_VERSION:mr,FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2};const $r=typeof process=="object"&&process.env&&{}.NODE_DEBUG&&/\bsemver\b/i.test({}.NODE_DEBUG)?(...i)=>console.error("SEMVER",...i):()=>{};var we=$r;(function(i,e){const{MAX_SAFE_COMPONENT_LENGTH:t,MAX_SAFE_BUILD_LENGTH:s,MAX_LENGTH:o}=Ee,u=we;e=i.exports={};const f=e.re=[],$=e.safeRe=[],l=e.src=[],c=e.t={};let m=0;const R="[a-zA-Z0-9-]",_=[["\\s",1],["\\d",o],[R,s]],I=B=>{for(const[V,q]of _)B=B.split(`${V}*`).join(`${V}{0,${q}}`).split(`${V}+`).join(`${V}{1,${q}}`);return B},T=(B,V,q)=>{const te=I(V),b=m++;u(B,b,V),c[B]=b,l[b]=V,f[b]=new RegExp(V,q?"g":void 0),$[b]=new RegExp(te,q?"g":void 0)};T("NUMERICIDENTIFIER","0|[1-9]\\d*"),T("NUMERICIDENTIFIERLOOSE","\\d+"),T("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${R}*`),T("MAINVERSION",`(${l[c.NUMERICIDENTIFIER]})\\.(${l[c.NUMERICIDENTIFIER]})\\.(${l[c.NUMERICIDENTIFIER]})`),T("MAINVERSIONLOOSE",`(${l[c.NUMERICIDENTIFIERLOOSE]})\\.(${l[c.NUMERICIDENTIFIERLOOSE]})\\.(${l[c.NUMERICIDENTIFIERLOOSE]})`),T("PRERELEASEIDENTIFIER",`(?:${l[c.NUMERICIDENTIFIER]}|${l[c.NONNUMERICIDENTIFIER]})`),T("PRERELEASEIDENTIFIERLOOSE",`(?:${l[c.NUMERICIDENTIFIERLOOSE]}|${l[c.NONNUMERICIDENTIFIER]})`),T("PRERELEASE",`(?:-(${l[c.PRERELEASEIDENTIFIER]}(?:\\.${l[c.PRERELEASEIDENTIFIER]})*))`),T("PRERELEASELOOSE",`(?:-?(${l[c.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${l[c.PRERELEASEIDENTIFIERLOOSE]})*))`),T("BUILDIDENTIFIER",`${R}+`),T("BUILD",`(?:\\+(${l[c.BUILDIDENTIFIER]}(?:\\.${l[c.BUILDIDENTIFIER]})*))`),T("FULLPLAIN",`v?${l[c.MAINVERSION]}${l[c.PRERELEASE]}?${l[c.BUILD]}?`),T("FULL",`^${l[c.FULLPLAIN]}$`),T("LOOSEPLAIN",`[v=\\s]*${l[c.MAINVERSIONLOOSE]}${l[c.PRERELEASELOOSE]}?${l[c.BUILD]}?`),T("LOOSE",`^${l[c.LOOSEPLAIN]}$`),T("GTLT","((?:<|>)?=?)"),T("XRANGEIDENTIFIERLOOSE",`${l[c.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`),T("XRANGEIDENTIFIER",`${l[c.NUMERICIDENTIFIER]}|x|X|\\*`),T("XRANGEPLAIN",`[v=\\s]*(${l[c.XRANGEIDENTIFIER]})(?:\\.(${l[c.XRANGEIDENTIFIER]})(?:\\.(${l[c.XRANGEIDENTIFIER]})(?:${l[c.PRERELEASE]})?${l[c.BUILD]}?)?)?`),T("XRANGEPLAINLOOSE",`[v=\\s]*(${l[c.XRANGEIDENTIFIERLOOSE]})(?:\\.(${l[c.XRANGEIDENTIFIERLOOSE]})(?:\\.(${l[c.XRANGEIDENTIFIERLOOSE]})(?:${l[c.PRERELEASELOOSE]})?${l[c.BUILD]}?)?)?`),T("XRANGE",`^${l[c.GTLT]}\\s*${l[c.XRANGEPLAIN]}$`),T("XRANGELOOSE",`^${l[c.GTLT]}\\s*${l[c.XRANGEPLAINLOOSE]}$`),T("COERCEPLAIN",`(^|[^\\d])(\\d{1,${t}})(?:\\.(\\d{1,${t}}))?(?:\\.(\\d{1,${t}}))?`),T("COERCE",`${l[c.COERCEPLAIN]}(?:$|[^\\d])`),T("COERCEFULL",l[c.COERCEPLAIN]+`(?:${l[c.PRERELEASE]})?(?:${l[c.BUILD]})?(?:$|[^\\d])`),T("COERCERTL",l[c.COERCE],!0),T("COERCERTLFULL",l[c.COERCEFULL],!0),T("LONETILDE","(?:~>?)"),T("TILDETRIM",`(\\s*)${l[c.LONETILDE]}\\s+`,!0),e.tildeTrimReplace="$1~",T("TILDE",`^${l[c.LONETILDE]}${l[c.XRANGEPLAIN]}$`),T("TILDELOOSE",`^${l[c.LONETILDE]}${l[c.XRANGEPLAINLOOSE]}$`),T("LONECARET","(?:\\^)"),T("CARETTRIM",`(\\s*)${l[c.LONECARET]}\\s+`,!0),e.caretTrimReplace="$1^",T("CARET",`^${l[c.LONECARET]}${l[c.XRANGEPLAIN]}$`),T("CARETLOOSE",`^${l[c.LONECARET]}${l[c.XRANGEPLAINLOOSE]}$`),T("COMPARATORLOOSE",`^${l[c.GTLT]}\\s*(${l[c.LOOSEPLAIN]})$|^$`),T("COMPARATOR",`^${l[c.GTLT]}\\s*(${l[c.FULLPLAIN]})$|^$`),T("COMPARATORTRIM",`(\\s*)${l[c.GTLT]}\\s*(${l[c.LOOSEPLAIN]}|${l[c.XRANGEPLAIN]})`,!0),e.comparatorTrimReplace="$1$2$3",T("HYPHENRANGE",`^\\s*(${l[c.XRANGEPLAIN]})\\s+-\\s+(${l[c.XRANGEPLAIN]})\\s*$`),T("HYPHENRANGELOOSE",`^\\s*(${l[c.XRANGEPLAINLOOSE]})\\s+-\\s+(${l[c.XRANGEPLAINLOOSE]})\\s*$`),T("STAR","(<|>)?=?\\s*\\*"),T("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$"),T("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")})(be,be.exports);var oe=be.exports;const Rr=Object.freeze({loose:!0}),Ir=Object.freeze({}),yr=i=>i?typeof i!="object"?Rr:i:Ir;var De=yr;const st=/^[0-9]+$/,Ot=(i,e)=>{const t=st.test(i),s=st.test(e);return t&&s&&(i=+i,e=+e),i===e?0:t&&!s?-1:s&&!t?1:iOt(e,i);var Ct={compareIdentifiers:Ot,rcompareIdentifiers:Lr};const fe=we,{MAX_LENGTH:it,MAX_SAFE_INTEGER:de}=Ee,{safeRe:ot,t:at}=oe,Tr=De,{compareIdentifiers:ne}=Ct;let Sr=class Z{constructor(e,t){if(t=Tr(t),e instanceof Z){if(e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease)return e;e=e.version}else if(typeof e!="string")throw new TypeError(`Invalid version. Must be a string. Got type "${typeof e}".`);if(e.length>it)throw new TypeError(`version is longer than ${it} characters`);fe("SemVer",e,t),this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease;const s=e.trim().match(t.loose?ot[at.LOOSE]:ot[at.FULL]);if(!s)throw new TypeError(`Invalid Version: ${e}`);if(this.raw=e,this.major=+s[1],this.minor=+s[2],this.patch=+s[3],this.major>de||this.major<0)throw new TypeError("Invalid major version");if(this.minor>de||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>de||this.patch<0)throw new TypeError("Invalid patch version");s[4]?this.prerelease=s[4].split(".").map(o=>{if(/^[0-9]+$/.test(o)){const u=+o;if(u>=0&&u=0;)typeof this.prerelease[u]=="number"&&(this.prerelease[u]++,u=-2);if(u===-1){if(t===this.prerelease.join(".")&&s===!1)throw new Error("invalid increment argument: identifier already exists");this.prerelease.push(o)}}if(t){let u=[t,o];s===!1&&(u=[t]),ne(this.prerelease[0],t)===0?isNaN(this.prerelease[1])&&(this.prerelease=u):this.prerelease=u}break}default:throw new Error(`invalid increment argument: ${e}`)}return this.raw=this.format(),this.build.length&&(this.raw+=`+${this.build.join(".")}`),this}};var U=Sr;const lt=U,Nr=(i,e,t=!1)=>{if(i instanceof lt)return i;try{return new lt(i,e)}catch(s){if(!t)return null;throw s}};var se=Nr;const Ar=se,Or=(i,e)=>{const t=Ar(i,e);return t?t.version:null};var Cr=Or;const Pr=se,_r=(i,e)=>{const t=Pr(i.trim().replace(/^[=v]+/,""),e);return t?t.version:null};var xr=_r;const ct=U,br=(i,e,t,s,o)=>{typeof t=="string"&&(o=s,s=t,t=void 0);try{return new ct(i instanceof ct?i.version:i,t).inc(e,s,o).version}catch{return null}};var Dr=br;const ht=se,Fr=(i,e)=>{const t=ht(i,null,!0),s=ht(e,null,!0),o=t.compare(s);if(o===0)return null;const u=o>0,f=u?t:s,$=u?s:t,l=!!f.prerelease.length;if(!!$.prerelease.length&&!l)return!$.patch&&!$.minor?"major":f.patch?"patch":f.minor?"minor":"major";const m=l?"pre":"";return t.major!==s.major?m+"major":t.minor!==s.minor?m+"minor":t.patch!==s.patch?m+"patch":"prerelease"};var jr=Fr;const Gr=U,kr=(i,e)=>new Gr(i,e).major;var Mr=kr;const Wr=U,Ur=(i,e)=>new Wr(i,e).minor;var Vr=Ur;const Xr=U,Hr=(i,e)=>new Xr(i,e).patch;var Br=Hr;const qr=se,zr=(i,e)=>{const t=qr(i,e);return t&&t.prerelease.length?t.prerelease:null};var Yr=zr;const ut=U,Kr=(i,e,t)=>new ut(i,t).compare(new ut(e,t));var Y=Kr;const Zr=Y,Jr=(i,e,t)=>Zr(e,i,t);var Qr=Jr;const en=Y,tn=(i,e)=>en(i,e,!0);var rn=tn;const ft=U,nn=(i,e,t)=>{const s=new ft(i,t),o=new ft(e,t);return s.compare(o)||s.compareBuild(o)};var Fe=nn;const sn=Fe,on=(i,e)=>i.sort((t,s)=>sn(t,s,e));var an=on;const ln=Fe,cn=(i,e)=>i.sort((t,s)=>ln(s,t,e));var hn=cn;const un=Y,fn=(i,e,t)=>un(i,e,t)>0;var ge=fn;const dn=Y,pn=(i,e,t)=>dn(i,e,t)<0;var je=pn;const mn=Y,En=(i,e,t)=>mn(i,e,t)===0;var Pt=En;const wn=Y,gn=(i,e,t)=>wn(i,e,t)!==0;var _t=gn;const vn=Y,$n=(i,e,t)=>vn(i,e,t)>=0;var Ge=$n;const Rn=Y,In=(i,e,t)=>Rn(i,e,t)<=0;var ke=In;const yn=Pt,Ln=_t,Tn=ge,Sn=Ge,Nn=je,An=ke,On=(i,e,t,s)=>{switch(e){case"===":return typeof i=="object"&&(i=i.version),typeof t=="object"&&(t=t.version),i===t;case"!==":return typeof i=="object"&&(i=i.version),typeof t=="object"&&(t=t.version),i!==t;case"":case"=":case"==":return yn(i,t,s);case"!=":return Ln(i,t,s);case">":return Tn(i,t,s);case">=":return Sn(i,t,s);case"<":return Nn(i,t,s);case"<=":return An(i,t,s);default:throw new TypeError(`Invalid operator: ${e}`)}};var xt=On;const Cn=U,Pn=se,{safeRe:pe,t:me}=oe,_n=(i,e)=>{if(i instanceof Cn)return i;if(typeof i=="number"&&(i=String(i)),typeof i!="string")return null;e=e||{};let t=null;if(!e.rtl)t=i.match(e.includePrerelease?pe[me.COERCEFULL]:pe[me.COERCE]);else{const l=e.includePrerelease?pe[me.COERCERTLFULL]:pe[me.COERCERTL];let c;for(;(c=l.exec(i))&&(!t||t.index+t[0].length!==i.length);)(!t||c.index+c[0].length!==t.index+t[0].length)&&(t=c),l.lastIndex=c.index+c[1].length+c[2].length;l.lastIndex=-1}if(t===null)return null;const s=t[2],o=t[3]||"0",u=t[4]||"0",f=e.includePrerelease&&t[5]?`-${t[5]}`:"",$=e.includePrerelease&&t[6]?`+${t[6]}`:"";return Pn(`${s}.${o}.${u}${f}${$}`,e)};var xn=_n;class bn{constructor(){this.max=1e3,this.map=new Map}get(e){const t=this.map.get(e);if(t!==void 0)return this.map.delete(e),this.map.set(e,t),t}delete(e){return this.map.delete(e)}set(e,t){if(!this.delete(e)&&t!==void 0){if(this.map.size>=this.max){const o=this.map.keys().next().value;this.delete(o)}this.map.set(e,t)}return this}}var Dn=bn,Oe,dt;function K(){if(dt)return Oe;dt=1;const i=/\s+/g;class e{constructor(p,y){if(y=o(y),p instanceof e)return p.loose===!!y.loose&&p.includePrerelease===!!y.includePrerelease?p:new e(p.raw,y);if(p instanceof u)return this.raw=p.value,this.set=[[p]],this.formatted=void 0,this;if(this.options=y,this.loose=!!y.loose,this.includePrerelease=!!y.includePrerelease,this.raw=p.trim().replace(i," "),this.set=this.raw.split("||").map(w=>this.parseRange(w.trim())).filter(w=>w.length),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${this.raw}`);if(this.set.length>1){const w=this.set[0];if(this.set=this.set.filter(L=>!B(L[0])),this.set.length===0)this.set=[w];else if(this.set.length>1){for(const L of this.set)if(L.length===1&&V(L[0])){this.set=[L];break}}}this.formatted=void 0}get range(){if(this.formatted===void 0){this.formatted="";for(let p=0;p0&&(this.formatted+="||");const y=this.set[p];for(let w=0;w0&&(this.formatted+=" "),this.formatted+=y[w].toString().trim()}}return this.formatted}format(){return this.range}toString(){return this.range}parseRange(p){const w=((this.options.includePrerelease&&I)|(this.options.loose&&T))+":"+p,L=s.get(w);if(L)return L;const g=this.options.loose,N=g?l[c.HYPHENRANGELOOSE]:l[c.HYPHENRANGE];p=p.replace(N,ce(this.options.includePrerelease)),f("hyphen replace",p),p=p.replace(l[c.COMPARATORTRIM],m),f("comparator trim",p),p=p.replace(l[c.TILDETRIM],R),f("tilde trim",p),p=p.replace(l[c.CARETTRIM],_),f("caret trim",p);let O=p.split(" ").map(D=>te(D,this.options)).join(" ").split(/\s+/).map(D=>Le(D,this.options));g&&(O=O.filter(D=>(f("loose invalid filter",D,this.options),!!D.match(l[c.COMPARATORLOOSE])))),f("range list",O);const A=new Map,x=O.map(D=>new u(D,this.options));for(const D of x){if(B(D))return[D];A.set(D.value,D)}A.size>1&&A.has("")&&A.delete("");const G=[...A.values()];return s.set(w,G),G}intersects(p,y){if(!(p instanceof e))throw new TypeError("a Range is required");return this.set.some(w=>q(w,y)&&p.set.some(L=>q(L,y)&&w.every(g=>L.every(N=>g.intersects(N,y)))))}test(p){if(!p)return!1;if(typeof p=="string")try{p=new $(p,this.options)}catch{return!1}for(let y=0;yE.value==="<0.0.0-0",V=E=>E.value==="",q=(E,p)=>{let y=!0;const w=E.slice();let L=w.pop();for(;y&&w.length;)y=w.every(g=>L.intersects(g,p)),L=w.pop();return y},te=(E,p)=>(f("comp",E,p),E=ae(E,p),f("caret",E),E=H(E,p),f("tildes",E),E=le(E,p),f("xrange",E),E=ye(E,p),f("stars",E),E),b=E=>!E||E.toLowerCase()==="x"||E==="*",H=(E,p)=>E.trim().split(/\s+/).map(y=>Re(y,p)).join(" "),Re=(E,p)=>{const y=p.loose?l[c.TILDELOOSE]:l[c.TILDE];return E.replace(y,(w,L,g,N,O)=>{f("tilde",E,w,L,g,N,O);let A;return b(L)?A="":b(g)?A=`>=${L}.0.0 <${+L+1}.0.0-0`:b(N)?A=`>=${L}.${g}.0 <${L}.${+g+1}.0-0`:O?(f("replaceTilde pr",O),A=`>=${L}.${g}.${N}-${O} <${L}.${+g+1}.0-0`):A=`>=${L}.${g}.${N} <${L}.${+g+1}.0-0`,f("tilde return",A),A})},ae=(E,p)=>E.trim().split(/\s+/).map(y=>X(y,p)).join(" "),X=(E,p)=>{f("caret",E,p);const y=p.loose?l[c.CARETLOOSE]:l[c.CARET],w=p.includePrerelease?"-0":"";return E.replace(y,(L,g,N,O,A)=>{f("caret",E,L,g,N,O,A);let x;return b(g)?x="":b(N)?x=`>=${g}.0.0${w} <${+g+1}.0.0-0`:b(O)?g==="0"?x=`>=${g}.${N}.0${w} <${g}.${+N+1}.0-0`:x=`>=${g}.${N}.0${w} <${+g+1}.0.0-0`:A?(f("replaceCaret pr",A),g==="0"?N==="0"?x=`>=${g}.${N}.${O}-${A} <${g}.${N}.${+O+1}-0`:x=`>=${g}.${N}.${O}-${A} <${g}.${+N+1}.0-0`:x=`>=${g}.${N}.${O}-${A} <${+g+1}.0.0-0`):(f("no pr"),g==="0"?N==="0"?x=`>=${g}.${N}.${O}${w} <${g}.${N}.${+O+1}-0`:x=`>=${g}.${N}.${O}${w} <${g}.${+N+1}.0-0`:x=`>=${g}.${N}.${O} <${+g+1}.0.0-0`),f("caret return",x),x})},le=(E,p)=>(f("replaceXRanges",E,p),E.split(/\s+/).map(y=>Ie(y,p)).join(" ")),Ie=(E,p)=>{E=E.trim();const y=p.loose?l[c.XRANGELOOSE]:l[c.XRANGE];return E.replace(y,(w,L,g,N,O,A)=>{f("xRange",E,w,L,g,N,O,A);const x=b(g),G=x||b(N),D=G||b(O),ee=D;return L==="="&&ee&&(L=""),A=p.includePrerelease?"-0":"",x?L===">"||L==="<"?w="<0.0.0-0":w="*":L&&ee?(G&&(N=0),O=0,L===">"?(L=">=",G?(g=+g+1,N=0,O=0):(N=+N+1,O=0)):L==="<="&&(L="<",G?g=+g+1:N=+N+1),L==="<"&&(A="-0"),w=`${L+g}.${N}.${O}${A}`):G?w=`>=${g}.0.0${A} <${+g+1}.0.0-0`:D&&(w=`>=${g}.${N}.0${A} <${g}.${+N+1}.0-0`),f("xRange return",w),w})},ye=(E,p)=>(f("replaceStars",E,p),E.trim().replace(l[c.STAR],"")),Le=(E,p)=>(f("replaceGTE0",E,p),E.trim().replace(l[p.includePrerelease?c.GTE0PRE:c.GTE0],"")),ce=E=>(p,y,w,L,g,N,O,A,x,G,D,ee)=>(b(w)?y="":b(L)?y=`>=${w}.0.0${E?"-0":""}`:b(g)?y=`>=${w}.${L}.0${E?"-0":""}`:N?y=`>=${y}`:y=`>=${y}${E?"-0":""}`,b(x)?A="":b(G)?A=`<${+x+1}.0.0-0`:b(D)?A=`<${x}.${+G+1}.0-0`:ee?A=`<=${x}.${G}.${D}-${ee}`:E?A=`<${x}.${G}.${+D+1}-0`:A=`<=${A}`,`${y} ${A}`.trim()),J=(E,p,y)=>{for(let w=0;w0){const L=E[w].semver;if(L.major===p.major&&L.minor===p.minor&&L.patch===p.patch)return!0}return!1}return!0};return Oe}var Ce,pt;function ve(){if(pt)return Ce;pt=1;const i=Symbol("SemVer ANY");class e{static get ANY(){return i}constructor(m,R){if(R=t(R),m instanceof e){if(m.loose===!!R.loose)return m;m=m.value}m=m.trim().split(/\s+/).join(" "),f("comparator",m,R),this.options=R,this.loose=!!R.loose,this.parse(m),this.semver===i?this.value="":this.value=this.operator+this.semver.version,f("comp",this)}parse(m){const R=this.options.loose?s[o.COMPARATORLOOSE]:s[o.COMPARATOR],_=m.match(R);if(!_)throw new TypeError(`Invalid comparator: ${m}`);this.operator=_[1]!==void 0?_[1]:"",this.operator==="="&&(this.operator=""),_[2]?this.semver=new $(_[2],this.options.loose):this.semver=i}toString(){return this.value}test(m){if(f("Comparator.test",m,this.options.loose),this.semver===i||m===i)return!0;if(typeof m=="string")try{m=new $(m,this.options)}catch{return!1}return u(m,this.operator,this.semver,this.options)}intersects(m,R){if(!(m instanceof e))throw new TypeError("a Comparator is required");return this.operator===""?this.value===""?!0:new l(m.value,R).test(this.value):m.operator===""?m.value===""?!0:new l(this.value,R).test(m.semver):(R=t(R),R.includePrerelease&&(this.value==="<0.0.0-0"||m.value==="<0.0.0-0")||!R.includePrerelease&&(this.value.startsWith("<0.0.0")||m.value.startsWith("<0.0.0"))?!1:!!(this.operator.startsWith(">")&&m.operator.startsWith(">")||this.operator.startsWith("<")&&m.operator.startsWith("<")||this.semver.version===m.semver.version&&this.operator.includes("=")&&m.operator.includes("=")||u(this.semver,"<",m.semver,R)&&this.operator.startsWith(">")&&m.operator.startsWith("<")||u(this.semver,">",m.semver,R)&&this.operator.startsWith("<")&&m.operator.startsWith(">")))}}Ce=e;const t=De,{safeRe:s,t:o}=oe,u=xt,f=we,$=U,l=K();return Ce}const Fn=K(),jn=(i,e,t)=>{try{e=new Fn(e,t)}catch{return!1}return e.test(i)};var $e=jn;const Gn=K(),kn=(i,e)=>new Gn(i,e).set.map(t=>t.map(s=>s.value).join(" ").trim().split(" "));var Mn=kn;const Wn=U,Un=K(),Vn=(i,e,t)=>{let s=null,o=null,u=null;try{u=new Un(e,t)}catch{return null}return i.forEach(f=>{u.test(f)&&(!s||o.compare(f)===-1)&&(s=f,o=new Wn(s,t))}),s};var Xn=Vn;const Hn=U,Bn=K(),qn=(i,e,t)=>{let s=null,o=null,u=null;try{u=new Bn(e,t)}catch{return null}return i.forEach(f=>{u.test(f)&&(!s||o.compare(f)===1)&&(s=f,o=new Hn(s,t))}),s};var zn=qn;const Pe=U,Yn=K(),mt=ge,Kn=(i,e)=>{i=new Yn(i,e);let t=new Pe("0.0.0");if(i.test(t)||(t=new Pe("0.0.0-0"),i.test(t)))return t;t=null;for(let s=0;s{const $=new Pe(f.semver.version);switch(f.operator){case">":$.prerelease.length===0?$.patch++:$.prerelease.push(0),$.raw=$.format();case"":case">=":(!u||mt($,u))&&(u=$);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${f.operator}`)}}),u&&(!t||mt(t,u))&&(t=u)}return t&&i.test(t)?t:null};var Zn=Kn;const Jn=K(),Qn=(i,e)=>{try{return new Jn(i,e).range||"*"}catch{return null}};var es=Qn;const ts=U,bt=ve(),{ANY:rs}=bt,ns=K(),ss=$e,Et=ge,wt=je,is=ke,os=Ge,as=(i,e,t,s)=>{i=new ts(i,s),e=new ns(e,s);let o,u,f,$,l;switch(t){case">":o=Et,u=is,f=wt,$=">",l=">=";break;case"<":o=wt,u=os,f=Et,$="<",l="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(ss(i,e,s))return!1;for(let c=0;c{I.semver===rs&&(I=new bt(">=0.0.0")),R=R||I,_=_||I,o(I.semver,R.semver,s)?R=I:f(I.semver,_.semver,s)&&(_=I)}),R.operator===$||R.operator===l||(!_.operator||_.operator===$)&&u(i,_.semver))return!1;if(_.operator===l&&f(i,_.semver))return!1}return!0};var Me=as;const ls=Me,cs=(i,e,t)=>ls(i,e,">",t);var hs=cs;const us=Me,fs=(i,e,t)=>us(i,e,"<",t);var ds=fs;const gt=K(),ps=(i,e,t)=>(i=new gt(i,t),e=new gt(e,t),i.intersects(e,t));var ms=ps;const Es=$e,ws=Y;var gs=(i,e,t)=>{const s=[];let o=null,u=null;const f=i.sort((m,R)=>ws(m,R,t));for(const m of f)Es(m,e,t)?(u=m,o||(o=m)):(u&&s.push([o,u]),u=null,o=null);o&&s.push([o,null]);const $=[];for(const[m,R]of s)m===R?$.push(m):!R&&m===f[0]?$.push("*"):R?m===f[0]?$.push(`<=${R}`):$.push(`${m} - ${R}`):$.push(`>=${m}`);const l=$.join(" || "),c=typeof e.raw=="string"?e.raw:String(e);return l.length{if(i===e)return!0;i=new vt(i,t),e=new vt(e,t);let s=!1;e:for(const o of i.set){for(const u of e.set){const f=Rs(o,u,t);if(s=s||f!==null,f)continue e}if(s)return!1}return!0},$s=[new We(">=0.0.0-0")],$t=[new We(">=0.0.0")],Rs=(i,e,t)=>{if(i===e)return!0;if(i.length===1&&i[0].semver===_e){if(e.length===1&&e[0].semver===_e)return!0;t.includePrerelease?i=$s:i=$t}if(e.length===1&&e[0].semver===_e){if(t.includePrerelease)return!0;e=$t}const s=new Set;let o,u;for(const I of i)I.operator===">"||I.operator===">="?o=Rt(o,I,t):I.operator==="<"||I.operator==="<="?u=It(u,I,t):s.add(I.semver);if(s.size>1)return null;let f;if(o&&u){if(f=Ue(o.semver,u.semver,t),f>0)return null;if(f===0&&(o.operator!==">="||u.operator!=="<="))return null}for(const I of s){if(o&&!ie(I,String(o),t)||u&&!ie(I,String(u),t))return null;for(const T of e)if(!ie(I,String(T),t))return!1;return!0}let $,l,c,m,R=u&&!t.includePrerelease&&u.semver.prerelease.length?u.semver:!1,_=o&&!t.includePrerelease&&o.semver.prerelease.length?o.semver:!1;R&&R.prerelease.length===1&&u.operator==="<"&&R.prerelease[0]===0&&(R=!1);for(const I of e){if(m=m||I.operator===">"||I.operator===">=",c=c||I.operator==="<"||I.operator==="<=",o){if(_&&I.semver.prerelease&&I.semver.prerelease.length&&I.semver.major===_.major&&I.semver.minor===_.minor&&I.semver.patch===_.patch&&(_=!1),I.operator===">"||I.operator===">="){if($=Rt(o,I,t),$===I&&$!==o)return!1}else if(o.operator===">="&&!ie(o.semver,String(I),t))return!1}if(u){if(R&&I.semver.prerelease&&I.semver.prerelease.length&&I.semver.major===R.major&&I.semver.minor===R.minor&&I.semver.patch===R.patch&&(R=!1),I.operator==="<"||I.operator==="<="){if(l=It(u,I,t),l===I&&l!==u)return!1}else if(u.operator==="<="&&!ie(u.semver,String(I),t))return!1}if(!I.operator&&(u||o)&&f!==0)return!1}return!(o&&c&&!u&&f!==0||u&&m&&!o&&f!==0||_||R)},Rt=(i,e,t)=>{if(!i)return e;const s=Ue(i.semver,e.semver,t);return s>0?i:s<0||e.operator===">"&&i.operator===">="?e:i},It=(i,e,t)=>{if(!i)return e;const s=Ue(i.semver,e.semver,t);return s<0?i:s>0||e.operator==="<"&&i.operator==="<="?e:i};var Is=vs;const xe=oe,yt=Ee,ys=U,Lt=Ct,Ls=se,Ts=Cr,Ss=xr,Ns=Dr,As=jr,Os=Mr,Cs=Vr,Ps=Br,_s=Yr,xs=Y,bs=Qr,Ds=rn,Fs=Fe,js=an,Gs=hn,ks=ge,Ms=je,Ws=Pt,Us=_t,Vs=Ge,Xs=ke,Hs=xt,Bs=xn,qs=ve(),zs=K(),Ys=$e,Ks=Mn,Zs=Xn,Js=zn,Qs=Zn,ei=es,ti=Me,ri=hs,ni=ds,si=ms,ii=gs,oi=Is;var ai={parse:Ls,valid:Ts,clean:Ss,inc:Ns,diff:As,major:Os,minor:Cs,patch:Ps,prerelease:_s,compare:xs,rcompare:bs,compareLoose:Ds,compareBuild:Fs,sort:js,rsort:Gs,gt:ks,lt:Ms,eq:Ws,neq:Us,gte:Vs,lte:Xs,cmp:Hs,coerce:Bs,Comparator:qs,Range:zs,satisfies:Ys,toComparators:Ks,maxSatisfying:Zs,minSatisfying:Js,minVersion:Qs,validRange:ei,outside:ti,gtr:ri,ltr:ni,intersects:si,simplifyRange:ii,subset:oi,SemVer:ys,re:xe.re,src:xe.src,tokens:xe.t,SEMVER_SPEC_VERSION:yt.SEMVER_SPEC_VERSION,RELEASE_TYPES:yt.RELEASE_TYPES,compareIdentifiers:Lt.compareIdentifiers,rcompareIdentifiers:Lt.rcompareIdentifiers};const li=St(ai);var Dt={exports:{}};(function(i){(function(){function e(r,n,h){return r.call.apply(r.bind,arguments)}function t(r,n,h){if(!r)throw Error();if(2=n.f?C():r.fonts.load(Re(n.a),n.h).then(function(F){1<=F.length?S():setTimeout(P,25)},function(){C()})}P()}),d=null,v=new Promise(function(S,C){d=setTimeout(C,n.f)});Promise.race([v,a]).then(function(){d&&(clearTimeout(d),d=null),n.g(n.a)},function(){n.j(n.a)})};function N(r,n,h,a,d,v,S){this.v=r,this.B=n,this.c=h,this.a=a,this.s=S||"BESbswy",this.f={},this.w=d||3e3,this.u=v||null,this.m=this.j=this.h=this.g=null,this.g=new y(this.c,this.s),this.h=new y(this.c,this.s),this.j=new y(this.c,this.s),this.m=new y(this.c,this.s),r=new H(this.a.c+",serif",X(this.a)),r=L(r),this.g.a.style.cssText=r,r=new H(this.a.c+",sans-serif",X(this.a)),r=L(r),this.h.a.style.cssText=r,r=new H("serif",X(this.a)),r=L(r),this.j.a.style.cssText=r,r=new H("sans-serif",X(this.a)),r=L(r),this.m.a.style.cssText=r,w(this.g),w(this.h),w(this.j),w(this.m)}var O={D:"serif",C:"sans-serif"},A=null;function x(){if(A===null){var r=/AppleWebKit\/([0-9]+)(?:\.([0-9]+))/.exec(window.navigator.userAgent);A=!!r&&(536>parseInt(r[1],10)||parseInt(r[1],10)===536&&11>=parseInt(r[2],10))}return A}N.prototype.start=function(){this.f.serif=this.j.a.offsetWidth,this.f["sans-serif"]=this.m.a.offsetWidth,this.A=o(),D(this)};function G(r,n,h){for(var a in O)if(O.hasOwnProperty(a)&&n===r.f[O[a]]&&h===r.f[O[a]])return!0;return!1}function D(r){var n=r.g.a.offsetWidth,h=r.h.a.offsetWidth,a;(a=n===r.f.serif&&h===r.f["sans-serif"])||(a=x()&&G(r,n,h)),a?o()-r.A>=r.w?x()&&G(r,n,h)&&(r.u===null||r.u.hasOwnProperty(r.a.c))?Te(r,r.v):Te(r,r.B):ee(r):Te(r,r.v)}function ee(r){setTimeout(s(function(){D(this)},r),50)}function Te(r,n){setTimeout(s(function(){c(this.g.a),c(this.h.a),c(this.j.a),c(this.m.a),n(this.a)},r),0)}function Se(r,n,h){this.c=r,this.a=n,this.f=0,this.m=this.j=!1,this.s=h}var he=null;Se.prototype.g=function(r){var n=this.a;n.g&&m(n.f,[n.a.c("wf",r.c,X(r).toString(),"active")],[n.a.c("wf",r.c,X(r).toString(),"loading"),n.a.c("wf",r.c,X(r).toString(),"inactive")]),J(n,"fontactive",r),this.m=!0,Ve(this)},Se.prototype.h=function(r){var n=this.a;if(n.g){var h=R(n.f,n.a.c("wf",r.c,X(r).toString(),"active")),a=[],d=[n.a.c("wf",r.c,X(r).toString(),"loading")];h||a.push(n.a.c("wf",r.c,X(r).toString(),"inactive")),m(n.f,a,d)}J(n,"fontinactive",r),Ve(this)};function Ve(r){--r.f==0&&r.j&&(r.m?(r=r.a,r.g&&m(r.f,[r.a.c("wf","active")],[r.a.c("wf","loading"),r.a.c("wf","inactive")]),J(r,"active")):ce(r.a))}function Xe(r){this.j=r,this.a=new E,this.h=0,this.f=this.g=!0}Xe.prototype.load=function(r){this.c=new u(this.j,r.context||this.j),this.g=r.events!==!1,this.f=r.classes!==!1,jt(this,new ye(this.c,r),r)};function Ft(r,n,h,a,d){var v=--r.h==0;(r.f||r.g)&&setTimeout(function(){var S=d||null,C=a||null||{};if(h.length===0&&v)ce(n.a);else{n.f+=h.length,v&&(n.j=v);var P,F=[];for(P=0;Pthis.createElement(o));t.replaceChildren(...s)}createElement(e){if(e.type=="separator"){const t=document.createElement("div");return t.classList.add("separator"),t}if(e.type=="selection"||e.type=="checkbox"||e.type=="dropdown"){const t=document.createElement("div"),s=document.createElement("div"),o=document.createElement("div");let u;if(e.type=="selection"||e.type=="checkbox"){const f=Kt[e.id]??{label:e.id,combos:[],callback:()=>{}};u=document.createElement("div"),u.innerText=Nt.getKeybindString(e.id),u.classList.add("keybind","unselectable"),o.innerText=f.label;let $=f.disabled;typeof $=="function"&&($=$(this.app)),$&&t.classList.add("disabled"),t.addEventListener("click",()=>{if($)return;f.callback(this.app),t.closest(".menu-main").querySelector(".menubar-dropdown").replaceChildren()})}else u=Zt.getIcon("CHEVRON",16),u.style.transform="rotate(-90deg)",o.innerText=typeof e.title=="function"?e.title(this.app):e.title;if(s.appendChild(o),s.appendChild(u),t.appendChild(s),t.classList.add("menu-item"),s.classList.add("menu-item-title","menu-hover"),o.classList.add("title","unselectable"),e.type=="dropdown"){const f=document.createElement("div");t.appendChild(f),f.classList.add("menubar-dropdown"),e.options.map($=>this.createElement($)).forEach($=>f.appendChild($))}if(e.type=="checkbox"){let f=e.checked;typeof f=="function"&&(f=f(this.app)),f&&(o.innerText="✓ "+o.innerText)}return t}if(e.type=="menu"){const t=document.createElement("div"),s=document.createElement("div"),o=document.createElement("div");return t.appendChild(s),s.innerText=e.title,t.appendChild(o),s.classList.add("title","unselectable"),t.classList.add("menu-item","menu-main"),s.classList.add("menu-hover"),o.classList.add("menubar-dropdown","unselectable"),t.onmouseenter=()=>{o.replaceChildren(...e.options.map(u=>this.createElement(u)))},t.onmouseleave=()=>{o.replaceChildren()},t}return document.createElement("div")}}class fi{view;windows=[];app;constructor(e,t){this.app=e,this.view=t}unfocusAll(){for(const e of this.view.querySelectorAll(".focused"))e.classList.remove("focused")}getFocusedWindow(){for(const e of this.windows)if(e.windowElement.classList.contains("focused"))return e;return null}isBlocked(){return!this.windows.every(e=>!e.options.blocking)}openWindow(e){if(e.options.win_id){const t=this.getWindowById(e.options.win_id);if(t){t.focus();return}}e.addToManager(this),this.windows.push(e)}removeWindow(e){this.windows.splice(this.windows.indexOf(e),1)}getWindowById(e){for(const t of this.windows)if(t.options.win_id==e)return t}}class di{options=k;events=Ne;themes=Ae;renderer;ticker;stage;view;chartManager;windowManager;menubarManager;actionHistory;lastWidth=window.innerWidth;lastHeight=window.innerHeight;constructor(){if(er.setDefaultProps({duration:[200,100],theme:"sm"}),window.nw){const e=nw.Window.get();nw.App.on("open",t=>{if(!t||t?.length===0){nw.Window.open(window.location.href);return}let s="";for(const o of t)if(ue(o)==".ssc"){s=o;break}else s==""&&ue(o)==".sm"&&(s=o);s!=""&&(this.chartManager.loadSM(s),this.windowManager.getWindowById("select_sm_initial")?.closeWindow())}),window.addEventListener("keydown",t=>{t.key=="r"&&(t.metaKey||t.ctrlKey)&&(t.preventDefault(),e.reload()),t.code=="KeyW"&&(t.metaKey||t.ctrlKey)&&(t.preventDefault(),e.close()),process.versions["nw-flavor"]=="sdk"&&t.code=="KeyI"&&t.metaKey&&t.altKey&&(t.preventDefault(),e.showDevTools())}),e.on("enter-fullscreen",()=>{k.app.fullscreen=e.isFullscreen}),e.on("resize",(t,s)=>{e.isFullscreen||(k.app.width=t,k.app.height=s)}),e.on("restore",()=>{k.app.fullscreen=e.isFullscreen}),this.checkAppVersion()}if(k.loadOptions(),tr(),Nt.load(this),window.nw){const e=nw.Window.get();k.app.fullscreen?e.enterFullscreen():e.resizeTo(k.app.width,k.app.height)}if(setInterval(()=>k.saveOptions(),1e4),k.general.smoothAnimations&&document.body.classList.add("animated"),this.registerFonts(),this.view=document.getElementById("pixi"),document.oncontextmenu=e=>{e.preventDefault(),this.chartManager.loadedChart&&e.target==this.view&&Je.open(this,e)},this.view.onmousedown=()=>{Je.close()},this.stage=new rr,this.stage.sortableChildren=!0,this.renderer=new nr({backgroundColor:1579292,antialias:k.performance.antialiasing,width:this.view.clientWidth,height:this.view.clientHeight,resolution:k.performance.resolution,autoDensity:!0,view:this.view,powerPreference:"low-power"}),this.ticker=new sr,this.ticker.maxFPS=0,this.ticker.add(()=>{const e=performance.now();this.renderer.render(this.stage),Qe.instance?.addFrameTimeValue(performance.now()-e),performance.memory?.usedJSHeapSize&&Qe.instance?.addMemoryTimeValue(performance.memory.usedJSHeapSize),pr()},ir.LOW),this.ticker.start(),or.init(this.renderer),this.chartManager=new ar(this),this.menubarManager=new ui(this,document.getElementById("menubar")),this.windowManager=new fi(this,document.getElementById("windows")),this.actionHistory=new et(this),this.registerListeners(),!M.hidePoweredByText&&lr()){const e=document.getElementById("embed");e.appendChild(document.createTextNode("Powered by "));const t=document.createElement("a");if(t.href="https://tillvit.github.io/smeditor/",t.innerText="SMEditor",t.target="_blank",e.appendChild(t),M.url!=null){e.appendChild(document.createTextNode(" | Open this chart in a "));const s=document.createElement("a"),o=new URL(location.origin+"/smeditor/app/");s.innerText="new tab",s.target="_blank",o.searchParams.append("url",M.url),M.chartType!==null&&o.searchParams.append("chartType",M.chartType),M.chartIndex!==null&&o.searchParams.append("chartIndex",M.chartIndex+""),s.href=o.toString(),e.appendChild(s)}}tt.initFileSystem().then(()=>{if(M.url){this.chartManager.loadSM(M.url).then(()=>{const e=this.chartManager.loadedSM;if(!e)return;let t;if(M.chartType!=null&&(t=e.charts[M.chartType],t===void 0)){nt.createFormatted(`Couldn't find chart with type ${M.chartType}`,"warn");return}if(t===void 0){const o=Object.keys(e.charts);if(o.length==0||(t=e.charts[o[0]],t.length==0))return}let s;if(M.chartIndex!=null&&(s=t.at(M.chartIndex),s===void 0)){nt.createFormatted(`Couldn't find chart with index ${M.chartIndex}`,"warn");return}s===void 0&&(s=t.at(-1),!s)||this.chartManager.loadChart(s)});return}this.windowManager.openWindow(new cr(this))}),window.onbeforeunload=e=>{if(et.instance.isDirty()&&k.general.warnBeforeExit)return e.preventDefault(),e.returnValue="Are you sure you want to exit?"},window.onunload=()=>{k.saveOptions()},Ae.loadTheme(k.general.theme)}registerFonts(){rt.from("Main",{fontFamily:"Assistant",fontSize:20,fill:"white"},{chars:[["a","z"],["A","Z"],"!@#$%^&*()~{}[]:.-?=,_","0123456789/"," "],resolution:window.devicePixelRatio}),rt.from("Fancy",{fontFamily:"Assistant",fontSize:40,fontWeight:"700",fill:["#dddddd","#ffffff"],fillGradientType:hr.LINEAR_VERTICAL,stroke:11184810,strokeThickness:3},{chars:[["a","z"],["A","Z"],"!@#$%^&*()~{}[]:.-?=,_","0123456789/"," "],resolution:window.devicePixelRatio})}registerListeners(){this.view.addEventListener("mousedown",()=>{this.windowManager.unfocusAll()}),Ne.on("themeChanged",()=>{this.renderer.background.color=new ur(Ae.getCurrentTheme()["editor-bg"]).toNumber()}),window.addEventListener("keydown",function(e){e.code=="Enter"&&e.target instanceof HTMLButtonElement&&e.preventDefault()}),window.addEventListener("dragstart",function(e){e.target instanceof HTMLImageElement&&e.preventDefault()}),setInterval(()=>{const e=window.innerWidth,t=window.innerHeight-document.getElementById("menubar").clientHeight-document.getElementById("playback-options").clientHeight;(this.lastHeight!=t||this.lastWidth!=e)&&(this.lastHeight=t,this.lastWidth=e,this.onResize(e,t),Ne.emit("resize"))},100),window.addEventListener("dragover",e=>{e.preventDefault(),e.dataTransfer.dropEffect="copy"}),window.addEventListener("drop",e=>{if(window.nw){e.stopPropagation(),e.preventDefault();let t="";for(const s of e.dataTransfer.files)if(s.path)if(ue(s.path)==".ssc"){t=s.path;break}else t==""&&ue(s.path)==".sm"&&(t=s.path);t!=""&&(this.chartManager.loadSM(t),this.windowManager.getWindowById("select_sm_initial")?.closeWindow())}else tt.handleDropEvent(e).then(t=>{const s=new fr(this,{title:"Select an sm/ssc file...",accepted_file_types:[".sm",".ssc"],disableClose:!0,callback:o=>{this.chartManager.loadSM(o),this.windowManager.getWindowById("select_sm_initial")?.closeWindow()},onload:()=>{s.getAcceptableFile(t??"").then(o=>s.selectPath(o))}});this.windowManager.openWindow(s)})})}onResize(e,t){this.renderer.screen.width=e,this.renderer.screen.height=t,this.view.width=e*this.renderer.resolution,this.view.height=t*this.renderer.resolution,this.view.style.width=`${e}px`,this.view.style.height=`${t}px`}checkAppVersion(){if(!window.nw)return;const e=nw.require("nw.gui"),t={stable:3,beta:2,alpha:1,nightly:0};let s="win";process.platform=="darwin"?s=nw.require("os").arch()=="arm64"?"mac-arm":"mac-x64":process.platform=="linux"&&(s="linux"),fetch("/smeditor/assets/app/versions.json").then(o=>o.json()).then(o=>{o=o.sort((f,$)=>t[f.type]!=t[$.type]?t[$.type]-t[f.type]:$.date-f.date);const u=o[0];li.lt(e.App.manifest.version,u.version)&&localStorage.getItem("downloadedVersion")!==u.version&&dr.open(u.version,u.downloads[s])})}}document.querySelector("body").innerHTML=`
diff --git a/app/index.html b/app/index.html index ea5e4dc6..16da3ae7 100644 --- a/app/index.html +++ b/app/index.html @@ -24,9 +24,9 @@ SMEditor - + - + diff --git a/assets/index-2f45f929.css b/assets/index-a7b593d7.css similarity index 94% rename from assets/index-2f45f929.css rename to assets/index-a7b593d7.css index 375036c6..6f6da600 100644 --- a/assets/index-2f45f929.css +++ b/assets/index-a7b593d7.css @@ -1 +1 @@ -@font-face{font-family:Assistant;font-style:normal;font-weight:200;font-display:swap;src:url(/smeditor/assets/font/Assistant-Hebrew.woff2) format("woff2");unicode-range:U+0590-05FF,U+200C-2010,U+20AA,U+25CC,U+FB1D-FB4F}@font-face{font-family:Assistant;font-style:normal;font-weight:200;font-display:swap;src:url(/smeditor/assets/font/Assistant-LatinExt.woff2) format("woff2");unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Assistant;font-style:normal;font-weight:200;font-display:swap;src:url(/smeditor/assets/font/Assistant-Latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Assistant;font-style:normal;font-weight:300;font-display:swap;src:url(/smeditor/assets/font/Assistant-Hebrew.woff2) format("woff2");unicode-range:U+0590-05FF,U+200C-2010,U+20AA,U+25CC,U+FB1D-FB4F}@font-face{font-family:Assistant;font-style:normal;font-weight:300;font-display:swap;src:url(/smeditor/assets/font/Assistant-LatinExt.woff2) format("woff2");unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Assistant;font-style:normal;font-weight:300;font-display:swap;src:url(/smeditor/assets/font/Assistant-Latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Assistant;font-style:normal;font-weight:400;font-display:swap;src:url(/smeditor/assets/font/Assistant-Hebrew.woff2) format("woff2");unicode-range:U+0590-05FF,U+200C-2010,U+20AA,U+25CC,U+FB1D-FB4F}@font-face{font-family:Assistant;font-style:normal;font-weight:400;font-display:swap;src:url(/smeditor/assets/font/Assistant-LatinExt.woff2) format("woff2");unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Assistant;font-style:normal;font-weight:400;font-display:swap;src:url(/smeditor/assets/font/Assistant-Latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Assistant;font-style:normal;font-weight:500;font-display:swap;src:url(/smeditor/assets/font/Assistant-Hebrew.woff2) format("woff2");unicode-range:U+0590-05FF,U+200C-2010,U+20AA,U+25CC,U+FB1D-FB4F}@font-face{font-family:Assistant;font-style:normal;font-weight:500;font-display:swap;src:url(/smeditor/assets/font/Assistant-LatinExt.woff2) format("woff2");unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Assistant;font-style:normal;font-weight:500;font-display:swap;src:url(/smeditor/assets/font/Assistant-Latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Assistant;font-style:normal;font-weight:600;font-display:swap;src:url(/smeditor/assets/font/Assistant-Hebrew.woff2) format("woff2");unicode-range:U+0590-05FF,U+200C-2010,U+20AA,U+25CC,U+FB1D-FB4F}@font-face{font-family:Assistant;font-style:normal;font-weight:600;font-display:swap;src:url(/smeditor/assets/font/Assistant-LatinExt.woff2) format("woff2");unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Assistant;font-style:normal;font-weight:600;font-display:swap;src:url(/smeditor/assets/font/Assistant-Latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Assistant;font-style:normal;font-weight:700;font-display:swap;src:url(/smeditor/assets/font/Assistant-Hebrew.woff2) format("woff2");unicode-range:U+0590-05FF,U+200C-2010,U+20AA,U+25CC,U+FB1D-FB4F}@font-face{font-family:Assistant;font-style:normal;font-weight:700;font-display:swap;src:url(/smeditor/assets/font/Assistant-LatinExt.woff2) format("woff2");unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Assistant;font-style:normal;font-weight:700;font-display:swap;src:url(/smeditor/assets/font/Assistant-Latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Assistant;font-style:normal;font-weight:800;font-display:swap;src:url(/smeditor/assets/font/Assistant-Hebrew.woff2) format("woff2");unicode-range:U+0590-05FF,U+200C-2010,U+20AA,U+25CC,U+FB1D-FB4F}@font-face{font-family:Assistant;font-style:normal;font-weight:800;font-display:swap;src:url(/smeditor/assets/font/Assistant-LatinExt.woff2) format("woff2");unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Assistant;font-style:normal;font-weight:800;font-display:swap;src:url(/smeditor/assets/font/Assistant-Latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}*{box-sizing:border-box;margin:0;padding:0;line-height:1.15em}body{--accent-color: rgb(23, 131, 208);accent-color:var(--accent-color);--text-color: white;--text-color-secondary: #888;--text-color-detail: #757a89;--text-color-disabled: #888;--primary-bg: #555;--primary-border: #444;--primary-bg-active: #575757;--primary-bg-hover: #666;--navbar-bg: #3d3d3d;--navbar-bg-inactive: #626262;--window-bg: #3d3d3d;--window-border: #00000000;--secondary-bg: #373737;--secondary-border: #333;--secondary-bg-active: #555;--secondary-bg-hover: #454545;--editable-overlay-hover: rgb(255, 255, 255, .2);--editable-overlay-active: rgb(255, 255, 255, .1);--input-bg: rgba(35, 35, 35, .309);--input-bg-hover: rgba(79, 79, 79, .309);--input-bg-active: rgba(50, 50, 50, .309);--input-border: rgba(0, 0, 0, .3);--widget-bg: rgba(0, 0, 0, .5);--tooltip-bg: rgba(20, 20, 20, .95)}body{overflow:hidden;overscroll-behavior-x:none;overscroll-behavior-y:none;background-color:#18191c;height:100%;width:100%;position:relative;--danger: rgb(172, 54, 54);font-family:Assistant,Helvetica,sans-serif!important;color:var(--text-color)}html{height:100%;width:100%}.browser-unsupported{align-items:center;display:flex;flex-direction:row;height:100%;width:100%}.browser-unsupported-item{text-align:center;width:100%}.browser-unsupported-detail{font-size:12px;color:var(--text-color-detail)}#view-wrapper{display:flex;flex-direction:column;width:100%;caret-color:transparent}.window{border-radius:5px;position:fixed;box-shadow:0 0 5px #0009;border:1px solid var(--window-border);overflow:hidden}.navbar{align-items:center;background:var(--navbar-bg);border-bottom:1px solid var(--primary-border);border-top-left-radius:5px;border-top-right-radius:5px;display:flex;flex-direction:row;font-size:15px;width:100%;padding:3px;gap:3px}.navbar:empty{border-bottom:none}.window:not(.focused)>.navbar{background:var(--navbar-bg-inactive);border-bottom:1px solid transparent}.title:empty{margin:0}.navbar .title{color:var(--text-color);flex:1 1 auto;overflow:hidden;padding-left:5px;text-overflow:ellipsis;white-space:nowrap}.navbar .icon{cursor:pointer;filter:brightness(.8)}.animated .navbar .icon{transition:.1s cubic-bezier(.39,.575,.565,1)}.navbar .icon:hover{filter:none}button{background:var(--input-bg);border:.5px solid rgba(0,0,0,.6);border-radius:5px;padding:4px 7px;display:flex;align-items:center;justify-content:center;transform:translateY(-.5px);box-shadow:0 .5px #000000e6,0 3px 5px -3px #0009;cursor:pointer;column-gap:5px;font-family:inherit;color:inherit}.animated button{transition:.2s cubic-bezier(.175,.885,.32,1.875)}.animated button:hover:enabled{transform:translateY(-1.5px);box-shadow:0 1.5px #000000e6,0 3px 5px -2px #0009}.animated button:active:enabled{transform:translateY(.2px);box-shadow:none}button:hover:enabled{filter:brightness(1.3)}button:active:enabled{filter:brightness(.8)}button.confirm{background:var(--accent-color)}button.delete{background:var(--danger);color:#fff}button:disabled{opacity:.5;transform:none;box-shadow:none;cursor:not-allowed}.view{background-color:var(--window-bg);font-size:15px;overflow:hidden}.animated .view{transition:.3s cubic-bezier(.445,.05,.55,.95)}.window.focused .view{box-shadow:inset 0 2px 3px -1px #0000001a}.view .padding{display:flex;flex-direction:column;padding:20px;height:100%}.open-container{display:grid;grid-template-rows:2fr auto 5fr;height:100%}.open-container .top-container{display:grid;grid-template-columns:1fr 1fr;gap:20px}.open-container .bottom-container{display:flex;flex-direction:column;gap:5px;overflow:hidden}.open-container .title{font-size:17px;text-transform:uppercase}.open-container .container{align-items:center;display:flex;flex-direction:row}.container+.title{border-top:solid 1px #555;margin-top:10px;padding-top:10px}.window.exiting{filter:blur(20px);opacity:0}.animated .exiting{transition:.06s cubic-bezier(.6,.04,.98,.335)}.unselectable{-moz-user-select:none;-webkit-user-drag:none;-webkit-user-select:none;user-select:none}.folder>.children{margin-left:20px}.folder.collapsed>.children{display:none}.item .info{align-items:center;display:flex;flex-direction:row}.item .info .title{background:none;border:none;border-radius:5px;flex:1 1 auto;outline:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:1px 5px}.folder.collapsed>.info>.folder-icon{transform:rotate(-90deg)}.pref-label.collapsed>.folder-icon{transform:rotate(-90deg)}.animated .folder-icon{transition:.2s cubic-bezier(.39,.575,.565,1)}.icon{display:flex;align-items:center}.dir-selector{background-color:var(--secondary-bg);border:1px solid var(--secondary-border);border-radius:5px 5px 0 0;flex:1;height:100%;overflow:auto;padding:5px}.file-options,.theme-tray{display:flex;flex-direction:row;column-gap:5px;background-color:var(--secondary-bg);border:1px solid var(--secondary-border);margin-bottom:5px;padding:4px;border-radius:0 0 5px 5px}.info.disabled>.title{color:var(--text-color-disabled)}.info.disabled>.icon{opacity:.3}.info.selected,.info.selected:hover{background-color:var(--secondary-bg-active)}.info:hover{background-color:var(--secondary-bg-hover)}.options-icon{display:none}.info:hover>.options-icon{display:block;opacity:.3}.info.selected>.options-icon{display:block;opacity:.3}textarea{-moz-user-select:none;-webkit-user-select:none;resize:none;user-select:none;color:inherit;font-family:inherit}.dir-selector:empty:before{color:var(--text-color-disabled);content:"No files! Add a file by dragging a folder/file or using the buttons below.";height:100%;display:flex;justify-content:center;align-items:center}.recent-selector{background-color:var(--secondary-bg);border:1px solid var(--secondary-border);border-radius:5px 5px 0 0;flex:1;height:100%;overflow:auto;overflow-x:hidden;padding:5px;width:360px}.recent-selector:empty:before{color:var(--text-color-disabled);content:"No recent files";height:100%;display:flex;justify-content:center;align-items:center}.recent-item{align-items:center;display:flex;flex-direction:row;padding:1px 5px;text-overflow:ellipsis;white-space:nowrap;gap:8px;font-size:14px}.recent-item.selected,.recent-item.selected:hover{background-color:var(--secondary-bg-active)}.recent-item:hover{background-color:var(--secondary-bg-hover)}.recent-item .recent-path{font-style:italic;color:var(--text-color-secondary);text-overflow:ellipsis;overflow:hidden}.recent-item .recent-name{text-overflow:ellipsis;overflow:hidden;flex:0 0 auto}.menu-options{display:flex;margin-top:5px;flex:0;justify-content:space-between}.menu-left{display:flex;width:50%}.menu-right{display:flex;flex-direction:row-reverse;width:50%}.outlined{box-shadow:inset 0 0 3px 2px #10629ccc}.outlined>.info{box-shadow:inset 0 0 3px 2px #10629ccc}#menubar{display:flex;background-color:var(--primary-bg);border-bottom:1px solid var(--secondary-border)}.menu-item{position:relative;z-index:15}.menu-item>.menu-item-title{padding:4px 0;display:flex;align-items:center}#menubar>.menu-item>.title{padding:4px 10px}#menubar .menubar-dropdown{display:none;background-color:var(--primary-bg);border:1px solid var(--primary-border);position:absolute;border-radius:5px}#menubar .menu-item:not(.disabled):hover>.menubar-dropdown,#menubar .menubar-dropdown:not(.disabled):hover{display:block}.menu-item-title .title{flex:1;margin-left:10px;margin-right:15px;white-space:nowrap}.menu-item-title .keybind{margin-right:10px;color:var(--text-color-secondary);white-space:nowrap}.menu-item-title .icon{margin-right:10px}.menu-item.disabled .menu-item-title .title{color:var(--text-color-disabled)}.menu-item.checked>.menu-item-title .title{font-weight:800}.menu-item:not(.disabled)>.menu-hover:hover{background-color:var(--primary-bg-hover)}.animated .menu-hover{transition:.1s cubic-bezier(.215,.61,.355,1)}.separator{border:.2px solid var(--secondary-bg);margin:4px;height:1px}.check-icon{position:relative;right:16px}.chart-view-scroller{display:grid;grid-template-columns:4fr 6fr;gap:4px;width:100%;height:100%;overflow:auto}.chart-list{height:100%;background-color:var(--secondary-bg);border:1px solid var(--secondary-border);border-radius:5px;overflow:scroll}.chart-info{height:100%;background-color:var(--secondary-bg);border:1px solid var(--secondary-border);border-radius:5px;word-break:break-all;padding:15px;overflow:scroll}.chart-info .label{padding:2px 0}.chart-info:empty:before{color:var(--text-color-disabled);height:100%;display:flex;justify-content:center;align-items:center;content:"Select a chart for more details"}.chart-list-item{display:flex;align-items:center;border:.2px solid var(--secondary-border);cursor:pointer}.animated .chart-list-item{transition:.1s cubic-bezier(.215,.61,.355,1)}.chart-list-item.selected,.chart-list-item:active{background-color:var(--secondary-bg-active)}.chart-list-item:not(.selected):hover{background-color:var(--secondary-bg-hover)}.chart-list-item .Beginner{background-color:#3b6c80;color:#fff}.chart-list-item .Easy{background-color:#308655;color:#fff}.chart-list-item .Medium{background-color:#a08f45;color:#fff}.chart-list-item .Hard{background-color:#8e2921;color:#fff}.chart-list-item .Challenge{background-color:#8b1b9e;color:#fff}.chart-list-item .Edit{background-color:#757575;color:#fff}.chart-list-item>.title{padding:4px;text-align:center;align-content:center;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;min-width:25px}.chart-list-item.extended .chart-list-info{margin:0;opacity:0}.chart-list-info{opacity:1;display:flex;width:100%;align-items:center;margin:0 5px;place-content:space-between;min-width:0;column-gap:5px;flex:1}.animated .chart-list-info{transition:.2s cubic-bezier(.215,.61,.355,1)}.chart-attributes{display:flex;padding:2px 2px 2px 0}.chart-properties{display:grid;grid-template-columns:100px minmax(0,1fr);align-items:center;flex:1;row-gap:2px;margin-bottom:12px}.chart-properties ul .label{font-weight:700}.chart-properties ul>*:last-child{flex:1}div.inlineEdit[contenteditable=true]{min-width:8px;text-align:right;border-radius:3px;padding:0 3px;border:1px solid transparent;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;-ms-overflow-style:none;scrollbar-width:none;caret-color:auto;cursor:text}div.inlineEdit{cursor:default}.animated div.inlineEdit{transition:.2s cubic-bezier(.39,.575,.565,1)}div.inlineEdit[contenteditable=true]:hover{background:var(--editable-overlay-hover)}div.inlineEdit[contenteditable=true]:focus{background:var(--editable-overlay-active);outline:none;overflow:auto;text-overflow:clip}::-webkit-scrollbar{display:none}.chart-credit,.chart-difficulty,.chart-info-grid-label{flex:1;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;padding:1px 0}.chart-step-count{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.chart-info-main{display:flex;font-size:18px;margin-bottom:5px;align-items:center;place-content:space-between}.chart-info-grid-item{display:flex}.chart-info-grid{display:grid;grid-template-columns:1fr 1fr;row-gap:2px;column-gap:15px;margin-top:5px}.timing-data>.padding{display:grid;row-gap:3px;grid-template-columns:auto 170px;align-items:center}.timing-data>.padding>div:not(.label){display:flex;align-items:center;height:100%}.sm-properties .padding{display:flex;flex-direction:column}.sm-properties .property-grid{display:grid;row-gap:3px;grid-template-columns:auto 250px;align-items:center;flex:1}.sm-properties .property-grid>div:not(.label){display:flex;align-items:center}input[type=text],input[type=number]{background:var(--input-bg);border:1px solid var(--input-border);border-radius:3px;padding:0 3px;flex:1;height:100%;user-select:text;caret-color:auto;font-size:13.33px;font-family:inherit;color:inherit}input[type=range]:focus{outline:none}input:disabled{color:var(--text-color-disabled);pointer-events:none}input:focus{outline:1px solid var(--accent-color)}input.short{width:40px}input.right{text-align:right}.chart-view-type-wrapper{display:flex;flex-direction:row;align-items:center;column-gap:10px;margin-bottom:10px}.dropdown{height:100%;position:relative}.dropdown.no-border .dropdown-selected{border:none;background:none;padding:1px}.dropdown.no-border .dropdown-selected:not(:hover):after{opacity:0}.dropdown-selected{background-color:var(--input-bg);border:1px solid var(--input-border);border-radius:3px;width:100%;height:100%;padding:1px 7px;margin-right:3px;display:flex;align-items:center;white-space:nowrap;cursor:pointer}.animated .dropdown-selected{transition:.1s cubic-bezier(.215,.61,.355,1)}.dropdown-selected.disabled{color:var(--text-color-disabled);pointer-events:none;cursor:not-allowed}.dropdown-selected:empty{display:none}.dropdown-selected .icon{margin-left:auto}.dropdown-selected:hover:not(.disabled):not(:active){background:var(--editable-overlay-hover)}.dropdown-selected:active{background:var(--editable-overlay-hover)}.dropdown-items{position:absolute;background:var(--primary-bg);max-height:200px;overflow:auto;z-index:5;border-radius:5px;height:0;box-shadow:0 3px 15px #0009;cursor:pointer;top:100%;border:1px solid var(--input-border)}.dropdown-items.collapsed{border:none}.dropdown-right>.dropdown-items{right:0}.animated .dropdown-items{transition:height .07s cubic-bezier(.215,.61,.355,1)}.dropdown-item{padding:3px 7px;white-space:nowrap}.animated .dropdown-item{opacity:0;transform:translateY(-10px);animation:.2s dropdown-enter cubic-bezier(.175,.885,.32,1.575) forwards;transition-property:height,background;transition-duration:.07s;transition-timing-function:cubic-bezier(.215,.61,.355,1)}.dropdown-item:hover{background:var(--primary-bg-hover)}.dropdown-item:active{background:var(--primary-bg-active)}@keyframes dropdown-enter{0%{transform:translateY(-10px);opacity:0}to{opacity:1;transform:none}}.pref-selector{background-color:var(--secondary-bg);border:1px solid var(--secondary-border);border-radius:0 0 5px 5px;flex:1;height:100%;overflow:auto;padding:5px;font-size:15px}.pref-label{display:flex;flex-direction:row;align-items:center;margin-right:5px;padding:1px 0}.pref-label:hover{background-color:var(--secondary-bg-active)}.flex-row{display:flex;flex-direction:row;align-items:center;justify-content:space-between;height:100%;width:100%}.flex-column-gap{column-gap:5px}.flex-row-gap{row-gap:5px}.flex-grow{flex:1}.flex-static{flex:0}#blocker{width:100%;height:100%;background-color:#00000080;position:absolute;top:0;z-index:10000;caret-color:transparent}.spinner{display:flex;flex-direction:row;height:100%;flex:1}.spinner-input[type=text]{border-top-right-radius:0;border-bottom-right-radius:0;width:100%;height:100%;min-width:0;flex:1}.spinner-input:disabled+.spinner-btns{pointer-events:none}.spinner-btns{display:grid;grid-template-rows:1fr 1fr;border:1px solid var(--input-border);border-left:none;border-top-right-radius:3px;border-bottom-right-radius:3px;flex:0;height:100%;min-height:20px}.spinner-btns button{padding:0 2px;flex:1;border-radius:0;height:100%;width:10px;height:9px;border:none;min-width:auto}.spinner-btns .spinner-up svg{rotate:180deg}.spinner-up{background:linear-gradient(0deg,var(--input-bg-active),var(--input-bg))}.spinner-down{background:linear-gradient(180deg,var(--input-bg-active),var(--input-bg))}.slider{display:flex;flex-direction:row}#waterfall{position:relative;top:0}#waterfall-container{position:absolute;top:9px;display:flex;flex-direction:column;text-align:right;padding:0 10px;width:100%;pointer-events:none;user-select:none;caret-color:transparent}.waterfall-item{pointer-events:none}.animated .waterfall-item{transition:cubic-bezier(.455,.03,.515,.955) .5s;animation:waterfall-enter .3s cubic-bezier(.455,.03,.515,.955)}.waterfall-warn{color:#f6ca39;display:inline-block;margin-right:4px}.waterfall-error{color:#b72323;display:inline-block;margin-right:4px}@keyframes waterfall-enter{0%{opacity:0;transform:translate(200px,10px)}to{opacity:1;transform:none}}.waterfall-exiting{opacity:0;transform:translate(200px)}.confirmation .padding .label{flex:1;text-align:center}.confirmation button{min-width:55px}input[type=range]{width:100px;margin-right:10px}.hide-buttons button{display:none}.hide-buttons:hover button,.hide-buttons div:focus+button{display:flex}#status-widget{position:absolute;bottom:30px;display:flex;flex-direction:column;left:50%;transform:translate(-50%);border-radius:5px;align-items:center;height:96px;overflow:hidden;user-select:none}#status-widget.collapsed{height:48px}.playback-bar,.edit-bar{display:flex;flex-direction:row;height:48px;align-items:center;border-radius:5px;justify-content:flex-start;width:100%}.playback-bar{background-color:var(--widget-bg)}#status-widget:not(.collapsed) .playback-bar{border-bottom:1px rgba(55,55,55,.2) solid;border-radius:0}.animated #status-widget{transition:.3s cubic-bezier(.11,.72,.51,1.14)}#status-widget button{background:none;box-shadow:none;transform:none;border:none;width:48px;height:48px;outline:none;filter:none}#status-widget button img{height:100%}#status-widget button:hover:not(.active){background-color:var(--editable-overlay-hover)}#status-widget button.active{background-color:var(--editable-overlay-active)}#status-widget button:disabled{filter:brightness(.2) saturate(.4)}.animated #status-widget button{transition:.2s cubic-bezier(.39,.575,.565,1)}#status-widget .playback-separator{padding:0 2px;height:48px;display:flex;align-items:center}#status-widget .playback-separator:after{border:.5px rgba(134,134,134,.5) solid;height:30px;content:" "}#status-widget .playback-counter{display:flex;flex-direction:column;align-items:center;width:100px;margin:0 4px}#status-widget .playback-counter .playback-counter-label{font-size:10px;color:var(--text-color-secondary)}#status-widget .playback-counter .playback-counter-label:after{filter:invert() brightness(.4)}#status-widget .playback-counter .playback-counter-main{font-size:18px;line-height:18px;max-width:100px;align-items:baseline}#status-widget .playback-counter .playback-counter-main,#status-widget .playback-counter .playback-counter-main *{padding:0;border:none;text-overflow:clip;overflow:hidden}#status-widget .dropdown-selected{border:none;background:none}#status-widget .edit-fancy-button{font-size:9px;padding:0 4px;width:56px;height:48px;display:flex;flex-direction:column;align-content:center}#status-widget .edit-fancy-button.active{background-color:var(--editable-overlay-active)}#status-widget .edit-fancy-button img{margin-bottom:3px;height:23px}.note-placeholder{border-radius:5px}.edit-choice-container{display:flex;flex-direction:column;height:96px;position:relative;top:0;align-self:flex-start;width:100%;overflow:hidden}.edit-steps-container,.edit-timing-container{display:flex;flex-direction:row;align-items:center;height:48px;width:100%}.animated .edit-choice-container,.animated .edit-steps-container,.animated .edit-timing-container{transition:.2s cubic-bezier(.39,.575,.565,1)}.edit-timing-container{background-color:var(--widget-bg);height:48px}#status-widget .edit-bar .edit-bar-left{background-color:var(--widget-bg);display:flex;flex-direction:row}.note-placeholder-right{flex:1;background-color:var(--widget-bg);height:48px}.popup{user-select:none;position:absolute;transform:translate(-50%);z-index:10}.popup-zoomer{transform-origin:top center;display:flex;flex-direction:column;background-color:var(--window-bg);border-radius:5px;padding:8px;align-items:center;border:1px solid black;animation:1ms popup-enter cubic-bezier(.47,.02,0,.95) forwards;box-shadow:0 0 5px #0009;color:#fff}.popup-zoomer input{color:var(--text-color)}.popup-zoomer.selected{filter:saturate(1.2) brightness(1.4);border:1px solid rgb(14,83,104)}.popup.exiting .popup-zoomer{animation:.01s popup-exit cubic-bezier(.47,.02,0,.95) forwards;pointer-events:none}.animated .popup{transition:.2s cubic-bezier(.47,.02,0,.95)}.animated .popup-zoomer{animation:.1s popup-enter cubic-bezier(.47,.02,0,.95) forwards;transition:.2s cubic-bezier(.47,.02,0,.95)}.animated .popup.exiting .popup-zoomer{animation:.1s popup-exit cubic-bezier(.47,.02,0,.95) forwards;pointer-events:none}.popup-row{display:flex;flex-direction:row;gap:5px;color:#ddd;white-space:nowrap;font-size:14px;align-items:center}.popup-flex{display:flex;flex-direction:column;gap:4px;margin-top:4px}@keyframes popup-enter{0%{transform:scale(.8);opacity:0}to{transform:scale(1);opacity:1}}@keyframes popup-exit{0%{transform:scale(1);opacity:1}to{transform:scale(.8);opacity:0}}.popup .popup-desc{font-size:10px;font-style:italic;text-align:center;color:#757a89}.animated .popup-desc{transition:.2s cubic-bezier(.47,.02,0,.95)}.popup .popup-title{text-align:center}.popup .popup-label{color:#ddd;white-space:nowrap;font-size:14px}.popup .popup-grid input[type=text]{min-width:0;text-align:right}.popup .popup-grid input[type=checkbox]{min-width:0;justify-self:end}.popup .popup-grid{margin-top:4px;display:grid;grid-template-columns:auto auto;column-gap:15px;row-gap:4px;width:100%;justify-content:end;align-items:center}.animated .popup-options{transition:.2s cubic-bezier(.47,.02,0,.95)}.popup-options{margin-top:0;width:100%;justify-content:space-around;transform:scale(0);height:0;display:flex}.popup-options button{min-width:40px}.popup-zoomer.selected .popup-options{margin-top:5px;transform:scale(1);height:24.5px;filter:saturate(.8) brightness(.7)}.draggable-track{writing-mode:vertical-rl;text-align:center;padding:20px 4px;height:200px;display:flex;align-items:center;justify-content:space-around;box-shadow:0 .5px #000000e6,0 3px 5px -3px #0009;cursor:grab}.draggable-track.left .draggable-track-text{transform:rotate(180deg)}.draggable-track .icon{position:absolute;display:none}.draggable-track:hover .icon{display:block;bottom:10px;backface-visibility:hidden;cursor:pointer}.draggable-track:hover .icon:hover{color:var(--danger)}.draggable-track:hover{filter:brightness(1.3) saturate(2.5);transform:translateY(-1.5px);box-shadow:0 1.5px #000000e6,0 3px 5px -2px #0009}.draggable-track:active{cursor:grabbing;filter:brightness(1.1) saturate(2.5);transform:none;box-shadow:0 0 #000000e6,0 3px 5px -2px #0009}@keyframes draggable-exit{0%{width:26px}to{width:0;padding:0;opacity:0}}@keyframes draggable-enter{0%{opacity:0;width:0;padding:0}to{opacity:1;width:26px}}.draggable-track.entering,.draggable-option.entering{animation:draggable-enter 0s cubic-bezier(0,.91,.34,1.05) forwards}.draggable-track.exiting,.draggable-option.exiting{animation:draggable-exit 0s cubic-bezier(0,.91,.34,1.05) forwards}.animated .draggable-track.entering,.animated .draggable-option.entering{animation:draggable-enter .4s cubic-bezier(0,.91,.34,1.05) forwards}.animated .draggable-track.exiting,.animated .draggable-option.exiting{animation:draggable-exit .4s cubic-bezier(0,.91,.34,1.05) forwards}@keyframes leftover-enter{0%{opacity:0;transform:scale(0);padding:0}to{opacity:1;transform:scale(1)}}.leftover-track.entering,.leftover-option.entering{animation:leftover-enter 0s cubic-bezier(0,.91,.34,1.05) forwards}.animated .leftover-track.entering,.animated .leftover-option.entering{animation:leftover-enter .4s cubic-bezier(0,.91,.34,1.05) forwards}#timing-track-order .title{text-align:center;padding:6px}.track-grid{display:flex;flex-direction:row;background-color:var(--secondary-bg);border:1px solid var(--secondary-border);padding:4px;border-radius:3px;width:468.08px;justify-content:center}.track-grid-options{display:flex;flex-direction:row;column-gap:8px;padding:4px 0}.track-selector{flex:1;height:30px;display:flex;flex-direction:row;background-color:var(--secondary-bg);border:1px solid var(--secondary-border);padding:4px;border-radius:3px;gap:4px;overflow-x:auto}.leftover-track{display:flex;justify-content:center;align-items:center;border-radius:3px;padding:4px;gap:3px;box-shadow:0 .5px #000000e6,0 3px 5px -3px #0009;font-size:13px;cursor:grab}.leftover-track img{filter:invert();vertical-align:baseline;width:10px}.leftover-track:hover{filter:brightness(1.3) saturate(2.5);transform:translateY(-1.5px);box-shadow:0 1.5px #000000e6,0 3px 5px -2px #0009}.leftover-track:active{filter:brightness(1.1) saturate(2.5);transform:none;box-shadow:0 0 #000000e6,0 3px 5px -2px #0009;cursor:grabbing}.animated .draggable-track,.animated .draggable-track img,.animated .leftover-track,.animated .track-selector,.animated .draggable-option,.animated .draggable-option img,.animated .leftover-option{transition:.2s cubic-bezier(0,.91,.34,1.05)}.sm-title{font-weight:700;margin-bottom:3px}.sm-container{margin-bottom:15px}#context-menu{display:flex;position:absolute;flex-direction:column;background-color:var(--primary-bg);border:1px solid var(--primary-border);caret-color:transparent;font-size:15px;border-radius:5px;transform-origin:top left;opacity:.95}.animated #context-menu.entering{animation:context-enter .15s cubic-bezier(.13,.61,.07,.98)}#context-menu.exiting{transform:scale(.8);opacity:0}.animated #context-menu.exiting{transition:.1s cubic-bezier(.15,.73,.62,.75)}@keyframes context-enter{0%{opacity:0;transform:scale(.8)}to{opacity:.95;transform:scale(1)}}.menu-item>.menu-item-title{padding:3px 0;display:flex;align-items:center}.menu-item:first-child>.menu-item-title{border-top-left-radius:5px;border-top-right-radius:5px}.menu-item:last-child>.menu-item-title{border-bottom-left-radius:5px;border-bottom-right-radius:5px}#context-menu .menubar-dropdown{background-color:var(--primary-bg);border:1px solid var(--primary-border);position:absolute;left:100%;top:0;border-radius:5px;transform-origin:left;transform:scale(0);opacity:0}@keyframes context-dropdown-enter{0%{transform:scale(.8)}to{transform:scale(1)}}@keyframes context-dropdown-exit{0%{transform:scale(1)}to{transform:scale(.8)}}#context-menu .menu-item:not(.disabled):hover>.menubar-dropdown,#context-menu .menubar-dropdown:not(.disabled):hover{opacity:.95;transform:scale(1)}.animated #context-menu .menu-item:not(.disabled):hover>.menubar-dropdown,.animated #context-menu .menubar-dropdown:not(.disabled):hover{animation:context-dropdown-enter .08s cubic-bezier(.215,.61,.355,1) forwards}.animated #context-menu .menubar-dropdown{animation:context-dropdown-exit .08s cubic-bezier(.215,.61,.355,1);transition:.08s cubic-bezier(.215,.61,.355,1)}.menu-item .menubar-dropdown .menubar-dropdown{left:100%;top:0}.pref-container{display:flex;flex-direction:column;gap:10px;height:100%}.pref-search{display:flex;flex-direction:row;gap:10px}.pref-scrollers{display:flex;gap:20px;flex:1;min-height:0}.pref-section-scroller,.pref-option-scroller{background-color:var(--secondary-bg);border:1px solid var(--secondary-border);overflow:auto;padding:5px;border-radius:5px}.animated .pref-option-scroller{scroll-behavior:smooth}.pref-section{padding:3px 5px;border-radius:2px;cursor:pointer}.pref-section-scroller{width:150px}.pref-option-scroller:empty:before{color:var(--text-color-disabled);content:"No keybinds matched the search term.";height:100%;display:flex;justify-content:center;align-items:center}.animated .pref-section,.animated .pref-keybind-combo,.animated .pref-keybind,.animated .pref-item,.animated .pref-item-tooltip{transition:.1s cubic-bezier(.445,.05,.55,.95)}.pref-section.selected,.pref-section.selected:hover{background-color:var(--secondary-bg-active)}.pref-section:hover,.pref-keybind:hover,.pref-item:hover{background-color:var(--secondary-bg-hover)}.pref-option-scroller{display:flex;flex-direction:column;gap:20px;flex:1;padding:3px 5px}.pref-keybind{padding:3px 5px;border-radius:2px;display:flex;flex-direction:row;align-items:center;width:100%;cursor:pointer}.pref-item{padding:3px 5px;border-radius:2px;display:flex;flex-direction:row;align-items:center;width:100%}.pref-item-input{margin-left:auto;max-width:160px;display:flex}.pref-item>.spinner{max-width:50px}.pref-item .spinner-input{text-align:right}.pref-keybind .icon,.pref-item>.icon{margin-left:5px;display:block;bottom:10px;backface-visibility:hidden;filter:brightness(.5);cursor:pointer}.pref-keybind .icon:hover,.pref-item .icon:hover{filter:brightness(1);color:var(--danger)}.pref-keybind-label{padding:2px 0}.pref-label{padding:10px 0}.pref-keybind-combos{display:flex;flex-direction:row;align-items:center;gap:3px;margin-left:auto}.pref-keybind-combo{background-color:#0003;padding:2px 5px;font-size:13px}.pref-keybind-combo.conflict{background:rgb(187,93,31)}.pref-keybind-combo:hover{background-color:var(--danger)}.pref-group-label{font-size:18px;margin-bottom:6px}.pref-subgroup-label{font-weight:700;margin-bottom:6px}.pref-group{padding:3px 5px}.pref-children .pref-group-label{font-size:17px}.pref-search .dropdown{width:70px}.pref-group-label+.pref-children{margin-left:15px}.pref-children{display:flex;flex-direction:column;gap:5px}.pref-subgroup{margin:8px 0}.detail{font-size:12px;font-style:italic;text-align:center;color:var(--text-color-detail)}.tippy-box[data-theme~=sm]{background-color:var(--tooltip-bg);color:var(--text-color)}.tippy-box[data-theme~=sm][data-placement^=top]>.tippy-arrow:before{border-top-color:var(--tooltip-bg)}.tippy-box[data-theme~=sm][data-placement^=bottom]>.tippy-arrow:before{border-bottom-color:var(--tooltip-bg)}.tippy-box[data-theme~=sm][data-placement^=left]>.tippy-arrow:before{border-left-color:var(--tooltip-bg)}.tippy-box[data-theme~=sm][data-placement^=right]>.tippy-arrow:before{border-right-color:var(--tooltip-bg)}.export-container{display:flex;flex-direction:row;gap:15px;height:100%;overflow:hidden}.export-section-label{font-weight:700;margin-bottom:6px;margin-top:6px}.export-option{display:flex;flex-direction:row;gap:5px;align-items:center;padding:3px 5px}.export-output{flex:1;border-radius:5px;background-color:var(--secondary-bg);border:1px solid var(--secondary-border);padding:5px;white-space:pre-wrap;word-break:break-all;font-family:monospace;font-size:12px;overflow:auto;tab-size:2}.export-output:hover{background-color:var(--secondary-bg-hover)}.animated .export-output{transition:.1s cubic-bezier(.39,.575,.565,1)}.logo{text-align:center;font-size:26px}.icon-container{display:flex;align-items:center;justify-content:space-evenly;background-color:#0b0e1a;padding-top:2px;border-bottom:1px solid;border-image-slice:1;border-image-source:linear-gradient(to right,rgb(11,14,26),rgb(49,57,88),rgb(11,14,26))}.eq-icon{border-radius:3px}.animated .eq-icon{transition:.1s cubic-bezier(.39,.575,.565,1)}.eq-icon.disabled:not(:hover){fill:#888}.eq-icon:not(:hover){background-color:#0000!important}.eq-info-container{border-top:1px solid;border-image-slice:1;border-image-source:linear-gradient(to right,rgb(11,14,26),rgb(49,57,88),rgb(11,14,26));background-color:#0b0e1a;display:flex;flex-direction:row;align-items:center;gap:10px;padding:2px 10px;margin:0;font-size:12px}.eq-reset{margin-left:auto;margin-right:15px;color:#ff3a3acc;padding:0 5px;border-radius:3px}.animated .eq-reset{transition:.2s cubic-bezier(.175,.885,.32,1.875)}.eq-reset:hover{background:rgba(255,58,58,.2)}.eq-info{display:flex;flex-direction:row;align-items:center;gap:5px}.eq-info-label{color:#0087cbcc}.eq-info-value{width:80px}.eq-info-value.inlineEdit[contenteditable=true]{border:none;min-width:80px;text-align:left;border-radius:3px;padding:0;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;-ms-overflow-style:none;scrollbar-width:none;caret-color:auto}.eq-info-value.inlineEdit[contenteditable=true]:hover{background:rgba(0,135,203,.082)}.eq-info-value.inlineEdit[contenteditable=true]:focus{background:rgba(0,135,203,.082)}.eq-container{display:flex;flex-direction:column}input[type=color]{appearance:none;-moz-appearance:none;-webkit-appearance:none;background:none;border:0;cursor:pointer;height:19.5px;padding:0;width:29.5px}::-webkit-color-swatch-wrapper{padding:0}::-webkit-color-swatch{border:1px rgb(105,105,105) solid;border-radius:3px}::-moz-color-swatch,::-moz-focus-inner{border:0}::-moz-focus-inner{padding:0}.update-popup{position:absolute;right:15px;bottom:15px;z-index:10;background-color:#00000080;border-radius:10px;padding:10px;transition:.3s ease-out;user-select:none;cursor:pointer;transform-origin:bottom right}.animated .update-popup{transition:.2s cubic-bezier(.175,.885,.32,1.875)}.animated .update-popup:hover{scale:1.03;background-color:#42424280}.sync-container{display:flex;flex-direction:column;align-items:center;height:100%}.sync-spinner-container{display:flex;flex-direction:row;align-items:center;gap:10px}.sync-bottom-container{display:flex;flex-direction:row;padding:10px 5px;gap:10px;justify-content:space-around;align-items:center;margin-bottom:5px}.sync-tab-container{display:flex;width:370px;flex-direction:row;align-items:center;margin:10px 5px;background:var(--secondary-bg);border:1px solid var(--secondary-border);font-size:13px;border-radius:5px}.sync-tab-option{padding:5px 10px;flex:1;text-align:center;border-radius:5px}.sync-tab-option:hover{background-color:#ffffff1a}.sync-tab-option.active{background-color:#fff3}.animated .sync-tab-option{transition:.1s cubic-bezier(.215,.61,.355,1)}.sync-tab-view{width:370px;flex:1;min-height:0;background:var(--secondary-bg);border:1px solid var(--secondary-border);border-radius:5px;position:relative}.sync-tab-scroller{display:grid;grid-template-columns:repeat(3,1fr);overflow:hidden;position:relative;border-radius:5px}.sync-cover-scroller{position:absolute;top:0;left:0;display:grid;grid-template-columns:repeat(3,1fr);overflow:hidden;width:370px;pointer-events:none}.sync-cover{width:370px;background:rgba(0,0,0,.2);display:flex;align-items:center;justify-content:space-around;opacity:0;pointer-events:none;position:absolute;height:100%}.sync-cover.active{opacity:1;backdrop-filter:blur(2px);pointer-events:all}.animated .sync-tab-scroller,.animated .sync-cover-scroller{scroll-behavior:smooth}.sync-tab-scroller>div:not(.sync-cover){width:370px;padding:10px}.sync-table-label{text-align:center;font-weight:700}.sync-table{width:100%;table-layout:fixed;font-size:13px}.sync-table th{font-weight:500;padding:3px 1px}.sync-table td{padding:1px;text-align:center}.sync-table tr:nth-child(2n){background:rgb(0,0,0,.1)}#embed{position:fixed;bottom:0;margin:10px;font-size:13px;font-weight:200;color:#d7d7d77c;cursor:default;pointer-events:none}#embed a{transition:.2s ease-in-out;color:#d7d7d7ca;pointer-events:all}#embed a:hover{color:#d7d7d7ef}#playback-options{height:40px;left:0;display:flex;flex-direction:row;user-select:none;gap:24px;background-color:var(--secondary-bg);border-bottom:1px solid var(--secondary-border);padding:0 10px;font-size:15px;overflow-x:auto;overflow-y:hidden;width:100%;position:relative;top:0}#playback-options.collapsed{height:0px;border-bottom:0px solid var(--secondary-border)}.playback-options-title{justify-content:center;text-align:center;width:100%}.animated #playback-options,.animated .playback-options-row,.animated .po-thumb-row{transition:.3s cubic-bezier(.61,.04,.38,1.02)}#playback-options .playback-options-row.hidden{opacity:0;width:0px;margin-right:-24px;transform:scale(0)}#playback-options>.playback-options-row{display:flex;flex-direction:row;gap:7px;align-items:center;text-wrap:nowrap;width:var(--w)}.po-spinner{display:flex;flex-direction:row;align-items:center;height:20px}#playback-options .po-spinner-btn{box-shadow:none;transform:none;border:none;outline:none;filter:none;background-color:var(--input-bg);border-radius:5px;width:12px;height:20px;padding:0;text-align:center;justify-content:center}#playback-options .po-spinner .po-spinner-btn:first-of-type{border-top-right-radius:0;border-bottom-right-radius:0;border:1px var(--input-border) solid}#playback-options .po-spinner .po-spinner-btn:last-of-type{border-top-left-radius:0;border-bottom-left-radius:0;border:1px var(--input-border) solid}#playback-options .po-spinner-btn:disabled{filter:brightness(.5)}#playback-options .po-spinner-btn:hover:not(:disabled){background-color:var(--input-bg-hover)}#playback-options .po-spinner-btn:active:not(:disabled){background-color:var(--input-bg-active)}#playback-options .po-spinner-input{background-color:var(--input-bg);border-left:none;border-right:none;border-top:1px solid var(--input-border);border-bottom:1px solid var(--input-border);border-radius:0;width:42px;height:20px;padding:3px 4px;text-align:center;caret-color:auto}#playback-options .po-spinner-input:hover{background-color:var(--input-bg-hover)}#playback-options .po-spinner-input:disabled{filter:brightness(.6)}.animated .po-spinner-btn,.animated .po-spinner-input{transition:.08s ease-in-out}#playback-options .po-separator{margin:0 -6px;height:100%;display:flex;align-items:center}#playback-options .po-separator:after{border:.5px rgba(134,134,134,.5) solid;height:20px;content:" "}.po-toggle{background-color:var(--input-bg);border:1px solid var(--input-border);display:flex;flex-direction:row;gap:5px;font-size:14px;height:20px;border-radius:5px;align-items:center;position:relative}.po-toggle-item{padding:3px 6px}.po-toggle>*:not(.active):not(.po-toggle-highlight){opacity:.2}.po-toggle>*:not(.active):hover{opacity:.8}.po-toggle-highlight{position:absolute;background-color:var(--editable-overlay-active);border-radius:5px;pointer-events:none}.ico-checkbox{padding:1px;border-radius:2px}.ico-checkbox:hover{background:var(--editable-overlay-hover)}.ico-checkbox:active{background:var(--editable-overlay-active)}.animated .po-toggle>*,.animated .ico-checkbox{transition:.15s ease-in-out}.animated .po-toggle-highlight{transition:.15s cubic-bezier(.61,.04,.38,1.02)}.po-collapse-container{position:relative}#view-wrapper .po-collapse{margin-left:auto;margin-right:10px;height:25px;width:25px;padding:0;background:none;box-shadow:none;transform:none;border:none;outline:none;filter:none;text-align:center;justify-content:center;display:flex;align-items:center;transform:scaleY(1);user-select:none}#view-wrapper .po-collapse.toggled{transform:scaleY(-1)}.animated .po-collapse{transition:.15s cubic-bezier(.61,.04,.38,1.02)}.noteskin-grid{display:grid;grid-template-columns:repeat(4,1fr);width:100%;gap:15px;padding:10px;background:var(--secondary-bg);border:1px solid var(--secondary-border);margin-top:10px;border-radius:5px;overflow:auto;height:330px}.noteskin-cell{height:250px;position:relative;border-radius:5px;color:#fff}.noteskin-cell img{min-width:0;width:100%;height:100%;aspect-ratio:9 / 21;object-fit:cover;border-radius:5px}.noteskin-label{position:absolute;bottom:0;padding:100px 10px 10px;width:100%;background:linear-gradient(to top,rgba(0,0,0,.7),rgba(0,0,0,.7) 30%,rgba(0,0,0,0) 100%);border-radius:5px}.noteskin-title{font-size:16px;font-weight:700}.noteskin-subtitle{font-style:italic;font-size:12px}.noteskin-cell:hover{transform:scale(1.02);box-shadow:0 0 5px #0009}.noteskin-cell:hover img{filter:brightness(1.1)}.noteskin-cell:active{transform:scale(.98)}.noteskin-cell.selected img{box-shadow:0 0 5px 2px var(--accent-color);filter:brightness(1.2)}.animated .noteskin-cell,.animated .noteskin-cell img{transition:.2s cubic-bezier(.26,.64,.47,1.6)}.theme-color-grid{display:flex;flex-direction:column;gap:5px;font-size:12px;background-color:var(--secondary-bg);border:1px solid var(--secondary-border);padding:15px;overflow:auto}.theme-group-label{font-size:16px}.theme-picker-grid{display:grid;grid-template-columns:repeat(4,1fr);color:var(--text-color-secondary);gap:15px;font-size:15px;text-align:center;padding:5px;overflow:auto}.theme-color-cell{display:flex;flex-direction:column;align-items:center;border-radius:5px}.theme-color-cell.linked{background-color:var(--editable-overlay-hover)}.animated .theme-color-cell{transition:.3s cubic-bezier(.39,.575,.565,1)}.theme-color-detail{color:var(--text-color-detail);font-size:10px}.theme-color-cell input[type=range]{width:50px;margin-right:0}.color-picker{width:24px;height:24px;border-radius:3px;border:1px solid rgb(111,111,111);overflow:hidden}.color-picker:hover:not(:active){transform:scale(1.03);box-shadow:0 0 4px #0009}.color-picker:active{transform:scale(.93);box-shadow:0 0 4px #0009}.animated .color-picker{transition:.1s cubic-bezier(.39,.575,.565,1)}.color-picker-popup{position:absolute;background:#dcdcdc;padding:15px;display:flex;flex-direction:row;gap:15px;z-index:20;border-radius:5px;transform-origin:top center;border:1px solid black;animation:1ms popup-enter cubic-bezier(.47,.02,0,.95) forwards;box-shadow:0 0 5px #0009}.animated .color-picker-popup{animation:.1s popup-enter cubic-bezier(.47,.02,0,.95) forwards}.animated .color-picker-popup.exiting{animation:.1s popup-exit cubic-bezier(.47,.02,0,.95) forwards;pointer-events:none}.color-picker-popup .color-matrix{position:relative;width:200px;height:200px}.color-picker-popup .color-matrix-x{position:absolute;top:0;left:0;width:200px;height:200px;background:linear-gradient(to right,#fff 0%,rgba(255,255,255,0) 100%)}.color-picker-popup .color-matrix-y{position:absolute;top:0;left:0;width:200px;height:200px;background:linear-gradient(to bottom,transparent 0%,#000 100%)}.color-picker-popup .color-matrix-dot{position:absolute;width:15px;height:15px;border:2px solid rgb(0,0,0);border-radius:15px;transform:translate(-50%,-50%)}.color-picker-popup .color-slider{width:200px;height:20px;position:relative;border-radius:5px}.color-picker-transparent{background-image:linear-gradient(45deg,#ccc 25%,transparent 25%),linear-gradient(-45deg,#ccc 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#ccc 75%),linear-gradient(-45deg,transparent 75%,#ccc 75%);background-position:0 0,0 4px,4px -4px,-4px 0px;background-size:8px 8px}.color-picker-popup .color-slider-thumb{position:absolute;width:5px;height:24px;border:1px solid white;border-radius:15px;transform:translate(-50%,-2px);z-index:21}.color-picker-popup .color-slider-thumb:after{content:" ";position:absolute;width:5px;height:24px;border:1px solid black;border-radius:15px;transform:translate(-2px,-2px);z-index:21}.color-picker-popup .color-picker-area{display:flex;flex-direction:column;gap:5px}.color-picker-popup .color-format{background-color:#cbced2;padding:10px;border-radius:5px;display:flex;gap:5px}.color-picker-popup .color-format-label{color:#000;width:45px;pointer-events:none;user-select:none}.color-picker-popup .color-format-inputs{width:170px;display:flex;gap:5px}.color-picker-popup .color-format-inputs input{min-width:none;width:100%;color:#000;background-color:#ebebeb;border:1px solid rgba(0,0,0,.3);text-align:center}.color-picker-popup .color-picker-preview{flex:1;width:100%;display:flex;border:1px solid rgba(0,0,0,.2);border-radius:5px}.color-picker-popup .color-picker-transparent{flex:1}.theme-grid{display:grid;grid-template-columns:repeat(4,1fr);width:100%;gap:5px;padding:10px;background:var(--secondary-bg);border:1px solid var(--secondary-border);margin-top:10px;overflow:auto;flex:1;border-radius:5px 5px 0 0}.theme-cell{padding:15px;display:flex;align-items:center;flex-direction:column;gap:5px;border-radius:5px;height:fit-content;min-width:0}.theme-title{text-align:center!important;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;width:100%}.theme-cell:hover:not(.selected){background:var(--secondary-bg-hover)}.theme-cell.selected{background:var(--secondary-bg-active)}.animated .theme-cell{transition:.2s cubic-bezier(.47,.02,0,.95)}.theme-preview-grid{display:grid;grid-template-columns:repeat(3,1fr);width:66px;height:66px;border:1px solid rgb(0,0,0,.5);border-radius:5px;overflow:hidden} +@font-face{font-family:Assistant;font-style:normal;font-weight:200;font-display:swap;src:url(/smeditor/assets/font/Assistant-Hebrew.woff2) format("woff2");unicode-range:U+0590-05FF,U+200C-2010,U+20AA,U+25CC,U+FB1D-FB4F}@font-face{font-family:Assistant;font-style:normal;font-weight:200;font-display:swap;src:url(/smeditor/assets/font/Assistant-LatinExt.woff2) format("woff2");unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Assistant;font-style:normal;font-weight:200;font-display:swap;src:url(/smeditor/assets/font/Assistant-Latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Assistant;font-style:normal;font-weight:300;font-display:swap;src:url(/smeditor/assets/font/Assistant-Hebrew.woff2) format("woff2");unicode-range:U+0590-05FF,U+200C-2010,U+20AA,U+25CC,U+FB1D-FB4F}@font-face{font-family:Assistant;font-style:normal;font-weight:300;font-display:swap;src:url(/smeditor/assets/font/Assistant-LatinExt.woff2) format("woff2");unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Assistant;font-style:normal;font-weight:300;font-display:swap;src:url(/smeditor/assets/font/Assistant-Latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Assistant;font-style:normal;font-weight:400;font-display:swap;src:url(/smeditor/assets/font/Assistant-Hebrew.woff2) format("woff2");unicode-range:U+0590-05FF,U+200C-2010,U+20AA,U+25CC,U+FB1D-FB4F}@font-face{font-family:Assistant;font-style:normal;font-weight:400;font-display:swap;src:url(/smeditor/assets/font/Assistant-LatinExt.woff2) format("woff2");unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Assistant;font-style:normal;font-weight:400;font-display:swap;src:url(/smeditor/assets/font/Assistant-Latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Assistant;font-style:normal;font-weight:500;font-display:swap;src:url(/smeditor/assets/font/Assistant-Hebrew.woff2) format("woff2");unicode-range:U+0590-05FF,U+200C-2010,U+20AA,U+25CC,U+FB1D-FB4F}@font-face{font-family:Assistant;font-style:normal;font-weight:500;font-display:swap;src:url(/smeditor/assets/font/Assistant-LatinExt.woff2) format("woff2");unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Assistant;font-style:normal;font-weight:500;font-display:swap;src:url(/smeditor/assets/font/Assistant-Latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Assistant;font-style:normal;font-weight:600;font-display:swap;src:url(/smeditor/assets/font/Assistant-Hebrew.woff2) format("woff2");unicode-range:U+0590-05FF,U+200C-2010,U+20AA,U+25CC,U+FB1D-FB4F}@font-face{font-family:Assistant;font-style:normal;font-weight:600;font-display:swap;src:url(/smeditor/assets/font/Assistant-LatinExt.woff2) format("woff2");unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Assistant;font-style:normal;font-weight:600;font-display:swap;src:url(/smeditor/assets/font/Assistant-Latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Assistant;font-style:normal;font-weight:700;font-display:swap;src:url(/smeditor/assets/font/Assistant-Hebrew.woff2) format("woff2");unicode-range:U+0590-05FF,U+200C-2010,U+20AA,U+25CC,U+FB1D-FB4F}@font-face{font-family:Assistant;font-style:normal;font-weight:700;font-display:swap;src:url(/smeditor/assets/font/Assistant-LatinExt.woff2) format("woff2");unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Assistant;font-style:normal;font-weight:700;font-display:swap;src:url(/smeditor/assets/font/Assistant-Latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Assistant;font-style:normal;font-weight:800;font-display:swap;src:url(/smeditor/assets/font/Assistant-Hebrew.woff2) format("woff2");unicode-range:U+0590-05FF,U+200C-2010,U+20AA,U+25CC,U+FB1D-FB4F}@font-face{font-family:Assistant;font-style:normal;font-weight:800;font-display:swap;src:url(/smeditor/assets/font/Assistant-LatinExt.woff2) format("woff2");unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Assistant;font-style:normal;font-weight:800;font-display:swap;src:url(/smeditor/assets/font/Assistant-Latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}*{box-sizing:border-box;margin:0;padding:0;line-height:1.15em}body{--accent-color: rgb(23, 131, 208);accent-color:var(--accent-color);--text-color: white;--text-color-secondary: #888;--text-color-detail: #757a89;--text-color-disabled: #888;--primary-bg: #555;--primary-border: #444;--primary-bg-active: #575757;--primary-bg-hover: #666;--navbar-bg: #3d3d3d;--navbar-bg-inactive: #626262;--window-bg: #3d3d3d;--window-border: #00000000;--secondary-bg: #373737;--secondary-border: #333;--secondary-bg-active: #555;--secondary-bg-hover: #454545;--editable-overlay-hover: rgb(255, 255, 255, .2);--editable-overlay-active: rgb(255, 255, 255, .1);--input-bg: rgba(35, 35, 35, .309);--input-bg-hover: rgba(79, 79, 79, .309);--input-bg-active: rgba(50, 50, 50, .309);--input-border: rgba(0, 0, 0, .3);--widget-bg: rgba(0, 0, 0, .5);--tooltip-bg: rgba(20, 20, 20, .95)}body{overflow:hidden;overscroll-behavior-x:none;overscroll-behavior-y:none;background-color:#18191c;height:100%;width:100%;position:relative;--danger: rgb(172, 54, 54);font-family:Assistant,Helvetica,sans-serif!important;color:var(--text-color)}html{height:100%;width:100%}.browser-unsupported{align-items:center;display:flex;flex-direction:row;height:100%;width:100%}.browser-unsupported-item{text-align:center;width:100%}.browser-unsupported-detail{font-size:12px;color:var(--text-color-detail)}#view-wrapper{display:flex;flex-direction:column;width:100%;caret-color:transparent}.window{border-radius:5px;position:fixed;box-shadow:0 0 5px #0009;border:1px solid var(--window-border);overflow:hidden}.navbar{align-items:center;background:var(--navbar-bg);border-bottom:1px solid var(--primary-border);border-top-left-radius:5px;border-top-right-radius:5px;display:flex;flex-direction:row;font-size:15px;width:100%;padding:3px;gap:3px}.navbar:empty{border-bottom:none}.window:not(.focused)>.navbar{background:var(--navbar-bg-inactive);border-bottom:1px solid transparent}.title:empty{margin:0}.navbar .title{color:var(--text-color);flex:1 1 auto;overflow:hidden;padding-left:5px;text-overflow:ellipsis;white-space:nowrap}.navbar .icon{cursor:pointer;filter:brightness(.8)}.animated .navbar .icon{transition:.1s cubic-bezier(.39,.575,.565,1)}.navbar .icon:hover{filter:none}button{background:var(--input-bg);border:.5px solid rgba(0,0,0,.6);border-radius:5px;padding:4px 7px;display:flex;align-items:center;justify-content:center;transform:translateY(-.5px);box-shadow:0 .5px #000000e6,0 3px 5px -3px #0009;cursor:pointer;column-gap:5px;font-family:inherit;color:inherit}.animated button{transition:.2s cubic-bezier(.175,.885,.32,1.875)}.animated button:hover:enabled{transform:translateY(-1.5px);box-shadow:0 1.5px #000000e6,0 3px 5px -2px #0009}.animated button:active:enabled{transform:translateY(.2px);box-shadow:none}button:hover:enabled{filter:brightness(1.3)}button:active:enabled{filter:brightness(.8)}button.confirm{background:var(--accent-color)}button.delete{background:var(--danger);color:#fff}button:disabled{opacity:.5;transform:none;box-shadow:none;cursor:not-allowed}.view{background-color:var(--window-bg);font-size:15px;overflow:hidden}.animated .view{transition:.3s cubic-bezier(.445,.05,.55,.95)}.window.focused .view{box-shadow:inset 0 2px 3px -1px #0000001a}.view .padding{display:flex;flex-direction:column;padding:20px;height:100%}.open-container{display:grid;grid-template-rows:2fr auto 5fr;height:100%}.open-container .top-container{display:grid;grid-template-columns:1fr 1fr;gap:20px}.open-container .bottom-container{display:flex;flex-direction:column;gap:5px;overflow:hidden}.open-container .title{font-size:17px;text-transform:uppercase}.open-container .container{align-items:center;display:flex;flex-direction:row}.container+.title{border-top:solid 1px #555;margin-top:10px;padding-top:10px}.window.exiting{filter:blur(20px);opacity:0}.animated .exiting{transition:.06s cubic-bezier(.6,.04,.98,.335)}.unselectable{-moz-user-select:none;-webkit-user-drag:none;-webkit-user-select:none;user-select:none}.folder>.children{margin-left:20px}.folder.collapsed>.children{display:none}.item .info{align-items:center;display:flex;flex-direction:row}.item .info .title{background:none;border:none;border-radius:5px;flex:1 1 auto;outline:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:1px 5px}.folder.collapsed>.info>.folder-icon{transform:rotate(-90deg)}.pref-label.collapsed>.folder-icon{transform:rotate(-90deg)}.animated .folder-icon{transition:.2s cubic-bezier(.39,.575,.565,1)}.icon{display:flex;align-items:center}.dir-selector{background-color:var(--secondary-bg);border:1px solid var(--secondary-border);border-radius:5px 5px 0 0;flex:1;height:100%;overflow:auto;padding:5px}.file-options,.theme-tray{display:flex;flex-direction:row;column-gap:5px;background-color:var(--secondary-bg);border:1px solid var(--secondary-border);margin-bottom:5px;padding:4px;border-radius:0 0 5px 5px}.info.disabled>.title{color:var(--text-color-disabled)}.info.disabled>.icon{opacity:.3}.info.selected,.info.selected:hover{background-color:var(--secondary-bg-active)}.info:hover{background-color:var(--secondary-bg-hover)}.options-icon{display:none}.info:hover>.options-icon{display:block;opacity:.3}.info.selected>.options-icon{display:block;opacity:.3}textarea{-moz-user-select:none;-webkit-user-select:none;resize:none;user-select:none;color:inherit;font-family:inherit}.dir-selector:empty:before{color:var(--text-color-disabled);content:"No files! Add a file by dragging a folder/file or using the buttons below.";height:100%;display:flex;justify-content:center;align-items:center}.recent-selector{background-color:var(--secondary-bg);border:1px solid var(--secondary-border);border-radius:5px 5px 0 0;flex:1;height:100%;overflow:auto;overflow-x:hidden;padding:5px;width:360px}.recent-selector:empty:before{color:var(--text-color-disabled);content:"No recent files";height:100%;display:flex;justify-content:center;align-items:center}.recent-item{align-items:center;display:flex;flex-direction:row;padding:1px 5px;text-overflow:ellipsis;white-space:nowrap;gap:8px;font-size:14px}.recent-item.selected,.recent-item.selected:hover{background-color:var(--secondary-bg-active)}.recent-item:hover{background-color:var(--secondary-bg-hover)}.recent-item .recent-path{font-style:italic;color:var(--text-color-secondary);text-overflow:ellipsis;overflow:hidden}.recent-item .recent-name{text-overflow:ellipsis;overflow:hidden;flex:0 0 auto}.menu-options{display:flex;margin-top:5px;flex:0;justify-content:space-between}.menu-left{display:flex;width:50%}.menu-right{display:flex;flex-direction:row-reverse;width:50%}.outlined{box-shadow:inset 0 0 3px 2px #10629ccc}.outlined>.info{box-shadow:inset 0 0 3px 2px #10629ccc}#menubar{display:flex;background-color:var(--primary-bg);border-bottom:1px solid var(--secondary-border)}.menu-item{position:relative;z-index:15}.menu-item>.menu-item-title{padding:4px 0;display:flex;align-items:center}#menubar>.menu-item>.title{padding:4px 10px}#menubar .menubar-dropdown{display:none;background-color:var(--primary-bg);border:1px solid var(--primary-border);position:absolute;border-radius:5px}#menubar .menu-item:not(.disabled):hover>.menubar-dropdown,#menubar .menubar-dropdown:not(.disabled):hover{display:block}.menu-item-title .title{flex:1;margin-left:10px;margin-right:15px;white-space:nowrap}.menu-item-title .keybind{margin-right:10px;color:var(--text-color-secondary);white-space:nowrap}.menu-item-title .icon{margin-right:10px}.menu-item.disabled .menu-item-title .title{color:var(--text-color-disabled)}.menu-item.checked>.menu-item-title .title{font-weight:800}.menu-item:not(.disabled)>.menu-hover:hover{background-color:var(--primary-bg-hover)}.animated .menu-hover{transition:.1s cubic-bezier(.215,.61,.355,1)}.separator{border:.2px solid var(--secondary-bg);margin:4px;height:1px}.check-icon{position:relative;right:16px}.chart-view-scroller{display:grid;grid-template-columns:4fr 6fr;gap:4px;width:100%;height:100%;overflow:auto}.chart-list{height:100%;background-color:var(--secondary-bg);border:1px solid var(--secondary-border);border-radius:5px;overflow:scroll}.chart-info{height:100%;background-color:var(--secondary-bg);border:1px solid var(--secondary-border);border-radius:5px;word-break:break-all;padding:15px;overflow:scroll}.chart-info .label{padding:2px 0}.chart-info:empty:before{color:var(--text-color-disabled);height:100%;display:flex;justify-content:center;align-items:center;content:"Select a chart for more details"}.chart-list-item{display:flex;align-items:center;border:.2px solid var(--secondary-border);cursor:pointer}.animated .chart-list-item{transition:.1s cubic-bezier(.215,.61,.355,1)}.chart-list-item.selected,.chart-list-item:active{background-color:var(--secondary-bg-active)}.chart-list-item:not(.selected):hover{background-color:var(--secondary-bg-hover)}.chart-list-item .Beginner{background-color:#3b6c80;color:#fff}.chart-list-item .Easy{background-color:#308655;color:#fff}.chart-list-item .Medium{background-color:#a08f45;color:#fff}.chart-list-item .Hard{background-color:#8e2921;color:#fff}.chart-list-item .Challenge{background-color:#8b1b9e;color:#fff}.chart-list-item .Edit{background-color:#757575;color:#fff}.chart-list-item>.title{padding:4px;text-align:center;align-content:center;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;min-width:25px}.chart-list-item.extended .chart-list-info{margin:0;opacity:0}.chart-list-info{opacity:1;display:flex;width:100%;align-items:center;margin:0 5px;place-content:space-between;min-width:0;column-gap:5px;flex:1}.animated .chart-list-info{transition:.2s cubic-bezier(.215,.61,.355,1)}.chart-attributes{display:flex;padding:2px 2px 2px 0}.chart-properties{display:grid;grid-template-columns:100px minmax(0,1fr);align-items:center;flex:1;row-gap:2px;margin-bottom:12px}.chart-properties ul .label{font-weight:700}.chart-properties ul>*:last-child{flex:1}div.inlineEdit[contenteditable=true]{min-width:8px;text-align:right;border-radius:3px;padding:0 3px;border:1px solid transparent;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;-ms-overflow-style:none;scrollbar-width:none;caret-color:auto;cursor:text}div.inlineEdit{cursor:default}.animated div.inlineEdit{transition:.2s cubic-bezier(.39,.575,.565,1)}div.inlineEdit[contenteditable=true]:hover{background:var(--editable-overlay-hover)}div.inlineEdit[contenteditable=true]:focus{background:var(--editable-overlay-active);outline:none;overflow:auto;text-overflow:clip}::-webkit-scrollbar{display:none}.chart-credit,.chart-difficulty,.chart-info-grid-label{flex:1;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;padding:1px 0}.chart-step-count{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.chart-info-main{display:flex;font-size:18px;margin-bottom:5px;align-items:center;place-content:space-between}.chart-info-grid-item{display:flex}.chart-info-grid{display:grid;grid-template-columns:1fr 1fr;row-gap:2px;column-gap:15px;margin-top:5px}.timing-data>.padding{display:grid;row-gap:3px;grid-template-columns:auto 170px;align-items:center}.timing-data>.padding>div:not(.label){display:flex;align-items:center;height:100%}.sm-properties .padding{display:flex;flex-direction:column}.sm-properties .property-grid{display:grid;row-gap:3px;grid-template-columns:auto 250px;align-items:center;flex:1}.sm-properties .property-grid>div:not(.label){display:flex;align-items:center}input[type=text],input[type=number]{background:var(--input-bg);border:1px solid var(--input-border);border-radius:3px;padding:0 3px;flex:1;height:100%;user-select:text;caret-color:auto;font-size:13.33px;font-family:inherit;color:inherit}input[type=range]:focus{outline:none}input:disabled{color:var(--text-color-disabled);pointer-events:none}input:focus{outline:1px solid var(--accent-color)}input.short{width:40px}input.right{text-align:right}.chart-view-type-wrapper{display:flex;flex-direction:row;align-items:center;column-gap:10px;margin-bottom:10px}.dropdown{height:100%;position:relative}.dropdown.no-border .dropdown-selected{border:none;background:none;padding:1px}.dropdown.no-border .dropdown-selected:not(:hover):after{opacity:0}.dropdown-selected{background-color:var(--input-bg);border:1px solid var(--input-border);border-radius:3px;width:100%;height:100%;padding:1px 7px;margin-right:3px;display:flex;align-items:center;white-space:nowrap;cursor:pointer}.animated .dropdown-selected{transition:.1s cubic-bezier(.215,.61,.355,1)}.dropdown-selected.disabled{color:var(--text-color-disabled);pointer-events:none;cursor:not-allowed}.dropdown-selected:empty{display:none}.dropdown-selected .icon{margin-left:auto}.dropdown-selected:hover:not(.disabled):not(:active){background:var(--editable-overlay-hover)}.dropdown-selected:active{background:var(--editable-overlay-hover)}.dropdown-items{position:absolute;background:var(--primary-bg);max-height:200px;overflow:auto;z-index:5;border-radius:5px;height:0;box-shadow:0 3px 15px #0009;cursor:pointer;top:100%;border:1px solid var(--input-border)}.dropdown-items.collapsed{border:none}.dropdown-right>.dropdown-items{right:0}.animated .dropdown-items{transition:height .07s cubic-bezier(.215,.61,.355,1)}.dropdown-item{padding:3px 7px;white-space:nowrap}.animated .dropdown-item{opacity:0;transform:translateY(-10px);animation:.2s dropdown-enter cubic-bezier(.175,.885,.32,1.575) forwards;transition-property:height,background;transition-duration:.07s;transition-timing-function:cubic-bezier(.215,.61,.355,1)}.dropdown-item:hover{background:var(--primary-bg-hover)}.dropdown-item:active{background:var(--primary-bg-active)}@keyframes dropdown-enter{0%{transform:translateY(-10px);opacity:0}to{opacity:1;transform:none}}.pref-selector{background-color:var(--secondary-bg);border:1px solid var(--secondary-border);border-radius:0 0 5px 5px;flex:1;height:100%;overflow:auto;padding:5px;font-size:15px}.pref-label{display:flex;flex-direction:row;align-items:center;margin-right:5px;padding:1px 0}.pref-label:hover{background-color:var(--secondary-bg-active)}.flex-row{display:flex;flex-direction:row;align-items:center;justify-content:space-between;height:100%;width:100%}.flex-column-gap{column-gap:5px}.flex-row-gap{row-gap:5px}.flex-grow{flex:1}.flex-static{flex:0}#blocker{width:100%;height:100%;background-color:#00000080;position:absolute;top:0;z-index:10000;caret-color:transparent}.spinner{display:flex;flex-direction:row;height:100%;flex:1}.spinner-input[type=text]{border-top-right-radius:0;border-bottom-right-radius:0;width:100%;height:100%;min-width:0;flex:1}.spinner-input:disabled+.spinner-btns{pointer-events:none}.spinner-btns{display:grid;grid-template-rows:1fr 1fr;border:1px solid var(--input-border);border-left:none;border-top-right-radius:3px;border-bottom-right-radius:3px;flex:0;height:100%;min-height:20px}.spinner-btns button{padding:0 2px;flex:1;border-radius:0;height:100%;width:10px;height:9px;border:none;min-width:auto}.spinner-btns .spinner-up svg{rotate:180deg}.spinner-up{background:linear-gradient(0deg,var(--input-bg-active),var(--input-bg))}.spinner-down{background:linear-gradient(180deg,var(--input-bg-active),var(--input-bg))}.slider{display:flex;flex-direction:row}#waterfall{position:relative;top:0}#waterfall-container{position:absolute;top:9px;display:flex;flex-direction:column;text-align:right;padding:0 10px;width:100%;pointer-events:none;user-select:none;caret-color:transparent}.waterfall-item{pointer-events:none}.animated .waterfall-item{transition:cubic-bezier(.455,.03,.515,.955) .5s;animation:waterfall-enter .3s cubic-bezier(.455,.03,.515,.955)}.waterfall-warn{color:#f6ca39;display:inline-block;margin-right:4px}.waterfall-error{color:#b72323;display:inline-block;margin-right:4px}@keyframes waterfall-enter{0%{opacity:0;transform:translate(200px,10px)}to{opacity:1;transform:none}}.waterfall-exiting{opacity:0;transform:translate(200px)}.confirmation .padding .label{flex:1;text-align:center}.confirmation button{min-width:55px}input[type=range]{width:100px;margin-right:10px}.hide-buttons button{display:none}.hide-buttons:hover button,.hide-buttons div:focus+button{display:flex}#status-widget{position:absolute;bottom:30px;display:flex;flex-direction:column;left:50%;transform:translate(-50%);border-radius:5px;align-items:center;height:96px;overflow:hidden;user-select:none}#status-widget.collapsed{height:48px}.playback-bar,.edit-bar{display:flex;flex-direction:row;height:48px;align-items:center;border-radius:5px;justify-content:flex-start;width:100%}.playback-bar{background-color:var(--widget-bg)}#status-widget:not(.collapsed) .playback-bar{border-bottom:1px rgba(55,55,55,.2) solid;border-radius:0}.animated #status-widget{transition:.3s cubic-bezier(.11,.72,.51,1.14)}#status-widget button{background:none;box-shadow:none;transform:none;border:none;width:48px;height:48px;outline:none;filter:none}#status-widget button img{height:100%}#status-widget button:hover:not(.active){background-color:var(--editable-overlay-hover)}#status-widget button.active{background-color:var(--editable-overlay-active)}#status-widget button:disabled{filter:brightness(.2) saturate(.4)}.animated #status-widget button{transition:.2s cubic-bezier(.39,.575,.565,1)}#status-widget .playback-separator{padding:0 2px;height:48px;display:flex;align-items:center}#status-widget .playback-separator:after{border:.5px rgba(134,134,134,.5) solid;height:30px;content:" "}#status-widget .playback-counter{display:flex;flex-direction:column;align-items:center;width:100px;margin:0 4px}#status-widget .playback-counter .playback-counter-label{font-size:10px;color:var(--text-color-secondary)}#status-widget .playback-counter .playback-counter-label:after{filter:invert() brightness(.4)}#status-widget .playback-counter .playback-counter-main{font-size:18px;line-height:18px;max-width:100px;align-items:baseline}#status-widget .playback-counter .playback-counter-main,#status-widget .playback-counter .playback-counter-main *{padding:0;border:none;text-overflow:clip;overflow:hidden}#status-widget .dropdown-selected{border:none;background:none}#status-widget .edit-fancy-button{font-size:9px;padding:0 4px;width:56px;height:48px;display:flex;flex-direction:column;align-content:center}#status-widget .edit-fancy-button.active{background-color:var(--editable-overlay-active)}#status-widget .edit-fancy-button img{margin-bottom:3px;height:23px}.note-placeholder{border-radius:5px}.edit-choice-container{display:flex;flex-direction:column;height:96px;position:relative;top:0;align-self:flex-start;width:100%;overflow:hidden}.edit-steps-container,.edit-timing-container{display:flex;flex-direction:row;align-items:center;height:48px;width:100%}.animated .edit-choice-container,.animated .edit-steps-container,.animated .edit-timing-container{transition:.2s cubic-bezier(.39,.575,.565,1)}.edit-timing-container{background-color:var(--widget-bg);height:48px}#status-widget .edit-bar .edit-bar-left{background-color:var(--widget-bg);display:flex;flex-direction:row}.note-placeholder-right{flex:1;background-color:var(--widget-bg);height:48px}.popup{user-select:none;position:absolute;transform:translate(-50%);z-index:10}.popup-zoomer{transform-origin:top center;display:flex;flex-direction:column;background-color:var(--window-bg);border-radius:5px;padding:8px;align-items:center;border:1px solid black;animation:1ms popup-enter cubic-bezier(.47,.02,0,.95) forwards;box-shadow:0 0 5px #0009;color:#fff}.popup-zoomer input{color:var(--text-color)}.popup-zoomer.selected{filter:saturate(1.2) brightness(1.4);border:1px solid rgb(14,83,104)}.popup.exiting .popup-zoomer{animation:.01s popup-exit cubic-bezier(.47,.02,0,.95) forwards;pointer-events:none}.animated .popup{transition:.2s cubic-bezier(.47,.02,0,.95)}.animated .popup-zoomer{animation:.1s popup-enter cubic-bezier(.47,.02,0,.95) forwards;transition:.2s cubic-bezier(.47,.02,0,.95)}.animated .popup.exiting .popup-zoomer{animation:.1s popup-exit cubic-bezier(.47,.02,0,.95) forwards;pointer-events:none}.popup-row{display:flex;flex-direction:row;gap:5px;color:#ddd;white-space:nowrap;font-size:14px;align-items:center}.popup-flex{display:flex;flex-direction:column;gap:4px;margin-top:4px}@keyframes popup-enter{0%{transform:scale(.8);opacity:0}to{transform:scale(1);opacity:1}}@keyframes popup-exit{0%{transform:scale(1);opacity:1}to{transform:scale(.8);opacity:0}}.popup .popup-desc{font-size:10px;font-style:italic;text-align:center;color:#757a89}.animated .popup-desc{transition:.2s cubic-bezier(.47,.02,0,.95)}.popup .popup-title{text-align:center}.popup .popup-label{color:#ddd;white-space:nowrap;font-size:14px}.popup .popup-grid input[type=text]{min-width:0;text-align:right}.popup .popup-grid input[type=checkbox]{min-width:0;justify-self:end}.popup .popup-grid{margin-top:4px;display:grid;grid-template-columns:auto auto;column-gap:15px;row-gap:4px;width:100%;justify-content:end;align-items:center}.animated .popup-options{transition:.2s cubic-bezier(.47,.02,0,.95)}.popup-options{margin-top:0;width:100%;justify-content:space-around;transform:scale(0);height:0;display:flex}.popup-options button{min-width:40px}.popup-zoomer.selected .popup-options{margin-top:5px;transform:scale(1);height:24.5px;filter:saturate(.8) brightness(.7)}.draggable-track{writing-mode:vertical-rl;text-align:center;padding:20px 4px;height:200px;display:flex;align-items:center;justify-content:space-around;box-shadow:0 .5px #000000e6,0 3px 5px -3px #0009;cursor:grab}.draggable-track.left .draggable-track-text{transform:rotate(180deg)}.draggable-track .icon{position:absolute;display:none}.draggable-track:hover .icon{display:block;bottom:10px;backface-visibility:hidden;cursor:pointer}.draggable-track:hover .icon:hover{color:var(--danger)}.draggable-track:hover{filter:brightness(1.3) saturate(2.5);transform:translateY(-1.5px);box-shadow:0 1.5px #000000e6,0 3px 5px -2px #0009}.draggable-track:active{cursor:grabbing;filter:brightness(1.1) saturate(2.5);transform:none;box-shadow:0 0 #000000e6,0 3px 5px -2px #0009}@keyframes draggable-exit{0%{width:26px}to{width:0;padding:0;opacity:0}}@keyframes draggable-enter{0%{opacity:0;width:0;padding:0}to{opacity:1;width:26px}}.draggable-track.entering,.draggable-option.entering{animation:draggable-enter 0s cubic-bezier(0,.91,.34,1.05) forwards}.draggable-track.exiting,.draggable-option.exiting{animation:draggable-exit 0s cubic-bezier(0,.91,.34,1.05) forwards}.animated .draggable-track.entering,.animated .draggable-option.entering{animation:draggable-enter .4s cubic-bezier(0,.91,.34,1.05) forwards}.animated .draggable-track.exiting,.animated .draggable-option.exiting{animation:draggable-exit .4s cubic-bezier(0,.91,.34,1.05) forwards}@keyframes leftover-enter{0%{opacity:0;transform:scale(0);padding:0}to{opacity:1;transform:scale(1)}}.leftover-track.entering,.leftover-option.entering{animation:leftover-enter 0s cubic-bezier(0,.91,.34,1.05) forwards}.animated .leftover-track.entering,.animated .leftover-option.entering{animation:leftover-enter .4s cubic-bezier(0,.91,.34,1.05) forwards}#timing-track-order .title{text-align:center;padding:6px}.track-grid{display:flex;flex-direction:row;background-color:var(--secondary-bg);border:1px solid var(--secondary-border);padding:4px;border-radius:3px;width:468.08px;justify-content:center}.track-grid-options{display:flex;flex-direction:row;column-gap:8px;padding:4px 0}.track-selector{flex:1;height:30px;display:flex;flex-direction:row;background-color:var(--secondary-bg);border:1px solid var(--secondary-border);padding:4px;border-radius:3px;gap:4px;overflow-x:auto}.leftover-track{display:flex;justify-content:center;align-items:center;border-radius:3px;padding:4px;gap:3px;box-shadow:0 .5px #000000e6,0 3px 5px -3px #0009;font-size:13px;cursor:grab}.leftover-track img{filter:invert();vertical-align:baseline;width:10px}.leftover-track:hover{filter:brightness(1.3) saturate(2.5);transform:translateY(-1.5px);box-shadow:0 1.5px #000000e6,0 3px 5px -2px #0009}.leftover-track:active{filter:brightness(1.1) saturate(2.5);transform:none;box-shadow:0 0 #000000e6,0 3px 5px -2px #0009;cursor:grabbing}.animated .draggable-track,.animated .draggable-track img,.animated .leftover-track,.animated .track-selector,.animated .draggable-option,.animated .draggable-option img,.animated .leftover-option{transition:.2s cubic-bezier(0,.91,.34,1.05)}.sm-title{font-weight:700;margin-bottom:3px}.sm-container{margin-bottom:15px}#context-menu{display:flex;position:absolute;flex-direction:column;background-color:var(--primary-bg);border:1px solid var(--primary-border);caret-color:transparent;font-size:15px;border-radius:5px;transform-origin:top left;opacity:.95}.animated #context-menu.entering{animation:context-enter .15s cubic-bezier(.13,.61,.07,.98)}#context-menu.exiting{transform:scale(.8);opacity:0}.animated #context-menu.exiting{transition:.1s cubic-bezier(.15,.73,.62,.75)}@keyframes context-enter{0%{opacity:0;transform:scale(.8)}to{opacity:.95;transform:scale(1)}}.menu-item>.menu-item-title{padding:3px 0;display:flex;align-items:center}.menu-item:first-child>.menu-item-title{border-top-left-radius:5px;border-top-right-radius:5px}.menu-item:last-child>.menu-item-title{border-bottom-left-radius:5px;border-bottom-right-radius:5px}#context-menu .menubar-dropdown{background-color:var(--primary-bg);border:1px solid var(--primary-border);position:absolute;left:100%;top:0;border-radius:5px;transform-origin:left;transform:scale(0);opacity:0}@keyframes context-dropdown-enter{0%{transform:scale(.8)}to{transform:scale(1)}}@keyframes context-dropdown-exit{0%{transform:scale(1)}to{transform:scale(.8)}}#context-menu .menu-item:not(.disabled):hover>.menubar-dropdown,#context-menu .menubar-dropdown:not(.disabled):hover{opacity:.95;transform:scale(1)}.animated #context-menu .menu-item:not(.disabled):hover>.menubar-dropdown,.animated #context-menu .menubar-dropdown:not(.disabled):hover{animation:context-dropdown-enter .08s cubic-bezier(.215,.61,.355,1) forwards}.animated #context-menu .menubar-dropdown{animation:context-dropdown-exit .08s cubic-bezier(.215,.61,.355,1);transition:.08s cubic-bezier(.215,.61,.355,1)}.menu-item .menubar-dropdown .menubar-dropdown{left:100%;top:0}.pref-container{display:flex;flex-direction:column;gap:10px;height:100%}.pref-search{display:flex;flex-direction:row;gap:10px}.pref-scrollers{display:flex;gap:20px;flex:1;min-height:0}.pref-section-scroller,.pref-option-scroller{background-color:var(--secondary-bg);border:1px solid var(--secondary-border);overflow:auto;padding:5px;border-radius:5px}.animated .pref-option-scroller{scroll-behavior:smooth}.pref-section{padding:3px 5px;border-radius:2px;cursor:pointer}.pref-section-scroller{width:150px}.pref-option-scroller:empty:before{color:var(--text-color-disabled);content:"No keybinds matched the search term.";height:100%;display:flex;justify-content:center;align-items:center}.animated .pref-section,.animated .pref-keybind-combo,.animated .pref-keybind,.animated .pref-item,.animated .pref-item-tooltip{transition:.1s cubic-bezier(.445,.05,.55,.95)}.pref-section.selected,.pref-section.selected:hover{background-color:var(--secondary-bg-active)}.pref-section:hover,.pref-keybind:hover,.pref-item:hover{background-color:var(--secondary-bg-hover)}.pref-option-scroller{display:flex;flex-direction:column;gap:20px;flex:1;padding:3px 5px}.pref-keybind{padding:3px 5px;border-radius:2px;display:flex;flex-direction:row;align-items:center;width:100%;cursor:pointer}.pref-item{padding:3px 5px;border-radius:2px;display:flex;flex-direction:row;align-items:center;width:100%}.pref-item-input{margin-left:auto;max-width:160px;display:flex}.pref-item>.spinner{max-width:50px}.pref-item .spinner-input{text-align:right}.pref-keybind .icon,.pref-item>.icon{margin-left:5px;display:block;bottom:10px;backface-visibility:hidden;filter:brightness(.5);cursor:pointer}.pref-keybind .icon:hover,.pref-item .icon:hover{filter:brightness(1);color:var(--danger)}.pref-keybind-label{padding:2px 0}.pref-label{padding:10px 0}.pref-keybind-combos{display:flex;flex-direction:row;align-items:center;gap:3px;margin-left:auto}.pref-keybind-combo{background-color:#0003;padding:2px 5px;font-size:13px}.pref-keybind-combo.conflict{background:rgb(187,93,31)}.pref-keybind-combo:hover{background-color:var(--danger)}.pref-group-label{font-size:18px;margin-bottom:6px}.pref-subgroup-label{font-weight:700;margin-bottom:6px}.pref-group{padding:3px 5px}.pref-children .pref-group-label{font-size:17px}.pref-search .dropdown{width:70px}.pref-group-label+.pref-children{margin-left:15px}.pref-children{display:flex;flex-direction:column;gap:5px}.pref-subgroup{margin:8px 0}.detail{font-size:12px;font-style:italic;text-align:center;color:var(--text-color-detail)}.tippy-box[data-theme~=sm]{background-color:var(--tooltip-bg);color:var(--text-color)}.tippy-box[data-theme~=sm][data-placement^=top]>.tippy-arrow:before{border-top-color:var(--tooltip-bg)}.tippy-box[data-theme~=sm][data-placement^=bottom]>.tippy-arrow:before{border-bottom-color:var(--tooltip-bg)}.tippy-box[data-theme~=sm][data-placement^=left]>.tippy-arrow:before{border-left-color:var(--tooltip-bg)}.tippy-box[data-theme~=sm][data-placement^=right]>.tippy-arrow:before{border-right-color:var(--tooltip-bg)}.export-container{display:flex;flex-direction:row;gap:15px;height:100%;overflow:hidden}.export-section-label{font-weight:700;margin-bottom:6px;margin-top:6px}.export-option{display:flex;flex-direction:row;gap:5px;align-items:center;padding:3px 5px}.export-output{flex:1;border-radius:5px;background-color:var(--secondary-bg);border:1px solid var(--secondary-border);padding:5px;white-space:pre-wrap;word-break:break-all;font-family:monospace;font-size:12px;overflow:auto;tab-size:2}.export-output:hover{background-color:var(--secondary-bg-hover)}.animated .export-output{transition:.1s cubic-bezier(.39,.575,.565,1)}.logo{text-align:center;font-size:26px}.icon-container{display:flex;align-items:center;justify-content:space-evenly;background-color:#0b0e1a;padding-top:2px;border-bottom:1px solid;border-image-slice:1;border-image-source:linear-gradient(to right,rgb(11,14,26),rgb(49,57,88),rgb(11,14,26))}.eq-icon{border-radius:3px}.animated .eq-icon{transition:.1s cubic-bezier(.39,.575,.565,1)}.eq-icon.disabled:not(:hover){fill:#888}.eq-icon:not(:hover){background-color:#0000!important}.eq-info-container{border-top:1px solid;border-image-slice:1;border-image-source:linear-gradient(to right,rgb(11,14,26),rgb(49,57,88),rgb(11,14,26));background-color:#0b0e1a;display:flex;flex-direction:row;align-items:center;gap:10px;padding:2px 10px;margin:0;font-size:12px}.eq-reset{margin-left:auto;margin-right:15px;color:#ff3a3acc;padding:0 5px;border-radius:3px}.animated .eq-reset{transition:.2s cubic-bezier(.175,.885,.32,1.875)}.eq-reset:hover{background:rgba(255,58,58,.2)}.eq-info{display:flex;flex-direction:row;align-items:center;gap:5px}.eq-info-label{color:#0087cbcc}.eq-info-value{width:80px}.eq-info-value.inlineEdit[contenteditable=true]{border:none;min-width:80px;text-align:left;border-radius:3px;padding:0;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;-ms-overflow-style:none;scrollbar-width:none;caret-color:auto}.eq-info-value.inlineEdit[contenteditable=true]:hover{background:rgba(0,135,203,.082)}.eq-info-value.inlineEdit[contenteditable=true]:focus{background:rgba(0,135,203,.082)}.eq-container{display:flex;flex-direction:column}input[type=color]{appearance:none;-moz-appearance:none;-webkit-appearance:none;background:none;border:0;cursor:pointer;height:19.5px;padding:0;width:29.5px}::-webkit-color-swatch-wrapper{padding:0}::-webkit-color-swatch{border:1px rgb(105,105,105) solid;border-radius:3px}::-moz-color-swatch,::-moz-focus-inner{border:0}::-moz-focus-inner{padding:0}.update-popup{position:absolute;right:15px;bottom:15px;z-index:10;background-color:#00000080;border-radius:10px;padding:10px;transition:.3s ease-out;user-select:none;cursor:pointer;transform-origin:bottom right}.animated .update-popup{transition:.2s cubic-bezier(.175,.885,.32,1.875)}.animated .update-popup:hover{scale:1.03;background-color:#42424280}.sync-container{display:flex;flex-direction:column;align-items:center;height:100%}.sync-spinner-container{display:flex;flex-direction:row;align-items:center;gap:10px}.sync-bottom-container{display:flex;flex-direction:row;padding:10px 5px;gap:10px;justify-content:space-around;align-items:center;margin-bottom:5px}.sync-tab-container{display:flex;width:370px;flex-direction:row;align-items:center;margin:10px 5px;background:var(--secondary-bg);border:1px solid var(--secondary-border);font-size:13px;border-radius:5px}.sync-tab-option{padding:5px 10px;flex:1;text-align:center;border-radius:5px}.sync-tab-option:hover{background-color:#ffffff1a}.sync-tab-option.active{background-color:#fff3}.animated .sync-tab-option{transition:.1s cubic-bezier(.215,.61,.355,1)}.sync-tab-view{width:370px;flex:1;min-height:0;background:var(--secondary-bg);border:1px solid var(--secondary-border);border-radius:5px;position:relative}.sync-tab-scroller{display:grid;grid-template-columns:repeat(3,1fr);overflow:hidden;position:relative;border-radius:5px}.sync-cover-scroller{position:absolute;top:0;left:0;display:grid;grid-template-columns:repeat(3,1fr);overflow:hidden;width:370px;pointer-events:none}.sync-cover{width:370px;background:rgba(0,0,0,.2);display:flex;align-items:center;justify-content:space-around;opacity:0;pointer-events:none;position:absolute;height:100%}.sync-cover.active{opacity:1;backdrop-filter:blur(2px);pointer-events:all}.animated .sync-tab-scroller,.animated .sync-cover-scroller{scroll-behavior:smooth}.sync-tab-scroller>div:not(.sync-cover){width:370px;padding:10px}.sync-table-label{text-align:center;font-weight:700}.sync-table{width:100%;table-layout:fixed;font-size:13px}.sync-table th{font-weight:500;padding:3px 1px}.sync-table td{padding:1px;text-align:center}.sync-table tr:nth-child(2n){background:rgb(0,0,0,.1)}#embed{position:fixed;bottom:0;margin:10px;font-size:13px;font-weight:200;color:#d7d7d77c;cursor:default;pointer-events:none}#embed a{transition:.2s ease-in-out;color:#d7d7d7ca;pointer-events:all}#embed a:hover{color:#d7d7d7ef}#playback-options{height:40px;left:0;display:flex;flex-direction:row;user-select:none;gap:24px;background-color:var(--secondary-bg);border-bottom:1px solid var(--secondary-border);padding:0 10px;font-size:15px;overflow-x:auto;overflow-y:hidden;width:100%;position:relative;top:0}#playback-options.collapsed{height:0px;border-bottom:0px solid var(--secondary-border)}.playback-options-title{justify-content:center;text-align:center;width:100%}.animated #playback-options,.animated .playback-options-row,.animated .po-thumb-row{transition:.3s cubic-bezier(.61,.04,.38,1.02)}#playback-options .playback-options-row.hidden{opacity:0;width:0px;margin-right:-24px;transform:scale(0)}#playback-options>.playback-options-row{display:flex;flex-direction:row;gap:7px;align-items:center;text-wrap:nowrap;width:var(--w)}.po-spinner{display:flex;flex-direction:row;align-items:center;height:20px}#playback-options .po-spinner-btn{box-shadow:none;transform:none;border:none;outline:none;filter:none;background-color:var(--input-bg);border-radius:5px;width:12px;height:20px;padding:0;text-align:center;justify-content:center}#playback-options .po-spinner .po-spinner-btn:first-of-type{border-top-right-radius:0;border-bottom-right-radius:0;border:1px var(--input-border) solid}#playback-options .po-spinner .po-spinner-btn:last-of-type{border-top-left-radius:0;border-bottom-left-radius:0;border:1px var(--input-border) solid}#playback-options .po-spinner-btn:disabled{filter:brightness(.5)}#playback-options .po-spinner-btn:hover:not(:disabled){background-color:var(--input-bg-hover)}#playback-options .po-spinner-btn:active:not(:disabled){background-color:var(--input-bg-active)}#playback-options .po-spinner-input{background-color:var(--input-bg);border-left:none;border-right:none;border-top:1px solid var(--input-border);border-bottom:1px solid var(--input-border);border-radius:0;width:42px;height:20px;padding:3px 4px;text-align:center;caret-color:auto}#playback-options .po-spinner-input:hover{background-color:var(--input-bg-hover)}#playback-options .po-spinner-input:disabled{filter:brightness(.6)}.animated .po-spinner-btn,.animated .po-spinner-input{transition:.08s ease-in-out}#playback-options .po-separator{margin:0 -6px;height:100%;display:flex;align-items:center}#playback-options .po-separator:after{border:.5px rgba(134,134,134,.5) solid;height:20px;content:" "}.po-toggle{background-color:var(--input-bg);border:1px solid var(--input-border);display:flex;flex-direction:row;gap:5px;font-size:14px;height:20px;border-radius:5px;align-items:center;position:relative}.po-toggle-item{padding:3px 6px}.po-toggle>*:not(.active):not(.po-toggle-highlight){opacity:.2}.po-toggle>*:not(.active):hover{opacity:.8}.po-toggle-highlight{position:absolute;background-color:var(--editable-overlay-active);border-radius:5px;pointer-events:none}.ico-checkbox{padding:1px;border-radius:2px}.ico-checkbox:hover{background:var(--editable-overlay-hover)}.ico-checkbox:active{background:var(--editable-overlay-active)}.animated .po-toggle>*,.animated .ico-checkbox{transition:.15s ease-in-out}.animated .po-toggle-highlight{transition:.15s cubic-bezier(.61,.04,.38,1.02)}.po-collapse-container{position:relative}#view-wrapper .po-collapse{margin-left:auto;margin-right:10px;height:25px;width:25px;padding:0;background:none;box-shadow:none;transform:none;border:none;outline:none;filter:none;text-align:center;justify-content:center;display:flex;align-items:center;transform:scaleY(1);user-select:none}#view-wrapper .po-collapse.toggled{transform:scaleY(-1)}.animated .po-collapse{transition:.15s cubic-bezier(.61,.04,.38,1.02)}.noteskin-grid{display:grid;grid-template-columns:repeat(4,1fr);width:100%;gap:15px;padding:10px;background:var(--secondary-bg);border:1px solid var(--secondary-border);margin-top:10px;border-radius:5px;overflow:auto;height:330px}.noteskin-cell{height:250px;position:relative;border-radius:5px;color:#fff}.noteskin-cell img{min-width:0;width:100%;height:100%;aspect-ratio:9 / 21;object-fit:cover;border-radius:5px}.noteskin-label{position:absolute;bottom:0;padding:100px 10px 10px;width:100%;background:linear-gradient(to top,rgba(0,0,0,.7),rgba(0,0,0,.7) 30%,rgba(0,0,0,0) 100%);border-radius:5px}.noteskin-title{font-size:16px;font-weight:700}.noteskin-subtitle{font-style:italic;font-size:12px}.noteskin-cell:hover{transform:scale(1.02);box-shadow:0 0 5px #0009}.noteskin-cell:hover img{filter:brightness(1.1)}.noteskin-cell:active{transform:scale(.98)}.noteskin-cell.selected img{box-shadow:0 0 5px 2px var(--accent-color);filter:brightness(1.2)}.animated .noteskin-cell,.animated .noteskin-cell img{transition:.2s cubic-bezier(.26,.64,.47,1.6)}.theme-color-grid{display:flex;flex-direction:column;gap:5px;font-size:12px;background-color:var(--secondary-bg);border:1px solid var(--secondary-border);padding:15px;overflow:auto}.theme-group-label{font-size:16px}.theme-picker-grid{display:grid;grid-template-columns:repeat(4,1fr);color:var(--text-color-secondary);gap:15px;font-size:15px;text-align:center;padding:5px;overflow:auto}.theme-color-cell{display:flex;flex-direction:column;align-items:center;border-radius:5px}.theme-color-cell.linked{background-color:var(--editable-overlay-hover)}.animated .theme-color-cell{transition:.3s cubic-bezier(.39,.575,.565,1)}.theme-color-detail{color:var(--text-color-detail);font-size:10px}.theme-color-cell input[type=range]{width:50px;margin-right:0}.color-picker{width:24px;height:24px;border-radius:3px;border:1px solid rgb(111,111,111);overflow:hidden}.color-picker:hover:not(:active){transform:scale(1.03);box-shadow:0 0 4px #0009}.color-picker:active{transform:scale(.93);box-shadow:0 0 4px #0009}.animated .color-picker{transition:.1s cubic-bezier(.39,.575,.565,1)}.color-picker-popup{position:absolute;background:#dcdcdc;padding:15px;display:flex;flex-direction:row;gap:15px;z-index:20;border-radius:5px;transform-origin:top center;border:1px solid black;animation:1ms popup-enter cubic-bezier(.47,.02,0,.95) forwards;box-shadow:0 0 5px #0009}.animated .color-picker-popup{animation:.1s popup-enter cubic-bezier(.47,.02,0,.95) forwards}.animated .color-picker-popup.exiting{animation:.1s popup-exit cubic-bezier(.47,.02,0,.95) forwards;pointer-events:none}.color-picker-popup .color-matrix{position:relative;width:200px;height:200px}.color-picker-popup .color-matrix-x{position:absolute;top:0;left:0;width:200px;height:200px;background:linear-gradient(to right,#fff 0%,rgba(255,255,255,0) 100%)}.color-picker-popup .color-matrix-y{position:absolute;top:0;left:0;width:200px;height:200px;background:linear-gradient(to bottom,transparent 0%,#000 100%)}.color-picker-popup .color-matrix-dot{position:absolute;width:15px;height:15px;border:2px solid white;border-radius:15px;transform:translate(-50%,-50%)}.color-picker-popup .color-matrix-dot:after{content:" ";position:absolute;width:15px;height:15px;border:2px solid black;border-radius:15px;transform:translate(-4px,-4px)}.color-picker-popup .color-slider{width:200px;height:20px;position:relative;border-radius:5px}.color-picker-transparent{background-image:linear-gradient(45deg,#ccc 25%,transparent 25%),linear-gradient(-45deg,#ccc 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#ccc 75%),linear-gradient(-45deg,transparent 75%,#ccc 75%);background-position:0 0,0 4px,4px -4px,-4px 0px;background-size:8px 8px}.color-picker-popup .color-slider-thumb{position:absolute;width:5px;height:24px;border:1px solid white;border-radius:15px;transform:translate(-50%,-2px);z-index:21}.color-picker-popup .color-slider-thumb:after{content:" ";position:absolute;width:5px;height:24px;border:1px solid black;border-radius:15px;transform:translate(-2px,-2px);z-index:21}.color-picker-popup .color-picker-area{display:flex;flex-direction:column;gap:5px}.color-picker-popup .color-format{background-color:#cbced2;padding:10px;border-radius:5px;display:flex;gap:5px}.color-picker-popup .color-format-label{color:#000;width:45px;pointer-events:none;user-select:none}.color-picker-popup .color-format-inputs{width:170px;display:flex;gap:5px}.color-picker-popup .color-format-inputs input{min-width:none;width:100%;color:#000;background-color:#ebebeb;border:1px solid rgba(0,0,0,.3);text-align:center}.color-picker-popup .color-picker-preview{flex:1;width:100%;display:flex;border:1px solid rgba(0,0,0,.2);border-radius:5px}.color-picker-popup .color-picker-transparent{flex:1}.theme-grid{display:grid;grid-template-columns:repeat(4,1fr);width:100%;gap:5px;padding:10px;background:var(--secondary-bg);border:1px solid var(--secondary-border);margin-top:10px;overflow:auto;flex:1;border-radius:5px 5px 0 0}.theme-cell{padding:15px;display:flex;align-items:center;flex-direction:column;gap:5px;border-radius:5px;height:fit-content;min-width:0}.theme-title{text-align:center!important;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;width:100%}.theme-cell:hover:not(.selected){background:var(--secondary-bg-hover)}.theme-cell.selected{background:var(--secondary-bg-active)}.animated .theme-cell{transition:.2s cubic-bezier(.47,.02,0,.95)}.theme-preview-grid{display:grid;grid-template-columns:repeat(3,1fr);width:66px;height:66px;border:1px solid rgb(0,0,0,.5);border-radius:5px;overflow:hidden} diff --git a/downloader-b702927f.js b/downloader-0b8b331a.js similarity index 97% rename from downloader-b702927f.js rename to downloader-0b8b331a.js index fc3940c9..22b634bf 100644 --- a/downloader-b702927f.js +++ b/downloader-0b8b331a.js @@ -1 +1 @@ -import{a8 as w,a4 as b}from"./ChartManager-0bba2271.js";const{GONE:v}=b,E=/constructor/i.test(window.HTMLElement)||window.safari||window.WebKitPoint;class j{constructor(e="unknown"){this.kind="file",this.writable=!0,this.name=e}async getFile(){throw new DOMException(...v)}async createWritable(e={}){var t;if(e.keepExistingData)throw new TypeError("Option keepExistingData is not implemented");const h=globalThis.TransformStream||(await w(()=>import("./web-streams-ponyfill-4a0f4950.js"),[])).TransformStream,p=globalThis.WritableStream||(await w(()=>import("./web-streams-ponyfill-4a0f4950.js"),[])).WritableStream,s=await((t=navigator.serviceWorker)===null||t===void 0?void 0:t.getRegistration()),o=document.createElement("a"),i=new h,u=i.writable;if(o.download=this.name,E||!s){let a=[];i.readable.pipeTo(new p({write(r){a.push(new Blob([r]))},close(){const r=new Blob(a,{type:"application/octet-stream; charset=utf-8"});a=[],o.href=URL.createObjectURL(r),o.click(),setTimeout(()=>URL.revokeObjectURL(o.href),1e4)}}))}else{const{writable:a,readablePort:r}=new k(p),n=encodeURIComponent(this.name).replace(/['()]/g,escape).replace(/\*/g,"%2A"),f={"content-disposition":"attachment; filename*=UTF-8''"+n,"content-type":"application/octet-stream; charset=utf-8",...e.size?{"content-length":e.size}:{}},g=setTimeout(()=>s.active.postMessage(0),1e4);i.readable.pipeThrough(new h({transform(l,_){if(l instanceof Uint8Array)return _.enqueue(l);const R=new Response(l).body.getReader(),m=W=>R.read().then(y=>y.done?0:m(_.enqueue(y.value)));return m()}})).pipeTo(a).finally(()=>{clearInterval(g)}),s.active.postMessage({url:s.scope+n,headers:f,readablePort:r},[r]);const c=document.createElement("iframe");c.hidden=!0,c.src=s.scope+n,document.body.appendChild(c)}return u.getWriter()}async isSameEntry(e){return this===e}}const P=0,T=0,M=1,S=1,L=2;class O{constructor(e){this._readyPending=!1,this._port=e,this._resetReady(),this._port.onmessage=t=>this._onMessage(t.data)}start(e){return this._controller=e,this._readyPromise}write(e){const t={type:P,chunk:e};return this._port.postMessage(t,[e.buffer]),this._resetReady(),this._readyPromise}close(){this._port.postMessage({type:L}),this._port.close()}abort(e){this._port.postMessage({type:S,reason:e}),this._port.close()}_onMessage(e){e.type===T&&this._resolveReady(),e.type===M&&this._onError(e.reason)}_onError(e){this._controller.error(e),this._rejectReady(e),this._port.close()}_resetReady(){this._readyPromise=new Promise((e,t)=>{this._readyResolve=e,this._readyReject=t}),this._readyPending=!0}_resolveReady(){this._readyResolve(),this._readyPending=!1}_rejectReady(e){this._readyPending||this._resetReady(),this._readyPromise.catch(()=>{}),this._readyReject(e),this._readyPending=!1}}class k{constructor(e){const t=new MessageChannel;this.readablePort=t.port1,this.writable=new e(new O(t.port2))}}export{j as FileHandle}; +import{a8 as w,a4 as b}from"./ChartManager-beed98d8.js";const{GONE:v}=b,E=/constructor/i.test(window.HTMLElement)||window.safari||window.WebKitPoint;class j{constructor(e="unknown"){this.kind="file",this.writable=!0,this.name=e}async getFile(){throw new DOMException(...v)}async createWritable(e={}){var t;if(e.keepExistingData)throw new TypeError("Option keepExistingData is not implemented");const h=globalThis.TransformStream||(await w(()=>import("./web-streams-ponyfill-4a0f4950.js"),[])).TransformStream,p=globalThis.WritableStream||(await w(()=>import("./web-streams-ponyfill-4a0f4950.js"),[])).WritableStream,s=await((t=navigator.serviceWorker)===null||t===void 0?void 0:t.getRegistration()),o=document.createElement("a"),i=new h,u=i.writable;if(o.download=this.name,E||!s){let a=[];i.readable.pipeTo(new p({write(r){a.push(new Blob([r]))},close(){const r=new Blob(a,{type:"application/octet-stream; charset=utf-8"});a=[],o.href=URL.createObjectURL(r),o.click(),setTimeout(()=>URL.revokeObjectURL(o.href),1e4)}}))}else{const{writable:a,readablePort:r}=new k(p),n=encodeURIComponent(this.name).replace(/['()]/g,escape).replace(/\*/g,"%2A"),f={"content-disposition":"attachment; filename*=UTF-8''"+n,"content-type":"application/octet-stream; charset=utf-8",...e.size?{"content-length":e.size}:{}},g=setTimeout(()=>s.active.postMessage(0),1e4);i.readable.pipeThrough(new h({transform(l,_){if(l instanceof Uint8Array)return _.enqueue(l);const R=new Response(l).body.getReader(),m=W=>R.read().then(y=>y.done?0:m(_.enqueue(y.value)));return m()}})).pipeTo(a).finally(()=>{clearInterval(g)}),s.active.postMessage({url:s.scope+n,headers:f,readablePort:r},[r]);const c=document.createElement("iframe");c.hidden=!0,c.src=s.scope+n,document.body.appendChild(c)}return u.getWriter()}async isSameEntry(e){return this===e}}const P=0,T=0,M=1,S=1,L=2;class O{constructor(e){this._readyPending=!1,this._port=e,this._resetReady(),this._port.onmessage=t=>this._onMessage(t.data)}start(e){return this._controller=e,this._readyPromise}write(e){const t={type:P,chunk:e};return this._port.postMessage(t,[e.buffer]),this._resetReady(),this._readyPromise}close(){this._port.postMessage({type:L}),this._port.close()}abort(e){this._port.postMessage({type:S,reason:e}),this._port.close()}_onMessage(e){e.type===T&&this._resolveReady(),e.type===M&&this._onError(e.reason)}_onError(e){this._controller.error(e),this._rejectReady(e),this._port.close()}_resetReady(){this._readyPromise=new Promise((e,t)=>{this._readyResolve=e,this._readyReject=t}),this._readyPending=!0}_resolveReady(){this._readyResolve(),this._readyPending=!1}_rejectReady(e){this._readyPending||this._resetReady(),this._readyPromise.catch(()=>{}),this._readyReject(e),this._readyPending=!1}}class k{constructor(e){const t=new MessageChannel;this.readablePort=t.port1,this.writable=new e(new O(t.port2))}}export{j as FileHandle}; diff --git a/embed.js b/embed.js index a60f3980..e9e2c95d 100644 --- a/embed.js +++ b/embed.js @@ -1 +1 @@ -import{t as I,q as T,r as E,S as P,G as R}from"./ChartManager-0bba2271.js";const m=new Set;document.addEventListener("DOMContentLoaded",()=>{const c=document.getElementById("output-url"),w=document.getElementById("output-iframe"),o=document.getElementById("sm-url"),b=document.getElementById("chart-container");let r=document.getElementById("loading-output");const f=document.getElementById("option-grid");let h,p,k="",d,u;I.setDefaultProps({duration:[200,100]}),I(c,{content:"Click to copy to clipboard",placement:"bottom"});function i(e,t){const n=r.cloneNode(!0);r.parentNode.replaceChild(n,r),r=n,r.innerText=e,t=="error"?r.style.color="rgba(222, 44, 44, 0.9)":r.style.color=""}function s(){const e=new URL(`${location.origin}/smeditor/app/`);p!==void 0&&e.searchParams.set("url",p),u!==void 0&&e.searchParams.set("chartType",u),d!==void 0&&e.searchParams.set("chartIndex",d+""),m.size>0&&e.searchParams.set("flags",[...m.values()].join("")),c.value=e.toString(),k!=e.toString()&&(w.src=e.toString()),k=e.toString()}s(),c.onclick=e=>{e.preventDefault(),c.blur(),navigator.clipboard.writeText(c.value),setTimeout(()=>c.select(),10)},c.onselect=e=>{e.preventDefault(),setTimeout(()=>c.select(),10)},c.ondblclick=e=>{e.preventDefault(),setTimeout(()=>c.select(),10)};let g;function L(){if(!o.checkValidity())return;p=void 0,s();const e=o.value;if(e===""){o.classList.remove("invalid","ok"),i("");return}o.classList.remove("invalid","ok"),i("Loading...");const t=new AbortController,n=setTimeout(()=>{o.classList.add("invalid"),t.abort(),i("Failed to load the specified URL!","error")},5e3);fetch(e,{signal:t.signal}).then(a=>{if(!a.ok){o.classList.add("invalid"),i("Failed to load the specified URL!","error");return}clearTimeout(n),a.text().then(async S=>{const B=new URL(e),D=new File([S],B.pathname.split("/").pop()??"song.sm");i("Loading charts...");const y=new P(D);await y.loaded,y.properties.TITLE===void 0&&i("Invalid file provided!","error"),h=y,p=e,d=void 0,u=void 0,i(""),s(),C()}),o.classList.add("ok")}).catch(()=>{o.classList.add("invalid"),i("Failed to load the specified URL!","error")})}o.onkeydown=e=>{o.classList.remove("invalid"),o.classList.remove("ok"),i(""),clearTimeout(g),g=setTimeout(()=>L(),1e3),(e.key=="Enter"||e.key=="Escape")&&o.blur()},o.onblur=()=>{o.checkValidity()&&(clearInterval(g),L())};const v=T.create([]);v.onChange(e=>{const t=e.split(" ")?.[0]??"dance-single",n=h?.charts[t]??[];l.setItems(n.map(a=>`${a.difficulty} ${a.meter}`)),l.setSelected(l.getItems().at(-1)),n.length!=0&&(console.log(n.length),t!="dance-single"?u=t:u=void 0,s())});const l=T.create([]);l.onChange((e,t)=>{d!=l.getItems().length-1?d=t:d=void 0,s()}),b.appendChild(v.view),b.appendChild(l.view);function C(){v.setItems(R.getPriority().map(t=>{const n=h.charts[t.id]??[];return t.id+" ("+n.length+")"}));const e=h?.charts["dance-single"]??[];l.setItems(e.map(t=>`${t.difficulty} ${t.meter}`)),l.setSelected(l.getItems().at(-1))}Object.entries(E).forEach(([e,t])=>{const n=document.createElement("label");n.classList.add("option");const a=document.createElement("input");a.type="checkbox",n.replaceChildren(a,document.createTextNode(t.name)),a.onchange=()=>{a.checked?m.add(t.char):m.delete(t.char),s()},f.appendChild(n)});const U=document.getElementById("enable-all");U.onclick=()=>{for(const e of f.children){const t=e.childNodes[0];t.checked=!0}for(const e of Object.values(E).map(t=>t.char))m.add(e);s()};const x=document.getElementById("disable-all");x.onclick=()=>{for(const e of f.children){const t=e.childNodes[0];t.checked=!1}m.clear(),s()}}); +import{t as I,q as T,r as E,S as P,G as R}from"./ChartManager-beed98d8.js";const m=new Set;document.addEventListener("DOMContentLoaded",()=>{const c=document.getElementById("output-url"),w=document.getElementById("output-iframe"),o=document.getElementById("sm-url"),b=document.getElementById("chart-container");let r=document.getElementById("loading-output");const f=document.getElementById("option-grid");let h,p,k="",d,u;I.setDefaultProps({duration:[200,100]}),I(c,{content:"Click to copy to clipboard",placement:"bottom"});function i(e,t){const n=r.cloneNode(!0);r.parentNode.replaceChild(n,r),r=n,r.innerText=e,t=="error"?r.style.color="rgba(222, 44, 44, 0.9)":r.style.color=""}function s(){const e=new URL(`${location.origin}/smeditor/app/`);p!==void 0&&e.searchParams.set("url",p),u!==void 0&&e.searchParams.set("chartType",u),d!==void 0&&e.searchParams.set("chartIndex",d+""),m.size>0&&e.searchParams.set("flags",[...m.values()].join("")),c.value=e.toString(),k!=e.toString()&&(w.src=e.toString()),k=e.toString()}s(),c.onclick=e=>{e.preventDefault(),c.blur(),navigator.clipboard.writeText(c.value),setTimeout(()=>c.select(),10)},c.onselect=e=>{e.preventDefault(),setTimeout(()=>c.select(),10)},c.ondblclick=e=>{e.preventDefault(),setTimeout(()=>c.select(),10)};let g;function L(){if(!o.checkValidity())return;p=void 0,s();const e=o.value;if(e===""){o.classList.remove("invalid","ok"),i("");return}o.classList.remove("invalid","ok"),i("Loading...");const t=new AbortController,n=setTimeout(()=>{o.classList.add("invalid"),t.abort(),i("Failed to load the specified URL!","error")},5e3);fetch(e,{signal:t.signal}).then(a=>{if(!a.ok){o.classList.add("invalid"),i("Failed to load the specified URL!","error");return}clearTimeout(n),a.text().then(async S=>{const B=new URL(e),D=new File([S],B.pathname.split("/").pop()??"song.sm");i("Loading charts...");const y=new P(D);await y.loaded,y.properties.TITLE===void 0&&i("Invalid file provided!","error"),h=y,p=e,d=void 0,u=void 0,i(""),s(),C()}),o.classList.add("ok")}).catch(()=>{o.classList.add("invalid"),i("Failed to load the specified URL!","error")})}o.onkeydown=e=>{o.classList.remove("invalid"),o.classList.remove("ok"),i(""),clearTimeout(g),g=setTimeout(()=>L(),1e3),(e.key=="Enter"||e.key=="Escape")&&o.blur()},o.onblur=()=>{o.checkValidity()&&(clearInterval(g),L())};const v=T.create([]);v.onChange(e=>{const t=e.split(" ")?.[0]??"dance-single",n=h?.charts[t]??[];l.setItems(n.map(a=>`${a.difficulty} ${a.meter}`)),l.setSelected(l.getItems().at(-1)),n.length!=0&&(console.log(n.length),t!="dance-single"?u=t:u=void 0,s())});const l=T.create([]);l.onChange((e,t)=>{d!=l.getItems().length-1?d=t:d=void 0,s()}),b.appendChild(v.view),b.appendChild(l.view);function C(){v.setItems(R.getPriority().map(t=>{const n=h.charts[t.id]??[];return t.id+" ("+n.length+")"}));const e=h?.charts["dance-single"]??[];l.setItems(e.map(t=>`${t.difficulty} ${t.meter}`)),l.setSelected(l.getItems().at(-1))}Object.entries(E).forEach(([e,t])=>{const n=document.createElement("label");n.classList.add("option");const a=document.createElement("input");a.type="checkbox",n.replaceChildren(a,document.createTextNode(t.name)),a.onchange=()=>{a.checked?m.add(t.char):m.delete(t.char),s()},f.appendChild(n)});const U=document.getElementById("enable-all");U.onclick=()=>{for(const e of f.children){const t=e.childNodes[0];t.checked=!0}for(const e of Object.values(E).map(t=>t.char))m.add(e);s()};const x=document.getElementById("disable-all");x.onclick=()=>{for(const e of f.children){const t=e.childNodes[0];t.checked=!1}m.clear(),s()}}); diff --git a/embed/index.html b/embed/index.html index 65fda349..8456c1d8 100644 --- a/embed/index.html +++ b/embed/index.html @@ -16,7 +16,7 @@ SMEditor - + diff --git a/memory-3d55e3da.js b/memory-338b395e.js similarity index 98% rename from memory-3d55e3da.js rename to memory-338b395e.js index 0caebfd1..0116d240 100644 --- a/memory-3d55e3da.js +++ b/memory-338b395e.js @@ -1 +1 @@ -import{a4 as c,a5 as y}from"./ChartManager-0bba2271.js";let n=globalThis.File,p=globalThis.Blob;const b=o=>{n=o},m=o=>{p=o},{INVALID:z,GONE:s,MISMATCH:w,MOD_ERR:E,SYNTAX:l,DISALLOWED:O}=c;class D{constructor(e,i){this.fileHandle=e,this.file=i?e.file:new n([],e.file.name,e.file),this.size=i?e.file.size:0,this.position=0}async write(e){if(!this.fileHandle.file)throw new DOMException(...s);let i=this.file;if(y(e)){if(e.type==="write"){if(typeof e.position=="number"&&e.position>=0&&(this.position=e.position,this.size=0){if(this.size=0){i=e.sizei.size&&(this.position=i.size),this.file=i;return}else throw new DOMException(...l("truncate requires a size argument"))}e=new p([e]);let t=this.file;const a=t.slice(0,this.position),d=t.slice(this.position+e.size);let r=this.position-a.size;r<0&&(r=0),t=new n([a,new Uint8Array(r),e,d],t.name),this.size=t.size,this.position+=e.size,this.file=t}async close(){if(!this.fileHandle.file)throw new DOMException(...s);this.fileHandle.file=this.file,this.file=this.position=this.size=null,this.fileHandle.onclose&&this.fileHandle.onclose(this.fileHandle)}}class f{constructor(e="",i=new n([],e),t=!0){this.kind="file",this.deleted=!1,this.file=i,this.name=e,this.writable=t}async getFile(){if(this.deleted||this.file===null)throw new DOMException(...s);return this.file}async createWritable(e){if(!this.writable)throw new DOMException(...O);if(this.deleted)throw new DOMException(...s);return new D(this,!!e?.keepExistingData)}async isSameEntry(e){return this===e}destroy(){this.deleted=!0,this.file=null}}class h{constructor(e,i=!0){this.kind="directory",this.deleted=!1,this._entries={},this.name=e,this.writable=i}async*entries(){if(this.deleted)throw new DOMException(...s);yield*Object.entries(this._entries)}async isSameEntry(e){return this===e}async getDirectoryHandle(e,i={}){if(this.deleted)throw new DOMException(...s);const t=this._entries[e];if(t){if(t instanceof f)throw new DOMException(...w);return t}else{if(i.create)return this._entries[e]=new h(e);throw new DOMException(...s)}}async getFileHandle(e,i={}){const t=this._entries[e];if(t){if(t instanceof f)return t;throw new DOMException(...w)}else{if(i.create)return this._entries[e]=new f(e);throw new DOMException(...s)}}async removeEntry(e,i={}){const t=this._entries[e];if(!t)throw new DOMException(...s);t.destroy(i.recursive),delete this._entries[e]}destroy(e){for(let i of Object.values(this._entries)){if(!e)throw new DOMException(...E);i.destroy(e)}this._entries={},this.deleted=!0}}const M=new h(""),g=()=>M;export{f as FileHandle,h as FolderHandle,g as default,m as setBlobImpl,b as setFileImpl}; +import{a4 as c,a5 as y}from"./ChartManager-beed98d8.js";let n=globalThis.File,p=globalThis.Blob;const b=o=>{n=o},m=o=>{p=o},{INVALID:z,GONE:s,MISMATCH:w,MOD_ERR:E,SYNTAX:l,DISALLOWED:O}=c;class D{constructor(e,i){this.fileHandle=e,this.file=i?e.file:new n([],e.file.name,e.file),this.size=i?e.file.size:0,this.position=0}async write(e){if(!this.fileHandle.file)throw new DOMException(...s);let i=this.file;if(y(e)){if(e.type==="write"){if(typeof e.position=="number"&&e.position>=0&&(this.position=e.position,this.size=0){if(this.size=0){i=e.sizei.size&&(this.position=i.size),this.file=i;return}else throw new DOMException(...l("truncate requires a size argument"))}e=new p([e]);let t=this.file;const a=t.slice(0,this.position),d=t.slice(this.position+e.size);let r=this.position-a.size;r<0&&(r=0),t=new n([a,new Uint8Array(r),e,d],t.name),this.size=t.size,this.position+=e.size,this.file=t}async close(){if(!this.fileHandle.file)throw new DOMException(...s);this.fileHandle.file=this.file,this.file=this.position=this.size=null,this.fileHandle.onclose&&this.fileHandle.onclose(this.fileHandle)}}class f{constructor(e="",i=new n([],e),t=!0){this.kind="file",this.deleted=!1,this.file=i,this.name=e,this.writable=t}async getFile(){if(this.deleted||this.file===null)throw new DOMException(...s);return this.file}async createWritable(e){if(!this.writable)throw new DOMException(...O);if(this.deleted)throw new DOMException(...s);return new D(this,!!e?.keepExistingData)}async isSameEntry(e){return this===e}destroy(){this.deleted=!0,this.file=null}}class h{constructor(e,i=!0){this.kind="directory",this.deleted=!1,this._entries={},this.name=e,this.writable=i}async*entries(){if(this.deleted)throw new DOMException(...s);yield*Object.entries(this._entries)}async isSameEntry(e){return this===e}async getDirectoryHandle(e,i={}){if(this.deleted)throw new DOMException(...s);const t=this._entries[e];if(t){if(t instanceof f)throw new DOMException(...w);return t}else{if(i.create)return this._entries[e]=new h(e);throw new DOMException(...s)}}async getFileHandle(e,i={}){const t=this._entries[e];if(t){if(t instanceof f)return t;throw new DOMException(...w)}else{if(i.create)return this._entries[e]=new f(e);throw new DOMException(...s)}}async removeEntry(e,i={}){const t=this._entries[e];if(!t)throw new DOMException(...s);t.destroy(i.recursive),delete this._entries[e]}destroy(e){for(let i of Object.values(this._entries)){if(!e)throw new DOMException(...E);i.destroy(e)}this._entries={},this.deleted=!0}}const M=new h(""),g=()=>M;export{f as FileHandle,h as FolderHandle,g as default,m as setBlobImpl,b as setFileImpl}; diff --git a/sw.js b/sw.js index c71f14d3..81c070f0 100644 --- a/sw.js +++ b/sw.js @@ -1 +1 @@ -if(!self.define){let s,e={};const n=(n,l)=>(n=new URL(n+".js",l).href,e[n]||new Promise((e=>{if("document"in self){const s=document.createElement("script");s.src=n,s.onload=e,document.head.appendChild(s)}else s=n,importScripts(n),e()})).then((()=>{let s=e[n];if(!s)throw new Error(`Module ${n} didn’t register its module`);return s})));self.define=(l,i)=>{const r=s||("document"in self?document.currentScript.src:"")||location.href;if(e[r])return;let a={};const u=s=>n(s,r),t={module:{uri:r},exports:a,require:u};e[r]=Promise.all(l.map((s=>t[s]||u(s)))).then((s=>(i(...s),a)))}}define(["./workbox-1ab968a5"],(function(s){"use strict";self.skipWaiting(),s.clientsClaim(),s.precacheAndRoute([{url:"AnimatedSprite-d8e8da79.js",revision:null},{url:"app.js",revision:"a3b08041e0a969b0462e1e2f0b41607d"},{url:"app/index.html",revision:"67a92865143f361dc8e66b39a815fcc0"},{url:"assets/ChartManager-00dfcf8b.css",revision:null},{url:"assets/index-2f45f929.css",revision:null},{url:"assets/index-8c6c3f75.css",revision:null},{url:"assets/index-d7a91955.css",revision:null},{url:"assets/SafariFileWorker-557e53c3.js",revision:null},{url:"ChartManager-0bba2271.js",revision:null},{url:"downloader-b702927f.js",revision:null},{url:"embed.js",revision:"02ec3f741e82f9a363071e5717092bce"},{url:"embed/index.html",revision:"8b3e5fa5592c0ef9690d57aea5c84f1f"},{url:"FileSystemWritableFileStream-e4c13ad9.js",revision:null},{url:"HoldBody-2ee2d035.js",revision:null},{url:"index.html",revision:"690fec91f615869495043a6ce70b86a8"},{url:"memory-3d55e3da.js",revision:null},{url:"NodeFileHandler-14aa1e9e.js",revision:null},{url:"Noteskin-008db546.js",revision:null},{url:"Noteskin-0eb7987c.js",revision:null},{url:"Noteskin-288e1d0a.js",revision:null},{url:"Noteskin-3e1bbc62.js",revision:null},{url:"Noteskin-42c37b68.js",revision:null},{url:"Noteskin-4623e307.js",revision:null},{url:"Noteskin-4b0e23b8.js",revision:null},{url:"Noteskin-5c44b6a2.js",revision:null},{url:"Noteskin-66017985.js",revision:null},{url:"Noteskin-83848dd1.js",revision:null},{url:"Noteskin-8cda25e2.js",revision:null},{url:"Noteskin-9af5a76e.js",revision:null},{url:"Noteskin-ae57ec63.js",revision:null},{url:"Noteskin-ebdca60a.js",revision:null},{url:"Noteskin-f02aebb8.js",revision:null},{url:"Noteskin-f5d3d85f.js",revision:null},{url:"OggDec-2941c3fd.js",revision:null},{url:"registerSW.js",revision:"21684c117fd68cc7dc1643829ea87c07"},{url:"web-streams-ponyfill-4a0f4950.js",revision:null},{url:"assets/0-0543793c.png",revision:null},{url:"assets/0-c5249fef.png",revision:null},{url:"assets/1-0e354907.png",revision:null},{url:"assets/1-84dd19f7.png",revision:null},{url:"assets/2-3b873573.png",revision:null},{url:"assets/2-ce5f7b2f.png",revision:null},{url:"assets/3-648105cf.png",revision:null},{url:"assets/3-e5952ffa.png",revision:null},{url:"assets/4-1f9a4a43.png",revision:null},{url:"assets/4-da345826.png",revision:null},{url:"assets/5-b9acdc27.png",revision:null},{url:"assets/5-f6bb9779.png",revision:null},{url:"assets/6-12d00670.png",revision:null},{url:"assets/6-565a7261.png",revision:null},{url:"assets/7-00801dd0.png",revision:null},{url:"assets/7-dd1c0ecf.png",revision:null},{url:"assets/8-94163432.png",revision:null},{url:"assets/8-9a73d4f3.png",revision:null},{url:"assets/active-29dd632a.png",revision:null},{url:"assets/active-d06e5c33.png",revision:null},{url:"assets/analyze-738fe825.mp4",revision:null},{url:"assets/app/versions.json",revision:"223594f6ecde2ce4e9ed61e4f47c9378"},{url:"assets/assist_tick-b8aada2a.ogg",revision:null},{url:"assets/av-05878b27.mp4",revision:null},{url:"assets/banner-fa29dd27.png",revision:null},{url:"assets/base-29930c78.png",revision:null},{url:"assets/body-0862c984.png",revision:null},{url:"assets/bodyActive-105f1d12.png",revision:null},{url:"assets/bodyActive-56c9977a.png",revision:null},{url:"assets/bodyActive-614d0188.png",revision:null},{url:"assets/bodyActive-889762ad.png",revision:null},{url:"assets/bodyActive-b3d95e51.png",revision:null},{url:"assets/bodyInactive-1234f594.png",revision:null},{url:"assets/bodyInactive-5d99335a.png",revision:null},{url:"assets/bodyInactive-72253162.png",revision:null},{url:"assets/bodyInactive-cfc41138.png",revision:null},{url:"assets/bodyInactive-e5ca65be.png",revision:null},{url:"assets/bottomCapActive-32ba7c5b.png",revision:null},{url:"assets/bottomCapActive-50553ab4.png",revision:null},{url:"assets/bottomCapActive-58c18c0b.png",revision:null},{url:"assets/bottomCapActive-75c2fd66.png",revision:null},{url:"assets/bottomCapInactive-177e377e.png",revision:null},{url:"assets/bottomCapInactive-d275b2b2.png",revision:null},{url:"assets/bottomCapInactive-d8fa251d.png",revision:null},{url:"assets/bottomCapInactive-e990106f.png",revision:null},{url:"assets/cap-8cc2992c.png",revision:null},{url:"assets/cap-e2813a45.png",revision:null},{url:"assets/capActive-59a3b423.png",revision:null},{url:"assets/capActive-e83fb138.png",revision:null},{url:"assets/capInactive-4622d5f2.png",revision:null},{url:"assets/capInactive-efc3b952.png",revision:null},{url:"assets/Center-1b6bfec9.png",revision:null},{url:"assets/Center-274a1642.png",revision:null},{url:"assets/Center-461a85de.png",revision:null},{url:"assets/Center-55e9b68a.png",revision:null},{url:"assets/Center-cb4b6c25.png",revision:null},{url:"assets/Center-df4c129b.png",revision:null},{url:"assets/centerReceptor-44665c43.png",revision:null},{url:"assets/colors-63f923d2.png",revision:null},{url:"assets/decent-79d4c208.png",revision:null},{url:"assets/decent-cc4ef7ea.png",revision:null},{url:"assets/decent-f3f8a110.png",revision:null},{url:"assets/downBodyActive-77f6502e.png",revision:null},{url:"assets/downBodyActive-8cf886d3.png",revision:null},{url:"assets/downBodyActive-dd1fd694.png",revision:null},{url:"assets/downBodyInactive-7465edd0.png",revision:null},{url:"assets/downBodyInactive-a5759c62.png",revision:null},{url:"assets/downBodyInactive-c781a303.png",revision:null},{url:"assets/downBottomCapActive-57ef4d54.png",revision:null},{url:"assets/downBottomCapActive-b10d1f0d.png",revision:null},{url:"assets/downBottomCapInactive-12cafebe.png",revision:null},{url:"assets/downBottomCapInactive-13ddf252.png",revision:null},{url:"assets/DownLeft-15647c81.png",revision:null},{url:"assets/DownLeft-19d91486.png",revision:null},{url:"assets/DownLeft-242c6bf3.png",revision:null},{url:"assets/DownLeft-4943410c.png",revision:null},{url:"assets/DownLeft-63c88ff1.png",revision:null},{url:"assets/DownLeft-94341616.png",revision:null},{url:"assets/downLeftReceptor-9be8faae.png",revision:null},{url:"assets/DownRight-3c57e4fa.png",revision:null},{url:"assets/DownRight-9aba7559.png",revision:null},{url:"assets/DownRight-a869fa38.png",revision:null},{url:"assets/DownRight-bcd0e463.png",revision:null},{url:"assets/DownRight-d5c3b98a.png",revision:null},{url:"assets/DownRight-e2cf2b7d.png",revision:null},{url:"assets/embed-8c85cbda.png",revision:null},{url:"assets/eq-6befbaef.mp4",revision:null},{url:"assets/excellent-30398c95.png",revision:null},{url:"assets/excellent-84718ac0.png",revision:null},{url:"assets/excellent-ab7ec4d8.png",revision:null},{url:"assets/exportlua-6de45f3b.png",revision:null},{url:"assets/fakeCenter-581c6a3b.png",revision:null},{url:"assets/fakeDownLeft-e3208bb3.png",revision:null},{url:"assets/fantastic-1755e773.png",revision:null},{url:"assets/fantastic-65c1c0cf.png",revision:null},{url:"assets/fantastic-ebaa2496.png",revision:null},{url:"assets/flash-5a32532f.png",revision:null},{url:"assets/flash-ac45db5d.png",revision:null},{url:"assets/flash-be9c0562.png",revision:null},{url:"assets/flash-d0eff0a1.png",revision:null},{url:"assets/flash-e524b5bd.png",revision:null},{url:"assets/flashBright-d5407f78.png",revision:null},{url:"assets/font/Assistant-Hebrew.woff2",revision:"e99c63e8dcd7799e8adf32df82b46376"},{url:"assets/font/Assistant-Latin.woff2",revision:"a416191c7641acf049f804b685235d3d"},{url:"assets/font/Assistant-LatinExt.woff2",revision:"2423d82cdbc6a34b99d5bbacf82623c7"},{url:"assets/frame-d599a2fe.png",revision:null},{url:"assets/frameChrome-2ea8bbf3.png",revision:null},{url:"assets/git-67477794.png",revision:null},{url:"assets/great-0e864574.png",revision:null},{url:"assets/great-cf911e79.png",revision:null},{url:"assets/great-f56818a7.png",revision:null},{url:"assets/hold_judgement-82934f15.png",revision:null},{url:"assets/hold-0c4ffc42.png",revision:null},{url:"assets/hold-160934d9.png",revision:null},{url:"assets/hold-3ccaaf09.png",revision:null},{url:"assets/hold-3f899175.png",revision:null},{url:"assets/hold-4cf23d59.png",revision:null},{url:"assets/hold-5651661d.png",revision:null},{url:"assets/hold-7b947e11.png",revision:null},{url:"assets/icon/favicon.ico",revision:"7bcbdd2344641a21b0f6f9393b491d65"},{url:"assets/icon/icon_512.png",revision:"1a4014fcbfaa08050ff38cabb8235165"},{url:"assets/icon/logo.png",revision:"3170c21a8539047fffea9eb4bd912d8e"},{url:"assets/icon/mac.icns",revision:"ac52a49fb658a942abeaa019bd05e9aa"},{url:"assets/inactive-48f23de3.png",revision:null},{url:"assets/inactive-a4aecb82.png",revision:null},{url:"assets/judgementITG-5390eacd.png",revision:null},{url:"assets/judgementWaterfall-5bb3f994.png",revision:null},{url:"assets/leftBodyActive-5d89f111.png",revision:null},{url:"assets/leftBodyActive-75d41033.png",revision:null},{url:"assets/leftBodyActive-fd4e902b.png",revision:null},{url:"assets/leftBodyInactive-1110dc77.png",revision:null},{url:"assets/leftBodyInactive-8fe6311e.png",revision:null},{url:"assets/leftBodyInactive-bbc074cd.png",revision:null},{url:"assets/leftBottomCapActive-057c49fb.png",revision:null},{url:"assets/leftBottomCapActive-f759c91c.png",revision:null},{url:"assets/leftBottomCapInactive-a4ac7bba.png",revision:null},{url:"assets/leftBottomCapInactive-df6350c7.png",revision:null},{url:"assets/lift-6db682e7.png",revision:null},{url:"assets/liftCenter-9712ce74.png",revision:null},{url:"assets/liftDownLeft-0205bdc8.png",revision:null},{url:"assets/mask-f1b4d033.png",revision:null},{url:"assets/metronome_high-6fa54e52.ogg",revision:null},{url:"assets/metronome_low-4db4e760.ogg",revision:null},{url:"assets/mine-0e34ec01.png",revision:null},{url:"assets/mine-335f4545.png",revision:null},{url:"assets/mine-590d445e.png",revision:null},{url:"assets/mine-b65ce42d.ogg",revision:null},{url:"assets/missing-81d55ba9.png",revision:null},{url:"assets/mode-cac62e2a.png",revision:null},{url:"assets/mouse-ef7f3cf3.mp4",revision:null},{url:"assets/note-07e5d79f.png",revision:null},{url:"assets/outline-72e881a7.png",revision:null},{url:"assets/overlay-f63a3b18.png",revision:null},{url:"assets/particles-18ec6c1d.png",revision:null},{url:"assets/parts-0c8fa692.png",revision:null},{url:"assets/parts-9668caec.png",revision:null},{url:"assets/parts-9a3f637b.png",revision:null},{url:"assets/parts-b37af2cf.png",revision:null},{url:"assets/playtest-f34f5856.mp4",revision:null},{url:"assets/popup-b6da9784.mp4",revision:null},{url:"assets/pref-fdc09174.mp4",revision:null},{url:"assets/press-55cccb8c.png",revision:null},{url:"assets/press-feed8aa6.png",revision:null},{url:"assets/preview-0f9b00cd.png",revision:null},{url:"assets/preview-17ffcc02.png",revision:null},{url:"assets/preview-26b1bdce.png",revision:null},{url:"assets/preview-2fd7d50c.png",revision:null},{url:"assets/preview-3514cbb3.png",revision:null},{url:"assets/preview-40b76b28.png",revision:null},{url:"assets/preview-4f79831b.png",revision:null},{url:"assets/preview-5d9781d2.png",revision:null},{url:"assets/preview-5ecfc22a.png",revision:null},{url:"assets/preview-72ea0444.png",revision:null},{url:"assets/preview-747db171.png",revision:null},{url:"assets/preview-9fe2bd96.png",revision:null},{url:"assets/preview-b8f75a15.png",revision:null},{url:"assets/preview-d67630f1.png",revision:null},{url:"assets/preview-d6d59d37.png",revision:null},{url:"assets/preview-d763e667.png",revision:null},{url:"assets/preview-f113aacc.png",revision:null},{url:"assets/receptor-13e43ffb.png",revision:null},{url:"assets/receptor-30ecd7a2.png",revision:null},{url:"assets/receptor-3e38f29b.png",revision:null},{url:"assets/receptor-59597a1d.png",revision:null},{url:"assets/receptor-6fa92e51.png",revision:null},{url:"assets/receptor-a0a69b2b.png",revision:null},{url:"assets/receptor-a4713728.png",revision:null},{url:"assets/receptor-d5ef8593.png",revision:null},{url:"assets/receptorFlash-c7675c53.png",revision:null},{url:"assets/receptors-0a59df78.png",revision:null},{url:"assets/receptors-5a0beefb.png",revision:null},{url:"assets/rightBodyActive-07f95372.png",revision:null},{url:"assets/rightBodyActive-751fadec.png",revision:null},{url:"assets/rightBodyActive-8af7624b.png",revision:null},{url:"assets/rightBodyInactive-46202369.png",revision:null},{url:"assets/rightBodyInactive-695480aa.png",revision:null},{url:"assets/rightBodyInactive-fdefc2a4.png",revision:null},{url:"assets/rightBottomCapActive-6edeea1e.png",revision:null},{url:"assets/rightBottomCapActive-a736d803.png",revision:null},{url:"assets/rightBottomCapInactive-a64cea2c.png",revision:null},{url:"assets/rightBottomCapInactive-d674960e.png",revision:null},{url:"assets/scrolls-a04758c8.mp4",revision:null},{url:"assets/spark-2c59cc0e.png",revision:null},{url:"assets/stroke-1f54ba14.png",revision:null},{url:"assets/svg/ADD_EVENT.svg",revision:"3bf1426558fe2c59723905769f9dbf44"},{url:"assets/svg/ADD_FILE.svg",revision:"0cbb4c6f95ccdae8e5c5e358e021874e"},{url:"assets/svg/CHEVRON.svg",revision:"e379dea6fdc3e7faa1033e01f5c9551f"},{url:"assets/svg/CLAP.svg",revision:"6e0ec4a2e34e1fc5643b1492deac520c"},{url:"assets/svg/CLOSE_WINDOW.svg",revision:"5a830a27cc07aae3a21deb2f5a6fa9b9"},{url:"assets/svg/COPY.svg",revision:"94fe4e617349ad3c89cede7ee900d391"},{url:"assets/svg/DBL_CHEVRON.svg",revision:"5baff238d099cd65a6b54bc41d92dc59"},{url:"assets/svg/DETECT_SYNC.svg",revision:"b9b6cc287adf7fef4485899835ea3c13"},{url:"assets/svg/DOWNLOAD.svg",revision:"67c6e0e66d510bfe9590a9f8154ddf43"},{url:"assets/svg/EDIT.svg",revision:"89ac21574175ba70a0ba09ca6ba784ba"},{url:"assets/svg/EYE.svg",revision:"d4400c91178716f68e9099e237c7c671"},{url:"assets/svg/FEET.svg",revision:"01607729992f69dd5731642a118c7677"},{url:"assets/svg/FOLDER.svg",revision:"5618bc8736afa888944207dac0d53c33"},{url:"assets/svg/HIGHPASS.svg",revision:"3d3c3465decabcb2d9e2c50ee7b0d047"},{url:"assets/svg/HIGHSHELF.svg",revision:"8d348b68061c498d9dca385be140eb95"},{url:"assets/svg/IMAGE_FILE.svg",revision:"33f6364c93e7c51a2fb539c536607659"},{url:"assets/svg/LINK_BROKEN.svg",revision:"d00f815ad8fd2dee1188d5b395f78e19"},{url:"assets/svg/LINK.svg",revision:"cea24cc83a677857158c8dcdf32d0228"},{url:"assets/svg/LOWPASS.svg",revision:"12694371d2572549fed0a48ed11cdee3"},{url:"assets/svg/LOWSHELF.svg",revision:"9b2e2fbf2c76fd115cb794bf2c4b4999"},{url:"assets/svg/MENU_VERTICAL.svg",revision:"4a0ffba6dfc324979b6204dd2354e8eb"},{url:"assets/svg/METRONOME.svg",revision:"6605cb1d1ec6821ccf0d73011739ae00"},{url:"assets/svg/MINIMIZE.svg",revision:"efea4d82097ceef2d001fc91325417da"},{url:"assets/svg/PEAKING.svg",revision:"ded7f8e515e7a552aab770eaf0edf93a"},{url:"assets/svg/PLAY.svg",revision:"47a3f485918a09effbcd1f99fbcc2ce3"},{url:"assets/svg/PLAYTEST.svg",revision:"ae455e6518022d467b0dd79269e9a8af"},{url:"assets/svg/PLUS.svg",revision:"f4694d31eb7f609c2510a9fe36dd4f12"},{url:"assets/svg/RECORD.svg",revision:"c94e7371259bc6a865996560b6656268"},{url:"assets/svg/REVERT.svg",revision:"ecd1fc1b8b0811062e3fc9a887bec68d"},{url:"assets/svg/SKIP_END.svg",revision:"43f4154ca656d2017a2b41a1dfacd671"},{url:"assets/svg/SKIP_START.svg",revision:"690fdfb6d41b25ccb4bd5aa9f65b81f1"},{url:"assets/svg/SM_FILE.svg",revision:"0c5917f0b2e2b7401097071030cc7bd1"},{url:"assets/svg/SPEED.svg",revision:"c8ecff8943040cee73642d289f25c5c9"},{url:"assets/svg/STOP.svg",revision:"2dd4917e08b23080980202ed52b8a7eb"},{url:"assets/svg/TRASH.svg",revision:"55f80a8cf8bb4aed29a3089807064464"},{url:"assets/svg/UNKNOWN_FILE.svg",revision:"d1196a02d693ed3d3f0d064f5c3d1815"},{url:"assets/svg/UPLOAD.svg",revision:"3009c00a98d4a6fe2d0ebbb1e626ee43"},{url:"assets/svg/VOLUME.svg",revision:"b971f09af774996aeeee9749ddb6949a"},{url:"assets/svg/X_CLAP.svg",revision:"00875c090478341862b257d3655922d8"},{url:"assets/svg/X_EYE.svg",revision:"0bf002a7e35febde50e7b2ce116c2139"},{url:"assets/svg/X_METRONOME.svg",revision:"abcb5baff6f1683403a1362b5f0ee561"},{url:"assets/tap-69a9f81d.png",revision:null},{url:"assets/tap-c1e36633.png",revision:null},{url:"assets/tapCenter-103680e8.png",revision:null},{url:"assets/tapDownLeft-17ba3b42.png",revision:null},{url:"assets/timesig-9e28e1f2.png",revision:null},{url:"assets/top-74da30ae.png",revision:null},{url:"assets/underlay-95144bef.png",revision:null},{url:"assets/upBodyActive-b06d82f3.png",revision:null},{url:"assets/upBodyActive-c813881f.png",revision:null},{url:"assets/upBodyInactive-0222237a.png",revision:null},{url:"assets/upBodyInactive-4ef75342.png",revision:null},{url:"assets/upBodyInactive-87a7969e.png",revision:null},{url:"assets/upBottomCapActive-07fb7c6e.png",revision:null},{url:"assets/upBottomCapActive-19e4c05d.png",revision:null},{url:"assets/upBottomCapInactive-23aae747.png",revision:null},{url:"assets/upBottomCapInactive-75f78aac.png",revision:null},{url:"assets/UpLeft-28515625.png",revision:null},{url:"assets/UpLeft-36744666.png",revision:null},{url:"assets/UpLeft-752b6821.png",revision:null},{url:"assets/UpLeft-be2bb52b.png",revision:null},{url:"assets/UpLeft-d457a441.png",revision:null},{url:"assets/UpLeft-ef9a2609.png",revision:null},{url:"assets/upleftBodyActive-bc79d60f.png",revision:null},{url:"assets/upleftBodyInactive-f60085c6.png",revision:null},{url:"assets/UpRight-2e4dc3f1.png",revision:null},{url:"assets/UpRight-7924deeb.png",revision:null},{url:"assets/UpRight-8a892589.png",revision:null},{url:"assets/UpRight-91e454bc.png",revision:null},{url:"assets/UpRight-af6dd110.png",revision:null},{url:"assets/UpRight-fda6b516.png",revision:null},{url:"assets/uprightBodyActive-3d912f52.png",revision:null},{url:"assets/uprightBodyInactive-01c6c977.png",revision:null},{url:"assets/w0-6f86addb.png",revision:null},{url:"assets/w1-c8c43b0f.png",revision:null},{url:"assets/w2-37282ba8.png",revision:null},{url:"assets/w3-3c2ca2d8.png",revision:null},{url:"assets/w4-ce0f95de.png",revision:null},{url:"assets/w5-23173d4f.png",revision:null},{url:"assets/way_off-8bc3fd65.png",revision:null},{url:"assets/way_off-bc2cdf11.png",revision:null},{url:"assets/way_off-cc9a5377.png",revision:null},{url:"assets/white_fantastic-6c519378.png",revision:null},{url:"assets/white_fantastic-9f83da7a.png",revision:null},{url:"assets/white_fantastic-b65b4f11.png",revision:null},{url:"assets/icon/icon_512.png",revision:"1a4014fcbfaa08050ff38cabb8235165"},{url:"manifest.json",revision:"1d72161daa4e530e15d85baf4906bf4c"}],{ignoreURLParametersMatching:[/^flags/,/^url/,/^chartIndex/,/^chartType/]}),s.cleanupOutdatedCaches()})); +if(!self.define){let s,e={};const n=(n,l)=>(n=new URL(n+".js",l).href,e[n]||new Promise((e=>{if("document"in self){const s=document.createElement("script");s.src=n,s.onload=e,document.head.appendChild(s)}else s=n,importScripts(n),e()})).then((()=>{let s=e[n];if(!s)throw new Error(`Module ${n} didn’t register its module`);return s})));self.define=(l,i)=>{const r=s||("document"in self?document.currentScript.src:"")||location.href;if(e[r])return;let a={};const u=s=>n(s,r),t={module:{uri:r},exports:a,require:u};e[r]=Promise.all(l.map((s=>t[s]||u(s)))).then((s=>(i(...s),a)))}}define(["./workbox-1ab968a5"],(function(s){"use strict";self.skipWaiting(),s.clientsClaim(),s.precacheAndRoute([{url:"AnimatedSprite-b9500bfb.js",revision:null},{url:"app.js",revision:"d012fab39b574b7a2cff6b35d32f1d9b"},{url:"app/index.html",revision:"b0ce16042dac3efdf8365b0634fbc8f2"},{url:"assets/ChartManager-00dfcf8b.css",revision:null},{url:"assets/index-8c6c3f75.css",revision:null},{url:"assets/index-a7b593d7.css",revision:null},{url:"assets/index-d7a91955.css",revision:null},{url:"assets/SafariFileWorker-557e53c3.js",revision:null},{url:"ChartManager-beed98d8.js",revision:null},{url:"downloader-0b8b331a.js",revision:null},{url:"embed.js",revision:"a88dfc88be97f115433ec54cf7a403a6"},{url:"embed/index.html",revision:"80aae08fb09823f4ef14657f0fd8fd63"},{url:"FileSystemWritableFileStream-e4c13ad9.js",revision:null},{url:"HoldBody-b84029dd.js",revision:null},{url:"index.html",revision:"690fec91f615869495043a6ce70b86a8"},{url:"memory-338b395e.js",revision:null},{url:"NodeFileHandler-8dea5141.js",revision:null},{url:"Noteskin-03c71a59.js",revision:null},{url:"Noteskin-0b1bf5ac.js",revision:null},{url:"Noteskin-11a7e121.js",revision:null},{url:"Noteskin-246a4d2b.js",revision:null},{url:"Noteskin-3e814503.js",revision:null},{url:"Noteskin-4cb99da6.js",revision:null},{url:"Noteskin-50fcabf7.js",revision:null},{url:"Noteskin-66177a43.js",revision:null},{url:"Noteskin-771aeac1.js",revision:null},{url:"Noteskin-7dfd06de.js",revision:null},{url:"Noteskin-8fb8953e.js",revision:null},{url:"Noteskin-ac1c3283.js",revision:null},{url:"Noteskin-b4c11d59.js",revision:null},{url:"Noteskin-c0555f91.js",revision:null},{url:"Noteskin-df1a4e5a.js",revision:null},{url:"Noteskin-fcff308e.js",revision:null},{url:"OggDec-2941c3fd.js",revision:null},{url:"registerSW.js",revision:"21684c117fd68cc7dc1643829ea87c07"},{url:"web-streams-ponyfill-4a0f4950.js",revision:null},{url:"assets/0-0543793c.png",revision:null},{url:"assets/0-c5249fef.png",revision:null},{url:"assets/1-0e354907.png",revision:null},{url:"assets/1-84dd19f7.png",revision:null},{url:"assets/2-3b873573.png",revision:null},{url:"assets/2-ce5f7b2f.png",revision:null},{url:"assets/3-648105cf.png",revision:null},{url:"assets/3-e5952ffa.png",revision:null},{url:"assets/4-1f9a4a43.png",revision:null},{url:"assets/4-da345826.png",revision:null},{url:"assets/5-b9acdc27.png",revision:null},{url:"assets/5-f6bb9779.png",revision:null},{url:"assets/6-12d00670.png",revision:null},{url:"assets/6-565a7261.png",revision:null},{url:"assets/7-00801dd0.png",revision:null},{url:"assets/7-dd1c0ecf.png",revision:null},{url:"assets/8-94163432.png",revision:null},{url:"assets/8-9a73d4f3.png",revision:null},{url:"assets/active-29dd632a.png",revision:null},{url:"assets/active-d06e5c33.png",revision:null},{url:"assets/analyze-738fe825.mp4",revision:null},{url:"assets/app/versions.json",revision:"223594f6ecde2ce4e9ed61e4f47c9378"},{url:"assets/assist_tick-b8aada2a.ogg",revision:null},{url:"assets/av-05878b27.mp4",revision:null},{url:"assets/banner-fa29dd27.png",revision:null},{url:"assets/base-29930c78.png",revision:null},{url:"assets/body-0862c984.png",revision:null},{url:"assets/bodyActive-105f1d12.png",revision:null},{url:"assets/bodyActive-56c9977a.png",revision:null},{url:"assets/bodyActive-614d0188.png",revision:null},{url:"assets/bodyActive-889762ad.png",revision:null},{url:"assets/bodyActive-b3d95e51.png",revision:null},{url:"assets/bodyInactive-1234f594.png",revision:null},{url:"assets/bodyInactive-5d99335a.png",revision:null},{url:"assets/bodyInactive-72253162.png",revision:null},{url:"assets/bodyInactive-cfc41138.png",revision:null},{url:"assets/bodyInactive-e5ca65be.png",revision:null},{url:"assets/bottomCapActive-32ba7c5b.png",revision:null},{url:"assets/bottomCapActive-50553ab4.png",revision:null},{url:"assets/bottomCapActive-58c18c0b.png",revision:null},{url:"assets/bottomCapActive-75c2fd66.png",revision:null},{url:"assets/bottomCapInactive-177e377e.png",revision:null},{url:"assets/bottomCapInactive-d275b2b2.png",revision:null},{url:"assets/bottomCapInactive-d8fa251d.png",revision:null},{url:"assets/bottomCapInactive-e990106f.png",revision:null},{url:"assets/cap-8cc2992c.png",revision:null},{url:"assets/cap-e2813a45.png",revision:null},{url:"assets/capActive-59a3b423.png",revision:null},{url:"assets/capActive-e83fb138.png",revision:null},{url:"assets/capInactive-4622d5f2.png",revision:null},{url:"assets/capInactive-efc3b952.png",revision:null},{url:"assets/Center-1b6bfec9.png",revision:null},{url:"assets/Center-274a1642.png",revision:null},{url:"assets/Center-461a85de.png",revision:null},{url:"assets/Center-55e9b68a.png",revision:null},{url:"assets/Center-cb4b6c25.png",revision:null},{url:"assets/Center-df4c129b.png",revision:null},{url:"assets/centerReceptor-44665c43.png",revision:null},{url:"assets/colors-63f923d2.png",revision:null},{url:"assets/decent-79d4c208.png",revision:null},{url:"assets/decent-cc4ef7ea.png",revision:null},{url:"assets/decent-f3f8a110.png",revision:null},{url:"assets/downBodyActive-77f6502e.png",revision:null},{url:"assets/downBodyActive-8cf886d3.png",revision:null},{url:"assets/downBodyActive-dd1fd694.png",revision:null},{url:"assets/downBodyInactive-7465edd0.png",revision:null},{url:"assets/downBodyInactive-a5759c62.png",revision:null},{url:"assets/downBodyInactive-c781a303.png",revision:null},{url:"assets/downBottomCapActive-57ef4d54.png",revision:null},{url:"assets/downBottomCapActive-b10d1f0d.png",revision:null},{url:"assets/downBottomCapInactive-12cafebe.png",revision:null},{url:"assets/downBottomCapInactive-13ddf252.png",revision:null},{url:"assets/DownLeft-15647c81.png",revision:null},{url:"assets/DownLeft-19d91486.png",revision:null},{url:"assets/DownLeft-242c6bf3.png",revision:null},{url:"assets/DownLeft-4943410c.png",revision:null},{url:"assets/DownLeft-63c88ff1.png",revision:null},{url:"assets/DownLeft-94341616.png",revision:null},{url:"assets/downLeftReceptor-9be8faae.png",revision:null},{url:"assets/DownRight-3c57e4fa.png",revision:null},{url:"assets/DownRight-9aba7559.png",revision:null},{url:"assets/DownRight-a869fa38.png",revision:null},{url:"assets/DownRight-bcd0e463.png",revision:null},{url:"assets/DownRight-d5c3b98a.png",revision:null},{url:"assets/DownRight-e2cf2b7d.png",revision:null},{url:"assets/embed-8c85cbda.png",revision:null},{url:"assets/eq-6befbaef.mp4",revision:null},{url:"assets/excellent-30398c95.png",revision:null},{url:"assets/excellent-84718ac0.png",revision:null},{url:"assets/excellent-ab7ec4d8.png",revision:null},{url:"assets/exportlua-6de45f3b.png",revision:null},{url:"assets/fakeCenter-581c6a3b.png",revision:null},{url:"assets/fakeDownLeft-e3208bb3.png",revision:null},{url:"assets/fantastic-1755e773.png",revision:null},{url:"assets/fantastic-65c1c0cf.png",revision:null},{url:"assets/fantastic-ebaa2496.png",revision:null},{url:"assets/flash-5a32532f.png",revision:null},{url:"assets/flash-ac45db5d.png",revision:null},{url:"assets/flash-be9c0562.png",revision:null},{url:"assets/flash-d0eff0a1.png",revision:null},{url:"assets/flash-e524b5bd.png",revision:null},{url:"assets/flashBright-d5407f78.png",revision:null},{url:"assets/font/Assistant-Hebrew.woff2",revision:"e99c63e8dcd7799e8adf32df82b46376"},{url:"assets/font/Assistant-Latin.woff2",revision:"a416191c7641acf049f804b685235d3d"},{url:"assets/font/Assistant-LatinExt.woff2",revision:"2423d82cdbc6a34b99d5bbacf82623c7"},{url:"assets/frame-d599a2fe.png",revision:null},{url:"assets/frameChrome-2ea8bbf3.png",revision:null},{url:"assets/git-67477794.png",revision:null},{url:"assets/great-0e864574.png",revision:null},{url:"assets/great-cf911e79.png",revision:null},{url:"assets/great-f56818a7.png",revision:null},{url:"assets/hold_judgement-82934f15.png",revision:null},{url:"assets/hold-0c4ffc42.png",revision:null},{url:"assets/hold-160934d9.png",revision:null},{url:"assets/hold-3ccaaf09.png",revision:null},{url:"assets/hold-3f899175.png",revision:null},{url:"assets/hold-4cf23d59.png",revision:null},{url:"assets/hold-5651661d.png",revision:null},{url:"assets/hold-7b947e11.png",revision:null},{url:"assets/icon/favicon.ico",revision:"7bcbdd2344641a21b0f6f9393b491d65"},{url:"assets/icon/icon_512.png",revision:"1a4014fcbfaa08050ff38cabb8235165"},{url:"assets/icon/logo.png",revision:"3170c21a8539047fffea9eb4bd912d8e"},{url:"assets/icon/mac.icns",revision:"ac52a49fb658a942abeaa019bd05e9aa"},{url:"assets/inactive-48f23de3.png",revision:null},{url:"assets/inactive-a4aecb82.png",revision:null},{url:"assets/judgementITG-5390eacd.png",revision:null},{url:"assets/judgementWaterfall-5bb3f994.png",revision:null},{url:"assets/leftBodyActive-5d89f111.png",revision:null},{url:"assets/leftBodyActive-75d41033.png",revision:null},{url:"assets/leftBodyActive-fd4e902b.png",revision:null},{url:"assets/leftBodyInactive-1110dc77.png",revision:null},{url:"assets/leftBodyInactive-8fe6311e.png",revision:null},{url:"assets/leftBodyInactive-bbc074cd.png",revision:null},{url:"assets/leftBottomCapActive-057c49fb.png",revision:null},{url:"assets/leftBottomCapActive-f759c91c.png",revision:null},{url:"assets/leftBottomCapInactive-a4ac7bba.png",revision:null},{url:"assets/leftBottomCapInactive-df6350c7.png",revision:null},{url:"assets/lift-6db682e7.png",revision:null},{url:"assets/liftCenter-9712ce74.png",revision:null},{url:"assets/liftDownLeft-0205bdc8.png",revision:null},{url:"assets/mask-f1b4d033.png",revision:null},{url:"assets/metronome_high-6fa54e52.ogg",revision:null},{url:"assets/metronome_low-4db4e760.ogg",revision:null},{url:"assets/mine-0e34ec01.png",revision:null},{url:"assets/mine-335f4545.png",revision:null},{url:"assets/mine-590d445e.png",revision:null},{url:"assets/mine-b65ce42d.ogg",revision:null},{url:"assets/missing-81d55ba9.png",revision:null},{url:"assets/mode-cac62e2a.png",revision:null},{url:"assets/mouse-ef7f3cf3.mp4",revision:null},{url:"assets/note-07e5d79f.png",revision:null},{url:"assets/outline-72e881a7.png",revision:null},{url:"assets/overlay-f63a3b18.png",revision:null},{url:"assets/particles-18ec6c1d.png",revision:null},{url:"assets/parts-0c8fa692.png",revision:null},{url:"assets/parts-9668caec.png",revision:null},{url:"assets/parts-9a3f637b.png",revision:null},{url:"assets/parts-b37af2cf.png",revision:null},{url:"assets/playtest-f34f5856.mp4",revision:null},{url:"assets/popup-b6da9784.mp4",revision:null},{url:"assets/pref-fdc09174.mp4",revision:null},{url:"assets/press-55cccb8c.png",revision:null},{url:"assets/press-feed8aa6.png",revision:null},{url:"assets/preview-0f9b00cd.png",revision:null},{url:"assets/preview-17ffcc02.png",revision:null},{url:"assets/preview-26b1bdce.png",revision:null},{url:"assets/preview-2fd7d50c.png",revision:null},{url:"assets/preview-3514cbb3.png",revision:null},{url:"assets/preview-40b76b28.png",revision:null},{url:"assets/preview-4f79831b.png",revision:null},{url:"assets/preview-5d9781d2.png",revision:null},{url:"assets/preview-5ecfc22a.png",revision:null},{url:"assets/preview-72ea0444.png",revision:null},{url:"assets/preview-747db171.png",revision:null},{url:"assets/preview-9fe2bd96.png",revision:null},{url:"assets/preview-b8f75a15.png",revision:null},{url:"assets/preview-d67630f1.png",revision:null},{url:"assets/preview-d6d59d37.png",revision:null},{url:"assets/preview-d763e667.png",revision:null},{url:"assets/preview-f113aacc.png",revision:null},{url:"assets/receptor-13e43ffb.png",revision:null},{url:"assets/receptor-30ecd7a2.png",revision:null},{url:"assets/receptor-3e38f29b.png",revision:null},{url:"assets/receptor-59597a1d.png",revision:null},{url:"assets/receptor-6fa92e51.png",revision:null},{url:"assets/receptor-a0a69b2b.png",revision:null},{url:"assets/receptor-a4713728.png",revision:null},{url:"assets/receptor-d5ef8593.png",revision:null},{url:"assets/receptorFlash-c7675c53.png",revision:null},{url:"assets/receptors-0a59df78.png",revision:null},{url:"assets/receptors-5a0beefb.png",revision:null},{url:"assets/rightBodyActive-07f95372.png",revision:null},{url:"assets/rightBodyActive-751fadec.png",revision:null},{url:"assets/rightBodyActive-8af7624b.png",revision:null},{url:"assets/rightBodyInactive-46202369.png",revision:null},{url:"assets/rightBodyInactive-695480aa.png",revision:null},{url:"assets/rightBodyInactive-fdefc2a4.png",revision:null},{url:"assets/rightBottomCapActive-6edeea1e.png",revision:null},{url:"assets/rightBottomCapActive-a736d803.png",revision:null},{url:"assets/rightBottomCapInactive-a64cea2c.png",revision:null},{url:"assets/rightBottomCapInactive-d674960e.png",revision:null},{url:"assets/scrolls-a04758c8.mp4",revision:null},{url:"assets/spark-2c59cc0e.png",revision:null},{url:"assets/stroke-1f54ba14.png",revision:null},{url:"assets/svg/ADD_EVENT.svg",revision:"3bf1426558fe2c59723905769f9dbf44"},{url:"assets/svg/ADD_FILE.svg",revision:"0cbb4c6f95ccdae8e5c5e358e021874e"},{url:"assets/svg/CHEVRON.svg",revision:"e379dea6fdc3e7faa1033e01f5c9551f"},{url:"assets/svg/CLAP.svg",revision:"6e0ec4a2e34e1fc5643b1492deac520c"},{url:"assets/svg/CLOSE_WINDOW.svg",revision:"5a830a27cc07aae3a21deb2f5a6fa9b9"},{url:"assets/svg/COPY.svg",revision:"94fe4e617349ad3c89cede7ee900d391"},{url:"assets/svg/DBL_CHEVRON.svg",revision:"5baff238d099cd65a6b54bc41d92dc59"},{url:"assets/svg/DETECT_SYNC.svg",revision:"b9b6cc287adf7fef4485899835ea3c13"},{url:"assets/svg/DOWNLOAD.svg",revision:"67c6e0e66d510bfe9590a9f8154ddf43"},{url:"assets/svg/EDIT.svg",revision:"89ac21574175ba70a0ba09ca6ba784ba"},{url:"assets/svg/EYE.svg",revision:"d4400c91178716f68e9099e237c7c671"},{url:"assets/svg/FEET.svg",revision:"01607729992f69dd5731642a118c7677"},{url:"assets/svg/FOLDER.svg",revision:"5618bc8736afa888944207dac0d53c33"},{url:"assets/svg/HIGHPASS.svg",revision:"3d3c3465decabcb2d9e2c50ee7b0d047"},{url:"assets/svg/HIGHSHELF.svg",revision:"8d348b68061c498d9dca385be140eb95"},{url:"assets/svg/IMAGE_FILE.svg",revision:"33f6364c93e7c51a2fb539c536607659"},{url:"assets/svg/LINK_BROKEN.svg",revision:"d00f815ad8fd2dee1188d5b395f78e19"},{url:"assets/svg/LINK.svg",revision:"cea24cc83a677857158c8dcdf32d0228"},{url:"assets/svg/LOWPASS.svg",revision:"12694371d2572549fed0a48ed11cdee3"},{url:"assets/svg/LOWSHELF.svg",revision:"9b2e2fbf2c76fd115cb794bf2c4b4999"},{url:"assets/svg/MENU_VERTICAL.svg",revision:"4a0ffba6dfc324979b6204dd2354e8eb"},{url:"assets/svg/METRONOME.svg",revision:"6605cb1d1ec6821ccf0d73011739ae00"},{url:"assets/svg/MINIMIZE.svg",revision:"efea4d82097ceef2d001fc91325417da"},{url:"assets/svg/PEAKING.svg",revision:"ded7f8e515e7a552aab770eaf0edf93a"},{url:"assets/svg/PLAY.svg",revision:"47a3f485918a09effbcd1f99fbcc2ce3"},{url:"assets/svg/PLAYTEST.svg",revision:"ae455e6518022d467b0dd79269e9a8af"},{url:"assets/svg/PLUS.svg",revision:"f4694d31eb7f609c2510a9fe36dd4f12"},{url:"assets/svg/RECORD.svg",revision:"c94e7371259bc6a865996560b6656268"},{url:"assets/svg/REVERT.svg",revision:"ecd1fc1b8b0811062e3fc9a887bec68d"},{url:"assets/svg/SKIP_END.svg",revision:"43f4154ca656d2017a2b41a1dfacd671"},{url:"assets/svg/SKIP_START.svg",revision:"690fdfb6d41b25ccb4bd5aa9f65b81f1"},{url:"assets/svg/SM_FILE.svg",revision:"0c5917f0b2e2b7401097071030cc7bd1"},{url:"assets/svg/SPEED.svg",revision:"c8ecff8943040cee73642d289f25c5c9"},{url:"assets/svg/STOP.svg",revision:"2dd4917e08b23080980202ed52b8a7eb"},{url:"assets/svg/TRASH.svg",revision:"55f80a8cf8bb4aed29a3089807064464"},{url:"assets/svg/UNKNOWN_FILE.svg",revision:"d1196a02d693ed3d3f0d064f5c3d1815"},{url:"assets/svg/UPLOAD.svg",revision:"3009c00a98d4a6fe2d0ebbb1e626ee43"},{url:"assets/svg/VOLUME.svg",revision:"b971f09af774996aeeee9749ddb6949a"},{url:"assets/svg/X_CLAP.svg",revision:"00875c090478341862b257d3655922d8"},{url:"assets/svg/X_EYE.svg",revision:"0bf002a7e35febde50e7b2ce116c2139"},{url:"assets/svg/X_METRONOME.svg",revision:"abcb5baff6f1683403a1362b5f0ee561"},{url:"assets/tap-69a9f81d.png",revision:null},{url:"assets/tap-c1e36633.png",revision:null},{url:"assets/tapCenter-103680e8.png",revision:null},{url:"assets/tapDownLeft-17ba3b42.png",revision:null},{url:"assets/timesig-9e28e1f2.png",revision:null},{url:"assets/top-74da30ae.png",revision:null},{url:"assets/underlay-95144bef.png",revision:null},{url:"assets/upBodyActive-b06d82f3.png",revision:null},{url:"assets/upBodyActive-c813881f.png",revision:null},{url:"assets/upBodyInactive-0222237a.png",revision:null},{url:"assets/upBodyInactive-4ef75342.png",revision:null},{url:"assets/upBodyInactive-87a7969e.png",revision:null},{url:"assets/upBottomCapActive-07fb7c6e.png",revision:null},{url:"assets/upBottomCapActive-19e4c05d.png",revision:null},{url:"assets/upBottomCapInactive-23aae747.png",revision:null},{url:"assets/upBottomCapInactive-75f78aac.png",revision:null},{url:"assets/UpLeft-28515625.png",revision:null},{url:"assets/UpLeft-36744666.png",revision:null},{url:"assets/UpLeft-752b6821.png",revision:null},{url:"assets/UpLeft-be2bb52b.png",revision:null},{url:"assets/UpLeft-d457a441.png",revision:null},{url:"assets/UpLeft-ef9a2609.png",revision:null},{url:"assets/upleftBodyActive-bc79d60f.png",revision:null},{url:"assets/upleftBodyInactive-f60085c6.png",revision:null},{url:"assets/UpRight-2e4dc3f1.png",revision:null},{url:"assets/UpRight-7924deeb.png",revision:null},{url:"assets/UpRight-8a892589.png",revision:null},{url:"assets/UpRight-91e454bc.png",revision:null},{url:"assets/UpRight-af6dd110.png",revision:null},{url:"assets/UpRight-fda6b516.png",revision:null},{url:"assets/uprightBodyActive-3d912f52.png",revision:null},{url:"assets/uprightBodyInactive-01c6c977.png",revision:null},{url:"assets/w0-6f86addb.png",revision:null},{url:"assets/w1-c8c43b0f.png",revision:null},{url:"assets/w2-37282ba8.png",revision:null},{url:"assets/w3-3c2ca2d8.png",revision:null},{url:"assets/w4-ce0f95de.png",revision:null},{url:"assets/w5-23173d4f.png",revision:null},{url:"assets/way_off-8bc3fd65.png",revision:null},{url:"assets/way_off-bc2cdf11.png",revision:null},{url:"assets/way_off-cc9a5377.png",revision:null},{url:"assets/white_fantastic-6c519378.png",revision:null},{url:"assets/white_fantastic-9f83da7a.png",revision:null},{url:"assets/white_fantastic-b65b4f11.png",revision:null},{url:"assets/icon/icon_512.png",revision:"1a4014fcbfaa08050ff38cabb8235165"},{url:"manifest.json",revision:"1d72161daa4e530e15d85baf4906bf4c"}],{ignoreURLParametersMatching:[/^flags/,/^url/,/^chartIndex/,/^chartType/]}),s.cleanupOutdatedCaches()}));