web-music-score 0.0.1 → 6.0.0-pre.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/CHANGELOG.md +197 -0
  2. package/LICENSE +62 -1
  3. package/README.md +46 -2
  4. package/dist/audio/index.d.ts +50 -0
  5. package/dist/audio/index.js +1832 -0
  6. package/dist/audio/index.mjs +92 -0
  7. package/dist/audio-cg/index.d.ts +21 -0
  8. package/dist/audio-cg/index.js +17568 -0
  9. package/dist/audio-cg/index.mjs +90 -0
  10. package/dist/audio-synth/index.d.ts +15 -0
  11. package/dist/audio-synth/index.js +18497 -0
  12. package/dist/audio-synth/index.mjs +63 -0
  13. package/dist/chunk-2NTPGV6U.mjs +101 -0
  14. package/dist/chunk-FCR7WBDV.mjs +37 -0
  15. package/dist/chunk-OKY6DMTT.mjs +18381 -0
  16. package/dist/chunk-OZZ3NSJS.mjs +267 -0
  17. package/dist/chunk-SNZ77AGL.mjs +11 -0
  18. package/dist/chunk-URLQD334.mjs +3841 -0
  19. package/dist/core/index.d.ts +31 -0
  20. package/dist/core/index.js +74 -0
  21. package/dist/core/index.mjs +22 -0
  22. package/dist/iife/audio-cg.global.js +220 -0
  23. package/dist/iife/index.global.js +228 -0
  24. package/dist/instrument-DS-9C6_8.d.ts +44 -0
  25. package/dist/music-objects-DLmp5uL6.d.ts +2398 -0
  26. package/dist/note-RVXvpfyV.d.ts +306 -0
  27. package/dist/pieces/index.d.ts +46 -0
  28. package/dist/pieces/index.js +79 -0
  29. package/dist/pieces/index.mjs +50 -0
  30. package/dist/react-ui/index.d.ts +86 -0
  31. package/dist/react-ui/index.js +132 -0
  32. package/dist/react-ui/index.mjs +96 -0
  33. package/dist/scale-B1M10_fu.d.ts +230 -0
  34. package/dist/score/index.d.ts +466 -0
  35. package/dist/score/index.js +13927 -0
  36. package/dist/score/index.mjs +10081 -0
  37. package/dist/tempo-D-JF-8b_.d.ts +409 -0
  38. package/dist/theory/index.d.ts +78 -0
  39. package/dist/theory/index.js +4816 -0
  40. package/dist/theory/index.mjs +1986 -0
  41. package/package.json +131 -3
  42. package/workspace.code-workspace +0 -9
@@ -0,0 +1,228 @@
1
+ /* WebMusicScore v6.0.0-pre.0 | (c) 2023-2025 Stefan Brockmann | MIT License | Includes: Tone.js (MIT License), Color Name to Code (MIT License) */
2
+ "use strict";var WebMusicScore=(()=>{var Ds=Object.defineProperty,fg=Object.defineProperties,gg=Object.getOwnPropertyDescriptor,yg=Object.getOwnPropertyDescriptors,bg=Object.getOwnPropertyNames,Es=Object.getOwnPropertySymbols;var tu=Object.prototype.hasOwnProperty,Hh=Object.prototype.propertyIsEnumerable;var Kc=(i,t)=>(t=Symbol[i])?t:Symbol.for("Symbol."+i),xg=i=>{throw TypeError(i)},$h=Math.pow,Jc=(i,t,e)=>t in i?Ds(i,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[t]=e,O=(i,t)=>{for(var e in t||(t={}))tu.call(t,e)&&Jc(i,e,t[e]);if(Es)for(var e of Es(t))Hh.call(t,e)&&Jc(i,e,t[e]);return i},Q=(i,t)=>fg(i,yg(t));var Qr=(i,t)=>{var e={};for(var r in i)tu.call(i,r)&&t.indexOf(r)<0&&(e[r]=i[r]);if(i!=null&&Es)for(var r of Es(i))t.indexOf(r)<0&&Hh.call(i,r)&&(e[r]=i[r]);return e};var en=(i,t)=>{for(var e in t)Ds(i,e,{get:t[e],enumerable:!0})},Ag=(i,t,e,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of bg(t))!tu.call(i,n)&&n!==e&&Ds(i,n,{get:()=>t[n],enumerable:!(r=gg(t,n))||r.enumerable});return i};var Cg=i=>Ag(Ds({},"__esModule",{value:!0}),i);var d=(i,t,e)=>Jc(i,typeof t!="symbol"?t+"":t,e);var J=(i,t,e)=>new Promise((r,n)=>{var o=c=>{try{a(e.next(c))}catch(u){n(u)}},s=c=>{try{a(e.throw(c))}catch(u){n(u)}},a=c=>c.done?r(c.value):Promise.resolve(c.value).then(o,s);a((e=e.apply(i,t)).next())}),_g=function(i,t){this[0]=i,this[1]=t};var pe=i=>{var t=i[Kc("asyncIterator")],e=!1,r,n={};return t==null?(t=i[Kc("iterator")](),r=o=>n[o]=s=>t[o](s)):(t=t.call(i),r=o=>n[o]=s=>{if(e){if(e=!1,o==="throw")throw s;return s}return e=!0,{done:!1,value:new _g(new Promise(a=>{var c=t[o](s);c instanceof Object||xg("Object expected"),a(c)}),1)}}),n[Kc("iterator")]=()=>n,r("next"),"throw"in t?r("throw"):n.throw=o=>{throw o},"return"in t&&r("return"),n};var c0={};en(c0,{Audio:()=>Fo,Core:()=>hu,Pieces:()=>Yh,Score:()=>Vh,Theory:()=>xu});var Fo={};en(Fo,{addInstrument:()=>Tv,getCurrentInstrument:()=>Iv,getInstrumentList:()=>wv,isMuted:()=>Rv,linearToDecibels:()=>Js,mute:()=>Nv,playNote:()=>Ua,stop:()=>za,unmute:()=>Ov,useInstrument:()=>Kf});var xu={};en(xu,{AccidentalType:()=>du,BeamGrouping:()=>Oi,Chord:()=>pu,DefaultGuitarNoteLabel:()=>PA,DefaultPitchNotation:()=>LA,DefaultTuningName:()=>hC,GuitarNoteLabel:()=>zs,GuitarNoteLabelList:()=>FA,Interval:()=>uo,KeySignature:()=>rr,Mode:()=>lu,Note:()=>U,NoteLength:()=>ir,NoteLengthProps:()=>Nt,PitchNotation:()=>ti,PitchNotationList:()=>kA,RhythmProps:()=>Kt,Scale:()=>ri,ScaleFactory:()=>ne,ScaleType:()=>Ti,SymbolSet:()=>Jr,TimeSignature:()=>ii,TimeSignatures:()=>po,TuningNameList:()=>lo,Tuplet:()=>Gr,alterTempoSpeed:()=>bu,getDefaultKeySignature:()=>Ys,getDefaultScale:()=>eC,getDefaultTempo:()=>Qs,getDefaultTimeSignature:()=>Xs,getPitchNotationName:()=>jA,getScale:()=>Pr,getScaleFactory:()=>Rl,getScaleFactoryList:()=>JA,getTempoString:()=>Ks,getTuningStrings:()=>$s,isNoteLength:()=>nr,isTupletRatio:()=>Zs,validateGuitarNoteLabel:()=>BA,validateIntervalQuality:()=>$A,validateNoteLength:()=>Br,validatePitchNotation:()=>Cl,validateScaleType:()=>ho,validateTuningName:()=>fu,validateTupletRatio:()=>Dl});var Zh=Object.defineProperty,vg=(i,t,e)=>t in i?Zh(i,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[t]=e,er=(i,t)=>{for(var e in t)Zh(i,e,{get:t[e],enumerable:!0})},ft=(i,t,e)=>vg(i,typeof t!="symbol"?t+"":t,e),Xh={};er(Xh,{assert:()=>Qy,doesNotThrow:()=>Sx,doesThrow:()=>vx,fail:()=>eb,isArray:()=>mb,isArrayOrUndefined:()=>fb,isBigInt:()=>Pb,isBoolean:()=>Ib,isBooleanOrUndefined:()=>Tb,isDeepEqual:()=>ib,isDefined:()=>ab,isEmptyArray:()=>gb,isEmptyArrayOrUndefined:()=>bb,isEmptyObject:()=>hb,isEmptyString:()=>Cb,isEmptyStringOrUndefined:()=>Sb,isEnumValue:()=>kb,isEnumValueOrUndefined:()=>Lb,isEven:()=>bx,isFalse:()=>Rb,isFalseOrUndefined:()=>Mb,isFinite:()=>$b,isFloat:()=>Zb,isFunction:()=>Eb,isFunctionOrUndefined:()=>Db,isIncluded:()=>Cx,isIndex:()=>_x,isInfinity:()=>ax,isInteger:()=>Xb,isIntegerBetween:()=>nx,isIntegerBetweenExclusive:()=>ox,isIntegerEq:()=>Jb,isIntegerGt:()=>tx,isIntegerGte:()=>ex,isIntegerLt:()=>rx,isIntegerLte:()=>ix,isIntegerOrUndefined:()=>Kb,isMultipleOf:()=>xx,isNaNValue:()=>sx,isNeg:()=>lx,isNegInfinity:()=>ux,isNegZero:()=>gx,isNonEmptyArray:()=>yb,isNonEmptyArrayOrUndefined:()=>xb,isNonEmptyString:()=>_b,isNonEmptyStringOrUndefined:()=>wb,isNonNeg:()=>px,isNonNull:()=>cb,isNonPos:()=>dx,isNull:()=>ob,isNullish:()=>sb,isNumber:()=>Fb,isNumberBetween:()=>Yb,isNumberBetweenExclusive:()=>Hb,isNumberEq:()=>Vb,isNumberGt:()=>qb,isNumberGte:()=>Wb,isNumberLt:()=>Ub,isNumberLte:()=>zb,isNumberOrUndefined:()=>Gb,isNumericString:()=>jb,isObject:()=>ub,isObjectOrUndefined:()=>db,isOdd:()=>yx,isPlainObject:()=>lb,isPos:()=>hx,isPosInfinity:()=>cx,isPosZero:()=>fx,isPowerOfTwo:()=>Ax,isSafeInteger:()=>Qb,isSafeNumber:()=>Bb,isStrictEqual:()=>rb,isString:()=>Ab,isStringOrUndefined:()=>vb,isTrue:()=>Nb,isTrueOrUndefined:()=>Ob,isTypedObject:()=>pb,isUndefined:()=>nb,isZero:()=>mx,require:()=>Ky,requireDefined:()=>Jy,requireElement:()=>tb,setErrorClass:()=>Xy});var Qh={};er(Qh,{charCount:()=>Yy,chunkString:()=>Wy,insertAt:()=>Uy,isString:()=>el,makeSentenceFromPascal:()=>Hy,removeAt:()=>zy,repeatString:()=>qy,replaceAt:()=>ou,splitByCaps:()=>$y,splitByChars:()=>Zy,splitByStrings:()=>ol,stringify:()=>Gt,toCharArray:()=>Vy});var Kh={};er(Kh,{deepEqual:()=>Ps,getCtorName:()=>nl,hasProperties:()=>Gy,isObject:()=>wi});var y={};er(y,{doesNotThrow:()=>Fy,doesThrow:()=>Py,isArray:()=>je,isArrayOrUndefined:()=>Pg,isBigInt:()=>iy,isBoolean:()=>Hg,isBooleanOrUndefined:()=>$g,isDeepEqual:()=>ao,isDefined:()=>Rg,isEmptyArray:()=>Fg,isEmptyArrayOrUndefined:()=>Gg,isEmptyObject:()=>Eg,isEmptyString:()=>qg,isEmptyStringOrUndefined:()=>zg,isEnumValue:()=>ty,isEnumValueOrUndefined:()=>ey,isEven:()=>Ey,isFalse:()=>Qg,isFalseOrUndefined:()=>Kg,isFinite:()=>rn,isFloat:()=>py,isFunction:()=>_r,isFunctionOrUndefined:()=>Jg,isIncluded:()=>Ly,isIndex:()=>jy,isInfinity:()=>Cy,isInteger:()=>Lt,isIntegerBetween:()=>rl,isIntegerBetweenExclusive:()=>Ay,isIntegerEq:()=>gy,isIntegerGt:()=>yy,isIntegerGte:()=>nu,isIntegerLt:()=>by,isIntegerLte:()=>xy,isIntegerOrUndefined:()=>fy,isMultipleOf:()=>Dy,isNaNValue:()=>il,isNeg:()=>wy,isNegInfinity:()=>vy,isNegZero:()=>Ry,isNonEmptyArray:()=>Bg,isNonEmptyArrayOrUndefined:()=>Vg,isNonEmptyString:()=>Wg,isNonEmptyStringOrUndefined:()=>Yg,isNonNeg:()=>Ty,isNonNull:()=>Mg,isNonPos:()=>Iy,isNull:()=>Ng,isNullish:()=>Og,isNumber:()=>kt,isNumberBetween:()=>ly,isNumberBetweenExclusive:()=>dy,isNumberEq:()=>sy,isNumberGt:()=>ay,isNumberGte:()=>cy,isNumberLt:()=>uy,isNumberLte:()=>hy,isNumberOrUndefined:()=>oy,isNumericString:()=>ry,isObject:()=>wi,isObjectOrUndefined:()=>Dg,isOdd:()=>My,isPlainObject:()=>kg,isPos:()=>Sy,isPosInfinity:()=>_y,isPosZero:()=>Oy,isPowerOfTwo:()=>ky,isSafeInteger:()=>my,isSafeNumber:()=>ny,isStrictEqual:()=>Ig,isString:()=>el,isStringOrUndefined:()=>Ug,isTrue:()=>Zg,isTrueOrUndefined:()=>Xg,isTypedObject:()=>Lg,isUndefined:()=>Tg,isZero:()=>Ny,tryOr:()=>By});var Jh={};er(Jh,{forEachEnum:()=>wg,getEnumEntries:()=>tl,getEnumKey:()=>Sg,getEnumKeys:()=>Fs,getEnumValues:()=>iu});function Fs(i){return Object.keys(i).filter(t=>isNaN(Number(t)))}function iu(i){return Fs(i).map(t=>i[t])}function tl(i){return Fs(i).map(t=>[t,i[t]])}function Sg(i,t){return Fs(i).find(e=>i[e]===t)}function wg(i,t){for(let[e,r]of tl(i))t(e,r)}function Ig(i,t){return i===t}function ao(i,t){return Ps(i,t)}function Tg(i){return i===void 0}function Ng(i){return i===null}function Og(i){return i==null}function Rg(i){return i!==void 0}function Mg(i){return i!==null}function wi(i){return typeof i=="object"&&i!==null&&!je(i)}function Eg(i){return wi(i)&&Object.keys(i).length===0}function Dg(i){return i===void 0||wi(i)}function kg(i){if(!wi(i))return!1;let t=Object.getPrototypeOf(i);return t===Object.prototype||t===null}function Lg(i,t){return wi(i)&&t.every(e=>e in i)}function jg(i){return i instanceof Set}function je(i){return!!i&&Object.prototype.toString.call(i)==="[object Array]"}function Pg(i){return i===void 0||je(i)}function Fg(i){return je(i)&&i.length===0}function Bg(i){return je(i)&&i.length>0}function Gg(i){return je(i)&&i.length===0||i===void 0}function Vg(i){return je(i)&&i.length>0||i===void 0}function el(i){return typeof i=="string"}function qg(i){return typeof i=="string"&&i.length===0}function Wg(i){return typeof i=="string"&&i.length>0}function Ug(i){return i===void 0||typeof i=="string"}function zg(i){return typeof i=="string"&&i.length===0||i===void 0}function Yg(i){return typeof i=="string"&&i.length>0||i===void 0}function Hg(i){return typeof i=="boolean"}function $g(i){return i===void 0||typeof i=="boolean"}function Zg(i){return i===!0}function Xg(i){return i===!0||i===void 0}function Qg(i){return i===!1}function Kg(i){return i===!1||i===void 0}function _r(i){return typeof i=="function"}function Jg(i){return i===void 0||typeof i=="function"}function ty(i,t){return iu(t).some(e=>e===i)}function ey(i,t){return i===void 0||iu(t).some(e=>e===i)}function ry(i){if(typeof i!="string"||i.trim()==="")return!1;let t=+i;return Number.isFinite(t)}function iy(i){return typeof i=="bigint"}function kt(i){return typeof i=="number"}function ny(i){return kt(i)&&Number.isSafeInteger(i)}function oy(i){return typeof i=="number"||i===void 0}function sy(i,t){return kt(i)&&i===t}function ay(i,t){return kt(i)&&kt(t)&&i>t}function cy(i,t){return kt(i)&&kt(t)&&i>=t}function uy(i,t){return kt(i)&&kt(t)&&i<t}function hy(i,t){return kt(i)&&kt(t)&&i<=t}function ly(i,t,e){return kt(i)&&kt(t)&&kt(e)&&i>=t&&i<=e}function dy(i,t,e){return kt(i)&&kt(t)&&kt(e)&&i>t&&i<e}function rn(i){return typeof i=="number"&&Number.isFinite(i)}function py(i){return rn(i)&&!Lt(i)}function Lt(i){return typeof i=="number"&&rn(i)&&i===Math.trunc(i)}function my(i){return Lt(i)&&Number.isSafeInteger(i)}function fy(i){return typeof i=="number"&&rn(i)&&i===Math.trunc(i)||i===void 0}function gy(i,t){return Lt(i)&&i===t}function yy(i,t){return Lt(i)&&kt(t)&&i>t}function nu(i,t){return Lt(i)&&kt(t)&&i>=t}function by(i,t){return Lt(i)&&kt(t)&&i<t}function xy(i,t){return Lt(i)&&kt(t)&&i<=t}function rl(i,t,e){return Lt(i)&&kt(t)&&kt(e)&&i>=t&&i<=e}function Ay(i,t,e){return Lt(i)&&kt(t)&&kt(e)&&i>t&&i<e}function il(i){return typeof i=="number"&&Number.isNaN(i)}function Cy(i){return i===1/0||i===-1/0}function _y(i){return i===1/0}function vy(i){return i===-1/0}function Sy(i){return typeof i=="number"&&i>0}function wy(i){return typeof i=="number"&&i<0}function Iy(i){return typeof i=="number"&&i<=0}function Ty(i){return typeof i=="number"&&i>=0}function Ny(i){return typeof i=="number"&&i===0}function Oy(i){return typeof i=="number"&&i===0&&1/i===1/0}function Ry(i){return typeof i=="number"&&i===0&&1/i===-1/0}function My(i){return Lt(i)&&Math.abs(i)%2===1}function Ey(i){return Lt(i)&&i%2===0}function Dy(i,t){return typeof i=="number"&&typeof t=="number"&&i%t===0}function ky(i){return Lt(i)&&i>0&&(i&i-1)===0}function Ly(i,t){return je(t)?t.includes(i):jg(t)?t.has(i):!1}function jy(i,t){return je(t)?rl(i,0,t.length-1):nu(i,0)}function Py(i){try{return i(),!1}catch(t){return!0}}function Fy(i){try{return i(),!0}catch(t){return!1}}function By(i,t){try{return i()}catch(e){return _r(t)?t():t}}function Gy(i,t){return wi(i)&&t.every(e=>e in i)}function Ps(i,t){if(i===t)return!0;if(i===null||t===null||typeof i!="object"||typeof t!="object")return!1;if(Array.isArray(i)&&Array.isArray(t))return i.length!==t.length?!1:i.every((n,o)=>Ps(n,t[o]));if(Array.isArray(i)!==Array.isArray(t))return!1;let e=Object.keys(i),r=Object.keys(t);if(e.length!==r.length)return!1;for(let n of e)if(!Object.prototype.hasOwnProperty.call(t,n)||!Ps(i[n],t[n]))return!1;return!0}function nl(i){return i===null?"null":je(i)?"Array":typeof i!="object"?typeof i:Object.prototype.toString.call(i).slice(8,-1)||"Object"}function Vy(i){return i.split("")}function qy(i,t){if(!Lt(t)||t<0)throw new Error("repeatStr: Invalid repeatCount = "+t);return new Array(t+1).join(i)}function Wy(i,t){if(!Lt(t)||t<1)throw new Error("chunckString: Invalid chuckSize = "+t);let e=[];for(let r=0;r<i.length;r+=t)e.push(i.slice(r,r+t));return e}function ou(i,t,e,r){if(!Lt(e)||e<0)throw new Error("replaceAt: Invalid removeCount = "+e);if(!Lt(t)||t<0||t+e>i.length)throw new Error("replaceAt: Invalid pos = "+t+", removeCount = "+e+", str.length = "+i.length);return i.substring(0,t)+r+i.substring(t+e)}function Uy(i,t,e){return ou(i,t,0,e)}function zy(i,t,e){return ou(i,t,e,"")}function Yy(i,t){if(t.length!==1||i.length===0)return 0;let e=0;for(let r=0;r<i.length;r++)i[r]===t&&e++;return e}function Hy(i){if(i==="")return"";let t=i.charAt(0),e="",r=()=>{t!==""&&(e===""?e+=t.charAt(0).toUpperCase()+t.substring(1):e+=" "+t,t="")},n=o=>o.toUpperCase()!==o.toLowerCase()&&o===o.toUpperCase();for(let o=1;o<i.length;o++){let s=i.charAt(o);n(s)&&r(),t+=s.toLowerCase()}return r(),e}function Gt(i,t=5,e=new WeakSet){if(i===null)return"null";if(i===void 0)return"undefined";let r=typeof i;switch(r){case"boolean":return i?"true":"false";case"number":return il(i)?"NaN":rn(i)?i.toString():i<0?"-Infinity":"Infinity";case"bigint":return`${i}n`;case"string":return`"${i}"`;case"symbol":return i.description?`Symbol(${i.description})`:"Symbol()";case"function":return`[Function${i.name?` ${i.name}`:""}]`}if(e.has(i))return"[Circular]";if(t<=0)return"[Depth limit]";t--,e.add(i);let n=s=>Gt(s,t,e);if(je(i)){let s=i.map(a=>n(a)).join(", ");return s.length===0?"[ ]":`[ ${s} ]`}if(ArrayBuffer.isView(i)){if(i instanceof DataView)return`DataView(${i.byteLength})`;let s=Array.from(i).map(a=>n(a)).join(", ");return`${i.constructor.name}[ ${s} ]`}if(i instanceof ArrayBuffer)return`ArrayBuffer(${i.byteLength})`;if(i instanceof Map){let s=Array.from(i.entries()).map(([a,c])=>`${n(a)} => ${n(c)}`).join(", ");return s.length===0?`Map(${i.size}){ }`:`Map(${i.size}){ ${s} }`}if(i instanceof Set){let s=Array.from(i.values()).map(a=>n(a)).join(", ");return s.length===0?`Set(${i.size}){ }`:`Set(${i.size}){ ${s} }`}if(i instanceof WeakMap)return"WeakMap{ ? }";if(i instanceof WeakSet)return"WeakSet{ ? }";if(i instanceof Date)return`Date("${i.toISOString()}")`;if(i instanceof RegExp)return i.toString();if(i instanceof Error)return`${i.name}("${i.message}")`;if(i instanceof Promise)return"Promise{ ? }";if(i instanceof URL)return`URL("${i.href}")`;if(i instanceof URLSearchParams)return`URLSearchParams("${i.toString()}")`;if(i===Math)return"Math";if(i===JSON)return"JSON";if(i===Reflect)return"Reflect";if(i===Intl)return"Intl";if(typeof(i==null?void 0:i.toString)=="function"&&i.toString!==Object.prototype.toString)try{let s=i.toString();if(!/^\[object .+\]$/.test(s))return s}catch(s){}if(r==="object"){let s=nl(i),a=Object.entries(i).map(([c,u])=>`${n(c)}: ${n(u)}`);return a.length===0?`${s}{ }`:`${s}{ ${a.join(", ")} }`}return String(i)}function $y(i){return i.split(/(?=[A-Z])/).filter(t=>!!t)}function ol(i,...t){if(t.length===0)return[i];let e=t.map(n=>n.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")),r=new RegExp(e.join("|"),"g");return i.split(r)}function Zy(i,t){return ol(i,...t.split(""))}var L=Gt,sl=Error;function Xy(i){sl=i!=null?i:Error}function V(...i){let t=i.join(", ");throw new sl("Assertion Failed!"+(t===""?"":" "+t))}function Qy(i,t){i||V(t)}function Ky(i,t){return i==null&&V(`Expected ${L(i)} not to be nullish`,t),i}function Jy(i,t){return i===void 0&&V(`Expected ${L(i)} not to be undefined`,t),i}function tb(i,t,e){return y.isIndex(i,t)||V(`Expected ${i} to be index for array ${L(t)}`,e),t[i]}function eb(i){V(i)}function rb(i,t,e){return y.isStrictEqual(i,t)||V(`Expected ${L(i)} to ne strict equal to ${t}`,e),i}function ib(i,t,e){return y.isDeepEqual(i,t)||V(`Expected ${L(i)} to deep equal with ${L(t)}`,e),i}function nb(i,t){return y.isUndefined(i)||V(`Expected ${L(i)} to be undefined`,t),i}function ob(i,t){return y.isNull(i)||V(`Expected ${L(i)} to be null`,t),i}function sb(i,t){return y.isNullish(i)||V(`Expected ${L(i)} to be null or undefined`,t),i}function ab(i,t){return y.isDefined(i)||V(`Expected ${L(i)} to be defined`,t),i}function cb(i,t){return y.isNonNull(i)||V(`Expected ${L(i)} to be defined`,t),i}function ub(i,t){return y.isObject(i)||V(`Expected ${L(i)} to be object`,t),i}function hb(i,t){return y.isEmptyObject(i)||V(`Expected ${L(i)} to be empty object`,t),i}function lb(i,t){return y.isPlainObject(i)||V(`Expected ${L(i)} to be plain object`,t),i}function db(i,t){return y.isObjectOrUndefined(i)||V(`Expected ${L(i)} to be object or undefined`,t),i}function pb(i,t,e){return y.isTypedObject(i,t)||V(`Expected ${L(i)} to have keys ${L(t)}`,e),i}function mb(i,t){return y.isArray(i)||V(`Expected ${L(i)} to be array`,t),i}function fb(i,t){return y.isArrayOrUndefined(i)||V(`Expected ${L(i)} to be array or undefined`,t),!0}function gb(i,t){y.isEmptyArray(i)||V(`Expected ${L(i)} to be empty array`,t)}function yb(i,t){y.isNonEmptyArray(i)||V(`Expected ${L(i)} to be non-empty array`,t)}function bb(i,t){y.isEmptyArrayOrUndefined(i)||V(`Expected ${L(i)} to be empty array or undefined`,t)}function xb(i,t){y.isNonEmptyArrayOrUndefined(i)||V(`Expected ${L(i)} to be non-empty array or undefined`,t)}function Ab(i,t){return y.isString(i)||V(`Expected ${L(i)} to be string`,t),i}function Cb(i,t){return y.isEmptyString(i)||V(`Expected ${L(i)} to be empty string`,t),i}function _b(i,t){return y.isNonEmptyString(i)||V(`Expected ${L(i)} to be non-empty string`,t),i}function vb(i,t){return y.isStringOrUndefined(i)||V(`Expected ${L(i)} to be string or undefined`,t),i}function Sb(i,t){return y.isEmptyStringOrUndefined(i)||V(`Expected ${L(i)} to be empty string or undefined`,t),i}function wb(i,t){return y.isNonEmptyStringOrUndefined(i)||V(`Expected ${L(i)} to be non-empty string or undefined`,t),i}function Ib(i,t){return y.isBoolean(i)||V(`Expected ${L(i)} to be boolean`,t),i}function Tb(i,t){return y.isBooleanOrUndefined(i)||V(`Expected ${L(i)} to be boolean or undefined`,t),i}function Nb(i,t){return y.isTrue(i)||V(`Expected ${L(i)} to be true`,t),i}function Ob(i,t){return y.isTrueOrUndefined(i)||V(`Expected ${L(i)} to be true or undefined`,t),i}function Rb(i,t){return y.isFalse(i)||V(`Expected ${L(i)} to be false`,t),i}function Mb(i,t){return y.isFalseOrUndefined(i)||V(`Expected ${L(i)} to be false or undefined`,t),i}function Eb(i,t){return y.isFunction(i)||V(`Expected ${L(i)} to be function`,t),i}function Db(i,t){return y.isFunctionOrUndefined(i)||V(`Expected ${L(i)} to be function or undefined`,t),i}function kb(i,t,e){return y.isEnumValue(i,t)||V(`Expected ${L(i)} to be enum val`,e),i}function Lb(i,t,e){return y.isEnumValueOrUndefined(i,t)||V(`Expected ${L(i)} to be enum val or undefined`,e),i}function jb(i,t){return y.isNumericString(i)||V(`Expected ${L(i)} to be numeric string`,t),i}function Pb(i,t){return y.isBigInt(i)||V(`Expected ${L(i)} to be BigInt`,t),i}function Fb(i,t){return y.isNumber(i)||V(`Expected ${L(i)} to be number`,t),i}function Bb(i,t){return y.isSafeNumber(i)||V(`Expected ${L(i)} to be safe number`,t),i}function Gb(i,t){return y.isNumberOrUndefined(i)||V(`Expected ${L(i)} to be number or undefined`,t),i}function Vb(i,t,e){return y.isNumberEq(i,t)||V(`Expected ${L(i)} to be number equal to ${L(t)}`,e),i}function qb(i,t,e){return y.isNumberGt(i,t)||V(`Expected ${L(i)} to be number > ${L(t)}`,e),i}function Wb(i,t,e){return y.isNumberGte(i,t)||V(`Expected ${L(i)} to be number >= ${L(t)}`,e),i}function Ub(i,t,e){return y.isNumberLt(i,t)||V(`Expected ${L(i)} to be number < ${L(t)}`,e),i}function zb(i,t,e){return y.isNumberLte(i,t)||V(`Expected ${L(i)} to be number <= ${L(t)}`,e),i}function Yb(i,t,e,r){return y.isNumberBetween(i,t,e)||V(`Expected number ${L(t)} <= ${L(i)} <= ${L(e)}`,r),i}function Hb(i,t,e,r){return y.isNumberBetweenExclusive(i,t,e)||V(`Expected number ${L(t)} < ${L(i)} < ${L(e)}`,r),i}function $b(i,t){return y.isFinite(i)||V(`Expected ${L(i)} to be finite`,t),i}function Zb(i,t){return y.isFloat(i)||V(`Expected ${L(i)} to be float`,t),i}function Xb(i,t){return y.isInteger(i)||V(`Expected ${L(i)} to be integer`,t),i}function Qb(i,t){return y.isSafeInteger(i)||V(`Expected ${L(i)} to be safe integer`,t),i}function Kb(i,t){return y.isIntegerOrUndefined(i)||V(`Expected ${L(i)} to be integer or undefined`,t),i}function Jb(i,t,e){return y.isIntegerEq(i,t)||V(`Expected ${L(i)} to be integer equal to ${L(t)}`,e),i}function tx(i,t,e){return y.isIntegerGt(i,t)||V(`Expected ${L(i)} to be integer > ${L(t)}`,e),i}function ex(i,t,e){return y.isIntegerGte(i,t)||V(`Expected ${L(i)} to be integer >= ${L(t)}`,e),i}function rx(i,t,e){return y.isIntegerLt(i,t)||V(`Expected ${L(i)} to be integer < ${L(t)}`,e),i}function ix(i,t,e){return y.isIntegerLte(i,t)||V(`Expected ${L(i)} to be integer <= ${L(t)}`,e),i}function nx(i,t,e,r){return y.isIntegerBetween(i,t,e)||V(`Expected integer ${L(t)} <= ${L(i)} <= ${L(e)}`,r),i}function ox(i,t,e,r){return y.isIntegerBetweenExclusive(i,t,e)||V(`Expected integer ${L(t)} < ${L(i)} < ${L(e)}`,r),i}function sx(i,t){return y.isNaNValue(i)||V(`Expected ${L(i)} to be NaN`,t),NaN}function ax(i,t){return y.isInfinity(i)||V(`Expected ${L(i)} to be +-Infinity`,t),i}function cx(i,t){return y.isPosInfinity(i)||V(`Expected ${L(i)} to be +Infinity`,t),i}function ux(i,t){return y.isNegInfinity(i)||V(`Expected ${L(i)} to be -Infinity`,t),i}function hx(i,t){return y.isPos(i)||V(`Expected ${L(i)} to be positive (> 0)`,t),i}function lx(i,t){return y.isNeg(i)||V(`Expected ${L(i)} to be negative (< 0)`,t),i}function dx(i,t){return y.isNonPos(i)||V(`Expected ${L(i)} to be non-positive (<= 0)`,t),i}function px(i,t){return y.isNonNeg(i)||V(`Expected ${L(i)} to be non-negative (>= 0)`,t),i}function mx(i,t){return y.isZero(i)||V(`Expected ${L(i)} to be 0`,t),i}function fx(i,t){return y.isPosZero(i)||V(`Expected ${L(i)} to be +0`,t),i}function gx(i,t){return y.isNegZero(i)||V(`Expected ${L(i)} to be -0`,t),i}function yx(i,t){return y.isOdd(i)||V(`Expected ${L(i)} to odd`,t),i}function bx(i,t){return y.isEven(i)||V(`Expected ${L(i)} to even`,t),i}function xx(i,t,e){return y.isMultipleOf(i,t)||V(`Expected ${L(i)} to be divisble bu ${L(t)}`,e),i}function Ax(i,t){return y.isPowerOfTwo(i)||V(`Expected ${L(i)} to be power of two`,t),i}function Cx(i,t,e){return y.isIncluded(i,t)||V(`Expected ${L(i)} to be included in ${L(t)}`,e),i}function _x(...i){let t=i.shift(),e=y.isString(i[i.length-1])?i.pop():void 0,r=y.isArray(i[0])?i.shift():void 0;return y.isIndex(t,r)||V(r===void 0?`Expected ${t} to be index`:`Expected ${t} to be index for ${L(r)}`,e),t}function vx(i,t){return y.doesThrow(i)||V("Expected to throw",t),!0}function Sx(i,t){return y.doesNotThrow(i)||V("Expected to throw",t),!0}var wx={};er(wx,{accept:()=>Rx,decline:()=>Mx,erase:()=>al,eraseAll:()=>jx,isConsentPending:()=>Ox,read:()=>Dx,readBool:()=>Lx,readInt:()=>kx,save:()=>Ex,setExpireDays:()=>Nx});var Bs="ConsentCookie",tr,so,eu=Gs(Bs);tr=eu==="accept"||eu==="decline"?eu:void 0;function Ix(){return document.cookie.split(";").map(t=>t.trim())}function su(i,t){let e=i+"="+t.toString()+";sameSite=Lax;";return so&&(e+="expires="+so.toUTCString()+";"),document.cookie=e,t}function Gs(i,t){let e=Ix().find(r=>r.startsWith(i+"="));return e===void 0?t:e.substring(i.length+1)}function Tx(i){document.cookie=i+"=;expires=Thu, 01 Jan 1970 00:00:00 UTC;"}function Nx(i){so=new Date,so.setDate(so.getDate()+i)}function Ox(){return tr===void 0}function Rx(){tr="accept",su(Bs,tr)}function Mx(){tr="decline",su(Bs,tr)}function Ex(i,t){return tr==="accept"&&su(i,t),t}function Dx(i,t){var e;return tr==="accept"&&(e=Gs(i,t))!=null?e:t}function kx(i,t){if(tr==="accept"){let e=Gs(i);return e===void 0?t:parseInt(e)}else return t}function Lx(i,t){if(tr==="accept"){let e=Gs(i);return e===void 0?t:/true|1/i.test(e)}else return t}function al(i){(tr==="accept"||i===Bs)&&Tx(i)}function jx(){document.cookie.split(";").forEach(i=>al(i.trim().split("=")[0]))}var Vs={};er(Vs,{DPI:()=>cl,FontSize:()=>ul,HostAddress:()=>$x,IsMobileDevice:()=>Hx,IsTouchDevice:()=>Yx,PxPerMm:()=>au,ScrollbarWidth:()=>zx,mmToPx:()=>ks,pxToMm:()=>Zx,toPx:()=>Xx});function Px(){let i=document.createElement("div");i.style.width="1in",document.body.appendChild(i);let t=i.offsetWidth;return i.remove(),t||96}function Fx(){try{let i=document.createElement("div");i.style.visibility="hidden",i.style.width="100px",document.body.appendChild(i);let t=i.offsetWidth;i.style.overflow="scroll";let e=document.createElement("div");e.style.width="100%",i.appendChild(e);let r=e.offsetWidth;return i.parentNode&&i.parentNode.removeChild(i),t-r}catch(i){return 0}}function Bx(){let i=document.createElement("div");i.style.cssText="display:inline-block; padding:0; line-height:1; position:absolute; visibility:hidden; font-size:1em",i.appendChild(document.createTextNode("M")),document.body.appendChild(i);let t=i.offsetHeight;return document.body.removeChild(i),t}function Gx(){if("ontouchstart"in window||"DocumentTouch"in window||"createTouch"in document&&"createTouchList"in document)return!0;var i=" -webkit- -moz- -o- -ms- ".split(" "),t=function(r){return window.matchMedia(r).matches},e=["(",i.join("touch-enabled),("),"heartz",")"].join("");return t(e)}function Vx(){let i=navigator.userAgent||navigator.vendor||window.opera;return/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(i)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(i.substr(0,4))}function qx(){return location.protocol+"//"+location.host}var Wx=/^(mm|cm|in|inch|px|em)$/,Ux=/^([0-9\\.]+)(.*)$/,cl=Px(),au=cl/25.4,zx=Fx(),ul=Bx(),Yx=Gx(),Hx=Vx(),$x=qx();function Zx(i){return i/au}function ks(i){return i*au}function Xx(i){if(typeof i=="number")return i;let t=NaN,e,r=i.toString().match(Ux);if(r&&r[1]){t=parseFloat(r[1]);let n=r[2]?r[2].toLowerCase():"undefined";e=Wx.test(n)?n:void 0,e||console.log("Unknown unit '"+n+"' => using 'px'.")}else t=parseFloat(i);switch(Xh.isFinite(t,"value in function toPx"),e){case"mm":return ks(t);case"cm":return ks(t)*10;case"in":case"inch":return ks(t)*25.4;case"em":return ul*t;default:case"px":return t}}var $={};er($,{Arr:()=>hl,Dom:()=>pl,Enum:()=>Jh,Math:()=>ml,Obj:()=>Kh,Str:()=>Qh});var hl={};er(hl,{arrayContains:()=>iA,chunckArray:()=>nA,duplicate:()=>Kx,fillArray:()=>tA,getRangeArray:()=>rA,getSequenceArray:()=>eA,isArray:()=>je,mapRangeArray:()=>dl,mapSequenceArray:()=>ll,removeDuplicates:()=>Jx,toArray:()=>Qx});function Qx(i){return je(i)?i:[i]}function Kx(i){var t;return(t=i==null?void 0:i.slice())!=null?t:[]}function Jx(i,t){return t!==void 0?i.filter((e,r,n)=>r===n.findIndex(o=>t(e,o))):i.filter((e,r,n)=>r===n.indexOf(e))}function tA(i,t){if(!Lt(t)||t<0)throw new Error("fillArray: Invalid fillCount = "+t);return new Array(t).fill(i)}function ll(i,t){if(!Lt(i)||i<0)throw new Error("mapSequenceArray: Invalid len = "+i);let e=new Array(i);for(let r=0;r<i;r++)e[r]=t(r);return e}function eA(i){return ll(i,t=>t)}function dl(i,t,e){if(!Lt(i))throw new Error("mapRangeArray: Invalid start = "+t);if(!Lt(t))throw new Error("mapRangeArray: Invalid end = "+t);let r=Math.abs(t-i)+1,n=new Array(r);for(let o=0,s=i,a=Math.sign(t-i);o<r;s+=a,o++)n[o]=e(s);return n}function rA(i,t){return dl(i,t,e=>e)}function iA(i,t){return i.indexOf(t)>=0}function nA(i,t){if(!Lt(t)||t<1)throw new Error("chunckArray: Invalid chunckSize = "+t);let e=[];for(let r=0;r<i.length;r+=t)e.push(i.slice(r,r+t));return e}var pl={};er(pl,{addClass:()=>oA,appendTo:()=>pA,getButton:()=>yA,getCanvas:()=>bA,getCanvasTextWidth:()=>_A,getDimension:()=>AA,getHeight:()=>lA,getOffset:()=>cA,getPadding:()=>xA,getWidth:()=>uA,hasClass:()=>cu,removeClass:()=>sA,removeFromParent:()=>mA,setHeight:()=>dA,setOffset:()=>aA,setRect:()=>gA,setVisibility:()=>fA,setWidth:()=>hA,styleLayoutChanged:()=>CA});function Dt(i){return i===void 0?void 0:Vs.toPx(i)}function cu(i,t){return t.length===0?!1:i.classList?i.classList.contains(t):!!i.className.match(new RegExp("(\\s|^)"+t+"(\\s|$)"))}function oA(i,t){t.length!==0&&(i.classList?i.classList.add(t):cu(i,t)||(i.className+=" "+t))}function sA(i,t){if(t.length!==0){if(i.classList)i.classList.remove(t);else if(cu(i,t)){var e=new RegExp("(\\s|^)"+t+"(\\s|$)");i.className=i.className.replace(e," ")}}}function aA(i,t,e,r="px"){i.style.left=t+r,i.style.top=e+r}function cA(i){let t=i.getBoundingClientRect(),e=document.documentElement;return{top:t.top+window.pageYOffset-e.clientTop,left:t.left+window.pageXOffset-e.clientLeft}}function uA(i){if(i instanceof Window)return i.innerWidth;{let t=parseFloat(getComputedStyle(i,null).width.replace("px",""));return isNaN(t)?0:t}}function hA(i,t){i.style.width=t+"px"}function lA(i){if(i instanceof Window)return i.innerHeight;{let t=parseFloat(getComputedStyle(i,null).height.replace("px",""));return isNaN(t)?0:t}}function dA(i,t){i.style.height=t+"px"}function pA(i,t){t.appendChild(i)}function mA(i){i.remove()}function fA(i,t){i.style.display=t?"block":"none"}function gA(i,t,e,r,n,o="px"){i.style.left=t+o,i.style.top=e+o,i.style.width=r+o,i.style.height=n+o}function yA(i){let t=typeof i=="string"?document.getElementById(i):i;return t instanceof HTMLButtonElement?t:void 0}function bA(i){let t=typeof i=="string"?document.getElementById(i):i;return t instanceof HTMLCanvasElement?t:void 0}function xA(i){var s;if(!i)return{top:0,right:0,bottom:0,left:0};let t=Dt(i.paddingTop),e=Dt(i.paddingRight),r=Dt(i.paddingBottom),n=Dt(i.paddingLeft),o=((s=i.padding)!=null?s:"").toString().split(" ").filter(a=>a.length>0);switch(o.length){case 0:break;case 1:t!=null||(t=Dt(o[0])),e!=null||(e=Dt(o[0])),r!=null||(r=Dt(o[0])),n!=null||(n=Dt(o[0]));break;case 2:t!=null||(t=Dt(o[0])),e!=null||(e=Dt(o[1])),r!=null||(r=Dt(o[0])),n!=null||(n=Dt(o[1]));break;case 3:t!=null||(t=Dt(o[0])),e!=null||(e=Dt(o[1])),r!=null||(r=Dt(o[2])),n!=null||(n=Dt(o[1]));break;case 4:default:t!=null||(t=Dt(o[0])),e!=null||(e=Dt(o[1])),r!=null||(r=Dt(o[2])),n!=null||(n=Dt(o[3]));break}return t!=null||(t=0),e!=null||(e=0),r!=null||(r=0),n!=null||(n=0),{top:t,right:e,bottom:r,left:n}}function AA(i){let t=Dt(i==null?void 0:i.left),e=Dt(i==null?void 0:i.right),r=Dt(i==null?void 0:i.top),n=Dt(i==null?void 0:i.bottom),o=Dt(i==null?void 0:i.width),s=Dt(i==null?void 0:i.height);return o===void 0&&t!==void 0&&e!==void 0&&(o=e-t),s===void 0&&r!==void 0&&n!==void 0&&(s=n-r),{left:t,top:r,width:o,height:s}}function CA(i,t){return!i&&!t?!1:!i||!t?!0:i.left!==t.left||i.top!==t.top||i.right!==t.right||i.bottom!==t.bottom||i.width!==t.width||i.height!==t.height}var no;function _A(i,t){no!=null||(no=document.createElement("canvas"));let e=no.getContext("2d");return e?(e.font=t,e.measureText(i).width):0}var ml={};er(ml,{avg:()=>RA,calcNormal:()=>OA,clamp:()=>ru,cmp:()=>MA,interpolateCoord:()=>TA,interpolateY:()=>NA,isInteger:()=>Lt,isNumber:()=>kt,linearToDecibels:()=>vA,mod:()=>SA,romanize:()=>wA,sum:()=>fl,toOrdinalNumber:()=>IA});function vA(i){if(isFinite(i))return i<=0?-1/0:20*Math.log10(i);throw new Error("linearToDecibel: Invalid linearVolume = "+i)}function SA(i,t){return(i%t+t)%t}function wA(i){if(!Lt(i)||i<0)throw new Error("romanize: Invalid n = "+i);for(var t=String(+i).split(""),e=["","C","CC","CCC","CD","D","DC","DCC","DCCC","CM","","X","XX","XXX","XL","L","LX","LXX","LXXX","XC","","I","II","III","IV","V","VI","VII","VIII","IX"],r="",n=3;n--;)r=(e[+t.pop()+n*10]||"")+r;return Array(+t.join("")+1).join("M")+r}function IA(i){if(!Lt(i))throw new Error("toOrdinalNumber: Invalid n = "+i);let t=i.toString(),e=Number(t.charAt(t.length-1));return i===1||i>=20&&e===1?t+"st":i===2||i>=20&&e===2?t+"nd":i===3||i>=20&&e===3?t+"rd":t+"th"}function TA(i,t,e,r,n){return{x:i+(e-i)*n,y:t+(r-t)*n}}function NA(i,t,e,r,n){let o=(n-i)/(e-i);return t+(r-t)*o}function ru(i,t,e){return Math.min(Math.max(i,t),e)}function OA(i,t,e,r){let n=e-i,s=-(r-t),a=n,c=Math.sqrt(s*s+a*a);return c>0?(s/=c,a/=c):(s=0,a=1),{nx:s,ny:a}}function fl(i){return i.reduce((t,e)=>e+t,0)}function RA(...i){return fl(i)/i.length}function MA(i,t){return i<t?-1:i>t?1:0}var Le=(i,t)=>i===t,jr=class{};var gl=class We extends jr{constructor(...t){if(super(),ft(this,"coords"),t.length<2)throw new TypeError("Vec needs minumum two coords!");this.coords=t}static vec2(t,e){return new We(t,e)}static vec3(t,e,r){return new We(t,e,r)}static zero(t){if(t<2)throw new TypeError("Vec.zero requires dimension >= 2");return new We(...Array(t).fill(0))}get dim(){return this.coords.length}get length(){return Math.hypot(...this.coords)}magnitude(){return this.length}get x(){return this.coords[0]}get y(){return this.coords[1]}get z(){if(this.coords[2]===void 0)throw new TypeError("Vec z-coord not available!");return this.coords[2]}add(...t){let e=t[0]instanceof We?t[0].coords:t;if(this.coords.length!==e.length)throw new TypeError("Coordinate length mismatch!");return new We(...this.coords.map((r,n)=>r+e[n]))}sub(...t){let e=t[0]instanceof We?t[0].coords:t;if(this.coords.length!==e.length)throw new TypeError("Coordinate length mismatch!");return new We(...this.coords.map((r,n)=>r-e[n]))}mul(t){return new We(...this.coords.map(e=>e*t))}div(t){return new We(...this.coords.map(e=>e/t))}dot(t){if(this.coords.length!==t.coords.length)throw new TypeError("Coordinate length mismatch!");return this.coords.reduce((e,r,n)=>e+r*t.coords[n],0)}distance(t){if(this.coords.length!==t.coords.length)throw new TypeError("Coordinate length mismatch!");return Math.hypot(...this.coords.map((e,r)=>e-t.coords[r]))}normalize(){let t=this.length;if(t===0)throw new TypeError("Cannot normalize zero-length vector!");return this.div(t)}static lerp(t,e,r){if(t.coords.length!==e.coords.length)throw new TypeError("Coordinate length mismatch!");if(!rn(r))throw new TypeError("Lerp t is not finite!");return t.add(e.sub(t).mul(r))}toLength(t){let e=this.length;return e===0?this:this.mul(t/e)}clamp(t,e,r){let n=this.length;if(n===0){if(t!==void 0){if(r&&r.coords.length!==this.coords.length)throw new TypeError("Coordinate length mismatch!");return(r&&r.length!==0?r.normalize():new We(1,...Array(this.coords.length-1).fill(0))).mul(t)}return this}return e!==void 0&&n>e?this.normalize().mul(e):t!==void 0&&n<t?this.normalize().mul(t):this}equals(t){return this.coords.length===t.coords.length&&this.coords.every((e,r)=>e===t.coords[r])}clone(){return new We(...this.coords)}toObject(){return{x:this.x,y:this.y,z:this.z}}[Symbol.iterator](){return this.coords[Symbol.iterator]()}toString(){return`Vec(${this.coords.join(", ")})`}},uu=class Ie{constructor(...t){if(ft(this,"x"),ft(this,"y"),ft(this,"width"),ft(this,"height"),t.length===0?this.x=this.y=this.width=this.height=0:t.length===2?(this.x=this.y=0,this.width=t[0],this.height=t[1]):(this.x=t[0],this.y=t[1],this.width=t[2],this.height=t[3]),this.width<0||this.height<0)throw new Error("Rect width and height must be non-negative.")}set(...t){if(t.length===0?this.x=this.y=this.width=this.height=0:t.length===2?(this.x=this.y=0,this.width=t[0],this.height=t[1]):(this.x=t[0],this.y=t[1],this.width=t[2],this.height=t[3]),this.width<0||this.height<0)throw new Error("Rect width and height must be non-negative.");return this}static fromPoints(t,e){let r=Math.min(t.x,e.x),n=Math.min(t.y,e.y),o=Math.abs(t.x-e.x),s=Math.abs(t.y-e.y);return new Ie(r,n,o,s)}static fromCenter(t,e,r,n){return new Ie(t-r/2,e-n/2,r,n)}get left(){return this.x}get top(){return this.y}get right(){return this.x+this.width}get bottom(){return this.y+this.height}get centerX(){return this.x+this.width/2}get centerY(){return this.y+this.height/2}get center(){return{x:this.centerX,y:this.centerY}}get area(){return this.width*this.height}get isEmpty(){return this.width<=0||this.height<=0}containsPoint(t,e){return t>=this.left&&t<=this.right&&e>=this.top&&e<=this.bottom}containsRect(t){return t.left>=this.left&&t.right<=this.right&&t.top>=this.top&&t.bottom<=this.bottom}intersects(t){return!(t.right<this.left||t.left>this.right||t.bottom<this.top||t.top>this.bottom)}intersectionCopy(t){let e=Math.max(this.left,t.left),r=Math.max(this.top,t.top),n=Math.min(this.right,t.right),o=Math.min(this.bottom,t.bottom);return n<=e||o<=r?new Ie:new Ie(e,r,n-e,o-r)}unionCopy(t){let e=Math.min(this.left,t.left),r=Math.min(this.top,t.top),n=Math.max(this.right,t.right),o=Math.max(this.bottom,t.bottom);return new Ie(e,r,n-e,o-r)}insetCopy(t,e){return new Ie(this.x+t,this.y+e,this.width-2*t,this.height-2*e)}inflateCopy(t,e){return new Ie(this.x-t,this.y-e,this.width+2*t,this.height+2*e)}offsetInPlace(t,e){return this.x+=t,this.y+=e,this}offsetCopy(t,e){return new Ie(this.x+t,this.y+e,this.width,this.height)}scaleInPlace(t,e=t){return this.x=this.centerX-this.width*t/2,this.width*=t,this.y=this.centerY-this.height*e/2,this.height*=e,this}scaleCopy(t,e=t){return this.clone().scaleInPlace(t,e)}roundCopy(){let t=Math.round(this.left),e=Math.round(this.top),r=Math.round(this.right),n=Math.round(this.bottom);return new Ie(t,e,r-t,n-e)}floorCopy(){let t=Math.floor(this.left),e=Math.floor(this.top),r=Math.floor(this.right),n=Math.floor(this.bottom);return new Ie(t,e,r-t,n-e)}ceilCopy(){let t=Math.ceil(this.left),e=Math.ceil(this.top),r=Math.ceil(this.right),n=Math.ceil(this.bottom);return new Ie(t,e,r-t,n-e)}expandCopy(t,e){let r=Math.min(this.left,t),n=Math.min(this.top,e),o=Math.max(this.right,t),s=Math.max(this.bottom,e);return new Ie(r,n,o-r,s-n)}equals(t){return this.x===t.x&&this.y===t.y&&this.width===t.width&&this.height===t.height}clone(){return new Ie(this.x,this.y,this.width,this.height)}toString(){return`Rect(x=${this.x}, y=${this.y}, w=${this.width}, h=${this.height})`}toAnchoredRect(){return new G(this.left,this.right,this.top,this.bottom)}},G=class vi{constructor(...t){if(ft(this,"left"),ft(this,"anchorX"),ft(this,"right"),ft(this,"top"),ft(this,"anchorY"),ft(this,"bottom"),t.length===6)this.left=t[0],this.anchorX=t[1],this.right=t[2],this.top=t[3],this.anchorY=t[4],this.bottom=t[5];else if(t.length===4)this.left=t[0],this.right=t[1],this.anchorX=(this.left+this.right)/2,this.top=t[2],this.bottom=t[3],this.anchorY=(this.top+this.bottom)/2;else if(t.length===0)this.left=this.anchorX=this.right=0,this.top=this.anchorY=this.bottom=0;else throw new TypeError(`Invalid AnchoredRect args: ${t}`)}set(...t){if(t.length===6)this.left=t[0],this.anchorX=t[1],this.right=t[2],this.top=t[3],this.anchorY=t[4],this.bottom=t[5];else if(t.length===4)this.left=t[0],this.right=t[1],this.anchorX=(this.left+this.right)/2,this.top=t[2],this.bottom=t[3],this.anchorY=(this.top+this.bottom)/2;else if(t.length===0)this.left=this.anchorX=this.right=0,this.top=this.anchorY=this.bottom=0;else throw new TypeError(`Invalid AnchoredRect args: ${t}`);return this}static create(t,e,r,n){return new vi(t,t+r,e,e+n)}static createCentered(t,e,r,n){return new vi(t-r/2,t,t+r/2,e-n/2,e,e+n/2)}static createSections(t,e,r,n){return new vi(-t,0,e,-r,0,n)}get centerX(){return this.left+this.width/2}get centerY(){return this.top+this.height/2}get width(){return this.right-this.left}get height(){return this.bottom-this.top}get leftw(){return this.anchorX-this.left}get rightw(){return this.right-this.anchorX}get toph(){return this.anchorY-this.top}get bottomh(){return this.bottom-this.anchorY}contains(t,e){return t>=this.left&&t<=this.right&&e>=this.top&&e<=this.bottom}static overlap(t,e){return t.right>e.left&&t.left<e.right&&t.bottom>e.top&&t.top<e.bottom}static overlapX(t,e){return t.right>e.left&&t.left<e.right}static equals(t,e){return t==null&&e==null?!0:t==null||e==null?!1:t===e||t.left===e.left&&t.anchorX===e.anchorX&&t.right===e.right&&t.top===e.top&&t.anchorY===e.anchorY&&t.bottom===e.bottom}equals(t){return vi.equals(this,t)}static equalsEdges(t,e){return t==null&&e==null?!0:t==null||e==null?!1:t===e||t.left===e.left&&t.right===e.right&&t.top===e.top&&t.bottom===e.bottom}equalsEdges(t){return vi.equalsEdges(this,t)}clone(){return new vi(this.left,this.anchorX,this.right,this.top,this.anchorY,this.bottom)}offsetInPlace(t,e){return this.left+=t,this.anchorX+=t,this.right+=t,this.top+=e,this.anchorY+=e,this.bottom+=e,this}offsetCopy(t,e){return this.clone().offsetInPlace(t,e)}expandInPlace(t){return this.left=Math.min(this.left,t.left),this.right=Math.max(this.right,t.right),this.top=Math.min(this.top,t.top),this.bottom=Math.max(this.bottom,t.bottom),this}expandCopy(t){return this.clone().expandInPlace(t)}clipInPlace(t){return this.left=Math.max(this.left,t.left),this.right=Math.min(this.right,t.right),this.anchorX=ru(this.anchorX,this.left,this.right),this.top=Math.max(this.top,t.top),this.bottom=Math.min(this.bottom,t.bottom),this.anchorY=ru(this.anchorY,this.top,this.bottom),this}clipCopy(t){return this.clone().clipInPlace(t)}scaleInPlace(t,e=t){return this.left=this.anchorX-this.leftw*t,this.right=this.anchorX+this.rightw*t,this.top=this.anchorY-this.toph*e,this.bottom=this.anchorY+this.bottomh*e,this}scaleCopy(t,e=t){return this.clone().scaleInPlace(t,e)}getRect(){return this}toRect(){return new uu(this.left,this.right,this.width,this.height)}toString(){return`Rect(left=${this.left}, anchorX=${this.anchorX}, right=${this.right}, top=${this.top}, anchorY=${this.anchorY}, bottom=${this.bottom})`}},yl=class extends jr{constructor(i,t=1/0){super(),ft(this,"cache"),ft(this,"next"),ft(this,"prev"),ft(this,"head"),ft(this,"tail"),ft(this,"capacity"),ft(this,"size"),ft(this,"maxKeyLength"),this.cache=Object.create(null),this.next=Object.create(null),this.prev=Object.create(null),this.head=null,this.tail=null,this.capacity=i,this.size=0,this.maxKeyLength=t}get(i){if(!(i.length>this.maxKeyLength)&&this.cache[i]!==void 0)return this.touch(i),this.cache[i]}set(i,t){if(!(i.length>this.maxKeyLength)){if(this.cache[i]!==void 0){this.cache[i]=t,this.touch(i);return}this.size>=this.capacity&&this.evict(),this.cache[i]=t,this.addToTail(i),this.size++}}touch(i){this.tail!==i&&(this.removeKey(i),this.addToTail(i))}evict(){if(this.head!==null){let i=this.head;this.removeKey(i),delete this.cache[i],this.size--}}removeKey(i){let t=this.prev[i],e=this.next[i];t!==void 0?this.next[t]=e:this.head=e!=null?e:null,e!==void 0?this.prev[e]=t:this.tail=t!=null?t:null,delete this.prev[i],delete this.next[i]}addToTail(i){this.tail!==null?(this.next[this.tail]=i,this.prev[i]=this.tail):this.head=i,this.tail=i}*keys(){for(let i=this.head;i!=null;i=this.next[i])yield i}*values(){for(let i=this.head;i!=null;i=this.next[i])yield this.cache[i]}*entries(){for(let i=this.head;i!=null;i=this.next[i])yield[i,this.cache[i]]}*[Symbol.iterator](){yield*pe(this.entries())}toString(){let i=[...this.entries()];return i.length===0?"LRUCache(0){ }":`LRUCache(${i.length}){ ${i.map(t=>`${Gt(t[0])}: ${Gt(t[1])}`).join(", ")} }`}},vr=class Kr extends jr{constructor(t){if(super(),ft(this,"posVal"),ft(this,"hasPos"),ft(this,"valCount"),t instanceof Kr)this.posVal=t.posVal.slice(),this.hasPos=t.hasPos.slice(),this.valCount=t.valCount;else if(this.posVal=[],this.hasPos=[],this.valCount=0,t)for(let[e,r]of t)this.set(e,r)}static validateIndex(t){if(!nu(t,0))throw new Error(`Invalid index ${t} - must be an integer >= 0!`);return t}get posLen(){return this.hasPos.length}get size(){return this.valCount}get length(){return this.hasPos.length}trimRight(){let t=this.length;for(;t>0&&this.hasPos[t-1]!==!0;)t--;t<this.length&&(this.posVal.length=this.hasPos.length=t)}isEmpty(){return this.size===0}has(t){return Kr.validateIndex(t),this.hasPos[t]===!0}set(t,e){Kr.validateIndex(t),this.hasPos[t]!==!0&&this.valCount++,this.posVal[t]=e,this.hasPos[t]=!0}get(t){return Kr.validateIndex(t),this.hasPos[t]?this.posVal[t]:void 0}getOrDefault(t,e){var r;return(r=this.get(t))!=null?r:e}getOrCreate(t,e){if(!this.has(t)){let r=_r(e)?e():e;return this.set(t,r),r}return this.get(t)}delete(t){return Kr.validateIndex(t),this.hasPos[t]?(this.posVal[t]=void 0,this.hasPos[t]=!1,this.valCount--,this.trimRight(),!0):!1}clear(){this.posVal=[],this.hasPos=[],this.valCount=0}forEach(t,e){for(let[r,n]of this.entries())t.call(e,n,r,this)}*indices(){for(let t=0;t<this.posLen;t++)this.hasPos[t]&&(yield t)}*values(){for(let t=0;t<this.posLen;t++)this.hasPos[t]&&(yield this.posVal[t])}*entries(){for(let t=0;t<this.posLen;t++)this.hasPos[t]&&(yield[t,this.posVal[t]])}indicesArray(){return[...this.indices()]}valuesArray(){return[...this.values()]}entriesArray(){return[...this.entries()]}*kvKeys(){for(let t of this.indices())yield[t]}*kvValues(){for(let t of this.values())yield t}*kvEntries(){for(let[t,e]of this.entries())yield[[t],e]}*[Symbol.iterator](){yield*pe(this.entries())}clone(){return new Kr(this)}merge(t,e){for(let[r,n]of t.entries())this.has(r)&&e?this.set(r,e(this.get(r),n,r)):this.set(r,n);return this}some(t){for(let[e,r]of this.entries())if(t(r,e))return!0;return!1}every(t){for(let[e,r]of this.entries())if(!t(r,e))return!1;return!0}filter(t){let e=new this.constructor;for(let[r,n]of this.entries())t(n,r,this)&&e.set(r,n);return e}reduce(t,e){let r=this.entries(),n=r.next();if(n.done){if(arguments.length<2)throw new TypeError("Reduce of empty IndexArray with no initial value!");return e}let o,s;arguments.length<2?(o=n.value[1],s=r.next()):(o=e,s=n);for(let a=s;!a.done;a=r.next()){let[c,u]=a.value;o=t(o,u,c)}return o}mapToArray(t){let e=[];for(let[r,n]of this.entries())e.push(t(n,r));return e}map(t){let e=new Kr;for(let[r,n]of this.entries())e.set(r,t(n,r));return e}equals(t,e){if(this.size!==t.size)return!1;e!=null||(e=(n,o)=>n===o);let r=Math.max(this.posLen,t.posLen);for(let n=0;n<r;++n){let o=this.hasPos[n],s=t.hasPos[n];if(o!==s||o&&!e(this.posVal[n],t.posVal[n]))return!1}return!0}toArray(){return this.valuesArray()}toString(){let t=!0;for(let r=0;r<this.hasPos.length&&t;r++)this.hasPos[r]||(t=!1);if(t)return Gt(this.posVal.slice(0,this.hasPos.length));let e=this.entriesArray().map(([r,n])=>`${Gt(r)}: ${Gt(n)}`).join(", ");return e.length===0?"[ ]":`[ ${e} ]`}},bl=class Te extends jr{constructor(t){if(super(),ft(this,"posVal"),ft(this,"hasPos"),ft(this,"negVal"),ft(this,"hasNeg"),ft(this,"valCount"),t instanceof Te)this.negVal=t.negVal.slice(),this.hasNeg=t.hasNeg.slice(),this.posVal=t.posVal.slice(),this.hasPos=t.hasPos.slice(),this.valCount=t.valCount;else if(this.negVal=[],this.hasNeg=[],this.posVal=[],this.hasPos=[],this.valCount=0,t)for(let[e,r]of t)this.set(e,r)}static toNegIndex(t){return-t-1}static validateIndex(t){if(!Lt(t))throw new Error(`Invalid index ${t} - must be an integer!`);return t}get size(){return this.valCount}isEmpty(){return this.size===0}get posLen(){return this.hasPos.length}get negLen(){return this.hasNeg.length}has(t){return Te.validateIndex(t),t>=0?this.hasPos[t]===!0:this.hasNeg[Te.toNegIndex(t)]===!0}set(t,e){if(Te.validateIndex(t),t>=0)this.hasPos[t]!==!0&&this.valCount++,this.posVal[t]=e,this.hasPos[t]=!0;else{let r=Te.toNegIndex(t);this.hasNeg[r]!==!0&&this.valCount++,this.negVal[r]=e,this.hasNeg[r]=!0}}get(t){if(Te.validateIndex(t),t>=0)return this.hasPos[t]?this.posVal[t]:void 0;{let e=Te.toNegIndex(t);return this.hasNeg[e]?this.negVal[e]:void 0}}getOrDefault(t,e){var r;return(r=this.get(t))!=null?r:e}getOrCreate(t,e){if(!this.has(t)){let r=_r(e)?e():e;return this.set(t,r),r}return this.get(t)}delete(t){Te.validateIndex(t);let e=t>=0,r=e?this.posVal:this.negVal,n=e?this.hasPos:this.hasNeg,o=e?t:Te.toNegIndex(t);return n[o]?(r[o]=void 0,n[o]=!1,this.valCount--,!0):!1}clear(){this.negVal=[],this.hasNeg=[],this.posVal=[],this.hasPos=[],this.valCount=0}forEach(t,e){for(let[r,n]of this.entries())t.call(e,n,r,this)}*indices(){for(let t=this.negLen-1;t>=0;t--)this.hasNeg[t]&&(yield Te.toNegIndex(t));for(let t=0;t<this.posLen;t++)this.hasPos[t]&&(yield t)}*values(){for(let t=this.negLen-1;t>=0;t--)this.hasNeg[t]&&(yield this.negVal[t]);for(let t=0;t<this.posLen;t++)this.hasPos[t]&&(yield this.posVal[t])}*entries(){for(let t=this.negLen-1;t>=0;t--)this.hasNeg[t]&&(yield[Te.toNegIndex(t),this.negVal[t]]);for(let t=0;t<this.posLen;t++)this.hasPos[t]&&(yield[t,this.posVal[t]])}indicesArray(){return[...this.indices()]}valuesArray(){return[...this.values()]}entriesArray(){return[...this.entries()]}*kvKeys(){for(let t of this.indices())yield[t]}*kvValues(){for(let t of this.values())yield t}*kvEntries(){for(let[t,e]of this.entries())yield[[t],e]}*[Symbol.iterator](){yield*pe(this.entries())}clone(){return new Te(this)}merge(t,e){for(let[r,n]of t.entries())this.has(r)&&e?this.set(r,e(this.get(r),n,r)):this.set(r,n);return this}some(t){for(let[e,r]of this.entries())if(t(r,e))return!0;return!1}every(t){for(let[e,r]of this.entries())if(!t(r,e))return!1;return!0}filter(t){let e=new this.constructor;for(let[r,n]of this.entries())t(n,r,this)&&e.set(r,n);return e}reduce(t,e){let r=this.entries(),n=r.next();if(n.done){if(arguments.length<2)throw new TypeError("Reduce of empty SignedIndexArray with no initial value!");return e}let o,s;arguments.length<2?(o=n.value[1],s=r.next()):(o=e,s=n);for(let a=s;!a.done;a=r.next()){let[c,u]=a.value;o=t(o,u,c)}return o}mapToArray(t){let e=[];for(let[r,n]of this.entries())e.push(t(n,r));return e}map(t){let e=new Te;for(let[r,n]of this.entries())e.set(r,t(n,r));return e}equals(t,e){if(this.size!==t.size)return!1;e!=null||(e=(o,s)=>o===s);let r=Math.max(this.posLen,t.posLen);for(let o=0;o<r;++o){let s=this.hasPos[o],a=t.hasPos[o];if(s!==a||s&&!e(this.posVal[o],t.posVal[o]))return!1}let n=Math.max(this.negLen,t.negLen);for(let o=0;o<n;++o){let s=this.hasNeg[o],a=t.hasNeg[o];if(s!==a||s&&!e(this.negVal[o],t.negVal[o]))return!1}return!0}toArray(){return this.valuesArray()}toString(){let t=this.hasNeg.length===0;for(let r=0;r<this.hasPos.length&&t;r++)this.hasPos[r]||(t=!1);if(t)return Gt(this.posVal.slice(0,this.hasPos.length));let e=this.entriesArray().map(([r,n])=>`${Gt(r)}: ${Gt(n)}`).join(", ");return e.length===0?"[ ]":`[ ${e} ]`}};var lt=class oo extends jr{constructor(...t){super(),ft(this,"map"),ft(this,"keyEquals");let e=t.at(-1);this.keyEquals=_r(e)?t.pop():Le;let r=t[0];this.map=new Map(r)}static createDeep(t){return t?new oo(t,ao):new oo(ao)}has(t){if(this.keyEquals===Le||this.map.has(t))return this.map.has(t);for(let[e,r]of this.map)if(this.keyEquals(e,t))return!0;return!1}set(t,e){if(this.keyEquals===Le||this.map.has(t))return this.map.set(t,e),e;for(let r of this.map.keys())if(this.keyEquals(r,t))return this.map.set(r,e),e;return this.map.set(t,e),e}get(t){if(this.keyEquals===Le||this.map.has(t))return this.map.get(t);for(let[e,r]of this.map)if(this.keyEquals(e,t))return r}delete(t){if(this.keyEquals===Le||this.map.has(t))return this.map.delete(t);for(let e of this.map.keys())if(this.keyEquals(e,t))return this.map.delete(e);return this.map.delete(t)}getOrDefault(t,e){var r;return(r=this.get(t))!=null?r:e}getOrCreate(t,e){if(!this.has(t)){let r=_r(e)?e():e;return this.set(t,r)}return this.get(t)}clear(){this.map.clear()}get size(){return this.map.size}isEmpty(){return this.size===0}forEach(t,e){this.map.forEach((r,n)=>t.call(e,r,n,this))}*keys(){yield*pe(this.map.keys())}*values(){yield*pe(this.map.values())}*entries(){for(let[t,e]of this.map)yield[t,e]}keysArray(){return[...this.keys()]}valuesArray(){return[...this.values()]}entriesArray(){return[...this.entries()]}*kvKeys(){for(let t of this.keys())yield[t]}*kvValues(){for(let t of this.values())yield t}*kvEntries(){for(let[t,e]of this.entries())yield[[t],e]}*[Symbol.iterator](){yield*pe(this.entries())}clone(){return new oo(this,this.keyEquals)}merge(t,e){for(let[r,n]of t.entries())this.has(r)&&e?this.set(r,e(this.get(r),n,r)):this.set(r,n);return this}some(t){for(let[e,r]of this.map)if(t(r,e))return!0;return!1}every(t){for(let[e,r]of this.map)if(!t(r,e))return!1;return!0}filter(t){let e=new this.constructor;for(let[r,n]of this.map)t(n,r,this)&&e.set(r,n);return e}reduce(t,e){let r=this.entries(),n=r.next();if(n.done){if(arguments.length<2)throw new TypeError("Reduce of empty UniMap with no initial value!");return e}let o,s;arguments.length<2?(o=n.value[1],s=r.next()):(o=e,s=n);for(let a=s;!a.done;a=r.next()){let[c,u]=a.value;o=t(o,u,c)}return o}mapEntries(t){let e=[];for(let[r,n]of this.map)e.push(t(n,r));return e}mapValues(t){let e=new oo;for(let[r,n]of this.map)e.set(r,t(n,r));return e}toMap(){return new Map(this.map)}toString(){let t=[...this.map].map(([e,r])=>`${Gt(e)} => ${Gt(r)}`).join(", ");return t.length===0?`Map(${this.size}){ }`:`Map(${this.size}){ ${t} }`}},xl=class Ls extends jr{constructor(t){if(super(),ft(this,"map1"),ft(this,"key1Equals",Le),ft(this,"key2Equals",Le),this.map1=new lt(this.key1Equals),t instanceof Ls)for(let[e,r]of t.map1){let n=this.map1.set(e,new lt(this.key2Equals));for(let[o,s]of r)n.set(o,s)}else if(t)for(let[e,r,n]of t)this.set(e,r,n)}has(t,e){var r,n;return(n=(r=this.map1.get(t))==null?void 0:r.has(e))!=null?n:!1}set(t,e,r){return this.map1.getOrCreate(t,()=>new lt(this.key2Equals)).set(e,r)}get(t,e){var r;return(r=this.map1.get(t))==null?void 0:r.get(e)}getOrDefault(t,e,r){var n;return(n=this.get(t,e))!=null?n:r}getOrCreate(t,e,r){if(!this.has(t,e)){let n=_r(r)?r():r;return this.set(t,e,n),n}return this.get(t,e)}delete(t,e){if(e===void 0)return this.map1.delete(t);let r=this.map1.get(t);return r?r.delete(e):!1}clear(){this.map1.clear()}get size(){let t=0;for(let e of this.map1.values())t+=e.size;return t}isEmpty(){return this.size===0}forEach(t,e){this.map1.forEach((r,n)=>r.forEach((o,s)=>t.call(e,o,n,s,this)))}*keys(){for(let[t,e]of this.map1)for(let r of e.keys())yield[t,r]}*values(){for(let t of this.map1.values())for(let e of t.values())yield e}*entries(){for(let[t,e]of this.map1)for(let[r,n]of e)yield[t,r,n]}keysArray(){return[...this.keys()]}valuesArray(){return[...this.values()]}entriesArray(){return[...this.entries()]}*kvKeys(){for(let[t,e]of this.keys())yield[t,e]}*kvValues(){for(let t of this.values())yield t}*kvEntries(){for(let[t,e,r]of this.entries())yield[[t,e],r]}*[Symbol.iterator](){yield*pe(this.entries())}clone(){return new Ls(this)}merge(t,e){for(let[r,n,o]of t.entries())this.has(r,n)&&e?this.set(r,n,e(this.get(r,n),o,r,n)):this.set(r,n,o);return this}some(t){for(let[e,r]of this.map1)for(let[n,o]of r)if(t(o,e,n))return!0;return!1}every(t){for(let[e,r]of this.map1)for(let[n,o]of r)if(!t(o,e,n))return!1;return!0}filter(t){let e=new this.constructor;for(let[r,n]of this.map1)for(let[o,s]of n)t(s,r,o,this)&&e.set(r,o,s);return e}reduce(t,e){let r=this.entries(),n=r.next();if(n.done){if(arguments.length<2)throw new TypeError("Reduce of empty BiMap with no initial value!");return e}let o,s;arguments.length<2?(o=n.value[2],s=r.next()):(o=e,s=n);for(let a=s;!a.done;a=r.next()){let[c,u,h]=a.value;o=t(o,h,c,u)}return o}mapEntries(t){let e=[];for(let[r,n]of this.map1)for(let[o,s]of n)e.push(t(s,r,o));return e}mapValues(t){let e=new Ls;for(let[r,n]of this.map1)for(let[o,s]of n)e.set(r,o,t(s,r,o));return e}toMap(){let t=new Map;for(let[e,r]of this.map1)for(let[n,o]of r)t.set([e,n],o);return t}toString(){let t=[];for(let[e,r]of this.map1){let n=[...r].map(([o,s])=>`${Gt(o)} => ${Gt(s)}`).join(", ");t.push(`${Gt(e)} => { ${n} }`)}return t.length===0?`Map(${this.size}){ }`:`Map(${this.size}){ ${t} }`}},qs=class js extends jr{constructor(t){if(super(),ft(this,"map1"),ft(this,"key1Equals",Le),ft(this,"key2Equals",Le),ft(this,"key3Equals",Le),this.map1=new lt(this.key1Equals),t instanceof js)for(let[e,r]of t.map1){let n=this.map1.set(e,new lt(this.key2Equals));for(let[o,s]of r)n.set(o,new lt(s,this.key3Equals))}else if(t)for(let[e,r,n,o]of t)this.set(e,r,n,o)}has(t,e,r){var n,o,s;return(s=(o=(n=this.map1.get(t))==null?void 0:n.get(e))==null?void 0:o.has(r))!=null?s:!1}set(t,e,r,n){return this.map1.getOrCreate(t,()=>new lt(this.key2Equals)).getOrCreate(e,()=>new lt(this.key3Equals)).set(r,n),n}get(t,e,r){var n,o;return(o=(n=this.map1.get(t))==null?void 0:n.get(e))==null?void 0:o.get(r)}getOrDefault(t,e,r,n){var o;return(o=this.get(t,e,r))!=null?o:n}getOrCreate(t,e,r,n){if(!this.has(t,e,r)){let o=_r(n)?n():n;return this.set(t,e,r,o),o}return this.get(t,e,r)}delete(t,e,r){var n;if(r===void 0){if(e===void 0)return this.map1.delete(t);let o=this.map1.get(t);return o?o.delete(e):!1}else{if(e===void 0)return this.map1.delete(t);let o=(n=this.map1.get(t))==null?void 0:n.get(e);return o?o.delete(r):!1}}clear(){this.map1.clear()}get size(){let t=0;for(let e of this.map1.values())for(let r of e.values())t+=r.size;return t}isEmpty(){return this.size===0}forEach(t,e){this.map1.forEach((r,n)=>r.forEach((o,s)=>o.forEach((a,c)=>t.call(e,a,n,s,c,this))))}*keys(){for(let[t,e]of this.map1)for(let[r,n]of e)for(let o of n.keys())yield[t,r,o]}*values(){for(let t of this.map1.values())for(let e of t.values())for(let r of e.values())yield r}*entries(){for(let[t,e]of this.map1)for(let[r,n]of e)for(let[o,s]of n)yield[t,r,o,s]}keysArray(){return[...this.keys()]}valuesArray(){return[...this.values()]}entriesArray(){return[...this.entries()]}*kvKeys(){for(let[t,e,r]of this.keys())yield[t,e,r]}*kvValues(){for(let t of this.values())yield t}*kvEntries(){for(let[t,e,r,n]of this.entries())yield[[t,e,r],n]}*[Symbol.iterator](){yield*pe(this.entries())}clone(){return new js(this)}merge(t,e){for(let[r,n,o,s]of t.entries())this.has(r,n,o)&&e?this.set(r,n,o,e(this.get(r,n,o),s,r,n,o)):this.set(r,n,o,s);return this}some(t){for(let[e,r]of this.map1)for(let[n,o]of r)for(let[s,a]of o)if(t(a,e,n,s))return!0;return!1}every(t){for(let[e,r]of this.map1)for(let[n,o]of r)for(let[s,a]of o)if(!t(a,e,n,s))return!1;return!0}filter(t){let e=new this.constructor;for(let[r,n]of this.map1)for(let[o,s]of n)for(let[a,c]of s)t(c,r,o,a,this)&&e.set(r,o,a,c);return e}reduce(t,e){let r=this.entries(),n=r.next();if(n.done){if(arguments.length<2)throw new TypeError("Reduce of empty TriMap with no initial value!");return e}let o,s;arguments.length<2?(o=n.value[3],s=r.next()):(o=e,s=n);for(let a=s;!a.done;a=r.next()){let[c,u,h,l]=a.value;o=t(o,l,c,u,h)}return o}mapEntries(t){let e=[];for(let[r,n]of this.map1)for(let[o,s]of n)for(let[a,c]of s)e.push(t(c,r,o,a));return e}mapValues(t){let e=new js;for(let[r,n]of this.map1)for(let[o,s]of n)for(let[a,c]of s)e.set(r,o,a,t(c,r,o,a));return e}toMap(){let t=new Map;for(let[e,r]of this.map1)for(let[n,o]of r)for(let[s,a]of o)t.set([e,n,s],a);return t}toString(){let t=[];for(let[e,r]of this.map1)for(let[n,o]of r){let s=[...o].map(([a,c])=>`${Gt(a)} => ${Gt(c)}`).join(", ");t.push(`${Gt(e)} => ${Gt(n)} => { ${s} }`)}return t.length===0?`Map(${this.size}){ }`:`Map(${this.size}){ ${t.join(", ")} }`}},Ws=class Si extends jr{constructor(...t){super(),ft(this,"data"),ft(this,"equals");let e=t.at(-1);this.equals=_r(e)?t.pop():Le;let r=t[0];this.data=new Set(r)}static createDeep(t){return t?new Si(t,ao):new Si(ao)}has(t){return this.equals===Le?this.data.has(t):this.some(e=>this.equals(e,t))}add(t){return this.has(t)||this.data.add(t),t}set(t,e){if(!this.equals(t,e))throw new TypeError("ValueSet.set() requires key === value.");this.add(e)}get(t){return this.has(t)?t:void 0}getOrDefault(t,e){var r;return(r=this.get(t))!=null?r:e}getOrCreate(t,e){if(!this.has(t)){let r=_r(e)?e():e;return this.set(t,r),r}return this.get(t)}delete(t){if(this.equals===Le||this.data.has(t))return this.data.delete(t);for(let e of this.values())if(this.equals(e,t))return this.data.delete(e),!0;return!1}clear(){this.data.clear()}get size(){return this.data.size}isEmpty(){return this.size===0}forEach(t,e){this.data.forEach(r=>t.call(e,r,this))}*keys(){yield*pe(this.data.keys())}*values(){yield*pe(this.data.values())}*entries(){yield*pe(this.data.entries())}*kvKeys(){for(let t of this.keys())yield[t]}*kvValues(){for(let t of this.values())yield t}*kvEntries(){for(let[t,e]of this.entries())yield[[t],e]}*[Symbol.iterator](){yield*pe(this.values())}clone(){let t=new Si;for(let e of this.values())t.add(e);return t}merge(t){for(let e of t.values())this.add(e);return this}some(t){for(let e of this.data)if(t(e))return!0;return!1}every(t){for(let e of this.data)if(!t(e))return!1;return!0}filter(t){let e=new Si;for(let r of this.data)t(r,this)&&e.add(r);return e}reduce(t,e){let r=this.values(),n=r.next();if(n.done){if(arguments.length<2)throw new TypeError("Reduce of empty ValueSet with no initial value!");return e}let o,s;arguments.length<2?(o=n.value,s=r.next()):(o=e,s=n);for(let a=s;!a.done;a=r.next()){let c=a.value;o=t(o,c)}return o}mapValues(t){let e=new Si;for(let r of this.data)e.add(t(r));return e}mapToArray(t){let e=[];for(let r of this.values())e.push(t(r));return e}map(t){let e=new Si;for(let r of this.values())e.add(t(r));return e}toSet(){return new Set(this.data)}toArray(){return[...this.values()]}toString(){return Gt(this.data)}},EA=class extends jr{constructor(i){super(),this.base=i}isEmpty(){return this.base.isEmpty()}clear(){var i,t;(t=(i=this.base).clear)==null||t.call(i)}add(...i){let t=i.slice(0,-1),e=i[i.length-1],r=this.base.get(...t);return this.base.set(...t,r?[...r,e]:[e]),e}remove(...i){let t=i.slice(0,-1),e=i[i.length-1],r=this.base.get(...t);if(!r)return!1;let n=r.indexOf(e);return n===-1?!1:(r.splice(n,1),r.length===0&&this.base.delete(...t),!0)}getAll(...i){var t;return(t=this.base.get(...i))!=null?t:[]}*iterAll(...i){yield*pe(this.getAll(...i))}*values(){for(let i of this.keys())yield*pe(this.getAll(...i))}*keys(){for(let i of this.base.kvKeys())yield i}*entries(){for(let i of this.keys()){let t=this.getAll(...i);t.length>0&&(yield[i,t])}}[Symbol.iterator](){return this.entries()}toString(){let i=[];for(let t of this.keys()){let e=this.getAll(...t),r=Array.isArray(t)?Gt(t):"[ ]",n=Array.isArray(e)?Gt(e):"[ ]";i.push(`${r} => ${n}`)}return i.length===0?"MultiContainer{ }":`MultiContainer{ ${i.join(", ")} }`}};function Us(i){return new EA(i)}var hu={};en(hu,{MusicError:()=>N,MusicErrorType:()=>_t,init:()=>Ii});var _t=(c=>(c[c.Unknown=0]="Unknown",c[c.InvalidArg=1]="InvalidArg",c[c.Note=2]="Note",c[c.Scale=3]="Scale",c[c.KeySignature=4]="KeySignature",c[c.Timesignature=5]="Timesignature",c[c.Score=6]="Score",c[c.Audio=7]="Audio",c))(_t||{});function DA(i){return i===void 0?"":`[${_t[i]}] `}var N=class extends Error{constructor(...e){let[r,n]=e.length===1?[0,e[0]]:e;super(DA(r)+n);d(this,"type");Object.setPrototypeOf(this,new.target.prototype),this.name="MusicError",this.type=r}};var Al=!1;function Ii(){Al||(Al=!0,console.log("%cWebMusicScore v6.0.0-pre.0 (iife) initialized.","background: black; color: white; padding: 2px;"))}var Jr=(e=>(e[e.Ascii=0]="Ascii",e[e.Unicode=1]="Unicode",e))(Jr||{}),ti=(e=>(e[e.Scientific=0]="Scientific",e[e.Helmholtz=1]="Helmholtz",e))(ti||{}),kA=$.Enum.getEnumValues(ti),LA=0;function Cl(i){if(y.isEnumValue(i,ti))return i;throw new N(1,`Invalid pitchNotation: ${i}`)}function jA(i){return ti[Cl(i)]}var zs=(r=>(r.Default="Default",r.OmitOctave="Omit Octave",r.Interval="Interval",r))(zs||{}),PA="Default",FA=$.Enum.getEnumValues(zs);function BA(i){if(y.isEnumValue(i,zs))return i;throw new N(5,`Invalid guitarNoteLabel: ${i}`)}function _l(i,t){return(i%t+t)%t}var vl=12,Sl=7,GA=new Map([[-2,"bb"],[-1,"b"],[0,""],[1,"#"],[2,"x"]]),VA=new Map([[-2,"\u{1D12B}"],[-1,"\u266D"],[0,""],[1,"\u266F"],[2,"\u{1D12A}"]]),wl=new Map([["",0],["bb",-2],["b",-1],["#",1],["x",2],["\u{1D12B}",-2],["\u266D",-1],["\u266F",1],["\u{1D12A}",2]]),co=["C","D","E","F","G","A","B"],Il=[0,2,4,5,7,9,11],Tl=/^([A-G])((?:bb|𝄫|♭|b|#|♯|x|𝄪)?)?(-?\d+)?$/,dt=class dt{constructor(t,e,r){d(this,"diatonicClass");d(this,"accidental");d(this,"octave");if(typeof t=="number"&&typeof e=="number"&&r===void 0)dt.validateDiatonicId(t),this.diatonicClass=dt.getDiatonicClass(t),this.accidental=dt.validateAccidental(e),this.octave=dt.getOctaveFromDiatonicId(t);else if(typeof t=="number"&&typeof e=="number"&&typeof r=="number")this.diatonicClass=dt.validateDiatonicClass(t),this.accidental=dt.validateAccidental(e),this.octave=dt.validateOctave(r);else if(typeof t=="string"&&typeof e=="number"&&typeof r=="number")this.diatonicClass=dt.getDiatonicClass(t),this.accidental=dt.validateAccidental(e),this.octave=dt.validateOctave(r);else throw new N(2,`Invalid args: ${t}, ${e}, ${r}`)}get diatonicId(){return dt.getDiatonicIdInOctave(this.diatonicClass,this.octave)}get chromaticId(){return dt.getChromaticIdInOctave(Il[this.diatonicClass]+this.accidental,this.octave)}get midiNumber(){return this.chromaticId}get chromaticClass(){return dt.getChromaticClass(Il[this.diatonicClass]+this.accidental)}get noteLetter(){return co[this.diatonicClass]}format(t,e){let{noteLetter:r,octave:n}=this,o=dt.getAccidentalSymbol(this.accidental,e);return t===1?n>=3?r.toLowerCase()+o+"\u2032".repeat(n-3):r.toUpperCase()+o+"\u0375".repeat(2-n):r+o+n}formatOmitOctave(t){let e=co[this.diatonicClass],r=dt.getAccidentalSymbol(this.accidental,t);return e+r}static getNote(t){return this.noteCache.getOrCreate(t,()=>{let e=dt.parseNote(t);if(!e)throw new N(2,`Invalid note "${t}".`);if(e.octave===void 0)throw new N(2,`Invalid note "${t}" (missing octave).`);return new dt(e.noteLetter,e.accidental,e.octave)})}static isNote(t){let e=dt.parseNote(t);return e!==void 0&&e.octave!==void 0}static validateNote(t){if(this.isNote(t))return!0;throw new N(2,`Invalid note "${t}"`)}static getChromaticNote(t){return this.chromaticNoteCache.getOrCreate(t,()=>{let r=["C/B#","C#/Db","D","D#/Eb","E/Fb","F/E#","F#/Gb","G","G#/Ab","A","A#/Bb","B/Cb"][dt.getChromaticClass(t)].split("/")[0]+dt.getOctaveFromChromaticId(t);return dt.getNote(r)})}static getDiatonicClass(t){if(typeof t=="number")return _l(t,7);if(typeof t=="string"&&t.length>0)return co.indexOf(dt.validateNoteLetter(t[0]));throw new N(2,`Invalid arg: ${t}`)}static getOctaveFromDiatonicId(t){return Math.floor((t-Sl)/7)}static getDiatonicIdInOctave(t,e){return dt.getDiatonicClass(t)+e*7+Sl}static getChromaticClass(t){return _l(t,12)}static getOctaveFromChromaticId(t){return Math.floor((t-vl)/12)}static getChromaticIdInOctave(t,e){return dt.getChromaticClass(t)+e*12+vl}static equals(t,e){return t==null&&e==null?!0:t==null||e==null?!1:t===e||t.diatonicId===e.diatonicId&&t.accidental===e.accidental}static replaceAccidentalSymbols(t,e){return e===1?t.replace("bb","\u{1D12B}").replace("b","\u266D").replace("#","\u266F").replace("x","\u{1D12A}"):t.replace("\u{1D12B}","bb").replace("\u266D","b").replace("\u266F","#").replace("\u{1D12A}","x")}static isValidNoteName(t){return Tl.test(t)}static parseNote(t){var c;let e=Tl.exec(t);if(!e)return;let r=dt.validateNoteLetter(e[1]),n=e[2],o=dt.validateAccidental((c=wl.get(n))!=null?c:0),s=e[3],a=s?dt.validateOctave(+s):void 0;return{noteLetter:r,accidental:o,octave:a}}static getScientificNoteName(t,e){let r=dt.parseNote(t);if(!r)throw new N(2,`Invalid noteName: ${t}`);let{noteLetter:n,accidental:o,octave:s}=r;return n+dt.getAccidentalSymbol(o,e)+(s!=null?s:"")}static getAccidentalSymbol(t,e){return e===1?VA.get(t):GA.get(t)}static getAccidental(t){let e=wl.get(t);if(e===void 0)throw new N(2,`Invalid accidental: ${t}`);return e}static getNoteLetter(t){return co[dt.getDiatonicClass(t)]}static findNextDiatonicIdAbove(t,e,r){let n=dt.getDiatonicClass(t),o=dt.getDiatonicClass(e),s=r?n<=o?1:0:n<o?1:0;return dt.getDiatonicIdInOctave(n,dt.getOctaveFromDiatonicId(e)+s)}static validateDiatonicId(t){if(y.isInteger(t))return t;throw new N(2,`Invalid diatonicId: ${t}`)}static validateDiatonicClass(t){if(y.isIntegerBetween(t,0,6))return t;throw new N(2,`Invalid diatonicClass: ${t}`)}static validateChromaticId(t){if(y.isInteger(t))return t;throw new N(2,`Invalid chromaticId: ${t}`)}static validatechromaticClass(t){if(y.isIntegerBetween(t,0,11))return t;throw new N(2,`Invalid chromaticClass: ${t}`)}static validateNoteLetter(t){if(co.some(e=>e===t))return t;throw new N(2,`Invalid note: ${t}`)}static validateOctave(t){if(y.isInteger(t))return t;throw new N(2,`Invalid octave: ${t}`)}static validateAccidental(t){if(y.isIntegerBetween(t,-2,2))return t;throw new N(2,`Invalid accidental: ${t}`)}static sort(t){return t.slice().sort(dt.compareFunc)}static removeDuplicates(t){let e=[];return t.forEach(r=>{e.find(n=>dt.equals(r,n))===void 0&&e.push(r)}),e}static compareFunc(t,e){return t.diatonicId<e.diatonicId?-1:t.diatonicId>e.diatonicId?1:t.accidental<e.accidental?-1:t.accidental>e.accidental?1:0}};d(dt,"noteCache",new lt),d(dt,"chromaticNoteCache",new lt);var U=dt;function qA(i,t){let e=U.getChromaticClass(i)-new U(t,0).chromaticClass;for(;e>2;)e-=12;for(;e<-2;)e+=12;return U.validateAccidental(e)}var WA=/^(bb?|b?|#?|x?)([0-9]*)$/;function UA(i){var n,o;let t=WA.exec(""+i);if(!t)throw new N(4,`Invalid degree: ${i}`);let e=(o=U.getAccidental((n=t[1])!=null?n:""))!=null?o:0,r=+t[2];if(!y.isInteger(e)||e<-2||e>2||!y.isInteger(r)||r<1)throw new N(4,`Invalid degree: ${i}`);return{deg:r,acc:e}}var lu=(a=>(a[a.Ionian=1]="Ionian",a[a.Dorian=2]="Dorian",a[a.Phrygian=3]="Phrygian",a[a.Lydian=4]="Lydian",a[a.Mixolydian=5]="Mixolydian",a[a.Aeolian=6]="Aeolian",a[a.Locrian=7]="Locrian",a))(lu||{}),du=(r=>(r[r.Natural=0]="Natural",r[r.Flats=1]="Flats",r[r.Sharps=2]="Sharps",r))(du||{});function Ys(){return Pr("C","Major")}var ei=class ei{constructor(t,e){this.tonic=t;this.mode=e;d(this,"naturalScaleNotes");d(this,"accidentalByDiatonicClass");d(this,"orderedAccidentedNotes");if(!y.isEnumValue(e,lu))throw new N(4,`Invalid mode: ${e}`);let r=[2,2,1,2,2,2,1];for(let c=1;c<e;c++)r.push(r.shift());this.naturalScaleNotes=[],this.accidentalByDiatonicClass=[];let n=U.getDiatonicClass(t[0]),o=U.getNote(t+"0").chromaticId;for(let c=0;c<7;n++,o+=r[c],c++){let u=new U(U.getDiatonicClass(n),qA(o,n));if(Math.abs(u.accidental)>=2)throw new N(4,"Key signature contains double accidental.");this.naturalScaleNotes[c]=u,this.accidentalByDiatonicClass[u.diatonicClass]=u.accidental}let s=this.naturalScaleNotes.filter(c=>c.accidental>0).sort((c,u)=>{let h=ei.OrderOfSharps.indexOf(c.noteLetter),l=ei.OrderOfSharps.indexOf(u.noteLetter);if(h===-1||l===-1)throw new N(4,"Unexpected note in key signature.");return h-l}),a=this.naturalScaleNotes.filter(c=>c.accidental<0).sort((c,u)=>{let h=ei.OrderOfFlats.indexOf(c.noteLetter),l=ei.OrderOfFlats.indexOf(u.noteLetter);if(h===-1||l===-1)throw new N(4,"Unexpected note in key signature.");return h-l});if(s.length!==0&&a.length!==0)throw new N(4,"Key Signature has both sharps and flats.");this.orderedAccidentedNotes=a.length>0?a:s}getAccidentalType(){return this.orderedAccidentedNotes.length===0?0:this.orderedAccidentedNotes[0].accidental<0?1:2}getNaturalScaleNotes(){return this.naturalScaleNotes}getAccidental(t){var e;return(e=this.accidentalByDiatonicClass[U.getDiatonicClass(t)])!=null?e:0}getNumAccidentals(){return this.orderedAccidentedNotes.length}getOrderedAccidentalNotes(){return this.orderedAccidentedNotes}getNoteByDegree(t){let{deg:e,acc:r}=UA(t);if(r===0)return this.naturalScaleNotes[(e-1)%7];{let n=this.naturalScaleNotes[(e-1)%7];return new U(n.diatonicId,n.accidental+r)}}static equals(t,e){return t==null&&e==null?!0:t==null||e==null?!1:t===e||t.tonic===e.tonic&&t.mode===e.mode}};d(ei,"OrderOfSharps","FCGDAEB"),d(ei,"OrderOfFlats","BEADGCF");var rr=ei;var zA=new lt([["Major","M"],["minor","m"],["Perfect","P"],["diminished","d"],["Augmented","A"],["doubly diminished","dd"],["Doubly Augmented","AA"]]),YA={1:{0:"Perfect",1:"Augmented","-1":"diminished",2:"Doubly Augmented","-2":"doubly diminished"},2:{2:"Major",1:"minor",3:"Augmented",0:"diminished",4:"Doubly Augmented","-1":"doubly diminished"},3:{4:"Major",3:"minor",5:"Augmented",2:"diminished",6:"Doubly Augmented",1:"doubly diminished"},4:{5:"Perfect",6:"Augmented",4:"diminished",7:"Doubly Augmented",3:"doubly diminished"},5:{7:"Perfect",8:"Augmented",6:"diminished",9:"Doubly Augmented",5:"doubly diminished"},6:{9:"Major",8:"minor",10:"Augmented",7:"diminished",11:"Doubly Augmented",6:"doubly diminished"},7:{11:"Major",10:"minor",12:"Augmented",9:"diminished",13:"Doubly Augmented",8:"doubly diminished"},8:{12:"Perfect",13:"Augmented",11:"diminished",14:"Doubly Augmented",10:"doubly diminished"}};function HA(i,t){for(;i<1;)i+=7,t+=12;for(;i>8;)i-=7,t-=12;let e=YA[i];if(e)return e[t]}function $A(i){if(i==="Perfect"||i==="Major"||i==="minor"||i==="Augmented"||i==="diminished"||i==="Doubly Augmented"||i==="doubly diminished")return i;throw new N(1,`Invalid interval quality: ${i}`)}function ZA(i){if(y.isIntegerGte(i,1))return $.Math.toOrdinalNumber(i);throw new N(1,`Invalid interval quantity: ${i}`)}var Hs=class extends Error{constructor(e){super(e);this.msg=e;this.name="InvalidInterval"}},uo=class i{constructor(t,e){this.note1=t;this.note2=e;d(this,"direction");d(this,"semitones");d(this,"quantity");d(this,"quality");e.diatonicId>=t.diatonicId?(this.direction=e.diatonicId===t.diatonicId?"Unison":"Ascending",this.quantity=e.diatonicId-t.diatonicId+1,this.semitones=e.chromaticId-t.chromaticId):(this.direction="Descending",this.quantity=t.diatonicId-e.diatonicId+1,this.semitones=t.chromaticId-e.chromaticId);let r=HA(this.quantity,this.semitones);if(r)this.quality=r;else throw new Hs("Unknown interval quality")}static get(t,e){try{return new i(t,e)}catch(r){if(r instanceof Hs)return;throw r}}toString(){let t=this.direction==="Unison"?"":this.direction+" ",e=this.quality+" ",r=this.direction==="Unison"?"Unison":ZA(this.quantity);return t+e+r}toAbbrString(){let t=this.direction==="Descending"?"\u2193":"",e=zA.getOrDefault(this.quality,"?"),r=this.quantity;return t+e+r}};function XA(i){let t=U.getDiatonicClass("CCDDEFFGGAAB"[U.getChromaticClass(i)]),e=U.getOctaveFromChromaticId(i);return U.getDiatonicIdInOctave(t,e)}var QA=["Cb","C","C#","Db","D","D#","Eb","E","E#","Fb","F","F#","Gb","G","G#","Ab","A","A#","Bb","B","B#"],Ti=(g=>(g.Major="Major",g.NaturalMinor="Natural Minor",g.HarmonicMinor="Harmonic Minor",g.Ionian="Ionian",g.Dorian="Dorian",g.Phrygian="Phrygian",g.Lydian="Lydian",g.Mixolydian="Mixolydian",g.Aeolian="Aeolian",g.Locrian="Locrian",g.MajorPentatonic="Major Pentatonic",g.MinorPentatonic="Minor Pentatonic",g.MajorHexatonicBlues="Major Hexatonic Blues",g.MinorHexatonicBlues="Minor Hexatonic Blues",g.HeptatonicBlues="Heptatonic Blues",g))(Ti||{});function KA(i){switch(i){case"Major":return 1;case"Natural Minor":return 6;case"Harmonic Minor":return 6;case"Ionian":return 1;case"Dorian":return 2;case"Phrygian":return 3;case"Lydian":return 4;case"Mixolydian":return 5;case"Aeolian":return 6;case"Locrian":return 7;case"Major Pentatonic":return 1;case"Minor Pentatonic":return 6;case"Major Hexatonic Blues":return 1;case"Minor Hexatonic Blues":return 6;case"Heptatonic Blues":return 1;default:throw new N(3,`Invalid scaleType: ${i}`)}}var ri=class extends rr{constructor(e,r){super(e,KA(r));this.tonic=e;this.scaleType=r;d(this,"scaleDegrees");d(this,"scaleNotes");d(this,"chromaticClassDegree");d(this,"preferredChromaticIdNoteCache",new bl);switch(r){case"Harmonic Minor":this.scaleDegrees=[1,2,3,4,5,6,"#7"];break;case"Major Pentatonic":this.scaleDegrees=[1,2,3,5,6];break;case"Minor Pentatonic":this.scaleDegrees=[1,3,4,5,7];break;case"Major Hexatonic Blues":this.scaleDegrees=[1,2,"b3",3,5,6];break;case"Minor Hexatonic Blues":this.scaleDegrees=[1,3,4,"b5",5,7];break;case"Heptatonic Blues":this.scaleDegrees=[1,2,"b3",4,"b5",6,"b7"];break;default:this.scaleDegrees=[1,2,3,4,5,6,7];break}this.scaleNotes=this.scaleDegrees.map(n=>this.getNoteByDegree(n)),this.chromaticClassDegree=[0,1,2,3,4,5,6,7,8,9,10,11].map(n=>{let o=this.scaleNotes.findIndex(s=>s.chromaticClass===n);return o>=0?this.scaleDegrees[o]:void 0})}static equals(e,r){return e==null&&r==null?!0:e==null||r==null?!1:e===r||e.getScaleName()===r.getScaleName()}getScaleName(e){switch(e){case 1:return U.getScientificNoteName(this.tonic,e)+" "+this.scaleType;default:return this.tonic+" "+this.scaleType}}getScaleNotes(e,r){if(!y.isIntegerGte(r,1))throw new N(3,`Invalid numOctaves: ${r}`);let n=[];for(let s=1;s<=r;s++)n=[...n,...this.scaleNotes];n.push(this.scaleNotes[0]);let o=U.getNote(e).diatonicId;return n.map(s=>(o=U.findNextDiatonicIdAbove(s.diatonicId,o,!1),new U(o,s.accidental)))}getScaleOverview(){return this.getScaleNotes("C4",1).map(e=>e.formatOmitOctave(1)).join(" - ")}getScaleSteps(){let e=this.getScaleNotes("C4",1).map(n=>n.chromaticId),r=[];for(let n=0;n<e.length-1;n++)r.push($.Math.mod(e[n+1]-e[n],12));return r}getScaleStringSteps(){return this.getScaleSteps().map(e=>e===1?"H":e===2?"W":e.toString()+"H")}isScaleNote(e){return this.chromaticClassDegree[e.chromaticClass]!==void 0}isScaleRootNote(e){return String(this.chromaticClassDegree[e.chromaticClass])==="1"}getIntervalFromRootNote(e){let r=this.getScaleNotes("C0",1)[0];for(;e.chromaticId>=r.chromaticId+12;)e=new U(e.diatonicClass,e.accidental,e.octave-1);if(e.chromaticId<r.chromaticId)throw new N(3,"Note is below rootNote.");let n=uo.get(r,e);if(n===void 0)throw new N(3,"Interval is undefined.");return n}getPreferredChromaticNote(e){U.validateChromaticId(e);let r=this.preferredChromaticIdNoteCache.get(e);if(r)return r;let n=U.getOctaveFromChromaticId(e);if(r=this.scaleNotes.map(l=>l.noteLetter==="C"&&l.accidental<0?new U(l.diatonicClass,l.accidental,n+1):l.noteLetter==="B"&&l.accidental>0?new U(l.diatonicClass,l.accidental,n-1):new U(l.diatonicClass,l.accidental,n)).find(l=>U.getChromaticClass(e)===l.chromaticClass),r)return this.preferredChromaticIdNoteCache.set(e,r),r;let s=XA(e),a=s-2,c=s+2,h=this.getAccidentalType()===1?[0,-1,1,-2,2]:[0,1,-1,2,-2];for(let l=0;l<h.length;l++){let p=h[l];for(let m=Math.max(0,a);m<=c;m++)if(r=new U(m,p),e===r.chromaticId)return this.preferredChromaticIdNoteCache.set(e,r),r}return r=U.getChromaticNote(e),this.preferredChromaticIdNoteCache.set(e,r),r}},ne=class{constructor(t){this.type=t;d(this,"tonicList",[]);d(this,"scaleMap",new Map);let e=[],r=[],n=[];if(QA.forEach(s=>{try{let a=new ri(s,this.type);switch(a.getAccidentalType()){case 0:e.push(a);break;case 2:if(s.endsWith("b"))return;r.push(a);break;case 1:if(s.endsWith("#"))return;n.push(a);break}this.scaleMap.set(s,a)}catch(a){}}),e.length===0)throw new N(3,"Expected natural scale.");let o=(s,a)=>s.getNumAccidentals()-a.getNumAccidentals();this.tonicList=[...e.sort(o).map(s=>s.tonic),"- Sharps -",...r.sort(o).map(s=>s.tonic),"- Flats -",...n.sort(o).map(s=>s.tonic)]}getTonicList(){return this.tonicList}getDefaultTonic(){return this.tonicList[0]}getType(){return this.type}getScale(t){let e=this.scaleMap.get(t);if(e)return e;throw new N(3,`Invalid scale: ${t} ${this.type}`)}hasScale(t){return this.scaleMap.get(t)!==void 0}},Nl=[new ne("Major"),new ne("Natural Minor"),new ne("Harmonic Minor"),"- Modes -",new ne("Ionian"),new ne("Dorian"),new ne("Phrygian"),new ne("Lydian"),new ne("Mixolydian"),new ne("Aeolian"),new ne("Locrian"),"- Pentatonic -",new ne("Major Pentatonic"),new ne("Minor Pentatonic"),"- Blues -",new ne("Major Hexatonic Blues"),new ne("Minor Hexatonic Blues"),new ne("Heptatonic Blues")];function JA(){return Nl}var Ol=new lt;Nl.forEach(i=>{i instanceof ne&&Ol.set(i.getType(),i)});function Rl(i){let t=Ol.get(i);if(t)return t;throw new N(3,`Invalid scaleType: ${i}`)}function ho(i){if(y.isEnumValue(i,Ti))return i;throw new N(3,`Invalid scaleType: "${i}"`)}function Pr(i,t){let e,r;return t!==void 0?(e=i,r=ho(t)):(e=i.split(" ")[0],r=ho(i.substring(e.length+1))),Rl(r).getScale(e)}var tC=Pr("C","Major");function eC(){return tC}var Fr=(i,t)=>i.chromaticClass===t.chromaticClass,rC=["C","C#","Db","D","Eb","E","F","F#","Gb","G","Ab","A","Bb","B","Cb"].map(i=>U.getNote(i+"0")),iC=new vr;function nC(i){return iC.getOrCreate(i.chromaticClass,()=>{let t=rC.find(e=>Fr(e,i));if(!t)throw new N(1,`Invalid chord root note: ${i.formatOmitOctave(1)}`);return t})}function oC(i,t){let e=i.formatOmitOctave(0);return Pr(e,"Major").getNoteByDegree(t)}function sC(i){return $.Arr.removeDuplicates(i,Fr)}var aC=[{name:"5",degrees:[1,5]},{name:"",degrees:[1,3,5]},{name:"m",degrees:[1,"b3",5]},{name:"dim",degrees:[1,"b3","b5"]},{name:"aug",degrees:[1,3,"#5"]},{name:"sus2",degrees:[1,2,5]},{name:"sus4",degrees:[1,4,5]},{name:"6",degrees:[1,3,5,6]},{name:"m6",degrees:[1,"b3",5,6]},{name:"m(maj7)",degrees:[1,"b3",5,7]},{name:"7",degrees:[1,3,5,"b7"]},{name:"7\u266D5",degrees:[1,3,"b5","b7"]},{name:"7\u266F5",degrees:[1,3,"#5","b7"]},{name:"7sus2",degrees:[1,2,5,"b7"]},{name:"7sus4",degrees:[1,4,5,"b7"]},{name:"dim7",degrees:[1,"b3","b5","bb7"]},{name:"maj7",degrees:[1,3,5,7]},{name:"maj7\u266D5",degrees:[1,3,"b5",7]},{name:"maj7\u266F5",degrees:[1,3,"#5",7]},{name:"m7",degrees:[1,"b3",5,"b7"]},{name:"m7\u266D5",degrees:[1,"b3","b5","b7"]},{name:"m7\u266F5",degrees:[1,"b3","#5","b7"]},{name:"9",degrees:[1,3,5,"b7",9]},{name:"m9",degrees:[1,"b3",5,"b7",9]},{name:"7\u266F9",degrees:[1,3,5,"b7","#9"]},{name:"7\u266D9",degrees:[1,3,5,"b7","b9"]},{name:"11",degrees:[1,3,5,"b7",9,11]},{name:"m11",degrees:[1,"b3",5,"b7",9,11]},{name:"13",degrees:[1,3,5,"b7",9,11,13]},{name:"m13",degrees:[1,"b3",5,"b7",9,11,13]}];function cC(i,t){return i.degrees.every(e=>e!==t)?!0:i.degrees.length>=4&&t===5||i.degrees.length>=6&&t===9||i.degrees.length>=7&&t===11}var nn=class extends Error{constructor(e){super(e);this.msg=e;this.name="InvalidChordException"}},pu=class i{constructor(t,e,r,n){this.chordInfo=t;this.rootNote=r;d(this,"name");d(this,"notes");d(this,"omitNotes");d(this,"slashBassNote");this.name=t.name;let o=e.slice();!o.some(a=>Fr(a,n))&&o.push(n),this.notes=new Array(this.chordInfo.degrees.length),this.omitNotes=new Array(this.chordInfo.degrees.length);for(let a=0;a<t.degrees.length;a++){let c=t.degrees[a],u=this.notes[a]=oC(this.rootNote,c),h=o.findIndex(l=>Fr(l,u));if(h>=0)this.omitNotes[a]=!1,o.splice(h,1);else if(cC(t,c))this.omitNotes[a]=!0;else throw new nn("Missing chord note!");Fr(n,u)&&(n=u)}if(o.length>0)if(o.every(a=>Fr(a,n)))this.slashBassNote=n;else throw new nn("Got some extra notes that are not bass note!");else this.slashBassNote=Fr(n,this.rootNote)?void 0:n;if(t.name==="5"&&this.slashBassNote)throw new nn("Power chord no bass note allowed!")}static getChords(t){let e=[],r=U.sort(t),n=r[0],o=sC(r);for(let s=0;s<o.length;s++){let a=nC(o[s]);aC.forEach(c=>{try{let u=new i(c,o,a,n),h=e.findIndex(l=>l.replaceWith(u));h>=0?e[h]=u:e.push(u)}catch(u){if(!(u instanceof nn))throw u}})}return e}replaceWith(t){if(t.notes.length<this.notes.length)return!1;if(t.slashBassNote&&this.slashBassNote&&!Fr(t.slashBassNote,this.slashBassNote)||t.slashBassNote&&!this.slashBassNote||!t.slashBassNote&&this.slashBassNote)return!1;for(let e=0;e<this.notes.length;e++)if(!Fr(t.notes[e],this.notes[e])||t.omitNotes[e]!==this.omitNotes[e])return!1;return!0}toString(){let t=1,e=this.rootNote.formatOmitOctave(t),r=this.slashBassNote?"/"+this.slashBassNote.formatOmitOctave(t):"";return e+this.name+r}getDegreeNotationString(){let t=1,e=this.slashBassNote?this.slashBassNote.formatOmitOctave(t)+" - ":"",r=this.omitNotes.map((n,o)=>this.getDegreeStr(o)+"("+(n?"-":this.getNoteStr(o))+")").join(" - ");return e+r}getOmittedDegreesString(){let t=this.omitNotes.map((e,r)=>e?this.getDegreeStr(r)+"("+this.getNoteStr(r)+")":void 0).filter(e=>e!==void 0);return t.length>0?"Omits "+t.join(", "):""}getDegreeStr(t){return U.replaceAccidentalSymbols(""+this.chordInfo.degrees[t],1)}getNoteStr(t){return this.notes[t].formatOmitOctave(1)}};var mu={list:[{name:"Standard",strings:["E2","A2","D3","G3","B3","E4"]},{name:"B Standard",strings:["B1","E2","A2","D3","F#3","B3"]},{name:"C Standard",strings:["C2","F2","A#2","D#3","G3","C4"]},{name:"D Modal",strings:["D2","A2","D3","G3","A3","D4"]},{name:"D Standard",strings:["D2","G2","C3","F3","A3","D4"]},{name:"D# Standard",strings:["D#2","G#2","C#3","F#3","A#3","D#4"]},{name:"Double Drop D",strings:["D2","A2","D3","G3","B3","D4"]},{name:"Drop B",strings:["B1","F#2","B2","E3","G#3","C#4"]},{name:"Drop C",strings:["C2","G2","C3","F3","A3","D4"]},{name:"Drop D",strings:["D2","A2","D3","G3","B3","E4"]},{name:"Low C",strings:["C2","G2","D3","G3","A3","D4"]},{name:"New Standard",strings:["C2","G2","D3","A3","E4","G4"]},{name:"Open A",strings:["E2","A2","C#3","E3","A3","E4"]},{name:"Open A Minor",strings:["E2","A2","E3","A3","C4","E4"]},{name:"Open C",strings:["C2","G2","C3","G3","C4","E4"]},{name:"Open C Minor",strings:["C2","G2","C3","G3","C4","D#4"]},{name:"Open D",strings:["D2","A2","D3","F#3","A3","D4"]},{name:"Open D Minor",strings:["D2","A2","D3","F3","A3","D4"]},{name:"Open E",strings:["E2","B2","E3","G#3","B3","E4"]},{name:"Open E Minor",strings:["E2","B2","E3","G3","B3","E4"]},{name:"Open G",strings:["D2","G2","D3","G3","B3","D4"]},{name:"Open G Minor",strings:["D2","G2","D3","G3","A#3","D4"]}]};var lo=mu.list.map(i=>i.name),hC=lo[0];function fu(i){if(lo.indexOf(i)<0)throw new N(1,`Invalid tuning name: ${i}`);return i}var Ml=new yl(100);function $s(i){let t=Ml.get(i);if(!t){let e=mu.list.find(r=>r.name===i);if(!e)throw new N(1,`Invalid tuningName: ${i}`);if(t=e.strings.slice().reverse().map(r=>U.getNote(r)),!y.isIntegerEq(t.length,6))throw new N(0,`Tuning has ${t.length} strings.`);Ml.set(i,t)}return t}var El=12,lC=1188*7*5,ir=(k=>(k.Whole="1n",k.WholeTriplet="1t",k.WholeDot="1.",k.Whole2Dots="1..",k.Whole3Dots="1...",k.Whole4Dots="1....",k.Whole5Dots="1.....",k.Whole6Dots="1......",k.Half="2n",k.HalfTriplet="2t",k.HalfDot="2.",k.Half2Dots="2..",k.Half3Dots="2...",k.Half4Dots="2....",k.Half5Dots="2.....",k.Quarter="4n",k.QuarterTriplet="4t",k.QuarterDot="4.",k.Quarter2Dots="4..",k.Quarter3Dots="4...",k.Quarter4Dots="4....",k.Eighth="8n",k.EighthTriplet="8t",k.EighthDot="8.",k.Eighth2Dots="8..",k.Eighth3Dots="8...",k.Sixteenth="16n",k.SixteenthTriplet="16t",k.SixteenthDot="16.",k.Sixteenth2Dots="16..",k.ThirtySecond="32n",k.ThirtySecondTriplet="32t",k.ThirtySecondDot="32.",k.SixtyFourth="64n",k.SixtyFourthTriplet="64t",k))(ir||{});function nr(i){return y.isEnumValue(i,ir)}function Br(i){if(nr(i))return i;throw new N(1,`Invalid noteLength: ${i}`)}var me=class me{constructor(t){d(this,"noteLength");d(this,"noteSize");d(this,"ticks");d(this,"flagCount");d(this,"dotCount");d(this,"maxDotCount");d(this,"isTriplet");d(this,"hasStem");d(this,"isSolid");if(this.noteLength=Br(t),this.noteSize=parseInt(t),this.isTriplet=t.endsWith("t"),this.maxDotCount=this.isTriplet?0:Math.floor(Math.log2(me.ShortestNoteSize/this.noteSize)),this.dotCount=$.Str.charCount(t,"."),this.flagCount=this.noteSize>4?Math.floor(Math.log2(this.noteSize/4)):0,this.ticks=lC*me.ShortestNoteSize/this.noteSize,this.hasStem=this.noteSize>1,this.isSolid=this.noteSize>2,this.dotCount>this.maxDotCount)throw new N(2,`dotCount ${this.dotCount} > maxDotCount ${this.maxDotCount}, for noteLength "${this.noteLength}".`);if(this.isTriplet&&this.dotCount>0)throw new N(2,`noteLength "${this.noteLength}" is both triplet and dotted!`)}static get(t){return this.cache.getOrCreate(t,()=>new me(t))}static create(t,e=0){let r=typeof t=="number"?t:this.get(t).noteSize;return this.get(r+(y.isIntegerGte(e,1)?".".repeat(e):"n"))}static cmp(t,e){let r=t instanceof me?t.noteSize:typeof t=="number"?t:me.get(t).noteSize,n=e instanceof me?e.noteSize:typeof e=="number"?e:me.get(e).noteSize;return $.Math.cmp(n,r)}static equals(t,e){let r=t instanceof me?t.noteSize:typeof t=="number"?t:me.get(t).noteSize,n=e instanceof me?e.noteSize:typeof e=="number"?e:me.get(e).noteSize;return r===n}};d(me,"LongestNoteSize",Math.min(...$.Enum.getEnumValues(ir).map(t=>parseInt(t)))),d(me,"ShortestNoteSize",Math.max(...$.Enum.getEnumValues(ir).map(t=>parseInt(t)))),d(me,"cache",new lt);var Nt=me;function Zs(i){return y.isObject(i)&&y.isIntegerBetween(i.parts,2,El)&&y.isIntegerBetween(i.inTimeOf,2,El)}function Dl(i){if(Zs(i))return i;throw new N(2,`Invalid tupletRatio ${JSON.stringify(i)}`)}var Gr={Duplet:{parts:2,inTimeOf:3},Triplet:{parts:3,inTimeOf:2},Quadruplet:{parts:4,inTimeOf:3}},Ni=class Ni{constructor(t,e,r){d(this,"noteLength");d(this,"noteSize");d(this,"dotCount");d(this,"tupletRatio");d(this,"ticks");d(this,"flagCount");d(this,"hasStem");d(this,"isSolidNoteHead");this.noteLength=Br(t);let n=Nt.get(t);if(this.noteSize=n.noteSize,this.ticks=n.ticks,this.flagCount=n.flagCount,this.dotCount=e!=null?e:n.dotCount,this.hasStem=n.hasStem,this.isSolidNoteHead=n.isSolid,y.isObject(r)?this.tupletRatio=Dl(r):n.isTriplet?this.tupletRatio=Gr.Triplet:this.tupletRatio=void 0,this.dotCount>0&&this.tupletRatio!==void 0)throw new N(2,"Note cannot be both dotted and tuplet!");if(this.dotCount>n.maxDotCount)throw new N(2,`Too big dot count ${this.dotCount} for note length ${this.noteLength}.`);for(let o=this.ticks/2,s=1;s<=this.dotCount;s++,o/=2)this.ticks+=o;this.tupletRatio&&(this.ticks*=this.tupletRatio.inTimeOf/this.tupletRatio.parts)}toString(){let t=Ni.NoteSymbolMap.get(this.noteSize),e=".".repeat(this.dotCount);return t?t+e:""+this.noteSize+(e.length>0?e:"n")}static get(t,e,r){return e!==void 0||r!==void 0?new Ni(t,e,r):this.cache.getOrCreate(t,()=>new Ni(t))}static cmp(t,e){return $.Math.cmp(t.ticks,e.ticks)}static equals(t,e){return t.ticks===e.ticks}};d(Ni,"NoteSymbolMap",new vr([[1,"\u{1D15D}"],[2,"\u{1D15E}"],[4,"\u{1D15F}"],[8,"\u{1D160}"],[16,"\u{1D161}"],[32,"\u{1D162}"],[64,"\u{1D163}"],[128,"\u{1D164}"]])),d(Ni,"cache",new lt);var Kt=Ni;var po=(u=>(u._2_4="2/4",u._3_4="3/4",u._4_4="4/4",u._3_8="3/8",u._5_8="5/8",u._6_8="6/8",u._7_8="7/8",u._9_8="9/8",u._12_8="12/8",u))(po||{}),Oi=(n=>(n._2_3="2-3",n._3_2="3-2",n._2_2_3="2-2-3",n._3_2_2="3-2-2",n))(Oi||{}),ii=class{constructor(...t){d(this,"beatCount");d(this,"beatSize");d(this,"beatLength");d(this,"measureTicks");d(this,"beamGroupSizes",[]);let e;if(y.isEnumValue(t[0],po)){let o=t[0].split("/");this.beatCount=+o[0],this.beatSize=+o[1],y.isEnumValue(t[1],Oi)&&(e=t[1])}else if(y.isIntegerGte(t[0],2)&&y.isIntegerGte(t[1],2))this.beatCount=t[0],this.beatSize=t[1],y.isEnumValue(t[2],Oi)&&(e=t[2]);else throw new N(5,`Invalid args: ${t}`);if(y.isIntegerGte(this.beatCount,1)){if(!y.isIntegerGte(this.beatSize,1))throw new N(5,`Invalid beatSize: ${this.beatSize}`)}else throw new N(5,`Invalid beatCount: ${this.beatCount}`);let{noteLength:r,ticks:n}=Nt.create(this.beatSize);if(this.beatLength=r,this.measureTicks=this.beatCount*n,this.is(2,4))this.beamGroupSizes=[[2],[2]];else if(this.is(3,4))this.beamGroupSizes=[[2],[2],[2]];else if(this.is(4,4))this.beamGroupSizes=[[2,2],[2,2]];else if(this.is(3,8))this.beamGroupSizes=[[3]];else if(this.is(5,8)){if(!y.isUndefined(e)&&e!=="2-3"&&e!=="3-2")throw new N(5,`Invalid beam grouping "${e}" for time signature "${this.toString()}".`);this.beamGroupSizes=e==="3-2"?[[3],[2]]:[[2],[3]],e=void 0}else if(this.is(6,8))this.beamGroupSizes=[[3],[3]];else if(this.is(7,8)){if(!y.isUndefined(e)&&e!=="2-2-3"&&e!=="3-2-2")throw new N(5,`Invalid beam grouping "${e}" for time signature "${this.toString()}".`);this.beamGroupSizes=e==="3-2-2"?[[3],[2],[2]]:[[2],[2],[3]],e=void 0}else this.is(9,8)?this.beamGroupSizes=[[3],[3],[3]]:this.is(12,8)&&(this.beamGroupSizes=[[3],[3],[3],[3]]);if(this.beamGroupSizes.length===0)throw new N(5,`Unimplemented time signature "${this.toString()}".`);if(e!==void 0)throw new N(5,`Invalid beam grouping "${e}" for time signature "${this.toString()}".`)}is(t,e){return this.beatCount===t&&this.beatSize===e}toString(){return this.beatCount+"/"+this.beatSize}},gu;function Xs(){return gu||(gu=new ii(4,4)),gu}var yu;function Qs(){return yu||(yu={beatsPerMinute:120,options:{beatLength:"4n",dotCount:0}}),yu}function Ks(i){return Kt.get(i.options.beatLength,i.options.dotCount).toString()+"="+i.beatsPerMinute}function bu(i,t){return{beatsPerMinute:i.beatsPerMinute*t,options:{beatLength:i.options.beatLength,dotCount:i.options.dotCount}}}Ii();function Js(i){return!isFinite(i)||i<=0?-1/0:20*Math.log10(i)}var mo="15.1.22";var Au=(i,t,e)=>({endTime:t,insertTime:e,type:"exponentialRampToValue",value:i});var Cu=(i,t,e)=>({endTime:t,insertTime:e,type:"linearRampToValue",value:i});var on=(i,t)=>({startTime:t,type:"setValue",value:i});var fo=(i,t,e)=>({duration:e,startTime:t,type:"setValueCurve",values:i});var ta=(i,t,{startTime:e,target:r,timeConstant:n})=>r+(t-r)*Math.exp((e-i)/n);var Vr=i=>i.type==="exponentialRampToValue";var Ri=i=>i.type==="linearRampToValue";var or=i=>Vr(i)||Ri(i);var sn=i=>i.type==="setValue";var Ue=i=>i.type==="setValueCurve";var an=(i,t,e,r)=>{let n=i[t];return n===void 0?r:or(n)||sn(n)?n.value:Ue(n)?n.values[n.values.length-1]:ta(e,an(i,t-1,n.startTime,r),n)};var _u=(i,t,e,r,n)=>e===void 0?[r.insertTime,n]:or(e)?[e.endTime,e.value]:sn(e)?[e.startTime,e.value]:Ue(e)?[e.startTime+e.duration,e.values[e.values.length-1]]:[e.startTime,an(i,t-1,e.startTime,n)];var go=i=>i.type==="cancelAndHold";var yo=i=>i.type==="cancelScheduledValues";var qr=i=>go(i)||yo(i)?i.cancelTime:Vr(i)||Ri(i)?i.endTime:i.startTime;var vu=(i,t,e,{endTime:r,value:n})=>e===n?n:0<e&&0<n||e<0&&n<0?e*$h(n/e,(i-t)/(r-t)):0;var Su=(i,t,e,{endTime:r,value:n})=>e+(i-t)/(r-t)*(n-e);var kl=(i,t)=>{let e=Math.floor(t),r=Math.ceil(t);return e===r?i[e]:(1-(t-e))*i[e]+(1-(r-t))*i[r]};var Ll=(i,{duration:t,startTime:e,values:r})=>{let n=(i-e)/t*(r.length-1);return kl(r,n)};var bo=i=>i.type==="setTarget";var xo=class{constructor(t){this._automationEvents=[],this._currenTime=0,this._defaultValue=t}[Symbol.iterator](){return this._automationEvents[Symbol.iterator]()}add(t){let e=qr(t);if(go(t)||yo(t)){let r=this._automationEvents.findIndex(o=>yo(t)&&Ue(o)?o.startTime+o.duration>=e:qr(o)>=e),n=this._automationEvents[r];if(r!==-1&&(this._automationEvents=this._automationEvents.slice(0,r)),go(t)){let o=this._automationEvents[this._automationEvents.length-1];if(n!==void 0&&or(n)){if(o!==void 0&&bo(o))throw new Error("The internal list is malformed.");let s=o===void 0?n.insertTime:Ue(o)?o.startTime+o.duration:qr(o),a=o===void 0?this._defaultValue:Ue(o)?o.values[o.values.length-1]:o.value,c=Vr(n)?vu(e,s,a,n):Su(e,s,a,n),u=Vr(n)?Au(c,e,this._currenTime):Cu(c,e,this._currenTime);this._automationEvents.push(u)}if(o!==void 0&&bo(o)&&this._automationEvents.push(on(this.getValue(e),e)),o!==void 0&&Ue(o)&&o.startTime+o.duration>e){let s=e-o.startTime,a=(o.values.length-1)/o.duration,c=Math.max(2,1+Math.ceil(s*a)),u=s/(c-1)*a,h=o.values.slice(0,c);if(u<1)for(let l=1;l<c;l+=1){let p=u*l%1;h[l]=o.values[l-1]*(1-p)+o.values[l]*p}this._automationEvents[this._automationEvents.length-1]=fo(h,o.startTime,s)}}}else{let r=this._automationEvents.findIndex(s=>qr(s)>e),n=r===-1?this._automationEvents[this._automationEvents.length-1]:this._automationEvents[r-1];if(n!==void 0&&Ue(n)&&qr(n)+n.duration>e)return!1;let o=Vr(t)?Au(t.value,t.endTime,this._currenTime):Ri(t)?Cu(t.value,e,this._currenTime):t;if(r===-1)this._automationEvents.push(o);else{if(Ue(t)&&e+t.duration>qr(this._automationEvents[r]))return!1;this._automationEvents.splice(r,0,o)}}return!0}flush(t){let e=this._automationEvents.findIndex(r=>qr(r)>t);if(e>1){let r=this._automationEvents.slice(e-1),n=r[0];bo(n)&&r.unshift(on(an(this._automationEvents,e-2,n.startTime,this._defaultValue),n.startTime)),this._automationEvents=r}}getValue(t){if(this._automationEvents.length===0)return this._defaultValue;let e=this._automationEvents.findIndex(s=>qr(s)>t),r=this._automationEvents[e],n=(e===-1?this._automationEvents.length:e)-1,o=this._automationEvents[n];if(o!==void 0&&bo(o)&&(r===void 0||!or(r)||r.insertTime>t))return ta(t,an(this._automationEvents,n-1,o.startTime,this._defaultValue),o);if(o!==void 0&&sn(o)&&(r===void 0||!or(r)))return o.value;if(o!==void 0&&Ue(o)&&(r===void 0||!or(r)||o.startTime+o.duration>t))return t<o.startTime+o.duration?Ll(t,o):o.values[o.values.length-1];if(o!==void 0&&or(o)&&(r===void 0||!or(r)))return o.value;if(r!==void 0&&Vr(r)){let[s,a]=_u(this._automationEvents,n,o,r,this._defaultValue);return vu(t,s,a,r)}if(r!==void 0&&Ri(r)){let[s,a]=_u(this._automationEvents,n,o,r,this._defaultValue);return Su(t,s,a,r)}return this._defaultValue}};var wu=i=>({cancelTime:i,type:"cancelAndHold"});var Iu=i=>({cancelTime:i,type:"cancelScheduledValues"});var Tu=(i,t)=>({endTime:t,type:"exponentialRampToValue",value:i});var Nu=(i,t)=>({endTime:t,type:"linearRampToValue",value:i});var Ou=(i,t,e)=>({startTime:t,target:i,timeConstant:e,type:"setTarget"});var jl=()=>new DOMException("","AbortError");var Pl=i=>(t,e,[r,n,o],s)=>{i(t[n],[e,r,o],a=>a[0]===e&&a[1]===r,s)};var Fl=i=>(t,e,r)=>{let n=[];for(let o=0;o<r.numberOfInputs;o+=1)n.push(new Set);i.set(t,{activeInputs:n,outputs:new Set,passiveInputs:new WeakMap,renderer:e})};var Bl=i=>(t,e)=>{i.set(t,{activeInputs:new Set,passiveInputs:new WeakMap,renderer:e})};var Sr=new WeakSet,ea=new WeakMap,cn=new WeakMap,ra=new WeakMap,Ao=new WeakMap,un=new WeakMap,ia=new WeakMap,Co=new WeakMap,_o=new WeakMap,vo=new WeakMap;var Gl={construct(){return Gl}},Vl=i=>{try{let t=new Proxy(i,Gl);new t}catch(t){return!1}return!0};var ql=/^import(?:(?:[\s]+[\w]+|(?:[\s]+[\w]+[\s]*,)?[\s]*\{[\s]*[\w]+(?:[\s]+as[\s]+[\w]+)?(?:[\s]*,[\s]*[\w]+(?:[\s]+as[\s]+[\w]+)?)*[\s]*}|(?:[\s]+[\w]+[\s]*,)?[\s]*\*[\s]+as[\s]+[\w]+)[\s]+from)?(?:[\s]*)("([^"\\]|\\.)+"|'([^'\\]|\\.)+')(?:[\s]*);?/,Ru=(i,t)=>{let e=[],r=i.replace(/^[\s]+/,""),n=r.match(ql);for(;n!==null;){let o=n[1].slice(1,-1),s=n[0].replace(/([\s]+)?;?$/,"").replace(o,new URL(o,t).toString());e.push(s),r=r.slice(n[0].length).replace(/^[\s]+/,""),n=r.match(ql)}return[e.join(";"),r]};var Wl=i=>{if(i!==void 0&&!Array.isArray(i))throw new TypeError("The parameterDescriptors property of given value for processorCtor is not an array.")},Ul=i=>{if(!Vl(i))throw new TypeError("The given value for processorCtor should be a constructor.");if(i.prototype===null||typeof i.prototype!="object")throw new TypeError("The given value for processorCtor should have a prototype.")},zl=(i,t,e,r,n,o,s,a,c,u,h,l,p)=>{let m=0;return(f,g,b={credentials:"omit"})=>{let x=h.get(f);if(x!==void 0&&x.has(g))return Promise.resolve();let C=u.get(f);if(C!==void 0){let w=C.get(g);if(w!==void 0)return w}let S=o(f),T=S.audioWorklet===void 0?n(g).then(([w,v])=>{let[A,_]=Ru(w,v),E=`${A};((a,b)=>{(a[b]=a[b]||[]).push((AudioWorkletProcessor,global,registerProcessor,sampleRate,self,window)=>{${_}
3
+ })})(window,'_AWGS')`;return e(E)}).then(()=>{let w=p._AWGS.pop();if(w===void 0)throw new SyntaxError;r(S.currentTime,S.sampleRate,()=>w(class{},void 0,(v,A)=>{if(v.trim()==="")throw t();let _=_o.get(S);if(_!==void 0){if(_.has(v))throw t();Ul(A),Wl(A.parameterDescriptors),_.set(v,A)}else Ul(A),Wl(A.parameterDescriptors),_o.set(S,new Map([[v,A]]))},S.sampleRate,void 0,void 0))}):Promise.all([n(g),Promise.resolve(i(l,l))]).then(([[w,v],A])=>{let _=m+1;m=_;let[E,q]=Ru(w,v),D=`${E};((AudioWorkletProcessor,registerProcessor)=>{${q}
4
+ })(${A?"AudioWorkletProcessor":"class extends AudioWorkletProcessor {__b=new WeakSet();constructor(){super();(p=>p.postMessage=(q=>(m,t)=>q.call(p,m,t?t.filter(u=>!this.__b.has(u)):t))(p.postMessage))(this.port)}}"},(n,p)=>registerProcessor(n,class extends p{${A?"":"__c = (a) => a.forEach(e=>this.__b.add(e.buffer));"}process(i,o,p){${A?"":"i.forEach(this.__c);o.forEach(this.__c);this.__c(Object.values(p));"}return super.process(i.map(j=>j.some(k=>k.length===0)?[]:j),o,p)}}));registerProcessor('__sac${_}',class extends AudioWorkletProcessor{process(){return !1}})`,j=new Blob([D],{type:"application/javascript; charset=utf-8"}),F=URL.createObjectURL(j);return S.audioWorklet.addModule(F,b).then(()=>{if(a(S))return S;let W=s(S);return W.audioWorklet.addModule(F,b).then(()=>W)}).then(W=>{if(c===null)throw new SyntaxError;try{new c(W,`__sac${_}`)}catch(K){throw new SyntaxError}}).finally(()=>URL.revokeObjectURL(F))});return C===void 0?u.set(f,new Map([[g,T]])):C.set(g,T),T.then(()=>{let w=h.get(f);w===void 0?h.set(f,new Set([g])):w.add(g)}).finally(()=>{let w=u.get(f);w!==void 0&&w.delete(g)}),T}};var Jt=(i,t)=>{let e=i.get(t);if(e===void 0)throw new Error("A value with the given key could not be found.");return e};var ni=(i,t)=>{let e=Array.from(i).filter(t);if(e.length>1)throw Error("More than one element was found.");if(e.length===0)throw Error("No element was found.");let[r]=e;return i.delete(r),r};var na=(i,t,e,r)=>{let n=Jt(i,t),o=ni(n,s=>s[0]===e&&s[1]===r);return n.size===0&&i.delete(t),o};var wr=i=>Jt(ia,i);var sr=i=>{if(Sr.has(i))throw new Error("The AudioNode is already stored.");Sr.add(i),wr(i).forEach(t=>t(!0))};var oa=i=>"port"in i;var Ir=i=>{if(!Sr.has(i))throw new Error("The AudioNode is not stored.");Sr.delete(i),wr(i).forEach(t=>t(!1))};var So=(i,t)=>{!oa(i)&&t.every(e=>e.size===0)&&Ir(i)};var Yl=(i,t,e,r,n,o,s,a,c,u,h,l,p)=>{let m=new WeakMap;return(f,g,b,x,C)=>{let{activeInputs:S,passiveInputs:T}=o(g),{outputs:w}=o(f),v=a(f),A=_=>{let E=c(g),q=c(f);if(_){let M=na(T,f,b,x);i(S,f,M,!1),!C&&!l(f)&&e(q,E,b,x),p(g)&&sr(g)}else{let M=r(S,f,b,x);t(T,x,M,!1),!C&&!l(f)&&n(q,E,b,x);let R=s(g);if(R===0)h(g)&&So(g,S);else{let B=m.get(g);B!==void 0&&clearTimeout(B),m.set(g,setTimeout(()=>{h(g)&&So(g,S)},R*1e3))}}};return u(w,[g,b,x],_=>_[0]===g&&_[1]===b&&_[2]===x,!0)?(v.add(A),h(f)?i(S,f,[b,x,A],!0):t(T,x,[f,b,A],!0),!0):!1}};var Hl=i=>(t,e,[r,n,o],s)=>{let a=t.get(r);a===void 0?t.set(r,new Set([[n,e,o]])):i(a,[n,e,o],c=>c[0]===n&&c[1]===e,s)};var $l=i=>(t,e)=>{let r=i(t,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",gain:0});e.connect(r).connect(t.destination);let n=()=>{e.removeEventListener("ended",n),e.disconnect(r),r.disconnect()};e.addEventListener("ended",n)};var Zl=i=>(t,e)=>{i(t).add(e)};var dC={channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",fftSize:2048,maxDecibels:-30,minDecibels:-100,smoothingTimeConstant:.8},Xl=(i,t,e,r,n,o)=>class extends i{constructor(a,c){let u=n(a),h=O(O({},dC),c),l=r(u,h),p=o(u)?t():null;super(a,!1,l,p),this._nativeAnalyserNode=l}get fftSize(){return this._nativeAnalyserNode.fftSize}set fftSize(a){this._nativeAnalyserNode.fftSize=a}get frequencyBinCount(){return this._nativeAnalyserNode.frequencyBinCount}get maxDecibels(){return this._nativeAnalyserNode.maxDecibels}set maxDecibels(a){let c=this._nativeAnalyserNode.maxDecibels;if(this._nativeAnalyserNode.maxDecibels=a,!(a>this._nativeAnalyserNode.minDecibels))throw this._nativeAnalyserNode.maxDecibels=c,e()}get minDecibels(){return this._nativeAnalyserNode.minDecibels}set minDecibels(a){let c=this._nativeAnalyserNode.minDecibels;if(this._nativeAnalyserNode.minDecibels=a,!(this._nativeAnalyserNode.maxDecibels>a))throw this._nativeAnalyserNode.minDecibels=c,e()}get smoothingTimeConstant(){return this._nativeAnalyserNode.smoothingTimeConstant}set smoothingTimeConstant(a){this._nativeAnalyserNode.smoothingTimeConstant=a}getByteFrequencyData(a){this._nativeAnalyserNode.getByteFrequencyData(a)}getByteTimeDomainData(a){this._nativeAnalyserNode.getByteTimeDomainData(a)}getFloatFrequencyData(a){this._nativeAnalyserNode.getFloatFrequencyData(a)}getFloatTimeDomainData(a){this._nativeAnalyserNode.getFloatTimeDomainData(a)}};var vt=(i,t)=>i.context===t;var Ql=(i,t,e)=>()=>{let r=new WeakMap,n=(o,s)=>J(null,null,function*(){let a=t(o);if(!vt(a,s)){let u={channelCount:a.channelCount,channelCountMode:a.channelCountMode,channelInterpretation:a.channelInterpretation,fftSize:a.fftSize,maxDecibels:a.maxDecibels,minDecibels:a.minDecibels,smoothingTimeConstant:a.smoothingTimeConstant};a=i(s,u)}return r.set(s,a),yield e(o,s,a),a});return{render(o,s){let a=r.get(s);return a!==void 0?Promise.resolve(a):n(o,s)}}};var hn=i=>{try{i.copyToChannel(new Float32Array(1),0,-1)}catch(t){return!1}return!0};var ze=()=>new DOMException("","IndexSizeError");var ln=i=>{i.getChannelData=(t=>e=>{try{return t.call(i,e)}catch(r){throw r.code===12?ze():r}})(i.getChannelData)};var pC={numberOfChannels:1},Kl=(i,t,e,r,n,o,s,a)=>{let c=null;return class Jl{constructor(h){if(n===null)throw new Error("Missing the native OfflineAudioContext constructor.");let{length:l,numberOfChannels:p,sampleRate:m}=O(O({},pC),h);c===null&&(c=new n(1,1,44100));let f=r!==null&&t(o,o)?new r({length:l,numberOfChannels:p,sampleRate:m}):c.createBuffer(p,l,m);if(f.numberOfChannels===0)throw e();return typeof f.copyFromChannel!="function"?(s(f),ln(f)):t(hn,()=>hn(f))||a(f),i.add(f),f}static[Symbol.hasInstance](h){return h!==null&&typeof h=="object"&&Object.getPrototypeOf(h)===Jl.prototype||i.has(h)}}};var $t=-34028234663852886e22,Ut=-$t;var xe=i=>Sr.has(i);var mC={buffer:null,channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",loop:!1,loopEnd:0,loopStart:0,playbackRate:1},td=(i,t,e,r,n,o,s,a)=>class extends i{constructor(u,h){let l=o(u),p=O(O({},mC),h),m=n(l,p),f=s(l),g=f?t():null;super(u,!1,m,g),this._audioBufferSourceNodeRenderer=g,this._isBufferNullified=!1,this._isBufferSet=p.buffer!==null,this._nativeAudioBufferSourceNode=m,this._onended=null,this._playbackRate=e(this,f,m.playbackRate,Ut,$t)}get buffer(){return this._isBufferNullified?null:this._nativeAudioBufferSourceNode.buffer}set buffer(u){if(this._nativeAudioBufferSourceNode.buffer=u,u!==null){if(this._isBufferSet)throw r();this._isBufferSet=!0}}get loop(){return this._nativeAudioBufferSourceNode.loop}set loop(u){this._nativeAudioBufferSourceNode.loop=u}get loopEnd(){return this._nativeAudioBufferSourceNode.loopEnd}set loopEnd(u){this._nativeAudioBufferSourceNode.loopEnd=u}get loopStart(){return this._nativeAudioBufferSourceNode.loopStart}set loopStart(u){this._nativeAudioBufferSourceNode.loopStart=u}get onended(){return this._onended}set onended(u){let h=typeof u=="function"?a(this,u):null;this._nativeAudioBufferSourceNode.onended=h;let l=this._nativeAudioBufferSourceNode.onended;this._onended=l!==null&&l===h?u:l}get playbackRate(){return this._playbackRate}start(u=0,h=0,l){if(this._nativeAudioBufferSourceNode.start(u,h,l),this._audioBufferSourceNodeRenderer!==null&&(this._audioBufferSourceNodeRenderer.start=l===void 0?[u,h]:[u,h,l]),this.context.state!=="closed"){sr(this);let p=()=>{this._nativeAudioBufferSourceNode.removeEventListener("ended",p),xe(this)&&Ir(this)};this._nativeAudioBufferSourceNode.addEventListener("ended",p)}}stop(u=0){this._nativeAudioBufferSourceNode.stop(u),this._audioBufferSourceNodeRenderer!==null&&(this._audioBufferSourceNodeRenderer.stop=u)}};var ed=(i,t,e,r,n)=>()=>{let o=new WeakMap,s=null,a=null,c=(u,h)=>J(null,null,function*(){let l=e(u),p=vt(l,h);if(!p){let m={buffer:l.buffer,channelCount:l.channelCount,channelCountMode:l.channelCountMode,channelInterpretation:l.channelInterpretation,loop:l.loop,loopEnd:l.loopEnd,loopStart:l.loopStart,playbackRate:l.playbackRate.value};l=t(h,m),s!==null&&l.start(...s),a!==null&&l.stop(a)}return o.set(h,l),p?yield i(h,u.playbackRate,l.playbackRate):yield r(h,u.playbackRate,l.playbackRate),yield n(u,h,l),l});return{set start(u){s=u},set stop(u){a=u},render(u,h){let l=o.get(h);return l!==void 0?Promise.resolve(l):c(u,h)}}};var rd=i=>"playbackRate"in i;var id=i=>"frequency"in i&&"gain"in i;var nd=i=>"offset"in i;var od=i=>!("frequency"in i)&&"gain"in i;var sd=i=>"detune"in i&&"frequency"in i&&!("gain"in i);var ad=i=>"pan"in i;var oe=i=>Jt(ea,i);var oi=i=>Jt(ra,i);var sa=(i,t)=>{let{activeInputs:e}=oe(i);e.forEach(n=>n.forEach(([o])=>{t.includes(i)||sa(o,[...t,i])}));let r=rd(i)?[i.playbackRate]:oa(i)?Array.from(i.parameters.values()):id(i)?[i.Q,i.detune,i.frequency,i.gain]:nd(i)?[i.offset]:od(i)?[i.gain]:sd(i)?[i.detune,i.frequency]:ad(i)?[i.pan]:[];for(let n of r){let o=oi(n);o!==void 0&&o.activeInputs.forEach(([s])=>sa(s,t))}xe(i)&&Ir(i)};var si=i=>{sa(i.destination,[])};var aa=i=>i===void 0||typeof i=="number"||typeof i=="string"&&(i==="balanced"||i==="interactive"||i==="playback");var cd=(i,t,e,r,n,o,s,a,c)=>class extends i{constructor(h={}){if(c===null)throw new Error("Missing the native AudioContext constructor.");let l;try{l=new c(h)}catch(f){throw f.code===12&&f.message==="sampleRate is not in range"?e():f}if(l===null)throw r();if(!aa(h.latencyHint))throw new TypeError(`The provided value '${h.latencyHint}' is not a valid enum value of type AudioContextLatencyCategory.`);if(h.sampleRate!==void 0&&l.sampleRate!==h.sampleRate)throw e();super(l,2);let{latencyHint:p}=h,{sampleRate:m}=l;if(this._baseLatency=typeof l.baseLatency=="number"?l.baseLatency:p==="balanced"?512/m:p==="interactive"||p===void 0?256/m:p==="playback"?1024/m:Math.max(2,Math.min(128,Math.round(p*m/128)))*128/m,this._nativeAudioContext=l,c.name==="webkitAudioContext"?(this._nativeGainNode=l.createGain(),this._nativeOscillatorNode=l.createOscillator(),this._nativeGainNode.gain.value=1e-37,this._nativeOscillatorNode.connect(this._nativeGainNode).connect(l.destination),this._nativeOscillatorNode.start()):(this._nativeGainNode=null,this._nativeOscillatorNode=null),this._state=null,l.state==="running"){this._state="suspended";let f=()=>{this._state==="suspended"&&(this._state=null),l.removeEventListener("statechange",f)};l.addEventListener("statechange",f)}}get baseLatency(){return this._baseLatency}get state(){return this._state!==null?this._state:this._nativeAudioContext.state}close(){return this.state==="closed"?this._nativeAudioContext.close().then(()=>{throw t()}):(this._state==="suspended"&&(this._state=null),this._nativeAudioContext.close().then(()=>{this._nativeGainNode!==null&&this._nativeOscillatorNode!==null&&(this._nativeOscillatorNode.stop(),this._nativeGainNode.disconnect(),this._nativeOscillatorNode.disconnect()),si(this)}))}createMediaElementSource(h){return new n(this,{mediaElement:h})}createMediaStreamDestination(){return new o(this)}createMediaStreamSource(h){return new s(this,{mediaStream:h})}createMediaStreamTrackSource(h){return new a(this,{mediaStreamTrack:h})}resume(){return this._state==="suspended"?new Promise((h,l)=>{let p=()=>{this._nativeAudioContext.removeEventListener("statechange",p),this._nativeAudioContext.state==="running"?h():this.resume().then(h,l)};this._nativeAudioContext.addEventListener("statechange",p)}):this._nativeAudioContext.resume().catch(h=>{throw h===void 0||h.code===15?t():h})}suspend(){return this._nativeAudioContext.suspend().catch(h=>{throw h===void 0?t():h})}};var ud=(i,t,e,r,n,o,s,a)=>class extends i{constructor(u,h){let l=o(u),p=s(l),m=n(l,h,p),f=p?t(a):null;super(u,!1,m,f),this._isNodeOfNativeOfflineAudioContext=p,this._nativeAudioDestinationNode=m}get channelCount(){return this._nativeAudioDestinationNode.channelCount}set channelCount(u){if(this._isNodeOfNativeOfflineAudioContext)throw r();if(u>this._nativeAudioDestinationNode.maxChannelCount)throw e();this._nativeAudioDestinationNode.channelCount=u}get channelCountMode(){return this._nativeAudioDestinationNode.channelCountMode}set channelCountMode(u){if(this._isNodeOfNativeOfflineAudioContext)throw r();this._nativeAudioDestinationNode.channelCountMode=u}get maxChannelCount(){return this._nativeAudioDestinationNode.maxChannelCount}};var hd=i=>{let t=new WeakMap,e=(r,n)=>J(null,null,function*(){let o=n.destination;return t.set(n,o),yield i(r,n,o),o});return{render(r,n){let o=t.get(n);return o!==void 0?Promise.resolve(o):e(r,n)}}};var ld=(i,t,e,r,n,o,s,a)=>(c,u)=>{let h=u.listener,l=()=>{let w=new Float32Array(1),v=t(u,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"speakers",numberOfInputs:9}),A=s(u),_=!1,E=[0,0,-1,0,1,0],q=[0,0,0],M=()=>{if(_)return;_=!0;let j=r(u,256,9,0);j.onaudioprocess=({inputBuffer:F})=>{let W=[o(F,w,0),o(F,w,1),o(F,w,2),o(F,w,3),o(F,w,4),o(F,w,5)];W.some((k,nt)=>k!==E[nt])&&(h.setOrientation(...W),E=W);let K=[o(F,w,6),o(F,w,7),o(F,w,8)];K.some((k,nt)=>k!==q[nt])&&(h.setPosition(...K),q=K)},v.connect(j)},R=j=>F=>{F!==E[j]&&(E[j]=F,h.setOrientation(...E))},B=j=>F=>{F!==q[j]&&(q[j]=F,h.setPosition(...q))},D=(j,F,W)=>{let K=e(u,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",offset:F});K.connect(v,0,j),K.start(),Object.defineProperty(K.offset,"defaultValue",{get(){return F}});let k=i({context:c},A,K.offset,Ut,$t);return a(k,"value",nt=>()=>nt.call(k),nt=>mt=>{try{nt.call(k,mt)}catch(Ct){if(Ct.code!==9)throw Ct}M(),A&&W(mt)}),k.cancelAndHoldAtTime=(nt=>A?()=>{throw n()}:(...mt)=>{let Ct=nt.apply(k,mt);return M(),Ct})(k.cancelAndHoldAtTime),k.cancelScheduledValues=(nt=>A?()=>{throw n()}:(...mt)=>{let Ct=nt.apply(k,mt);return M(),Ct})(k.cancelScheduledValues),k.exponentialRampToValueAtTime=(nt=>A?()=>{throw n()}:(...mt)=>{let Ct=nt.apply(k,mt);return M(),Ct})(k.exponentialRampToValueAtTime),k.linearRampToValueAtTime=(nt=>A?()=>{throw n()}:(...mt)=>{let Ct=nt.apply(k,mt);return M(),Ct})(k.linearRampToValueAtTime),k.setTargetAtTime=(nt=>A?()=>{throw n()}:(...mt)=>{let Ct=nt.apply(k,mt);return M(),Ct})(k.setTargetAtTime),k.setValueAtTime=(nt=>A?()=>{throw n()}:(...mt)=>{let Ct=nt.apply(k,mt);return M(),Ct})(k.setValueAtTime),k.setValueCurveAtTime=(nt=>A?()=>{throw n()}:(...mt)=>{let Ct=nt.apply(k,mt);return M(),Ct})(k.setValueCurveAtTime),k};return{forwardX:D(0,0,R(0)),forwardY:D(1,0,R(1)),forwardZ:D(2,-1,R(2)),positionX:D(6,0,B(0)),positionY:D(7,0,B(1)),positionZ:D(8,0,B(2)),upX:D(3,0,R(3)),upY:D(4,1,R(4)),upZ:D(5,0,R(5))}},{forwardX:p,forwardY:m,forwardZ:f,positionX:g,positionY:b,positionZ:x,upX:C,upY:S,upZ:T}=h.forwardX===void 0?l():h;return{get forwardX(){return p},get forwardY(){return m},get forwardZ(){return f},get positionX(){return g},get positionY(){return b},get positionZ(){return x},get upX(){return C},get upY(){return S},get upZ(){return T}}};var Mi=i=>"context"in i;var ai=i=>Mi(i[0]);var ar=(i,t,e,r)=>{for(let n of i)if(e(n)){if(r)return!1;throw Error("The set contains at least one similar element.")}return i.add(t),!0};var Mu=(i,t,[e,r],n)=>{ar(i,[t,e,r],o=>o[0]===t&&o[1]===e,n)};var Eu=(i,[t,e,r],n)=>{let o=i.get(t);o===void 0?i.set(t,new Set([[e,r]])):ar(o,[e,r],s=>s[0]===e,n)};var Ye=i=>"inputs"in i;var dn=(i,t,e,r)=>{if(Ye(t)){let n=t.inputs[r];return i.connect(n,e,0),[n,e,0]}return i.connect(t,e,r),[t,e,r]};var Du=(i,t,e)=>{for(let r of i)if(r[0]===t&&r[1]===e)return i.delete(r),r;return null};var dd=(i,t,e)=>ni(i,r=>r[0]===t&&r[1]===e);var ku=(i,t)=>{if(!wr(i).delete(t))throw new Error("Missing the expected event listener.")};var Lu=(i,t,e)=>{let r=Jt(i,t),n=ni(r,o=>o[0]===e);return r.size===0&&i.delete(t),n};var pn=(i,t,e,r)=>{Ye(t)?i.disconnect(t.inputs[r],e,0):i.disconnect(t,e,r)};var Rt=i=>Jt(cn,i);var Ei=i=>Jt(Ao,i);var Wr=i=>Co.has(i);var mn=i=>!Sr.has(i);var ju=(i,t)=>new Promise(e=>{if(t!==null)e(!0);else{let r=i.createScriptProcessor(256,1,1),n=i.createGain(),o=i.createBuffer(1,2,44100),s=o.getChannelData(0);s[0]=1,s[1]=1;let a=i.createBufferSource();a.buffer=o,a.loop=!0,a.connect(r).connect(i.destination),a.connect(n),a.disconnect(n),r.onaudioprocess=c=>{let u=c.inputBuffer.getChannelData(0);Array.prototype.some.call(u,h=>h===1)?e(!0):e(!1),a.stop(),r.onaudioprocess=null,a.disconnect(r),r.disconnect(i.destination)},a.start()}});var ca=(i,t)=>{let e=new Map;for(let r of i)for(let n of r){let o=e.get(n);e.set(n,o===void 0?1:o+1)}e.forEach((r,n)=>t(n,r))};var Di=i=>"context"in i;var pd=i=>{let t=new Map;i.connect=(e=>(r,n=0,o=0)=>{let s=Di(r)?e(r,n,o):e(r,n),a=t.get(r);return a===void 0?t.set(r,[{input:o,output:n}]):a.every(c=>c.input!==o||c.output!==n)&&a.push({input:o,output:n}),s})(i.connect.bind(i)),i.disconnect=(e=>(r,n,o)=>{if(e.apply(i),r===void 0)t.clear();else if(typeof r=="number")for(let[s,a]of t){let c=a.filter(u=>u.output!==r);c.length===0?t.delete(s):t.set(s,c)}else if(t.has(r))if(n===void 0)t.delete(r);else{let s=t.get(r);if(s!==void 0){let a=s.filter(c=>c.output!==n&&(c.input!==o||o===void 0));a.length===0?t.delete(r):t.set(r,a)}}for(let[s,a]of t)a.forEach(c=>{Di(s)?i.connect(s,c.output,c.input):i.connect(s,c.output)})})(i.disconnect)};var fC=(i,t,e,r)=>{let{activeInputs:n,passiveInputs:o}=oi(t),{outputs:s}=oe(i),a=wr(i),c=u=>{let h=Rt(i),l=Ei(t);if(u){let p=Lu(o,i,e);Mu(n,i,p,!1),!r&&!Wr(i)&&h.connect(l,e)}else{let p=dd(n,i,e);Eu(o,p,!1),!r&&!Wr(i)&&h.disconnect(l,e)}};return ar(s,[t,e],u=>u[0]===t&&u[1]===e,!0)?(a.add(c),xe(i)?Mu(n,i,[e,c],!0):Eu(o,[i,e,c],!0),!0):!1},gC=(i,t,e,r)=>{let{activeInputs:n,passiveInputs:o}=oe(t),s=Du(n[r],i,e);return s===null?[na(o,i,e,r)[2],!1]:[s[2],!0]},yC=(i,t,e)=>{let{activeInputs:r,passiveInputs:n}=oi(t),o=Du(r,i,e);return o===null?[Lu(n,i,e)[1],!1]:[o[2],!0]},Pu=(i,t,e,r,n)=>{let[o,s]=gC(i,e,r,n);if(o!==null&&(ku(i,o),s&&!t&&!Wr(i)&&pn(Rt(i),Rt(e),r,n)),xe(e)){let{activeInputs:a}=oe(e);So(e,a)}},Fu=(i,t,e,r)=>{let[n,o]=yC(i,e,r);n!==null&&(ku(i,n),o&&!t&&!Wr(i)&&Rt(i).disconnect(Ei(e),r))},bC=(i,t)=>{let e=oe(i),r=[];for(let n of e.outputs)ai(n)?Pu(i,t,...n):Fu(i,t,...n),r.push(n[0]);return e.outputs.clear(),r},xC=(i,t,e)=>{let r=oe(i),n=[];for(let o of r.outputs)o[1]===e&&(ai(o)?Pu(i,t,...o):Fu(i,t,...o),n.push(o[0]),r.outputs.delete(o));return n},AC=(i,t,e,r,n)=>{let o=oe(i);return Array.from(o.outputs).filter(s=>s[0]===e&&(r===void 0||s[1]===r)&&(n===void 0||s[2]===n)).map(s=>(ai(s)?Pu(i,t,...s):Fu(i,t,...s),o.outputs.delete(s),s[0]))},md=(i,t,e,r,n,o,s,a,c,u,h,l,p,m,f,g)=>class extends u{constructor(x,C,S,T){super(S),this._context=x,this._nativeAudioNode=S;let w=h(x);l(w)&&e(ju,()=>ju(w,g))!==!0&&pd(S),cn.set(this,S),ia.set(this,new Set),x.state!=="closed"&&C&&sr(this),i(this,T,S)}get channelCount(){return this._nativeAudioNode.channelCount}set channelCount(x){this._nativeAudioNode.channelCount=x}get channelCountMode(){return this._nativeAudioNode.channelCountMode}set channelCountMode(x){this._nativeAudioNode.channelCountMode=x}get channelInterpretation(){return this._nativeAudioNode.channelInterpretation}set channelInterpretation(x){this._nativeAudioNode.channelInterpretation=x}get context(){return this._context}get numberOfInputs(){return this._nativeAudioNode.numberOfInputs}get numberOfOutputs(){return this._nativeAudioNode.numberOfOutputs}connect(x,C=0,S=0){if(C<0||C>=this._nativeAudioNode.numberOfOutputs)throw n();let T=h(this._context),w=f(T);if(p(x)||m(x))throw o();if(Mi(x)){let _=Rt(x);try{let q=dn(this._nativeAudioNode,_,C,S),M=mn(this);(w||M)&&this._nativeAudioNode.disconnect(...q),this.context.state!=="closed"&&!M&&mn(x)&&sr(x)}catch(q){throw q.code===12?o():q}if(t(this,x,C,S,w)){let q=c([this],x);ca(q,r(w))}return x}let v=Ei(x);if(v.name==="playbackRate"&&v.maxValue===1024)throw s();try{this._nativeAudioNode.connect(v,C),(w||mn(this))&&this._nativeAudioNode.disconnect(v,C)}catch(_){throw _.code===12?o():_}if(fC(this,x,C,w)){let _=c([this],x);ca(_,r(w))}}disconnect(x,C,S){let T,w=h(this._context),v=f(w);if(x===void 0)T=bC(this,v);else if(typeof x=="number"){if(x<0||x>=this.numberOfOutputs)throw n();T=xC(this,v,x)}else{if(C!==void 0&&(C<0||C>=this.numberOfOutputs)||Mi(x)&&S!==void 0&&(S<0||S>=x.numberOfInputs))throw n();if(T=AC(this,v,x,C,S),T.length===0)throw o()}for(let A of T){let _=c([this],A);ca(_,a)}}};var fd=(i,t,e,r,n,o,s,a,c,u,h,l,p)=>(m,f,g,b=null,x=null)=>{let C=g.value,S=new xo(C),T=f?r(S):null,w={get defaultValue(){return C},get maxValue(){return b===null?g.maxValue:b},get minValue(){return x===null?g.minValue:x},get value(){return g.value},set value(v){g.value=v,w.setValueAtTime(v,m.context.currentTime)},cancelAndHoldAtTime(v){if(typeof g.cancelAndHoldAtTime=="function")T===null&&S.flush(m.context.currentTime),S.add(n(v)),g.cancelAndHoldAtTime(v);else{let A=Array.from(S).pop();T===null&&S.flush(m.context.currentTime),S.add(n(v));let _=Array.from(S).pop();g.cancelScheduledValues(v),A!==_&&_!==void 0&&(_.type==="exponentialRampToValue"?g.exponentialRampToValueAtTime(_.value,_.endTime):_.type==="linearRampToValue"?g.linearRampToValueAtTime(_.value,_.endTime):_.type==="setValue"?g.setValueAtTime(_.value,_.startTime):_.type==="setValueCurve"&&g.setValueCurveAtTime(_.values,_.startTime,_.duration))}return w},cancelScheduledValues(v){return T===null&&S.flush(m.context.currentTime),S.add(o(v)),g.cancelScheduledValues(v),w},exponentialRampToValueAtTime(v,A){if(v===0)throw new RangeError;if(!Number.isFinite(A)||A<0)throw new RangeError;let _=m.context.currentTime;return T===null&&S.flush(_),Array.from(S).length===0&&(S.add(u(C,_)),g.setValueAtTime(C,_)),S.add(s(v,A)),g.exponentialRampToValueAtTime(v,A),w},linearRampToValueAtTime(v,A){let _=m.context.currentTime;return T===null&&S.flush(_),Array.from(S).length===0&&(S.add(u(C,_)),g.setValueAtTime(C,_)),S.add(a(v,A)),g.linearRampToValueAtTime(v,A),w},setTargetAtTime(v,A,_){return T===null&&S.flush(m.context.currentTime),S.add(c(v,A,_)),g.setTargetAtTime(v,A,_),w},setValueAtTime(v,A){return T===null&&S.flush(m.context.currentTime),S.add(u(v,A)),g.setValueAtTime(v,A),w},setValueCurveAtTime(v,A,_){let E=v instanceof Float32Array?v:new Float32Array(v);if(l!==null&&l.name==="webkitAudioContext"){let q=A+_,M=m.context.sampleRate,R=Math.ceil(A*M),B=Math.floor(q*M),D=B-R,j=new Float32Array(D);for(let W=0;W<D;W+=1){let K=(E.length-1)/_*((R+W)/M-A),k=Math.floor(K),nt=Math.ceil(K);j[W]=k===nt?E[k]:(1-(K-k))*E[k]+(1-(nt-K))*E[nt]}T===null&&S.flush(m.context.currentTime),S.add(h(j,A,_)),g.setValueCurveAtTime(j,A,_);let F=B/M;F<q&&p(w,j[j.length-1],F),p(w,E[E.length-1],q)}else T===null&&S.flush(m.context.currentTime),S.add(h(E,A,_)),g.setValueCurveAtTime(E,A,_);return w}};return e.set(w,g),t.set(w,m),i(w,T),w};var gd=i=>({replay(t){for(let e of i)if(e.type==="exponentialRampToValue"){let{endTime:r,value:n}=e;t.exponentialRampToValueAtTime(n,r)}else if(e.type==="linearRampToValue"){let{endTime:r,value:n}=e;t.linearRampToValueAtTime(n,r)}else if(e.type==="setTarget"){let{startTime:r,target:n,timeConstant:o}=e;t.setTargetAtTime(n,r,o)}else if(e.type==="setValue"){let{startTime:r,value:n}=e;t.setValueAtTime(n,r)}else if(e.type==="setValueCurve"){let{duration:r,startTime:n,values:o}=e;t.setValueCurveAtTime(o,n,r)}else throw new Error("Can't apply an unknown automation.")}});var fn=class{constructor(t){this._map=new Map(t)}get size(){return this._map.size}entries(){return this._map.entries()}forEach(t,e=null){return this._map.forEach((r,n)=>t.call(e,r,n,this))}get(t){return this._map.get(t)}has(t){return this._map.has(t)}keys(){return this._map.keys()}values(){return this._map.values()}};var CC={channelCount:2,channelCountMode:"explicit",channelInterpretation:"speakers",numberOfInputs:1,numberOfOutputs:1,parameterData:{},processorOptions:{}},yd=(i,t,e,r,n,o,s,a,c,u,h,l,p,m)=>class extends t{constructor(g,b,x){var C;let S=a(g),T=c(S),w=h(O(O({},CC),x));p(w);let v=_o.get(S),A=v==null?void 0:v.get(b),_=T||S.state!=="closed"?S:(C=s(S))!==null&&C!==void 0?C:S,E=n(_,T?null:g.baseLatency,u,b,A,w),q=T?r(b,w,A):null;super(g,!0,E,q);let M=[];E.parameters.forEach((B,D)=>{let j=e(this,T,B);M.push([D,j])}),this._nativeAudioWorkletNode=E,this._onprocessorerror=null,this._parameters=new fn(M),T&&i(S,this);let{activeInputs:R}=o(this);l(E,R)}get onprocessorerror(){return this._onprocessorerror}set onprocessorerror(g){let b=typeof g=="function"?m(this,g):null;this._nativeAudioWorkletNode.onprocessorerror=b;let x=this._nativeAudioWorkletNode.onprocessorerror;this._onprocessorerror=x!==null&&x===b?g:x}get parameters(){return this._parameters===null?this._nativeAudioWorkletNode.parameters:this._parameters}get port(){return this._nativeAudioWorkletNode.port}};function gn(i,t,e,r,n){if(typeof i.copyFromChannel=="function")t[e].byteLength===0&&(t[e]=new Float32Array(128)),i.copyFromChannel(t[e],r,n);else{let o=i.getChannelData(r);if(t[e].byteLength===0)t[e]=o.slice(n,n+128);else{let s=new Float32Array(o.buffer,n*Float32Array.BYTES_PER_ELEMENT,128);t[e].set(s)}}}var ua=(i,t,e,r,n)=>{typeof i.copyToChannel=="function"?t[e].byteLength!==0&&i.copyToChannel(t[e],r,n):t[e].byteLength!==0&&i.getChannelData(r).set(t[e],n)};var yn=(i,t)=>{let e=[];for(let r=0;r<i;r+=1){let n=[],o=typeof t=="number"?t:t[r];for(let s=0;s<o;s+=1)n.push(new Float32Array(128));e.push(n)}return e};var bd=(i,t)=>{let e=Jt(vo,i),r=Rt(t);return Jt(e,r)};var _C=(i,t,e,r,n,o,s)=>J(null,null,function*(){let a=t===null?Math.ceil(i.context.length/128)*128:t.length,c=r.channelCount*r.numberOfInputs,u=n.reduce((b,x)=>b+x,0),h=u===0?null:e.createBuffer(u,a,e.sampleRate);if(o===void 0)throw new Error("Missing the processor constructor.");let l=oe(i),p=yield bd(e,i),m=yn(r.numberOfInputs,r.channelCount),f=yn(r.numberOfOutputs,n),g=Array.from(i.parameters.keys()).reduce((b,x)=>Q(O({},b),{[x]:new Float32Array(128)}),{});for(let b=0;b<a;b+=128){if(r.numberOfInputs>0&&t!==null)for(let x=0;x<r.numberOfInputs;x+=1)for(let C=0;C<r.channelCount;C+=1)gn(t,m[x],C,C,b);o.parameterDescriptors!==void 0&&t!==null&&o.parameterDescriptors.forEach(({name:x},C)=>{gn(t,g,x,c+C,b)});for(let x=0;x<r.numberOfInputs;x+=1)for(let C=0;C<n[x];C+=1)f[x][C].byteLength===0&&(f[x][C]=new Float32Array(128));try{let x=m.map((S,T)=>l.activeInputs[T].size===0?[]:S),C=s(b/e.sampleRate,e.sampleRate,()=>p.process(x,f,g));if(h!==null)for(let S=0,T=0;S<r.numberOfOutputs;S+=1){for(let w=0;w<n[S];w+=1)ua(h,f[S],w,T+w,b);T+=n[S]}if(!C)break}catch(x){i.dispatchEvent(new ErrorEvent("processorerror",{colno:x.colno,filename:x.filename,lineno:x.lineno,message:x.message}));break}}return h}),xd=(i,t,e,r,n,o,s,a,c,u,h,l,p,m,f,g)=>(b,x,C)=>{let S=new WeakMap,T=null,w=(v,A)=>J(null,null,function*(){let _=h(v),E=null,q=vt(_,A),M=Array.isArray(x.outputChannelCount)?x.outputChannelCount:Array.from(x.outputChannelCount);if(l===null){let R=M.reduce((F,W)=>F+W,0),B=n(A,{channelCount:Math.max(1,R),channelCountMode:"explicit",channelInterpretation:"discrete",numberOfOutputs:Math.max(1,R)}),D=[];for(let F=0;F<v.numberOfOutputs;F+=1)D.push(r(A,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"speakers",numberOfInputs:M[F]}));let j=s(A,{channelCount:x.channelCount,channelCountMode:x.channelCountMode,channelInterpretation:x.channelInterpretation,gain:1});j.connect=t.bind(null,D),j.disconnect=c.bind(null,D),E=[B,D,j]}else q||(_=new l(A,b));if(S.set(A,E===null?_:E[2]),E!==null){if(T===null){if(C===void 0)throw new Error("Missing the processor constructor.");if(p===null)throw new Error("Missing the native OfflineAudioContext constructor.");let W=v.channelCount*v.numberOfInputs,K=C.parameterDescriptors===void 0?0:C.parameterDescriptors.length,k=W+K;T=_C(v,k===0?null:yield J(null,null,function*(){let mt=new p(k,Math.ceil(v.context.length/128)*128,A.sampleRate),Ct=[],Ht=[];for(let Ot=0;Ot<x.numberOfInputs;Ot+=1)Ct.push(s(mt,{channelCount:x.channelCount,channelCountMode:x.channelCountMode,channelInterpretation:x.channelInterpretation,gain:1})),Ht.push(n(mt,{channelCount:x.channelCount,channelCountMode:"explicit",channelInterpretation:"discrete",numberOfOutputs:x.channelCount}));let De=yield Promise.all(Array.from(v.parameters.values()).map(Ot=>J(null,null,function*(){let ut=o(mt,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",offset:Ot.value});return yield m(mt,Ot,ut.offset),ut}))),ke=r(mt,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"speakers",numberOfInputs:Math.max(1,W+K)});for(let Ot=0;Ot<x.numberOfInputs;Ot+=1){Ct[Ot].connect(Ht[Ot]);for(let ut=0;ut<x.channelCount;ut+=1)Ht[Ot].connect(ke,ut,Ot*x.channelCount+ut)}for(let[Ot,ut]of De.entries())ut.connect(ke,0,W+Ot),ut.start(0);return ke.connect(mt.destination),yield Promise.all(Ct.map(Ot=>f(v,mt,Ot))),g(mt)}),A,x,M,C,u)}let R=yield T,B=e(A,{buffer:null,channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",loop:!1,loopEnd:0,loopStart:0,playbackRate:1}),[D,j,F]=E;R!==null&&(B.buffer=R,B.start(0)),B.connect(D);for(let W=0,K=0;W<v.numberOfOutputs;W+=1){let k=j[W];for(let nt=0;nt<M[W];nt+=1)D.connect(k,K+nt,nt);K+=M[W]}return F}if(q)for(let[R,B]of v.parameters.entries())yield i(A,B,_.parameters.get(R));else for(let[R,B]of v.parameters.entries())yield m(A,B,_.parameters.get(R));return yield f(v,A,_),_});return{render(v,A){a(A,v);let _=S.get(A);return _!==void 0?Promise.resolve(_):w(v,A)}}};var Ad=(i,t,e,r,n,o,s,a,c,u,h,l,p,m,f,g,b,x,C,S)=>class extends f{constructor(w,v){super(w,v),this._nativeContext=w,this._audioWorklet=i===void 0?void 0:{addModule:(A,_)=>i(this,A,_)}}get audioWorklet(){return this._audioWorklet}createAnalyser(){return new t(this)}createBiquadFilter(){return new n(this)}createBuffer(w,v,A){return new e({length:v,numberOfChannels:w,sampleRate:A})}createBufferSource(){return new r(this)}createChannelMerger(w=6){return new o(this,{numberOfInputs:w})}createChannelSplitter(w=6){return new s(this,{numberOfOutputs:w})}createConstantSource(){return new a(this)}createConvolver(){return new c(this)}createDelay(w=1){return new h(this,{maxDelayTime:w})}createDynamicsCompressor(){return new l(this)}createGain(){return new p(this)}createIIRFilter(w,v){return new m(this,{feedback:v,feedforward:w})}createOscillator(){return new g(this)}createPanner(){return new b(this)}createPeriodicWave(w,v,A={disableNormalization:!1}){return new x(this,Q(O({},A),{imag:v,real:w}))}createStereoPanner(){return new C(this)}createWaveShaper(){return new S(this)}decodeAudioData(w,v,A){return u(this._nativeContext,w).then(_=>(typeof v=="function"&&v(_),_),_=>{throw typeof A=="function"&&A(_),_})}};var vC={Q:1,channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",detune:0,frequency:350,gain:0,type:"lowpass"},Cd=(i,t,e,r,n,o,s,a)=>class extends i{constructor(u,h){let l=o(u),p=O(O({},vC),h),m=n(l,p),f=s(l),g=f?e():null;super(u,!1,m,g),this._Q=t(this,f,m.Q,Ut,$t),this._detune=t(this,f,m.detune,1200*Math.log2(Ut),-1200*Math.log2(Ut)),this._frequency=t(this,f,m.frequency,u.sampleRate/2,0),this._gain=t(this,f,m.gain,40*Math.log10(Ut),$t),this._nativeBiquadFilterNode=m,a(this,1)}get detune(){return this._detune}get frequency(){return this._frequency}get gain(){return this._gain}get Q(){return this._Q}get type(){return this._nativeBiquadFilterNode.type}set type(u){this._nativeBiquadFilterNode.type=u}getFrequencyResponse(u,h,l){try{this._nativeBiquadFilterNode.getFrequencyResponse(u,h,l)}catch(p){throw p.code===11?r():p}if(u.length!==h.length||h.length!==l.length)throw r()}};var _d=(i,t,e,r,n)=>()=>{let o=new WeakMap,s=(a,c)=>J(null,null,function*(){let u=e(a),h=vt(u,c);if(!h){let l={Q:u.Q.value,channelCount:u.channelCount,channelCountMode:u.channelCountMode,channelInterpretation:u.channelInterpretation,detune:u.detune.value,frequency:u.frequency.value,gain:u.gain.value,type:u.type};u=t(c,l)}return o.set(c,u),h?(yield i(c,a.Q,u.Q),yield i(c,a.detune,u.detune),yield i(c,a.frequency,u.frequency),yield i(c,a.gain,u.gain)):(yield r(c,a.Q,u.Q),yield r(c,a.detune,u.detune),yield r(c,a.frequency,u.frequency),yield r(c,a.gain,u.gain)),yield n(a,c,u),u});return{render(a,c){let u=o.get(c);return u!==void 0?Promise.resolve(u):s(a,c)}}};var vd=(i,t)=>(e,r)=>{let n=t.get(e);if(n!==void 0)return n;let o=i.get(e);if(o!==void 0)return o;try{let s=r();return s instanceof Promise?(i.set(e,s),s.catch(()=>!1).then(a=>(i.delete(e),t.set(e,a),a))):(t.set(e,s),s)}catch(s){return t.set(e,!1),!1}};var SC={channelCount:1,channelCountMode:"explicit",channelInterpretation:"speakers",numberOfInputs:6},Sd=(i,t,e,r,n)=>class extends i{constructor(s,a){let c=r(s),u=O(O({},SC),a),h=e(c,u),l=n(c)?t():null;super(s,!1,h,l)}};var wd=(i,t,e)=>()=>{let r=new WeakMap,n=(o,s)=>J(null,null,function*(){let a=t(o);if(!vt(a,s)){let u={channelCount:a.channelCount,channelCountMode:a.channelCountMode,channelInterpretation:a.channelInterpretation,numberOfInputs:a.numberOfInputs};a=i(s,u)}return r.set(s,a),yield e(o,s,a),a});return{render(o,s){let a=r.get(s);return a!==void 0?Promise.resolve(a):n(o,s)}}};var wC={channelCount:6,channelCountMode:"explicit",channelInterpretation:"discrete",numberOfOutputs:6},Id=(i,t,e,r,n,o)=>class extends i{constructor(a,c){let u=r(a),h=o(O(O({},wC),c)),l=e(u,h),p=n(u)?t():null;super(a,!1,l,p)}};var Td=(i,t,e)=>()=>{let r=new WeakMap,n=(o,s)=>J(null,null,function*(){let a=t(o);if(!vt(a,s)){let u={channelCount:a.channelCount,channelCountMode:a.channelCountMode,channelInterpretation:a.channelInterpretation,numberOfOutputs:a.numberOfOutputs};a=i(s,u)}return r.set(s,a),yield e(o,s,a),a});return{render(o,s){let a=r.get(s);return a!==void 0?Promise.resolve(a):n(o,s)}}};var Nd=i=>(t,e,r)=>i(e,t,r);var Od=i=>(t,e,r=0,n=0)=>{let o=t[r];if(o===void 0)throw i();return Di(e)?o.connect(e,0,n):o.connect(e,0)};var Rd=i=>(t,e)=>{let r=i(t,{buffer:null,channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",loop:!1,loopEnd:0,loopStart:0,playbackRate:1}),n=t.createBuffer(1,2,44100);return r.buffer=n,r.loop=!0,r.connect(e),r.start(),()=>{r.stop(),r.disconnect(e)}};var IC={channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",offset:1},Md=(i,t,e,r,n,o,s)=>class extends i{constructor(c,u){let h=n(c),l=O(O({},IC),u),p=r(h,l),m=o(h),f=m?e():null;super(c,!1,p,f),this._constantSourceNodeRenderer=f,this._nativeConstantSourceNode=p,this._offset=t(this,m,p.offset,Ut,$t),this._onended=null}get offset(){return this._offset}get onended(){return this._onended}set onended(c){let u=typeof c=="function"?s(this,c):null;this._nativeConstantSourceNode.onended=u;let h=this._nativeConstantSourceNode.onended;this._onended=h!==null&&h===u?c:h}start(c=0){if(this._nativeConstantSourceNode.start(c),this._constantSourceNodeRenderer!==null&&(this._constantSourceNodeRenderer.start=c),this.context.state!=="closed"){sr(this);let u=()=>{this._nativeConstantSourceNode.removeEventListener("ended",u),xe(this)&&Ir(this)};this._nativeConstantSourceNode.addEventListener("ended",u)}}stop(c=0){this._nativeConstantSourceNode.stop(c),this._constantSourceNodeRenderer!==null&&(this._constantSourceNodeRenderer.stop=c)}};var Ed=(i,t,e,r,n)=>()=>{let o=new WeakMap,s=null,a=null,c=(u,h)=>J(null,null,function*(){let l=e(u),p=vt(l,h);if(!p){let m={channelCount:l.channelCount,channelCountMode:l.channelCountMode,channelInterpretation:l.channelInterpretation,offset:l.offset.value};l=t(h,m),s!==null&&l.start(s),a!==null&&l.stop(a)}return o.set(h,l),p?yield i(h,u.offset,l.offset):yield r(h,u.offset,l.offset),yield n(u,h,l),l});return{set start(u){s=u},set stop(u){a=u},render(u,h){let l=o.get(h);return l!==void 0?Promise.resolve(l):c(u,h)}}};var Dd=i=>t=>(i[0]=t,i[0]);var TC={buffer:null,channelCount:2,channelCountMode:"clamped-max",channelInterpretation:"speakers",disableNormalization:!1},kd=(i,t,e,r,n,o)=>class extends i{constructor(a,c){let u=r(a),h=O(O({},TC),c),l=e(u,h),m=n(u)?t():null;super(a,!1,l,m),this._isBufferNullified=!1,this._nativeConvolverNode=l,h.buffer!==null&&o(this,h.buffer.duration)}get buffer(){return this._isBufferNullified?null:this._nativeConvolverNode.buffer}set buffer(a){if(this._nativeConvolverNode.buffer=a,a===null&&this._nativeConvolverNode.buffer!==null){let c=this._nativeConvolverNode.context;this._nativeConvolverNode.buffer=c.createBuffer(1,1,c.sampleRate),this._isBufferNullified=!0,o(this,0)}else this._isBufferNullified=!1,o(this,this._nativeConvolverNode.buffer===null?0:this._nativeConvolverNode.buffer.duration)}get normalize(){return this._nativeConvolverNode.normalize}set normalize(a){this._nativeConvolverNode.normalize=a}};var Ld=(i,t,e)=>()=>{let r=new WeakMap,n=(o,s)=>J(null,null,function*(){let a=t(o);if(!vt(a,s)){let u={buffer:a.buffer,channelCount:a.channelCount,channelCountMode:a.channelCountMode,channelInterpretation:a.channelInterpretation,disableNormalization:!a.normalize};a=i(s,u)}return r.set(s,a),Ye(a)?yield e(o,s,a.inputs[0]):yield e(o,s,a),a});return{render(o,s){let a=r.get(s);return a!==void 0?Promise.resolve(a):n(o,s)}}};var jd=(i,t)=>(e,r,n)=>{if(t===null)throw new Error("Missing the native OfflineAudioContext constructor.");try{return new t(e,r,n)}catch(o){throw o.name==="SyntaxError"?i():o}};var Pd=()=>new DOMException("","DataCloneError");var Bu=i=>{let{port1:t,port2:e}=new MessageChannel;return new Promise(r=>{let n=()=>{e.onmessage=null,t.close(),e.close(),r()};e.onmessage=()=>n();try{t.postMessage(i,[i])}catch(o){}finally{n()}})};var Fd=(i,t,e,r,n,o,s,a,c,u,h)=>(l,p)=>{let m=s(l)?l:o(l);if(n.has(p)){let f=e();return Promise.reject(f)}try{n.add(p)}catch(f){}return t(c,()=>c(m))?m.decodeAudioData(p).then(f=>(Bu(p).catch(()=>{}),t(a,()=>a(f))||h(f),i.add(f),f)):new Promise((f,g)=>{let b=()=>J(null,null,function*(){try{yield Bu(p)}catch(C){}}),x=C=>{g(C),b()};try{m.decodeAudioData(p,C=>{typeof C.copyFromChannel!="function"&&(u(C),ln(C)),i.add(C),b().then(()=>f(C))},C=>{x(C===null?r():C)})}catch(C){x(C)}})};var Bd=(i,t,e,r,n,o,s,a)=>(c,u)=>{let h=t.get(c);if(h===void 0)throw new Error("Missing the expected cycle count.");let l=o(c.context),p=a(l);if(h===u){if(t.delete(c),!p&&s(c)){let m=r(c),{outputs:f}=e(c);for(let g of f)if(ai(g)){let b=r(g[0]);i(m,b,g[1],g[2])}else{let b=n(g[0]);m.connect(b,g[1])}}}else t.set(c,h-u)};var NC={channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",delayTime:0,maxDelayTime:1},Gd=(i,t,e,r,n,o,s)=>class extends i{constructor(c,u){let h=n(c),l=O(O({},NC),u),p=r(h,l),m=o(h),f=m?e(l.maxDelayTime):null;super(c,!1,p,f),this._delayTime=t(this,m,p.delayTime),s(this,l.maxDelayTime)}get delayTime(){return this._delayTime}};var Vd=(i,t,e,r,n)=>o=>{let s=new WeakMap,a=(c,u)=>J(null,null,function*(){let h=e(c),l=vt(h,u);if(!l){let p={channelCount:h.channelCount,channelCountMode:h.channelCountMode,channelInterpretation:h.channelInterpretation,delayTime:h.delayTime.value,maxDelayTime:o};h=t(u,p)}return s.set(u,h),l?yield i(u,c.delayTime,h.delayTime):yield r(u,c.delayTime,h.delayTime),yield n(c,u,h),h});return{render(c,u){let h=s.get(u);return h!==void 0?Promise.resolve(h):a(c,u)}}};var qd=i=>(t,e,r,n)=>i(t[n],o=>o[0]===e&&o[1]===r);var Wd=i=>(t,e)=>{i(t).delete(e)};var Ud=i=>"delayTime"in i;var zd=(i,t,e)=>function r(n,o){let s=Mi(o)?o:e(i,o);if(Ud(s))return[];if(n[0]===s)return[n];if(n.includes(s))return[];let{outputs:a}=t(s);return Array.from(a).map(c=>r([...n,s],c[0])).reduce((c,u)=>c.concat(u),[])};var ha=(i,t,e)=>{let r=t[e];if(r===void 0)throw i();return r},Yd=i=>(t,e=void 0,r=void 0,n=0)=>e===void 0?t.forEach(o=>o.disconnect()):typeof e=="number"?ha(i,t,e).disconnect():Di(e)?r===void 0?t.forEach(o=>o.disconnect(e)):n===void 0?ha(i,t,r).disconnect(e,0):ha(i,t,r).disconnect(e,0,n):r===void 0?t.forEach(o=>o.disconnect(e)):ha(i,t,r).disconnect(e,0);var OC={attack:.003,channelCount:2,channelCountMode:"clamped-max",channelInterpretation:"speakers",knee:30,ratio:12,release:.25,threshold:-24},Hd=(i,t,e,r,n,o,s,a)=>class extends i{constructor(u,h){let l=o(u),p=O(O({},OC),h),m=r(l,p),f=s(l),g=f?e():null;super(u,!1,m,g),this._attack=t(this,f,m.attack),this._knee=t(this,f,m.knee),this._nativeDynamicsCompressorNode=m,this._ratio=t(this,f,m.ratio),this._release=t(this,f,m.release),this._threshold=t(this,f,m.threshold),a(this,.006)}get attack(){return this._attack}get channelCount(){return this._nativeDynamicsCompressorNode.channelCount}set channelCount(u){let h=this._nativeDynamicsCompressorNode.channelCount;if(this._nativeDynamicsCompressorNode.channelCount=u,u>2)throw this._nativeDynamicsCompressorNode.channelCount=h,n()}get channelCountMode(){return this._nativeDynamicsCompressorNode.channelCountMode}set channelCountMode(u){let h=this._nativeDynamicsCompressorNode.channelCountMode;if(this._nativeDynamicsCompressorNode.channelCountMode=u,u==="max")throw this._nativeDynamicsCompressorNode.channelCountMode=h,n()}get knee(){return this._knee}get ratio(){return this._ratio}get reduction(){return typeof this._nativeDynamicsCompressorNode.reduction.value=="number"?this._nativeDynamicsCompressorNode.reduction.value:this._nativeDynamicsCompressorNode.reduction}get release(){return this._release}get threshold(){return this._threshold}};var $d=(i,t,e,r,n)=>()=>{let o=new WeakMap,s=(a,c)=>J(null,null,function*(){let u=e(a),h=vt(u,c);if(!h){let l={attack:u.attack.value,channelCount:u.channelCount,channelCountMode:u.channelCountMode,channelInterpretation:u.channelInterpretation,knee:u.knee.value,ratio:u.ratio.value,release:u.release.value,threshold:u.threshold.value};u=t(c,l)}return o.set(c,u),h?(yield i(c,a.attack,u.attack),yield i(c,a.knee,u.knee),yield i(c,a.ratio,u.ratio),yield i(c,a.release,u.release),yield i(c,a.threshold,u.threshold)):(yield r(c,a.attack,u.attack),yield r(c,a.knee,u.knee),yield r(c,a.ratio,u.ratio),yield r(c,a.release,u.release),yield r(c,a.threshold,u.threshold)),yield n(a,c,u),u});return{render(a,c){let u=o.get(c);return u!==void 0?Promise.resolve(u):s(a,c)}}};var Zd=()=>new DOMException("","EncodingError");var Xd=i=>t=>new Promise((e,r)=>{if(i===null){r(new SyntaxError);return}let n=i.document.head;if(n===null)r(new SyntaxError);else{let o=i.document.createElement("script"),s=new Blob([t],{type:"application/javascript"}),a=URL.createObjectURL(s),c=i.onerror,u=()=>{i.onerror=c,URL.revokeObjectURL(a)};i.onerror=(h,l,p,m,f)=>{if(l===a||l===i.location.href&&p===1&&m===1)return u(),r(f),!1;if(c!==null)return c(h,l,p,m,f)},o.onerror=()=>{u(),r(new SyntaxError)},o.onload=()=>{u(),e()},o.src=a,o.type="module",n.appendChild(o)}});var Qd=i=>class{constructor(e){this._nativeEventTarget=e,this._listeners=new WeakMap}addEventListener(e,r,n){if(r!==null){let o=this._listeners.get(r);o===void 0&&(o=i(this,r),typeof r=="function"&&this._listeners.set(r,o)),this._nativeEventTarget.addEventListener(e,o,n)}}dispatchEvent(e){return this._nativeEventTarget.dispatchEvent(e)}removeEventListener(e,r,n){let o=r===null?void 0:this._listeners.get(r);this._nativeEventTarget.removeEventListener(e,o===void 0?null:o,n)}};var Kd=i=>(t,e,r)=>{Object.defineProperties(i,{currentFrame:{configurable:!0,get(){return Math.round(t*e)}},currentTime:{configurable:!0,get(){return t}}});try{return r()}finally{i!==null&&(delete i.currentFrame,delete i.currentTime)}};var Jd=i=>t=>J(null,null,function*(){try{let e=yield fetch(t);if(e.ok)return[yield e.text(),e.url]}catch(e){}throw i()});var RC={channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",gain:1},tp=(i,t,e,r,n,o)=>class extends i{constructor(a,c){let u=n(a),h=O(O({},RC),c),l=r(u,h),p=o(u),m=p?e():null;super(a,!1,l,m),this._gain=t(this,p,l.gain,Ut,$t)}get gain(){return this._gain}};var ep=(i,t,e,r,n)=>()=>{let o=new WeakMap,s=(a,c)=>J(null,null,function*(){let u=e(a),h=vt(u,c);if(!h){let l={channelCount:u.channelCount,channelCountMode:u.channelCountMode,channelInterpretation:u.channelInterpretation,gain:u.gain.value};u=t(c,l)}return o.set(c,u),h?yield i(c,a.gain,u.gain):yield r(c,a.gain,u.gain),yield n(a,c,u),u});return{render(a,c){let u=o.get(c);return u!==void 0?Promise.resolve(u):s(a,c)}}};var rp=(i,t)=>e=>t(i,e);var ip=i=>t=>{let e=i(t);if(e.renderer===null)throw new Error("Missing the renderer of the given AudioNode in the audio graph.");return e.renderer};var np=i=>t=>{var e;return(e=i.get(t))!==null&&e!==void 0?e:0};var op=i=>t=>{let e=i(t);if(e.renderer===null)throw new Error("Missing the renderer of the given AudioParam in the audio graph.");return e.renderer};var sp=i=>t=>i.get(t);var Ft=()=>new DOMException("","InvalidStateError");var ap=i=>t=>{let e=i.get(t);if(e===void 0)throw Ft();return e};var cp=(i,t)=>e=>{let r=i.get(e);if(r!==void 0)return r;if(t===null)throw new Error("Missing the native OfflineAudioContext constructor.");return r=new t(1,1,44100),i.set(e,r),r};var up=i=>t=>{let e=i.get(t);if(e===void 0)throw new Error("The context has no set of AudioWorkletNodes.");return e};var bn=()=>new DOMException("","InvalidAccessError");var hp=i=>{i.getFrequencyResponse=(t=>(e,r,n)=>{if(e.length!==r.length||r.length!==n.length)throw bn();return t.call(i,e,r,n)})(i.getFrequencyResponse)};var MC={channelCount:2,channelCountMode:"max",channelInterpretation:"speakers"},lp=(i,t,e,r,n,o)=>class extends i{constructor(a,c){let u=r(a),h=n(u),l=O(O({},MC),c),p=t(u,h?null:a.baseLatency,l),m=h?e(l.feedback,l.feedforward):null;super(a,!1,p,m),hp(p),this._nativeIIRFilterNode=p,o(this,1)}getFrequencyResponse(a,c,u){return this._nativeIIRFilterNode.getFrequencyResponse(a,c,u)}};var la=(i,t,e,r,n,o,s,a,c,u,h)=>{let l=u.length,p=a;for(let m=0;m<l;m+=1){let f=e[0]*u[m];for(let g=1;g<n;g+=1){let b=p-g&c-1;f+=e[g]*o[b],f-=i[g]*s[b]}for(let g=n;g<r;g+=1)f+=e[g]*o[p-g&c-1];for(let g=n;g<t;g+=1)f-=i[g]*s[p-g&c-1];o[p]=u[m],s[p]=f,p=p+1&c-1,h[m]=f}return p};var EC=(i,t,e,r)=>{let n=e instanceof Float64Array?e:new Float64Array(e),o=r instanceof Float64Array?r:new Float64Array(r),s=n.length,a=o.length,c=Math.min(s,a);if(n[0]!==1){for(let f=0;f<s;f+=1)o[f]/=n[0];for(let f=1;f<a;f+=1)n[f]/=n[0]}let u=32,h=new Float32Array(u),l=new Float32Array(u),p=t.createBuffer(i.numberOfChannels,i.length,i.sampleRate),m=i.numberOfChannels;for(let f=0;f<m;f+=1){let g=i.getChannelData(f),b=p.getChannelData(f);h.fill(0),l.fill(0),la(n,s,o,a,c,h,l,0,u,g,b)}return p},dp=(i,t,e,r,n)=>(o,s)=>{let a=new WeakMap,c=null,u=(h,l)=>J(null,null,function*(){let p=null,m=t(h),f=vt(m,l);if(l.createIIRFilter===void 0?p=i(l,{buffer:null,channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",loop:!1,loopEnd:0,loopStart:0,playbackRate:1}):f||(m=l.createIIRFilter(s,o)),a.set(l,p===null?m:p),p!==null){if(c===null){if(e===null)throw new Error("Missing the native OfflineAudioContext constructor.");let b=new e(h.context.destination.channelCount,h.context.length,l.sampleRate);c=J(null,null,function*(){yield r(h,b,b.destination);let x=yield n(b);return EC(x,l,o,s)})}let g=yield c;return p.buffer=g,p.start(0),p}return yield r(h,l,m),m});return{render(h,l){let p=a.get(l);return p!==void 0?Promise.resolve(p):u(h,l)}}};var pp=(i,t,e,r,n,o)=>s=>(a,c)=>{let u=i.get(a);if(u===void 0){if(!s&&o(a)){let h=r(a),{outputs:l}=e(a);for(let p of l)if(ai(p)){let m=r(p[0]);t(h,m,p[1],p[2])}else{let m=n(p[0]);h.disconnect(m,p[1])}}i.set(a,c)}else i.set(a,u+c)};var mp=(i,t)=>e=>{let r=i.get(e);return t(r)||t(e)};var fp=(i,t)=>e=>i.has(e)||t(e);var gp=(i,t)=>e=>i.has(e)||t(e);var yp=(i,t)=>e=>{let r=i.get(e);return t(r)||t(e)};var bp=i=>t=>i!==null&&t instanceof i;var xp=i=>t=>i!==null&&typeof i.AudioNode=="function"&&t instanceof i.AudioNode;var Ap=i=>t=>i!==null&&typeof i.AudioParam=="function"&&t instanceof i.AudioParam;var Cp=(i,t)=>e=>i(e)||t(e);var _p=i=>t=>i!==null&&t instanceof i;var vp=i=>i!==null&&i.isSecureContext;var Sp=(i,t,e,r)=>class extends i{constructor(o,s){let a=e(o),c=t(a,s);if(r(a))throw TypeError();super(o,!0,c,null),this._nativeMediaElementAudioSourceNode=c}get mediaElement(){return this._nativeMediaElementAudioSourceNode.mediaElement}};var DC={channelCount:2,channelCountMode:"explicit",channelInterpretation:"speakers"},wp=(i,t,e,r)=>class extends i{constructor(o,s){let a=e(o);if(r(a))throw new TypeError;let c=O(O({},DC),s),u=t(a,c);super(o,!1,u,null),this._nativeMediaStreamAudioDestinationNode=u}get stream(){return this._nativeMediaStreamAudioDestinationNode.stream}};var Ip=(i,t,e,r)=>class extends i{constructor(o,s){let a=e(o),c=t(a,s);if(r(a))throw new TypeError;super(o,!0,c,null),this._nativeMediaStreamAudioSourceNode=c}get mediaStream(){return this._nativeMediaStreamAudioSourceNode.mediaStream}};var Tp=(i,t,e)=>class extends i{constructor(n,o){let s=e(n),a=t(s,o);super(n,!0,a,null)}};var Np=(i,t,e,r,n)=>class extends r{constructor(s={}){if(n===null)throw new Error("Missing the native AudioContext constructor.");let a;try{a=new n(s)}catch(h){throw h.code===12&&h.message==="sampleRate is not in range"?t():h}if(a===null)throw e();if(!aa(s.latencyHint))throw new TypeError(`The provided value '${s.latencyHint}' is not a valid enum value of type AudioContextLatencyCategory.`);if(s.sampleRate!==void 0&&a.sampleRate!==s.sampleRate)throw t();super(a,2);let{latencyHint:c}=s,{sampleRate:u}=a;if(this._baseLatency=typeof a.baseLatency=="number"?a.baseLatency:c==="balanced"?512/u:c==="interactive"||c===void 0?256/u:c==="playback"?1024/u:Math.max(2,Math.min(128,Math.round(c*u/128)))*128/u,this._nativeAudioContext=a,n.name==="webkitAudioContext"?(this._nativeGainNode=a.createGain(),this._nativeOscillatorNode=a.createOscillator(),this._nativeGainNode.gain.value=1e-37,this._nativeOscillatorNode.connect(this._nativeGainNode).connect(a.destination),this._nativeOscillatorNode.start()):(this._nativeGainNode=null,this._nativeOscillatorNode=null),this._state=null,a.state==="running"){this._state="suspended";let h=()=>{this._state==="suspended"&&(this._state=null),a.removeEventListener("statechange",h)};a.addEventListener("statechange",h)}}get baseLatency(){return this._baseLatency}get state(){return this._state!==null?this._state:this._nativeAudioContext.state}close(){return this.state==="closed"?this._nativeAudioContext.close().then(()=>{throw i()}):(this._state==="suspended"&&(this._state=null),this._nativeAudioContext.close().then(()=>{this._nativeGainNode!==null&&this._nativeOscillatorNode!==null&&(this._nativeOscillatorNode.stop(),this._nativeGainNode.disconnect(),this._nativeOscillatorNode.disconnect()),si(this)}))}resume(){return this._state==="suspended"?new Promise((s,a)=>{let c=()=>{this._nativeAudioContext.removeEventListener("statechange",c),this._nativeAudioContext.state==="running"?s():this.resume().then(s,a)};this._nativeAudioContext.addEventListener("statechange",c)}):this._nativeAudioContext.resume().catch(s=>{throw s===void 0||s.code===15?i():s})}suspend(){return this._nativeAudioContext.suspend().catch(s=>{throw s===void 0?i():s})}};var Op=(i,t,e,r,n,o)=>class extends e{constructor(a,c){super(a),this._nativeContext=a,un.set(this,a),r(a)&&n.set(a,new Set),this._destination=new i(this,c),this._listener=t(this,a),this._onstatechange=null}get currentTime(){return this._nativeContext.currentTime}get destination(){return this._destination}get listener(){return this._listener}get onstatechange(){return this._onstatechange}set onstatechange(a){let c=typeof a=="function"?o(this,a):null;this._nativeContext.onstatechange=c;let u=this._nativeContext.onstatechange;this._onstatechange=u!==null&&u===c?a:u}get sampleRate(){return this._nativeContext.sampleRate}get state(){return this._nativeContext.state}};var cr=i=>{let t=new Uint32Array([1179011410,40,1163280727,544501094,16,131073,44100,176400,1048580,1635017060,4,0]);try{let e=i.decodeAudioData(t.buffer,()=>{});return e===void 0?!1:(e.catch(()=>{}),!0)}catch(e){}return!1};var kC={numberOfChannels:1},Rp=(i,t,e,r,n)=>class extends r{constructor(s){let{length:a,numberOfChannels:c,sampleRate:u}=O(O({},kC),s),h=e(c,a,u);i(cr,()=>cr(h))||h.addEventListener("statechange",(()=>{let l=0,p=m=>{this._state==="running"&&(l>0?(h.removeEventListener("statechange",p),m.stopImmediatePropagation(),this._waitForThePromiseToSettle(m)):l+=1)};return p})()),super(h,c),this._length=a,this._nativeOfflineAudioContext=h,this._state=null}get length(){return this._nativeOfflineAudioContext.length===void 0?this._length:this._nativeOfflineAudioContext.length}get state(){return this._state===null?this._nativeOfflineAudioContext.state:this._state}startRendering(){return this._state==="running"?Promise.reject(t()):(this._state="running",n(this.destination,this._nativeOfflineAudioContext).finally(()=>{this._state=null,si(this)}))}_waitForThePromiseToSettle(s){this._state===null?this._nativeOfflineAudioContext.dispatchEvent(s):setTimeout(()=>this._waitForThePromiseToSettle(s))}};var Mp=(i,t)=>(e,r,n)=>{let o=new Set;return e.connect=(s=>(a,c=0,u=0)=>{let h=o.size===0;if(t(a))return s.call(e,a,c,u),i(o,[a,c,u],l=>l[0]===a&&l[1]===c&&l[2]===u,!0),h&&r(),a;s.call(e,a,c),i(o,[a,c],l=>l[0]===a&&l[1]===c,!0),h&&r()})(e.connect),e.disconnect=(s=>(a,c,u)=>{let h=o.size>0;if(a===void 0)s.apply(e),o.clear();else if(typeof a=="number"){s.call(e,a);for(let p of o)p[1]===a&&o.delete(p)}else{t(a)?s.call(e,a,c,u):s.call(e,a,c);for(let p of o)p[0]===a&&(c===void 0||p[1]===c)&&(u===void 0||p[2]===u)&&o.delete(p)}let l=o.size===0;h&&l&&n()})(e.disconnect),e};var St=(i,t,e)=>{let r=t[e];r!==void 0&&r!==i[e]&&(i[e]=r)};var gt=(i,t)=>{St(i,t,"channelCount"),St(i,t,"channelCountMode"),St(i,t,"channelInterpretation")};var Gu=i=>typeof i.getFloatTimeDomainData=="function";var Ep=i=>{i.getFloatTimeDomainData=t=>{let e=new Uint8Array(t.length);i.getByteTimeDomainData(e);let r=Math.max(e.length,i.fftSize);for(let n=0;n<r;n+=1)t[n]=(e[n]-128)*.0078125;return t}};var Dp=(i,t)=>(e,r)=>{let n=e.createAnalyser();if(gt(n,r),!(r.maxDecibels>r.minDecibels))throw t();return St(n,r,"fftSize"),St(n,r,"maxDecibels"),St(n,r,"minDecibels"),St(n,r,"smoothingTimeConstant"),i(Gu,()=>Gu(n))||Ep(n),n};var kp=i=>i===null?null:i.hasOwnProperty("AudioBuffer")?i.AudioBuffer:null;var Tt=(i,t,e)=>{let r=t[e];r!==void 0&&r!==i[e].value&&(i[e].value=r)};var Lp=i=>{i.start=(t=>{let e=!1;return(r=0,n=0,o)=>{if(e)throw Ft();t.call(i,r,n,o),e=!0}})(i.start)};var xn=i=>{i.start=(t=>(e=0,r=0,n)=>{if(typeof n=="number"&&n<0||r<0||e<0)throw new RangeError("The parameters can't be negative.");t.call(i,e,r,n)})(i.start)};var An=i=>{i.stop=(t=>(e=0)=>{if(e<0)throw new RangeError("The parameter can't be negative.");t.call(i,e)})(i.stop)};var jp=(i,t,e,r,n,o,s,a,c,u,h)=>(l,p)=>{let m=l.createBufferSource();return gt(m,p),Tt(m,p,"playbackRate"),St(m,p,"buffer"),St(m,p,"loop"),St(m,p,"loopEnd"),St(m,p,"loopStart"),t(e,()=>e(l))||Lp(m),t(r,()=>r(l))||c(m),t(n,()=>n(l))||u(m,l),t(o,()=>o(l))||xn(m),t(s,()=>s(l))||h(m,l),t(a,()=>a(l))||An(m),i(l,m),m};var Pp=i=>i===null?null:i.hasOwnProperty("AudioContext")?i.AudioContext:i.hasOwnProperty("webkitAudioContext")?i.webkitAudioContext:null;var Fp=(i,t)=>(e,r,n)=>{let o=e.destination;if(o.channelCount!==r)try{o.channelCount=r}catch(a){}n&&o.channelCountMode!=="explicit"&&(o.channelCountMode="explicit"),o.maxChannelCount===0&&Object.defineProperty(o,"maxChannelCount",{value:r});let s=i(e,{channelCount:r,channelCountMode:o.channelCountMode,channelInterpretation:o.channelInterpretation,gain:1});return t(s,"channelCount",a=>()=>a.call(s),a=>c=>{a.call(s,c);try{o.channelCount=c}catch(u){if(c>o.maxChannelCount)throw u}}),t(s,"channelCountMode",a=>()=>a.call(s),a=>c=>{a.call(s,c),o.channelCountMode=c}),t(s,"channelInterpretation",a=>()=>a.call(s),a=>c=>{a.call(s,c),o.channelInterpretation=c}),Object.defineProperty(s,"maxChannelCount",{get:()=>o.maxChannelCount}),s.connect(o),s};var Bp=i=>i===null?null:i.hasOwnProperty("AudioWorkletNode")?i.AudioWorkletNode:null;var Gp=i=>{let{port1:t}=new MessageChannel;try{t.postMessage(i)}finally{t.close()}};var Vp=(i,t,e,r,n)=>(o,s,a,c,u,h)=>{if(a!==null)try{let l=new a(o,c,h),p=new Map,m=null;if(Object.defineProperties(l,{channelCount:{get:()=>h.channelCount,set:()=>{throw i()}},channelCountMode:{get:()=>"explicit",set:()=>{throw i()}},onprocessorerror:{get:()=>m,set:f=>{typeof m=="function"&&l.removeEventListener("processorerror",m),m=typeof f=="function"?f:null,typeof m=="function"&&l.addEventListener("processorerror",m)}}}),l.addEventListener=(f=>(...g)=>{if(g[0]==="processorerror"){let b=typeof g[1]=="function"?g[1]:typeof g[1]=="object"&&g[1]!==null&&typeof g[1].handleEvent=="function"?g[1].handleEvent:null;if(b!==null){let x=p.get(g[1]);x!==void 0?g[1]=x:(g[1]=C=>{C.type==="error"?(Object.defineProperties(C,{type:{value:"processorerror"}}),b(C)):b(new ErrorEvent(g[0],O({},C)))},p.set(b,g[1]))}}return f.call(l,"error",g[1],g[2]),f.call(l,...g)})(l.addEventListener),l.removeEventListener=(f=>(...g)=>{if(g[0]==="processorerror"){let b=p.get(g[1]);b!==void 0&&(p.delete(g[1]),g[1]=b)}return f.call(l,"error",g[1],g[2]),f.call(l,g[0],g[1],g[2])})(l.removeEventListener),h.numberOfOutputs!==0){let f=e(o,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",gain:0});return l.connect(f).connect(o.destination),n(l,()=>f.disconnect(),()=>f.connect(o.destination))}return l}catch(l){throw l.code===11?r():l}if(u===void 0)throw r();return Gp(h),t(o,s,u,h)};var da=(i,t)=>i===null?512:Math.max(512,Math.min(16384,Math.pow(2,Math.round(Math.log2(i*t)))));var qp=i=>new Promise((t,e)=>{let{port1:r,port2:n}=new MessageChannel;r.onmessage=({data:o})=>{r.close(),n.close(),t(o)},r.onmessageerror=({data:o})=>{r.close(),n.close(),e(o)},n.postMessage(i)});var Wp=(i,t)=>J(null,null,function*(){let e=yield qp(t);return new i(e)});var Up=(i,t,e,r)=>{let n=vo.get(i);n===void 0&&(n=new WeakMap,vo.set(i,n));let o=Wp(e,r);return n.set(t,o),o};var zp=(i,t,e,r,n,o,s,a,c,u,h,l,p)=>(m,f,g,b)=>{if(b.numberOfInputs===0&&b.numberOfOutputs===0)throw c();let x=Array.isArray(b.outputChannelCount)?b.outputChannelCount:Array.from(b.outputChannelCount);if(x.some(H=>H<1))throw c();if(x.length!==b.numberOfOutputs)throw t();if(b.channelCountMode!=="explicit")throw c();let C=b.channelCount*b.numberOfInputs,S=x.reduce((H,at)=>H+at,0),T=g.parameterDescriptors===void 0?0:g.parameterDescriptors.length;if(C+T>6||S>6)throw c();let w=new MessageChannel,v=[],A=[];for(let H=0;H<b.numberOfInputs;H+=1)v.push(s(m,{channelCount:b.channelCount,channelCountMode:b.channelCountMode,channelInterpretation:b.channelInterpretation,gain:1})),A.push(n(m,{channelCount:b.channelCount,channelCountMode:"explicit",channelInterpretation:"discrete",numberOfOutputs:b.channelCount}));let _=[];if(g.parameterDescriptors!==void 0)for(let{defaultValue:H,maxValue:at,minValue:ie,name:Bt}of g.parameterDescriptors){let It=o(m,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",offset:b.parameterData[Bt]!==void 0?b.parameterData[Bt]:H===void 0?0:H});Object.defineProperties(It.offset,{defaultValue:{get:()=>H===void 0?0:H},maxValue:{get:()=>at===void 0?Ut:at},minValue:{get:()=>ie===void 0?$t:ie}}),_.push(It)}let E=r(m,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"speakers",numberOfInputs:Math.max(1,C+T)}),q=da(f,m.sampleRate),M=a(m,q,C+T,Math.max(1,S)),R=n(m,{channelCount:Math.max(1,S),channelCountMode:"explicit",channelInterpretation:"discrete",numberOfOutputs:Math.max(1,S)}),B=[];for(let H=0;H<b.numberOfOutputs;H+=1)B.push(r(m,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"speakers",numberOfInputs:x[H]}));for(let H=0;H<b.numberOfInputs;H+=1){v[H].connect(A[H]);for(let at=0;at<b.channelCount;at+=1)A[H].connect(E,at,H*b.channelCount+at)}let D=new fn(g.parameterDescriptors===void 0?[]:g.parameterDescriptors.map(({name:H},at)=>{let ie=_[at];return ie.connect(E,0,C+at),ie.start(0),[H,ie.offset]}));E.connect(M);let j=b.channelInterpretation,F=null,W=b.numberOfOutputs===0?[M]:B,K={get bufferSize(){return q},get channelCount(){return b.channelCount},set channelCount(H){throw e()},get channelCountMode(){return b.channelCountMode},set channelCountMode(H){throw e()},get channelInterpretation(){return j},set channelInterpretation(H){for(let at of v)at.channelInterpretation=H;j=H},get context(){return M.context},get inputs(){return v},get numberOfInputs(){return b.numberOfInputs},get numberOfOutputs(){return b.numberOfOutputs},get onprocessorerror(){return F},set onprocessorerror(H){typeof F=="function"&&K.removeEventListener("processorerror",F),F=typeof H=="function"?H:null,typeof F=="function"&&K.addEventListener("processorerror",F)},get parameters(){return D},get port(){return w.port2},addEventListener(...H){return M.addEventListener(H[0],H[1],H[2])},connect:i.bind(null,W),disconnect:u.bind(null,W),dispatchEvent(...H){return M.dispatchEvent(H[0])},removeEventListener(...H){return M.removeEventListener(H[0],H[1],H[2])}},k=new Map;w.port1.addEventListener=(H=>(...at)=>{if(at[0]==="message"){let ie=typeof at[1]=="function"?at[1]:typeof at[1]=="object"&&at[1]!==null&&typeof at[1].handleEvent=="function"?at[1].handleEvent:null;if(ie!==null){let Bt=k.get(at[1]);Bt!==void 0?at[1]=Bt:(at[1]=It=>{h(m.currentTime,m.sampleRate,()=>ie(It))},k.set(ie,at[1]))}}return H.call(w.port1,at[0],at[1],at[2])})(w.port1.addEventListener),w.port1.removeEventListener=(H=>(...at)=>{if(at[0]==="message"){let ie=k.get(at[1]);ie!==void 0&&(k.delete(at[1]),at[1]=ie)}return H.call(w.port1,at[0],at[1],at[2])})(w.port1.removeEventListener);let nt=null;Object.defineProperty(w.port1,"onmessage",{get:()=>nt,set:H=>{typeof nt=="function"&&w.port1.removeEventListener("message",nt),nt=typeof H=="function"?H:null,typeof nt=="function"&&(w.port1.addEventListener("message",nt),w.port1.start())}}),g.prototype.port=w.port1;let mt=null;Up(m,K,g,b).then(H=>mt=H);let Ht=yn(b.numberOfInputs,b.channelCount),De=yn(b.numberOfOutputs,x),ke=g.parameterDescriptors===void 0?[]:g.parameterDescriptors.reduce((H,{name:at})=>Q(O({},H),{[at]:new Float32Array(128)}),{}),Ot=!0,ut=()=>{b.numberOfOutputs>0&&M.disconnect(R);for(let H=0,at=0;H<b.numberOfOutputs;H+=1){let ie=B[H];for(let Bt=0;Bt<x[H];Bt+=1)R.disconnect(ie,at+Bt,Bt);at+=x[H]}},Ki=new Map;M.onaudioprocess=({inputBuffer:H,outputBuffer:at})=>{if(mt!==null){let ie=l(K);for(let Bt=0;Bt<q;Bt+=128){for(let It=0;It<b.numberOfInputs;It+=1)for(let Wt=0;Wt<b.channelCount;Wt+=1)gn(H,Ht[It],Wt,Wt,Bt);g.parameterDescriptors!==void 0&&g.parameterDescriptors.forEach(({name:It},Wt)=>{gn(H,ke,It,C+Wt,Bt)});for(let It=0;It<b.numberOfInputs;It+=1)for(let Wt=0;Wt<x[It];Wt+=1)De[It][Wt].byteLength===0&&(De[It][Wt]=new Float32Array(128));try{let It=Ht.map((qe,Xr)=>{if(ie[Xr].size>0)return Ki.set(Xr,q/128),qe;let Qc=Ki.get(Xr);return Qc===void 0?[]:(qe.every(pg=>pg.every(mg=>mg===0))&&(Qc===1?Ki.delete(Xr):Ki.set(Xr,Qc-1)),qe)});Ot=h(m.currentTime+Bt/m.sampleRate,m.sampleRate,()=>mt.process(It,De,ke));for(let qe=0,Xr=0;qe<b.numberOfOutputs;qe+=1){for(let io=0;io<x[qe];io+=1)ua(at,De[qe],io,Xr+io,Bt);Xr+=x[qe]}}catch(It){Ot=!1,K.dispatchEvent(new ErrorEvent("processorerror",{colno:It.colno,filename:It.filename,lineno:It.lineno,message:It.message}))}if(!Ot){for(let It=0;It<b.numberOfInputs;It+=1){v[It].disconnect(A[It]);for(let Wt=0;Wt<b.channelCount;Wt+=1)A[Bt].disconnect(E,Wt,It*b.channelCount+Wt)}if(g.parameterDescriptors!==void 0){let It=g.parameterDescriptors.length;for(let Wt=0;Wt<It;Wt+=1){let qe=_[Wt];qe.disconnect(E,0,C+Wt),qe.stop()}}E.disconnect(M),M.onaudioprocess=null,to?ut():tn();break}}}};let to=!1,et=s(m,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",gain:0}),Ji=()=>M.connect(et).connect(m.destination),tn=()=>{M.disconnect(et),et.disconnect()},eo=()=>{if(Ot){tn(),b.numberOfOutputs>0&&M.connect(R);for(let H=0,at=0;H<b.numberOfOutputs;H+=1){let ie=B[H];for(let Bt=0;Bt<x[H];Bt+=1)R.connect(ie,at+Bt,Bt);at+=x[H]}}to=!0},ro=()=>{Ot&&(Ji(),ut()),to=!1};return Ji(),p(K,eo,ro)};var Vu=(i,t)=>{let e=i.createBiquadFilter();return gt(e,t),Tt(e,t,"Q"),Tt(e,t,"detune"),Tt(e,t,"frequency"),Tt(e,t,"gain"),St(e,t,"type"),e};var Yp=(i,t)=>(e,r)=>{let n=e.createChannelMerger(r.numberOfInputs);return i!==null&&i.name==="webkitAudioContext"&&t(e,n),gt(n,r),n};var Hp=i=>{let t=i.numberOfOutputs;Object.defineProperty(i,"channelCount",{get:()=>t,set:e=>{if(e!==t)throw Ft()}}),Object.defineProperty(i,"channelCountMode",{get:()=>"explicit",set:e=>{if(e!=="explicit")throw Ft()}}),Object.defineProperty(i,"channelInterpretation",{get:()=>"discrete",set:e=>{if(e!=="discrete")throw Ft()}})};var Cn=(i,t)=>{let e=i.createChannelSplitter(t.numberOfOutputs);return gt(e,t),Hp(e),e};var $p=(i,t,e,r,n)=>(o,s)=>{if(o.createConstantSource===void 0)return e(o,s);let a=o.createConstantSource();return gt(a,s),Tt(a,s,"offset"),t(r,()=>r(o))||xn(a),t(n,()=>n(o))||An(a),i(o,a),a};var He=(i,t)=>(i.connect=t.connect.bind(t),i.disconnect=t.disconnect.bind(t),i);var Zp=(i,t,e,r)=>(n,a)=>{var c=a,{offset:o}=c,s=Qr(c,["offset"]);let u=n.createBuffer(1,2,44100),h=t(n,{buffer:null,channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",loop:!1,loopEnd:0,loopStart:0,playbackRate:1}),l=e(n,Q(O({},s),{gain:o})),p=u.getChannelData(0);p[0]=1,p[1]=1,h.buffer=u,h.loop=!0;let m={get bufferSize(){},get channelCount(){return l.channelCount},set channelCount(b){l.channelCount=b},get channelCountMode(){return l.channelCountMode},set channelCountMode(b){l.channelCountMode=b},get channelInterpretation(){return l.channelInterpretation},set channelInterpretation(b){l.channelInterpretation=b},get context(){return l.context},get inputs(){return[]},get numberOfInputs(){return h.numberOfInputs},get numberOfOutputs(){return l.numberOfOutputs},get offset(){return l.gain},get onended(){return h.onended},set onended(b){h.onended=b},addEventListener(...b){return h.addEventListener(b[0],b[1],b[2])},dispatchEvent(...b){return h.dispatchEvent(b[0])},removeEventListener(...b){return h.removeEventListener(b[0],b[1],b[2])},start(b=0){h.start.call(h,b)},stop(b=0){h.stop.call(h,b)}},f=()=>h.connect(l),g=()=>h.disconnect(l);return i(n,h),r(He(m,l),f,g)};var Xp=(i,t)=>(e,r)=>{let n=e.createConvolver();if(gt(n,r),r.disableNormalization===n.normalize&&(n.normalize=!r.disableNormalization),St(n,r,"buffer"),r.channelCount>2||(t(n,"channelCount",o=>()=>o.call(n),o=>s=>{if(s>2)throw i();return o.call(n,s)}),r.channelCountMode==="max"))throw i();return t(n,"channelCountMode",o=>()=>o.call(n),o=>s=>{if(s==="max")throw i();return o.call(n,s)}),n};var qu=(i,t)=>{let e=i.createDelay(t.maxDelayTime);return gt(e,t),Tt(e,t,"delayTime"),e};var Qp=i=>(t,e)=>{let r=t.createDynamicsCompressor();if(gt(r,e),e.channelCount>2||e.channelCountMode==="max")throw i();return Tt(r,e,"attack"),Tt(r,e,"knee"),Tt(r,e,"ratio"),Tt(r,e,"release"),Tt(r,e,"threshold"),r};var Ae=(i,t)=>{let e=i.createGain();return gt(e,t),Tt(e,t,"gain"),e};var Kp=i=>(t,e,r)=>{if(t.createIIRFilter===void 0)return i(t,e,r);let n=t.createIIRFilter(r.feedforward,r.feedback);return gt(n,r),n};function LC(i,t){let e=t[0]*t[0]+t[1]*t[1];return[(i[0]*t[0]+i[1]*t[1])/e,(i[1]*t[0]-i[0]*t[1])/e]}function jC(i,t){return[i[0]*t[0]-i[1]*t[1],i[0]*t[1]+i[1]*t[0]]}function Jp(i,t){let e=[0,0];for(let r=i.length-1;r>=0;r-=1)e=jC(e,t),e[0]+=i[r];return e}var tm=(i,t,e,r)=>(n,o,{channelCount:s,channelCountMode:a,channelInterpretation:c,feedback:u,feedforward:h})=>{let l=da(o,n.sampleRate),p=u instanceof Float64Array?u:new Float64Array(u),m=h instanceof Float64Array?h:new Float64Array(h),f=p.length,g=m.length,b=Math.min(f,g);if(f===0||f>20)throw r();if(p[0]===0)throw t();if(g===0||g>20)throw r();if(m[0]===0)throw t();if(p[0]!==1){for(let _=0;_<g;_+=1)m[_]/=p[0];for(let _=1;_<f;_+=1)p[_]/=p[0]}let x=e(n,l,s,s);x.channelCount=s,x.channelCountMode=a,x.channelInterpretation=c;let C=32,S=[],T=[],w=[];for(let _=0;_<s;_+=1){S.push(0);let E=new Float32Array(C),q=new Float32Array(C);E.fill(0),q.fill(0),T.push(E),w.push(q)}x.onaudioprocess=_=>{let E=_.inputBuffer,q=_.outputBuffer,M=E.numberOfChannels;for(let R=0;R<M;R+=1){let B=E.getChannelData(R),D=q.getChannelData(R);S[R]=la(p,f,m,g,b,T[R],w[R],S[R],C,B,D)}};let v=n.sampleRate/2;return He({get bufferSize(){return l},get channelCount(){return x.channelCount},set channelCount(_){x.channelCount=_},get channelCountMode(){return x.channelCountMode},set channelCountMode(_){x.channelCountMode=_},get channelInterpretation(){return x.channelInterpretation},set channelInterpretation(_){x.channelInterpretation=_},get context(){return x.context},get inputs(){return[x]},get numberOfInputs(){return x.numberOfInputs},get numberOfOutputs(){return x.numberOfOutputs},addEventListener(..._){return x.addEventListener(_[0],_[1],_[2])},dispatchEvent(..._){return x.dispatchEvent(_[0])},getFrequencyResponse(_,E,q){if(_.length!==E.length||E.length!==q.length)throw i();let M=_.length;for(let R=0;R<M;R+=1){let B=-Math.PI*(_[R]/v),D=[Math.cos(B),Math.sin(B)],j=Jp(m,D),F=Jp(p,D),W=LC(j,F);E[R]=Math.sqrt(W[0]*W[0]+W[1]*W[1]),q[R]=Math.atan2(W[1],W[0])}},removeEventListener(..._){return x.removeEventListener(_[0],_[1],_[2])}},x)};var em=(i,t)=>i.createMediaElementSource(t.mediaElement);var rm=(i,t)=>{let e=i.createMediaStreamDestination();return gt(e,t),e.numberOfOutputs===1&&Object.defineProperty(e,"numberOfOutputs",{get:()=>0}),e};var im=(i,{mediaStream:t})=>{let e=t.getAudioTracks();e.sort((o,s)=>o.id<s.id?-1:o.id>s.id?1:0);let r=e.slice(0,1),n=i.createMediaStreamSource(new MediaStream(r));return Object.defineProperty(n,"mediaStream",{value:t}),n};var nm=(i,t)=>(e,{mediaStreamTrack:r})=>{if(typeof e.createMediaStreamTrackSource=="function")return e.createMediaStreamTrackSource(r);let n=new MediaStream([r]),o=e.createMediaStreamSource(n);if(r.kind!=="audio")throw i();if(t(e))throw new TypeError;return o};var om=i=>i===null?null:i.hasOwnProperty("OfflineAudioContext")?i.OfflineAudioContext:i.hasOwnProperty("webkitOfflineAudioContext")?i.webkitOfflineAudioContext:null;var sm=(i,t,e,r,n,o)=>(s,a)=>{let c=s.createOscillator();return gt(c,a),Tt(c,a,"detune"),Tt(c,a,"frequency"),a.periodicWave!==void 0?c.setPeriodicWave(a.periodicWave):St(c,a,"type"),t(e,()=>e(s))||xn(c),t(r,()=>r(s))||o(c,s),t(n,()=>n(s))||An(c),i(s,c),c};var am=i=>(t,e)=>{let r=t.createPanner();return r.orientationX===void 0?i(t,e):(gt(r,e),Tt(r,e,"orientationX"),Tt(r,e,"orientationY"),Tt(r,e,"orientationZ"),Tt(r,e,"positionX"),Tt(r,e,"positionY"),Tt(r,e,"positionZ"),St(r,e,"coneInnerAngle"),St(r,e,"coneOuterAngle"),St(r,e,"coneOuterGain"),St(r,e,"distanceModel"),St(r,e,"maxDistance"),St(r,e,"panningModel"),St(r,e,"refDistance"),St(r,e,"rolloffFactor"),r)};var cm=(i,t,e,r,n,o,s,a,c,u)=>(h,q)=>{var M=q,{coneInnerAngle:l,coneOuterAngle:p,coneOuterGain:m,distanceModel:f,maxDistance:g,orientationX:b,orientationY:x,orientationZ:C,panningModel:S,positionX:T,positionY:w,positionZ:v,refDistance:A,rolloffFactor:_}=M,E=Qr(M,["coneInnerAngle","coneOuterAngle","coneOuterGain","distanceModel","maxDistance","orientationX","orientationY","orientationZ","panningModel","positionX","positionY","positionZ","refDistance","rolloffFactor"]);let R=h.createPanner();if(E.channelCount>2||E.channelCountMode==="max")throw s();gt(R,E);let B={channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete"},D=e(h,Q(O({},B),{channelInterpretation:"speakers",numberOfInputs:6})),j=r(h,Q(O({},E),{gain:1})),F=r(h,Q(O({},B),{gain:1})),W=r(h,Q(O({},B),{gain:0})),K=r(h,Q(O({},B),{gain:0})),k=r(h,Q(O({},B),{gain:0})),nt=r(h,Q(O({},B),{gain:0})),mt=r(h,Q(O({},B),{gain:0})),Ct=n(h,256,6,1),Ht=o(h,Q(O({},B),{curve:new Float32Array([1,1]),oversample:"none"})),De=[b,x,C],ke=[T,w,v],Ot=new Float32Array(1);Ct.onaudioprocess=({inputBuffer:et})=>{let Ji=[c(et,Ot,0),c(et,Ot,1),c(et,Ot,2)];Ji.some((eo,ro)=>eo!==De[ro])&&(R.setOrientation(...Ji),De=Ji);let tn=[c(et,Ot,3),c(et,Ot,4),c(et,Ot,5)];tn.some((eo,ro)=>eo!==ke[ro])&&(R.setPosition(...tn),ke=tn)},Object.defineProperty(W.gain,"defaultValue",{get:()=>0}),Object.defineProperty(K.gain,"defaultValue",{get:()=>0}),Object.defineProperty(k.gain,"defaultValue",{get:()=>0}),Object.defineProperty(nt.gain,"defaultValue",{get:()=>0}),Object.defineProperty(mt.gain,"defaultValue",{get:()=>0});let ut={get bufferSize(){},get channelCount(){return R.channelCount},set channelCount(et){if(et>2)throw s();j.channelCount=et,R.channelCount=et},get channelCountMode(){return R.channelCountMode},set channelCountMode(et){if(et==="max")throw s();j.channelCountMode=et,R.channelCountMode=et},get channelInterpretation(){return R.channelInterpretation},set channelInterpretation(et){j.channelInterpretation=et,R.channelInterpretation=et},get coneInnerAngle(){return R.coneInnerAngle},set coneInnerAngle(et){R.coneInnerAngle=et},get coneOuterAngle(){return R.coneOuterAngle},set coneOuterAngle(et){R.coneOuterAngle=et},get coneOuterGain(){return R.coneOuterGain},set coneOuterGain(et){if(et<0||et>1)throw t();R.coneOuterGain=et},get context(){return R.context},get distanceModel(){return R.distanceModel},set distanceModel(et){R.distanceModel=et},get inputs(){return[j]},get maxDistance(){return R.maxDistance},set maxDistance(et){if(et<0)throw new RangeError;R.maxDistance=et},get numberOfInputs(){return R.numberOfInputs},get numberOfOutputs(){return R.numberOfOutputs},get orientationX(){return F.gain},get orientationY(){return W.gain},get orientationZ(){return K.gain},get panningModel(){return R.panningModel},set panningModel(et){R.panningModel=et},get positionX(){return k.gain},get positionY(){return nt.gain},get positionZ(){return mt.gain},get refDistance(){return R.refDistance},set refDistance(et){if(et<0)throw new RangeError;R.refDistance=et},get rolloffFactor(){return R.rolloffFactor},set rolloffFactor(et){if(et<0)throw new RangeError;R.rolloffFactor=et},addEventListener(...et){return j.addEventListener(et[0],et[1],et[2])},dispatchEvent(...et){return j.dispatchEvent(et[0])},removeEventListener(...et){return j.removeEventListener(et[0],et[1],et[2])}};l!==ut.coneInnerAngle&&(ut.coneInnerAngle=l),p!==ut.coneOuterAngle&&(ut.coneOuterAngle=p),m!==ut.coneOuterGain&&(ut.coneOuterGain=m),f!==ut.distanceModel&&(ut.distanceModel=f),g!==ut.maxDistance&&(ut.maxDistance=g),b!==ut.orientationX.value&&(ut.orientationX.value=b),x!==ut.orientationY.value&&(ut.orientationY.value=x),C!==ut.orientationZ.value&&(ut.orientationZ.value=C),S!==ut.panningModel&&(ut.panningModel=S),T!==ut.positionX.value&&(ut.positionX.value=T),w!==ut.positionY.value&&(ut.positionY.value=w),v!==ut.positionZ.value&&(ut.positionZ.value=v),A!==ut.refDistance&&(ut.refDistance=A),_!==ut.rolloffFactor&&(ut.rolloffFactor=_),(De[0]!==1||De[1]!==0||De[2]!==0)&&R.setOrientation(...De),(ke[0]!==0||ke[1]!==0||ke[2]!==0)&&R.setPosition(...ke);let Ki=()=>{j.connect(R),i(j,Ht,0,0),Ht.connect(F).connect(D,0,0),Ht.connect(W).connect(D,0,1),Ht.connect(K).connect(D,0,2),Ht.connect(k).connect(D,0,3),Ht.connect(nt).connect(D,0,4),Ht.connect(mt).connect(D,0,5),D.connect(Ct).connect(h.destination)},to=()=>{j.disconnect(R),a(j,Ht,0,0),Ht.disconnect(F),F.disconnect(D),Ht.disconnect(W),W.disconnect(D),Ht.disconnect(K),K.disconnect(D),Ht.disconnect(k),k.disconnect(D),Ht.disconnect(nt),nt.disconnect(D),Ht.disconnect(mt),mt.disconnect(D),D.disconnect(Ct),Ct.disconnect(h.destination)};return u(He(ut,R),Ki,to)};var um=i=>(t,{disableNormalization:e,imag:r,real:n})=>{let o=r instanceof Float32Array?r:new Float32Array(r),s=n instanceof Float32Array?n:new Float32Array(n),a=t.createPeriodicWave(s,o,{disableNormalization:e});if(Array.from(r).length<2)throw i();return a};var _n=(i,t,e,r)=>i.createScriptProcessor(t,e,r);var hm=(i,t)=>(e,r)=>{let n=r.channelCountMode;if(n==="clamped-max")throw t();if(e.createStereoPanner===void 0)return i(e,r);let o=e.createStereoPanner();return gt(o,r),Tt(o,r,"pan"),Object.defineProperty(o,"channelCountMode",{get:()=>n,set:s=>{if(s!==n)throw t()}}),o};var lm=(i,t,e,r,n,o)=>{let a=new Float32Array([1,1]),c=Math.PI/2,u={channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete"},h=Q(O({},u),{oversample:"none"}),l=(f,g,b,x)=>{let C=new Float32Array(16385),S=new Float32Array(16385);for(let E=0;E<16385;E+=1){let q=E/16384*c;C[E]=Math.cos(q),S[E]=Math.sin(q)}let T=e(f,Q(O({},u),{gain:0})),w=r(f,Q(O({},h),{curve:C})),v=r(f,Q(O({},h),{curve:a})),A=e(f,Q(O({},u),{gain:0})),_=r(f,Q(O({},h),{curve:S}));return{connectGraph(){g.connect(T),g.connect(v.inputs===void 0?v:v.inputs[0]),g.connect(A),v.connect(b),b.connect(w.inputs===void 0?w:w.inputs[0]),b.connect(_.inputs===void 0?_:_.inputs[0]),w.connect(T.gain),_.connect(A.gain),T.connect(x,0,0),A.connect(x,0,1)},disconnectGraph(){g.disconnect(T),g.disconnect(v.inputs===void 0?v:v.inputs[0]),g.disconnect(A),v.disconnect(b),b.disconnect(w.inputs===void 0?w:w.inputs[0]),b.disconnect(_.inputs===void 0?_:_.inputs[0]),w.disconnect(T.gain),_.disconnect(A.gain),T.disconnect(x,0,0),A.disconnect(x,0,1)}}},p=(f,g,b,x)=>{let C=new Float32Array(16385),S=new Float32Array(16385),T=new Float32Array(16385),w=new Float32Array(16385),v=Math.floor(16385/2);for(let W=0;W<16385;W+=1)if(W>v){let K=(W-v)/(16384-v)*c;C[W]=Math.cos(K),S[W]=Math.sin(K),T[W]=0,w[W]=1}else{let K=W/(16384-v)*c;C[W]=1,S[W]=0,T[W]=Math.cos(K),w[W]=Math.sin(K)}let A=t(f,{channelCount:2,channelCountMode:"explicit",channelInterpretation:"discrete",numberOfOutputs:2}),_=e(f,Q(O({},u),{gain:0})),E=r(f,Q(O({},h),{curve:C})),q=e(f,Q(O({},u),{gain:0})),M=r(f,Q(O({},h),{curve:S})),R=r(f,Q(O({},h),{curve:a})),B=e(f,Q(O({},u),{gain:0})),D=r(f,Q(O({},h),{curve:T})),j=e(f,Q(O({},u),{gain:0})),F=r(f,Q(O({},h),{curve:w}));return{connectGraph(){g.connect(A),g.connect(R.inputs===void 0?R:R.inputs[0]),A.connect(_,0),A.connect(q,0),A.connect(B,1),A.connect(j,1),R.connect(b),b.connect(E.inputs===void 0?E:E.inputs[0]),b.connect(M.inputs===void 0?M:M.inputs[0]),b.connect(D.inputs===void 0?D:D.inputs[0]),b.connect(F.inputs===void 0?F:F.inputs[0]),E.connect(_.gain),M.connect(q.gain),D.connect(B.gain),F.connect(j.gain),_.connect(x,0,0),B.connect(x,0,0),q.connect(x,0,1),j.connect(x,0,1)},disconnectGraph(){g.disconnect(A),g.disconnect(R.inputs===void 0?R:R.inputs[0]),A.disconnect(_,0),A.disconnect(q,0),A.disconnect(B,1),A.disconnect(j,1),R.disconnect(b),b.disconnect(E.inputs===void 0?E:E.inputs[0]),b.disconnect(M.inputs===void 0?M:M.inputs[0]),b.disconnect(D.inputs===void 0?D:D.inputs[0]),b.disconnect(F.inputs===void 0?F:F.inputs[0]),E.disconnect(_.gain),M.disconnect(q.gain),D.disconnect(B.gain),F.disconnect(j.gain),_.disconnect(x,0,0),B.disconnect(x,0,0),q.disconnect(x,0,1),j.disconnect(x,0,1)}}},m=(f,g,b,x,C)=>{if(g===1)return l(f,b,x,C);if(g===2)return p(f,b,x,C);throw n()};return(f,S)=>{var T=S,{channelCount:g,channelCountMode:b,pan:x}=T,C=Qr(T,["channelCount","channelCountMode","pan"]);if(b==="max")throw n();let w=i(f,Q(O({},C),{channelCount:1,channelCountMode:b,numberOfInputs:2})),v=e(f,Q(O({},C),{channelCount:g,channelCountMode:b,gain:1})),A=e(f,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",gain:x}),{connectGraph:_,disconnectGraph:E}=m(f,g,v,A,w);Object.defineProperty(A.gain,"defaultValue",{get:()=>0}),Object.defineProperty(A.gain,"maxValue",{get:()=>1}),Object.defineProperty(A.gain,"minValue",{get:()=>-1});let q={get bufferSize(){},get channelCount(){return v.channelCount},set channelCount(D){v.channelCount!==D&&(M&&E(),{connectGraph:_,disconnectGraph:E}=m(f,D,v,A,w),M&&_()),v.channelCount=D},get channelCountMode(){return v.channelCountMode},set channelCountMode(D){if(D==="clamped-max"||D==="max")throw n();v.channelCountMode=D},get channelInterpretation(){return v.channelInterpretation},set channelInterpretation(D){v.channelInterpretation=D},get context(){return v.context},get inputs(){return[v]},get numberOfInputs(){return v.numberOfInputs},get numberOfOutputs(){return v.numberOfOutputs},get pan(){return A.gain},addEventListener(...D){return v.addEventListener(D[0],D[1],D[2])},dispatchEvent(...D){return v.dispatchEvent(D[0])},removeEventListener(...D){return v.removeEventListener(D[0],D[1],D[2])}},M=!1,R=()=>{_(),M=!0},B=()=>{E(),M=!1};return o(He(q,w),R,B)}};var dm=(i,t,e,r,n,o,s)=>(a,c)=>{let u=a.createWaveShaper();if(o!==null&&o.name==="webkitAudioContext"&&a.createGain().gain.automationRate===void 0)return e(a,c);gt(u,c);let h=c.curve===null||c.curve instanceof Float32Array?c.curve:new Float32Array(c.curve);if(h!==null&&h.length<2)throw t();St(u,{curve:h},"curve"),St(u,c,"oversample");let l=null,p=!1;return s(u,"curve",g=>()=>g.call(u),g=>b=>(g.call(u,b),p&&(r(b)&&l===null?l=i(a,u):!r(b)&&l!==null&&(l(),l=null)),b)),n(u,()=>{p=!0,r(u.curve)&&(l=i(a,u))},()=>{p=!1,l!==null&&(l(),l=null)})};var pm=(i,t,e,r,n)=>(o,u)=>{var h=u,{curve:s,oversample:a}=h,c=Qr(h,["curve","oversample"]);let l=o.createWaveShaper(),p=o.createWaveShaper();gt(l,c),gt(p,c);let m=e(o,Q(O({},c),{gain:1})),f=e(o,Q(O({},c),{gain:-1})),g=e(o,Q(O({},c),{gain:1})),b=e(o,Q(O({},c),{gain:-1})),x=null,C=!1,S=null,T={get bufferSize(){},get channelCount(){return l.channelCount},set channelCount(A){m.channelCount=A,f.channelCount=A,l.channelCount=A,g.channelCount=A,p.channelCount=A,b.channelCount=A},get channelCountMode(){return l.channelCountMode},set channelCountMode(A){m.channelCountMode=A,f.channelCountMode=A,l.channelCountMode=A,g.channelCountMode=A,p.channelCountMode=A,b.channelCountMode=A},get channelInterpretation(){return l.channelInterpretation},set channelInterpretation(A){m.channelInterpretation=A,f.channelInterpretation=A,l.channelInterpretation=A,g.channelInterpretation=A,p.channelInterpretation=A,b.channelInterpretation=A},get context(){return l.context},get curve(){return S},set curve(A){if(A!==null&&A.length<2)throw t();if(A===null)l.curve=A,p.curve=A;else{let _=A.length,E=new Float32Array(_+2-_%2),q=new Float32Array(_+2-_%2);E[0]=A[0],q[0]=-A[_-1];let M=Math.ceil((_+1)/2),R=(_+1)/2-1;for(let B=1;B<M;B+=1){let D=B/M*R,j=Math.floor(D),F=Math.ceil(D);E[B]=j===F?A[j]:(1-(D-j))*A[j]+(1-(F-D))*A[F],q[B]=j===F?-A[_-1-j]:-((1-(D-j))*A[_-1-j])-(1-(F-D))*A[_-1-F]}E[M]=_%2===1?A[M-1]:(A[M-2]+A[M-1])/2,l.curve=E,p.curve=q}S=A,C&&(r(S)&&x===null?x=i(o,m):x!==null&&(x(),x=null))},get inputs(){return[m]},get numberOfInputs(){return l.numberOfInputs},get numberOfOutputs(){return l.numberOfOutputs},get oversample(){return l.oversample},set oversample(A){l.oversample=A,p.oversample=A},addEventListener(...A){return m.addEventListener(A[0],A[1],A[2])},dispatchEvent(...A){return m.dispatchEvent(A[0])},removeEventListener(...A){return m.removeEventListener(A[0],A[1],A[2])}};s!==null&&(T.curve=s instanceof Float32Array?s:new Float32Array(s)),a!==T.oversample&&(T.oversample=a);let w=()=>{m.connect(l).connect(g),m.connect(f).connect(p).connect(b).connect(g),C=!0,r(S)&&(x=i(o,m))},v=()=>{m.disconnect(l),l.disconnect(g),m.disconnect(f),f.disconnect(p),p.disconnect(b),b.disconnect(g),C=!1,x!==null&&(x(),x=null)};return n(He(T,g),w,v)};var ue=()=>new DOMException("","NotSupportedError");var PC={numberOfChannels:1},mm=(i,t,e,r,n)=>class extends i{constructor(s,a,c){let u;if(typeof s=="number"&&a!==void 0&&c!==void 0)u={length:a,numberOfChannels:s,sampleRate:c};else if(typeof s=="object")u=s;else throw new Error("The given parameters are not valid.");let{length:h,numberOfChannels:l,sampleRate:p}=O(O({},PC),u),m=r(l,h,p);t(cr,()=>cr(m))||m.addEventListener("statechange",(()=>{let f=0,g=b=>{this._state==="running"&&(f>0?(m.removeEventListener("statechange",g),b.stopImmediatePropagation(),this._waitForThePromiseToSettle(b)):f+=1)};return g})()),super(m,l),this._length=h,this._nativeOfflineAudioContext=m,this._state=null}get length(){return this._nativeOfflineAudioContext.length===void 0?this._length:this._nativeOfflineAudioContext.length}get state(){return this._state===null?this._nativeOfflineAudioContext.state:this._state}startRendering(){return this._state==="running"?Promise.reject(e()):(this._state="running",n(this.destination,this._nativeOfflineAudioContext).finally(()=>{this._state=null,si(this)}))}_waitForThePromiseToSettle(s){this._state===null?this._nativeOfflineAudioContext.dispatchEvent(s):setTimeout(()=>this._waitForThePromiseToSettle(s))}};var FC={channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",detune:0,frequency:440,periodicWave:void 0,type:"sine"},fm=(i,t,e,r,n,o,s)=>class extends i{constructor(c,u){let h=n(c),l=O(O({},FC),u),p=e(h,l),m=o(h),f=m?r():null,g=c.sampleRate/2;super(c,!1,p,f),this._detune=t(this,m,p.detune,153600,-153600),this._frequency=t(this,m,p.frequency,g,-g),this._nativeOscillatorNode=p,this._onended=null,this._oscillatorNodeRenderer=f,this._oscillatorNodeRenderer!==null&&l.periodicWave!==void 0&&(this._oscillatorNodeRenderer.periodicWave=l.periodicWave)}get detune(){return this._detune}get frequency(){return this._frequency}get onended(){return this._onended}set onended(c){let u=typeof c=="function"?s(this,c):null;this._nativeOscillatorNode.onended=u;let h=this._nativeOscillatorNode.onended;this._onended=h!==null&&h===u?c:h}get type(){return this._nativeOscillatorNode.type}set type(c){this._nativeOscillatorNode.type=c,this._oscillatorNodeRenderer!==null&&(this._oscillatorNodeRenderer.periodicWave=null)}setPeriodicWave(c){this._nativeOscillatorNode.setPeriodicWave(c),this._oscillatorNodeRenderer!==null&&(this._oscillatorNodeRenderer.periodicWave=c)}start(c=0){if(this._nativeOscillatorNode.start(c),this._oscillatorNodeRenderer!==null&&(this._oscillatorNodeRenderer.start=c),this.context.state!=="closed"){sr(this);let u=()=>{this._nativeOscillatorNode.removeEventListener("ended",u),xe(this)&&Ir(this)};this._nativeOscillatorNode.addEventListener("ended",u)}}stop(c=0){this._nativeOscillatorNode.stop(c),this._oscillatorNodeRenderer!==null&&(this._oscillatorNodeRenderer.stop=c)}};var gm=(i,t,e,r,n)=>()=>{let o=new WeakMap,s=null,a=null,c=null,u=(h,l)=>J(null,null,function*(){let p=e(h),m=vt(p,l);if(!m){let f={channelCount:p.channelCount,channelCountMode:p.channelCountMode,channelInterpretation:p.channelInterpretation,detune:p.detune.value,frequency:p.frequency.value,periodicWave:s===null?void 0:s,type:p.type};p=t(l,f),a!==null&&p.start(a),c!==null&&p.stop(c)}return o.set(l,p),m?(yield i(l,h.detune,p.detune),yield i(l,h.frequency,p.frequency)):(yield r(l,h.detune,p.detune),yield r(l,h.frequency,p.frequency)),yield n(h,l,p),p});return{set periodicWave(h){s=h},set start(h){a=h},set stop(h){c=h},render(h,l){let p=o.get(l);return p!==void 0?Promise.resolve(p):u(h,l)}}};var BC={channelCount:2,channelCountMode:"clamped-max",channelInterpretation:"speakers",coneInnerAngle:360,coneOuterAngle:360,coneOuterGain:0,distanceModel:"inverse",maxDistance:1e4,orientationX:1,orientationY:0,orientationZ:0,panningModel:"equalpower",positionX:0,positionY:0,positionZ:0,refDistance:1,rolloffFactor:1},ym=(i,t,e,r,n,o,s)=>class extends i{constructor(c,u){let h=n(c),l=O(O({},BC),u),p=e(h,l),m=o(h),f=m?r():null;super(c,!1,p,f),this._nativePannerNode=p,this._orientationX=t(this,m,p.orientationX,Ut,$t),this._orientationY=t(this,m,p.orientationY,Ut,$t),this._orientationZ=t(this,m,p.orientationZ,Ut,$t),this._positionX=t(this,m,p.positionX,Ut,$t),this._positionY=t(this,m,p.positionY,Ut,$t),this._positionZ=t(this,m,p.positionZ,Ut,$t),s(this,1)}get coneInnerAngle(){return this._nativePannerNode.coneInnerAngle}set coneInnerAngle(c){this._nativePannerNode.coneInnerAngle=c}get coneOuterAngle(){return this._nativePannerNode.coneOuterAngle}set coneOuterAngle(c){this._nativePannerNode.coneOuterAngle=c}get coneOuterGain(){return this._nativePannerNode.coneOuterGain}set coneOuterGain(c){this._nativePannerNode.coneOuterGain=c}get distanceModel(){return this._nativePannerNode.distanceModel}set distanceModel(c){this._nativePannerNode.distanceModel=c}get maxDistance(){return this._nativePannerNode.maxDistance}set maxDistance(c){this._nativePannerNode.maxDistance=c}get orientationX(){return this._orientationX}get orientationY(){return this._orientationY}get orientationZ(){return this._orientationZ}get panningModel(){return this._nativePannerNode.panningModel}set panningModel(c){this._nativePannerNode.panningModel=c}get positionX(){return this._positionX}get positionY(){return this._positionY}get positionZ(){return this._positionZ}get refDistance(){return this._nativePannerNode.refDistance}set refDistance(c){this._nativePannerNode.refDistance=c}get rolloffFactor(){return this._nativePannerNode.rolloffFactor}set rolloffFactor(c){this._nativePannerNode.rolloffFactor=c}};var bm=(i,t,e,r,n,o,s,a,c,u)=>()=>{let h=new WeakMap,l=null,p=(m,f)=>J(null,null,function*(){let g=null,b=o(m),x={channelCount:b.channelCount,channelCountMode:b.channelCountMode,channelInterpretation:b.channelInterpretation},C=Q(O({},x),{coneInnerAngle:b.coneInnerAngle,coneOuterAngle:b.coneOuterAngle,coneOuterGain:b.coneOuterGain,distanceModel:b.distanceModel,maxDistance:b.maxDistance,panningModel:b.panningModel,refDistance:b.refDistance,rolloffFactor:b.rolloffFactor}),S=vt(b,f);if("bufferSize"in b)g=r(f,Q(O({},x),{gain:1}));else if(!S){let T=Q(O({},C),{orientationX:b.orientationX.value,orientationY:b.orientationY.value,orientationZ:b.orientationZ.value,positionX:b.positionX.value,positionY:b.positionY.value,positionZ:b.positionZ.value});b=n(f,T)}if(h.set(f,g===null?b:g),g!==null){if(l===null){if(s===null)throw new Error("Missing the native OfflineAudioContext constructor.");let M=new s(6,m.context.length,f.sampleRate),R=t(M,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"speakers",numberOfInputs:6});R.connect(M.destination),l=J(null,null,function*(){let B=yield Promise.all([m.orientationX,m.orientationY,m.orientationZ,m.positionX,m.positionY,m.positionZ].map((D,j)=>J(null,null,function*(){let F=e(M,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",offset:j===0?1:0});return yield a(M,D,F.offset),F})));for(let D=0;D<6;D+=1)B[D].connect(R,0,D),B[D].start(0);return u(M)})}let T=yield l,w=r(f,Q(O({},x),{gain:1}));yield c(m,f,w);let v=[];for(let M=0;M<T.numberOfChannels;M+=1)v.push(T.getChannelData(M));let A=[v[0][0],v[1][0],v[2][0]],_=[v[3][0],v[4][0],v[5][0]],E=r(f,Q(O({},x),{gain:1})),q=n(f,Q(O({},C),{orientationX:A[0],orientationY:A[1],orientationZ:A[2],positionX:_[0],positionY:_[1],positionZ:_[2]}));w.connect(E).connect(q.inputs[0]),q.connect(g);for(let M=128;M<T.length;M+=128){let R=[v[0][M],v[1][M],v[2][M]],B=[v[3][M],v[4][M],v[5][M]];if(R.some((D,j)=>D!==A[j])||B.some((D,j)=>D!==_[j])){A=R,_=B;let D=M/f.sampleRate;E.gain.setValueAtTime(0,D),E=r(f,Q(O({},x),{gain:0})),q=n(f,Q(O({},C),{orientationX:A[0],orientationY:A[1],orientationZ:A[2],positionX:_[0],positionY:_[1],positionZ:_[2]})),E.gain.setValueAtTime(1,D),w.connect(E).connect(q.inputs[0]),q.connect(g)}}return g}return S?(yield i(f,m.orientationX,b.orientationX),yield i(f,m.orientationY,b.orientationY),yield i(f,m.orientationZ,b.orientationZ),yield i(f,m.positionX,b.positionX),yield i(f,m.positionY,b.positionY),yield i(f,m.positionZ,b.positionZ)):(yield a(f,m.orientationX,b.orientationX),yield a(f,m.orientationY,b.orientationY),yield a(f,m.orientationZ,b.orientationZ),yield a(f,m.positionX,b.positionX),yield a(f,m.positionY,b.positionY),yield a(f,m.positionZ,b.positionZ)),Ye(b)?yield c(m,f,b.inputs[0]):yield c(m,f,b),b});return{render(m,f){let g=h.get(f);return g!==void 0?Promise.resolve(g):p(m,f)}}};var GC={disableNormalization:!1},xm=(i,t,e,r)=>class Am{constructor(o,s){let a=t(o),c=r(O(O({},GC),s)),u=i(a,c);return e.add(u),u}static[Symbol.hasInstance](o){return o!==null&&typeof o=="object"&&Object.getPrototypeOf(o)===Am.prototype||e.has(o)}};var Cm=(i,t)=>(e,r,n)=>(i(r).replay(n),t(r,e,n));var _m=(i,t,e)=>(r,n,o)=>J(null,null,function*(){let s=i(r);yield Promise.all(s.activeInputs.map((a,c)=>Array.from(a).map(l=>J(null,[l],function*([u,h]){let m=yield t(u).render(u,n),f=r.context.destination;!e(u)&&(r!==f||!e(r))&&m.connect(o,h,c)}))).reduce((a,c)=>[...a,...c],[]))});var vm=(i,t,e)=>(r,n,o)=>J(null,null,function*(){let s=t(r);yield Promise.all(Array.from(s.activeInputs).map(u=>J(null,[u],function*([a,c]){let l=yield i(a).render(a,n);e(a)||l.connect(o,c)})))});var Sm=(i,t,e,r)=>n=>i(cr,()=>cr(n))?Promise.resolve(i(r,r)).then(o=>{if(!o){let s=e(n,512,0,1);n.oncomplete=()=>{s.onaudioprocess=null,s.disconnect()},s.onaudioprocess=()=>n.currentTime,s.connect(n.destination)}return n.startRendering()}):new Promise(o=>{let s=t(n,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",gain:0});n.oncomplete=a=>{s.disconnect(),o(a.renderedBuffer)},s.connect(n.destination),n.startRendering()});var wm=i=>(t,e)=>{i.set(t,e)};var Im=i=>(t,e)=>i.set(t,e);var Tm=(i,t,e,r,n,o,s,a)=>(c,u)=>e(c).render(c,u).then(()=>Promise.all(Array.from(r(u)).map(h=>e(h).render(h,u)))).then(()=>n(u)).then(h=>(typeof h.copyFromChannel!="function"?(s(h),ln(h)):t(o,()=>o(h))||a(h),i.add(h),h));var VC={channelCount:2,channelCountMode:"explicit",channelInterpretation:"speakers",pan:0},Nm=(i,t,e,r,n,o)=>class extends i{constructor(a,c){let u=n(a),h=O(O({},VC),c),l=e(u,h),p=o(u),m=p?r():null;super(a,!1,l,m),this._pan=t(this,p,l.pan)}get pan(){return this._pan}};var Om=(i,t,e,r,n)=>()=>{let o=new WeakMap,s=(a,c)=>J(null,null,function*(){let u=e(a),h=vt(u,c);if(!h){let l={channelCount:u.channelCount,channelCountMode:u.channelCountMode,channelInterpretation:u.channelInterpretation,pan:u.pan.value};u=t(c,l)}return o.set(c,u),h?yield i(c,a.pan,u.pan):yield r(c,a.pan,u.pan),Ye(u)?yield n(a,c,u.inputs[0]):yield n(a,c,u),u});return{render(a,c){let u=o.get(c);return u!==void 0?Promise.resolve(u):s(a,c)}}};var Rm=i=>()=>{if(i===null)return!1;try{new i({length:1,sampleRate:44100})}catch(t){return!1}return!0};var Mm=(i,t)=>()=>J(null,null,function*(){if(i===null)return!0;if(t===null)return!1;let e=new Blob(['class A extends AudioWorkletProcessor{process(i){this.port.postMessage(i,[i[0][0].buffer])}}registerProcessor("a",A)'],{type:"application/javascript; charset=utf-8"}),r=new t(1,128,44100),n=URL.createObjectURL(e),o=!1,s=!1;try{yield r.audioWorklet.addModule(n);let a=new i(r,"a",{numberOfOutputs:0}),c=r.createOscillator();a.port.onmessage=()=>o=!0,a.onprocessorerror=()=>s=!0,c.connect(a),c.start(0),yield r.startRendering(),yield new Promise(u=>setTimeout(u))}catch(a){}finally{URL.revokeObjectURL(n)}return o&&!s});var Em=(i,t)=>()=>{if(t===null)return Promise.resolve(!1);let e=new t(1,1,44100),r=i(e,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",gain:0});return new Promise(n=>{e.oncomplete=()=>{r.disconnect(),n(e.currentTime!==0)},e.startRendering()})};var Wu=()=>new DOMException("","UnknownError");var qC={channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",curve:null,oversample:"none"},Dm=(i,t,e,r,n,o,s)=>class extends i{constructor(c,u){let h=n(c),l=O(O({},qC),u),p=e(h,l),f=o(h)?r():null;super(c,!0,p,f),this._isCurveNullified=!1,this._nativeWaveShaperNode=p,s(this,1)}get curve(){return this._isCurveNullified?null:this._nativeWaveShaperNode.curve}set curve(c){if(c===null)this._isCurveNullified=!0,this._nativeWaveShaperNode.curve=new Float32Array([0,0]);else{if(c.length<2)throw t();this._isCurveNullified=!1,this._nativeWaveShaperNode.curve=c}}get oversample(){return this._nativeWaveShaperNode.oversample}set oversample(c){this._nativeWaveShaperNode.oversample=c}};var km=(i,t,e)=>()=>{let r=new WeakMap,n=(o,s)=>J(null,null,function*(){let a=t(o);if(!vt(a,s)){let u={channelCount:a.channelCount,channelCountMode:a.channelCountMode,channelInterpretation:a.channelInterpretation,curve:a.curve,oversample:a.oversample};a=i(s,u)}return r.set(s,a),Ye(a)?yield e(o,s,a.inputs[0]):yield e(o,s,a),a});return{render(o,s){let a=r.get(s);return a!==void 0?Promise.resolve(a):n(o,s)}}};var Lm=()=>typeof window=="undefined"?null:window;var jm=(i,t)=>e=>{e.copyFromChannel=(r,n,o=0)=>{let s=i(o),a=i(n);if(a>=e.numberOfChannels)throw t();let c=e.length,u=e.getChannelData(a),h=r.length;for(let l=s<0?-s:0;l+s<c&&l<h;l+=1)r[l]=u[l+s]},e.copyToChannel=(r,n,o=0)=>{let s=i(o),a=i(n);if(a>=e.numberOfChannels)throw t();let c=e.length,u=e.getChannelData(a),h=r.length;for(let l=s<0?-s:0;l+s<c&&l<h;l+=1)u[l+s]=r[l]}};var Pm=i=>t=>{t.copyFromChannel=(e=>(r,n,o=0)=>{let s=i(o),a=i(n);if(s<t.length)return e.call(t,r,a,s)})(t.copyFromChannel),t.copyToChannel=(e=>(r,n,o=0)=>{let s=i(o),a=i(n);if(s<t.length)return e.call(t,r,a,s)})(t.copyToChannel)};var Fm=i=>(t,e)=>{let r=e.createBuffer(1,1,44100);t.buffer===null&&(t.buffer=r),i(t,"buffer",n=>()=>{let o=n.call(t);return o===r?null:o},n=>o=>n.call(t,o===null?r:o))};var Bm=(i,t)=>(e,r)=>{r.channelCount=1,r.channelCountMode="explicit",Object.defineProperty(r,"channelCount",{get:()=>1,set:()=>{throw i()}}),Object.defineProperty(r,"channelCountMode",{get:()=>"explicit",set:()=>{throw i()}});let n=e.createBufferSource();t(r,()=>{let a=r.numberOfInputs;for(let c=0;c<a;c+=1)n.connect(r,0,c)},()=>n.disconnect(r))};var Uu=(i,t,e)=>i.copyFromChannel===void 0?i.getChannelData(e)[0]:(i.copyFromChannel(t,e),t[0]);var zu=i=>{if(i===null)return!1;let t=i.length;return t%2!==0?i[Math.floor(t/2)]!==0:i[t/2-1]+i[t/2]!==0};var vn=(i,t,e,r)=>{let n=i;for(;!n.hasOwnProperty(t);)n=Object.getPrototypeOf(n);let{get:o,set:s}=Object.getOwnPropertyDescriptor(n,t);Object.defineProperty(i,t,{get:e(o),set:r(s)})};var Gm=i=>Q(O({},i),{outputChannelCount:i.outputChannelCount!==void 0?i.outputChannelCount:i.numberOfInputs===1&&i.numberOfOutputs===1?[i.channelCount]:Array.from({length:i.numberOfOutputs},()=>1)});var Vm=i=>Q(O({},i),{channelCount:i.numberOfOutputs});var qm=i=>{let{imag:t,real:e}=i;return t===void 0?e===void 0?Q(O({},i),{imag:[0,0],real:[0,0]}):Q(O({},i),{imag:Array.from(e,()=>0),real:e}):e===void 0?Q(O({},i),{imag:t,real:Array.from(t,()=>0)}):Q(O({},i),{imag:t,real:e})};var Yu=(i,t,e)=>{try{i.setValueAtTime(t,e)}catch(r){if(r.code!==9)throw r;Yu(i,t,e+1e-7)}};var Wm=i=>{let t=i.createBufferSource();t.start();try{t.start()}catch(e){return!0}return!1};var Um=i=>{let t=i.createBufferSource(),e=i.createBuffer(1,1,44100);t.buffer=e;try{t.start(0,1)}catch(r){return!1}return!0};var zm=i=>{let t=i.createBufferSource();t.start();try{t.stop()}catch(e){return!1}return!0};var pa=i=>{let t=i.createOscillator();try{t.start(-1)}catch(e){return e instanceof RangeError}return!1};var Hu=i=>{let t=i.createBuffer(1,1,44100),e=i.createBufferSource();e.buffer=t,e.start(),e.stop();try{return e.stop(),!0}catch(r){return!1}};var ma=i=>{let t=i.createOscillator();try{t.stop(-1)}catch(e){return e instanceof RangeError}return!1};var Ym=i=>{let{port1:t,port2:e}=new MessageChannel;try{t.postMessage(i)}finally{t.close(),e.close()}};var Hm=i=>{i.start=(t=>(e=0,r=0,n)=>{let o=i.buffer,s=o===null?r:Math.min(o.duration,r);o!==null&&s>o.duration-.5/i.context.sampleRate?t.call(i,e,0,0):t.call(i,e,s,n)})(i.start)};var $u=(i,t)=>{let e=t.createGain();i.connect(e);let r=(n=>()=>{n.call(i,e),i.removeEventListener("ended",r)})(i.disconnect);i.addEventListener("ended",r),He(i,e),i.stop=(n=>{let o=!1;return(s=0)=>{if(o)try{n.call(i,s)}catch(a){e.gain.setValueAtTime(0,s)}else n.call(i,s),o=!0}})(i.stop)};var ki=(i,t)=>e=>{let r={value:i};return Object.defineProperties(e,{currentTarget:r,target:r}),typeof t=="function"?t.call(i,e):t.handleEvent.call(i,e)};var WC=Pl(ar),UC=Hl(ar),zC=qd(ni),Zm=new WeakMap,YC=np(Zm),$e=vd(new Map,new WeakMap),Tr=Lm(),Xm=Dp($e,ze),Zu=ip(oe),he=_m(oe,Zu,Wr),HC=Ql(Xm,Rt,he),jt=ap(un),Ur=om(Tr),Mt=_p(Ur),Qm=new WeakMap,Km=Qd(ki),Sn=Pp(Tr),Xu=bp(Sn),Qu=xp(Tr),Jm=Ap(Tr),wo=Bp(Tr),Zt=md(Fl(ea),Yl(WC,UC,dn,zC,pn,oe,YC,wr,Rt,ar,xe,Wr,mn),$e,pp(Co,pn,oe,Rt,Ei,xe),ze,bn,ue,Bd(dn,Co,oe,Rt,Ei,jt,xe,Mt),zd(Qm,oe,Jt),Km,jt,Xu,Qu,Jm,Mt,wo),$C=Xl(Zt,HC,ze,Xm,jt,Mt);var Ku=new WeakSet,$m=kp(Tr),tf=Dd(new Uint32Array(1)),Ju=jm(tf,ze),th=Pm(tf),eh=Kl(Ku,$e,ue,$m,Ur,Rm($m),Ju,th);var fa=$l(Ae),ef=vm(Zu,oi,Wr),Nr=Nd(ef),wn=jp(fa,$e,Wm,Um,zm,pa,Hu,ma,Hm,Fm(vn),$u),Or=Cm(op(oi),ef),ZC=ed(Nr,wn,Rt,Or,he),ur=fd(Bl(ra),Qm,Ao,gd,wu,Iu,Tu,Nu,Ou,on,fo,Sn,Yu),XC=td(Zt,ZC,ur,Ft,wn,jt,Mt,ki);var QC=ud(Zt,hd,ze,Ft,Fp(Ae,vn),jt,Mt,he),KC=_d(Nr,Vu,Rt,Or,he),Li=Im(Zm),JC=Cd(Zt,ur,KC,bn,Vu,jt,Mt,Li),ci=Mp(ar,Qu),t_=Bm(Ft,ci),ui=Yp(Sn,t_),e_=wd(ui,Rt,he),r_=Sd(Zt,e_,ui,jt,Mt),i_=Td(Cn,Rt,he),n_=Id(Zt,i_,Cn,jt,Mt,Vm),o_=Zp(fa,wn,Ae,ci),In=$p(fa,$e,o_,pa,ma),s_=Ed(Nr,In,Rt,Or,he),a_=Md(Zt,ur,s_,In,jt,Mt,ki),rf=Xp(ue,vn),c_=Ld(rf,Rt,he),u_=kd(Zt,c_,rf,jt,Mt,Li),h_=Vd(Nr,qu,Rt,Or,he),l_=Gd(Zt,ur,h_,qu,jt,Mt,Li),nf=Qp(ue),d_=$d(Nr,nf,Rt,Or,he),p_=Hd(Zt,ur,d_,nf,ue,jt,Mt,Li),m_=ep(Nr,Ae,Rt,Or,he),f_=tp(Zt,ur,m_,Ae,jt,Mt),g_=tm(bn,Ft,_n,ue),ga=Sm($e,Ae,_n,Em(Ae,Ur)),y_=dp(wn,Rt,Ur,he,ga),b_=Kp(g_),x_=lp(Zt,b_,y_,jt,Mt,Li),A_=ld(ur,ui,In,_n,ue,Uu,Mt,vn),of=new WeakMap,rh=Op(QC,A_,Km,Mt,of,ki),sf=sm(fa,$e,pa,Hu,ma,$u),C_=gm(Nr,sf,Rt,Or,he),__=fm(Zt,ur,sf,C_,jt,Mt,ki),af=Rd(wn),v_=pm(af,Ft,Ae,zu,ci),ya=dm(af,Ft,v_,zu,ci,Sn,vn),S_=cm(dn,Ft,ui,Ae,_n,ya,ue,pn,Uu,ci),cf=am(S_),w_=bm(Nr,ui,In,Ae,cf,Rt,Ur,Or,he,ga),I_=ym(Zt,ur,cf,w_,jt,Mt,Li),T_=um(ze),N_=xm(T_,jt,new WeakSet,qm),O_=lm(ui,Cn,Ae,ya,ue,ci),uf=hm(O_,ue),R_=Om(Nr,uf,Rt,Or,he),M_=Nm(Zt,ur,uf,R_,jt,Mt),E_=km(ya,Rt,he),D_=Dm(Zt,Ft,ya,E_,jt,Mt,Li),hf=vp(Tr),ih=Kd(Tr),lf=new WeakMap,k_=cp(lf,Ur),L_=hf?zl($e,ue,Xd(Tr),ih,Jd(jl),jt,k_,Mt,wo,new WeakMap,new WeakMap,Mm(wo,Ur),Tr):void 0,j_=Cp(Xu,Mt),P_=Fd(Ku,$e,Pd,Zd,new WeakSet,jt,j_,hn,cr,Ju,th),df=Ad(L_,$C,eh,XC,JC,r_,n_,a_,u_,P_,l_,p_,f_,x_,rh,__,I_,N_,M_,D_),F_=Sp(Zt,em,jt,Mt),B_=wp(Zt,rm,jt,Mt),G_=Ip(Zt,im,jt,Mt),V_=nm(Ft,Mt),q_=Tp(Zt,V_,jt),pf=cd(df,Ft,ue,Wu,F_,B_,G_,q_,Sn);var nh=up(of),W_=Zl(nh),mf=Od(ze),U_=Wd(nh),ff=Yd(ze),gf=new WeakMap,z_=rp(gf,Jt),Y_=zp(mf,ze,Ft,ui,Cn,In,Ae,_n,ue,ff,ih,z_,ci),H_=Vp(Ft,Y_,Ae,ue,ci),$_=xd(Nr,mf,wn,ui,Cn,In,Ae,U_,ff,ih,Rt,wo,Ur,Or,he,ga),Z_=sp(lf),X_=wm(gf),oh=hf?yd(W_,Zt,ur,$_,H_,oe,Z_,jt,Mt,wo,Gm,X_,Ym,ki):void 0;var dU=Np(Ft,ue,Wu,rh,Sn);var yf=jd(ue,Ur),bf=Tm(Ku,$e,Zu,nh,ga,hn,Ju,th),pU=Rp($e,Ft,yf,rh,bf);var xf=mm(df,$e,Ft,yf,bf);var Af=mp(un,Xu),Cf=fp(cn,Qu),_f=gp(Ao,Jm),vf=yp(un,Mt);function Xt(i){return i===void 0}function it(i){return i!==void 0}function Sf(i){return typeof i=="function"}function le(i){return typeof i=="number"}function hr(i){return Object.prototype.toString.call(i)==="[object Object]"&&i.constructor===Object}function sh(i){return typeof i=="boolean"}function Vt(i){return Array.isArray(i)}function fe(i){return typeof i=="string"}function Io(i){return fe(i)&&/^([a-g]{1}(?:b|#|x|bb)?)(-?[0-9]+)/i.test(i)}function Y(i,t){if(!i)throw new Error(t)}function zt(i,t,e=1/0){if(!(t<=i&&i<=e))throw new RangeError(`Value must be within [${t}, ${e}], got: ${i}`)}function ba(i){!i.isOffline&&i.state!=="running"&&ji('The AudioContext is "suspended". Invoke Tone.start() from a user action to start the audio.')}var If=!1,wf=!1;function ah(i){If=i}function Tf(i){Xt(i)&&If&&!wf&&(wf=!0,ji("Events scheduled inside of scheduled callbacks should use the passed in scheduling time. See https://github.com/Tonejs/Tone.js/wiki/Accurate-Timing"))}var Nf=console;function Of(...i){Nf.log(...i)}function ji(...i){Nf.warn(...i)}function Rf(i){return new pf(i)}function Mf(i,t,e){return new xf(i,t,e)}var ge=typeof self=="object"?self:null,Ef=ge&&(ge.hasOwnProperty("AudioContext")||ge.hasOwnProperty("webkitAudioContext"));function Df(i,t,e){return Y(it(oh),"AudioWorkletNode only works in a secure context (https or localhost)"),new(i instanceof(ge==null?void 0:ge.BaseAudioContext)?ge==null?void 0:ge.AudioWorkletNode:oh)(i,t,e)}function ye(i,t,e,r){var n=arguments.length,o=n<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(i,t,e,r);else for(var a=i.length-1;a>=0;a--)(s=i[a])&&(o=(n<3?s(o):n>3?s(t,e,o):s(t,e))||o);return n>3&&o&&Object.defineProperty(t,e,o),o}function yt(i,t,e,r){function n(o){return o instanceof e?o:new e(function(s){s(o)})}return new(e||(e=Promise))(function(o,s){function a(h){try{u(r.next(h))}catch(l){s(l)}}function c(h){try{u(r.throw(h))}catch(l){s(l)}}function u(h){h.done?o(h.value):n(h.value).then(a,c)}u((r=r.apply(i,t||[])).next())})}var xa=class{constructor(t,e,r,n){this._callback=t,this._type=e,this._minimumUpdateInterval=Math.max(128/(n||44100),.001),this.updateInterval=r,this._createClock()}_createWorker(){let t=new Blob([`
5
+ // the initial timeout time
6
+ let timeoutTime = ${(this._updateInterval*1e3).toFixed(1)};
7
+ // onmessage callback
8
+ self.onmessage = function(msg){
9
+ timeoutTime = parseInt(msg.data);
10
+ };
11
+ // the tick function which posts a message
12
+ // and schedules a new tick
13
+ function tick(){
14
+ setTimeout(tick, timeoutTime);
15
+ self.postMessage('tick');
16
+ }
17
+ // call tick initially
18
+ tick();
19
+ `],{type:"text/javascript"}),e=URL.createObjectURL(t),r=new Worker(e);r.onmessage=this._callback.bind(this),this._worker=r}_createTimeout(){this._timeout=setTimeout(()=>{this._createTimeout(),this._callback()},this._updateInterval*1e3)}_createClock(){if(this._type==="worker")try{this._createWorker()}catch(t){this._type="timeout",this._createClock()}else this._type==="timeout"&&this._createTimeout()}_disposeClock(){this._timeout&&clearTimeout(this._timeout),this._worker&&(this._worker.terminate(),this._worker.onmessage=null)}get updateInterval(){return this._updateInterval}set updateInterval(t){var e;this._updateInterval=Math.max(t,this._minimumUpdateInterval),this._type==="worker"&&((e=this._worker)===null||e===void 0||e.postMessage(this._updateInterval*1e3))}get type(){return this._type}set type(t){this._disposeClock(),this._type=t,this._createClock()}dispose(){this._disposeClock()}};function lr(i){return _f(i)}function Rr(i){return Cf(i)}function Tn(i){return vf(i)}function hi(i){return Af(i)}function kf(i){return i instanceof eh}function J_(i,t){return i==="value"||lr(t)||Rr(t)||kf(t)}function Ze(i,...t){if(!t.length)return i;let e=t.shift();if(hr(i)&&hr(e))for(let r in e)J_(r,e[r])?i[r]=e[r]:hr(e[r])?(i[r]||Object.assign(i,{[r]:{}}),Ze(i[r],e[r])):Object.assign(i,{[r]:e[r]});return Ze(i,...t)}function Lf(i,t){return i.length===t.length&&i.every((e,r)=>t[r]===e)}function I(i,t,e=[],r){let n={},o=Array.from(t);if(hr(o[0])&&r&&!Reflect.has(o[0],r)&&(Object.keys(o[0]).some(a=>Reflect.has(i,a))||(Ze(n,{[r]:o[0]}),e.splice(e.indexOf(r),1),o.shift())),o.length===1&&hr(o[0]))Ze(n,o[0]);else for(let s=0;s<e.length;s++)it(o[s])&&(n[e[s]]=o[s]);return Ze(i,n)}function jf(i){return i.constructor.getDefaults()}function Pe(i,t){return Xt(i)?t:i}function dr(i,t){return t.forEach(e=>{Reflect.has(i,e)&&delete i[e]}),i}var se=class{constructor(){this.debug=!1,this._wasDisposed=!1}static getDefaults(){return{}}log(...t){(this.debug||ge&&this.toString()===ge.TONE_DEBUG_CLASS)&&Of(this,...t)}dispose(){return this._wasDisposed=!0,this}get disposed(){return this._wasDisposed}toString(){return this.name}};se.version=mo;function zr(i,t){return i>t+1e-6}function To(i,t){return zr(i,t)||Ce(i,t)}function Pi(i,t){return i+1e-6<t}function Ce(i,t){return Math.abs(i-t)<1e-6}function ch(i,t,e){return Math.max(Math.min(i,e),t)}var te=class i extends se{constructor(){super(),this.name="Timeline",this._timeline=[];let t=I(i.getDefaults(),arguments,["memory"]);this.memory=t.memory,this.increasing=t.increasing}static getDefaults(){return{memory:1/0,increasing:!1}}get length(){return this._timeline.length}add(t){if(Y(Reflect.has(t,"time"),"Timeline: events must have a time attribute"),t.time=t.time.valueOf(),this.increasing&&this.length){let e=this._timeline[this.length-1];Y(To(t.time,e.time),"The time must be greater than or equal to the last scheduled time"),this._timeline.push(t)}else{let e=this._search(t.time);this._timeline.splice(e+1,0,t)}if(this.length>this.memory){let e=this.length-this.memory;this._timeline.splice(0,e)}return this}remove(t){let e=this._timeline.indexOf(t);return e!==-1&&this._timeline.splice(e,1),this}get(t,e="time"){let r=this._search(t,e);return r!==-1?this._timeline[r]:null}peek(){return this._timeline[0]}shift(){return this._timeline.shift()}getAfter(t,e="time"){let r=this._search(t,e);return r+1<this._timeline.length?this._timeline[r+1]:null}getBefore(t){let e=this._timeline.length;if(e>0&&this._timeline[e-1].time<t)return this._timeline[e-1];let r=this._search(t);return r-1>=0?this._timeline[r-1]:null}cancel(t){if(this._timeline.length>1){let e=this._search(t);if(e>=0)if(Ce(this._timeline[e].time,t)){for(let r=e;r>=0&&Ce(this._timeline[r].time,t);r--)e=r;this._timeline=this._timeline.slice(0,e)}else this._timeline=this._timeline.slice(0,e+1);else this._timeline=[]}else this._timeline.length===1&&To(this._timeline[0].time,t)&&(this._timeline=[]);return this}cancelBefore(t){let e=this._search(t);return e>=0&&(this._timeline=this._timeline.slice(e+1)),this}previousEvent(t){let e=this._timeline.indexOf(t);return e>0?this._timeline[e-1]:null}_search(t,e="time"){if(this._timeline.length===0)return-1;let r=0,n=this._timeline.length,o=n;if(n>0&&this._timeline[n-1][e]<=t)return n-1;for(;r<o;){let s=Math.floor(r+(o-r)/2),a=this._timeline[s],c=this._timeline[s+1];if(Ce(a[e],t)){for(let u=s;u<this._timeline.length;u++){let h=this._timeline[u];if(Ce(h[e],t))s=u;else break}return s}else{if(Pi(a[e],t)&&zr(c[e],t))return s;zr(a[e],t)?o=s:r=s+1}}return-1}_iterate(t,e=0,r=this._timeline.length-1){this._timeline.slice(e,r+1).forEach(t)}forEach(t){return this._iterate(t),this}forEachBefore(t,e){let r=this._search(t);return r!==-1&&this._iterate(e,0,r),this}forEachAfter(t,e){let r=this._search(t);return this._iterate(e,r+1),this}forEachBetween(t,e,r){let n=this._search(t),o=this._search(e);return n!==-1&&o!==-1?(this._timeline[n].time!==t&&(n+=1),this._timeline[o].time===e&&(o-=1),this._iterate(r,n,o)):n===-1&&this._iterate(r,0,o),this}forEachFrom(t,e){let r=this._search(t);for(;r>=0&&this._timeline[r].time>=t;)r--;return this._iterate(e,r+1),this}forEachAtTime(t,e){let r=this._search(t);if(r!==-1&&Ce(this._timeline[r].time,t)){let n=r;for(let o=r;o>=0&&Ce(this._timeline[o].time,t);o--)n=o;this._iterate(o=>{e(o)},n,r)}return this}dispose(){return super.dispose(),this._timeline=[],this}};var Pf=[];function li(i){Pf.push(i)}function Ff(i){Pf.forEach(t=>t(i))}var Bf=[];function di(i){Bf.push(i)}function Gf(i){Bf.forEach(t=>t(i))}var pi=class i extends se{constructor(){super(...arguments),this.name="Emitter"}on(t,e){return t.split(/\W+/).forEach(n=>{Xt(this._events)&&(this._events={}),this._events.hasOwnProperty(n)||(this._events[n]=[]),this._events[n].push(e)}),this}once(t,e){let r=(...n)=>{e(...n),this.off(t,r)};return this.on(t,r),this}off(t,e){return t.split(/\W+/).forEach(n=>{if(Xt(this._events)&&(this._events={}),this._events.hasOwnProperty(n))if(Xt(e))this._events[n]=[];else{let o=this._events[n];for(let s=o.length-1;s>=0;s--)o[s]===e&&o.splice(s,1)}}),this}emit(t,...e){if(this._events&&this._events.hasOwnProperty(t)){let r=this._events[t].slice(0);for(let n=0,o=r.length;n<o;n++)r[n].apply(this,e)}return this}static mixin(t){["on","once","off","emit"].forEach(e=>{let r=Object.getOwnPropertyDescriptor(i.prototype,e);Object.defineProperty(t.prototype,e,r)})}dispose(){return super.dispose(),this._events=void 0,this}};var Nn=class extends pi{constructor(){super(...arguments),this.isOffline=!1}toJSON(){return{}}};var Fi=class i extends Nn{constructor(){var t,e;super(),this.name="Context",this._constants=new Map,this._timeouts=new te,this._timeoutIds=0,this._initialized=!1,this._closeStarted=!1,this.isOffline=!1,this._workletPromise=null;let r=I(i.getDefaults(),arguments,["context"]);r.context?(this._context=r.context,this._latencyHint=((t=arguments[0])===null||t===void 0?void 0:t.latencyHint)||""):(this._context=Rf({latencyHint:r.latencyHint}),this._latencyHint=r.latencyHint),this._ticker=new xa(this.emit.bind(this,"tick"),r.clockSource,r.updateInterval,this._context.sampleRate),this.on("tick",this._timeoutLoop.bind(this)),this._context.onstatechange=()=>{this.emit("statechange",this.state)},this[!((e=arguments[0])===null||e===void 0)&&e.hasOwnProperty("updateInterval")?"_lookAhead":"lookAhead"]=r.lookAhead}static getDefaults(){return{clockSource:"worker",latencyHint:"interactive",lookAhead:.1,updateInterval:.05}}initialize(){return this._initialized||(Ff(this),this._initialized=!0),this}createAnalyser(){return this._context.createAnalyser()}createOscillator(){return this._context.createOscillator()}createBufferSource(){return this._context.createBufferSource()}createBiquadFilter(){return this._context.createBiquadFilter()}createBuffer(t,e,r){return this._context.createBuffer(t,e,r)}createChannelMerger(t){return this._context.createChannelMerger(t)}createChannelSplitter(t){return this._context.createChannelSplitter(t)}createConstantSource(){return this._context.createConstantSource()}createConvolver(){return this._context.createConvolver()}createDelay(t){return this._context.createDelay(t)}createDynamicsCompressor(){return this._context.createDynamicsCompressor()}createGain(){return this._context.createGain()}createIIRFilter(t,e){return this._context.createIIRFilter(t,e)}createPanner(){return this._context.createPanner()}createPeriodicWave(t,e,r){return this._context.createPeriodicWave(t,e,r)}createStereoPanner(){return this._context.createStereoPanner()}createWaveShaper(){return this._context.createWaveShaper()}createMediaStreamSource(t){return Y(hi(this._context),"Not available if OfflineAudioContext"),this._context.createMediaStreamSource(t)}createMediaElementSource(t){return Y(hi(this._context),"Not available if OfflineAudioContext"),this._context.createMediaElementSource(t)}createMediaStreamDestination(){return Y(hi(this._context),"Not available if OfflineAudioContext"),this._context.createMediaStreamDestination()}decodeAudioData(t){return this._context.decodeAudioData(t)}get currentTime(){return this._context.currentTime}get state(){return this._context.state}get sampleRate(){return this._context.sampleRate}get listener(){return this.initialize(),this._listener}set listener(t){Y(!this._initialized,"The listener cannot be set after initialization."),this._listener=t}get transport(){return this.initialize(),this._transport}set transport(t){Y(!this._initialized,"The transport cannot be set after initialization."),this._transport=t}get draw(){return this.initialize(),this._draw}set draw(t){Y(!this._initialized,"Draw cannot be set after initialization."),this._draw=t}get destination(){return this.initialize(),this._destination}set destination(t){Y(!this._initialized,"The destination cannot be set after initialization."),this._destination=t}createAudioWorkletNode(t,e){return Df(this.rawContext,t,e)}addAudioWorkletModule(t){return yt(this,void 0,void 0,function*(){Y(it(this.rawContext.audioWorklet),"AudioWorkletNode is only available in a secure context (https or localhost)"),this._workletPromise||(this._workletPromise=this.rawContext.audioWorklet.addModule(t)),yield this._workletPromise})}workletsAreReady(){return yt(this,void 0,void 0,function*(){(yield this._workletPromise)?this._workletPromise:Promise.resolve()})}get updateInterval(){return this._ticker.updateInterval}set updateInterval(t){this._ticker.updateInterval=t}get clockSource(){return this._ticker.type}set clockSource(t){this._ticker.type=t}get lookAhead(){return this._lookAhead}set lookAhead(t){this._lookAhead=t,this.updateInterval=t?t/2:.01}get latencyHint(){return this._latencyHint}get rawContext(){return this._context}now(){return this._context.currentTime+this._lookAhead}immediate(){return this._context.currentTime}resume(){return hi(this._context)?this._context.resume():Promise.resolve()}close(){return yt(this,void 0,void 0,function*(){hi(this._context)&&this.state!=="closed"&&!this._closeStarted&&(this._closeStarted=!0,yield this._context.close()),this._initialized&&Gf(this)})}getConstant(t){if(this._constants.has(t))return this._constants.get(t);{let e=this._context.createBuffer(1,128,this._context.sampleRate),r=e.getChannelData(0);for(let o=0;o<r.length;o++)r[o]=t;let n=this._context.createBufferSource();return n.channelCount=1,n.channelCountMode="explicit",n.buffer=e,n.loop=!0,n.start(0),this._constants.set(t,n),n}}dispose(){return super.dispose(),this._ticker.dispose(),this._timeouts.dispose(),Object.keys(this._constants).map(t=>this._constants[t].disconnect()),this.close(),this}_timeoutLoop(){let t=this.now();this._timeouts.forEachBefore(t,e=>{e.callback(),this._timeouts.remove(e)})}setTimeout(t,e){this._timeoutIds++;let r=this.now();return this._timeouts.add({callback:t,id:this._timeoutIds,time:r+e}),this._timeoutIds}clearTimeout(t){return this._timeouts.forEach(e=>{e.id===t&&this._timeouts.remove(e)}),this}clearInterval(t){return this.clearTimeout(t)}setInterval(t,e){let r=++this._timeoutIds,n=()=>{let o=this.now();this._timeouts.add({callback:()=>{t(),n()},id:r,time:o+e})};return n(),r}};var Aa=class extends Nn{constructor(){super(...arguments),this.lookAhead=0,this.latencyHint=0,this.isOffline=!1}createAnalyser(){return{}}createOscillator(){return{}}createBufferSource(){return{}}createBiquadFilter(){return{}}createBuffer(t,e,r){return{}}createChannelMerger(t){return{}}createChannelSplitter(t){return{}}createConstantSource(){return{}}createConvolver(){return{}}createDelay(t){return{}}createDynamicsCompressor(){return{}}createGain(){return{}}createIIRFilter(t,e){return{}}createPanner(){return{}}createPeriodicWave(t,e,r){return{}}createStereoPanner(){return{}}createWaveShaper(){return{}}createMediaStreamSource(t){return{}}createMediaElementSource(t){return{}}createMediaStreamDestination(){return{}}decodeAudioData(t){return Promise.resolve({})}createAudioWorkletNode(t,e){return{}}get rawContext(){return{}}addAudioWorkletModule(t){return yt(this,void 0,void 0,function*(){return Promise.resolve()})}resume(){return Promise.resolve()}setTimeout(t,e){return 0}clearTimeout(t){return this}setInterval(t,e){return 0}clearInterval(t){return this}getConstant(t){return{}}get currentTime(){return 0}get state(){return{}}get sampleRate(){return 0}get listener(){return{}}get transport(){return{}}get draw(){return{}}set draw(t){}get destination(){return{}}set destination(t){}now(){return 0}immediate(){return 0}};function z(i,t){Vt(t)?t.forEach(e=>z(i,e)):Object.defineProperty(i,t,{enumerable:!0,writable:!1})}function Bi(i,t){Vt(t)?t.forEach(e=>Bi(i,e)):Object.defineProperty(i,t,{writable:!0})}var ot=()=>{};var Yt=class i extends se{constructor(){super(),this.name="ToneAudioBuffer",this.onload=ot;let t=I(i.getDefaults(),arguments,["url","onload","onerror"]);this.reverse=t.reverse,this.onload=t.onload,fe(t.url)?this.load(t.url).catch(t.onerror):t.url&&this.set(t.url)}static getDefaults(){return{onerror:ot,onload:ot,reverse:!1}}get sampleRate(){return this._buffer?this._buffer.sampleRate:Qt().sampleRate}set(t){return t instanceof i?t.loaded?this._buffer=t.get():t.onload=()=>{this.set(t),this.onload(this)}:this._buffer=t,this._reversed&&this._reverse(),this}get(){return this._buffer}load(t){return yt(this,void 0,void 0,function*(){let e=i.load(t).then(r=>{this.set(r),this.onload(this)});i.downloads.push(e);try{yield e}finally{let r=i.downloads.indexOf(e);i.downloads.splice(r,1)}return this})}dispose(){return super.dispose(),this._buffer=void 0,this}fromArray(t){let e=Vt(t)&&t[0].length>0,r=e?t.length:1,n=e?t[0].length:t.length,o=Qt(),s=o.createBuffer(r,n,o.sampleRate),a=!e&&r===1?[t]:t;for(let c=0;c<r;c++)s.copyToChannel(a[c],c);return this._buffer=s,this}toMono(t){if(le(t))this.fromArray(this.toArray(t));else{let e=new Float32Array(this.length),r=this.numberOfChannels;for(let n=0;n<r;n++){let o=this.toArray(n);for(let s=0;s<o.length;s++)e[s]+=o[s]}e=e.map(n=>n/r),this.fromArray(e)}return this}toArray(t){if(le(t))return this.getChannelData(t);if(this.numberOfChannels===1)return this.toArray(0);{let e=[];for(let r=0;r<this.numberOfChannels;r++)e[r]=this.getChannelData(r);return e}}getChannelData(t){return this._buffer?this._buffer.getChannelData(t):new Float32Array(0)}slice(t,e=this.duration){Y(this.loaded,"Buffer is not loaded");let r=Math.floor(t*this.sampleRate),n=Math.floor(e*this.sampleRate);Y(r<n,"The start time must be less than the end time");let o=n-r,s=Qt().createBuffer(this.numberOfChannels,o,this.sampleRate);for(let a=0;a<this.numberOfChannels;a++)s.copyToChannel(this.getChannelData(a).subarray(r,n),a);return new i(s)}_reverse(){if(this.loaded)for(let t=0;t<this.numberOfChannels;t++)this.getChannelData(t).reverse();return this}get loaded(){return this.length>0}get duration(){return this._buffer?this._buffer.duration:0}get length(){return this._buffer?this._buffer.length:0}get numberOfChannels(){return this._buffer?this._buffer.numberOfChannels:0}get reverse(){return this._reversed}set reverse(t){this._reversed!==t&&(this._reversed=t,this._reverse())}static fromArray(t){return new i().fromArray(t)}static fromUrl(t){return yt(this,void 0,void 0,function*(){return yield new i().load(t)})}static load(t){return yt(this,void 0,void 0,function*(){let e=i.baseUrl===""||i.baseUrl.endsWith("/")?i.baseUrl:i.baseUrl+"/",r=yield fetch(e+t);if(!r.ok)throw new Error(`could not load url: ${t}`);let n=yield r.arrayBuffer();return yield Qt().decodeAudioData(n)})}static supportsType(t){let e=t.split("."),r=e[e.length-1];return document.createElement("audio").canPlayType("audio/"+r)!==""}static loaded(){return yt(this,void 0,void 0,function*(){for(yield Promise.resolve();i.downloads.length;)yield i.downloads[0]})}};Yt.baseUrl="";Yt.downloads=[];var pr=class extends Fi{constructor(){super({clockSource:"offline",context:Tn(arguments[0])?arguments[0]:Mf(arguments[0],arguments[1]*arguments[2],arguments[2]),lookAhead:0,updateInterval:Tn(arguments[0])?128/arguments[0].sampleRate:128/arguments[2]}),this.name="OfflineContext",this._currentTime=0,this.isOffline=!0,this._duration=Tn(arguments[0])?arguments[0].length/arguments[0].sampleRate:arguments[1]}now(){return this._currentTime}get currentTime(){return this._currentTime}_renderClock(t){return yt(this,void 0,void 0,function*(){let e=0;for(;this._duration-this._currentTime>=0;){this.emit("tick"),this._currentTime+=128/this.sampleRate,e++;let r=Math.floor(this.sampleRate/128);t&&e%r===0&&(yield new Promise(n=>setTimeout(n,1)))}})}render(){return yt(this,arguments,void 0,function*(t=!0){yield this.workletsAreReady(),yield this._renderClock(t);let e=yield this._context.startRendering();return new Yt(e)})}close(){return Promise.resolve()}};var Vf=new Aa,On=Vf;function Qt(){return On===Vf&&Ef&&uh(new Fi),On}function uh(i,t=!1){t&&On.dispose(),hi(i)?On=new Fi(i):Tn(i)?On=new pr(i):On=i}if(ge&&!ge.TONE_SILENCE_LOGGING){let i="v";mo==="dev"&&(i="");let t=` * Tone.js ${i}${mo} * `;console.log(`%c${t}`,"background: #000; color: #fff")}function Rn(i){return Math.pow(10,i/20)}function Mn(i){return 20*(Math.log(i)/Math.LN10)}function Gi(i){return Math.pow(2,i/12)}var Ca=440;function qf(){return Ca}function Wf(i){Ca=i}function mr(i){return Math.round(hh(i))}function hh(i){return 69+12*Math.log2(i/Ca)}function No(i){return Ca*Math.pow(2,(i-69)/12)}var _a=class i extends se{constructor(t,e,r){super(),this.defaultUnits="s",this._val=e,this._units=r,this.context=t,this._expressions=this._getExpressions()}_getExpressions(){return{hz:{method:t=>this._frequencyToUnits(parseFloat(t)),regexp:/^(\d+(?:\.\d+)?)hz$/i},i:{method:t=>this._ticksToUnits(parseInt(t,10)),regexp:/^(\d+)i$/i},m:{method:t=>this._beatsToUnits(parseInt(t,10)*this._getTimeSignature()),regexp:/^(\d+)m$/i},n:{method:(t,e)=>{let r=parseInt(t,10),n=e==="."?1.5:1;return r===1?this._beatsToUnits(this._getTimeSignature())*n:this._beatsToUnits(4/r)*n},regexp:/^(\d+)n(\.?)$/i},number:{method:t=>this._expressions[this.defaultUnits].method.call(this,t),regexp:/^(\d+(?:\.\d+)?)$/},s:{method:t=>this._secondsToUnits(parseFloat(t)),regexp:/^(\d+(?:\.\d+)?)s$/},samples:{method:t=>parseInt(t,10)/this.context.sampleRate,regexp:/^(\d+)samples$/},t:{method:t=>{let e=parseInt(t,10);return this._beatsToUnits(8/(Math.floor(e)*3))},regexp:/^(\d+)t$/i},tr:{method:(t,e,r)=>{let n=0;return t&&t!=="0"&&(n+=this._beatsToUnits(this._getTimeSignature()*parseFloat(t))),e&&e!=="0"&&(n+=this._beatsToUnits(parseFloat(e))),r&&r!=="0"&&(n+=this._beatsToUnits(parseFloat(r)/4)),n},regexp:/^(\d+(?:\.\d+)?):(\d+(?:\.\d+)?):?(\d+(?:\.\d+)?)?$/}}}valueOf(){if(this._val instanceof i&&this.fromType(this._val),Xt(this._val))return this._noArg();if(fe(this._val)&&Xt(this._units)){for(let t in this._expressions)if(this._expressions[t].regexp.test(this._val.trim())){this._units=t;break}}else if(hr(this._val)){let t=0;for(let e in this._val)if(it(this._val[e])){let r=this._val[e],n=new this.constructor(this.context,e).valueOf()*r;t+=n}return t}if(it(this._units)){let t=this._expressions[this._units],e=this._val.toString().trim().match(t.regexp);return e?t.method.apply(this,e.slice(1)):t.method.call(this,this._val)}else return fe(this._val)?parseFloat(this._val):this._val}_frequencyToUnits(t){return 1/t}_beatsToUnits(t){return 60/this._getBpm()*t}_secondsToUnits(t){return t}_ticksToUnits(t){return t*this._beatsToUnits(1)/this._getPPQ()}_noArg(){return this._now()}_getBpm(){return this.context.transport.bpm.value}_getTimeSignature(){return this.context.transport.timeSignature}_getPPQ(){return this.context.transport.PPQ}fromType(t){switch(this._units=void 0,this.defaultUnits){case"s":this._val=t.toSeconds();break;case"i":this._val=t.toTicks();break;case"hz":this._val=t.toFrequency();break;case"midi":this._val=t.toMidi();break}return this}toFrequency(){return 1/this.toSeconds()}toSamples(){return this.toSeconds()*this.context.sampleRate}toMilliseconds(){return this.toSeconds()*1e3}};var Fe=class i extends _a{constructor(){super(...arguments),this.name="TimeClass"}_getExpressions(){return Object.assign(super._getExpressions(),{now:{method:t=>this._now()+new this.constructor(this.context,t).valueOf(),regexp:/^\+(.+)/},quantize:{method:t=>{let e=new i(this.context,t).valueOf();return this._secondsToUnits(this.context.transport.nextSubdivision(e))},regexp:/^@(.+)/}})}quantize(t,e=1){let r=new this.constructor(this.context,t).valueOf(),n=this.valueOf(),a=Math.round(n/r)*r-n;return n+a*e}toNotation(){let t=this.toSeconds(),e=["1m"];for(let o=1;o<9;o++){let s=Math.pow(2,o);e.push(s+"n."),e.push(s+"n"),e.push(s+"t")}e.push("0");let r=e[0],n=new i(this.context,e[0]).toSeconds();return e.forEach(o=>{let s=new i(this.context,o).toSeconds();Math.abs(s-t)<Math.abs(n-t)&&(r=o,n=s)}),r}toBarsBeatsSixteenths(){let t=this._beatsToUnits(1),e=this.valueOf()/t;e=parseFloat(e.toFixed(4));let r=Math.floor(e/this._getTimeSignature()),n=e%1*4;e=Math.floor(e)%this._getTimeSignature();let o=n.toString();return o.length>3&&(n=parseFloat(parseFloat(o).toFixed(3))),[r,e,n].join(":")}toTicks(){let t=this._beatsToUnits(1);return this.valueOf()/t*this._getPPQ()}toSeconds(){return this.valueOf()}toMidi(){return mr(this.toFrequency())}_now(){return this.context.now()}};var _e=class i extends Fe{constructor(){super(...arguments),this.name="Frequency",this.defaultUnits="hz"}static get A4(){return qf()}static set A4(t){Wf(t)}_getExpressions(){return Object.assign({},super._getExpressions(),{midi:{regexp:/^(\d+(?:\.\d+)?midi)/,method(t){return this.defaultUnits==="midi"?t:i.mtof(t)}},note:{regexp:/^([a-g]{1}(?:b|#|##|x|bb|###|#x|x#|bbb)?)(-?[0-9]+)/i,method(t,e){let n=tv[t.toLowerCase()]+(parseInt(e,10)+1)*12;return this.defaultUnits==="midi"?n:i.mtof(n)}},tr:{regexp:/^(\d+(?:\.\d+)?):(\d+(?:\.\d+)?):?(\d+(?:\.\d+)?)?/,method(t,e,r){let n=1;return t&&t!=="0"&&(n*=this._beatsToUnits(this._getTimeSignature()*parseFloat(t))),e&&e!=="0"&&(n*=this._beatsToUnits(parseFloat(e))),r&&r!=="0"&&(n*=this._beatsToUnits(parseFloat(r)/4)),n}}})}transpose(t){return new i(this.context,this.valueOf()*Gi(t))}harmonize(t){return t.map(e=>this.transpose(e))}toMidi(){return mr(this.valueOf())}toNote(){let t=this.toFrequency(),e=Math.log2(t/i.A4),r=Math.round(12*e)+57,n=Math.floor(r/12);return n<0&&(r+=-12*n),ev[r%12]+n.toString()}toSeconds(){return 1/super.toSeconds()}toTicks(){let t=this._beatsToUnits(1),e=this.valueOf()/t;return Math.floor(e*this._getPPQ())}_noArg(){return 0}_frequencyToUnits(t){return t}_ticksToUnits(t){return 1/(t*60/(this._getBpm()*this._getPPQ()))}_beatsToUnits(t){return 1/super._beatsToUnits(t)}_secondsToUnits(t){return 1/t}static mtof(t){return No(t)}static ftom(t){return mr(t)}},tv={cbbb:-3,cbb:-2,cb:-1,c:0,"c#":1,cx:2,"c##":2,"c###":3,"cx#":3,"c#x":3,dbbb:-1,dbb:0,db:1,d:2,"d#":3,dx:4,"d##":4,"d###":5,"dx#":5,"d#x":5,ebbb:1,ebb:2,eb:3,e:4,"e#":5,ex:6,"e##":6,"e###":7,"ex#":7,"e#x":7,fbbb:2,fbb:3,fb:4,f:5,"f#":6,fx:7,"f##":7,"f###":8,"fx#":8,"f#x":8,gbbb:4,gbb:5,gb:6,g:7,"g#":8,gx:9,"g##":9,"g###":10,"gx#":10,"g#x":10,abbb:6,abb:7,ab:8,a:9,"a#":10,ax:11,"a##":11,"a###":12,"ax#":12,"a#x":12,bbbb:8,bbb:9,bb:10,b:11,"b#":12,bx:13,"b##":13,"b###":14,"bx#":14,"b#x":14},ev=["C","C#","D","D#","E","F","F#","G","G#","A","A#","B"];var Xe=class extends Fe{constructor(){super(...arguments),this.name="TransportTime"}_now(){return this.context.transport.seconds}};var ee=class i extends se{constructor(){super();let t=I(i.getDefaults(),arguments,["context"]);this.defaultContext?this.context=this.defaultContext:this.context=t.context}static getDefaults(){return{context:Qt()}}now(){return this.context.currentTime+this.context.lookAhead}immediate(){return this.context.currentTime}get sampleTime(){return 1/this.context.sampleRate}get blockTime(){return 128/this.context.sampleRate}toSeconds(t){return Tf(t),new Fe(this.context,t).toSeconds()}toFrequency(t){return new _e(this.context,t).toFrequency()}toTicks(t){return new Xe(this.context,t).toTicks()}_getPartialProperties(t){let e=this.get();return Object.keys(e).forEach(r=>{Xt(t[r])&&delete e[r]}),e}get(){let t=jf(this);return Object.keys(t).forEach(e=>{if(Reflect.has(this,e)){let r=this[e];it(r)&&it(r.value)&&it(r.setValueAtTime)?t[e]=r.value:r instanceof i?t[e]=r._getPartialProperties(t[e]):Vt(r)||le(r)||fe(r)||sh(r)?t[e]=r:delete t[e]}}),t}set(t){return Object.keys(t).forEach(e=>{Reflect.has(this,e)&&it(this[e])&&(this[e]&&it(this[e].value)&&it(this[e].setValueAtTime)?this[e].value!==t[e]&&(this[e].value=t[e]):this[e]instanceof i?this[e].set(t[e]):this[e]=t[e])}),this}};var Mr=class extends te{constructor(t="stopped"){super(),this.name="StateTimeline",this._initial=t,this.setStateAtTime(this._initial,0)}getValueAtTime(t){let e=this.get(t);return e!==null?e.state:this._initial}setStateAtTime(t,e,r){return zt(e,0),this.add(Object.assign({},r,{state:t,time:e})),this}getLastState(t,e){let r=this._search(e);for(let n=r;n>=0;n--){let o=this._timeline[n];if(o.state===t)return o}}getNextState(t,e){let r=this._search(e);if(r!==-1)for(let n=r;n<this._timeline.length;n++){let o=this._timeline[n];if(o.state===t)return o}}};var ht=class i extends ee{constructor(){let t=I(i.getDefaults(),arguments,["param","units","convert"]);for(super(t),this.name="Param",this.overridden=!1,this._minOutput=1e-7,Y(it(t.param)&&(lr(t.param)||t.param instanceof i),"param must be an AudioParam");!lr(t.param);)t.param=t.param._param;this._swappable=it(t.swappable)?t.swappable:!1,this._swappable?(this.input=this.context.createGain(),this._param=t.param,this.input.connect(this._param)):this._param=this.input=t.param,this._events=new te(1e3),this._initialValue=this._param.defaultValue,this.units=t.units,this.convert=t.convert,this._minValue=t.minValue,this._maxValue=t.maxValue,it(t.value)&&t.value!==this._toType(this._initialValue)&&this.setValueAtTime(t.value,0)}static getDefaults(){return Object.assign(ee.getDefaults(),{convert:!0,units:"number"})}get value(){let t=this.now();return this.getValueAtTime(t)}set value(t){this.cancelScheduledValues(this.now()),this.setValueAtTime(t,this.now())}get minValue(){return it(this._minValue)?this._minValue:this.units==="time"||this.units==="frequency"||this.units==="normalRange"||this.units==="positive"||this.units==="transportTime"||this.units==="ticks"||this.units==="bpm"||this.units==="hertz"||this.units==="samples"?0:this.units==="audioRange"?-1:this.units==="decibels"?-1/0:this._param.minValue}get maxValue(){return it(this._maxValue)?this._maxValue:this.units==="normalRange"||this.units==="audioRange"?1:this._param.maxValue}_is(t,e){return this.units===e}_assertRange(t){return it(this.maxValue)&&it(this.minValue)&&zt(t,this._fromType(this.minValue),this._fromType(this.maxValue)),t}_fromType(t){return this.convert&&!this.overridden?this._is(t,"time")?this.toSeconds(t):this._is(t,"decibels")?Rn(t):this._is(t,"frequency")?this.toFrequency(t):t:this.overridden?0:t}_toType(t){return this.convert&&this.units==="decibels"?Mn(t):t}setValueAtTime(t,e){let r=this.toSeconds(e),n=this._fromType(t);return Y(isFinite(n)&&isFinite(r),`Invalid argument(s) to setValueAtTime: ${JSON.stringify(t)}, ${JSON.stringify(e)}`),this._assertRange(n),this.log(this.units,"setValueAtTime",t,r),this._events.add({time:r,type:"setValueAtTime",value:n}),this._param.setValueAtTime(n,r),this}getValueAtTime(t){let e=Math.max(this.toSeconds(t),0),r=this._events.getAfter(e),n=this._events.get(e),o=this._initialValue;if(n===null)o=this._initialValue;else if(n.type==="setTargetAtTime"&&(r===null||r.type==="setValueAtTime")){let s=this._events.getBefore(n.time),a;s===null?a=this._initialValue:a=s.value,n.type==="setTargetAtTime"&&(o=this._exponentialApproach(n.time,a,n.value,n.constant,e))}else if(r===null)o=n.value;else if(r.type==="linearRampToValueAtTime"||r.type==="exponentialRampToValueAtTime"){let s=n.value;if(n.type==="setTargetAtTime"){let a=this._events.getBefore(n.time);a===null?s=this._initialValue:s=a.value}r.type==="linearRampToValueAtTime"?o=this._linearInterpolate(n.time,s,r.time,r.value,e):o=this._exponentialInterpolate(n.time,s,r.time,r.value,e)}else o=n.value;return this._toType(o)}setRampPoint(t){t=this.toSeconds(t);let e=this.getValueAtTime(t);return this.cancelAndHoldAtTime(t),this._fromType(e)===0&&(e=this._toType(this._minOutput)),this.setValueAtTime(e,t),this}linearRampToValueAtTime(t,e){let r=this._fromType(t),n=this.toSeconds(e);return Y(isFinite(r)&&isFinite(n),`Invalid argument(s) to linearRampToValueAtTime: ${JSON.stringify(t)}, ${JSON.stringify(e)}`),this._assertRange(r),this._events.add({time:n,type:"linearRampToValueAtTime",value:r}),this.log(this.units,"linearRampToValueAtTime",t,n),this._param.linearRampToValueAtTime(r,n),this}exponentialRampToValueAtTime(t,e){let r=this._fromType(t);r=Ce(r,0)?this._minOutput:r,this._assertRange(r);let n=this.toSeconds(e);return Y(isFinite(r)&&isFinite(n),`Invalid argument(s) to exponentialRampToValueAtTime: ${JSON.stringify(t)}, ${JSON.stringify(e)}`),this._events.add({time:n,type:"exponentialRampToValueAtTime",value:r}),this.log(this.units,"exponentialRampToValueAtTime",t,n),this._param.exponentialRampToValueAtTime(r,n),this}exponentialRampTo(t,e,r){return r=this.toSeconds(r),this.setRampPoint(r),this.exponentialRampToValueAtTime(t,r+this.toSeconds(e)),this}linearRampTo(t,e,r){return r=this.toSeconds(r),this.setRampPoint(r),this.linearRampToValueAtTime(t,r+this.toSeconds(e)),this}targetRampTo(t,e,r){return r=this.toSeconds(r),this.setRampPoint(r),this.exponentialApproachValueAtTime(t,r,e),this}exponentialApproachValueAtTime(t,e,r){e=this.toSeconds(e),r=this.toSeconds(r);let n=Math.log(r+1)/Math.log(200);return this.setTargetAtTime(t,e,n),this.cancelAndHoldAtTime(e+r*.9),this.linearRampToValueAtTime(t,e+r),this}setTargetAtTime(t,e,r){let n=this._fromType(t);Y(isFinite(r)&&r>0,"timeConstant must be a number greater than 0");let o=this.toSeconds(e);return this._assertRange(n),Y(isFinite(n)&&isFinite(o),`Invalid argument(s) to setTargetAtTime: ${JSON.stringify(t)}, ${JSON.stringify(e)}`),this._events.add({constant:r,time:o,type:"setTargetAtTime",value:n}),this.log(this.units,"setTargetAtTime",t,o,r),this._param.setTargetAtTime(n,o,r),this}setValueCurveAtTime(t,e,r,n=1){r=this.toSeconds(r),e=this.toSeconds(e);let o=this._fromType(t[0])*n;this.setValueAtTime(this._toType(o),e);let s=r/(t.length-1);for(let a=1;a<t.length;a++){let c=this._fromType(t[a])*n;this.linearRampToValueAtTime(this._toType(c),e+a*s)}return this}cancelScheduledValues(t){let e=this.toSeconds(t);return Y(isFinite(e),`Invalid argument to cancelScheduledValues: ${JSON.stringify(t)}`),this._events.cancel(e),this._param.cancelScheduledValues(e),this.log(this.units,"cancelScheduledValues",e),this}cancelAndHoldAtTime(t){let e=this.toSeconds(t),r=this._fromType(this.getValueAtTime(e));Y(isFinite(e),`Invalid argument to cancelAndHoldAtTime: ${JSON.stringify(t)}`),this.log(this.units,"cancelAndHoldAtTime",e,"value="+r);let n=this._events.get(e),o=this._events.getAfter(e);return n&&Ce(n.time,e)?o?(this._param.cancelScheduledValues(o.time),this._events.cancel(o.time)):(this._param.cancelAndHoldAtTime(e),this._events.cancel(e+this.sampleTime)):o&&(this._param.cancelScheduledValues(o.time),this._events.cancel(o.time),o.type==="linearRampToValueAtTime"?this.linearRampToValueAtTime(this._toType(r),e):o.type==="exponentialRampToValueAtTime"&&this.exponentialRampToValueAtTime(this._toType(r),e)),this._events.add({time:e,type:"setValueAtTime",value:r}),this._param.setValueAtTime(r,e),this}rampTo(t,e=.1,r){return this.units==="frequency"||this.units==="bpm"||this.units==="decibels"?this.exponentialRampTo(t,e,r):this.linearRampTo(t,e,r),this}apply(t){let e=this.context.currentTime;t.setValueAtTime(this.getValueAtTime(e),e);let r=this._events.get(e);if(r&&r.type==="setTargetAtTime"){let n=this._events.getAfter(r.time),o=n?n.time:e+2,s=(o-e)/10;for(let a=e;a<o;a+=s)t.linearRampToValueAtTime(this.getValueAtTime(a),a)}return this._events.forEachAfter(this.context.currentTime,n=>{n.type==="cancelScheduledValues"?t.cancelScheduledValues(n.time):n.type==="setTargetAtTime"?t.setTargetAtTime(n.value,n.time,n.constant):t[n.type](n.value,n.time)}),this}setParam(t){Y(this._swappable,"The Param must be assigned as 'swappable' in the constructor");let e=this.input;return e.disconnect(this._param),this.apply(t),this._param=t,e.connect(this._param),this}dispose(){return super.dispose(),this._events.dispose(),this}get defaultValue(){return this._toType(this._param.defaultValue)}_exponentialApproach(t,e,r,n,o){return r+(e-r)*Math.exp(-(o-t)/n)}_linearInterpolate(t,e,r,n,o){return e+(n-e)*((o-t)/(r-t))}_exponentialInterpolate(t,e,r,n,o){return e*Math.pow(n/e,(o-t)/(r-t))}};var P=class i extends ee{constructor(){super(...arguments),this._internalChannels=[]}get numberOfInputs(){return it(this.input)?lr(this.input)||this.input instanceof ht?1:this.input.numberOfInputs:0}get numberOfOutputs(){return it(this.output)?this.output.numberOfOutputs:0}_isAudioNode(t){return it(t)&&(t instanceof i||Rr(t))}_getInternalNodes(){let t=this._internalChannels.slice(0);return this._isAudioNode(this.input)&&t.push(this.input),this._isAudioNode(this.output)&&this.input!==this.output&&t.push(this.output),t}_setChannelProperties(t){this._getInternalNodes().forEach(r=>{r.channelCount=t.channelCount,r.channelCountMode=t.channelCountMode,r.channelInterpretation=t.channelInterpretation})}_getChannelProperties(){let t=this._getInternalNodes();Y(t.length>0,"ToneAudioNode does not have any internal nodes");let e=t[0];return{channelCount:e.channelCount,channelCountMode:e.channelCountMode,channelInterpretation:e.channelInterpretation}}get channelCount(){return this._getChannelProperties().channelCount}set channelCount(t){let e=this._getChannelProperties();this._setChannelProperties(Object.assign(e,{channelCount:t}))}get channelCountMode(){return this._getChannelProperties().channelCountMode}set channelCountMode(t){let e=this._getChannelProperties();this._setChannelProperties(Object.assign(e,{channelCountMode:t}))}get channelInterpretation(){return this._getChannelProperties().channelInterpretation}set channelInterpretation(t){let e=this._getChannelProperties();this._setChannelProperties(Object.assign(e,{channelInterpretation:t}))}connect(t,e=0,r=0){return de(this,t,e,r),this}toDestination(){return this.connect(this.context.destination),this}toMaster(){return ji("toMaster() has been renamed toDestination()"),this.toDestination()}disconnect(t,e=0,r=0){return Uf(this,t,e,r),this}chain(...t){return Qe(this,...t),this}fan(...t){return t.forEach(e=>this.connect(e)),this}dispose(){return super.dispose(),it(this.input)&&(this.input instanceof i?this.input.dispose():Rr(this.input)&&this.input.disconnect()),it(this.output)&&(this.output instanceof i?this.output.dispose():Rr(this.output)&&this.output.disconnect()),this._internalChannels=[],this}};function Qe(...i){let t=i.shift();i.reduce((e,r)=>(e instanceof P?e.connect(r):Rr(e)&&de(e,r),r),t)}function de(i,t,e=0,r=0){for(Y(it(i),"Cannot connect from undefined node"),Y(it(t),"Cannot connect to undefined node"),(t instanceof P||Rr(t))&&Y(t.numberOfInputs>0,"Cannot connect to node with no inputs"),Y(i.numberOfOutputs>0,"Cannot connect from node with no outputs");t instanceof P||t instanceof ht;)it(t.input)&&(t=t.input);for(;i instanceof P;)it(i.output)&&(i=i.output);lr(t)?i.connect(t,e):i.connect(t,e,r)}function Uf(i,t,e=0,r=0){if(it(t))for(;t instanceof P;)t=t.input;for(;!Rr(i);)it(i.output)&&(i=i.output);lr(t)?i.disconnect(t,e):Rr(t)?i.disconnect(t,e,r):i.disconnect()}var Z=class i extends P{constructor(){let t=I(i.getDefaults(),arguments,["gain","units"]);super(t),this.name="Gain",this._gainNode=this.context.createGain(),this.input=this._gainNode,this.output=this._gainNode,this.gain=new ht({context:this.context,convert:t.convert,param:this._gainNode.gain,units:t.units,value:t.gain,minValue:t.minValue,maxValue:t.maxValue}),z(this,"gain")}static getDefaults(){return Object.assign(P.getDefaults(),{convert:!0,gain:1,units:"gain"})}dispose(){return super.dispose(),this._gainNode.disconnect(),this.gain.dispose(),this}};var fr=class extends P{constructor(t){super(t),this.onended=ot,this._startTime=-1,this._stopTime=-1,this._timeout=-1,this.output=new Z({context:this.context,gain:0}),this._gainNode=this.output,this.getStateAtTime=function(e){let r=this.toSeconds(e);return this._startTime!==-1&&r>=this._startTime&&(this._stopTime===-1||r<=this._stopTime)?"started":"stopped"},this._fadeIn=t.fadeIn,this._fadeOut=t.fadeOut,this._curve=t.curve,this.onended=t.onended}static getDefaults(){return Object.assign(P.getDefaults(),{curve:"linear",fadeIn:0,fadeOut:0,onended:ot})}_startGain(t,e=1){Y(this._startTime===-1,"Source cannot be started more than once");let r=this.toSeconds(this._fadeIn);return this._startTime=t+r,this._startTime=Math.max(this._startTime,this.context.currentTime),r>0?(this._gainNode.gain.setValueAtTime(0,t),this._curve==="linear"?this._gainNode.gain.linearRampToValueAtTime(e,t+r):this._gainNode.gain.exponentialApproachValueAtTime(e,t,r)):this._gainNode.gain.setValueAtTime(e,t),this}stop(t){return this.log("stop",t),this._stopGain(this.toSeconds(t)),this}_stopGain(t){Y(this._startTime!==-1,"'start' must be called before 'stop'"),this.cancelStop();let e=this.toSeconds(this._fadeOut);return this._stopTime=this.toSeconds(t)+e,this._stopTime=Math.max(this._stopTime,this.now()),e>0?this._curve==="linear"?this._gainNode.gain.linearRampTo(0,e,t):this._gainNode.gain.targetRampTo(0,e,t):(this._gainNode.gain.cancelAndHoldAtTime(t),this._gainNode.gain.setValueAtTime(0,t)),this.context.clearTimeout(this._timeout),this._timeout=this.context.setTimeout(()=>{let r=this._curve==="exponential"?e*2:0;this._stopSource(this.now()+r),this._onended()},this._stopTime-this.context.currentTime),this}_onended(){if(this.onended!==ot&&(this.onended(this),this.onended=ot,!this.context.isOffline)){let t=()=>this.dispose();typeof requestIdleCallback!="undefined"?requestIdleCallback(t):setTimeout(t,10)}}get state(){return this.getStateAtTime(this.now())}cancelStop(){return this.log("cancelStop"),Y(this._startTime!==-1,"Source is not started"),this._gainNode.gain.cancelScheduledValues(this._startTime+this.sampleTime),this.context.clearTimeout(this._timeout),this._stopTime=-1,this}dispose(){return super.dispose(),this._gainNode.dispose(),this.onended=ot,this}};var Oo=class i extends fr{constructor(){let t=I(i.getDefaults(),arguments,["offset"]);super(t),this.name="ToneConstantSource",this._source=this.context.createConstantSource(),de(this._source,this._gainNode),this.offset=new ht({context:this.context,convert:t.convert,param:this._source.offset,units:t.units,value:t.offset,minValue:t.minValue,maxValue:t.maxValue})}static getDefaults(){return Object.assign(fr.getDefaults(),{convert:!0,offset:1,units:"number"})}start(t){let e=this.toSeconds(t);return this.log("start",e),this._startGain(e),this._source.start(e),this}_stopSource(t){this._source.stop(t)}dispose(){return super.dispose(),this.state==="started"&&this.stop(),this._source.disconnect(),this.offset.dispose(),this}};var rt=class i extends P{constructor(){let t=I(i.getDefaults(),arguments,["value","units"]);super(t),this.name="Signal",this.override=!0,this.output=this._constantSource=new Oo({context:this.context,convert:t.convert,offset:t.value,units:t.units,minValue:t.minValue,maxValue:t.maxValue}),this._constantSource.start(0),this.input=this._param=this._constantSource.offset}static getDefaults(){return Object.assign(P.getDefaults(),{convert:!0,units:"number",value:0})}connect(t,e=0,r=0){return En(this,t,e,r),this}dispose(){return super.dispose(),this._param.dispose(),this._constantSource.dispose(),this}setValueAtTime(t,e){return this._param.setValueAtTime(t,e),this}getValueAtTime(t){return this._param.getValueAtTime(t)}setRampPoint(t){return this._param.setRampPoint(t),this}linearRampToValueAtTime(t,e){return this._param.linearRampToValueAtTime(t,e),this}exponentialRampToValueAtTime(t,e){return this._param.exponentialRampToValueAtTime(t,e),this}exponentialRampTo(t,e,r){return this._param.exponentialRampTo(t,e,r),this}linearRampTo(t,e,r){return this._param.linearRampTo(t,e,r),this}targetRampTo(t,e,r){return this._param.targetRampTo(t,e,r),this}exponentialApproachValueAtTime(t,e,r){return this._param.exponentialApproachValueAtTime(t,e,r),this}setTargetAtTime(t,e,r){return this._param.setTargetAtTime(t,e,r),this}setValueCurveAtTime(t,e,r,n){return this._param.setValueCurveAtTime(t,e,r,n),this}cancelScheduledValues(t){return this._param.cancelScheduledValues(t),this}cancelAndHoldAtTime(t){return this._param.cancelAndHoldAtTime(t),this}rampTo(t,e,r){return this._param.rampTo(t,e,r),this}get value(){return this._param.value}set value(t){this._param.value=t}get convert(){return this._param.convert}set convert(t){this._param.convert=t}get units(){return this._param.units}get overridden(){return this._param.overridden}set overridden(t){this._param.overridden=t}get maxValue(){return this._param.maxValue}get minValue(){return this._param.minValue}apply(t){return this._param.apply(t),this}};function En(i,t,e,r){(t instanceof ht||lr(t)||t instanceof rt&&t.override)&&(t.cancelScheduledValues(0),t.setValueAtTime(0,0),t instanceof rt&&(t.overridden=!0)),de(i,t,e,r)}var va=class i extends ht{constructor(){let t=I(i.getDefaults(),arguments,["value"]);super(t),this.name="TickParam",this._events=new te(1/0),this._multiplier=1,this._multiplier=t.multiplier,this._events.cancel(0),this._events.add({ticks:0,time:0,type:"setValueAtTime",value:this._fromType(t.value)}),this.setValueAtTime(t.value,0)}static getDefaults(){return Object.assign(ht.getDefaults(),{multiplier:1,units:"hertz",value:1})}setTargetAtTime(t,e,r){e=this.toSeconds(e),this.setRampPoint(e);let n=this._fromType(t),o=this._events.get(e),s=Math.round(Math.max(1/r,1));for(let a=0;a<=s;a++){let c=r*a+e,u=this._exponentialApproach(o.time,o.value,n,r,c);this.linearRampToValueAtTime(this._toType(u),c)}return this}setValueAtTime(t,e){let r=this.toSeconds(e);super.setValueAtTime(t,e);let n=this._events.get(r),o=this._events.previousEvent(n),s=this._getTicksUntilEvent(o,r);return n.ticks=Math.max(s,0),this}linearRampToValueAtTime(t,e){let r=this.toSeconds(e);super.linearRampToValueAtTime(t,e);let n=this._events.get(r),o=this._events.previousEvent(n),s=this._getTicksUntilEvent(o,r);return n.ticks=Math.max(s,0),this}exponentialRampToValueAtTime(t,e){e=this.toSeconds(e);let r=this._fromType(t),n=this._events.get(e),o=Math.round(Math.max((e-n.time)*10,1)),s=(e-n.time)/o;for(let a=0;a<=o;a++){let c=s*a+n.time,u=this._exponentialInterpolate(n.time,n.value,e,r,c);this.linearRampToValueAtTime(this._toType(u),c)}return this}_getTicksUntilEvent(t,e){if(t===null)t={ticks:0,time:0,type:"setValueAtTime",value:0};else if(Xt(t.ticks)){let s=this._events.previousEvent(t);t.ticks=this._getTicksUntilEvent(s,t.time)}let r=this._fromType(this.getValueAtTime(t.time)),n=this._fromType(this.getValueAtTime(e)),o=this._events.get(e);return o&&o.time===e&&o.type==="setValueAtTime"&&(n=this._fromType(this.getValueAtTime(e-this.sampleTime))),.5*(e-t.time)*(r+n)+t.ticks}getTicksAtTime(t){let e=this.toSeconds(t),r=this._events.get(e);return Math.max(this._getTicksUntilEvent(r,e),0)}getDurationOfTicks(t,e){let r=this.toSeconds(e),n=this.getTicksAtTime(e);return this.getTimeOfTick(n+t)-r}getTimeOfTick(t){let e=this._events.get(t,"ticks"),r=this._events.getAfter(t,"ticks");if(e&&e.ticks===t)return e.time;if(e&&r&&r.type==="linearRampToValueAtTime"&&e.value!==r.value){let n=this._fromType(this.getValueAtTime(e.time)),s=(this._fromType(this.getValueAtTime(r.time))-n)/(r.time-e.time),a=Math.sqrt(Math.pow(n,2)-2*s*(e.ticks-t)),c=(-n+a)/s,u=(-n-a)/s;return(c>0?c:u)+e.time}else return e?e.value===0?1/0:e.time+(t-e.ticks)/e.value:t/this._initialValue}ticksToTime(t,e){return this.getDurationOfTicks(t,e)}timeToTicks(t,e){let r=this.toSeconds(e),n=this.toSeconds(t),o=this.getTicksAtTime(r);return this.getTicksAtTime(r+n)-o}_fromType(t){return this.units==="bpm"&&this.multiplier?1/(60/t/this.multiplier):super._fromType(t)}_toType(t){return this.units==="bpm"&&this.multiplier?t/this.multiplier*60:super._toType(t)}get multiplier(){return this._multiplier}set multiplier(t){let e=this.value;this._multiplier=t,this.cancelScheduledValues(0),this.setValueAtTime(e,0)}};var Sa=class i extends rt{constructor(){let t=I(i.getDefaults(),arguments,["value"]);super(t),this.name="TickSignal",this.input=this._param=new va({context:this.context,convert:t.convert,multiplier:t.multiplier,param:this._constantSource.offset,units:t.units,value:t.value})}static getDefaults(){return Object.assign(rt.getDefaults(),{multiplier:1,units:"hertz",value:1})}ticksToTime(t,e){return this._param.ticksToTime(t,e)}timeToTicks(t,e){return this._param.timeToTicks(t,e)}getTimeOfTick(t){return this._param.getTimeOfTick(t)}getDurationOfTicks(t,e){return this._param.getDurationOfTicks(t,e)}getTicksAtTime(t){return this._param.getTicksAtTime(t)}get multiplier(){return this._param.multiplier}set multiplier(t){this._param.multiplier=t}dispose(){return super.dispose(),this._param.dispose(),this}};var wa=class i extends ee{constructor(){let t=I(i.getDefaults(),arguments,["frequency"]);super(t),this.name="TickSource",this._state=new Mr,this._tickOffset=new te,this._ticksAtTime=new te,this._secondsAtTime=new te,this.frequency=new Sa({context:this.context,units:t.units,value:t.frequency}),z(this,"frequency"),this._state.setStateAtTime("stopped",0),this.setTicksAtTime(0,0)}static getDefaults(){return Object.assign({frequency:1,units:"hertz"},ee.getDefaults())}get state(){return this.getStateAtTime(this.now())}start(t,e){let r=this.toSeconds(t);return this._state.getValueAtTime(r)!=="started"&&(this._state.setStateAtTime("started",r),it(e)&&this.setTicksAtTime(e,r),this._ticksAtTime.cancel(r),this._secondsAtTime.cancel(r)),this}stop(t){let e=this.toSeconds(t);if(this._state.getValueAtTime(e)==="stopped"){let r=this._state.get(e);r&&r.time>0&&(this._tickOffset.cancel(r.time),this._state.cancel(r.time))}return this._state.cancel(e),this._state.setStateAtTime("stopped",e),this.setTicksAtTime(0,e),this._ticksAtTime.cancel(e),this._secondsAtTime.cancel(e),this}pause(t){let e=this.toSeconds(t);return this._state.getValueAtTime(e)==="started"&&(this._state.setStateAtTime("paused",e),this._ticksAtTime.cancel(e),this._secondsAtTime.cancel(e)),this}cancel(t){return t=this.toSeconds(t),this._state.cancel(t),this._tickOffset.cancel(t),this._ticksAtTime.cancel(t),this._secondsAtTime.cancel(t),this}getTicksAtTime(t){let e=this.toSeconds(t),r=this._state.getLastState("stopped",e),n=this._ticksAtTime.get(e),o={state:"paused",time:e};this._state.add(o);let s=n||r,a=n?n.ticks:0,c=null;return this._state.forEachBetween(s.time,e+this.sampleTime,u=>{let h=s.time,l=this._tickOffset.get(u.time);l&&l.time>=s.time&&(a=l.ticks,h=l.time),s.state==="started"&&u.state!=="started"&&(a+=this.frequency.getTicksAtTime(u.time)-this.frequency.getTicksAtTime(h),u.time!==o.time&&(c={state:u.state,time:u.time,ticks:a})),s=u}),this._state.remove(o),c&&this._ticksAtTime.add(c),a}get ticks(){return this.getTicksAtTime(this.now())}set ticks(t){this.setTicksAtTime(t,this.now())}get seconds(){return this.getSecondsAtTime(this.now())}set seconds(t){let e=this.now(),r=this.frequency.timeToTicks(t,e);this.setTicksAtTime(r,e)}getSecondsAtTime(t){t=this.toSeconds(t);let e=this._state.getLastState("stopped",t),r={state:"paused",time:t};this._state.add(r);let n=this._secondsAtTime.get(t),o=n||e,s=n?n.seconds:0,a=null;return this._state.forEachBetween(o.time,t+this.sampleTime,c=>{let u=o.time,h=this._tickOffset.get(c.time);h&&h.time>=o.time&&(s=h.seconds,u=h.time),o.state==="started"&&c.state!=="started"&&(s+=c.time-u,c.time!==r.time&&(a={state:c.state,time:c.time,seconds:s})),o=c}),this._state.remove(r),a&&this._secondsAtTime.add(a),s}setTicksAtTime(t,e){return e=this.toSeconds(e),this._tickOffset.cancel(e),this._tickOffset.add({seconds:this.frequency.getDurationOfTicks(t,e),ticks:t,time:e}),this._ticksAtTime.cancel(e),this._secondsAtTime.cancel(e),this}getStateAtTime(t){return t=this.toSeconds(t),this._state.getValueAtTime(t)}getTimeOfTick(t,e=this.now()){let r=this._tickOffset.get(e),n=this._state.get(e),o=Math.max(r.time,n.time),s=this.frequency.getTicksAtTime(o)+t-r.ticks;return this.frequency.getTimeOfTick(s)}forEachTickBetween(t,e,r){let n=this._state.get(t);this._state.forEachBetween(t,e,s=>{n&&n.state==="started"&&s.state!=="started"&&this.forEachTickBetween(Math.max(n.time,t),s.time-this.sampleTime,r),n=s});let o=null;if(n&&n.state==="started"){let s=Math.max(n.time,t),a=this.frequency.getTicksAtTime(s),c=this.frequency.getTicksAtTime(n.time),u=a-c,h=Math.ceil(u)-u;h=Ce(h,1)?0:h;let l=this.frequency.getTimeOfTick(a+h);for(;l<e;){try{r(l,Math.round(this.getTicksAtTime(l)))}catch(p){o=p;break}l+=this.frequency.getDurationOfTicks(1,l)}}if(o)throw o;return this}dispose(){return super.dispose(),this._state.dispose(),this._tickOffset.dispose(),this._ticksAtTime.dispose(),this._secondsAtTime.dispose(),this.frequency.dispose(),this}};var Dn=class i extends ee{constructor(){let t=I(i.getDefaults(),arguments,["callback","frequency"]);super(t),this.name="Clock",this.callback=ot,this._lastUpdate=0,this._state=new Mr("stopped"),this._boundLoop=this._loop.bind(this),this.callback=t.callback,this._tickSource=new wa({context:this.context,frequency:t.frequency,units:t.units}),this._lastUpdate=0,this.frequency=this._tickSource.frequency,z(this,"frequency"),this._state.setStateAtTime("stopped",0),this.context.on("tick",this._boundLoop)}static getDefaults(){return Object.assign(ee.getDefaults(),{callback:ot,frequency:1,units:"hertz"})}get state(){return this._state.getValueAtTime(this.now())}start(t,e){ba(this.context);let r=this.toSeconds(t);return this.log("start",r),this._state.getValueAtTime(r)!=="started"&&(this._state.setStateAtTime("started",r),this._tickSource.start(r,e),r<this._lastUpdate&&this.emit("start",r,e)),this}stop(t){let e=this.toSeconds(t);return this.log("stop",e),this._state.cancel(e),this._state.setStateAtTime("stopped",e),this._tickSource.stop(e),e<this._lastUpdate&&this.emit("stop",e),this}pause(t){let e=this.toSeconds(t);return this._state.getValueAtTime(e)==="started"&&(this._state.setStateAtTime("paused",e),this._tickSource.pause(e),e<this._lastUpdate&&this.emit("pause",e)),this}get ticks(){return Math.ceil(this.getTicksAtTime(this.now()))}set ticks(t){this._tickSource.ticks=t}get seconds(){return this._tickSource.seconds}set seconds(t){this._tickSource.seconds=t}getSecondsAtTime(t){return this._tickSource.getSecondsAtTime(t)}setTicksAtTime(t,e){return this._tickSource.setTicksAtTime(t,e),this}getTimeOfTick(t,e=this.now()){return this._tickSource.getTimeOfTick(t,e)}getTicksAtTime(t){return this._tickSource.getTicksAtTime(t)}nextTickTime(t,e){let r=this.toSeconds(e),n=this.getTicksAtTime(r);return this._tickSource.getTimeOfTick(n+t,r)}_loop(){let t=this._lastUpdate,e=this.now();this._lastUpdate=e,this.log("loop",t,e),t!==e&&(this._state.forEachBetween(t,e,r=>{switch(r.state){case"started":let n=this._tickSource.getTicksAtTime(r.time);this.emit("start",r.time,n);break;case"stopped":r.time!==0&&this.emit("stop",r.time);break;case"paused":this.emit("pause",r.time);break}}),this._tickSource.forEachTickBetween(t,e,(r,n)=>{this.callback(r,n)}))}getStateAtTime(t){let e=this.toSeconds(t);return this._state.getValueAtTime(e)}dispose(){return super.dispose(),this.context.off("tick",this._boundLoop),this._tickSource.dispose(),this._state.dispose(),this}};pi.mixin(Dn);var Ke=class i extends P{constructor(){let t=I(i.getDefaults(),arguments,["volume"]);super(t),this.name="Volume",this.input=this.output=new Z({context:this.context,gain:t.volume,units:"decibels"}),this.volume=this.output.gain,z(this,"volume"),this._unmutedVolume=t.volume,this.mute=t.mute}static getDefaults(){return Object.assign(P.getDefaults(),{mute:!1,volume:0})}get mute(){return this.volume.value===-1/0}set mute(t){!this.mute&&t?(this._unmutedVolume=this.volume.value,this.volume.value=-1/0):this.mute&&!t&&(this.volume.value=this._unmutedVolume)}dispose(){return super.dispose(),this.input.dispose(),this.volume.dispose(),this}};var lh=class i extends P{constructor(){let t=I(i.getDefaults(),arguments);super(t),this.name="Destination",this.input=new Ke({context:this.context}),this.output=new Z({context:this.context}),this.volume=this.input.volume,Qe(this.input,this.output,this.context.rawContext.destination),this.mute=t.mute,this._internalChannels=[this.input,this.context.rawContext.destination,this.output]}static getDefaults(){return Object.assign(P.getDefaults(),{mute:!1,volume:0})}get mute(){return this.input.mute}set mute(t){this.input.mute=t}chain(...t){return this.input.disconnect(),t.unshift(this.input),t.push(this.output),Qe(...t),this}get maxChannelCount(){return this.context.rawContext.destination.maxChannelCount}dispose(){return super.dispose(),this.volume.dispose(),this}};li(i=>{i.destination=new lh({context:i})});di(i=>{i.destination.dispose()});var dh=class extends P{constructor(){super(...arguments),this.name="Listener",this.positionX=new ht({context:this.context,param:this.context.rawContext.listener.positionX}),this.positionY=new ht({context:this.context,param:this.context.rawContext.listener.positionY}),this.positionZ=new ht({context:this.context,param:this.context.rawContext.listener.positionZ}),this.forwardX=new ht({context:this.context,param:this.context.rawContext.listener.forwardX}),this.forwardY=new ht({context:this.context,param:this.context.rawContext.listener.forwardY}),this.forwardZ=new ht({context:this.context,param:this.context.rawContext.listener.forwardZ}),this.upX=new ht({context:this.context,param:this.context.rawContext.listener.upX}),this.upY=new ht({context:this.context,param:this.context.rawContext.listener.upY}),this.upZ=new ht({context:this.context,param:this.context.rawContext.listener.upZ})}static getDefaults(){return Object.assign(P.getDefaults(),{positionX:0,positionY:0,positionZ:0,forwardX:0,forwardY:0,forwardZ:-1,upX:0,upY:1,upZ:0})}dispose(){return super.dispose(),this.positionX.dispose(),this.positionY.dispose(),this.positionZ.dispose(),this.forwardX.dispose(),this.forwardY.dispose(),this.forwardZ.dispose(),this.upX.dispose(),this.upY.dispose(),this.upZ.dispose(),this}};li(i=>{i.listener=new dh({context:i})});di(i=>{i.listener.dispose()});var kn=class i extends se{constructor(){super(),this.name="ToneAudioBuffers",this._buffers=new Map,this._loadingCount=0;let t=I(i.getDefaults(),arguments,["urls","onload","baseUrl"],"urls");this.baseUrl=t.baseUrl,Object.keys(t.urls).forEach(e=>{this._loadingCount++;let r=t.urls[e];this.add(e,r,this._bufferLoaded.bind(this,t.onload),t.onerror)})}static getDefaults(){return{baseUrl:"",onerror:ot,onload:ot,urls:{}}}has(t){return this._buffers.has(t.toString())}get(t){return Y(this.has(t),`ToneAudioBuffers has no buffer named: ${t}`),this._buffers.get(t.toString())}_bufferLoaded(t){this._loadingCount--,this._loadingCount===0&&t&&t()}get loaded(){return Array.from(this._buffers).every(([t,e])=>e.loaded)}add(t,e,r=ot,n=ot){return fe(e)?(this.baseUrl&&e.trim().substring(0,11).toLowerCase()==="data:audio/"&&(this.baseUrl=""),this._buffers.set(t.toString(),new Yt(this.baseUrl+e,r,n))):this._buffers.set(t.toString(),new Yt(e,r,n)),this}dispose(){return super.dispose(),this._buffers.forEach(t=>t.dispose()),this._buffers.clear(),this}};var Ro=class i extends _e{constructor(){super(...arguments),this.name="MidiClass",this.defaultUnits="midi"}_frequencyToUnits(t){return mr(super._frequencyToUnits(t))}_ticksToUnits(t){return mr(super._ticksToUnits(t))}_beatsToUnits(t){return mr(super._beatsToUnits(t))}_secondsToUnits(t){return mr(super._secondsToUnits(t))}toMidi(){return this.valueOf()}toFrequency(){return No(this.toMidi())}transpose(t){return new i(this.context,this.toMidi()+t)}};var Be=class extends Xe{constructor(){super(...arguments),this.name="Ticks",this.defaultUnits="i"}_now(){return this.context.transport.ticks}_beatsToUnits(t){return this._getPPQ()*t}_secondsToUnits(t){return Math.floor(t/(60/this._getBpm())*this._getPPQ())}_ticksToUnits(t){return t}toTicks(){return this.valueOf()}toSeconds(){return this.valueOf()/this._getPPQ()*(60/this._getBpm())}};var ph=class extends ee{constructor(){super(...arguments),this.name="Draw",this.expiration=.25,this.anticipation=.008,this._events=new te,this._boundDrawLoop=this._drawLoop.bind(this),this._animationFrame=-1}schedule(t,e){return this._events.add({callback:t,time:this.toSeconds(e)}),this._events.length===1&&(this._animationFrame=requestAnimationFrame(this._boundDrawLoop)),this}cancel(t){return this._events.cancel(this.toSeconds(t)),this}_drawLoop(){let t=this.context.currentTime;this._events.forEachBefore(t+this.anticipation,e=>{t-e.time<=this.expiration&&e.callback(),this._events.remove(e)}),this._events.length>0&&(this._animationFrame=requestAnimationFrame(this._boundDrawLoop))}dispose(){return super.dispose(),this._events.dispose(),cancelAnimationFrame(this._animationFrame),this}};li(i=>{i.draw=new ph({context:i})});di(i=>{i.draw.dispose()});var Ia=class extends se{constructor(){super(...arguments),this.name="IntervalTimeline",this._root=null,this._length=0}add(t){Y(it(t.time),"Events must have a time property"),Y(it(t.duration),"Events must have a duration parameter"),t.time=t.time.valueOf();let e=new mh(t.time,t.time+t.duration,t);for(this._root===null?this._root=e:this._root.insert(e),this._length++;e!==null;)e.updateHeight(),e.updateMax(),this._rebalance(e),e=e.parent;return this}remove(t){if(this._root!==null){let e=[];this._root.search(t.time,e);for(let r of e)if(r.event===t){this._removeNode(r),this._length--;break}}return this}get length(){return this._length}cancel(t){return this.forEachFrom(t,e=>this.remove(e)),this}_setRoot(t){this._root=t,this._root!==null&&(this._root.parent=null)}_replaceNodeInParent(t,e){t.parent!==null?(t.isLeftChild()?t.parent.left=e:t.parent.right=e,this._rebalance(t.parent)):this._setRoot(e)}_removeNode(t){if(t.left===null&&t.right===null)this._replaceNodeInParent(t,null);else if(t.right===null)this._replaceNodeInParent(t,t.left);else if(t.left===null)this._replaceNodeInParent(t,t.right);else{let e=t.getBalance(),r,n=null;if(e>0)if(t.left.right===null)r=t.left,r.right=t.right,n=r;else{for(r=t.left.right;r.right!==null;)r=r.right;r.parent&&(r.parent.right=r.left,n=r.parent,r.left=t.left,r.right=t.right)}else if(t.right.left===null)r=t.right,r.left=t.left,n=r;else{for(r=t.right.left;r.left!==null;)r=r.left;r.parent&&(r.parent.left=r.right,n=r.parent,r.left=t.left,r.right=t.right)}t.parent!==null?t.isLeftChild()?t.parent.left=r:t.parent.right=r:this._setRoot(r),n&&this._rebalance(n)}t.dispose()}_rotateLeft(t){let e=t.parent,r=t.isLeftChild(),n=t.right;n&&(t.right=n.left,n.left=t),e!==null?r?e.left=n:e.right=n:this._setRoot(n)}_rotateRight(t){let e=t.parent,r=t.isLeftChild(),n=t.left;n&&(t.left=n.right,n.right=t),e!==null?r?e.left=n:e.right=n:this._setRoot(n)}_rebalance(t){let e=t.getBalance();e>1&&t.left?t.left.getBalance()<0?this._rotateLeft(t.left):this._rotateRight(t):e<-1&&t.right&&(t.right.getBalance()>0?this._rotateRight(t.right):this._rotateLeft(t))}get(t){if(this._root!==null){let e=[];if(this._root.search(t,e),e.length>0){let r=e[0];for(let n=1;n<e.length;n++)e[n].low>r.low&&(r=e[n]);return r.event}}return null}forEach(t){if(this._root!==null){let e=[];this._root.traverse(r=>e.push(r)),e.forEach(r=>{r.event&&t(r.event)})}return this}forEachAtTime(t,e){if(this._root!==null){let r=[];this._root.search(t,r),r.forEach(n=>{n.event&&e(n.event)})}return this}forEachFrom(t,e){if(this._root!==null){let r=[];this._root.searchAfter(t,r),r.forEach(n=>{n.event&&e(n.event)})}return this}dispose(){return super.dispose(),this._root!==null&&this._root.traverse(t=>t.dispose()),this._root=null,this}},mh=class{constructor(t,e,r){this._left=null,this._right=null,this.parent=null,this.height=0,this.event=r,this.low=t,this.high=e,this.max=this.high}insert(t){t.low<=this.low?this.left===null?this.left=t:this.left.insert(t):this.right===null?this.right=t:this.right.insert(t)}search(t,e){t>this.max||(this.left!==null&&this.left.search(t,e),this.low<=t&&this.high>t&&e.push(this),!(this.low>t)&&this.right!==null&&this.right.search(t,e))}searchAfter(t,e){this.low>=t&&(e.push(this),this.left!==null&&this.left.searchAfter(t,e)),this.right!==null&&this.right.searchAfter(t,e)}traverse(t){t(this),this.left!==null&&this.left.traverse(t),this.right!==null&&this.right.traverse(t)}updateHeight(){this.left!==null&&this.right!==null?this.height=Math.max(this.left.height,this.right.height)+1:this.right!==null?this.height=this.right.height+1:this.left!==null?this.height=this.left.height+1:this.height=0}updateMax(){this.max=this.high,this.left!==null&&(this.max=Math.max(this.max,this.left.max)),this.right!==null&&(this.max=Math.max(this.max,this.right.max))}getBalance(){let t=0;return this.left!==null&&this.right!==null?t=this.left.height-this.right.height:this.left!==null?t=this.left.height+1:this.right!==null&&(t=-(this.right.height+1)),t}isLeftChild(){return this.parent!==null&&this.parent.left===this}get left(){return this._left}set left(t){this._left=t,t!==null&&(t.parent=this),this.updateHeight(),this.updateMax()}get right(){return this._right}set right(t){this._right=t,t!==null&&(t.parent=this),this.updateHeight(),this.updateMax()}dispose(){this.parent=null,this._left=null,this._right=null,this.event=null}};var Ta=class extends se{constructor(t){super(),this.name="TimelineValue",this._timeline=new te({memory:10}),this._initialValue=t}set(t,e){return this._timeline.add({value:t,time:e}),this}get(t){let e=this._timeline.get(t);return e?e.value:this._initialValue}};var be=class i extends P{constructor(){super(I(i.getDefaults(),arguments,["context"]))}connect(t,e=0,r=0){return En(this,t,e,r),this}};var Ne=class i extends be{constructor(){let t=I(i.getDefaults(),arguments,["mapping","length"]);super(t),this.name="WaveShaper",this._shaper=this.context.createWaveShaper(),this.input=this._shaper,this.output=this._shaper,Vt(t.mapping)||t.mapping instanceof Float32Array?this.curve=Float32Array.from(t.mapping):Sf(t.mapping)&&this.setMap(t.mapping,t.length)}static getDefaults(){return Object.assign(rt.getDefaults(),{length:1024})}setMap(t,e=1024){let r=new Float32Array(e);for(let n=0,o=e;n<o;n++){let s=n/(o-1)*2-1;r[n]=t(s,n)}return this.curve=r,this}get curve(){return this._shaper.curve}set curve(t){this._shaper.curve=t}get oversample(){return this._shaper.oversample}set oversample(t){let e=["none","2x","4x"].some(r=>r.includes(t));Y(e,"oversampling must be either 'none', '2x', or '4x'"),this._shaper.oversample=t}dispose(){return super.dispose(),this._shaper.disconnect(),this}};var Ln=class i extends be{constructor(){let t=I(i.getDefaults(),arguments,["value"]);super(t),this.name="Pow",this._exponentScaler=this.input=this.output=new Ne({context:this.context,mapping:this._expFunc(t.value),length:8192}),this._exponent=t.value}static getDefaults(){return Object.assign(be.getDefaults(),{value:1})}_expFunc(t){return e=>Math.pow(Math.abs(e),t)}get value(){return this._exponent}set value(t){this._exponent=t,this._exponentScaler.setMap(this._expFunc(this._exponent))}dispose(){return super.dispose(),this._exponentScaler.dispose(),this}};var Yr=class i{constructor(t,e){this.id=i._eventId++,this._remainderTime=0;let r=Object.assign(i.getDefaults(),e);this.transport=t,this.callback=r.callback,this._once=r.once,this.time=Math.floor(r.time),this._remainderTime=r.time-this.time}static getDefaults(){return{callback:ot,once:!1,time:0}}get floatTime(){return this.time+this._remainderTime}invoke(t){if(this.callback){let e=this.transport.bpm.getDurationOfTicks(1,t);this.callback(t+this._remainderTime*e),this._once&&this.transport.clear(this.id)}}dispose(){return this.callback=void 0,this}};Yr._eventId=0;var Na=class i extends Yr{constructor(t,e){super(t,e),this._currentId=-1,this._nextId=-1,this._nextTick=this.time,this._boundRestart=this._restart.bind(this);let r=Object.assign(i.getDefaults(),e);this.duration=r.duration,this._interval=r.interval,this._nextTick=r.time,this.transport.on("start",this._boundRestart),this.transport.on("loopStart",this._boundRestart),this.transport.on("ticks",this._boundRestart),this.context=this.transport.context,this._restart()}static getDefaults(){return Object.assign({},Yr.getDefaults(),{duration:1/0,interval:1,once:!1})}invoke(t){this._createEvents(t),super.invoke(t)}_createEvent(){return Pi(this._nextTick,this.floatTime+this.duration)?this.transport.scheduleOnce(this.invoke.bind(this),new Be(this.context,this._nextTick).toSeconds()):-1}_createEvents(t){Pi(this._nextTick+this._interval,this.floatTime+this.duration)&&(this._nextTick+=this._interval,this._currentId=this._nextId,this._nextId=this.transport.scheduleOnce(this.invoke.bind(this),new Be(this.context,this._nextTick).toSeconds()))}_restart(t){this.transport.clear(this._currentId),this.transport.clear(this._nextId),this._nextTick=this.floatTime;let e=this.transport.getTicksAtTime(t);zr(e,this.time)&&(this._nextTick=this.floatTime+Math.ceil((e-this.floatTime)/this._interval)*this._interval),this._currentId=this._createEvent(),this._nextTick+=this._interval,this._nextId=this._createEvent()}dispose(){return super.dispose(),this.transport.clear(this._currentId),this.transport.clear(this._nextId),this.transport.off("start",this._boundRestart),this.transport.off("loopStart",this._boundRestart),this.transport.off("ticks",this._boundRestart),this}};var Oa=class i extends ee{constructor(){let t=I(i.getDefaults(),arguments);super(t),this.name="Transport",this._loop=new Ta(!1),this._loopStart=0,this._loopEnd=0,this._scheduledEvents={},this._timeline=new te,this._repeatedEvents=new Ia,this._syncedSignals=[],this._swingAmount=0,this._ppq=t.ppq,this._clock=new Dn({callback:this._processTick.bind(this),context:this.context,frequency:0,units:"bpm"}),this._bindClockEvents(),this.bpm=this._clock.frequency,this._clock.frequency.multiplier=t.ppq,this.bpm.setValueAtTime(t.bpm,0),z(this,"bpm"),this._timeSignature=t.timeSignature,this._swingTicks=t.ppq/2}static getDefaults(){return Object.assign(ee.getDefaults(),{bpm:120,loopEnd:"4m",loopStart:0,ppq:192,swing:0,swingSubdivision:"8n",timeSignature:4})}_processTick(t,e){if(this._loop.get(t)&&e>=this._loopEnd&&(this.emit("loopEnd",t),this._clock.setTicksAtTime(this._loopStart,t),e=this._loopStart,this.emit("loopStart",t,this._clock.getSecondsAtTime(t)),this.emit("loop",t)),this._swingAmount>0&&e%this._ppq!==0&&e%(this._swingTicks*2)!==0){let r=e%(this._swingTicks*2)/(this._swingTicks*2),n=Math.sin(r*Math.PI)*this._swingAmount;t+=new Be(this.context,this._swingTicks*2/3).toSeconds()*n}ah(!0),this._timeline.forEachAtTime(e,r=>r.invoke(t)),ah(!1)}schedule(t,e){let r=new Yr(this,{callback:t,time:new Xe(this.context,e).toTicks()});return this._addEvent(r,this._timeline)}scheduleRepeat(t,e,r,n=1/0){let o=new Na(this,{callback:t,duration:new Fe(this.context,n).toTicks(),interval:new Fe(this.context,e).toTicks(),time:new Xe(this.context,r).toTicks()});return this._addEvent(o,this._repeatedEvents)}scheduleOnce(t,e){let r=new Yr(this,{callback:t,once:!0,time:new Xe(this.context,e).toTicks()});return this._addEvent(r,this._timeline)}clear(t){if(this._scheduledEvents.hasOwnProperty(t)){let e=this._scheduledEvents[t.toString()];e.timeline.remove(e.event),e.event.dispose(),delete this._scheduledEvents[t.toString()]}return this}_addEvent(t,e){return this._scheduledEvents[t.id.toString()]={event:t,timeline:e},e.add(t),t.id}cancel(t=0){let e=this.toTicks(t);return this._timeline.forEachFrom(e,r=>this.clear(r.id)),this._repeatedEvents.forEachFrom(e,r=>this.clear(r.id)),this}_bindClockEvents(){this._clock.on("start",(t,e)=>{e=new Be(this.context,e).toSeconds(),this.emit("start",t,e)}),this._clock.on("stop",t=>{this.emit("stop",t)}),this._clock.on("pause",t=>{this.emit("pause",t)})}get state(){return this._clock.getStateAtTime(this.now())}start(t,e){this.context.resume();let r;return it(e)&&(r=this.toTicks(e)),this._clock.start(t,r),this}stop(t){return this._clock.stop(t),this}pause(t){return this._clock.pause(t),this}toggle(t){return t=this.toSeconds(t),this._clock.getStateAtTime(t)!=="started"?this.start(t):this.stop(t),this}get timeSignature(){return this._timeSignature}set timeSignature(t){Vt(t)&&(t=t[0]/t[1]*4),this._timeSignature=t}get loopStart(){return new Fe(this.context,this._loopStart,"i").toSeconds()}set loopStart(t){this._loopStart=this.toTicks(t)}get loopEnd(){return new Fe(this.context,this._loopEnd,"i").toSeconds()}set loopEnd(t){this._loopEnd=this.toTicks(t)}get loop(){return this._loop.get(this.now())}set loop(t){this._loop.set(t,this.now())}setLoopPoints(t,e){return this.loopStart=t,this.loopEnd=e,this}get swing(){return this._swingAmount}set swing(t){this._swingAmount=t}get swingSubdivision(){return new Be(this.context,this._swingTicks).toNotation()}set swingSubdivision(t){this._swingTicks=this.toTicks(t)}get position(){let t=this.now(),e=this._clock.getTicksAtTime(t);return new Be(this.context,e).toBarsBeatsSixteenths()}set position(t){let e=this.toTicks(t);this.ticks=e}get seconds(){return this._clock.seconds}set seconds(t){let e=this.now(),r=this._clock.frequency.timeToTicks(t,e);this.ticks=r}get progress(){if(this.loop){let t=this.now();return(this._clock.getTicksAtTime(t)-this._loopStart)/(this._loopEnd-this._loopStart)}else return 0}get ticks(){return this._clock.ticks}set ticks(t){if(this._clock.ticks!==t){let e=this.now();if(this.state==="started"){let r=this._clock.getTicksAtTime(e),n=this._clock.frequency.getDurationOfTicks(Math.ceil(r)-r,e),o=e+n;this.emit("stop",o),this._clock.setTicksAtTime(t,o),this.emit("start",o,this._clock.getSecondsAtTime(o))}else this.emit("ticks",e),this._clock.setTicksAtTime(t,e)}}getTicksAtTime(t){return this._clock.getTicksAtTime(t)}getSecondsAtTime(t){return this._clock.getSecondsAtTime(t)}get PPQ(){return this._clock.frequency.multiplier}set PPQ(t){this._clock.frequency.multiplier=t}nextSubdivision(t){if(t=this.toTicks(t),this.state!=="started")return 0;{let e=this.now(),r=this.getTicksAtTime(e),n=t-r%t;return this._clock.nextTickTime(n,e)}}syncSignal(t,e){let r=this.now(),n=this.bpm,o=1/(60/n.getValueAtTime(r)/this.PPQ),s=[];if(t.units==="time"){let c=.015625/o,u=new Z(c),h=new Ln(-1),l=new Z(c);n.chain(u,h,l),n=l,o=1/o,s=[u,h,l]}e||(t.getValueAtTime(r)!==0?e=t.getValueAtTime(r)/o:e=0);let a=new Z(e);return n.connect(a),a.connect(t._param),s.push(a),this._syncedSignals.push({initial:t.value,nodes:s,signal:t}),t.value=0,this}unsyncSignal(t){for(let e=this._syncedSignals.length-1;e>=0;e--){let r=this._syncedSignals[e];r.signal===t&&(r.nodes.forEach(n=>n.dispose()),r.signal.value=r.initial,this._syncedSignals.splice(e,1))}return this}dispose(){return super.dispose(),this._clock.dispose(),Bi(this,"bpm"),this._timeline.dispose(),this._repeatedEvents.dispose(),this}};pi.mixin(Oa);li(i=>{i.transport=new Oa({context:i})});di(i=>{i.transport.dispose()});var wt=class extends P{constructor(t){super(t),this.input=void 0,this._state=new Mr("stopped"),this._synced=!1,this._scheduled=[],this._syncedStart=ot,this._syncedStop=ot,this._state.memory=100,this._state.increasing=!0,this._volume=this.output=new Ke({context:this.context,mute:t.mute,volume:t.volume}),this.volume=this._volume.volume,z(this,"volume"),this.onstop=t.onstop}static getDefaults(){return Object.assign(P.getDefaults(),{mute:!1,onstop:ot,volume:0})}get state(){return this._synced?this.context.transport.state==="started"?this._state.getValueAtTime(this.context.transport.seconds):"stopped":this._state.getValueAtTime(this.now())}get mute(){return this._volume.mute}set mute(t){this._volume.mute=t}_clampToCurrentTime(t){return this._synced?t:Math.max(t,this.context.currentTime)}start(t,e,r){let n=Xt(t)&&this._synced?this.context.transport.seconds:this.toSeconds(t);if(n=this._clampToCurrentTime(n),!this._synced&&this._state.getValueAtTime(n)==="started")Y(zr(n,this._state.get(n).time),"Start time must be strictly greater than previous start time"),this._state.cancel(n),this._state.setStateAtTime("started",n),this.log("restart",n),this.restart(n,e,r);else if(this.log("start",n),this._state.setStateAtTime("started",n),this._synced){let o=this._state.get(n);o&&(o.offset=this.toSeconds(Pe(e,0)),o.duration=r?this.toSeconds(r):void 0);let s=this.context.transport.schedule(a=>{this._start(a,e,r)},n);this._scheduled.push(s),this.context.transport.state==="started"&&this.context.transport.getSecondsAtTime(this.immediate())>n&&this._syncedStart(this.now(),this.context.transport.seconds)}else ba(this.context),this._start(n,e,r);return this}stop(t){let e=Xt(t)&&this._synced?this.context.transport.seconds:this.toSeconds(t);if(e=this._clampToCurrentTime(e),this._state.getValueAtTime(e)==="started"||it(this._state.getNextState("started",e))){if(this.log("stop",e),!this._synced)this._stop(e);else{let r=this.context.transport.schedule(this._stop.bind(this),e);this._scheduled.push(r)}this._state.cancel(e),this._state.setStateAtTime("stopped",e)}return this}restart(t,e,r){return t=this.toSeconds(t),this._state.getValueAtTime(t)==="started"&&(this._state.cancel(t),this._restart(t,e,r)),this}sync(){return this._synced||(this._synced=!0,this._syncedStart=(t,e)=>{if(zr(e,0)){let r=this._state.get(e);if(r&&r.state==="started"&&r.time!==e){let n=e-this.toSeconds(r.time),o;r.duration&&(o=this.toSeconds(r.duration)-n),this._start(t,this.toSeconds(r.offset)+n,o)}}},this._syncedStop=t=>{let e=this.context.transport.getSecondsAtTime(Math.max(t-this.sampleTime,0));this._state.getValueAtTime(e)==="started"&&this._stop(t)},this.context.transport.on("start",this._syncedStart),this.context.transport.on("loopStart",this._syncedStart),this.context.transport.on("stop",this._syncedStop),this.context.transport.on("pause",this._syncedStop),this.context.transport.on("loopEnd",this._syncedStop)),this}unsync(){return this._synced&&(this.context.transport.off("stop",this._syncedStop),this.context.transport.off("pause",this._syncedStop),this.context.transport.off("loopEnd",this._syncedStop),this.context.transport.off("start",this._syncedStart),this.context.transport.off("loopStart",this._syncedStart)),this._synced=!1,this._scheduled.forEach(t=>this.context.transport.clear(t)),this._scheduled=[],this._state.cancel(0),this._stop(0),this}dispose(){return super.dispose(),this.onstop=ot,this.unsync(),this._volume.dispose(),this._state.dispose(),this}};var Er=class i extends fr{constructor(){let t=I(i.getDefaults(),arguments,["url","onload"]);super(t),this.name="ToneBufferSource",this._source=this.context.createBufferSource(),this._internalChannels=[this._source],this._sourceStarted=!1,this._sourceStopped=!1,de(this._source,this._gainNode),this._source.onended=()=>this._stopSource(),this.playbackRate=new ht({context:this.context,param:this._source.playbackRate,units:"positive",value:t.playbackRate}),this.loop=t.loop,this.loopStart=t.loopStart,this.loopEnd=t.loopEnd,this._buffer=new Yt(t.url,t.onload,t.onerror),this._internalChannels.push(this._source)}static getDefaults(){return Object.assign(fr.getDefaults(),{url:new Yt,loop:!1,loopEnd:0,loopStart:0,onload:ot,onerror:ot,playbackRate:1})}get fadeIn(){return this._fadeIn}set fadeIn(t){this._fadeIn=t}get fadeOut(){return this._fadeOut}set fadeOut(t){this._fadeOut=t}get curve(){return this._curve}set curve(t){this._curve=t}start(t,e,r,n=1){Y(this.buffer.loaded,"buffer is either not set or not loaded");let o=this.toSeconds(t);this._startGain(o,n),this.loop?e=Pe(e,this.loopStart):e=Pe(e,0);let s=Math.max(this.toSeconds(e),0);if(this.loop){let a=this.toSeconds(this.loopEnd)||this.buffer.duration,c=this.toSeconds(this.loopStart),u=a-c;To(s,a)&&(s=(s-c)%u+c),Ce(s,this.buffer.duration)&&(s=0)}if(this._source.buffer=this.buffer.get(),this._source.loopEnd=this.toSeconds(this.loopEnd)||this.buffer.duration,Pi(s,this.buffer.duration)&&(this._sourceStarted=!0,this._source.start(o,s)),it(r)){let a=this.toSeconds(r);a=Math.max(a,0),this.stop(o+a)}return this}_stopSource(t){!this._sourceStopped&&this._sourceStarted&&(this._sourceStopped=!0,this._source.stop(this.toSeconds(t)),this._onended())}get loopStart(){return this._source.loopStart}set loopStart(t){this._source.loopStart=this.toSeconds(t)}get loopEnd(){return this._source.loopEnd}set loopEnd(t){this._source.loopEnd=this.toSeconds(t)}get buffer(){return this._buffer}set buffer(t){this._buffer.set(t)}get loop(){return this._source.loop}set loop(t){this._source.loop=t,this._sourceStarted&&this.cancelStop()}dispose(){return super.dispose(),this._source.onended=null,this._source.disconnect(),this._buffer.dispose(),this.playbackRate.dispose(),this}};var Vi=class i extends wt{constructor(){let t=I(i.getDefaults(),arguments,["type"]);super(t),this.name="Noise",this._source=null,this._playbackRate=t.playbackRate,this.type=t.type,this._fadeIn=t.fadeIn,this._fadeOut=t.fadeOut}static getDefaults(){return Object.assign(wt.getDefaults(),{fadeIn:0,fadeOut:0,playbackRate:1,type:"white"})}get type(){return this._type}set type(t){if(Y(t in zf,"Noise: invalid type: "+t),this._type!==t&&(this._type=t,this.state==="started")){let e=this.now();this._stop(e),this._start(e)}}get playbackRate(){return this._playbackRate}set playbackRate(t){this._playbackRate=t,this._source&&(this._source.playbackRate.value=t)}_start(t){let e=zf[this._type];this._source=new Er({url:e,context:this.context,fadeIn:this._fadeIn,fadeOut:this._fadeOut,loop:!0,onended:()=>this.onstop(this),playbackRate:this._playbackRate}).connect(this.output),this._source.start(this.toSeconds(t),Math.random()*(e.duration-.001))}_stop(t){this._source&&(this._source.stop(this.toSeconds(t)),this._source=null)}get fadeIn(){return this._fadeIn}set fadeIn(t){this._fadeIn=t,this._source&&(this._source.fadeIn=this._fadeIn)}get fadeOut(){return this._fadeOut}set fadeOut(t){this._fadeOut=t,this._source&&(this._source.fadeOut=this._fadeOut)}_restart(t){this._stop(t),this._start(t)}dispose(){return super.dispose(),this._source&&this._source.disconnect(),this}},jn=44100*5,fh=2,Hr={brown:null,pink:null,white:null},zf={get brown(){if(!Hr.brown){let i=[];for(let t=0;t<fh;t++){let e=new Float32Array(jn);i[t]=e;let r=0;for(let n=0;n<jn;n++){let o=Math.random()*2-1;e[n]=(r+.02*o)/1.02,r=e[n],e[n]*=3.5}}Hr.brown=new Yt().fromArray(i)}return Hr.brown},get pink(){if(!Hr.pink){let i=[];for(let t=0;t<fh;t++){let e=new Float32Array(jn);i[t]=e;let r,n,o,s,a,c,u;r=n=o=s=a=c=u=0;for(let h=0;h<jn;h++){let l=Math.random()*2-1;r=.99886*r+l*.0555179,n=.99332*n+l*.0750759,o=.969*o+l*.153852,s=.8665*s+l*.3104856,a=.55*a+l*.5329522,c=-.7616*c-l*.016898,e[h]=r+n+o+s+a+c+u+l*.5362,e[h]*=.11,u=l*.115926}}Hr.pink=new Yt().fromArray(i)}return Hr.pink},get white(){if(!Hr.white){let i=[];for(let t=0;t<fh;t++){let e=new Float32Array(jn);i[t]=e;for(let r=0;r<jn;r++)e[r]=Math.random()*2-1}Hr.white=new Yt().fromArray(i)}return Hr.white}};function Oe(i,t){return yt(this,void 0,void 0,function*(){let e=t/i.context.sampleRate,r=new pr(1,e,i.context.sampleRate);return new i.constructor(Object.assign(i.get(),{frequency:2/e,detune:0,context:r})).toDestination().start(0),(yield r.render()).getChannelData(0)})}var Mo=class i extends fr{constructor(){let t=I(i.getDefaults(),arguments,["frequency","type"]);super(t),this.name="ToneOscillatorNode",this._oscillator=this.context.createOscillator(),this._internalChannels=[this._oscillator],de(this._oscillator,this._gainNode),this.type=t.type,this.frequency=new ht({context:this.context,param:this._oscillator.frequency,units:"frequency",value:t.frequency}),this.detune=new ht({context:this.context,param:this._oscillator.detune,units:"cents",value:t.detune}),z(this,["frequency","detune"])}static getDefaults(){return Object.assign(fr.getDefaults(),{detune:0,frequency:440,type:"sine"})}start(t){let e=this.toSeconds(t);return this.log("start",e),this._startGain(e),this._oscillator.start(e),this}_stopSource(t){this._oscillator.stop(t)}setPeriodicWave(t){return this._oscillator.setPeriodicWave(t),this}get type(){return this._oscillator.type}set type(t){this._oscillator.type=t}dispose(){return super.dispose(),this.state==="started"&&this.stop(),this._oscillator.disconnect(),this.frequency.dispose(),this.detune.dispose(),this}};var qt=class i extends wt{constructor(){let t=I(i.getDefaults(),arguments,["frequency","type"]);super(t),this.name="Oscillator",this._oscillator=null,this.frequency=new rt({context:this.context,units:"frequency",value:t.frequency}),z(this,"frequency"),this.detune=new rt({context:this.context,units:"cents",value:t.detune}),z(this,"detune"),this._partials=t.partials,this._partialCount=t.partialCount,this._type=t.type,t.partialCount&&t.type!=="custom"&&(this._type=this.baseType+t.partialCount.toString()),this.phase=t.phase}static getDefaults(){return Object.assign(wt.getDefaults(),{detune:0,frequency:440,partialCount:0,partials:[],phase:0,type:"sine"})}_start(t){let e=this.toSeconds(t),r=new Mo({context:this.context,onended:()=>this.onstop(this)});this._oscillator=r,this._wave?this._oscillator.setPeriodicWave(this._wave):this._oscillator.type=this._type,this._oscillator.connect(this.output),this.frequency.connect(this._oscillator.frequency),this.detune.connect(this._oscillator.detune),this._oscillator.start(e)}_stop(t){let e=this.toSeconds(t);this._oscillator&&this._oscillator.stop(e)}_restart(t){let e=this.toSeconds(t);return this.log("restart",e),this._oscillator&&this._oscillator.cancelStop(),this._state.cancel(e),this}syncFrequency(){return this.context.transport.syncSignal(this.frequency),this}unsyncFrequency(){return this.context.transport.unsyncSignal(this.frequency),this}_getCachedPeriodicWave(){if(this._type==="custom")return i._periodicWaveCache.find(e=>e.phase===this._phase&&Lf(e.partials,this._partials));{let t=i._periodicWaveCache.find(e=>e.type===this._type&&e.phase===this._phase);return this._partialCount=t?t.partialCount:this._partialCount,t}}get type(){return this._type}set type(t){this._type=t;let e=["sine","square","sawtooth","triangle"].indexOf(t)!==-1;if(this._phase===0&&e)this._wave=void 0,this._partialCount=0,this._oscillator!==null&&(this._oscillator.type=t);else{let r=this._getCachedPeriodicWave();if(it(r)){let{partials:n,wave:o}=r;this._wave=o,this._partials=n,this._oscillator!==null&&this._oscillator.setPeriodicWave(this._wave)}else{let[n,o]=this._getRealImaginary(t,this._phase),s=this.context.createPeriodicWave(n,o);this._wave=s,this._oscillator!==null&&this._oscillator.setPeriodicWave(this._wave),i._periodicWaveCache.push({imag:o,partialCount:this._partialCount,partials:this._partials,phase:this._phase,real:n,type:this._type,wave:this._wave}),i._periodicWaveCache.length>100&&i._periodicWaveCache.shift()}}}get baseType(){return this._type.replace(this.partialCount.toString(),"")}set baseType(t){this.partialCount&&this._type!=="custom"&&t!=="custom"?this.type=t+this.partialCount:this.type=t}get partialCount(){return this._partialCount}set partialCount(t){zt(t,0);let e=this._type,r=/^(sine|triangle|square|sawtooth)(\d+)$/.exec(this._type);if(r&&(e=r[1]),this._type!=="custom")t===0?this.type=e:this.type=e+t.toString();else{let n=new Float32Array(t);this._partials.forEach((o,s)=>n[s]=o),this._partials=Array.from(n),this.type=this._type}}_getRealImaginary(t,e){let n=2048,o=new Float32Array(n),s=new Float32Array(n),a=1;if(t==="custom"){if(a=this._partials.length+1,this._partialCount=this._partials.length,n=a,this._partials.length===0)return[o,s]}else{let c=/^(sine|triangle|square|sawtooth)(\d+)$/.exec(t);c?(a=parseInt(c[2],10)+1,this._partialCount=parseInt(c[2],10),t=c[1],a=Math.max(a,2),n=a):this._partialCount=0,this._partials=[]}for(let c=1;c<n;++c){let u=2/(c*Math.PI),h;switch(t){case"sine":h=c<=a?1:0,this._partials[c-1]=h;break;case"square":h=c&1?2*u:0,this._partials[c-1]=h;break;case"sawtooth":h=u*(c&1?1:-1),this._partials[c-1]=h;break;case"triangle":c&1?h=2*(u*u)*(c-1>>1&1?-1:1):h=0,this._partials[c-1]=h;break;case"custom":h=this._partials[c-1];break;default:throw new TypeError("Oscillator: invalid type: "+t)}h!==0?(o[c]=-h*Math.sin(e*c),s[c]=h*Math.cos(e*c)):(o[c]=0,s[c]=0)}return[o,s]}_inverseFFT(t,e,r){let n=0,o=t.length;for(let s=0;s<o;s++)n+=t[s]*Math.cos(s*r)+e[s]*Math.sin(s*r);return n}getInitialValue(){let[t,e]=this._getRealImaginary(this._type,0),r=0,n=Math.PI*2,o=32;for(let s=0;s<o;s++)r=Math.max(this._inverseFFT(t,e,s/o*n),r);return ch(-this._inverseFFT(t,e,this._phase)/r,-1,1)}get partials(){return this._partials.slice(0,this.partialCount)}set partials(t){this._partials=t,this._partialCount=this._partials.length,t.length&&(this.type="custom")}get phase(){return this._phase*(180/Math.PI)}set phase(t){this._phase=t*Math.PI/180,this.type=this._type}asArray(){return yt(this,arguments,void 0,function*(t=1024){return Oe(this,t)})}dispose(){return super.dispose(),this._oscillator!==null&&this._oscillator.dispose(),this._wave=void 0,this.frequency.dispose(),this.detune.dispose(),this}};qt._periodicWaveCache=[];var Pn=class extends be{constructor(){super(...arguments),this.name="AudioToGain",this._norm=new Ne({context:this.context,mapping:t=>(t+1)/2}),this.input=this._norm,this.output=this._norm}dispose(){return super.dispose(),this._norm.dispose(),this}};var re=class i extends rt{constructor(){let t=I(i.getDefaults(),arguments,["value"]);super(t),this.name="Multiply",this.override=!1,this._mult=this.input=this.output=new Z({context:this.context,minValue:t.minValue,maxValue:t.maxValue}),this.factor=this._param=this._mult.gain,this.factor.setValueAtTime(t.value,0)}static getDefaults(){return Object.assign(rt.getDefaults(),{value:0})}dispose(){return super.dispose(),this._mult.dispose(),this}};var Eo=class i extends wt{constructor(){let t=I(i.getDefaults(),arguments,["frequency","type","modulationType"]);super(t),this.name="AMOscillator",this._modulationScale=new Pn({context:this.context}),this._modulationNode=new Z({context:this.context}),this._carrier=new qt({context:this.context,detune:t.detune,frequency:t.frequency,onstop:()=>this.onstop(this),phase:t.phase,type:t.type}),this.frequency=this._carrier.frequency,this.detune=this._carrier.detune,this._modulator=new qt({context:this.context,phase:t.phase,type:t.modulationType}),this.harmonicity=new re({context:this.context,units:"positive",value:t.harmonicity}),this.frequency.chain(this.harmonicity,this._modulator.frequency),this._modulator.chain(this._modulationScale,this._modulationNode.gain),this._carrier.chain(this._modulationNode,this.output),z(this,["frequency","detune","harmonicity"])}static getDefaults(){return Object.assign(qt.getDefaults(),{harmonicity:1,modulationType:"square"})}_start(t){this._modulator.start(t),this._carrier.start(t)}_stop(t){this._modulator.stop(t),this._carrier.stop(t)}_restart(t){this._modulator.restart(t),this._carrier.restart(t)}get type(){return this._carrier.type}set type(t){this._carrier.type=t}get baseType(){return this._carrier.baseType}set baseType(t){this._carrier.baseType=t}get partialCount(){return this._carrier.partialCount}set partialCount(t){this._carrier.partialCount=t}get modulationType(){return this._modulator.type}set modulationType(t){this._modulator.type=t}get phase(){return this._carrier.phase}set phase(t){this._carrier.phase=t,this._modulator.phase=t}get partials(){return this._carrier.partials}set partials(t){this._carrier.partials=t}asArray(){return yt(this,arguments,void 0,function*(t=1024){return Oe(this,t)})}dispose(){return super.dispose(),this.frequency.dispose(),this.detune.dispose(),this.harmonicity.dispose(),this._carrier.dispose(),this._modulator.dispose(),this._modulationNode.dispose(),this._modulationScale.dispose(),this}};var Fn=class i extends wt{constructor(){let t=I(i.getDefaults(),arguments,["frequency","type","modulationType"]);super(t),this.name="FMOscillator",this._modulationNode=new Z({context:this.context,gain:0}),this._carrier=new qt({context:this.context,detune:t.detune,frequency:0,onstop:()=>this.onstop(this),phase:t.phase,type:t.type}),this.detune=this._carrier.detune,this.frequency=new rt({context:this.context,units:"frequency",value:t.frequency}),this._modulator=new qt({context:this.context,phase:t.phase,type:t.modulationType}),this.harmonicity=new re({context:this.context,units:"positive",value:t.harmonicity}),this.modulationIndex=new re({context:this.context,units:"positive",value:t.modulationIndex}),this.frequency.connect(this._carrier.frequency),this.frequency.chain(this.harmonicity,this._modulator.frequency),this.frequency.chain(this.modulationIndex,this._modulationNode),this._modulator.connect(this._modulationNode.gain),this._modulationNode.connect(this._carrier.frequency),this._carrier.connect(this.output),this.detune.connect(this._modulator.detune),z(this,["modulationIndex","frequency","detune","harmonicity"])}static getDefaults(){return Object.assign(qt.getDefaults(),{harmonicity:1,modulationIndex:2,modulationType:"square"})}_start(t){this._modulator.start(t),this._carrier.start(t)}_stop(t){this._modulator.stop(t),this._carrier.stop(t)}_restart(t){return this._modulator.restart(t),this._carrier.restart(t),this}get type(){return this._carrier.type}set type(t){this._carrier.type=t}get baseType(){return this._carrier.baseType}set baseType(t){this._carrier.baseType=t}get partialCount(){return this._carrier.partialCount}set partialCount(t){this._carrier.partialCount=t}get modulationType(){return this._modulator.type}set modulationType(t){this._modulator.type=t}get phase(){return this._carrier.phase}set phase(t){this._carrier.phase=t,this._modulator.phase=t}get partials(){return this._carrier.partials}set partials(t){this._carrier.partials=t}asArray(){return yt(this,arguments,void 0,function*(t=1024){return Oe(this,t)})}dispose(){return super.dispose(),this.frequency.dispose(),this.harmonicity.dispose(),this._carrier.dispose(),this._modulator.dispose(),this._modulationNode.dispose(),this.modulationIndex.dispose(),this}};var qi=class i extends wt{constructor(){let t=I(i.getDefaults(),arguments,["frequency","width"]);super(t),this.name="PulseOscillator",this._widthGate=new Z({context:this.context,gain:0}),this._thresh=new Ne({context:this.context,mapping:e=>e<=0?-1:1}),this.width=new rt({context:this.context,units:"audioRange",value:t.width}),this._triangle=new qt({context:this.context,detune:t.detune,frequency:t.frequency,onstop:()=>this.onstop(this),phase:t.phase,type:"triangle"}),this.frequency=this._triangle.frequency,this.detune=this._triangle.detune,this._triangle.chain(this._thresh,this.output),this.width.chain(this._widthGate,this._thresh),z(this,["width","frequency","detune"])}static getDefaults(){return Object.assign(wt.getDefaults(),{detune:0,frequency:440,phase:0,type:"pulse",width:.2})}_start(t){t=this.toSeconds(t),this._triangle.start(t),this._widthGate.gain.setValueAtTime(1,t)}_stop(t){t=this.toSeconds(t),this._triangle.stop(t),this._widthGate.gain.cancelScheduledValues(t),this._widthGate.gain.setValueAtTime(0,t)}_restart(t){this._triangle.restart(t),this._widthGate.gain.cancelScheduledValues(t),this._widthGate.gain.setValueAtTime(1,t)}get phase(){return this._triangle.phase}set phase(t){this._triangle.phase=t}get type(){return"pulse"}get baseType(){return"pulse"}get partials(){return[]}get partialCount(){return 0}set carrierType(t){this._triangle.type=t}asArray(){return yt(this,arguments,void 0,function*(t=1024){return Oe(this,t)})}dispose(){return super.dispose(),this._triangle.dispose(),this.width.dispose(),this._widthGate.dispose(),this._thresh.dispose(),this}};var Do=class i extends wt{constructor(){let t=I(i.getDefaults(),arguments,["frequency","type","spread"]);super(t),this.name="FatOscillator",this._oscillators=[],this.frequency=new rt({context:this.context,units:"frequency",value:t.frequency}),this.detune=new rt({context:this.context,units:"cents",value:t.detune}),this._spread=t.spread,this._type=t.type,this._phase=t.phase,this._partials=t.partials,this._partialCount=t.partialCount,this.count=t.count,z(this,["frequency","detune"])}static getDefaults(){return Object.assign(qt.getDefaults(),{count:3,spread:20,type:"sawtooth"})}_start(t){t=this.toSeconds(t),this._forEach(e=>e.start(t))}_stop(t){t=this.toSeconds(t),this._forEach(e=>e.stop(t))}_restart(t){this._forEach(e=>e.restart(t))}_forEach(t){for(let e=0;e<this._oscillators.length;e++)t(this._oscillators[e],e)}get type(){return this._type}set type(t){this._type=t,this._forEach(e=>e.type=t)}get spread(){return this._spread}set spread(t){if(this._spread=t,this._oscillators.length>1){let e=-t/2,r=t/(this._oscillators.length-1);this._forEach((n,o)=>n.detune.value=e+r*o)}}get count(){return this._oscillators.length}set count(t){if(zt(t,1),this._oscillators.length!==t){this._forEach(e=>e.dispose()),this._oscillators=[];for(let e=0;e<t;e++){let r=new qt({context:this.context,volume:-6-t*1.1,type:this._type,phase:this._phase+e/t*360,partialCount:this._partialCount,onstop:e===0?()=>this.onstop(this):ot});this.type==="custom"&&(r.partials=this._partials),this.frequency.connect(r.frequency),this.detune.connect(r.detune),r.detune.overridden=!1,r.connect(this.output),this._oscillators[e]=r}this.spread=this._spread,this.state==="started"&&this._forEach(e=>e.start())}}get phase(){return this._phase}set phase(t){this._phase=t,this._forEach((e,r)=>e.phase=this._phase+r/this.count*360)}get baseType(){return this._oscillators[0].baseType}set baseType(t){this._forEach(e=>e.baseType=t),this._type=this._oscillators[0].type}get partials(){return this._oscillators[0].partials}set partials(t){this._partials=t,this._partialCount=this._partials.length,t.length&&(this._type="custom",this._forEach(e=>e.partials=t))}get partialCount(){return this._oscillators[0].partialCount}set partialCount(t){this._partialCount=t,this._forEach(e=>e.partialCount=t),this._type=this._oscillators[0].type}asArray(){return yt(this,arguments,void 0,function*(t=1024){return Oe(this,t)})}dispose(){return super.dispose(),this.frequency.dispose(),this.detune.dispose(),this._forEach(t=>t.dispose()),this}};var ko=class i extends wt{constructor(){let t=I(i.getDefaults(),arguments,["frequency","modulationFrequency"]);super(t),this.name="PWMOscillator",this.sourceType="pwm",this._scale=new re({context:this.context,value:2}),this._pulse=new qi({context:this.context,frequency:t.modulationFrequency}),this._pulse.carrierType="sine",this.modulationFrequency=this._pulse.frequency,this._modulator=new qt({context:this.context,detune:t.detune,frequency:t.frequency,onstop:()=>this.onstop(this),phase:t.phase}),this.frequency=this._modulator.frequency,this.detune=this._modulator.detune,this._modulator.chain(this._scale,this._pulse.width),this._pulse.connect(this.output),z(this,["modulationFrequency","frequency","detune"])}static getDefaults(){return Object.assign(wt.getDefaults(),{detune:0,frequency:440,modulationFrequency:.4,phase:0,type:"pwm"})}_start(t){t=this.toSeconds(t),this._modulator.start(t),this._pulse.start(t)}_stop(t){t=this.toSeconds(t),this._modulator.stop(t),this._pulse.stop(t)}_restart(t){this._modulator.restart(t),this._pulse.restart(t)}get type(){return"pwm"}get baseType(){return"pwm"}get partials(){return[]}get partialCount(){return 0}get phase(){return this._modulator.phase}set phase(t){this._modulator.phase=t}asArray(){return yt(this,arguments,void 0,function*(t=1024){return Oe(this,t)})}dispose(){return super.dispose(),this._pulse.dispose(),this._scale.dispose(),this._modulator.dispose(),this}};var Yf={am:Eo,fat:Do,fm:Fn,oscillator:qt,pulse:qi,pwm:ko},Wi=class i extends wt{constructor(){let t=I(i.getDefaults(),arguments,["frequency","type"]);super(t),this.name="OmniOscillator",this.frequency=new rt({context:this.context,units:"frequency",value:t.frequency}),this.detune=new rt({context:this.context,units:"cents",value:t.detune}),z(this,["frequency","detune"]),this.set(t)}static getDefaults(){return Object.assign(qt.getDefaults(),Fn.getDefaults(),Eo.getDefaults(),Do.getDefaults(),qi.getDefaults(),ko.getDefaults())}_start(t){this._oscillator.start(t)}_stop(t){this._oscillator.stop(t)}_restart(t){return this._oscillator.restart(t),this}get type(){let t="";return["am","fm","fat"].some(e=>this._sourceType===e)&&(t=this._sourceType),t+this._oscillator.type}set type(t){t.substr(0,2)==="fm"?(this._createNewOscillator("fm"),this._oscillator=this._oscillator,this._oscillator.type=t.substr(2)):t.substr(0,2)==="am"?(this._createNewOscillator("am"),this._oscillator=this._oscillator,this._oscillator.type=t.substr(2)):t.substr(0,3)==="fat"?(this._createNewOscillator("fat"),this._oscillator=this._oscillator,this._oscillator.type=t.substr(3)):t==="pwm"?(this._createNewOscillator("pwm"),this._oscillator=this._oscillator):t==="pulse"?this._createNewOscillator("pulse"):(this._createNewOscillator("oscillator"),this._oscillator=this._oscillator,this._oscillator.type=t)}get partials(){return this._oscillator.partials}set partials(t){!this._getOscType(this._oscillator,"pulse")&&!this._getOscType(this._oscillator,"pwm")&&(this._oscillator.partials=t)}get partialCount(){return this._oscillator.partialCount}set partialCount(t){!this._getOscType(this._oscillator,"pulse")&&!this._getOscType(this._oscillator,"pwm")&&(this._oscillator.partialCount=t)}set(t){return Reflect.has(t,"type")&&t.type&&(this.type=t.type),super.set(t),this}_createNewOscillator(t){if(t!==this._sourceType){this._sourceType=t;let e=Yf[t],r=this.now();if(this._oscillator){let n=this._oscillator;n.stop(r),this.context.setTimeout(()=>n.dispose(),this.blockTime)}this._oscillator=new e({context:this.context}),this.frequency.connect(this._oscillator.frequency),this.detune.connect(this._oscillator.detune),this._oscillator.connect(this.output),this._oscillator.onstop=()=>this.onstop(this),this.state==="started"&&this._oscillator.start(r)}}get phase(){return this._oscillator.phase}set phase(t){this._oscillator.phase=t}get sourceType(){return this._sourceType}set sourceType(t){let e="sine";this._oscillator.type!=="pwm"&&this._oscillator.type!=="pulse"&&(e=this._oscillator.type),t==="fm"?this.type="fm"+e:t==="am"?this.type="am"+e:t==="fat"?this.type="fat"+e:t==="oscillator"?this.type=e:t==="pulse"?this.type="pulse":t==="pwm"&&(this.type="pwm")}_getOscType(t,e){return t instanceof Yf[e]}get baseType(){return this._oscillator.baseType}set baseType(t){!this._getOscType(this._oscillator,"pulse")&&!this._getOscType(this._oscillator,"pwm")&&t!=="pulse"&&t!=="pwm"&&(this._oscillator.baseType=t)}get width(){if(this._getOscType(this._oscillator,"pulse"))return this._oscillator.width}get count(){if(this._getOscType(this._oscillator,"fat"))return this._oscillator.count}set count(t){this._getOscType(this._oscillator,"fat")&&le(t)&&(this._oscillator.count=t)}get spread(){if(this._getOscType(this._oscillator,"fat"))return this._oscillator.spread}set spread(t){this._getOscType(this._oscillator,"fat")&&le(t)&&(this._oscillator.spread=t)}get modulationType(){if(this._getOscType(this._oscillator,"fm")||this._getOscType(this._oscillator,"am"))return this._oscillator.modulationType}set modulationType(t){(this._getOscType(this._oscillator,"fm")||this._getOscType(this._oscillator,"am"))&&fe(t)&&(this._oscillator.modulationType=t)}get modulationIndex(){if(this._getOscType(this._oscillator,"fm"))return this._oscillator.modulationIndex}get harmonicity(){if(this._getOscType(this._oscillator,"fm")||this._getOscType(this._oscillator,"am"))return this._oscillator.harmonicity}get modulationFrequency(){if(this._getOscType(this._oscillator,"pwm"))return this._oscillator.modulationFrequency}asArray(){return yt(this,arguments,void 0,function*(t=1024){return Oe(this,t)})}dispose(){return super.dispose(),this.detune.dispose(),this.frequency.dispose(),this._oscillator.dispose(),this}};function Ma(i,t=1/0){let e=new WeakMap;return function(r,n){Reflect.defineProperty(r,n,{configurable:!0,enumerable:!0,get:function(){return e.get(this)},set:function(o){zt(o,i,t),e.set(this,o)}})}}function Re(i,t=1/0){let e=new WeakMap;return function(r,n){Reflect.defineProperty(r,n,{configurable:!0,enumerable:!0,get:function(){return e.get(this)},set:function(o){zt(this.toSeconds(o),i,t),e.set(this,o)}})}}var Lo=class i extends wt{constructor(){let t=I(i.getDefaults(),arguments,["url","onload"]);super(t),this.name="Player",this._activeSources=new Set,this._buffer=new Yt({onload:this._onload.bind(this,t.onload),onerror:t.onerror,reverse:t.reverse,url:t.url}),this.autostart=t.autostart,this._loop=t.loop,this._loopStart=t.loopStart,this._loopEnd=t.loopEnd,this._playbackRate=t.playbackRate,this.fadeIn=t.fadeIn,this.fadeOut=t.fadeOut}static getDefaults(){return Object.assign(wt.getDefaults(),{autostart:!1,fadeIn:0,fadeOut:0,loop:!1,loopEnd:0,loopStart:0,onload:ot,onerror:ot,playbackRate:1,reverse:!1})}load(t){return yt(this,void 0,void 0,function*(){return yield this._buffer.load(t),this._onload(),this})}_onload(t=ot){t(),this.autostart&&this.start()}_onSourceEnd(t){this.onstop(this),this._activeSources.delete(t),this._activeSources.size===0&&!this._synced&&this._state.getValueAtTime(this.now())==="started"&&(this._state.cancel(this.now()),this._state.setStateAtTime("stopped",this.now()))}start(t,e,r){return super.start(t,e,r),this}_start(t,e,r){this._loop?e=Pe(e,this._loopStart):e=Pe(e,0);let n=this.toSeconds(e),o=r;r=Pe(r,Math.max(this._buffer.duration-n,0));let s=this.toSeconds(r);s=s/this._playbackRate,t=this.toSeconds(t);let a=new Er({url:this._buffer,context:this.context,fadeIn:this.fadeIn,fadeOut:this.fadeOut,loop:this._loop,loopEnd:this._loopEnd,loopStart:this._loopStart,onended:this._onSourceEnd.bind(this),playbackRate:this._playbackRate}).connect(this.output);!this._loop&&!this._synced&&(this._state.cancel(t+s),this._state.setStateAtTime("stopped",t+s,{implicitEnd:!0})),this._activeSources.add(a),this._loop&&Xt(o)?a.start(t,n):a.start(t,n,s-this.toSeconds(this.fadeOut))}_stop(t){let e=this.toSeconds(t);this._activeSources.forEach(r=>r.stop(e))}restart(t,e,r){return super.restart(t,e,r),this}_restart(t,e,r){var n;(n=[...this._activeSources].pop())===null||n===void 0||n.stop(t),this._start(t,e,r)}seek(t,e){let r=this.toSeconds(e);if(this._state.getValueAtTime(r)==="started"){let n=this.toSeconds(t);this._stop(r),this._start(r,n)}return this}setLoopPoints(t,e){return this.loopStart=t,this.loopEnd=e,this}get loopStart(){return this._loopStart}set loopStart(t){this._loopStart=t,this.buffer.loaded&&zt(this.toSeconds(t),0,this.buffer.duration),this._activeSources.forEach(e=>{e.loopStart=t})}get loopEnd(){return this._loopEnd}set loopEnd(t){this._loopEnd=t,this.buffer.loaded&&zt(this.toSeconds(t),0,this.buffer.duration),this._activeSources.forEach(e=>{e.loopEnd=t})}get buffer(){return this._buffer}set buffer(t){this._buffer.set(t)}get loop(){return this._loop}set loop(t){if(this._loop!==t&&(this._loop=t,this._activeSources.forEach(e=>{e.loop=t}),t)){let e=this._state.getNextState("stopped",this.now());e&&this._state.cancel(e.time)}}get playbackRate(){return this._playbackRate}set playbackRate(t){this._playbackRate=t;let e=this.now(),r=this._state.getNextState("stopped",e);r&&r.implicitEnd&&(this._state.cancel(r.time),this._activeSources.forEach(n=>n.cancelStop())),this._activeSources.forEach(n=>{n.playbackRate.setValueAtTime(t,e)})}get reverse(){return this._buffer.reverse}set reverse(t){this._buffer.reverse=t}get loaded(){return this._buffer.loaded}dispose(){return super.dispose(),this._activeSources.forEach(t=>t.dispose()),this._activeSources.clear(),this._buffer.dispose(),this}};ye([Re(0)],Lo.prototype,"fadeIn",void 0);ye([Re(0)],Lo.prototype,"fadeOut",void 0);var Ea=class extends be{constructor(){super(...arguments),this.name="GainToAudio",this._norm=new Ne({context:this.context,mapping:t=>Math.abs(t)*2-1}),this.input=this._norm,this.output=this._norm}dispose(){return super.dispose(),this._norm.dispose(),this}};var ve=class i extends P{constructor(){let t=I(i.getDefaults(),arguments,["attack","decay","sustain","release"]);super(t),this.name="Envelope",this._sig=new rt({context:this.context,value:0}),this.output=this._sig,this.input=void 0,this.attack=t.attack,this.decay=t.decay,this.sustain=t.sustain,this.release=t.release,this.attackCurve=t.attackCurve,this.releaseCurve=t.releaseCurve,this.decayCurve=t.decayCurve}static getDefaults(){return Object.assign(P.getDefaults(),{attack:.01,attackCurve:"linear",decay:.1,decayCurve:"exponential",release:1,releaseCurve:"exponential",sustain:.5})}get value(){return this.getValueAtTime(this.now())}_getCurve(t,e){if(fe(t))return t;{let r;for(r in Da)if(Da[r][e]===t)return r;return t}}_setCurve(t,e,r){if(fe(r)&&Reflect.has(Da,r)){let n=Da[r];hr(n)?t!=="_decayCurve"&&(this[t]=n[e]):this[t]=n}else if(Vt(r)&&t!=="_decayCurve")this[t]=r;else throw new Error("Envelope: invalid curve: "+r)}get attackCurve(){return this._getCurve(this._attackCurve,"In")}set attackCurve(t){this._setCurve("_attackCurve","In",t)}get releaseCurve(){return this._getCurve(this._releaseCurve,"Out")}set releaseCurve(t){this._setCurve("_releaseCurve","Out",t)}get decayCurve(){return this._getCurve(this._decayCurve,"Out")}set decayCurve(t){this._setCurve("_decayCurve","Out",t)}triggerAttack(t,e=1){this.log("triggerAttack",t,e),t=this.toSeconds(t);let n=this.toSeconds(this.attack),o=this.toSeconds(this.decay),s=this.getValueAtTime(t);if(s>0){let a=1/n;n=(1-s)/a}if(n<this.sampleTime)this._sig.cancelScheduledValues(t),this._sig.setValueAtTime(e,t);else if(this._attackCurve==="linear")this._sig.linearRampTo(e,n,t);else if(this._attackCurve==="exponential")this._sig.targetRampTo(e,n,t);else{this._sig.cancelAndHoldAtTime(t);let a=this._attackCurve;for(let c=1;c<a.length;c++)if(a[c-1]<=s&&s<=a[c]){a=this._attackCurve.slice(c),a[0]=s;break}this._sig.setValueCurveAtTime(a,t,n,e)}if(o&&this.sustain<1){let a=e*this.sustain,c=t+n;this.log("decay",c),this._decayCurve==="linear"?this._sig.linearRampToValueAtTime(a,o+c):this._sig.exponentialApproachValueAtTime(a,c,o)}return this}triggerRelease(t){this.log("triggerRelease",t),t=this.toSeconds(t);let e=this.getValueAtTime(t);if(e>0){let r=this.toSeconds(this.release);r<this.sampleTime?this._sig.setValueAtTime(0,t):this._releaseCurve==="linear"?this._sig.linearRampTo(0,r,t):this._releaseCurve==="exponential"?this._sig.targetRampTo(0,r,t):(Y(Vt(this._releaseCurve),"releaseCurve must be either 'linear', 'exponential' or an array"),this._sig.cancelAndHoldAtTime(t),this._sig.setValueCurveAtTime(this._releaseCurve,t,r,e))}return this}getValueAtTime(t){return this._sig.getValueAtTime(t)}triggerAttackRelease(t,e,r=1){return e=this.toSeconds(e),this.triggerAttack(e,r),this.triggerRelease(e+this.toSeconds(t)),this}cancel(t){return this._sig.cancelScheduledValues(this.toSeconds(t)),this}connect(t,e=0,r=0){return En(this,t,e,r),this}asArray(){return yt(this,arguments,void 0,function*(t=1024){let e=t/this.context.sampleRate,r=new pr(1,e,this.context.sampleRate),n=this.toSeconds(this.attack)+this.toSeconds(this.decay),o=n+this.toSeconds(this.release),s=o*.1,a=o+s,c=new this.constructor(Object.assign(this.get(),{attack:e*this.toSeconds(this.attack)/a,decay:e*this.toSeconds(this.decay)/a,release:e*this.toSeconds(this.release)/a,context:r}));return c._sig.toDestination(),c.triggerAttackRelease(e*(n+s)/a,0),(yield r.render()).getChannelData(0)})}dispose(){return super.dispose(),this._sig.dispose(),this}};ye([Re(0)],ve.prototype,"attack",void 0);ye([Re(0)],ve.prototype,"decay",void 0);ye([Ma(0,1)],ve.prototype,"sustain",void 0);ye([Re(0)],ve.prototype,"release",void 0);var Da=(()=>{let t,e,r=[];for(t=0;t<128;t++)r[t]=Math.sin(t/127*(Math.PI/2));let n=[],o=6.4;for(t=0;t<127;t++){e=t/127;let p=Math.sin(e*(Math.PI*2)*o-Math.PI/2)+1;n[t]=p/10+e*.83}n[127]=1;let s=[],a=5;for(t=0;t<128;t++)s[t]=Math.ceil(t/127*a)/a;let c=[];for(t=0;t<128;t++)e=t/127,c[t]=.5*(1-Math.cos(Math.PI*e));let u=[];for(t=0;t<128;t++){e=t/127;let p=Math.pow(e,3)*4+.2,m=Math.cos(p*Math.PI*2*e);u[t]=Math.abs(m*(1-e))}function h(p){let m=new Array(p.length);for(let f=0;f<p.length;f++)m[f]=1-p[f];return m}function l(p){return p.slice(0).reverse()}return{bounce:{In:h(u),Out:u},cosine:{In:r,Out:l(r)},exponential:"exponential",linear:"linear",ripple:{In:n,Out:h(n)},sine:{In:c,Out:h(c)},step:{In:s,Out:h(s)}}})();var Ge=class i extends P{constructor(){let t=I(i.getDefaults(),arguments);super(t),this._scheduledEvents=[],this._synced=!1,this._original_triggerAttack=this.triggerAttack,this._original_triggerRelease=this.triggerRelease,this._syncedRelease=e=>this._original_triggerRelease(e),this._volume=this.output=new Ke({context:this.context,volume:t.volume}),this.volume=this._volume.volume,z(this,"volume")}static getDefaults(){return Object.assign(P.getDefaults(),{volume:0})}sync(){return this._syncState()&&(this._syncMethod("triggerAttack",1),this._syncMethod("triggerRelease",0),this.context.transport.on("stop",this._syncedRelease),this.context.transport.on("pause",this._syncedRelease),this.context.transport.on("loopEnd",this._syncedRelease)),this}_syncState(){let t=!1;return this._synced||(this._synced=!0,t=!0),t}_syncMethod(t,e){let r=this["_original_"+t]=this[t];this[t]=(...n)=>{let o=n[e],s=this.context.transport.schedule(a=>{n[e]=a,r.apply(this,n)},o);this._scheduledEvents.push(s)}}unsync(){return this._scheduledEvents.forEach(t=>this.context.transport.clear(t)),this._scheduledEvents=[],this._synced&&(this._synced=!1,this.triggerAttack=this._original_triggerAttack,this.triggerRelease=this._original_triggerRelease,this.context.transport.off("stop",this._syncedRelease),this.context.transport.off("pause",this._syncedRelease),this.context.transport.off("loopEnd",this._syncedRelease)),this}triggerAttackRelease(t,e,r,n){let o=this.toSeconds(r),s=this.toSeconds(e);return this.triggerAttack(t,o,n),this.triggerRelease(o+s),this}dispose(){return super.dispose(),this._volume.dispose(),this.unsync(),this._scheduledEvents=[],this}};var Me=class i extends Ge{constructor(){let t=I(i.getDefaults(),arguments);super(t),this.portamento=t.portamento,this.onsilence=t.onsilence}static getDefaults(){return Object.assign(Ge.getDefaults(),{detune:0,onsilence:ot,portamento:0})}triggerAttack(t,e,r=1){this.log("triggerAttack",t,e,r);let n=this.toSeconds(e);return this._triggerEnvelopeAttack(n,r),this.setNote(t,n),this}triggerRelease(t){this.log("triggerRelease",t);let e=this.toSeconds(t);return this._triggerEnvelopeRelease(e),this}setNote(t,e){let r=this.toSeconds(e),n=t instanceof _e?t.toFrequency():t;if(this.portamento>0&&this.getLevelAtTime(r)>.05){let o=this.toSeconds(this.portamento);this.frequency.exponentialRampTo(n,o,r)}else this.frequency.setValueAtTime(n,r);return this}};ye([Re(0)],Me.prototype,"portamento",void 0);var Bn=class i extends ve{constructor(){super(I(i.getDefaults(),arguments,["attack","decay","sustain","release"])),this.name="AmplitudeEnvelope",this._gainNode=new Z({context:this.context,gain:0}),this.output=this._gainNode,this.input=this._gainNode,this._sig.connect(this._gainNode.gain),this.output=this._gainNode,this.input=this._gainNode}dispose(){return super.dispose(),this._gainNode.dispose(),this}};var Dr=class i extends Me{constructor(){let t=I(i.getDefaults(),arguments);super(t),this.name="Synth",this.oscillator=new Wi(Object.assign({context:this.context,detune:t.detune,onstop:()=>this.onsilence(this)},t.oscillator)),this.frequency=this.oscillator.frequency,this.detune=this.oscillator.detune,this.envelope=new Bn(Object.assign({context:this.context},t.envelope)),this.oscillator.chain(this.envelope,this.output),z(this,["oscillator","frequency","detune","envelope"])}static getDefaults(){return Object.assign(Me.getDefaults(),{envelope:Object.assign(dr(ve.getDefaults(),Object.keys(P.getDefaults())),{attack:.005,decay:.1,release:1,sustain:.3}),oscillator:Object.assign(dr(Wi.getDefaults(),[...Object.keys(wt.getDefaults()),"frequency","detune"]),{type:"triangle"})})}_triggerEnvelopeAttack(t,e){if(this.envelope.triggerAttack(t,e),this.oscillator.start(t),this.envelope.sustain===0){let r=this.toSeconds(this.envelope.attack),n=this.toSeconds(this.envelope.decay);this.oscillator.stop(t+r+n)}}_triggerEnvelopeRelease(t){this.envelope.triggerRelease(t),this.oscillator.stop(t+this.toSeconds(this.envelope.release))}getLevelAtTime(t){return t=this.toSeconds(t),this.envelope.getValueAtTime(t)}dispose(){return super.dispose(),this.oscillator.dispose(),this.envelope.dispose(),this}};var jo=class i extends P{constructor(){let t=I(i.getDefaults(),arguments,["frequency","type"]);super(t),this.name="BiquadFilter",this._filter=this.context.createBiquadFilter(),this.input=this.output=this._filter,this.Q=new ht({context:this.context,units:"number",value:t.Q,param:this._filter.Q}),this.frequency=new ht({context:this.context,units:"frequency",value:t.frequency,param:this._filter.frequency}),this.detune=new ht({context:this.context,units:"cents",value:t.detune,param:this._filter.detune}),this.gain=new ht({context:this.context,units:"decibels",convert:!1,value:t.gain,param:this._filter.gain}),this.type=t.type}static getDefaults(){return Object.assign(P.getDefaults(),{Q:1,type:"lowpass",frequency:350,detune:0,gain:0})}get type(){return this._filter.type}set type(t){Y(["lowpass","highpass","bandpass","lowshelf","highshelf","notch","allpass","peaking"].indexOf(t)!==-1,`Invalid filter type: ${t}`),this._filter.type=t}getFrequencyResponse(t=128){let e=new Float32Array(t);for(let s=0;s<t;s++){let c=Math.pow(s/t,2)*19980+20;e[s]=c}let r=new Float32Array(t),n=new Float32Array(t),o=this.context.createBiquadFilter();return o.type=this.type,o.Q.value=this.Q.value,o.frequency.value=this.frequency.value,o.gain.value=this.gain.value,o.getFrequencyResponse(e,r,n),r}dispose(){return super.dispose(),this._filter.disconnect(),this.Q.dispose(),this.frequency.dispose(),this.gain.dispose(),this.detune.dispose(),this}};var $r=class i extends P{constructor(){let t=I(i.getDefaults(),arguments,["frequency","type","rolloff"]);super(t),this.name="Filter",this.input=new Z({context:this.context}),this.output=new Z({context:this.context}),this._filters=[],this._filters=[],this.Q=new rt({context:this.context,units:"positive",value:t.Q}),this.frequency=new rt({context:this.context,units:"frequency",value:t.frequency}),this.detune=new rt({context:this.context,units:"cents",value:t.detune}),this.gain=new rt({context:this.context,units:"decibels",convert:!1,value:t.gain}),this._type=t.type,this.rolloff=t.rolloff,z(this,["detune","frequency","gain","Q"])}static getDefaults(){return Object.assign(P.getDefaults(),{Q:1,detune:0,frequency:350,gain:0,rolloff:-12,type:"lowpass"})}get type(){return this._type}set type(t){Y(["lowpass","highpass","bandpass","lowshelf","highshelf","notch","allpass","peaking"].indexOf(t)!==-1,`Invalid filter type: ${t}`),this._type=t,this._filters.forEach(r=>r.type=t)}get rolloff(){return this._rolloff}set rolloff(t){let e=le(t)?t:parseInt(t,10),r=[-12,-24,-48,-96],n=r.indexOf(e);Y(n!==-1,`rolloff can only be ${r.join(", ")}`),n+=1,this._rolloff=e,this.input.disconnect(),this._filters.forEach(o=>o.disconnect()),this._filters=new Array(n);for(let o=0;o<n;o++){let s=new jo({context:this.context});s.type=this._type,this.frequency.connect(s.frequency),this.detune.connect(s.detune),this.Q.connect(s.Q),this.gain.connect(s.gain),this._filters[o]=s}this._internalChannels=this._filters,Qe(this.input,...this._internalChannels,this.output)}getFrequencyResponse(t=128){let e=new jo({context:this.context,frequency:this.frequency.value,gain:this.gain.value,Q:this.Q.value,type:this._type,detune:this.detune.value}),r=new Float32Array(t).map(()=>1);return this._filters.forEach(()=>{e.getFrequencyResponse(t).forEach((o,s)=>r[s]*=o)}),e.dispose(),r}dispose(){return super.dispose(),this._filters.forEach(t=>{t.dispose()}),Bi(this,["detune","frequency","gain","Q"]),this.frequency.dispose(),this.Q.dispose(),this.detune.dispose(),this.gain.dispose(),this}};var ka=class i extends Dr{constructor(){let t=I(i.getDefaults(),arguments);super(t),this.name="MembraneSynth",this.portamento=0,this.pitchDecay=t.pitchDecay,this.octaves=t.octaves,z(this,["oscillator","envelope"])}static getDefaults(){return Ze(Me.getDefaults(),Dr.getDefaults(),{envelope:{attack:.001,attackCurve:"exponential",decay:.4,release:1.4,sustain:.01},octaves:10,oscillator:{type:"sine"},pitchDecay:.05})}setNote(t,e){let r=this.toSeconds(e),n=this.toFrequency(t instanceof _e?t.toFrequency():t),o=n*this.octaves;return this.oscillator.frequency.setValueAtTime(o,r),this.oscillator.frequency.exponentialRampToValueAtTime(n,r+this.toSeconds(this.pitchDecay)),this}dispose(){return super.dispose(),this}};ye([Ma(0)],ka.prototype,"octaves",void 0);ye([Re(0)],ka.prototype,"pitchDecay",void 0);var Hf=new Set;function Vn(i){Hf.add(i)}function La(i,t){let e=`registerProcessor("${i}", ${t})`;Hf.add(e)}var nv=`
20
+ /**
21
+ * The base AudioWorkletProcessor for use in Tone.js. Works with the {@link ToneAudioWorklet}.
22
+ */
23
+ class ToneAudioWorkletProcessor extends AudioWorkletProcessor {
24
+
25
+ constructor(options) {
26
+
27
+ super(options);
28
+ /**
29
+ * If the processor was disposed or not. Keep alive until it's disposed.
30
+ */
31
+ this.disposed = false;
32
+ /**
33
+ * The number of samples in the processing block
34
+ */
35
+ this.blockSize = 128;
36
+ /**
37
+ * the sample rate
38
+ */
39
+ this.sampleRate = sampleRate;
40
+
41
+ this.port.onmessage = (event) => {
42
+ // when it receives a dispose
43
+ if (event.data === "dispose") {
44
+ this.disposed = true;
45
+ }
46
+ };
47
+ }
48
+ }
49
+ `;Vn(nv);var ov=`
50
+ /**
51
+ * Abstract class for a single input/output processor.
52
+ * has a 'generate' function which processes one sample at a time
53
+ */
54
+ class SingleIOProcessor extends ToneAudioWorkletProcessor {
55
+
56
+ constructor(options) {
57
+ super(Object.assign(options, {
58
+ numberOfInputs: 1,
59
+ numberOfOutputs: 1
60
+ }));
61
+ /**
62
+ * Holds the name of the parameter and a single value of that
63
+ * parameter at the current sample
64
+ * @type { [name: string]: number }
65
+ */
66
+ this.params = {}
67
+ }
68
+
69
+ /**
70
+ * Generate an output sample from the input sample and parameters
71
+ * @abstract
72
+ * @param input number
73
+ * @param channel number
74
+ * @param parameters { [name: string]: number }
75
+ * @returns number
76
+ */
77
+ generate(){}
78
+
79
+ /**
80
+ * Update the private params object with the
81
+ * values of the parameters at the given index
82
+ * @param parameters { [name: string]: Float32Array },
83
+ * @param index number
84
+ */
85
+ updateParams(parameters, index) {
86
+ for (const paramName in parameters) {
87
+ const param = parameters[paramName];
88
+ if (param.length > 1) {
89
+ this.params[paramName] = parameters[paramName][index];
90
+ } else {
91
+ this.params[paramName] = parameters[paramName][0];
92
+ }
93
+ }
94
+ }
95
+
96
+ /**
97
+ * Process a single frame of the audio
98
+ * @param inputs Float32Array[][]
99
+ * @param outputs Float32Array[][]
100
+ */
101
+ process(inputs, outputs, parameters) {
102
+ const input = inputs[0];
103
+ const output = outputs[0];
104
+ // get the parameter values
105
+ const channelCount = Math.max(input && input.length || 0, output.length);
106
+ for (let sample = 0; sample < this.blockSize; sample++) {
107
+ this.updateParams(parameters, sample);
108
+ for (let channel = 0; channel < channelCount; channel++) {
109
+ const inputSample = input && input.length ? input[channel][sample] : 0;
110
+ output[channel][sample] = this.generate(inputSample, channel, this.params);
111
+ }
112
+ }
113
+ return !this.disposed;
114
+ }
115
+ };
116
+ `;Vn(ov);var sv=`
117
+ /**
118
+ * A multichannel buffer for use within an AudioWorkletProcessor as a delay line
119
+ */
120
+ class DelayLine {
121
+
122
+ constructor(size, channels) {
123
+ this.buffer = [];
124
+ this.writeHead = []
125
+ this.size = size;
126
+
127
+ // create the empty channels
128
+ for (let i = 0; i < channels; i++) {
129
+ this.buffer[i] = new Float32Array(this.size);
130
+ this.writeHead[i] = 0;
131
+ }
132
+ }
133
+
134
+ /**
135
+ * Push a value onto the end
136
+ * @param channel number
137
+ * @param value number
138
+ */
139
+ push(channel, value) {
140
+ this.writeHead[channel] += 1;
141
+ if (this.writeHead[channel] > this.size) {
142
+ this.writeHead[channel] = 0;
143
+ }
144
+ this.buffer[channel][this.writeHead[channel]] = value;
145
+ }
146
+
147
+ /**
148
+ * Get the recorded value of the channel given the delay
149
+ * @param channel number
150
+ * @param delay number delay samples
151
+ */
152
+ get(channel, delay) {
153
+ let readHead = this.writeHead[channel] - Math.floor(delay);
154
+ if (readHead < 0) {
155
+ readHead += this.size;
156
+ }
157
+ return this.buffer[channel][readHead];
158
+ }
159
+ }
160
+ `;Vn(sv);var $f="feedback-comb-filter",av=`
161
+ class FeedbackCombFilterWorklet extends SingleIOProcessor {
162
+
163
+ constructor(options) {
164
+ super(options);
165
+ this.delayLine = new DelayLine(this.sampleRate, options.channelCount || 2);
166
+ }
167
+
168
+ static get parameterDescriptors() {
169
+ return [{
170
+ name: "delayTime",
171
+ defaultValue: 0.1,
172
+ minValue: 0,
173
+ maxValue: 1,
174
+ automationRate: "k-rate"
175
+ }, {
176
+ name: "feedback",
177
+ defaultValue: 0.5,
178
+ minValue: 0,
179
+ maxValue: 0.9999,
180
+ automationRate: "k-rate"
181
+ }];
182
+ }
183
+
184
+ generate(input, channel, parameters) {
185
+ const delayedSample = this.delayLine.get(channel, parameters.delayTime * this.sampleRate);
186
+ this.delayLine.push(channel, input + delayedSample * parameters.feedback);
187
+ return delayedSample;
188
+ }
189
+ }
190
+ `;La($f,av);var ja=class i extends Ge{constructor(){let t=I(i.getDefaults(),arguments,["voice","options"]);super(t),this.name="PolySynth",this._availableVoices=[],this._activeVoices=[],this._voices=[],this._gcTimeout=-1,this._averageActiveVoices=0,this._syncedRelease=n=>this.releaseAll(n),Y(!le(t.voice),"DEPRECATED: The polyphony count is no longer the first argument.");let e=t.voice.getDefaults();this.options=Object.assign(e,t.options),this.voice=t.voice,this.maxPolyphony=t.maxPolyphony,this._dummyVoice=this._getNextAvailableVoice();let r=this._voices.indexOf(this._dummyVoice);this._voices.splice(r,1),this._gcTimeout=this.context.setInterval(this._collectGarbage.bind(this),1)}static getDefaults(){return Object.assign(Ge.getDefaults(),{maxPolyphony:32,options:{},voice:Dr})}get activeVoices(){return this._activeVoices.length}_makeVoiceAvailable(t){this._availableVoices.push(t);let e=this._activeVoices.findIndex(r=>r.voice===t);this._activeVoices.splice(e,1)}_getNextAvailableVoice(){if(this._availableVoices.length)return this._availableVoices.shift();if(this._voices.length<this.maxPolyphony){let t=new this.voice(Object.assign(this.options,{context:this.context,onsilence:this._makeVoiceAvailable.bind(this)}));return Y(t instanceof Me,"Voice must extend Monophonic class"),t.connect(this.output),this._voices.push(t),t}else ji("Max polyphony exceeded. Note dropped.")}_collectGarbage(){if(this._averageActiveVoices=Math.max(this._averageActiveVoices*.95,this.activeVoices),this._availableVoices.length&&this._voices.length>Math.ceil(this._averageActiveVoices+1)){let t=this._availableVoices.shift(),e=this._voices.indexOf(t);this._voices.splice(e,1),this.context.isOffline||t.dispose()}}_triggerAttack(t,e,r){t.forEach(n=>{let o=new Ro(this.context,n).toMidi(),s=this._getNextAvailableVoice();s&&(s.triggerAttack(n,e,r),this._activeVoices.push({midi:o,voice:s,released:!1}),this.log("triggerAttack",n,e))})}_triggerRelease(t,e){t.forEach(r=>{let n=new Ro(this.context,r).toMidi(),o=this._activeVoices.find(({midi:s,released:a})=>s===n&&!a);o&&(o.voice.triggerRelease(e),o.released=!0,this.log("triggerRelease",r,e))})}_scheduleEvent(t,e,r,n){Y(!this.disposed,"Synth was already disposed"),r<=this.now()?t==="attack"?this._triggerAttack(e,r,n):this._triggerRelease(e,r):this.context.setTimeout(()=>{this.disposed||this._scheduleEvent(t,e,r,n)},r-this.now())}triggerAttack(t,e,r){Array.isArray(t)||(t=[t]);let n=this.toSeconds(e);return this._scheduleEvent("attack",t,n,r),this}triggerRelease(t,e){Array.isArray(t)||(t=[t]);let r=this.toSeconds(e);return this._scheduleEvent("release",t,r),this}triggerAttackRelease(t,e,r,n){let o=this.toSeconds(r);if(this.triggerAttack(t,o,n),Vt(e)){Y(Vt(t),"If the duration is an array, the notes must also be an array"),t=t;for(let s=0;s<t.length;s++){let a=e[Math.min(s,e.length-1)],c=this.toSeconds(a);Y(c>0,"The duration must be greater than 0"),this.triggerRelease(t[s],o+c)}}else{let s=this.toSeconds(e);Y(s>0,"The duration must be greater than 0"),this.triggerRelease(t,o+s)}return this}sync(){return this._syncState()&&(this._syncMethod("triggerAttack",1),this._syncMethod("triggerRelease",1),this.context.transport.on("stop",this._syncedRelease),this.context.transport.on("pause",this._syncedRelease),this.context.transport.on("loopEnd",this._syncedRelease)),this}set(t){let e=dr(t,["onsilence","context"]);return this.options=Ze(this.options,e),this._voices.forEach(r=>r.set(e)),this._dummyVoice.set(e),this}get(){return this._dummyVoice.get()}releaseAll(t){let e=this.toSeconds(t);return this._activeVoices.forEach(({voice:r})=>{r.triggerRelease(e)}),this}dispose(){return super.dispose(),this._dummyVoice.dispose(),this._voices.forEach(t=>t.dispose()),this._activeVoices=[],this._availableVoices=[],this.context.clearInterval(this._gcTimeout),this}};var Pa=class i extends Ge{constructor(){let t=I(i.getDefaults(),arguments,["urls","onload","baseUrl"],"urls");super(t),this.name="Sampler",this._activeSources=new Map;let e={};Object.keys(t.urls).forEach(r=>{let n=parseInt(r,10);if(Y(Io(r)||le(n)&&isFinite(n),`url key is neither a note or midi pitch: ${r}`),Io(r)){let o=new _e(this.context,r).toMidi();e[o]=t.urls[r]}else le(n)&&isFinite(n)&&(e[n]=t.urls[n])}),this._buffers=new kn({urls:e,onload:t.onload,baseUrl:t.baseUrl,onerror:t.onerror}),this.attack=t.attack,this.release=t.release,this.curve=t.curve,this._buffers.loaded&&Promise.resolve().then(t.onload)}static getDefaults(){return Object.assign(Ge.getDefaults(),{attack:0,baseUrl:"",curve:"exponential",onload:ot,onerror:ot,release:.1,urls:{}})}_findClosest(t){let r=0;for(;r<96;){if(this._buffers.has(t+r))return-r;if(this._buffers.has(t-r))return r;r++}throw new Error(`No available buffers for note: ${t}`)}triggerAttack(t,e,r=1){return this.log("triggerAttack",t,e,r),Array.isArray(t)||(t=[t]),t.forEach(n=>{let o=hh(new _e(this.context,n).toFrequency()),s=Math.round(o),a=o-s,c=this._findClosest(s),u=s-c,h=this._buffers.get(u),l=Gi(c+a),p=new Er({url:h,context:this.context,curve:this.curve,fadeIn:this.attack,fadeOut:this.release,playbackRate:l}).connect(this.output);p.start(e,0,h.duration/l,r),Vt(this._activeSources.get(s))||this._activeSources.set(s,[]),this._activeSources.get(s).push(p),p.onended=()=>{if(this._activeSources&&this._activeSources.has(s)){let m=this._activeSources.get(s),f=m.indexOf(p);f!==-1&&m.splice(f,1)}}}),this}triggerRelease(t,e){return this.log("triggerRelease",t,e),Array.isArray(t)||(t=[t]),t.forEach(r=>{let n=new _e(this.context,r).toMidi();if(this._activeSources.has(n)&&this._activeSources.get(n).length){let o=this._activeSources.get(n);e=this.toSeconds(e),o.forEach(s=>{s.stop(e)}),this._activeSources.set(n,[])}}),this}releaseAll(t){let e=this.toSeconds(t);return this._activeSources.forEach(r=>{for(;r.length;)r.shift().stop(e)}),this}sync(){return this._syncState()&&(this._syncMethod("triggerAttack",1),this._syncMethod("triggerRelease",1)),this}triggerAttackRelease(t,e,r,n=1){let o=this.toSeconds(r);return this.triggerAttack(t,o,n),Vt(e)?(Y(Vt(t),"notes must be an array when duration is array"),t.forEach((s,a)=>{let c=e[Math.min(a,e.length-1)];this.triggerRelease(s,o+this.toSeconds(c))})):this.triggerRelease(t,o+this.toSeconds(e)),this}add(t,e,r){if(Y(Io(t)||isFinite(t),`note must be a pitch or midi: ${t}`),Io(t)){let n=new _e(this.context,t).toMidi();this._buffers.add(n,e,r)}else this._buffers.add(t,e,r);return this}get loaded(){return this._buffers.loaded}dispose(){return super.dispose(),this._buffers.dispose(),this._activeSources.forEach(t=>{t.forEach(e=>e.dispose())}),this._activeSources.clear(),this}};ye([Re(0)],Pa.prototype,"attack",void 0);ye([Re(0)],Pa.prototype,"release",void 0);var qn=class i extends P{constructor(){let t=I(i.getDefaults(),arguments,["fade"]);super(t),this.name="CrossFade",this._panner=this.context.createStereoPanner(),this._split=this.context.createChannelSplitter(2),this._g2a=new Ea({context:this.context}),this.a=new Z({context:this.context,gain:0}),this.b=new Z({context:this.context,gain:0}),this.output=new Z({context:this.context}),this._internalChannels=[this.a,this.b],this.fade=new rt({context:this.context,units:"normalRange",value:t.fade}),z(this,"fade"),this.context.getConstant(1).connect(this._panner),this._panner.connect(this._split),this._panner.channelCount=1,this._panner.channelCountMode="explicit",de(this._split,this.a.gain,0),de(this._split,this.b.gain,1),this.fade.chain(this._g2a,this._panner.pan),this.a.connect(this.output),this.b.connect(this.output)}static getDefaults(){return Object.assign(P.getDefaults(),{fade:.5})}dispose(){return super.dispose(),this.a.dispose(),this.b.dispose(),this.output.dispose(),this.fade.dispose(),this._g2a.dispose(),this._panner.disconnect(),this._split.disconnect(),this}};var Ee=class extends P{constructor(t){super(t),this.name="Effect",this._dryWet=new qn({context:this.context}),this.wet=this._dryWet.fade,this.effectSend=new Z({context:this.context}),this.effectReturn=new Z({context:this.context}),this.input=new Z({context:this.context}),this.output=this._dryWet,this.input.fan(this._dryWet.a,this.effectSend),this.effectReturn.connect(this._dryWet.b),this.wet.setValueAtTime(t.wet,0),this._internalChannels=[this.effectReturn,this.effectSend],z(this,"wet")}static getDefaults(){return Object.assign(P.getDefaults(),{wet:1})}connectEffect(t){return this._internalChannels.push(t),this.effectSend.chain(t,this.effectReturn),this}dispose(){return super.dispose(),this._dryWet.dispose(),this.effectSend.dispose(),this.effectReturn.dispose(),this.wet.dispose(),this}};var Po=class i extends P{constructor(){let t=I(i.getDefaults(),arguments,["pan"]);super(t),this.name="Panner",this._panner=this.context.createStereoPanner(),this.input=this._panner,this.output=this._panner,this.pan=new ht({context:this.context,param:this._panner.pan,value:t.pan,minValue:-1,maxValue:1}),this._panner.channelCount=t.channelCount,this._panner.channelCountMode="explicit",z(this,"pan")}static getDefaults(){return Object.assign(P.getDefaults(),{pan:0,channelCount:1})}dispose(){return super.dispose(),this._panner.disconnect(),this.pan.dispose(),this}};var Xf="bit-crusher",mv=`
191
+ class BitCrusherWorklet extends SingleIOProcessor {
192
+
193
+ static get parameterDescriptors() {
194
+ return [{
195
+ name: "bits",
196
+ defaultValue: 12,
197
+ minValue: 1,
198
+ maxValue: 16,
199
+ automationRate: 'k-rate'
200
+ }];
201
+ }
202
+
203
+ generate(input, _channel, parameters) {
204
+ const step = Math.pow(0.5, parameters.bits - 1);
205
+ const val = step * Math.floor(input / step + 0.5);
206
+ return val;
207
+ }
208
+ }
209
+ `;La(Xf,mv);var mi=class i extends P{constructor(){let t=I(i.getDefaults(),arguments,["channels"]);super(t),this.name="Merge",this._merger=this.output=this.input=this.context.createChannelMerger(t.channels)}static getDefaults(){return Object.assign(P.getDefaults(),{channels:2})}dispose(){return super.dispose(),this._merger.disconnect(),this}};var jrt=[1557/44100,1617/44100,1491/44100,1422/44100,1277/44100,1356/44100,1188/44100,1116/44100];var Urt=[1687/25e3,1601/25e3,2053/25e3,2251/25e3];var Ga=class i extends Ee{constructor(){let t=I(i.getDefaults(),arguments,["decay"]);super(t),this.name="Reverb",this._convolver=this.context.createConvolver(),this.ready=Promise.resolve();let e=this.toSeconds(t.decay);zt(e,.001),this._decay=e;let r=this.toSeconds(t.preDelay);zt(r,0),this._preDelay=r,this.generate(),this.connectEffect(this._convolver)}static getDefaults(){return Object.assign(Ee.getDefaults(),{decay:1.5,preDelay:.01})}get decay(){return this._decay}set decay(t){t=this.toSeconds(t),zt(t,.001),this._decay=t,this.generate()}get preDelay(){return this._preDelay}set preDelay(t){t=this.toSeconds(t),zt(t,0),this._preDelay=t,this.generate()}generate(){return yt(this,void 0,void 0,function*(){let t=this.ready,e=new pr(2,this._decay+this._preDelay,this.context.sampleRate),r=new Vi({context:e}),n=new Vi({context:e}),o=new mi({context:e});r.connect(o,0,0),n.connect(o,0,1);let s=new Z({context:e}).toDestination();o.connect(s),r.start(0),n.start(0),s.gain.setValueAtTime(0,0),s.gain.setValueAtTime(1,this._preDelay),s.gain.exponentialApproachValueAtTime(0,this._preDelay,this.decay);let a=e.render();return this.ready=a.then(ot),yield t,this._convolver.buffer=(yield a).get(),this})}dispose(){return super.dispose(),this._convolver.disconnect(),this}};var Wn=class i extends P{constructor(){let t=I(i.getDefaults(),arguments,["solo"]);super(t),this.name="Solo",this.input=this.output=new Z({context:this.context}),i._allSolos.has(this.context)||i._allSolos.set(this.context,new Set),i._allSolos.get(this.context).add(this),this.solo=t.solo}static getDefaults(){return Object.assign(P.getDefaults(),{solo:!1})}get solo(){return this._isSoloed()}set solo(t){t?this._addSolo():this._removeSolo(),i._allSolos.get(this.context).forEach(e=>e._updateSolo())}get muted(){return this.input.gain.value===0}_addSolo(){i._soloed.has(this.context)||i._soloed.set(this.context,new Set),i._soloed.get(this.context).add(this)}_removeSolo(){i._soloed.has(this.context)&&i._soloed.get(this.context).delete(this)}_isSoloed(){return i._soloed.has(this.context)&&i._soloed.get(this.context).has(this)}_noSolos(){return!i._soloed.has(this.context)||i._soloed.has(this.context)&&i._soloed.get(this.context).size===0}_updateSolo(){this._isSoloed()?this.input.gain.value=1:this._noSolos()?this.input.gain.value=1:this.input.gain.value=0}dispose(){return super.dispose(),i._allSolos.get(this.context).delete(this),this._removeSolo(),this}};Wn._allSolos=new Map;Wn._soloed=new Map;var Va=class i extends P{constructor(){let t=I(i.getDefaults(),arguments,["pan","volume"]);super(t),this.name="PanVol",this._panner=this.input=new Po({context:this.context,pan:t.pan,channelCount:t.channelCount}),this.pan=this._panner.pan,this._volume=this.output=new Ke({context:this.context,volume:t.volume}),this.volume=this._volume.volume,this._panner.connect(this._volume),this.mute=t.mute,z(this,["pan","volume"])}static getDefaults(){return Object.assign(P.getDefaults(),{mute:!1,pan:0,volume:0,channelCount:1})}get mute(){return this._volume.mute}set mute(t){this._volume.mute=t}dispose(){return super.dispose(),this._panner.dispose(),this.pan.dispose(),this._volume.dispose(),this.volume.dispose(),this}};var Ah=class i extends P{constructor(){let t=I(i.getDefaults(),arguments,["volume","pan"]);super(t),this.name="Channel",this._solo=this.input=new Wn({solo:t.solo,context:this.context}),this._panVol=this.output=new Va({context:this.context,pan:t.pan,volume:t.volume,mute:t.mute,channelCount:t.channelCount}),this.pan=this._panVol.pan,this.volume=this._panVol.volume,this._solo.connect(this._panVol),z(this,["pan","volume"])}static getDefaults(){return Object.assign(P.getDefaults(),{pan:0,volume:0,mute:!1,solo:!1,channelCount:1})}get solo(){return this._solo.solo}set solo(t){this._solo.solo=t}get muted(){return this._solo.muted||this.mute}get mute(){return this._panVol.mute}set mute(t){this._panVol.mute=t}_getBus(t){return i.buses.has(t)||i.buses.set(t,new Z({context:this.context})),i.buses.get(t)}send(t,e=0){let r=this._getBus(t),n=new Z({context:this.context,units:"decibels",gain:e});return this.connect(n),n.connect(r),n}receive(t){return this._getBus(t).connect(this),this}dispose(){return super.dispose(),this._panVol.dispose(),this.pan.dispose(),this.volume.dispose(),this._solo.dispose(),this}};Ah.buses=new Map;var Rat=Qt().transport;var Mat=Qt().destination,Eat=Qt().destination;var Dat=Qt().listener;var kat=Qt().draw;var Lat=Qt();var Ch=class{constructor(){d(this,"audioSource");try{let t=new Ga({decay:3,wet:.4}).toDestination(),e=new $r(800,"lowpass").connect(t);this.audioSource=new ja(Dr,{oscillator:{type:"triangle"},envelope:{attack:.001,decay:2,sustain:.1,release:1.2}}).connect(e)}catch(t){this.audioSource=void 0,console.error(t)}}getName(){return"Synthesizer"}playNote(t,e,r){try{this.audioSource&&(this.audioSource.volume.value=Js(r),this.audioSource.triggerAttackRelease(t,e))}catch(n){}}stop(){try{this.audioSource&&this.audioSource.releaseAll()}catch(t){}}},_h=new Ch;Ii();function _v(i){return typeof i=="string"?i:(typeof i=="number"&&(i=U.getChromaticNote(i)),i.format(0,0))}var qa=[_h],Un=_h,vv=(function(t,e,r){var o;let n=parseInt((o=r.split("/")[1])!=null?o:"4");return 60*(1/t)/(e*(1/n))})(2,80,"4/4"),Sv=1,Wa=!1;function wv(){return qa.map(i=>i.getName())}function Iv(){return Un.getName()}function Tv(i){(y.isArray(i)?i:[i]).forEach(t=>{if(!$.Obj.hasProperties(t,["getName","playNote","stop"])||!y.isFunction(t.getName)||!y.isFunction(t.playNote)||!y.isFunction(t.stop))throw new N(7,"Invalid instrument object: "+t);qa.some(e=>e.getName()===t.getName())?console.warn(`Instrument "${t.getName()}" already added!`):qa.push(t),Kf(t.getName())})}function Kf(i){if(i===Un.getName())return;Un.stop();let t=qa.find(e=>e.getName()===i);t&&(Un=t)}function Ua(i,t,e){Wa||Un.playNote(_v(i),t!=null?t:vv,e!=null?e:Sv)}function za(){Un.stop()}function Nv(){za(),Wa=!0}function Ov(){Wa=!1}function Rv(){return Wa}var Vh={};en(Vh,{Annotation:()=>Hn,Arpeggio:()=>fi,Clef:()=>Ui,Connective:()=>gi,DocumentBuilder:()=>Ar,DynamicsAnnotation:()=>Uo,Fermata:()=>Wo,Label:()=>Yo,LyricsAlign:()=>qo,LyricsHyphen:()=>Yn,MAccidental:()=>$o,MArpeggio:()=>ts,MBarLineLeft:()=>ls,MBarLineRight:()=>hs,MBeamGroup:()=>fs,MConnective:()=>xs,MDocument:()=>Zr,MEnding:()=>ps,MExtensionLine:()=>bs,MFermata:()=>ys,MHeader:()=>Ts,MImage:()=>Ho,MLyrics:()=>As,MMeasure:()=>_s,MNoteGroup:()=>is,MPlaybackButtons:()=>Gh,MPlayer:()=>Jn,MRenderContext:()=>Bh,MRest:()=>es,MRhythmColumn:()=>ss,MScoreRow:()=>Is,MScoreRowGroup:()=>ws,MSpecialText:()=>as,MStaff:()=>vs,MStaffBarLine:()=>ds,MStaffBeamGroup:()=>gs,MStaffNoteGroup:()=>ns,MStaffRest:()=>rs,MStaffSignature:()=>Ko,MTab:()=>Ss,MTabNoteGroup:()=>os,MTabRhythm:()=>Cs,MTabSignature:()=>Jo,MText:()=>Zo,MusicInterface:()=>xt,Navigation:()=>br,NoteAnchor:()=>Je,PlayState:()=>Za,ScoreEvent:()=>Os,ScoreObjectEvent:()=>Yi,ScoreStaffPosEvent:()=>zi,StaffPreset:()=>zn,Stem:()=>gr,TempoAnnotation:()=>zo,TieType:()=>yr,VerticalPosition:()=>Vo,getStringNumbers:()=>Ha,getVerseNumbers:()=>tg,getVoiceIds:()=>ae,isStringNumber:()=>Go,isVerseNumber:()=>$a,isVoiceId:()=>Ve,setColor:()=>Mv,validateStringNumber:()=>Ev,validateVerseNumber:()=>Dv,validateVoiceId:()=>Bo});var Jf={DrawDebugRects:!1,DisableBeams:!1},ct={DocumentScale:1,MinStaffWidth:75,MinColumnsWidth:10,ColumnWidthScale:1.7,PostMeasureBreakWidth:10,NoteDotSpace:.5,NoteAccSpace:.5,NoteHeadWidth:2,NoteHeadHeight:1.3,DiamondNoteHeadSize:1.8,DotSize:.8,StemHeight:7,FlagWidth:1.5,FlagHeight:4,FlagSeparation:2,BeamSeparation:1.25,BeamAngleFactor:.5,BeamThickness:4,RestDotSpace:.5,LedgerLineWidth:3.6,StubTieLength:5,StaffHeight:8,TabHeight:20},X={HilightStaffPos:"#55cc55",HilightObject:"#55cc55",PlayCursor:"#44aa44",Background:"white",Header_Title:"black",Header_Composer:"black",Header_Arranger:"black",RowGroup_Instrument:"black",RowGroup_Frame:"black",Staff_Frame:"black",Staff_Note:"black",Staff_Rest:"black",Staff_Connective:"black",Staff_Signature_Clef:"black",Staff_Signature_Key:"black",Staff_Signature_Time:"black",Staff_Signature_Tempo:"black",Staff_Signature_MeasureNum:"black",Staff_Element_Fermata:"black",Staff_Element_Annotation:"black",Staff_Element_Navigation:"black",Staff_Element_Label:"black",Tab_Frame:"black",Tab_Note:"black",Tab_Rest:"black",Tab_Connective:"black",Tab_Tuning:"black",Tab_Signature_Time:"black",Tab_Signature_Tempo:"black",Tab_Signature_MeasureNum:"black",Tab_Element_Fermata:"black",Tab_Element_Annotation:"black",Tab_Element_Navigation:"black",Tab_Element_Label:"black"};function Ya(i,t){return i.toLocaleLowerCase()===t.toLocaleLowerCase()}function Mv(i,...t){let e=t.length===1&&Ya(t[0],"background"),r=t.length===0;Ya(i,"")&&(i=e?"white":"black");let n=!0;for(let o in X){let s=o.split("_"),a=t.length>0&&t.every(u=>s.some(h=>Ya(u,h))),c=s.length===1&&Ya(s[0],"background");(r&&!c||a)&&(X[o]=i,n=!1)}n&&console.error(`Color attrs ${$.Str.stringify(t)} did not match any color.`)}var zn=(s=>(s.Treble="treble",s.Bass="bass",s.Grand="grand",s.GuitarTreble="guitarTreble",s.GuitarTab="guitarTab",s.GuitarCombined="guitarCombined",s))(zn||{}),Ui=(e=>(e.G="G",e.F="F",e))(Ui||{});function ae(){return[0,1,2,3]}function Ve(i){return y.isIncluded(i,ae())}function Bo(i){if(Ve(i))return i;throw new N(6,`Voice id ${i} is invalid!`)}function Ha(){return[1,2,3,4,5,6]}function Go(i){return y.isIncluded(i,Ha())}function Ev(i){if(Go(i))return i;throw new N(6,`String number ${i} is invalid!`)}function tg(){return[1,2,3]}function $a(i){return y.isIncluded(i,tg())}function Dv(i){if($a(i))return i;throw new N(6,`Verse number ${i} is invalid!`)}var gr=(r=>(r.Auto="auto",r.Up="up",r.Down="down",r))(gr||{}),fi=(e=>(e.Up="up",e.Down="down",e))(fi||{}),yr=(e=>(e.Stub="stub",e.ToMeasureEnd="toMeasureEnd",e))(yr||{}),Je=(o=>(o.Auto="auto",o.Above="above",o.Center="center",o.Below="below",o.StemTip="stemTip",o))(Je||{}),gi=(r=>(r.Tie="tie",r.Slur="slur",r.Slide="slide",r))(gi||{}),Vo=(n=>(n.Auto="auto",n.Above="above",n.Below="below",n.Both="both",n))(Vo||{}),qo=(r=>(r.Left="left",r.Center="center",r.Right="right",r))(qo||{}),Yn=(e=>(e.Hyphen="-",e.Extender="---",e))(Yn||{}),Wo=(e=>(e.AtNote="atNote",e.AtMeasureEnd="atMeasureEnd",e))(Wo||{}),br=(l=>(l.DC_al_Fine="D.C. al Fine",l.DC_al_Coda="D.C. al Coda",l.DS_al_Fine="D.S. al Fine",l.DS_al_Coda="D.S. al Coda",l.Coda="Coda",l.toCoda="toCoda",l.Segno="Segno",l.Fine="Fine",l.StartRepeat="startRepeat",l.EndRepeat="endRepeat",l.Ending="ending",l))(br||{}),Hn=(e=>(e.Dynamics="dynamics",e.Tempo="tempo",e))(Hn||{}),Uo=(p=>(p.cresc="cresc.",p.decresc="decresc.",p.dim="dim.",p.ppp="ppp",p.pp="pp",p.p="p",p.mp="mp",p.m="m",p.mf="mf",p.f="f",p.ff="ff",p.fff="fff",p))(Uo||{}),zo=(r=>(r.accel="accel.",r.rit="rit.",r.a_tempo="a tempo",r))(zo||{}),Yo=(e=>(e.Note="note",e.Chord="chord",e))(Yo||{}),Za=(r=>(r[r.Playing=0]="Playing",r[r.Paused=1]="Paused",r[r.Stopped=2]="Stopped",r))(Za||{});var Xa=class{constructor(t){d(this,"head");d(this,"tail");this.head=t,this.tail=[]}getHead(){return this.head}getTails(){return this.tail}addTail(t){this.tail.push(t)}detachTail(t){let e=this.tail.indexOf(t);e>=0&&this.tail.splice(e,1)}},tt=class{constructor(t){this.parent=t;d(this,"anchoredLayoutObjects",[]);d(this,"link");d(this,"userData",{});d(this,"rect",new G);d(this,"needRectUpdate",!0)}getParent(){return this.parent}requestRectUpdate(){this.needRectUpdate=!0}updateRect(){}forceRectUpdate(){this.needRectUpdate=!0,this.updateRect(),this.needRectUpdate=!1}getRect(){return this.needRectUpdate&&this.forceRectUpdate(),this.rect}offsetX(t){this.offset(t,0)}offsetY(t){this.offset(0,t)}setLeft(t){this.offset(t-this.getRect().left,0)}setRight(t){this.offset(t-this.getRect().right,0)}setTop(t){this.offset(0,t-this.getRect().top)}setBottom(t){this.offset(0,t-this.getRect().bottom)}setAnchor(t,e){this.offset(t-this.getRect().anchorX,e-this.getRect().anchorY)}setAnchorX(t){this.offset(t-this.getRect().anchorX,0)}setAnchorY(t){this.offset(0,t-this.getRect().anchorY)}setCenter(t,e){this.offset(t-this.getRect().centerX,e-this.getRect().centerY)}setCenterX(t){this.offset(t-this.getRect().centerX,0)}setCenterY(t){this.offset(0,t-this.getRect().centerY)}getShapeRects(){return[this.rect]}addAnchoredLayoutObject(t){this.anchoredLayoutObjects.push(t)}getAnchoredLayoutObjects(){return this.anchoredLayoutObjects}setLink(t){this.link=t}getLink(){return this.link}isLinked(){return this.link!==null}};var Qa;(function(i){i.AliceBlue="aliceblue",i.AntiqueWhite="antiquewhite",i.Aqua="aqua",i.Aquamarine="aquamarine",i.Azure="azure",i.Beige="beige",i.Bisque="bisque",i.Black="black",i.BlanchedAlmond="blanchedalmond",i.Blue="blue",i.BlueViolet="blueviolet",i.Brown="brown",i.BurlyWood="burlywood",i.CadetBlue="cadetblue",i.Chartreuse="chartreuse",i.Chocolate="chocolate",i.Coral="coral",i.CornflowerBlue="cornflowerblue",i.CornSilk="cornsilk",i.Crimson="crimson",i.Cyan="cyan",i.DarkBlue="darkblue",i.DarkCyan="darkcyan",i.DarkGoldenRod="darkgoldenrod",i.DarkGray="darkgray",i.DarkGreen="darkgreen",i.DarkGrey="darkgrey",i.DarkKhaki="darkkhaki",i.DarkMagenta="darkmagenta",i.DarkOliveGreen="darkolivegreen",i.DarkOrange="darkorange",i.DarkOrchid="darkorchid",i.DarkRed="darkred",i.DarkSalmon="darksalmon",i.DarkSeaGreen="darkseagreen",i.DarkSlateBlue="darkslateblue",i.DarkSlateGray="darkslategray",i.DarkSlateGrey="darkslategrey",i.DarkTurquoise="darkturquoise",i.DarkViolet="darkviolet",i.DeepPink="deeppink",i.DeepSkyBlue="deepskyblue",i.DimGray="dimgray",i.DimGrey="dimgrey",i.DodgerBlue="dodgerblue",i.FireBrick="firebrick",i.FloralWhite="floralwhite",i.ForestGreen="forestgreen",i.Fuchsia="fuchsia",i.Gainsboro="gainsboro",i.GhostWhite="ghostwhite",i.Gold="gold",i.GoldenRod="goldenrod",i.Gray="gray",i.Green="green",i.GreenYellow="greenyellow",i.Grey="grey",i.Honeydew="honeydew",i.HotPink="hotpink",i.IndianRed="indianred",i.Indigo="indigo",i.Ivory="ivory",i.Khaki="khaki",i.Lavender="lavender",i.LavenderBlush="lavenderblush",i.LawnGreen="lawngreen",i.LemonChiffon="lemonchiffon",i.LightBlue="lightblue",i.LightCoral="lightcoral",i.LightCyan="lightcyan",i.LightGoldenRodYellow="lightgoldenrodyellow",i.LightGray="lightgray",i.LightGreen="lightgreen",i.LightGrey="lightgrey",i.LightPink="lightpink",i.LightSalmon="lightsalmon",i.LightSeaGreen="lightseagreen",i.LightSkyBlue="lightskyblue",i.LightSlateGray="lightslategray",i.LightSlateGrey="lightslategrey",i.LightSteelBlue="lightsteelblue",i.LightYellow="lightyellow",i.Lime="lime",i.LimeGreen="limegreen",i.Linen="linen",i.Magenta="magenta",i.Maroon="maroon",i.MediumAquamarine="mediumaquamarine",i.MediumBlue="mediumblue",i.MediumOrchid="mediumorchid",i.MediumPurple="mediumpurple",i.MediumSeaGreen="mediumseagreen",i.MediumSlateBlue="mediumslateblue",i.MediumSpringGreen="mediumspringgreen",i.MediumTurquoise="mediumturquoise",i.MediumVioletRed="mediumvioletred",i.MidnightBlue="midnightblue",i.MintCream="mintcream",i.MistyRose="mistyrose",i.Moccasin="moccasin",i.NavajoWhite="navajowhite",i.Navy="navy",i.OldLace="oldlace",i.Olive="olive",i.OliveDrab="olivedrab",i.Orange="orange",i.OrangeRed="orangered",i.Orchid="orchid",i.PaleGoldenRod="palegoldenrod",i.PaleGreen="palegreen",i.PaleTurquoise="paleturquoise",i.PaleVioletRed="palevioletred",i.PapayaWhip="papayawhip",i.PeachPuff="peachpuff",i.Peru="peru",i.Pink="pink",i.Plum="plum",i.PowderBlue="powderblue",i.Purple="purple",i.RebeccaPurple="rebeccapurple",i.Red="red",i.RosyBrown="rosybrown",i.RoyalBlue="royalblue",i.SaddleBrown="saddlebrown",i.Salmon="salmon",i.SandyBrown="sandybrown",i.SeaGreen="seagreen",i.SeaShell="seashell",i.Sienna="sienna",i.Silver="silver",i.SkyBlue="skyblue",i.SlateBlue="slateblue",i.SlateGray="slategray",i.SlateGrey="slategrey",i.Snow="snow",i.SpringGreen="springgreen",i.SteelBlue="steelblue",i.Tan="tan",i.Teal="teal",i.Thistle="thistle",i.Tomato="tomato",i.Turquoise="turquoise",i.Violet="violet",i.Wheat="wheat",i.White="white",i.WhiteSmoke="whitesmoke",i.Yellow="yellow",i.YellowGreen="yellowgreen"})(Qa=Qa||(Qa={}));var yi;(function(i){i.Hex="hex",i.RGB="rgb",i.Array="array"})(yi=yi||(yi={}));var vh={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]};for(let i in vh)Object.freeze(vh[i]);var eg=Object.freeze(vh);var Sh=eg;var wh={hash:!0,lowercase:!1,short:!1};function Ih(i,t){let e=O(O({},wh),t),{hash:r,lowercase:n,short:o}=e,s=i.map(a=>{let c=a.toString(16);return c=c.length===1?`0${c}`:c,c}).join("");if(o){let a=[...s];a[0]===a[1]&&a[2]===a[3]&&a[4]===a[5]&&(s=`${a[0]}${a[2]}${a[4]}`)}return s=n?s.toLowerCase():s.toUpperCase(),r&&(s=`#${s}`),s}function Th(i,t=1){return t=Math.min(1,Math.max(0,t)),t<1?`rgba(${i[0]}, ${i[1]}, ${i[2]}, ${t})`:`rgb(${i[0]}, ${i[1]}, ${i[2]})`}var kv=Q(O({},wh),{fallback:!0,alpha:1,format:yi.Hex});function Nh(i,t={}){let e=O(O({},kv),t),{fallback:r,format:n,hash:o,lowercase:s,short:a,alpha:c}=e;i=`${i}`;let u=i.toLowerCase().replaceAll(/[^a-z]/g,""),h=Sh[u];if(!h){if(!r)throw new Error(`no matching color found for '${i}'`);let l=i.toLowerCase().replaceAll(/[^\da-f]/g,"");h=(l.length<=3?[l.slice(0,1).repeat(2),l.slice(1,2).repeat(2),l.slice(2,3).repeat(2)]:[l.slice(0,2),l.slice(2,4),l.slice(4,6)]).map(p=>Number.parseInt(p.length<2?`${"0".repeat(2-p.length)}${p}`:p,16))}switch(n){case yi.Array:return[...h];case yi.RGB:return Th(h,c);default:return Ih(h,{hash:o,lowercase:s,short:a})}}var rg="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAACWCAYAAACCe+v6AAADHXpUWHRSYXcgcHJvZmlsZSB0eXBlIGV4aWYAAHja7ZZRcu0mDIbfWUWXgCSExHIwmJnu4C6/Pxg7J2kyTdv7GJhjsJCF0CfZJ5y//hzhDzRK5iGpeS45R7RUUuGKicerHetKMa3ratL2Gr2Xh5L3AkMkU/O6LbzlJ+SY074vexO69W9D94QqZvq2UOuWH+/lxzbI/tHQ9kDo2jn2/cA2JLw9Std92x7l4vbuaH2fGYqXyN9+SYyzZrKEa+JolgvmzjEZ4tmno6NxWYb0CugjuO9vVYZPfApJxFUkXV7K/IlUjBlXrAYokhhuFMK5UFbgI1DCBXha9kY1PsF8jc1bjL5o3zlWxCbjnMov1J7xQ97k/HnePLOdBg81z3tB3mON+Rk/lZPehu4Fefbh1529PTu/k4vE9BqK8Ip7jO5jHRqnqCkjFnkf6j7KmkHvmFFcT2V0izkgax2T2Qu6xxobcqrHhko7MC/EoDsoUadKg841NmpwMfHJhpG5BZYldEAq3GQmQ5qdBpsU6eLImHblkPDjC61ty9qukcceYieoMsEY4ZH/3MN3FceYtUQU/YoT0gJ+8axOeBEJ+OcANTCgsYOqK8B3/9gm18lMV5gdB6zxCJeJQ+ktuWSBFigqxgsyWd8GECJsrXCGBARiJlHK8MiYjQiBdACqcJ0l8QECpModTnISyYCD6sDeeMZoqbLyJcZbVVJAsWYUrYNQBayUFPljyZFDVUWTqmY1dS1as+RZeTlbnq/namLJ1LIZ3tlWrLp4cvXs5u7Fa+EieH1rQZ0WL6XUik0rLFc8XaFQ68GHHOnQIx92+FHCURvSp6WmLTdr3kqrnbt0FHjP3br30utJJ1LpTKee+bTTz3LWgVQbMtLQkYeF4aOM+lCjXbYf+7+gRpsaL1JT0R5qkJrdJmi+TnQyAzFOBOAGaiCGxJ7MolNKPMlNZvgeoSqU4aROOJ0mMRBMJ7EOethtcoHr7+EWzBc3/r/kwkT3TXJ/5/YZtT6/Em0Ru8pwBjUKqg/rp1f2Oj+vX47hnxS+O/4Y+jH0Y+jrcYwROv51hb8AKbCqdGIdCl0AAAGFaUNDUElDQyBwcm9maWxlAAB4nH2RPUjDQBzFX1O1UqoOdhBxyFCd7OAH0rFUsQgWSluhVQeTS7+gSUOS4uIouBYc/FisOrg46+rgKgiCHyCuLk6KLlLi/5JCi1gPjvvx7t7j7h0gNCpMNXuigKpZRioeE7O5VdH3ij74MYgpRCRm6on0YgZdx9c9PHy9C/Os7uf+HANK3mSARySOMt2wiDeI5zYtnfM+cZCVJIX4nHjSoAsSP3JddvmNc9FhgWcGjUxqnjhILBY7WO5gVjJU4lnikKJqlC9kXVY4b3FWKzXWuid/YSCvraS5TnMMcSwhgSREyKihjAoshGnVSDGRov1YF/+o40+SSyZXGYwcC6hCheT4wf/gd7dmYWbaTQrEgN4X2/4YB3y7QLNu29/Htt08AbzPwJXW9lcbQOST9HpbCx0BQ9vAxXVbk/eAyx1g5EmXDMmRvDSFQgF4P6NvygHDt4B/ze2ttY/TByBDXS3fAAeHwESRste7vLu/s7d/z7T6+wEMNXLkxtwRywAADzRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+Cjx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDQuNC4wLUV4aXYyIj4KIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIgogICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKICAgIHhtbG5zOkdJTVA9Imh0dHA6Ly93d3cuZ2ltcC5vcmcveG1wLyIKICAgIHhtbG5zOnRpZmY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vdGlmZi8xLjAvIgogICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICB4bXBNTTpEb2N1bWVudElEPSJnaW1wOmRvY2lkOmdpbXA6NDA3ODVjMzYtNDAxZC00YTZlLTkxODctMDQ1NTI4MmM0ZGY2IgogICB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjhiZTJkYzc1LTVlYjQtNDk0Yy1iNWRlLWQ2MzZkNzZhNjI2YiIKICAgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOmU3YWE0MWNhLTNiYjMtNGU5Yi05NDQxLTllNTNmZTJiZjM5ZiIKICAgZGM6Rm9ybWF0PSJpbWFnZS9wbmciCiAgIEdJTVA6QVBJPSIyLjAiCiAgIEdJTVA6UGxhdGZvcm09IldpbmRvd3MiCiAgIEdJTVA6VGltZVN0YW1wPSIxNjg2NDA4NjA5MzE2NDM4IgogICBHSU1QOlZlcnNpb249IjIuMTAuMzQiCiAgIHRpZmY6T3JpZW50YXRpb249IjEiCiAgIHhtcDpDcmVhdG9yVG9vbD0iR0lNUCAyLjEwIgogICB4bXA6TWV0YWRhdGFEYXRlPSIyMDIzOjA2OjEwVDE3OjUwOjA5KzAzOjAwIgogICB4bXA6TW9kaWZ5RGF0ZT0iMjAyMzowNjoxMFQxNzo1MDowOSswMzowMCI+CiAgIDx4bXBNTTpIaXN0b3J5PgogICAgPHJkZjpTZXE+CiAgICAgPHJkZjpsaQogICAgICBzdEV2dDphY3Rpb249InNhdmVkIgogICAgICBzdEV2dDpjaGFuZ2VkPSIvIgogICAgICBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjI3MzY2YmY0LWVkZDMtNDE5OC05NjJhLWU5ZTM5MTBlNThiZSIKICAgICAgc3RFdnQ6c29mdHdhcmVBZ2VudD0iR2ltcCAyLjEwIChXaW5kb3dzKSIKICAgICAgc3RFdnQ6d2hlbj0iMjAyMi0wOC0yMlQwMjo1NTozNiIvPgogICAgIDxyZGY6bGkKICAgICAgc3RFdnQ6YWN0aW9uPSJzYXZlZCIKICAgICAgc3RFdnQ6Y2hhbmdlZD0iLyIKICAgICAgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDo5NjVlMTM3OS0wZDlmLTQ5ODItYWQ3MC05MzhjOWMzOWE0ZjMiCiAgICAgIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkdpbXAgMi4xMCAoV2luZG93cykiCiAgICAgIHN0RXZ0OndoZW49IjIwMjItMDktMTFUMTY6MzU6MDAiLz4KICAgICA8cmRmOmxpCiAgICAgIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiCiAgICAgIHN0RXZ0OmNoYW5nZWQ9Ii8iCiAgICAgIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6MTBmYmEwYTMtOTI5Yi00NTRlLThjNGMtOGVkOGM4YWJhZGRjIgogICAgICBzdEV2dDpzb2Z0d2FyZUFnZW50PSJHaW1wIDIuMTAgKFdpbmRvd3MpIgogICAgICBzdEV2dDp3aGVuPSIyMDIzLTA2LTEwVDE3OjUwOjA5Ii8+CiAgICA8L3JkZjpTZXE+CiAgIDwveG1wTU06SGlzdG9yeT4KICA8L3JkZjpEZXNjcmlwdGlvbj4KIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAKPD94cGFja2V0IGVuZD0idyI/Ppn4NIQAAAAGYktHRAD/AP8A/6C9p5MAAAAJcEhZcwAALiMAAC4jAXilP3YAAAAHdElNRQfnBgoOMgm5WlWBAAAAGXRFWHRDb21tZW50AENyZWF0ZWQgd2l0aCBHSU1QV4EOFwAACHtJREFUeNrtnXuQVmMcxz+77cauTWUpbGSVu2w3BpnUEBq3chkmBjGayG1GBuNWLtUgw5SJkBkjl4QKg1wyQyarK0lRSlstU20bWam9+OM8O3P6vc8553nOe97tnO18Z84f57zP7XvOc/ndnueFfQx5e6neUmAI0B3oDPwD/AJ8Dvzcml5we+Al4D+gyeOaB1S0BrLHAut9iLqvf4ERSSZbBmwwJOu+RieV8JwQZJuARjXWE4WBIck2X38AByaJ8MwsCTcBTyWFbCFQFwHhv4DiKBqUn2PCPYEin9+bgI3AUuBPn3TtgMuT8IWv8vlq7wLdRPrTgPke6d9JAuFbPBo/3UfKK1TCh8yzIQmEb/cYjx0C8pUDuzV5D477GN6mefY+UBuQby0wV/O8U9wJr9E8W2iY92vNs45xJ6zTfKoN827UPNsdd8K1SlJyo8Awb7XhEIkVYYAVmjXVBPtr1uyqJBBeLu5LDPMdppkPdiaRcHvDfKeJ+++SIFoCLBP3R1toWW58lhQFogiodwkPlYZf1y1w/AcclCQVcYWQtILwqiA8M2lGgDcFgSN90nbXiJUXRdWQ/BYiLMdxH5+0k8VavRb4JGmEl4j7vh7pRgDni2fj1RyQKBwiuqjui/Un015dBbQloXCbaTdrZuUajTp4IwnGbEHmKPX8QmCHhuwC9p4rKBI8IghdB0zCsT1Lsg0+4zwxuEiQqqcVmGWDlAETk+zSJE9Ublyjuqof2TrgxKQT7anMNSZfd1iSiZYCUwy+avP1dJLJXglsxdyV8hHQJolEDwBewc5v9J3Klzj0xYnTsCG7W4mdicMdwC7CeQaPTBLRAjUxZeMKvSwpZPcDPghBUGpE45JAthjH92NLdiUwSDz7NO5k24YkuwTHGZYvtKMtcSabD7wVguy37OkilU7v8rgSfjoE2c816+wkkebKOJK9NgTZ2Wpykxgu0k2IG9lTcMIBbchOx9tTWKHpBbFBoZpwbMi+iL9FtEC8wG1xIvyQJdlJhuVWinzd4kD2cJxYZlOyky3KfkHkvSoOhF+2IPu8Zdk3x82O1QV96JDumhJSu5KB4XsVEwzJziCcy2Z/8UK3K5G1PZnhDi2iBW02IDvPY501xY8BuvJ6JcY+AQzAPCDGGucZkF2GefiCxFk4AWoN2K0AG4HHiSBATWJqQMXr1Qxui3Jlv8o2nHiHIl4UFeF1+G/ACOMGuZVoYqfd12qgX7ZkuwZUMjyEoWBaxETd1y5gVDaEr/YpfGqIyW9ODsm6r7FhCY/z6T625tTpLUS2+bo3DOHZHoVdYFnOqBYmG3rbz1JNQbZ2p2MsZfAor604G8OMsUVTyEBLwjMsv4r7vkapl28AH+PEWNqu1++ZNjRPk3mFJdnjDBu4HBipVoUGsewVaGb6fjgRPSsMSQ8wNb/KjA9bEp5osIzcLUitEml6BNQxxGPoWVtROmoynmFJ+CefRvytxFaJt0W6GwwtqE8GkA56cZSSGVxiI74FhTUM9ch3f0irCerleNU3wbZL2xrJzwhp+hks0s6PaBitMsnsXk7WWlY8xKPi7fjvOZI94x/sHOQFPobGw+U4kHBvrrDVRrw2RE4L6C3V7Ln3sBg43qLeeuAxj996BxHeJCYxm2i4Gh8RMwjL/BpqgA/VpKgTgnwJuzdXtbWUWpZpntUCiwwlPDf6WBLeBSzWPO8URFjuHOthUWm1ptJFaizZErb9wvJjNaMkiLDck2CrYD8n7k13hUrCvUIYB3Vdui6I8FI1qzbjUstKXwe+EV3aBKtE40pwjsKwwQEeuoEv4d3ALNf9ycCpFpU24ngRVrvkYNN8y7Ps1rqlb3MQYXCc3m7YytOb1FCYa2lhzHbiqjAoU4s2GoG+D+Fg85VGijq/ssh7qEboqLGZB6QDvBLHdZpLnK6R0EzlgNs0hGfZVJ6v1lV3ARNzTLhYo0sfY5h3sYWy4ole7Blh16ismrnEStFok/ou05BdR8iA1QfJDN2/PoeEZZTQkwZL0RoN4bvCNiCPzONlGpVJNBe7Tu4TdX1h2bbmmLCCbMfWAvTew6iDQy/QzLReZJ/RtKk+pFiagXZqmdCdyzGG8J5Eic6aOuSe4yK8A+RGRfn2/SqqwdmbVBZBPX/gHbh2MfAbEbtbTAQEr7itehyX6DDCn6zyCZlhUHcoTc7Ltj2WHKNcLexBRvaFaqxdr0Q/k2OixmNudN9uo+BEMcsOAB4AzrXIU6vUxlrVU3YqJaMEOELZoUzW0PeBezz04JyjN07o0mZy7zD7EjiTmKAQOAfHJlyJ/xmWtsHlo1UPCI28FnoBJym9urtaYspwdrOUKkmprerC/6pl7lel/HdxlTORBB/7aIJnLSQuK40orlisUWRaNXpoxnHX1ky4DZlhTkNbc5duwAlNjLRb58f8Ky/e1wgv2dcmrr6aiSur3agFOWxsL6XM91a6crUSCWfi+H9NoDtEsIKY7YI52sNQ4D5uZpBFeTKMamScyJqeFL4L8yOjfhB5x8Rp0ppoaPEoBF4j86A/HerEfUlcCB8GXGGRvqPSZYPQIeAF7DXC/bE3fJsY2eWsvCEuhMtC9oouAROgPPxveVwIN4TM53f08tnifgfmh/nmnPC6kPk2+fx2k7ifpWb4WKAT9mG+foFvMqqvkRj+pYntFp0HPMrZj8wg1VieEd8Tc6NdFXr3TCFOgLc77TZifE7AaAOyv+MY9iS64pxBK7vyJXHWcLy8eu4T0dybo9vhBMBMJvMwwEbgzqSodnfhvxOtDieQzOv3ncRkE7UNytV4tJ295+LsnUgsugKPAt/jvQm7DmcX2+Bcj7eWRjFwAo4rtYOa1avUMrSTFClSpEiRIkWKFClSpEiRIkWKFClSpEiRIkWKFClSpEiRIgL8D6ed2EKeJMaTAAAAAElFTkSuQmCC";var ig="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAABGCAYAAACQRffVAAADInpUWHRSYXcgcHJvZmlsZSB0eXBlIGV4aWYAAHja7VdbktwgDPznFDkCkgCJ4/AwVblBjp8GY+/OZFPZPD7yMVADWIiWUEt2jTu+fR3uCxplTi5EtZRT8mghh8wFC/Nnq2skH9a4mrS9R49yF9LeYIhkap6Pmbf8gBxr2s95G6FL/wK6FlSwim8bpWx5fZTXDcj2DLQ3hE7Lvu8DG0h4exTO57Y9Stn04Wp93xmKp8jefkGUU0ykAWNgr5oy1sY+KOLZp6PcznP31S7B9XypMnziQ0g8RpFweinzJ1IwJ4wk4qA4hUXiGlmWGTiUEG4Fbj6BR/F3MN/H5i1GP2mfuZaHkXFM5XdXu+envOn147y5VzsN3JU3lvaGPNLq0z1/KKd4AV0bctvh95at3ZYf5ENWdt3Nvad7jG5jXRq3KCEhFmlf6rrKWkGvziiuUwldfXLANSxmz+jmi2/Iqe4bKq1inYnB/aBAnQoNOtbcqMHFwAcrZubmWJbQQFLmhlQgCbPTYJUsXQwp0c4cEr59oWU2L3ONzHfnO0GVCWCEI3/c3WcVx5i1ROTtjBM8g188qxNeeAL9c4IaGKGxgxpXgK/+3CavAgbjCrPhgsVXd0LUSG/JJYvoSW/EfFY9ad8ACBFMRzhDAgZ8IomU4JEyKxECaSCowHWWwBUMUIzc4SQHkQRyUB2wjTNKS5Ujn2K8VSU4FGsSBTdZCsgKISJ/NBhyqESJIcaYokaLOZYkaVZeSprm67moaNCoSVXNadZiYsGiJVMzy1YyZ8HrO2bUabaccykwWoBccLpAoZTKVWqosaaq1Wp2tTSkTwstttS0WcutdO7SUeA9de3Wcy8HHUilIxzxSIceduSjDKTakBFGHGmoGzbyKDdrtMv2uf8Ga7RZ48XUVNSbNUhVLwiar5M4OQNjHAiEK1gDY0jsyZk3CoEnc5MzfI9QFZHhZJzkdJqMgcFwEMdBN3ebOcfl3/Dm1BZv/LfMuUndJ5n7kbePWOvzK9EWY2cZzqB6QfVh/7DCVubn9aez+5XCZ+cX0AvoBfQCegG9gP57oIEPJ/4Bue+bLIaQwqExNwAAAYVpQ0NQSUNDIHByb2ZpbGUAAHicfZE9SMNAHMVfU7UiFQeLijhkqE4WREUcSxWLYKG0FVp1MLn0Q2jSkKS4OAquBQc/FqsOLs66OrgKguAHiKuLk6KLlPi/pNAixoPjfry797h7Bwj1MlPNjiigapaRisfEbG5FDLyiC0EMYgIDEjP1RHohA8/xdQ8fX+8iPMv73J+jV8mbDPCJxFGmGxbxOvHMpqVz3icOsZKkEJ8Tjxt0QeJHrssuv3EuOizwzJCRSc0Rh4jFYhvLbcxKhko8TRxWVI3yhazLCuctzmq5ypr35C8M5rXlNNdpjiCORSSQhAgZVWygDAsRWjVSTKRoP+bhH3b8SXLJ5NoAI8c8KlAhOX7wP/jdrVmYmnSTgjGg88W2P0aBwC7QqNn297FtN04A/zNwpbX8lTow+0l6raWFj4C+beDiuqXJe8DlDjD0pEuG5Eh+mkKhALyf0TflgP5boGfV7a25j9MHIENdLd0AB4fAWJGy1zze3d3e279nmv39ANCccsygwwDVAAAQE2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNC40LjAtRXhpdjIiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iCiAgICB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIgogICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgeG1sbnM6R0lNUD0iaHR0cDovL3d3dy5naW1wLm9yZy94bXAvIgogICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgIHhtcE1NOkRvY3VtZW50SUQ9ImdpbXA6ZG9jaWQ6Z2ltcDo0MDc4NWMzNi00MDFkLTRhNmUtOTE4Ny0wNDU1MjgyYzRkZjYiCiAgIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6Nzg3YjYxN2YtMjg1MS00YzhlLTg2MTYtZWM3NGMwYzYwMWVlIgogICB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6ZTdhYTQxY2EtM2JiMy00ZTliLTk0NDEtOWU1M2ZlMmJmMzlmIgogICBkYzpGb3JtYXQ9ImltYWdlL3BuZyIKICAgR0lNUDpBUEk9IjIuMCIKICAgR0lNUDpQbGF0Zm9ybT0iV2luZG93cyIKICAgR0lNUDpUaW1lU3RhbXA9IjE2ODY2MTM5NDcxOTU2ODAiCiAgIEdJTVA6VmVyc2lvbj0iMi4xMC4zNCIKICAgdGlmZjpPcmllbnRhdGlvbj0iMSIKICAgeG1wOkNyZWF0b3JUb29sPSJHSU1QIDIuMTAiCiAgIHhtcDpNZXRhZGF0YURhdGU9IjIwMjM6MDY6MTNUMDI6NTI6MjUrMDM6MDAiCiAgIHhtcDpNb2RpZnlEYXRlPSIyMDIzOjA2OjEzVDAyOjUyOjI1KzAzOjAwIj4KICAgPHhtcE1NOkhpc3Rvcnk+CiAgICA8cmRmOlNlcT4KICAgICA8cmRmOmxpCiAgICAgIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiCiAgICAgIHN0RXZ0OmNoYW5nZWQ9Ii8iCiAgICAgIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6MjczNjZiZjQtZWRkMy00MTk4LTk2MmEtZTllMzkxMGU1OGJlIgogICAgICBzdEV2dDpzb2Z0d2FyZUFnZW50PSJHaW1wIDIuMTAgKFdpbmRvd3MpIgogICAgICBzdEV2dDp3aGVuPSIyMDIyLTA4LTIyVDAyOjU1OjM2Ii8+CiAgICAgPHJkZjpsaQogICAgICBzdEV2dDphY3Rpb249InNhdmVkIgogICAgICBzdEV2dDpjaGFuZ2VkPSIvIgogICAgICBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjk2NWUxMzc5LTBkOWYtNDk4Mi1hZDcwLTkzOGM5YzM5YTRmMyIKICAgICAgc3RFdnQ6c29mdHdhcmVBZ2VudD0iR2ltcCAyLjEwIChXaW5kb3dzKSIKICAgICAgc3RFdnQ6d2hlbj0iMjAyMi0wOS0xMVQxNjozNTowMCIvPgogICAgIDxyZGY6bGkKICAgICAgc3RFdnQ6YWN0aW9uPSJzYXZlZCIKICAgICAgc3RFdnQ6Y2hhbmdlZD0iLyIKICAgICAgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDoxMGZiYTBhMy05MjliLTQ1NGUtOGM0Yy04ZWQ4YzhhYmFkZGMiCiAgICAgIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkdpbXAgMi4xMCAoV2luZG93cykiCiAgICAgIHN0RXZ0OndoZW49IjIwMjMtMDYtMTBUMTc6NTA6MDkiLz4KICAgICA8cmRmOmxpCiAgICAgIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiCiAgICAgIHN0RXZ0OmNoYW5nZWQ9Ii8iCiAgICAgIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6MDBmYjM4YTMtZjZiMi00NjQ1LTliMTYtMjlhNWE0ODZlMjhhIgogICAgICBzdEV2dDpzb2Z0d2FyZUFnZW50PSJHaW1wIDIuMTAgKFdpbmRvd3MpIgogICAgICBzdEV2dDp3aGVuPSIyMDIzLTA2LTEzVDAyOjUyOjI3Ii8+CiAgICA8L3JkZjpTZXE+CiAgIDwveG1wTU06SGlzdG9yeT4KICA8L3JkZjpEZXNjcmlwdGlvbj4KIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAKPD94cGFja2V0IGVuZD0idyI/PsIRrtIAAAAGYktHRAD/AP8A/6C9p5MAAAAJcEhZcwAALiMAAC4jAXilP3YAAAAHdElNRQfnBgwXNBsqJURsAAAAGXRFWHRDb21tZW50AENyZWF0ZWQgd2l0aCBHSU1QV4EOFwAABF9JREFUeNrtmluIF1Ucxz9/E8P1VnnJ9dJWC4Frmq2JJmqolGEILoQvK2gZeXlRCSm1Fx9UEsJQERWsXhRftECs0Gq70EK9ZHlbFyHbds3VVXFX91+7664P81tYhpnfmft//st84TzMzDm/8/vOnPO7nYEMGTJkyJAhQ4YMGSJBLkJZw4FyYAIwDHgU+A9oAxqBv4C7xfyySoBlwKfAFaAb6DG0euAzoAoYXCxEnwH2A60eCGrtFrALGJNWokNEwY6QRO2tFXgPGJAmss8DlyImam/fASPTQHaeGJueBFod8FQhrfSLwM+ynDX8L1/oV+BP4LZY58eBUUAlMB94ycPSvQTMERmJ4jGgwYPh2Qg84VFmGbAP6DTI/aoQS/lzg1JfA2MDyn4ZuGaQvyZJspUGv3oKGBhyjmeBJmWOmxLMJIITiiIXIgwaZgFdylxbDeNHANXAZmAVUBpEiScNe2xRxC/3Y2WuRmUlLRHD1rd/HljvV4F3FAVqYlhNo4B7Pl/wdPEMbmOq/ShwRBH0Vkxb6LAy536fW64HuOpn8vOKoLKYCC9Q5rzs0L/JQxDjyYPkgHYXAW0xGslByrLuFuPUFw0eCI92mmiAQ4LgZoEbYyTcAZxVPsJk271ag7x6cWueCLvhfsyu8LzybKLtersUF9ywxe2BnXBnAZOUJuXZeNv1OSki3LLdzwPrgONuguw+7g7wAHjEoW+vEagAXgeelr1yUSZoCUn4hvJsqMO9byRaWyLGtFkiwOtBJnYzBKcVg/ZuSMIrlHl3RrWMnFK1OqX/q8oXOAisDqFLVxL7xonw9yHk7Q5RoxpuyLdjI3wmhLzBwMqAY0ck4SGcCNeKIQqKOTF84RtxEu4BPgohc2QM467HSRjgqBL5mBDUPU1Rnl1JwqBNUuJqrW0M+OLdYuk8Cdas38Rf4b3FR0HP/nLdZNYaioKbxSVuA6ZGQfoNvNWlO6VvEKxW5O5yGbNc4ml7ZrUtCtLjgGMSdjop9Q+wMIT8GoXwKw79ZxrKUG9r+a8flMoyr5AA4ybwo1QgggYHpZJ6Ou3Ta5IpddvufwEsVWQ2xFisCI1Nypf6RMmsIql4JI0S8bFuSs9UvmCgikeh8b6i8C/KuKOYD+VShzGSwLsprRnByYYYoSqNhE8qCv/kYfxrYjT7jmuPIC+PBWsVsl1YRzBeE45qqWGtwjo1SR0WoZ8a7KAfYa5h7/2OVaPuF1gqtS83srclpi565IAP0c+b7wOz+wPZckOc3Jt0LC52oiXABx7y6VasGnfRYgiwwRAu9raGqPLXQmAGcADvvyN+m9bgXnP4i4E9wN8+KiJ5WQG5QilumnioJP9lwHPANKw/fF7A+fxJw2ms/y9SFdiPBf4Vn9hJNL8T/iFxbyoxgej+m6zBOtnLpXlvhiXcDOyVJV8UCEL4KnBI/OnAtBP0q+ADMTq/SfshrdUFr4TzwJdY9d57WIdYzRIk1GMdeXSQIUOGDBmSwUMtd8u2ArdcUAAAAABJRU5ErkJggg==";var Lv=new lt([[0,rg],[1,ig]]),jv=i=>Lv.getOrDefault(i,""),Pv=new xl;function Fv(i,t=1){let e=Nh(i).replace("#",""),r=parseInt(e.slice(0,2),16),n=parseInt(e.slice(2,4),16),o=parseInt(e.slice(4,6),16),s=Math.round(t*255);return[r,n,o,s]}function Bv(i,t){return!i&&!t?!0:!i||!t?!1:i.scoreRow===t.scoreRow&&i.diatonicId===t.diatonicId}function Gv(i,t){return!i&&!t?!0:!i||!t?!1:i.length===t.length&&i.every((e,r)=>e===t[r])}var Ka=class{constructor(t){this.mi=t;d(this,"devicePixelRatio");d(this,"fontSize");d(this,"unitSize");d(this,"_lineWidth");d(this,"scoreEventListener");d(this,"canvas");d(this,"ctx");d(this,"mdoc");d(this,"cursorRect");d(this,"mousePos");d(this,"curStaffPos");d(this,"curObjects");d(this,"hilightedStaffPos");d(this,"hilightedObj");d(this,"usingTouch",!1);d(this,"onClickFn");d(this,"onMouseMoveFn");d(this,"onMouseLeaveFn");d(this,"onTouchEndFn");this.devicePixelRatio=window.devicePixelRatio,this.fontSize=Vs.FontSize*ct.DocumentScale*this.devicePixelRatio,this.unitSize=this.fontSize*.3,this._lineWidth=this.unitSize*.2,this.onClickFn=this.onClick.bind(this),this.onMouseMoveFn=this.onMouseMove.bind(this),this.onMouseLeaveFn=this.onMouseLeave.bind(this),this.onTouchEndFn=this.onTouchEnd.bind(this)}getMusicInterface(){return this.mi}get doc(){var t;return(t=this.mdoc)==null?void 0:t.getMusicObject()}getImageAsset(t,e){var r;return e!=null||(e=""),(r=Pv.getOrCreate(t,e,()=>{let n={src:jv(t),color:e,loaded:!1,colorized:!1},o=new Image;return o.src=n.src,o.onload=()=>{n.img=o,this.onImageLoaded(n)},o.onerror=()=>{console.error("Failed to load image: "+n.src)},n}))==null?void 0:r.img}forceDraw(){var t;(t=this.doc)==null||t.requestFullLayout(),this.draw()}onImageLoaded(t){if(t.loaded||!t.img)return;if(t.colorized||t.color===""){this.forceDraw(),t.loaded=!0;return}let[e,r,n,o]=Fv(t.color),s=40,a=document.createElement("canvas");a.width=t.img.width,a.height=t.img.height;let c=a.getContext("2d");if(c==null){console.error("Failed to colorize image: ctx = null.");return}c.drawImage(t.img,0,0);let u=c.getImageData(0,0,a.width,a.height),h=u.data;for(let l=0;l<h.length;l+=4){let p=h[l],m=h[l+1],f=h[l+2];h[l+3]!==0&&p<s&&m<s&&f<s&&(h[l+0]=e,h[l+1]=r,h[l+2]=n)}c.putImageData(u,0,0),t.img.src=a.toDataURL("image/png"),t.img.onload=()=>{t.colorized=!0,this.onImageLoaded(t)},t.img.onerror=()=>{console.error("Failed to colorize image.")}}setDocument(t){if(this.mdoc===t)return;this.updateCursorRect(void 0);let e=this.mdoc;this.mdoc=t,e&&e.getMusicObject().setRenderContext(void 0),t&&t.getMusicObject().setRenderContext(this)}setCanvas(t){var e,r;this.canvas!==t&&(this.canvas&&(this.canvas.removeEventListener("click",this.onClickFn),this.canvas.removeEventListener("mousemove",this.onMouseMoveFn),this.canvas.removeEventListener("mouseleave",this.onMouseLeaveFn),this.canvas.removeEventListener("touchend",this.onTouchEndFn)),this.canvas=t,this.canvas.addEventListener("click",this.onClickFn),this.canvas.addEventListener("mousemove",this.onMouseMoveFn),this.canvas.addEventListener("mouseleave",this.onMouseLeaveFn),this.canvas.addEventListener("touchend",this.onTouchEndFn),this.canvas.style.position="relative"),this.ctx=(r=(e=this.canvas)==null?void 0:e.getContext("2d"))!=null?r:void 0}setScoreEventListener(t){this.scoreEventListener=t}needMouseInput(){return this.scoreEventListener!==void 0}getMousePos(t){return new gl(t.offsetX,t.offsetY)}updateCurStaffPos(t,e){let r=!Bv(t,this.curStaffPos);if(r&&this.curStaffPos&&this.scoreEventListener){let{scoreRow:n,diatonicId:o}=this.curStaffPos;this.scoreEventListener(new zi("leave",this.getMusicInterface(),n.getMusicInterface(),o))}if(r&&t&&this.scoreEventListener){let{scoreRow:n,diatonicId:o}=t;this.scoreEventListener(new zi("enter",this.getMusicInterface(),n.getMusicInterface(),o))}if(e&&t&&this.scoreEventListener){let{scoreRow:n,diatonicId:o}=t;this.scoreEventListener(new zi("click",this.getMusicInterface(),n.getMusicInterface(),o))}return this.curStaffPos=t,r}updateCurObjects(t,e){let r=!Gv(t,this.curObjects);return r&&this.curObjects&&this.curObjects.length>0&&this.scoreEventListener&&this.scoreEventListener(new Yi("leave",this.getMusicInterface(),this.curObjects.map(n=>n.getMusicInterface()))),r&&t&&t.length>0&&this.scoreEventListener&&this.scoreEventListener(new Yi("enter",this.getMusicInterface(),t.map(n=>n.getMusicInterface()))),e&&t&&t.length>0&&this.scoreEventListener&&this.scoreEventListener(new Yi("click",this.getMusicInterface(),t.map(n=>n.getMusicInterface()))),this.curObjects=t,r}onClick(t){let{doc:e}=this;if(!(!this.needMouseInput()||!e)&&(this.mousePos=this.txFromScreenCoord(this.getMousePos(t)),this.scoreEventListener)){let r=e.pick(this.mousePos.x,this.mousePos.y),n=e.pickStaffPosAt(this.mousePos.x,this.mousePos.y),o=this.updateCurStaffPos(n,!0),s=this.updateCurObjects(r,!0);(o||s)&&this.draw()}}onMouseMove(t){let{doc:e}=this;if(!(!this.needMouseInput()||!e)&&(this.mousePos=this.txFromScreenCoord(this.getMousePos(t)),!this.usingTouch)){let r=e.pick(this.mousePos.x,this.mousePos.y),n=e.pickStaffPosAt(this.mousePos.x,this.mousePos.y),o=this.updateCurStaffPos(n,!1),s=this.updateCurObjects(r,!1);(o||s)&&this.draw()}}onMouseLeave(t){if(!this.needMouseInput())return;this.mousePos=void 0;let e=this.updateCurStaffPos(void 0,!1),r=this.updateCurObjects(void 0,!1);(e||r)&&this.draw()}onTouchEnd(t){this.usingTouch=!0}hilightObject(t){this.hilightedObj=t}hilightStaffPos(t){this.hilightedStaffPos=t}updateCursorRect(t){this.cursorRect=t,this.draw()}updateCanvasSize(){let{canvas:t,doc:e}=this;if(t&&e){let r=e.getRect(),n=r.width+1,o=r.height+1;t.width=n,t.height=o,t.style.width=n/this.devicePixelRatio+"px",t.style.height=o/this.devicePixelRatio+"px"}}draw(){try{let{doc:t}=this;t&&(t.layout(),this.updateCanvasSize(),this.clearCanvas(),this.drawHilightStaffPosRect(),this.drawHilightObjectRect(),this.drawPlayCursor(),t.drawContent())}catch(t){console.error("Render failed!",t)}}drawHilightStaffPosRect(){let{mousePos:t,hilightedStaffPos:e,unitSize:r}=this;if(!e)return;let{scoreRow:n,diatonicId:o}=e,s=n.getStaff(o);s&&(this.fillColor(X.HilightStaffPos),this.fillRect(s.row.getRect().left,s.getDiatonicIdY(o)-r,s.row.getRect().width,2*r),t!==void 0&&this.drawLedgerLines(s,o,t.x))}drawHilightObjectRect(){let{hilightedObj:t}=this;if(!t)return;let e=t.getRect();this.lineColor(X.HilightObject),this.strokeRect(e.left,e.top,e.width,e.height)}drawPlayCursor(){let{cursorRect:t}=this;t&&this.color(X.PlayCursor).lineWidth(2).strokeLine(t.centerX,t.top,t.centerX,t.bottom)}txFromScreenCoord(t){return t.mul(this.devicePixelRatio)}txToScreenCoord(t){return t.div(this.devicePixelRatio)}clearCanvas(){this.ctx&&(this.ctx.canvas.style.background=X.Background,this.ctx.clearRect(0,0,this.ctx.canvas.width,this.ctx.canvas.height))}drawDebugRect(t){Jf.DrawDebugRects&&this.color("red").lineWidth(1).strokeRect(t.left,t.top,t.width,t.height)}drawLedgerLines(t,e,r){let{unitSize:n}=this,o=n*ct.LedgerLineWidth;if(e>=t.topLineDiatonicId+2){for(let s=t.topLineDiatonicId+2;s<=e;s+=2)if(t.containsDiatonicId(s)){let a=t.getDiatonicIdY(s);this.strokeLine(r-o/2,a,r+o/2,a)}}else if(e<=t.bottomLineDiatonicId-2){for(let s=t.bottomLineDiatonicId-2;s>=e;s-=2)if(t.containsDiatonicId(s)){let a=t.getDiatonicIdY(s);this.strokeLine(r-o/2,a,r+o/2,a)}}}getRestRect(t){let{unitSize:e}=this,{flagCount:r}=Nt.get(Br(t+"n")),n=0,o=0,s=0,a=0;if(Nt.equals(t,"1n"))n=e,o=e,s=0,a=e;else if(Nt.equals(t,"2n"))n=e,o=e,s=e,a=0;else if(Nt.equals(t,"4n"))n=e*1,o=e*1,s=e*3.2,a=e*3;else{let c=1-r%2;n=e*(1+r*.25),o=e*(1+r*.125),s=e*(.5+r-c),a=e*(1+r+c)}return new G(-n,0,o,-s,0,a)}drawRest(t,e,r){let{unitSize:n}=this,{flagCount:o}=Nt.get(Br(t+"n"));if(Nt.equals(t,"1n"))this.fillRect(e-n,r,n*2,n);else if(Nt.equals(t,"2n"))this.fillRect(e-n,r-n,n*2,n);else if(Nt.equals(t,"4n"))this.beginPath(),this.moveTo(e-n*.6,r-n*3.2),this.lineTo(e+n*.7,r-n*1.5),this.quadraticCurveTo(e-n*.8,r-n*.5,e+n*1,r+n*1.5),this.lineTo(e-n*1,r-n*.75),this.quadraticCurveTo(e+n*.2,r-n*1.5,e-n*.6,r-n*3.2),this.moveTo(e+n*1,r+n*1.5),this.quadraticCurveTo(e-n*.8,r+n*1,e-n*.2,r+n*2.8),this.bezierCurveTo(e-n*1.8,r+n*1.5,e-n*.6,r-n*.2,e+n*.9,r+n*1.5),this.fill(),this.stroke();else if(o>0){let s=1-o%2,a=u=>e+(-u*.25+.5)*n,c=u=>r+(u+s)*n;this.beginPath(),this.moveTo(a(1+o),c(1+o)),this.lineTo(a(-.5-o),c(-.5-o)),this.stroke();for(let u=0;u<o;u++){let h=o-u*2;this.beginPath(),this.moveTo(a(h-2.5),c(h-2.5)),this.quadraticCurveTo(a(h-.5)+n*.25,c(h-1.5),a(h-1.5)-n*1.5,c(h-1.5)),this.stroke(),this.beginPath(),this.arc(a(h-2)-n*1.5,c(h-2),n*.5,0,Math.PI*2),this.fill()}}}drawFlag(t,e){let r=t.left,o=t.right-r,s=e==="up"?t.top:t.bottom,a=e==="up"?t.bottom:t.top;this.beginPath(),this.moveTo(r,s),this.bezierCurveTo(r,s*.75+a*.25,r+o*1.5,s*.5+a*.5,r+o*.5,a),this.stroke()}color(t){return this.ctx&&(this.ctx.strokeStyle=this.ctx.fillStyle=t),this}lineColor(t){return this.ctx&&(this.ctx.strokeStyle=t),this}fillColor(t){return this.ctx&&(this.ctx.fillStyle=t),this}lineWidth(t){return this.ctx&&(this.ctx.lineWidth=this._lineWidth*(t!=null?t:1)),this}font(t){return this.ctx&&(this.ctx.font=t),this}beginPath(){return this.ctx&&this.ctx.beginPath(),this}stroke(){return this.ctx&&this.ctx.stroke(),this}fill(){return this.ctx&&this.ctx.fill(),this}moveTo(t,e){return this.ctx&&this.ctx.moveTo(t,e),this}lineTo(t,e){return this.ctx&&this.ctx.lineTo(t,e),this}bezierCurveTo(t,e,r,n,o,s){return this.ctx&&this.ctx.bezierCurveTo(t,e,r,n,o,s),this}quadraticCurveTo(t,e,r,n){return this.ctx&&this.ctx.quadraticCurveTo(t,e,r,n),this}fillRect(t,e,r,n){return this.ctx&&this.ctx.fillRect(t,e,r,n),this}setLineDash(t){return this.ctx&&this.ctx.setLineDash(t),this}drawImage(t,e,r,n,o){return this.ctx&&this.ctx.drawImage(t,e,r,n,o),this}ellipse(t,e,r,n,o,s,a){return this.ctx&&this.ctx.ellipse(t,e,r,n,o,s,a),this}clip(){return this.ctx&&this.ctx.clip(),this}save(){return this.ctx&&this.ctx.save(),this}restore(){return this.ctx&&this.ctx.restore(),this}rect(t,e,r,n){return this.ctx&&this.ctx.rect(t,e,r,n),this}scale(t,e){return this.ctx&&this.ctx.scale(t,e),this}strokeRect(t,e,r,n){return this.ctx&&this.ctx.strokeRect(t,e,r,n),this}fillText(t,e,r){return this.ctx&&this.ctx.fillText(t,e,r),this}getTextWidth(t,e){if(this.ctx){let r=this.ctx.font;this.ctx.font=e;let n=this.ctx.measureText(t);return this.ctx.font=r,n.width}else return $.Dom.getCanvasTextWidth(t,e)}arc(t,e,r,n,o){return this.ctx&&this.ctx.arc(t,e,r,n,o),this}fillCircle(t,e,r){return this.ctx?(this.ctx.beginPath(),this.ctx.arc(t,e,r,0,2*Math.PI),this.ctx.fill(),this):this}strokeLine(t,e,r,n){return this.ctx?(this.ctx.beginPath(),this.ctx.moveTo(t,e),this.ctx.lineTo(r,n),this.ctx.stroke(),this):this}strokePartialLine(t,e,r,n,o,s){if(!this.ctx)return this;let a=t+(r-t)*o,c=e+(n-e)*o,u=t+(r-t)*s,h=e+(n-e)*s;return this.ctx.beginPath(),this.ctx.moveTo(a,c),this.ctx.lineTo(u,h),this.ctx.stroke(),this}drawBracket(t,e){if(!this.ctx)return this;let{left:r,right:n,width:o,top:s,bottom:a,height:c,anchorY:u}=t;switch([")","]","}",">"].includes(e)&&([r,n,o]=[n,r,-o]),e){case"(":case")":this.ctx.beginPath(),this.ctx.moveTo(n,s),this.ctx.bezierCurveTo(r-o*.2,s+c*.3,r-o*.2,s+c*.7,n,a),this.ctx.stroke();break;case"{":case"}":this.ctx.beginPath(),this.ctx.moveTo(n,s),this.ctx.bezierCurveTo(r+o*.1,s,r+o*.8,u,r,u),this.ctx.moveTo(n,a),this.ctx.bezierCurveTo(r+o*.1,a,r+o*.8,u,r,u),this.ctx.stroke();break;case"[":case"]":this.ctx.beginPath(),this.ctx.moveTo(n,s),this.ctx.lineTo(r,s),this.ctx.lineTo(r,a),this.ctx.lineTo(n,a),this.ctx.stroke();break;case"<":case">":this.ctx.beginPath(),this.ctx.moveTo(n,s),this.ctx.lineTo(r,u),this.ctx.lineTo(n,a),this.ctx.stroke();break}return this}};var Ja=class{constructor(t){this.measure=t;d(this,"accidentalByDiatonicId",[])}getAccidentalFromKeySignature(t){let r=this.measure.getKeySignature().getOrderedAccidentalNotes().find(n=>n.diatonicClass===U.getDiatonicClass(t));return r?r.accidental:void 0}setAccidental(t){this.accidentalByDiatonicId[t.diatonicId]=t.accidental}needAccidental(t){var r,n;let e=(n=(r=this.accidentalByDiatonicId[t.diatonicId])!=null?r:this.getAccidentalFromKeySignature(t.diatonicId))!=null?n:0;return t.accidental!==e}};var tc=class extends tt{constructor(e,r,n,o,s){super(e);this.image=r;this.anchorX=n;this.anchorY=o;this.imageScale=s;d(this,"mi");this.mi=new Ho(this)}getMusicInterface(){return this.mi}pick(e,r){return this.rect.contains(e,r)?[this]:[]}layout(e){let{anchorX:r,anchorY:n,image:o,imageScale:s}=this,{unitSize:a}=e;try{let c=o.naturalWidth*s*a,u=o.naturalHeight*s*a;this.rect=G.createSections(c*r,c*(1-r),u*n,u*(1-n))}catch(c){this.rect=new G}}offset(e,r){this.rect.offsetInPlace(e,r)}draw(e){let r=this.rect;e.drawDebugRect(r),e.drawImage(this.image,r.anchorX-r.leftw,r.anchorY-r.toph,r.width,r.height)}};var Hi=class extends tt{constructor(e,r,n,o="black"){super(e);this.diatonicId=r;this.accidental=n;this.color=o;d(this,"mi");this.mi=new $o(this)}getMusicInterface(){return this.mi}pick(e,r){return this.rect.contains(e,r)?[this]:[]}layout(e){let{unitSize:r}=e;switch(this.accidental){case-2:this.rect=G.createSections(r*1.25,r*1.25,r*4,r*1.2);break;case-1:this.rect=G.createSections(r*.75,r*.75,r*4,r*1.2);break;case 0:this.rect=G.createSections(r*.75,r*.75,r*2.2,r*2.2);break;case 1:this.rect=G.createSections(r*.75,r*.75,r*2,r*2);break;case 2:this.rect=G.createSections(r*1,r*1,r*1,r*1);break;default:throw new N(6,"Invalid accidental value: "+this.accidental)}}offset(e,r){this.rect.offsetInPlace(e,r)}draw(e){e.drawDebugRect(this.rect);let{unitSize:r}=e,{accidental:n}=this,o=this.rect.anchorX,s=this.rect.anchorY;e.color(this.color);let a=(c,u)=>{e.lineWidth(1).beginPath().moveTo(c-r*.75,u-r*4).lineTo(c-r*.75,u+r*1.1).bezierCurveTo(c+r*.75,u-r*0,c+r*.75,u-r*2.2,c-r*.75,u-r*.5).stroke()};n===-2?(a(o-r*.5,s),a(o+r*.5,s)):n===-1&&a(o,s),n===0?e.beginPath().lineWidth(1).moveTo(o-r*.5,s-r*2.2).lineTo(o-r*.5,s+r*1).moveTo(o+r*.5,s+r*2.2).lineTo(o+r*.5,s-r*1).stroke().beginPath().lineWidth(2).moveTo(o-r*.5,s+r*1).lineTo(o+r*.5,s+r*.6).moveTo(o+r*.5,s-r*1).lineTo(o-r*.5,s-r*.6).stroke():n===1?e.lineWidth(1).beginPath().moveTo(o-r*.3,s-r*1.6).lineTo(o-r*.3,s+r*2).moveTo(o+r*.3,s-r*2).lineTo(o+r*.3,s+r*1.6).stroke().lineWidth(2).beginPath().moveTo(o-r*.75,s-r*.5).lineTo(o+r*.75,s-r*.9).moveTo(o-r*.75,s+r*.9).lineTo(o+r*.75,s+r*.5).stroke():n===2&&e.lineWidth(1).beginPath().moveTo(o-r*.75,s-r*.75).lineTo(o+r*.75,s+r*.75).moveTo(o-r*.75,s+r*.75).lineTo(o+r*.75,s-r*.75).stroke().fillRect(o-r*1,s-r*1,r*.7,r*.7).fillRect(o+r*.3,s-r*1,r*.7,r*.7).fillRect(o-r*1,s+r*.3,r*.7,r*.7).fillRect(o+r*.3,s+r*.3,r*.7,r*.7)}};var Vv=.5,st=class extends tt{constructor(e,r,n,o){var a,c,u,h,l,p;super(e);this.anchorX=n;this.anchorY=o;d(this,"text");d(this,"scale");d(this,"color");d(this,"bold");d(this,"italic");d(this,"boxed");d(this,"padding");d(this,"bgcolor");d(this,"font","");d(this,"textLines");d(this,"lineWidths",[]);d(this,"lineHeight",0);d(this,"mi");let s=typeof r=="string"?{text:r}:r;this.text=s.text,this.scale=(a=s.scale)!=null?a:1,this.color=(c=s.color)!=null?c:"black",this.bold=(u=s.bold)!=null?u:!1,this.italic=(h=s.italic)!=null?h:!1,this.boxed=(l=s.boxed)!=null?l:!1,this.padding=(p=s.padding)!=null?p:this.boxed?Vv:0,this.bgcolor=s.bgcolor,(!isFinite(this.padding)||this.padding<0)&&(this.padding=0),this.textLines=this.text.split(`
210
+ `),this.textLines.length===0&&(this.textLines=[""]),this.rect=new G,this.mi=new Zo(this)}getMusicInterface(){return this.mi}getText(){return this.text}pick(e,r){return this.rect.contains(e,r)?[this]:[]}layout(e){let{scale:r,anchorX:n,anchorY:o,bold:s,italic:a}=this,c=e.fontSize*r;this.font=(a?"italic ":"")+(s?"bold ":"")+c+"px Times New Roman",this.lineWidths=this.textLines.map(p=>e.getTextWidth(p,this.font)),this.lineHeight=c;let u=this.padding*e.unitSize,h=u+Math.max(...this.lineWidths)+u,l=u+this.lineHeight*this.textLines.length+u;(this.boxed==="square"||this.boxed==="circle")&&(l=h=Math.max(l,h)),this.rect=G.createSections(h*n,h*(1-n),l*o,l*(1-o))}offset(e,r){this.rect.offsetInPlace(e,r)}draw(e){var b;e.drawDebugRect(this.rect),e.lineWidth(1).font(this.font);let{rect:r,padding:n,lineHeight:o,lineWidths:s,anchorX:a,anchorY:c,italic:u}=this;this.bgcolor!==void 0&&(e.save(),e.fillColor((b=this.bgcolor)!=null?b:"black"),e.beginPath(),e.fillRect(r.left,r.top,r.width,r.height),e.fill(),e.restore());let l=this.textLines.length*o,p=-o*(u?.25:.2),m=n*e.unitSize,f=(r.left+m)*(1-a)+(r.right-m)*a,g=(r.top+m)*(1-c)+(r.bottom-m)*c;switch(e.color(this.color),this.textLines.forEach((x,C)=>{let S=f-s[C]*a,T=g-l*c+o*(C+1)+p;e.fillText(x,S,T)}),this.boxed){case"square":case"rectangle":e.strokeRect(r.left,r.top,r.width,r.height);break;case"circle":case"ellipse":e.beginPath(),e.ellipse(r.centerX,r.centerY,r.width/2,r.height/2,0,0,2*Math.PI),e.stroke();break}}};var Xo=class extends tt{constructor(e,r){super(e);this.measure=e;this.staff=r;d(this,"clefImage");d(this,"eightBelowClef");d(this,"measureNumber");d(this,"ksNeutralizeAccidentals",[]);d(this,"ksNewAccidentals",[]);d(this,"beatCountText");d(this,"beatSizeText");d(this,"tempoText");d(this,"mi");this.mi=new Ko(this)}get doc(){return this.measure.doc}getMusicInterface(){return this.mi}updateClefImage(e,r){if(r){let n=X.Staff_Signature_Clef;["black","#000","#000000"].includes(n)&&(n="");let o=e.getImageAsset(this.staff.clefImageAsset,n);this.clefImage=o?new tc(this,o,0,.5,.1):void 0,this.eightBelowClef=this.clefImage&&this.staff.isOctaveDown?new st(this,{text:"8",color:n},.5,0):void 0}else this.clefImage=void 0}updateMeasureNumber(e){if(e){let r=X.Staff_Signature_MeasureNum,n=this.measure.getMeasureNumber().toString();this.measureNumber=new st(this,{text:n,color:r},0,1)}else this.measureNumber=void 0}updateKeySignature(e){if(e){let{measure:r}=this,n=X.Staff_Signature_Key,o=r.getPrevMeasure(),s=o?o.getKeySignature():void 0,a=r.getKeySignature();this.ksNeutralizeAccidentals=[],this.ksNewAccidentals=[],s&&!rr.equals(a,s)&&s.getOrderedAccidentalNotes().forEach(c=>{this.ksNeutralizeAccidentals.push(new Hi(this,this.getAccidentalDiatonicId(c),0,n))}),a.getOrderedAccidentalNotes().forEach(c=>{this.ksNewAccidentals.push(new Hi(this,this.getAccidentalDiatonicId(c),c.accidental,n))})}else this.ksNeutralizeAccidentals=[],this.ksNewAccidentals=[]}updateTimeSignature(e){if(e){let r=this.measure.getTimeSignature(),n=X.Staff_Signature_Time,o=r.beatCount.toString();this.beatCountText=new st(this,{text:o,color:n,scale:1.4},.5,.5);let s=r.beatSize.toString();this.beatSizeText=new st(this,{text:s,color:n,scale:1.4},.5,.5)}else this.beatCountText=this.beatSizeText=void 0}updateTempo(e){if(e){let r=X.Staff_Signature_Tempo,n=Ks(this.measure.getTempo());this.tempoText=new st(this,{text:n,color:r},.5,1)}else this.tempoText=void 0}getAccidentalDiatonicId(e){let{clef:r}=this.staff.staffConfig,n;if(r==="G"?e.accidental>0?n=this.staff.bottomLineDiatonicId+3:e.accidental<0&&(n=this.staff.bottomLineDiatonicId+1):r==="F"&&(e.accidental>0?n=this.staff.bottomLineDiatonicId+1:e.accidental<0&&(n=this.staff.bottomLineDiatonicId-1)),n!==void 0)return U.findNextDiatonicIdAbove(e.diatonicId,n,!1);throw new N(6,"Cannot get accidental diatonicId because note has no accidental.")}pick(e,r){if(!this.rect.contains(e,r))return[];if(this.eightBelowClef){let n=this.eightBelowClef.pick(e,r);if(n.length>0)return[this,...n]}if(this.clefImage){let n=this.clefImage.pick(e,r);if(n.length>0)return[this,...n]}for(let n=0;n<this.ksNeutralizeAccidentals.length;n++){let o=this.ksNeutralizeAccidentals[n].pick(e,r);if(o.length>0)return[this,...o]}for(let n=0;n<this.ksNewAccidentals.length;n++){let o=this.ksNewAccidentals[n].pick(e,r);if(o.length>0)return[this,...o]}if(this.beatCountText){let n=this.beatCountText.pick(e,r);if(n.length>0)return[this,...n]}if(this.beatSizeText){let n=this.beatSizeText.pick(e,r);if(n.length>0)return[this,...n]}if(this.tempoText){let n=this.tempoText.pick(e,r);if(n.length>0)return[this,...n]}if(this.measureNumber){let n=this.measureNumber.pick(e,r);if(n.length>0)return[this,...n]}return[this]}layout(e){var u,h,l,p,m,f;let{unitSize:r}=e,{staff:n}=this,o=r,s=0;if(this.rect=new G,this.clefImage&&(s+=o,this.clefImage.layout(e),this.clefImage.setAnchor(s,n.getDiatonicIdY(n.clefLineDiatonicId)),this.rect.expandInPlace(this.clefImage.getRect()),s=this.rect.right,this.eightBelowClef)){let g=this.clefImage.getRect();this.eightBelowClef.layout(e),this.eightBelowClef.setCenterX(g.centerX),this.eightBelowClef.setTop(Math.max(g.anchorY+g.height*.3,n.getBottomLineY())),this.rect.expandInPlace(this.eightBelowClef.getRect())}this.measureNumber&&(this.measureNumber.layout(e),this.measureNumber.setLeft(0),this.measureNumber.setBottom(Math.min(n.getTopLineY(),this.clefImage?this.clefImage.getRect().top:n.getTopLineY())),this.rect.expandInPlace(this.measureNumber.getRect()),s=Math.max(s,this.rect.right)),this.ksNeutralizeAccidentals.length>0&&(s+=o,this.ksNeutralizeAccidentals.forEach(g=>{g.layout(e),g.setLeft(s),g.setAnchorY(n.getDiatonicIdY(g.diatonicId)),this.rect.expandInPlace(g.getRect()),s=this.rect.right})),this.ksNewAccidentals&&(s+=o,this.ksNewAccidentals.forEach(g=>{g.layout(e),g.setLeft(s),g.setAnchorY(n.getDiatonicIdY(g.diatonicId)),this.rect.expandInPlace(g.getRect()),s=this.rect.right}));let a=s;(u=this.beatCountText)==null||u.layout(e),(h=this.beatSizeText)==null||h.layout(e);let c=Math.max((p=(l=this.beatCountText)==null?void 0:l.getRect().width)!=null?p:0,(f=(m=this.beatSizeText)==null?void 0:m.getRect().width)!=null?f:0);this.beatCountText&&(this.beatCountText.setCenter(s+c/2+o,n.getDiatonicIdY(n.middleLineDiatonicId+2)),this.rect.expandInPlace(this.beatCountText.getRect()),a=Math.max(a,this.rect.right)),this.beatSizeText&&(this.beatSizeText.setCenter(s+c/2+o,n.getDiatonicIdY(n.bottomLineDiatonicId+2)),this.rect.expandInPlace(this.beatSizeText.getRect()),a=Math.max(a,this.rect.right)),s=a,this.tempoText&&(this.tempoText.layout(e),this.tempoText.setCenterX(s),this.tempoText.setBottom(n.getTopLineY()),this.clefImage&&G.overlap(this.clefImage.getRect(),this.tempoText.getRect())&&this.tempoText.setBottom(this.clefImage.getRect().top),[...this.ksNeutralizeAccidentals,...this.ksNewAccidentals].forEach(g=>{this.tempoText&&G.overlap(g.getRect(),this.tempoText.getRect())&&this.tempoText.setBottom(g.getRect().top)}),this.rect.expandInPlace(this.tempoText.getRect())),this.rect.right+=o}offset(e,r){var n,o,s,a,c,u;(n=this.clefImage)==null||n.offset(e,r),(o=this.eightBelowClef)==null||o.offset(e,r),(s=this.measureNumber)==null||s.offset(e,r),this.ksNeutralizeAccidentals.forEach(h=>h.offset(e,r)),this.ksNewAccidentals.forEach(h=>h.offset(e,r)),(a=this.beatCountText)==null||a.offset(e,r),(c=this.beatSizeText)==null||c.offset(e,r),(u=this.tempoText)==null||u.offset(e,r),this.rect.offsetInPlace(e,r)}draw(e){var r,n,o,s,a,c;(r=this.clefImage)==null||r.draw(e),(n=this.eightBelowClef)==null||n.draw(e),(o=this.measureNumber)==null||o.draw(e),this.ksNeutralizeAccidentals.forEach(u=>u.draw(e)),this.ksNewAccidentals.forEach(u=>u.draw(e)),(s=this.beatCountText)==null||s.draw(e),(a=this.beatSizeText)==null||a.draw(e),(c=this.tempoText)==null||c.draw(e)}},Qo=class extends tt{constructor(e,r){super(e);this.measure=e;this.tab=r;d(this,"measureNumber");d(this,"beatCountText");d(this,"beatSizeText");d(this,"tempoText");d(this,"mi");this.mi=new Jo(this)}getMusicInterface(){return this.mi}get doc(){return this.measure.doc}updateMeasureNumber(e){if(e){let r=X.Tab_Signature_MeasureNum,n=this.measure.getMeasureNumber().toString();this.measureNumber=new st(this,{text:n,color:r},0,1)}else this.measureNumber=void 0}updateTimeSignature(e){if(e){let r=this.measure.getTimeSignature(),n=X.Tab_Signature_Time,o=r.beatCount.toString();this.beatCountText=new st(this,{text:o,color:n,scale:1.4},.5,.5);let s=r.beatSize.toString();this.beatSizeText=new st(this,{text:s,color:n,scale:1.4},.5,.5)}else this.beatCountText=this.beatSizeText=void 0}updateTempo(e){if(e){let r=X.Tab_Signature_Tempo,n=Ks(this.measure.getTempo());this.tempoText=new st(this,{text:n,color:r},0,1)}else this.tempoText=void 0}pick(e,r){if(!this.rect.contains(e,r))return[];if(this.beatCountText){let n=this.beatCountText.pick(e,r);if(n.length>0)return[this,...n]}if(this.beatSizeText){let n=this.beatSizeText.pick(e,r);if(n.length>0)return[this,...n]}if(this.tempoText){let n=this.tempoText.pick(e,r);if(n.length>0)return[this,...n]}if(this.measureNumber){let n=this.measureNumber.pick(e,r);if(n.length>0)return[this,...n]}return[this]}layout(e){var u,h,l,p,m,f;let{unitSize:r}=e,{tab:n}=this,o=r,s=0,a=n.getTopLineY();this.rect=new G,this.measureNumber&&(this.measureNumber.layout(e),this.measureNumber.setLeft(0),this.measureNumber.setBottom(a),this.rect.expandInPlace(this.measureNumber.getRect()),s=Math.max(s,this.rect.right)),(u=this.beatCountText)==null||u.layout(e),(h=this.beatSizeText)==null||h.layout(e);let c=Math.max((p=(l=this.beatCountText)==null?void 0:l.getRect().width)!=null?p:0,(f=(m=this.beatSizeText)==null?void 0:m.getRect().width)!=null?f:0);this.beatCountText&&(this.beatCountText.setCenter(0+c/2+o,n.getRect().anchorY-this.beatCountText.getRect().bottomh),this.rect.expandInPlace(this.beatCountText.getRect())),this.beatSizeText&&(this.beatSizeText.setCenter(0+c/2+o,n.getRect().anchorY+this.beatSizeText.getRect().toph),this.rect.expandInPlace(this.beatSizeText.getRect())),this.tempoText&&(this.tempoText.layout(e),this.tempoText.setLeft(s+r*2),this.tempoText.setBottom(a),this.rect.expandInPlace(this.tempoText.getRect())),this.rect.right+=o}offset(e,r){var n,o,s,a;(n=this.measureNumber)==null||n.offset(e,r),(o=this.beatCountText)==null||o.offset(e,r),(s=this.beatSizeText)==null||s.offset(e,r),(a=this.tempoText)==null||a.offset(e,r),this.rect.offsetInPlace(e,r)}draw(e){var r,n,o,s;(r=this.measureNumber)==null||r.draw(e),(n=this.beatCountText)==null||n.draw(e),(o=this.beatSizeText)==null||o.draw(e),(s=this.tempoText)==null||s.draw(e)}};var ec=class extends tt{constructor(e,r,n){super(e);this.col=e;this.line=r;this.arpeggioDir=n;d(this,"topArrowHeight",0);d(this,"bottomArrowHeight",0);d(this,"cycleHeight",0);d(this,"numCycles",0);d(this,"color","black");d(this,"mi");this.mi=new ts(this)}getMusicInterface(){return this.mi}pick(e,r){return this.rect.contains(e,r)?[this]:[]}layout(e){let{unitSize:r}=e;this.topArrowHeight=this.arpeggioDir==="up"?r:0,this.bottomArrowHeight=this.arpeggioDir==="down"?r:0;let n=this.line.getTopLineY(),o=this.line.getBottomLineY();this.cycleHeight=r*2,this.numCycles=Math.ceil((o-n)/this.cycleHeight)+2;let s=r*2,a=this.numCycles*this.cycleHeight;this.rect=new G(-s/2,s/2,-a/2-this.topArrowHeight,a/2+this.bottomArrowHeight)}offset(e,r){this.rect.offsetInPlace(e,r)}draw(e){let{rect:r,topArrowHeight:n,bottomArrowHeight:o}=this;e.drawDebugRect(this.rect),e.color(this.color),e.lineWidth(2),e.beginPath();for(let s=0,a=r.top+n;s<this.numCycles;s++,a+=this.cycleHeight)e.moveTo(r.anchorX,a),e.quadraticCurveTo(r.left,a+this.cycleHeight/4,r.anchorX,a+this.cycleHeight/2),e.quadraticCurveTo(r.right,a+this.cycleHeight*3/4,r.anchorX,a+this.cycleHeight);e.stroke(),n>0&&(e.beginPath(),e.moveTo(r.anchorX,r.top),e.lineTo(r.right,r.top+n),e.lineTo(r.left,r.top+n),e.fill()),o>0&&(e.beginPath(),e.moveTo(r.anchorX,r.bottom),e.lineTo(r.left,r.bottom-o),e.lineTo(r.right,r.bottom-o),e.fill())}};function qv(i){return typeof i=="number"?U.getChromaticNote(i).diatonicId:typeof i=="string"?U.getNote(i).diatonicId:i instanceof U?i.diatonicId:void 0}var rc=class extends tt{constructor(e,r){super(e);this.staff=e;this.rest=r;d(this,"restRect",new G);d(this,"dotRects",[]);d(this,"mi");e.addObject(this),this.mi=new rs(this)}getMusicInterface(){return this.mi}pick(e,r){return this.getRect().contains(e,r)?[this]:[]}offset(e,r){this.restRect.offsetInPlace(e,r),this.dotRects.forEach(n=>n.offsetInPlace(e,r)),this.requestRectUpdate(),this.rest.requestRectUpdate()}updateRect(){this.rect=this.restRect.clone(),this.dotRects.forEach(e=>this.rect.expandInPlace(e))}},$n=class $n extends tt{constructor(e,r,n,o,s){var c,u,h,l;super(e);this.col=e;this.voiceId=r;this.options=o;d(this,"color");d(this,"hide");d(this,"oldStyleTriplet");d(this,"rhythmProps");d(this,"setDiatonicId");d(this,"runningDiatonicId");d(this,"runningStemDir");d(this,"beamGroup");d(this,"staffObjects",[]);d(this,"mi");this.setDiatonicId=(u=qv((c=this.options)==null?void 0:c.staffPos))!=null?u:$n.UndefinedDiatonicId;let a=this.row.getStaves().filter(p=>p.containsVoiceId(this.voiceId));this.setDiatonicId!==$n.UndefinedDiatonicId&&a.length>0&&a[0].isSpace(this.setDiatonicId)&&(this.setDiatonicId+=this.setDiatonicId>=a[0].middleLineDiatonicId?1:-1),this.runningDiatonicId=this.setDiatonicId,this.runningStemDir="up",this.color=(h=o==null?void 0:o.color)!=null?h:X.Staff_Rest,this.hide=(l=o==null?void 0:o.hide)!=null?l:!1,this.oldStyleTriplet=s===void 0&&Nt.get(n).isTriplet,this.rhythmProps=Kt.get(n,void 0,(s!=null?s:this.oldStyleTriplet)?Gr.Triplet:void 0),this.mi=new es(this)}getMusicInterface(){return this.mi}get doc(){return this.col.doc}get measure(){return this.col.measure}get row(){return this.col.row}get noteLength(){return this.rhythmProps.noteLength}getDiatonicId(e){return this.runningDiatonicId===$n.UndefinedDiatonicId?e?Nt.equals(this.noteLength,"1n")?e.middleLineDiatonicId+2:e.middleLineDiatonicId:U.getNote("G4").diatonicId:this.runningDiatonicId}get stemDir(){return this.runningStemDir}updateRunningArguments(e,r,n){this.runningDiatonicId=e,this.runningStemDir=r}getStaticObjects(e){let r=[];return this.staffObjects.forEach(n=>{n.staff===e&&r.push(n)}),r}pick(e,r){if(!this.getRect().contains(e,r))return[];for(let n=0;n<this.staffObjects.length;n++){let o=this.staffObjects[n].pick(e,r);if(o.length>0)return[this,...o]}return[]}getBeamGroup(){return this.beamGroup}setBeamGroup(e){this.beamGroup=e}resetBeamGroup(){this.beamGroup=void 0}getBeamCoords(){return this.staffObjects.map(e=>{let r=e.staff,n=e.getRect().anchorX,o=this.stemDir==="up"?e.getRect().top:e.getRect().bottom,s=Math.abs(e.getRect().anchorY-o);return{staff:r,x:n,y:o,stemHeight:s}})}hasTuplet(){return this.rhythmProps.tupletRatio!==void 0}isEmpty(){return this.staffObjects.length===0}visibleInStaff(e){return e.containsVoiceId(this.voiceId)&&this.staffObjects.some(r=>r instanceof rc&&r.staff===e)}getRestDotVerticalDisplacement(e){switch(e){case 1:return 1;case 2:return-1;case 4:return-1;case 8:return-1;case 16:return-1;case 32:return-3;case 64:return-3;default:throw new N(6,`Get rest dot vertical displacement: Invalid note size: ${e}`)}}updateAccidentalState(e){}layout(e,r){if(this.requestRectUpdate(),this.staffObjects.length=0,this.hide)return;let{unitSize:n}=e,{noteSize:o,dotCount:s}=this.rhythmProps;this.row.getStaves().forEach(a=>{let c=this.getDiatonicId(a);if(!a.containsDiatonicId(c)||!a.containsVoiceId(this.voiceId))return;let u=new rc(a,this);u.restRect=e.getRestRect(o);for(let h=0;h<s;h++){let l=ct.DotSize*n,p=u.restRect.rightw+(ct.RestDotSpace+ct.DotSize*n)+h*ct.DotSize*n*1.5,m=this.getRestDotVerticalDisplacement(o)*n;u.dotRects.push(G.createCentered(p,m,l,l))}u.setAnchor(0,a.getDiatonicIdY(c)),this.staffObjects.push(u),this.measure.addStaticObject(a,u)})}updateRect(){if(this.staffObjects.length===0)this.rect=new G;else if(this.rect=this.staffObjects[0].getRect().clone(),this.staffObjects.length>1)for(let e=1;e<this.staffObjects.length;e++)this.rect.expandInPlace(this.staffObjects[e].getRect())}offset(e,r){this.staffObjects.forEach(n=>n.offset(e,0)),this.requestRectUpdate()}draw(e){if(this.staffObjects.length===0)return;e.drawDebugRect(this.getRect());let{noteSize:r}=this.rhythmProps;e.color(this.color).lineWidth(1),this.staffObjects.forEach(n=>{let{dotRects:o,restRect:s}=n;e.drawRest(r,s.anchorX,s.anchorY),o.forEach(a=>e.fillCircle(a.anchorX,a.anchorY,a.width/2))})}};d($n,"UndefinedDiatonicId",1/0);var ce=$n;function Wv(i){return y.isEnumValue(i,fi)?i:i===!0?"up":void 0}function Uv(i,t){let e=$.Arr.isArray(t)?t:t!==void 0?[t]:[],r=i.map((n,o)=>({note:n,string:e[o]}));return r=$.Arr.removeDuplicates(r,(n,o)=>U.equals(n.note,o.note)).sort((n,o)=>U.compareFunc(n.note,o.note)),{sortedNotes:r.map(n=>n.note),sortedStrings:r.every(n=>n.string===void 0)?void 0:r.map(n=>n.string)}}var ic=class extends tt{constructor(e,r){super(e);this.staff=e;this.noteGroup=r;d(this,"noteHeadRects",[]);d(this,"dotRects",[]);d(this,"accidentals",[]);d(this,"stemTip");d(this,"stemBase");d(this,"flagRects",[]);d(this,"prevTopNoteY",0);d(this,"prevBottomNoteY",0);d(this,"mi");this.mi=new ns(this)}getMusicInterface(){return this.mi}pick(e,r){if(!this.getRect().contains(e,r))return[];for(let n=0;n<this.accidentals.length;n++){let o=this.accidentals[n].pick(e,r);if(o.length>0)return[this,...o]}return[this]}updateRect(){this.rect=this.noteHeadRects[0].clone(),this.noteHeadRects.forEach(e=>this.rect.expandInPlace(e)),this.stemTip&&this.rect.expandInPlace(this.stemTip),this.stemBase&&this.rect.expandInPlace(this.stemBase),this.dotRects.forEach(e=>this.rect.expandInPlace(e)),this.flagRects.forEach(e=>this.rect.expandInPlace(e)),this.accidentals.forEach(e=>this.rect.expandInPlace(e.getRect()))}getRect(){let e=this.noteHeadRects[0],r=this.noteHeadRects[this.noteHeadRects.length-1];return(this.prevTopNoteY!==r.anchorY||this.prevBottomNoteY!==e.anchorY)&&(this.prevTopNoteY=r.anchorY,this.prevBottomNoteY=e.anchorY,this.requestRectUpdate()),super.getRect()}offset(e,r){var n,o;this.noteHeadRects.forEach(s=>s.offsetInPlace(e,r)),this.dotRects.forEach(s=>s.offsetInPlace(e,r)),this.accidentals.forEach(s=>s.offset(e,r)),(n=this.stemTip)==null||n.offsetInPlace(e,r),(o=this.stemBase)==null||o.offsetInPlace(e,r),this.flagRects.forEach(s=>s.offsetInPlace(e,r)),this.requestRectUpdate(),this.noteGroup.requestRectUpdate()}},Oh=class extends tt{constructor(e,r){super(e);this.tab=e;this.noteGroup=r;d(this,"fretNumbers",[]);d(this,"mi");this.mi=new os(this)}getMusicInterface(){return this.mi}pick(e,r){return this.getRect().contains(e,r)?[this]:[]}updateRect(){this.rect=this.fretNumbers[0].getRect().clone(),this.fretNumbers.forEach(e=>this.rect.expandInPlace(e.getRect()))}offset(e,r){this.fretNumbers.forEach(n=>n.offset(e,r)),this.requestRectUpdate(),this.noteGroup.requestRectUpdate()}},At=class i extends tt{constructor(e,r,n,o,s,a){var h,l,p;super(e);this.col=e;this.voiceId=r;this.notes=n;this.options=s;d(this,"setDiatonicId");d(this,"setStringsNumbers");d(this,"runningDiatonicId");d(this,"runningStemDir");d(this,"runningStringNumbers");d(this,"color");d(this,"staccato");d(this,"diamond");d(this,"arpeggio");d(this,"oldStyleTriplet");d(this,"rhythmProps");d(this,"startConnnectives",[]);d(this,"runningConnectives",[]);d(this,"leftBeamCount",0);d(this,"rightBeamCount",0);d(this,"beamGroup");d(this,"staffObjects",[]);d(this,"tabObjects",[]);d(this,"isNoteDisplaced");d(this,"mi");if(!y.isIntegerGte(n.length,1))throw new N(6,"Cannot create note group object because notes array is empty.");let{sortedNotes:c,sortedStrings:u}=Uv(n,s==null?void 0:s.string);this.notes=c,this.setStringsNumbers=u,this.isNoteDisplaced=this.notes.map(()=>!1),this.setDiatonicId=Math.round((this.minDiatonicId+this.maxDiatonicId)/2),this.runningDiatonicId=this.setDiatonicId,this.runningStemDir="up",this.runningStringNumbers=[],this.color=(h=s==null?void 0:s.color)!=null?h:X.Staff_Note,this.staccato=(l=s==null?void 0:s.staccato)!=null?l:!1,this.diamond=(p=s==null?void 0:s.diamond)!=null?p:!1,this.arpeggio=Wv(s==null?void 0:s.arpeggio),this.oldStyleTriplet=a===void 0&&Nt.get(o).isTriplet,this.rhythmProps=Kt.get(o,void 0,(a!=null?a:this.oldStyleTriplet)?Gr.Triplet:void 0),this.mi=new is(this)}getMusicInterface(){return this.mi}get doc(){return this.col.doc}get measure(){return this.col.measure}get row(){return this.col.row}get minDiatonicId(){return this.notes[0].diatonicId}get maxDiatonicId(){return this.notes[this.notes.length-1].diatonicId}getDiatonicId(e){return this.runningDiatonicId}get stemDir(){return this.runningStemDir}setNoteDisplacement(e,r){let n=this.notes.indexOf(e);n>=0&&(this.isNoteDisplaced[n]=r)}enableConnective(e){return e.containsVoiceId(this.voiceId)&&(e instanceof Pt||e.containsDiatonicId(this.runningDiatonicId))}startConnective(e){if(!this.row.hasStaff&&e.connective==="tie")throw new N(6,"Ties not implemented for guitar tabs alone, staff is required!");if(!this.row.hasStaff&&e.connective==="slur")throw new N(6,"Slurs not implemented for guitar tabs alone, staff is required!");this.startConnnectives.push(e),this.doc.addConnectiveProps(e)}updateRunningArguments(e,r,n){this.runningDiatonicId=e===ce.UndefinedDiatonicId?this.setDiatonicId:e,this.runningStemDir=r,this.runningStringNumbers=n}pick(e,r){if(!this.getRect().contains(e,r))return[];for(let n=0;n<this.staffObjects.length;n++){let o=this.staffObjects[n].pick(e,r);if(o.length>0)return[this,...o]}for(let n=0;n<this.tabObjects.length;n++){let o=this.tabObjects[n].pick(e,r);if(o.length>0)return[this,...o]}return[]}getTopNote(){return this.notes[this.notes.length-1]}getBottomNote(){return this.notes[0]}getConnectiveAnchorPoint(e,r,n,o,s){var a;if(r instanceof Et){if(n<0||n>=this.notes.length)throw new N(6,"Invalid noteIndex: "+n);let c=this.staffObjects.find(w=>w.staff===r);if(!c||n<0||n>=c.noteHeadRects.length){let w=this.getRect();return{x:w.anchorX,y:w.bottom}}let u=c.noteHeadRects[n],h=c.stemTip,l=this.stemDir,p=h!==void 0,m=p?l==="up"?"right":"left":void 0,f=u.height/2,g=u.anchorX,b=u.anchorY,x=u.left-f,C=u.right+f,S=u.top-f,T=u.bottom+f;switch(o==="auto"?o="below":o==="stemTip"&&!p&&(o=l==="up"?"above":"below"),o){case"center":return s==="left"?{x:C,y:b}:{x,y:b};case"above":return!p||l==="down"?{x:g,y:S}:{x:s==="left"&&m==="right"?C:s==="right"&&m==="left"?x:g,y:S};case"below":return!p||l==="up"?{x:g,y:T}:{x:s==="left"&&m==="right"?C:s==="right"&&m==="left"?x:g,y:T};case"stemTip":return{x:g,y:h.anchorY+(l==="up"?-f:f)};default:throw new N(6,"Invalid noteAnchor: "+o)}}else if(r instanceof Pt){let c=(a=this.tabObjects.find(m=>m.tab===r))==null?void 0:a.fretNumbers[n];if(!c)return{x:0,y:0};let u=c.getRect(),h=s==="right"?u.left:u.right,l,p=.9;if(e.connective==="slide"){let m=e.noteGroups[0].getFretNumber(r,0),f=e.noteGroups[1].getFretNumber(r,0),g=m===void 0||f===void 0||m<=f;s==="left"?l=(g?u.anchorY+u.bottomh:u.anchorY-u.toph)*p:l=(g?u.anchorY-u.toph:u.anchorY+u.bottomh)*p}else l=u.anchorY+u.bottomh*p;return{x:h,y:l}}else return{x:0,y:0}}getFretNumberString(e){return this.runningStringNumbers[e]}getFretNumber(e,r){let n=this.tabObjects.find(s=>s.tab===e),o=n==null?void 0:n.fretNumbers[r];return o?parseInt(o.getText()):void 0}getNextNoteGroup(){let e=this.measure.getVoiceSymbols(this.voiceId).filter(o=>o instanceof i),r=e.indexOf(this);if(r<0)return;if(r<e.length-1)return e[r+1];let n=this.measure.getNextMeasure();for(;n;){let o=n.getVoiceSymbols(this.voiceId).filter(s=>s instanceof i);if(o.length>0)return o[0];n=n.getNextMeasure()}}collectConnectiveProps(){this.startConnnectives.forEach(e=>{this.runningConnectives.push(e);let r=this.getNextNoteGroup();for(;r&&e.addNoteGroup(r);)r.runningConnectives.push(e),r=r.getNextNoteGroup()})}removeConnectiveProps(){this.runningConnectives=[]}getPlaySlur(){let e=this.runningConnectives.filter(r=>r.connective==="slur").map(r=>r.startsWith(this)?"first":"slurred");return e.indexOf("first")>=0?"first":e.indexOf("slurred")>=0?"slurred":void 0}getBeamGroup(){return this.beamGroup}setBeamGroup(e){this.beamGroup=e}resetBeamGroup(){this.leftBeamCount=this.rightBeamCount=0,this.beamGroup=void 0}getBeamCoords(){return this.staffObjects.map(e=>{var a,c,u,h;let r=e.staff,n=(c=(a=e.stemTip)==null?void 0:a.anchorX)!=null?c:e.noteHeadRects[0].anchorX,o=(h=(u=e.stemTip)==null?void 0:u.anchorY)!=null?h:this.stemDir==="up"?e.getRect().top:e.getRect().bottom,s=this.stemDir==="up"?Math.abs(e.noteHeadRects[0].anchorY-o):Math.abs(e.noteHeadRects[e.noteHeadRects.length-1].anchorY-o);return{staff:r,x:n,y:o,stemHeight:s}})}getStemHeight(e){let{unitSize:r}=e,{flagCount:n,hasStem:o}=this.rhythmProps;if(o){let s=this.hasBeamCount()?ct.BeamSeparation:ct.FlagSeparation;return(ct.StemHeight+Math.max(0,n-1)*s)*r}else return 0}hasBeamCount(){return this.leftBeamCount>0||this.rightBeamCount>0}getLeftBeamCount(){return this.leftBeamCount}getRightBeamCount(){return this.rightBeamCount}setLeftBeamCount(e){this.leftBeamCount=e}setRightBeamCount(e){this.rightBeamCount=e}hasTuplet(){return this.rhythmProps.tupletRatio!==void 0}isEmpty(){return this.staffObjects.length===0&&this.tabObjects.length===0}visibleInStaff(e){return e.containsVoiceId(this.voiceId)&&this.staffObjects.some(r=>r instanceof ic&&r.staff===e)}getPlayTicks(e){let r=this.runningConnectives.filter(n=>n.connective==="tie").map(n=>{let o=n.noteGroups,s=o.indexOf(this);if(s<0)return 0;if(n.span==="stub"||n.span==="toMeasureEnd")return Math.max(this.rhythmProps.ticks,this.measure.getMeasureTicks()-this.col.positionTicks);let a=o[s-1];return a&&a.notes.some(c=>U.equals(c,e))?0:(o=o.slice(s),s=o.findIndex(c=>c.notes.every(u=>!U.equals(u,e))),s>=0&&(o=o.slice(0,s)),$.Math.sum(o.map(c=>c.rhythmProps.ticks)))});return r.length===0?this.rhythmProps.ticks:Math.max(...r)}updateAccidentalState(e){this.notes.forEach(r=>{e.needAccidental(r)&&e.setAccidental(r)})}layout(e,r){this.requestRectUpdate();let{unitSize:n}=e,{row:o,stemDir:s}=this,{dotCount:a,flagCount:c,hasStem:u}=this.rhythmProps,h=ct.DotSize*n,l=(this.diamond?ct.DiamondNoteHeadSize:ct.NoteHeadWidth)*n,p=(this.diamond?ct.DiamondNoteHeadSize:ct.NoteHeadHeight)*n;this.staffObjects.length=0,o.getStaves().forEach(m=>{if(!m.containsDiatonicId(this.runningDiatonicId)||!m.containsVoiceId(this.voiceId))return;let f=new ic(m,this),g=m,b=m;this.notes.forEach((A,_)=>{var F;let E=_===0,q=_===this.notes.length-1,M=(F=m.getActualStaff(A.diatonicId))!=null?F:m,R=this.isNoteDisplaced[_]?l*(s==="down"?-1:1):0,B=M.getDiatonicIdY(A.diatonicId),D=M.isLine(A.diatonicId);E&&s==="up"&&(g=M),q&&s==="up"&&(b=M),E&&s==="down"&&(b=M),q&&s==="down"&&(g=M);let j=f.noteHeadRects[_]=G.createCentered(R,B,l,p);if(M.addObject(j),r.needAccidental(A)){let W=f.accidentals[_]=new Hi(this,A.diatonicId,A.accidental,this.color);W&&(W.layout(e),W.setAnchor(-j.leftw-n*ct.NoteAccSpace-W.getRect().rightw,B)),M.addObject(W)}for(let W=0;W<a;W++){let K=j.right+ct.NoteDotSpace*n+h/2+W*h*1.5,k=B+this.getDotVerticalDisplacement(m,A.diatonicId,s)*n,nt=G.createCentered(K,k,h,h);f.dotRects.push(nt),M.addObject(nt)}if(this.staccato){if(s==="up"&&E){let W=R,K=B+n*(D?3:2),k=G.createCentered(W,K,h,h);f.dotRects.push(k),g.addObject(k)}else if(s==="down"&&q){let W=R,K=B-n*(D?3:2),k=G.createCentered(W,K,h,h);f.dotRects.push(k),g.addObject(k)}}});let x=f.noteHeadRects[0].anchorY,C=f.noteHeadRects[f.noteHeadRects.length-1].anchorY,S=s==="up"?l/2:-l/2,T=this.getStemHeight(e),w=s==="up"?C-T:x+T,v=s==="up"?x:C;if(u&&(f.stemTip=new G(S,S,w,w),f.stemBase=new G(S,S,v,v),b.addObject(f.stemTip),g.addObject(f.stemBase)),!this.hasBeamCount()){let A=c===0?0:ct.FlagWidth*n,_=c===0?0:ct.FlagHeight*n;for(let E=0;E<c;E++){let q=E*n*ct.FlagSeparation,M=f.flagRects[E]=s==="up"?new G(S,S+A,w+q,w+_+q):new G(S,S+A,w-_-q,w-q);b.addObject(M)}}this.staffObjects.push(f),this.measure.addStaticObject(m,f)}),this.tabObjects.length=0,o.getTabs().forEach(m=>{if(!m.containsVoiceId(this.voiceId))return;let f=new Oh(m,this),g=X.Background,b=X.Tab_Note;this.notes.forEach((x,C)=>{let S=this.runningStringNumbers[C];if(y.isIntegerBetween(S,1,6)){let T=x.chromaticId-m.getTuningStrings()[S-1].chromaticId,w=new st(this,{text:String(T),color:b,bgcolor:g},.5,.5);w.layout(e),w.setAnchor(this.col.getRect().anchorX,m.getStringY(S-1)),f.fretNumbers.push(w)}}),f.fretNumbers.length>0&&(this.tabObjects.push(f),m.addObject(f),this.measure.addStaticObject(m,f))})}updateRect(){if(this.staffObjects.length>0)this.rect=this.staffObjects[0].noteHeadRects[0].clone();else if(this.tabObjects.length>0&&this.tabObjects[0].fretNumbers.length>0)this.rect=this.tabObjects[0].fretNumbers[0].getRect().clone();else{this.rect=new G;return}this.staffObjects.forEach(e=>this.rect.expandInPlace(e.getRect())),this.tabObjects.forEach(e=>this.rect.expandInPlace(e.getRect()))}setStemTipY(e,r){let n=this.staffObjects.find(o=>o.staff===e);this.hasBeamCount()&&(n!=null&&n.stemTip)&&r!==n.stemTip.anchorY&&(n.stemTip.top=n.stemTip.anchorY=n.stemTip.bottom=r,this.requestRectUpdate(),this.col.requestRectUpdate())}offset(e,r){this.staffObjects.forEach(n=>n.offset(e,0)),this.tabObjects.forEach(n=>n.offset(e,0)),this.requestRectUpdate()}draw(e){e.drawDebugRect(this.getRect());let{stemDir:r}=this,{isSolidNoteHead:n}=this.rhythmProps;this.staffObjects.forEach(o=>{o.accidentals.forEach(s=>s.draw(e)),e.color(this.color),e.lineWidth(1),o.noteHeadRects.forEach(s=>{this.diamond?n?(e.beginPath(),e.moveTo(s.anchorX,s.top),e.lineTo(s.right,s.anchorY),e.lineTo(s.anchorX,s.bottom),e.lineTo(s.left,s.anchorY),e.lineTo(s.anchorX,s.top),e.fill()):(e.beginPath(),e.lineWidth(2.5),e.moveTo(s.anchorX,s.top),e.lineTo(s.right,s.anchorY),e.moveTo(s.left,s.anchorY),e.lineTo(s.anchorX,s.bottom),e.stroke(),e.beginPath(),e.lineWidth(1),e.moveTo(s.right,s.anchorY),e.lineTo(s.anchorX,s.bottom),e.moveTo(s.anchorX,s.top),e.lineTo(s.left,s.anchorY),e.stroke()):(e.beginPath(),e.ellipse(s.anchorX,s.anchorY,s.leftw,s.toph,-.3,0,Math.PI*2),n?e.fill():e.stroke())}),o.dotRects.forEach(s=>e.fillCircle(s.anchorX,s.anchorY,s.width/2)),o.stemTip&&o.stemBase&&(e.beginPath(),e.moveTo(o.stemBase.anchorX,o.stemBase.anchorY),e.lineTo(o.stemTip.anchorX,o.stemTip.anchorY),e.stroke()),o.flagRects.forEach(s=>e.drawFlag(s,r==="up"?"up":"down"))}),this.tabObjects.forEach(o=>o.fretNumbers.forEach(s=>s.draw(e)))}getDotVerticalDisplacement(e,r,n){return e.isLine(r)?n==="up"?-1:1:0}static hasSameNotes(e,r){if(e.notes.length!==r.notes.length)return!1;for(let n=0;n<e.notes.length;n++){let o=e.notes[n],s=r.notes[n];if(o.diatonicId!==s.diatonicId||o.accidental!==s.accidental)return!1}return!0}};var kr=class extends tt{constructor(e,r){super(e);this.measure=e;this.positionTicks=r;d(this,"voiceSymbol",new vr);d(this,"lyricsObject",new qs);d(this,"minDiatonicId");d(this,"maxDiatonicId");d(this,"staffMinDiatonicId",new lt);d(this,"staffMaxDiatonicId",new lt);d(this,"arpeggioDir");d(this,"arpeggios",[]);d(this,"playerProps");d(this,"needLayout",!0);d(this,"shapeRects",[]);d(this,"mi");this.playerProps=new Zn(this),this.mi=new ss(this)}getMusicInterface(){return this.mi}getPlayerProps(){return this.playerProps}getNextColumnInMeasure(){let e=this.measure.getColumns().indexOf(this);if(e>=0&&e<this.measure.getColumnCount())return this.measure.getColumn(e+1);throw new N(6,"Cannot get next column in measure because current column's id in mesure is invalid.")}getNextColumn(){var r;let e=this.getNextColumnInMeasure();return e||((r=this.measure.getNextMeasure())==null?void 0:r.getColumn(0))}getTicksToNextColumn(){let e=this.getNextColumnInMeasure(),r=this.positionTicks,n=e?e.positionTicks:this.measure.getConsumedTicks();return Math.max(0,n-r)}getShapeRects(){return this.forceRectUpdate(),this.shapeRects}get doc(){return this.measure.doc}get row(){return this.measure.row}pick(e,r){let n=this.getRect().contains(e,r);for(let o=0;o<this.voiceSymbol.length;o++){let s=this.voiceSymbol.get(o);if(s instanceof ce){let a=s.pick(e,r);if(a.length>0)return n?[this,...a]:a}}if(!n)return[];for(let o=0;o<this.voiceSymbol.length;o++){let s=this.voiceSymbol.get(o);if(s instanceof At){let a=s.pick(e,r);if(a.length>0)return[this,...a]}}for(let o=0;o<this.arpeggios.length;o++){let s=this.arpeggios[o].pick(e,r);if(s.length>0)return[this,...s]}return[]}hasArpeggio(){return this.arpeggioDir!==void 0}getArpeggioDir(){var e;return(e=this.arpeggioDir)!=null?e:"up"}setVoiceSymbol(e,r){Bo(e),this.voiceSymbol.set(e,r),r instanceof ce&&!r.hide?this.row.getStaves().forEach(n=>{let o=r.getDiatonicId(n);this.minDiatonicId=this.minDiatonicId===void 0?o:Math.min(this.minDiatonicId,o),this.maxDiatonicId=this.maxDiatonicId===void 0?o:Math.max(this.maxDiatonicId,o)}):r instanceof At&&(this.minDiatonicId=this.minDiatonicId===void 0?r.notes[0].diatonicId:Math.min(this.minDiatonicId,r.notes[0].diatonicId),this.maxDiatonicId=this.maxDiatonicId===void 0?r.notes[r.notes.length-1].diatonicId:Math.max(this.maxDiatonicId,r.notes[r.notes.length-1].diatonicId),r.arpeggio!==void 0&&(this.arpeggioDir=r.arpeggio),this.updateNoteDisplacements()),this.requestLayout(),this.requestRectUpdate()}getVoiceSymbol(e){return this.voiceSymbol.get(e)}getLyricsObject(e,r,n){return this.lyricsObject.get(e,r,n)}addLyricsObject(e){this.lyricsObject.set(e.verse,e.line,e.vpos,e)}updateNoteDisplacements(){let e=[];this.voiceSymbol.forEach(n=>{n instanceof At&&n.notes.forEach(o=>{n.setNoteDisplacement(o,!1),e.push({noteGroup:n,note:o})})});let r=(n,o)=>{let s=U.compareFunc(n.note,o.note);return s===0?n.noteGroup.stemDir===o.noteGroup.stemDir?0:n.noteGroup.stemDir==="up"?1:-1:s};if(e.sort(r),!(e.length<2)){for(let n=0;n<e.length;n++){let o=e[n],s=e[n+1];s&&o.note.diatonicId===s.note.diatonicId&&(o.isDisplaced=s.isDisplaced=!1)}for(let n=0;n<e.length;n++){let o=e[n-1],s=e[n],a=e[n+1];s.isDisplaced===void 0&&(o&&s.note.diatonicId-o.note.diatonicId<=1?s.isDisplaced=!o.isDisplaced:a&&a.note.diatonicId-s.note.diatonicId<=1&&(s.isDisplaced=!a.isDisplaced))}e.forEach(n=>{var o;return n.noteGroup.setNoteDisplacement(n.note,(o=n.isDisplaced)!=null?o:!1)})}}isEmpty(){return this.voiceSymbol.size===0||this.voiceSymbol.every(e=>e.isEmpty())}getPlayerNotes(){let e=[];function r(n,o,s,a){if(o<=0)return;e.some(u=>n.diatonicId===u.note.diatonicId&&n.accidental===u.note.accidental?(u.ticks=Math.max(u.ticks,o),!0):!1)||e.push({note:n,ticks:o,staccato:s,slur:a})}return ae().forEach(n=>{let o=this.getVoiceSymbol(n);if(o instanceof At){let s=o.getPlaySlur();o.notes.forEach(a=>{let c=o.getPlayTicks(a),u=o.staccato;r(a,c,u,s)})}}),e.sort((n,o)=>U.compareFunc(n.note,o.note)),this.hasArpeggio()&&this.getArpeggioDir()==="down"&&e.reverse(),e}requestLayout(){this.needLayout||(this.needLayout=!0,this.measure.requestLayout())}layout(e,r){if(!this.needLayout)return;let{row:n}=this;this.rect=new G,this.requestRectUpdate();let o=0,s=0;if(this.voiceSymbol.forEach(h=>{h.layout(e,r);let l=h.getRect();o=Math.max(o,l.leftw),s=Math.max(s,l.rightw)}),this.arpeggioDir!==void 0){this.arpeggios=n.getNotationLines().map(l=>new ec(this,l,this.getArpeggioDir())),this.arpeggios.forEach(l=>l.layout(e));let h=this.arpeggios.map(l=>l.getRect().width).reduce((l,p)=>Math.max(l,p))+e.unitSize;this.arpeggios.forEach(l=>{l.setAnchor(-o-h/2,l.line.getRect().anchorY),l.line.addObject(l),this.measure.addStaticObject(l.line,l)}),o+=h}else this.arpeggios=[];let a=this.voiceSymbol.mapToArray(h=>h.rhythmProps.noteSize),c=Math.min(8,Math.max(1,...a)),u=Math.ceil(8/c)*ct.NoteHeadWidth*e.unitSize*.75;o=Math.max(o,u/2),s=Math.max(s,u/2),o*=ct.ColumnWidthScale,s*=ct.ColumnWidthScale,this.rect.left=-o,this.rect.anchorX=0,this.rect.right=s,this.requestRectUpdate(),this.voiceSymbol.forEach(h=>h.updateAccidentalState(r)),this.row.getStaves().forEach(h=>{let l,p;this.voiceSymbol.forEach(m=>{if(m.visibleInStaff(h)){if(m instanceof At)l=l===void 0?m.minDiatonicId:Math.min(l,m.minDiatonicId),p=p===void 0?m.maxDiatonicId:Math.max(p,m.maxDiatonicId);else if(m instanceof ce){let f=m.getDiatonicId(h);l=l===void 0?f:Math.min(l,f),p=p===void 0?f:Math.max(p,f)}}}),l!==void 0?this.staffMinDiatonicId.set(h,l):this.staffMinDiatonicId.delete(h),p!==void 0?this.staffMaxDiatonicId.set(h,p):this.staffMaxDiatonicId.delete(h)})}layoutReserveSpace(e){let r=this.measure.getColumns(),n=e.unitSize;this.getAnchoredLayoutObjects().forEach(o=>{if(o.layoutGroup.reserveSpace){let s=r.indexOf(this);if(s<0)return;let a=o.getRect().leftw-this.getRect().leftw;if(a>0){let u=r[s-1];u&&u.getAnchoredLayoutObjects().forEach(h=>{if(h.layoutGroupId===o.layoutGroupId){let l=h.getRect().rightw-u.getRect().rightw;this.rect.left-=Math.max(l+a,0)+n,this.requestRectUpdate()}})}let c=o.getRect().rightw-this.getRect().rightw;if(c>0){let u=r[s+1];u&&u.getAnchoredLayoutObjects().forEach(h=>{if(h.layoutGroupId===o.layoutGroupId){let l=h.getRect().leftw-u.getRect().leftw;this.rect.right+=Math.max(c+l,0)+n,this.requestRectUpdate()}})}}})}layoutDone(){this.needLayout=!1}updateRect(){this.shapeRects=[...this.voiceSymbol.filter(e=>e!==void 0).mapToArray(e=>e.getRect().clone()),...this.arpeggios.map(e=>e.getRect().clone())],this.rect.top=Math.min(...this.shapeRects.map(e=>e.top)),this.rect.bottom=Math.max(...this.shapeRects.map(e=>e.bottom)),this.rect.anchorY=(this.rect.top+this.rect.bottom)/2}offset(e,r){this.voiceSymbol.forEach(n=>n.offset(e,0)),this.arpeggios.forEach(n=>n.offset(e,0)),this.shapeRects.forEach(n=>n.offsetInPlace(e,r)),this.rect.offsetInPlace(e,r)}draw(e){e.color(X.Staff_Frame),this.row.getStaves().forEach(r=>{let n=this.staffMinDiatonicId.get(r),o=this.staffMaxDiatonicId.get(r);n!==void 0&&e.drawLedgerLines(r,n,this.getRect().anchorX),o!==void 0&&e.drawLedgerLines(r,o,this.getRect().anchorX)}),this.voiceSymbol.forEach(r=>r.draw(e)),this.arpeggios.forEach(r=>r.draw(e))}};var Lr=class Lr extends tt{constructor(e,r,n="black"){super(e);this.text=r;this.color=n;d(this,"components",[]);d(this,"mi");switch(this.text){case Lr.Coda:this.components=[new st(this,{text:"\u{1D10C}",scale:1.7,color:n},.5,.3),new st(this,{text:" Coda",color:n},0,1)];break;case Lr.toCoda:this.components=[new st(this,{text:"toCoda ",color:n},1,1),new st(this,{text:"\u{1D10C}",scale:1.7,color:n},.5,.3)];break;case Lr.Segno:this.components=[new st(this,{text:"\u{1D10B}",scale:1.1,color:n},.5,1)];break;default:this.components=[];break}this.mi=new as(this)}getMusicInterface(){return this.mi}getText(){return this.text}pick(e,r){return this.rect.contains(e,r)?[this]:[]}layout(e){switch(this.text){case Lr.Coda:{let r=this.components[0],n=this.components[1];r.layout(e),n.layout(e),r.setAnchorY(n.getRect().centerY),n.setLeft(r.getRect().right),this.rect=new G(r.getRect().left,r.getRect().anchorX,n.getRect().right,n.getRect().top,n.getRect().anchorY,n.getRect().bottom);break}case Lr.toCoda:{let r=this.components[0],n=this.components[1];r.layout(e),n.layout(e),n.setAnchorY(r.getRect().centerY),r.setRight(n.getRect().left),this.rect=new G(r.getRect().left,n.getRect().anchorX,n.getRect().right,r.getRect().top,r.getRect().anchorY,r.getRect().bottom);break}default:{let r=this.components[0];r.layout(e),this.rect=r.getRect().clone();break}}}offset(e,r){this.components.forEach(n=>n.offset(e,r)),this.rect.offsetInPlace(e,r)}draw(e){e.drawDebugRect(this.rect),this.components.forEach(r=>r.draw(e))}};d(Lr,"toCoda","\u{1D10C} toCoda"),d(Lr,"Coda","Coda \u{1D10C}"),d(Lr,"Segno","\u{1D10B}");var Se=Lr;function Mh(i){return i instanceof st||i instanceof Se?i.getText():i instanceof bi?"[measure]":""}var Rh=class{constructor(t){this.startColumn=t;d(this,"columnRange");d(this,"stopObject");this.columnRange=[t]}get endColumn(){return this.columnRange[this.columnRange.length-1]}addColumn(t){this.endColumn!==t&&this.columnRange.push(t)}setStopObject(t){this.stopObject=t}},nc=class nc extends Xa{constructor(e,r,n,o,s,a){super(e.musicObj);this.headObj=e;d(this,"length");d(this,"visible");d(this,"lineStyle");d(this,"linePos");d(this,"startColumn");this.length=n+1,this.visible=o,this.lineStyle=s,this.linePos=a,this.startColumn=r}isVisible(){return this.visible}getLineStyle(){return this.lineStyle}getLinePos(){return this.linePos}whatStopped(e){let r=e.measure,n=r.getColumns(),o=e.getAnchoredLayoutObjects().filter(s=>s!==this.headObj&&s.layoutGroupId===this.headObj.layoutGroupId).map(s=>s.musicObj).filter(s=>s instanceof st||s instanceof Se)[0];return o||(e===n[n.length-1]&&r.hasEndSection()||r.hasEndSong()||nc.StopNavigations.some(s=>r.hasNavigation(s))?r.getBarLineRight():void 0)}getRange(){let{startColumn:e,length:r}=this,n=e,o=new Rh(n),s=r;for(;;){if(s<=0)return o;let a=this.whatStopped(n);if(a!==void 0)return o.setStopObject(a),o;if(s-=n.getTicksToNextColumn(),n=n.getNextColumn(),!n)return o;s>0&&o.addColumn(n)}}};d(nc,"StopNavigations",["endRepeat","ending"]);var $i=nc;function cs(i){switch(i){case"D.C. al Coda":return"D.C. al Coda";case"D.C. al Fine":return"D.C. al Fine";case"D.S. al Coda":return"D.S. al Coda";case"D.S. al Fine":return"D.S. al Fine";case"Fine":return"Fine";case"Segno":return Se.Segno;case"Coda":return Se.Coda;case"toCoda":return Se.toCoda;default:return i[0].toUpperCase()+i.substring(1)}}function us(i){if(/^(p+|f+|m|mp|mf)$/.test(i)){let t=.5-$.Str.charCount(i,"p")*.1+$.Str.charCount(i,"f")*.1;return $.Math.clamp(t,0,1)}else return}function ng(i){return y.isEnumValue(i,Uo)?"dynamics":y.isEnumValue(i,zo)?"tempo":void 0}var zv=2,Yv=2,Hv=.5,$v=.5;function Zv(i,t){let e=Kt.get(t.options.beatLength,t.options.dotCount).ticks,r=t.beatsPerMinute*e;return 60*i/r}function Eh(){return us("m")}function Xv(i){return i*1.25}var Qv=.5,Zn=class{constructor(t){this.col=t;d(this,"speed");d(this,"volume");this.speed=1,this.volume=Eh()}get measure(){return this.col.measure}reset(){this.speed=1,this.volume=Eh()}setSpeed(t){this.speed=t}getSpeed(){return this.speed}getTempo(){let t=$.Math.clamp(this.getSpeed(),.1,10);return bu(this.measure.getTempo(),t)}setVolume(t){this.volume=t}getVolume(){return this.volume}hasFermata(){return this.measure.hasFermata(this.col)}getFermataHoldTicks(){if(!this.hasFermata())return 0;let{col:t}=this;if(t instanceof xr)return this.measure.getMeasureTicks()/2;{let r=ae().map(n=>t.getVoiceSymbol(n)).filter(n=>!!n).map(n=>n.rhythmProps.ticks);return r.length===0?0:$.Math.sum(r)/r.length}}},oc=class i{constructor(){d(this,"playTimer");d(this,"playPos");d(this,"playState",2);d(this,"doc");d(this,"cursorPositionChangeListener");d(this,"playStateChnageListener");d(this,"playerColumnSequence",[])}setDocument(t){this.doc=t,this.doc.resetMeasures(),this.playerColumnSequence=this.collectPlayerColumnSequence(),this.updatePlayerProps()}setCursorPositionChangeListener(t){this.cursorPositionChangeListener=t}setPlayStateChnageListener(t){this.playStateChnageListener=t}notifyCursorPositionChanged(){this.cursorPositionChangeListener&&this.cursorPositionChangeListener(this.getCursorRect())}notifyPlayStateChanged(){let t=this.playPos!==void 0&&this.playTimer!==void 0?0:this.playPos!==void 0&&this.playTimer===void 0?1:2;this.playState!==t&&(this.playStateChnageListener&&this.playStateChnageListener(t),this.playState=t)}collectPlayerMeasureSequence(){var a;if(!this.doc)return[];let t=[],e=this.doc.getFirstMeasure(),r=e,n,o=!1,s=!1;for(;e;){if(e.incPassCount(),e.getEnding()){let u=e.getPassCount();e=i.getMeasureByEndingPassage(e,u)}if(e)if(t.push(e),e.hasNavigation("startRepeat")&&(r=e),e.hasNavigation("Segno")&&(n=e),s&&e.hasNavigation("toCoda"))for(;e&&!e.hasNavigation("Coda");)e=e.getNextMeasure();else if(o&&e.hasNavigation("Fine"))e=void 0;else if(e.hasNavigation("D.C. al Coda"))s=!0,e=this.doc.getFirstMeasure();else if(e.hasNavigation("D.C. al Fine"))o=!0,e=this.doc.getFirstMeasure();else if(e.hasNavigation("D.S. al Coda"))s=!0,e=n;else if(e.hasNavigation("D.S. al Fine"))o=!0,e=n;else if(e.hasNavigation("endRepeat")){let u=e.getPassCount(),h=e.getEndRepeatPlayCount()-1,l=((a=e.getNextMeasure())==null?void 0:a.hasNavigation("ending"))===!0;u<=h||l?e=r:e=e.getNextMeasure()}else e.hasEndSong()?e=void 0:e=e.getNextMeasure()}return t}collectPlayerColumnSequence(){let t=this.collectPlayerMeasureSequence(),e=[];for(let r=0;r<t.length;r++){let n=t[r];e=e.concat(n.getColumns()),n.hasFermata(n.getBarLineRight())&&e.push(n.getBarLineRight())}return e}updatePlayerProps(){if(this.playerColumnSequence.forEach(a=>a.getPlayerProps().reset()),!this.doc)return;let t=1,e=Eh(),r=new lt,n=new lt,o=(a,c)=>r.getOrCreate(a,[]).push(c),s=(a,c)=>n.getOrCreate(a,[]).push(c);this.playerColumnSequence.forEach(a=>{if(!(a instanceof kr))return;a.getAnchoredLayoutObjects().forEach(h=>{let l=Mh(h.musicObj),p;if(l==="a tempo")t=1;else if((p=us(l))!==void 0)e=p;else if(h.musicObj.getLink()instanceof $i){let f=h.musicObj.getLink().getRange(),g=f.stopObject?Mh(f.stopObject):"",b=$.Math.sum(f.columnRange.map(x=>x.getTicksToNextColumn()));switch(l){case"accel.":{let x=t,C=x*zv,S=0;f.columnRange.forEach(T=>{S+=T.getTicksToNextColumn(),o(T,x+(C-x)*S/b)});break}case"rit.":{let x=t,C=x/Yv,S=0;f.columnRange.forEach(T=>{S+=T.getTicksToNextColumn(),o(T,x+(C-x)*S/b)});break}case"cresc.":{let x=e,C=x+Hv;f.stopObject&&(p=us(g))!==void 0&&p>x&&(C=p);let S=0;f.columnRange.forEach(T=>{S+=T.getTicksToNextColumn(),s(T,x+(C-x)*S/b)});break}case"decresc.":case"dim.":{let x=e,C=x-$v;f.stopObject&&(p=us(g))!==void 0&&p<x&&(C=p);let S=0;f.columnRange.forEach(T=>{S+=T.getTicksToNextColumn(),s(T,x+(C-x)*S/b)});break}}}});let c=r.getOrDefault(a,[]);c.length>0&&(t=$.Math.sum(c)/c.length);let u=n.getOrDefault(a,[]);u.length>0&&(e=$.Math.sum(u)/u.length),a.getPlayerProps().setSpeed(t),a.getPlayerProps().setVolume(e)})}static getMeasureByEndingPassage(t,e){for(let r=t;;r=r.getNextMeasure()){let n=r==null?void 0:r.getEnding();if(n&&n.hasPassage(e))return r;let o=r==null?void 0:r.getNextMeasure();if(!r||r.hasEndSong()||r.hasEndSection()||!o||o.hasNavigation("startRepeat"))return}}playStep(){if(this.notifyCursorPositionChanged(),this.notifyPlayStateChanged(),this.playPos===void 0){this.stop();return}let t=this.playerColumnSequence[this.playPos];if(!t){this.stop();return}let e=(s,a)=>{let c=Zv(s,a);return Math.max(0,c)},r=t.getPlayerProps().getTempo(),n=t.getPlayerProps().getFermataHoldTicks(),o;t instanceof xr?o=e(n,r):(t.getPlayerNotes().forEach((a,c)=>{let u=t.hasArpeggio()?Kt.get("32n").ticks*c:0,h=e(a.ticks+n-u,r);if(h>0){a.staccato&&(h=Math.min(e(Kt.get("8n").ticks,r)/2,h/2));let l=Xv(t.getPlayerProps().getVolume());if(a.slur==="slurred"&&(l*=Qv),u>0){let p=e(u,r);window.setTimeout(()=>Ua(a.note,h,l),p*1e3)}else Ua(a.note,h,l)}}),o=e(t.getTicksToNextColumn()+n,r)),this.playTimer=window.setTimeout(()=>this.playStep(),o*1e3),this.playPos=this.getNextPlayPosition(this.playPos),this.notifyPlayStateChanged()}play(){if(this.playState===0)this.stop();else if(this.playState===1){this.playStep();return}let{doc:t}=this;if(!t)return;t.getFirstMeasure()?(this.playPos=0,this.playStep()):this.playPos=void 0,this.notifyPlayStateChanged()}pause(){this.playTimer&&(window.clearTimeout(this.playTimer),this.playTimer=void 0),this.notifyCursorPositionChanged(),this.notifyPlayStateChanged()}stop(){this.playPos=void 0,this.playTimer&&(window.clearTimeout(this.playTimer),this.playTimer=void 0),this.notifyCursorPositionChanged(),this.notifyPlayStateChanged()}getNextPlayPosition(t){return this.playPos!==void 0&&++this.playPos>=this.playerColumnSequence.length&&(this.playPos=void 0),this.playPos}getCursorRect(){if(this.playPos===void 0)return;let t=this.playerColumnSequence[this.playPos];if(!t)return;let e=t.measure,r=t.getRect().anchorX,{top:n,height:o}=e.row.getRect();return new uu(r,n,0,o)}};var Dh=class extends tt{constructor(e,r,n){super(r);this.barLine=e;this.line=r;this.rowGroup=n;d(this,"vlines",[]);d(this,"dots",[]);d(this,"mi");r.addObject(this),this.mi=new ds(this)}getMusicInterface(){return this.mi}pick(e,r){return this.getRect().contains(e,r)?[this]:[]}updateRect(){this.rect=new G(0,0,this.line.getTopLineY(),this.line.getBottomLineY()),this.vlines.forEach(e=>this.rect.expandInPlace(new G(e.left,e.left+e.width,this.rect.top,this.rect.bottom))),this.dots.forEach(e=>this.rect.expandInPlace(new G(e.x-e.r,e.x+e.r,e.y-e.r,e.y+e.r)))}offset(e,r){this.vlines.forEach(n=>n.left+=e),this.dots.forEach(n=>{n.x+=e,n.y+=r}),this.rect.offsetInPlace(e,r)}},sc=class extends tt{constructor(e){super(e);this.measure=e;d(this,"notationLineObjects",[]);d(this,"notationLineObjectsByGrp",new lt);d(this,"barLineType",0)}get doc(){return this.measure.doc}get row(){return this.measure.row}pick(e,r){if(!this.getRect().contains(e,r))return[];for(let n=0;n<this.notationLineObjects.length;n++){let o=this.notationLineObjects[n].pick(e,r);if(o.length>0)return[this,...o]}return[this]}layout(e){this.requestRectUpdate(),this.barLineType=this.solveBarLineType();let{unitSize:r,_lineWidth:n}=e,{measure:o,barLineType:s}=this,{row:a}=o,c=n,u=.7*r,h=.7*r,p=ct.DotSize*r/2;this.notationLineObjects=[],this.notationLineObjectsByGrp.clear(),a.getRowGroups().forEach(m=>{m.lines.forEach(f=>{let g=new Dh(this,f,m);this.notationLineObjects.push(g),this.notationLineObjectsByGrp.getOrCreate(m,[]).push(g);let b,x,C=(T,w)=>{g.vlines.push({left:T,width:w})},S=T=>{for(let w=-1;w<=1;w+=2){let v=b+w*x;g.dots.push({x:T,y:v,r:p})}};switch(f instanceof Et?(b=f.getMiddleLineY(),x=f.getDiatonicSpacing()):(b=(f.getBottomLineY()+f.getTopLineY())/2,x=(f.getBottomLineY()-f.getTopLineY())/6),s){case 0:break;case 1:C(-c,c);break;case 2:C(-c-h-c,c),C(-c,c);break;case 3:C(-c-h-u,c),C(-u,u);break;case 4:C(0,u),C(u+h,c),S(u+h+c+h+p);break;case 5:C(-c-h-u,c),C(-u,u),S(-c-h-u-h-p);break;case 6:C(-u/2,u),C(-u/2-h-c,c),C(u/2+h,c),S(-u/2-h-c-h-p),S(u/2+h+c+h+p);break}g.forceRectUpdate()})})}updateRect(){if(this.notationLineObjects.length>0){this.rect=this.notationLineObjects[0].getRect().clone();for(let e=1;e<this.notationLineObjects.length;e++)this.rect.expandInPlace(this.notationLineObjects[e].getRect())}else this.rect=new G}offset(e,r){this.notationLineObjects.forEach(n=>n.offset(e,0)),this.requestRectUpdate()}draw(e){this.barLineType!==0&&(e.drawDebugRect(this.getRect()),this.notationLineObjects.forEach(r=>{r.vlines.forEach(n=>r.line.drawVerticalLine(e,n.left,n.width)),r.dots.forEach(n=>e.fillCircle(n.x,n.y,n.r))}))}},xi=class extends sc{constructor(e){super(e);d(this,"mi");this.mi=new ls(this)}getMusicInterface(){return this.mi}solveBarLineType(){let e=this.measure,r=e.getPrevMeasure();return e.hasNavigation("startRepeat")?r&&r.row===e.row&&r.hasNavigation("endRepeat")?0:4:0}},xr=class extends sc{constructor(e){super(e);d(this,"playerProps");d(this,"mi");this.playerProps=new Zn(this),this.mi=new hs(this)}getMusicInterface(){return this.mi}getPlayerProps(){return this.playerProps}solveBarLineType(){let e=this.measure,r=e.getNextMeasure();return e.hasNavigation("endRepeat")?r&&r.row===e.row&&r.hasNavigation("startRepeat")?6:5:!e.doc.hasSingleMeasure()&&(e.hasEndSong()||!e.getNextMeasure())?3:e.hasEndSection()||e===e.row.getLastMeasure()&&r&&r.row===e.row.getNextRow()&&r.hasNavigation("startRepeat")?2:r&&r.hasNavigation("startRepeat")?0:1}};var Zi=class extends tt{constructor(e,r,n){super(e);this.measure=e;this.color=r;this.passages=n;d(this,"endingText");d(this,"shapeRects",[]);d(this,"mi");if(this.mi=new ps(this),y.isIntegerGte(n.length,1)){if(!this.passages.every(s=>y.isIntegerGte(s,1)))throw new N(6,"Invalid passages: "+this.passages)}else throw new N(6,"Passages is empty.");this.passages.sort((s,a)=>s-a);let o=this.passages.map(s=>s+".").join("");this.endingText=new st(this,{text:o,color:r},0,1)}getMusicInterface(){return this.mi}getShapeRects(){return this.shapeRects}isSingleMeasureEnding(){let{measure:e}=this,r=e.getNextMeasure();return(r==null?void 0:r.hasNavigation("ending"))===!0||e.hasNavigation("endRepeat")||e.isLastMeasure()}hasPassage(e){return this.passages.some(r=>r===e)}getHighestPassage(){return Math.max(0,...this.passages)}pick(e,r){return this.rect.contains(e,r)?[this]:[]}layout(e){this.rect=new G,this.shapeRects=[this.rect.clone()]}layoutFitToMeasure(e){let{unitSize:r}=e,{measure:n}=this;this.endingText.layout(e);let o=this.endingText.getRect(),s=n.getColumnsContentRect(),a=o.height;this.rect=new G(s.left+r,s.right-r,-a,0),this.endingText.setLeft(this.rect.left+r/2),this.endingText.setBottom(this.rect.bottom),this.shapeRects=[new G(this.rect.left,this.rect.left+1,this.rect.top,this.rect.bottom),new G(this.rect.left,this.rect.right,this.rect.top,this.rect.top+1),new G(this.rect.right-1,this.rect.right,this.rect.top,this.rect.bottom),this.endingText.getRect().clone()]}offset(e,r){this.endingText.offset(e,r),this.shapeRects.forEach(n=>n.offsetInPlace(e,r)),this.rect.offsetInPlace(e,r)}draw(e){let{rect:r}=this;e.drawDebugRect(this.rect),e.color(this.color).lineWidth(1),e.beginPath(),e.moveTo(r.left,r.bottom),e.lineTo(r.left,r.top),e.lineTo(r.right,r.top),this.isSingleMeasureEnding()&&e.lineTo(r.right,r.bottom),e.stroke(),this.endingText.draw(e)}};var Kv=(i,t)=>{let e=ct.BeamAngleFactor;if(!Number.isFinite(e)||e===0)return t;{let r=i/t/e;return r=Math.sign(r)*Math.sqrt(Math.abs(r)),i/r*e}},ms=class{constructor(t,e,r,n,o){this.staff=t;this.beamGroup=e;this.symbol=r;this.x=n;this.y=o;d(this,"topBeamsHeight",0);d(this,"bottomBeamsHeight",0);t.addObject(this)}offset(t,e){this.x+=t,this.y+=e,this.beamGroup.requestRectUpdate()}getRect(){return new G(this.x,this.x,this.x,this.y-this.topBeamsHeight,this.y,this.y+this.bottomBeamsHeight)}},kh=class extends tt{constructor(e,r){super(e);this.staff=e;this.beamGroup=r;d(this,"tupletNumber");d(this,"tupletNumberOffsetY",0);d(this,"points",[]);d(this,"mi");e.addObject(this),this.mi=new gs(this)}getMusicInterface(){return this.mi}pick(e,r){return this.getRect().contains(e,r)?[this]:[]}offset(e,r){var n;this.points.forEach(o=>o.offset(e,0)),(n=this.tupletNumber)==null||n.offset(e,r),this.requestRectUpdate(),this.beamGroup.requestRectUpdate()}updateRect(){this.points.length>0?this.rect=this.points[0].getRect().clone():this.tupletNumber&&(this.rect=this.tupletNumber.getRect().clone()),this.points.forEach(e=>this.rect.expandInPlace(e.getRect())),this.tupletNumber&&this.rect.expandInPlace(this.tupletNumber.getRect())}},Ai=class{constructor(t,e){this.beamGroup=t;this.message=e}},Xi=class i extends tt{constructor(e,r){super(e[0].measure);this.symbols=e;this.tupletRatio=r;d(this,"mi");d(this,"type");d(this,"staffObjects",[]);this.mi=new fs(this);let n=r?"Tuplet":"BeamGroup";if(e.every(o=>o.measure===e[0].measure)){if(e.length<2)throw new N(6,`${n} needs minimum 2 symbols, but ${e.length} given.`)}else throw new N(6,`All ${n} symbols are not in same measure.`);if(r!==void 0){let o=e.length<3||e.some(s=>!(s instanceof At))||e.some(s=>s.rhythmProps.flagCount!==e[0].rhythmProps.flagCount);e.length>=3&&e[0]instanceof At&&e[e.length-1]instanceof At&&e[0].rhythmProps.flagCount===e[e.length-1].rhythmProps.flagCount&&(o=!1),e.some(s=>Nt.cmp(s.rhythmProps.noteLength,"4n")>=0)&&(o=!0),this.type=o?2:1,this.setTupletBeamCounts()}else this.type=0,this.setBeamCounts();if(e.every(o=>o.getBeamGroup()===void 0))e.forEach(o=>o.setBeamGroup(this)),e[0].measure.addBeamGroup(this);else throw new N(6,`Cannot add ${n} because some symbol already has one.`);if(this.type===0&&this.symbols.filter(o=>o instanceof At).some((o,s)=>{let a=s===0,c=s===this.symbols.length-1;if(a&&o.getRightBeamCount()===0||c&&o.getLeftBeamCount()===0||!a&&!c&&(o.getLeftBeamCount()===0||o.getRightBeamCount()===0))throw new Ai(this,"Beam has zero left or right beam count!")}),e.some(o=>o.voiceId!==e[0].voiceId))throw this.type===0?new Ai(this,"Beam symbols have different voiceId."):new N(6,"Tuplet symbols have different voiceId.");e[0].row.getStaves().forEach(o=>{o.getActualStaff(e[0].getDiatonicId(o))&&o.containsVoiceId(e[0].voiceId)&&e.forEach(s=>{let a=o.getActualStaff(s.getDiatonicId(o));if(!a||!a.containsVoiceId(s.voiceId))throw new Ai(this,"Some of beam or tuplet symbols are not visible!")})})}get stemDir(){return this.symbols[0].stemDir}get showTupletRatio(){var e;return((e=this.tupletRatio)==null?void 0:e.showRatio)===!0}static createBeam(e){if(e.length>1&&e.every(r=>!r.hasTuplet()))try{return new i(e,void 0),!0}catch(r){if(r instanceof Ai)r.beamGroup.detach();else throw r}return!1}static createOldStyleTriplet(e){try{let r=e.slice(0,2),n=r.map(a=>a.rhythmProps.noteSize);if(r.length===2&&r.every(a=>a.oldStyleTriplet&&a.getBeamGroup()===void 0)&&(n[0]*2===n[1]||n[1]*2===n[0]))return new i(r,Gr.Triplet),2;let o=e.slice(0,3),s=o.map(a=>a.rhythmProps.noteSize);if(o.length===3&&o.every(a=>a.oldStyleTriplet&&a.getBeamGroup()===void 0)&&s.every(a=>a===s[0]))return new i(o,Gr.Triplet),3}catch(r){if(r instanceof Ai)console.error(r.message),r.beamGroup.detach();else throw r}return 0}static createTuplet(e,r){try{new i(e,r)}catch(n){if(n instanceof Ai)console.error(n.message),n.beamGroup.detach();else throw n}}getMusicInterface(){return this.mi}detach(){this.getSymbols().forEach(e=>e.resetBeamGroup())}isEmpty(){return this.staffObjects.length===0}pick(e,r){if(!this.getRect().contains(e,r))return[];for(let n=0;n<this.staffObjects.length;n++){let o=this.staffObjects[n].pick(e,r);if(o.length>0)return[this,...o]}return[this]}getType(){return this.type}isTuplet(){return this.type===1||this.type===2}getTupletRatioText(){var e,r,n;return this.showTupletRatio?String((e=this.tupletRatio)==null?void 0:e.parts)+":"+String((r=this.tupletRatio)==null?void 0:r.inTimeOf):String((n=this.tupletRatio)==null?void 0:n.parts)}getSymbols(){return this.symbols}getFirstSymbol(){return this.symbols[0]}getLastSymbol(){return this.symbols[this.symbols.length-1]}get color(){return this.symbols[0].color}layout(e){this.requestRectUpdate(),this.staffObjects.length=0;let r=this.getSymbols();if(r.length===0)return;let{unitSize:n}=e,{stemDir:o,type:s}=this,a=r.map(c=>c.getBeamCoords());a[0].map(c=>c==null?void 0:c.staff).forEach((c,u)=>{var B,D;if(!c)return;let h=a.map(j=>{var F;return(F=j[u])==null?void 0:F.x}),l=a.map(j=>{var F;return(F=j[u])==null?void 0:F.y}),p=a.map(j=>{var F;return(F=j[u])==null?void 0:F.staff}),m=a.map(j=>{var F;return(F=j[u])==null?void 0:F.stemHeight}),f=r[0],g=h[0],b=l[0],x=p[0],C=r[r.length-1],S=h[h.length-1],T=l[l.length-1],w=p[l.length-1];if(g===void 0||b===void 0||x===void 0||S===void 0||T===void 0||w===void 0)return;let v=(B=m[0])!=null?B:0,A=(D=m[m.length-1])!=null?D:0;if(s!==2){let j=v<A?Math.sqrt(A-v):0,F=A<v?Math.sqrt(v-A):0;o==="up"&&(j*=-1,F*=-1),j!==0&&(b+=j,l[0]+=j),F!==0&&(T+=F,l[l.length-1]+=F)}let _=n*2*(o==="up"?-1:1),E=(T+b)/2,q=Kv(S-g,T-b)/2;b=E-q,T=E+q;let M=0;l.forEach((j,F)=>{let W=h[F];if(W!==void 0&&j!==void 0){let K=$.Math.interpolateY(g,b,S,T,W),k=j-K;o==="up"&&k<0?M=Math.min(M,k):o==="down"&&k>0&&(M=Math.max(M,k))}}),b+=M,T+=M,l=l.map(j=>j===void 0?void 0:j+M);let R=new kh(c,this);if(s===2){let j=n/(S-g),F=$.Math.interpolateCoord(g,b+_,S,T+_,-j),W=$.Math.interpolateCoord(g,b+_,S,T+_,1+j);R.points.push(new ms(x,this,f,F.x,F.y)),R.points.push(new ms(w,this,C,W.x,W.y)),R.tupletNumberOffsetY=0}else if(s===0||s===1){M*=.5;let j=e._lineWidth*ct.BeamThickness,F=W=>{let K=r[W];if(K instanceof At){let k=K instanceof At?Math.max(K.getLeftBeamCount(),K.getRightBeamCount()):0;return ct.BeamSeparation*n*(o==="up"?k-1:0)}else return 0};r.forEach((W,K)=>{let k=p[K],nt=h[K],mt=l[K];if(k&&nt!==void 0&&mt!==void 0){let Ct=new ms(k,this,W,nt,mt);switch(o){case"up":Ct.topBeamsHeight=j/2,Ct.bottomBeamsHeight=j/2+F(K);break;case"down":Ct.topBeamsHeight=j/2+F(K),Ct.bottomBeamsHeight=j/2;break}R.points.push(Ct)}}),R.tupletNumberOffsetY=_}this.isTuplet()&&(R.tupletNumber=new st(this,this.getTupletRatioText(),.5,.5),R.tupletNumber.layout(e),R.tupletNumber.offset((g+S)/2,(b+T)/2+R.tupletNumberOffsetY)),R.points.length>=2&&this.staffObjects.push(R)})}updateRect(){if(this.staffObjects.length===0)this.rect=new G;else{this.staffObjects.forEach(e=>e.updateRect()),this.rect=this.staffObjects[0].getRect().clone();for(let e=1;e<this.staffObjects.length;e++)this.rect.expandInPlace(this.staffObjects[e].getRect())}}updateStemTips(){this.staffObjects.forEach(e=>{let r=e.points[0],n=e.points[e.points.length-1];this.type!==2&&e.points.forEach(o=>{o.symbol instanceof At&&(o!==r&&o!==n&&(o.y=$.Math.interpolateY(r.x,r.y,n.x,n.y,o.x)),o.symbol.setStemTipY(o.staff,o.y))}),e.tupletNumber&&e.tupletNumber.setAnchorY((r.y+n.y)/2+e.tupletNumberOffsetY)})}offset(e,r){this.staffObjects.forEach(n=>n.offset(e,0)),this.requestRectUpdate()}draw(e){let{unitSize:r}=e,{stemDir:n,color:o,type:s}=this;if(s===2){e.color(o).lineWidth(1);let a=(n==="up"?1:-1)*r;this.staffObjects.forEach(c=>{let{x:u,y:h}=c.points[0],{x:l,y:p}=c.points[c.points.length-1];if(c.tupletNumber){let m=c.tupletNumber.getRect().width/(l-u)*1.2,f=$.Math.interpolateCoord(u,h,l,p,.5-m/2),g=$.Math.interpolateCoord(u,h,l,p,.5+m/2);e.strokeLine(u,h,f.x,f.y),e.strokeLine(g.x,g.y,l,p)}else e.strokeLine(u,h,l,p);e.strokeLine(u,h,u,h+a),e.strokeLine(l,p,l,p+a)})}else(s===0||s===1)&&(e.color(o).lineWidth(ct.BeamThickness),this.staffObjects.forEach(a=>{let c=a.points.filter(f=>f.symbol instanceof At),{x:u,y:h}=c[0],{x:l,y:p}=c[c.length-1],m=ct.BeamSeparation*r*(n==="up"?1:-1)*(1+.5*Math.abs(Math.atan2(p-h,l-u)));for(let f=0;f<c.length-1;f++){let{x:g,y:b,symbol:x}=c[f],{x:C,y:S,symbol:T}=c[f+1],w=x.getRightBeamCount(),v=T.getLeftBeamCount();for(let A=0;A<Math.max(w,v);A++)A<w&&A<v?e.strokeLine(g,b,C,S):w>v?e.strokePartialLine(g,b,C,S,0,.25):v>w&&e.strokePartialLine(g,b,C,S,.75,1),b+=m,S+=m}}));this.staffObjects.forEach(a=>{var c;return(c=a.tupletNumber)==null?void 0:c.draw(e)})}setBeamCounts(){let e=(o,s)=>{let{flagCount:a,noteSize:c,dotCount:u}=o.rhythmProps,{flagCount:h,noteSize:l,dotCount:p}=s.rhythmProps;return a>0&&h>0&&u>0&&p===0&&c*Math.pow(2,u)===l},r=this.symbols.filter(o=>o instanceof At);for(let o=0;o<r.length;o++){let s=r[o],a=r[o-1],c=r[o+1];s&&(s.setLeftBeamCount(0),s.setRightBeamCount(0),a&&(a.rhythmProps.flagCount===s.rhythmProps.flagCount||e(a,s)||e(s,a)?s.setLeftBeamCount(s.rhythmProps.flagCount):s.setLeftBeamCount(Math.min(a.rhythmProps.flagCount,s.rhythmProps.flagCount))),c&&(c.rhythmProps.flagCount===s.rhythmProps.flagCount||e(c,s)||e(s,c)?s.setRightBeamCount(s.rhythmProps.flagCount):s.setRightBeamCount(Math.min(c.rhythmProps.flagCount,s.rhythmProps.flagCount))))}let n;do{n=!1;for(let o=0;o<r.length;o++){let s=r[o],a=r[o-1],c=r[o+1];s&&s.getLeftBeamCount()!==s.rhythmProps.flagCount&&s.getRightBeamCount()!==s.rhythmProps.flagCount&&(s.setLeftBeamCount(0),s.setRightBeamCount(0),a&&a.getRightBeamCount()>0&&(a.setRightBeamCount(0),n=!0),c&&c.getLeftBeamCount()>0&&(c.setLeftBeamCount(0),n=!0))}}while(n)}setTupletBeamCounts(){let e=this.getType(),r=this.getSymbols();e===1?r.forEach((n,o)=>{n instanceof At&&(n.setLeftBeamCount(o===0?0:n.rhythmProps.flagCount),n.setRightBeamCount(o===r.length-1?0:n.rhythmProps.flagCount))}):e===2&&r.forEach(n=>{n instanceof At&&(n.setLeftBeamCount(0),n.setRightBeamCount(0))})}};var Ci=class extends tt{constructor(e,r,n){super(e);this.pos=r;this.color=n;d(this,"mi");this.mi=new ys(this)}getMusicInterface(){return this.mi}static getFermataPositions(e){let{measure:r}=e,{row:n}=r;return n.getTopStaff()!==n.getBottomStaff()?[0,1]:[0]}pick(e,r){return this.rect.contains(e,r)?[this]:[]}layout(e){let{unitSize:r}=e,n=r*4,o=r*3;this.rect=new G(-n/2,n/2,-o,0)}offset(e,r){this.rect.offsetInPlace(e,r)}draw(e){let{unitSize:r}=e,n=this.pos===1,o=(n?r:-r)*.7,s=this.rect.left,a=this.rect.right,c=(n?this.rect.bottom:this.rect.top)+o,u=(n?this.rect.top:this.rect.bottom)+o,h=u-c;e.drawDebugRect(this.rect),e.color(this.color).lineWidth(1),e.beginPath(),e.moveTo(s,u),e.bezierCurveTo(s,c,a,c,a,u),e.bezierCurveTo(a,c+h/5,s,c+h/5,s,u),e.stroke(),e.fill();let l=h/6;e.fillCircle((s+a)/2,u-l,Math.abs(l))}};function Jv(i){return i instanceof st||i instanceof Se}function sg(i){return i instanceof xr||i instanceof st||i instanceof Se}var Xn=class extends tt{constructor(e,r,n,o){super(e);this.measure=e;this.line=r;this.extension=n;this.cols=o;d(this,"mi");n.addTail(this),this.mi=new bs(this)}get row(){return this.measure.row}getMusicInterface(){return this.mi}getLineLeft(e){let r=this.cols[0];if(Jv(r))return r.getRect().right+e.unitSize;if(r instanceof xi)return r.getRect().anchorX;if(r instanceof kr){let n=r.measure.getColumns();if(r===n[0])return r.measure.getRect().left}return r.getRect().right}getLineRight(e){let r=this.cols[this.cols.length-1];if(sg(r))return r.getRect().left-e.unitSize;if(r instanceof kr){let n=r.measure.getColumns();if(r===n[n.length-1])return r.measure.getRect().right;let o=r.getNextColumn();if(o&&o.measure===r.measure)return(r.getRect().right+o.getRect().left)/2}return r.getRect().anchorX}layoutFitToMeasure(e){let r=e.unitSize,n=this.getLineLeft(e),o=this.getLineRight(e);[n,o]=[Math.min(n,o),Math.max(n,o)],this.rect=new G(n,o,-r/2,r/2)}pick(e,r){return this.rect.contains(e,r)?[this]:[]}layout(e){this.rect=new G}offset(e,r){this.rect.offsetInPlace(e,r)}draw(e){let{rect:r}=this,n=this.extension.headObj.musicObj,o=String(n.userData["extension-color"]);this.extension.getLineStyle()==="dashed"&&e.setLineDash([7,3]),e.color(o).lineWidth(1),e.strokeLine(r.left,r.anchorY,r.right,r.anchorY),e.setLineDash([]);let s=this.extension.getTails(),a=s[s.length-1];if(this===a&&!sg(this.cols[this.cols.length-1])){let c=r.anchorY>this.line.getRect().anchorY?-e.unitSize:e.unitSize;e.strokeLine(r.right,r.anchorY,r.right,r.anchorY+c)}}};var Qi=class extends tt{constructor(e,r,n,o,s,...a){var c;super(n);this.connectiveProps=e;this.measure=n;d(this,"lx",0);d(this,"ly",0);d(this,"rx",0);d(this,"ry",0);d(this,"cp1x",0);d(this,"cp1y",0);d(this,"cp2x",0);d(this,"cp2y",0);d(this,"arcHeight",0);d(this,"line");d(this,"leftNoteGroup");d(this,"leftNoteId");d(this,"rightNoteGroup");d(this,"rightNoteId");d(this,"tieType");d(this,"mi");this.line=(c=this.measure.row.findMatchingLine(r))!=null?c:r,this.leftNoteGroup=o,this.leftNoteId=s,a[0]instanceof At&&typeof a[1]=="number"?(this.rightNoteGroup=a[0],this.rightNoteId=a[1],this.tieType=void 0):y.isEnumValue(a[0],yr)&&(this.rightNoteGroup=void 0,this.rightNoteId=void 0,this.tieType=a[0]),this.measure.addConnectiveObject(this),this.mi=new xs(this)}getMusicInterface(){return this.mi}get doc(){return this.measure.doc}isInsideMeasure(){return this.rightNoteGroup===void 0||this.leftNoteGroup.measure===this.rightNoteGroup.measure}pick(e,r){return this.rect.contains(e,r)?[this]:[]}layout(e){let{unitSize:r}=e,{measure:n,line:o,leftNoteGroup:s,leftNoteId:a,rightNoteGroup:c,rightNoteId:u,connectiveProps:h}=this,{noteAnchor:l,arcDir:p}=h,{row:m}=n,f=m.getPrevRow(),g=m.getNextRow(),b=m.getConnectivesContentRect(),x,C;x=s.getConnectiveAnchorPoint(h,o,a,l,"left"),c!==void 0&&u!==void 0?C=c.getConnectiveAnchorPoint(h,o,u,l,"right"):C=this.tieType==="toMeasureEnd"?{x:n.getColumnsContentRect().right,y:x.y}:{x:x.x+r*ct.StubTieLength,y:x.y};let S,T,w,v;if(c===void 0)S=x.x,T=x.y,w=C.x,v=C.y;else if(s.row===m&&c.row===m)S=x.x,T=x.y,w=C.x,v=C.y;else if(s.row===f&&c.row===m){let R=f.getConnectivesContentRect().right-x.x,B=C.x-b.left;S=b.left,T=x.y+(C.y-x.y)*R/(R+B),w=C.x,v=C.y}else if(s.row===m&&c.row===g){let M=g.getConnectivesContentRect(),R=b.right-x.x,B=C.x-M.left;S=x.x,T=x.y,w=b.right,v=x.y+(C.y-x.y)*R/(R+B)}else throw new N(6,"Cannot layout connective object because no valid left and right note groups.");let _=(p==="up"?-1:1)*r*Math.log2(w-S)/3;this.lx=S,this.ly=T,this.rx=w,this.ry=v,this.arcHeight=this.connectiveProps.connective==="slide"?0:_;let{nx:E,ny:q}=$.Math.calcNormal(S,T,w,v);this.cp1x=S*.7+w*.3+E*this.arcHeight,this.cp1y=T*.7+v*.3+q*this.arcHeight,this.cp2x=S*.3+w*.7+E*this.arcHeight,this.cp2y=T*.3+v*.7+q*this.arcHeight,this.rect=new G(Math.min(this.lx,this.cp1x,this.cp2x,this.rx),Math.max(this.lx,this.cp1x,this.cp2x,this.rx),Math.min(this.ly,this.cp1y,this.cp2y,this.ry),Math.max(this.ly,this.cp1y,this.cp2y,this.ry)),this.line.addObject(this)}offset(e,r){this.lx+=e,this.ly+=r,this.rx+=e,this.ry+=r,this.cp1x+=e,this.cp1y+=r,this.cp2x+=e,this.cp2y+=r,this.rect.offsetInPlace(e,r)}draw(e){if(this.rightNoteGroup!==void 0){if(this.leftNoteGroup.measure!==this.rightNoteGroup.measure){if(this.leftNoteGroup.row.getNextRow()!==this.rightNoteGroup.row){if(this.measure!==this.rightNoteGroup.measure)return}}}let{rect:r}=this,{_lineWidth:n}=e;e.drawDebugRect(r);let o=n*1.5,s=n*.25;e.lineWidth(1),e.color(this.line instanceof Pt?X.Tab_Connective:X.Staff_Connective),this.arcHeight===0?(e.beginPath(),e.moveTo(this.lx,this.ly),e.lineTo(this.rx,this.ry),e.stroke()):(e.beginPath(),e.moveTo(this.lx,this.ly-s),e.bezierCurveTo(this.cp1x,this.cp1y-o,this.cp2x,this.cp2y-o,this.rx,this.ry-s),e.lineTo(this.rx,this.ry+s),e.bezierCurveTo(this.cp2x,this.cp2y+o,this.cp1x,this.cp1y+o,this.lx,this.ly+s),e.fill())}};var Qn=class{constructor(t,e,r,n){this.connective=t;this.span=e;this.noteAnchor=r;d(this,"noteGroups");d(this,"arcDir","down");this.noteGroups=[n]}getStartNoteGroup(){return this.noteGroups[0]}startsWith(t){return this.noteGroups[0]===t}addNoteGroup(t){return this.span==="stub"||this.span==="toMeasureEnd"?!1:this.span>this.noteGroups.length?(this.noteGroups.push(t),!0):!1}computeParams(t){let{stemDir:e}=this.noteGroups[0],{hasStem:r}=this.noteGroups[0].rhythmProps;if(this.noteAnchor==="stemTip")this.arcDir=e==="up"?"up":"down";else if(this.noteAnchor==="auto")this.arcDir=e==="up"||!r?"down":"up",this.noteGroups[0].notes.length>1?this.noteAnchor="center":this.connective==="slide"?this.noteAnchor="center":this.arcDir==="up"?this.noteAnchor="above":this.noteAnchor="below";else if(this.noteAnchor==="center"){let n=t instanceof Et?t:void 0,o=this.noteGroups[0].getDiatonicId(n);this.arcDir=!n||o<n.middleLineDiatonicId?"down":"up"}else this.noteAnchor==="above"?this.arcDir="up":this.noteAnchor==="below"&&(this.arcDir="down")}removeConnectives(){this.noteGroups.forEach(t=>{t.measure.removeConnectiveObjects(),t.removeConnectiveProps()}),this.noteGroups.length=1}createConnectives(){if(this.noteGroups.length===0)return;this.getStartNoteGroup().collectConnectiveProps();let{connective:t,span:e}=this;this.noteGroups[0].row.getNotationLines().forEach(r=>{if(this.computeParams(r),t==="tie"){if(y.isEnumValue(e,yr)){let n=this.noteGroups[0];for(let o=0;o<n.notes.length;o++)this.createObjConnectiveWithTieType(r,n,o,e)}else if(this.noteGroups.length>=2)for(let n=0;n<this.noteGroups.length-1;n++){let o=this.noteGroups[n],s=this.noteGroups[n+1];o.notes.forEach((a,c)=>{let u=s.notes.findIndex(h=>U.equals(h,a));u>=0&&this.createObjConnective(r,o,c,s,u)})}}else if(t==="slur"){if(typeof e=="number"&&e>=2&&this.noteGroups.length===e){let n=this.noteGroups[0],o=this.noteGroups[this.noteGroups.length-1];this.createObjConnective(r,n,0,o,0)}}else if(t==="slide"&&this.noteGroups.length>=2)for(let n=0;n<this.noteGroups.length-1;n++){let o=this.noteGroups[n],s=this.noteGroups[n+1];this.createObjConnective(r,o,0,s,0)}})}createObjConnectiveWithTieType(t,e,r,n){if(e.enableConnective(t))t instanceof Et?new Qi(this,t,e.measure,e,r,n):t instanceof Pt&&e.getFretNumberString(r)!==void 0&&new Qi(this,t,e.measure,e,r,n);else return}createObjConnective(t,e,r,n,o){let s=(a,c,u,h,l)=>{if(c.enableConnective(t)&&h.enableConnective(t)){if(t instanceof Et)new Qi(this,t,a,c,u,h,l);else if(t instanceof Pt){let p=c.getFretNumberString(u),m=h.getFretNumberString(l);p!==void 0&&m!==void 0&&(p===m||this.connective==="slur")&&new Qi(this,t,a,c,u,h,l)}}else return};if(e.measure===n.measure)s(e.measure,e,r,n,o);else if(e.measure.getNextMeasure()===n.measure)s(e.measure,e,r,n,o),s(n.measure,e,r,n,o);else throw new N(6,"Cannot create connective because it is jumping measures.")}};var ac=class extends tt{constructor(e,r,n,o,s,a,c){super(e);this.col=e;this.verse=r;this.line=n;this.vpos=o;d(this,"nextLyricsObject");d(this,"rhythmProps");d(this,"color","black");d(this,"hyphen");d(this,"text");d(this,"mi");this.rhythmProps=Kt.get(s);let u=(c==null?void 0:c.align)==="left"?0:(c==null?void 0:c.align)==="right"?1:.5;this.hyphen=y.isEnumValue(c==null?void 0:c.hyphen,Yn)?c==null?void 0:c.hyphen:void 0,this.text=new st(this,{text:a,color:this.color,scale:.8},u,0),this.rect=this.text.getRect().clone(),this.mi=new As(this)}getMusicInterface(){return this.mi}get measure(){return this.col.measure}getText(){return this.text.getText()}setNextLyricsObject(e){this.nextLyricsObject=e}pick(e,r){return this.getRect().contains(e,r)?[this]:[]}layout(e){this.text.layout(e),this.rect=this.text.getRect().clone()}offset(e,r){this.text.offset(e,r),this.rect.offsetInPlace(e,r)}draw(e){var r;if(this.text.draw(e),this.hyphen!==void 0){e.color(this.color).lineWidth(1);let n=this.getRect(),o=(r=this.nextLyricsObject)==null?void 0:r.getRect(),s=e.unitSize*1.5,a=o?(o.left-n.right)*.85:s,c=this.hyphen==="-"?Math.min(s,a):a;if(c>0){let u=o?(n.right+o.left)/2:n.right+c/.85,h=n.centerY;e.moveTo(u-c/2,h),e.lineTo(u+c/2,h),e.stroke()}}}};var Kn=class extends tt{constructor(e,r){super(e);this.measure=e;this.tab=r;d(this,"voiceId");d(this,"mi");d(this,"tupletPartsTextObjMap",new lt);this.voiceId=ae().filter(n=>r.containsVoiceId(n)),this.rect=new G,this.mi=new Cs(this)}getMusicInterface(){return this.mi}get doc(){return this.measure.doc}pick(e,r){return this.rect.contains(e,r)?[this]:[]}layout(e){let r=this.measure.getColumns(),n=ae().map(o=>$.Math.sum(r.map(s=>s.getVoiceSymbol(o)?1:0)));this.voiceId.sort((o,s)=>$.Math.cmp(n[o],n[s])),this.rect=new G}hasTuplets(){return this.measure.getBeamGroups().some(e=>e.isTuplet())}layoutFitToMeasure(e){let{unitSize:r,fontSize:n}=e,{measure:o}=this,s=o.getColumnsContentRect(),a=r*5;this.rect.left=s.left,this.rect.anchorX=s.centerX,this.rect.right=s.right,this.rect.top=this.hasTuplets()?-n:0,this.rect.anchorY=0,this.rect.bottom=a}offset(e,r){this.rect.offsetInPlace(e,r)}draw(e){e.drawDebugRect(this.rect),e.lineWidth(1);let{unitSize:r,fontSize:n}=e,o=r,s=r,a=r*.25,{bottom:c,anchorY:u}=this.getRect(),h=u,l=c,p=this.measure.getColumns();for(let m=0;m<p.length;m++){let f=p[m],g=this.voiceId.map(C=>f.getVoiceSymbol(C)).find(C=>C!==void 0);if(!g)continue;let b=g.getBeamGroup(),x=b?b.getSymbols():[g];for(let C=0;C<x.length;C++){let S=x[C],T=x[C+1],w=S.col.getRect().anchorX;if(S instanceof At){if(e.lineWidth(1),e.color(X.Tab_Note),S.rhythmProps.noteSize>=2&&(e.lineWidth(S.rhythmProps.noteSize===4?2:1),e.strokeLine(w,l,w,h)),x.length===1)for(let v=0;v<S.rhythmProps.flagCount;v++)e.drawFlag(new G(w,w+o,h+v*o,h+(v+2)*o),"up");for(let v=0;v<S.rhythmProps.dotCount;v++)e.fillCircle(w+s*(v+1),l-a,a)}else if(S instanceof ce){e.lineWidth(1),e.color(X.Tab_Rest);let v=w,A=(h+l)/2,_=.65;e.save(),e.scale(_,_),e.drawRest(S.rhythmProps.noteSize,v/_,A/_),e.restore();for(let E=0;E<S.rhythmProps.dotCount;E++)v+=s*1.5,e.fillCircle(v,A+s,a)}if(T){let v=S,A=T,_=v.col.getRect().anchorX,E=A.col.getRect().anchorX,q=v.hasTuplet()?1:v instanceof At?v.getRightBeamCount():1,M=A.hasTuplet()?1:A instanceof At?A.getLeftBeamCount():1,R=Math.max(q,M);e.color(X.Tab_Note),e.lineWidth(2);for(let B=0;B<R;B++){let D=M>q&&B>=q?.75:0,j=q>M&&B>=M?.25:1;e.strokePartialLine(_,h+B*o,E,h+B*o,D,j)}e.lineWidth(1);for(let B=0;B<v.rhythmProps.dotCount;B++)e.fillCircle(_+s*(B+1),l-a,a);for(let B=0;B<A.rhythmProps.dotCount;B++)e.fillCircle(E+s*(B+1),l-a,a)}if(b&&b.isTuplet()){e.color(X.Tab_Note);let v=(x[0].col.getRect().anchorX+x[x.length-1].col.getRect().anchorX)/2,A=b.getTupletRatioText(),_=this.tupletPartsTextObjMap.get(A);_||(this.tupletPartsTextObjMap.set(A,_=new st(this,{text:A,scale:.75},.5,.5)),_.layout(e)),_.setCenter(v,h-n/2),_.draw(e)}x.length>1&&(m=p.indexOf(x[x.length-1].col),m<0&&(m=p.length))}}}};function t0(i){switch(i){case"bottom":return .8;case"middle":return .5}}function e0(i){if(typeof i=="string"&&(i=[i]),y.isArray(i)){let t=0;for(let e=0;e<i.length;){let r=i[e],n=i[e+1];if(typeof r=="string"){e++;let o=Kt.get(r).ticks;typeof n=="number"&&(e++,o*=n),t+=o}else e++}return t}else return i}function r0(i){switch(i){case 1:return 8;case 2:return 9;case 3:return 10;default:throw new N(0,"VerseNumber is not 1, 2 or 3.")}}var Lh=class{constructor(){d(this,"tabTuning_0",0);d(this,"signature_1",0);d(this,"leftBarLine_2",0);d(this,"padding_3",0);d(this,"columnsMin_4",0);d(this,"padding_5",0);d(this,"rightBarLine_6",0)}get leftSolid(){return this.tabTuning_0+this.signature_1+this.leftBarLine_2+this.padding_3}get columnsMin(){return this.columnsMin_4}get rightSolid(){return this.padding_5+this.rightBarLine_6}},bi=class extends tt{constructor(e,r){super(e);this.row=e;this.options=r;d(this,"prevMeasure");d(this,"nextMeasure");d(this,"keySignature",Ys());d(this,"timeSignature",Xs());d(this,"tempo",Qs());d(this,"alterKeySignature");d(this,"alterTimeSignature");d(this,"alterTempo");d(this,"signatures",[]);d(this,"tabStringNotes",[]);d(this,"barLineLeft");d(this,"columns",[]);d(this,"barLineRight");d(this,"connectives",[]);d(this,"beamGroups",[]);d(this,"measureId");d(this,"regions",new Lh);d(this,"needLayout",!0);d(this,"voiceSymbols",Us(new vr));d(this,"lastAddedRhythmColumn");d(this,"lastAddedRhythmSymbol");d(this,"addExtensionTo",[]);d(this,"layoutObjects",[]);d(this,"postMeasureBreakWidth",0);d(this,"passCount",0);d(this,"needBeamsUpdate",!0);d(this,"navigationSet",new Ws);d(this,"isEndSong",!1);d(this,"isEndSection",!1);d(this,"endRepeatPlayCount",2);d(this,"endRepeatPlayCountText");d(this,"staticObjectsCache",new lt);d(this,"lyricsObjectsCache",new qs);d(this,"mi");this.mi=new _s(this),this.prevMeasure=e.doc.getLastMeasure(),this.prevMeasure&&(this.prevMeasure.nextMeasure=this),this.barLineLeft=new xi(this),this.barLineRight=new xr(this),this.measureId=this.prevMeasure?this.prevMeasure.measureId+1:0,this.updateKeySignature(),this.updateTimeSignature(),this.updateTempo(),this.row.getTabs().forEach(n=>{this.addLayoutObject(new Kn(this,n),n,0,0)})}getMusicInterface(){return this.mi}get doc(){return this.row.doc}isPartialMeasure(){return this.getConsumedTicks()<this.getMeasureTicks()}isUpBeat(){return this===this.doc.getFirstMeasure()}resetPassCount(){this.passCount=0}incPassCount(){this.passCount++}getPassCount(){return this.passCount}updateRunningArguments(e){var n;e!=null||(e=[]);let r=$.Math.sum(ae().map(o=>this.getVoiceSymbols(o).length>0?1:0));ae().forEach(o=>{var h;let s=()=>{let l=this.row.getStaves().filter(m=>m.containsVoiceId(o)),p=this.row.getTabs().filter(m=>m.containsVoiceId(o));return l.length>0?l[0].middleLineDiatonicId:p.length>0?p[0].getTuningStrings()[3].diatonicId:U.getNote("G4").diatonicId},a=()=>"auto",c=()=>[],u=(h=e[o])!=null?h:e[o]={diatonicId:s(),stemDir:a(),stringNumbers:c()};this.getVoiceSymbols(o).forEach((l,p,m)=>{var b,x;if(l.setDiatonicId===ce.UndefinedDiatonicId?r<2&&(u.diatonicId=ce.UndefinedDiatonicId):u.diatonicId=l.setDiatonicId,l instanceof At)switch(l.setStringsNumbers&&(u.stringNumbers=l.setStringsNumbers),(b=l.options)==null?void 0:b.stem){case"up":case"up":u.stemDir="up";break;case"down":case"down":u.stemDir="down";break;case"auto":case"auto":u.stemDir="auto";break}let f=(x=l.getBeamGroup())==null?void 0:x.getSymbols(),g;f===void 0?g=u.stemDir==="auto"?this.row.solveAutoStemDir([l]):u.stemDir:l===f[0]?g=u.stemDir==="auto"?this.row.solveAutoStemDir(f):u.stemDir:g=f[0].stemDir,l.updateRunningArguments(u.diatonicId,g,u.stringNumbers)})}),(n=this.getNextMeasure())==null||n.updateRunningArguments(e)}pick(e,r){if(!this.getRect().contains(e,r))return[];for(let n=0;n<this.signatures.length;n++){let o=this.signatures[n].pick(e,r);if(o.length>0)return[this,...o]}for(let n=0;n<this.tabStringNotes.length;n++){let o=this.tabStringNotes[n].pick(e,r);if(o.length>0)return[this,...o]}for(let n=0;n<this.columns.length;n++){let o=this.columns[n].pick(e,r);if(o.length>0)return[this,...o]}if(this.barLineLeft){let n=this.barLineLeft.pick(e,r);if(n.length>0)return[this,...n]}if(this.barLineRight){let n=this.barLineRight.pick(e,r);if(n.length>0)return[this,...n]}if(this.endRepeatPlayCountText){let n=this.endRepeatPlayCountText.pick(e,r);if(n.length>0)return[this,...n]}for(let n=0;n<this.connectives.length;n++){let o=this.connectives[n].pick(e,r);if(o.length>0)return[this,...o]}for(let n=0;n<this.beamGroups.length;n++){let o=this.beamGroups[n].pick(e,r);if(o.length>0)return[this,...o]}for(let n=0;n<this.layoutObjects.length;n++){let o=this.layoutObjects[n].musicObj.pick(e,r);if(o.length>0)return[this,...o]}return[this]}getMeasureNumber(){let e=this.doc.getFirstMeasure();return e&&e.isPartialMeasure()?this.measureId:this.measureId+1}getColumns(){return this.columns}getColumnCount(){return this.columns.length}getColumn(e){return this.getColumns()[e]}isFirstMeasure(){return this.prevMeasure===void 0}isLastMeasure(){return this.nextMeasure===void 0}isFirstMeasureInRow(){return this===this.row.getFirstMeasure()}isLastMeasureInRow(){return this===this.row.getLastMeasure()}getNextMeasure(){return this.nextMeasure}getPrevMeasure(){return this.prevMeasure}getKeySignature(){return this.keySignature}setKeySignature(...e){var r;if((r=this.getPrevMeasure())==null||r.endSection(),e[0]instanceof rr)this.alterKeySignature=e[0];else if(e[0]instanceof ri)this.alterKeySignature=e[0];else if(y.isNonEmptyString(e[0])){if(e.length===1)this.alterKeySignature=Pr(e[0]);else if(e.length===2)try{let n=""+e[0],o=ho(""+e[1]);this.alterKeySignature=Pr(n,o)}catch(n){throw new N(6,"Cannot set key signature because invalid args: "+e)}}this.updateKeySignature()}updateKeySignature(){this.keySignature=this.prevMeasure?this.prevMeasure.keySignature:Ys(),this.alterKeySignature&&(this.keySignature=this.alterKeySignature),this.nextMeasure&&this.nextMeasure.updateKeySignature(),this.requestLayout()}getTimeSignature(){return this.timeSignature}setTimeSignature(e){var r;(r=this.getPrevMeasure())==null||r.endSection(),this.alterTimeSignature=e,this.updateTimeSignature()}updateTimeSignature(){this.timeSignature=this.prevMeasure?this.prevMeasure.timeSignature:Xs(),this.alterTimeSignature&&(this.timeSignature=this.alterTimeSignature),this.nextMeasure&&this.nextMeasure.updateTimeSignature(),this.requestLayout()}getTempo(){return this.tempo}setTempo(e,r){var n;if((n=this.getPrevMeasure())==null||n.endSection(),r===void 0)this.alterTempo={beatsPerMinute:e};else{let o=Nt.get(r).dotCount,s={beatLength:Br(r),dotCount:o>0?o:void 0};this.alterTempo={beatsPerMinute:e,options:s}}this.updateTempo()}updateTempo(){var e;if(this.tempo=this.prevMeasure?this.prevMeasure.tempo:Qs(),this.alterTempo){let r=this.alterTempo.beatsPerMinute,n,o;this.alterTempo.options?(n=this.alterTempo.options.beatLength,o=(e=this.alterTempo.options.dotCount)!=null?e:0):this.alterTimeSignature?(n=this.alterTimeSignature.beatLength,o=0):(n=this.tempo.options.beatLength,o=this.tempo.options.dotCount),this.tempo={beatsPerMinute:r,options:{beatLength:n,dotCount:o}}}this.nextMeasure&&this.nextMeasure.updateTempo(),this.requestLayout()}hasPostMeasureBreak(){return this.isEndSong&&this!==this.row.getLastMeasure()}getPostMeasureBreakWidth(){return this.postMeasureBreakWidth}addLayoutObject(e,r,n,o){let s=new uc(e,r,n,o);return this.layoutObjects.push(s),this.requestLayout(),this.requestRectUpdate(),s}forEachStaffGroup(e,r,n){let o=this.row.getNotationLines(),s=(a,c,u=[])=>{if(typeof a=="number")o[a]&&n(o[a],c);else if(typeof a=="string"&&a.length>0){let h=o.filter(l=>l.name===a);if(h.forEach(l=>n(l,c)),h.length===0){let l=this.doc.getStaffGroup(a);if(l&&!u.includes(a)){let p=[...u,a];(y.isArray(l.staffsTabsAndGroups)?l.staffsTabsAndGroups:[l.staffsTabsAndGroups]).forEach(m=>{switch(l.verticalPosition){case"above":s(m,0,p);break;case"below":s(m,1,p);break;case"both":s(m,0,p),s(m,1,p);break;case"auto":s(m,r,p);break}})}}}};e===void 0?o.length>=2&&o[0]instanceof Et&&o[1]instanceof Et&&o[0].staffConfig.grandId!==void 0&&o[0].staffConfig.grandId===o[1].staffConfig.grandId?s(r===1?1:0,r):s(0,r):y.isArray(e)?e.forEach(a=>s(a,r)):s(e,r)}addFermata(e,r){let n=r==="atMeasureEnd"?this.barLineRight:this.lastAddedRhythmColumn;if(!n)throw new N(6,"Cannot add Fermata because anchor is undefined.");this.forEachStaffGroup(e,0,(o,s)=>{let a=o instanceof Pt?X.Staff_Element_Fermata:X.Tab_Element_Fermata;this.addLayoutObject(new Ci(n,s,a),o,1,s)}),this.disableExtension(),this.requestLayout()}hasFermata(e){return this.layoutObjects.some(r=>r.musicObj instanceof Ci&&r.anchor===e)}addNavigation(e,r,...n){let o;switch(r){case"ending":if(this.navigationSet.has(r))throw new N(6,"Cannot add ending beasure measure already has one.");let s=this,a=n;o={createObj:c=>{let u=c instanceof Pt?X.Staff_Element_Navigation:X.Tab_Element_Navigation;return new Zi(s,u,a)},layoutGroupId:4,defaultVerticalPos:0};break;case"D.C. al Coda":case"D.C. al Fine":case"D.S. al Coda":case"D.S. al Fine":{let c=this.barLineRight,u=cs(r);o={createObj:h=>{let l=h instanceof Pt?X.Staff_Element_Navigation:X.Tab_Element_Navigation;return new st(c,{text:u,color:l},1,1)},layoutGroupId:3,defaultVerticalPos:0},this.addNavigation(e,"endRepeat"),this.endSong();break}case"Fine":{let c=this.barLineRight,u=cs(r);o={createObj:h=>{let l=h instanceof Pt?X.Staff_Element_Navigation:X.Tab_Element_Navigation;return new st(c,{text:u,color:l},1,1)},layoutGroupId:3,defaultVerticalPos:0};break}case"Segno":case"Coda":{let c=this.barLineLeft,u=cs(r);o={createObj:h=>{let l=h instanceof Pt?X.Staff_Element_Navigation:X.Tab_Element_Navigation;return new Se(c,u,l)},layoutGroupId:3,defaultVerticalPos:0};break}case"toCoda":{let c=this.barLineRight,u=cs(r);o={createObj:h=>{let l=h instanceof Pt?X.Staff_Element_Navigation:X.Tab_Element_Navigation;return new Se(c,u,l)},layoutGroupId:3,defaultVerticalPos:0};break}case"endRepeat":if(n.length===0)this.endRepeatPlayCount=2;else if(y.isIntegerGte(n[0],2))this.endRepeatPlayCount=n[0];else throw new N(6,"Invalid end repeat play count (should be 2 or greater integer): "+n[0]);if(this.endRepeatPlayCount!==2){let u={text:`${this.endRepeatPlayCount}x`,scale:.8,color:X.Staff_Frame};this.endRepeatPlayCountText=new st(this,u,.5,1)}break}o&&this.forEachStaffGroup(e,o.defaultVerticalPos,(s,a)=>{this.addLayoutObject(o.createObj(s),s,o.layoutGroupId,a)}),this.navigationSet.add(r),this.disableExtension()}hasNavigation(e){return this.navigationSet.has(e)}addAnnotation(e,r,n){let o=this.lastAddedRhythmColumn;if(o){if(n.length===0)throw new N(6,"Cannot add annotation because annotation text is empty.")}else throw new N(6,"Cannot add annotation because anchor is undefined.");let s={text:n},a,c,u;switch(r){case"dynamics":a=6,c=0,s.italic=!0,u="bottom";break;case"tempo":a=5,c=0,s.italic=!0,u="bottom";break}let h=.5,l=t0(u);this.disableExtension(),this.forEachStaffGroup(e,c,(p,m)=>{let f=p instanceof Pt?X.Staff_Element_Annotation:X.Tab_Element_Annotation;s.color=f;let g=new st(o,s,h,l),b=this.addLayoutObject(g,p,a,m);this.enableExtension(b,f)})}addLabel(e,r,n){let o=this.lastAddedRhythmColumn;if(o){if(n.length===0)throw new N(6,"Cannot add label because label text is empty.")}else throw new N(6,"Cannot add label because anchor is undefined.");let s={text:n},a,c;switch(r){case"note":a=2,c=1;break;case"chord":a=7,c=0;break}this.disableExtension(),this.forEachStaffGroup(e,c,(u,h)=>{let l=u instanceof Pt?X.Staff_Element_Label:X.Tab_Element_Label;s.color=l;let p=new st(o,s,.5,1),m=this.addLayoutObject(p,u,a,h);this.enableExtension(m,l)})}addConnective(e,...r){let n=this.lastAddedRhythmSymbol;if(!(n instanceof At))throw new N(6,"Connective can be added to note group only.");if(e==="tie"){let o=y.isInteger(r[0])||y.isEnumValue(r[0],yr)?r[0]:2,s=y.isEnumValue(r[1],Je)?r[1]:"auto";n.startConnective(new Qn("tie",o,s,n))}else if(e==="slur"){let o=y.isInteger(r[0])?r[0]:2,s=y.isEnumValue(r[1],Je)?r[1]:"auto";n.startConnective(new Qn("slur",o,s,n))}else if(e==="slide"){let o=y.isEnumValue(r[0],Je)?r[0]:"auto";n.startConnective(new Qn("slide",2,o,n))}}addExtension(e,r){if(this.addExtensionTo.forEach(n=>{let{layoutObj:o,color:s}=n,{musicObj:a}=o;a.userData["extension-color"]=s;let c=a.getParent();if(a instanceof st&&c instanceof kr){let u="dashed",h="bottom",l=new $i(o,c,e0(e),r,u,h);a.setLink(l)}else throw new N(6,"Cannot add extension becaue no compatible music object to attach it to.")}),this.addExtensionTo.length===0)throw new N(6,"Cannot add extension because music object to attach it to is undefined.");this.disableExtension(),this.requestLayout()}enableExtension(e,r){this.addExtensionTo.push({layoutObj:e,color:r})}disableExtension(){this.addExtensionTo=[]}getEnding(){return this.layoutObjects.map(e=>e.musicObj).find(e=>e instanceof Zi)}getEndRepeatPlayCount(){return this.endRepeatPlayCount}endSong(){this.isEndSong=!0,this.requestLayout(),this.disableExtension()}hasEndSong(){return this.isEndSong}endSection(){this.isEndSection=!0,this.requestLayout(),this.disableExtension()}hasEndSection(){return this.isEndSection}endRow(){this.doc.requestNewRow(),this.disableExtension()}addRhythmSymbol(e){let{col:r,voiceId:n}=e;r.setVoiceSymbol(n,e),this.voiceSymbols.add(n,e),e.oldStyleTriplet&&this.createOldStyleTriplets(n),this.requestBeamsUpdate(),this.lastAddedRhythmColumn=r,this.lastAddedRhythmSymbol=e}addNoteGroup(e,r,n,o,s){let a=r.map(h=>typeof h=="string"?U.getNote(h):h),c=this.getRhythmColumn(e),u=new At(c,e,a,n,o,s);return this.addRhythmSymbol(u),u}addRest(e,r,n,o){let s=this.getRhythmColumn(e),a=new ce(s,e,r,n,o);return this.addRhythmSymbol(a),a}addLyrics(e,r,n,o,s){this.forEachStaffGroup(e,1,(a,c)=>{var p;let u=this.getRhythmColumn({verse:r,line:a,vpos:c}),h=new ac(u,r,a,c,Br(n),o,s);u.addLyricsObject(h);let l=this.lyricsObjectsCache.getOrCreate(a,c,r,[]);l.push(h),l.sort((m,f)=>$.Math.cmp(m.col.positionTicks,f.col.positionTicks)),(p=h.measure.getPrevLyricsObject(h))==null||p.setNextLyricsObject(h),this.addLayoutObject(h,a,r0(r),c),this.lastAddedRhythmColumn=u})}getRhythmColumn(e){let r=0;for(let n=this.columns.length-1;n>=0&&r===0;n--){let o=this.columns[n],s=typeof e=="number"?o.getVoiceSymbol(e):o.getLyricsObject(e.verse,e.line,e.vpos);s&&(r=o.positionTicks+s.rhythmProps.ticks)}for(let n=0;n<=this.columns.length;n++){let o=this.columns[n];if(o&&o.positionTicks===r)return o;if(!o||o.positionTicks>r){let s=new kr(this,r);return this.columns.splice(n,0,s),s}}throw new N(6,"Error in rhythm column. Should never get here.")}getMeasureTicks(){return this.getTimeSignature().measureTicks}getConsumedTicks(e){let r=0;return this.columns.forEach(n=>{ae().forEach(o=>{let s=n.getVoiceSymbol(o);s&&(e===void 0||e===o)&&(r=Math.max(r,n.positionTicks+s.rhythmProps.ticks))})}),r}getColumnsContentRect(){return new G(this.barLineLeft.getRect().anchorX,this.barLineRight.getRect().anchorX,this.getRect().top,this.getRect().bottom)}getLeftSolidWidth(){return this.regions.leftSolid}getMinColumnsWidth(){return this.regions.columnsMin}getRightSolidWidth(){return this.regions.rightSolid}getTotalSolidWidth(){return this.getLeftSolidWidth()+this.getRightSolidWidth()}getMinWidth(){return this.getLeftSolidWidth()+this.getMinColumnsWidth()+this.getRightSolidWidth()}getStaffLineLeft(){let e=this.getPrevMeasure();return e&&e.row===this.row&&!e.hasPostMeasureBreak()?e.getStaffLineRight():this.getRect().left+this.regions.tabTuning_0}getStaffLineRight(){return this.barLineRight.getRect().anchorX}getPrevLyricsObject(e){var c;let{line:r,verse:n,vpos:o}=e,s=this.lyricsObjectsCache.getOrDefault(r,o,n,[]),a=s.indexOf(e);if(a>0)return s[a-1];if(a===0){let u=(c=e.measure.getPrevMeasure())==null?void 0:c.lyricsObjectsCache.get(r,o,n);if(u&&u.length>0)return u[u.length-1]}}getStaticObjects(e){let r=this.layoutObjects.filter(o=>o.line===e&&o.isPositionResolved()).map(o=>o.musicObj),n=r.length>0?[...this.staticObjectsCache.getOrDefault(e,[]),...r]:this.staticObjectsCache.getOrDefault(e,[]);return n.forEach(o=>o.getRect()),n}addStaticObject(e,r){this.staticObjectsCache.getOrCreate(e,[]).push(r)}removeLayoutObjects(e){this.layoutObjects=this.layoutObjects.filter(r=>{if(r.musicObj===e){let n=r.musicObj.getLink();return n&&n.detachTail(r.musicObj),r.layoutGroup.remove(r),!1}else return!0})}addConnectiveObject(e){this.connectives.push(e),this.requestLayout()}removeConnectiveObjects(){this.connectives.length>0&&(this.connectives=[],this.requestLayout())}createExtensions(){this.layoutObjects.forEach(e=>{let{musicObj:r,measure:n,layoutGroupId:o,verticalPos:s,line:a}=e;if(r.getLink()instanceof $i){let c=r.getLink();if(c.getHead()!==r||(c.getTails().forEach(l=>n.removeLayoutObjects(l)),!c.isVisible()))return;let u=c.getRange(),h=u.columnRange.slice();for(let l=!0;h.length>1;l=!1){let{measure:p}=h[0],m=h.findIndex(C=>C.measure!==p),f=h.splice(0,m>0?m:h.length);if(f.length<2)continue;let g=p.row.findMatchingLine(a);if(!g)continue;let b=h.length===0,x=[...l?[r]:[],...f,...b&&u.stopObject?[u.stopObject]:[]];p.addLayoutObject(new Xn(p,g,c,x),g,o,s)}}})}addBeamGroup(e){this.beamGroups.push(e)}requestBeamsUpdate(){this.needBeamsUpdate=!0}createOldStyleTriplets(e){let r=this.getVoiceSymbols(e);for(let n=0;n<r.length;)if(r[n].oldStyleTriplet){let o=Xi.createOldStyleTriplet(r.slice(n,n+3));n+=o===0?1:o}else n++;this.requestLayout()}getBeamGroups(){return this.beamGroups}createBeams(){if(!this.needBeamsUpdate)return;this.beamGroups=this.beamGroups.filter(r=>r.isTuplet()?!0:(r.detach(),!1));let e=this.getTimeSignature();!this.needBeamsUpdate||e.beamGroupSizes.length===0||(ae().forEach(r=>{let n=this.getVoiceSymbols(r).slice();if(n.length<2)return;let o=this.isUpBeat()?Math.max(0,this.getMeasureTicks()-this.getConsumedTicks()):0,s=0;for(let a=0;a<e.beamGroupSizes.length;a++){let c=e.beamGroupSizes[a],u=[c];c.length>1&&u.unshift([$.Math.sum(c)]);let h=!1,l=s;for(;u.length>0&&!h;){let p=u.shift();s=l,p.forEach(m=>{let f=m*Nt.get("8n").ticks,g=s+f,b=n.filter(C=>{let S=o+C.col.positionTicks,T=S+C.rhythmProps.ticks;return S>=s&&T<=g});$.Math.sum(b.map(C=>C.rhythmProps.ticks))===f&&b.every(C=>C instanceof At)&&(b.every(C=>C.rhythmProps.flagCount===1)||u.length===0)&&Xi.createBeam(b)&&(h=!0),s+=f})}}}),this.needBeamsUpdate=!1,this.requestLayout())}getBarLineLeft(){return this.barLineLeft}getBarLineRight(){return this.barLineRight}getVoiceSymbols(e){return this.voiceSymbols.getAll(e)}completeRests(e){if(e===void 0){this.getConsumedTicks()===0?this.completeRests(0):this.completeRests(ae().filter(r=>this.getConsumedTicks(r)>0));return}else if(y.isArray(e)){e.forEach(r=>this.completeRests(r));return}else{Bo(e);let r=this.getMeasureTicks(),n=this.getConsumedTicks(e),o=r-n,s=[];for(;o>0;)for(let a=Nt.LongestNoteSize;a<=Nt.ShortestNoteSize;a*=2){let c=Nt.create(a).noteLength;for(let u=Nt.get(c).maxDotCount;u>=0;u--){let h=Kt.get(c,u);for(;h.ticks<=o;)s.push(h),o-=h.ticks}}s.reverse().forEach(a=>this.addRest(e,Nt.create(a.noteLength,a.dotCount).noteLength))}}requestLayout(){this.needLayout||(this.needLayout=!0,this.row.requestLayout())}layout(e){var m;if(!this.needLayout)return;this.staticObjectsCache.clear(),this.requestRectUpdate();let{unitSize:r}=e;this.postMeasureBreakWidth=this.hasPostMeasureBreak()?ct.PostMeasureBreakWidth*r:0;let n=this.isFirstMeasureInRow(),o=((m=this.getPrevMeasure())==null?void 0:m.hasPostMeasureBreak())===!0;this.regions.tabTuning_0=n&&this.row.hasTab?r*4:0;let s=n||o,a=this.options.showNumber===!1?!1:this.options.showNumber===!0||n&&!this.row.isFirstRow(),c=n||o||!!this.alterKeySignature,u=!!this.alterTimeSignature,h=!!this.alterTempo;this.signatures=[],this.row.getNotationLines().forEach((f,g)=>{if(f instanceof Et&&(s||a||c||u||h)){let b=this.signatures.filter(C=>C instanceof Xo).find(C=>C.staff===f),x=b!=null?b:new Xo(this,f);x.staff.addObject(x),x.updateClefImage(e,s),x.updateMeasureNumber(a&&g===0),x.updateKeySignature(c),x.updateTimeSignature(u),x.updateTempo(h&&g===0),x.layout(e),this.signatures.push(x)}else if(f instanceof Pt&&(a||u||h)){let b=this.signatures.filter(C=>C instanceof Qo).find(C=>C.tab===f),x=b!=null?b:new Qo(this,f);x.tab.addObject(x),x.updateMeasureNumber(a&&g===0),x.updateTimeSignature(u),x.updateTempo(h&&g===0),x.layout(e),this.signatures.push(x)}}),this.tabStringNotes.length=0,this.isFirstMeasureInRow()&&this.row.getTabs().forEach(f=>{for(let g=0;g<6;g++){let b=f.getTuningStrings()[g].format(1,1),x=X.Tab_Tuning,C=new st(this,{text:b,scale:.8,color:x},1,.5);C.layout(e),C.setRight(this.regions.tabTuning_0*.8),C.setCenterY(f.getStringY(g)),this.tabStringNotes.push(C),f.addObject(C)}}),this.barLineLeft.layout(e);let l=new Ja(this);this.columns.forEach(f=>f.layout(e,l)),this.columns.forEach(f=>f.layoutReserveSpace(e)),this.barLineRight.layout(e),this.endRepeatPlayCountText&&this.endRepeatPlayCountText.layout(e),this.layoutObjects.forEach(f=>f.layout(e));let p=e.unitSize;this.regions.signature_1=Math.max(0,...this.signatures.map(f=>f.getRect().width)),this.regions.leftBarLine_2=this.barLineLeft.getRect().width,this.regions.padding_3=p,this.regions.columnsMin_4=Math.max(ct.MinColumnsWidth*r,this.columns.map(f=>f.getRect().width).reduce((f,g)=>f+g)),this.regions.padding_5=p,this.regions.rightBarLine_6=this.barLineRight.getRect().width}layoutWidth(e,r){if(!this.needLayout)return;r=Math.max(r,this.getMinWidth()),this.rect=new G,this.rect.anchorX=this.rect.left+r/2,this.rect.right=this.rect.left+r,this.signatures.forEach(l=>{l.setLeft(this.rect.left+this.regions.tabTuning_0),l.setAnchorY(this.rect.anchorY)});let n=Math.max(0,...this.signatures.map(l=>l.getRect().width));this.barLineLeft.setLeft(this.rect.left+this.regions.tabTuning_0+n),this.barLineLeft.setAnchorY(this.rect.anchorY),this.barLineRight.setRight(this.rect.right),this.barLineRight.setAnchorY(this.rect.anchorY),this.endRepeatPlayCountText&&(this.endRepeatPlayCountText.setCenterX(this.barLineRight.getRect().left),this.endRepeatPlayCountText.setBottom(this.barLineRight.getRect().top));let o=this.rect.left+this.regions.leftSolid,a=this.rect.right-this.regions.rightSolid-o,c=this.regions.columnsMin,u=a/c,h=o;this.columns.forEach(l=>{let p=l.getRect(),m=h+p.leftw*u;l.setAnchor(m,this.rect.anchorY),h+=p.width*u}),ae().forEach(l=>{let p=this.getVoiceSymbols(l),m=p.length===1&&p[0]instanceof ce?p[0]:void 0;!m||ae().map(g=>m.col.getVoiceSymbol(g)).filter(g=>g!==void 0&&g!==m).length===0||m.setAnchorX(this.getColumnsContentRect().centerX)})}layoutConnectives(e){this.needLayout&&this.connectives.forEach(r=>{r.layout(e),this.rect.top=Math.min(this.rect.top,r.getRect().top),this.rect.bottom=Math.max(this.rect.bottom,r.getRect().bottom)})}layoutBeams(e){this.needLayout&&this.beamGroups.forEach(r=>{r.layout(e),this.rect.top=Math.min(this.rect.top,r.getRect().top),this.rect.bottom=Math.max(this.rect.bottom,r.getRect().bottom)})}alignStemsToBeams(){this.beamGroups.forEach(e=>e.updateStemTips())}layoutDone(){this.columns.forEach(e=>e.layoutDone()),this.needLayout=!1}updateRect(){this.rect.top=Math.min(...this.signatures.map(e=>e.getRect().top),...this.tabStringNotes.map(e=>e.getRect().top),this.barLineLeft.getRect().top,...this.columns.filter(e=>!e.isEmpty()).map(e=>e.getRect().top),this.barLineRight.getRect().top,...this.connectives.map(e=>e.getRect().top),...this.beamGroups.filter(e=>!e.isEmpty()).map(e=>e.getRect().top),...this.layoutObjects.filter(e=>e.isPositionResolved()).map(e=>e.musicObj.getRect().top)),this.rect.bottom=Math.max(...this.signatures.map(e=>e.getRect().bottom),...this.tabStringNotes.map(e=>e.getRect().bottom),this.barLineLeft.getRect().bottom,...this.columns.filter(e=>!e.isEmpty()).map(e=>e.getRect().bottom),this.barLineRight.getRect().bottom,...this.connectives.map(e=>e.getRect().bottom),...this.beamGroups.filter(e=>!e.isEmpty()).map(e=>e.getRect().bottom),...this.layoutObjects.filter(e=>e.isPositionResolved()).map(e=>e.musicObj.getRect().bottom)),this.isLastMeasureInRow()&&(this.rect.right=Math.max(this.rect.right,...this.layoutObjects.filter(e=>e.isPositionResolved()&&e.musicObj instanceof Ci).map(e=>e.musicObj.getRect().right))),this.row.getNotationLines().forEach(e=>{this.rect.top=Math.min(this.rect.top,e.calcTop()),this.rect.bottom=Math.max(this.rect.bottom,e.calcBottom())}),this.row.requestRectUpdate()}offset(e,r){this.signatures.forEach(n=>n.offset(e,0)),this.tabStringNotes.forEach(n=>n.offset(e,0)),this.barLineLeft.offset(e,r),this.columns.forEach(n=>n.offset(e,r)),this.barLineRight.offset(e,r),this.endRepeatPlayCountText&&this.endRepeatPlayCountText.offset(e,r),this.connectives.forEach(n=>n.offset(e,0)),this.beamGroups.forEach(n=>n.offset(e,r)),this.layoutObjects.forEach(n=>n.offset(e,0)),this.rect.offsetInPlace(e,r),this.requestRectUpdate()}draw(e){e.drawDebugRect(this.getRect()),e.lineWidth(1);let r=this.getStaffLineLeft(),n=this.getStaffLineRight(),o=(s,a)=>e.color(a).strokeLine(r,s,n,s);this.row.getNotationLines().forEach(s=>{if(s instanceof Et)for(let a=s.bottomLineDiatonicId;a<=s.topLineDiatonicId;a+=2)o(s.getDiatonicIdY(a),X.Staff_Frame);else if(s instanceof Pt)for(let a=0;a<6;a++)o(s.getStringY(a),X.Tab_Frame)}),this.isFirstMeasureInRow()&&this.row.getNotationLines().length===1&&this.row.getTabs().forEach(s=>{if(s.getRowGroup().hasBrace)return;let c=this.getStaffLineLeft(),u=s.getTopLineY(),h=s.getBottomLineY();e.color(X.Tab_Frame).lineWidth(1).strokeLine(c,u,c,h)}),this.signatures.forEach(s=>s.draw(e)),this.tabStringNotes.forEach(s=>s.draw(e)),this.barLineLeft.draw(e),this.columns.forEach(s=>s.draw(e)),this.barLineRight.draw(e),this.endRepeatPlayCountText&&this.endRepeatPlayCountText.draw(e),this.connectives.forEach(s=>s.draw(e)),this.layoutObjects.forEach(s=>s.musicObj.draw(e)),this.beamGroups.forEach(s=>s.draw(e))}};var cc=(l=>(l[l.TabRhythm=0]="TabRhythm",l[l.Fermata=1]="Fermata",l[l.NoteLabel=2]="NoteLabel",l[l.Navigation=3]="Navigation",l[l.Ending=4]="Ending",l[l.TempoAnnotation=5]="TempoAnnotation",l[l.DynamicsAnnotation=6]="DynamicsAnnotation",l[l.ChordLabel=7]="ChordLabel",l[l.LyricsVerse1=8]="LyricsVerse1",l[l.LyricsVerse2=9]="LyricsVerse2",l[l.LyricsVerse3=10]="LyricsVerse3",l))(cc||{}),jh=new lt([[0,{rowAlign:!0}],[1,{reserveSpace:!0}],[2,{reserveSpace:!0}],[3,{rowAlign:!0}],[4,{rowAlign:!0,padding:2}],[5,{rowAlign:!0,padding:2}],[6,{rowAlign:!0,padding:2}],[7,{reserveSpace:!0,rowAlign:!0}],[8,{reserveSpace:!0,rowAlign:!0}],[9,{reserveSpace:!0,rowAlign:!0}],[10,{reserveSpace:!0,rowAlign:!0}]]);function i0(i){for(;i;){if(i instanceof bi)return i;i=i.getParent()}throw new N(6,"Parent measure is required but not found!")}var hc=class{constructor(t,e,r){this.groupName=t;this.staffsTabsAndGroups=e;this.verticalPosition=r}},uc=class{constructor(t,e,r,n){this.musicObj=t;this.line=e;this.layoutGroupId=r;this.verticalPos=n;d(this,"anchor");d(this,"measure");d(this,"row");d(this,"layoutGroup");d(this,"positionResolved",!0);this.measure=i0(this.musicObj),this.row=this.measure.row;let o=this.musicObj.getParent();if(!o)throw new N(6,"Parent music object is required as an anchor.");this.anchor=o,this.anchor.addAnchoredLayoutObject(this),this.layoutGroup=this.line.getLayoutGroup(r),this.layoutGroup.add(this)}resetPositionResolved(){this.positionResolved=!1}setPositionResolved(){this.positionResolved=!0}isPositionResolved(){return this.positionResolved}resolveClosestToStaffY(t){let{musicObj:e,measure:r,verticalPos:n,line:o}=this,s=o.getTopLineY(),a=o.getBottomLineY(),c=t.unitSize*2,u=n===1?a+c+e.getRect().toph:s-c-e.getRect().bottomh,h=r.getStaticObjects(o),l=e.getShapeRects();return h.forEach(p=>{let m=p.getShapeRects();l.forEach(f=>{m.forEach(g=>{G.overlapX(f,g)&&(u=n===1?Math.max(u,g.bottom+f.toph+f.anchorY):Math.min(u,g.top-f.bottomh-f.anchorY))})})}),u}layout(t){this.line.addObject(this)}offset(t,e){this.musicObj.offset(t,e)}setAnchorY(t){this.musicObj.setAnchorY(t)}getRect(){return this.musicObj.getRect()}},lc=class{constructor(t){this.layoutGroupId=t;d(this,"layoutObject",Us(new vr));d(this,"rowAlign");d(this,"reserveSpace");d(this,"padding");var e,r,n,o;this.rowAlign=((e=jh.get(t))==null?void 0:e.rowAlign)===!0,this.reserveSpace=((r=jh.get(t))==null?void 0:r.reserveSpace)===!0,this.padding=(o=(n=jh.get(t))==null?void 0:n.padding)!=null?o:0}getLayoutObjects(t){return this.layoutObject.getAll(t)}add(t){this.layoutObject.add(t.verticalPos,t)}remove(t){this.layoutObject.remove(t.verticalPos,t)}layout(t){for(let e of this.layoutObject.values())e.resetPositionResolved(),e.musicObj.layout(t)}getPadding(t){return this.padding*t.unitSize}};var dc=class extends tt{constructor(e){super(e);this.row=e;d(this,"objects",[]);d(this,"layoutGroups",new lt)}getRowGroup(){return this.row.getRowGroupByLineId(this.id)}addObject(e){this.objects.push(e)}removeObjects(){this.objects.length=0}getLayoutGroup(e){return this.layoutGroups.getOrCreate(e,()=>new lc(e))}resetLayoutGroups(e){this.layoutGroups.forEach(r=>r.layout(e))}layoutLayoutGroups(e){for(let r of $.Enum.getEnumValues(cc)){let n=this.getLayoutGroup(r);n&&(this.layoutLayoutGroup(e,n,0),this.layoutLayoutGroup(e,n,1))}}setObjectY(e,r){r!==void 0&&(e.setAnchorY(r-e.getRect().anchorY),e.setPositionResolved())}alignObjectsY(e,r,n){let o=r.filter(u=>!u.isPositionResolved()&&u.verticalPos===n);if(o.length===0)return;let s=n===1?1:-1,a=o.map(u=>u.resolveClosestToStaffY(e)+u.layoutGroup.getPadding(e)*s),c=n===1?Math.max(...a):Math.min(...a);o.forEach(u=>this.setObjectY(u,c))}layoutLayoutGroup(e,r,n){let o=r.getLayoutObjects(n).filter(s=>!s.isPositionResolved());o.forEach(s=>{let{musicObj:a,anchor:c}=s;a instanceof Zi||a instanceof Xn||a instanceof Kn?a.layoutFitToMeasure(e):a.setAnchorX(c.getRect().anchorX)}),r.rowAlign?this.alignObjectsY(e,o,n):o.forEach(s=>{let a=s.musicObj.getLink();if(a&&a.getHead()===s.musicObj){let c=[a.getHead(),...a.getTails()],u=o.filter(h=>c.some(l=>l===h.musicObj));this.alignObjectsY(e,u,n)}else this.alignObjectsY(e,[s],n)})}drawVerticalLine(e,r,n,o=!1){e.color(this.getConfig().type==="tab"?X.Tab_Frame:X.Staff_Frame);let s=this.row.getNotationLines().indexOf(this),a=s>=0?this.row.getNotationLines()[s+1]:void 0,c=this.getRowGroup().lines.length>1,u=this instanceof Et&&this.isGrandTreble(),h=this.getTopLineY(),l=a&&(o||c||u)?a.getTopLineY():this.getBottomLineY();e.fillRect(r,h,n,l-h)}},Et=class extends dc{constructor(e,r,n){super(e);this.staffConfig=r;this.id=n;d(this,"clefImageAsset");d(this,"clefLineDiatonicId");d(this,"topLineDiatonicId");d(this,"middleLineDiatonicId");d(this,"bottomLineDiatonicId");d(this,"minDiatonicId");d(this,"maxDiatonicId");d(this,"joinedGrandStaff");d(this,"topLineY",0);d(this,"bottomLineY",0);d(this,"mi");let o=(s,a)=>U.getNote(s).diatonicId-(a?7:0);if(r.clef==="G")this.clefImageAsset=0,this.clefLineDiatonicId=o("G4",r.isOctaveDown===!0),this.middleLineDiatonicId=this.clefLineDiatonicId+2;else if(r.clef==="F")this.clefImageAsset=1,this.clefLineDiatonicId=o("F3",r.isOctaveDown===!0),this.middleLineDiatonicId=this.clefLineDiatonicId-2;else throw new N(6,`Invalid staffConfig.clef ${r.clef}.`);this.topLineDiatonicId=this.middleLineDiatonicId+4,this.bottomLineDiatonicId=this.middleLineDiatonicId-4,this.minDiatonicId=r.minNote!==void 0?Math.min(o(r.minNote,!1),this.bottomLineDiatonicId):void 0,this.maxDiatonicId=r.maxNote!==void 0?Math.max(o(r.maxNote,!1),this.topLineDiatonicId):void 0,this.mi=new vs(this)}getMusicInterface(){return this.mi}get isOctaveDown(){return this.staffConfig.isOctaveDown===!0}get name(){var e;return(e=this.staffConfig.name)!=null?e:""}getConfig(){return this.staffConfig}getTopLineY(){return this.topLineY}getMiddleLineY(){return(this.topLineY+this.bottomLineY)/2}getBottomLineY(){return this.bottomLineY}joinGrandStaff(e){e!==this&&(this.joinedGrandStaff=e)}isGrandTreble(){return this.joinedGrandStaff!==void 0&&this.staffConfig.clef==="G"}isGrandBass(){return this.joinedGrandStaff!==void 0&&this.staffConfig.clef==="F"}getLineSpacing(){return(this.bottomLineY-this.topLineY)/4}getDiatonicSpacing(){return this.getLineSpacing()/2}containsDiatonicId(e){return U.validateDiatonicId(e),(this.minDiatonicId===void 0||e>=this.minDiatonicId)&&(this.maxDiatonicId===void 0||e<=this.maxDiatonicId)}getDiatonicIdY(e){if(this.containsDiatonicId(e))return this.bottomLineY+(this.bottomLineDiatonicId-e)*this.getDiatonicSpacing();if(this.joinedGrandStaff&&this.joinedGrandStaff.containsDiatonicId(e))return this.joinedGrandStaff.getDiatonicIdY(e);throw new N(6,"Staff does not contain diatonicId "+e)}getActualStaff(e){if(this.containsDiatonicId(e))return this;if(this.joinedGrandStaff&&this.joinedGrandStaff.containsDiatonicId(e))return this.joinedGrandStaff;throw new N(6,"Staff does not contain diatonicId "+e)}getDiatonicIdAt(e){let r=Math.round(this.bottomLineDiatonicId-(e-this.bottomLineY)/this.getDiatonicSpacing());return this.containsDiatonicId(r)?r:void 0}isLine(e){return e%2===this.middleLineDiatonicId%2}isSpace(e){return e%2!==this.middleLineDiatonicId%2}containsVoiceId(e){return y.isUndefined(this.staffConfig.voiceId)||$.Arr.toArray(this.staffConfig.voiceId).includes(e)}calcTop(){let e=this.topLineY;if(this.objects.forEach(r=>e=Math.min(e,r.getRect().top)),this.maxDiatonicId!==void 0){let r=this.getDiatonicIdY(this.maxDiatonicId),n=this.getDiatonicIdY(this.maxDiatonicId-1);e=Math.min(e,r-Math.abs(n-r)+1)}return e}calcBottom(){let e=this.bottomLineY;if(this.objects.forEach(r=>e=Math.max(e,r.getRect().bottom)),this.minDiatonicId!==void 0){let r=this.getDiatonicIdY(this.minDiatonicId),n=this.getDiatonicIdY(this.minDiatonicId+1);e=Math.max(e,r+Math.abs(n-r)-1)}return e}pick(e,r){return this.getRect().contains(e,r)?[this]:[]}layoutHeight(e){let{unitSize:r}=e,n=r*ct.StaffHeight;this.topLineY=-n/2,this.bottomLineY=n/2,this.rect=new G(0,0,this.topLineY,this.bottomLineY)}layoutWidth(e){this.rect.left=this.row.getRect().left,this.rect.right=this.row.getRect().right}offset(e,r){this.topLineY+=r,this.bottomLineY+=r,this.objects.forEach(n=>{n.offsetInPlace?n.offsetInPlace(0,r):n.offset&&n.offset(0,r)}),this.rect.offsetInPlace(e,r)}draw(e){}},Pt=class extends dc{constructor(e,r,n){super(e);this.tabConfig=r;this.id=n;d(this,"top",0);d(this,"bottom",0);d(this,"tuningName");d(this,"tuningStrings");d(this,"mi");y.isArray(r.tuning)?(this.tuningName=void 0,this.tuningStrings=r.tuning.map(o=>U.getNote(o)).reverse()):typeof r.tuning=="string"?(this.tuningName=fu(r.tuning),this.tuningStrings=$s(this.tuningName)):(this.tuningName="Standard",this.tuningStrings=$s(this.tuningName)),this.mi=new Ss(this)}getMusicInterface(){return this.mi}get name(){var e;return(e=this.tabConfig.name)!=null?e:""}getConfig(){return this.tabConfig}getTuningName(){return this.tuningName}getTuningStrings(){return this.tuningStrings}getStringY(e){return this.top+(this.bottom-this.top)/6*(e+.5)}getTopStringY(){return this.getStringY(0)}getBottomStringY(){return this.getStringY(5)}getTopLineY(){return this.getTopStringY()}getBottomLineY(){return this.getBottomStringY()}getTop(){return this.top}getBottom(){return this.bottom}containsVoiceId(e){return y.isUndefined(this.tabConfig.voiceId)||$.Arr.toArray(this.tabConfig.voiceId).includes(e)}containsDiatonicId(e){return!0}calcTop(){let{top:e}=this;return this.objects.forEach(r=>e=Math.min(e,r.getRect().top)),e}calcBottom(){let{bottom:e}=this;return this.objects.forEach(r=>e=Math.max(e,r.getRect().bottom)),e}pick(e,r){return this.getRect().contains(e,r)?[this]:[]}layoutHeight(e){let{unitSize:r}=e,n=r*ct.TabHeight;this.top=-n/2,this.bottom=n/2,this.rect=new G(0,0,this.top,this.bottom)}layoutWidth(e){this.rect.left=this.row.getRect().left,this.rect.right=this.row.getRect().right}offset(e,r){this.top+=r,this.bottom+=r,this.objects.forEach(n=>{n.offsetInPlace?n.offsetInPlace(0,r):n.offset&&n.offset(0,r)}),this.rect.offsetInPlace(e,r)}draw(e){}};function n0(i){let t=(i.startsWith("!{")?i.substring(2):i.startsWith("!")?i.substring(1):i).trim(),e=i.startsWith("!"),r=i.startsWith("!{");return{instrName:t,hideInstr:e,hideBrace:r}}var pc=class extends tt{constructor(e){var s;super(e[0].row);this.lines=e;d(this,"space",0);d(this,"instrument");d(this,"hasBrace");d(this,"instrText");d(this,"braceRect",new G);d(this,"mi");let r=X.RowGroup_Instrument,n=n0((s=e[0].getConfig().instrument)!=null?s:"");this.instrument=n.instrName,this.hasBrace=n.hideBrace?!1:this.hasInstrument&&e.length>=2;let o=n.hideInstr?"":this.instrument;this.instrText=new st(this,{text:o,color:r,scale:1},1,.5),this.mi=new ws(this)}getMusicInterface(){return this.mi}get row(){return this.lines[0].row}get hasInstrument(){return this.instrument.length>0}hasNotationLine(e){return this.lines.includes(e)}pick(e,r){if(!this.getRect().contains(e,r))return[];let n=this.instrText.pick(e,r);return n.length>0?[this,...n]:[this]}updateRect(){this.instrText.setRight(this.braceRect.left-this.space),this.instrText.setCenterY(this.braceRect.anchorY),this.rect=this.instrText.getRect().clone().expandInPlace(this.braceRect)}layout(e){this.space=e.unitSize,this.instrText.layout(e),this.braceRect=new G(-(this.hasBrace?e.unitSize*5:0),0,0,0),this.forceRectUpdate()}layoutToNotationLines(){this.braceRect.top=this.lines[0].getTopLineY(),this.braceRect.bottom=this.lines[this.lines.length-1].getBottomLineY(),this.braceRect.anchorY=this.braceRect.centerY,this.forceRectUpdate()}offset(e,r){this.instrText.offset(e,r),this.braceRect.offsetInPlace(e,r),this.rect.offsetInPlace(e,r)}draw(e){if(this.instrText.draw(e),this.hasBrace){let r=this.braceRect;e.color(X.RowGroup_Frame).lineWidth(1).drawBracket(r,"{")}}};var mc=class{constructor(){d(this,"instrWidth",0);d(this,"staffWidth",0)}resetWidths(){this.instrWidth=this.staffWidth=0}addRowInstrWidth(t){this.instrWidth=Math.max(this.instrWidth,t)}addRowstaffWidth(t){this.staffWidth=Math.max(this.staffWidth,t)}get instrLeft(){return 0}get instrRight(){return this.instrWidth}get staffLeft(){return this.instrRight}get staffRight(){return this.staffLeft+this.staffWidth}get left(){return this.instrLeft}get right(){return this.staffRight}get width(){return this.instrWidth+this.staffWidth}},fc=class extends tt{constructor(e,r,n){super(e);this.doc=e;this.prevRow=r;this.scoreConfig=n;d(this,"nextRow");d(this,"notationLines");d(this,"rowGroups");d(this,"staves");d(this,"tabs");d(this,"measures",[]);d(this,"rowGroupByLine");d(this,"needLayout",!0);d(this,"mi");this.notationLines=this.createNotationLines(),this.staves=this.notationLines.filter(s=>s instanceof Et),this.tabs=this.notationLines.filter(s=>s instanceof Pt);let o=[];for(let s=0;s<this.notationLines.length;s++){let a=this.notationLines[s],c=o[o.length-1];c===void 0||c[0].getConfig().instrument===void 0||c[0].getConfig().instrument!==a.getConfig().instrument?o.push([a]):c.push(a)}this.rowGroups=o.filter(s=>s.length>0).map(s=>new pc(s)),this.rowGroupByLine=this.notationLines.map(s=>this.rowGroups.find(a=>a.lines.includes(s))),this.prevRow&&(this.prevRow.nextRow=this),this.mi=new Is(this)}getMusicInterface(){return this.mi}createNotationLines(){let e=this.scoreConfig.map((r,n)=>r.type==="staff"?new Et(this,r,n):new Pt(this,r,n));for(let r=0;r<e.length-1;r++){let n=e[r],o=e[r+1];n instanceof Et&&o instanceof Et&&n.staffConfig.grandId!==void 0&&n.staffConfig.grandId===o.staffConfig.grandId&&(n.joinGrandStaff(o),o.joinGrandStaff(n))}return e}getNotationLines(){return this.notationLines}getRowGroups(){return this.rowGroups}getRowGroupByLineId(e){return this.rowGroupByLine[e]}findMatchingLine(e){return e.row===this?e:this.notationLines.find(r=>$.Obj.deepEqual(e.row.scoreConfig,r.row.scoreConfig)&&e.id===r.id||y.isNonEmptyString(e.getConfig().name)&&e.getConfig().name===r.getConfig().name&&e.getConfig().type===r.getConfig().type)}get regions(){return this.doc.regions}getStaves(){return this.staves}getTabs(){return this.tabs}get hasStaff(){return this.staves.length>0}get hasTab(){return this.tabs.length>0}getTopStaff(){let e=this.staves[0];if(e)return e;throw new N(6,"Top staff is required!")}getBottomStaff(){let e=this.staves[this.staves.length-1];if(e)return e;throw new N(6,"Bottom staff is required!")}getStaff(e){U.validateDiatonicId(e);for(let r=0;r<this.notationLines.length;r++){let n=this.notationLines[r];if(n instanceof Et&&n.containsDiatonicId(e))return n}}resetLayoutGroups(e){this.notationLines.forEach(r=>r.resetLayoutGroups(e))}layoutLayoutGroups(e){this.notationLines.forEach(r=>r.layoutLayoutGroups(e))}pick(e,r){if(!this.getRect().contains(e,r))return[];for(let n=0;n<this.measures.length;n++){let o=this.measures[n].pick(e,r);if(o.length>0)return[this,...o]}for(let n=0;n<this.rowGroups.length;n++){let o=this.rowGroups[n].pick(e,r);if(o.length>0)return[this,...o]}for(let n=0;n<this.notationLines.length;n++){let o=this.notationLines[n].pick(e,r);if(o.length>0)return[this,...o]}return[this]}getConnectivesContentRect(){let e=this.getRect(),r=this.getFirstMeasure(),n=r?r.getColumnsContentRect().left:e.left;return new G(n,(n+e.right)/2,e.right,e.top,e.anchorY,e.bottom)}getDiatonicIdAt(e){for(let r=0;r<this.notationLines.length;r++){let n=this.notationLines[r],o=n instanceof Et?n.getDiatonicIdAt(e):void 0;if(o!==void 0)return o}}addMeasure(e){this.measures.push(e)}getMeasures(){return this.measures}isFirstRow(){return this===this.doc.getFirstRow()}isLastRow(){return this===this.doc.getLastRow()}getPrevRow(){return this.prevRow}getNextRow(){return this.nextRow}getFirstMeasure(){return this.measures.length>0?this.measures[0]:void 0}getLastMeasure(){return this.measures.length>0?this.measures[this.measures.length-1]:void 0}solveAutoStemDir(e){if(e.length===0)return"up";{let r=e[0].voiceId,n=e.filter(u=>u instanceof At).map(u=>u.setDiatonicId),o=e.filter(u=>u instanceof ce&&u.setDiatonicId!==ce.UndefinedDiatonicId).map(u=>u.setDiatonicId);if(n.length===0&&o.length===0)return"up";let s=n.length>0?n:o,a=Math.floor($.Math.avg(...s)),c=this.getStaves().filter(u=>u.containsVoiceId(r)&&u.containsDiatonicId(a));return c.length>0?a>=c[0].middleLineDiatonicId?"down":"up":"up"}}requestLayout(){this.needLayout||(this.needLayout=!0,this.doc.requestLayout())}layout(e){if(!this.needLayout)return;this.requestRectUpdate(),this.notationLines.forEach(n=>{n.removeObjects(),n.layoutHeight(e)}),this.rowGroups.forEach(n=>{n.layout(e),this.regions.addRowInstrWidth(n.getRect().width)}),this.measures.forEach(n=>n.layout(e));let r=this.measures.map(n=>n.getMinWidth()+n.getPostMeasureBreakWidth()).reduce((n,o)=>n+o);this.regions.addRowstaffWidth(r)}layoutStretch(e){if(!this.needLayout)return;this.rect=new G(this.regions.left,this.regions.right,0,0),this.notationLines.forEach(a=>a.layoutWidth(e)),this.rowGroups.forEach(a=>a.setRight(this.regions.instrRight));let r=this.regions.staffWidth,n=0;this.measures.forEach(a=>{r-=a.getTotalSolidWidth()+a.getPostMeasureBreakWidth(),n+=a.getMinColumnsWidth()});let o=r/n,s=this.regions.staffLeft;this.measures.forEach(a=>{let c=a.getTotalSolidWidth()+a.getMinColumnsWidth()*o;a.layoutWidth(e,c);let u=a.getRect();a.setLeft(s),a.setAnchorY(0),s+=u.width,s+=a.getPostMeasureBreakWidth()}),this.measures.forEach(a=>{a.layoutConnectives(e),a.layoutBeams(e)})}updateRect(){var a;let e=this.regions.left,r=this.regions.right,n=0,o=0,s=(a=this.getLastMeasure())==null?void 0:a.getBarLineRight().getAnchoredLayoutObjects().map(c=>c.musicObj).find(c=>c instanceof Ci);s&&(r=Math.max(r,s.getRect().right)),this.measures.length>0&&(n=Math.min(...this.measures.map(c=>c.getRect().top)),o=Math.max(...this.measures.map(c=>c.getRect().bottom))),this.rect=new G(e,r,n,o)}alignStemsToBeams(){this.measures.forEach(e=>e.alignStemsToBeams())}layoutSetNotationLines(e){let{unitSize:r}=e;for(let n=1;n<this.notationLines.length;n++){let o=this.notationLines[n-1],s=this.notationLines[n];if(o instanceof Et&&s instanceof Et&&o.staffConfig.grandId!==void 0&&o.staffConfig.grandId===s.staffConfig.grandId){let a=o.getBottomLineY()-s.getTopLineY()+r*6;s.offsetY(a)}else{let a=o.calcBottom()-s.calcTop()+r*3;s.offsetY(a)}}this.measures.forEach(n=>{n.requestRectUpdate(),n.getBarLineLeft().requestRectUpdate(),n.getBarLineRight().requestRectUpdate(),n.getColumns().forEach(o=>{o.requestRectUpdate(),ae().forEach(s=>{var a;return(a=o.getVoiceSymbol(s))==null?void 0:a.requestRectUpdate()})})}),this.rowGroups.forEach(n=>n.layoutToNotationLines()),this.alignStemsToBeams(),this.requestRectUpdate()}layoutDone(){this.measures.forEach(e=>e.layoutDone()),this.needLayout=!1}offset(e,r){this.measures.forEach(n=>n.offset(e,r)),this.rect.offsetInPlace(e,r),this.notationLines.forEach(n=>n.offset(e,r)),this.rowGroups.forEach(n=>n.offset(e,r))}getStaffLineLeft(){var e;return(e=this.getFirstMeasure())==null?void 0:e.getStaffLineLeft()}draw(e){e.drawDebugRect(this.getRect());let{left:r,top:n,width:o,height:s}=this.getRect(),a=e._lineWidth;e.save(),e.rect(r-a,n,o+2*a,s),e.clip(),this.measures.forEach(u=>u.draw(e)),this.notationLines.forEach(u=>u.draw(e));let c=this.getStaffLineLeft();c!==void 0&&this.notationLines.length>1&&this.notationLines.forEach(u=>u.drawVerticalLine(e,c,e._lineWidth,!0)),this.rowGroups.forEach(u=>u.draw(e)),e.restore()}};var gc=class extends tt{constructor(e,r,n,o){super(e);this.doc=e;this.title=r;this.composer=n;this.arranger=o;d(this,"titleText");d(this,"composerText");d(this,"arrangerText");d(this,"mi");this.mi=new Ts(this);let s=X.Header_Title,a=X.Header_Composer,c=X.Header_Arranger;this.titleText=this.title?new st(this,{text:this.title,color:s,scale:2},.5,0):void 0,this.composerText=this.composer?new st(this,{text:this.composer,color:a},1,0):void 0,this.arrangerText=this.arranger?new st(this,{text:"Arr.: "+this.arranger,color:c},1,0):void 0}getMusicInterface(){return this.mi}pick(e,r){if(!this.rect.contains(e,r))return[];if(this.titleText){let n=this.titleText.pick(e,r);if(n)return[this,...n]}if(this.composerText){let n=this.composerText.pick(e,r);if(n)return[this,...n]}if(this.arrangerText){let n=this.arrangerText.pick(e,r);if(n)return[this,...n]}return[this]}layout(e){let r=0,n=this.doc.regions.staffLeft,o=this.doc.regions.staffRight;this.rect=new G(n,o,0,0),this.titleText&&(this.titleText.layout(e),this.titleText.setCenterX((n+o)/2),this.titleText.setTop(r),r+=this.titleText.getRect().height,this.rect.expandInPlace(this.titleText.getRect())),this.composerText&&(this.composerText.layout(e),this.composerText.setRight(o),this.composerText.setTop(r),r+=this.composerText.getRect().height,this.rect.expandInPlace(this.composerText.getRect())),this.arrangerText&&(this.arrangerText.layout(e),this.arrangerText.setRight(o),this.arrangerText.setTop(r),r+=this.arrangerText.getRect().height,this.rect.expandInPlace(this.arrangerText.getRect()))}offset(e,r){this.titleText&&this.titleText.offset(e,r),this.composerText&&this.composerText.offset(e,r),this.arrangerText&&this.arrangerText.offset(e,r),this.rect.offsetInPlace(e,r)}draw(e){this.titleText&&this.titleText.draw(e),this.composerText&&this.composerText.draw(e),this.arrangerText&&this.arrangerText.draw(e)}};var yc=class extends tt{constructor(){super(void 0);d(this,"needLayout",!0);d(this,"ctx");d(this,"regions",new mc);d(this,"rows",[]);d(this,"measures",[]);d(this,"measuresPerRow",1/0);d(this,"curScoreConfig",[{type:"staff",clef:"G"}]);d(this,"header");d(this,"newRowRequested",!1);d(this,"allConnectiveProps",[]);d(this,"staffGroups",new lt);d(this,"mi");this.mi=new Zr(this)}getMusicInterface(){return this.mi}setScoreConfiguration(e){if(y.isEnumValue(e,zn))switch(e){default:case"treble":this.curScoreConfig=[{type:"staff",clef:"G"}];break;case"bass":this.curScoreConfig=[{type:"staff",clef:"F"}];break;case"grand":this.curScoreConfig=[{type:"staff",clef:"G",grandId:"grand1"},{type:"staff",clef:"F",grandId:"grand1"}];break;case"guitarTreble":this.curScoreConfig=[{type:"staff",clef:"G",isOctaveDown:!0}];break;case"guitarTab":this.curScoreConfig=[{type:"tab",tuning:"Standard"}];break;case"guitarCombined":this.curScoreConfig=[{type:"staff",clef:"G",isOctaveDown:!0},{type:"tab",tuning:"Standard"}];break}else y.isArray(e)?this.curScoreConfig=e:this.curScoreConfig=[e];for(let r=0,n=[];r<this.curScoreConfig.length;){let o=this.curScoreConfig[r],s=this.curScoreConfig[r+1];if(o&&s&&o.type==="staff"&&s.type==="staff"&&o.grandId!==void 0&&o.grandId===s.grandId){if(n.includes(o.grandId))throw new N(6,`Grand staff error: grandId "${o.grandId}" already used!`);if(o.clef!=="G")throw new N(6,`Grand staff error: Invalid treble clef "${o.clef}"!`);if(s.clef!=="F")throw new N(6,`Grand staff error: Invalid treble clef "${o.clef}"!`);if(o.isOctaveDown||s.isOctaveDown)throw new N(6,"Grand staff error: cannot use isOctaveDown option!");n.push(o.grandId),o.minNote="C4",s.maxNote="B3",r+=2}else{if(o&&o.type==="staff"&&o.grandId!==void 0)throw new N(6,`Grand staff error: invalid use of grandId "${o.grandId}"!`);r++}}this.requestNewRow()}setMeasuresPerRow(e){this.measuresPerRow=e}addConnectiveProps(e){this.allConnectiveProps.push(e)}setRenderContext(e){if(this.ctx===e)return;let r=this.ctx;this.ctx=e,r&&r.setDocument(void 0),e&&e.setDocument(this.mi),this.requestFullLayout()}setHeader(e,r,n){this.header=new gc(this,e,r,n),this.requestLayout()}getTitle(){var e;return(e=this.header)==null?void 0:e.title}getComposer(){var e;return(e=this.header)==null?void 0:e.composer}getArranger(){var e;return(e=this.header)==null?void 0:e.arranger}hasSingleMeasure(){return this.measures.length===1}getFirstMeasure(){return this.measures.length>0?this.measures[0]:void 0}getLastMeasure(){return this.measures.length>0?this.measures[this.measures.length-1]:void 0}addNewRow(e){let r=new fc(this,e,this.curScoreConfig);return this.rows.push(r),r}getFirstRow(){return this.rows.length===0?this.addNewRow(void 0):this.rows[0]}getLastRow(){return this.rows.length===0?this.addNewRow(void 0):this.rows[this.rows.length-1]}getRows(){return this.rows}getMeasures(){return this.measures}requestNewRow(){this.newRowRequested=!0}addMeasure(e){let r=this.rows[this.rows.length-1];(!r||this.newRowRequested&&r.getMeasures().length>0||r.getMeasures().length>=this.measuresPerRow)&&(r=this.addNewRow(r),this.newRowRequested=!1);let n=new bi(r,e);return this.measures.push(n),r.addMeasure(n),this.requestLayout(),n}addStaffGroup(e,r,n){this.staffGroups.set(e,new hc(e,r,n))}getStaffGroup(e){return this.staffGroups.get(e)}getVoiceSymbols(e){let r=[];return this.forEachMeasure(n=>r=r.concat(n.getVoiceSymbols(e))),r}removeLayoutObjects(e){this.forEachMeasure(r=>r.removeLayoutObjects(e))}forEachMeasure(e){let r=this.getFirstMeasure();for(;r;)e(r),r=r.getNextMeasure()}resetMeasures(){this.measures.forEach(e=>e.resetPassCount())}updateCursorRect(e){this.ctx&&this.ctx.updateCursorRect(e)}requestLayout(){this.needLayout=!0}requestFullLayout(){this.rows.forEach(e=>e.requestLayout()),this.forEachMeasure(e=>{e.getColumns().forEach(r=>r.requestLayout()),e.requestLayout()}),this.requestLayout()}layout(){var n;if(!this.needLayout)return;let{ctx:e}=this;if(!e)return;let{unitSize:r}=e;this.forEachMeasure(o=>o.createBeams()),(n=this.getFirstMeasure())==null||n.updateRunningArguments(),this.forEachMeasure(o=>o.createExtensions()),this.allConnectiveProps.forEach(o=>o.removeConnectives()),this.allConnectiveProps.forEach(o=>o.createConnectives()),this.rows.forEach(o=>o.resetLayoutGroups(e)),this.regions.resetWidths(),this.regions.addRowstaffWidth(ct.MinStaffWidth*r),this.rows.forEach(o=>o.layout(e)),this.rows.forEach(o=>o.layoutStretch(e)),this.rows.forEach(o=>o.layoutLayoutGroups(e)),this.rows.forEach(o=>o.layoutSetNotationLines(e)),this.rect=new G,this.header&&(this.header.layout(e),this.rect.expandInPlace(this.header.getRect())),this.rows.forEach(o=>{o.setLeft(0),o.setTop(this.rect.bottom+r*2),this.rect.expandInPlace(o.getRect())}),this.rows.forEach(o=>o.layoutDone()),this.needLayout=!1}offset(e,r){}drawContent(){let{ctx:e}=this;e&&(this.rows.forEach(r=>r.draw(e)),this.header&&this.header.draw(e))}pickStaffPosAt(e,r){if(this.rect.contains(e,r))for(let n=0;n<this.rows.length;n++){let o=this.rows[n];if(!o.hasStaff||!o.getRect().contains(e,r))continue;let s=o.getDiatonicIdAt(r);if(s!==void 0)return{scoreRow:o,diatonicId:s}}}pick(e,r){if(!this.rect.contains(e,r))return[];if(this.header){let n=this.header.pick(e,r);if(n.length>0)return[this,...n]}for(let n=0;n<this.rows.length;n++){let o=this.rows[n].pick(e,r);if(o.length>0)return[this,...o]}return[this]}};var hg="";function bt(i,...t){let e=t.map(r=>JSON.stringify(r)).join(", ");hg=`DocumentBuilder.${i}(${e})`}function pt(...i){i.forEach(t=>{if(!t)throw new N(6,hg)})}function lg(i,t){if(!i)throw new N(6,t)}function _i(i,t,e){lg(!y.isTypedObject(i,[t]),e)}function dg(i){pt(y.isObject(i),y.isStringOrUndefined(i.name),y.isUndefined(i.voiceId)||Ve(i.voiceId)||y.isArray(i.voiceId)&&i.voiceId.every(t=>Ve(t))),_i(i,"voiceIds","Baseconfig.voiceIds was removed. Use BaseConfig.voiceId instead."),y.isArray(i.voiceId)&&(i.voiceId=$.Arr.removeDuplicates(i.voiceId)),pt(y.isStringOrUndefined(i.instrument))}function ag(i){dg(i),pt(y.isObject(i),y.isStrictEqual(i.type,"staff"),y.isEnumValue(i.clef,Ui),y.isBooleanOrUndefined(i.isOctaveDown),y.isUndefined(i.minNote)||U.isNote(i.minNote),y.isUndefined(i.maxNote)||U.isNote(i.maxNote),y.isStringOrUndefined(i.grandId)),_i(i,"isGrand","StaffConfig.isGrand was removed. Use StaffConfig.grandId instead.")}function cg(i){dg(i),pt(y.isObject(i),y.isStrictEqual(i.type,"tab"),y.isUndefined(i.tuning)||y.isString(i.tuning)&&y.isIncluded(i.tuning,lo)||y.isArray(i.tuning)&&y.isStrictEqual(i.tuning.length,Ha().length&&i.tuning.every(t=>U.isNote(t))))}function bc(i){pt(y.isObject(i),y.isEnumValueOrUndefined(i.stem,gr),y.isStringOrUndefined(i.color),y.isBooleanOrUndefined(i.arpeggio)||y.isEnumValue(i.arpeggio,fi),y.isBooleanOrUndefined(i.staccato),y.isBooleanOrUndefined(i.diamond),y.isUndefined(i.string)||Go(i.string)||y.isEmptyArray(i.string)||y.isNonEmptyArray(i.string)&&i.string.every(t=>Go(t))),_i(i,"dotted","NoteOptions.dotted was removed."),_i(i,"triplet","NoteOptions.triplet was removed."),_i(i,"tieSpan",'NoteOptions.tieSpan was removed. Use addConnective("tie", tieSpan)'),_i(i,"slurSpan",'NoteOptions.slurSpan was removed. Use addConnective("slur", slurSpan)')}function ug(i){pt(y.isObject(i),y.isStringOrUndefined(i.staffPos)||y.isInteger(i.staffPos)||i.staffPos instanceof U,y.isStringOrUndefined(i.color),y.isBooleanOrUndefined(i.hide)),_i(i,"dotted","RestOptions.dotted was removed."),_i(i,"triplet","RestOptions.triplet was removed.")}function o0(i){pt(y.isObject(i),y.isEnumValueOrUndefined(i.align,qo),y.isEnumValueOrUndefined(i.hyphen,Yn))}function s0(i){pt(y.isObject(i),y.isBooleanOrUndefined(i.showNumber))}function Ns(i){pt(y.isStringOrUndefined(i)||y.isIntegerGte(i,0)||y.isNonEmptyArray(i)&&i.every(t=>y.isString(t)||y.isIntegerGte(t,0)))}var xc=class xc{constructor(){d(this,"doc");d(this,"currentLyricsAlign","center");this.doc=new yc}setScoreConfiguration(t){return bt("setScoreConfiguration",t),y.isEnumValue(t,zn)?this.doc.setScoreConfiguration(t):y.isObject(t)&&t.type==="staff"?(ag(t),this.doc.setScoreConfiguration(t)):y.isObject(t)&&t.type==="tab"?(cg(t),this.doc.setScoreConfiguration(t)):y.isNonEmptyArray(t)?(t.forEach(e=>{y.isObject(e)&&e.type==="staff"?ag(e):y.isObject(e)&&e.type==="tab"?cg(e):pt(!1)}),this.doc.setScoreConfiguration(t)):pt(!1),this}getMeasure(){var t;return(t=this.doc.getLastMeasure())!=null?t:this.doc.addMeasure(xc.DefaultMeasureOptions)}getDocument(){return this.doc.getMusicInterface()}setHeader(t,e,r){return bt("setHeader",t,e,r),pt(y.isStringOrUndefined(t),y.isStringOrUndefined(e),y.isStringOrUndefined(r)),this.doc.setHeader(t,e,r),this}setMeasuresPerRow(t){return bt("setMeasuresPerRow",t),pt(y.isIntegerGte(t,1)||y.isPosInfinity(t)),this.doc.setMeasuresPerRow(t),this}addMeasure(t){return bt("addMeasure",t),t!=null||(t={}),s0(t),this.doc.addMeasure(t),this}setKeySignature(...t){return bt("setKeySignature",...t),pt(t[0]instanceof ri||t[0]instanceof rr||y.isNonEmptyString(t[0])&&y.isEnumValueOrUndefined(t[1],Ti)),this.getMeasure().setKeySignature(...t),this}setTimeSignature(...t){return bt("setTimeSignature",...t),t[0]instanceof ii?this.getMeasure().setTimeSignature(t[0]):y.isEnumValue(t[0],po)&&y.isEnumValueOrUndefined(t[1],Oi)?this.getMeasure().setTimeSignature(new ii(t[0],t[1])):y.isIntegerGte(t[0],1)&&y.isIntegerGte(t[1],1)&&y.isEnumValueOrUndefined(t[2],Oi)?this.getMeasure().setTimeSignature(new ii(t[0],t[1],t[2])):pt(!1),this}setTempo(t,e){return bt("setTempo",t,e),pt(y.isIntegerGte(t,1),y.isUndefined(e)||nr(e)),this.getMeasure().setTempo(t,e),this}addNote(t,e,r,n){if(bt("addNote",t,e,r,n),pt(Ve(t),e instanceof U||y.isNonEmptyString(e)||y.isArray(e)&&e.every(o=>o instanceof U||y.isNonEmptyString(o)),nr(r)),n!=null||(n={}),bc(n),y.isArray(e)){let o=n.string;e.forEach((s,a)=>{n.string=y.isArray(o)?o[a]:o,this.getMeasure().addNoteGroup(t,[s],r,n)})}else this.getMeasure().addNoteGroup(t,[e],r,n);return this}addChord(t,e,r,n){return bt("addChord",t,e,r,n),pt(Ve(t),y.isNonEmptyArray(e)&&e.every(o=>o instanceof U||y.isNonEmptyString(o)),nr(r)),n!=null||(n={}),bc(n),this.getMeasure().addNoteGroup(t,e,r,n),this}addRest(t,e,r){return bt("addRest",t,e,r),pt(Ve(t),nr(e)),r!=null||(r={}),ug(r),this.getMeasure().addRest(t,e,r),this}addTuplet(t,e,r){bt("addTuplet",t,e),pt(Ve(t),y.isFunction(r),Zs(e)&&y.isBooleanOrUndefined(e.showRatio));let n=[],o={addNote:(s,a,c)=>{if(bt("addTuplet => addNote",s,a,c),pt(s instanceof U||y.isNonEmptyString(s)||y.isArray(s)&&s.every(u=>u instanceof U||y.isNonEmptyString(u)),nr(a)),c!=null||(c={}),bc(c),y.isArray(s)){let u=c.string;s.forEach((h,l)=>{c.string=y.isArray(u)?u[l]:u;let p=this.getMeasure().addNoteGroup(t,[h],a,c,e);n.push(p)})}else{let u=this.getMeasure().addNoteGroup(t,[s],a,c,e);n.push(u)}return o},addChord:(s,a,c)=>{bt("addTuplet => addChord",s,a,c),pt(y.isNonEmptyArray(s)&&s.every(h=>h instanceof U||y.isNonEmptyString(h)),nr(a)),c!=null||(c={}),bc(c);let u=this.getMeasure().addNoteGroup(t,s,a,c,e);return n.push(u),o},addRest:(s,a)=>{bt("addTuplet => addRest",s,a),pt(nr(s)),a!=null||(a={}),ug(a);let c=this.getMeasure().addRest(t,s,a,e);return n.push(c),o}};return r(o),Xi.createTuplet(n,e),this}addLyricsInternal(t,e,r,n,o){var s;return Ns(t),pt($a(e),y.isEnumValue(r,ir),y.isString(n)||y.isArray(n)&&n.every(a=>y.isString(a))),o!=null||(o={}),o0(o),o.align!==void 0?this.currentLyricsAlign=o.align:(s=o.align)!=null||(o.align=this.currentLyricsAlign),y.isArray(n)?n.forEach(a=>this.getMeasure().addLyrics(t,e,r,a,o)):this.getMeasure().addLyrics(t,e,r,n,o),this}addLyrics(t,e,r,n){return bt("addLyrics",t,e,r,n),this.addLyricsInternal(void 0,t,e,r!=null?r:"",n)}addLyricsTo(t,e,r,n,o){return bt("addLyricsTo",e,r,n,o),this.addLyricsInternal(t,e,r,n!=null?n:"",o)}addFermataInternal(t,e){return Ns(t),pt(y.isEnumValue(e,Wo)),this.getMeasure().addFermata(t,e),this}addFermata(t="atNote"){return bt("addFermata",t),this.addFermataInternal(void 0,t)}addFermataTo(t,e="atNote"){return bt("addFermataTo",t,e),this.addFermataInternal(t,e)}addNavigationInternal(t,e,...r){return Ns(t),pt(y.isStrictEqual(e,"endRepeat")&&y.isStrictEqual(r.length,1)||y.isStrictEqual(e,"ending")&&y.isIntegerGte(r.length,1)&&r.every(n=>y.isIntegerGte(n,1))||y.isEnumValue(e,br)&&y.isEmptyArray(r)),this.getMeasure().addNavigation(t,e,...r),this}addNavigation(t,...e){return bt("addNavigation",t,...e),this.addNavigationInternal(void 0,t,...e)}addNavigationTo(t,e,...r){return bt("addNavigationTo",t,e,...r),this.addNavigationInternal(t,e,...r)}addAnnotationInternal(t,e,r){if(e!=null||(e=ng(r)),e===void 0)throw new N(6,`Annotation text "${r}" is not known annotation.`);return Ns(t),pt(y.isEnumValue(e,Hn),y.isNonEmptyString(r)),this.getMeasure().addAnnotation(t,e,r),this}addAnnotation(...t){return bt("addAnnotation",...t),t.length===1?this.addAnnotationInternal(void 0,void 0,t[0]):this.addAnnotationInternal(void 0,t[0],t[1])}addAnnotationTo(t,...e){return bt("addAnnotationTo",t,...e),e.length===1?this.addAnnotationInternal(t,void 0,e[0]):this.addAnnotationInternal(t,e[0],e[1])}addLabelInternal(t,e,r){return Ns(t),pt(y.isEnumValue(e,Yo),y.isNonEmptyString(r)),this.getMeasure().addLabel(t,e,r),this}addLabel(t,e){return bt("addLabel",t,e),this.addLabelInternal(void 0,t,e)}addLabelTo(t,e,r){return bt("addLabelTo",t,e,r),this.addLabelInternal(t,e,r)}addConnective(t,...e){if(bt("addConnective",t,...e),pt(y.isEnumValue(t,gi)),t==="tie"){pt(y.isIntegerOrUndefined(e[0])||y.isEnumValue(e[0],yr)),pt(y.isEnumValueOrUndefined(e[1],Je));let r=e[0],n=e[1];this.getMeasure().addConnective(t,r,n)}else if(t==="slur"){pt(y.isIntegerOrUndefined(e[0])),pt(y.isEnumValueOrUndefined(e[1],Je));let r=e[0],n=e[1];this.getMeasure().addConnective(t,r,n)}else if(t==="slide"){pt(y.isEnumValueOrUndefined(e[0],Je));let r=e[0];this.getMeasure().addConnective(t,r)}return this}addExtension(t){bt("addExtension"),lg(y.isFunctionOrUndefined(t),"addExtension() has new usage, e.g. addExtension(ext => ext.measures(2)).");let e=0,r=!0,n={notes:(o,s)=>(bt("addExtension.notes",o,s),pt(nr(o)),pt(y.isUndefined(s)||y.isNumber(s)&&s>=0),e+=Kt.get(o).ticks*(s!=null?s:1),n),measures:o=>(bt("addExtension.measures",o),pt(y.isNumber(o)&&o>=1),e+=this.getMeasure().getMeasureTicks()*o,n),infinity:()=>(bt("addExtension.infinity"),e=1/0,n),hide:()=>(bt("addExtension.hide"),r=!1,n)};return t?t(n):e=1/0,this.getMeasure().addExtension(e,r),this}addStaffGroup(t,e,r="auto"){return bt("addStaffGroup",t,e,r),pt(y.isNonEmptyString(t),y.isNonEmptyString(e)||y.isIntegerGte(e,0)||y.isNonEmptyArray(e)&&e.every(n=>y.isNonEmptyString(n)||y.isIntegerGte(n,0)),y.isEnumValue(r,Vo)),this.doc.addStaffGroup(t,e,r),this}endSong(){return bt("endSong"),this.getMeasure().endSong(),this}endSection(){return bt("endSection"),this.getMeasure().endSection(),this}endRow(){var t;return bt("endRow"),(t=this.doc.getLastMeasure())==null||t.endRow(),this}completeRests(t){return bt("completeRests",t),pt(y.isUndefined(t)||Ve(t)||y.isArray(t)&&t.every(e=>Ve(e))),this.getMeasure().completeRests(t),this}addScaleArpeggio(t,e,r){bt("addScaleArpeggio",t,e,r),pt(y.isNonEmptyString(e),y.isIntegerGte(r,1));let n=this.getMeasure().getTimeSignature(),o=t.getScaleNotes(e,r);for(let s=0;s<o.length;s++){s%n.beatCount===0&&s>0&&this.addMeasure();let a=o[s];this.addNote(0,a,n.beatLength),this.addLabel("note",a.formatOmitOctave(1))}return this}};d(xc,"DefaultMeasureOptions",{});var Ar=xc;var Os=class{constructor(t){this.type=t}},zi=class extends Os{constructor(e,r,n,o){super(e);this.renderContext=r;this.scoreRow=n;this.diatonicId=o}},Yi=class extends Os{constructor(e,r,n){super(e);this.renderContext=r;this.objects=n;if(arguments.length===0)throw new N(6,"Empty array in score object event!")}get topObject(){return this.objects[this.objects.length-1]}findObject(e){return this.objects.find(r=>e(r))}};function Ph(i,t,e){if(!i)throw new N(6,`Invalid arg: ${t} = ${e}`)}function Fh(i){if(i instanceof Et||i instanceof Pt)return i.getMusicInterface();throw new N(6,"Notation line not staff nor tab.")}var xt=class{constructor(t){this.name=t}getParent(){var t;return(t=this.getMusicObject().getParent())==null?void 0:t.getMusicInterface()}},Ac=class Ac extends xt{constructor(e){super(Ac.Name);this.obj=e}getMusicObject(){return this.obj}getAccidental(){return this.obj.accidental}};d(Ac,"Name","Accidental");var $o=Ac,Cc=class Cc extends xt{constructor(e){super(Cc.Name);this.obj=e}getMusicObject(){return this.obj}};d(Cc,"Name","Connective");var xs=Cc,_c=class _c extends xt{constructor(e){super(_c.Name);this.obj=e}getMusicObject(){return this.obj}getRhythmColumn(){return this.obj.col.getMusicInterface()}getNotationLine(){return Fh(this.obj.line)}};d(_c,"Name","Arpeggio");var ts=_c,vc=class vc extends xt{constructor(e){super(vc.Name);this.obj=e}getMusicObject(){return this.obj}};d(vc,"Name","BeamGroup");var fs=vc,Sc=class Sc extends xt{constructor(e){super(Sc.Name);this.obj=e}getMusicObject(){return this.obj}getStaff(){return this.obj.staff.getMusicInterface()}};d(Sc,"Name","StaffBeamGroup");var gs=Sc,wc=class wc extends xt{constructor(e){super(wc.Name);this.obj=e}getMusicObject(){return this.obj}getTitle(){return this.obj.getTitle()}getComposer(){return this.obj.getComposer()}getArranger(){return this.obj.getArranger()}getRows(){return this.obj.getRows().map(e=>e.getMusicInterface())}getMeasures(){return this.obj.getMeasures().map(e=>e.getMusicInterface())}play(e){return Ph(y.isFunctionOrUndefined(e),"playStateChangeListener",e),new Jn(this,e).play()}};d(wc,"Name","Document");var Zr=wc,Ic=class Ic extends xt{constructor(e){super(Ic.Name);this.obj=e}getMusicObject(){return this.obj}getPassages(){return this.obj.passages}hasPassage(e){return Ph(y.isIntegerGte(e,1),"passage",e),this.obj.hasPassage(e)}};d(Ic,"Name","Ending");var ps=Ic,Tc=class Tc extends xt{constructor(e){super(Tc.Name);this.obj=e}getMusicObject(){return this.obj}};d(Tc,"Name","Fermata");var ys=Tc,Nc=class Nc extends xt{constructor(e){super(Nc.Name);this.obj=e}getMusicObject(){return this.obj}getTitle(){return this.obj.title}getComposer(){return this.obj.composer}getArranger(){return this.obj.arranger}};d(Nc,"Name","Header");var Ts=Nc,Oc=class Oc extends xt{constructor(e){super(Oc.Name);this.obj=e}getMusicObject(){return this.obj}};d(Oc,"Name","Image");var Ho=Oc,Rc=class Rc extends xt{constructor(e){super(Rc.Name);this.obj=e}getMusicObject(){return this.obj}getMeasureNumber(){return this.obj.getMeasureNumber()}getRhythmColumns(){return this.obj.getColumns().map(e=>e.getMusicInterface())}getRow(){return this.obj.row.getMusicInterface()}};d(Rc,"Name","Measure");var _s=Rc,Mc=class Mc extends xt{constructor(e){super(Mc.Name);this.obj=e}getMusicObject(){return this.obj}};d(Mc,"Name","BarLineRight");var hs=Mc,Ec=class Ec extends xt{constructor(e){super(Ec.Name);this.obj=e}getMusicObject(){return this.obj}};d(Ec,"Name","BarLineLeft");var ls=Ec,Dc=class Dc extends xt{constructor(e){super(Dc.Name);this.obj=e}getMusicObject(){return this.obj}getBarLine(){let e=this.obj.barLine;if(e instanceof xi||e instanceof xr)return e.getMusicInterface();throw new N(6,"Bar line not left nor right.")}getNotationLine(){return Fh(this.obj.line)}};d(Dc,"Name","StaffBarLine");var ds=Dc,kc=class kc extends xt{constructor(e){super(kc.Name);this.obj=e}getMusicObject(){return this.obj}getNotes(){return this.obj.notes}getRhythmProps(){return this.obj.rhythmProps}getRhythmColumn(){return this.obj.col.getMusicInterface()}getMeasure(){return this.obj.measure.getMusicInterface()}};d(kc,"Name","NoteGroup");var is=kc,Lc=class Lc extends xt{constructor(e){super(Lc.Name);this.obj=e}getMusicObject(){return this.obj}getNoteGroup(){return this.obj.noteGroup.getMusicInterface()}getRhythmColumn(){return this.getNoteGroup().getRhythmColumn()}getMeasure(){return this.getNoteGroup().getMeasure()}getStaff(){return this.obj.staff.getMusicInterface()}};d(Lc,"Name","StaffNoteGroup");var ns=Lc,jc=class jc extends xt{constructor(e){super(jc.Name);this.obj=e}getMusicObject(){return this.obj}getNoteGroup(){return this.obj.noteGroup.getMusicInterface()}getRhythmColumn(){return this.getNoteGroup().getRhythmColumn()}getMeasure(){return this.getNoteGroup().getMeasure()}getTab(){return this.obj.tab.getMusicInterface()}};d(jc,"Name","TabNoteGroup");var os=jc,Pc=class Pc extends xt{constructor(e){super(Pc.Name);this.obj=e}getMusicObject(){return this.obj}getRhythmProps(){return this.obj.rhythmProps}getRhythmColumn(){return this.obj.col.getMusicInterface()}getMeasure(){return this.obj.measure.getMusicInterface()}};d(Pc,"Name","Rest");var es=Pc,Fc=class Fc extends xt{constructor(e){super(Fc.Name);this.obj=e}getMusicObject(){return this.obj}getRest(){return this.obj.rest.getMusicInterface()}getRhythmColumn(){return this.getRest().getRhythmColumn()}getMeasure(){return this.getRest().getMeasure()}getStaff(){return this.obj.staff.getMusicInterface()}};d(Fc,"Name","StaffRest");var rs=Fc,Bc=class Bc extends xt{constructor(e){super(Bc.Name);this.obj=e}getMusicObject(){return this.obj}getRhythmSymbol(e){var r;return Ph(Ve(e),"voiceId",e),(r=this.obj.getVoiceSymbol(e))==null?void 0:r.getMusicInterface()}getMeasure(){return this.obj.measure.getMusicInterface()}};d(Bc,"Name","RhythmColumn");var ss=Bc,Gc=class Gc extends xt{constructor(e){super(Gc.Name);this.obj=e}getMusicObject(){return this.obj}getDocument(){return this.obj.doc.getMusicInterface()}getMeasures(){return this.obj.getMeasures().map(e=>e.getMusicInterface())}getNotationLines(){return this.obj.getNotationLines().map(e=>Fh(e))}};d(Gc,"Name","ScoreRow");var Is=Gc,Vc=class Vc extends xt{constructor(e){super(Vc.Name);this.obj=e}getMusicObject(){return this.obj}getInstrument(){return this.obj.instrument}};d(Vc,"Name","ScoreRowGroup");var ws=Vc,qc=class qc extends xt{constructor(e){super(qc.Name);this.obj=e}getMusicObject(){return this.obj}getId(){return this.obj.id}getName(){return this.obj.name.length>0?this.obj.name:void 0}getRow(){return this.obj.row.getMusicInterface()}};d(qc,"Name","Staff");var vs=qc,Wc=class Wc extends xt{constructor(e){super(Wc.Name);this.obj=e}getMusicObject(){return this.obj}getId(){return this.obj.id}getName(){return this.obj.name.length>0?this.obj.name:void 0}getRow(){return this.obj.row.getMusicInterface()}};d(Wc,"Name","Tab");var Ss=Wc,Uc=class Uc extends xt{constructor(e){super(Uc.Name);this.obj=e}getMusicObject(){return this.obj}getStaff(){return this.obj.staff.getMusicInterface()}};d(Uc,"Name","StaffSignature");var Ko=Uc,zc=class zc extends xt{constructor(e){super(zc.Name);this.obj=e}getMusicObject(){return this.obj}getTab(){return this.obj.tab.getMusicInterface()}};d(zc,"Name","TabSignature");var Jo=zc,Yc=class Yc extends xt{constructor(e){super(Yc.Name);this.obj=e}getMusicObject(){return this.obj}getMeasure(){return this.obj.measure.getMusicInterface()}getTab(){return this.obj.tab.getMusicInterface()}};d(Yc,"Name","TabRhythm");var Cs=Yc,Hc=class Hc extends xt{constructor(e){super(Hc.Name);this.obj=e}getMusicObject(){return this.obj}getText(){return this.obj.getText()}};d(Hc,"Name","SpecialText");var as=Hc,$c=class $c extends xt{constructor(e){super($c.Name);this.obj=e}getMusicObject(){return this.obj}getText(){return this.obj.getText()}};d($c,"Name","Text");var Zo=$c,Zc=class Zc extends xt{constructor(e){super(Zc.Name);this.obj=e}getMusicObject(){return this.obj}getText(){return this.obj.getText()}};d(Zc,"Name","Lyrics");var As=Zc,Xc=class Xc extends xt{constructor(e){super(Xc.Name);this.obj=e}getMusicObject(){return this.obj}};d(Xc,"Name","ExtensionLine");var bs=Xc;function Cr(i,t,e){if(!i)throw new N(6,`Invalid arg: ${t} = ${e}`)}function Rs(i,t){if(i==null)throw new TypeError(t);return i}var Ms=class Ms{constructor(t,e){d(this,"player");Cr(t instanceof Zr,"doc",t),Cr(y.isFunctionOrUndefined(e),"playStateChangeListener",e),this.player=new oc,this.player.setDocument(t.getMusicObject()),this.player.setCursorPositionChangeListener(r=>{t.getMusicObject().updateCursorRect(r)}),e&&this.player.setPlayStateChnageListener(e)}static stopAll(){this.currentlyPlaying.forEach(t=>t.stop()),za()}play(){return Ms.currentlyPlaying.add(this),this.player.play(),this}pause(){return this.player.pause(),this}stop(){return this.player.stop(),Ms.currentlyPlaying.delete(this),this}};d(Ms,"currentlyPlaying",new Ws);var Jn=Ms,Bh=class{constructor(){d(this,"ctx");this.ctx=new Ka(this)}setDocument(t){return Cr(y.isUndefined(t)||t instanceof Zr,"doc",t),this.ctx.setDocument(t),this}setCanvas(t){return t=Rs($.Dom.getCanvas(t),typeof t=="string"?"Cannot set render canvas because invalid canvas id: "+t:"Cannot set render canvas because given canvas is undefined."),this.ctx.setCanvas(t),this}setScoreEventListener(t){Cr(y.isFunctionOrUndefined(t),"scoreEventListener",t),this.ctx.setScoreEventListener(t)}hilightObject(t){this.ctx.hilightObject(t==null?void 0:t.getMusicObject())}hilightStaffPos(t){this.ctx.hilightStaffPos(t?{scoreRow:t.scoreRow.getMusicObject(),diatonicId:t.diatonicId}:void 0)}draw(){try{this.ctx.draw()}catch(t){console.log("Draw failed in music render context!",t)}}},we=class we{constructor(){d(this,"playButton");d(this,"stopButton");d(this,"playStopButton");d(this,"pauseButton");d(this,"onPlay");d(this,"onStop");d(this,"onPlayStop");d(this,"onPause");d(this,"playLabel","Play");d(this,"stopLabel","Stop");d(this,"pauseLabel","Pause");d(this,"playState",2);d(this,"player");this.onPlay=()=>{var t;return(t=this.player)==null?void 0:t.play()},this.onStop=()=>{var t;return(t=this.player)==null?void 0:t.stop()},this.onPlayStop=()=>{var t,e;this.playState===0?(t=this.player)==null||t.stop():(e=this.player)==null||e.play()},this.onPause=()=>{var t;return(t=this.player)==null?void 0:t.pause()},this.updateButtons()}setDocument(t){return Cr(y.isUndefined(t)||t instanceof Zr,"doc",t),this.onStop(),t?this.player=new Jn(t,e=>{this.playState=e,this.updateButtons()}):this.player=void 0,this.updateButtons(),this}detachDocument(){this.setDocument(void 0)}updateButtons(){this.playButton&&(this.playButton.disabled=this.player?this.playState===0:!0,this.playButton.innerText=this.playLabel),this.stopButton&&(this.stopButton.disabled=this.player?this.playState===2:!0,this.stopButton.innerText=this.stopLabel),this.playStopButton&&(this.playStopButton.disabled=!this.player,this.playStopButton.innerText=this.playState===0?this.stopLabel:this.playLabel),this.pauseButton&&(this.pauseButton.disabled=this.player?this.playState!==0:!0,this.pauseButton.innerText=this.pauseLabel)}setPlayButton(t,e){return Cr(y.isStringOrUndefined(e),"btnLabel",e),we.removeOnClickListeners(this.playButton,this.onPlay),this.playButton=Rs($.Dom.getButton(t),"Play button required!"),this.playLabel=e!=null?e:"Play",we.removeOnClickListeners(this.playButton,"all"),we.addOnClickListener(this.playButton,this.onPlay),this.updateButtons(),this}setStopButton(t,e){return Cr(y.isStringOrUndefined(e),"btnLabel",e),we.removeOnClickListeners(this.stopButton,this.onStop),this.stopButton=Rs($.Dom.getButton(t),"Stop button required!"),this.stopLabel=e!=null?e:"Stop",we.removeOnClickListeners(this.stopButton,"all"),we.addOnClickListener(this.stopButton,this.onStop),this.updateButtons(),this}setPlayStopButton(t,e,r){return Cr(y.isStringOrUndefined(e),"playLabel",e),Cr(y.isStringOrUndefined(r),"stopLabel",r),we.removeOnClickListeners(this.playStopButton,this.onPlayStop),this.playStopButton=Rs($.Dom.getButton(t),"Play/stop button required!"),this.playLabel=e!=null?e:"Play",this.stopLabel=r!=null?r:"Stop",we.removeOnClickListeners(this.playStopButton,"all"),we.addOnClickListener(this.playStopButton,this.onPlayStop),this.updateButtons(),this}setPauseButton(t,e){return Cr(y.isStringOrUndefined(e),"btnLabel",e),we.removeOnClickListeners(this.pauseButton,this.onPause),this.pauseButton=Rs($.Dom.getButton(t),"Pause button required!"),this.pauseLabel=e!=null?e:"Pause",we.removeOnClickListeners(this.pauseButton,"all"),we.addOnClickListener(this.pauseButton,this.onPause),this.updateButtons(),this}static removeOnClickListeners(t,e){if(!t)return;let r=this.savedOnClickListeners.getOrDefault(t,[]);r=r.filter(n=>e===n||e==="all"?(t.removeEventListener("click",n),!1):!0),this.savedOnClickListeners.set(t,r)}static addOnClickListener(t,e){Cr(y.isFunction(e),"onClick",e),t.addEventListener("click",e),this.savedOnClickListeners.getOrCreate(t,[]).push(e)}};d(we,"savedOnClickListeners",new lt);var Gh=we;Ii();var Yh={};en(Yh,{createAll:()=>a0,createAndanteByDiabelli:()=>qh,createCanonInD:()=>Wh,createFrereJacques:()=>Uh,createGreensleeves:()=>zh});function qh(){return new Ar().setScoreConfiguration("guitarTreble").setHeader("Andante","A. Diabelli").addMeasure().setKeySignature("D","Major").setTimeSignature("3/4").setTempo(80).addRest(0,"8n",{staffPos:"G4"}).addAnnotation("dynamics","p").addNote(0,"F#4","8n",{stem:"up"}).addNote(0,"G4","8n").addConnective("slur",2,"below").addNote(0,"F#4","8n").addNote(0,"E4","8n").addNote(0,"D4","8n").addNote(1,"D3","2.",{stem:"down"}).addMeasure().addNote(0,"C#4","8n").addConnective("slur",2,"below").addNote(0,"D4","8n").addNote(0,"E4","8n").addNote(0,"F#4","8n").addNote(0,"G4","4n").addNote(1,"A2","2.").addMeasure().addRest(0,"8n",{staffPos:"B3"}).addAnnotation("dynamics","f").addNote(0,"A3","8n").addNote(0,"G#3","8n").addConnective("slur",2,"below").addNote(0,"A3","8n").addNote(0,"B3","8n").addNote(0,"C#4","8n").addNote(1,"A2","2.").endRow().addMeasure().addNote(0,"D4","8n",{string:3}).addNote(0,"E4","8n").addNote(0,"F#4","8n").addNote(0,"G4","8n").addNote(0,"A4","4n").addNote(1,"D3","2.").addMeasure().addRest(0,"8n",{staffPos:"G4"}).addAnnotation("dynamics","p").addNote(0,"F#4","8n").addNote(0,"G4","8n").addConnective("slur",2,"below").addNote(0,"F#4","8n").addNote(0,"E4","8n").addNote(0,"D4","8n").addNote(1,"D3","2.").addMeasure().addNote(0,"C#4","8n").addConnective("slur",2,"below").addNote(0,"D4","8n").addNote(0,"E4","8n").addNote(0,"F#4","8n").addNote(0,"G4","4n").addNote(1,"A2","2.").endRow().addMeasure().addRest(0,"8n",{staffPos:"B3"}).addAnnotation("dynamics","f").addNote(0,"A3","8n").addNote(0,"G#3","8n").addConnective("slur",2,"below").addNote(0,"A3","8n").addNote(0,"B3","8n").addNote(0,"C#4","8n").addNote(1,"A2","2.").addMeasure().addNote(0,"D4","4n").addRest(1,"4n",{staffPos:"D3"}).addNote(0,"D3","4n").addNote(1,"D3","4n").addRest(1,"4n",{staffPos:"B3"}).addNavigation("endRepeat").addMeasure().addRest(0,"8n",{staffPos:"D4"}).addAnnotation("dynamics","f").addNote(0,"D4","8n").addNote(0,"E4","8n").addConnective("slur",2,"below").addNote(0,"D4","8n").addNote(0,"C#4","8n").addNote(0,"B3","8n").addNote(1,"E2","2.").endRow().addMeasure().addNote(0,"C#4","8n").addConnective("slur",2,"below").addNote(0,"D4","8n").addNote(0,"E4","8n").addNote(0,"F#4","8n").addNote(0,"E4","4n").addNote(1,"A2","2.").addMeasure().addRest(0,"8n",{staffPos:"B3"}).addAnnotation("dynamics","p").addNote(0,"E3","8n").addNote(0,"D#3","8n").addConnective("slur",2,"below").addNote(0,"E3","8n").addNote(0,"F#3","8n").addNote(0,"G#3","8n").addNote(1,"E2","2.").addMeasure().addNote(0,"A3","8n").addConnective("slur",2,"below").addNote(0,"G#3","8n").addNote(0,"A3","8n").addNote(0,"B3","8n").addNote(0,"C#4","4n").addNote(1,"A2","2.").endRow().addMeasure().addRest(0,"8n",{staffPos:"G4"}).addAnnotation("dynamics","f").addNote(0,"G4","8n").addNote(0,"A4","8n").addConnective("slur",2,"below").addNote(0,"G4","8n").addNote(0,"F#4","8n").addNote(0,"E4","8n").addNote(1,"A2","2.").addMeasure().addNote(0,"D4","8n").addNote(0,"C#4","8n").addNote(0,"D4","8n").addNote(0,"E4","8n").addNote(0,"F#4","4n").addNote(1,"D3","2.").addMeasure().addRest(0,"8n",{staffPos:"B3"}).addAnnotation("dynamics","ff").addNote(0,"A3","8n").addNote(0,"G#3","8n").addConnective("slur",2,"below").addNote(0,"A3","8n").addNote(0,"B3","8n").addNote(0,"C#4","8n").addNote(1,"A2","2.").addMeasure().addNote(0,"D4","4n").addRest(1,"4n",{staffPos:"D3"}).addNote(0,"D3","4n").addNote(1,"D3","4n").addRest(1,"4n",{staffPos:"B3"}).endSong().getDocument()}function Wh(){return new Ar().setHeader("Canon in D","Pachelbel").setScoreConfiguration([{type:"staff",clef:"G",voiceId:0,instrument:"Piano"},{type:"staff",clef:"F",voiceId:1,instrument:"Piano"}]).addMeasure().setKeySignature("D Major").setTimeSignature("4/4").setTempo(50,"2n").completeRests(0).addNote(1,["D3","F#3","A3","D4"],"8n").addNote(1,["A2","C#3","E3","A3"],"8n").addMeasure({showNumber:!0}).completeRests(0).addNote(1,["B2","D3","F#3","B3"],"8n").addNote(1,["F#2","A2","C#3","F#3"],"8n").addMeasure().completeRests(0).addNote(1,["G2","B2","D3","G3"],"8n").addNote(1,["D2","F#2","A2","D3"],"8n").addMeasure({showNumber:!0}).completeRests(0).addNote(1,["G2","B2","D3","G3"],"8n").addNote(1,["A2","C#3","E3","A3"],"8n").addMeasure().addNote(0,["F#5","E5"],"2n").addNote(1,["D3","F#3","A3","D4"],"8n").addNote(1,["A2","C#3","E3","A3"],"8n").endRow().addMeasure({showNumber:!0}).addNote(0,["D5","C#5"],"2n").addNote(1,["B2","D3","F#3","B3"],"8n").addNote(1,["F#2","A2","C#3","F#3"],"8n").addMeasure().addNote(0,["B4","A4"],"2n").addNote(1,["G2","B2","D3","G3"],"8n").addNote(1,["D2","F#2","A2","D3"],"8n").addMeasure({showNumber:!0}).addNote(0,["B4","C#5"],"2n").addNote(1,["G2","B2","D3","G3"],"8n").addNote(1,["A2","C#3","E3","A3"],"8n").addMeasure().addChord(0,["F#5","D5"],"2n").addChord(0,["E5","C#5"],"2n").addNote(1,["D3","F#3","A3","D4"],"8n").addNote(1,["A2","C#3","E3","A3"],"8n").addMeasure({showNumber:!0}).addChord(0,["D5","B4"],"2n").addChord(0,["C#5","A4"],"2n").addNote(1,["B2","D3","F#3","B3"],"8n").addNote(1,["F#2","A2","C#3","F#3"],"8n").endRow().addMeasure({showNumber:!1}).addChord(0,["B4","G4"],"2n").addChord(0,["A4","F#4"],"2n").addNote(1,["G2","B2","D3","G3"],"8n").addNote(1,["D2","F#2","A2","D3"],"8n").addMeasure({showNumber:!0}).addChord(0,["B4","G4"],"2n").addChord(0,["C#5","A4"],"2n").addNote(1,["G2","B2","D3","G3"],"8n").addNote(1,["A2","C#3","E3","A3"],"8n").addMeasure().addNote(0,["D4","F#4","A4","G4"],"4n").addNote(1,["D3","A2"],"2n").addMeasure({showNumber:!0}).addNote(0,["F#4","D4","F#4","E4"],"4n").addNote(1,["B2","F#2"],"2n").addMeasure().addNote(0,["D4","B3","D4","A4"],"4n").addNote(1,["G2","D2"],"2n").addMeasure({showNumber:!0}).addNote(0,["G4","B4","A4","G4"],"4n").addNote(1,["G2","A2"],"2n").addMeasure().addNote(0,["F#4","D4","E4","C#5"],"4n").addNote(1,["D3","A2"],"2n").endRow().addMeasure({showNumber:!0}).addNote(0,["D5","F#5","A5","A4"],"4n").addNote(1,["B2","F#2"],"2n").addMeasure().addNote(0,["B4","G4","A4","F#4"],"4n").addNote(1,["G2","D2"],"2n").addMeasure({showNumber:!0}).addNote(0,["D4","D5","C#5"],"4n").addRest(0,"4n").addNote(1,["G2","A2"],"2n").addMeasure().addNote(0,["D5","C#5","D5","D4"],"8n").addNote(0,["C#4","A4","E4","F#4"],"8n").addNote(1,["D3","A2"],"2n").addMeasure({showNumber:!0}).addNote(0,["D4","D5","C#5","B4"],"8n").addNote(0,["C#5","F#5","A5","B5"],"8n").addNote(1,["B2","F#2"],"2n").addMeasure().addNote(0,["G5","F#5","E5","G5"],"8n").addNote(0,["F#5","E5","D5","C#5"],"8n").addNote(1,["G2","D2"],"2n").endRow().addMeasure({showNumber:!0}).addNote(0,["B4","A4","G4","F#4"],"8n").addNote(0,["E4","G4","F#4","E4"],"8n").addNote(1,["G2","A2"],"2n").addMeasure().addNote(0,["D4","E4","F#4","G4"],"8n").addNote(0,["A4","E4","A4","G4"],"8n").addNote(1,["D3","A2"],"2n").addMeasure({showNumber:!0}).addNote(0,["F#4","B4","A4","G4"],"8n").addNote(0,["A4","G4","F#4","E4"],"8n").addNote(1,["B2","F#2"],"2n").addMeasure().addNote(0,["D4","B3","B4","C#5"],"8n").addNote(0,["D5","C#5","B4","A4"],"8n").addNote(1,["G2","D2"],"2n").addMeasure({showNumber:!0}).addNote(0,["G4","F#4","E4","B4"],"8n").addNote(0,["A4","B4","A4","G4"],"8n").addNote(1,["G2","A2"],"2n").endRow().addMeasure({showNumber:!1}).addNote(0,"F#4","4n").addNote(0,"F#5","4n").addNote(0,"E5","2n").addNote(1,["D3","A2"],"2n").addMeasure({showNumber:!0}).addRest(0,"4n",{staffPos:"B4"}).addNote(0,"D5","4n").addNote(0,"F#5","2n").addNote(1,["B2","F#2"],"2n").addMeasure().addNote(0,["B5","A5"],"2n").addNote(1,["G2","D2"],"2n").addMeasure({showNumber:!0}).addNote(0,["B5","C#6"],"2n").addNote(1,["G2","A2"],"2n").addMeasure().addNote(0,["D6","D5"],"4n").addNote(0,"C#5","2n").addNote(1,["D3","A2"],"2n").addMeasure({showNumber:!0}).addRest(0,"4n",{staffPos:"B4"}).addNote(0,"B4","4n").addNote(0,"D5","2n").addNote(1,["B2","F#2"],"2n").addMeasure().addNote(0,"D5","2n").addRest(0,"4n",{staffPos:"B4"}).addNote(0,"D5","4n").addNote(1,["G2","D2"],"2n").addMeasure({showNumber:!0}).addNote(0,["D5","F#5","E5","A5"],"4n").addNote(1,["G2","A2"],"2n").endRow().addMeasure({showNumber:!1}).addNote(0,"A5","8n").addNote(0,["F#5","G5"],"16n").addNote(0,"A5","8n").addNote(0,["F#5","G5"],"16n").addNote(0,["A5","A4","B4","C#5"],"16n").addNote(0,["D5","E5","F#5","G5"],"16n").addNote(1,["D3","A2"],"2n").addMeasure({showNumber:!0}).addNote(0,"F#5","8n").addNote(0,["D5","E5"],"16n").addNote(0,"F#5","8n").addNote(0,["F#4","G4"],"16n").addNote(0,["A4","B4","A4","G4"],"16n").addNote(0,["A4","F#4","G4","A4"],"16n").addNote(1,["B2","F#2"],"2n").addMeasure().addNote(0,"G4","8n").addNote(0,["B4","A4"],"16n").addNote(0,"G4","8n").addNote(0,["F#4","E4"],"16n").addNote(0,["F#4","E4","D4","E4"],"16n").addNote(0,["F#4","G4","A4","B4"],"16n").addNote(1,["G2","D2"],"2n").endRow().addMeasure({showNumber:!0}).addNote(0,"G4","8n").addNote(0,["B4","A4"],"16n").addNote(0,"B4","8n").addNote(0,["C#5","D5"],"16n").addNote(0,["A4","B4","C#5","D5"],"16n").addNote(0,["E5","F#5","G5","A5"],"16n").addNote(1,["G2","A2"],"2n").addMeasure().addNote(0,"F#5","8n").addNote(0,["D5","E5"],"16n").addNote(0,"F#5","8n").addNote(0,["E5","D5"],"16n").addNote(0,["E5","C#5","D5","E5"],"16n").addNote(0,["F#5","E5","D5","C#5"],"16n").addNote(1,["D3","A2"],"2n").addMeasure({showNumber:!0}).addNote(0,"D5","8n").addNote(0,["B4","C#5"],"16n").addNote(0,"D5","8n").addNote(0,["D4","E4"],"16n").addNote(0,["F#4","G4","F#4","E4"],"16n").addNote(0,["F#4","D5","C#5","D5"],"16n").addNote(1,["B2","F#2"],"2n").endRow().addMeasure({showNumber:!1}).addNote(0,"B4","8n").addNote(0,["D5","C#5"],"16n").addNote(0,"B4","8n").addNote(0,["A4","G4"],"16n").addNote(0,["A4","G4","F#4","G4"],"16n").addNote(0,["A4","B4","C#5","D5"],"16n").addNote(1,["G2","D2"],"2n").addMeasure({showNumber:!0}).addNote(0,"B4","8n").addNote(0,["D5","C#5"],"16n").addNote(0,"D5","8n").addNote(0,["C#5","B4"],"16n").addNote(0,["C#5","D5","E5","D5"],"16n").addNote(0,["C#5","D5","B4","C#5"],"16n").addNote(1,["G2","A2"],"2n").addMeasure().addNavigation("startRepeat").addNote(0,"D5","4.").addNote(0,"A5","8n").addNote(0,["A5","B5","A5","G5"],"8n").addNote(1,["D3","A2"],"2n").addMeasure({showNumber:!0}).addNote(0,"F#5","4.").addNote(0,"F#5","8n").addNote(0,["F#5","G5","F#5","E5"],"8n").addNote(1,["B2","F#2"],"2n").endRow().addMeasure({showNumber:!1}).addNote(0,"D5","4.").addNote(0,"D5","8n").addNote(0,["D5","A5"],"4n").addNote(1,["G2","D2"],"2n").addMeasure({showNumber:!0}).addNote(0,["D5","C5","B5","C5"],"8n").addNote(0,"C#5","2n").addNote(1,["G2","A2"],"2n").addNavigation("endRepeat").addMeasure().addNote(0,"D5","1n").addNote(1,"D3","1n").getDocument()}function Uh(){return new Ar().setHeader("Fr\xE8re Jacques","Traditional").setScoreConfiguration([{type:"staff",clef:"G",voiceId:0,instrument:"!{Piano"},{type:"staff",clef:"F",voiceId:1,instrument:"!{Piano"}]).setMeasuresPerRow(2).addMeasure().setKeySignature("D Major").setTimeSignature("4/4").addNote(0,"D4","4n",{stem:"up"}).addLyrics(1,"4n","Are").addNote(0,"E4","4n").addLyrics(1,"4n","you").addNote(0,"F#4","4n").addLyrics(1,"4n","sleep",{hyphen:"-"}).addNote(0,"D4","4n").addLyrics(1,"4n","ing?").addRest(1,"1n",{staffPos:"F3"}).addMeasure().addNote(0,"D4","4n").addLyrics(1,"4n","Are").addNote(0,"E4","4n").addLyrics(1,"4n","you").addNote(0,"F#4","4n").addLyrics(1,"4n","sleep",{hyphen:"-"}).addNote(0,"D4","4n").addLyrics(1,"4n","ing?").addRest(1,"1n",{staffPos:"F3"}).addMeasure().addNavigation("startRepeat").addNote(0,"F#4","4n").addLyrics(1,"4n","Bro",{hyphen:"-"}).addNote(0,"G4","4n").addLyrics(1,"4n","ther").addNote(0,"A4","2n").addLyrics(1,"4n","John?").addNote(1,"D3","4n",{stem:"down"}).addLyricsTo(1,1,"4n","Are").addNote(1,"E3","4n").addLyricsTo(1,1,"4n","you").addNote(1,"F#3","4n").addLyricsTo(1,1,"4n","sleep",{hyphen:"-"}).addNote(1,"D3","4n").addLyricsTo(1,1,"4n","ing?").addMeasure().addNote(0,"F#4","4n").addLyrics(1,"4n","Bro",{hyphen:"-"}).addNote(0,"G4","4n").addLyrics(1,"4n","ther").addNote(0,"A4","2n").addLyrics(1,"4n","John?").addNote(1,"D3","4n").addLyricsTo(1,1,"4n","Are").addNote(1,"E3","4n").addLyricsTo(1,1,"4n","you").addNote(1,"F#3","4n").addLyricsTo(1,1,"4n","sleep",{hyphen:"-"}).addNote(1,"D3","4n").addLyricsTo(1,1,"4n","ing?").addMeasure().addNote(0,"A4","8n").addLyrics(1,"8n","Morn",{hyphen:"-"}).addNote(0,"B4","8n").addLyrics(1,"8n","ing").addNote(0,"A4","8n").addLyrics(1,"8n","bells").addNote(0,"G4","8n").addLyrics(1,"8n","are").addNote(0,"F#4","4n").addLyrics(1,"4n","ring",{hyphen:"-"}).addNote(0,"D4","4n").addLyrics(1,"4n","ing!").addNote(1,"F#3","4n").addLyricsTo(1,1,"4n","Bro",{hyphen:"-"}).addNote(1,"G3","4n").addLyricsTo(1,1,"4n","ther").addNote(1,"A3","2n").addLyricsTo(1,1,"2n","John?").addMeasure().addNote(0,"A4","8n").addLyrics(1,"8n","Morn",{hyphen:"-"}).addNote(0,"B4","8n").addLyrics(1,"8n","ing").addNote(0,"A4","8n").addLyrics(1,"8n","bells").addNote(0,"G4","8n").addLyrics(1,"8n","are").addNote(0,"F#4","4n").addLyrics(1,"4n","ring",{hyphen:"-"}).addNote(0,"D4","4n").addLyrics(1,"4n","ing!").addNote(1,"F#3","4n").addLyricsTo(1,1,"4n","Bro",{hyphen:"-"}).addNote(1,"G3","4n").addLyricsTo(1,1,"4n","ther").addNote(1,"A3","2n").addLyricsTo(1,1,"2n","John?").addMeasure().addNote(0,"D4","4n").addLyrics(1,"4n","Ding").addChord(0,["C#4","A4"],"4n").addLyrics(1,"4n","ding").addNote(0,"D4","4n").addLyrics(1,"4n","dong!").addRest(0,"4n").addNote(1,"A3","8n").addLyricsTo(1,1,"8n","Morn",{hyphen:"-"}).addNote(1,"B3","8n").addLyricsTo(1,1,"8n","ing").addNote(1,"A3","8n").addLyricsTo(1,1,"8n","bells").addNote(1,"G3","8n").addLyricsTo(1,1,"8n","are").addNote(1,"F#3","4n").addLyricsTo(1,1,"4n","ring",{hyphen:"-"}).addNote(1,"D3","4n").addLyricsTo(1,1,"4n","ing!").addMeasure().addNote(0,"D4","4n").addLyrics(1,"4n","Ding").addChord(0,["C#4","A4"],"4n").addLyrics(1,"4n","ding").addNote(0,"D4","4n").addLyrics(1,"4n","dong!").addRest(0,"4n").addNote(1,"A3","8n").addLyricsTo(1,1,"8n","Morn",{hyphen:"-"}).addNote(1,"B3","8n").addLyricsTo(1,1,"8n","ing").addNote(1,"A3","8n").addLyricsTo(1,1,"8n","bells").addNote(1,"G3","8n").addLyricsTo(1,1,"8n","are").addNote(1,"F#3","4n").addLyricsTo(1,1,"4n","ring",{hyphen:"-"}).addNote(1,"D3","4n").addLyricsTo(1,1,"4n","ing!").addMeasure().setMeasuresPerRow(4).addNote(0,"D4","4n").addLyrics(1,"4n","Are").addNote(0,"E4","4n").addLyrics(1,"4n","you").addNote(0,"F#4","4n").addLyrics(1,"4n","sleep",{hyphen:"-"}).addNote(0,"D4","4n").addLyrics(1,"4n","ing?").addNote(1,"D3","4n").addLyricsTo(1,1,"4n","Ding").addChord(1,["C#3","A3"],"4n").addLyricsTo(1,1,"4n","ding").addNote(1,"D3","4n").addLyricsTo(1,1,"4n","dong!").addRest(1,"4n").addMeasure().addNavigation("endRepeat").addNote(0,"D4","4n").addLyrics(1,"4n","Are").addNote(0,"E4","4n").addLyrics(1,"4n","you").addNote(0,"F#4","4n").addLyrics(1,"4n","sleep",{hyphen:"-"}).addNote(0,"D4","4n").addLyrics(1,"4n","ing?").addNote(1,"D3","4n").addLyricsTo(1,1,"4n","Ding").addChord(1,["C#3","A3"],"4n").addLyricsTo(1,1,"4n","ding").addNote(1,"D3","4n").addLyricsTo(1,1,"4n","dong!").addRest(1,"4n").addMeasure().addNote(0,"F#4","4n").addLyrics(1,"4n","YES").addNote(0,"D4","4n").addLyrics(1,"4n","I'm").addNote(0,"F#4","4n").addLyrics(1,"4n","SLEEP",{hyphen:"-"}).addNote(0,"D4","4n").addLyrics(1,"4n","ING").addNote(1,"A3","4n").addNote(1,"F#3","4n").addNote(1,"A3","4n").addNote(1,"F#3","4n").addMeasure().addNote(0,"A3","4n").addLyrics(1,"4n","Please").addNote(0,"C#4","8n").addLyrics(1,"8n","GO").addNote(0,"C#4","8n").addLyrics(1,"8n","A",{hyphen:"-"}).addNote(0,"D4","2n").addLyrics(1,"4n","WAY!").addNote(1,"D3","4n").addNote(1,"E3","4n").addNote(1,"F#3","2n").getDocument()}function zh(){return new Ar().setScoreConfiguration("guitarTreble").setHeader("Greensleeves").addMeasure().setKeySignature("C","Major").setTimeSignature("6/8").setTempo(140).addNote(0,"A3","8n").addMeasure().addNavigation("startRepeat").addNote(0,"C4","4n",{stem:"up"}).addLabel("chord","Am").addNote(0,"D4","8n").addNote(0,"E4","8.").addNote(0,"F4","16n").addNote(0,"E4","8n").addNote(1,"A2","8n",{stem:"down"}).addNote(1,"E3","4n").addNote(1,"A2","8n").addNote(1,"E3","4n").addMeasure().addNote(0,"D4","4n",{stem:"up"}).addLabel("chord","G").addNote(0,"B3","8n").addNote(0,"G3","8.").addLabel("chord","Em").addNote(0,"A3","16n").addNote(0,"B3","8n").addNote(1,"G2","8n",{stem:"down"}).addNote(1,"D3","4n").addNote(1,"E2","8n").addNote(1,"B2","4n").addMeasure().addNote(0,"C4","4n",{stem:"up"}).addLabel("chord","Am").addNote(0,"A3","8n").addNote(0,"A3","8.").addLabel("chord","F").addNote(0,"G#3","16n").addNote(0,"A3","8n").addNote(1,"A2","8n",{stem:"down"}).addNote(1,"E3","4n").addNote(1,"F2","8n").addNote(1,"A2","4n").addMeasure().addNote(0,"B3","4n",{stem:"up"}).addLabel("chord","E").addNote(0,"G#3","8n").addNote(0,"E3","4n").addNote(0,"A3","8n").addNote(1,"E2","8n",{stem:"down"}).addNote(1,"B2","4n").addNote(1,"E2","8n").addNote(1,"B2","4n").endRow().addMeasure().addNote(0,"C4","4n",{stem:"up"}).addLabel("chord","Am").addNote(0,"D4","8n").addNote(0,"E4","8.").addNote(0,"F4","16n").addNote(0,"E4","8n").addNote(1,"A2","8n",{stem:"down"}).addNote(1,"E3","4n").addNote(1,"A2","8n").addNote(1,"E3","4n").addMeasure().addNote(0,"D4","4n",{stem:"up"}).addLabel("chord","G").addNote(0,"B3","8n").addNote(0,"G3","8.").addLabel("chord","Em").addNote(0,"A3","16n").addNote(0,"B3","8n").addNote(1,"G2","8n",{stem:"down"}).addNote(1,"D3","4n").addNote(1,"E2","8n").addNote(1,"B2","4n").addMeasure().addNote(0,"C4","8.",{stem:"up"}).addLabel("chord","Am").addNote(0,"B3","16n").addNote(0,"A3","8n").addNote(0,"G#3","8.").addLabel("chord","E").addNote(0,"F#3","16n").addNote(0,"G#3","8n").addNote(1,"A2","8n",{stem:"down"}).addNote(1,"E3","4n").addNote(1,"E2","8n").addNote(1,"B2","4n").addMeasure().addNote(0,"A3","4.",{stem:"up"}).addLabel("chord","Am").addNote(0,"A3","4.").addNote(1,"A2","8n",{stem:"down"}).addNote(1,"E3","8n").addNote(1,"C4","8n").addNote(1,"A2","4.").endRow().addMeasure().addChord(0,["C3","E3","G3","C4","G4"],"4.",{arpeggio:"up",stem:"up"}).addLabel("chord","C").addNote(0,"G4","8.").addNote(0,"F#4","16n").addNote(0,"E4","8n").addRest(1,"4.",{hide:!0}).addNote(1,"C3","8n",{stem:"down"}).addNote(1,"G3","4n").addMeasure().addNote(0,"D4","4n",{stem:"up"}).addLabel("chord","G").addNote(0,"B3","8n").addNote(0,"G3","8.").addLabel("chord","Em").addNote(0,"A3","16n").addNote(0,"B3","8n").addNote(1,"G2","8n",{stem:"down"}).addNote(1,"D3","4n").addNote(1,"E2","8n").addNote(1,"B2","4n").addMeasure().addNote(0,"C4","4n",{stem:"up"}).addLabel("chord","Am").addNote(0,"A3","8n").addNote(0,"A3","8.").addLabel("chord","F").addNote(0,"G#3","16n").addNote(0,"A3","8n").addNote(1,"A2","8n",{stem:"down"}).addNote(1,"E3","4n").addNote(1,"F2","8n").addNote(1,"A2","4n").addMeasure().addNote(0,"B3","4n",{stem:"up"}).addLabel("chord","E").addNote(0,"G#3","8n").addNote(0,"E3","4.").addNote(1,"E2","8n",{stem:"down"}).addNote(1,"B2","4n").addNote(1,"E2","8n").addNote(1,"B2","8n").addNote(1,"E3","8n").endRow().addMeasure().addNote(0,"G4","4.",{stem:"up"}).addLabel("chord","C").addNote(0,"G4","8.").addNote(0,"F#4","16n").addNote(0,"E4","8n").addNote(1,"C3","8n",{stem:"down"}).addNote(1,"G3","8n").addNote(1,"C4","8n").addNote(1,"C3","8n").addNote(1,"G3","4n").addMeasure().addNote(0,"D4","4n",{stem:"up"}).addLabel("chord","G").addNote(0,"B3","8n").addNote(0,"G3","8.").addLabel("chord","Em").addNote(0,"A3","16n").addNote(0,"B3","8n").addNote(1,"G2","8n",{stem:"down"}).addNote(1,"D3","4n").addNote(1,"E2","8n").addNote(1,"B2","4n").addMeasure().addNote(0,"C4","8.",{stem:"up"}).addLabel("chord","Am").addNote(0,"B3","16n").addNote(0,"A3","8n").addNote(0,"G#3","8.").addLabel("chord","E").addNote(0,"F#3","16n").addNote(0,"G#3","8n").addNote(1,"A2","8n",{stem:"down"}).addNote(1,"E3","4n").addNote(1,"E2","8n").addNote(1,"B2","4n").addMeasure().addNavigation("ending",1).addNavigation("endRepeat").addNote(0,"A3","4.",{stem:"up"}).addLabel("chord","Am").addNote(0,"A3","4n").addNote(0,"A3","8n").addNote(1,"A2","8n",{stem:"down"}).addNote(1,"E3","8n").addNote(1,"C4","8n").addNote(1,"A2","4.").addMeasure().addNavigation("ending",2).addNote(0,"A3","4.",{stem:"up"}).addLabel("chord","Am").addNote(0,"A3","4.").addFermata().addNote(1,"A2","8n",{stem:"down"}).addNote(1,"E3","8n").addNote(1,"C4","8n").addNote(1,"A2","4.").getDocument()}function a0(){return[qh(),Wh(),Uh(),zh()]}return Cg(c0);})();
211
+ /*! Bundled license information:
212
+
213
+ @tspro/ts-utils-lib/dist/index.mjs:
214
+ (*!
215
+ * TsUtilsLib v2.2.0 (esm)
216
+ * (c) 2023-2025 PahkaSoft
217
+ * Licensed under the MIT License
218
+ *)
219
+
220
+ tone/build/esm/core/Tone.js:
221
+ (**
222
+ * Tone.js
223
+ * @author Yotam Mann
224
+ * @license http://opensource.org/licenses/MIT MIT License
225
+ * @copyright 2014-2024 Yotam Mann
226
+ *)
227
+ */
228
+ //# sourceMappingURL=index.global.js.map