@tspro/web-music-score 5.4.2 → 5.5.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 (43) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/LICENSE +24 -0
  3. package/README.md +13 -6
  4. package/dist/audio/index.d.ts +1 -1
  5. package/dist/audio/index.js +1637 -5
  6. package/dist/audio/index.mjs +9 -6
  7. package/dist/audio-cg/index.js +17487 -46
  8. package/dist/audio-cg/index.mjs +7 -5
  9. package/dist/audio-synth/index.js +18434 -32
  10. package/dist/audio-synth/index.mjs +12 -7
  11. package/dist/{chunk-MMWSQGVR.mjs → chunk-2DCCUAGC.mjs} +3 -3
  12. package/dist/{chunk-CVYTUTL6.mjs → chunk-2PEB4HWS.mjs} +2 -2
  13. package/dist/{chunk-42IBAVOC.mjs → chunk-33HIE3HR.mjs} +18 -13
  14. package/dist/chunk-BMKUAUSJ.mjs +101 -0
  15. package/dist/chunk-PCQGQM63.mjs +18381 -0
  16. package/dist/chunk-T6TYLAJE.mjs +3766 -0
  17. package/dist/core/index.js +2 -2
  18. package/dist/core/index.mjs +4 -4
  19. package/dist/{guitar-CNOxM4ZK.d.ts → guitar-CarHGDAt.d.ts} +1 -1
  20. package/dist/iife/audio-cg.global.js +1 -1
  21. package/dist/iife/index.global.js +11 -11
  22. package/dist/{music-objects-DqoO-Sfv.d.mts → music-objects-CcJvZxS6.d.mts} +123 -96
  23. package/dist/{music-objects-T8u8bnNP.d.ts → music-objects-l5Ai97QA.d.ts} +125 -98
  24. package/dist/{note-RVXvpfyV.d.ts → note-CJuq5aBy.d.ts} +1 -1
  25. package/dist/pieces/index.d.mts +12 -6
  26. package/dist/pieces/index.d.ts +14 -8
  27. package/dist/pieces/index.js +25 -13
  28. package/dist/pieces/index.mjs +25 -14
  29. package/dist/react-ui/index.d.mts +1 -1
  30. package/dist/react-ui/index.d.ts +5 -5
  31. package/dist/react-ui/index.js +2163 -22
  32. package/dist/react-ui/index.mjs +18 -15
  33. package/dist/{scale-CUYFBo-8.d.ts → scale-DulPFco_.d.ts} +2 -2
  34. package/dist/score/index.d.mts +51 -3
  35. package/dist/score/index.d.ts +54 -6
  36. package/dist/score/index.js +4828 -872
  37. package/dist/score/index.mjs +1280 -729
  38. package/dist/{tempo-DwuZsv2T.d.ts → tempo-BnUjm25M.d.ts} +1 -1
  39. package/dist/theory/index.d.ts +6 -6
  40. package/dist/theory/index.js +2576 -136
  41. package/dist/theory/index.mjs +41 -49
  42. package/package.json +4 -5
  43. package/dist/chunk-ROBXPR34.mjs +0 -9
@@ -1,7 +1,7 @@
1
- /* WebMusicScore v5.4.2 | (c) 2023-2025 PahkaSoft | MIT License | Includes: Tone.js (MIT License) */
2
- "use strict";var WebMusicScore=(()=>{var Rs=Object.defineProperty,Kf=Object.defineProperties,Jf=Object.getOwnPropertyDescriptor,tg=Object.getOwnPropertyDescriptors,eg=Object.getOwnPropertyNames,Os=Object.getOwnPropertySymbols;var Xc=Object.prototype.hasOwnProperty,Lh=Object.prototype.propertyIsEnumerable;var Hc=(i,t)=>(t=Symbol[i])?t:Symbol.for("Symbol."+i),rg=i=>{throw TypeError(i)},jh=Math.pow,Zc=(i,t,e)=>t in i?Rs(i,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[t]=e,O=(i,t)=>{for(var e in t||(t={}))Xc.call(t,e)&&Zc(i,e,t[e]);if(Os)for(var e of Os(t))Lh.call(t,e)&&Zc(i,e,t[e]);return i},Q=(i,t)=>Kf(i,tg(t));var Xr=(i,t)=>{var e={};for(var r in i)Xc.call(i,r)&&t.indexOf(r)<0&&(e[r]=i[r]);if(i!=null&&Os)for(var r of Os(i))t.indexOf(r)<0&&Lh.call(i,r)&&(e[r]=i[r]);return e};var Qi=(i,t)=>{for(var e in t)Rs(i,e,{get:t[e],enumerable:!0})},ig=(i,t,e,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of eg(t))!Xc.call(i,n)&&n!==e&&Rs(i,n,{get:()=>t[n],enumerable:!(r=Jf(t,n))||r.enumerable});return i};var ng=i=>ig(Rs({},"__esModule",{value:!0}),i);var d=(i,t,e)=>Zc(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())}),og=function(i,t){this[0]=i,this[1]=t};var be=i=>{var t=i[Hc("asyncIterator")],e=!1,r,n={};return t==null?(t=i[Hc("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 og(new Promise(a=>{var c=t[o](s);c instanceof Object||rg("Object expected"),a(c)}),1)}}),n[Hc("iterator")]=()=>n,r("next"),"throw"in t?r("throw"):n.throw=o=>{throw o},"return"in t&&r("return"),n};var Ev={};Qi(Ev,{Audio:()=>Po,Core:()=>ou,Pieces:()=>kh,Score:()=>Dh,Theory:()=>fu});var Po={};Qi(Po,{addInstrument:()=>K_,getCurrentInstrument:()=>Q_,getInstrumentList:()=>$_,isMuted:()=>ev,linearToDecibels:()=>Xs,mute:()=>J_,playNote:()=>Ga,stop:()=>Va,unmute:()=>tv,useInstrument:()=>Ff});var fu={};Qi(fu,{AccidentalType:()=>au,BeamGrouping:()=>Si,Chord:()=>cu,DefaultGuitarNoteLabel:()=>sA,DefaultHandedness:()=>DA,DefaultPitchNotation:()=>nA,DefaultTuningName:()=>LA,GuitarNoteLabel:()=>Vs,GuitarNoteLabelList:()=>aA,Handedness:()=>hu,Interval:()=>co,KeySignature:()=>tr,Mode:()=>su,Note:()=>W,NoteLength:()=>er,NoteLengthProps:()=>Tt,PitchNotation:()=>Jr,PitchNotationList:()=>iA,RhythmProps:()=>Xt,Scale:()=>ei,ScaleFactory:()=>ee,ScaleType:()=>vi,SymbolSet:()=>Kr,TimeSignature:()=>ri,TimeSignatures:()=>lo,TuningNameList:()=>ho,Tuplet:()=>jr,alterTempoSpeed:()=>mu,getDefaultKeySignature:()=>qs,getDefaultScale:()=>IA,getDefaultTempo:()=>Hs,getDefaultTimeSignature:()=>Ys,getPitchNotationName:()=>oA,getScale:()=>Dr,getScaleFactory:()=>gl,getScaleFactoryList:()=>_A,getTempoString:()=>Zs,getTuningStrings:()=>Us,isNoteLength:()=>rr,isTupletRatio:()=>zs,validateGuitarNoteLabel:()=>cA,validateHandedness:()=>kA,validateIntervalQuality:()=>yA,validateNoteLength:()=>Lr,validatePitchNotation:()=>al,validateScaleType:()=>uo,validateTuningName:()=>lu,validateTupletRatio:()=>xl});var Ph=Object.defineProperty,sg=(i,t,e)=>t in i?Ph(i,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[t]=e,Je=(i,t)=>{for(var e in t)Ph(i,e,{get:t[e],enumerable:!0})},yt=(i,t,e)=>sg(i,typeof t!="symbol"?t+"":t,e),Fh={};Je(Fh,{assert:()=>wy,doesNotThrow:()=>Hb,doesThrow:()=>Yb,fail:()=>Ry,isArray:()=>Wy,isArrayOrUndefined:()=>Uy,isBigInt:()=>db,isBoolean:()=>eb,isBooleanOrUndefined:()=>rb,isDeepEqual:()=>Ey,isDefined:()=>jy,isEmptyArray:()=>zy,isEmptyArrayOrUndefined:()=>Hy,isEmptyObject:()=>By,isEmptyString:()=>$y,isEmptyStringOrUndefined:()=>Jy,isEnumValue:()=>ub,isEnumValueOrUndefined:()=>hb,isEven:()=>Vb,isFalse:()=>ob,isFalseOrUndefined:()=>sb,isFinite:()=>fb,isFloat:()=>gb,isFunction:()=>ab,isFunctionOrUndefined:()=>cb,isIncluded:()=>Ub,isIndex:()=>zb,isInfinity:()=>Rb,isInteger:()=>yb,isIntegerBetween:()=>Sb,isIntegerBetweenExclusive:()=>wb,isIntegerEq:()=>Ab,isIntegerGt:()=>Cb,isIntegerGte:()=>_b,isIntegerLt:()=>vb,isIntegerLte:()=>Ib,isIntegerOrUndefined:()=>xb,isMultipleOf:()=>qb,isNaNValue:()=>Ob,isNeg:()=>kb,isNegInfinity:()=>Eb,isNegZero:()=>Bb,isNonEmptyArray:()=>Yy,isNonEmptyArrayOrUndefined:()=>Zy,isNonEmptyString:()=>Qy,isNonEmptyStringOrUndefined:()=>tb,isNonNeg:()=>jb,isNonNull:()=>Py,isNonPos:()=>Lb,isNull:()=>ky,isNullish:()=>Ly,isNumber:()=>pb,isNumberBetween:()=>Nb,isNumberBetweenExclusive:()=>Tb,isNumberOrUndefined:()=>mb,isNumericString:()=>lb,isObject:()=>Fy,isObjectOrUndefined:()=>Vy,isOdd:()=>Gb,isPlainObject:()=>Gy,isPos:()=>Db,isPosInfinity:()=>Mb,isPosZero:()=>Fb,isPowerOfTwo:()=>Wb,isSafeInteger:()=>bb,isStrictEqual:()=>My,isString:()=>Xy,isStringOrUndefined:()=>Ky,isTrue:()=>ib,isTrueOrUndefined:()=>nb,isTypedObject:()=>qy,isUndefined:()=>Dy,isZero:()=>Pb,require:()=>Ny,requireDefined:()=>Ty,requireElement:()=>Oy,setErrorClass:()=>Sy});var Bh={};Je(Bh,{charCount:()=>vy,chunkString:()=>Ay,insertAt:()=>Cy,isString:()=>Wh,makeSentenceFromPascal:()=>Iy,removeAt:()=>_y,repeatString:()=>xy,replaceAt:()=>tu,stringify:()=>Zt,toCharArray:()=>by});var Gh={};Je(Gh,{deepEqual:()=>Ds,getCtorName:()=>Yh,hasProperties:()=>yy,isObject:()=>Ci});var y={};Je(y,{doesNotThrow:()=>fy,doesThrow:()=>my,isArray:()=>ke,isArrayOrUndefined:()=>Ag,isBigInt:()=>Gg,isBoolean:()=>Rg,isBooleanOrUndefined:()=>Mg,isDeepEqual:()=>so,isDefined:()=>pg,isEmptyArray:()=>Cg,isEmptyArrayOrUndefined:()=>vg,isEmptyObject:()=>fg,isEmptyString:()=>Sg,isEmptyStringOrUndefined:()=>Tg,isEnumValue:()=>Pg,isEnumValueOrUndefined:()=>Fg,isEven:()=>uy,isFalse:()=>kg,isFalseOrUndefined:()=>Lg,isFinite:()=>Ki,isFloat:()=>qg,isFunction:()=>Er,isFunctionOrUndefined:()=>jg,isIncluded:()=>dy,isIndex:()=>py,isInfinity:()=>Kg,isInteger:()=>Et,isIntegerBetween:()=>Uh,isIntegerBetweenExclusive:()=>Xg,isIntegerEq:()=>zg,isIntegerGt:()=>Yg,isIntegerGte:()=>Jc,isIntegerLt:()=>Hg,isIntegerLte:()=>Zg,isIntegerOrUndefined:()=>Ug,isMultipleOf:()=>hy,isNaNValue:()=>zh,isNeg:()=>ry,isNegInfinity:()=>ty,isNegZero:()=>ay,isNonEmptyArray:()=>_g,isNonEmptyArrayOrUndefined:()=>Ig,isNonEmptyString:()=>wg,isNonEmptyStringOrUndefined:()=>Og,isNonNeg:()=>ny,isNonNull:()=>mg,isNonPos:()=>iy,isNull:()=>lg,isNullish:()=>dg,isNumber:()=>le,isNumberBetween:()=>$g,isNumberBetweenExclusive:()=>Qg,isNumberOrUndefined:()=>Vg,isNumericString:()=>Bg,isObject:()=>Ci,isObjectOrUndefined:()=>gg,isOdd:()=>cy,isPlainObject:()=>yg,isPos:()=>ey,isPosInfinity:()=>Jg,isPosZero:()=>sy,isPowerOfTwo:()=>ly,isSafeInteger:()=>Wg,isStrictEqual:()=>ug,isString:()=>Wh,isStringOrUndefined:()=>Ng,isTrue:()=>Eg,isTrueOrUndefined:()=>Dg,isTypedObject:()=>bg,isUndefined:()=>hg,isZero:()=>oy,tryOr:()=>gy});var Vh={};Je(Vh,{forEachEnum:()=>cg,getEnumEntries:()=>qh,getEnumKey:()=>ag,getEnumKeys:()=>ks,getEnumValues:()=>Kc});function ks(i){return Object.keys(i).filter(t=>isNaN(Number(t)))}function Kc(i){return ks(i).map(t=>i[t])}function qh(i){return ks(i).map(t=>[t,i[t]])}function ag(i,t){return ks(i).find(e=>i[e]===t)}function cg(i,t){for(let[e,r]of qh(i))t(e,r)}function ug(i,t){return i===t}function so(i,t){return Ds(i,t)}function hg(i){return i===void 0}function lg(i){return i===null}function dg(i){return i==null}function pg(i){return i!==void 0}function mg(i){return i!==null}function Ci(i){return typeof i=="object"&&i!==null&&!ke(i)}function fg(i){return Ci(i)&&Object.keys(i).length===0}function gg(i){return i===void 0||Ci(i)}function yg(i){if(!Ci(i))return!1;let t=Object.getPrototypeOf(i);return t===Object.prototype||t===null}function bg(i,t){return Ci(i)&&t.every(e=>e in i)}function xg(i){return i instanceof Set}function ke(i){return!!i&&Object.prototype.toString.call(i)==="[object Array]"}function Ag(i){return i===void 0||ke(i)}function Cg(i){return ke(i)&&i.length===0}function _g(i){return ke(i)&&i.length>0}function vg(i){return ke(i)&&i.length===0||i===void 0}function Ig(i){return ke(i)&&i.length>0||i===void 0}function Wh(i){return typeof i=="string"}function Sg(i){return typeof i=="string"&&i.length===0}function wg(i){return typeof i=="string"&&i.length>0}function Ng(i){return i===void 0||typeof i=="string"}function Tg(i){return typeof i=="string"&&i.length===0||i===void 0}function Og(i){return typeof i=="string"&&i.length>0||i===void 0}function Rg(i){return typeof i=="boolean"}function Mg(i){return i===void 0||typeof i=="boolean"}function Eg(i){return i===!0}function Dg(i){return i===!0||i===void 0}function kg(i){return i===!1}function Lg(i){return i===!1||i===void 0}function Er(i){return typeof i=="function"}function jg(i){return i===void 0||typeof i=="function"}function Pg(i,t){return Kc(t).some(e=>e===i)}function Fg(i,t){return i===void 0||Kc(t).some(e=>e===i)}function Bg(i){if(typeof i!="string"||i.trim()==="")return!1;let t=+i;return Number.isFinite(t)}function Gg(i){return typeof i=="bigint"}function le(i){return typeof i=="number"}function Vg(i){return typeof i=="number"||i===void 0}function Ki(i){return typeof i=="number"&&Number.isFinite(i)}function qg(i){return Ki(i)&&!Et(i)}function Et(i){return typeof i=="number"&&Ki(i)&&i===Math.trunc(i)}function Wg(i){return Et(i)&&Number.isSafeInteger(i)}function Ug(i){return typeof i=="number"&&Ki(i)&&i===Math.trunc(i)||i===void 0}function zg(i,t){return Et(i)&&i===t}function Yg(i,t){return Et(i)&&le(t)&&i>t}function Jc(i,t){return Et(i)&&le(t)&&i>=t}function Hg(i,t){return Et(i)&&le(t)&&i<t}function Zg(i,t){return Et(i)&&le(t)&&i<=t}function Uh(i,t,e){return Et(i)&&le(t)&&le(e)&&i>=t&&i<=e}function Xg(i,t,e){return Et(i)&&le(t)&&le(e)&&i>t&&i<e}function $g(i,t,e){return le(i)&&le(t)&&le(e)&&i>=t&&i<=e}function Qg(i,t,e){return le(i)&&le(t)&&le(e)&&i>t&&i<e}function zh(i){return typeof i=="number"&&Number.isNaN(i)}function Kg(i){return i===1/0||i===-1/0}function Jg(i){return i===1/0}function ty(i){return i===-1/0}function ey(i){return typeof i=="number"&&i>0}function ry(i){return typeof i=="number"&&i<0}function iy(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}function sy(i){return typeof i=="number"&&i===0&&1/i===1/0}function ay(i){return typeof i=="number"&&i===0&&1/i===-1/0}function cy(i){return Et(i)&&Math.abs(i)%2===1}function uy(i){return Et(i)&&i%2===0}function hy(i,t){return typeof i=="number"&&typeof t=="number"&&i%t===0}function ly(i){return Et(i)&&i>0&&(i&i-1)===0}function dy(i,t){return ke(t)?t.includes(i):xg(t)?t.has(i):!1}function py(i,t){return ke(t)?Uh(i,0,t.length-1):Jc(i,0)}function my(i){try{return i(),!1}catch(t){return!0}}function fy(i){try{return i(),!0}catch(t){return!1}}function gy(i,t){try{return i()}catch(e){return Er(t)?t():t}}function yy(i,t){return Ci(i)&&t.every(e=>e in i)}function Ds(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)=>Ds(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)||!Ds(i[n],t[n]))return!1;return!0}function Yh(i){return i===null?"null":ke(i)?"Array":typeof i!="object"?typeof i:Object.prototype.toString.call(i).slice(8,-1)||"Object"}function by(i){return i.split("")}function xy(i,t){if(!Et(t)||t<0)throw new Error("repeatStr: Invalid repeatCount = "+t);return new Array(t+1).join(i)}function Ay(i,t){if(!Et(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 tu(i,t,e,r){if(!Et(e)||e<0)throw new Error("replaceAt: Invalid removeCount = "+e);if(!Et(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 Cy(i,t,e){return tu(i,t,0,e)}function _y(i,t,e){return tu(i,t,e,"")}function vy(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 Iy(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 Zt(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 zh(i)?"NaN":Ki(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=>Zt(s,t,e);if(ke(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=Yh(i),a=Object.entries(i).map(([c,u])=>`${n(c)}: ${n(u)}`);return a.length===0?`${s}{ }`:`${s}{ ${a.join(", ")} }`}return String(i)}var F=Zt,Hh=Error;function Sy(i){Hh=i!=null?i:Error}function z(...i){let t=i.join(", ");throw new Hh("Assertion Failed!"+(t===""?"":" "+t))}function wy(i,t){i||z(t)}function Ny(i,t){return i==null&&z(`Expected ${F(i)} not to be nullish`,t),i}function Ty(i,t){return i===void 0&&z(`Expected ${F(i)} not to be undefined`,t),i}function Oy(i,t,e){return y.isIndex(i,t)||z(`Expected ${i} to be index for array ${F(t)}`,e),t[i]}function Ry(i){z(i)}function My(i,t,e){return y.isStrictEqual(i,t)||z(`Expected ${F(i)} to ne strict equal to ${t}`,e),i}function Ey(i,t,e){return y.isDeepEqual(i,t)||z(`Expected ${F(i)} to deep equal with ${F(t)}`,e),i}function Dy(i,t){return y.isUndefined(i)||z(`Expected ${F(i)} to be undefined`,t),i}function ky(i,t){return y.isNull(i)||z(`Expected ${F(i)} to be null`,t),i}function Ly(i,t){return y.isNullish(i)||z(`Expected ${F(i)} to be null or undefined`,t),i}function jy(i,t){return y.isDefined(i)||z(`Expected ${F(i)} to be defined`,t),i}function Py(i,t){return y.isNonNull(i)||z(`Expected ${F(i)} to be defined`,t),i}function Fy(i,t){return y.isObject(i)||z(`Expected ${F(i)} to be object`,t),i}function By(i,t){return y.isEmptyObject(i)||z(`Expected ${F(i)} to be empty object`,t),i}function Gy(i,t){return y.isPlainObject(i)||z(`Expected ${F(i)} to be plain object`,t),i}function Vy(i,t){return y.isObjectOrUndefined(i)||z(`Expected ${F(i)} to be object or undefined`,t),i}function qy(i,t,e){return y.isTypedObject(i,t)||z(`Expected ${F(i)} to have keys ${F(t)}`,e),i}function Wy(i,t){return y.isArray(i)||z(`Expected ${F(i)} to be array`,t),i}function Uy(i,t){return y.isArrayOrUndefined(i)||z(`Expected ${F(i)} to be array or undefined`,t),!0}function zy(i,t){y.isEmptyArray(i)||z(`Expected ${F(i)} to be empty array`,t)}function Yy(i,t){y.isNonEmptyArray(i)||z(`Expected ${F(i)} to be non-empty array`,t)}function Hy(i,t){y.isEmptyArrayOrUndefined(i)||z(`Expected ${F(i)} to be empty array or undefined`,t)}function Zy(i,t){y.isNonEmptyArrayOrUndefined(i)||z(`Expected ${F(i)} to be non-empty array or undefined`,t)}function Xy(i,t){return y.isString(i)||z(`Expected ${F(i)} to be string`,t),i}function $y(i,t){return y.isEmptyString(i)||z(`Expected ${F(i)} to be empty string`,t),i}function Qy(i,t){return y.isNonEmptyString(i)||z(`Expected ${F(i)} to be non-empty string`,t),i}function Ky(i,t){return y.isStringOrUndefined(i)||z(`Expected ${F(i)} to be string or undefined`,t),i}function Jy(i,t){return y.isEmptyStringOrUndefined(i)||z(`Expected ${F(i)} to be empty string or undefined`,t),i}function tb(i,t){return y.isNonEmptyStringOrUndefined(i)||z(`Expected ${F(i)} to be non-empty string or undefined`,t),i}function eb(i,t){return y.isBoolean(i)||z(`Expected ${F(i)} to be boolean`,t),i}function rb(i,t){return y.isBooleanOrUndefined(i)||z(`Expected ${F(i)} to be boolean or undefined`,t),i}function ib(i,t){return y.isTrue(i)||z(`Expected ${F(i)} to be true`,t),i}function nb(i,t){return y.isTrueOrUndefined(i)||z(`Expected ${F(i)} to be true or undefined`,t),i}function ob(i,t){return y.isFalse(i)||z(`Expected ${F(i)} to be false`,t),i}function sb(i,t){return y.isFalseOrUndefined(i)||z(`Expected ${F(i)} to be false or undefined`,t),i}function ab(i,t){return y.isFunction(i)||z(`Expected ${F(i)} to be function`,t),i}function cb(i,t){return y.isFunctionOrUndefined(i)||z(`Expected ${F(i)} to be function or undefined`,t),i}function ub(i,t,e){return y.isEnumValue(i,t)||z(`Expected ${F(i)} to be enum val`,e),i}function hb(i,t,e){return y.isEnumValueOrUndefined(i,t)||z(`Expected ${F(i)} to be enum val or undefined`,e),i}function lb(i,t){return y.isNumericString(i)||z(`Expected ${F(i)} to be numeric string`,t),i}function db(i,t){return y.isBigInt(i)||z(`Expected ${F(i)} to be BigInt`,t),i}function pb(i,t){return y.isNumber(i)||z(`Expected ${F(i)} to be number`,t),i}function mb(i,t){return y.isNumberOrUndefined(i)||z(`Expected ${F(i)} to be number or undefined`,t),i}function fb(i,t){return y.isFinite(i)||z(`Expected ${F(i)} to be finite`,t),i}function gb(i,t){return y.isFloat(i)||z(`Expected ${F(i)} to be float`,t),i}function yb(i,t){return y.isInteger(i)||z(`Expected ${F(i)} to be integer`,t),i}function bb(i,t){return y.isSafeInteger(i)||z(`Expected ${F(i)} to be safe integer`,t),i}function xb(i,t){return y.isIntegerOrUndefined(i)||z(`Expected ${F(i)} to be integer or undefined`,t),i}function Ab(i,t,e){return y.isIntegerEq(i,t)||z(`Expected ${F(i)} to be integer equal to ${F(t)}`,e),i}function Cb(i,t,e){return y.isIntegerGt(i,t)||z(`Expected ${F(i)} to be integer > ${F(t)}`,e),i}function _b(i,t,e){return y.isIntegerGte(i,t)||z(`Expected ${F(i)} to be integer >= ${F(t)}`,e),i}function vb(i,t,e){return y.isIntegerLt(i,t)||z(`Expected ${F(i)} to be integer < ${F(t)}`,e),i}function Ib(i,t,e){return y.isIntegerLte(i,t)||z(`Expected ${F(i)} to be integer <= ${F(t)}`,e),i}function Sb(i,t,e,r){return y.isIntegerBetween(i,t,e)||z(`Expected integer ${F(t)} <= ${F(i)} <= ${F(e)}`,r),i}function wb(i,t,e,r){return y.isIntegerBetweenExclusive(i,t,e)||z(`Expected integer ${F(t)} < ${F(i)} < ${F(e)}`,r),i}function Nb(i,t,e,r){return y.isNumberBetween(i,t,e)||z(`Expected number ${F(t)} <= ${F(i)} <= ${F(e)}`,r),i}function Tb(i,t,e,r){return y.isNumberBetweenExclusive(i,t,e)||z(`Expected number ${F(t)} < ${F(i)} < ${F(e)}`,r),i}function Ob(i,t){return y.isNaNValue(i)||z(`Expected ${F(i)} to be NaN`,t),NaN}function Rb(i,t){return y.isInfinity(i)||z(`Expected ${F(i)} to be +-Infinity`,t),i}function Mb(i,t){return y.isPosInfinity(i)||z(`Expected ${F(i)} to be +Infinity`,t),i}function Eb(i,t){return y.isNegInfinity(i)||z(`Expected ${F(i)} to be -Infinity`,t),i}function Db(i,t){return y.isPos(i)||z(`Expected ${F(i)} to be positive (> 0)`,t),i}function kb(i,t){return y.isNeg(i)||z(`Expected ${F(i)} to be negative (< 0)`,t),i}function Lb(i,t){return y.isNonPos(i)||z(`Expected ${F(i)} to be non-positive (<= 0)`,t),i}function jb(i,t){return y.isNonNeg(i)||z(`Expected ${F(i)} to be non-negative (>= 0)`,t),i}function Pb(i,t){return y.isZero(i)||z(`Expected ${F(i)} to be 0`,t),i}function Fb(i,t){return y.isPosZero(i)||z(`Expected ${F(i)} to be +0`,t),i}function Bb(i,t){return y.isNegZero(i)||z(`Expected ${F(i)} to be -0`,t),i}function Gb(i,t){return y.isOdd(i)||z(`Expected ${F(i)} to odd`,t),i}function Vb(i,t){return y.isEven(i)||z(`Expected ${F(i)} to even`,t),i}function qb(i,t,e){return y.isMultipleOf(i,t)||z(`Expected ${F(i)} to be divisble bu ${F(t)}`,e),i}function Wb(i,t){return y.isPowerOfTwo(i)||z(`Expected ${F(i)} to be power of two`,t),i}function Ub(i,t,e){return y.isIncluded(i,t)||z(`Expected ${F(i)} to be included in ${F(t)}`,e),i}function zb(...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)||z(r===void 0?`Expected ${t} to be index`:`Expected ${t} to be index for ${F(r)}`,e),t}function Yb(i,t){return y.doesThrow(i)||z("Expected to throw",t),!0}function Hb(i,t){return y.doesNotThrow(i)||z("Expected to throw",t),!0}var Zb={};Je(Zb,{accept:()=>Jb,decline:()=>tx,erase:()=>Zh,eraseAll:()=>ox,isConsentPending:()=>Kb,read:()=>rx,readBool:()=>nx,readInt:()=>ix,save:()=>ex,setExpireDays:()=>Qb});var Ls="ConsentCookie",Ke,oo,$c=js(Ls);Ke=$c==="accept"||$c==="decline"?$c:void 0;function Xb(){return document.cookie.split(";").map(t=>t.trim())}function eu(i,t){let e=i+"="+t.toString()+";sameSite=Lax;";return oo&&(e+="expires="+oo.toUTCString()+";"),document.cookie=e,t}function js(i,t){let e=Xb().find(r=>r.startsWith(i+"="));return e===void 0?t:e.substring(i.length+1)}function $b(i){document.cookie=i+"=;expires=Thu, 01 Jan 1970 00:00:00 UTC;"}function Qb(i){oo=new Date,oo.setDate(oo.getDate()+i)}function Kb(){return Ke===void 0}function Jb(){Ke="accept",eu(Ls,Ke)}function tx(){Ke="decline",eu(Ls,Ke)}function ex(i,t){return Ke==="accept"&&eu(i,t),t}function rx(i,t){var e;return Ke==="accept"&&(e=js(i,t))!=null?e:t}function ix(i,t){if(Ke==="accept"){let e=js(i);return e===void 0?t:parseInt(e)}else return t}function nx(i,t){if(Ke==="accept"){let e=js(i);return e===void 0?t:/true|1/i.test(e)}else return t}function Zh(i){(Ke==="accept"||i===Ls)&&$b(i)}function ox(){document.cookie.split(";").forEach(i=>Zh(i.trim().split("=")[0]))}var Ps={};Je(Ps,{DPI:()=>Xh,FontSize:()=>$h,HostAddress:()=>yx,IsMobileDevice:()=>gx,IsTouchDevice:()=>fx,PxPerMm:()=>ru,ScrollbarWidth:()=>mx,mmToPx:()=>Ms,pxToMm:()=>bx,toPx:()=>xx});function sx(){let i=document.createElement("div");i.style.width="1in",document.body.appendChild(i);let t=i.offsetWidth;return i.remove(),t||96}function ax(){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 cx(){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 ux(){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 hx(){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 lx(){return location.protocol+"//"+location.host}var dx=/^(mm|cm|in|inch|px|em)$/,px=/^([0-9\\.]+)(.*)$/,Xh=sx(),ru=Xh/25.4,mx=ax(),$h=cx(),fx=ux(),gx=hx(),yx=lx();function bx(i){return i/ru}function Ms(i){return i*ru}function xx(i){if(typeof i=="number")return i;let t=NaN,e,r=i.toString().match(px);if(r&&r[1]){t=parseFloat(r[1]);let n=r[2]?r[2].toLowerCase():"undefined";e=dx.test(n)?n:void 0,e||console.log("Unknown unit '"+n+"' => using 'px'.")}else t=parseFloat(i);switch(Fh.isFinite(t,"value in function toPx"),e){case"mm":return Ms(t);case"cm":return Ms(t)*10;case"in":case"inch":return Ms(t)*25.4;case"em":return $h*t;default:case"px":return t}}var H={};Je(H,{Arr:()=>Qh,Dom:()=>tl,Enum:()=>Vh,Math:()=>el,Obj:()=>Gh,Str:()=>Bh});var Qh={};Je(Qh,{arrayContains:()=>wx,chunckArray:()=>Nx,duplicate:()=>Cx,fillArray:()=>vx,getRangeArray:()=>Sx,getSequenceArray:()=>Ix,isArray:()=>ke,mapRangeArray:()=>Jh,mapSequenceArray:()=>Kh,removeDuplicates:()=>_x,toArray:()=>Ax});function Ax(i){return ke(i)?i:[i]}function Cx(i){var t;return(t=i==null?void 0:i.slice())!=null?t:[]}function _x(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 vx(i,t){if(!Et(t)||t<0)throw new Error("fillArray: Invalid fillCount = "+t);return new Array(t).fill(i)}function Kh(i,t){if(!Et(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 Ix(i){return Kh(i,t=>t)}function Jh(i,t,e){if(!Et(i))throw new Error("mapRangeArray: Invalid start = "+t);if(!Et(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 Sx(i,t){return Jh(i,t,e=>e)}function wx(i,t){return i.indexOf(t)>=0}function Nx(i,t){if(!Et(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 tl={};Je(tl,{addClass:()=>Tx,appendTo:()=>jx,getButton:()=>Gx,getCanvas:()=>Vx,getCanvasTextWidth:()=>zx,getDimension:()=>Wx,getHeight:()=>kx,getOffset:()=>Mx,getPadding:()=>qx,getWidth:()=>Ex,hasClass:()=>iu,removeClass:()=>Ox,removeFromParent:()=>Px,setHeight:()=>Lx,setOffset:()=>Rx,setRect:()=>Bx,setVisibility:()=>Fx,setWidth:()=>Dx,styleLayoutChanged:()=>Ux});function Mt(i){return i===void 0?void 0:Ps.toPx(i)}function iu(i,t){return t.length===0?!1:i.classList?i.classList.contains(t):!!i.className.match(new RegExp("(\\s|^)"+t+"(\\s|$)"))}function Tx(i,t){t.length!==0&&(i.classList?i.classList.add(t):iu(i,t)||(i.className+=" "+t))}function Ox(i,t){if(t.length!==0){if(i.classList)i.classList.remove(t);else if(iu(i,t)){var e=new RegExp("(\\s|^)"+t+"(\\s|$)");i.className=i.className.replace(e," ")}}}function Rx(i,t,e,r="px"){i.style.left=t+r,i.style.top=e+r}function Mx(i){let t=i.getBoundingClientRect(),e=document.documentElement;return{top:t.top+window.pageYOffset-e.clientTop,left:t.left+window.pageXOffset-e.clientLeft}}function Ex(i){if(i instanceof Window)return i.innerWidth;{let t=parseFloat(getComputedStyle(i,null).width.replace("px",""));return isNaN(t)?0:t}}function Dx(i,t){i.style.width=t+"px"}function kx(i){if(i instanceof Window)return i.innerHeight;{let t=parseFloat(getComputedStyle(i,null).height.replace("px",""));return isNaN(t)?0:t}}function Lx(i,t){i.style.height=t+"px"}function jx(i,t){t.appendChild(i)}function Px(i){i.remove()}function Fx(i,t){i.style.display=t?"block":"none"}function Bx(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 Gx(i){let t=typeof i=="string"?document.getElementById(i):i;return t instanceof HTMLButtonElement?t:void 0}function Vx(i){let t=typeof i=="string"?document.getElementById(i):i;return t instanceof HTMLCanvasElement?t:void 0}function qx(i){var s;if(!i)return{top:0,right:0,bottom:0,left:0};let t=Mt(i.paddingTop),e=Mt(i.paddingRight),r=Mt(i.paddingBottom),n=Mt(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=Mt(o[0])),e!=null||(e=Mt(o[0])),r!=null||(r=Mt(o[0])),n!=null||(n=Mt(o[0]));break;case 2:t!=null||(t=Mt(o[0])),e!=null||(e=Mt(o[1])),r!=null||(r=Mt(o[0])),n!=null||(n=Mt(o[1]));break;case 3:t!=null||(t=Mt(o[0])),e!=null||(e=Mt(o[1])),r!=null||(r=Mt(o[2])),n!=null||(n=Mt(o[1]));break;case 4:default:t!=null||(t=Mt(o[0])),e!=null||(e=Mt(o[1])),r!=null||(r=Mt(o[2])),n!=null||(n=Mt(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 Wx(i){let t=Mt(i==null?void 0:i.left),e=Mt(i==null?void 0:i.right),r=Mt(i==null?void 0:i.top),n=Mt(i==null?void 0:i.bottom),o=Mt(i==null?void 0:i.width),s=Mt(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 Ux(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 io;function zx(i,t){io!=null||(io=document.createElement("canvas"));let e=io.getContext("2d");return e?(e.font=t,e.measureText(i).width):0}var el={};Je(el,{avg:()=>Jx,calcNormal:()=>Kx,clamp:()=>Qc,cmp:()=>tA,interpolateCoord:()=>$x,interpolateY:()=>Qx,isInteger:()=>Et,isNumber:()=>le,linearToDecibels:()=>Yx,mod:()=>Hx,romanize:()=>Zx,sum:()=>rl,toOrdinalNumber:()=>Xx});function Yx(i){if(isFinite(i))return i<=0?-1/0:20*Math.log10(i);throw new Error("linearToDecibel: Invalid linearVolume = "+i)}function Hx(i,t){return(i%t+t)%t}function Zx(i){if(!Et(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 Xx(i){if(!Et(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 $x(i,t,e,r,n){return{x:i+(e-i)*n,y:t+(r-t)*n}}function Qx(i,t,e,r,n){let o=(n-i)/(e-i);return t+(r-t)*o}function Qc(i,t,e){return Math.min(Math.max(i,t),e)}function Kx(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 rl(i){return i.reduce((t,e)=>e+t,0)}function Jx(...i){return rl(i)/i.length}function tA(i,t){return i<t?-1:i>t?1:0}var Qe=(i,t)=>i===t,Qr=class{};var il=class Ge extends Qr{constructor(...t){if(super(),yt(this,"coords"),t.length<2)throw new TypeError("Vec needs minumum two coords!");this.coords=t}static vec2(t,e){return new Ge(t,e)}static vec3(t,e,r){return new Ge(t,e,r)}static zero(t){if(t<2)throw new TypeError("Vec.zero requires dimension >= 2");return new Ge(...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 Ge?t[0].coords:t;if(this.coords.length!==e.length)throw new TypeError("Coordinate length mismatch!");return new Ge(...this.coords.map((r,n)=>r+e[n]))}sub(...t){let e=t[0]instanceof Ge?t[0].coords:t;if(this.coords.length!==e.length)throw new TypeError("Coordinate length mismatch!");return new Ge(...this.coords.map((r,n)=>r-e[n]))}mul(t){return new Ge(...this.coords.map(e=>e*t))}div(t){return new Ge(...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(!Ki(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 Ge(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 Ge(...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(", ")})`}},nu=class Se{constructor(...t){if(yt(this,"x"),yt(this,"y"),yt(this,"width"),yt(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 Se(r,n,o,s)}static fromCenter(t,e,r,n){return new Se(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 Se:new Se(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 Se(e,r,n-e,o-r)}insetCopy(t,e){return new Se(this.x+t,this.y+e,this.width-2*t,this.height-2*e)}inflateCopy(t,e){return new Se(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 Se(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 Se(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 Se(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 Se(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 Se(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 Se(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 xi{constructor(...t){if(yt(this,"left"),yt(this,"anchorX"),yt(this,"right"),yt(this,"top"),yt(this,"anchorY"),yt(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 xi(t,t+r,e,e+n)}static createCentered(t,e,r,n){return new xi(t-r/2,t,t+r/2,e-n/2,e,e+n/2)}static createSections(t,e,r,n){return new xi(-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 xi.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 xi.equalsEdges(this,t)}clone(){return new xi(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=Qc(this.anchorX,this.left,this.right),this.top=Math.max(this.top,t.top),this.bottom=Math.min(this.bottom,t.bottom),this.anchorY=Qc(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 nu(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})`}},nl=class extends Qr{constructor(i,t=1/0){super(),yt(this,"cache"),yt(this,"next"),yt(this,"prev"),yt(this,"head"),yt(this,"tail"),yt(this,"capacity"),yt(this,"size"),yt(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*be(this.entries())}toString(){let i=[...this.entries()];return i.length===0?"LRUCache(0){ }":`LRUCache(${i.length}){ ${i.map(t=>`${Zt(t[0])}: ${Zt(t[1])}`).join(", ")} }`}},Ar=class $r extends Qr{constructor(t){if(super(),yt(this,"posVal"),yt(this,"hasPos"),yt(this,"valCount"),t instanceof $r)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(!Jc(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 $r.validateIndex(t),this.hasPos[t]===!0}set(t,e){$r.validateIndex(t),this.hasPos[t]!==!0&&this.valCount++,this.posVal[t]=e,this.hasPos[t]=!0}get(t){return $r.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=Er(e)?e():e;return this.set(t,r),r}return this.get(t)}delete(t){return $r.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*be(this.entries())}clone(){return new $r(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 $r;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 Zt(this.posVal.slice(0,this.hasPos.length));let e=this.entriesArray().map(([r,n])=>`${Zt(r)}: ${Zt(n)}`).join(", ");return e.length===0?"[ ]":`[ ${e} ]`}},ol=class we extends Qr{constructor(t){if(super(),yt(this,"posVal"),yt(this,"hasPos"),yt(this,"negVal"),yt(this,"hasNeg"),yt(this,"valCount"),t instanceof we)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(!Et(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 we.validateIndex(t),t>=0?this.hasPos[t]===!0:this.hasNeg[we.toNegIndex(t)]===!0}set(t,e){if(we.validateIndex(t),t>=0)this.hasPos[t]!==!0&&this.valCount++,this.posVal[t]=e,this.hasPos[t]=!0;else{let r=we.toNegIndex(t);this.hasNeg[r]!==!0&&this.valCount++,this.negVal[r]=e,this.hasNeg[r]=!0}}get(t){if(we.validateIndex(t),t>=0)return this.hasPos[t]?this.posVal[t]:void 0;{let e=we.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=Er(e)?e():e;return this.set(t,r),r}return this.get(t)}delete(t){we.validateIndex(t);let e=t>=0,r=e?this.posVal:this.negVal,n=e?this.hasPos:this.hasNeg,o=e?t:we.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 we.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[we.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*be(this.entries())}clone(){return new we(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 we;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 Zt(this.posVal.slice(0,this.hasPos.length));let e=this.entriesArray().map(([r,n])=>`${Zt(r)}: ${Zt(n)}`).join(", ");return e.length===0?"[ ]":`[ ${e} ]`}};var pt=class no extends Qr{constructor(...t){super(),yt(this,"map"),yt(this,"keyEquals");let e=t.at(-1);this.keyEquals=Er(e)?t.pop():Qe;let r=t[0];this.map=new Map(r)}static createDeep(t){return t?new no(t,so):new no(so)}has(t){if(this.keyEquals===Qe||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===Qe||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===Qe||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===Qe||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=Er(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*be(this.map.keys())}*values(){yield*be(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*be(this.entries())}clone(){return new no(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 no;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])=>`${Zt(e)} => ${Zt(r)}`).join(", ");return t.length===0?`Map(${this.size}){ }`:`Map(${this.size}){ ${t} }`}};var Fs=class Es extends Qr{constructor(t){if(super(),yt(this,"map1"),yt(this,"key1Equals",Qe),yt(this,"key2Equals",Qe),yt(this,"key3Equals",Qe),this.map1=new pt(this.key1Equals),t instanceof Es)for(let[e,r]of t.map1){let n=this.map1.set(e,new pt(this.key2Equals));for(let[o,s]of r)n.set(o,new pt(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 pt(this.key2Equals)).getOrCreate(e,()=>new pt(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=Er(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*be(this.entries())}clone(){return new Es(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,l,h]=a.value;o=t(o,h,c,u,l)}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 Es;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])=>`${Zt(a)} => ${Zt(c)}`).join(", ");t.push(`${Zt(e)} => ${Zt(n)} => { ${s} }`)}return t.length===0?`Map(${this.size}){ }`:`Map(${this.size}){ ${t.join(", ")} }`}},Bs=class Ai extends Qr{constructor(...t){super(),yt(this,"data"),yt(this,"equals");let e=t.at(-1);this.equals=Er(e)?t.pop():Qe;let r=t[0];this.data=new Set(r)}static createDeep(t){return t?new Ai(t,so):new Ai(so)}has(t){return this.equals===Qe?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=Er(e)?e():e;return this.set(t,r),r}return this.get(t)}delete(t){if(this.equals===Qe||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*be(this.data.keys())}*values(){yield*be(this.data.values())}*entries(){yield*be(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*be(this.values())}clone(){let t=new Ai;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 Ai;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 Ai;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 Ai;for(let r of this.values())e.add(t(r));return e}toSet(){return new Set(this.data)}toArray(){return[...this.values()]}toString(){return Zt(this.data)}},eA=class extends Qr{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*be(this.getAll(...i))}*values(){for(let i of this.keys())yield*be(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)?Zt(t):"[ ]",n=Array.isArray(e)?Zt(e):"[ ]";i.push(`${r} => ${n}`)}return i.length===0?"MultiContainer{ }":`MultiContainer{ ${i.join(", ")} }`}};function Gs(i){return new eA(i)}var ou={};Qi(ou,{MusicError:()=>N,MusicErrorType:()=>bt,init:()=>_i});var bt=(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))(bt||{});function rA(i){return i===void 0?"":`[${bt[i]}] `}var N=class extends Error{constructor(...e){let[r,n]=e.length===1?[0,e[0]]:e;super(rA(r)+n);d(this,"type");Object.setPrototypeOf(this,new.target.prototype),this.name="MusicError",this.type=r}};var sl=!1;function _i(){sl||(sl=!0,console.log("%cWebMusicScore v5.4.2 (iife) initialized.","background: black; color: white; padding: 2px;"))}var Kr=(e=>(e[e.Ascii=0]="Ascii",e[e.Unicode=1]="Unicode",e))(Kr||{}),Jr=(e=>(e[e.Scientific=0]="Scientific",e[e.Helmholtz=1]="Helmholtz",e))(Jr||{}),iA=H.Enum.getEnumValues(Jr),nA=0;function al(i){if(y.isEnumValue(i,Jr))return i;throw new N(1,`Invalid pitchNotation: ${i}`)}function oA(i){return Jr[al(i)]}var Vs=(r=>(r.Default="Default",r.OmitOctave="Omit Octave",r.Interval="Interval",r))(Vs||{}),sA="Default",aA=H.Enum.getEnumValues(Vs);function cA(i){if(y.isEnumValue(i,Vs))return i;throw new N(5,`Invalid guitarNoteLabel: ${i}`)}function cl(i,t){return(i%t+t)%t}var ul=12,hl=7,uA=new Map([[-2,"bb"],[-1,"b"],[0,""],[1,"#"],[2,"x"]]),hA=new Map([[-2,"\u{1D12B}"],[-1,"\u266D"],[0,""],[1,"\u266F"],[2,"\u{1D12A}"]]),ll=new Map([["",0],["bb",-2],["b",-1],["#",1],["x",2],["\u{1D12B}",-2],["\u266D",-1],["\u266F",1],["\u{1D12A}",2]]),ao=["C","D","E","F","G","A","B"],dl=[0,2,4,5,7,9,11],pl=/^([A-G])((?:bb|𝄫|♭|b|#|♯|x|𝄪)?)?(-?\d+)?$/,lt=class lt{constructor(t,e,r){d(this,"diatonicClass");d(this,"accidental");d(this,"octave");if(typeof t=="number"&&typeof e=="number"&&r===void 0)lt.validateDiatonicId(t),this.diatonicClass=lt.getDiatonicClass(t),this.accidental=lt.validateAccidental(e),this.octave=lt.getOctaveFromDiatonicId(t);else if(typeof t=="number"&&typeof e=="number"&&typeof r=="number")this.diatonicClass=lt.validateDiatonicClass(t),this.accidental=lt.validateAccidental(e),this.octave=lt.validateOctave(r);else if(typeof t=="string"&&typeof e=="number"&&typeof r=="number")this.diatonicClass=lt.getDiatonicClass(t),this.accidental=lt.validateAccidental(e),this.octave=lt.validateOctave(r);else throw new N(2,`Invalid args: ${t}, ${e}, ${r}`)}get diatonicId(){return lt.getDiatonicIdInOctave(this.diatonicClass,this.octave)}get chromaticId(){return lt.getChromaticIdInOctave(dl[this.diatonicClass]+this.accidental,this.octave)}get midiNumber(){return this.chromaticId}get chromaticClass(){return lt.getChromaticClass(dl[this.diatonicClass]+this.accidental)}get noteLetter(){return ao[this.diatonicClass]}format(t,e){let{noteLetter:r,octave:n}=this,o=lt.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=ao[this.diatonicClass],r=lt.getAccidentalSymbol(this.accidental,t);return e+r}static getNote(t){return this.noteCache.getOrCreate(t,()=>{let e=lt.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 lt(e.noteLetter,e.accidental,e.octave)})}static isNote(t){let e=lt.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"][lt.getChromaticClass(t)].split("/")[0]+lt.getOctaveFromChromaticId(t);return lt.getNote(r)})}static getDiatonicClass(t){if(typeof t=="number")return cl(t,7);if(typeof t=="string"&&t.length>0)return ao.indexOf(lt.validateNoteLetter(t[0]));throw new N(2,`Invalid arg: ${t}`)}static getOctaveFromDiatonicId(t){return Math.floor((t-hl)/7)}static getDiatonicIdInOctave(t,e){return lt.getDiatonicClass(t)+e*7+hl}static getChromaticClass(t){return cl(t,12)}static getOctaveFromChromaticId(t){return Math.floor((t-ul)/12)}static getChromaticIdInOctave(t,e){return lt.getChromaticClass(t)+e*12+ul}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 pl.test(t)}static parseNote(t){var c;let e=pl.exec(t);if(!e)return;let r=lt.validateNoteLetter(e[1]),n=e[2],o=lt.validateAccidental((c=ll.get(n))!=null?c:0),s=e[3],a=s?lt.validateOctave(+s):void 0;return{noteLetter:r,accidental:o,octave:a}}static getScientificNoteName(t,e){let r=lt.parseNote(t);if(!r)throw new N(2,`Invalid noteName: ${t}`);let{noteLetter:n,accidental:o,octave:s}=r;return n+lt.getAccidentalSymbol(o,e)+(s!=null?s:"")}static getAccidentalSymbol(t,e){return e===1?hA.get(t):uA.get(t)}static getAccidental(t){let e=ll.get(t);if(e===void 0)throw new N(2,`Invalid accidental: ${t}`);return e}static getNoteLetter(t){return ao[lt.getDiatonicClass(t)]}static findNextDiatonicIdAbove(t,e,r){let n=lt.getDiatonicClass(t),o=lt.getDiatonicClass(e),s=r?n<=o?1:0:n<o?1:0;return lt.getDiatonicIdInOctave(n,lt.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(ao.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(lt.compareFunc)}static removeDuplicates(t){let e=[];return t.forEach(r=>{e.find(n=>lt.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(lt,"noteCache",new pt),d(lt,"chromaticNoteCache",new pt);var W=lt;function lA(i,t){let e=W.getChromaticClass(i)-new W(t,0).chromaticClass;for(;e>2;)e-=12;for(;e<-2;)e+=12;return W.validateAccidental(e)}var dA=/^(bb?|b?|#?|x?)([0-9]*)$/;function pA(i){var n,o;let t=dA.exec(""+i);if(!t)throw new N(4,`Invalid degree: ${i}`);let e=(o=W.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 su=(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))(su||{}),au=(r=>(r[r.Natural=0]="Natural",r[r.Flats=1]="Flats",r[r.Sharps=2]="Sharps",r))(au||{});function qs(){return Dr("C","Major")}var ti=class ti{constructor(t,e){this.tonic=t;this.mode=e;d(this,"naturalScaleNotes");d(this,"accidentalByDiatonicClass");d(this,"orderedAccidentedNotes");if(!y.isEnumValue(e,su))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=W.getDiatonicClass(t[0]),o=W.getNote(t+"0").chromaticId;for(let c=0;c<7;n++,o+=r[c],c++){let u=new W(W.getDiatonicClass(n),lA(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 l=ti.OrderOfSharps.indexOf(c.noteLetter),h=ti.OrderOfSharps.indexOf(u.noteLetter);if(l===-1||h===-1)throw new N(4,"Unexpected note in key signature.");return l-h}),a=this.naturalScaleNotes.filter(c=>c.accidental<0).sort((c,u)=>{let l=ti.OrderOfFlats.indexOf(c.noteLetter),h=ti.OrderOfFlats.indexOf(u.noteLetter);if(l===-1||h===-1)throw new N(4,"Unexpected note in key signature.");return l-h});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[W.getDiatonicClass(t)])!=null?e:0}getNumAccidentals(){return this.orderedAccidentedNotes.length}getOrderedAccidentalNotes(){return this.orderedAccidentedNotes}getNoteByDegree(t){let{deg:e,acc:r}=pA(t);if(r===0)return this.naturalScaleNotes[(e-1)%7];{let n=this.naturalScaleNotes[(e-1)%7];return new W(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(ti,"OrderOfSharps","FCGDAEB"),d(ti,"OrderOfFlats","BEADGCF");var tr=ti;var mA=new pt([["Major","M"],["minor","m"],["Perfect","P"],["diminished","d"],["Augmented","A"],["doubly diminished","dd"],["Doubly Augmented","AA"]]),fA={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 gA(i,t){for(;i<1;)i+=7,t+=12;for(;i>8;)i-=7,t-=12;let e=fA[i];if(e)return e[t]}function yA(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 bA(i){if(y.isIntegerGte(i,1))return H.Math.toOrdinalNumber(i);throw new N(1,`Invalid interval quantity: ${i}`)}var Ws=class extends Error{constructor(e){super(e);this.msg=e;this.name="InvalidInterval"}},co=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=gA(this.quantity,this.semitones);if(r)this.quality=r;else throw new Ws("Unknown interval quality")}static get(t,e){try{return new i(t,e)}catch(r){if(r instanceof Ws)return;throw r}}toString(){let t=this.direction==="Unison"?"":this.direction+" ",e=this.quality+" ",r=this.direction==="Unison"?"Unison":bA(this.quantity);return t+e+r}toAbbrString(){let t=this.direction==="Descending"?"\u2193":"",e=mA.getOrDefault(this.quality,"?"),r=this.quantity;return t+e+r}};function xA(i){let t=W.getDiatonicClass("CCDDEFFGGAAB"[W.getChromaticClass(i)]),e=W.getOctaveFromChromaticId(i);return W.getDiatonicIdInOctave(t,e)}var AA=["Cb","C","C#","Db","D","D#","Eb","E","E#","Fb","F","F#","Gb","G","G#","Ab","A","A#","Bb","B","B#"],vi=(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))(vi||{});function CA(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 ei=class extends tr{constructor(e,r){super(e,CA(r));this.tonic=e;this.scaleType=r;d(this,"scaleDegrees");d(this,"scaleNotes");d(this,"chromaticClassDegree");d(this,"preferredChromaticIdNoteCache",new ol);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 W.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=W.getNote(e).diatonicId;return n.map(s=>(o=W.findNextDiatonicIdAbove(s.diatonicId,o,!1),new W(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(H.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 W(e.diatonicClass,e.accidental,e.octave-1);if(e.chromaticId<r.chromaticId)throw new N(3,"Note is below rootNote.");let n=co.get(r,e);if(n===void 0)throw new N(3,"Interval is undefined.");return n}getPreferredChromaticNote(e){W.validateChromaticId(e);let r=this.preferredChromaticIdNoteCache.get(e);if(r)return r;let n=W.getOctaveFromChromaticId(e);if(r=this.scaleNotes.map(h=>h.noteLetter==="C"&&h.accidental<0?new W(h.diatonicClass,h.accidental,n+1):h.noteLetter==="B"&&h.accidental>0?new W(h.diatonicClass,h.accidental,n-1):new W(h.diatonicClass,h.accidental,n)).find(h=>W.getChromaticClass(e)===h.chromaticClass),r)return this.preferredChromaticIdNoteCache.set(e,r),r;let s=xA(e),a=s-2,c=s+2,l=this.getAccidentalType()===1?[0,-1,1,-2,2]:[0,1,-1,2,-2];for(let h=0;h<l.length;h++){let p=l[h];for(let m=Math.max(0,a);m<=c;m++)if(r=new W(m,p),e===r.chromaticId)return this.preferredChromaticIdNoteCache.set(e,r),r}return r=W.getChromaticNote(e),this.preferredChromaticIdNoteCache.set(e,r),r}},ee=class{constructor(t){this.type=t;d(this,"tonicList",[]);d(this,"scaleMap",new Map);let e=[],r=[],n=[];if(AA.forEach(s=>{try{let a=new ei(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}},ml=[new ee("Major"),new ee("Natural Minor"),new ee("Harmonic Minor"),"- Modes -",new ee("Ionian"),new ee("Dorian"),new ee("Phrygian"),new ee("Lydian"),new ee("Mixolydian"),new ee("Aeolian"),new ee("Locrian"),"- Pentatonic -",new ee("Major Pentatonic"),new ee("Minor Pentatonic"),"- Blues -",new ee("Major Hexatonic Blues"),new ee("Minor Hexatonic Blues"),new ee("Heptatonic Blues")];function _A(){return ml}var fl=new pt;ml.forEach(i=>{i instanceof ee&&fl.set(i.getType(),i)});function gl(i){let t=fl.get(i);if(t)return t;throw new N(3,`Invalid scaleType: ${i}`)}function uo(i){if(y.isEnumValue(i,vi))return i;throw new N(3,`Invalid scaleType: "${i}"`)}function Dr(i,t){let e,r;return t!==void 0?(e=i,r=uo(t)):(e=i.split(" ")[0],r=uo(i.substring(e.length+1))),gl(r).getScale(e)}var vA=Dr("C","Major");function IA(){return vA}var kr=(i,t)=>i.chromaticClass===t.chromaticClass,SA=["C","C#","Db","D","Eb","E","F","F#","Gb","G","Ab","A","Bb","B","Cb"].map(i=>W.getNote(i+"0")),wA=new Ar;function NA(i){return wA.getOrCreate(i.chromaticClass,()=>{let t=SA.find(e=>kr(e,i));if(!t)throw new N(1,`Invalid chord root note: ${i.formatOmitOctave(1)}`);return t})}function TA(i,t){let e=i.formatOmitOctave(0);return Dr(e,"Major").getNoteByDegree(t)}function OA(i){return H.Arr.removeDuplicates(i,kr)}var RA=[{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 MA(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 Ji=class extends Error{constructor(e){super(e);this.msg=e;this.name="InvalidChordException"}},cu=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=>kr(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]=TA(this.rootNote,c),l=o.findIndex(h=>kr(h,u));if(l>=0)this.omitNotes[a]=!1,o.splice(l,1);else if(MA(t,c))this.omitNotes[a]=!0;else throw new Ji("Missing chord note!");kr(n,u)&&(n=u)}if(o.length>0)if(o.every(a=>kr(a,n)))this.slashBassNote=n;else throw new Ji("Got some extra notes that are not bass note!");else this.slashBassNote=kr(n,this.rootNote)?void 0:n;if(t.name==="5"&&this.slashBassNote)throw new Ji("Power chord no bass note allowed!")}static getChords(t){let e=[],r=W.sort(t),n=r[0],o=OA(r);for(let s=0;s<o.length;s++){let a=NA(o[s]);RA.forEach(c=>{try{let u=new i(c,o,a,n),l=e.findIndex(h=>h.replaceWith(u));l>=0?e[l]=u:e.push(u)}catch(u){if(!(u instanceof Ji))throw u}})}return e}replaceWith(t){if(t.notes.length<this.notes.length)return!1;if(t.slashBassNote&&this.slashBassNote&&!kr(t.slashBassNote,this.slashBassNote)||t.slashBassNote&&!this.slashBassNote||!t.slashBassNote&&this.slashBassNote)return!1;for(let e=0;e<this.notes.length;e++)if(!kr(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 W.replaceAccidentalSymbols(""+this.chordInfo.degrees[t],1)}getNoteStr(t){return this.notes[t].formatOmitOctave(1)}};var uu={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 hu=(e=>(e[e.RightHanded=0]="RightHanded",e[e.LeftHanded=1]="LeftHanded",e))(hu||{}),DA=0;function kA(i){if(y.isEnumValue(i,hu))return i;throw new N(1,`Invalid handedness: ${i}`)}var ho=uu.list.map(i=>i.name),LA=ho[0];function lu(i){if(ho.indexOf(i)<0)throw new N(1,`Invalid tuning name: ${i}`);return i}var yl=new nl(100);function Us(i){let t=yl.get(i);if(!t){let e=uu.list.find(r=>r.name===i);if(!e)throw new N(1,`Invalid tuningName: ${i}`);if(t=e.strings.slice().reverse().map(r=>W.getNote(r)),!y.isIntegerEq(t.length,6))throw new N(0,`Tuning has ${t.length} strings.`);yl.set(i,t)}return t}var bl=12,jA=1188*7*5,er=(B=>(B.Whole="1n",B.WholeTriplet="1t",B.WholeDot="1.",B.Whole2Dots="1..",B.Whole12Dots="1..",B.Whole3Dots="1...",B.Whole4Dots="1....",B.Whole5Dots="1.....",B.Whole6Dots="1......",B.Half="2n",B.HalfTriplet="2t",B.HalfDot="2.",B.Half2Dots="2..",B.Half3Dots="2...",B.Half4Dots="2....",B.Half5Dots="2.....",B.Quarter="4n",B.QuarterTriplet="4t",B.QuarterDot="4.",B.Quarter2Dots="4..",B.Quarter3Dots="4...",B.Quarter4Dots="4....",B.Eighth="8n",B.EighthTriplet="8t",B.EighthDot="8.",B.Eighth2Dots="8..",B.Eighth3Dots="8...",B.Sixteenth="16n",B.SixteenthTriplet="16t",B.SixteenthDot="16.",B.Sixteenth2Dots="16..",B.ThirtySecond="32n",B.ThirtySecondTriplet="32t",B.ThirtySecondDot="32.",B.SixtyFourth="64n",B.SixtyFourthTriplet="64t",B))(er||{});function rr(i){return y.isEnumValue(i,er)}function Lr(i){if(rr(i))return i;throw new N(1,`Invalid noteLength: ${i}`)}var de=class de{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=Lr(t),this.noteSize=parseInt(t),this.isTriplet=t.endsWith("t"),this.maxDotCount=this.isTriplet?0:Math.floor(Math.log2(de.ShortestNoteSize/this.noteSize)),this.dotCount=H.Str.charCount(t,"."),this.flagCount=this.noteSize>4?Math.floor(Math.log2(this.noteSize/4)):0,this.ticks=jA*de.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 de(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 de?t.noteSize:typeof t=="number"?t:de.get(t).noteSize,n=e instanceof de?e.noteSize:typeof e=="number"?e:de.get(e).noteSize;return H.Math.cmp(n,r)}static equals(t,e){let r=t instanceof de?t.noteSize:typeof t=="number"?t:de.get(t).noteSize,n=e instanceof de?e.noteSize:typeof e=="number"?e:de.get(e).noteSize;return r===n}};d(de,"LongestNoteSize",Math.min(...H.Enum.getEnumValues(er).map(t=>parseInt(t)))),d(de,"ShortestNoteSize",Math.max(...H.Enum.getEnumValues(er).map(t=>parseInt(t)))),d(de,"cache",new pt);var Tt=de;function zs(i){return y.isObject(i)&&y.isIntegerBetween(i.parts,2,bl)&&y.isIntegerBetween(i.inTimeOf,2,bl)}function xl(i){if(zs(i))return i;throw new N(2,`Invalid tupletRatio ${JSON.stringify(i)}`)}var jr={Duplet:{parts:2,inTimeOf:3},Triplet:{parts:3,inTimeOf:2},Quadruplet:{parts:4,inTimeOf:3}},Ii=class Ii{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=Lr(t);let n=Tt.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=xl(r):n.isTriplet?this.tupletRatio=jr.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=Ii.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 Ii(t,e,r):this.cache.getOrCreate(t,()=>new Ii(t))}static cmp(t,e){return H.Math.cmp(t.ticks,e.ticks)}static equals(t,e){return t.ticks===e.ticks}};d(Ii,"NoteSymbolMap",new Ar([[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(Ii,"cache",new pt);var Xt=Ii;var lo=(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))(lo||{}),Si=(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))(Si||{}),ri=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],lo)){let o=t[0].split("/");this.beatCount=+o[0],this.beatSize=+o[1],y.isEnumValue(t[1],Si)&&(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],Si)&&(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}=Tt.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}},du;function Ys(){return du||(du=new ri(4,4)),du}var pu;function Hs(){return pu||(pu={beatsPerMinute:120,options:{beatLength:"4n",dotCount:0}}),pu}function Zs(i){return Xt.get(i.options.beatLength,i.options.dotCount).toString()+"="+i.beatsPerMinute}function mu(i,t){return{beatsPerMinute:i.beatsPerMinute*t,options:{beatLength:i.options.beatLength,dotCount:i.options.dotCount}}}_i();function Xs(i){return!isFinite(i)||i<=0?-1/0:20*Math.log10(i)}var po="15.1.22";var gu=(i,t,e)=>({endTime:t,insertTime:e,type:"exponentialRampToValue",value:i});var yu=(i,t,e)=>({endTime:t,insertTime:e,type:"linearRampToValue",value:i});var tn=(i,t)=>({startTime:t,type:"setValue",value:i});var mo=(i,t,e)=>({duration:e,startTime:t,type:"setValueCurve",values:i});var $s=(i,t,{startTime:e,target:r,timeConstant:n})=>r+(t-r)*Math.exp((e-i)/n);var Pr=i=>i.type==="exponentialRampToValue";var wi=i=>i.type==="linearRampToValue";var ir=i=>Pr(i)||wi(i);var en=i=>i.type==="setValue";var Ve=i=>i.type==="setValueCurve";var rn=(i,t,e,r)=>{let n=i[t];return n===void 0?r:ir(n)||en(n)?n.value:Ve(n)?n.values[n.values.length-1]:$s(e,rn(i,t-1,n.startTime,r),n)};var bu=(i,t,e,r,n)=>e===void 0?[r.insertTime,n]:ir(e)?[e.endTime,e.value]:en(e)?[e.startTime,e.value]:Ve(e)?[e.startTime+e.duration,e.values[e.values.length-1]]:[e.startTime,rn(i,t-1,e.startTime,n)];var fo=i=>i.type==="cancelAndHold";var go=i=>i.type==="cancelScheduledValues";var Fr=i=>fo(i)||go(i)?i.cancelTime:Pr(i)||wi(i)?i.endTime:i.startTime;var xu=(i,t,e,{endTime:r,value:n})=>e===n?n:0<e&&0<n||e<0&&n<0?e*jh(n/e,(i-t)/(r-t)):0;var Au=(i,t,e,{endTime:r,value:n})=>e+(i-t)/(r-t)*(n-e);var Al=(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 Cl=(i,{duration:t,startTime:e,values:r})=>{let n=(i-e)/t*(r.length-1);return Al(r,n)};var yo=i=>i.type==="setTarget";var bo=class{constructor(t){this._automationEvents=[],this._currenTime=0,this._defaultValue=t}[Symbol.iterator](){return this._automationEvents[Symbol.iterator]()}add(t){let e=Fr(t);if(fo(t)||go(t)){let r=this._automationEvents.findIndex(o=>go(t)&&Ve(o)?o.startTime+o.duration>=e:Fr(o)>=e),n=this._automationEvents[r];if(r!==-1&&(this._automationEvents=this._automationEvents.slice(0,r)),fo(t)){let o=this._automationEvents[this._automationEvents.length-1];if(n!==void 0&&ir(n)){if(o!==void 0&&yo(o))throw new Error("The internal list is malformed.");let s=o===void 0?n.insertTime:Ve(o)?o.startTime+o.duration:Fr(o),a=o===void 0?this._defaultValue:Ve(o)?o.values[o.values.length-1]:o.value,c=Pr(n)?xu(e,s,a,n):Au(e,s,a,n),u=Pr(n)?gu(c,e,this._currenTime):yu(c,e,this._currenTime);this._automationEvents.push(u)}if(o!==void 0&&yo(o)&&this._automationEvents.push(tn(this.getValue(e),e)),o!==void 0&&Ve(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,l=o.values.slice(0,c);if(u<1)for(let h=1;h<c;h+=1){let p=u*h%1;l[h]=o.values[h-1]*(1-p)+o.values[h]*p}this._automationEvents[this._automationEvents.length-1]=mo(l,o.startTime,s)}}}else{let r=this._automationEvents.findIndex(s=>Fr(s)>e),n=r===-1?this._automationEvents[this._automationEvents.length-1]:this._automationEvents[r-1];if(n!==void 0&&Ve(n)&&Fr(n)+n.duration>e)return!1;let o=Pr(t)?gu(t.value,t.endTime,this._currenTime):wi(t)?yu(t.value,e,this._currenTime):t;if(r===-1)this._automationEvents.push(o);else{if(Ve(t)&&e+t.duration>Fr(this._automationEvents[r]))return!1;this._automationEvents.splice(r,0,o)}}return!0}flush(t){let e=this._automationEvents.findIndex(r=>Fr(r)>t);if(e>1){let r=this._automationEvents.slice(e-1),n=r[0];yo(n)&&r.unshift(tn(rn(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=>Fr(s)>t),r=this._automationEvents[e],n=(e===-1?this._automationEvents.length:e)-1,o=this._automationEvents[n];if(o!==void 0&&yo(o)&&(r===void 0||!ir(r)||r.insertTime>t))return $s(t,rn(this._automationEvents,n-1,o.startTime,this._defaultValue),o);if(o!==void 0&&en(o)&&(r===void 0||!ir(r)))return o.value;if(o!==void 0&&Ve(o)&&(r===void 0||!ir(r)||o.startTime+o.duration>t))return t<o.startTime+o.duration?Cl(t,o):o.values[o.values.length-1];if(o!==void 0&&ir(o)&&(r===void 0||!ir(r)))return o.value;if(r!==void 0&&Pr(r)){let[s,a]=bu(this._automationEvents,n,o,r,this._defaultValue);return xu(t,s,a,r)}if(r!==void 0&&wi(r)){let[s,a]=bu(this._automationEvents,n,o,r,this._defaultValue);return Au(t,s,a,r)}return this._defaultValue}};var Cu=i=>({cancelTime:i,type:"cancelAndHold"});var _u=i=>({cancelTime:i,type:"cancelScheduledValues"});var vu=(i,t)=>({endTime:t,type:"exponentialRampToValue",value:i});var Iu=(i,t)=>({endTime:t,type:"linearRampToValue",value:i});var Su=(i,t,e)=>({startTime:t,target:i,timeConstant:e,type:"setTarget"});var _l=()=>new DOMException("","AbortError");var vl=i=>(t,e,[r,n,o],s)=>{i(t[n],[e,r,o],a=>a[0]===e&&a[1]===r,s)};var Il=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 Sl=i=>(t,e)=>{i.set(t,{activeInputs:new Set,passiveInputs:new WeakMap,renderer:e})};var Cr=new WeakSet,Qs=new WeakMap,nn=new WeakMap,Ks=new WeakMap,xo=new WeakMap,on=new WeakMap,Js=new WeakMap,Ao=new WeakMap,Co=new WeakMap,_o=new WeakMap;var wl={construct(){return wl}},Nl=i=>{try{let t=new Proxy(i,wl);new t}catch(t){return!1}return!0};var Tl=/^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]*);?/,wu=(i,t)=>{let e=[],r=i.replace(/^[\s]+/,""),n=r.match(Tl);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(Tl)}return[e.join(";"),r]};var Ol=i=>{if(i!==void 0&&!Array.isArray(i))throw new TypeError("The parameterDescriptors property of given value for processorCtor is not an array.")},Rl=i=>{if(!Nl(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.")},Ml=(i,t,e,r,n,o,s,a,c,u,l,h,p)=>{let m=0;return(f,g,b={credentials:"omit"})=>{let x=l.get(f);if(x!==void 0&&x.has(g))return Promise.resolve();let C=u.get(f);if(C!==void 0){let I=C.get(g);if(I!==void 0)return I}let S=o(f),T=S.audioWorklet===void 0?n(g).then(([I,v])=>{let[A,_]=wu(I,v),E=`${A};((a,b)=>{(a[b]=a[b]||[]).push((AudioWorkletProcessor,global,registerProcessor,sampleRate,self,window)=>{${_}
3
- })})(window,'_AWGS')`;return e(E)}).then(()=>{let I=p._AWGS.pop();if(I===void 0)throw new SyntaxError;r(S.currentTime,S.sampleRate,()=>I(class{},void 0,(v,A)=>{if(v.trim()==="")throw t();let _=Co.get(S);if(_!==void 0){if(_.has(v))throw t();Rl(A),Ol(A.parameterDescriptors),_.set(v,A)}else Rl(A),Ol(A.parameterDescriptors),Co.set(S,new Map([[v,A]]))},S.sampleRate,void 0,void 0))}):Promise.all([n(g),Promise.resolve(i(h,h))]).then(([[I,v],A])=>{let _=m+1;m=_;let[E,V]=wu(I,v),D=`${E};((AudioWorkletProcessor,registerProcessor)=>{${V}
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}})`,k=new Blob([D],{type:"application/javascript; charset=utf-8"}),j=URL.createObjectURL(k);return S.audioWorklet.addModule(j,b).then(()=>{if(a(S))return S;let q=s(S);return q.audioWorklet.addModule(j,b).then(()=>q)}).then(q=>{if(c===null)throw new SyntaxError;try{new c(q,`__sac${_}`)}catch(K){throw new SyntaxError}}).finally(()=>URL.revokeObjectURL(j))});return C===void 0?u.set(f,new Map([[g,T]])):C.set(g,T),T.then(()=>{let I=l.get(f);I===void 0?l.set(f,new Set([g])):I.add(g)}).finally(()=>{let I=u.get(f);I!==void 0&&I.delete(g)}),T}};var $t=(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 ii=(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 ta=(i,t,e,r)=>{let n=$t(i,t),o=ii(n,s=>s[0]===e&&s[1]===r);return n.size===0&&i.delete(t),o};var _r=i=>$t(Js,i);var nr=i=>{if(Cr.has(i))throw new Error("The AudioNode is already stored.");Cr.add(i),_r(i).forEach(t=>t(!0))};var ea=i=>"port"in i;var vr=i=>{if(!Cr.has(i))throw new Error("The AudioNode is not stored.");Cr.delete(i),_r(i).forEach(t=>t(!1))};var vo=(i,t)=>{!ea(i)&&t.every(e=>e.size===0)&&vr(i)};var El=(i,t,e,r,n,o,s,a,c,u,l,h,p)=>{let m=new WeakMap;return(f,g,b,x,C)=>{let{activeInputs:S,passiveInputs:T}=o(g),{outputs:I}=o(f),v=a(f),A=_=>{let E=c(g),V=c(f);if(_){let M=ta(T,f,b,x);i(S,f,M,!1),!C&&!h(f)&&e(V,E,b,x),p(g)&&nr(g)}else{let M=r(S,f,b,x);t(T,x,M,!1),!C&&!h(f)&&n(V,E,b,x);let R=s(g);if(R===0)l(g)&&vo(g,S);else{let P=m.get(g);P!==void 0&&clearTimeout(P),m.set(g,setTimeout(()=>{l(g)&&vo(g,S)},R*1e3))}}};return u(I,[g,b,x],_=>_[0]===g&&_[1]===b&&_[2]===x,!0)?(v.add(A),l(f)?i(S,f,[b,x,A],!0):t(T,x,[f,b,A],!0),!0):!1}};var Dl=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 kl=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 Ll=i=>(t,e)=>{i(t).add(e)};var PA={channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",fftSize:2048,maxDecibels:-30,minDecibels:-100,smoothingTimeConstant:.8},jl=(i,t,e,r,n,o)=>class extends i{constructor(a,c){let u=n(a),l=O(O({},PA),c),h=r(u,l),p=o(u)?t():null;super(a,!1,h,p),this._nativeAnalyserNode=h}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 _t=(i,t)=>i.context===t;var Pl=(i,t,e)=>()=>{let r=new WeakMap,n=(o,s)=>J(null,null,function*(){let a=t(o);if(!_t(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 sn=i=>{try{i.copyToChannel(new Float32Array(1),0,-1)}catch(t){return!1}return!0};var qe=()=>new DOMException("","IndexSizeError");var an=i=>{i.getChannelData=(t=>e=>{try{return t.call(i,e)}catch(r){throw r.code===12?qe():r}})(i.getChannelData)};var FA={numberOfChannels:1},Fl=(i,t,e,r,n,o,s,a)=>{let c=null;return class Bl{constructor(l){if(n===null)throw new Error("Missing the native OfflineAudioContext constructor.");let{length:h,numberOfChannels:p,sampleRate:m}=O(O({},FA),l);c===null&&(c=new n(1,1,44100));let f=r!==null&&t(o,o)?new r({length:h,numberOfChannels:p,sampleRate:m}):c.createBuffer(p,h,m);if(f.numberOfChannels===0)throw e();return typeof f.copyFromChannel!="function"?(s(f),an(f)):t(sn,()=>sn(f))||a(f),i.add(f),f}static[Symbol.hasInstance](l){return l!==null&&typeof l=="object"&&Object.getPrototypeOf(l)===Bl.prototype||i.has(l)}}};var Ut=-34028234663852886e22,Gt=-Ut;var xe=i=>Cr.has(i);var BA={buffer:null,channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",loop:!1,loopEnd:0,loopStart:0,playbackRate:1},Gl=(i,t,e,r,n,o,s,a)=>class extends i{constructor(u,l){let h=o(u),p=O(O({},BA),l),m=n(h,p),f=s(h),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,Gt,Ut)}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 l=typeof u=="function"?a(this,u):null;this._nativeAudioBufferSourceNode.onended=l;let h=this._nativeAudioBufferSourceNode.onended;this._onended=h!==null&&h===l?u:h}get playbackRate(){return this._playbackRate}start(u=0,l=0,h){if(this._nativeAudioBufferSourceNode.start(u,l,h),this._audioBufferSourceNodeRenderer!==null&&(this._audioBufferSourceNodeRenderer.start=h===void 0?[u,l]:[u,l,h]),this.context.state!=="closed"){nr(this);let p=()=>{this._nativeAudioBufferSourceNode.removeEventListener("ended",p),xe(this)&&vr(this)};this._nativeAudioBufferSourceNode.addEventListener("ended",p)}}stop(u=0){this._nativeAudioBufferSourceNode.stop(u),this._audioBufferSourceNodeRenderer!==null&&(this._audioBufferSourceNodeRenderer.stop=u)}};var Vl=(i,t,e,r,n)=>()=>{let o=new WeakMap,s=null,a=null,c=(u,l)=>J(null,null,function*(){let h=e(u),p=_t(h,l);if(!p){let m={buffer:h.buffer,channelCount:h.channelCount,channelCountMode:h.channelCountMode,channelInterpretation:h.channelInterpretation,loop:h.loop,loopEnd:h.loopEnd,loopStart:h.loopStart,playbackRate:h.playbackRate.value};h=t(l,m),s!==null&&h.start(...s),a!==null&&h.stop(a)}return o.set(l,h),p?yield i(l,u.playbackRate,h.playbackRate):yield r(l,u.playbackRate,h.playbackRate),yield n(u,l,h),h});return{set start(u){s=u},set stop(u){a=u},render(u,l){let h=o.get(l);return h!==void 0?Promise.resolve(h):c(u,l)}}};var ql=i=>"playbackRate"in i;var Wl=i=>"frequency"in i&&"gain"in i;var Ul=i=>"offset"in i;var zl=i=>!("frequency"in i)&&"gain"in i;var Yl=i=>"detune"in i&&"frequency"in i&&!("gain"in i);var Hl=i=>"pan"in i;var re=i=>$t(Qs,i);var ni=i=>$t(Ks,i);var ra=(i,t)=>{let{activeInputs:e}=re(i);e.forEach(n=>n.forEach(([o])=>{t.includes(i)||ra(o,[...t,i])}));let r=ql(i)?[i.playbackRate]:ea(i)?Array.from(i.parameters.values()):Wl(i)?[i.Q,i.detune,i.frequency,i.gain]:Ul(i)?[i.offset]:zl(i)?[i.gain]:Yl(i)?[i.detune,i.frequency]:Hl(i)?[i.pan]:[];for(let n of r){let o=ni(n);o!==void 0&&o.activeInputs.forEach(([s])=>ra(s,t))}xe(i)&&vr(i)};var oi=i=>{ra(i.destination,[])};var ia=i=>i===void 0||typeof i=="number"||typeof i=="string"&&(i==="balanced"||i==="interactive"||i==="playback");var Zl=(i,t,e,r,n,o,s,a,c)=>class extends i{constructor(l={}){if(c===null)throw new Error("Missing the native AudioContext constructor.");let h;try{h=new c(l)}catch(f){throw f.code===12&&f.message==="sampleRate is not in range"?e():f}if(h===null)throw r();if(!ia(l.latencyHint))throw new TypeError(`The provided value '${l.latencyHint}' is not a valid enum value of type AudioContextLatencyCategory.`);if(l.sampleRate!==void 0&&h.sampleRate!==l.sampleRate)throw e();super(h,2);let{latencyHint:p}=l,{sampleRate:m}=h;if(this._baseLatency=typeof h.baseLatency=="number"?h.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=h,c.name==="webkitAudioContext"?(this._nativeGainNode=h.createGain(),this._nativeOscillatorNode=h.createOscillator(),this._nativeGainNode.gain.value=1e-37,this._nativeOscillatorNode.connect(this._nativeGainNode).connect(h.destination),this._nativeOscillatorNode.start()):(this._nativeGainNode=null,this._nativeOscillatorNode=null),this._state=null,h.state==="running"){this._state="suspended";let f=()=>{this._state==="suspended"&&(this._state=null),h.removeEventListener("statechange",f)};h.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()),oi(this)}))}createMediaElementSource(l){return new n(this,{mediaElement:l})}createMediaStreamDestination(){return new o(this)}createMediaStreamSource(l){return new s(this,{mediaStream:l})}createMediaStreamTrackSource(l){return new a(this,{mediaStreamTrack:l})}resume(){return this._state==="suspended"?new Promise((l,h)=>{let p=()=>{this._nativeAudioContext.removeEventListener("statechange",p),this._nativeAudioContext.state==="running"?l():this.resume().then(l,h)};this._nativeAudioContext.addEventListener("statechange",p)}):this._nativeAudioContext.resume().catch(l=>{throw l===void 0||l.code===15?t():l})}suspend(){return this._nativeAudioContext.suspend().catch(l=>{throw l===void 0?t():l})}};var Xl=(i,t,e,r,n,o,s,a)=>class extends i{constructor(u,l){let h=o(u),p=s(h),m=n(h,l,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 $l=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 Ql=(i,t,e,r,n,o,s,a)=>(c,u)=>{let l=u.listener,h=()=>{let I=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],V=[0,0,0],M=()=>{if(_)return;_=!0;let k=r(u,256,9,0);k.onaudioprocess=({inputBuffer:j})=>{let q=[o(j,I,0),o(j,I,1),o(j,I,2),o(j,I,3),o(j,I,4),o(j,I,5)];q.some((Z,B)=>Z!==E[B])&&(l.setOrientation(...q),E=q);let K=[o(j,I,6),o(j,I,7),o(j,I,8)];K.some((Z,B)=>Z!==V[B])&&(l.setPosition(...K),V=K)},v.connect(k)},R=k=>j=>{j!==E[k]&&(E[k]=j,l.setOrientation(...E))},P=k=>j=>{j!==V[k]&&(V[k]=j,l.setPosition(...V))},D=(k,j,q)=>{let K=e(u,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",offset:j});K.connect(v,0,k),K.start(),Object.defineProperty(K.offset,"defaultValue",{get(){return j}});let Z=i({context:c},A,K.offset,Gt,Ut);return a(Z,"value",B=>()=>B.call(Z),B=>dt=>{try{B.call(Z,dt)}catch(Ct){if(Ct.code!==9)throw Ct}M(),A&&q(dt)}),Z.cancelAndHoldAtTime=(B=>A?()=>{throw n()}:(...dt)=>{let Ct=B.apply(Z,dt);return M(),Ct})(Z.cancelAndHoldAtTime),Z.cancelScheduledValues=(B=>A?()=>{throw n()}:(...dt)=>{let Ct=B.apply(Z,dt);return M(),Ct})(Z.cancelScheduledValues),Z.exponentialRampToValueAtTime=(B=>A?()=>{throw n()}:(...dt)=>{let Ct=B.apply(Z,dt);return M(),Ct})(Z.exponentialRampToValueAtTime),Z.linearRampToValueAtTime=(B=>A?()=>{throw n()}:(...dt)=>{let Ct=B.apply(Z,dt);return M(),Ct})(Z.linearRampToValueAtTime),Z.setTargetAtTime=(B=>A?()=>{throw n()}:(...dt)=>{let Ct=B.apply(Z,dt);return M(),Ct})(Z.setTargetAtTime),Z.setValueAtTime=(B=>A?()=>{throw n()}:(...dt)=>{let Ct=B.apply(Z,dt);return M(),Ct})(Z.setValueAtTime),Z.setValueCurveAtTime=(B=>A?()=>{throw n()}:(...dt)=>{let Ct=B.apply(Z,dt);return M(),Ct})(Z.setValueCurveAtTime),Z};return{forwardX:D(0,0,R(0)),forwardY:D(1,0,R(1)),forwardZ:D(2,-1,R(2)),positionX:D(6,0,P(0)),positionY:D(7,0,P(1)),positionZ:D(8,0,P(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}=l.forwardX===void 0?h():l;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 Ni=i=>"context"in i;var si=i=>Ni(i[0]);var or=(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 Nu=(i,t,[e,r],n)=>{or(i,[t,e,r],o=>o[0]===t&&o[1]===e,n)};var Tu=(i,[t,e,r],n)=>{let o=i.get(t);o===void 0?i.set(t,new Set([[e,r]])):or(o,[e,r],s=>s[0]===e,n)};var We=i=>"inputs"in i;var cn=(i,t,e,r)=>{if(We(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 Ou=(i,t,e)=>{for(let r of i)if(r[0]===t&&r[1]===e)return i.delete(r),r;return null};var Kl=(i,t,e)=>ii(i,r=>r[0]===t&&r[1]===e);var Ru=(i,t)=>{if(!_r(i).delete(t))throw new Error("Missing the expected event listener.")};var Mu=(i,t,e)=>{let r=$t(i,t),n=ii(r,o=>o[0]===e);return r.size===0&&i.delete(t),n};var un=(i,t,e,r)=>{We(t)?i.disconnect(t.inputs[r],e,0):i.disconnect(t,e,r)};var Ot=i=>$t(nn,i);var Ti=i=>$t(xo,i);var Br=i=>Ao.has(i);var hn=i=>!Cr.has(i);var Eu=(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,l=>l===1)?e(!0):e(!1),a.stop(),r.onaudioprocess=null,a.disconnect(r),r.disconnect(i.destination)},a.start()}});var na=(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 Oi=i=>"context"in i;var Jl=i=>{let t=new Map;i.connect=(e=>(r,n=0,o=0)=>{let s=Oi(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=>{Oi(s)?i.connect(s,c.output,c.input):i.connect(s,c.output)})})(i.disconnect)};var GA=(i,t,e,r)=>{let{activeInputs:n,passiveInputs:o}=ni(t),{outputs:s}=re(i),a=_r(i),c=u=>{let l=Ot(i),h=Ti(t);if(u){let p=Mu(o,i,e);Nu(n,i,p,!1),!r&&!Br(i)&&l.connect(h,e)}else{let p=Kl(n,i,e);Tu(o,p,!1),!r&&!Br(i)&&l.disconnect(h,e)}};return or(s,[t,e],u=>u[0]===t&&u[1]===e,!0)?(a.add(c),xe(i)?Nu(n,i,[e,c],!0):Tu(o,[i,e,c],!0),!0):!1},VA=(i,t,e,r)=>{let{activeInputs:n,passiveInputs:o}=re(t),s=Ou(n[r],i,e);return s===null?[ta(o,i,e,r)[2],!1]:[s[2],!0]},qA=(i,t,e)=>{let{activeInputs:r,passiveInputs:n}=ni(t),o=Ou(r,i,e);return o===null?[Mu(n,i,e)[1],!1]:[o[2],!0]},Du=(i,t,e,r,n)=>{let[o,s]=VA(i,e,r,n);if(o!==null&&(Ru(i,o),s&&!t&&!Br(i)&&un(Ot(i),Ot(e),r,n)),xe(e)){let{activeInputs:a}=re(e);vo(e,a)}},ku=(i,t,e,r)=>{let[n,o]=qA(i,e,r);n!==null&&(Ru(i,n),o&&!t&&!Br(i)&&Ot(i).disconnect(Ti(e),r))},WA=(i,t)=>{let e=re(i),r=[];for(let n of e.outputs)si(n)?Du(i,t,...n):ku(i,t,...n),r.push(n[0]);return e.outputs.clear(),r},UA=(i,t,e)=>{let r=re(i),n=[];for(let o of r.outputs)o[1]===e&&(si(o)?Du(i,t,...o):ku(i,t,...o),n.push(o[0]),r.outputs.delete(o));return n},zA=(i,t,e,r,n)=>{let o=re(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=>(si(s)?Du(i,t,...s):ku(i,t,...s),o.outputs.delete(s),s[0]))},td=(i,t,e,r,n,o,s,a,c,u,l,h,p,m,f,g)=>class extends u{constructor(x,C,S,T){super(S),this._context=x,this._nativeAudioNode=S;let I=l(x);h(I)&&e(Eu,()=>Eu(I,g))!==!0&&Jl(S),nn.set(this,S),Js.set(this,new Set),x.state!=="closed"&&C&&nr(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=l(this._context),I=f(T);if(p(x)||m(x))throw o();if(Ni(x)){let _=Ot(x);try{let V=cn(this._nativeAudioNode,_,C,S),M=hn(this);(I||M)&&this._nativeAudioNode.disconnect(...V),this.context.state!=="closed"&&!M&&hn(x)&&nr(x)}catch(V){throw V.code===12?o():V}if(t(this,x,C,S,I)){let V=c([this],x);na(V,r(I))}return x}let v=Ti(x);if(v.name==="playbackRate"&&v.maxValue===1024)throw s();try{this._nativeAudioNode.connect(v,C),(I||hn(this))&&this._nativeAudioNode.disconnect(v,C)}catch(_){throw _.code===12?o():_}if(GA(this,x,C,I)){let _=c([this],x);na(_,r(I))}}disconnect(x,C,S){let T,I=l(this._context),v=f(I);if(x===void 0)T=WA(this,v);else if(typeof x=="number"){if(x<0||x>=this.numberOfOutputs)throw n();T=UA(this,v,x)}else{if(C!==void 0&&(C<0||C>=this.numberOfOutputs)||Ni(x)&&S!==void 0&&(S<0||S>=x.numberOfInputs))throw n();if(T=zA(this,v,x,C,S),T.length===0)throw o()}for(let A of T){let _=c([this],A);na(_,a)}}};var ed=(i,t,e,r,n,o,s,a,c,u,l,h,p)=>(m,f,g,b=null,x=null)=>{let C=g.value,S=new bo(C),T=f?r(S):null,I={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,I.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 I},cancelScheduledValues(v){return T===null&&S.flush(m.context.currentTime),S.add(o(v)),g.cancelScheduledValues(v),I},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),I},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),I},setTargetAtTime(v,A,_){return T===null&&S.flush(m.context.currentTime),S.add(c(v,A,_)),g.setTargetAtTime(v,A,_),I},setValueAtTime(v,A){return T===null&&S.flush(m.context.currentTime),S.add(u(v,A)),g.setValueAtTime(v,A),I},setValueCurveAtTime(v,A,_){let E=v instanceof Float32Array?v:new Float32Array(v);if(h!==null&&h.name==="webkitAudioContext"){let V=A+_,M=m.context.sampleRate,R=Math.ceil(A*M),P=Math.floor(V*M),D=P-R,k=new Float32Array(D);for(let q=0;q<D;q+=1){let K=(E.length-1)/_*((R+q)/M-A),Z=Math.floor(K),B=Math.ceil(K);k[q]=Z===B?E[Z]:(1-(K-Z))*E[Z]+(1-(B-K))*E[B]}T===null&&S.flush(m.context.currentTime),S.add(l(k,A,_)),g.setValueCurveAtTime(k,A,_);let j=P/M;j<V&&p(I,k[k.length-1],j),p(I,E[E.length-1],V)}else T===null&&S.flush(m.context.currentTime),S.add(l(E,A,_)),g.setValueCurveAtTime(E,A,_);return I}};return e.set(I,g),t.set(I,m),i(I,T),I};var rd=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 ln=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 YA={channelCount:2,channelCountMode:"explicit",channelInterpretation:"speakers",numberOfInputs:1,numberOfOutputs:1,parameterData:{},processorOptions:{}},id=(i,t,e,r,n,o,s,a,c,u,l,h,p,m)=>class extends t{constructor(g,b,x){var C;let S=a(g),T=c(S),I=l(O(O({},YA),x));p(I);let v=Co.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,I),V=T?r(b,I,A):null;super(g,!0,E,V);let M=[];E.parameters.forEach((P,D)=>{let k=e(this,T,P);M.push([D,k])}),this._nativeAudioWorkletNode=E,this._onprocessorerror=null,this._parameters=new ln(M),T&&i(S,this);let{activeInputs:R}=o(this);h(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 dn(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 oa=(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 pn=(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 nd=(i,t)=>{let e=$t(_o,i),r=Ot(t);return $t(e,r)};var HA=(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),l=u===0?null:e.createBuffer(u,a,e.sampleRate);if(o===void 0)throw new Error("Missing the processor constructor.");let h=re(i),p=yield nd(e,i),m=pn(r.numberOfInputs,r.channelCount),f=pn(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)dn(t,m[x],C,C,b);o.parameterDescriptors!==void 0&&t!==null&&o.parameterDescriptors.forEach(({name:x},C)=>{dn(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)=>h.activeInputs[T].size===0?[]:S),C=s(b/e.sampleRate,e.sampleRate,()=>p.process(x,f,g));if(l!==null)for(let S=0,T=0;S<r.numberOfOutputs;S+=1){for(let I=0;I<n[S];I+=1)oa(l,f[S],I,T+I,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 l}),od=(i,t,e,r,n,o,s,a,c,u,l,h,p,m,f,g)=>(b,x,C)=>{let S=new WeakMap,T=null,I=(v,A)=>J(null,null,function*(){let _=l(v),E=null,V=_t(_,A),M=Array.isArray(x.outputChannelCount)?x.outputChannelCount:Array.from(x.outputChannelCount);if(h===null){let R=M.reduce((j,q)=>j+q,0),P=n(A,{channelCount:Math.max(1,R),channelCountMode:"explicit",channelInterpretation:"discrete",numberOfOutputs:Math.max(1,R)}),D=[];for(let j=0;j<v.numberOfOutputs;j+=1)D.push(r(A,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"speakers",numberOfInputs:M[j]}));let k=s(A,{channelCount:x.channelCount,channelCountMode:x.channelCountMode,channelInterpretation:x.channelInterpretation,gain:1});k.connect=t.bind(null,D),k.disconnect=c.bind(null,D),E=[P,D,k]}else V||(_=new h(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 q=v.channelCount*v.numberOfInputs,K=C.parameterDescriptors===void 0?0:C.parameterDescriptors.length,Z=q+K;T=HA(v,Z===0?null:yield J(null,null,function*(){let dt=new p(Z,Math.ceil(v.context.length/128)*128,A.sampleRate),Ct=[],Wt=[];for(let Nt=0;Nt<x.numberOfInputs;Nt+=1)Ct.push(s(dt,{channelCount:x.channelCount,channelCountMode:x.channelCountMode,channelInterpretation:x.channelInterpretation,gain:1})),Wt.push(n(dt,{channelCount:x.channelCount,channelCountMode:"explicit",channelInterpretation:"discrete",numberOfOutputs:x.channelCount}));let Ee=yield Promise.all(Array.from(v.parameters.values()).map(Nt=>J(null,null,function*(){let ct=o(dt,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",offset:Nt.value});return yield m(dt,Nt,ct.offset),ct}))),De=r(dt,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"speakers",numberOfInputs:Math.max(1,q+K)});for(let Nt=0;Nt<x.numberOfInputs;Nt+=1){Ct[Nt].connect(Wt[Nt]);for(let ct=0;ct<x.channelCount;ct+=1)Wt[Nt].connect(De,ct,Nt*x.channelCount+ct)}for(let[Nt,ct]of Ee.entries())ct.connect(De,0,q+Nt),ct.start(0);return De.connect(dt.destination),yield Promise.all(Ct.map(Nt=>f(v,dt,Nt))),g(dt)}),A,x,M,C,u)}let R=yield T,P=e(A,{buffer:null,channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",loop:!1,loopEnd:0,loopStart:0,playbackRate:1}),[D,k,j]=E;R!==null&&(P.buffer=R,P.start(0)),P.connect(D);for(let q=0,K=0;q<v.numberOfOutputs;q+=1){let Z=k[q];for(let B=0;B<M[q];B+=1)D.connect(Z,K+B,B);K+=M[q]}return j}if(V)for(let[R,P]of v.parameters.entries())yield i(A,P,_.parameters.get(R));else for(let[R,P]of v.parameters.entries())yield m(A,P,_.parameters.get(R));return yield f(v,A,_),_});return{render(v,A){a(A,v);let _=S.get(A);return _!==void 0?Promise.resolve(_):I(v,A)}}};var sd=(i,t,e,r,n,o,s,a,c,u,l,h,p,m,f,g,b,x,C,S)=>class extends f{constructor(I,v){super(I,v),this._nativeContext=I,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(I,v,A){return new e({length:v,numberOfChannels:I,sampleRate:A})}createBufferSource(){return new r(this)}createChannelMerger(I=6){return new o(this,{numberOfInputs:I})}createChannelSplitter(I=6){return new s(this,{numberOfOutputs:I})}createConstantSource(){return new a(this)}createConvolver(){return new c(this)}createDelay(I=1){return new l(this,{maxDelayTime:I})}createDynamicsCompressor(){return new h(this)}createGain(){return new p(this)}createIIRFilter(I,v){return new m(this,{feedback:v,feedforward:I})}createOscillator(){return new g(this)}createPanner(){return new b(this)}createPeriodicWave(I,v,A={disableNormalization:!1}){return new x(this,Q(O({},A),{imag:v,real:I}))}createStereoPanner(){return new C(this)}createWaveShaper(){return new S(this)}decodeAudioData(I,v,A){return u(this._nativeContext,I).then(_=>(typeof v=="function"&&v(_),_),_=>{throw typeof A=="function"&&A(_),_})}};var ZA={Q:1,channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",detune:0,frequency:350,gain:0,type:"lowpass"},ad=(i,t,e,r,n,o,s,a)=>class extends i{constructor(u,l){let h=o(u),p=O(O({},ZA),l),m=n(h,p),f=s(h),g=f?e():null;super(u,!1,m,g),this._Q=t(this,f,m.Q,Gt,Ut),this._detune=t(this,f,m.detune,1200*Math.log2(Gt),-1200*Math.log2(Gt)),this._frequency=t(this,f,m.frequency,u.sampleRate/2,0),this._gain=t(this,f,m.gain,40*Math.log10(Gt),Ut),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,l,h){try{this._nativeBiquadFilterNode.getFrequencyResponse(u,l,h)}catch(p){throw p.code===11?r():p}if(u.length!==l.length||l.length!==h.length)throw r()}};var cd=(i,t,e,r,n)=>()=>{let o=new WeakMap,s=(a,c)=>J(null,null,function*(){let u=e(a),l=_t(u,c);if(!l){let h={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,h)}return o.set(c,u),l?(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 ud=(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 XA={channelCount:1,channelCountMode:"explicit",channelInterpretation:"speakers",numberOfInputs:6},hd=(i,t,e,r,n)=>class extends i{constructor(s,a){let c=r(s),u=O(O({},XA),a),l=e(c,u),h=n(c)?t():null;super(s,!1,l,h)}};var ld=(i,t,e)=>()=>{let r=new WeakMap,n=(o,s)=>J(null,null,function*(){let a=t(o);if(!_t(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 $A={channelCount:6,channelCountMode:"explicit",channelInterpretation:"discrete",numberOfOutputs:6},dd=(i,t,e,r,n,o)=>class extends i{constructor(a,c){let u=r(a),l=o(O(O({},$A),c)),h=e(u,l),p=n(u)?t():null;super(a,!1,h,p)}};var pd=(i,t,e)=>()=>{let r=new WeakMap,n=(o,s)=>J(null,null,function*(){let a=t(o);if(!_t(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 md=i=>(t,e,r)=>i(e,t,r);var fd=i=>(t,e,r=0,n=0)=>{let o=t[r];if(o===void 0)throw i();return Oi(e)?o.connect(e,0,n):o.connect(e,0)};var gd=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 QA={channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",offset:1},yd=(i,t,e,r,n,o,s)=>class extends i{constructor(c,u){let l=n(c),h=O(O({},QA),u),p=r(l,h),m=o(l),f=m?e():null;super(c,!1,p,f),this._constantSourceNodeRenderer=f,this._nativeConstantSourceNode=p,this._offset=t(this,m,p.offset,Gt,Ut),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 l=this._nativeConstantSourceNode.onended;this._onended=l!==null&&l===u?c:l}start(c=0){if(this._nativeConstantSourceNode.start(c),this._constantSourceNodeRenderer!==null&&(this._constantSourceNodeRenderer.start=c),this.context.state!=="closed"){nr(this);let u=()=>{this._nativeConstantSourceNode.removeEventListener("ended",u),xe(this)&&vr(this)};this._nativeConstantSourceNode.addEventListener("ended",u)}}stop(c=0){this._nativeConstantSourceNode.stop(c),this._constantSourceNodeRenderer!==null&&(this._constantSourceNodeRenderer.stop=c)}};var bd=(i,t,e,r,n)=>()=>{let o=new WeakMap,s=null,a=null,c=(u,l)=>J(null,null,function*(){let h=e(u),p=_t(h,l);if(!p){let m={channelCount:h.channelCount,channelCountMode:h.channelCountMode,channelInterpretation:h.channelInterpretation,offset:h.offset.value};h=t(l,m),s!==null&&h.start(s),a!==null&&h.stop(a)}return o.set(l,h),p?yield i(l,u.offset,h.offset):yield r(l,u.offset,h.offset),yield n(u,l,h),h});return{set start(u){s=u},set stop(u){a=u},render(u,l){let h=o.get(l);return h!==void 0?Promise.resolve(h):c(u,l)}}};var xd=i=>t=>(i[0]=t,i[0]);var KA={buffer:null,channelCount:2,channelCountMode:"clamped-max",channelInterpretation:"speakers",disableNormalization:!1},Ad=(i,t,e,r,n,o)=>class extends i{constructor(a,c){let u=r(a),l=O(O({},KA),c),h=e(u,l),m=n(u)?t():null;super(a,!1,h,m),this._isBufferNullified=!1,this._nativeConvolverNode=h,l.buffer!==null&&o(this,l.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 Cd=(i,t,e)=>()=>{let r=new WeakMap,n=(o,s)=>J(null,null,function*(){let a=t(o);if(!_t(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),We(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 _d=(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 vd=()=>new DOMException("","DataCloneError");var Lu=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 Id=(i,t,e,r,n,o,s,a,c,u,l)=>(h,p)=>{let m=s(h)?h:o(h);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=>(Lu(p).catch(()=>{}),t(a,()=>a(f))||l(f),i.add(f),f)):new Promise((f,g)=>{let b=()=>J(null,null,function*(){try{yield Lu(p)}catch(C){}}),x=C=>{g(C),b()};try{m.decodeAudioData(p,C=>{typeof C.copyFromChannel!="function"&&(u(C),an(C)),i.add(C),b().then(()=>f(C))},C=>{x(C===null?r():C)})}catch(C){x(C)}})};var Sd=(i,t,e,r,n,o,s,a)=>(c,u)=>{let l=t.get(c);if(l===void 0)throw new Error("Missing the expected cycle count.");let h=o(c.context),p=a(h);if(l===u){if(t.delete(c),!p&&s(c)){let m=r(c),{outputs:f}=e(c);for(let g of f)if(si(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,l-u)};var JA={channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",delayTime:0,maxDelayTime:1},wd=(i,t,e,r,n,o,s)=>class extends i{constructor(c,u){let l=n(c),h=O(O({},JA),u),p=r(l,h),m=o(l),f=m?e(h.maxDelayTime):null;super(c,!1,p,f),this._delayTime=t(this,m,p.delayTime),s(this,h.maxDelayTime)}get delayTime(){return this._delayTime}};var Nd=(i,t,e,r,n)=>o=>{let s=new WeakMap,a=(c,u)=>J(null,null,function*(){let l=e(c),h=_t(l,u);if(!h){let p={channelCount:l.channelCount,channelCountMode:l.channelCountMode,channelInterpretation:l.channelInterpretation,delayTime:l.delayTime.value,maxDelayTime:o};l=t(u,p)}return s.set(u,l),h?yield i(u,c.delayTime,l.delayTime):yield r(u,c.delayTime,l.delayTime),yield n(c,u,l),l});return{render(c,u){let l=s.get(u);return l!==void 0?Promise.resolve(l):a(c,u)}}};var Td=i=>(t,e,r,n)=>i(t[n],o=>o[0]===e&&o[1]===r);var Od=i=>(t,e)=>{i(t).delete(e)};var Rd=i=>"delayTime"in i;var Md=(i,t,e)=>function r(n,o){let s=Ni(o)?o:e(i,o);if(Rd(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 sa=(i,t,e)=>{let r=t[e];if(r===void 0)throw i();return r},Ed=i=>(t,e=void 0,r=void 0,n=0)=>e===void 0?t.forEach(o=>o.disconnect()):typeof e=="number"?sa(i,t,e).disconnect():Oi(e)?r===void 0?t.forEach(o=>o.disconnect(e)):n===void 0?sa(i,t,r).disconnect(e,0):sa(i,t,r).disconnect(e,0,n):r===void 0?t.forEach(o=>o.disconnect(e)):sa(i,t,r).disconnect(e,0);var tC={attack:.003,channelCount:2,channelCountMode:"clamped-max",channelInterpretation:"speakers",knee:30,ratio:12,release:.25,threshold:-24},Dd=(i,t,e,r,n,o,s,a)=>class extends i{constructor(u,l){let h=o(u),p=O(O({},tC),l),m=r(h,p),f=s(h),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 l=this._nativeDynamicsCompressorNode.channelCount;if(this._nativeDynamicsCompressorNode.channelCount=u,u>2)throw this._nativeDynamicsCompressorNode.channelCount=l,n()}get channelCountMode(){return this._nativeDynamicsCompressorNode.channelCountMode}set channelCountMode(u){let l=this._nativeDynamicsCompressorNode.channelCountMode;if(this._nativeDynamicsCompressorNode.channelCountMode=u,u==="max")throw this._nativeDynamicsCompressorNode.channelCountMode=l,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 kd=(i,t,e,r,n)=>()=>{let o=new WeakMap,s=(a,c)=>J(null,null,function*(){let u=e(a),l=_t(u,c);if(!l){let h={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,h)}return o.set(c,u),l?(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 Ld=()=>new DOMException("","EncodingError");var jd=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=(l,h,p,m,f)=>{if(h===a||h===i.location.href&&p===1&&m===1)return u(),r(f),!1;if(c!==null)return c(l,h,p,m,f)},o.onerror=()=>{u(),r(new SyntaxError)},o.onload=()=>{u(),e()},o.src=a,o.type="module",n.appendChild(o)}});var Pd=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 Fd=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 Bd=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 eC={channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",gain:1},Gd=(i,t,e,r,n,o)=>class extends i{constructor(a,c){let u=n(a),l=O(O({},eC),c),h=r(u,l),p=o(u),m=p?e():null;super(a,!1,h,m),this._gain=t(this,p,h.gain,Gt,Ut)}get gain(){return this._gain}};var Vd=(i,t,e,r,n)=>()=>{let o=new WeakMap,s=(a,c)=>J(null,null,function*(){let u=e(a),l=_t(u,c);if(!l){let h={channelCount:u.channelCount,channelCountMode:u.channelCountMode,channelInterpretation:u.channelInterpretation,gain:u.gain.value};u=t(c,h)}return o.set(c,u),l?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 qd=(i,t)=>e=>t(i,e);var Wd=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 Ud=i=>t=>{var e;return(e=i.get(t))!==null&&e!==void 0?e:0};var zd=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 Yd=i=>t=>i.get(t);var Lt=()=>new DOMException("","InvalidStateError");var Hd=i=>t=>{let e=i.get(t);if(e===void 0)throw Lt();return e};var Zd=(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 Xd=i=>t=>{let e=i.get(t);if(e===void 0)throw new Error("The context has no set of AudioWorkletNodes.");return e};var mn=()=>new DOMException("","InvalidAccessError");var $d=i=>{i.getFrequencyResponse=(t=>(e,r,n)=>{if(e.length!==r.length||r.length!==n.length)throw mn();return t.call(i,e,r,n)})(i.getFrequencyResponse)};var rC={channelCount:2,channelCountMode:"max",channelInterpretation:"speakers"},Qd=(i,t,e,r,n,o)=>class extends i{constructor(a,c){let u=r(a),l=n(u),h=O(O({},rC),c),p=t(u,l?null:a.baseLatency,h),m=l?e(h.feedback,h.feedforward):null;super(a,!1,p,m),$d(p),this._nativeIIRFilterNode=p,o(this,1)}getFrequencyResponse(a,c,u){return this._nativeIIRFilterNode.getFrequencyResponse(a,c,u)}};var aa=(i,t,e,r,n,o,s,a,c,u,l)=>{let h=u.length,p=a;for(let m=0;m<h;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,l[m]=f}return p};var iC=(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,l=new Float32Array(u),h=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);l.fill(0),h.fill(0),aa(n,s,o,a,c,l,h,0,u,g,b)}return p},Kd=(i,t,e,r,n)=>(o,s)=>{let a=new WeakMap,c=null,u=(l,h)=>J(null,null,function*(){let p=null,m=t(l),f=_t(m,h);if(h.createIIRFilter===void 0?p=i(h,{buffer:null,channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",loop:!1,loopEnd:0,loopStart:0,playbackRate:1}):f||(m=h.createIIRFilter(s,o)),a.set(h,p===null?m:p),p!==null){if(c===null){if(e===null)throw new Error("Missing the native OfflineAudioContext constructor.");let b=new e(l.context.destination.channelCount,l.context.length,h.sampleRate);c=J(null,null,function*(){yield r(l,b,b.destination);let x=yield n(b);return iC(x,h,o,s)})}let g=yield c;return p.buffer=g,p.start(0),p}return yield r(l,h,m),m});return{render(l,h){let p=a.get(h);return p!==void 0?Promise.resolve(p):u(l,h)}}};var Jd=(i,t,e,r,n,o)=>s=>(a,c)=>{let u=i.get(a);if(u===void 0){if(!s&&o(a)){let l=r(a),{outputs:h}=e(a);for(let p of h)if(si(p)){let m=r(p[0]);t(l,m,p[1],p[2])}else{let m=n(p[0]);l.disconnect(m,p[1])}}i.set(a,c)}else i.set(a,u+c)};var tp=(i,t)=>e=>{let r=i.get(e);return t(r)||t(e)};var ep=(i,t)=>e=>i.has(e)||t(e);var rp=(i,t)=>e=>i.has(e)||t(e);var ip=(i,t)=>e=>{let r=i.get(e);return t(r)||t(e)};var np=i=>t=>i!==null&&t instanceof i;var op=i=>t=>i!==null&&typeof i.AudioNode=="function"&&t instanceof i.AudioNode;var sp=i=>t=>i!==null&&typeof i.AudioParam=="function"&&t instanceof i.AudioParam;var ap=(i,t)=>e=>i(e)||t(e);var cp=i=>t=>i!==null&&t instanceof i;var up=i=>i!==null&&i.isSecureContext;var hp=(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 nC={channelCount:2,channelCountMode:"explicit",channelInterpretation:"speakers"},lp=(i,t,e,r)=>class extends i{constructor(o,s){let a=e(o);if(r(a))throw new TypeError;let c=O(O({},nC),s),u=t(a,c);super(o,!1,u,null),this._nativeMediaStreamAudioDestinationNode=u}get stream(){return this._nativeMediaStreamAudioDestinationNode.stream}};var dp=(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 pp=(i,t,e)=>class extends i{constructor(n,o){let s=e(n),a=t(s,o);super(n,!0,a,null)}};var mp=(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(l){throw l.code===12&&l.message==="sampleRate is not in range"?t():l}if(a===null)throw e();if(!ia(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 l=()=>{this._state==="suspended"&&(this._state=null),a.removeEventListener("statechange",l)};a.addEventListener("statechange",l)}}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()),oi(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 fp=(i,t,e,r,n,o)=>class extends e{constructor(a,c){super(a),this._nativeContext=a,on.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 sr=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 oC={numberOfChannels:1},gp=(i,t,e,r,n)=>class extends r{constructor(s){let{length:a,numberOfChannels:c,sampleRate:u}=O(O({},oC),s),l=e(c,a,u);i(sr,()=>sr(l))||l.addEventListener("statechange",(()=>{let h=0,p=m=>{this._state==="running"&&(h>0?(l.removeEventListener("statechange",p),m.stopImmediatePropagation(),this._waitForThePromiseToSettle(m)):h+=1)};return p})()),super(l,c),this._length=a,this._nativeOfflineAudioContext=l,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,oi(this)}))}_waitForThePromiseToSettle(s){this._state===null?this._nativeOfflineAudioContext.dispatchEvent(s):setTimeout(()=>this._waitForThePromiseToSettle(s))}};var yp=(i,t)=>(e,r,n)=>{let o=new Set;return e.connect=(s=>(a,c=0,u=0)=>{let l=o.size===0;if(t(a))return s.call(e,a,c,u),i(o,[a,c,u],h=>h[0]===a&&h[1]===c&&h[2]===u,!0),l&&r(),a;s.call(e,a,c),i(o,[a,c],h=>h[0]===a&&h[1]===c,!0),l&&r()})(e.connect),e.disconnect=(s=>(a,c,u)=>{let l=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 h=o.size===0;l&&h&&n()})(e.disconnect),e};var vt=(i,t,e)=>{let r=t[e];r!==void 0&&r!==i[e]&&(i[e]=r)};var mt=(i,t)=>{vt(i,t,"channelCount"),vt(i,t,"channelCountMode"),vt(i,t,"channelInterpretation")};var ju=i=>typeof i.getFloatTimeDomainData=="function";var bp=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 xp=(i,t)=>(e,r)=>{let n=e.createAnalyser();if(mt(n,r),!(r.maxDecibels>r.minDecibels))throw t();return vt(n,r,"fftSize"),vt(n,r,"maxDecibels"),vt(n,r,"minDecibels"),vt(n,r,"smoothingTimeConstant"),i(ju,()=>ju(n))||bp(n),n};var Ap=i=>i===null?null:i.hasOwnProperty("AudioBuffer")?i.AudioBuffer:null;var wt=(i,t,e)=>{let r=t[e];r!==void 0&&r!==i[e].value&&(i[e].value=r)};var Cp=i=>{i.start=(t=>{let e=!1;return(r=0,n=0,o)=>{if(e)throw Lt();t.call(i,r,n,o),e=!0}})(i.start)};var fn=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 gn=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 _p=(i,t,e,r,n,o,s,a,c,u,l)=>(h,p)=>{let m=h.createBufferSource();return mt(m,p),wt(m,p,"playbackRate"),vt(m,p,"buffer"),vt(m,p,"loop"),vt(m,p,"loopEnd"),vt(m,p,"loopStart"),t(e,()=>e(h))||Cp(m),t(r,()=>r(h))||c(m),t(n,()=>n(h))||u(m,h),t(o,()=>o(h))||fn(m),t(s,()=>s(h))||l(m,h),t(a,()=>a(h))||gn(m),i(h,m),m};var vp=i=>i===null?null:i.hasOwnProperty("AudioContext")?i.AudioContext:i.hasOwnProperty("webkitAudioContext")?i.webkitAudioContext:null;var Ip=(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 Sp=i=>i===null?null:i.hasOwnProperty("AudioWorkletNode")?i.AudioWorkletNode:null;var wp=i=>{let{port1:t}=new MessageChannel;try{t.postMessage(i)}finally{t.close()}};var Np=(i,t,e,r,n)=>(o,s,a,c,u,l)=>{if(a!==null)try{let h=new a(o,c,l),p=new Map,m=null;if(Object.defineProperties(h,{channelCount:{get:()=>l.channelCount,set:()=>{throw i()}},channelCountMode:{get:()=>"explicit",set:()=>{throw i()}},onprocessorerror:{get:()=>m,set:f=>{typeof m=="function"&&h.removeEventListener("processorerror",m),m=typeof f=="function"?f:null,typeof m=="function"&&h.addEventListener("processorerror",m)}}}),h.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(h,"error",g[1],g[2]),f.call(h,...g)})(h.addEventListener),h.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(h,"error",g[1],g[2]),f.call(h,g[0],g[1],g[2])})(h.removeEventListener),l.numberOfOutputs!==0){let f=e(o,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",gain:0});return h.connect(f).connect(o.destination),n(h,()=>f.disconnect(),()=>f.connect(o.destination))}return h}catch(h){throw h.code===11?r():h}if(u===void 0)throw r();return wp(l),t(o,s,u,l)};var ca=(i,t)=>i===null?512:Math.max(512,Math.min(16384,Math.pow(2,Math.round(Math.log2(i*t)))));var Tp=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 Op=(i,t)=>J(null,null,function*(){let e=yield Tp(t);return new i(e)});var Rp=(i,t,e,r)=>{let n=_o.get(i);n===void 0&&(n=new WeakMap,_o.set(i,n));let o=Op(e,r);return n.set(t,o),o};var Mp=(i,t,e,r,n,o,s,a,c,u,l,h,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(X=>X<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((X,ot)=>X+ot,0),T=g.parameterDescriptors===void 0?0:g.parameterDescriptors.length;if(C+T>6||S>6)throw c();let I=new MessageChannel,v=[],A=[];for(let X=0;X<b.numberOfInputs;X+=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:X,maxValue:ot,minValue:te,name:jt}of g.parameterDescriptors){let St=o(m,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",offset:b.parameterData[jt]!==void 0?b.parameterData[jt]:X===void 0?0:X});Object.defineProperties(St.offset,{defaultValue:{get:()=>X===void 0?0:X},maxValue:{get:()=>ot===void 0?Gt:ot},minValue:{get:()=>te===void 0?Ut:te}}),_.push(St)}let E=r(m,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"speakers",numberOfInputs:Math.max(1,C+T)}),V=ca(f,m.sampleRate),M=a(m,V,C+T,Math.max(1,S)),R=n(m,{channelCount:Math.max(1,S),channelCountMode:"explicit",channelInterpretation:"discrete",numberOfOutputs:Math.max(1,S)}),P=[];for(let X=0;X<b.numberOfOutputs;X+=1)P.push(r(m,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"speakers",numberOfInputs:x[X]}));for(let X=0;X<b.numberOfInputs;X+=1){v[X].connect(A[X]);for(let ot=0;ot<b.channelCount;ot+=1)A[X].connect(E,ot,X*b.channelCount+ot)}let D=new ln(g.parameterDescriptors===void 0?[]:g.parameterDescriptors.map(({name:X},ot)=>{let te=_[ot];return te.connect(E,0,C+ot),te.start(0),[X,te.offset]}));E.connect(M);let k=b.channelInterpretation,j=null,q=b.numberOfOutputs===0?[M]:P,K={get bufferSize(){return V},get channelCount(){return b.channelCount},set channelCount(X){throw e()},get channelCountMode(){return b.channelCountMode},set channelCountMode(X){throw e()},get channelInterpretation(){return k},set channelInterpretation(X){for(let ot of v)ot.channelInterpretation=X;k=X},get context(){return M.context},get inputs(){return v},get numberOfInputs(){return b.numberOfInputs},get numberOfOutputs(){return b.numberOfOutputs},get onprocessorerror(){return j},set onprocessorerror(X){typeof j=="function"&&K.removeEventListener("processorerror",j),j=typeof X=="function"?X:null,typeof j=="function"&&K.addEventListener("processorerror",j)},get parameters(){return D},get port(){return I.port2},addEventListener(...X){return M.addEventListener(X[0],X[1],X[2])},connect:i.bind(null,q),disconnect:u.bind(null,q),dispatchEvent(...X){return M.dispatchEvent(X[0])},removeEventListener(...X){return M.removeEventListener(X[0],X[1],X[2])}},Z=new Map;I.port1.addEventListener=(X=>(...ot)=>{if(ot[0]==="message"){let te=typeof ot[1]=="function"?ot[1]:typeof ot[1]=="object"&&ot[1]!==null&&typeof ot[1].handleEvent=="function"?ot[1].handleEvent:null;if(te!==null){let jt=Z.get(ot[1]);jt!==void 0?ot[1]=jt:(ot[1]=St=>{l(m.currentTime,m.sampleRate,()=>te(St))},Z.set(te,ot[1]))}}return X.call(I.port1,ot[0],ot[1],ot[2])})(I.port1.addEventListener),I.port1.removeEventListener=(X=>(...ot)=>{if(ot[0]==="message"){let te=Z.get(ot[1]);te!==void 0&&(Z.delete(ot[1]),ot[1]=te)}return X.call(I.port1,ot[0],ot[1],ot[2])})(I.port1.removeEventListener);let B=null;Object.defineProperty(I.port1,"onmessage",{get:()=>B,set:X=>{typeof B=="function"&&I.port1.removeEventListener("message",B),B=typeof X=="function"?X:null,typeof B=="function"&&(I.port1.addEventListener("message",B),I.port1.start())}}),g.prototype.port=I.port1;let dt=null;Rp(m,K,g,b).then(X=>dt=X);let Wt=pn(b.numberOfInputs,b.channelCount),Ee=pn(b.numberOfOutputs,x),De=g.parameterDescriptors===void 0?[]:g.parameterDescriptors.reduce((X,{name:ot})=>Q(O({},X),{[ot]:new Float32Array(128)}),{}),Nt=!0,ct=()=>{b.numberOfOutputs>0&&M.disconnect(R);for(let X=0,ot=0;X<b.numberOfOutputs;X+=1){let te=P[X];for(let jt=0;jt<x[X];jt+=1)R.disconnect(te,ot+jt,jt);ot+=x[X]}},Zi=new Map;M.onaudioprocess=({inputBuffer:X,outputBuffer:ot})=>{if(dt!==null){let te=h(K);for(let jt=0;jt<V;jt+=128){for(let St=0;St<b.numberOfInputs;St+=1)for(let Bt=0;Bt<b.channelCount;Bt+=1)dn(X,Wt[St],Bt,Bt,jt);g.parameterDescriptors!==void 0&&g.parameterDescriptors.forEach(({name:St},Bt)=>{dn(X,De,St,C+Bt,jt)});for(let St=0;St<b.numberOfInputs;St+=1)for(let Bt=0;Bt<x[St];Bt+=1)Ee[St][Bt].byteLength===0&&(Ee[St][Bt]=new Float32Array(128));try{let St=Wt.map((Be,Zr)=>{if(te[Zr].size>0)return Zi.set(Zr,V/128),Be;let Yc=Zi.get(Zr);return Yc===void 0?[]:(Be.every($f=>$f.every(Qf=>Qf===0))&&(Yc===1?Zi.delete(Zr):Zi.set(Zr,Yc-1)),Be)});Nt=l(m.currentTime+jt/m.sampleRate,m.sampleRate,()=>dt.process(St,Ee,De));for(let Be=0,Zr=0;Be<b.numberOfOutputs;Be+=1){for(let ro=0;ro<x[Be];ro+=1)oa(ot,Ee[Be],ro,Zr+ro,jt);Zr+=x[Be]}}catch(St){Nt=!1,K.dispatchEvent(new ErrorEvent("processorerror",{colno:St.colno,filename:St.filename,lineno:St.lineno,message:St.message}))}if(!Nt){for(let St=0;St<b.numberOfInputs;St+=1){v[St].disconnect(A[St]);for(let Bt=0;Bt<b.channelCount;Bt+=1)A[jt].disconnect(E,Bt,St*b.channelCount+Bt)}if(g.parameterDescriptors!==void 0){let St=g.parameterDescriptors.length;for(let Bt=0;Bt<St;Bt+=1){let Be=_[Bt];Be.disconnect(E,0,C+Bt),Be.stop()}}E.disconnect(M),M.onaudioprocess=null,Jn?ct():$i();break}}}};let Jn=!1,et=s(m,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",gain:0}),Xi=()=>M.connect(et).connect(m.destination),$i=()=>{M.disconnect(et),et.disconnect()},to=()=>{if(Nt){$i(),b.numberOfOutputs>0&&M.connect(R);for(let X=0,ot=0;X<b.numberOfOutputs;X+=1){let te=P[X];for(let jt=0;jt<x[X];jt+=1)R.connect(te,ot+jt,jt);ot+=x[X]}}Jn=!0},eo=()=>{Nt&&(Xi(),ct()),Jn=!1};return Xi(),p(K,to,eo)};var Pu=(i,t)=>{let e=i.createBiquadFilter();return mt(e,t),wt(e,t,"Q"),wt(e,t,"detune"),wt(e,t,"frequency"),wt(e,t,"gain"),vt(e,t,"type"),e};var Ep=(i,t)=>(e,r)=>{let n=e.createChannelMerger(r.numberOfInputs);return i!==null&&i.name==="webkitAudioContext"&&t(e,n),mt(n,r),n};var Dp=i=>{let t=i.numberOfOutputs;Object.defineProperty(i,"channelCount",{get:()=>t,set:e=>{if(e!==t)throw Lt()}}),Object.defineProperty(i,"channelCountMode",{get:()=>"explicit",set:e=>{if(e!=="explicit")throw Lt()}}),Object.defineProperty(i,"channelInterpretation",{get:()=>"discrete",set:e=>{if(e!=="discrete")throw Lt()}})};var yn=(i,t)=>{let e=i.createChannelSplitter(t.numberOfOutputs);return mt(e,t),Dp(e),e};var kp=(i,t,e,r,n)=>(o,s)=>{if(o.createConstantSource===void 0)return e(o,s);let a=o.createConstantSource();return mt(a,s),wt(a,s,"offset"),t(r,()=>r(o))||fn(a),t(n,()=>n(o))||gn(a),i(o,a),a};var Ue=(i,t)=>(i.connect=t.connect.bind(t),i.disconnect=t.disconnect.bind(t),i);var Lp=(i,t,e,r)=>(n,a)=>{var c=a,{offset:o}=c,s=Xr(c,["offset"]);let u=n.createBuffer(1,2,44100),l=t(n,{buffer:null,channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",loop:!1,loopEnd:0,loopStart:0,playbackRate:1}),h=e(n,Q(O({},s),{gain:o})),p=u.getChannelData(0);p[0]=1,p[1]=1,l.buffer=u,l.loop=!0;let m={get bufferSize(){},get channelCount(){return h.channelCount},set channelCount(b){h.channelCount=b},get channelCountMode(){return h.channelCountMode},set channelCountMode(b){h.channelCountMode=b},get channelInterpretation(){return h.channelInterpretation},set channelInterpretation(b){h.channelInterpretation=b},get context(){return h.context},get inputs(){return[]},get numberOfInputs(){return l.numberOfInputs},get numberOfOutputs(){return h.numberOfOutputs},get offset(){return h.gain},get onended(){return l.onended},set onended(b){l.onended=b},addEventListener(...b){return l.addEventListener(b[0],b[1],b[2])},dispatchEvent(...b){return l.dispatchEvent(b[0])},removeEventListener(...b){return l.removeEventListener(b[0],b[1],b[2])},start(b=0){l.start.call(l,b)},stop(b=0){l.stop.call(l,b)}},f=()=>l.connect(h),g=()=>l.disconnect(h);return i(n,l),r(Ue(m,h),f,g)};var jp=(i,t)=>(e,r)=>{let n=e.createConvolver();if(mt(n,r),r.disableNormalization===n.normalize&&(n.normalize=!r.disableNormalization),vt(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 Fu=(i,t)=>{let e=i.createDelay(t.maxDelayTime);return mt(e,t),wt(e,t,"delayTime"),e};var Pp=i=>(t,e)=>{let r=t.createDynamicsCompressor();if(mt(r,e),e.channelCount>2||e.channelCountMode==="max")throw i();return wt(r,e,"attack"),wt(r,e,"knee"),wt(r,e,"ratio"),wt(r,e,"release"),wt(r,e,"threshold"),r};var Ae=(i,t)=>{let e=i.createGain();return mt(e,t),wt(e,t,"gain"),e};var Fp=i=>(t,e,r)=>{if(t.createIIRFilter===void 0)return i(t,e,r);let n=t.createIIRFilter(r.feedforward,r.feedback);return mt(n,r),n};function sC(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 aC(i,t){return[i[0]*t[0]-i[1]*t[1],i[0]*t[1]+i[1]*t[0]]}function Bp(i,t){let e=[0,0];for(let r=i.length-1;r>=0;r-=1)e=aC(e,t),e[0]+=i[r];return e}var Gp=(i,t,e,r)=>(n,o,{channelCount:s,channelCountMode:a,channelInterpretation:c,feedback:u,feedforward:l})=>{let h=ca(o,n.sampleRate),p=u instanceof Float64Array?u:new Float64Array(u),m=l instanceof Float64Array?l:new Float64Array(l),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,h,s,s);x.channelCount=s,x.channelCountMode=a,x.channelInterpretation=c;let C=32,S=[],T=[],I=[];for(let _=0;_<s;_+=1){S.push(0);let E=new Float32Array(C),V=new Float32Array(C);E.fill(0),V.fill(0),T.push(E),I.push(V)}x.onaudioprocess=_=>{let E=_.inputBuffer,V=_.outputBuffer,M=E.numberOfChannels;for(let R=0;R<M;R+=1){let P=E.getChannelData(R),D=V.getChannelData(R);S[R]=aa(p,f,m,g,b,T[R],I[R],S[R],C,P,D)}};let v=n.sampleRate/2;return Ue({get bufferSize(){return h},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,V){if(_.length!==E.length||E.length!==V.length)throw i();let M=_.length;for(let R=0;R<M;R+=1){let P=-Math.PI*(_[R]/v),D=[Math.cos(P),Math.sin(P)],k=Bp(m,D),j=Bp(p,D),q=sC(k,j);E[R]=Math.sqrt(q[0]*q[0]+q[1]*q[1]),V[R]=Math.atan2(q[1],q[0])}},removeEventListener(..._){return x.removeEventListener(_[0],_[1],_[2])}},x)};var Vp=(i,t)=>i.createMediaElementSource(t.mediaElement);var qp=(i,t)=>{let e=i.createMediaStreamDestination();return mt(e,t),e.numberOfOutputs===1&&Object.defineProperty(e,"numberOfOutputs",{get:()=>0}),e};var Wp=(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 Up=(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 zp=i=>i===null?null:i.hasOwnProperty("OfflineAudioContext")?i.OfflineAudioContext:i.hasOwnProperty("webkitOfflineAudioContext")?i.webkitOfflineAudioContext:null;var Yp=(i,t,e,r,n,o)=>(s,a)=>{let c=s.createOscillator();return mt(c,a),wt(c,a,"detune"),wt(c,a,"frequency"),a.periodicWave!==void 0?c.setPeriodicWave(a.periodicWave):vt(c,a,"type"),t(e,()=>e(s))||fn(c),t(r,()=>r(s))||o(c,s),t(n,()=>n(s))||gn(c),i(s,c),c};var Hp=i=>(t,e)=>{let r=t.createPanner();return r.orientationX===void 0?i(t,e):(mt(r,e),wt(r,e,"orientationX"),wt(r,e,"orientationY"),wt(r,e,"orientationZ"),wt(r,e,"positionX"),wt(r,e,"positionY"),wt(r,e,"positionZ"),vt(r,e,"coneInnerAngle"),vt(r,e,"coneOuterAngle"),vt(r,e,"coneOuterGain"),vt(r,e,"distanceModel"),vt(r,e,"maxDistance"),vt(r,e,"panningModel"),vt(r,e,"refDistance"),vt(r,e,"rolloffFactor"),r)};var Zp=(i,t,e,r,n,o,s,a,c,u)=>(l,V)=>{var M=V,{coneInnerAngle:h,coneOuterAngle:p,coneOuterGain:m,distanceModel:f,maxDistance:g,orientationX:b,orientationY:x,orientationZ:C,panningModel:S,positionX:T,positionY:I,positionZ:v,refDistance:A,rolloffFactor:_}=M,E=Xr(M,["coneInnerAngle","coneOuterAngle","coneOuterGain","distanceModel","maxDistance","orientationX","orientationY","orientationZ","panningModel","positionX","positionY","positionZ","refDistance","rolloffFactor"]);let R=l.createPanner();if(E.channelCount>2||E.channelCountMode==="max")throw s();mt(R,E);let P={channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete"},D=e(l,Q(O({},P),{channelInterpretation:"speakers",numberOfInputs:6})),k=r(l,Q(O({},E),{gain:1})),j=r(l,Q(O({},P),{gain:1})),q=r(l,Q(O({},P),{gain:0})),K=r(l,Q(O({},P),{gain:0})),Z=r(l,Q(O({},P),{gain:0})),B=r(l,Q(O({},P),{gain:0})),dt=r(l,Q(O({},P),{gain:0})),Ct=n(l,256,6,1),Wt=o(l,Q(O({},P),{curve:new Float32Array([1,1]),oversample:"none"})),Ee=[b,x,C],De=[T,I,v],Nt=new Float32Array(1);Ct.onaudioprocess=({inputBuffer:et})=>{let Xi=[c(et,Nt,0),c(et,Nt,1),c(et,Nt,2)];Xi.some((to,eo)=>to!==Ee[eo])&&(R.setOrientation(...Xi),Ee=Xi);let $i=[c(et,Nt,3),c(et,Nt,4),c(et,Nt,5)];$i.some((to,eo)=>to!==De[eo])&&(R.setPosition(...$i),De=$i)},Object.defineProperty(q.gain,"defaultValue",{get:()=>0}),Object.defineProperty(K.gain,"defaultValue",{get:()=>0}),Object.defineProperty(Z.gain,"defaultValue",{get:()=>0}),Object.defineProperty(B.gain,"defaultValue",{get:()=>0}),Object.defineProperty(dt.gain,"defaultValue",{get:()=>0});let ct={get bufferSize(){},get channelCount(){return R.channelCount},set channelCount(et){if(et>2)throw s();k.channelCount=et,R.channelCount=et},get channelCountMode(){return R.channelCountMode},set channelCountMode(et){if(et==="max")throw s();k.channelCountMode=et,R.channelCountMode=et},get channelInterpretation(){return R.channelInterpretation},set channelInterpretation(et){k.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[k]},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 j.gain},get orientationY(){return q.gain},get orientationZ(){return K.gain},get panningModel(){return R.panningModel},set panningModel(et){R.panningModel=et},get positionX(){return Z.gain},get positionY(){return B.gain},get positionZ(){return dt.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 k.addEventListener(et[0],et[1],et[2])},dispatchEvent(...et){return k.dispatchEvent(et[0])},removeEventListener(...et){return k.removeEventListener(et[0],et[1],et[2])}};h!==ct.coneInnerAngle&&(ct.coneInnerAngle=h),p!==ct.coneOuterAngle&&(ct.coneOuterAngle=p),m!==ct.coneOuterGain&&(ct.coneOuterGain=m),f!==ct.distanceModel&&(ct.distanceModel=f),g!==ct.maxDistance&&(ct.maxDistance=g),b!==ct.orientationX.value&&(ct.orientationX.value=b),x!==ct.orientationY.value&&(ct.orientationY.value=x),C!==ct.orientationZ.value&&(ct.orientationZ.value=C),S!==ct.panningModel&&(ct.panningModel=S),T!==ct.positionX.value&&(ct.positionX.value=T),I!==ct.positionY.value&&(ct.positionY.value=I),v!==ct.positionZ.value&&(ct.positionZ.value=v),A!==ct.refDistance&&(ct.refDistance=A),_!==ct.rolloffFactor&&(ct.rolloffFactor=_),(Ee[0]!==1||Ee[1]!==0||Ee[2]!==0)&&R.setOrientation(...Ee),(De[0]!==0||De[1]!==0||De[2]!==0)&&R.setPosition(...De);let Zi=()=>{k.connect(R),i(k,Wt,0,0),Wt.connect(j).connect(D,0,0),Wt.connect(q).connect(D,0,1),Wt.connect(K).connect(D,0,2),Wt.connect(Z).connect(D,0,3),Wt.connect(B).connect(D,0,4),Wt.connect(dt).connect(D,0,5),D.connect(Ct).connect(l.destination)},Jn=()=>{k.disconnect(R),a(k,Wt,0,0),Wt.disconnect(j),j.disconnect(D),Wt.disconnect(q),q.disconnect(D),Wt.disconnect(K),K.disconnect(D),Wt.disconnect(Z),Z.disconnect(D),Wt.disconnect(B),B.disconnect(D),Wt.disconnect(dt),dt.disconnect(D),D.disconnect(Ct),Ct.disconnect(l.destination)};return u(Ue(ct,R),Zi,Jn)};var Xp=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 bn=(i,t,e,r)=>i.createScriptProcessor(t,e,r);var $p=(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 mt(o,r),wt(o,r,"pan"),Object.defineProperty(o,"channelCountMode",{get:()=>n,set:s=>{if(s!==n)throw t()}}),o};var Qp=(i,t,e,r,n,o)=>{let a=new Float32Array([1,1]),c=Math.PI/2,u={channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete"},l=Q(O({},u),{oversample:"none"}),h=(f,g,b,x)=>{let C=new Float32Array(16385),S=new Float32Array(16385);for(let E=0;E<16385;E+=1){let V=E/16384*c;C[E]=Math.cos(V),S[E]=Math.sin(V)}let T=e(f,Q(O({},u),{gain:0})),I=r(f,Q(O({},l),{curve:C})),v=r(f,Q(O({},l),{curve:a})),A=e(f,Q(O({},u),{gain:0})),_=r(f,Q(O({},l),{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(I.inputs===void 0?I:I.inputs[0]),b.connect(_.inputs===void 0?_:_.inputs[0]),I.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(I.inputs===void 0?I:I.inputs[0]),b.disconnect(_.inputs===void 0?_:_.inputs[0]),I.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),I=new Float32Array(16385),v=Math.floor(16385/2);for(let q=0;q<16385;q+=1)if(q>v){let K=(q-v)/(16384-v)*c;C[q]=Math.cos(K),S[q]=Math.sin(K),T[q]=0,I[q]=1}else{let K=q/(16384-v)*c;C[q]=1,S[q]=0,T[q]=Math.cos(K),I[q]=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({},l),{curve:C})),V=e(f,Q(O({},u),{gain:0})),M=r(f,Q(O({},l),{curve:S})),R=r(f,Q(O({},l),{curve:a})),P=e(f,Q(O({},u),{gain:0})),D=r(f,Q(O({},l),{curve:T})),k=e(f,Q(O({},u),{gain:0})),j=r(f,Q(O({},l),{curve:I}));return{connectGraph(){g.connect(A),g.connect(R.inputs===void 0?R:R.inputs[0]),A.connect(_,0),A.connect(V,0),A.connect(P,1),A.connect(k,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(j.inputs===void 0?j:j.inputs[0]),E.connect(_.gain),M.connect(V.gain),D.connect(P.gain),j.connect(k.gain),_.connect(x,0,0),P.connect(x,0,0),V.connect(x,0,1),k.connect(x,0,1)},disconnectGraph(){g.disconnect(A),g.disconnect(R.inputs===void 0?R:R.inputs[0]),A.disconnect(_,0),A.disconnect(V,0),A.disconnect(P,1),A.disconnect(k,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(j.inputs===void 0?j:j.inputs[0]),E.disconnect(_.gain),M.disconnect(V.gain),D.disconnect(P.gain),j.disconnect(k.gain),_.disconnect(x,0,0),P.disconnect(x,0,0),V.disconnect(x,0,1),k.disconnect(x,0,1)}}},m=(f,g,b,x,C)=>{if(g===1)return h(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=Xr(T,["channelCount","channelCountMode","pan"]);if(b==="max")throw n();let I=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,I);Object.defineProperty(A.gain,"defaultValue",{get:()=>0}),Object.defineProperty(A.gain,"maxValue",{get:()=>1}),Object.defineProperty(A.gain,"minValue",{get:()=>-1});let V={get bufferSize(){},get channelCount(){return v.channelCount},set channelCount(D){v.channelCount!==D&&(M&&E(),{connectGraph:_,disconnectGraph:E}=m(f,D,v,A,I),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},P=()=>{E(),M=!1};return o(Ue(V,I),R,P)}};var Kp=(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);mt(u,c);let l=c.curve===null||c.curve instanceof Float32Array?c.curve:new Float32Array(c.curve);if(l!==null&&l.length<2)throw t();vt(u,{curve:l},"curve"),vt(u,c,"oversample");let h=null,p=!1;return s(u,"curve",g=>()=>g.call(u),g=>b=>(g.call(u,b),p&&(r(b)&&h===null?h=i(a,u):!r(b)&&h!==null&&(h(),h=null)),b)),n(u,()=>{p=!0,r(u.curve)&&(h=i(a,u))},()=>{p=!1,h!==null&&(h(),h=null)})};var Jp=(i,t,e,r,n)=>(o,u)=>{var l=u,{curve:s,oversample:a}=l,c=Xr(l,["curve","oversample"]);let h=o.createWaveShaper(),p=o.createWaveShaper();mt(h,c),mt(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 h.channelCount},set channelCount(A){m.channelCount=A,f.channelCount=A,h.channelCount=A,g.channelCount=A,p.channelCount=A,b.channelCount=A},get channelCountMode(){return h.channelCountMode},set channelCountMode(A){m.channelCountMode=A,f.channelCountMode=A,h.channelCountMode=A,g.channelCountMode=A,p.channelCountMode=A,b.channelCountMode=A},get channelInterpretation(){return h.channelInterpretation},set channelInterpretation(A){m.channelInterpretation=A,f.channelInterpretation=A,h.channelInterpretation=A,g.channelInterpretation=A,p.channelInterpretation=A,b.channelInterpretation=A},get context(){return h.context},get curve(){return S},set curve(A){if(A!==null&&A.length<2)throw t();if(A===null)h.curve=A,p.curve=A;else{let _=A.length,E=new Float32Array(_+2-_%2),V=new Float32Array(_+2-_%2);E[0]=A[0],V[0]=-A[_-1];let M=Math.ceil((_+1)/2),R=(_+1)/2-1;for(let P=1;P<M;P+=1){let D=P/M*R,k=Math.floor(D),j=Math.ceil(D);E[P]=k===j?A[k]:(1-(D-k))*A[k]+(1-(j-D))*A[j],V[P]=k===j?-A[_-1-k]:-((1-(D-k))*A[_-1-k])-(1-(j-D))*A[_-1-j]}E[M]=_%2===1?A[M-1]:(A[M-2]+A[M-1])/2,h.curve=E,p.curve=V}S=A,C&&(r(S)&&x===null?x=i(o,m):x!==null&&(x(),x=null))},get inputs(){return[m]},get numberOfInputs(){return h.numberOfInputs},get numberOfOutputs(){return h.numberOfOutputs},get oversample(){return h.oversample},set oversample(A){h.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 I=()=>{m.connect(h).connect(g),m.connect(f).connect(p).connect(b).connect(g),C=!0,r(S)&&(x=i(o,m))},v=()=>{m.disconnect(h),h.disconnect(g),m.disconnect(f),f.disconnect(p),p.disconnect(b),b.disconnect(g),C=!1,x!==null&&(x(),x=null)};return n(Ue(T,g),I,v)};var se=()=>new DOMException("","NotSupportedError");var cC={numberOfChannels:1},tm=(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:l,numberOfChannels:h,sampleRate:p}=O(O({},cC),u),m=r(h,l,p);t(sr,()=>sr(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,h),this._length=l,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,oi(this)}))}_waitForThePromiseToSettle(s){this._state===null?this._nativeOfflineAudioContext.dispatchEvent(s):setTimeout(()=>this._waitForThePromiseToSettle(s))}};var uC={channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",detune:0,frequency:440,periodicWave:void 0,type:"sine"},em=(i,t,e,r,n,o,s)=>class extends i{constructor(c,u){let l=n(c),h=O(O({},uC),u),p=e(l,h),m=o(l),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&&h.periodicWave!==void 0&&(this._oscillatorNodeRenderer.periodicWave=h.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 l=this._nativeOscillatorNode.onended;this._onended=l!==null&&l===u?c:l}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"){nr(this);let u=()=>{this._nativeOscillatorNode.removeEventListener("ended",u),xe(this)&&vr(this)};this._nativeOscillatorNode.addEventListener("ended",u)}}stop(c=0){this._nativeOscillatorNode.stop(c),this._oscillatorNodeRenderer!==null&&(this._oscillatorNodeRenderer.stop=c)}};var rm=(i,t,e,r,n)=>()=>{let o=new WeakMap,s=null,a=null,c=null,u=(l,h)=>J(null,null,function*(){let p=e(l),m=_t(p,h);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(h,f),a!==null&&p.start(a),c!==null&&p.stop(c)}return o.set(h,p),m?(yield i(h,l.detune,p.detune),yield i(h,l.frequency,p.frequency)):(yield r(h,l.detune,p.detune),yield r(h,l.frequency,p.frequency)),yield n(l,h,p),p});return{set periodicWave(l){s=l},set start(l){a=l},set stop(l){c=l},render(l,h){let p=o.get(h);return p!==void 0?Promise.resolve(p):u(l,h)}}};var hC={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},im=(i,t,e,r,n,o,s)=>class extends i{constructor(c,u){let l=n(c),h=O(O({},hC),u),p=e(l,h),m=o(l),f=m?r():null;super(c,!1,p,f),this._nativePannerNode=p,this._orientationX=t(this,m,p.orientationX,Gt,Ut),this._orientationY=t(this,m,p.orientationY,Gt,Ut),this._orientationZ=t(this,m,p.orientationZ,Gt,Ut),this._positionX=t(this,m,p.positionX,Gt,Ut),this._positionY=t(this,m,p.positionY,Gt,Ut),this._positionZ=t(this,m,p.positionZ,Gt,Ut),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 nm=(i,t,e,r,n,o,s,a,c,u)=>()=>{let l=new WeakMap,h=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=_t(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(l.set(f,g===null?b:g),g!==null){if(h===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),h=J(null,null,function*(){let P=yield Promise.all([m.orientationX,m.orientationY,m.orientationZ,m.positionX,m.positionY,m.positionZ].map((D,k)=>J(null,null,function*(){let j=e(M,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",offset:k===0?1:0});return yield a(M,D,j.offset),j})));for(let D=0;D<6;D+=1)P[D].connect(R,0,D),P[D].start(0);return u(M)})}let T=yield h,I=r(f,Q(O({},x),{gain:1}));yield c(m,f,I);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})),V=n(f,Q(O({},C),{orientationX:A[0],orientationY:A[1],orientationZ:A[2],positionX:_[0],positionY:_[1],positionZ:_[2]}));I.connect(E).connect(V.inputs[0]),V.connect(g);for(let M=128;M<T.length;M+=128){let R=[v[0][M],v[1][M],v[2][M]],P=[v[3][M],v[4][M],v[5][M]];if(R.some((D,k)=>D!==A[k])||P.some((D,k)=>D!==_[k])){A=R,_=P;let D=M/f.sampleRate;E.gain.setValueAtTime(0,D),E=r(f,Q(O({},x),{gain:0})),V=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),I.connect(E).connect(V.inputs[0]),V.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)),We(b)?yield c(m,f,b.inputs[0]):yield c(m,f,b),b});return{render(m,f){let g=l.get(f);return g!==void 0?Promise.resolve(g):p(m,f)}}};var lC={disableNormalization:!1},om=(i,t,e,r)=>class sm{constructor(o,s){let a=t(o),c=r(O(O({},lC),s)),u=i(a,c);return e.add(u),u}static[Symbol.hasInstance](o){return o!==null&&typeof o=="object"&&Object.getPrototypeOf(o)===sm.prototype||e.has(o)}};var am=(i,t)=>(e,r,n)=>(i(r).replay(n),t(r,e,n));var cm=(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(h=>J(null,[h],function*([u,l]){let m=yield t(u).render(u,n),f=r.context.destination;!e(u)&&(r!==f||!e(r))&&m.connect(o,l,c)}))).reduce((a,c)=>[...a,...c],[]))});var um=(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 h=yield i(a).render(a,n);e(a)||h.connect(o,c)})))});var hm=(i,t,e,r)=>n=>i(sr,()=>sr(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 lm=i=>(t,e)=>{i.set(t,e)};var dm=i=>(t,e)=>i.set(t,e);var pm=(i,t,e,r,n,o,s,a)=>(c,u)=>e(c).render(c,u).then(()=>Promise.all(Array.from(r(u)).map(l=>e(l).render(l,u)))).then(()=>n(u)).then(l=>(typeof l.copyFromChannel!="function"?(s(l),an(l)):t(o,()=>o(l))||a(l),i.add(l),l));var dC={channelCount:2,channelCountMode:"explicit",channelInterpretation:"speakers",pan:0},mm=(i,t,e,r,n,o)=>class extends i{constructor(a,c){let u=n(a),l=O(O({},dC),c),h=e(u,l),p=o(u),m=p?r():null;super(a,!1,h,m),this._pan=t(this,p,h.pan)}get pan(){return this._pan}};var fm=(i,t,e,r,n)=>()=>{let o=new WeakMap,s=(a,c)=>J(null,null,function*(){let u=e(a),l=_t(u,c);if(!l){let h={channelCount:u.channelCount,channelCountMode:u.channelCountMode,channelInterpretation:u.channelInterpretation,pan:u.pan.value};u=t(c,h)}return o.set(c,u),l?yield i(c,a.pan,u.pan):yield r(c,a.pan,u.pan),We(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 gm=i=>()=>{if(i===null)return!1;try{new i({length:1,sampleRate:44100})}catch(t){return!1}return!0};var ym=(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 bm=(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 Bu=()=>new DOMException("","UnknownError");var pC={channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",curve:null,oversample:"none"},xm=(i,t,e,r,n,o,s)=>class extends i{constructor(c,u){let l=n(c),h=O(O({},pC),u),p=e(l,h),f=o(l)?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 Am=(i,t,e)=>()=>{let r=new WeakMap,n=(o,s)=>J(null,null,function*(){let a=t(o);if(!_t(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),We(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 Cm=()=>typeof window=="undefined"?null:window;var _m=(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),l=r.length;for(let h=s<0?-s:0;h+s<c&&h<l;h+=1)r[h]=u[h+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),l=r.length;for(let h=s<0?-s:0;h+s<c&&h<l;h+=1)u[h+s]=r[h]}};var vm=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 Im=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 Sm=(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 Gu=(i,t,e)=>i.copyFromChannel===void 0?i.getChannelData(e)[0]:(i.copyFromChannel(t,e),t[0]);var Vu=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 xn=(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 wm=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 Nm=i=>Q(O({},i),{channelCount:i.numberOfOutputs});var Tm=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 qu=(i,t,e)=>{try{i.setValueAtTime(t,e)}catch(r){if(r.code!==9)throw r;qu(i,t,e+1e-7)}};var Om=i=>{let t=i.createBufferSource();t.start();try{t.start()}catch(e){return!0}return!1};var Rm=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 Mm=i=>{let t=i.createBufferSource();t.start();try{t.stop()}catch(e){return!1}return!0};var ua=i=>{let t=i.createOscillator();try{t.start(-1)}catch(e){return e instanceof RangeError}return!1};var Wu=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 ha=i=>{let t=i.createOscillator();try{t.stop(-1)}catch(e){return e instanceof RangeError}return!1};var Em=i=>{let{port1:t,port2:e}=new MessageChannel;try{t.postMessage(i)}finally{t.close(),e.close()}};var Dm=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 Uu=(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),Ue(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 Ri=(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 mC=vl(or),fC=Dl(or),gC=Td(ii),Lm=new WeakMap,yC=Ud(Lm),ze=ud(new Map,new WeakMap),Ir=Cm(),jm=xp(ze,qe),zu=Wd(re),ae=cm(re,zu,Br),bC=Pl(jm,Ot,ae),Dt=Hd(on),Gr=zp(Ir),Rt=cp(Gr),Pm=new WeakMap,Fm=Pd(Ri),An=vp(Ir),Yu=np(An),Hu=op(Ir),Bm=sp(Ir),Io=Sp(Ir),zt=td(Il(Qs),El(mC,fC,cn,gC,un,re,yC,_r,Ot,or,xe,Br,hn),ze,Jd(Ao,un,re,Ot,Ti,xe),qe,mn,se,Sd(cn,Ao,re,Ot,Ti,Dt,xe,Rt),Md(Pm,re,$t),Fm,Dt,Yu,Hu,Bm,Rt,Io),xC=jl(zt,bC,qe,jm,Dt,Rt);var Zu=new WeakSet,km=Ap(Ir),Gm=xd(new Uint32Array(1)),Xu=_m(Gm,qe),$u=vm(Gm),Qu=Fl(Zu,ze,se,km,Gr,gm(km),Xu,$u);var la=kl(Ae),Vm=um(zu,ni,Br),Sr=md(Vm),Cn=_p(la,ze,Om,Rm,Mm,ua,Wu,ha,Dm,Im(xn),Uu),wr=am(zd(ni),Vm),AC=Vl(Sr,Cn,Ot,wr,ae),ar=ed(Sl(Ks),Pm,xo,rd,Cu,_u,vu,Iu,Su,tn,mo,An,qu),CC=Gl(zt,AC,ar,Lt,Cn,Dt,Rt,Ri);var _C=Xl(zt,$l,qe,Lt,Ip(Ae,xn),Dt,Rt,ae),vC=cd(Sr,Pu,Ot,wr,ae),Mi=dm(Lm),IC=ad(zt,ar,vC,mn,Pu,Dt,Rt,Mi),ai=yp(or,Hu),SC=Sm(Lt,ai),ci=Ep(An,SC),wC=ld(ci,Ot,ae),NC=hd(zt,wC,ci,Dt,Rt),TC=pd(yn,Ot,ae),OC=dd(zt,TC,yn,Dt,Rt,Nm),RC=Lp(la,Cn,Ae,ai),_n=kp(la,ze,RC,ua,ha),MC=bd(Sr,_n,Ot,wr,ae),EC=yd(zt,ar,MC,_n,Dt,Rt,Ri),qm=jp(se,xn),DC=Cd(qm,Ot,ae),kC=Ad(zt,DC,qm,Dt,Rt,Mi),LC=Nd(Sr,Fu,Ot,wr,ae),jC=wd(zt,ar,LC,Fu,Dt,Rt,Mi),Wm=Pp(se),PC=kd(Sr,Wm,Ot,wr,ae),FC=Dd(zt,ar,PC,Wm,se,Dt,Rt,Mi),BC=Vd(Sr,Ae,Ot,wr,ae),GC=Gd(zt,ar,BC,Ae,Dt,Rt),VC=Gp(mn,Lt,bn,se),da=hm(ze,Ae,bn,bm(Ae,Gr)),qC=Kd(Cn,Ot,Gr,ae,da),WC=Fp(VC),UC=Qd(zt,WC,qC,Dt,Rt,Mi),zC=Ql(ar,ci,_n,bn,se,Gu,Rt,xn),Um=new WeakMap,Ku=fp(_C,zC,Fm,Rt,Um,Ri),zm=Yp(la,ze,ua,Wu,ha,Uu),YC=rm(Sr,zm,Ot,wr,ae),HC=em(zt,ar,zm,YC,Dt,Rt,Ri),Ym=gd(Cn),ZC=Jp(Ym,Lt,Ae,Vu,ai),pa=Kp(Ym,Lt,ZC,Vu,ai,An,xn),XC=Zp(cn,Lt,ci,Ae,bn,pa,se,un,Gu,ai),Hm=Hp(XC),$C=nm(Sr,ci,_n,Ae,Hm,Ot,Gr,wr,ae,da),QC=im(zt,ar,Hm,$C,Dt,Rt,Mi),KC=Xp(qe),JC=om(KC,Dt,new WeakSet,Tm),t_=Qp(ci,yn,Ae,pa,se,ai),Zm=$p(t_,se),e_=fm(Sr,Zm,Ot,wr,ae),r_=mm(zt,ar,Zm,e_,Dt,Rt),i_=Am(pa,Ot,ae),n_=xm(zt,Lt,pa,i_,Dt,Rt,Mi),Xm=up(Ir),Ju=Fd(Ir),$m=new WeakMap,o_=Zd($m,Gr),s_=Xm?Ml(ze,se,jd(Ir),Ju,Bd(_l),Dt,o_,Rt,Io,new WeakMap,new WeakMap,ym(Io,Gr),Ir):void 0,a_=ap(Yu,Rt),c_=Id(Zu,ze,vd,Ld,new WeakSet,Dt,a_,sn,sr,Xu,$u),Qm=sd(s_,xC,Qu,CC,IC,NC,OC,EC,kC,c_,jC,FC,GC,UC,Ku,HC,QC,JC,r_,n_),u_=hp(zt,Vp,Dt,Rt),h_=lp(zt,qp,Dt,Rt),l_=dp(zt,Wp,Dt,Rt),d_=Up(Lt,Rt),p_=pp(zt,d_,Dt),Km=Zl(Qm,Lt,se,Bu,u_,h_,l_,p_,An);var th=Xd(Um),m_=Ll(th),Jm=fd(qe),f_=Od(th),tf=Ed(qe),ef=new WeakMap,g_=qd(ef,$t),y_=Mp(Jm,qe,Lt,ci,yn,_n,Ae,bn,se,tf,Ju,g_,ai),b_=Np(Lt,y_,Ae,se,ai),x_=od(Sr,Jm,Cn,ci,yn,_n,Ae,f_,tf,Ju,Ot,Io,Gr,wr,ae,da),A_=Yd($m),C_=lm(ef),eh=Xm?id(m_,zt,ar,x_,b_,re,A_,Dt,Rt,Io,wm,C_,Em,Ri):void 0;var jU=mp(Lt,se,Bu,Ku,An);var rf=_d(se,Gr),nf=pm(Zu,ze,zu,th,da,sn,Xu,$u),PU=gp(ze,Lt,rf,Ku,nf);var of=tm(Qm,ze,Lt,rf,nf);var sf=tp(on,Yu),af=ep(nn,Hu),cf=rp(xo,Bm),uf=ip(on,Rt);function Yt(i){return i===void 0}function it(i){return i!==void 0}function hf(i){return typeof i=="function"}function ce(i){return typeof i=="number"}function cr(i){return Object.prototype.toString.call(i)==="[object Object]"&&i.constructor===Object}function rh(i){return typeof i=="boolean"}function Pt(i){return Array.isArray(i)}function pe(i){return typeof i=="string"}function So(i){return pe(i)&&/^([a-g]{1}(?:b|#|x|bb)?)(-?[0-9]+)/i.test(i)}function Y(i,t){if(!i)throw new Error(t)}function Vt(i,t,e=1/0){if(!(t<=i&&i<=e))throw new RangeError(`Value must be within [${t}, ${e}], got: ${i}`)}function ma(i){!i.isOffline&&i.state!=="running"&&Ei('The AudioContext is "suspended". Invoke Tone.start() from a user action to start the audio.')}var df=!1,lf=!1;function ih(i){df=i}function pf(i){Yt(i)&&df&&!lf&&(lf=!0,Ei("Events scheduled inside of scheduled callbacks should use the passed in scheduling time. See https://github.com/Tonejs/Tone.js/wiki/Accurate-Timing"))}var mf=console;function ff(...i){mf.log(...i)}function Ei(...i){mf.warn(...i)}function gf(i){return new Km(i)}function yf(i,t,e){return new of(i,t,e)}var me=typeof self=="object"?self:null,bf=me&&(me.hasOwnProperty("AudioContext")||me.hasOwnProperty("webkitAudioContext"));function xf(i,t,e){return Y(it(eh),"AudioWorkletNode only works in a secure context (https or localhost)"),new(i instanceof(me==null?void 0:me.BaseAudioContext)?me==null?void 0:me.AudioWorkletNode:eh)(i,t,e)}function fe(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 ft(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(l){try{u(r.next(l))}catch(h){s(h)}}function c(l){try{u(r.throw(l))}catch(h){s(h)}}function u(l){l.done?o(l.value):n(l.value).then(a,c)}u((r=r.apply(i,t||[])).next())})}var fa=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([`
1
+ /* WebMusicScore v5.5.0 | (c) 2023-2025 PahkaSoft | MIT License | Includes: Tone.js (MIT License), Color Name to Code (MIT License) */
2
+ "use strict";var WebMusicScore=(()=>{var Es=Object.defineProperty,fg=Object.defineProperties,gg=Object.getOwnPropertyDescriptor,yg=Object.getOwnPropertyDescriptors,bg=Object.getOwnPropertyNames,Ms=Object.getOwnPropertySymbols;var eu=Object.prototype.hasOwnProperty,Zh=Object.prototype.propertyIsEnumerable;var Jc=(i,t)=>(t=Symbol[i])?t:Symbol.for("Symbol."+i),xg=i=>{throw TypeError(i)},Xh=Math.pow,tu=(i,t,e)=>t in i?Es(i,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[t]=e,O=(i,t)=>{for(var e in t||(t={}))eu.call(t,e)&&tu(i,e,t[e]);if(Ms)for(var e of Ms(t))Zh.call(t,e)&&tu(i,e,t[e]);return i},K=(i,t)=>fg(i,yg(t));var Qr=(i,t)=>{var e={};for(var r in i)eu.call(i,r)&&t.indexOf(r)<0&&(e[r]=i[r]);if(i!=null&&Ms)for(var r of Ms(i))t.indexOf(r)<0&&Zh.call(i,r)&&(e[r]=i[r]);return e};var tn=(i,t)=>{for(var e in t)Es(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))!eu.call(i,n)&&n!==e&&Es(i,n,{get:()=>t[n],enumerable:!(r=gg(t,n))||r.enumerable});return i};var Cg=i=>Ag(Es({},"__esModule",{value:!0}),i);var d=(i,t,e)=>tu(i,typeof t!="symbol"?t+"":t,e);var tt=(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 de=i=>{var t=i[Jc("asyncIterator")],e=!1,r,n={};return t==null?(t=i[Jc("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[Jc("iterator")]=()=>n,r("next"),"throw"in t?r("throw"):n.throw=o=>{throw o},"return"in t&&r("return"),n};var Xv={};tn(Xv,{Audio:()=>Po,Core:()=>lu,Pieces:()=>$h,Score:()=>Wh,Theory:()=>Cu});var Po={};tn(Po,{addInstrument:()=>fv,getCurrentInstrument:()=>mv,getInstrumentList:()=>pv,isMuted:()=>bv,linearToDecibels:()=>Ks,mute:()=>gv,playNote:()=>Wa,stop:()=>Ua,unmute:()=>yv,useInstrument:()=>Jf});var Cu={};tn(Cu,{AccidentalType:()=>pu,BeamGrouping:()=>Ni,Chord:()=>mu,DefaultGuitarNoteLabel:()=>vA,DefaultHandedness:()=>XA,DefaultPitchNotation:()=>CA,DefaultTuningName:()=>KA,GuitarNoteLabel:()=>Us,GuitarNoteLabelList:()=>SA,Handedness:()=>gu,Interval:()=>co,KeySignature:()=>rr,Mode:()=>du,Note:()=>W,NoteLength:()=>ir,NoteLengthProps:()=>Ot,PitchNotation:()=>ti,PitchNotationList:()=>AA,RhythmProps:()=>Qt,Scale:()=>ri,ScaleFactory:()=>ie,ScaleType:()=>Ii,SymbolSet:()=>Jr,TimeSignature:()=>ii,TimeSignatures:()=>lo,TuningNameList:()=>ho,Tuplet:()=>Gr,alterTempoSpeed:()=>Au,getDefaultKeySignature:()=>zs,getDefaultScale:()=>VA,getDefaultTempo:()=>Xs,getDefaultTimeSignature:()=>Zs,getPitchNotationName:()=>_A,getScale:()=>Pr,getScaleFactory:()=>Ml,getScaleFactoryList:()=>BA,getTempoString:()=>Qs,getTuningStrings:()=>Hs,isNoteLength:()=>nr,isTupletRatio:()=>$s,validateGuitarNoteLabel:()=>wA,validateHandedness:()=>QA,validateIntervalQuality:()=>kA,validateNoteLength:()=>Br,validatePitchNotation:()=>_l,validateScaleType:()=>uo,validateTuningName:()=>yu,validateTupletRatio:()=>kl});var Qh=Object.defineProperty,vg=(i,t,e)=>t in i?Qh(i,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[t]=e,er=(i,t)=>{for(var e in t)Qh(i,e,{get:t[e],enumerable:!0})},ft=(i,t,e)=>vg(i,typeof t!="symbol"?t+"":t,e),Kh={};er(Kh,{assert:()=>Wy,doesNotThrow:()=>hx,doesThrow:()=>ux,fail:()=>Hy,isArray:()=>sb,isArrayOrUndefined:()=>ab,isBigInt:()=>Ob,isBoolean:()=>bb,isBooleanOrUndefined:()=>xb,isDeepEqual:()=>Zy,isDefined:()=>Jy,isEmptyArray:()=>cb,isEmptyArrayOrUndefined:()=>hb,isEmptyObject:()=>rb,isEmptyString:()=>pb,isEmptyStringOrUndefined:()=>gb,isEnumValue:()=>Ib,isEnumValueOrUndefined:()=>Tb,isEven:()=>nx,isFalse:()=>_b,isFalseOrUndefined:()=>vb,isFinite:()=>Eb,isFloat:()=>Db,isFunction:()=>Sb,isFunctionOrUndefined:()=>wb,isIncluded:()=>ax,isIndex:()=>cx,isInfinity:()=>Hb,isInteger:()=>kb,isIntegerBetween:()=>qb,isIntegerBetweenExclusive:()=>Wb,isIntegerEq:()=>Pb,isIntegerGt:()=>Fb,isIntegerGte:()=>Bb,isIntegerLt:()=>Gb,isIntegerLte:()=>Vb,isIntegerOrUndefined:()=>jb,isMultipleOf:()=>ox,isNaNValue:()=>Yb,isNeg:()=>Qb,isNegInfinity:()=>Zb,isNegZero:()=>rx,isNonEmptyArray:()=>ub,isNonEmptyArrayOrUndefined:()=>lb,isNonEmptyString:()=>mb,isNonEmptyStringOrUndefined:()=>yb,isNonNeg:()=>Jb,isNonNull:()=>tb,isNonPos:()=>Kb,isNull:()=>Qy,isNullish:()=>Ky,isNumber:()=>Rb,isNumberBetween:()=>Ub,isNumberBetweenExclusive:()=>zb,isNumberOrUndefined:()=>Mb,isNumericString:()=>Nb,isObject:()=>eb,isObjectOrUndefined:()=>nb,isOdd:()=>ix,isPlainObject:()=>ib,isPos:()=>Xb,isPosInfinity:()=>$b,isPosZero:()=>ex,isPowerOfTwo:()=>sx,isSafeInteger:()=>Lb,isStrictEqual:()=>$y,isString:()=>db,isStringOrUndefined:()=>fb,isTrue:()=>Ab,isTrueOrUndefined:()=>Cb,isTypedObject:()=>ob,isUndefined:()=>Xy,isZero:()=>tx,require:()=>Uy,requireDefined:()=>zy,requireElement:()=>Yy,setErrorClass:()=>qy});var Jh={};er(Jh,{charCount:()=>Gy,chunkString:()=>Py,insertAt:()=>Fy,isString:()=>il,makeSentenceFromPascal:()=>Vy,removeAt:()=>By,repeatString:()=>jy,replaceAt:()=>su,stringify:()=>Bt,toCharArray:()=>Ly});var tl={};er(tl,{deepEqual:()=>js,getCtorName:()=>sl,hasProperties:()=>ky,isObject:()=>Si});var y={};er(y,{doesNotThrow:()=>Ey,doesThrow:()=>My,isArray:()=>Pe,isArrayOrUndefined:()=>Pg,isBigInt:()=>iy,isBoolean:()=>Hg,isBooleanOrUndefined:()=>$g,isDeepEqual:()=>so,isDefined:()=>Rg,isEmptyArray:()=>Fg,isEmptyArrayOrUndefined:()=>Gg,isEmptyObject:()=>Eg,isEmptyString:()=>qg,isEmptyStringOrUndefined:()=>zg,isEnumValue:()=>ty,isEnumValueOrUndefined:()=>ey,isEven:()=>Iy,isFalse:()=>Qg,isFalseOrUndefined:()=>Kg,isFinite:()=>en,isFloat:()=>oy,isFunction:()=>_r,isFunctionOrUndefined:()=>Jg,isIncluded:()=>Oy,isIndex:()=>Ry,isInfinity:()=>fy,isInteger:()=>kt,isIntegerBetween:()=>nl,isIntegerBetweenExclusive:()=>dy,isIntegerEq:()=>cy,isIntegerGt:()=>uy,isIntegerGte:()=>ou,isIntegerLt:()=>hy,isIntegerLte:()=>ly,isIntegerOrUndefined:()=>ay,isMultipleOf:()=>Ty,isNaNValue:()=>ol,isNeg:()=>xy,isNegInfinity:()=>yy,isNegZero:()=>Sy,isNonEmptyArray:()=>Bg,isNonEmptyArrayOrUndefined:()=>Vg,isNonEmptyString:()=>Wg,isNonEmptyStringOrUndefined:()=>Yg,isNonNeg:()=>Cy,isNonNull:()=>Mg,isNonPos:()=>Ay,isNull:()=>Ng,isNullish:()=>Og,isNumber:()=>pe,isNumberBetween:()=>py,isNumberBetweenExclusive:()=>my,isNumberOrUndefined:()=>ny,isNumericString:()=>ry,isObject:()=>Si,isObjectOrUndefined:()=>Dg,isOdd:()=>wy,isPlainObject:()=>kg,isPos:()=>by,isPosInfinity:()=>gy,isPosZero:()=>vy,isPowerOfTwo:()=>Ny,isSafeInteger:()=>sy,isStrictEqual:()=>Ig,isString:()=>il,isStringOrUndefined:()=>Ug,isTrue:()=>Zg,isTrueOrUndefined:()=>Xg,isTypedObject:()=>Lg,isUndefined:()=>Tg,isZero:()=>_y,tryOr:()=>Dy});var el={};er(el,{forEachEnum:()=>wg,getEnumEntries:()=>rl,getEnumKey:()=>Sg,getEnumKeys:()=>Ps,getEnumValues:()=>nu});function Ps(i){return Object.keys(i).filter(t=>isNaN(Number(t)))}function nu(i){return Ps(i).map(t=>i[t])}function rl(i){return Ps(i).map(t=>[t,i[t]])}function Sg(i,t){return Ps(i).find(e=>i[e]===t)}function wg(i,t){for(let[e,r]of rl(i))t(e,r)}function Ig(i,t){return i===t}function so(i,t){return js(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 Si(i){return typeof i=="object"&&i!==null&&!Pe(i)}function Eg(i){return Si(i)&&Object.keys(i).length===0}function Dg(i){return i===void 0||Si(i)}function kg(i){if(!Si(i))return!1;let t=Object.getPrototypeOf(i);return t===Object.prototype||t===null}function Lg(i,t){return Si(i)&&t.every(e=>e in i)}function jg(i){return i instanceof Set}function Pe(i){return!!i&&Object.prototype.toString.call(i)==="[object Array]"}function Pg(i){return i===void 0||Pe(i)}function Fg(i){return Pe(i)&&i.length===0}function Bg(i){return Pe(i)&&i.length>0}function Gg(i){return Pe(i)&&i.length===0||i===void 0}function Vg(i){return Pe(i)&&i.length>0||i===void 0}function il(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 nu(t).some(e=>e===i)}function ey(i,t){return i===void 0||nu(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 pe(i){return typeof i=="number"}function ny(i){return typeof i=="number"||i===void 0}function en(i){return typeof i=="number"&&Number.isFinite(i)}function oy(i){return en(i)&&!kt(i)}function kt(i){return typeof i=="number"&&en(i)&&i===Math.trunc(i)}function sy(i){return kt(i)&&Number.isSafeInteger(i)}function ay(i){return typeof i=="number"&&en(i)&&i===Math.trunc(i)||i===void 0}function cy(i,t){return kt(i)&&i===t}function uy(i,t){return kt(i)&&pe(t)&&i>t}function ou(i,t){return kt(i)&&pe(t)&&i>=t}function hy(i,t){return kt(i)&&pe(t)&&i<t}function ly(i,t){return kt(i)&&pe(t)&&i<=t}function nl(i,t,e){return kt(i)&&pe(t)&&pe(e)&&i>=t&&i<=e}function dy(i,t,e){return kt(i)&&pe(t)&&pe(e)&&i>t&&i<e}function py(i,t,e){return pe(i)&&pe(t)&&pe(e)&&i>=t&&i<=e}function my(i,t,e){return pe(i)&&pe(t)&&pe(e)&&i>t&&i<e}function ol(i){return typeof i=="number"&&Number.isNaN(i)}function fy(i){return i===1/0||i===-1/0}function gy(i){return i===1/0}function yy(i){return i===-1/0}function by(i){return typeof i=="number"&&i>0}function xy(i){return typeof i=="number"&&i<0}function Ay(i){return typeof i=="number"&&i<=0}function Cy(i){return typeof i=="number"&&i>=0}function _y(i){return typeof i=="number"&&i===0}function vy(i){return typeof i=="number"&&i===0&&1/i===1/0}function Sy(i){return typeof i=="number"&&i===0&&1/i===-1/0}function wy(i){return kt(i)&&Math.abs(i)%2===1}function Iy(i){return kt(i)&&i%2===0}function Ty(i,t){return typeof i=="number"&&typeof t=="number"&&i%t===0}function Ny(i){return kt(i)&&i>0&&(i&i-1)===0}function Oy(i,t){return Pe(t)?t.includes(i):jg(t)?t.has(i):!1}function Ry(i,t){return Pe(t)?nl(i,0,t.length-1):ou(i,0)}function My(i){try{return i(),!1}catch(t){return!0}}function Ey(i){try{return i(),!0}catch(t){return!1}}function Dy(i,t){try{return i()}catch(e){return _r(t)?t():t}}function ky(i,t){return Si(i)&&t.every(e=>e in i)}function js(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)=>js(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)||!js(i[n],t[n]))return!1;return!0}function sl(i){return i===null?"null":Pe(i)?"Array":typeof i!="object"?typeof i:Object.prototype.toString.call(i).slice(8,-1)||"Object"}function Ly(i){return i.split("")}function jy(i,t){if(!kt(t)||t<0)throw new Error("repeatStr: Invalid repeatCount = "+t);return new Array(t+1).join(i)}function Py(i,t){if(!kt(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 su(i,t,e,r){if(!kt(e)||e<0)throw new Error("replaceAt: Invalid removeCount = "+e);if(!kt(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 Fy(i,t,e){return su(i,t,0,e)}function By(i,t,e){return su(i,t,e,"")}function Gy(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 Vy(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 Bt(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 ol(i)?"NaN":en(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=>Bt(s,t,e);if(Pe(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=sl(i),a=Object.entries(i).map(([c,u])=>`${n(c)}: ${n(u)}`);return a.length===0?`${s}{ }`:`${s}{ ${a.join(", ")} }`}return String(i)}var F=Bt,al=Error;function qy(i){al=i!=null?i:Error}function z(...i){let t=i.join(", ");throw new al("Assertion Failed!"+(t===""?"":" "+t))}function Wy(i,t){i||z(t)}function Uy(i,t){return i==null&&z(`Expected ${F(i)} not to be nullish`,t),i}function zy(i,t){return i===void 0&&z(`Expected ${F(i)} not to be undefined`,t),i}function Yy(i,t,e){return y.isIndex(i,t)||z(`Expected ${i} to be index for array ${F(t)}`,e),t[i]}function Hy(i){z(i)}function $y(i,t,e){return y.isStrictEqual(i,t)||z(`Expected ${F(i)} to ne strict equal to ${t}`,e),i}function Zy(i,t,e){return y.isDeepEqual(i,t)||z(`Expected ${F(i)} to deep equal with ${F(t)}`,e),i}function Xy(i,t){return y.isUndefined(i)||z(`Expected ${F(i)} to be undefined`,t),i}function Qy(i,t){return y.isNull(i)||z(`Expected ${F(i)} to be null`,t),i}function Ky(i,t){return y.isNullish(i)||z(`Expected ${F(i)} to be null or undefined`,t),i}function Jy(i,t){return y.isDefined(i)||z(`Expected ${F(i)} to be defined`,t),i}function tb(i,t){return y.isNonNull(i)||z(`Expected ${F(i)} to be defined`,t),i}function eb(i,t){return y.isObject(i)||z(`Expected ${F(i)} to be object`,t),i}function rb(i,t){return y.isEmptyObject(i)||z(`Expected ${F(i)} to be empty object`,t),i}function ib(i,t){return y.isPlainObject(i)||z(`Expected ${F(i)} to be plain object`,t),i}function nb(i,t){return y.isObjectOrUndefined(i)||z(`Expected ${F(i)} to be object or undefined`,t),i}function ob(i,t,e){return y.isTypedObject(i,t)||z(`Expected ${F(i)} to have keys ${F(t)}`,e),i}function sb(i,t){return y.isArray(i)||z(`Expected ${F(i)} to be array`,t),i}function ab(i,t){return y.isArrayOrUndefined(i)||z(`Expected ${F(i)} to be array or undefined`,t),!0}function cb(i,t){y.isEmptyArray(i)||z(`Expected ${F(i)} to be empty array`,t)}function ub(i,t){y.isNonEmptyArray(i)||z(`Expected ${F(i)} to be non-empty array`,t)}function hb(i,t){y.isEmptyArrayOrUndefined(i)||z(`Expected ${F(i)} to be empty array or undefined`,t)}function lb(i,t){y.isNonEmptyArrayOrUndefined(i)||z(`Expected ${F(i)} to be non-empty array or undefined`,t)}function db(i,t){return y.isString(i)||z(`Expected ${F(i)} to be string`,t),i}function pb(i,t){return y.isEmptyString(i)||z(`Expected ${F(i)} to be empty string`,t),i}function mb(i,t){return y.isNonEmptyString(i)||z(`Expected ${F(i)} to be non-empty string`,t),i}function fb(i,t){return y.isStringOrUndefined(i)||z(`Expected ${F(i)} to be string or undefined`,t),i}function gb(i,t){return y.isEmptyStringOrUndefined(i)||z(`Expected ${F(i)} to be empty string or undefined`,t),i}function yb(i,t){return y.isNonEmptyStringOrUndefined(i)||z(`Expected ${F(i)} to be non-empty string or undefined`,t),i}function bb(i,t){return y.isBoolean(i)||z(`Expected ${F(i)} to be boolean`,t),i}function xb(i,t){return y.isBooleanOrUndefined(i)||z(`Expected ${F(i)} to be boolean or undefined`,t),i}function Ab(i,t){return y.isTrue(i)||z(`Expected ${F(i)} to be true`,t),i}function Cb(i,t){return y.isTrueOrUndefined(i)||z(`Expected ${F(i)} to be true or undefined`,t),i}function _b(i,t){return y.isFalse(i)||z(`Expected ${F(i)} to be false`,t),i}function vb(i,t){return y.isFalseOrUndefined(i)||z(`Expected ${F(i)} to be false or undefined`,t),i}function Sb(i,t){return y.isFunction(i)||z(`Expected ${F(i)} to be function`,t),i}function wb(i,t){return y.isFunctionOrUndefined(i)||z(`Expected ${F(i)} to be function or undefined`,t),i}function Ib(i,t,e){return y.isEnumValue(i,t)||z(`Expected ${F(i)} to be enum val`,e),i}function Tb(i,t,e){return y.isEnumValueOrUndefined(i,t)||z(`Expected ${F(i)} to be enum val or undefined`,e),i}function Nb(i,t){return y.isNumericString(i)||z(`Expected ${F(i)} to be numeric string`,t),i}function Ob(i,t){return y.isBigInt(i)||z(`Expected ${F(i)} to be BigInt`,t),i}function Rb(i,t){return y.isNumber(i)||z(`Expected ${F(i)} to be number`,t),i}function Mb(i,t){return y.isNumberOrUndefined(i)||z(`Expected ${F(i)} to be number or undefined`,t),i}function Eb(i,t){return y.isFinite(i)||z(`Expected ${F(i)} to be finite`,t),i}function Db(i,t){return y.isFloat(i)||z(`Expected ${F(i)} to be float`,t),i}function kb(i,t){return y.isInteger(i)||z(`Expected ${F(i)} to be integer`,t),i}function Lb(i,t){return y.isSafeInteger(i)||z(`Expected ${F(i)} to be safe integer`,t),i}function jb(i,t){return y.isIntegerOrUndefined(i)||z(`Expected ${F(i)} to be integer or undefined`,t),i}function Pb(i,t,e){return y.isIntegerEq(i,t)||z(`Expected ${F(i)} to be integer equal to ${F(t)}`,e),i}function Fb(i,t,e){return y.isIntegerGt(i,t)||z(`Expected ${F(i)} to be integer > ${F(t)}`,e),i}function Bb(i,t,e){return y.isIntegerGte(i,t)||z(`Expected ${F(i)} to be integer >= ${F(t)}`,e),i}function Gb(i,t,e){return y.isIntegerLt(i,t)||z(`Expected ${F(i)} to be integer < ${F(t)}`,e),i}function Vb(i,t,e){return y.isIntegerLte(i,t)||z(`Expected ${F(i)} to be integer <= ${F(t)}`,e),i}function qb(i,t,e,r){return y.isIntegerBetween(i,t,e)||z(`Expected integer ${F(t)} <= ${F(i)} <= ${F(e)}`,r),i}function Wb(i,t,e,r){return y.isIntegerBetweenExclusive(i,t,e)||z(`Expected integer ${F(t)} < ${F(i)} < ${F(e)}`,r),i}function Ub(i,t,e,r){return y.isNumberBetween(i,t,e)||z(`Expected number ${F(t)} <= ${F(i)} <= ${F(e)}`,r),i}function zb(i,t,e,r){return y.isNumberBetweenExclusive(i,t,e)||z(`Expected number ${F(t)} < ${F(i)} < ${F(e)}`,r),i}function Yb(i,t){return y.isNaNValue(i)||z(`Expected ${F(i)} to be NaN`,t),NaN}function Hb(i,t){return y.isInfinity(i)||z(`Expected ${F(i)} to be +-Infinity`,t),i}function $b(i,t){return y.isPosInfinity(i)||z(`Expected ${F(i)} to be +Infinity`,t),i}function Zb(i,t){return y.isNegInfinity(i)||z(`Expected ${F(i)} to be -Infinity`,t),i}function Xb(i,t){return y.isPos(i)||z(`Expected ${F(i)} to be positive (> 0)`,t),i}function Qb(i,t){return y.isNeg(i)||z(`Expected ${F(i)} to be negative (< 0)`,t),i}function Kb(i,t){return y.isNonPos(i)||z(`Expected ${F(i)} to be non-positive (<= 0)`,t),i}function Jb(i,t){return y.isNonNeg(i)||z(`Expected ${F(i)} to be non-negative (>= 0)`,t),i}function tx(i,t){return y.isZero(i)||z(`Expected ${F(i)} to be 0`,t),i}function ex(i,t){return y.isPosZero(i)||z(`Expected ${F(i)} to be +0`,t),i}function rx(i,t){return y.isNegZero(i)||z(`Expected ${F(i)} to be -0`,t),i}function ix(i,t){return y.isOdd(i)||z(`Expected ${F(i)} to odd`,t),i}function nx(i,t){return y.isEven(i)||z(`Expected ${F(i)} to even`,t),i}function ox(i,t,e){return y.isMultipleOf(i,t)||z(`Expected ${F(i)} to be divisble bu ${F(t)}`,e),i}function sx(i,t){return y.isPowerOfTwo(i)||z(`Expected ${F(i)} to be power of two`,t),i}function ax(i,t,e){return y.isIncluded(i,t)||z(`Expected ${F(i)} to be included in ${F(t)}`,e),i}function cx(...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)||z(r===void 0?`Expected ${t} to be index`:`Expected ${t} to be index for ${F(r)}`,e),t}function ux(i,t){return y.doesThrow(i)||z("Expected to throw",t),!0}function hx(i,t){return y.doesNotThrow(i)||z("Expected to throw",t),!0}var lx={};er(lx,{accept:()=>gx,decline:()=>yx,erase:()=>cl,eraseAll:()=>_x,isConsentPending:()=>fx,read:()=>xx,readBool:()=>Cx,readInt:()=>Ax,save:()=>bx,setExpireDays:()=>mx});var Fs="ConsentCookie",tr,oo,ru=Bs(Fs);tr=ru==="accept"||ru==="decline"?ru:void 0;function dx(){return document.cookie.split(";").map(t=>t.trim())}function au(i,t){let e=i+"="+t.toString()+";sameSite=Lax;";return oo&&(e+="expires="+oo.toUTCString()+";"),document.cookie=e,t}function Bs(i,t){let e=dx().find(r=>r.startsWith(i+"="));return e===void 0?t:e.substring(i.length+1)}function px(i){document.cookie=i+"=;expires=Thu, 01 Jan 1970 00:00:00 UTC;"}function mx(i){oo=new Date,oo.setDate(oo.getDate()+i)}function fx(){return tr===void 0}function gx(){tr="accept",au(Fs,tr)}function yx(){tr="decline",au(Fs,tr)}function bx(i,t){return tr==="accept"&&au(i,t),t}function xx(i,t){var e;return tr==="accept"&&(e=Bs(i,t))!=null?e:t}function Ax(i,t){if(tr==="accept"){let e=Bs(i);return e===void 0?t:parseInt(e)}else return t}function Cx(i,t){if(tr==="accept"){let e=Bs(i);return e===void 0?t:/true|1/i.test(e)}else return t}function cl(i){(tr==="accept"||i===Fs)&&px(i)}function _x(){document.cookie.split(";").forEach(i=>cl(i.trim().split("=")[0]))}var Gs={};er(Gs,{DPI:()=>ul,FontSize:()=>hl,HostAddress:()=>kx,IsMobileDevice:()=>Dx,IsTouchDevice:()=>Ex,PxPerMm:()=>cu,ScrollbarWidth:()=>Mx,mmToPx:()=>Ds,pxToMm:()=>Lx,toPx:()=>jx});function vx(){let i=document.createElement("div");i.style.width="1in",document.body.appendChild(i);let t=i.offsetWidth;return i.remove(),t||96}function Sx(){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 wx(){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 Ix(){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 Tx(){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 Nx(){return location.protocol+"//"+location.host}var Ox=/^(mm|cm|in|inch|px|em)$/,Rx=/^([0-9\\.]+)(.*)$/,ul=vx(),cu=ul/25.4,Mx=Sx(),hl=wx(),Ex=Ix(),Dx=Tx(),kx=Nx();function Lx(i){return i/cu}function Ds(i){return i*cu}function jx(i){if(typeof i=="number")return i;let t=NaN,e,r=i.toString().match(Rx);if(r&&r[1]){t=parseFloat(r[1]);let n=r[2]?r[2].toLowerCase():"undefined";e=Ox.test(n)?n:void 0,e||console.log("Unknown unit '"+n+"' => using 'px'.")}else t=parseFloat(i);switch(Kh.isFinite(t,"value in function toPx"),e){case"mm":return Ds(t);case"cm":return Ds(t)*10;case"in":case"inch":return Ds(t)*25.4;case"em":return hl*t;default:case"px":return t}}var H={};er(H,{Arr:()=>ll,Dom:()=>ml,Enum:()=>el,Math:()=>fl,Obj:()=>tl,Str:()=>Jh});var ll={};er(ll,{arrayContains:()=>Wx,chunckArray:()=>Ux,duplicate:()=>Fx,fillArray:()=>Gx,getRangeArray:()=>qx,getSequenceArray:()=>Vx,isArray:()=>Pe,mapRangeArray:()=>pl,mapSequenceArray:()=>dl,removeDuplicates:()=>Bx,toArray:()=>Px});function Px(i){return Pe(i)?i:[i]}function Fx(i){var t;return(t=i==null?void 0:i.slice())!=null?t:[]}function Bx(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 Gx(i,t){if(!kt(t)||t<0)throw new Error("fillArray: Invalid fillCount = "+t);return new Array(t).fill(i)}function dl(i,t){if(!kt(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 Vx(i){return dl(i,t=>t)}function pl(i,t,e){if(!kt(i))throw new Error("mapRangeArray: Invalid start = "+t);if(!kt(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 qx(i,t){return pl(i,t,e=>e)}function Wx(i,t){return i.indexOf(t)>=0}function Ux(i,t){if(!kt(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 ml={};er(ml,{addClass:()=>zx,appendTo:()=>Jx,getButton:()=>iA,getCanvas:()=>nA,getCanvasTextWidth:()=>cA,getDimension:()=>sA,getHeight:()=>Qx,getOffset:()=>$x,getPadding:()=>oA,getWidth:()=>Zx,hasClass:()=>uu,removeClass:()=>Yx,removeFromParent:()=>tA,setHeight:()=>Kx,setOffset:()=>Hx,setRect:()=>rA,setVisibility:()=>eA,setWidth:()=>Xx,styleLayoutChanged:()=>aA});function Dt(i){return i===void 0?void 0:Gs.toPx(i)}function uu(i,t){return t.length===0?!1:i.classList?i.classList.contains(t):!!i.className.match(new RegExp("(\\s|^)"+t+"(\\s|$)"))}function zx(i,t){t.length!==0&&(i.classList?i.classList.add(t):uu(i,t)||(i.className+=" "+t))}function Yx(i,t){if(t.length!==0){if(i.classList)i.classList.remove(t);else if(uu(i,t)){var e=new RegExp("(\\s|^)"+t+"(\\s|$)");i.className=i.className.replace(e," ")}}}function Hx(i,t,e,r="px"){i.style.left=t+r,i.style.top=e+r}function $x(i){let t=i.getBoundingClientRect(),e=document.documentElement;return{top:t.top+window.pageYOffset-e.clientTop,left:t.left+window.pageXOffset-e.clientLeft}}function Zx(i){if(i instanceof Window)return i.innerWidth;{let t=parseFloat(getComputedStyle(i,null).width.replace("px",""));return isNaN(t)?0:t}}function Xx(i,t){i.style.width=t+"px"}function Qx(i){if(i instanceof Window)return i.innerHeight;{let t=parseFloat(getComputedStyle(i,null).height.replace("px",""));return isNaN(t)?0:t}}function Kx(i,t){i.style.height=t+"px"}function Jx(i,t){t.appendChild(i)}function tA(i){i.remove()}function eA(i,t){i.style.display=t?"block":"none"}function rA(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 iA(i){let t=typeof i=="string"?document.getElementById(i):i;return t instanceof HTMLButtonElement?t:void 0}function nA(i){let t=typeof i=="string"?document.getElementById(i):i;return t instanceof HTMLCanvasElement?t:void 0}function oA(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 sA(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 aA(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 io;function cA(i,t){io!=null||(io=document.createElement("canvas"));let e=io.getContext("2d");return e?(e.font=t,e.measureText(i).width):0}var fl={};er(fl,{avg:()=>gA,calcNormal:()=>fA,clamp:()=>iu,cmp:()=>yA,interpolateCoord:()=>pA,interpolateY:()=>mA,isInteger:()=>kt,isNumber:()=>pe,linearToDecibels:()=>uA,mod:()=>hA,romanize:()=>lA,sum:()=>gl,toOrdinalNumber:()=>dA});function uA(i){if(isFinite(i))return i<=0?-1/0:20*Math.log10(i);throw new Error("linearToDecibel: Invalid linearVolume = "+i)}function hA(i,t){return(i%t+t)%t}function lA(i){if(!kt(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 dA(i){if(!kt(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 pA(i,t,e,r,n){return{x:i+(e-i)*n,y:t+(r-t)*n}}function mA(i,t,e,r,n){let o=(n-i)/(e-i);return t+(r-t)*o}function iu(i,t,e){return Math.min(Math.max(i,t),e)}function fA(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 gl(i){return i.reduce((t,e)=>e+t,0)}function gA(...i){return gl(i)/i.length}function yA(i,t){return i<t?-1:i>t?1:0}var je=(i,t)=>i===t,jr=class{};var yl=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(!en(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(", ")})`}},hu=class Te{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 Te(r,n,o,s)}static fromCenter(t,e,r,n){return new Te(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 Te:new Te(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 Te(e,r,n-e,o-r)}insetCopy(t,e){return new Te(this.x+t,this.y+e,this.width-2*t,this.height-2*e)}inflateCopy(t,e){return new Te(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 Te(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 Te(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 Te(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 Te(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 Te(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 Te(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 _i{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 _i(t,t+r,e,e+n)}static createCentered(t,e,r,n){return new _i(t-r/2,t,t+r/2,e-n/2,e,e+n/2)}static createSections(t,e,r,n){return new _i(-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 _i.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 _i.equalsEdges(this,t)}clone(){return new _i(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=iu(this.anchorX,this.left,this.right),this.top=Math.max(this.top,t.top),this.bottom=Math.min(this.bottom,t.bottom),this.anchorY=iu(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 hu(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})`}},bl=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*de(this.entries())}toString(){let i=[...this.entries()];return i.length===0?"LRUCache(0){ }":`LRUCache(${i.length}){ ${i.map(t=>`${Bt(t[0])}: ${Bt(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(!ou(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*de(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 Bt(this.posVal.slice(0,this.hasPos.length));let e=this.entriesArray().map(([r,n])=>`${Bt(r)}: ${Bt(n)}`).join(", ");return e.length===0?"[ ]":`[ ${e} ]`}},xl=class Ne extends jr{constructor(t){if(super(),ft(this,"posVal"),ft(this,"hasPos"),ft(this,"negVal"),ft(this,"hasNeg"),ft(this,"valCount"),t instanceof Ne)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(!kt(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 Ne.validateIndex(t),t>=0?this.hasPos[t]===!0:this.hasNeg[Ne.toNegIndex(t)]===!0}set(t,e){if(Ne.validateIndex(t),t>=0)this.hasPos[t]!==!0&&this.valCount++,this.posVal[t]=e,this.hasPos[t]=!0;else{let r=Ne.toNegIndex(t);this.hasNeg[r]!==!0&&this.valCount++,this.negVal[r]=e,this.hasNeg[r]=!0}}get(t){if(Ne.validateIndex(t),t>=0)return this.hasPos[t]?this.posVal[t]:void 0;{let e=Ne.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){Ne.validateIndex(t);let e=t>=0,r=e?this.posVal:this.negVal,n=e?this.hasPos:this.hasNeg,o=e?t:Ne.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 Ne.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[Ne.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*de(this.entries())}clone(){return new Ne(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 Ne;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 Bt(this.posVal.slice(0,this.hasPos.length));let e=this.entriesArray().map(([r,n])=>`${Bt(r)}: ${Bt(n)}`).join(", ");return e.length===0?"[ ]":`[ ${e} ]`}};var dt=class no extends jr{constructor(...t){super(),ft(this,"map"),ft(this,"keyEquals");let e=t.at(-1);this.keyEquals=_r(e)?t.pop():je;let r=t[0];this.map=new Map(r)}static createDeep(t){return t?new no(t,so):new no(so)}has(t){if(this.keyEquals===je||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===je||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===je||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===je||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*de(this.map.keys())}*values(){yield*de(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*de(this.entries())}clone(){return new no(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 no;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])=>`${Bt(e)} => ${Bt(r)}`).join(", ");return t.length===0?`Map(${this.size}){ }`:`Map(${this.size}){ ${t} }`}},Al=class ks extends jr{constructor(t){if(super(),ft(this,"map1"),ft(this,"key1Equals",je),ft(this,"key2Equals",je),this.map1=new dt(this.key1Equals),t instanceof ks)for(let[e,r]of t.map1){let n=this.map1.set(e,new dt(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 dt(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*de(this.entries())}clone(){return new ks(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 ks;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])=>`${Bt(o)} => ${Bt(s)}`).join(", ");t.push(`${Bt(e)} => { ${n} }`)}return t.length===0?`Map(${this.size}){ }`:`Map(${this.size}){ ${t} }`}},Vs=class Ls extends jr{constructor(t){if(super(),ft(this,"map1"),ft(this,"key1Equals",je),ft(this,"key2Equals",je),ft(this,"key3Equals",je),this.map1=new dt(this.key1Equals),t instanceof Ls)for(let[e,r]of t.map1){let n=this.map1.set(e,new dt(this.key2Equals));for(let[o,s]of r)n.set(o,new dt(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 dt(this.key2Equals)).getOrCreate(e,()=>new dt(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*de(this.entries())}clone(){return new Ls(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 Ls;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])=>`${Bt(a)} => ${Bt(c)}`).join(", ");t.push(`${Bt(e)} => ${Bt(n)} => { ${s} }`)}return t.length===0?`Map(${this.size}){ }`:`Map(${this.size}){ ${t.join(", ")} }`}},qs=class vi extends jr{constructor(...t){super(),ft(this,"data"),ft(this,"equals");let e=t.at(-1);this.equals=_r(e)?t.pop():je;let r=t[0];this.data=new Set(r)}static createDeep(t){return t?new vi(t,so):new vi(so)}has(t){return this.equals===je?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===je||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*de(this.data.keys())}*values(){yield*de(this.data.values())}*entries(){yield*de(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*de(this.values())}clone(){let t=new vi;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 vi;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 vi;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 vi;for(let r of this.values())e.add(t(r));return e}toSet(){return new Set(this.data)}toArray(){return[...this.values()]}toString(){return Bt(this.data)}},bA=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*de(this.getAll(...i))}*values(){for(let i of this.keys())yield*de(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)?Bt(t):"[ ]",n=Array.isArray(e)?Bt(e):"[ ]";i.push(`${r} => ${n}`)}return i.length===0?"MultiContainer{ }":`MultiContainer{ ${i.join(", ")} }`}};function Ws(i){return new bA(i)}var lu={};tn(lu,{MusicError:()=>T,MusicErrorType:()=>_t,init:()=>wi});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 xA(i){return i===void 0?"":`[${_t[i]}] `}var T=class extends Error{constructor(...e){let[r,n]=e.length===1?[0,e[0]]:e;super(xA(r)+n);d(this,"type");Object.setPrototypeOf(this,new.target.prototype),this.name="MusicError",this.type=r}};var Cl=!1;function wi(){Cl||(Cl=!0,console.log("%cWebMusicScore v5.5.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||{}),AA=H.Enum.getEnumValues(ti),CA=0;function _l(i){if(y.isEnumValue(i,ti))return i;throw new T(1,`Invalid pitchNotation: ${i}`)}function _A(i){return ti[_l(i)]}var Us=(r=>(r.Default="Default",r.OmitOctave="Omit Octave",r.Interval="Interval",r))(Us||{}),vA="Default",SA=H.Enum.getEnumValues(Us);function wA(i){if(y.isEnumValue(i,Us))return i;throw new T(5,`Invalid guitarNoteLabel: ${i}`)}function vl(i,t){return(i%t+t)%t}var Sl=12,wl=7,IA=new Map([[-2,"bb"],[-1,"b"],[0,""],[1,"#"],[2,"x"]]),TA=new Map([[-2,"\u{1D12B}"],[-1,"\u266D"],[0,""],[1,"\u266F"],[2,"\u{1D12A}"]]),Il=new Map([["",0],["bb",-2],["b",-1],["#",1],["x",2],["\u{1D12B}",-2],["\u266D",-1],["\u266F",1],["\u{1D12A}",2]]),ao=["C","D","E","F","G","A","B"],Tl=[0,2,4,5,7,9,11],Nl=/^([A-G])((?:bb|𝄫|♭|b|#|♯|x|𝄪)?)?(-?\d+)?$/,pt=class pt{constructor(t,e,r){d(this,"diatonicClass");d(this,"accidental");d(this,"octave");if(typeof t=="number"&&typeof e=="number"&&r===void 0)pt.validateDiatonicId(t),this.diatonicClass=pt.getDiatonicClass(t),this.accidental=pt.validateAccidental(e),this.octave=pt.getOctaveFromDiatonicId(t);else if(typeof t=="number"&&typeof e=="number"&&typeof r=="number")this.diatonicClass=pt.validateDiatonicClass(t),this.accidental=pt.validateAccidental(e),this.octave=pt.validateOctave(r);else if(typeof t=="string"&&typeof e=="number"&&typeof r=="number")this.diatonicClass=pt.getDiatonicClass(t),this.accidental=pt.validateAccidental(e),this.octave=pt.validateOctave(r);else throw new T(2,`Invalid args: ${t}, ${e}, ${r}`)}get diatonicId(){return pt.getDiatonicIdInOctave(this.diatonicClass,this.octave)}get chromaticId(){return pt.getChromaticIdInOctave(Tl[this.diatonicClass]+this.accidental,this.octave)}get midiNumber(){return this.chromaticId}get chromaticClass(){return pt.getChromaticClass(Tl[this.diatonicClass]+this.accidental)}get noteLetter(){return ao[this.diatonicClass]}format(t,e){let{noteLetter:r,octave:n}=this,o=pt.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=ao[this.diatonicClass],r=pt.getAccidentalSymbol(this.accidental,t);return e+r}static getNote(t){return this.noteCache.getOrCreate(t,()=>{let e=pt.parseNote(t);if(!e)throw new T(2,`Invalid note "${t}".`);if(e.octave===void 0)throw new T(2,`Invalid note "${t}" (missing octave).`);return new pt(e.noteLetter,e.accidental,e.octave)})}static isNote(t){let e=pt.parseNote(t);return e!==void 0&&e.octave!==void 0}static validateNote(t){if(this.isNote(t))return!0;throw new T(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"][pt.getChromaticClass(t)].split("/")[0]+pt.getOctaveFromChromaticId(t);return pt.getNote(r)})}static getDiatonicClass(t){if(typeof t=="number")return vl(t,7);if(typeof t=="string"&&t.length>0)return ao.indexOf(pt.validateNoteLetter(t[0]));throw new T(2,`Invalid arg: ${t}`)}static getOctaveFromDiatonicId(t){return Math.floor((t-wl)/7)}static getDiatonicIdInOctave(t,e){return pt.getDiatonicClass(t)+e*7+wl}static getChromaticClass(t){return vl(t,12)}static getOctaveFromChromaticId(t){return Math.floor((t-Sl)/12)}static getChromaticIdInOctave(t,e){return pt.getChromaticClass(t)+e*12+Sl}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 Nl.test(t)}static parseNote(t){var c;let e=Nl.exec(t);if(!e)return;let r=pt.validateNoteLetter(e[1]),n=e[2],o=pt.validateAccidental((c=Il.get(n))!=null?c:0),s=e[3],a=s?pt.validateOctave(+s):void 0;return{noteLetter:r,accidental:o,octave:a}}static getScientificNoteName(t,e){let r=pt.parseNote(t);if(!r)throw new T(2,`Invalid noteName: ${t}`);let{noteLetter:n,accidental:o,octave:s}=r;return n+pt.getAccidentalSymbol(o,e)+(s!=null?s:"")}static getAccidentalSymbol(t,e){return e===1?TA.get(t):IA.get(t)}static getAccidental(t){let e=Il.get(t);if(e===void 0)throw new T(2,`Invalid accidental: ${t}`);return e}static getNoteLetter(t){return ao[pt.getDiatonicClass(t)]}static findNextDiatonicIdAbove(t,e,r){let n=pt.getDiatonicClass(t),o=pt.getDiatonicClass(e),s=r?n<=o?1:0:n<o?1:0;return pt.getDiatonicIdInOctave(n,pt.getOctaveFromDiatonicId(e)+s)}static validateDiatonicId(t){if(y.isInteger(t))return t;throw new T(2,`Invalid diatonicId: ${t}`)}static validateDiatonicClass(t){if(y.isIntegerBetween(t,0,6))return t;throw new T(2,`Invalid diatonicClass: ${t}`)}static validateChromaticId(t){if(y.isInteger(t))return t;throw new T(2,`Invalid chromaticId: ${t}`)}static validatechromaticClass(t){if(y.isIntegerBetween(t,0,11))return t;throw new T(2,`Invalid chromaticClass: ${t}`)}static validateNoteLetter(t){if(ao.some(e=>e===t))return t;throw new T(2,`Invalid note: ${t}`)}static validateOctave(t){if(y.isInteger(t))return t;throw new T(2,`Invalid octave: ${t}`)}static validateAccidental(t){if(y.isIntegerBetween(t,-2,2))return t;throw new T(2,`Invalid accidental: ${t}`)}static sort(t){return t.slice().sort(pt.compareFunc)}static removeDuplicates(t){let e=[];return t.forEach(r=>{e.find(n=>pt.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(pt,"noteCache",new dt),d(pt,"chromaticNoteCache",new dt);var W=pt;function NA(i,t){let e=W.getChromaticClass(i)-new W(t,0).chromaticClass;for(;e>2;)e-=12;for(;e<-2;)e+=12;return W.validateAccidental(e)}var OA=/^(bb?|b?|#?|x?)([0-9]*)$/;function RA(i){var n,o;let t=OA.exec(""+i);if(!t)throw new T(4,`Invalid degree: ${i}`);let e=(o=W.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 T(4,`Invalid degree: ${i}`);return{deg:r,acc:e}}var du=(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))(du||{}),pu=(r=>(r[r.Natural=0]="Natural",r[r.Flats=1]="Flats",r[r.Sharps=2]="Sharps",r))(pu||{});function zs(){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,du))throw new T(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=W.getDiatonicClass(t[0]),o=W.getNote(t+"0").chromaticId;for(let c=0;c<7;n++,o+=r[c],c++){let u=new W(W.getDiatonicClass(n),NA(o,n));if(Math.abs(u.accidental)>=2)throw new T(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 T(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 T(4,"Unexpected note in key signature.");return h-l});if(s.length!==0&&a.length!==0)throw new T(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[W.getDiatonicClass(t)])!=null?e:0}getNumAccidentals(){return this.orderedAccidentedNotes.length}getOrderedAccidentalNotes(){return this.orderedAccidentedNotes}getNoteByDegree(t){let{deg:e,acc:r}=RA(t);if(r===0)return this.naturalScaleNotes[(e-1)%7];{let n=this.naturalScaleNotes[(e-1)%7];return new W(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 MA=new dt([["Major","M"],["minor","m"],["Perfect","P"],["diminished","d"],["Augmented","A"],["doubly diminished","dd"],["Doubly Augmented","AA"]]),EA={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 DA(i,t){for(;i<1;)i+=7,t+=12;for(;i>8;)i-=7,t-=12;let e=EA[i];if(e)return e[t]}function kA(i){if(i==="Perfect"||i==="Major"||i==="minor"||i==="Augmented"||i==="diminished"||i==="Doubly Augmented"||i==="doubly diminished")return i;throw new T(1,`Invalid interval quality: ${i}`)}function LA(i){if(y.isIntegerGte(i,1))return H.Math.toOrdinalNumber(i);throw new T(1,`Invalid interval quantity: ${i}`)}var Ys=class extends Error{constructor(e){super(e);this.msg=e;this.name="InvalidInterval"}},co=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=DA(this.quantity,this.semitones);if(r)this.quality=r;else throw new Ys("Unknown interval quality")}static get(t,e){try{return new i(t,e)}catch(r){if(r instanceof Ys)return;throw r}}toString(){let t=this.direction==="Unison"?"":this.direction+" ",e=this.quality+" ",r=this.direction==="Unison"?"Unison":LA(this.quantity);return t+e+r}toAbbrString(){let t=this.direction==="Descending"?"\u2193":"",e=MA.getOrDefault(this.quality,"?"),r=this.quantity;return t+e+r}};function jA(i){let t=W.getDiatonicClass("CCDDEFFGGAAB"[W.getChromaticClass(i)]),e=W.getOctaveFromChromaticId(i);return W.getDiatonicIdInOctave(t,e)}var PA=["Cb","C","C#","Db","D","D#","Eb","E","E#","Fb","F","F#","Gb","G","G#","Ab","A","A#","Bb","B","B#"],Ii=(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))(Ii||{});function FA(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 T(3,`Invalid scaleType: ${i}`)}}var ri=class extends rr{constructor(e,r){super(e,FA(r));this.tonic=e;this.scaleType=r;d(this,"scaleDegrees");d(this,"scaleNotes");d(this,"chromaticClassDegree");d(this,"preferredChromaticIdNoteCache",new xl);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 W.getScientificNoteName(this.tonic,e)+" "+this.scaleType;default:return this.tonic+" "+this.scaleType}}getScaleNotes(e,r){if(!y.isIntegerGte(r,1))throw new T(3,`Invalid numOctaves: ${r}`);let n=[];for(let s=1;s<=r;s++)n=[...n,...this.scaleNotes];n.push(this.scaleNotes[0]);let o=W.getNote(e).diatonicId;return n.map(s=>(o=W.findNextDiatonicIdAbove(s.diatonicId,o,!1),new W(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(H.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 W(e.diatonicClass,e.accidental,e.octave-1);if(e.chromaticId<r.chromaticId)throw new T(3,"Note is below rootNote.");let n=co.get(r,e);if(n===void 0)throw new T(3,"Interval is undefined.");return n}getPreferredChromaticNote(e){W.validateChromaticId(e);let r=this.preferredChromaticIdNoteCache.get(e);if(r)return r;let n=W.getOctaveFromChromaticId(e);if(r=this.scaleNotes.map(l=>l.noteLetter==="C"&&l.accidental<0?new W(l.diatonicClass,l.accidental,n+1):l.noteLetter==="B"&&l.accidental>0?new W(l.diatonicClass,l.accidental,n-1):new W(l.diatonicClass,l.accidental,n)).find(l=>W.getChromaticClass(e)===l.chromaticClass),r)return this.preferredChromaticIdNoteCache.set(e,r),r;let s=jA(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 W(m,p),e===r.chromaticId)return this.preferredChromaticIdNoteCache.set(e,r),r}return r=W.getChromaticNote(e),this.preferredChromaticIdNoteCache.set(e,r),r}},ie=class{constructor(t){this.type=t;d(this,"tonicList",[]);d(this,"scaleMap",new Map);let e=[],r=[],n=[];if(PA.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 T(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 T(3,`Invalid scale: ${t} ${this.type}`)}hasScale(t){return this.scaleMap.get(t)!==void 0}},Ol=[new ie("Major"),new ie("Natural Minor"),new ie("Harmonic Minor"),"- Modes -",new ie("Ionian"),new ie("Dorian"),new ie("Phrygian"),new ie("Lydian"),new ie("Mixolydian"),new ie("Aeolian"),new ie("Locrian"),"- Pentatonic -",new ie("Major Pentatonic"),new ie("Minor Pentatonic"),"- Blues -",new ie("Major Hexatonic Blues"),new ie("Minor Hexatonic Blues"),new ie("Heptatonic Blues")];function BA(){return Ol}var Rl=new dt;Ol.forEach(i=>{i instanceof ie&&Rl.set(i.getType(),i)});function Ml(i){let t=Rl.get(i);if(t)return t;throw new T(3,`Invalid scaleType: ${i}`)}function uo(i){if(y.isEnumValue(i,Ii))return i;throw new T(3,`Invalid scaleType: "${i}"`)}function Pr(i,t){let e,r;return t!==void 0?(e=i,r=uo(t)):(e=i.split(" ")[0],r=uo(i.substring(e.length+1))),Ml(r).getScale(e)}var GA=Pr("C","Major");function VA(){return GA}var Fr=(i,t)=>i.chromaticClass===t.chromaticClass,qA=["C","C#","Db","D","Eb","E","F","F#","Gb","G","Ab","A","Bb","B","Cb"].map(i=>W.getNote(i+"0")),WA=new vr;function UA(i){return WA.getOrCreate(i.chromaticClass,()=>{let t=qA.find(e=>Fr(e,i));if(!t)throw new T(1,`Invalid chord root note: ${i.formatOmitOctave(1)}`);return t})}function zA(i,t){let e=i.formatOmitOctave(0);return Pr(e,"Major").getNoteByDegree(t)}function YA(i){return H.Arr.removeDuplicates(i,Fr)}var HA=[{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 $A(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 rn=class extends Error{constructor(e){super(e);this.msg=e;this.name="InvalidChordException"}},mu=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]=zA(this.rootNote,c),h=o.findIndex(l=>Fr(l,u));if(h>=0)this.omitNotes[a]=!1,o.splice(h,1);else if($A(t,c))this.omitNotes[a]=!0;else throw new rn("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 rn("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 rn("Power chord no bass note allowed!")}static getChords(t){let e=[],r=W.sort(t),n=r[0],o=YA(r);for(let s=0;s<o.length;s++){let a=UA(o[s]);HA.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 rn))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 W.replaceAccidentalSymbols(""+this.chordInfo.degrees[t],1)}getNoteStr(t){return this.notes[t].formatOmitOctave(1)}};var fu={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 gu=(e=>(e[e.RightHanded=0]="RightHanded",e[e.LeftHanded=1]="LeftHanded",e))(gu||{}),XA=0;function QA(i){if(y.isEnumValue(i,gu))return i;throw new T(1,`Invalid handedness: ${i}`)}var ho=fu.list.map(i=>i.name),KA=ho[0];function yu(i){if(ho.indexOf(i)<0)throw new T(1,`Invalid tuning name: ${i}`);return i}var El=new bl(100);function Hs(i){let t=El.get(i);if(!t){let e=fu.list.find(r=>r.name===i);if(!e)throw new T(1,`Invalid tuningName: ${i}`);if(t=e.strings.slice().reverse().map(r=>W.getNote(r)),!y.isIntegerEq(t.length,6))throw new T(0,`Tuning has ${t.length} strings.`);El.set(i,t)}return t}var Dl=12,JA=1188*7*5,ir=(B=>(B.Whole="1n",B.WholeTriplet="1t",B.WholeDot="1.",B.Whole2Dots="1..",B.Whole12Dots="1..",B.Whole3Dots="1...",B.Whole4Dots="1....",B.Whole5Dots="1.....",B.Whole6Dots="1......",B.Half="2n",B.HalfTriplet="2t",B.HalfDot="2.",B.Half2Dots="2..",B.Half3Dots="2...",B.Half4Dots="2....",B.Half5Dots="2.....",B.Quarter="4n",B.QuarterTriplet="4t",B.QuarterDot="4.",B.Quarter2Dots="4..",B.Quarter3Dots="4...",B.Quarter4Dots="4....",B.Eighth="8n",B.EighthTriplet="8t",B.EighthDot="8.",B.Eighth2Dots="8..",B.Eighth3Dots="8...",B.Sixteenth="16n",B.SixteenthTriplet="16t",B.SixteenthDot="16.",B.Sixteenth2Dots="16..",B.ThirtySecond="32n",B.ThirtySecondTriplet="32t",B.ThirtySecondDot="32.",B.SixtyFourth="64n",B.SixtyFourthTriplet="64t",B))(ir||{});function nr(i){return y.isEnumValue(i,ir)}function Br(i){if(nr(i))return i;throw new T(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=H.Str.charCount(t,"."),this.flagCount=this.noteSize>4?Math.floor(Math.log2(this.noteSize/4)):0,this.ticks=JA*me.ShortestNoteSize/this.noteSize,this.hasStem=this.noteSize>1,this.isSolid=this.noteSize>2,this.dotCount>this.maxDotCount)throw new T(2,`dotCount ${this.dotCount} > maxDotCount ${this.maxDotCount}, for noteLength "${this.noteLength}".`);if(this.isTriplet&&this.dotCount>0)throw new T(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 H.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(...H.Enum.getEnumValues(ir).map(t=>parseInt(t)))),d(me,"ShortestNoteSize",Math.max(...H.Enum.getEnumValues(ir).map(t=>parseInt(t)))),d(me,"cache",new dt);var Ot=me;function $s(i){return y.isObject(i)&&y.isIntegerBetween(i.parts,2,Dl)&&y.isIntegerBetween(i.inTimeOf,2,Dl)}function kl(i){if($s(i))return i;throw new T(2,`Invalid tupletRatio ${JSON.stringify(i)}`)}var Gr={Duplet:{parts:2,inTimeOf:3},Triplet:{parts:3,inTimeOf:2},Quadruplet:{parts:4,inTimeOf:3}},Ti=class Ti{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=Ot.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=kl(r):n.isTriplet?this.tupletRatio=Gr.Triplet:this.tupletRatio=void 0,this.dotCount>0&&this.tupletRatio!==void 0)throw new T(2,"Note cannot be both dotted and tuplet!");if(this.dotCount>n.maxDotCount)throw new T(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=Ti.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 Ti(t,e,r):this.cache.getOrCreate(t,()=>new Ti(t))}static cmp(t,e){return H.Math.cmp(t.ticks,e.ticks)}static equals(t,e){return t.ticks===e.ticks}};d(Ti,"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(Ti,"cache",new dt);var Qt=Ti;var lo=(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))(lo||{}),Ni=(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))(Ni||{}),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],lo)){let o=t[0].split("/");this.beatCount=+o[0],this.beatSize=+o[1],y.isEnumValue(t[1],Ni)&&(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],Ni)&&(e=t[2]);else throw new T(5,`Invalid args: ${t}`);if(y.isIntegerGte(this.beatCount,1)){if(!y.isIntegerGte(this.beatSize,1))throw new T(5,`Invalid beatSize: ${this.beatSize}`)}else throw new T(5,`Invalid beatCount: ${this.beatCount}`);let{noteLength:r,ticks:n}=Ot.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 T(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 T(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 T(5,`Unimplemented time signature "${this.toString()}".`);if(e!==void 0)throw new T(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}},bu;function Zs(){return bu||(bu=new ii(4,4)),bu}var xu;function Xs(){return xu||(xu={beatsPerMinute:120,options:{beatLength:"4n",dotCount:0}}),xu}function Qs(i){return Qt.get(i.options.beatLength,i.options.dotCount).toString()+"="+i.beatsPerMinute}function Au(i,t){return{beatsPerMinute:i.beatsPerMinute*t,options:{beatLength:i.options.beatLength,dotCount:i.options.dotCount}}}wi();function Ks(i){return!isFinite(i)||i<=0?-1/0:20*Math.log10(i)}var po="15.1.22";var _u=(i,t,e)=>({endTime:t,insertTime:e,type:"exponentialRampToValue",value:i});var vu=(i,t,e)=>({endTime:t,insertTime:e,type:"linearRampToValue",value:i});var nn=(i,t)=>({startTime:t,type:"setValue",value:i});var mo=(i,t,e)=>({duration:e,startTime:t,type:"setValueCurve",values:i});var Js=(i,t,{startTime:e,target:r,timeConstant:n})=>r+(t-r)*Math.exp((e-i)/n);var Vr=i=>i.type==="exponentialRampToValue";var Oi=i=>i.type==="linearRampToValue";var or=i=>Vr(i)||Oi(i);var on=i=>i.type==="setValue";var Ue=i=>i.type==="setValueCurve";var sn=(i,t,e,r)=>{let n=i[t];return n===void 0?r:or(n)||on(n)?n.value:Ue(n)?n.values[n.values.length-1]:Js(e,sn(i,t-1,n.startTime,r),n)};var Su=(i,t,e,r,n)=>e===void 0?[r.insertTime,n]:or(e)?[e.endTime,e.value]:on(e)?[e.startTime,e.value]:Ue(e)?[e.startTime+e.duration,e.values[e.values.length-1]]:[e.startTime,sn(i,t-1,e.startTime,n)];var fo=i=>i.type==="cancelAndHold";var go=i=>i.type==="cancelScheduledValues";var qr=i=>fo(i)||go(i)?i.cancelTime:Vr(i)||Oi(i)?i.endTime:i.startTime;var wu=(i,t,e,{endTime:r,value:n})=>e===n?n:0<e&&0<n||e<0&&n<0?e*Xh(n/e,(i-t)/(r-t)):0;var Iu=(i,t,e,{endTime:r,value:n})=>e+(i-t)/(r-t)*(n-e);var Ll=(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 jl=(i,{duration:t,startTime:e,values:r})=>{let n=(i-e)/t*(r.length-1);return Ll(r,n)};var yo=i=>i.type==="setTarget";var bo=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(fo(t)||go(t)){let r=this._automationEvents.findIndex(o=>go(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)),fo(t)){let o=this._automationEvents[this._automationEvents.length-1];if(n!==void 0&&or(n)){if(o!==void 0&&yo(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)?wu(e,s,a,n):Iu(e,s,a,n),u=Vr(n)?_u(c,e,this._currenTime):vu(c,e,this._currenTime);this._automationEvents.push(u)}if(o!==void 0&&yo(o)&&this._automationEvents.push(nn(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]=mo(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)?_u(t.value,t.endTime,this._currenTime):Oi(t)?vu(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];yo(n)&&r.unshift(nn(sn(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&&yo(o)&&(r===void 0||!or(r)||r.insertTime>t))return Js(t,sn(this._automationEvents,n-1,o.startTime,this._defaultValue),o);if(o!==void 0&&on(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?jl(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]=Su(this._automationEvents,n,o,r,this._defaultValue);return wu(t,s,a,r)}if(r!==void 0&&Oi(r)){let[s,a]=Su(this._automationEvents,n,o,r,this._defaultValue);return Iu(t,s,a,r)}return this._defaultValue}};var Tu=i=>({cancelTime:i,type:"cancelAndHold"});var Nu=i=>({cancelTime:i,type:"cancelScheduledValues"});var Ou=(i,t)=>({endTime:t,type:"exponentialRampToValue",value:i});var Ru=(i,t)=>({endTime:t,type:"linearRampToValue",value:i});var Mu=(i,t,e)=>({startTime:t,target:i,timeConstant:e,type:"setTarget"});var Pl=()=>new DOMException("","AbortError");var Fl=i=>(t,e,[r,n,o],s)=>{i(t[n],[e,r,o],a=>a[0]===e&&a[1]===r,s)};var Bl=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 Gl=i=>(t,e)=>{i.set(t,{activeInputs:new Set,passiveInputs:new WeakMap,renderer:e})};var Sr=new WeakSet,ta=new WeakMap,an=new WeakMap,ea=new WeakMap,xo=new WeakMap,cn=new WeakMap,ra=new WeakMap,Ao=new WeakMap,Co=new WeakMap,_o=new WeakMap;var Vl={construct(){return Vl}},ql=i=>{try{let t=new Proxy(i,Vl);new t}catch(t){return!1}return!0};var Wl=/^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]*);?/,Eu=(i,t)=>{let e=[],r=i.replace(/^[\s]+/,""),n=r.match(Wl);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(Wl)}return[e.join(";"),r]};var Ul=i=>{if(i!==void 0&&!Array.isArray(i))throw new TypeError("The parameterDescriptors property of given value for processorCtor is not an array.")},zl=i=>{if(!ql(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.")},Yl=(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),N=S.audioWorklet===void 0?n(g).then(([w,v])=>{let[A,_]=Eu(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 _=Co.get(S);if(_!==void 0){if(_.has(v))throw t();zl(A),Ul(A.parameterDescriptors),_.set(v,A)}else zl(A),Ul(A.parameterDescriptors),Co.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,V]=Eu(w,v),D=`${E};((AudioWorkletProcessor,registerProcessor)=>{${V}
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}})`,k=new Blob([D],{type:"application/javascript; charset=utf-8"}),j=URL.createObjectURL(k);return S.audioWorklet.addModule(j,b).then(()=>{if(a(S))return S;let q=s(S);return q.audioWorklet.addModule(j,b).then(()=>q)}).then(q=>{if(c===null)throw new SyntaxError;try{new c(q,`__sac${_}`)}catch(J){throw new SyntaxError}}).finally(()=>URL.revokeObjectURL(j))});return C===void 0?u.set(f,new Map([[g,N]])):C.set(g,N),N.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)}),N}};var Kt=(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 ia=(i,t,e,r)=>{let n=Kt(i,t),o=ni(n,s=>s[0]===e&&s[1]===r);return n.size===0&&i.delete(t),o};var wr=i=>Kt(ra,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 na=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 vo=(i,t)=>{!na(i)&&t.every(e=>e.size===0)&&Ir(i)};var Hl=(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:N}=o(g),{outputs:w}=o(f),v=a(f),A=_=>{let E=c(g),V=c(f);if(_){let M=ia(N,f,b,x);i(S,f,M,!1),!C&&!l(f)&&e(V,E,b,x),p(g)&&sr(g)}else{let M=r(S,f,b,x);t(N,x,M,!1),!C&&!l(f)&&n(V,E,b,x);let R=s(g);if(R===0)h(g)&&vo(g,S);else{let P=m.get(g);P!==void 0&&clearTimeout(P),m.set(g,setTimeout(()=>{h(g)&&vo(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(N,x,[f,b,A],!0),!0):!1}};var $l=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 Zl=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 Xl=i=>(t,e)=>{i(t).add(e)};var tC={channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",fftSize:2048,maxDecibels:-30,minDecibels:-100,smoothingTimeConstant:.8},Ql=(i,t,e,r,n,o)=>class extends i{constructor(a,c){let u=n(a),h=O(O({},tC),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 Kl=(i,t,e)=>()=>{let r=new WeakMap,n=(o,s)=>tt(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 un=i=>{try{i.copyToChannel(new Float32Array(1),0,-1)}catch(t){return!1}return!0};var ze=()=>new DOMException("","IndexSizeError");var hn=i=>{i.getChannelData=(t=>e=>{try{return t.call(i,e)}catch(r){throw r.code===12?ze():r}})(i.getChannelData)};var eC={numberOfChannels:1},Jl=(i,t,e,r,n,o,s,a)=>{let c=null;return class td{constructor(h){if(n===null)throw new Error("Missing the native OfflineAudioContext constructor.");let{length:l,numberOfChannels:p,sampleRate:m}=O(O({},eC),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),hn(f)):t(un,()=>un(f))||a(f),i.add(f),f}static[Symbol.hasInstance](h){return h!==null&&typeof h=="object"&&Object.getPrototypeOf(h)===td.prototype||i.has(h)}}};var Ht=-34028234663852886e22,Wt=-Ht;var Ae=i=>Sr.has(i);var rC={buffer:null,channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",loop:!1,loopEnd:0,loopStart:0,playbackRate:1},ed=(i,t,e,r,n,o,s,a)=>class extends i{constructor(u,h){let l=o(u),p=O(O({},rC),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,Wt,Ht)}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),Ae(this)&&Ir(this)};this._nativeAudioBufferSourceNode.addEventListener("ended",p)}}stop(u=0){this._nativeAudioBufferSourceNode.stop(u),this._audioBufferSourceNodeRenderer!==null&&(this._audioBufferSourceNodeRenderer.stop=u)}};var rd=(i,t,e,r,n)=>()=>{let o=new WeakMap,s=null,a=null,c=(u,h)=>tt(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 id=i=>"playbackRate"in i;var nd=i=>"frequency"in i&&"gain"in i;var od=i=>"offset"in i;var sd=i=>!("frequency"in i)&&"gain"in i;var ad=i=>"detune"in i&&"frequency"in i&&!("gain"in i);var cd=i=>"pan"in i;var ne=i=>Kt(ta,i);var oi=i=>Kt(ea,i);var oa=(i,t)=>{let{activeInputs:e}=ne(i);e.forEach(n=>n.forEach(([o])=>{t.includes(i)||oa(o,[...t,i])}));let r=id(i)?[i.playbackRate]:na(i)?Array.from(i.parameters.values()):nd(i)?[i.Q,i.detune,i.frequency,i.gain]:od(i)?[i.offset]:sd(i)?[i.gain]:ad(i)?[i.detune,i.frequency]:cd(i)?[i.pan]:[];for(let n of r){let o=oi(n);o!==void 0&&o.activeInputs.forEach(([s])=>oa(s,t))}Ae(i)&&Ir(i)};var si=i=>{oa(i.destination,[])};var sa=i=>i===void 0||typeof i=="number"||typeof i=="string"&&(i==="balanced"||i==="interactive"||i==="playback");var ud=(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(!sa(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 hd=(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 ld=i=>{let t=new WeakMap,e=(r,n)=>tt(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 dd=(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],V=[0,0,0],M=()=>{if(_)return;_=!0;let k=r(u,256,9,0);k.onaudioprocess=({inputBuffer:j})=>{let q=[o(j,w,0),o(j,w,1),o(j,w,2),o(j,w,3),o(j,w,4),o(j,w,5)];q.some(($,B)=>$!==E[B])&&(h.setOrientation(...q),E=q);let J=[o(j,w,6),o(j,w,7),o(j,w,8)];J.some(($,B)=>$!==V[B])&&(h.setPosition(...J),V=J)},v.connect(k)},R=k=>j=>{j!==E[k]&&(E[k]=j,h.setOrientation(...E))},P=k=>j=>{j!==V[k]&&(V[k]=j,h.setPosition(...V))},D=(k,j,q)=>{let J=e(u,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",offset:j});J.connect(v,0,k),J.start(),Object.defineProperty(J.offset,"defaultValue",{get(){return j}});let $=i({context:c},A,J.offset,Wt,Ht);return a($,"value",B=>()=>B.call($),B=>mt=>{try{B.call($,mt)}catch(Ct){if(Ct.code!==9)throw Ct}M(),A&&q(mt)}),$.cancelAndHoldAtTime=(B=>A?()=>{throw n()}:(...mt)=>{let Ct=B.apply($,mt);return M(),Ct})($.cancelAndHoldAtTime),$.cancelScheduledValues=(B=>A?()=>{throw n()}:(...mt)=>{let Ct=B.apply($,mt);return M(),Ct})($.cancelScheduledValues),$.exponentialRampToValueAtTime=(B=>A?()=>{throw n()}:(...mt)=>{let Ct=B.apply($,mt);return M(),Ct})($.exponentialRampToValueAtTime),$.linearRampToValueAtTime=(B=>A?()=>{throw n()}:(...mt)=>{let Ct=B.apply($,mt);return M(),Ct})($.linearRampToValueAtTime),$.setTargetAtTime=(B=>A?()=>{throw n()}:(...mt)=>{let Ct=B.apply($,mt);return M(),Ct})($.setTargetAtTime),$.setValueAtTime=(B=>A?()=>{throw n()}:(...mt)=>{let Ct=B.apply($,mt);return M(),Ct})($.setValueAtTime),$.setValueCurveAtTime=(B=>A?()=>{throw n()}:(...mt)=>{let Ct=B.apply($,mt);return M(),Ct})($.setValueCurveAtTime),$};return{forwardX:D(0,0,R(0)),forwardY:D(1,0,R(1)),forwardZ:D(2,-1,R(2)),positionX:D(6,0,P(0)),positionY:D(7,0,P(1)),positionZ:D(8,0,P(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:N}=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 N}}};var Ri=i=>"context"in i;var ai=i=>Ri(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 Du=(i,t,[e,r],n)=>{ar(i,[t,e,r],o=>o[0]===t&&o[1]===e,n)};var ku=(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 ln=(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 Lu=(i,t,e)=>{for(let r of i)if(r[0]===t&&r[1]===e)return i.delete(r),r;return null};var pd=(i,t,e)=>ni(i,r=>r[0]===t&&r[1]===e);var ju=(i,t)=>{if(!wr(i).delete(t))throw new Error("Missing the expected event listener.")};var Pu=(i,t,e)=>{let r=Kt(i,t),n=ni(r,o=>o[0]===e);return r.size===0&&i.delete(t),n};var dn=(i,t,e,r)=>{Ye(t)?i.disconnect(t.inputs[r],e,0):i.disconnect(t,e,r)};var Rt=i=>Kt(an,i);var Mi=i=>Kt(xo,i);var Wr=i=>Ao.has(i);var pn=i=>!Sr.has(i);var Fu=(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 aa=(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 Ei=i=>"context"in i;var md=i=>{let t=new Map;i.connect=(e=>(r,n=0,o=0)=>{let s=Ei(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=>{Ei(s)?i.connect(s,c.output,c.input):i.connect(s,c.output)})})(i.disconnect)};var iC=(i,t,e,r)=>{let{activeInputs:n,passiveInputs:o}=oi(t),{outputs:s}=ne(i),a=wr(i),c=u=>{let h=Rt(i),l=Mi(t);if(u){let p=Pu(o,i,e);Du(n,i,p,!1),!r&&!Wr(i)&&h.connect(l,e)}else{let p=pd(n,i,e);ku(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),Ae(i)?Du(n,i,[e,c],!0):ku(o,[i,e,c],!0),!0):!1},nC=(i,t,e,r)=>{let{activeInputs:n,passiveInputs:o}=ne(t),s=Lu(n[r],i,e);return s===null?[ia(o,i,e,r)[2],!1]:[s[2],!0]},oC=(i,t,e)=>{let{activeInputs:r,passiveInputs:n}=oi(t),o=Lu(r,i,e);return o===null?[Pu(n,i,e)[1],!1]:[o[2],!0]},Bu=(i,t,e,r,n)=>{let[o,s]=nC(i,e,r,n);if(o!==null&&(ju(i,o),s&&!t&&!Wr(i)&&dn(Rt(i),Rt(e),r,n)),Ae(e)){let{activeInputs:a}=ne(e);vo(e,a)}},Gu=(i,t,e,r)=>{let[n,o]=oC(i,e,r);n!==null&&(ju(i,n),o&&!t&&!Wr(i)&&Rt(i).disconnect(Mi(e),r))},sC=(i,t)=>{let e=ne(i),r=[];for(let n of e.outputs)ai(n)?Bu(i,t,...n):Gu(i,t,...n),r.push(n[0]);return e.outputs.clear(),r},aC=(i,t,e)=>{let r=ne(i),n=[];for(let o of r.outputs)o[1]===e&&(ai(o)?Bu(i,t,...o):Gu(i,t,...o),n.push(o[0]),r.outputs.delete(o));return n},cC=(i,t,e,r,n)=>{let o=ne(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)?Bu(i,t,...s):Gu(i,t,...s),o.outputs.delete(s),s[0]))},fd=(i,t,e,r,n,o,s,a,c,u,h,l,p,m,f,g)=>class extends u{constructor(x,C,S,N){super(S),this._context=x,this._nativeAudioNode=S;let w=h(x);l(w)&&e(Fu,()=>Fu(w,g))!==!0&&md(S),an.set(this,S),ra.set(this,new Set),x.state!=="closed"&&C&&sr(this),i(this,N,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 N=h(this._context),w=f(N);if(p(x)||m(x))throw o();if(Ri(x)){let _=Rt(x);try{let V=ln(this._nativeAudioNode,_,C,S),M=pn(this);(w||M)&&this._nativeAudioNode.disconnect(...V),this.context.state!=="closed"&&!M&&pn(x)&&sr(x)}catch(V){throw V.code===12?o():V}if(t(this,x,C,S,w)){let V=c([this],x);aa(V,r(w))}return x}let v=Mi(x);if(v.name==="playbackRate"&&v.maxValue===1024)throw s();try{this._nativeAudioNode.connect(v,C),(w||pn(this))&&this._nativeAudioNode.disconnect(v,C)}catch(_){throw _.code===12?o():_}if(iC(this,x,C,w)){let _=c([this],x);aa(_,r(w))}}disconnect(x,C,S){let N,w=h(this._context),v=f(w);if(x===void 0)N=sC(this,v);else if(typeof x=="number"){if(x<0||x>=this.numberOfOutputs)throw n();N=aC(this,v,x)}else{if(C!==void 0&&(C<0||C>=this.numberOfOutputs)||Ri(x)&&S!==void 0&&(S<0||S>=x.numberOfInputs))throw n();if(N=cC(this,v,x,C,S),N.length===0)throw o()}for(let A of N){let _=c([this],A);aa(_,a)}}};var gd=(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 bo(C),N=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")N===null&&S.flush(m.context.currentTime),S.add(n(v)),g.cancelAndHoldAtTime(v);else{let A=Array.from(S).pop();N===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 N===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 N===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 N===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 N===null&&S.flush(m.context.currentTime),S.add(c(v,A,_)),g.setTargetAtTime(v,A,_),w},setValueAtTime(v,A){return N===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 V=A+_,M=m.context.sampleRate,R=Math.ceil(A*M),P=Math.floor(V*M),D=P-R,k=new Float32Array(D);for(let q=0;q<D;q+=1){let J=(E.length-1)/_*((R+q)/M-A),$=Math.floor(J),B=Math.ceil(J);k[q]=$===B?E[$]:(1-(J-$))*E[$]+(1-(B-J))*E[B]}N===null&&S.flush(m.context.currentTime),S.add(h(k,A,_)),g.setValueCurveAtTime(k,A,_);let j=P/M;j<V&&p(w,k[k.length-1],j),p(w,E[E.length-1],V)}else N===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,N),w};var yd=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 mn=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 uC={channelCount:2,channelCountMode:"explicit",channelInterpretation:"speakers",numberOfInputs:1,numberOfOutputs:1,parameterData:{},processorOptions:{}},bd=(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),N=c(S),w=h(O(O({},uC),x));p(w);let v=Co.get(S),A=v==null?void 0:v.get(b),_=N||S.state!=="closed"?S:(C=s(S))!==null&&C!==void 0?C:S,E=n(_,N?null:g.baseLatency,u,b,A,w),V=N?r(b,w,A):null;super(g,!0,E,V);let M=[];E.parameters.forEach((P,D)=>{let k=e(this,N,P);M.push([D,k])}),this._nativeAudioWorkletNode=E,this._onprocessorerror=null,this._parameters=new mn(M),N&&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 fn(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 ca=(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 gn=(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 xd=(i,t)=>{let e=Kt(_o,i),r=Rt(t);return Kt(e,r)};var hC=(i,t,e,r,n,o,s)=>tt(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=ne(i),p=yield xd(e,i),m=gn(r.numberOfInputs,r.channelCount),f=gn(r.numberOfOutputs,n),g=Array.from(i.parameters.keys()).reduce((b,x)=>K(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)fn(t,m[x],C,C,b);o.parameterDescriptors!==void 0&&t!==null&&o.parameterDescriptors.forEach(({name:x},C)=>{fn(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,N)=>l.activeInputs[N].size===0?[]:S),C=s(b/e.sampleRate,e.sampleRate,()=>p.process(x,f,g));if(h!==null)for(let S=0,N=0;S<r.numberOfOutputs;S+=1){for(let w=0;w<n[S];w+=1)ca(h,f[S],w,N+w,b);N+=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}),Ad=(i,t,e,r,n,o,s,a,c,u,h,l,p,m,f,g)=>(b,x,C)=>{let S=new WeakMap,N=null,w=(v,A)=>tt(null,null,function*(){let _=h(v),E=null,V=vt(_,A),M=Array.isArray(x.outputChannelCount)?x.outputChannelCount:Array.from(x.outputChannelCount);if(l===null){let R=M.reduce((j,q)=>j+q,0),P=n(A,{channelCount:Math.max(1,R),channelCountMode:"explicit",channelInterpretation:"discrete",numberOfOutputs:Math.max(1,R)}),D=[];for(let j=0;j<v.numberOfOutputs;j+=1)D.push(r(A,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"speakers",numberOfInputs:M[j]}));let k=s(A,{channelCount:x.channelCount,channelCountMode:x.channelCountMode,channelInterpretation:x.channelInterpretation,gain:1});k.connect=t.bind(null,D),k.disconnect=c.bind(null,D),E=[P,D,k]}else V||(_=new l(A,b));if(S.set(A,E===null?_:E[2]),E!==null){if(N===null){if(C===void 0)throw new Error("Missing the processor constructor.");if(p===null)throw new Error("Missing the native OfflineAudioContext constructor.");let q=v.channelCount*v.numberOfInputs,J=C.parameterDescriptors===void 0?0:C.parameterDescriptors.length,$=q+J;N=hC(v,$===0?null:yield tt(null,null,function*(){let mt=new p($,Math.ceil(v.context.length/128)*128,A.sampleRate),Ct=[],Yt=[];for(let Nt=0;Nt<x.numberOfInputs;Nt+=1)Ct.push(s(mt,{channelCount:x.channelCount,channelCountMode:x.channelCountMode,channelInterpretation:x.channelInterpretation,gain:1})),Yt.push(n(mt,{channelCount:x.channelCount,channelCountMode:"explicit",channelInterpretation:"discrete",numberOfOutputs:x.channelCount}));let ke=yield Promise.all(Array.from(v.parameters.values()).map(Nt=>tt(null,null,function*(){let ut=o(mt,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",offset:Nt.value});return yield m(mt,Nt,ut.offset),ut}))),Le=r(mt,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"speakers",numberOfInputs:Math.max(1,q+J)});for(let Nt=0;Nt<x.numberOfInputs;Nt+=1){Ct[Nt].connect(Yt[Nt]);for(let ut=0;ut<x.channelCount;ut+=1)Yt[Nt].connect(Le,ut,Nt*x.channelCount+ut)}for(let[Nt,ut]of ke.entries())ut.connect(Le,0,q+Nt),ut.start(0);return Le.connect(mt.destination),yield Promise.all(Ct.map(Nt=>f(v,mt,Nt))),g(mt)}),A,x,M,C,u)}let R=yield N,P=e(A,{buffer:null,channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",loop:!1,loopEnd:0,loopStart:0,playbackRate:1}),[D,k,j]=E;R!==null&&(P.buffer=R,P.start(0)),P.connect(D);for(let q=0,J=0;q<v.numberOfOutputs;q+=1){let $=k[q];for(let B=0;B<M[q];B+=1)D.connect($,J+B,B);J+=M[q]}return j}if(V)for(let[R,P]of v.parameters.entries())yield i(A,P,_.parameters.get(R));else for(let[R,P]of v.parameters.entries())yield m(A,P,_.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 Cd=(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,K(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 lC={Q:1,channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",detune:0,frequency:350,gain:0,type:"lowpass"},_d=(i,t,e,r,n,o,s,a)=>class extends i{constructor(u,h){let l=o(u),p=O(O({},lC),h),m=n(l,p),f=s(l),g=f?e():null;super(u,!1,m,g),this._Q=t(this,f,m.Q,Wt,Ht),this._detune=t(this,f,m.detune,1200*Math.log2(Wt),-1200*Math.log2(Wt)),this._frequency=t(this,f,m.frequency,u.sampleRate/2,0),this._gain=t(this,f,m.gain,40*Math.log10(Wt),Ht),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 vd=(i,t,e,r,n)=>()=>{let o=new WeakMap,s=(a,c)=>tt(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 Sd=(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 dC={channelCount:1,channelCountMode:"explicit",channelInterpretation:"speakers",numberOfInputs:6},wd=(i,t,e,r,n)=>class extends i{constructor(s,a){let c=r(s),u=O(O({},dC),a),h=e(c,u),l=n(c)?t():null;super(s,!1,h,l)}};var Id=(i,t,e)=>()=>{let r=new WeakMap,n=(o,s)=>tt(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 pC={channelCount:6,channelCountMode:"explicit",channelInterpretation:"discrete",numberOfOutputs:6},Td=(i,t,e,r,n,o)=>class extends i{constructor(a,c){let u=r(a),h=o(O(O({},pC),c)),l=e(u,h),p=n(u)?t():null;super(a,!1,l,p)}};var Nd=(i,t,e)=>()=>{let r=new WeakMap,n=(o,s)=>tt(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 Od=i=>(t,e,r)=>i(e,t,r);var Rd=i=>(t,e,r=0,n=0)=>{let o=t[r];if(o===void 0)throw i();return Ei(e)?o.connect(e,0,n):o.connect(e,0)};var Md=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 mC={channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",offset:1},Ed=(i,t,e,r,n,o,s)=>class extends i{constructor(c,u){let h=n(c),l=O(O({},mC),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,Wt,Ht),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),Ae(this)&&Ir(this)};this._nativeConstantSourceNode.addEventListener("ended",u)}}stop(c=0){this._nativeConstantSourceNode.stop(c),this._constantSourceNodeRenderer!==null&&(this._constantSourceNodeRenderer.stop=c)}};var Dd=(i,t,e,r,n)=>()=>{let o=new WeakMap,s=null,a=null,c=(u,h)=>tt(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 kd=i=>t=>(i[0]=t,i[0]);var fC={buffer:null,channelCount:2,channelCountMode:"clamped-max",channelInterpretation:"speakers",disableNormalization:!1},Ld=(i,t,e,r,n,o)=>class extends i{constructor(a,c){let u=r(a),h=O(O({},fC),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 jd=(i,t,e)=>()=>{let r=new WeakMap,n=(o,s)=>tt(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 Pd=(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 Fd=()=>new DOMException("","DataCloneError");var Vu=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 Bd=(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=>(Vu(p).catch(()=>{}),t(a,()=>a(f))||h(f),i.add(f),f)):new Promise((f,g)=>{let b=()=>tt(null,null,function*(){try{yield Vu(p)}catch(C){}}),x=C=>{g(C),b()};try{m.decodeAudioData(p,C=>{typeof C.copyFromChannel!="function"&&(u(C),hn(C)),i.add(C),b().then(()=>f(C))},C=>{x(C===null?r():C)})}catch(C){x(C)}})};var Gd=(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 gC={channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",delayTime:0,maxDelayTime:1},Vd=(i,t,e,r,n,o,s)=>class extends i{constructor(c,u){let h=n(c),l=O(O({},gC),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 qd=(i,t,e,r,n)=>o=>{let s=new WeakMap,a=(c,u)=>tt(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 Wd=i=>(t,e,r,n)=>i(t[n],o=>o[0]===e&&o[1]===r);var Ud=i=>(t,e)=>{i(t).delete(e)};var zd=i=>"delayTime"in i;var Yd=(i,t,e)=>function r(n,o){let s=Ri(o)?o:e(i,o);if(zd(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 ua=(i,t,e)=>{let r=t[e];if(r===void 0)throw i();return r},Hd=i=>(t,e=void 0,r=void 0,n=0)=>e===void 0?t.forEach(o=>o.disconnect()):typeof e=="number"?ua(i,t,e).disconnect():Ei(e)?r===void 0?t.forEach(o=>o.disconnect(e)):n===void 0?ua(i,t,r).disconnect(e,0):ua(i,t,r).disconnect(e,0,n):r===void 0?t.forEach(o=>o.disconnect(e)):ua(i,t,r).disconnect(e,0);var yC={attack:.003,channelCount:2,channelCountMode:"clamped-max",channelInterpretation:"speakers",knee:30,ratio:12,release:.25,threshold:-24},$d=(i,t,e,r,n,o,s,a)=>class extends i{constructor(u,h){let l=o(u),p=O(O({},yC),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 Zd=(i,t,e,r,n)=>()=>{let o=new WeakMap,s=(a,c)=>tt(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 Xd=()=>new DOMException("","EncodingError");var Qd=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 Kd=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 Jd=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 tp=i=>t=>tt(null,null,function*(){try{let e=yield fetch(t);if(e.ok)return[yield e.text(),e.url]}catch(e){}throw i()});var bC={channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",gain:1},ep=(i,t,e,r,n,o)=>class extends i{constructor(a,c){let u=n(a),h=O(O({},bC),c),l=r(u,h),p=o(u),m=p?e():null;super(a,!1,l,m),this._gain=t(this,p,l.gain,Wt,Ht)}get gain(){return this._gain}};var rp=(i,t,e,r,n)=>()=>{let o=new WeakMap,s=(a,c)=>tt(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 ip=(i,t)=>e=>t(i,e);var np=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 op=i=>t=>{var e;return(e=i.get(t))!==null&&e!==void 0?e:0};var sp=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 ap=i=>t=>i.get(t);var Pt=()=>new DOMException("","InvalidStateError");var cp=i=>t=>{let e=i.get(t);if(e===void 0)throw Pt();return e};var up=(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 hp=i=>t=>{let e=i.get(t);if(e===void 0)throw new Error("The context has no set of AudioWorkletNodes.");return e};var yn=()=>new DOMException("","InvalidAccessError");var lp=i=>{i.getFrequencyResponse=(t=>(e,r,n)=>{if(e.length!==r.length||r.length!==n.length)throw yn();return t.call(i,e,r,n)})(i.getFrequencyResponse)};var xC={channelCount:2,channelCountMode:"max",channelInterpretation:"speakers"},dp=(i,t,e,r,n,o)=>class extends i{constructor(a,c){let u=r(a),h=n(u),l=O(O({},xC),c),p=t(u,h?null:a.baseLatency,l),m=h?e(l.feedback,l.feedforward):null;super(a,!1,p,m),lp(p),this._nativeIIRFilterNode=p,o(this,1)}getFrequencyResponse(a,c,u){return this._nativeIIRFilterNode.getFrequencyResponse(a,c,u)}};var ha=(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 AC=(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),ha(n,s,o,a,c,h,l,0,u,g,b)}return p},pp=(i,t,e,r,n)=>(o,s)=>{let a=new WeakMap,c=null,u=(h,l)=>tt(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=tt(null,null,function*(){yield r(h,b,b.destination);let x=yield n(b);return AC(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 mp=(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 fp=(i,t)=>e=>{let r=i.get(e);return t(r)||t(e)};var gp=(i,t)=>e=>i.has(e)||t(e);var yp=(i,t)=>e=>i.has(e)||t(e);var bp=(i,t)=>e=>{let r=i.get(e);return t(r)||t(e)};var xp=i=>t=>i!==null&&t instanceof i;var Ap=i=>t=>i!==null&&typeof i.AudioNode=="function"&&t instanceof i.AudioNode;var Cp=i=>t=>i!==null&&typeof i.AudioParam=="function"&&t instanceof i.AudioParam;var _p=(i,t)=>e=>i(e)||t(e);var vp=i=>t=>i!==null&&t instanceof i;var Sp=i=>i!==null&&i.isSecureContext;var wp=(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 CC={channelCount:2,channelCountMode:"explicit",channelInterpretation:"speakers"},Ip=(i,t,e,r)=>class extends i{constructor(o,s){let a=e(o);if(r(a))throw new TypeError;let c=O(O({},CC),s),u=t(a,c);super(o,!1,u,null),this._nativeMediaStreamAudioDestinationNode=u}get stream(){return this._nativeMediaStreamAudioDestinationNode.stream}};var Tp=(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 Np=(i,t,e)=>class extends i{constructor(n,o){let s=e(n),a=t(s,o);super(n,!0,a,null)}};var Op=(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(!sa(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 Rp=(i,t,e,r,n,o)=>class extends e{constructor(a,c){super(a),this._nativeContext=a,cn.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 _C={numberOfChannels:1},Mp=(i,t,e,r,n)=>class extends r{constructor(s){let{length:a,numberOfChannels:c,sampleRate:u}=O(O({},_C),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 Ep=(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 qu=i=>typeof i.getFloatTimeDomainData=="function";var Dp=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 kp=(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(qu,()=>qu(n))||Dp(n),n};var Lp=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 jp=i=>{i.start=(t=>{let e=!1;return(r=0,n=0,o)=>{if(e)throw Pt();t.call(i,r,n,o),e=!0}})(i.start)};var bn=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 xn=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 Pp=(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))||jp(m),t(r,()=>r(l))||c(m),t(n,()=>n(l))||u(m,l),t(o,()=>o(l))||bn(m),t(s,()=>s(l))||h(m,l),t(a,()=>a(l))||xn(m),i(l,m),m};var Fp=i=>i===null?null:i.hasOwnProperty("AudioContext")?i.AudioContext:i.hasOwnProperty("webkitAudioContext")?i.webkitAudioContext:null;var Bp=(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 Gp=i=>i===null?null:i.hasOwnProperty("AudioWorkletNode")?i.AudioWorkletNode:null;var Vp=i=>{let{port1:t}=new MessageChannel;try{t.postMessage(i)}finally{t.close()}};var qp=(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 Vp(h),t(o,s,u,h)};var la=(i,t)=>i===null?512:Math.max(512,Math.min(16384,Math.pow(2,Math.round(Math.log2(i*t)))));var Wp=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 Up=(i,t)=>tt(null,null,function*(){let e=yield Wp(t);return new i(e)});var zp=(i,t,e,r)=>{let n=_o.get(i);n===void 0&&(n=new WeakMap,_o.set(i,n));let o=Up(e,r);return n.set(t,o),o};var Yp=(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(Z=>Z<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((Z,at)=>Z+at,0),N=g.parameterDescriptors===void 0?0:g.parameterDescriptors.length;if(C+N>6||S>6)throw c();let w=new MessageChannel,v=[],A=[];for(let Z=0;Z<b.numberOfInputs;Z+=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:Z,maxValue:at,minValue:re,name:Ft}of g.parameterDescriptors){let It=o(m,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",offset:b.parameterData[Ft]!==void 0?b.parameterData[Ft]:Z===void 0?0:Z});Object.defineProperties(It.offset,{defaultValue:{get:()=>Z===void 0?0:Z},maxValue:{get:()=>at===void 0?Wt:at},minValue:{get:()=>re===void 0?Ht:re}}),_.push(It)}let E=r(m,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"speakers",numberOfInputs:Math.max(1,C+N)}),V=la(f,m.sampleRate),M=a(m,V,C+N,Math.max(1,S)),R=n(m,{channelCount:Math.max(1,S),channelCountMode:"explicit",channelInterpretation:"discrete",numberOfOutputs:Math.max(1,S)}),P=[];for(let Z=0;Z<b.numberOfOutputs;Z+=1)P.push(r(m,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"speakers",numberOfInputs:x[Z]}));for(let Z=0;Z<b.numberOfInputs;Z+=1){v[Z].connect(A[Z]);for(let at=0;at<b.channelCount;at+=1)A[Z].connect(E,at,Z*b.channelCount+at)}let D=new mn(g.parameterDescriptors===void 0?[]:g.parameterDescriptors.map(({name:Z},at)=>{let re=_[at];return re.connect(E,0,C+at),re.start(0),[Z,re.offset]}));E.connect(M);let k=b.channelInterpretation,j=null,q=b.numberOfOutputs===0?[M]:P,J={get bufferSize(){return V},get channelCount(){return b.channelCount},set channelCount(Z){throw e()},get channelCountMode(){return b.channelCountMode},set channelCountMode(Z){throw e()},get channelInterpretation(){return k},set channelInterpretation(Z){for(let at of v)at.channelInterpretation=Z;k=Z},get context(){return M.context},get inputs(){return v},get numberOfInputs(){return b.numberOfInputs},get numberOfOutputs(){return b.numberOfOutputs},get onprocessorerror(){return j},set onprocessorerror(Z){typeof j=="function"&&J.removeEventListener("processorerror",j),j=typeof Z=="function"?Z:null,typeof j=="function"&&J.addEventListener("processorerror",j)},get parameters(){return D},get port(){return w.port2},addEventListener(...Z){return M.addEventListener(Z[0],Z[1],Z[2])},connect:i.bind(null,q),disconnect:u.bind(null,q),dispatchEvent(...Z){return M.dispatchEvent(Z[0])},removeEventListener(...Z){return M.removeEventListener(Z[0],Z[1],Z[2])}},$=new Map;w.port1.addEventListener=(Z=>(...at)=>{if(at[0]==="message"){let re=typeof at[1]=="function"?at[1]:typeof at[1]=="object"&&at[1]!==null&&typeof at[1].handleEvent=="function"?at[1].handleEvent:null;if(re!==null){let Ft=$.get(at[1]);Ft!==void 0?at[1]=Ft:(at[1]=It=>{h(m.currentTime,m.sampleRate,()=>re(It))},$.set(re,at[1]))}}return Z.call(w.port1,at[0],at[1],at[2])})(w.port1.addEventListener),w.port1.removeEventListener=(Z=>(...at)=>{if(at[0]==="message"){let re=$.get(at[1]);re!==void 0&&($.delete(at[1]),at[1]=re)}return Z.call(w.port1,at[0],at[1],at[2])})(w.port1.removeEventListener);let B=null;Object.defineProperty(w.port1,"onmessage",{get:()=>B,set:Z=>{typeof B=="function"&&w.port1.removeEventListener("message",B),B=typeof Z=="function"?Z:null,typeof B=="function"&&(w.port1.addEventListener("message",B),w.port1.start())}}),g.prototype.port=w.port1;let mt=null;zp(m,J,g,b).then(Z=>mt=Z);let Yt=gn(b.numberOfInputs,b.channelCount),ke=gn(b.numberOfOutputs,x),Le=g.parameterDescriptors===void 0?[]:g.parameterDescriptors.reduce((Z,{name:at})=>K(O({},Z),{[at]:new Float32Array(128)}),{}),Nt=!0,ut=()=>{b.numberOfOutputs>0&&M.disconnect(R);for(let Z=0,at=0;Z<b.numberOfOutputs;Z+=1){let re=P[Z];for(let Ft=0;Ft<x[Z];Ft+=1)R.disconnect(re,at+Ft,Ft);at+=x[Z]}},Qi=new Map;M.onaudioprocess=({inputBuffer:Z,outputBuffer:at})=>{if(mt!==null){let re=l(J);for(let Ft=0;Ft<V;Ft+=128){for(let It=0;It<b.numberOfInputs;It+=1)for(let qt=0;qt<b.channelCount;qt+=1)fn(Z,Yt[It],qt,qt,Ft);g.parameterDescriptors!==void 0&&g.parameterDescriptors.forEach(({name:It},qt)=>{fn(Z,Le,It,C+qt,Ft)});for(let It=0;It<b.numberOfInputs;It+=1)for(let qt=0;qt<x[It];qt+=1)ke[It][qt].byteLength===0&&(ke[It][qt]=new Float32Array(128));try{let It=Yt.map((qe,Xr)=>{if(re[Xr].size>0)return Qi.set(Xr,V/128),qe;let Kc=Qi.get(Xr);return Kc===void 0?[]:(qe.every(pg=>pg.every(mg=>mg===0))&&(Kc===1?Qi.delete(Xr):Qi.set(Xr,Kc-1)),qe)});Nt=h(m.currentTime+Ft/m.sampleRate,m.sampleRate,()=>mt.process(It,ke,Le));for(let qe=0,Xr=0;qe<b.numberOfOutputs;qe+=1){for(let ro=0;ro<x[qe];ro+=1)ca(at,ke[qe],ro,Xr+ro,Ft);Xr+=x[qe]}}catch(It){Nt=!1,J.dispatchEvent(new ErrorEvent("processorerror",{colno:It.colno,filename:It.filename,lineno:It.lineno,message:It.message}))}if(!Nt){for(let It=0;It<b.numberOfInputs;It+=1){v[It].disconnect(A[It]);for(let qt=0;qt<b.channelCount;qt+=1)A[Ft].disconnect(E,qt,It*b.channelCount+qt)}if(g.parameterDescriptors!==void 0){let It=g.parameterDescriptors.length;for(let qt=0;qt<It;qt+=1){let qe=_[qt];qe.disconnect(E,0,C+qt),qe.stop()}}E.disconnect(M),M.onaudioprocess=null,Jn?ut():Ji();break}}}};let Jn=!1,rt=s(m,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",gain:0}),Ki=()=>M.connect(rt).connect(m.destination),Ji=()=>{M.disconnect(rt),rt.disconnect()},to=()=>{if(Nt){Ji(),b.numberOfOutputs>0&&M.connect(R);for(let Z=0,at=0;Z<b.numberOfOutputs;Z+=1){let re=P[Z];for(let Ft=0;Ft<x[Z];Ft+=1)R.connect(re,at+Ft,Ft);at+=x[Z]}}Jn=!0},eo=()=>{Nt&&(Ki(),ut()),Jn=!1};return Ki(),p(J,to,eo)};var Wu=(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 Hp=(i,t)=>(e,r)=>{let n=e.createChannelMerger(r.numberOfInputs);return i!==null&&i.name==="webkitAudioContext"&&t(e,n),gt(n,r),n};var $p=i=>{let t=i.numberOfOutputs;Object.defineProperty(i,"channelCount",{get:()=>t,set:e=>{if(e!==t)throw Pt()}}),Object.defineProperty(i,"channelCountMode",{get:()=>"explicit",set:e=>{if(e!=="explicit")throw Pt()}}),Object.defineProperty(i,"channelInterpretation",{get:()=>"discrete",set:e=>{if(e!=="discrete")throw Pt()}})};var An=(i,t)=>{let e=i.createChannelSplitter(t.numberOfOutputs);return gt(e,t),$p(e),e};var Zp=(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))||bn(a),t(n,()=>n(o))||xn(a),i(o,a),a};var He=(i,t)=>(i.connect=t.connect.bind(t),i.disconnect=t.disconnect.bind(t),i);var Xp=(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,K(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 Qp=(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 Uu=(i,t)=>{let e=i.createDelay(t.maxDelayTime);return gt(e,t),Tt(e,t,"delayTime"),e};var Kp=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 Ce=(i,t)=>{let e=i.createGain();return gt(e,t),Tt(e,t,"gain"),e};var Jp=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 vC(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 SC(i,t){return[i[0]*t[0]-i[1]*t[1],i[0]*t[1]+i[1]*t[0]]}function tm(i,t){let e=[0,0];for(let r=i.length-1;r>=0;r-=1)e=SC(e,t),e[0]+=i[r];return e}var em=(i,t,e,r)=>(n,o,{channelCount:s,channelCountMode:a,channelInterpretation:c,feedback:u,feedforward:h})=>{let l=la(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=[],N=[],w=[];for(let _=0;_<s;_+=1){S.push(0);let E=new Float32Array(C),V=new Float32Array(C);E.fill(0),V.fill(0),N.push(E),w.push(V)}x.onaudioprocess=_=>{let E=_.inputBuffer,V=_.outputBuffer,M=E.numberOfChannels;for(let R=0;R<M;R+=1){let P=E.getChannelData(R),D=V.getChannelData(R);S[R]=ha(p,f,m,g,b,N[R],w[R],S[R],C,P,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,V){if(_.length!==E.length||E.length!==V.length)throw i();let M=_.length;for(let R=0;R<M;R+=1){let P=-Math.PI*(_[R]/v),D=[Math.cos(P),Math.sin(P)],k=tm(m,D),j=tm(p,D),q=vC(k,j);E[R]=Math.sqrt(q[0]*q[0]+q[1]*q[1]),V[R]=Math.atan2(q[1],q[0])}},removeEventListener(..._){return x.removeEventListener(_[0],_[1],_[2])}},x)};var rm=(i,t)=>i.createMediaElementSource(t.mediaElement);var im=(i,t)=>{let e=i.createMediaStreamDestination();return gt(e,t),e.numberOfOutputs===1&&Object.defineProperty(e,"numberOfOutputs",{get:()=>0}),e};var nm=(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 om=(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 sm=i=>i===null?null:i.hasOwnProperty("OfflineAudioContext")?i.OfflineAudioContext:i.hasOwnProperty("webkitOfflineAudioContext")?i.webkitOfflineAudioContext:null;var am=(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))||bn(c),t(r,()=>r(s))||o(c,s),t(n,()=>n(s))||xn(c),i(s,c),c};var cm=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 um=(i,t,e,r,n,o,s,a,c,u)=>(h,V)=>{var M=V,{coneInnerAngle:l,coneOuterAngle:p,coneOuterGain:m,distanceModel:f,maxDistance:g,orientationX:b,orientationY:x,orientationZ:C,panningModel:S,positionX:N,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 P={channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete"},D=e(h,K(O({},P),{channelInterpretation:"speakers",numberOfInputs:6})),k=r(h,K(O({},E),{gain:1})),j=r(h,K(O({},P),{gain:1})),q=r(h,K(O({},P),{gain:0})),J=r(h,K(O({},P),{gain:0})),$=r(h,K(O({},P),{gain:0})),B=r(h,K(O({},P),{gain:0})),mt=r(h,K(O({},P),{gain:0})),Ct=n(h,256,6,1),Yt=o(h,K(O({},P),{curve:new Float32Array([1,1]),oversample:"none"})),ke=[b,x,C],Le=[N,w,v],Nt=new Float32Array(1);Ct.onaudioprocess=({inputBuffer:rt})=>{let Ki=[c(rt,Nt,0),c(rt,Nt,1),c(rt,Nt,2)];Ki.some((to,eo)=>to!==ke[eo])&&(R.setOrientation(...Ki),ke=Ki);let Ji=[c(rt,Nt,3),c(rt,Nt,4),c(rt,Nt,5)];Ji.some((to,eo)=>to!==Le[eo])&&(R.setPosition(...Ji),Le=Ji)},Object.defineProperty(q.gain,"defaultValue",{get:()=>0}),Object.defineProperty(J.gain,"defaultValue",{get:()=>0}),Object.defineProperty($.gain,"defaultValue",{get:()=>0}),Object.defineProperty(B.gain,"defaultValue",{get:()=>0}),Object.defineProperty(mt.gain,"defaultValue",{get:()=>0});let ut={get bufferSize(){},get channelCount(){return R.channelCount},set channelCount(rt){if(rt>2)throw s();k.channelCount=rt,R.channelCount=rt},get channelCountMode(){return R.channelCountMode},set channelCountMode(rt){if(rt==="max")throw s();k.channelCountMode=rt,R.channelCountMode=rt},get channelInterpretation(){return R.channelInterpretation},set channelInterpretation(rt){k.channelInterpretation=rt,R.channelInterpretation=rt},get coneInnerAngle(){return R.coneInnerAngle},set coneInnerAngle(rt){R.coneInnerAngle=rt},get coneOuterAngle(){return R.coneOuterAngle},set coneOuterAngle(rt){R.coneOuterAngle=rt},get coneOuterGain(){return R.coneOuterGain},set coneOuterGain(rt){if(rt<0||rt>1)throw t();R.coneOuterGain=rt},get context(){return R.context},get distanceModel(){return R.distanceModel},set distanceModel(rt){R.distanceModel=rt},get inputs(){return[k]},get maxDistance(){return R.maxDistance},set maxDistance(rt){if(rt<0)throw new RangeError;R.maxDistance=rt},get numberOfInputs(){return R.numberOfInputs},get numberOfOutputs(){return R.numberOfOutputs},get orientationX(){return j.gain},get orientationY(){return q.gain},get orientationZ(){return J.gain},get panningModel(){return R.panningModel},set panningModel(rt){R.panningModel=rt},get positionX(){return $.gain},get positionY(){return B.gain},get positionZ(){return mt.gain},get refDistance(){return R.refDistance},set refDistance(rt){if(rt<0)throw new RangeError;R.refDistance=rt},get rolloffFactor(){return R.rolloffFactor},set rolloffFactor(rt){if(rt<0)throw new RangeError;R.rolloffFactor=rt},addEventListener(...rt){return k.addEventListener(rt[0],rt[1],rt[2])},dispatchEvent(...rt){return k.dispatchEvent(rt[0])},removeEventListener(...rt){return k.removeEventListener(rt[0],rt[1],rt[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),N!==ut.positionX.value&&(ut.positionX.value=N),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=_),(ke[0]!==1||ke[1]!==0||ke[2]!==0)&&R.setOrientation(...ke),(Le[0]!==0||Le[1]!==0||Le[2]!==0)&&R.setPosition(...Le);let Qi=()=>{k.connect(R),i(k,Yt,0,0),Yt.connect(j).connect(D,0,0),Yt.connect(q).connect(D,0,1),Yt.connect(J).connect(D,0,2),Yt.connect($).connect(D,0,3),Yt.connect(B).connect(D,0,4),Yt.connect(mt).connect(D,0,5),D.connect(Ct).connect(h.destination)},Jn=()=>{k.disconnect(R),a(k,Yt,0,0),Yt.disconnect(j),j.disconnect(D),Yt.disconnect(q),q.disconnect(D),Yt.disconnect(J),J.disconnect(D),Yt.disconnect($),$.disconnect(D),Yt.disconnect(B),B.disconnect(D),Yt.disconnect(mt),mt.disconnect(D),D.disconnect(Ct),Ct.disconnect(h.destination)};return u(He(ut,R),Qi,Jn)};var hm=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 Cn=(i,t,e,r)=>i.createScriptProcessor(t,e,r);var lm=(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 dm=(i,t,e,r,n,o)=>{let a=new Float32Array([1,1]),c=Math.PI/2,u={channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete"},h=K(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 V=E/16384*c;C[E]=Math.cos(V),S[E]=Math.sin(V)}let N=e(f,K(O({},u),{gain:0})),w=r(f,K(O({},h),{curve:C})),v=r(f,K(O({},h),{curve:a})),A=e(f,K(O({},u),{gain:0})),_=r(f,K(O({},h),{curve:S}));return{connectGraph(){g.connect(N),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(N.gain),_.connect(A.gain),N.connect(x,0,0),A.connect(x,0,1)},disconnectGraph(){g.disconnect(N),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(N.gain),_.disconnect(A.gain),N.disconnect(x,0,0),A.disconnect(x,0,1)}}},p=(f,g,b,x)=>{let C=new Float32Array(16385),S=new Float32Array(16385),N=new Float32Array(16385),w=new Float32Array(16385),v=Math.floor(16385/2);for(let q=0;q<16385;q+=1)if(q>v){let J=(q-v)/(16384-v)*c;C[q]=Math.cos(J),S[q]=Math.sin(J),N[q]=0,w[q]=1}else{let J=q/(16384-v)*c;C[q]=1,S[q]=0,N[q]=Math.cos(J),w[q]=Math.sin(J)}let A=t(f,{channelCount:2,channelCountMode:"explicit",channelInterpretation:"discrete",numberOfOutputs:2}),_=e(f,K(O({},u),{gain:0})),E=r(f,K(O({},h),{curve:C})),V=e(f,K(O({},u),{gain:0})),M=r(f,K(O({},h),{curve:S})),R=r(f,K(O({},h),{curve:a})),P=e(f,K(O({},u),{gain:0})),D=r(f,K(O({},h),{curve:N})),k=e(f,K(O({},u),{gain:0})),j=r(f,K(O({},h),{curve:w}));return{connectGraph(){g.connect(A),g.connect(R.inputs===void 0?R:R.inputs[0]),A.connect(_,0),A.connect(V,0),A.connect(P,1),A.connect(k,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(j.inputs===void 0?j:j.inputs[0]),E.connect(_.gain),M.connect(V.gain),D.connect(P.gain),j.connect(k.gain),_.connect(x,0,0),P.connect(x,0,0),V.connect(x,0,1),k.connect(x,0,1)},disconnectGraph(){g.disconnect(A),g.disconnect(R.inputs===void 0?R:R.inputs[0]),A.disconnect(_,0),A.disconnect(V,0),A.disconnect(P,1),A.disconnect(k,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(j.inputs===void 0?j:j.inputs[0]),E.disconnect(_.gain),M.disconnect(V.gain),D.disconnect(P.gain),j.disconnect(k.gain),_.disconnect(x,0,0),P.disconnect(x,0,0),V.disconnect(x,0,1),k.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 N=S,{channelCount:g,channelCountMode:b,pan:x}=N,C=Qr(N,["channelCount","channelCountMode","pan"]);if(b==="max")throw n();let w=i(f,K(O({},C),{channelCount:1,channelCountMode:b,numberOfInputs:2})),v=e(f,K(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 V={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},P=()=>{E(),M=!1};return o(He(V,w),R,P)}};var pm=(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 mm=(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,K(O({},c),{gain:1})),f=e(o,K(O({},c),{gain:-1})),g=e(o,K(O({},c),{gain:1})),b=e(o,K(O({},c),{gain:-1})),x=null,C=!1,S=null,N={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),V=new Float32Array(_+2-_%2);E[0]=A[0],V[0]=-A[_-1];let M=Math.ceil((_+1)/2),R=(_+1)/2-1;for(let P=1;P<M;P+=1){let D=P/M*R,k=Math.floor(D),j=Math.ceil(D);E[P]=k===j?A[k]:(1-(D-k))*A[k]+(1-(j-D))*A[j],V[P]=k===j?-A[_-1-k]:-((1-(D-k))*A[_-1-k])-(1-(j-D))*A[_-1-j]}E[M]=_%2===1?A[M-1]:(A[M-2]+A[M-1])/2,l.curve=E,p.curve=V}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&&(N.curve=s instanceof Float32Array?s:new Float32Array(s)),a!==N.oversample&&(N.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(N,g),w,v)};var ce=()=>new DOMException("","NotSupportedError");var wC={numberOfChannels:1},fm=(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({},wC),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 IC={channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",detune:0,frequency:440,periodicWave:void 0,type:"sine"},gm=(i,t,e,r,n,o,s)=>class extends i{constructor(c,u){let h=n(c),l=O(O({},IC),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),Ae(this)&&Ir(this)};this._nativeOscillatorNode.addEventListener("ended",u)}}stop(c=0){this._nativeOscillatorNode.stop(c),this._oscillatorNodeRenderer!==null&&(this._oscillatorNodeRenderer.stop=c)}};var ym=(i,t,e,r,n)=>()=>{let o=new WeakMap,s=null,a=null,c=null,u=(h,l)=>tt(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 TC={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},bm=(i,t,e,r,n,o,s)=>class extends i{constructor(c,u){let h=n(c),l=O(O({},TC),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,Wt,Ht),this._orientationY=t(this,m,p.orientationY,Wt,Ht),this._orientationZ=t(this,m,p.orientationZ,Wt,Ht),this._positionX=t(this,m,p.positionX,Wt,Ht),this._positionY=t(this,m,p.positionY,Wt,Ht),this._positionZ=t(this,m,p.positionZ,Wt,Ht),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 xm=(i,t,e,r,n,o,s,a,c,u)=>()=>{let h=new WeakMap,l=null,p=(m,f)=>tt(null,null,function*(){let g=null,b=o(m),x={channelCount:b.channelCount,channelCountMode:b.channelCountMode,channelInterpretation:b.channelInterpretation},C=K(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,K(O({},x),{gain:1}));else if(!S){let N=K(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,N)}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=tt(null,null,function*(){let P=yield Promise.all([m.orientationX,m.orientationY,m.orientationZ,m.positionX,m.positionY,m.positionZ].map((D,k)=>tt(null,null,function*(){let j=e(M,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",offset:k===0?1:0});return yield a(M,D,j.offset),j})));for(let D=0;D<6;D+=1)P[D].connect(R,0,D),P[D].start(0);return u(M)})}let N=yield l,w=r(f,K(O({},x),{gain:1}));yield c(m,f,w);let v=[];for(let M=0;M<N.numberOfChannels;M+=1)v.push(N.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,K(O({},x),{gain:1})),V=n(f,K(O({},C),{orientationX:A[0],orientationY:A[1],orientationZ:A[2],positionX:_[0],positionY:_[1],positionZ:_[2]}));w.connect(E).connect(V.inputs[0]),V.connect(g);for(let M=128;M<N.length;M+=128){let R=[v[0][M],v[1][M],v[2][M]],P=[v[3][M],v[4][M],v[5][M]];if(R.some((D,k)=>D!==A[k])||P.some((D,k)=>D!==_[k])){A=R,_=P;let D=M/f.sampleRate;E.gain.setValueAtTime(0,D),E=r(f,K(O({},x),{gain:0})),V=n(f,K(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(V.inputs[0]),V.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 NC={disableNormalization:!1},Am=(i,t,e,r)=>class Cm{constructor(o,s){let a=t(o),c=r(O(O({},NC),s)),u=i(a,c);return e.add(u),u}static[Symbol.hasInstance](o){return o!==null&&typeof o=="object"&&Object.getPrototypeOf(o)===Cm.prototype||e.has(o)}};var _m=(i,t)=>(e,r,n)=>(i(r).replay(n),t(r,e,n));var vm=(i,t,e)=>(r,n,o)=>tt(null,null,function*(){let s=i(r);yield Promise.all(s.activeInputs.map((a,c)=>Array.from(a).map(l=>tt(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 Sm=(i,t,e)=>(r,n,o)=>tt(null,null,function*(){let s=t(r);yield Promise.all(Array.from(s.activeInputs).map(u=>tt(null,[u],function*([a,c]){let l=yield i(a).render(a,n);e(a)||l.connect(o,c)})))});var wm=(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 Im=i=>(t,e)=>{i.set(t,e)};var Tm=i=>(t,e)=>i.set(t,e);var Nm=(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),hn(h)):t(o,()=>o(h))||a(h),i.add(h),h));var OC={channelCount:2,channelCountMode:"explicit",channelInterpretation:"speakers",pan:0},Om=(i,t,e,r,n,o)=>class extends i{constructor(a,c){let u=n(a),h=O(O({},OC),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 Rm=(i,t,e,r,n)=>()=>{let o=new WeakMap,s=(a,c)=>tt(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 Mm=i=>()=>{if(i===null)return!1;try{new i({length:1,sampleRate:44100})}catch(t){return!1}return!0};var Em=(i,t)=>()=>tt(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 Dm=(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 zu=()=>new DOMException("","UnknownError");var RC={channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",curve:null,oversample:"none"},km=(i,t,e,r,n,o,s)=>class extends i{constructor(c,u){let h=n(c),l=O(O({},RC),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 Lm=(i,t,e)=>()=>{let r=new WeakMap,n=(o,s)=>tt(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 jm=()=>typeof window=="undefined"?null:window;var Pm=(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 Fm=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 Bm=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 Gm=(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 Yu=(i,t,e)=>i.copyFromChannel===void 0?i.getChannelData(e)[0]:(i.copyFromChannel(t,e),t[0]);var Hu=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 _n=(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 Vm=i=>K(O({},i),{outputChannelCount:i.outputChannelCount!==void 0?i.outputChannelCount:i.numberOfInputs===1&&i.numberOfOutputs===1?[i.channelCount]:Array.from({length:i.numberOfOutputs},()=>1)});var qm=i=>K(O({},i),{channelCount:i.numberOfOutputs});var Wm=i=>{let{imag:t,real:e}=i;return t===void 0?e===void 0?K(O({},i),{imag:[0,0],real:[0,0]}):K(O({},i),{imag:Array.from(e,()=>0),real:e}):e===void 0?K(O({},i),{imag:t,real:Array.from(t,()=>0)}):K(O({},i),{imag:t,real:e})};var $u=(i,t,e)=>{try{i.setValueAtTime(t,e)}catch(r){if(r.code!==9)throw r;$u(i,t,e+1e-7)}};var Um=i=>{let t=i.createBufferSource();t.start();try{t.start()}catch(e){return!0}return!1};var zm=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 Ym=i=>{let t=i.createBufferSource();t.start();try{t.stop()}catch(e){return!1}return!0};var da=i=>{let t=i.createOscillator();try{t.start(-1)}catch(e){return e instanceof RangeError}return!1};var Zu=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 pa=i=>{let t=i.createOscillator();try{t.stop(-1)}catch(e){return e instanceof RangeError}return!1};var Hm=i=>{let{port1:t,port2:e}=new MessageChannel;try{t.postMessage(i)}finally{t.close(),e.close()}};var $m=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 Xu=(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 Di=(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 MC=Fl(ar),EC=$l(ar),DC=Wd(ni),Xm=new WeakMap,kC=op(Xm),$e=Sd(new Map,new WeakMap),Tr=jm(),Qm=kp($e,ze),Qu=np(ne),ue=vm(ne,Qu,Wr),LC=Kl(Qm,Rt,ue),Lt=cp(cn),Ur=sm(Tr),Mt=vp(Ur),Km=new WeakMap,Jm=Kd(Di),vn=Fp(Tr),Ku=xp(vn),Ju=Ap(Tr),tf=Cp(Tr),So=Gp(Tr),$t=fd(Bl(ta),Hl(MC,EC,ln,DC,dn,ne,kC,wr,Rt,ar,Ae,Wr,pn),$e,mp(Ao,dn,ne,Rt,Mi,Ae),ze,yn,ce,Gd(ln,Ao,ne,Rt,Mi,Lt,Ae,Mt),Yd(Km,ne,Kt),Jm,Lt,Ku,Ju,tf,Mt,So),jC=Ql($t,LC,ze,Qm,Lt,Mt);var th=new WeakSet,Zm=Lp(Tr),ef=kd(new Uint32Array(1)),eh=Pm(ef,ze),rh=Fm(ef),ih=Jl(th,$e,ce,Zm,Ur,Mm(Zm),eh,rh);var ma=Zl(Ce),rf=Sm(Qu,oi,Wr),Nr=Od(rf),Sn=Pp(ma,$e,Um,zm,Ym,da,Zu,pa,$m,Bm(_n),Xu),Or=_m(sp(oi),rf),PC=rd(Nr,Sn,Rt,Or,ue),ur=gd(Gl(ea),Km,xo,yd,Tu,Nu,Ou,Ru,Mu,nn,mo,vn,$u),FC=ed($t,PC,ur,Pt,Sn,Lt,Mt,Di);var BC=hd($t,ld,ze,Pt,Bp(Ce,_n),Lt,Mt,ue),GC=vd(Nr,Wu,Rt,Or,ue),ki=Tm(Xm),VC=_d($t,ur,GC,yn,Wu,Lt,Mt,ki),ci=Ep(ar,Ju),qC=Gm(Pt,ci),ui=Hp(vn,qC),WC=Id(ui,Rt,ue),UC=wd($t,WC,ui,Lt,Mt),zC=Nd(An,Rt,ue),YC=Td($t,zC,An,Lt,Mt,qm),HC=Xp(ma,Sn,Ce,ci),wn=Zp(ma,$e,HC,da,pa),$C=Dd(Nr,wn,Rt,Or,ue),ZC=Ed($t,ur,$C,wn,Lt,Mt,Di),nf=Qp(ce,_n),XC=jd(nf,Rt,ue),QC=Ld($t,XC,nf,Lt,Mt,ki),KC=qd(Nr,Uu,Rt,Or,ue),JC=Vd($t,ur,KC,Uu,Lt,Mt,ki),of=Kp(ce),t_=Zd(Nr,of,Rt,Or,ue),e_=$d($t,ur,t_,of,ce,Lt,Mt,ki),r_=rp(Nr,Ce,Rt,Or,ue),i_=ep($t,ur,r_,Ce,Lt,Mt),n_=em(yn,Pt,Cn,ce),fa=wm($e,Ce,Cn,Dm(Ce,Ur)),o_=pp(Sn,Rt,Ur,ue,fa),s_=Jp(n_),a_=dp($t,s_,o_,Lt,Mt,ki),c_=dd(ur,ui,wn,Cn,ce,Yu,Mt,_n),sf=new WeakMap,nh=Rp(BC,c_,Jm,Mt,sf,Di),af=am(ma,$e,da,Zu,pa,Xu),u_=ym(Nr,af,Rt,Or,ue),h_=gm($t,ur,af,u_,Lt,Mt,Di),cf=Md(Sn),l_=mm(cf,Pt,Ce,Hu,ci),ga=pm(cf,Pt,l_,Hu,ci,vn,_n),d_=um(ln,Pt,ui,Ce,Cn,ga,ce,dn,Yu,ci),uf=cm(d_),p_=xm(Nr,ui,wn,Ce,uf,Rt,Ur,Or,ue,fa),m_=bm($t,ur,uf,p_,Lt,Mt,ki),f_=hm(ze),g_=Am(f_,Lt,new WeakSet,Wm),y_=dm(ui,An,Ce,ga,ce,ci),hf=lm(y_,ce),b_=Rm(Nr,hf,Rt,Or,ue),x_=Om($t,ur,hf,b_,Lt,Mt),A_=Lm(ga,Rt,ue),C_=km($t,Pt,ga,A_,Lt,Mt,ki),lf=Sp(Tr),oh=Jd(Tr),df=new WeakMap,__=up(df,Ur),v_=lf?Yl($e,ce,Qd(Tr),oh,tp(Pl),Lt,__,Mt,So,new WeakMap,new WeakMap,Em(So,Ur),Tr):void 0,S_=_p(Ku,Mt),w_=Bd(th,$e,Fd,Xd,new WeakSet,Lt,S_,un,cr,eh,rh),pf=Cd(v_,jC,ih,FC,VC,UC,YC,ZC,QC,w_,JC,e_,i_,a_,nh,h_,m_,g_,x_,C_),I_=wp($t,rm,Lt,Mt),T_=Ip($t,im,Lt,Mt),N_=Tp($t,nm,Lt,Mt),O_=om(Pt,Mt),R_=Np($t,O_,Lt),mf=ud(pf,Pt,ce,zu,I_,T_,N_,R_,vn);var sh=hp(sf),M_=Xl(sh),ff=Rd(ze),E_=Ud(sh),gf=Hd(ze),yf=new WeakMap,D_=ip(yf,Kt),k_=Yp(ff,ze,Pt,ui,An,wn,Ce,Cn,ce,gf,oh,D_,ci),L_=qp(Pt,k_,Ce,ce,ci),j_=Ad(Nr,ff,Sn,ui,An,wn,Ce,E_,gf,oh,Rt,So,Ur,Or,ue,fa),P_=ap(df),F_=Im(yf),ah=lf?bd(M_,$t,ur,j_,L_,ne,P_,Lt,Mt,So,Vm,F_,Hm,Di):void 0;var tU=Op(Pt,ce,zu,nh,vn);var bf=Pd(ce,Ur),xf=Nm(th,$e,Qu,sh,fa,un,eh,rh),eU=Mp($e,Pt,bf,nh,xf);var Af=fm(pf,$e,Pt,bf,xf);var Cf=fp(cn,Ku),_f=gp(an,Ju),vf=yp(xo,tf),Sf=bp(cn,Mt);function Zt(i){return i===void 0}function nt(i){return i!==void 0}function wf(i){return typeof i=="function"}function he(i){return typeof i=="number"}function hr(i){return Object.prototype.toString.call(i)==="[object Object]"&&i.constructor===Object}function ch(i){return typeof i=="boolean"}function Gt(i){return Array.isArray(i)}function fe(i){return typeof i=="string"}function wo(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 Ut(i,t,e=1/0){if(!(t<=i&&i<=e))throw new RangeError(`Value must be within [${t}, ${e}], got: ${i}`)}function ya(i){!i.isOffline&&i.state!=="running"&&Li('The AudioContext is "suspended". Invoke Tone.start() from a user action to start the audio.')}var Tf=!1,If=!1;function uh(i){Tf=i}function Nf(i){Zt(i)&&Tf&&!If&&(If=!0,Li("Events scheduled inside of scheduled callbacks should use the passed in scheduling time. See https://github.com/Tonejs/Tone.js/wiki/Accurate-Timing"))}var Of=console;function Rf(...i){Of.log(...i)}function Li(...i){Of.warn(...i)}function Mf(i){return new mf(i)}function Ef(i,t,e){return new Af(i,t,e)}var ge=typeof self=="object"?self:null,Df=ge&&(ge.hasOwnProperty("AudioContext")||ge.hasOwnProperty("webkitAudioContext"));function kf(i,t,e){return Y(nt(ah),"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:ah)(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 ba=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
5
  // the initial timeout time
6
6
  let timeoutTime = ${(this._updateInterval*1e3).toFixed(1)};
7
7
  // onmessage callback
@@ -16,7 +16,7 @@
16
16
  }
17
17
  // call tick initially
18
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 ur(i){return cf(i)}function Nr(i){return af(i)}function vn(i){return uf(i)}function ui(i){return sf(i)}function Af(i){return i instanceof Qu}function I_(i,t){return i==="value"||ur(t)||Nr(t)||Af(t)}function Ye(i,...t){if(!t.length)return i;let e=t.shift();if(cr(i)&&cr(e))for(let r in e)I_(r,e[r])?i[r]=e[r]:cr(e[r])?(i[r]||Object.assign(i,{[r]:{}}),Ye(i[r],e[r])):Object.assign(i,{[r]:e[r]});return Ye(i,...t)}function Cf(i,t){return i.length===t.length&&i.every((e,r)=>t[r]===e)}function w(i,t,e=[],r){let n={},o=Array.from(t);if(cr(o[0])&&r&&!Reflect.has(o[0],r)&&(Object.keys(o[0]).some(a=>Reflect.has(i,a))||(Ye(n,{[r]:o[0]}),e.splice(e.indexOf(r),1),o.shift())),o.length===1&&cr(o[0]))Ye(n,o[0]);else for(let s=0;s<e.length;s++)it(o[s])&&(n[e[s]]=o[s]);return Ye(i,n)}function _f(i){return i.constructor.getDefaults()}function Le(i,t){return Yt(i)?t:i}function hr(i,t){return t.forEach(e=>{Reflect.has(i,e)&&delete i[e]}),i}var ie=class{constructor(){this.debug=!1,this._wasDisposed=!1}static getDefaults(){return{}}log(...t){(this.debug||me&&this.toString()===me.TONE_DEBUG_CLASS)&&ff(this,...t)}dispose(){return this._wasDisposed=!0,this}get disposed(){return this._wasDisposed}toString(){return this.name}};ie.version=po;function Vr(i,t){return i>t+1e-6}function wo(i,t){return Vr(i,t)||Ce(i,t)}function Di(i,t){return i+1e-6<t}function Ce(i,t){return Math.abs(i-t)<1e-6}function nh(i,t,e){return Math.max(Math.min(i,e),t)}var Qt=class i extends ie{constructor(){super(),this.name="Timeline",this._timeline=[];let t=w(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(wo(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&&wo(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 l=this._timeline[u];if(Ce(l[e],t))s=u;else break}return s}else{if(Di(a[e],t)&&Vr(c[e],t))return s;Vr(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 vf=[];function hi(i){vf.push(i)}function If(i){vf.forEach(t=>t(i))}var Sf=[];function li(i){Sf.push(i)}function wf(i){Sf.forEach(t=>t(i))}var di=class i extends ie{constructor(){super(...arguments),this.name="Emitter"}on(t,e){return t.split(/\W+/).forEach(n=>{Yt(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(Yt(this._events)&&(this._events={}),this._events.hasOwnProperty(n))if(Yt(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 In=class extends di{constructor(){super(...arguments),this.isOffline=!1}toJSON(){return{}}};var ki=class i extends In{constructor(){var t,e;super(),this.name="Context",this._constants=new Map,this._timeouts=new Qt,this._timeoutIds=0,this._initialized=!1,this._closeStarted=!1,this.isOffline=!1,this._workletPromise=null;let r=w(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=gf({latencyHint:r.latencyHint}),this._latencyHint=r.latencyHint),this._ticker=new fa(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||(If(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(ui(this._context),"Not available if OfflineAudioContext"),this._context.createMediaStreamSource(t)}createMediaElementSource(t){return Y(ui(this._context),"Not available if OfflineAudioContext"),this._context.createMediaElementSource(t)}createMediaStreamDestination(){return Y(ui(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 xf(this.rawContext,t,e)}addAudioWorkletModule(t){return ft(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 ft(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 ui(this._context)?this._context.resume():Promise.resolve()}close(){return ft(this,void 0,void 0,function*(){ui(this._context)&&this.state!=="closed"&&!this._closeStarted&&(this._closeStarted=!0,yield this._context.close()),this._initialized&&wf(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 ga=class extends In{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 ft(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 U(i,t){Pt(t)?t.forEach(e=>U(i,e)):Object.defineProperty(i,t,{enumerable:!0,writable:!1})}function Li(i,t){Pt(t)?t.forEach(e=>Li(i,e)):Object.defineProperty(i,t,{writable:!0})}var nt=()=>{};var qt=class i extends ie{constructor(){super(),this.name="ToneAudioBuffer",this.onload=nt;let t=w(i.getDefaults(),arguments,["url","onload","onerror"]);this.reverse=t.reverse,this.onload=t.onload,pe(t.url)?this.load(t.url).catch(t.onerror):t.url&&this.set(t.url)}static getDefaults(){return{onerror:nt,onload:nt,reverse:!1}}get sampleRate(){return this._buffer?this._buffer.sampleRate:Ht().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 ft(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=Pt(t)&&t[0].length>0,r=e?t.length:1,n=e?t[0].length:t.length,o=Ht(),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(ce(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(ce(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=Ht().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 ft(this,void 0,void 0,function*(){return yield new i().load(t)})}static load(t){return ft(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 Ht().decodeAudioData(n)})}static supportsType(t){let e=t.split("."),r=e[e.length-1];return document.createElement("audio").canPlayType("audio/"+r)!==""}static loaded(){return ft(this,void 0,void 0,function*(){for(yield Promise.resolve();i.downloads.length;)yield i.downloads[0]})}};qt.baseUrl="";qt.downloads=[];var lr=class extends ki{constructor(){super({clockSource:"offline",context:vn(arguments[0])?arguments[0]:yf(arguments[0],arguments[1]*arguments[2],arguments[2]),lookAhead:0,updateInterval:vn(arguments[0])?128/arguments[0].sampleRate:128/arguments[2]}),this.name="OfflineContext",this._currentTime=0,this.isOffline=!0,this._duration=vn(arguments[0])?arguments[0].length/arguments[0].sampleRate:arguments[1]}now(){return this._currentTime}get currentTime(){return this._currentTime}_renderClock(t){return ft(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 ft(this,arguments,void 0,function*(t=!0){yield this.workletsAreReady(),yield this._renderClock(t);let e=yield this._context.startRendering();return new qt(e)})}close(){return Promise.resolve()}};var Nf=new ga,Sn=Nf;function Ht(){return Sn===Nf&&bf&&oh(new ki),Sn}function oh(i,t=!1){t&&Sn.dispose(),ui(i)?Sn=new ki(i):vn(i)?Sn=new lr(i):Sn=i}if(me&&!me.TONE_SILENCE_LOGGING){let i="v";po==="dev"&&(i="");let t=` * Tone.js ${i}${po} * `;console.log(`%c${t}`,"background: #000; color: #fff")}function wn(i){return Math.pow(10,i/20)}function Nn(i){return 20*(Math.log(i)/Math.LN10)}function ji(i){return Math.pow(2,i/12)}var ya=440;function Tf(){return ya}function Of(i){ya=i}function dr(i){return Math.round(sh(i))}function sh(i){return 69+12*Math.log2(i/ya)}function No(i){return ya*Math.pow(2,(i-69)/12)}var ba=class i extends ie{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),Yt(this._val))return this._noArg();if(pe(this._val)&&Yt(this._units)){for(let t in this._expressions)if(this._expressions[t].regexp.test(this._val.trim())){this._units=t;break}}else if(cr(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 pe(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 je=class i extends ba{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 dr(this.toFrequency())}_now(){return this.context.now()}};var _e=class i extends je{constructor(){super(...arguments),this.name="Frequency",this.defaultUnits="hz"}static get A4(){return Tf()}static set A4(t){Of(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=S_[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()*ji(t))}harmonize(t){return t.map(e=>this.transpose(e))}toMidi(){return dr(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),w_[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 dr(t)}},S_={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},w_=["C","C#","D","D#","E","F","F#","G","G#","A","A#","B"];var He=class extends je{constructor(){super(...arguments),this.name="TransportTime"}_now(){return this.context.transport.seconds}};var Kt=class i extends ie{constructor(){super();let t=w(i.getDefaults(),arguments,["context"]);this.defaultContext?this.context=this.defaultContext:this.context=t.context}static getDefaults(){return{context:Ht()}}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 pf(t),new je(this.context,t).toSeconds()}toFrequency(t){return new _e(this.context,t).toFrequency()}toTicks(t){return new He(this.context,t).toTicks()}_getPartialProperties(t){let e=this.get();return Object.keys(e).forEach(r=>{Yt(t[r])&&delete e[r]}),e}get(){let t=_f(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]):Pt(r)||ce(r)||pe(r)||rh(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 Tr=class extends Qt{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 Vt(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 ut=class i extends Kt{constructor(){let t=w(i.getDefaults(),arguments,["param","units","convert"]);for(super(t),this.name="Param",this.overridden=!1,this._minOutput=1e-7,Y(it(t.param)&&(ur(t.param)||t.param instanceof i),"param must be an AudioParam");!ur(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 Qt(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(Kt.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)&&Vt(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")?wn(t):this._is(t,"frequency")?this.toFrequency(t):t:this.overridden?0:t}_toType(t){return this.convert&&this.units==="decibels"?Nn(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 L=class i extends Kt{constructor(){super(...arguments),this._internalChannels=[]}get numberOfInputs(){return it(this.input)?ur(this.input)||this.input instanceof ut?1:this.input.numberOfInputs:0}get numberOfOutputs(){return it(this.output)?this.output.numberOfOutputs:0}_isAudioNode(t){return it(t)&&(t instanceof i||Nr(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 ue(this,t,e,r),this}toDestination(){return this.connect(this.context.destination),this}toMaster(){return Ei("toMaster() has been renamed toDestination()"),this.toDestination()}disconnect(t,e=0,r=0){return Rf(this,t,e,r),this}chain(...t){return Ze(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():Nr(this.input)&&this.input.disconnect()),it(this.output)&&(this.output instanceof i?this.output.dispose():Nr(this.output)&&this.output.disconnect()),this._internalChannels=[],this}};function Ze(...i){let t=i.shift();i.reduce((e,r)=>(e instanceof L?e.connect(r):Nr(e)&&ue(e,r),r),t)}function ue(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 L||Nr(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 L||t instanceof ut;)it(t.input)&&(t=t.input);for(;i instanceof L;)it(i.output)&&(i=i.output);ur(t)?i.connect(t,e):i.connect(t,e,r)}function Rf(i,t,e=0,r=0){if(it(t))for(;t instanceof L;)t=t.input;for(;!Nr(i);)it(i.output)&&(i=i.output);ur(t)?i.disconnect(t,e):Nr(t)?i.disconnect(t,e,r):i.disconnect()}var $=class i extends L{constructor(){let t=w(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 ut({context:this.context,convert:t.convert,param:this._gainNode.gain,units:t.units,value:t.gain,minValue:t.minValue,maxValue:t.maxValue}),U(this,"gain")}static getDefaults(){return Object.assign(L.getDefaults(),{convert:!0,gain:1,units:"gain"})}dispose(){return super.dispose(),this._gainNode.disconnect(),this.gain.dispose(),this}};var pr=class extends L{constructor(t){super(t),this.onended=nt,this._startTime=-1,this._stopTime=-1,this._timeout=-1,this.output=new $({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(L.getDefaults(),{curve:"linear",fadeIn:0,fadeOut:0,onended:nt})}_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!==nt&&(this.onended(this),this.onended=nt,!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=nt,this}};var To=class i extends pr{constructor(){let t=w(i.getDefaults(),arguments,["offset"]);super(t),this.name="ToneConstantSource",this._source=this.context.createConstantSource(),ue(this._source,this._gainNode),this.offset=new ut({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(pr.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 L{constructor(){let t=w(i.getDefaults(),arguments,["value","units"]);super(t),this.name="Signal",this.override=!0,this.output=this._constantSource=new To({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(L.getDefaults(),{convert:!0,units:"number",value:0})}connect(t,e=0,r=0){return Tn(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 Tn(i,t,e,r){(t instanceof ut||ur(t)||t instanceof rt&&t.override)&&(t.cancelScheduledValues(0),t.setValueAtTime(0,0),t instanceof rt&&(t.overridden=!0)),ue(i,t,e,r)}var xa=class i extends ut{constructor(){let t=w(i.getDefaults(),arguments,["value"]);super(t),this.name="TickParam",this._events=new Qt(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(ut.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(Yt(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 Aa=class i extends rt{constructor(){let t=w(i.getDefaults(),arguments,["value"]);super(t),this.name="TickSignal",this.input=this._param=new xa({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 Ca=class i extends Kt{constructor(){let t=w(i.getDefaults(),arguments,["frequency"]);super(t),this.name="TickSource",this._state=new Tr,this._tickOffset=new Qt,this._ticksAtTime=new Qt,this._secondsAtTime=new Qt,this.frequency=new Aa({context:this.context,units:t.units,value:t.frequency}),U(this,"frequency"),this._state.setStateAtTime("stopped",0),this.setTicksAtTime(0,0)}static getDefaults(){return Object.assign({frequency:1,units:"hertz"},Kt.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 l=s.time,h=this._tickOffset.get(u.time);h&&h.time>=s.time&&(a=h.ticks,l=h.time),s.state==="started"&&u.state!=="started"&&(a+=this.frequency.getTicksAtTime(u.time)-this.frequency.getTicksAtTime(l),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,l=this._tickOffset.get(c.time);l&&l.time>=o.time&&(s=l.seconds,u=l.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,l=Math.ceil(u)-u;l=Ce(l,1)?0:l;let h=this.frequency.getTimeOfTick(a+l);for(;h<e;){try{r(h,Math.round(this.getTicksAtTime(h)))}catch(p){o=p;break}h+=this.frequency.getDurationOfTicks(1,h)}}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 On=class i extends Kt{constructor(){let t=w(i.getDefaults(),arguments,["callback","frequency"]);super(t),this.name="Clock",this.callback=nt,this._lastUpdate=0,this._state=new Tr("stopped"),this._boundLoop=this._loop.bind(this),this.callback=t.callback,this._tickSource=new Ca({context:this.context,frequency:t.frequency,units:t.units}),this._lastUpdate=0,this.frequency=this._tickSource.frequency,U(this,"frequency"),this._state.setStateAtTime("stopped",0),this.context.on("tick",this._boundLoop)}static getDefaults(){return Object.assign(Kt.getDefaults(),{callback:nt,frequency:1,units:"hertz"})}get state(){return this._state.getValueAtTime(this.now())}start(t,e){ma(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}};di.mixin(On);var Xe=class i extends L{constructor(){let t=w(i.getDefaults(),arguments,["volume"]);super(t),this.name="Volume",this.input=this.output=new $({context:this.context,gain:t.volume,units:"decibels"}),this.volume=this.output.gain,U(this,"volume"),this._unmutedVolume=t.volume,this.mute=t.mute}static getDefaults(){return Object.assign(L.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 ah=class i extends L{constructor(){let t=w(i.getDefaults(),arguments);super(t),this.name="Destination",this.input=new Xe({context:this.context}),this.output=new $({context:this.context}),this.volume=this.input.volume,Ze(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(L.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),Ze(...t),this}get maxChannelCount(){return this.context.rawContext.destination.maxChannelCount}dispose(){return super.dispose(),this.volume.dispose(),this}};hi(i=>{i.destination=new ah({context:i})});li(i=>{i.destination.dispose()});var ch=class extends L{constructor(){super(...arguments),this.name="Listener",this.positionX=new ut({context:this.context,param:this.context.rawContext.listener.positionX}),this.positionY=new ut({context:this.context,param:this.context.rawContext.listener.positionY}),this.positionZ=new ut({context:this.context,param:this.context.rawContext.listener.positionZ}),this.forwardX=new ut({context:this.context,param:this.context.rawContext.listener.forwardX}),this.forwardY=new ut({context:this.context,param:this.context.rawContext.listener.forwardY}),this.forwardZ=new ut({context:this.context,param:this.context.rawContext.listener.forwardZ}),this.upX=new ut({context:this.context,param:this.context.rawContext.listener.upX}),this.upY=new ut({context:this.context,param:this.context.rawContext.listener.upY}),this.upZ=new ut({context:this.context,param:this.context.rawContext.listener.upZ})}static getDefaults(){return Object.assign(L.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}};hi(i=>{i.listener=new ch({context:i})});li(i=>{i.listener.dispose()});var Rn=class i extends ie{constructor(){super(),this.name="ToneAudioBuffers",this._buffers=new Map,this._loadingCount=0;let t=w(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:nt,onload:nt,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=nt,n=nt){return pe(e)?(this.baseUrl&&e.trim().substring(0,11).toLowerCase()==="data:audio/"&&(this.baseUrl=""),this._buffers.set(t.toString(),new qt(this.baseUrl+e,r,n))):this._buffers.set(t.toString(),new qt(e,r,n)),this}dispose(){return super.dispose(),this._buffers.forEach(t=>t.dispose()),this._buffers.clear(),this}};var Oo=class i extends _e{constructor(){super(...arguments),this.name="MidiClass",this.defaultUnits="midi"}_frequencyToUnits(t){return dr(super._frequencyToUnits(t))}_ticksToUnits(t){return dr(super._ticksToUnits(t))}_beatsToUnits(t){return dr(super._beatsToUnits(t))}_secondsToUnits(t){return dr(super._secondsToUnits(t))}toMidi(){return this.valueOf()}toFrequency(){return No(this.toMidi())}transpose(t){return new i(this.context,this.toMidi()+t)}};var Pe=class extends He{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 uh=class extends Kt{constructor(){super(...arguments),this.name="Draw",this.expiration=.25,this.anticipation=.008,this._events=new Qt,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}};hi(i=>{i.draw=new uh({context:i})});li(i=>{i.draw.dispose()});var _a=class extends ie{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 hh(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}},hh=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 va=class extends ie{constructor(t){super(),this.name="TimelineValue",this._timeline=new Qt({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 ge=class i extends L{constructor(){super(w(i.getDefaults(),arguments,["context"]))}connect(t,e=0,r=0){return Tn(this,t,e,r),this}};var Ne=class i extends ge{constructor(){let t=w(i.getDefaults(),arguments,["mapping","length"]);super(t),this.name="WaveShaper",this._shaper=this.context.createWaveShaper(),this.input=this._shaper,this.output=this._shaper,Pt(t.mapping)||t.mapping instanceof Float32Array?this.curve=Float32Array.from(t.mapping):hf(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 Mn=class i extends ge{constructor(){let t=w(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(ge.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 qr=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:nt,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}};qr._eventId=0;var Ia=class i extends qr{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({},qr.getDefaults(),{duration:1/0,interval:1,once:!1})}invoke(t){this._createEvents(t),super.invoke(t)}_createEvent(){return Di(this._nextTick,this.floatTime+this.duration)?this.transport.scheduleOnce(this.invoke.bind(this),new Pe(this.context,this._nextTick).toSeconds()):-1}_createEvents(t){Di(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 Pe(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);Vr(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 Sa=class i extends Kt{constructor(){let t=w(i.getDefaults(),arguments);super(t),this.name="Transport",this._loop=new va(!1),this._loopStart=0,this._loopEnd=0,this._scheduledEvents={},this._timeline=new Qt,this._repeatedEvents=new _a,this._syncedSignals=[],this._swingAmount=0,this._ppq=t.ppq,this._clock=new On({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),U(this,"bpm"),this._timeSignature=t.timeSignature,this._swingTicks=t.ppq/2}static getDefaults(){return Object.assign(Kt.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 Pe(this.context,this._swingTicks*2/3).toSeconds()*n}ih(!0),this._timeline.forEachAtTime(e,r=>r.invoke(t)),ih(!1)}schedule(t,e){let r=new qr(this,{callback:t,time:new He(this.context,e).toTicks()});return this._addEvent(r,this._timeline)}scheduleRepeat(t,e,r,n=1/0){let o=new Ia(this,{callback:t,duration:new je(this.context,n).toTicks(),interval:new je(this.context,e).toTicks(),time:new He(this.context,r).toTicks()});return this._addEvent(o,this._repeatedEvents)}scheduleOnce(t,e){let r=new qr(this,{callback:t,once:!0,time:new He(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 Pe(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){Pt(t)&&(t=t[0]/t[1]*4),this._timeSignature=t}get loopStart(){return new je(this.context,this._loopStart,"i").toSeconds()}set loopStart(t){this._loopStart=this.toTicks(t)}get loopEnd(){return new je(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 Pe(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 Pe(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 $(c),l=new Mn(-1),h=new $(c);n.chain(u,l,h),n=h,o=1/o,s=[u,l,h]}e||(t.getValueAtTime(r)!==0?e=t.getValueAtTime(r)/o:e=0);let a=new $(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(),Li(this,"bpm"),this._timeline.dispose(),this._repeatedEvents.dispose(),this}};di.mixin(Sa);hi(i=>{i.transport=new Sa({context:i})});li(i=>{i.transport.dispose()});var It=class extends L{constructor(t){super(t),this.input=void 0,this._state=new Tr("stopped"),this._synced=!1,this._scheduled=[],this._syncedStart=nt,this._syncedStop=nt,this._state.memory=100,this._state.increasing=!0,this._volume=this.output=new Xe({context:this.context,mute:t.mute,volume:t.volume}),this.volume=this._volume.volume,U(this,"volume"),this.onstop=t.onstop}static getDefaults(){return Object.assign(L.getDefaults(),{mute:!1,onstop:nt,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=Yt(t)&&this._synced?this.context.transport.seconds:this.toSeconds(t);if(n=this._clampToCurrentTime(n),!this._synced&&this._state.getValueAtTime(n)==="started")Y(Vr(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(Le(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 ma(this.context),this._start(n,e,r);return this}stop(t){let e=Yt(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(Vr(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=nt,this.unsync(),this._volume.dispose(),this._state.dispose(),this}};var Or=class i extends pr{constructor(){let t=w(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,ue(this._source,this._gainNode),this._source.onended=()=>this._stopSource(),this.playbackRate=new ut({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 qt(t.url,t.onload,t.onerror),this._internalChannels.push(this._source)}static getDefaults(){return Object.assign(pr.getDefaults(),{url:new qt,loop:!1,loopEnd:0,loopStart:0,onload:nt,onerror:nt,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=Le(e,this.loopStart):e=Le(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;wo(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,Di(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 Pi=class i extends It{constructor(){let t=w(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(It.getDefaults(),{fadeIn:0,fadeOut:0,playbackRate:1,type:"white"})}get type(){return this._type}set type(t){if(Y(t in Mf,"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=Mf[this._type];this._source=new Or({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}},En=44100*5,lh=2,Wr={brown:null,pink:null,white:null},Mf={get brown(){if(!Wr.brown){let i=[];for(let t=0;t<lh;t++){let e=new Float32Array(En);i[t]=e;let r=0;for(let n=0;n<En;n++){let o=Math.random()*2-1;e[n]=(r+.02*o)/1.02,r=e[n],e[n]*=3.5}}Wr.brown=new qt().fromArray(i)}return Wr.brown},get pink(){if(!Wr.pink){let i=[];for(let t=0;t<lh;t++){let e=new Float32Array(En);i[t]=e;let r,n,o,s,a,c,u;r=n=o=s=a=c=u=0;for(let l=0;l<En;l++){let h=Math.random()*2-1;r=.99886*r+h*.0555179,n=.99332*n+h*.0750759,o=.969*o+h*.153852,s=.8665*s+h*.3104856,a=.55*a+h*.5329522,c=-.7616*c-h*.016898,e[l]=r+n+o+s+a+c+u+h*.5362,e[l]*=.11,u=h*.115926}}Wr.pink=new qt().fromArray(i)}return Wr.pink},get white(){if(!Wr.white){let i=[];for(let t=0;t<lh;t++){let e=new Float32Array(En);i[t]=e;for(let r=0;r<En;r++)e[r]=Math.random()*2-1}Wr.white=new qt().fromArray(i)}return Wr.white}};function Te(i,t){return ft(this,void 0,void 0,function*(){let e=t/i.context.sampleRate,r=new lr(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 Ro=class i extends pr{constructor(){let t=w(i.getDefaults(),arguments,["frequency","type"]);super(t),this.name="ToneOscillatorNode",this._oscillator=this.context.createOscillator(),this._internalChannels=[this._oscillator],ue(this._oscillator,this._gainNode),this.type=t.type,this.frequency=new ut({context:this.context,param:this._oscillator.frequency,units:"frequency",value:t.frequency}),this.detune=new ut({context:this.context,param:this._oscillator.detune,units:"cents",value:t.detune}),U(this,["frequency","detune"])}static getDefaults(){return Object.assign(pr.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 Ft=class i extends It{constructor(){let t=w(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}),U(this,"frequency"),this.detune=new rt({context:this.context,units:"cents",value:t.detune}),U(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(It.getDefaults(),{detune:0,frequency:440,partialCount:0,partials:[],phase:0,type:"sine"})}_start(t){let e=this.toSeconds(t),r=new Ro({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&&Cf(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){Vt(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),l;switch(t){case"sine":l=c<=a?1:0,this._partials[c-1]=l;break;case"square":l=c&1?2*u:0,this._partials[c-1]=l;break;case"sawtooth":l=u*(c&1?1:-1),this._partials[c-1]=l;break;case"triangle":c&1?l=2*(u*u)*(c-1>>1&1?-1:1):l=0,this._partials[c-1]=l;break;case"custom":l=this._partials[c-1];break;default:throw new TypeError("Oscillator: invalid type: "+t)}l!==0?(o[c]=-l*Math.sin(e*c),s[c]=l*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 nh(-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 ft(this,arguments,void 0,function*(t=1024){return Te(this,t)})}dispose(){return super.dispose(),this._oscillator!==null&&this._oscillator.dispose(),this._wave=void 0,this.frequency.dispose(),this.detune.dispose(),this}};Ft._periodicWaveCache=[];var Dn=class extends ge{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 Jt=class i extends rt{constructor(){let t=w(i.getDefaults(),arguments,["value"]);super(t),this.name="Multiply",this.override=!1,this._mult=this.input=this.output=new $({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 Mo=class i extends It{constructor(){let t=w(i.getDefaults(),arguments,["frequency","type","modulationType"]);super(t),this.name="AMOscillator",this._modulationScale=new Dn({context:this.context}),this._modulationNode=new $({context:this.context}),this._carrier=new Ft({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 Ft({context:this.context,phase:t.phase,type:t.modulationType}),this.harmonicity=new Jt({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),U(this,["frequency","detune","harmonicity"])}static getDefaults(){return Object.assign(Ft.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 ft(this,arguments,void 0,function*(t=1024){return Te(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 kn=class i extends It{constructor(){let t=w(i.getDefaults(),arguments,["frequency","type","modulationType"]);super(t),this.name="FMOscillator",this._modulationNode=new $({context:this.context,gain:0}),this._carrier=new Ft({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 Ft({context:this.context,phase:t.phase,type:t.modulationType}),this.harmonicity=new Jt({context:this.context,units:"positive",value:t.harmonicity}),this.modulationIndex=new Jt({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),U(this,["modulationIndex","frequency","detune","harmonicity"])}static getDefaults(){return Object.assign(Ft.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 ft(this,arguments,void 0,function*(t=1024){return Te(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 Fi=class i extends It{constructor(){let t=w(i.getDefaults(),arguments,["frequency","width"]);super(t),this.name="PulseOscillator",this._widthGate=new $({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 Ft({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),U(this,["width","frequency","detune"])}static getDefaults(){return Object.assign(It.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 ft(this,arguments,void 0,function*(t=1024){return Te(this,t)})}dispose(){return super.dispose(),this._triangle.dispose(),this.width.dispose(),this._widthGate.dispose(),this._thresh.dispose(),this}};var Eo=class i extends It{constructor(){let t=w(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,U(this,["frequency","detune"])}static getDefaults(){return Object.assign(Ft.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(Vt(t,1),this._oscillators.length!==t){this._forEach(e=>e.dispose()),this._oscillators=[];for(let e=0;e<t;e++){let r=new Ft({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):nt});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 ft(this,arguments,void 0,function*(t=1024){return Te(this,t)})}dispose(){return super.dispose(),this.frequency.dispose(),this.detune.dispose(),this._forEach(t=>t.dispose()),this}};var Do=class i extends It{constructor(){let t=w(i.getDefaults(),arguments,["frequency","modulationFrequency"]);super(t),this.name="PWMOscillator",this.sourceType="pwm",this._scale=new Jt({context:this.context,value:2}),this._pulse=new Fi({context:this.context,frequency:t.modulationFrequency}),this._pulse.carrierType="sine",this.modulationFrequency=this._pulse.frequency,this._modulator=new Ft({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),U(this,["modulationFrequency","frequency","detune"])}static getDefaults(){return Object.assign(It.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 ft(this,arguments,void 0,function*(t=1024){return Te(this,t)})}dispose(){return super.dispose(),this._pulse.dispose(),this._scale.dispose(),this._modulator.dispose(),this}};var Ef={am:Mo,fat:Eo,fm:kn,oscillator:Ft,pulse:Fi,pwm:Do},Bi=class i extends It{constructor(){let t=w(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}),U(this,["frequency","detune"]),this.set(t)}static getDefaults(){return Object.assign(Ft.getDefaults(),kn.getDefaults(),Mo.getDefaults(),Eo.getDefaults(),Fi.getDefaults(),Do.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=Ef[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 Ef[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")&&ce(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")&&ce(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"))&&pe(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 ft(this,arguments,void 0,function*(t=1024){return Te(this,t)})}dispose(){return super.dispose(),this.detune.dispose(),this.frequency.dispose(),this._oscillator.dispose(),this}};function Na(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){Vt(o,i,t),e.set(this,o)}})}}function Oe(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){Vt(this.toSeconds(o),i,t),e.set(this,o)}})}}var ko=class i extends It{constructor(){let t=w(i.getDefaults(),arguments,["url","onload"]);super(t),this.name="Player",this._activeSources=new Set,this._buffer=new qt({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(It.getDefaults(),{autostart:!1,fadeIn:0,fadeOut:0,loop:!1,loopEnd:0,loopStart:0,onload:nt,onerror:nt,playbackRate:1,reverse:!1})}load(t){return ft(this,void 0,void 0,function*(){return yield this._buffer.load(t),this._onload(),this})}_onload(t=nt){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=Le(e,this._loopStart):e=Le(e,0);let n=this.toSeconds(e),o=r;r=Le(r,Math.max(this._buffer.duration-n,0));let s=this.toSeconds(r);s=s/this._playbackRate,t=this.toSeconds(t);let a=new Or({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&&Yt(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&&Vt(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&&Vt(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}};fe([Oe(0)],ko.prototype,"fadeIn",void 0);fe([Oe(0)],ko.prototype,"fadeOut",void 0);var Ta=class extends ge{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 L{constructor(){let t=w(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(L.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(pe(t))return t;{let r;for(r in Oa)if(Oa[r][e]===t)return r;return t}}_setCurve(t,e,r){if(pe(r)&&Reflect.has(Oa,r)){let n=Oa[r];cr(n)?t!=="_decayCurve"&&(this[t]=n[e]):this[t]=n}else if(Pt(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(Pt(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 Tn(this,t,e,r),this}asArray(){return ft(this,arguments,void 0,function*(t=1024){let e=t/this.context.sampleRate,r=new lr(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}};fe([Oe(0)],ve.prototype,"attack",void 0);fe([Oe(0)],ve.prototype,"decay",void 0);fe([Na(0,1)],ve.prototype,"sustain",void 0);fe([Oe(0)],ve.prototype,"release",void 0);var Oa=(()=>{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 l(p){let m=new Array(p.length);for(let f=0;f<p.length;f++)m[f]=1-p[f];return m}function h(p){return p.slice(0).reverse()}return{bounce:{In:l(u),Out:u},cosine:{In:r,Out:h(r)},exponential:"exponential",linear:"linear",ripple:{In:n,Out:l(n)},sine:{In:c,Out:l(c)},step:{In:s,Out:l(s)}}})();var Fe=class i extends L{constructor(){let t=w(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 Xe({context:this.context,volume:t.volume}),this.volume=this._volume.volume,U(this,"volume")}static getDefaults(){return Object.assign(L.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 Re=class i extends Fe{constructor(){let t=w(i.getDefaults(),arguments);super(t),this.portamento=t.portamento,this.onsilence=t.onsilence}static getDefaults(){return Object.assign(Fe.getDefaults(),{detune:0,onsilence:nt,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}};fe([Oe(0)],Re.prototype,"portamento",void 0);var Ln=class i extends ve{constructor(){super(w(i.getDefaults(),arguments,["attack","decay","sustain","release"])),this.name="AmplitudeEnvelope",this._gainNode=new $({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 Rr=class i extends Re{constructor(){let t=w(i.getDefaults(),arguments);super(t),this.name="Synth",this.oscillator=new Bi(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 Ln(Object.assign({context:this.context},t.envelope)),this.oscillator.chain(this.envelope,this.output),U(this,["oscillator","frequency","detune","envelope"])}static getDefaults(){return Object.assign(Re.getDefaults(),{envelope:Object.assign(hr(ve.getDefaults(),Object.keys(L.getDefaults())),{attack:.005,decay:.1,release:1,sustain:.3}),oscillator:Object.assign(hr(Bi.getDefaults(),[...Object.keys(It.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 Lo=class i extends L{constructor(){let t=w(i.getDefaults(),arguments,["frequency","type"]);super(t),this.name="BiquadFilter",this._filter=this.context.createBiquadFilter(),this.input=this.output=this._filter,this.Q=new ut({context:this.context,units:"number",value:t.Q,param:this._filter.Q}),this.frequency=new ut({context:this.context,units:"frequency",value:t.frequency,param:this._filter.frequency}),this.detune=new ut({context:this.context,units:"cents",value:t.detune,param:this._filter.detune}),this.gain=new ut({context:this.context,units:"decibels",convert:!1,value:t.gain,param:this._filter.gain}),this.type=t.type}static getDefaults(){return Object.assign(L.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 Ur=class i extends L{constructor(){let t=w(i.getDefaults(),arguments,["frequency","type","rolloff"]);super(t),this.name="Filter",this.input=new $({context:this.context}),this.output=new $({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,U(this,["detune","frequency","gain","Q"])}static getDefaults(){return Object.assign(L.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=ce(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 Lo({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,Ze(this.input,...this._internalChannels,this.output)}getFrequencyResponse(t=128){let e=new Lo({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()}),Li(this,["detune","frequency","gain","Q"]),this.frequency.dispose(),this.Q.dispose(),this.detune.dispose(),this.gain.dispose(),this}};var Ra=class i extends Rr{constructor(){let t=w(i.getDefaults(),arguments);super(t),this.name="MembraneSynth",this.portamento=0,this.pitchDecay=t.pitchDecay,this.octaves=t.octaves,U(this,["oscillator","envelope"])}static getDefaults(){return Ye(Re.getDefaults(),Rr.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}};fe([Na(0)],Ra.prototype,"octaves",void 0);fe([Oe(0)],Ra.prototype,"pitchDecay",void 0);var Df=new Set;function Pn(i){Df.add(i)}function Ma(i,t){let e=`registerProcessor("${i}", ${t})`;Df.add(e)}var O_=`
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 vf(i)}function Rr(i){return _f(i)}function In(i){return Sf(i)}function hi(i){return Cf(i)}function Lf(i){return i instanceof ih}function V_(i,t){return i==="value"||lr(t)||Rr(t)||Lf(t)}function Ze(i,...t){if(!t.length)return i;let e=t.shift();if(hr(i)&&hr(e))for(let r in e)V_(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 jf(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++)nt(o[s])&&(n[e[s]]=o[s]);return Ze(i,n)}function Pf(i){return i.constructor.getDefaults()}function Fe(i,t){return Zt(i)?t:i}function dr(i,t){return t.forEach(e=>{Reflect.has(i,e)&&delete i[e]}),i}var oe=class{constructor(){this.debug=!1,this._wasDisposed=!1}static getDefaults(){return{}}log(...t){(this.debug||ge&&this.toString()===ge.TONE_DEBUG_CLASS)&&Rf(this,...t)}dispose(){return this._wasDisposed=!0,this}get disposed(){return this._wasDisposed}toString(){return this.name}};oe.version=po;function zr(i,t){return i>t+1e-6}function Io(i,t){return zr(i,t)||_e(i,t)}function ji(i,t){return i+1e-6<t}function _e(i,t){return Math.abs(i-t)<1e-6}function hh(i,t,e){return Math.max(Math.min(i,e),t)}var Jt=class i extends oe{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(Io(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(_e(this._timeline[e].time,t)){for(let r=e;r>=0&&_e(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&&Io(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(_e(a[e],t)){for(let u=s;u<this._timeline.length;u++){let h=this._timeline[u];if(_e(h[e],t))s=u;else break}return s}else{if(ji(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&&_e(this._timeline[r].time,t)){let n=r;for(let o=r;o>=0&&_e(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 Ff=[];function li(i){Ff.push(i)}function Bf(i){Ff.forEach(t=>t(i))}var Gf=[];function di(i){Gf.push(i)}function Vf(i){Gf.forEach(t=>t(i))}var pi=class i extends oe{constructor(){super(...arguments),this.name="Emitter"}on(t,e){return t.split(/\W+/).forEach(n=>{Zt(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(Zt(this._events)&&(this._events={}),this._events.hasOwnProperty(n))if(Zt(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 Tn=class extends pi{constructor(){super(...arguments),this.isOffline=!1}toJSON(){return{}}};var Pi=class i extends Tn{constructor(){var t,e;super(),this.name="Context",this._constants=new Map,this._timeouts=new Jt,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=Mf({latencyHint:r.latencyHint}),this._latencyHint=r.latencyHint),this._ticker=new ba(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||(Bf(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 kf(this.rawContext,t,e)}addAudioWorkletModule(t){return yt(this,void 0,void 0,function*(){Y(nt(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&&Vf(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 xa=class extends Tn{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 U(i,t){Gt(t)?t.forEach(e=>U(i,e)):Object.defineProperty(i,t,{enumerable:!0,writable:!1})}function Fi(i,t){Gt(t)?t.forEach(e=>Fi(i,e)):Object.defineProperty(i,t,{writable:!0})}var ot=()=>{};var zt=class i extends oe{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:Xt().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=Gt(t)&&t[0].length>0,r=e?t.length:1,n=e?t[0].length:t.length,o=Xt(),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(he(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(he(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=Xt().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 Xt().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]})}};zt.baseUrl="";zt.downloads=[];var pr=class extends Pi{constructor(){super({clockSource:"offline",context:In(arguments[0])?arguments[0]:Ef(arguments[0],arguments[1]*arguments[2],arguments[2]),lookAhead:0,updateInterval:In(arguments[0])?128/arguments[0].sampleRate:128/arguments[2]}),this.name="OfflineContext",this._currentTime=0,this.isOffline=!0,this._duration=In(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 zt(e)})}close(){return Promise.resolve()}};var qf=new xa,Nn=qf;function Xt(){return Nn===qf&&Df&&lh(new Pi),Nn}function lh(i,t=!1){t&&Nn.dispose(),hi(i)?Nn=new Pi(i):In(i)?Nn=new pr(i):Nn=i}if(ge&&!ge.TONE_SILENCE_LOGGING){let i="v";po==="dev"&&(i="");let t=` * Tone.js ${i}${po} * `;console.log(`%c${t}`,"background: #000; color: #fff")}function On(i){return Math.pow(10,i/20)}function Rn(i){return 20*(Math.log(i)/Math.LN10)}function Bi(i){return Math.pow(2,i/12)}var Aa=440;function Wf(){return Aa}function Uf(i){Aa=i}function mr(i){return Math.round(dh(i))}function dh(i){return 69+12*Math.log2(i/Aa)}function To(i){return Aa*Math.pow(2,(i-69)/12)}var Ca=class i extends oe{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),Zt(this._val))return this._noArg();if(fe(this._val)&&Zt(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(nt(this._val[e])){let r=this._val[e],n=new this.constructor(this.context,e).valueOf()*r;t+=n}return t}if(nt(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 Be=class i extends Ca{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 ve=class i extends Be{constructor(){super(...arguments),this.name="Frequency",this.defaultUnits="hz"}static get A4(){return Wf()}static set A4(t){Uf(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=q_[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()*Bi(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),W_[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 To(t)}static ftom(t){return mr(t)}},q_={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},W_=["C","C#","D","D#","E","F","F#","G","G#","A","A#","B"];var Xe=class extends Be{constructor(){super(...arguments),this.name="TransportTime"}_now(){return this.context.transport.seconds}};var te=class i extends oe{constructor(){super();let t=I(i.getDefaults(),arguments,["context"]);this.defaultContext?this.context=this.defaultContext:this.context=t.context}static getDefaults(){return{context:Xt()}}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 Nf(t),new Be(this.context,t).toSeconds()}toFrequency(t){return new ve(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=>{Zt(t[r])&&delete e[r]}),e}get(){let t=Pf(this);return Object.keys(t).forEach(e=>{if(Reflect.has(this,e)){let r=this[e];nt(r)&&nt(r.value)&&nt(r.setValueAtTime)?t[e]=r.value:r instanceof i?t[e]=r._getPartialProperties(t[e]):Gt(r)||he(r)||fe(r)||ch(r)?t[e]=r:delete t[e]}}),t}set(t){return Object.keys(t).forEach(e=>{Reflect.has(this,e)&&nt(this[e])&&(this[e]&&nt(this[e].value)&&nt(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 Jt{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 Ut(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 te{constructor(){let t=I(i.getDefaults(),arguments,["param","units","convert"]);for(super(t),this.name="Param",this.overridden=!1,this._minOutput=1e-7,Y(nt(t.param)&&(lr(t.param)||t.param instanceof i),"param must be an AudioParam");!lr(t.param);)t.param=t.param._param;this._swappable=nt(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 Jt(1e3),this._initialValue=this._param.defaultValue,this.units=t.units,this.convert=t.convert,this._minValue=t.minValue,this._maxValue=t.maxValue,nt(t.value)&&t.value!==this._toType(this._initialValue)&&this.setValueAtTime(t.value,0)}static getDefaults(){return Object.assign(te.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 nt(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 nt(this._maxValue)?this._maxValue:this.units==="normalRange"||this.units==="audioRange"?1:this._param.maxValue}_is(t,e){return this.units===e}_assertRange(t){return nt(this.maxValue)&&nt(this.minValue)&&Ut(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")?On(t):this._is(t,"frequency")?this.toFrequency(t):t:this.overridden?0:t}_toType(t){return this.convert&&this.units==="decibels"?Rn(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=_e(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&&_e(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 L=class i extends te{constructor(){super(...arguments),this._internalChannels=[]}get numberOfInputs(){return nt(this.input)?lr(this.input)||this.input instanceof ht?1:this.input.numberOfInputs:0}get numberOfOutputs(){return nt(this.output)?this.output.numberOfOutputs:0}_isAudioNode(t){return nt(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 le(this,t,e,r),this}toDestination(){return this.connect(this.context.destination),this}toMaster(){return Li("toMaster() has been renamed toDestination()"),this.toDestination()}disconnect(t,e=0,r=0){return zf(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(),nt(this.input)&&(this.input instanceof i?this.input.dispose():Rr(this.input)&&this.input.disconnect()),nt(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 L?e.connect(r):Rr(e)&&le(e,r),r),t)}function le(i,t,e=0,r=0){for(Y(nt(i),"Cannot connect from undefined node"),Y(nt(t),"Cannot connect to undefined node"),(t instanceof L||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 L||t instanceof ht;)nt(t.input)&&(t=t.input);for(;i instanceof L;)nt(i.output)&&(i=i.output);lr(t)?i.connect(t,e):i.connect(t,e,r)}function zf(i,t,e=0,r=0){if(nt(t))for(;t instanceof L;)t=t.input;for(;!Rr(i);)nt(i.output)&&(i=i.output);lr(t)?i.disconnect(t,e):Rr(t)?i.disconnect(t,e,r):i.disconnect()}var X=class i extends L{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}),U(this,"gain")}static getDefaults(){return Object.assign(L.getDefaults(),{convert:!0,gain:1,units:"gain"})}dispose(){return super.dispose(),this._gainNode.disconnect(),this.gain.dispose(),this}};var fr=class extends L{constructor(t){super(t),this.onended=ot,this._startTime=-1,this._stopTime=-1,this._timeout=-1,this.output=new X({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(L.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 No=class i extends fr{constructor(){let t=I(i.getDefaults(),arguments,["offset"]);super(t),this.name="ToneConstantSource",this._source=this.context.createConstantSource(),le(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 it=class i extends L{constructor(){let t=I(i.getDefaults(),arguments,["value","units"]);super(t),this.name="Signal",this.override=!0,this.output=this._constantSource=new No({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(L.getDefaults(),{convert:!0,units:"number",value:0})}connect(t,e=0,r=0){return Mn(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 Mn(i,t,e,r){(t instanceof ht||lr(t)||t instanceof it&&t.override)&&(t.cancelScheduledValues(0),t.setValueAtTime(0,0),t instanceof it&&(t.overridden=!0)),le(i,t,e,r)}var _a=class i extends ht{constructor(){let t=I(i.getDefaults(),arguments,["value"]);super(t),this.name="TickParam",this._events=new Jt(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(Zt(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 va=class i extends it{constructor(){let t=I(i.getDefaults(),arguments,["value"]);super(t),this.name="TickSignal",this.input=this._param=new _a({context:this.context,convert:t.convert,multiplier:t.multiplier,param:this._constantSource.offset,units:t.units,value:t.value})}static getDefaults(){return Object.assign(it.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 Sa=class i extends te{constructor(){let t=I(i.getDefaults(),arguments,["frequency"]);super(t),this.name="TickSource",this._state=new Mr,this._tickOffset=new Jt,this._ticksAtTime=new Jt,this._secondsAtTime=new Jt,this.frequency=new va({context:this.context,units:t.units,value:t.frequency}),U(this,"frequency"),this._state.setStateAtTime("stopped",0),this.setTicksAtTime(0,0)}static getDefaults(){return Object.assign({frequency:1,units:"hertz"},te.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),nt(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=_e(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 En=class i extends te{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 Sa({context:this.context,frequency:t.frequency,units:t.units}),this._lastUpdate=0,this.frequency=this._tickSource.frequency,U(this,"frequency"),this._state.setStateAtTime("stopped",0),this.context.on("tick",this._boundLoop)}static getDefaults(){return Object.assign(te.getDefaults(),{callback:ot,frequency:1,units:"hertz"})}get state(){return this._state.getValueAtTime(this.now())}start(t,e){ya(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(En);var Ke=class i extends L{constructor(){let t=I(i.getDefaults(),arguments,["volume"]);super(t),this.name="Volume",this.input=this.output=new X({context:this.context,gain:t.volume,units:"decibels"}),this.volume=this.output.gain,U(this,"volume"),this._unmutedVolume=t.volume,this.mute=t.mute}static getDefaults(){return Object.assign(L.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 ph=class i extends L{constructor(){let t=I(i.getDefaults(),arguments);super(t),this.name="Destination",this.input=new Ke({context:this.context}),this.output=new X({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(L.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 ph({context:i})});di(i=>{i.destination.dispose()});var mh=class extends L{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(L.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 mh({context:i})});di(i=>{i.listener.dispose()});var Dn=class i extends oe{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 zt(this.baseUrl+e,r,n))):this._buffers.set(t.toString(),new zt(e,r,n)),this}dispose(){return super.dispose(),this._buffers.forEach(t=>t.dispose()),this._buffers.clear(),this}};var Oo=class i extends ve{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 To(this.toMidi())}transpose(t){return new i(this.context,this.toMidi()+t)}};var Ge=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 fh=class extends te{constructor(){super(...arguments),this.name="Draw",this.expiration=.25,this.anticipation=.008,this._events=new Jt,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 fh({context:i})});di(i=>{i.draw.dispose()});var wa=class extends oe{constructor(){super(...arguments),this.name="IntervalTimeline",this._root=null,this._length=0}add(t){Y(nt(t.time),"Events must have a time property"),Y(nt(t.duration),"Events must have a duration parameter"),t.time=t.time.valueOf();let e=new gh(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}},gh=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 Ia=class extends oe{constructor(t){super(),this.name="TimelineValue",this._timeline=new Jt({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 L{constructor(){super(I(i.getDefaults(),arguments,["context"]))}connect(t,e=0,r=0){return Mn(this,t,e,r),this}};var Oe=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,Gt(t.mapping)||t.mapping instanceof Float32Array?this.curve=Float32Array.from(t.mapping):wf(t.mapping)&&this.setMap(t.mapping,t.length)}static getDefaults(){return Object.assign(it.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 kn=class i extends be{constructor(){let t=I(i.getDefaults(),arguments,["value"]);super(t),this.name="Pow",this._exponentScaler=this.input=this.output=new Oe({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 Ta=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 ji(this._nextTick,this.floatTime+this.duration)?this.transport.scheduleOnce(this.invoke.bind(this),new Ge(this.context,this._nextTick).toSeconds()):-1}_createEvents(t){ji(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 Ge(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 Na=class i extends te{constructor(){let t=I(i.getDefaults(),arguments);super(t),this.name="Transport",this._loop=new Ia(!1),this._loopStart=0,this._loopEnd=0,this._scheduledEvents={},this._timeline=new Jt,this._repeatedEvents=new wa,this._syncedSignals=[],this._swingAmount=0,this._ppq=t.ppq,this._clock=new En({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),U(this,"bpm"),this._timeSignature=t.timeSignature,this._swingTicks=t.ppq/2}static getDefaults(){return Object.assign(te.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 Ge(this.context,this._swingTicks*2/3).toSeconds()*n}uh(!0),this._timeline.forEachAtTime(e,r=>r.invoke(t)),uh(!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 Ta(this,{callback:t,duration:new Be(this.context,n).toTicks(),interval:new Be(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 Ge(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 nt(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){Gt(t)&&(t=t[0]/t[1]*4),this._timeSignature=t}get loopStart(){return new Be(this.context,this._loopStart,"i").toSeconds()}set loopStart(t){this._loopStart=this.toTicks(t)}get loopEnd(){return new Be(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 Ge(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 Ge(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 X(c),h=new kn(-1),l=new X(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 X(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(),Fi(this,"bpm"),this._timeline.dispose(),this._repeatedEvents.dispose(),this}};pi.mixin(Na);li(i=>{i.transport=new Na({context:i})});di(i=>{i.transport.dispose()});var wt=class extends L{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,U(this,"volume"),this.onstop=t.onstop}static getDefaults(){return Object.assign(L.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=Zt(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(Fe(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 ya(this.context),this._start(n,e,r);return this}stop(t){let e=Zt(t)&&this._synced?this.context.transport.seconds:this.toSeconds(t);if(e=this._clampToCurrentTime(e),this._state.getValueAtTime(e)==="started"||nt(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,le(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 zt(t.url,t.onload,t.onerror),this._internalChannels.push(this._source)}static getDefaults(){return Object.assign(fr.getDefaults(),{url:new zt,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=Fe(e,this.loopStart):e=Fe(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;Io(s,a)&&(s=(s-c)%u+c),_e(s,this.buffer.duration)&&(s=0)}if(this._source.buffer=this.buffer.get(),this._source.loopEnd=this.toSeconds(this.loopEnd)||this.buffer.duration,ji(s,this.buffer.duration)&&(this._sourceStarted=!0,this._source.start(o,s)),nt(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 Gi=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 Yf,"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=Yf[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}},Ln=44100*5,yh=2,Hr={brown:null,pink:null,white:null},Yf={get brown(){if(!Hr.brown){let i=[];for(let t=0;t<yh;t++){let e=new Float32Array(Ln);i[t]=e;let r=0;for(let n=0;n<Ln;n++){let o=Math.random()*2-1;e[n]=(r+.02*o)/1.02,r=e[n],e[n]*=3.5}}Hr.brown=new zt().fromArray(i)}return Hr.brown},get pink(){if(!Hr.pink){let i=[];for(let t=0;t<yh;t++){let e=new Float32Array(Ln);i[t]=e;let r,n,o,s,a,c,u;r=n=o=s=a=c=u=0;for(let h=0;h<Ln;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 zt().fromArray(i)}return Hr.pink},get white(){if(!Hr.white){let i=[];for(let t=0;t<yh;t++){let e=new Float32Array(Ln);i[t]=e;for(let r=0;r<Ln;r++)e[r]=Math.random()*2-1}Hr.white=new zt().fromArray(i)}return Hr.white}};function Re(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 Ro=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],le(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}),U(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 Vt=class i extends wt{constructor(){let t=I(i.getDefaults(),arguments,["frequency","type"]);super(t),this.name="Oscillator",this._oscillator=null,this.frequency=new it({context:this.context,units:"frequency",value:t.frequency}),U(this,"frequency"),this.detune=new it({context:this.context,units:"cents",value:t.detune}),U(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 Ro({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&&jf(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(nt(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){Ut(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 hh(-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 Re(this,t)})}dispose(){return super.dispose(),this._oscillator!==null&&this._oscillator.dispose(),this._wave=void 0,this.frequency.dispose(),this.detune.dispose(),this}};Vt._periodicWaveCache=[];var jn=class extends be{constructor(){super(...arguments),this.name="AudioToGain",this._norm=new Oe({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 ee=class i extends it{constructor(){let t=I(i.getDefaults(),arguments,["value"]);super(t),this.name="Multiply",this.override=!1,this._mult=this.input=this.output=new X({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(it.getDefaults(),{value:0})}dispose(){return super.dispose(),this._mult.dispose(),this}};var Mo=class i extends wt{constructor(){let t=I(i.getDefaults(),arguments,["frequency","type","modulationType"]);super(t),this.name="AMOscillator",this._modulationScale=new jn({context:this.context}),this._modulationNode=new X({context:this.context}),this._carrier=new Vt({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 Vt({context:this.context,phase:t.phase,type:t.modulationType}),this.harmonicity=new ee({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),U(this,["frequency","detune","harmonicity"])}static getDefaults(){return Object.assign(Vt.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 Re(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 Pn=class i extends wt{constructor(){let t=I(i.getDefaults(),arguments,["frequency","type","modulationType"]);super(t),this.name="FMOscillator",this._modulationNode=new X({context:this.context,gain:0}),this._carrier=new Vt({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 it({context:this.context,units:"frequency",value:t.frequency}),this._modulator=new Vt({context:this.context,phase:t.phase,type:t.modulationType}),this.harmonicity=new ee({context:this.context,units:"positive",value:t.harmonicity}),this.modulationIndex=new ee({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),U(this,["modulationIndex","frequency","detune","harmonicity"])}static getDefaults(){return Object.assign(Vt.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 Re(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 Vi=class i extends wt{constructor(){let t=I(i.getDefaults(),arguments,["frequency","width"]);super(t),this.name="PulseOscillator",this._widthGate=new X({context:this.context,gain:0}),this._thresh=new Oe({context:this.context,mapping:e=>e<=0?-1:1}),this.width=new it({context:this.context,units:"audioRange",value:t.width}),this._triangle=new Vt({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),U(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 Re(this,t)})}dispose(){return super.dispose(),this._triangle.dispose(),this.width.dispose(),this._widthGate.dispose(),this._thresh.dispose(),this}};var Eo=class i extends wt{constructor(){let t=I(i.getDefaults(),arguments,["frequency","type","spread"]);super(t),this.name="FatOscillator",this._oscillators=[],this.frequency=new it({context:this.context,units:"frequency",value:t.frequency}),this.detune=new it({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,U(this,["frequency","detune"])}static getDefaults(){return Object.assign(Vt.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(Ut(t,1),this._oscillators.length!==t){this._forEach(e=>e.dispose()),this._oscillators=[];for(let e=0;e<t;e++){let r=new Vt({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 Re(this,t)})}dispose(){return super.dispose(),this.frequency.dispose(),this.detune.dispose(),this._forEach(t=>t.dispose()),this}};var Do=class i extends wt{constructor(){let t=I(i.getDefaults(),arguments,["frequency","modulationFrequency"]);super(t),this.name="PWMOscillator",this.sourceType="pwm",this._scale=new ee({context:this.context,value:2}),this._pulse=new Vi({context:this.context,frequency:t.modulationFrequency}),this._pulse.carrierType="sine",this.modulationFrequency=this._pulse.frequency,this._modulator=new Vt({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),U(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 Re(this,t)})}dispose(){return super.dispose(),this._pulse.dispose(),this._scale.dispose(),this._modulator.dispose(),this}};var Hf={am:Mo,fat:Eo,fm:Pn,oscillator:Vt,pulse:Vi,pwm:Do},qi=class i extends wt{constructor(){let t=I(i.getDefaults(),arguments,["frequency","type"]);super(t),this.name="OmniOscillator",this.frequency=new it({context:this.context,units:"frequency",value:t.frequency}),this.detune=new it({context:this.context,units:"cents",value:t.detune}),U(this,["frequency","detune"]),this.set(t)}static getDefaults(){return Object.assign(Vt.getDefaults(),Pn.getDefaults(),Mo.getDefaults(),Eo.getDefaults(),Vi.getDefaults(),Do.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=Hf[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 Hf[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")&&he(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")&&he(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 Re(this,t)})}dispose(){return super.dispose(),this.detune.dispose(),this.frequency.dispose(),this._oscillator.dispose(),this}};function Ra(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){Ut(o,i,t),e.set(this,o)}})}}function Me(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){Ut(this.toSeconds(o),i,t),e.set(this,o)}})}}var ko=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 zt({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=Fe(e,this._loopStart):e=Fe(e,0);let n=this.toSeconds(e),o=r;r=Fe(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&&Zt(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&&Ut(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&&Ut(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([Me(0)],ko.prototype,"fadeIn",void 0);ye([Me(0)],ko.prototype,"fadeOut",void 0);var Ma=class extends be{constructor(){super(...arguments),this.name="GainToAudio",this._norm=new Oe({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 Se=class i extends L{constructor(){let t=I(i.getDefaults(),arguments,["attack","decay","sustain","release"]);super(t),this.name="Envelope",this._sig=new it({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(L.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 Ea)if(Ea[r][e]===t)return r;return t}}_setCurve(t,e,r){if(fe(r)&&Reflect.has(Ea,r)){let n=Ea[r];hr(n)?t!=="_decayCurve"&&(this[t]=n[e]):this[t]=n}else if(Gt(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(Gt(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 Mn(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([Me(0)],Se.prototype,"attack",void 0);ye([Me(0)],Se.prototype,"decay",void 0);ye([Ra(0,1)],Se.prototype,"sustain",void 0);ye([Me(0)],Se.prototype,"release",void 0);var Ea=(()=>{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 Ve=class i extends L{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,U(this,"volume")}static getDefaults(){return Object.assign(L.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 Ee=class i extends Ve{constructor(){let t=I(i.getDefaults(),arguments);super(t),this.portamento=t.portamento,this.onsilence=t.onsilence}static getDefaults(){return Object.assign(Ve.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 ve?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([Me(0)],Ee.prototype,"portamento",void 0);var Fn=class i extends Se{constructor(){super(I(i.getDefaults(),arguments,["attack","decay","sustain","release"])),this.name="AmplitudeEnvelope",this._gainNode=new X({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 Ee{constructor(){let t=I(i.getDefaults(),arguments);super(t),this.name="Synth",this.oscillator=new qi(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 Fn(Object.assign({context:this.context},t.envelope)),this.oscillator.chain(this.envelope,this.output),U(this,["oscillator","frequency","detune","envelope"])}static getDefaults(){return Object.assign(Ee.getDefaults(),{envelope:Object.assign(dr(Se.getDefaults(),Object.keys(L.getDefaults())),{attack:.005,decay:.1,release:1,sustain:.3}),oscillator:Object.assign(dr(qi.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 Lo=class i extends L{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(L.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 L{constructor(){let t=I(i.getDefaults(),arguments,["frequency","type","rolloff"]);super(t),this.name="Filter",this.input=new X({context:this.context}),this.output=new X({context:this.context}),this._filters=[],this._filters=[],this.Q=new it({context:this.context,units:"positive",value:t.Q}),this.frequency=new it({context:this.context,units:"frequency",value:t.frequency}),this.detune=new it({context:this.context,units:"cents",value:t.detune}),this.gain=new it({context:this.context,units:"decibels",convert:!1,value:t.gain}),this._type=t.type,this.rolloff=t.rolloff,U(this,["detune","frequency","gain","Q"])}static getDefaults(){return Object.assign(L.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=he(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 Lo({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 Lo({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()}),Fi(this,["detune","frequency","gain","Q"]),this.frequency.dispose(),this.Q.dispose(),this.detune.dispose(),this.gain.dispose(),this}};var Da=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,U(this,["oscillator","envelope"])}static getDefaults(){return Ze(Ee.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 ve?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([Ra(0)],Da.prototype,"octaves",void 0);ye([Me(0)],Da.prototype,"pitchDecay",void 0);var $f=new Set;function Gn(i){$f.add(i)}function ka(i,t){let e=`registerProcessor("${i}", ${t})`;$f.add(e)}var Y_=`
20
20
  /**
21
21
  * The base AudioWorkletProcessor for use in Tone.js. Works with the {@link ToneAudioWorklet}.
22
22
  */
@@ -46,7 +46,7 @@
46
46
  };
47
47
  }
48
48
  }
49
- `;Pn(O_);var R_=`
49
+ `;Gn(Y_);var H_=`
50
50
  /**
51
51
  * Abstract class for a single input/output processor.
52
52
  * has a 'generate' function which processes one sample at a time
@@ -113,7 +113,7 @@
113
113
  return !this.disposed;
114
114
  }
115
115
  };
116
- `;Pn(R_);var M_=`
116
+ `;Gn(H_);var $_=`
117
117
  /**
118
118
  * A multichannel buffer for use within an AudioWorkletProcessor as a delay line
119
119
  */
@@ -157,7 +157,7 @@
157
157
  return this.buffer[channel][readHead];
158
158
  }
159
159
  }
160
- `;Pn(M_);var kf="feedback-comb-filter",E_=`
160
+ `;Gn($_);var Zf="feedback-comb-filter",Z_=`
161
161
  class FeedbackCombFilterWorklet extends SingleIOProcessor {
162
162
 
163
163
  constructor(options) {
@@ -187,7 +187,7 @@
187
187
  return delayedSample;
188
188
  }
189
189
  }
190
- `;Ma(kf,E_);var Ea=class i extends Fe{constructor(){let t=w(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(!ce(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(Fe.getDefaults(),{maxPolyphony:32,options:{},voice:Rr})}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 Re,"Voice must extend Monophonic class"),t.connect(this.output),this._voices.push(t),t}else Ei("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 Oo(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 Oo(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),Pt(e)){Y(Pt(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=hr(t,["onsilence","context"]);return this.options=Ye(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 Da=class i extends Fe{constructor(){let t=w(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(So(r)||ce(n)&&isFinite(n),`url key is neither a note or midi pitch: ${r}`),So(r)){let o=new _e(this.context,r).toMidi();e[o]=t.urls[r]}else ce(n)&&isFinite(n)&&(e[n]=t.urls[n])}),this._buffers=new Rn({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(Fe.getDefaults(),{attack:0,baseUrl:"",curve:"exponential",onload:nt,onerror:nt,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=sh(new _e(this.context,n).toFrequency()),s=Math.round(o),a=o-s,c=this._findClosest(s),u=s-c,l=this._buffers.get(u),h=ji(c+a),p=new Or({url:l,context:this.context,curve:this.curve,fadeIn:this.attack,fadeOut:this.release,playbackRate:h}).connect(this.output);p.start(e,0,l.duration/h,r),Pt(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),Pt(e)?(Y(Pt(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(So(t)||isFinite(t),`note must be a pitch or midi: ${t}`),So(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}};fe([Oe(0)],Da.prototype,"attack",void 0);fe([Oe(0)],Da.prototype,"release",void 0);var Fn=class i extends L{constructor(){let t=w(i.getDefaults(),arguments,["fade"]);super(t),this.name="CrossFade",this._panner=this.context.createStereoPanner(),this._split=this.context.createChannelSplitter(2),this._g2a=new Ta({context:this.context}),this.a=new $({context:this.context,gain:0}),this.b=new $({context:this.context,gain:0}),this.output=new $({context:this.context}),this._internalChannels=[this.a,this.b],this.fade=new rt({context:this.context,units:"normalRange",value:t.fade}),U(this,"fade"),this.context.getConstant(1).connect(this._panner),this._panner.connect(this._split),this._panner.channelCount=1,this._panner.channelCountMode="explicit",ue(this._split,this.a.gain,0),ue(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(L.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 Me=class extends L{constructor(t){super(t),this.name="Effect",this._dryWet=new Fn({context:this.context}),this.wet=this._dryWet.fade,this.effectSend=new $({context:this.context}),this.effectReturn=new $({context:this.context}),this.input=new $({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],U(this,"wet")}static getDefaults(){return Object.assign(L.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 jo=class i extends L{constructor(){let t=w(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 ut({context:this.context,param:this._panner.pan,value:t.pan,minValue:-1,maxValue:1}),this._panner.channelCount=t.channelCount,this._panner.channelCountMode="explicit",U(this,"pan")}static getDefaults(){return Object.assign(L.getDefaults(),{pan:0,channelCount:1})}dispose(){return super.dispose(),this._panner.disconnect(),this.pan.dispose(),this}};var jf="bit-crusher",B_=`
190
+ `;ka(Zf,Z_);var La=class i extends Ve{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(!he(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(Ve.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 Ee,"Voice must extend Monophonic class"),t.connect(this.output),this._voices.push(t),t}else Li("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 Oo(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 Oo(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),Gt(e)){Y(Gt(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 ja=class i extends Ve{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(wo(r)||he(n)&&isFinite(n),`url key is neither a note or midi pitch: ${r}`),wo(r)){let o=new ve(this.context,r).toMidi();e[o]=t.urls[r]}else he(n)&&isFinite(n)&&(e[n]=t.urls[n])}),this._buffers=new Dn({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(Ve.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=dh(new ve(this.context,n).toFrequency()),s=Math.round(o),a=o-s,c=this._findClosest(s),u=s-c,h=this._buffers.get(u),l=Bi(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),Gt(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 ve(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),Gt(e)?(Y(Gt(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(wo(t)||isFinite(t),`note must be a pitch or midi: ${t}`),wo(t)){let n=new ve(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([Me(0)],ja.prototype,"attack",void 0);ye([Me(0)],ja.prototype,"release",void 0);var Vn=class i extends L{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 Ma({context:this.context}),this.a=new X({context:this.context,gain:0}),this.b=new X({context:this.context,gain:0}),this.output=new X({context:this.context}),this._internalChannels=[this.a,this.b],this.fade=new it({context:this.context,units:"normalRange",value:t.fade}),U(this,"fade"),this.context.getConstant(1).connect(this._panner),this._panner.connect(this._split),this._panner.channelCount=1,this._panner.channelCountMode="explicit",le(this._split,this.a.gain,0),le(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(L.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 De=class extends L{constructor(t){super(t),this.name="Effect",this._dryWet=new Vn({context:this.context}),this.wet=this._dryWet.fade,this.effectSend=new X({context:this.context}),this.effectReturn=new X({context:this.context}),this.input=new X({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],U(this,"wet")}static getDefaults(){return Object.assign(L.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 jo=class i extends L{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",U(this,"pan")}static getDefaults(){return Object.assign(L.getDefaults(),{pan:0,channelCount:1})}dispose(){return super.dispose(),this._panner.disconnect(),this.pan.dispose(),this}};var Qf="bit-crusher",rv=`
191
191
  class BitCrusherWorklet extends SingleIOProcessor {
192
192
 
193
193
  static get parameterDescriptors() {
@@ -206,8 +206,8 @@
206
206
  return val;
207
207
  }
208
208
  }
209
- `;Ma(jf,B_);var pi=class i extends L{constructor(){let t=w(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(L.getDefaults(),{channels:2})}dispose(){return super.dispose(),this._merger.disconnect(),this}};var srt=[1557/44100,1617/44100,1491/44100,1422/44100,1277/44100,1356/44100,1188/44100,1116/44100];var mrt=[1687/25e3,1601/25e3,2053/25e3,2251/25e3];var ja=class i extends Me{constructor(){let t=w(i.getDefaults(),arguments,["decay"]);super(t),this.name="Reverb",this._convolver=this.context.createConvolver(),this.ready=Promise.resolve();let e=this.toSeconds(t.decay);Vt(e,.001),this._decay=e;let r=this.toSeconds(t.preDelay);Vt(r,0),this._preDelay=r,this.generate(),this.connectEffect(this._convolver)}static getDefaults(){return Object.assign(Me.getDefaults(),{decay:1.5,preDelay:.01})}get decay(){return this._decay}set decay(t){t=this.toSeconds(t),Vt(t,.001),this._decay=t,this.generate()}get preDelay(){return this._preDelay}set preDelay(t){t=this.toSeconds(t),Vt(t,0),this._preDelay=t,this.generate()}generate(){return ft(this,void 0,void 0,function*(){let t=this.ready,e=new lr(2,this._decay+this._preDelay,this.context.sampleRate),r=new Pi({context:e}),n=new Pi({context:e}),o=new pi({context:e});r.connect(o,0,0),n.connect(o,0,1);let s=new $({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(nt),yield t,this._convolver.buffer=(yield a).get(),this})}dispose(){return super.dispose(),this._convolver.disconnect(),this}};var Bn=class i extends L{constructor(){let t=w(i.getDefaults(),arguments,["solo"]);super(t),this.name="Solo",this.input=this.output=new $({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(L.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}};Bn._allSolos=new Map;Bn._soloed=new Map;var Pa=class i extends L{constructor(){let t=w(i.getDefaults(),arguments,["pan","volume"]);super(t),this.name="PanVol",this._panner=this.input=new jo({context:this.context,pan:t.pan,channelCount:t.channelCount}),this.pan=this._panner.pan,this._volume=this.output=new Xe({context:this.context,volume:t.volume}),this.volume=this._volume.volume,this._panner.connect(this._volume),this.mute=t.mute,U(this,["pan","volume"])}static getDefaults(){return Object.assign(L.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 gh=class i extends L{constructor(){let t=w(i.getDefaults(),arguments,["volume","pan"]);super(t),this.name="Channel",this._solo=this.input=new Bn({solo:t.solo,context:this.context}),this._panVol=this.output=new Pa({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),U(this,["pan","volume"])}static getDefaults(){return Object.assign(L.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 $({context:this.context})),i.buses.get(t)}send(t,e=0){let r=this._getBus(t),n=new $({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}};gh.buses=new Map;var tat=Ht().transport;var eat=Ht().destination,rat=Ht().destination;var iat=Ht().listener;var nat=Ht().draw;var oat=Ht();var yh=class{constructor(){d(this,"audioSource");try{let t=new ja({decay:3,wet:.4}).toDestination(),e=new Ur(800,"lowpass").connect(t);this.audioSource=new Ea(Rr,{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=Xs(r),this.audioSource.triggerAttackRelease(t,e))}catch(n){}}stop(){try{this.audioSource&&this.audioSource.releaseAll()}catch(t){}}},bh=new yh;_i();function H_(i){return typeof i=="string"?i:(typeof i=="number"&&(i=W.getChromaticNote(i)),i.format(0,0))}var Fa=[bh],Gn=bh,Z_=(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"),X_=1,Ba=!1;function $_(){return Fa.map(i=>i.getName())}function Q_(){return Gn.getName()}function K_(i){(y.isArray(i)?i:[i]).forEach(t=>{if(!H.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);Fa.some(e=>e.getName()===t.getName())?console.warn(`Instrument "${t.getName()}" already added!`):Fa.push(t),Ff(t.getName())})}function Ff(i){if(i===Gn.getName())return;Gn.stop();let t=Fa.find(e=>e.getName()===i);t&&(Gn=t)}function Ga(i,t,e){Ba||Gn.playNote(H_(i),t!=null?t:Z_,e!=null?e:X_)}function Va(){Gn.stop()}function J_(){Va(),Ba=!0}function tv(){Ba=!1}function ev(){return Ba}var Dh={};Qi(Dh,{Annotation:()=>Wn,Arpeggio:()=>mi,Clef:()=>Gi,Connective:()=>fi,DivRect:()=>xh,DocumentBuilder:()=>br,DynamicsAnnotation:()=>Un,Fermata:()=>qo,Label:()=>Wo,LyricsAlign:()=>Vo,LyricsHyphen:()=>qn,MAccidental:()=>zo,MArpeggio:()=>Qo,MBarLineLeft:()=>cs,MBarLineRight:()=>as,MBeamGroup:()=>ds,MConnective:()=>gs,MDocument:()=>Hr,MEnding:()=>hs,MExtensionLine:()=>fs,MFermata:()=>ms,MHeader:()=>Is,MImage:()=>Uo,MLyrics:()=>ys,MMeasure:()=>xs,MNoteGroup:()=>ts,MPlaybackButtons:()=>Eh,MPlayer:()=>Kn,MRenderContext:()=>zc,MRenderer:()=>Mh,MRest:()=>Ko,MRhythmColumn:()=>is,MScoreRow:()=>vs,MScoreRowGroup:()=>_s,MSpecialText:()=>ns,MStaff:()=>As,MStaffBarLine:()=>us,MStaffBeamGroup:()=>ps,MStaffNoteGroup:()=>es,MStaffRest:()=>Jo,MStaffSignature:()=>Xo,MTab:()=>Cs,MTabNoteGroup:()=>rs,MTabRhythm:()=>bs,MTabSignature:()=>$o,MText:()=>Yo,MusicInterface:()=>xt,Navigation:()=>gr,NoteAnchor:()=>$e,PlayState:()=>Ua,ScoreEvent:()=>ws,ScoreObjectEvent:()=>qi,ScoreStaffPosEvent:()=>Vi,StaffPreset:()=>Vn,Stem:()=>mr,TempoAnnotation:()=>zn,TieType:()=>fr,VerticalPosition:()=>Go,getStringNumbers:()=>qa,getVerseNumbers:()=>Bf,getVoiceIds:()=>ne,isStringNumber:()=>Bo,isVerseNumber:()=>Wa,isVoiceId:()=>ye,validateStringNumber:()=>rv,validateVerseNumber:()=>iv,validateVoiceId:()=>Fo});var xh=class i{constructor(...t){d(this,"left");d(this,"anchorX");d(this,"right");d(this,"top");d(this,"anchorY");d(this,"bottom");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 DivRect args: ${t}`)}static create(t,e,r,n){return new i(t,t+r,e,e+n)}static createCentered(t,e,r,n){return new i(t-r/2,t,t+r/2,e-n/2,e,e+n/2)}static createSections(t,e,r,n){return new i(-t,0,e,-r,0,n)}get centerX(){return this.anchorX}set centerX(t){this.anchorX=t}get centerY(){return this.anchorY}set centerY(t){this.anchorY=t}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 i.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 i.equalsEdges(this,t)}static equalsFrame(t,e){return i.equalsEdges(t,e)}copy(){return new i(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.copy().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.copy().expandInPlace(t)}clipInPlace(t){return this.left=Math.max(this.left,t.left),this.right=Math.min(this.right,t.right),this.anchorX=H.Math.clamp(this.anchorX,this.left,this.right),this.top=Math.max(this.top,t.top),this.bottom=Math.min(this.bottom,t.bottom),this.anchorY=H.Math.clamp(this.anchorY,this.top,this.bottom),this}clipCopy(t){return this.copy().clipInPlace(t)}scaleInPlace(t,e){return e=e!=null?e:t,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){return this.copy().scaleInPlace(t,e)}getRect(){return this}};var Vn=(s=>(s.Treble="treble",s.Bass="bass",s.Grand="grand",s.GuitarTreble="guitarTreble",s.GuitarTab="guitarTab",s.GuitarCombined="guitarCombined",s))(Vn||{}),Gi=(e=>(e.G="G",e.F="F",e))(Gi||{});function ne(){return[0,1,2,3]}function ye(i){return y.isIncluded(i,ne())}function Fo(i){if(ye(i))return i;throw new N(6,`Voice id ${i} is invalid!`)}function qa(){return[1,2,3,4,5,6]}function Bo(i){return y.isIncluded(i,qa())}function rv(i){if(Bo(i))return i;throw new N(6,`String number ${i} is invalid!`)}function Bf(){return[1,2,3]}function Wa(i){return y.isIncluded(i,Bf())}function iv(i){if(Wa(i))return i;throw new N(6,`Verse number ${i} is invalid!`)}var mr=(r=>(r.Auto="auto",r.Up="up",r.Down="down",r))(mr||{}),mi=(e=>(e.Up="up",e.Down="down",e))(mi||{}),fr=(e=>(e.Stub="stub",e.ToMeasureEnd="toMeasureEnd",e))(fr||{}),$e=(o=>(o.Auto="auto",o.Above="above",o.Center="center",o.Below="below",o.StemTip="stemTip",o))($e||{}),fi=(r=>(r.Tie="tie",r.Slur="slur",r.Slide="slide",r))(fi||{}),Go=(n=>(n.Auto="auto",n.Above="above",n.Below="below",n.Both="both",n))(Go||{}),Vo=(r=>(r.Left="left",r.Center="center",r.Right="right",r))(Vo||{}),qn=(e=>(e.Hyphen="-",e.Extender="---",e))(qn||{}),qo=(e=>(e.AtNote="atNote",e.AtMeasureEnd="atMeasureEnd",e))(qo||{}),gr=(h=>(h.DC_al_Fine="D.C. al Fine",h.DC_al_Coda="D.C. al Coda",h.DS_al_Fine="D.S. al Fine",h.DS_al_Coda="D.S. al Coda",h.Coda="Coda",h.toCoda="toCoda",h.Segno="Segno",h.Fine="Fine",h.StartRepeat="startRepeat",h.EndRepeat="endRepeat",h.Ending="ending",h))(gr||{}),Wn=(e=>(e.Dynamics="dynamics",e.Tempo="tempo",e))(Wn||{}),Un=(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))(Un||{}),zn=(r=>(r.accel="accel.",r.rit="rit.",r.a_tempo="a tempo",r))(zn||{}),Wo=(e=>(e.Note="note",e.Chord="chord",e))(Wo||{}),Ua=(r=>(r[r.Playing=0]="Playing",r[r.Paused=1]="Paused",r[r.Stopped=2]="Stopped",r))(Ua||{});var za=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,"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 Gf={DrawDebugRects:!1,DisableBeams:!1},at={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};var Vf="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 qf="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 nv="#55cc55",ov="#55cc55",sv="#44aa44",Ah=new pt([[0,{src:qf}],[1,{src:Vf}]]);function av(i,t){return!i&&!t?!0:!i||!t?!1:i.scoreRow===t.scoreRow&&i.diatonicId===t.diatonicId}function cv(i,t){return!i&&!t?!0:!i||!t?!1:i.length===t.length&&i.every((e,r)=>e===t[r])}var Ya=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=Ps.FontSize*at.DocumentScale*this.devicePixelRatio,this.unitSize=this.fontSize*.3,this._lineWidth=this.unitSize*.2,Ah.forEach(e=>{if(e.finished!==!0){let r=new Image;r.src=e.src,r.onload=()=>{e.img=r,this.finishImageAsset(e)},r.onerror=()=>{throw this.finishImageAsset(e),new N(6,"Failed to load image: "+e.src)}}}),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()}finishImageAsset(t){t.finished=!0,Ah.every(r=>r.finished===!0)&&this.onLoad()}getImageAsset(t){var e;return(e=Ah.get(t))==null?void 0:e.img}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 il(t.offsetX,t.offsetY)}updateCurStaffPos(t,e){let r=!av(t,this.curStaffPos);if(r&&this.curStaffPos&&this.scoreEventListener){let{scoreRow:n,diatonicId:o}=this.curStaffPos;this.scoreEventListener(new Vi("leave",this.getMusicInterface(),n.getMusicInterface(),o))}if(r&&t&&this.scoreEventListener){let{scoreRow:n,diatonicId:o}=t;this.scoreEventListener(new Vi("enter",this.getMusicInterface(),n.getMusicInterface(),o))}if(e&&t&&this.scoreEventListener){let{scoreRow:n,diatonicId:o}=t;this.scoreEventListener(new Vi("click",this.getMusicInterface(),n.getMusicInterface(),o))}return this.curStaffPos=t,r}updateCurObjects(t,e){let r=!cv(t,this.curObjects);return r&&this.curObjects&&this.curObjects.length>0&&this.scoreEventListener&&this.scoreEventListener(new qi("leave",this.getMusicInterface(),this.curObjects.map(n=>n.getMusicInterface()))),r&&t&&t.length>0&&this.scoreEventListener&&this.scoreEventListener(new qi("enter",this.getMusicInterface(),t.map(n=>n.getMusicInterface()))),e&&t&&t.length>0&&this.scoreEventListener&&this.scoreEventListener(new qi("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}onLoad(){this.doc&&(this.doc.requestFullLayout(),this.draw())}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(nv),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(ov),this.strokeRect(e.left,e.top,e.width,e.height)}drawPlayCursor(){let{cursorRect:t}=this;t&&this.color(sv).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(){var t;(t=this.ctx)==null||t.clearRect(0,0,this.ctx.canvas.width,this.ctx.canvas.height)}drawDebugRect(t){Gf.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*at.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}=Tt.get(Lr(t+"n")),n=0,o=0,s=0,a=0;if(Tt.equals(t,"1n"))n=e,o=e,s=0,a=e;else if(Tt.equals(t,"2n"))n=e,o=e,s=e,a=0;else if(Tt.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}=Tt.get(Lr(t+"n"));if(Tt.equals(t,"1n"))this.fillRect(e-n,r,n*2,n);else if(Tt.equals(t,"2n"))this.fillRect(e-n,r-n,n*2,n);else if(Tt.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 l=o-u*2;this.beginPath(),this.moveTo(a(l-2.5),c(l-2.5)),this.quadraticCurveTo(a(l-.5)+n*.25,c(l-1.5),a(l-1.5)-n*1.5,c(l-1.5)),this.stroke(),this.beginPath(),this.arc(a(l-2)-n*1.5,c(l-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 H.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,l=e+(n-e)*s;return this.ctx.beginPath(),this.ctx.moveTo(a,c),this.ctx.lineTo(u,l),this.ctx.stroke(),this}drawBrace(t,e){return this.drawBracket(t,e==="left"?"{":"}")}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 Ha=class{constructor(t){this.measure=t;d(this,"accidentalByDiatonicId",[])}getAccidentalFromKeySignature(t){let r=this.measure.getKeySignature().getOrderedAccidentalNotes().find(n=>n.diatonicClass===W.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 Za=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 Uo(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 Wi=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 zo(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 uv=.5,st=class extends tt{constructor(e,r,n,o){var a,c,u,l,h,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=(l=s.italic)!=null?l:!1,this.boxed=(h=s.boxed)!=null?h:!1,this.padding=(p=s.padding)!=null?p:this.boxed?uv: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 Yo(this)}getMusicInterface(){return this.mi}getText(){return this.text}updateAnchorX(e){this.anchorX=e;let{width:r}=this.rect;this.rect.left=this.rect.anchorX-r*e,this.rect.right=this.rect.anchorX+r*(1-e)}updateAnchorY(e){this.anchorY=e;let{height:r}=this.rect;this.rect.top=this.rect.anchorY-r*e,this.rect.bottom=this.rect.anchorY+r*(1-e)}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,l=u+Math.max(...this.lineWidths)+u,h=u+this.lineHeight*this.textLines.length+u;(this.boxed==="square"||this.boxed==="circle")&&(h=l=Math.max(h,l)),this.rect=G.createSections(l*n,l*(1-n),h*o,h*(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 h=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-h*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 Ho=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 Xo(this)}getMusicInterface(){return this.mi}updateClefImage(e,r){if(r){let n=e.getImageAsset(this.staff.clefImageAsset);this.clefImage=n?new Za(this,n,0,.5,.1):void 0,this.eightBelowClef=this.clefImage&&this.staff.isOctaveDown?new st(this,"8",.5,0):void 0}else this.clefImage=void 0}updateMeasureNumber(e){if(e){let r=this.measure.getMeasureNumber().toString();this.measureNumber=new st(this,r,0,1)}else this.measureNumber=void 0}updateKeySignature(e){if(e){let{measure:r}=this,n=r.getPrevMeasure(),o=n?n.getKeySignature():void 0,s=r.getKeySignature();this.ksNeutralizeAccidentals=[],this.ksNewAccidentals=[],o&&!tr.equals(s,o)&&o.getOrderedAccidentalNotes().forEach(a=>{this.ksNeutralizeAccidentals.push(new Wi(this,this.getAccidentalDiatonicId(a),0))}),s.getOrderedAccidentalNotes().forEach(a=>{this.ksNewAccidentals.push(new Wi(this,this.getAccidentalDiatonicId(a),a.accidental))})}else this.ksNeutralizeAccidentals=[],this.ksNewAccidentals=[]}updateTimeSignature(e){if(e){let r=this.measure.getTimeSignature(),n=r.beatCount.toString();this.beatCountText=new st(this,{text:n,scale:1.4},.5,.5);let o=r.beatSize.toString();this.beatSizeText=new st(this,{text:o,scale:1.4},.5,.5)}else this.beatCountText=this.beatSizeText=void 0}updateTempo(e){if(e){let r=Zs(this.measure.getTempo());this.tempoText=new st(this,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 W.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,l,h,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),(l=this.beatSizeText)==null||l.layout(e);let c=Math.max((p=(h=this.beatCountText)==null?void 0:h.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(l=>l.offset(e,r)),this.ksNewAccidentals.forEach(l=>l.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)}},Zo=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 $o(this)}getMusicInterface(){return this.mi}updateMeasureNumber(e){if(e){let r=this.measure.getMeasureNumber().toString();this.measureNumber=new st(this,r,0,1)}else this.measureNumber=void 0}updateTimeSignature(e){if(e){let r=this.measure.getTimeSignature(),n=r.beatCount.toString();this.beatCountText=new st(this,{text:n,scale:1.4},.5,.5);let o=r.beatSize.toString();this.beatSizeText=new st(this,{text:o,scale:1.4},.5,.5)}else this.beatCountText=this.beatSizeText=void 0}updateTempo(e){if(e){let r=Zs(this.measure.getTempo());this.tempoText=new st(this,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,l,h,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),(l=this.beatSizeText)==null||l.layout(e);let c=Math.max((p=(h=this.beatCountText)==null?void 0:h.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 Xa=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 Qo(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 hv(i){return typeof i=="number"?W.getChromaticNote(i).diatonicId:typeof i=="string"?W.getNote(i).diatonicId:i instanceof W?i.diatonicId:void 0}var $a=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 Jo(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))}},Yn=class Yn extends tt{constructor(e,r,n,o,s){var u,l,h,p;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=(l=hv((u=this.options)==null?void 0:u.staffPos))!=null?l:Yn.UndefinedDiatonicId;let a=this.row.getStaves().filter(m=>m.containsVoiceId(this.voiceId));this.setDiatonicId!==Yn.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:"black",this.hide=(p=o==null?void 0:o.hide)!=null?p:!1,this.oldStyleTriplet=s===void 0&&((o==null?void 0:o.triplet)===!0||Tt.get(n).isTriplet);let c=typeof(o==null?void 0:o.dotted)=="number"?o.dotted>0?o.dotted:void 0:(o==null?void 0:o.dotted)===!0?1:void 0;this.rhythmProps=Xt.get(n,c,(s!=null?s:this.oldStyleTriplet)?jr.Triplet:void 0),this.mi=new Ko(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===Yn.UndefinedDiatonicId?e?Tt.equals(this.noteLength,"1n")?e.middleLineDiatonicId+2:e.middleLineDiatonicId:W.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 $a&&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 $a(a,this);u.restRect=e.getRestRect(o);for(let l=0;l<s;l++){let h=at.DotSize*n,p=u.restRect.rightw+(at.RestDotSpace+at.DotSize*n)+l*at.DotSize*n*1.5,m=this.getRestDotVerticalDisplacement(o)*n;u.dotRects.push(G.createCentered(p,m,h,h))}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(Yn,"UndefinedDiatonicId",1/0);var oe=Yn;function lv(i){return y.isEnumValue(i,mi)?i:i===!0?"up":void 0}function dv(i,t){let e=H.Arr.isArray(t)?t:t!==void 0?[t]:[],r=i.map((n,o)=>({note:n,string:e[o]}));return r=H.Arr.removeDuplicates(r,(n,o)=>W.equals(n.note,o.note)).sort((n,o)=>W.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 Qa=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 es(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()}},Ch=class extends tt{constructor(e,r){super(e);this.tab=e;this.noteGroup=r;d(this,"fretNumbers",[]);d(this,"mi");this.mi=new rs(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,p,m;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}=dv(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:"black",this.staccato=(p=s==null?void 0:s.staccato)!=null?p:!1,this.diamond=(m=s==null?void 0:s.diamond)!=null?m:!1,this.arpeggio=lv(s==null?void 0:s.arpeggio),this.oldStyleTriplet=a===void 0&&((s==null?void 0:s.triplet)===!0||Tt.get(o).isTriplet);let l=typeof(s==null?void 0:s.dotted)=="number"?s.dotted>0?s.dotted:void 0:(s==null?void 0:s.dotted)===!0?1:void 0;this.rhythmProps=Xt.get(o,l,(a!=null?a:this.oldStyleTriplet)?jr.Triplet:void 0),this.mi=new ts(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 he||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===oe.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 kt){if(n<0||n>=this.notes.length)throw new N(6,"Invalid noteIndex: "+n);let c=this.staffObjects.find(I=>I.staff===r);if(!c||n<0||n>=c.noteHeadRects.length){let I=this.getRect();return{x:I.anchorX,y:I.bottom}}let u=c.noteHeadRects[n],l=c.stemTip,h=this.stemDir,p=l!==void 0,m=p?h==="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=h==="up"?"above":"below"),o){case"center":return s==="left"?{x:C,y:b}:{x,y:b};case"above":return!p||h==="down"?{x:g,y:S}:{x:s==="left"&&m==="right"?C:s==="right"&&m==="left"?x:g,y:S};case"below":return!p||h==="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:l.anchorY+(h==="up"?-f:f)};default:throw new N(6,"Invalid noteAnchor: "+o)}}else if(r instanceof he){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(),l=s==="right"?u.left:u.right,h,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"?h=(g?u.anchorY+u.bottomh:u.anchorY-u.toph)*p:h=(g?u.anchorY-u.toph:u.anchorY+u.bottomh)*p}else h=u.anchorY+u.bottomh*p;return{x:l,y:h}}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,l;let r=e.staff,n=(c=(a=e.stemTip)==null?void 0:a.anchorX)!=null?c:e.noteHeadRects[0].anchorX,o=(l=(u=e.stemTip)==null?void 0:u.anchorY)!=null?l: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()?at.BeamSeparation:at.FlagSeparation;return(at.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 Qa&&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=>W.equals(c,e))?0:(o=o.slice(s),s=o.findIndex(c=>c.notes.every(u=>!W.equals(u,e))),s>=0&&(o=o.slice(0,s)),H.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,l=at.DotSize*n,h=(this.diamond?at.DiamondNoteHeadSize:at.NoteHeadWidth)*n,p=(this.diamond?at.DiamondNoteHeadSize:at.NoteHeadHeight)*n;this.staffObjects.length=0,o.getStaves().forEach(m=>{if(!m.containsDiatonicId(this.runningDiatonicId)||!m.containsVoiceId(this.voiceId))return;let f=new Qa(m,this),g=m,b=m;this.notes.forEach((A,_)=>{var j;let E=_===0,V=_===this.notes.length-1,M=(j=m.getActualStaff(A.diatonicId))!=null?j:m,R=this.isNoteDisplaced[_]?h*(s==="down"?-1:1):0,P=M.getDiatonicIdY(A.diatonicId),D=M.isLine(A.diatonicId);E&&s==="up"&&(g=M),V&&s==="up"&&(b=M),E&&s==="down"&&(b=M),V&&s==="down"&&(g=M);let k=f.noteHeadRects[_]=G.createCentered(R,P,h,p);if(M.addObject(k),r.needAccidental(A)){let q=f.accidentals[_]=new Wi(this,A.diatonicId,A.accidental,this.color);q&&(q.layout(e),q.setAnchor(-k.leftw-n*at.NoteAccSpace-q.getRect().rightw,P)),M.addObject(q)}for(let q=0;q<a;q++){let K=k.right+at.NoteDotSpace*n+l/2+q*l*1.5,Z=P+this.getDotVerticalDisplacement(m,A.diatonicId,s)*n,B=G.createCentered(K,Z,l,l);f.dotRects.push(B),M.addObject(B)}if(this.staccato){if(s==="up"&&E){let q=R,K=P+n*(D?3:2),Z=G.createCentered(q,K,l,l);f.dotRects.push(Z),g.addObject(Z)}else if(s==="down"&&V){let q=R,K=P-n*(D?3:2),Z=G.createCentered(q,K,l,l);f.dotRects.push(Z),g.addObject(Z)}}});let x=f.noteHeadRects[0].anchorY,C=f.noteHeadRects[f.noteHeadRects.length-1].anchorY,S=s==="up"?h/2:-h/2,T=this.getStemHeight(e),I=s==="up"?C-T:x+T,v=s==="up"?x:C;if(u&&(f.stemTip=new G(S,S,I,I),f.stemBase=new G(S,S,v,v),b.addObject(f.stemTip),g.addObject(f.stemBase)),!this.hasBeamCount()){let A=c===0?0:at.FlagWidth*n,_=c===0?0:at.FlagHeight*n;for(let E=0;E<c;E++){let V=E*n*at.FlagSeparation,M=f.flagRects[E]=s==="up"?new G(S,S+A,I+V,I+_+V):new G(S,S+A,I-_-V,I-V);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 Ch(m,this);this.notes.forEach((g,b)=>{let x=this.runningStringNumbers[b];if(y.isIntegerBetween(x,1,6)){let C=g.chromaticId-m.getTuningStrings()[x-1].chromaticId,S=C<0?"red":"black",T=new st(this,{text:String(C),color:S,bgcolor:"white"},.5,.5);T.layout(e),T.setAnchor(this.col.getRect().anchorX,m.getStringY(x-1)),f.fretNumbers.push(T)}}),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 zr=class extends tt{constructor(e,r){super(e);this.measure=e;this.positionTicks=r;d(this,"voiceSymbol",new Ar);d(this,"lyricsObject",new Fs);d(this,"minDiatonicId");d(this,"maxDiatonicId");d(this,"staffMinDiatonicId",new pt);d(this,"staffMaxDiatonicId",new pt);d(this,"arpeggioDir");d(this,"arpeggios",[]);d(this,"playerProps");d(this,"needLayout",!0);d(this,"shapeRects",[]);d(this,"mi");this.playerProps=new Hn(this),this.mi=new is(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 oe){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){Fo(e),this.voiceSymbol.set(e,r),r instanceof oe&&!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=W.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 ne().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)=>W.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(l=>{l.layout(e,r);let h=l.getRect();o=Math.max(o,h.leftw),s=Math.max(s,h.rightw)}),this.arpeggioDir!==void 0){this.arpeggios=n.getNotationLines().map(h=>new Xa(this,h,this.getArpeggioDir())),this.arpeggios.forEach(h=>h.layout(e));let l=this.arpeggios.map(h=>h.getRect().width).reduce((h,p)=>Math.max(h,p))+e.unitSize;this.arpeggios.forEach(h=>{h.setAnchor(-o-l/2,h.line.getRect().anchorY),h.line.addObject(h),this.measure.addStaticObject(h.line,h)}),o+=l}else this.arpeggios=[];let a=this.voiceSymbol.mapToArray(l=>l.rhythmProps.noteSize),c=Math.min(8,Math.max(1,...a)),u=Math.ceil(8/c)*at.NoteHeadWidth*e.unitSize*.75;o=Math.max(o,u/2),s=Math.max(s,u/2),o*=at.ColumnWidthScale,s*=at.ColumnWidthScale,this.rect.left=-o,this.rect.anchorX=0,this.rect.right=s,this.requestRectUpdate(),this.voiceSymbol.forEach(l=>l.updateAccidentalState(r)),this.row.getStaves().forEach(l=>{let h,p;this.voiceSymbol.forEach(m=>{if(m.visibleInStaff(l)){if(m instanceof At)h=h===void 0?m.minDiatonicId:Math.min(h,m.minDiatonicId),p=p===void 0?m.maxDiatonicId:Math.max(p,m.maxDiatonicId);else if(m instanceof oe){let f=m.getDiatonicId(l);h=h===void 0?f:Math.min(h,f),p=p===void 0?f:Math.max(p,f)}}}),h!==void 0?this.staffMinDiatonicId.set(l,h):this.staffMinDiatonicId.delete(l),p!==void 0?this.staffMaxDiatonicId.set(l,p):this.staffMaxDiatonicId.delete(l)})}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(l=>{if(l.layoutGroupId===o.layoutGroupId){let h=l.getRect().rightw-u.getRect().rightw;this.rect.left-=Math.max(h+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(l=>{if(l.layoutGroupId===o.layoutGroupId){let h=l.getRect().leftw-u.getRect().leftw;this.rect.right+=Math.max(c+h,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){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 Mr=class Mr extends tt{constructor(e,r){super(e);this.text=r;d(this,"components",[]);d(this,"mi");switch(this.text){case Mr.Coda:this.components=[new st(this,{text:"\u{1D10C}",scale:1.7},.5,.3),new st(this," Coda",0,1)];break;case Mr.toCoda:this.components=[new st(this,"toCoda ",1,1),new st(this,{text:"\u{1D10C}",scale:1.7},.5,.3)];break;case Mr.Segno:this.components=[new st(this,{text:"\u{1D10B}",scale:1.1},.5,1)];break;default:this.components=[];break}this.mi=new ns(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 Mr.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 Mr.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(Mr,"toCoda","\u{1D10C} toCoda"),d(Mr,"Coda","Coda \u{1D10C}"),d(Mr,"Segno","\u{1D10B}");var yr=Mr;function os(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 yr.Segno;case"Coda":return yr.Coda;case"toCoda":return yr.toCoda;default:return i[0].toUpperCase()+i.substring(1)}}function _h(i){return y.isEnumValue(i,Un)}function ss(i){if(/^(p+|f+|m|mp|mf)$/.test(i)){let t=.5-H.Str.charCount(i,"p")*.1+H.Str.charCount(i,"f")*.1;return H.Math.clamp(t,0,1)}else return}function vh(i){return y.isEnumValue(i,zn)}function Wf(i){return y.isEnumValue(i,Un)?"dynamics":y.isEnumValue(i,zn)?"tempo":void 0}function pv(i){switch(i){case"bottom":return .8;case"middle":return .5}}function mv(i){return _h(i)?2:vh(i)?1:0}var Ui=class extends za{constructor(e,r,n,o,s,a){super(e);d(this,"length");d(this,"visible");d(this,"lineStyle");d(this,"linePos");d(this,"startColumn");d(this,"context");if(this.length=n,this.visible=o,this.lineStyle=s,this.linePos=a,this.startColumn=r,this.context=e instanceof st?mv(e.getText()):0,e instanceof st)e.updateAnchorY(pv(a));else throw new N(6,"Update anchor's y-coordinate is only implemented for text objects.")}isVisible(){return this.visible}getLineStyle(){return this.lineStyle}getLinePos(){return this.linePos}getSpanBreakText(e,r){if(e===e.measure.getColumn(0)){let n=e.measure.getPrevMeasure();if(n){if(n.hasEndSection()||n.hasEndSong())return"section-break";let o=["endRepeat","ending"];for(let s=0;s<o.length;s++)if(n.hasNavigation(o[s]))return"section-break"}}if(r===1){let n=e.getAnchoredLayoutObjects();for(let o=0;o<n.length;o++){let s=n[o].getTextContent();if(s&&vh(s))return s}}else if(r===2){let n=e.getAnchoredLayoutObjects();for(let o=0;o<n.length;o++){let s=n[o].getTextContent();if(s&&_h(s))return s}}}getExtensionRangeInfo(){let{startColumn:e,length:r,context:n}=this,o=[e];if(r<=0)return{startColumn:e,endColumn:e,columnRange:o,extensionBreakText:void 0};let s=r,a=e;for(;;){let c=a.getNextColumn();if(!c)return{startColumn:e,endColumn:a,columnRange:o,extensionBreakText:void 0};let u=this.getSpanBreakText(c,n);if(u!==void 0)return{startColumn:e,endColumn:a,columnRange:o,extensionBreakText:u};if(s-=a.getTicksToNextColumn(),s<=0)return{startColumn:e,endColumn:a,columnRange:o,extensionBreakText:void 0};a=c,o.push(a)}}};var fv=2,gv=2,yv=.5,bv=.5;function xv(i,t){let e=Xt.get(t.options.beatLength,t.options.dotCount).ticks,r=t.beatsPerMinute*e;return 60*i/r}function Ih(){return ss("m")}function Av(i){return i*1.25}var Cv=.5,Hn=class{constructor(t){this.col=t;d(this,"speed");d(this,"volume");this.speed=1,this.volume=Ih()}get measure(){return this.col.measure}reset(){this.speed=1,this.volume=Ih()}setSpeed(t){this.speed=t}getSpeed(){return this.speed}getTempo(){let t=H.Math.clamp(this.getSpeed(),.1,10);return mu(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 Yr)return this.measure.getMeasureTicks()/2;{let r=ne().map(n=>t.getVoiceSymbol(n)).filter(n=>!!n).map(n=>n.rhythmProps.ticks);return r.length===0?0:H.Math.sum(r)/r.length}}},Ka=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(),l=e.getEndRepeatPlayCount()-1,h=((a=e.getNextMeasure())==null?void 0:a.hasNavigation("ending"))===!0;u<=l||h?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=Ih(),r=new pt,n=new pt,o=(a,c)=>r.getOrCreate(a,[]).push(c),s=(a,c)=>n.getOrCreate(a,[]).push(c);this.playerColumnSequence.forEach(a=>{if(!(a instanceof zr))return;a.getAnchoredLayoutObjects().forEach(l=>{var m;let h=(m=l.getTextContent())!=null?m:"",p;if(h==="a tempo")t=1;else if((p=ss(h))!==void 0)e=p;else if(l.musicObj.getLink()instanceof Ui){let f=l.musicObj.getLink(),{columnRange:g,extensionBreakText:b}=f.getExtensionRangeInfo(),x=H.Math.sum(g.map(C=>C.getTicksToNextColumn()));switch(h){case"accel.":{let C=t,S=C*fv,T=0;g.forEach(I=>{T+=I.getTicksToNextColumn(),o(I,C+(S-C)*T/x)});break}case"rit.":{let C=t,S=C/gv,T=0;g.forEach(I=>{T+=I.getTicksToNextColumn(),o(I,C+(S-C)*T/x)});break}case"cresc.":{let C=e,S=C+yv;b&&(p=ss(b))!==void 0&&p>C&&(S=p);let T=0;g.forEach(I=>{T+=I.getTicksToNextColumn(),s(I,C+(S-C)*T/x)});break}case"decresc.":case"dim.":{let C=e,S=C-bv;b&&(p=ss(b))!==void 0&&p<C&&(S=p);let T=0;g.forEach(I=>{T+=I.getTicksToNextColumn(),s(I,C+(S-C)*T/x)});break}}}});let c=r.getOrDefault(a,[]);c.length>0&&(t=H.Math.sum(c)/c.length);let u=n.getOrDefault(a,[]);u.length>0&&(e=H.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=xv(s,a);return Math.max(0,c)},r=t.getPlayerProps().getTempo(),n=t.getPlayerProps().getFermataHoldTicks(),o;t instanceof Yr?o=e(n,r):(t.getPlayerNotes().forEach((a,c)=>{let u=t.hasArpeggio()?Xt.get("32n").ticks*c:0,l=e(a.ticks+n-u,r);if(l>0){a.staccato&&(l=Math.min(e(Xt.get("8n").ticks,r)/2,l/2));let h=Av(t.getPlayerProps().getVolume());if(a.slur==="slurred"&&(h*=Cv),u>0){let p=e(u,r);window.setTimeout(()=>Ga(a.note,l,h),p*1e3)}else Ga(a.note,l,h)}}),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 nu(r,n,0,o)}};var Sh=class extends tt{constructor(e,r){super(r);this.barLine=e;this.line=r;d(this,"vlines",[]);d(this,"dots",[]);d(this,"mi");r.addObject(this),this.mi=new us(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)}},Ja=class extends tt{constructor(e){super(e);this.measure=e;d(this,"notationLineObjects",[]);d(this,"notationLineObjectsByGrp",new pt);d(this,"barLineType",0)}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,l=.7*r,p=at.DotSize*r/2;this.notationLineObjects=[],this.notationLineObjectsByGrp.clear(),a.getRowGroups().forEach(m=>{m.lines.forEach(f=>{let g=new Sh(this,f);this.notationLineObjects.push(g),this.notationLineObjectsByGrp.getOrCreate(m,[]).push(g);let b,x,C=(T,I)=>{g.vlines.push({left:T,width:I})},S=T=>{for(let I=-1;I<=1;I+=2){let v=b+I*x;g.dots.push({x:T,y:v,r:p})}};switch(f instanceof kt?(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-l-c,c),C(-c,c);break;case 3:C(-c-l-u,c),C(-u,u);break;case 4:C(0,u),C(u+l,c),S(u+l+c+l+p);break;case 5:C(-c-l-u,c),C(-u,u),S(-c-l-u-l-p);break;case 6:C(-u/2,u),C(-u/2-l-c,c),C(u/2+l,c),S(-u/2-l-c-l-p),S(u/2+l+c+l+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){if(this.barLineType!==0){e.drawDebugRect(this.getRect()),e.color("black");for(let[r,n]of this.notationLineObjectsByGrp)n.forEach((o,s)=>{if(o.dots.forEach(a=>e.fillCircle(a.x,a.y,a.r)),s===0){let{top:a,height:c}=o.barLine.getRect();o.vlines.forEach(u=>e.fillRect(u.left,a,u.width,c))}})}}},gi=class extends Ja{constructor(e){super(e);d(this,"mi");this.mi=new cs(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}},Yr=class extends Ja{constructor(e){super(e);d(this,"playerProps");d(this,"mi");this.playerProps=new Hn(this),this.mi=new as(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){super(e);this.measure=e;this.passages=r;d(this,"endingText");d(this,"shapeRects",[]);d(this,"mi");if(this.mi=new hs(this),y.isIntegerGte(r.length,1)){if(!this.passages.every(o=>y.isIntegerGte(o,1)))throw new N(6,"Invalid passages: "+this.passages)}else throw new N(6,"Passages is empty.");this.passages.sort((o,s)=>o-s);let n=this.passages.map(o=>o+".").join("");this.endingText=new st(this,n,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("black").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 _v=(i,t)=>{let e=at.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}},ls=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)}},wh=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 ps(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())}},yi=class{constructor(t,e){this.beamGroup=t;this.message=e}},Yi=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 ds(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=>Tt.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 yi(this,"Beam has zero left or right beam count!")}),e.some(o=>o.voiceId!==e[0].voiceId))throw this.type===0?new yi(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 yi(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 yi)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,jr.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,jr.Triplet),3}catch(r){if(r instanceof yi)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 yi)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 P,D;if(!c)return;let l=a.map(k=>{var j;return(j=k[u])==null?void 0:j.x}),h=a.map(k=>{var j;return(j=k[u])==null?void 0:j.y}),p=a.map(k=>{var j;return(j=k[u])==null?void 0:j.staff}),m=a.map(k=>{var j;return(j=k[u])==null?void 0:j.stemHeight}),f=r[0],g=l[0],b=h[0],x=p[0],C=r[r.length-1],S=l[l.length-1],T=h[h.length-1],I=p[h.length-1];if(g===void 0||b===void 0||x===void 0||S===void 0||T===void 0||I===void 0)return;let v=(P=m[0])!=null?P:0,A=(D=m[m.length-1])!=null?D:0;if(s!==2){let k=v<A?Math.sqrt(A-v):0,j=A<v?Math.sqrt(v-A):0;o==="up"&&(k*=-1,j*=-1),k!==0&&(b+=k,h[0]+=k),j!==0&&(T+=j,h[h.length-1]+=j)}let _=n*2*(o==="up"?-1:1),E=(T+b)/2,V=_v(S-g,T-b)/2;b=E-V,T=E+V;let M=0;h.forEach((k,j)=>{let q=l[j];if(q!==void 0&&k!==void 0){let K=H.Math.interpolateY(g,b,S,T,q),Z=k-K;o==="up"&&Z<0?M=Math.min(M,Z):o==="down"&&Z>0&&(M=Math.max(M,Z))}}),b+=M,T+=M,h=h.map(k=>k===void 0?void 0:k+M);let R=new wh(c,this);if(s===2){let k=n/(S-g),j=H.Math.interpolateCoord(g,b+_,S,T+_,-k),q=H.Math.interpolateCoord(g,b+_,S,T+_,1+k);R.points.push(new ls(x,this,f,j.x,j.y)),R.points.push(new ls(I,this,C,q.x,q.y)),R.tupletNumberOffsetY=0}else if(s===0||s===1){M*=.5;let k=e._lineWidth*at.BeamThickness,j=q=>{let K=r[q];if(K instanceof At){let Z=K instanceof At?Math.max(K.getLeftBeamCount(),K.getRightBeamCount()):0;return at.BeamSeparation*n*(o==="up"?Z-1:0)}else return 0};r.forEach((q,K)=>{let Z=p[K],B=l[K],dt=h[K];if(Z&&B!==void 0&&dt!==void 0){let Ct=new ls(Z,this,q,B,dt);switch(o){case"up":Ct.topBeamsHeight=k/2,Ct.bottomBeamsHeight=k/2+j(K);break;case"down":Ct.topBeamsHeight=k/2+j(K),Ct.bottomBeamsHeight=k/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=H.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:l}=c.points[0],{x:h,y:p}=c.points[c.points.length-1];if(c.tupletNumber){let m=c.tupletNumber.getRect().width/(h-u)*1.2,f=H.Math.interpolateCoord(u,l,h,p,.5-m/2),g=H.Math.interpolateCoord(u,l,h,p,.5+m/2);e.strokeLine(u,l,f.x,f.y),e.strokeLine(g.x,g.y,h,p)}else e.strokeLine(u,l,h,p);e.strokeLine(u,l,u,l+a),e.strokeLine(h,p,h,p+a)})}else(s===0||s===1)&&(e.color(o).lineWidth(at.BeamThickness),this.staffObjects.forEach(a=>{let c=a.points.filter(f=>f.symbol instanceof At),{x:u,y:l}=c[0],{x:h,y:p}=c[c.length-1],m=at.BeamSeparation*r*(n==="up"?1:-1)*(1+.5*Math.abs(Math.atan2(p-l,h-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],I=x.getRightBeamCount(),v=T.getLeftBeamCount();for(let A=0;A<Math.max(I,v);A++)A<I&&A<v?e.strokeLine(g,b,C,S):I>v?e.strokePartialLine(g,b,C,S,0,.25):v>I&&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:l,noteSize:h,dotCount:p}=s.rhythmProps;return a>0&&l>0&&u>0&&p===0&&c*Math.pow(2,u)===h},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 bi=class extends tt{constructor(e,r){super(e);this.pos=r;d(this,"color","black");d(this,"mi");this.mi=new ms(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,l=u-c;e.drawDebugRect(this.rect),e.color("black").lineWidth(1),e.beginPath(),e.moveTo(s,u),e.bezierCurveTo(s,c,a,c,a,u),e.bezierCurveTo(a,c+l/5,s,c+l/5,s,u),e.stroke(),e.fill();let h=l/6;e.fillCircle((s+a)/2,u-h,Math.abs(h))}};var Zn=class extends tt{constructor(e,r,n,o,s){super(e);this.measure=e;this.line=r;this.extension=n;this.leftObj=o;this.rightObj=s;d(this,"mi");n.addTail(this),this.mi=new fs(this)}get row(){return this.measure.row}getMusicInterface(){return this.mi}getLineLeft(){return this.leftObj instanceof gi?this.leftObj.getRect().anchorX:this.leftObj.getRect().right}getLineRight(){if(this.rightObj instanceof zr){let e=this.rightObj,r=e.getNextColumn();return r&&r.measure===e.measure?(e.getRect().right+r.getRect().left)/2:(e.getRect().right+e.measure.getBarLineRight().getRect().left)/2}else return this.rightObj.getRect().anchorX}layoutFitToMeasure(e){let{unitSize:r}=e,n=this.getLineLeft(),o=this.getLineRight(),s=r;this.rect=new G(n,o,-s/2,s/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;this.extension.getLineStyle()==="dashed"&&e.setLineDash([7,3]),e.color("black").lineWidth(1),e.strokeLine(r.left,r.anchorY,r.right,r.anchorY),e.setLineDash([]);let n=this.extension.getTails();if(n.length>0&&this===n[n.length-1]){let o=r.anchorY>this.line.getRect().anchorY?-e.unitSize:e.unitSize;e.strokeLine(r.right,r.anchorY,r.right,r.anchorY+o)}}};var Hi=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],fr)&&(this.rightNoteGroup=void 0,this.rightNoteId=void 0,this.tieType=a[0]),this.measure.addConnectiveObject(this),this.mi=new gs(this)}getMusicInterface(){return this.mi}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:l}=this,{noteAnchor:h,arcDir:p}=l,{row:m}=n,f=m.getPrevRow(),g=m.getNextRow(),b=m.getConnectivesContentRect(),x,C;x=s.getConnectiveAnchorPoint(l,o,a,h,"left"),c!==void 0&&u!==void 0?C=c.getConnectiveAnchorPoint(l,o,u,h,"right"):C=this.tieType==="toMeasureEnd"?{x:n.getColumnsContentRect().right,y:x.y}:{x:x.x+r*at.StubTieLength,y:x.y};let S,T,I,v;if(c===void 0)S=x.x,T=x.y,I=C.x,v=C.y;else if(s.row===m&&c.row===m)S=x.x,T=x.y,I=C.x,v=C.y;else if(s.row===f&&c.row===m){let R=f.getConnectivesContentRect().right-x.x,P=C.x-b.left;S=b.left,T=x.y+(C.y-x.y)*R/(R+P),I=C.x,v=C.y}else if(s.row===m&&c.row===g){let M=g.getConnectivesContentRect(),R=b.right-x.x,P=C.x-M.left;S=x.x,T=x.y,I=b.right,v=x.y+(C.y-x.y)*R/(R+P)}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(I-S)/3;this.lx=S,this.ly=T,this.rx=I,this.ry=v,this.arcHeight=this.connectiveProps.connective==="slide"?0:_;let{nx:E,ny:V}=H.Math.calcNormal(S,T,I,v);this.cp1x=S*.7+I*.3+E*this.arcHeight,this.cp1y=T*.7+v*.3+V*this.arcHeight,this.cp2x=S*.3+I*.7+E*this.arcHeight,this.cp2y=T*.3+v*.7+V*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.color("black").lineWidth(1),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 Xn=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 kt?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,fr)){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(l=>W.equals(l,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 kt?new Hi(this,t,e.measure,e,r,n):t instanceof he&&e.getFretNumberString(r)!==void 0&&new Hi(this,t,e.measure,e,r,n);else return}createObjConnective(t,e,r,n,o){let s=(a,c,u,l,h)=>{if(c.enableConnective(t)&&l.enableConnective(t)){if(t instanceof kt)new Hi(this,t,a,c,u,l,h);else if(t instanceof he){let p=c.getFretNumberString(u),m=l.getFretNumberString(h);p!==void 0&&m!==void 0&&(p===m||this.connective==="slur")&&new Hi(this,t,a,c,u,l,h)}}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 tc=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=Xt.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,qn)?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 ys(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,l=n.centerY;e.moveTo(u-c/2,l),e.lineTo(u+c/2,l),e.stroke()}}}};var $n=class extends tt{constructor(e,r){super(e);this.measure=e;this.tab=r;d(this,"voiceId");d(this,"mi");d(this,"tupletPartsTextObjMap",new pt);this.voiceId=ne().filter(n=>r.containsVoiceId(n)),this.rect=new G,this.mi=new bs(this)}getMusicInterface(){return this.mi}pick(e,r){return this.rect.contains(e,r)?[this]:[]}layout(e){let r=this.measure.getColumns(),n=ne().map(o=>H.Math.sum(r.map(s=>s.getVoiceSymbol(o)?1:0)));this.voiceId.sort((o,s)=>H.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.color("black").lineWidth(1);let{unitSize:r,fontSize:n}=e,o=r,s=r,a=r*.25,{bottom:c,anchorY:u}=this.getRect(),l=u,h=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],I=S.col.getRect().anchorX;if(S instanceof At){if(S.rhythmProps.noteSize>=2&&(e.lineWidth(S.rhythmProps.noteSize===4?2:1),e.strokeLine(I,h,I,l)),e.lineWidth(1),x.length===1)for(let v=0;v<S.rhythmProps.flagCount;v++)e.drawFlag(new G(I,I+o,l+v*o,l+(v+2)*o),"up");for(let v=0;v<S.rhythmProps.dotCount;v++)e.fillCircle(I+s*(v+1),h-a,a)}else if(S instanceof oe){let v=I,A=(l+h)/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,V=v.hasTuplet()?1:v instanceof At?v.getRightBeamCount():1,M=A.hasTuplet()?1:A instanceof At?A.getLeftBeamCount():1,R=Math.max(V,M);e.lineWidth(2);for(let P=0;P<R;P++){let D=M>V&&P>=V?.75:0,k=V>M&&P>=M?.25:1;e.strokePartialLine(_,l+P*o,E,l+P*o,D,k)}e.lineWidth(1);for(let P=0;P<v.rhythmProps.dotCount;P++)e.fillCircle(_+s*(P+1),h-a,a);for(let P=0;P<A.rhythmProps.dotCount;P++)e.fillCircle(E+s*(P+1),h-a,a)}if(b&&b.isTuplet()){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,l-n/2),_.draw(e)}x.length>1&&(m=p.indexOf(x[x.length-1].col),m<0&&(m=p.length))}}}};function vv(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=Xt.get(r).ticks;typeof n=="number"&&(e++,o*=n),t+=o}else e++}return t}else return i}function Iv(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 Nh=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}},Qn=class extends tt{constructor(e,r){super(e);this.row=e;this.options=r;d(this,"prevMeasure");d(this,"nextMeasure");d(this,"keySignature",qs());d(this,"timeSignature",Ys());d(this,"tempo",Hs());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 Nh);d(this,"needLayout",!0);d(this,"voiceSymbols",Gs(new Ar));d(this,"lastAddedRhythmColumn");d(this,"lastAddedRhythmSymbol");d(this,"addExtensionToMusicObjects",[]);d(this,"layoutObjects",[]);d(this,"postMeasureBreakWidth",0);d(this,"passCount",0);d(this,"needBeamsUpdate",!0);d(this,"navigationSet",new Bs);d(this,"isEndSong",!1);d(this,"isEndSection",!1);d(this,"endRepeatPlayCount",2);d(this,"endRepeatPlayCountText");d(this,"staticObjectsCache",new pt);d(this,"lyricsObjectsCache",new Fs);d(this,"mi");this.mi=new xs(this),this.prevMeasure=e.doc.getLastMeasure(),this.prevMeasure&&(this.prevMeasure.nextMeasure=this),this.barLineLeft=new gi(this),this.barLineRight=new Yr(this),this.measureId=this.prevMeasure?this.prevMeasure.measureId+1:0,this.updateKeySignature(),this.updateTimeSignature(),this.updateTempo(),this.row.getTabs().forEach(n=>{this.addLayoutObject(new $n(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=H.Math.sum(ne().map(o=>this.getVoiceSymbols(o).length>0?1:0));ne().forEach(o=>{var l;let s=()=>{let h=this.row.getStaves().filter(m=>m.containsVoiceId(o)),p=this.row.getTabs().filter(m=>m.containsVoiceId(o));return h.length>0?h[0].middleLineDiatonicId:p.length>0?p[0].getTuningStrings()[3].diatonicId:W.getNote("G4").diatonicId},a=()=>"auto",c=()=>[],u=(l=e[o])!=null?l:e[o]={diatonicId:s(),stemDir:a(),stringNumbers:c()};this.getVoiceSymbols(o).forEach((h,p,m)=>{var b,x;if(h.setDiatonicId===oe.UndefinedDiatonicId?r<2&&(u.diatonicId=oe.UndefinedDiatonicId):u.diatonicId=h.setDiatonicId,h instanceof At)switch(h.setStringsNumbers&&(u.stringNumbers=h.setStringsNumbers),(b=h.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=h.getBeamGroup())==null?void 0:x.getSymbols(),g;f===void 0?g=u.stemDir==="auto"?this.row.solveAutoStemDir([h]):u.stemDir:h===f[0]?g=u.stemDir==="auto"?this.row.solveAutoStemDir(f):u.stemDir:g=f[0].stemDir,h.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}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 tr)this.alterKeySignature=e[0];else if(e[0]instanceof ei)this.alterKeySignature=e[0];else if(y.isNonEmptyString(e[0])){if(e.length===1)this.alterKeySignature=Dr(e[0]);else if(e.length===2)try{let n=""+e[0],o=uo(""+e[1]);this.alterKeySignature=Dr(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:qs(),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:Ys(),this.alterTimeSignature&&(this.timeSignature=this.alterTimeSignature),this.nextMeasure&&this.nextMeasure.updateTimeSignature(),this.requestLayout()}getTempo(){return this.tempo}setTempo(e,r,n){var o;if((o=this.getPrevMeasure())==null||o.endSection(),r===void 0)this.alterTempo={beatsPerMinute:e};else{let s=typeof n=="number"&&n>0?n:n===!0?1:Tt.get(r).dotCount,a={beatLength:Lr(r),dotCount:s>0?s:void 0};this.alterTempo={beatsPerMinute:e,options:a}}this.updateTempo()}updateTempo(){var e;if(this.tempo=this.prevMeasure?this.prevMeasure.tempo:Hs(),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){this.layoutObjects.push(new rc(e,r,n,o)),this.requestLayout(),this.requestRectUpdate()}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 l=o.filter(h=>h.name===a);if(l.forEach(h=>n(h,c)),l.length===0){let h=this.doc.getStaffGroup(a);if(h&&!u.includes(a)){let p=[...u,a];(y.isArray(h.staffsTabsAndGroups)?h.staffsTabsAndGroups:[h.staffsTabsAndGroups]).forEach(m=>{switch(h.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 kt&&o[1]instanceof kt&&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)=>{this.addLayoutObject(new bi(n,s),o,1,s)}),this.disableExtension(),this.requestLayout()}hasFermata(e){return this.layoutObjects.some(r=>r.musicObj instanceof bi&&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:()=>new zi(s,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=os(r);o={createObj:()=>new st(c,u,1,1),layoutGroupId:3,defaultVerticalPos:0},this.addNavigation(e,"endRepeat"),this.endSong();break}case"Fine":{let c=this.barLineRight,u=os(r);o={createObj:()=>new st(c,u,1,1),layoutGroupId:3,defaultVerticalPos:0};break}case"Segno":case"Coda":{let c=this.barLineLeft,u=os(r);o={createObj:()=>new yr(c,u),layoutGroupId:3,defaultVerticalPos:0};break}case"toCoda":{let c=this.barLineRight,u=os(r);o={createObj:()=>new yr(c,u),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 c={text:""+this.endRepeatPlayCount+"x",scale:.8};this.endRepeatPlayCountText=new st(this,c,.5,1)}break}o&&this.forEachStaffGroup(e,o.defaultVerticalPos,(s,a)=>{this.addLayoutObject(o.createObj(),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;switch(r){case"dynamics":a=6,c=0,s.italic=!0;break;case"tempo":a=5,c=0,s.italic=!0;break}this.disableExtension(),this.forEachStaffGroup(e,c,(u,l)=>{let h=new st(o,s,.5,1);this.addLayoutObject(h,u,a,l),this.enableExtension(h)})}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,l)=>{let h=new st(o,s,.5,1);this.addLayoutObject(h,u,a,l),this.enableExtension(h)})}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],fr)?r[0]:2,s=y.isEnumValue(r[1],$e)?r[1]:"auto";n.startConnective(new Xn("tie",o,s,n))}else if(e==="slur"){let o=y.isInteger(r[0])?r[0]:2,s=y.isEnumValue(r[1],$e)?r[1]:"auto";n.startConnective(new Xn("slur",o,s,n))}else if(e==="slide"){let o=y.isEnumValue(r[0],$e)?r[0]:"auto";n.startConnective(new Xn("slide",2,o,n))}}addExtension(e,r){if(this.addExtensionToMusicObjects.forEach(n=>{let o=n.getParent();if(n instanceof st&&o instanceof zr){let s="dashed",a="bottom",c=new Ui(n,o,vv(e),r,s,a);n.setLink(c)}else throw new N(6,"Cannot add extension becaue no compatible music object to attach it to.")}),this.addExtensionToMusicObjects.length===0)throw new N(6,"Cannot add extension because music object to attach it to is undefined.");this.disableExtension(),this.requestLayout()}enableExtension(e){this.addExtensionToMusicObjects.push(e)}disableExtension(){this.addExtensionToMusicObjects=[]}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(l=>typeof l=="string"?W.getNote(l):l),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 oe(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}),l=new tc(u,r,a,c,Lr(n),o,s);u.addLyricsObject(l);let h=this.lyricsObjectsCache.getOrCreate(a,c,r,[]);h.push(l),h.sort((m,f)=>H.Math.cmp(m.col.positionTicks,f.col.positionTicks)),(p=l.measure.getPrevLyricsObject(l))==null||p.setNextLyricsObject(l),this.addLayoutObject(l,a,Iv(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 zr(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=>{ne().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=>{var c;let{musicObj:r,measure:n,layoutGroupId:o,verticalPos:s,line:a}=e;if(r.getLink()instanceof Ui){let u=r.getLink();if(u.getHead()===r){u.getTails().forEach(p=>n.removeLayoutObjects(p));let{startColumn:l,endColumn:h}=u.getExtensionRangeInfo();if(u.isVisible()&&l!==h)for(let p=l.measure;p!==void 0;p=p===h.measure?void 0:p.getNextMeasure()){let m=p===l.measure?u.getHead():p.getBarLineLeft(),f=p===h.measure?h:p.getBarLineRight(),g=p.row.getNotationLines(),b=(c=g.find(x=>x.name!==""&&x.name===a.name))!=null?c:g[a.id];b&&p.addLayoutObject(new Zn(p,b,u,m,f),b,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=Yi.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||(ne().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([H.Math.sum(c)]);let l=!1,h=s;for(;u.length>0&&!l;){let p=u.shift();s=h,p.forEach(m=>{let f=m*Tt.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});H.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)&&Yi.createBeam(b)&&(l=!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(ne().filter(r=>this.getConsumedTicks(r)>0));return}else if(y.isArray(e)){e.forEach(r=>this.completeRests(r));return}else{Fo(e);let r=this.getMeasureTicks(),n=this.getConsumedTicks(e),o=r-n,s=[];for(;o>0;)for(let a=Tt.LongestNoteSize;a<=Tt.ShortestNoteSize;a*=2){let c=Tt.create(a).noteLength;for(let u=Tt.get(c).maxDotCount;u>=0;u--){let l=Xt.get(c,u);for(;l.ticks<=o;)s.push(l),o-=l.ticks}}s.reverse().forEach(a=>this.addRest(e,a.noteLength,{dotted:a.dotCount}))}}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()?at.PostMeasureBreakWidth*r:0;let n=this===this.row.getFirstMeasure(),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,l=!!this.alterTempo;this.signatures=[],this.row.getNotationLines().forEach((f,g)=>{if(f instanceof kt&&(s||a||c||u||l)){let b=this.signatures.filter(C=>C instanceof Ho).find(C=>C.staff===f),x=b!=null?b:new Ho(this,f);x.staff.addObject(x),x.updateClefImage(e,s),x.updateMeasureNumber(a&&g===0),x.updateKeySignature(c),x.updateTimeSignature(u),x.updateTempo(l&&g===0),x.layout(e),this.signatures.push(x)}else if(f instanceof he&&(a||u||l)){let b=this.signatures.filter(C=>C instanceof Zo).find(C=>C.tab===f),x=b!=null?b:new Zo(this,f);x.tab.addObject(x),x.updateMeasureNumber(a&&g===0),x.updateTimeSignature(u),x.updateTempo(l&&g===0),x.layout(e),this.signatures.push(x)}}),this.tabStringNotes.length=0,this===this.row.getFirstMeasure()&&this.row.getTabs().forEach(f=>{for(let g=0;g<6;g++){let b=f.getTuningStrings()[g].format(1,1),x=new st(this,{text:b,scale:.8},1,.5);x.layout(e),x.setRight(this.regions.tabTuning_0*.8),x.setCenterY(f.getStringY(g)),this.tabStringNotes.push(x),f.addObject(x)}}),this.barLineLeft.layout(e);let h=new Ha(this);this.columns.forEach(f=>f.layout(e,h)),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(at.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(h=>{h.setLeft(this.rect.left+this.regions.tabTuning_0),h.setAnchorY(this.rect.anchorY)});let n=Math.max(0,...this.signatures.map(h=>h.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,l=o;this.columns.forEach(h=>{let p=h.getRect(),m=l+p.leftw*u;h.setAnchor(m,this.rect.anchorY),l+=p.width*u}),ne().forEach(h=>{let p=this.getVoiceSymbols(h),m=p.length===1&&p[0]instanceof oe?p[0]:void 0;!m||ne().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===this.row.getLastMeasure()&&(this.rect.right=Math.max(this.rect.right,...this.layoutObjects.filter(e=>e.isPositionResolved()&&e.musicObj instanceof bi).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());let r=this.getStaffLineLeft(),n=this.getStaffLineRight();e.color("black").lineWidth(1);let o=s=>e.strokeLine(r,s,n,s);this.row.getNotationLines().forEach(s=>{if(s instanceof kt)for(let a=s.bottomLineDiatonicId;a<=s.topLineDiatonicId;a+=2)o(s.getDiatonicIdY(a));else if(s instanceof he)for(let a=0;a<6;a++)o(s.getStringY(a))}),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 ec=(h=>(h[h.TabRhythm=0]="TabRhythm",h[h.Fermata=1]="Fermata",h[h.NoteLabel=2]="NoteLabel",h[h.Navigation=3]="Navigation",h[h.Ending=4]="Ending",h[h.TempoAnnotation=5]="TempoAnnotation",h[h.DynamicsAnnotation=6]="DynamicsAnnotation",h[h.ChordLabel=7]="ChordLabel",h[h.LyricsVerse1=8]="LyricsVerse1",h[h.LyricsVerse2=9]="LyricsVerse2",h[h.LyricsVerse3=10]="LyricsVerse3",h))(ec||{}),Th=new pt([[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 Sv(i){for(;i;){if(i instanceof Qn)return i;i=i.getParent()}throw new N(6,"Parent measure is required but not found!")}var ic=class{constructor(t,e,r){this.groupName=t;this.staffsTabsAndGroups=e;this.verticalPosition=r}},rc=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=Sv(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,l=r.getStaticObjects(o),h=e.getShapeRects();return l.forEach(p=>{let m=p.getShapeRects();h.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}getTextContent(){if(this.musicObj instanceof st||this.musicObj instanceof yr)return this.musicObj.getText()}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()}},nc=class{constructor(t){this.layoutGroupId=t;d(this,"layoutObject",Gs(new Ar));d(this,"rowAlign");d(this,"reserveSpace");d(this,"padding");var e,r,n,o;this.rowAlign=((e=Th.get(t))==null?void 0:e.rowAlign)===!0,this.reserveSpace=((r=Th.get(t))==null?void 0:r.reserveSpace)===!0,this.padding=(o=(n=Th.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 oc=class extends tt{constructor(e){super(e);this.row=e;d(this,"objects",[]);d(this,"layoutGroups",new pt)}addObject(e){this.objects.push(e)}removeObjects(){this.objects.length=0}getLayoutGroup(e){return this.layoutGroups.getOrCreate(e,()=>new nc(e))}resetLayoutGroups(e){this.layoutGroups.forEach(r=>r.layout(e))}layoutLayoutGroups(e){for(let r of H.Enum.getEnumValues(ec)){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 Zn||a instanceof $n?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(l=>c.some(h=>h===l.musicObj));this.alignObjectsY(e,u,n)}else this.alignObjectsY(e,[s],n)})}},kt=class extends oc{constructor(e,r,n){super(e);this.row=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)=>W.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 As(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)}getLineSpacing(){return(this.bottomLineY-this.topLineY)/4}getDiatonicSpacing(){return this.getLineSpacing()/2}containsDiatonicId(e){return W.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)||H.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*at.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){}},he=class extends oc{constructor(e,r,n){super(e);this.row=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=>W.getNote(o)).reverse()):typeof r.tuning=="string"?(this.tuningName=lu(r.tuning),this.tuningStrings=Us(this.tuningName)):(this.tuningName="Standard",this.tuningStrings=Us(this.tuningName)),this.mi=new Cs(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)||H.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*at.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){}};var sc=class extends tt{constructor(e){var r;super(e[0].row);this.lines=e;d(this,"space",0);d(this,"instrument");d(this,"instrText");d(this,"braceRect",new G);d(this,"mi");this.instrument=(r=e[0].getConfig().instrument)!=null?r:"",this.instrText=new st(this,{text:this.instrument,color:"black",scale:1},1,.5),this.mi=new _s(this)}getMusicInterface(){return this.mi}get row(){return this.lines[0].row}get hasBrace(){return this.hasInstrument&&this.lines.length>1}get hasInstrument(){return this.instrument.length>0}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){this.instrText.draw(e),this.hasBrace&&e.color("brack").lineWidth(1).drawBracket(this.braceRect,"{")}};var ac=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}},cc=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,"needLayout",!0);d(this,"mi");this.notationLines=this.createNotationLines(),this.staves=this.notationLines.filter(s=>s instanceof kt),this.tabs=this.notationLines.filter(s=>s instanceof he);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 sc(s)),this.prevRow&&(this.prevRow.nextRow=this),this.mi=new vs(this)}getMusicInterface(){return this.mi}createNotationLines(){let e=this.scoreConfig.map((r,n)=>r.type==="staff"?new kt(this,r,n):new he(this,r,n));for(let r=0;r<e.length-1;r++){let n=e[r],o=e[r+1];n instanceof kt&&o instanceof kt&&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}findMatchingLine(e){return e.row===this?e:this.notationLines.find(r=>H.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){W.validateDiatonicId(e);for(let r=0;r<this.notationLines.length;r++){let n=this.notationLines[r];if(n instanceof kt&&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 kt?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 oe&&u.setDiatonicId!==oe.UndefinedDiatonicId).map(u=>u.setDiatonicId);if(n.length===0&&o.length===0)return"up";let s=n.length>0?n:o,a=Math.floor(H.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 bi);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 kt&&s instanceof kt&&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(),ne().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))}draw(e){e.drawDebugRect(this.getRect());let{left:r,top:n,width:o,height:s}=this.getRect(),a=e._lineWidth;if(e.save(),e.rect(r-a,n,o+2*a,s),e.clip(),this.getFirstMeasure()&&(this.notationLines.length>1||this.notationLines[0]instanceof he)){let c=this.getFirstMeasure().getStaffLineLeft(),u=Math.min(...this.notationLines.map(h=>h.getTopLineY())),l=Math.max(...this.notationLines.map(h=>h.getBottomLineY()));e.color("black").lineWidth(1).strokeLine(c,u,c,l)}this.measures.forEach(c=>c.draw(e)),this.notationLines.forEach(c=>c.draw(e)),this.rowGroups.forEach(c=>c.draw(e)),e.restore()}};var uc=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 Is(this),this.titleText=this.title?new st(this,{text:this.title,scale:2},.5,0):void 0,this.composerText=this.composer?new st(this,this.composer,1,0):void 0,this.arrangerText=this.arranger?new st(this,"Arr.: "+this.arranger,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 hc=class extends tt{constructor(){super(void 0);d(this,"needLayout",!0);d(this,"ctx");d(this,"regions",new ac);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 pt);d(this,"mi");this.mi=new Hr(this)}getMusicInterface(){return this.mi}setScoreConfiguration(e){if(y.isEnumValue(e,Vn))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="grand";r<this.curScoreConfig.length;){let o=this.curScoreConfig[r],s=this.curScoreConfig[r+1];for(;this.curScoreConfig.filter(a=>a.type==="staff").findIndex(a=>a.grandId===n)>=0;)n+="A";if(o&&o.type==="staff"&&o.isGrand){if(o.grandId!==void 0)throw new N(6,"Grand staff error: mixing isGrand and grandId!");if(s&&s.type==="staff"&&s.isGrand){if(s.grandId!==void 0)throw new N(6,"Grand staff error: mixing isGrand and grandId!");o.grandId=n,s.grandId=n,o.isGrand=s.isGrand=!1,r+=2}else throw new N(6,"Grand staff error: invalid use of isGrand!")}else r++}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 uc(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 cc(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 Qn(r,e);return this.measures.push(n),r.addMeasure(n),this.requestLayout(),n}addStaffGroup(e,r,n){this.staffGroups.set(e,new ic(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(at.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 Zf="";function gt(i,...t){let e=t.map(r=>JSON.stringify(r)).join(", ");Zf=`DocumentBuilder.${i}(${e})`}function ht(...i){i.forEach(t=>{if(!t)throw new N(6,Zf)})}function Oh(i,t){if(!i)throw new N(6,t)}function Xf(i){var t;if(ht(y.isObject(i),y.isStringOrUndefined(i.name),y.isUndefined(i.voiceId)||ye(i.voiceId)||y.isArray(i.voiceId)&&i.voiceId.every(e=>ye(e))),!y.isUndefined(i.voiceIds)){ht(ye(i.voiceIds)||y.isArray(i.voiceIds)&&i.voiceIds.every(r=>ye(r))),console.warn("Staff/tab config property 'voiceIds' is deprecated, use 'voiceId' instead.");let e=H.Arr.toArray((t=i.voiceId)!=null?t:[]);H.Arr.toArray(i.voiceIds).forEach(r=>e.push(r)),i.voiceId=e}y.isArray(i.voiceId)&&(i.voiceId=H.Arr.removeDuplicates(i.voiceId)),ht(y.isStringOrUndefined(i.instrument))}function zf(i){Xf(i),ht(y.isObject(i),y.isStrictEqual(i.type,"staff"),y.isEnumValue(i.clef,Gi),y.isBooleanOrUndefined(i.isOctaveDown),y.isUndefined(i.minNote)||W.isNote(i.minNote),y.isUndefined(i.maxNote)||W.isNote(i.maxNote),y.isStringOrUndefined(i.grandId),y.isBooleanOrUndefined(i.isGrand)),y.isUndefined(i.isGrand)||console.warn("Staff config property 'isGrand' is deprecated, use 'grandId' instead.")}function Yf(i){Xf(i),ht(y.isObject(i),y.isStrictEqual(i.type,"tab"),y.isUndefined(i.tuning)||y.isString(i.tuning)&&y.isIncluded(i.tuning,ho)||y.isArray(i.tuning)&&y.isStrictEqual(i.tuning.length,qa().length&&i.tuning.every(t=>W.isNote(t))))}function lc(i){ht(y.isObject(i),y.isBooleanOrUndefined(i.dotted)||y.isIntegerGte(i.dotted,0),y.isEnumValueOrUndefined(i.stem,mr),y.isStringOrUndefined(i.color),y.isBooleanOrUndefined(i.arpeggio)||y.isEnumValue(i.arpeggio,mi),y.isBooleanOrUndefined(i.staccato),y.isBooleanOrUndefined(i.diamond),y.isBooleanOrUndefined(i.triplet),y.isUndefined(i.string)||Bo(i.string)||y.isEmptyArray(i.string)||y.isNonEmptyArray(i.string)&&i.string.every(t=>Bo(t))),Oh(y.isUndefined(i.tieSpan),'NoteOptions.tieSpan was removed. Use addConnective("tie", tieSpan)'),Oh(y.isUndefined(i.slurSpan),'NoteOptions.slurSpan was removed. Use addConnective("slur", slurSpan)')}function Hf(i){ht(y.isObject(i),y.isBooleanOrUndefined(i.dotted)||y.isIntegerGte(i.dotted,0),y.isStringOrUndefined(i.staffPos)||y.isInteger(i.staffPos)||i.staffPos instanceof W,y.isStringOrUndefined(i.color),y.isBooleanOrUndefined(i.hide),y.isBooleanOrUndefined(i.triplet))}function wv(i){ht(y.isObject(i),y.isEnumValueOrUndefined(i.align,Vo),y.isEnumValueOrUndefined(i.hyphen,qn))}function Nv(i){ht(y.isObject(i),y.isBooleanOrUndefined(i.showNumber))}function Ss(i){ht(y.isStringOrUndefined(i)||y.isIntegerGte(i,0)||y.isNonEmptyArray(i)&&i.every(t=>y.isString(t)||y.isIntegerGte(t,0)))}var dc=class dc{constructor(){d(this,"doc");d(this,"currentLyricsAlign","center");this.doc=new hc}setScoreConfiguration(t){return gt("setScoreConfiguration",t),y.isEnumValue(t,Vn)?this.doc.setScoreConfiguration(t):y.isObject(t)&&t.type==="staff"?(zf(t),this.doc.setScoreConfiguration(t)):y.isObject(t)&&t.type==="tab"?(Yf(t),this.doc.setScoreConfiguration(t)):y.isNonEmptyArray(t)?(t.forEach(e=>{y.isObject(e)&&e.type==="staff"?zf(e):y.isObject(e)&&e.type==="tab"?Yf(e):ht(!1)}),this.doc.setScoreConfiguration(t)):ht(!1),this}getMeasure(){var t;return(t=this.doc.getLastMeasure())!=null?t:this.doc.addMeasure(dc.DefaultMeasureOptions)}getDocument(){return this.doc.getMusicInterface()}setHeader(t,e,r){return gt("setHeader",t,e,r),ht(y.isStringOrUndefined(t),y.isStringOrUndefined(e),y.isStringOrUndefined(r)),this.doc.setHeader(t,e,r),this}setMeasuresPerRow(t){return gt("setMeasuresPerRow",t),ht(y.isIntegerGte(t,1)||y.isPosInfinity(t)),this.doc.setMeasuresPerRow(t),this}addMeasure(t){return gt("addMeasure",t),t!=null||(t={}),Nv(t),this.doc.addMeasure(t),this}setKeySignature(...t){return gt("setKeySignature",...t),ht(t[0]instanceof ei||t[0]instanceof tr||y.isNonEmptyString(t[0])&&y.isEnumValueOrUndefined(t[1],vi)),this.getMeasure().setKeySignature(...t),this}setTimeSignature(...t){return gt("setTimeSignature",...t),t[0]instanceof ri?this.getMeasure().setTimeSignature(t[0]):y.isEnumValue(t[0],lo)&&y.isEnumValueOrUndefined(t[1],Si)?this.getMeasure().setTimeSignature(new ri(t[0],t[1])):y.isIntegerGte(t[0],1)&&y.isIntegerGte(t[1],1)&&y.isEnumValueOrUndefined(t[2],Si)?this.getMeasure().setTimeSignature(new ri(t[0],t[1],t[2])):ht(!1),this}setTempo(t,e,r){return gt("setTempo",t,e,r),ht(y.isIntegerGte(t,1),y.isUndefined(e)&&y.isUndefined(r)||rr(e)&&(y.isBooleanOrUndefined(r)||y.isIntegerGte(r,0))),this.getMeasure().setTempo(t,e,r),this}addNote(t,e,r,n){if(gt("addNote",t,e,r,n),ht(ye(t),e instanceof W||y.isNonEmptyString(e)||y.isArray(e)&&e.every(o=>o instanceof W||y.isNonEmptyString(o)),rr(r)),n!=null||(n={}),lc(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 gt("addChord",t,e,r,n),ht(ye(t),y.isNonEmptyArray(e)&&e.every(o=>o instanceof W||y.isNonEmptyString(o)),rr(r)),n!=null||(n={}),lc(n),this.getMeasure().addNoteGroup(t,e,r,n),this}addRest(t,e,r){return gt("addRest",t,e,r),ht(ye(t),rr(e)),r!=null||(r={}),Hf(r),this.getMeasure().addRest(t,e,r),this}addTuplet(t,e,r){gt("addTuplet",t,e),ht(ye(t),y.isFunction(r),zs(e)&&y.isBooleanOrUndefined(e.showRatio));let n=[],o={addNote:(s,a,c)=>{if(gt("addTuplet => addNote",s,a,c),ht(s instanceof W||y.isNonEmptyString(s)||y.isArray(s)&&s.every(u=>u instanceof W||y.isNonEmptyString(u)),rr(a)),c!=null||(c={}),delete c.triplet,lc(c),y.isArray(s)){let u=c.string;s.forEach((l,h)=>{c.string=y.isArray(u)?u[h]:u;let p=this.getMeasure().addNoteGroup(t,[l],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)=>{gt("addTuplet => addChord",s,a,c),ht(y.isNonEmptyArray(s)&&s.every(l=>l instanceof W||y.isNonEmptyString(l)),rr(a)),c!=null||(c={}),delete c.triplet,lc(c);let u=this.getMeasure().addNoteGroup(t,s,a,c,e);return n.push(u),o},addRest:(s,a)=>{gt("addTuplet => addRest",s,a),ht(rr(s)),a!=null||(a={}),delete a.triplet,Hf(a);let c=this.getMeasure().addRest(t,s,a,e);return n.push(c),o}};return r(o),Yi.createTuplet(n,e),this}addLyricsInternal(t,e,r,n,o){var s;return Ss(t),ht(Wa(e),y.isEnumValue(r,er),y.isString(n)||y.isArray(n)&&n.every(a=>y.isString(a))),o!=null||(o={}),wv(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 gt("addLyrics",t,e,r,n),this.addLyricsInternal(void 0,t,e,r!=null?r:"",n)}addLyricsTo(t,e,r,n,o){return gt("addLyricsTo",e,r,n,o),this.addLyricsInternal(t,e,r,n!=null?n:"",o)}addFermataInternal(t,e){return Ss(t),ht(y.isEnumValue(e,qo)),this.getMeasure().addFermata(t,e),this}addFermata(t="atNote"){return gt("addFermata",t),this.addFermataInternal(void 0,t)}addFermataTo(t,e="atNote"){return gt("addFermataTo",t,e),this.addFermataInternal(t,e)}addNavigationInternal(t,e,...r){return Ss(t),ht(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,gr)&&y.isEmptyArray(r)),this.getMeasure().addNavigation(t,e,...r),this}addNavigation(t,...e){return gt("addNavigation",t,...e),this.addNavigationInternal(void 0,t,...e)}addNavigationTo(t,e,...r){return gt("addNavigationTo",t,e,...r),this.addNavigationInternal(t,e,...r)}addAnnotationInternal(t,e,r){if(e!=null||(e=Wf(r)),e===void 0)throw new N(6,`Annotation text "${r}" is not known annotation.`);return Ss(t),ht(y.isEnumValue(e,Wn),y.isNonEmptyString(r)),this.getMeasure().addAnnotation(t,e,r),this}addAnnotation(...t){return gt("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 gt("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 Ss(t),ht(y.isEnumValue(e,Wo),y.isNonEmptyString(r)),this.getMeasure().addLabel(t,e,r),this}addLabel(t,e){return gt("addLabel",t,e),this.addLabelInternal(void 0,t,e)}addLabelTo(t,e,r){return gt("addLabelTo",t,e,r),this.addLabelInternal(t,e,r)}addConnective(t,...e){if(gt("addConnective",t,...e),ht(y.isEnumValue(t,fi)),t==="tie"){ht(y.isIntegerOrUndefined(e[0])||y.isEnumValue(e[0],fr)),ht(y.isEnumValueOrUndefined(e[1],$e));let r=e[0],n=e[1];this.getMeasure().addConnective(t,r,n)}else if(t==="slur"){ht(y.isIntegerOrUndefined(e[0])),ht(y.isEnumValueOrUndefined(e[1],$e));let r=e[0],n=e[1];this.getMeasure().addConnective(t,r,n)}else if(t==="slide"){ht(y.isEnumValueOrUndefined(e[0],$e));let r=e[0];this.getMeasure().addConnective(t,r)}return this}addExtension(t){gt("addExtension"),Oh(y.isFunctionOrUndefined(t),"addExtension() has new usage, e.g. addExtension(ext => ext.measures(2)).");let e=0,r=!0,n={notes:(o,s)=>(gt("addExtension.notes",o,s),ht(rr(o)),ht(y.isUndefined(s)||y.isNumber(s)&&s>=0),e+=Xt.get(o).ticks*(s!=null?s:1),n),measures:o=>(gt("addExtension.measures",o),ht(y.isNumber(o)&&o>=1),e+=this.getMeasure().getMeasureTicks()*o,n),infinity:()=>(gt("addExtension.infinity"),e=1/0,n),hide:()=>(gt("addExtension.hide"),r=!1,n)};return t?t(n):e=1/0,this.getMeasure().addExtension(e,r),this}addStaffGroup(t,e,r="auto"){return gt("addStaffGroup",t,e,r),ht(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,Go)),this.doc.addStaffGroup(t,e,r),this}endSong(){return gt("endSong"),this.getMeasure().endSong(),this}endSection(){return gt("endSection"),this.getMeasure().endSection(),this}endRow(){var t;return gt("endRow"),(t=this.doc.getLastMeasure())==null||t.endRow(),this}completeRests(t){return gt("completeRests",t),ht(y.isUndefined(t)||ye(t)||y.isArray(t)&&t.every(e=>ye(e))),this.getMeasure().completeRests(t),this}addScaleArpeggio(t,e,r){gt("addScaleArpeggio",t,e,r),ht(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(dc,"DefaultMeasureOptions",{});var br=dc;var ws=class{constructor(t){this.type=t}},Vi=class extends ws{constructor(e,r,n,o){super(e);this.renderContext=r;this.scoreRow=n;this.diatonicId=o}get renderer(){return this.renderContext}},qi=class extends ws{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 renderer(){return this.renderContext}get topObject(){return this.objects[this.objects.length-1]}findObject(e){return this.objects.find(r=>e(r))}};function pc(i,t,e){if(!i)throw new N(6,`Invalid arg: ${t} = ${e}`)}function Rh(i){if(i instanceof kt||i instanceof he)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()}},mc=class mc extends xt{constructor(e){super(mc.Name);this.obj=e}getMusicObject(){return this.obj}getAccidental(){return this.obj.accidental}};d(mc,"Name","Accidental");var zo=mc,fc=class fc extends xt{constructor(e){super(fc.Name);this.obj=e}getMusicObject(){return this.obj}};d(fc,"Name","Connective");var gs=fc,gc=class gc extends xt{constructor(e){super(gc.Name);this.obj=e}getMusicObject(){return this.obj}getRhythmColumn(){return this.obj.col.getMusicInterface()}getNotationLine(){return Rh(this.obj.line)}};d(gc,"Name","Arpeggio");var Qo=gc,yc=class yc extends xt{constructor(e){super(yc.Name);this.obj=e}getMusicObject(){return this.obj}};d(yc,"Name","BeamGroup");var ds=yc,bc=class bc extends xt{constructor(e){super(bc.Name);this.obj=e}getMusicObject(){return this.obj}getStaff(){return this.obj.staff.getMusicInterface()}};d(bc,"Name","StaffBeamGroup");var ps=bc,xc=class xc extends xt{constructor(e){super(xc.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 pc(y.isFunctionOrUndefined(e),"playStateChangeListener",e),new Kn(this,e).play()}};d(xc,"Name","Document");var Hr=xc,Ac=class Ac extends xt{constructor(e){super(Ac.Name);this.obj=e}getMusicObject(){return this.obj}getPassages(){return this.obj.passages}hasPassage(e){return pc(y.isIntegerGte(e,1),"passage",e),this.obj.hasPassage(e)}};d(Ac,"Name","Ending");var hs=Ac,Cc=class Cc extends xt{constructor(e){super(Cc.Name);this.obj=e}getMusicObject(){return this.obj}};d(Cc,"Name","Fermata");var ms=Cc,_c=class _c extends xt{constructor(e){super(_c.Name);this.obj=e}getMusicObject(){return this.obj}getTitle(){return this.obj.title}getComposer(){return this.obj.composer}getArranger(){return this.obj.arranger}};d(_c,"Name","Header");var Is=_c,vc=class vc extends xt{constructor(e){super(vc.Name);this.obj=e}getMusicObject(){return this.obj}};d(vc,"Name","Image");var Uo=vc,Ic=class Ic extends xt{constructor(e){super(Ic.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(Ic,"Name","Measure");var xs=Ic,Sc=class Sc extends xt{constructor(e){super(Sc.Name);this.obj=e}getMusicObject(){return this.obj}};d(Sc,"Name","BarLineRight");var as=Sc,wc=class wc extends xt{constructor(e){super(wc.Name);this.obj=e}getMusicObject(){return this.obj}};d(wc,"Name","BarLineLeft");var cs=wc,Nc=class Nc extends xt{constructor(e){super(Nc.Name);this.obj=e}getMusicObject(){return this.obj}getBarLine(){let e=this.obj.barLine;if(e instanceof gi||e instanceof Yr)return e.getMusicInterface();throw new N(6,"Bar line not left nor right.")}getNotationLine(){return Rh(this.obj.line)}};d(Nc,"Name","StaffBarLine");var us=Nc,Tc=class Tc extends xt{constructor(e){super(Tc.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(Tc,"Name","NoteGroup");var ts=Tc,Oc=class Oc extends xt{constructor(e){super(Oc.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(Oc,"Name","StaffNoteGroup");var es=Oc,Rc=class Rc extends xt{constructor(e){super(Rc.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(Rc,"Name","TabNoteGroup");var rs=Rc,Mc=class Mc extends xt{constructor(e){super(Mc.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(Mc,"Name","Rest");var Ko=Mc,Ec=class Ec extends xt{constructor(e){super(Ec.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(Ec,"Name","StaffRest");var Jo=Ec,Dc=class Dc extends xt{constructor(e){super(Dc.Name);this.obj=e}getMusicObject(){return this.obj}getRhythmSymbol(e){var r;return pc(ye(e),"voiceId",e),(r=this.obj.getVoiceSymbol(e))==null?void 0:r.getMusicInterface()}getVoiceSymbol(e){var r;return pc(ye(e),"voiceId",e),(r=this.obj.getVoiceSymbol(e))==null?void 0:r.getMusicInterface()}getMeasure(){return this.obj.measure.getMusicInterface()}};d(Dc,"Name","RhythmColumn");var is=Dc,kc=class kc extends xt{constructor(e){super(kc.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=>Rh(e))}};d(kc,"Name","ScoreRow");var vs=kc,Lc=class Lc extends xt{constructor(e){super(Lc.Name);this.obj=e}getMusicObject(){return this.obj}getInstrument(){return this.obj.instrument}};d(Lc,"Name","ScoreRowGroup");var _s=Lc,jc=class jc extends xt{constructor(e){super(jc.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(jc,"Name","Staff");var As=jc,Pc=class Pc extends xt{constructor(e){super(Pc.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(Pc,"Name","Tab");var Cs=Pc,Fc=class Fc extends xt{constructor(e){super(Fc.Name);this.obj=e}getMusicObject(){return this.obj}getStaff(){return this.obj.staff.getMusicInterface()}};d(Fc,"Name","StaffSignature");var Xo=Fc,Bc=class Bc extends xt{constructor(e){super(Bc.Name);this.obj=e}getMusicObject(){return this.obj}getTab(){return this.obj.tab.getMusicInterface()}};d(Bc,"Name","TabSignature");var $o=Bc,Gc=class Gc extends xt{constructor(e){super(Gc.Name);this.obj=e}getMusicObject(){return this.obj}getMeasure(){return this.obj.measure.getMusicInterface()}getTab(){return this.obj.tab.getMusicInterface()}};d(Gc,"Name","TabRhythm");var bs=Gc,Vc=class Vc extends xt{constructor(e){super(Vc.Name);this.obj=e}getMusicObject(){return this.obj}getText(){return this.obj.getText()}};d(Vc,"Name","SpecialText");var ns=Vc,qc=class qc extends xt{constructor(e){super(qc.Name);this.obj=e}getMusicObject(){return this.obj}getText(){return this.obj.getText()}};d(qc,"Name","Text");var Yo=qc,Wc=class Wc extends xt{constructor(e){super(Wc.Name);this.obj=e}getMusicObject(){return this.obj}getText(){return this.obj.getText()}};d(Wc,"Name","Lyrics");var ys=Wc,Uc=class Uc extends xt{constructor(e){super(Uc.Name);this.obj=e}getMusicObject(){return this.obj}};d(Uc,"Name","ExtensionLine");var fs=Uc;function xr(i,t,e){if(!i)throw new N(6,`Invalid arg: ${t} = ${e}`)}function Ns(i,t){if(i==null)throw new TypeError(t);return i}var Ts=class Ts{constructor(t,e){d(this,"player");xr(t instanceof Hr,"doc",t),xr(y.isFunctionOrUndefined(e),"playStateChangeListener",e),this.player=new Ka,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()),Va()}play(){return Ts.currentlyPlaying.add(this),this.player.play(),this}pause(){return this.player.pause(),this}stop(){return this.player.stop(),Ts.currentlyPlaying.delete(this),this}};d(Ts,"currentlyPlaying",new Bs);var Kn=Ts,zc=class{constructor(){d(this,"ctx");this.ctx=new Ya(this)}setDocument(t){return xr(y.isUndefined(t)||t instanceof Hr,"doc",t),this.ctx.setDocument(t),this}setCanvas(t){return t=Ns(H.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){xr(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)}}},Mh=class extends zc{},Ie=class Ie{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 xr(y.isUndefined(t)||t instanceof Hr,"doc",t),this.onStop(),t?this.player=new Kn(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 xr(y.isStringOrUndefined(e),"btnLabel",e),Ie.removeOnClickListeners(this.playButton,this.onPlay),this.playButton=Ns(H.Dom.getButton(t),"Play button required!"),this.playLabel=e!=null?e:"Play",Ie.removeOnClickListeners(this.playButton,"all"),Ie.addOnClickListener(this.playButton,this.onPlay),this.updateButtons(),this}setStopButton(t,e){return xr(y.isStringOrUndefined(e),"btnLabel",e),Ie.removeOnClickListeners(this.stopButton,this.onStop),this.stopButton=Ns(H.Dom.getButton(t),"Stop button required!"),this.stopLabel=e!=null?e:"Stop",Ie.removeOnClickListeners(this.stopButton,"all"),Ie.addOnClickListener(this.stopButton,this.onStop),this.updateButtons(),this}setPlayStopButton(t,e,r){return xr(y.isStringOrUndefined(e),"playLabel",e),xr(y.isStringOrUndefined(r),"stopLabel",r),Ie.removeOnClickListeners(this.playStopButton,this.onPlayStop),this.playStopButton=Ns(H.Dom.getButton(t),"Play/stop button required!"),this.playLabel=e!=null?e:"Play",this.stopLabel=r!=null?r:"Stop",Ie.removeOnClickListeners(this.playStopButton,"all"),Ie.addOnClickListener(this.playStopButton,this.onPlayStop),this.updateButtons(),this}setPauseButton(t,e){return xr(y.isStringOrUndefined(e),"btnLabel",e),Ie.removeOnClickListeners(this.pauseButton,this.onPause),this.pauseButton=Ns(H.Dom.getButton(t),"Pause button required!"),this.pauseLabel=e!=null?e:"Pause",Ie.removeOnClickListeners(this.pauseButton,"all"),Ie.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){xr(y.isFunction(e),"onClick",e),t.addEventListener("click",e),this.savedOnClickListeners.getOrCreate(t,[]).push(e)}};d(Ie,"savedOnClickListeners",new pt);var Eh=Ie;_i();var kh={};Qi(kh,{createAndanteByDiabelli:()=>Mv,createCanonInD:()=>Tv,createFrereJacques:()=>Ov,createGreensleeves:()=>Rv});function Tv(){return new br().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 Ov(){return new br().setHeader("Fr\xE8re Jacques","Traditional").setScoreConfiguration([{type:"staff",clef:"G",voiceId:0},{type:"staff",clef:"F",voiceId:1}]).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 Rv(){return new br().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 Mv(){return new br().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()}return ng(Ev);})();
209
+ `;ka(Qf,rv);var mi=class i extends L{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(L.getDefaults(),{channels:2})}dispose(){return super.dispose(),this._merger.disconnect(),this}};var Srt=[1557/44100,1617/44100,1491/44100,1422/44100,1277/44100,1356/44100,1188/44100,1116/44100];var Ert=[1687/25e3,1601/25e3,2053/25e3,2251/25e3];var Ba=class i extends De{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);Ut(e,.001),this._decay=e;let r=this.toSeconds(t.preDelay);Ut(r,0),this._preDelay=r,this.generate(),this.connectEffect(this._convolver)}static getDefaults(){return Object.assign(De.getDefaults(),{decay:1.5,preDelay:.01})}get decay(){return this._decay}set decay(t){t=this.toSeconds(t),Ut(t,.001),this._decay=t,this.generate()}get preDelay(){return this._preDelay}set preDelay(t){t=this.toSeconds(t),Ut(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 Gi({context:e}),n=new Gi({context:e}),o=new mi({context:e});r.connect(o,0,0),n.connect(o,0,1);let s=new X({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 qn=class i extends L{constructor(){let t=I(i.getDefaults(),arguments,["solo"]);super(t),this.name="Solo",this.input=this.output=new X({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(L.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}};qn._allSolos=new Map;qn._soloed=new Map;var Ga=class i extends L{constructor(){let t=I(i.getDefaults(),arguments,["pan","volume"]);super(t),this.name="PanVol",this._panner=this.input=new jo({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,U(this,["pan","volume"])}static getDefaults(){return Object.assign(L.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 _h=class i extends L{constructor(){let t=I(i.getDefaults(),arguments,["volume","pan"]);super(t),this.name="Channel",this._solo=this.input=new qn({solo:t.solo,context:this.context}),this._panVol=this.output=new Ga({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),U(this,["pan","volume"])}static getDefaults(){return Object.assign(L.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 X({context:this.context})),i.buses.get(t)}send(t,e=0){let r=this._getBus(t),n=new X({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}};_h.buses=new Map;var bat=Xt().transport;var xat=Xt().destination,Aat=Xt().destination;var Cat=Xt().listener;var _at=Xt().draw;var vat=Xt();var vh=class{constructor(){d(this,"audioSource");try{let t=new Ba({decay:3,wet:.4}).toDestination(),e=new $r(800,"lowpass").connect(t);this.audioSource=new La(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=Ks(r),this.audioSource.triggerAttackRelease(t,e))}catch(n){}}stop(){try{this.audioSource&&this.audioSource.releaseAll()}catch(t){}}},Sh=new vh;wi();function hv(i){return typeof i=="string"?i:(typeof i=="number"&&(i=W.getChromaticNote(i)),i.format(0,0))}var Va=[Sh],Wn=Sh,lv=(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"),dv=1,qa=!1;function pv(){return Va.map(i=>i.getName())}function mv(){return Wn.getName()}function fv(i){(y.isArray(i)?i:[i]).forEach(t=>{if(!H.Obj.hasProperties(t,["getName","playNote","stop"])||!y.isFunction(t.getName)||!y.isFunction(t.playNote)||!y.isFunction(t.stop))throw new T(7,"Invalid instrument object: "+t);Va.some(e=>e.getName()===t.getName())?console.warn(`Instrument "${t.getName()}" already added!`):Va.push(t),Jf(t.getName())})}function Jf(i){if(i===Wn.getName())return;Wn.stop();let t=Va.find(e=>e.getName()===i);t&&(Wn=t)}function Wa(i,t,e){qa||Wn.playNote(hv(i),t!=null?t:lv,e!=null?e:dv)}function Ua(){Wn.stop()}function gv(){Ua(),qa=!0}function yv(){qa=!1}function bv(){return qa}var Wh={};tn(Wh,{Annotation:()=>Yn,Arpeggio:()=>fi,Clef:()=>Wi,Connective:()=>gi,DivRect:()=>wh,DocumentBuilder:()=>Ar,DynamicsAnnotation:()=>Wo,Fermata:()=>qo,Label:()=>zo,LyricsAlign:()=>Vo,LyricsHyphen:()=>zn,MAccidental:()=>Ho,MArpeggio:()=>Jo,MBarLineLeft:()=>hs,MBarLineRight:()=>us,MBeamGroup:()=>ms,MConnective:()=>bs,MDocument:()=>Zr,MEnding:()=>ds,MExtensionLine:()=>ys,MFermata:()=>gs,MHeader:()=>Is,MImage:()=>Yo,MLyrics:()=>xs,MMeasure:()=>Cs,MNoteGroup:()=>rs,MPlaybackButtons:()=>qh,MPlayer:()=>Kn,MRenderContext:()=>Qc,MRenderer:()=>Vh,MRest:()=>ts,MRhythmColumn:()=>os,MScoreRow:()=>ws,MScoreRowGroup:()=>Ss,MSpecialText:()=>ss,MStaff:()=>_s,MStaffBarLine:()=>ls,MStaffBeamGroup:()=>fs,MStaffNoteGroup:()=>is,MStaffRest:()=>es,MStaffSignature:()=>Qo,MTab:()=>vs,MTabNoteGroup:()=>ns,MTabRhythm:()=>As,MTabSignature:()=>Ko,MText:()=>$o,MusicInterface:()=>xt,Navigation:()=>br,NoteAnchor:()=>Je,PlayState:()=>$a,ScoreEvent:()=>Ns,ScoreObjectEvent:()=>zi,ScoreStaffPosEvent:()=>Ui,StaffPreset:()=>Un,Stem:()=>gr,TempoAnnotation:()=>Uo,TieType:()=>yr,VerticalPosition:()=>Go,getStringNumbers:()=>Ya,getVerseNumbers:()=>eg,getVoiceIds:()=>se,isStringNumber:()=>Bo,isVerseNumber:()=>Ha,isVoiceId:()=>xe,setColor:()=>xv,validateStringNumber:()=>Av,validateVerseNumber:()=>Cv,validateVoiceId:()=>Fo});var tg={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},Q={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 za(i,t){return i.toLocaleLowerCase()===t.toLocaleLowerCase()}function xv(i,...t){let e=t.length===1&&za(t[0],"background"),r=t.length===0;za(i,"")&&(i=e?"white":"black");let n=!0;for(let o in Q){let s=o.split("_"),a=t.length>0&&t.every(u=>s.some(h=>za(u,h))),c=s.length===1&&za(s[0],"background");(r&&!c||a)&&(Q[o]=i,n=!1)}n&&console.error(`Color attrs ${H.Str.stringify(t)} did not match any color.`)}var wh=class i{constructor(...t){d(this,"left");d(this,"anchorX");d(this,"right");d(this,"top");d(this,"anchorY");d(this,"bottom");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 DivRect args: ${t}`)}static create(t,e,r,n){return new i(t,t+r,e,e+n)}static createCentered(t,e,r,n){return new i(t-r/2,t,t+r/2,e-n/2,e,e+n/2)}static createSections(t,e,r,n){return new i(-t,0,e,-r,0,n)}get centerX(){return this.anchorX}set centerX(t){this.anchorX=t}get centerY(){return this.anchorY}set centerY(t){this.anchorY=t}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 i.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 i.equalsEdges(this,t)}static equalsFrame(t,e){return i.equalsEdges(t,e)}copy(){return new i(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.copy().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.copy().expandInPlace(t)}clipInPlace(t){return this.left=Math.max(this.left,t.left),this.right=Math.min(this.right,t.right),this.anchorX=H.Math.clamp(this.anchorX,this.left,this.right),this.top=Math.max(this.top,t.top),this.bottom=Math.min(this.bottom,t.bottom),this.anchorY=H.Math.clamp(this.anchorY,this.top,this.bottom),this}clipCopy(t){return this.copy().clipInPlace(t)}scaleInPlace(t,e){return e=e!=null?e:t,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){return this.copy().scaleInPlace(t,e)}getRect(){return this}};var Un=(s=>(s.Treble="treble",s.Bass="bass",s.Grand="grand",s.GuitarTreble="guitarTreble",s.GuitarTab="guitarTab",s.GuitarCombined="guitarCombined",s))(Un||{}),Wi=(e=>(e.G="G",e.F="F",e))(Wi||{});function se(){return[0,1,2,3]}function xe(i){return y.isIncluded(i,se())}function Fo(i){if(xe(i))return i;throw new T(6,`Voice id ${i} is invalid!`)}function Ya(){return[1,2,3,4,5,6]}function Bo(i){return y.isIncluded(i,Ya())}function Av(i){if(Bo(i))return i;throw new T(6,`String number ${i} is invalid!`)}function eg(){return[1,2,3]}function Ha(i){return y.isIncluded(i,eg())}function Cv(i){if(Ha(i))return i;throw new T(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||{}),Go=(n=>(n.Auto="auto",n.Above="above",n.Below="below",n.Both="both",n))(Go||{}),Vo=(r=>(r.Left="left",r.Center="center",r.Right="right",r))(Vo||{}),zn=(e=>(e.Hyphen="-",e.Extender="---",e))(zn||{}),qo=(e=>(e.AtNote="atNote",e.AtMeasureEnd="atMeasureEnd",e))(qo||{}),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||{}),Yn=(e=>(e.Dynamics="dynamics",e.Tempo="tempo",e))(Yn||{}),Wo=(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))(Wo||{}),Uo=(r=>(r.accel="accel.",r.rit="rit.",r.a_tempo="a tempo",r))(Uo||{}),zo=(e=>(e.Note="note",e.Chord="chord",e))(zo||{}),$a=(r=>(r[r.Playing=0]="Playing",r[r.Paused=1]="Paused",r[r.Stopped=2]="Stopped",r))($a||{});var Za=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)}},et=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 Xa;(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"})(Xa=Xa||(Xa={}));var yi;(function(i){i.Hex="hex",i.RGB="rgb",i.Array="array"})(yi=yi||(yi={}));var rg={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]};var Ih=rg;var Th={hash:!0,lowercase:!1,short:!1};function Nh(i,t){let e=O(O({},Th),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 Oh(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 _v=K(O({},Th),{fallback:!0,alpha:1,format:yi.Hex});function Rh(i,t={}){let e=O(O({},_v),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=Ih[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 Oh(h,c);default:return Nh(h,{hash:o,lowercase:s,short:a})}}var ig="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 ng="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 vv=new dt([[0,ig],[1,ng]]),Sv=i=>vv.getOrDefault(i,""),wv=new Al;function Iv(i,t=1){let e=Rh(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 Tv(i,t){return!i&&!t?!0:!i||!t?!1:i.scoreRow===t.scoreRow&&i.diatonicId===t.diatonicId}function Nv(i,t){return!i&&!t?!0:!i||!t?!1:i.length===t.length&&i.every((e,r)=>e===t[r])}var Qa=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=Gs.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=wv.getOrCreate(t,e,()=>{let n={src:Sv(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]=Iv(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 yl(t.offsetX,t.offsetY)}updateCurStaffPos(t,e){let r=!Tv(t,this.curStaffPos);if(r&&this.curStaffPos&&this.scoreEventListener){let{scoreRow:n,diatonicId:o}=this.curStaffPos;this.scoreEventListener(new Ui("leave",this.getMusicInterface(),n.getMusicInterface(),o))}if(r&&t&&this.scoreEventListener){let{scoreRow:n,diatonicId:o}=t;this.scoreEventListener(new Ui("enter",this.getMusicInterface(),n.getMusicInterface(),o))}if(e&&t&&this.scoreEventListener){let{scoreRow:n,diatonicId:o}=t;this.scoreEventListener(new Ui("click",this.getMusicInterface(),n.getMusicInterface(),o))}return this.curStaffPos=t,r}updateCurObjects(t,e){let r=!Nv(t,this.curObjects);return r&&this.curObjects&&this.curObjects.length>0&&this.scoreEventListener&&this.scoreEventListener(new zi("leave",this.getMusicInterface(),this.curObjects.map(n=>n.getMusicInterface()))),r&&t&&t.length>0&&this.scoreEventListener&&this.scoreEventListener(new zi("enter",this.getMusicInterface(),t.map(n=>n.getMusicInterface()))),e&&t&&t.length>0&&this.scoreEventListener&&this.scoreEventListener(new zi("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(Q.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(Q.HilightObject),this.strokeRect(e.left,e.top,e.width,e.height)}drawPlayCursor(){let{cursorRect:t}=this;t&&this.color(Q.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=Q.Background,this.ctx.clearRect(0,0,this.ctx.canvas.width,this.ctx.canvas.height))}drawDebugRect(t){tg.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}=Ot.get(Br(t+"n")),n=0,o=0,s=0,a=0;if(Ot.equals(t,"1n"))n=e,o=e,s=0,a=e;else if(Ot.equals(t,"2n"))n=e,o=e,s=e,a=0;else if(Ot.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}=Ot.get(Br(t+"n"));if(Ot.equals(t,"1n"))this.fillRect(e-n,r,n*2,n);else if(Ot.equals(t,"2n"))this.fillRect(e-n,r-n,n*2,n);else if(Ot.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 H.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}drawBrace(t,e){return this.drawBracket(t,e==="left"?"{":"}")}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 Ka=class{constructor(t){this.measure=t;d(this,"accidentalByDiatonicId",[])}getAccidentalFromKeySignature(t){let r=this.measure.getKeySignature().getOrderedAccidentalNotes().find(n=>n.diatonicClass===W.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 Ja=class extends et{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 Yo(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 Yi=class extends et{constructor(e,r,n,o="black"){super(e);this.diatonicId=r;this.accidental=n;this.color=o;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{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 T(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 Ov=.5,st=class extends et{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?Ov: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 $o(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,N=g-l*c+o*(C+1)+p;e.fillText(x,S,N)}),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 Zo=class extends et{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 Qo(this)}get doc(){return this.measure.doc}getMusicInterface(){return this.mi}updateClefImage(e,r){if(r){let n=Q.Staff_Signature_Clef;["black","#000","#000000"].includes(n)&&(n="");let o=e.getImageAsset(this.staff.clefImageAsset,n);this.clefImage=o?new Ja(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=Q.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=Q.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 Yi(this,this.getAccidentalDiatonicId(c),0,n))}),a.getOrderedAccidentalNotes().forEach(c=>{this.ksNewAccidentals.push(new Yi(this,this.getAccidentalDiatonicId(c),c.accidental,n))})}else this.ksNeutralizeAccidentals=[],this.ksNewAccidentals=[]}updateTimeSignature(e){if(e){let r=this.measure.getTimeSignature(),n=Q.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=Q.Staff_Signature_Tempo,n=Qs(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 W.findNextDiatonicIdAbove(e.diatonicId,n,!1);throw new T(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)}},Xo=class extends et{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 Ko(this)}getMusicInterface(){return this.mi}get doc(){return this.measure.doc}updateMeasureNumber(e){if(e){let r=Q.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=Q.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=Q.Tab_Signature_Tempo,n=Qs(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 tc=class extends et{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 Jo(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 Rv(i){return typeof i=="number"?W.getChromaticNote(i).diatonicId:typeof i=="string"?W.getNote(i).diatonicId:i instanceof W?i.diatonicId:void 0}var ec=class extends et{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 es(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))}},Hn=class Hn extends et{constructor(e,r,n,o,s){var u,h,l,p;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=(h=Rv((u=this.options)==null?void 0:u.staffPos))!=null?h:Hn.UndefinedDiatonicId;let a=this.row.getStaves().filter(m=>m.containsVoiceId(this.voiceId));this.setDiatonicId!==Hn.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=(l=o==null?void 0:o.color)!=null?l:Q.Staff_Rest,this.hide=(p=o==null?void 0:o.hide)!=null?p:!1,this.oldStyleTriplet=s===void 0&&((o==null?void 0:o.triplet)===!0||Ot.get(n).isTriplet);let c=typeof(o==null?void 0:o.dotted)=="number"?o.dotted>0?o.dotted:void 0:(o==null?void 0:o.dotted)===!0?1:void 0;this.rhythmProps=Qt.get(n,c,(s!=null?s:this.oldStyleTriplet)?Gr.Triplet:void 0),this.mi=new ts(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===Hn.UndefinedDiatonicId?e?Ot.equals(this.noteLength,"1n")?e.middleLineDiatonicId+2:e.middleLineDiatonicId:W.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 ec&&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 T(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 ec(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(Hn,"UndefinedDiatonicId",1/0);var ae=Hn;function Mv(i){return y.isEnumValue(i,fi)?i:i===!0?"up":void 0}function Ev(i,t){let e=H.Arr.isArray(t)?t:t!==void 0?[t]:[],r=i.map((n,o)=>({note:n,string:e[o]}));return r=H.Arr.removeDuplicates(r,(n,o)=>W.equals(n.note,o.note)).sort((n,o)=>W.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 rc=class extends et{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 is(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()}},Mh=class extends et{constructor(e,r){super(e);this.tab=e;this.noteGroup=r;d(this,"fretNumbers",[]);d(this,"mi");this.mi=new ns(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 et{constructor(e,r,n,o,s,a){var l,p,m;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 T(6,"Cannot create note group object because notes array is empty.");let{sortedNotes:c,sortedStrings:u}=Ev(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=(l=s==null?void 0:s.color)!=null?l:Q.Staff_Note,this.staccato=(p=s==null?void 0:s.staccato)!=null?p:!1,this.diamond=(m=s==null?void 0:s.diamond)!=null?m:!1,this.arpeggio=Mv(s==null?void 0:s.arpeggio),this.oldStyleTriplet=a===void 0&&((s==null?void 0:s.triplet)===!0||Ot.get(o).isTriplet);let h=typeof(s==null?void 0:s.dotted)=="number"?s.dotted>0?s.dotted:void 0:(s==null?void 0:s.dotted)===!0?1:void 0;this.rhythmProps=Qt.get(o,h,(a!=null?a:this.oldStyleTriplet)?Gr.Triplet:void 0),this.mi=new rs(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 jt||e.containsDiatonicId(this.runningDiatonicId))}startConnective(e){if(!this.row.hasStaff&&e.connective==="tie")throw new T(6,"Ties not implemented for guitar tabs alone, staff is required!");if(!this.row.hasStaff&&e.connective==="slur")throw new T(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===ae.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 T(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,N=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:N}:{x:s==="left"&&m==="right"?C:s==="right"&&m==="left"?x:g,y:N};case"stemTip":return{x:g,y:h.anchorY+(l==="up"?-f:f)};default:throw new T(6,"Invalid noteAnchor: "+o)}}else if(r instanceof jt){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 rc&&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=>W.equals(c,e))?0:(o=o.slice(s),s=o.findIndex(c=>c.notes.every(u=>!W.equals(u,e))),s>=0&&(o=o.slice(0,s)),H.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 rc(m,this),g=m,b=m;this.notes.forEach((A,_)=>{var j;let E=_===0,V=_===this.notes.length-1,M=(j=m.getActualStaff(A.diatonicId))!=null?j:m,R=this.isNoteDisplaced[_]?l*(s==="down"?-1:1):0,P=M.getDiatonicIdY(A.diatonicId),D=M.isLine(A.diatonicId);E&&s==="up"&&(g=M),V&&s==="up"&&(b=M),E&&s==="down"&&(b=M),V&&s==="down"&&(g=M);let k=f.noteHeadRects[_]=G.createCentered(R,P,l,p);if(M.addObject(k),r.needAccidental(A)){let q=f.accidentals[_]=new Yi(this,A.diatonicId,A.accidental,this.color);q&&(q.layout(e),q.setAnchor(-k.leftw-n*ct.NoteAccSpace-q.getRect().rightw,P)),M.addObject(q)}for(let q=0;q<a;q++){let J=k.right+ct.NoteDotSpace*n+h/2+q*h*1.5,$=P+this.getDotVerticalDisplacement(m,A.diatonicId,s)*n,B=G.createCentered(J,$,h,h);f.dotRects.push(B),M.addObject(B)}if(this.staccato){if(s==="up"&&E){let q=R,J=P+n*(D?3:2),$=G.createCentered(q,J,h,h);f.dotRects.push($),g.addObject($)}else if(s==="down"&&V){let q=R,J=P-n*(D?3:2),$=G.createCentered(q,J,h,h);f.dotRects.push($),g.addObject($)}}});let x=f.noteHeadRects[0].anchorY,C=f.noteHeadRects[f.noteHeadRects.length-1].anchorY,S=s==="up"?l/2:-l/2,N=this.getStemHeight(e),w=s==="up"?C-N:x+N,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 V=E*n*ct.FlagSeparation,M=f.flagRects[E]=s==="up"?new G(S,S+A,w+V,w+_+V):new G(S,S+A,w-_-V,w-V);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 Mh(m,this),g=Q.Background,b=Q.Tab_Note;this.notes.forEach((x,C)=>{let S=this.runningStringNumbers[C];if(y.isIntegerBetween(S,1,6)){let N=x.chromaticId-m.getTuningStrings()[S-1].chromaticId,w=new st(this,{text:String(N),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 et{constructor(e,r){super(e);this.measure=e;this.positionTicks=r;d(this,"voiceSymbol",new vr);d(this,"lyricsObject",new Vs);d(this,"minDiatonicId");d(this,"maxDiatonicId");d(this,"staffMinDiatonicId",new dt);d(this,"staffMaxDiatonicId",new dt);d(this,"arpeggioDir");d(this,"arpeggios",[]);d(this,"playerProps");d(this,"needLayout",!0);d(this,"shapeRects",[]);d(this,"mi");this.playerProps=new $n(this),this.mi=new os(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 T(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 ae){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){Fo(e),this.voiceSymbol.set(e,r),r instanceof ae&&!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=W.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 se().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)=>W.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 tc(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 ae){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(Q.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 et{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 ss(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 we=Lr;function Dh(i){return i instanceof st||i instanceof we?i.getText():i instanceof bi?"[measure]":""}var Eh=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}},ic=class ic extends Za{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 we)[0];return o||(e===n[n.length-1]&&r.hasEndSection()||r.hasEndSong()||ic.StopNavigations.some(s=>r.hasNavigation(s))?r.getBarLineRight():void 0)}getRange(){let{startColumn:e,length:r}=this,n=e,o=new Eh(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(ic,"StopNavigations",["endRepeat","ending"]);var Hi=ic;function as(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 we.Segno;case"Coda":return we.Coda;case"toCoda":return we.toCoda;default:return i[0].toUpperCase()+i.substring(1)}}function cs(i){if(/^(p+|f+|m|mp|mf)$/.test(i)){let t=.5-H.Str.charCount(i,"p")*.1+H.Str.charCount(i,"f")*.1;return H.Math.clamp(t,0,1)}else return}function og(i){return y.isEnumValue(i,Wo)?"dynamics":y.isEnumValue(i,Uo)?"tempo":void 0}var Dv=2,kv=2,Lv=.5,jv=.5;function Pv(i,t){let e=Qt.get(t.options.beatLength,t.options.dotCount).ticks,r=t.beatsPerMinute*e;return 60*i/r}function kh(){return cs("m")}function Fv(i){return i*1.25}var Bv=.5,$n=class{constructor(t){this.col=t;d(this,"speed");d(this,"volume");this.speed=1,this.volume=kh()}get measure(){return this.col.measure}reset(){this.speed=1,this.volume=kh()}setSpeed(t){this.speed=t}getSpeed(){return this.speed}getTempo(){let t=H.Math.clamp(this.getSpeed(),.1,10);return Au(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=se().map(n=>t.getVoiceSymbol(n)).filter(n=>!!n).map(n=>n.rhythmProps.ticks);return r.length===0?0:H.Math.sum(r)/r.length}}},nc=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=kh(),r=new dt,n=new dt,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=Dh(h.musicObj),p;if(l==="a tempo")t=1;else if((p=cs(l))!==void 0)e=p;else if(h.musicObj.getLink()instanceof Hi){let f=h.musicObj.getLink().getRange(),g=f.stopObject?Dh(f.stopObject):"",b=H.Math.sum(f.columnRange.map(x=>x.getTicksToNextColumn()));switch(l){case"accel.":{let x=t,C=x*Dv,S=0;f.columnRange.forEach(N=>{S+=N.getTicksToNextColumn(),o(N,x+(C-x)*S/b)});break}case"rit.":{let x=t,C=x/kv,S=0;f.columnRange.forEach(N=>{S+=N.getTicksToNextColumn(),o(N,x+(C-x)*S/b)});break}case"cresc.":{let x=e,C=x+Lv;f.stopObject&&(p=cs(g))!==void 0&&p>x&&(C=p);let S=0;f.columnRange.forEach(N=>{S+=N.getTicksToNextColumn(),s(N,x+(C-x)*S/b)});break}case"decresc.":case"dim.":{let x=e,C=x-jv;f.stopObject&&(p=cs(g))!==void 0&&p<x&&(C=p);let S=0;f.columnRange.forEach(N=>{S+=N.getTicksToNextColumn(),s(N,x+(C-x)*S/b)});break}}}});let c=r.getOrDefault(a,[]);c.length>0&&(t=H.Math.sum(c)/c.length);let u=n.getOrDefault(a,[]);u.length>0&&(e=H.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=Pv(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()?Qt.get("32n").ticks*c:0,h=e(a.ticks+n-u,r);if(h>0){a.staccato&&(h=Math.min(e(Qt.get("8n").ticks,r)/2,h/2));let l=Fv(t.getPlayerProps().getVolume());if(a.slur==="slurred"&&(l*=Bv),u>0){let p=e(u,r);window.setTimeout(()=>Wa(a.note,h,l),p*1e3)}else Wa(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 hu(r,n,0,o)}};var Lh=class extends et{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 ls(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)}},oc=class extends et{constructor(e){super(e);this.measure=e;d(this,"notationLineObjects",[]);d(this,"notationLineObjectsByGrp",new dt);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 Lh(this,f,m);this.notationLineObjects.push(g),this.notationLineObjectsByGrp.getOrCreate(m,[]).push(g);let b,x,C=(N,w)=>{g.vlines.push({left:N,width:w})},S=N=>{for(let w=-1;w<=1;w+=2){let v=b+w*x;g.dots.push({x:N,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 oc{constructor(e){super(e);d(this,"mi");this.mi=new hs(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 oc{constructor(e){super(e);d(this,"playerProps");d(this,"mi");this.playerProps=new $n(this),this.mi=new us(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 $i=class extends et{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 ds(this),y.isIntegerGte(n.length,1)){if(!this.passages.every(s=>y.isIntegerGte(s,1)))throw new T(6,"Invalid passages: "+this.passages)}else throw new T(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 Gv=(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}},ps=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)}},jh=class extends et{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 fs(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}},Zi=class i extends et{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 ms(this);let n=r?"Tuplet":"BeamGroup";if(e.every(o=>o.measure===e[0].measure)){if(e.length<2)throw new T(6,`${n} needs minimum 2 symbols, but ${e.length} given.`)}else throw new T(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=>Ot.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 T(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 T(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 P,D;if(!c)return;let h=a.map(k=>{var j;return(j=k[u])==null?void 0:j.x}),l=a.map(k=>{var j;return(j=k[u])==null?void 0:j.y}),p=a.map(k=>{var j;return(j=k[u])==null?void 0:j.staff}),m=a.map(k=>{var j;return(j=k[u])==null?void 0:j.stemHeight}),f=r[0],g=h[0],b=l[0],x=p[0],C=r[r.length-1],S=h[h.length-1],N=l[l.length-1],w=p[l.length-1];if(g===void 0||b===void 0||x===void 0||S===void 0||N===void 0||w===void 0)return;let v=(P=m[0])!=null?P:0,A=(D=m[m.length-1])!=null?D:0;if(s!==2){let k=v<A?Math.sqrt(A-v):0,j=A<v?Math.sqrt(v-A):0;o==="up"&&(k*=-1,j*=-1),k!==0&&(b+=k,l[0]+=k),j!==0&&(N+=j,l[l.length-1]+=j)}let _=n*2*(o==="up"?-1:1),E=(N+b)/2,V=Gv(S-g,N-b)/2;b=E-V,N=E+V;let M=0;l.forEach((k,j)=>{let q=h[j];if(q!==void 0&&k!==void 0){let J=H.Math.interpolateY(g,b,S,N,q),$=k-J;o==="up"&&$<0?M=Math.min(M,$):o==="down"&&$>0&&(M=Math.max(M,$))}}),b+=M,N+=M,l=l.map(k=>k===void 0?void 0:k+M);let R=new jh(c,this);if(s===2){let k=n/(S-g),j=H.Math.interpolateCoord(g,b+_,S,N+_,-k),q=H.Math.interpolateCoord(g,b+_,S,N+_,1+k);R.points.push(new ps(x,this,f,j.x,j.y)),R.points.push(new ps(w,this,C,q.x,q.y)),R.tupletNumberOffsetY=0}else if(s===0||s===1){M*=.5;let k=e._lineWidth*ct.BeamThickness,j=q=>{let J=r[q];if(J instanceof At){let $=J instanceof At?Math.max(J.getLeftBeamCount(),J.getRightBeamCount()):0;return ct.BeamSeparation*n*(o==="up"?$-1:0)}else return 0};r.forEach((q,J)=>{let $=p[J],B=h[J],mt=l[J];if($&&B!==void 0&&mt!==void 0){let Ct=new ps($,this,q,B,mt);switch(o){case"up":Ct.topBeamsHeight=k/2,Ct.bottomBeamsHeight=k/2+j(J);break;case"down":Ct.topBeamsHeight=k/2+j(J),Ct.bottomBeamsHeight=k/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+N)/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=H.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=H.Math.interpolateCoord(u,h,l,p,.5-m/2),g=H.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:N}=c[f+1],w=x.getRightBeamCount(),v=N.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 et{constructor(e,r,n){super(e);this.pos=r;this.color=n;d(this,"mi");this.mi=new gs(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 Vv(i){return i instanceof st||i instanceof we}function ag(i){return i instanceof xr||i instanceof st||i instanceof we}var Zn=class extends et{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 ys(this)}get row(){return this.measure.row}getMusicInterface(){return this.mi}getLineLeft(e){let r=this.cols[0];if(Vv(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(ag(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&&!ag(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 Xi=class extends et{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 bs(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,N,w,v;if(c===void 0)S=x.x,N=x.y,w=C.x,v=C.y;else if(s.row===m&&c.row===m)S=x.x,N=x.y,w=C.x,v=C.y;else if(s.row===f&&c.row===m){let R=f.getConnectivesContentRect().right-x.x,P=C.x-b.left;S=b.left,N=x.y+(C.y-x.y)*R/(R+P),w=C.x,v=C.y}else if(s.row===m&&c.row===g){let M=g.getConnectivesContentRect(),R=b.right-x.x,P=C.x-M.left;S=x.x,N=x.y,w=b.right,v=x.y+(C.y-x.y)*R/(R+P)}else throw new T(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=N,this.rx=w,this.ry=v,this.arcHeight=this.connectiveProps.connective==="slide"?0:_;let{nx:E,ny:V}=H.Math.calcNormal(S,N,w,v);this.cp1x=S*.7+w*.3+E*this.arcHeight,this.cp1y=N*.7+v*.3+V*this.arcHeight,this.cp2x=S*.3+w*.7+E*this.arcHeight,this.cp2y=N*.3+v*.7+V*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 jt?Q.Tab_Connective:Q.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 Xn=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=>W.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 Xi(this,t,e.measure,e,r,n):t instanceof jt&&e.getFretNumberString(r)!==void 0&&new Xi(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 Xi(this,t,a,c,u,h,l);else if(t instanceof jt){let p=c.getFretNumberString(u),m=h.getFretNumberString(l);p!==void 0&&m!==void 0&&(p===m||this.connective==="slur")&&new Xi(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 T(6,"Cannot create connective because it is jumping measures.")}};var sc=class extends et{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=Qt.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,zn)?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 xs(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 Qn=class extends et{constructor(e,r){super(e);this.measure=e;this.tab=r;d(this,"voiceId");d(this,"mi");d(this,"tupletPartsTextObjMap",new dt);this.voiceId=se().filter(n=>r.containsVoiceId(n)),this.rect=new G,this.mi=new As(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=se().map(o=>H.Math.sum(r.map(s=>s.getVoiceSymbol(o)?1:0)));this.voiceId.sort((o,s)=>H.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],N=x[C+1],w=S.col.getRect().anchorX;if(S instanceof At){if(e.lineWidth(1),e.color(Q.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 ae){e.lineWidth(1),e.color(Q.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(N){let v=S,A=N,_=v.col.getRect().anchorX,E=A.col.getRect().anchorX,V=v.hasTuplet()?1:v instanceof At?v.getRightBeamCount():1,M=A.hasTuplet()?1:A instanceof At?A.getLeftBeamCount():1,R=Math.max(V,M);e.color(Q.Tab_Note),e.lineWidth(2);for(let P=0;P<R;P++){let D=M>V&&P>=V?.75:0,k=V>M&&P>=M?.25:1;e.strokePartialLine(_,h+P*o,E,h+P*o,D,k)}e.lineWidth(1);for(let P=0;P<v.rhythmProps.dotCount;P++)e.fillCircle(_+s*(P+1),l-a,a);for(let P=0;P<A.rhythmProps.dotCount;P++)e.fillCircle(E+s*(P+1),l-a,a)}if(b&&b.isTuplet()){e.color(Q.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 qv(i){switch(i){case"bottom":return .8;case"middle":return .5}}function Wv(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=Qt.get(r).ticks;typeof n=="number"&&(e++,o*=n),t+=o}else e++}return t}else return i}function Uv(i){switch(i){case 1:return 8;case 2:return 9;case 3:return 10;default:throw new T(0,"VerseNumber is not 1, 2 or 3.")}}var Ph=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 et{constructor(e,r){super(e);this.row=e;this.options=r;d(this,"prevMeasure");d(this,"nextMeasure");d(this,"keySignature",zs());d(this,"timeSignature",Zs());d(this,"tempo",Xs());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 Ph);d(this,"needLayout",!0);d(this,"voiceSymbols",Ws(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 qs);d(this,"isEndSong",!1);d(this,"isEndSection",!1);d(this,"endRepeatPlayCount",2);d(this,"endRepeatPlayCountText");d(this,"staticObjectsCache",new dt);d(this,"lyricsObjectsCache",new Vs);d(this,"mi");this.mi=new Cs(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 Qn(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=H.Math.sum(se().map(o=>this.getVoiceSymbols(o).length>0?1:0));se().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:W.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===ae.UndefinedDiatonicId?r<2&&(u.diatonicId=ae.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=uo(""+e[1]);this.alterKeySignature=Pr(n,o)}catch(n){throw new T(6,"Cannot set key signature because invalid args: "+e)}}this.updateKeySignature()}updateKeySignature(){this.keySignature=this.prevMeasure?this.prevMeasure.keySignature:zs(),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:Zs(),this.alterTimeSignature&&(this.timeSignature=this.alterTimeSignature),this.nextMeasure&&this.nextMeasure.updateTimeSignature(),this.requestLayout()}getTempo(){return this.tempo}setTempo(e,r,n){var o;if((o=this.getPrevMeasure())==null||o.endSection(),r===void 0)this.alterTempo={beatsPerMinute:e};else{let s=typeof n=="number"&&n>0?n:n===!0?1:Ot.get(r).dotCount,a={beatLength:Br(r),dotCount:s>0?s:void 0};this.alterTempo={beatsPerMinute:e,options:a}}this.updateTempo()}updateTempo(){var e;if(this.tempo=this.prevMeasure?this.prevMeasure.tempo:Xs(),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 cc(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 T(6,"Cannot add Fermata because anchor is undefined.");this.forEachStaffGroup(e,0,(o,s)=>{let a=o instanceof jt?Q.Staff_Element_Fermata:Q.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 T(6,"Cannot add ending beasure measure already has one.");let s=this,a=n;o={createObj:c=>{let u=c instanceof jt?Q.Staff_Element_Navigation:Q.Tab_Element_Navigation;return new $i(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=as(r);o={createObj:h=>{let l=h instanceof jt?Q.Staff_Element_Navigation:Q.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=as(r);o={createObj:h=>{let l=h instanceof jt?Q.Staff_Element_Navigation:Q.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=as(r);o={createObj:h=>{let l=h instanceof jt?Q.Staff_Element_Navigation:Q.Tab_Element_Navigation;return new we(c,u,l)},layoutGroupId:3,defaultVerticalPos:0};break}case"toCoda":{let c=this.barLineRight,u=as(r);o={createObj:h=>{let l=h instanceof jt?Q.Staff_Element_Navigation:Q.Tab_Element_Navigation;return new we(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 T(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:Q.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 T(6,"Cannot add annotation because annotation text is empty.")}else throw new T(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=qv(u);this.disableExtension(),this.forEachStaffGroup(e,c,(p,m)=>{let f=p instanceof jt?Q.Staff_Element_Annotation:Q.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 T(6,"Cannot add label because label text is empty.")}else throw new T(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 jt?Q.Staff_Element_Label:Q.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 T(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 Xn("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 Xn("slur",o,s,n))}else if(e==="slide"){let o=y.isEnumValue(r[0],Je)?r[0]:"auto";n.startConnective(new Xn("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 Hi(o,c,Wv(e),r,u,h);a.setLink(l)}else throw new T(6,"Cannot add extension becaue no compatible music object to attach it to.")}),this.addExtensionTo.length===0)throw new T(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 $i)}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"?W.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 ae(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 sc(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)=>H.Math.cmp(m.col.positionTicks,f.col.positionTicks)),(p=h.measure.getPrevLyricsObject(h))==null||p.setNextLyricsObject(h),this.addLayoutObject(h,a,Uv(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 T(6,"Error in rhythm column. Should never get here.")}getMeasureTicks(){return this.getTimeSignature().measureTicks}getConsumedTicks(e){let r=0;return this.columns.forEach(n=>{se().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 Hi){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 Zn(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=Zi.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||(se().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([H.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*Ot.get("8n").ticks,g=s+f,b=n.filter(C=>{let S=o+C.col.positionTicks,N=S+C.rhythmProps.ticks;return S>=s&&N<=g});H.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)&&Zi.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(se().filter(r=>this.getConsumedTicks(r)>0));return}else if(y.isArray(e)){e.forEach(r=>this.completeRests(r));return}else{Fo(e);let r=this.getMeasureTicks(),n=this.getConsumedTicks(e),o=r-n,s=[];for(;o>0;)for(let a=Ot.LongestNoteSize;a<=Ot.ShortestNoteSize;a*=2){let c=Ot.create(a).noteLength;for(let u=Ot.get(c).maxDotCount;u>=0;u--){let h=Qt.get(c,u);for(;h.ticks<=o;)s.push(h),o-=h.ticks}}s.reverse().forEach(a=>this.addRest(e,a.noteLength,{dotted:a.dotCount}))}}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 Zo).find(C=>C.staff===f),x=b!=null?b:new Zo(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 jt&&(a||u||h)){let b=this.signatures.filter(C=>C instanceof Xo).find(C=>C.tab===f),x=b!=null?b:new Xo(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=Q.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 Ka(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}),se().forEach(l=>{let p=this.getVoiceSymbols(l),m=p.length===1&&p[0]instanceof ae?p[0]:void 0;!m||se().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),Q.Staff_Frame);else if(s instanceof jt)for(let a=0;a<6;a++)o(s.getStringY(a),Q.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(Q.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 ac=(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))(ac||{}),Fh=new dt([[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 zv(i){for(;i;){if(i instanceof bi)return i;i=i.getParent()}throw new T(6,"Parent measure is required but not found!")}var uc=class{constructor(t,e,r){this.groupName=t;this.staffsTabsAndGroups=e;this.verticalPosition=r}},cc=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=zv(this.musicObj),this.row=this.measure.row;let o=this.musicObj.getParent();if(!o)throw new T(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()}},hc=class{constructor(t){this.layoutGroupId=t;d(this,"layoutObject",Ws(new vr));d(this,"rowAlign");d(this,"reserveSpace");d(this,"padding");var e,r,n,o;this.rowAlign=((e=Fh.get(t))==null?void 0:e.rowAlign)===!0,this.reserveSpace=((r=Fh.get(t))==null?void 0:r.reserveSpace)===!0,this.padding=(o=(n=Fh.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 lc=class extends et{constructor(e){super(e);this.row=e;d(this,"objects",[]);d(this,"layoutGroups",new dt)}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 hc(e))}resetLayoutGroups(e){this.layoutGroups.forEach(r=>r.layout(e))}layoutLayoutGroups(e){for(let r of H.Enum.getEnumValues(ac)){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 $i||a instanceof Zn||a instanceof Qn?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"?Q.Tab_Frame:Q.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 lc{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)=>W.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 T(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 _s(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 W.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 T(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 T(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)||H.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){}},jt=class extends lc{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=>W.getNote(o)).reverse()):typeof r.tuning=="string"?(this.tuningName=yu(r.tuning),this.tuningStrings=Hs(this.tuningName)):(this.tuningName="Standard",this.tuningStrings=Hs(this.tuningName)),this.mi=new vs(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)||H.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 Yv(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 dc=class extends et{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=Q.RowGroup_Instrument,n=Yv((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 Ss(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(Q.RowGroup_Frame).lineWidth(1).drawBracket(r,"{")}}};var pc=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}},mc=class extends et{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 jt);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 dc(s)),this.rowGroupByLine=this.notationLines.map(s=>this.rowGroups.find(a=>a.lines.includes(s))),this.prevRow&&(this.prevRow.nextRow=this),this.mi=new ws(this)}getMusicInterface(){return this.mi}createNotationLines(){let e=this.scoreConfig.map((r,n)=>r.type==="staff"?new Et(this,r,n):new jt(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=>H.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 T(6,"Top staff is required!")}getBottomStaff(){let e=this.staves[this.staves.length-1];if(e)return e;throw new T(6,"Bottom staff is required!")}getStaff(e){W.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 ae&&u.setDiatonicId!==ae.UndefinedDiatonicId).map(u=>u.setDiatonicId);if(n.length===0&&o.length===0)return"up";let s=n.length>0?n:o,a=Math.floor(H.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(),se().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 fc=class extends et{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 Is(this);let s=Q.Header_Title,a=Q.Header_Composer,c=Q.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 gc=class extends et{constructor(){super(void 0);d(this,"needLayout",!0);d(this,"ctx");d(this,"regions",new pc);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 dt);d(this,"mi");this.mi=new Zr(this)}getMusicInterface(){return this.mi}setScoreConfiguration(e){if(y.isEnumValue(e,Un))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="grand";r<this.curScoreConfig.length;){let o=this.curScoreConfig[r],s=this.curScoreConfig[r+1];for(;this.curScoreConfig.filter(a=>a.type==="staff").findIndex(a=>a.grandId===n)>=0;)n+="A";if(o&&o.type==="staff"&&o.isGrand){if(o.grandId!==void 0)throw new T(6,"Grand staff error: mixing isGrand and grandId!");if(s&&s.type==="staff"&&s.isGrand){if(s.grandId!==void 0)throw new T(6,"Grand staff error: mixing isGrand and grandId!");o.grandId=n,s.grandId=n,o.isGrand=s.isGrand=!1,r+=2}else throw new T(6,"Grand staff error: invalid use of isGrand!")}else r++}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 T(6,`Grand staff error: grandId "${o.grandId}" already used!`);if(o.clef!=="G")throw new T(6,`Grand staff error: Invalid treble clef "${o.clef}"!`);if(s.clef!=="F")throw new T(6,`Grand staff error: Invalid treble clef "${o.clef}"!`);if(o.isOctaveDown||s.isOctaveDown)throw new T(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 T(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 fc(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 mc(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 uc(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 lg="";function bt(i,...t){let e=t.map(r=>JSON.stringify(r)).join(", ");lg=`DocumentBuilder.${i}(${e})`}function lt(...i){i.forEach(t=>{if(!t)throw new T(6,lg)})}function Bh(i,t){if(!i)throw new T(6,t)}function dg(i){var t;if(lt(y.isObject(i),y.isStringOrUndefined(i.name),y.isUndefined(i.voiceId)||xe(i.voiceId)||y.isArray(i.voiceId)&&i.voiceId.every(e=>xe(e))),!y.isUndefined(i.voiceIds)){lt(xe(i.voiceIds)||y.isArray(i.voiceIds)&&i.voiceIds.every(r=>xe(r))),console.warn("Staff/tab config property 'voiceIds' is deprecated, use 'voiceId' instead.");let e=H.Arr.toArray((t=i.voiceId)!=null?t:[]);H.Arr.toArray(i.voiceIds).forEach(r=>e.push(r)),i.voiceId=e}y.isArray(i.voiceId)&&(i.voiceId=H.Arr.removeDuplicates(i.voiceId)),lt(y.isStringOrUndefined(i.instrument))}function cg(i){dg(i),lt(y.isObject(i),y.isStrictEqual(i.type,"staff"),y.isEnumValue(i.clef,Wi),y.isBooleanOrUndefined(i.isOctaveDown),y.isUndefined(i.minNote)||W.isNote(i.minNote),y.isUndefined(i.maxNote)||W.isNote(i.maxNote),y.isStringOrUndefined(i.grandId),y.isBooleanOrUndefined(i.isGrand)),y.isUndefined(i.isGrand)||console.warn("Staff config property 'isGrand' is deprecated, use 'grandId' instead.")}function ug(i){dg(i),lt(y.isObject(i),y.isStrictEqual(i.type,"tab"),y.isUndefined(i.tuning)||y.isString(i.tuning)&&y.isIncluded(i.tuning,ho)||y.isArray(i.tuning)&&y.isStrictEqual(i.tuning.length,Ya().length&&i.tuning.every(t=>W.isNote(t))))}function yc(i){lt(y.isObject(i),y.isBooleanOrUndefined(i.dotted)||y.isIntegerGte(i.dotted,0),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.isBooleanOrUndefined(i.triplet),y.isUndefined(i.string)||Bo(i.string)||y.isEmptyArray(i.string)||y.isNonEmptyArray(i.string)&&i.string.every(t=>Bo(t))),Bh(y.isUndefined(i.tieSpan),'NoteOptions.tieSpan was removed. Use addConnective("tie", tieSpan)'),Bh(y.isUndefined(i.slurSpan),'NoteOptions.slurSpan was removed. Use addConnective("slur", slurSpan)')}function hg(i){lt(y.isObject(i),y.isBooleanOrUndefined(i.dotted)||y.isIntegerGte(i.dotted,0),y.isStringOrUndefined(i.staffPos)||y.isInteger(i.staffPos)||i.staffPos instanceof W,y.isStringOrUndefined(i.color),y.isBooleanOrUndefined(i.hide),y.isBooleanOrUndefined(i.triplet))}function Hv(i){lt(y.isObject(i),y.isEnumValueOrUndefined(i.align,Vo),y.isEnumValueOrUndefined(i.hyphen,zn))}function $v(i){lt(y.isObject(i),y.isBooleanOrUndefined(i.showNumber))}function Ts(i){lt(y.isStringOrUndefined(i)||y.isIntegerGte(i,0)||y.isNonEmptyArray(i)&&i.every(t=>y.isString(t)||y.isIntegerGte(t,0)))}var bc=class bc{constructor(){d(this,"doc");d(this,"currentLyricsAlign","center");this.doc=new gc}setScoreConfiguration(t){return bt("setScoreConfiguration",t),y.isEnumValue(t,Un)?this.doc.setScoreConfiguration(t):y.isObject(t)&&t.type==="staff"?(cg(t),this.doc.setScoreConfiguration(t)):y.isObject(t)&&t.type==="tab"?(ug(t),this.doc.setScoreConfiguration(t)):y.isNonEmptyArray(t)?(t.forEach(e=>{y.isObject(e)&&e.type==="staff"?cg(e):y.isObject(e)&&e.type==="tab"?ug(e):lt(!1)}),this.doc.setScoreConfiguration(t)):lt(!1),this}getMeasure(){var t;return(t=this.doc.getLastMeasure())!=null?t:this.doc.addMeasure(bc.DefaultMeasureOptions)}getDocument(){return this.doc.getMusicInterface()}setHeader(t,e,r){return bt("setHeader",t,e,r),lt(y.isStringOrUndefined(t),y.isStringOrUndefined(e),y.isStringOrUndefined(r)),this.doc.setHeader(t,e,r),this}setMeasuresPerRow(t){return bt("setMeasuresPerRow",t),lt(y.isIntegerGte(t,1)||y.isPosInfinity(t)),this.doc.setMeasuresPerRow(t),this}addMeasure(t){return bt("addMeasure",t),t!=null||(t={}),$v(t),this.doc.addMeasure(t),this}setKeySignature(...t){return bt("setKeySignature",...t),lt(t[0]instanceof ri||t[0]instanceof rr||y.isNonEmptyString(t[0])&&y.isEnumValueOrUndefined(t[1],Ii)),this.getMeasure().setKeySignature(...t),this}setTimeSignature(...t){return bt("setTimeSignature",...t),t[0]instanceof ii?this.getMeasure().setTimeSignature(t[0]):y.isEnumValue(t[0],lo)&&y.isEnumValueOrUndefined(t[1],Ni)?this.getMeasure().setTimeSignature(new ii(t[0],t[1])):y.isIntegerGte(t[0],1)&&y.isIntegerGte(t[1],1)&&y.isEnumValueOrUndefined(t[2],Ni)?this.getMeasure().setTimeSignature(new ii(t[0],t[1],t[2])):lt(!1),this}setTempo(t,e,r){return bt("setTempo",t,e,r),lt(y.isIntegerGte(t,1),y.isUndefined(e)&&y.isUndefined(r)||nr(e)&&(y.isBooleanOrUndefined(r)||y.isIntegerGte(r,0))),this.getMeasure().setTempo(t,e,r),this}addNote(t,e,r,n){if(bt("addNote",t,e,r,n),lt(xe(t),e instanceof W||y.isNonEmptyString(e)||y.isArray(e)&&e.every(o=>o instanceof W||y.isNonEmptyString(o)),nr(r)),n!=null||(n={}),yc(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),lt(xe(t),y.isNonEmptyArray(e)&&e.every(o=>o instanceof W||y.isNonEmptyString(o)),nr(r)),n!=null||(n={}),yc(n),this.getMeasure().addNoteGroup(t,e,r,n),this}addRest(t,e,r){return bt("addRest",t,e,r),lt(xe(t),nr(e)),r!=null||(r={}),hg(r),this.getMeasure().addRest(t,e,r),this}addTuplet(t,e,r){bt("addTuplet",t,e),lt(xe(t),y.isFunction(r),$s(e)&&y.isBooleanOrUndefined(e.showRatio));let n=[],o={addNote:(s,a,c)=>{if(bt("addTuplet => addNote",s,a,c),lt(s instanceof W||y.isNonEmptyString(s)||y.isArray(s)&&s.every(u=>u instanceof W||y.isNonEmptyString(u)),nr(a)),c!=null||(c={}),delete c.triplet,yc(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),lt(y.isNonEmptyArray(s)&&s.every(h=>h instanceof W||y.isNonEmptyString(h)),nr(a)),c!=null||(c={}),delete c.triplet,yc(c);let u=this.getMeasure().addNoteGroup(t,s,a,c,e);return n.push(u),o},addRest:(s,a)=>{bt("addTuplet => addRest",s,a),lt(nr(s)),a!=null||(a={}),delete a.triplet,hg(a);let c=this.getMeasure().addRest(t,s,a,e);return n.push(c),o}};return r(o),Zi.createTuplet(n,e),this}addLyricsInternal(t,e,r,n,o){var s;return Ts(t),lt(Ha(e),y.isEnumValue(r,ir),y.isString(n)||y.isArray(n)&&n.every(a=>y.isString(a))),o!=null||(o={}),Hv(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 Ts(t),lt(y.isEnumValue(e,qo)),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 Ts(t),lt(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=og(r)),e===void 0)throw new T(6,`Annotation text "${r}" is not known annotation.`);return Ts(t),lt(y.isEnumValue(e,Yn),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 Ts(t),lt(y.isEnumValue(e,zo),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),lt(y.isEnumValue(t,gi)),t==="tie"){lt(y.isIntegerOrUndefined(e[0])||y.isEnumValue(e[0],yr)),lt(y.isEnumValueOrUndefined(e[1],Je));let r=e[0],n=e[1];this.getMeasure().addConnective(t,r,n)}else if(t==="slur"){lt(y.isIntegerOrUndefined(e[0])),lt(y.isEnumValueOrUndefined(e[1],Je));let r=e[0],n=e[1];this.getMeasure().addConnective(t,r,n)}else if(t==="slide"){lt(y.isEnumValueOrUndefined(e[0],Je));let r=e[0];this.getMeasure().addConnective(t,r)}return this}addExtension(t){bt("addExtension"),Bh(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),lt(nr(o)),lt(y.isUndefined(s)||y.isNumber(s)&&s>=0),e+=Qt.get(o).ticks*(s!=null?s:1),n),measures:o=>(bt("addExtension.measures",o),lt(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),lt(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,Go)),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),lt(y.isUndefined(t)||xe(t)||y.isArray(t)&&t.every(e=>xe(e))),this.getMeasure().completeRests(t),this}addScaleArpeggio(t,e,r){bt("addScaleArpeggio",t,e,r),lt(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(bc,"DefaultMeasureOptions",{});var Ar=bc;var Ns=class{constructor(t){this.type=t}},Ui=class extends Ns{constructor(e,r,n,o){super(e);this.renderContext=r;this.scoreRow=n;this.diatonicId=o}get renderer(){return this.renderContext}},zi=class extends Ns{constructor(e,r,n){super(e);this.renderContext=r;this.objects=n;if(arguments.length===0)throw new T(6,"Empty array in score object event!")}get renderer(){return this.renderContext}get topObject(){return this.objects[this.objects.length-1]}findObject(e){return this.objects.find(r=>e(r))}};function xc(i,t,e){if(!i)throw new T(6,`Invalid arg: ${t} = ${e}`)}function Gh(i){if(i instanceof Et||i instanceof jt)return i.getMusicInterface();throw new T(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 Ho=Ac,Cc=class Cc extends xt{constructor(e){super(Cc.Name);this.obj=e}getMusicObject(){return this.obj}};d(Cc,"Name","Connective");var bs=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 Gh(this.obj.line)}};d(_c,"Name","Arpeggio");var Jo=_c,vc=class vc extends xt{constructor(e){super(vc.Name);this.obj=e}getMusicObject(){return this.obj}};d(vc,"Name","BeamGroup");var ms=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 fs=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 xc(y.isFunctionOrUndefined(e),"playStateChangeListener",e),new Kn(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 xc(y.isIntegerGte(e,1),"passage",e),this.obj.hasPassage(e)}};d(Ic,"Name","Ending");var ds=Ic,Tc=class Tc extends xt{constructor(e){super(Tc.Name);this.obj=e}getMusicObject(){return this.obj}};d(Tc,"Name","Fermata");var gs=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 Is=Nc,Oc=class Oc extends xt{constructor(e){super(Oc.Name);this.obj=e}getMusicObject(){return this.obj}};d(Oc,"Name","Image");var Yo=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 Cs=Rc,Mc=class Mc extends xt{constructor(e){super(Mc.Name);this.obj=e}getMusicObject(){return this.obj}};d(Mc,"Name","BarLineRight");var us=Mc,Ec=class Ec extends xt{constructor(e){super(Ec.Name);this.obj=e}getMusicObject(){return this.obj}};d(Ec,"Name","BarLineLeft");var hs=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 T(6,"Bar line not left nor right.")}getNotationLine(){return Gh(this.obj.line)}};d(Dc,"Name","StaffBarLine");var ls=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 rs=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 is=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 ns=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 ts=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 es=Fc,Bc=class Bc extends xt{constructor(e){super(Bc.Name);this.obj=e}getMusicObject(){return this.obj}getRhythmSymbol(e){var r;return xc(xe(e),"voiceId",e),(r=this.obj.getVoiceSymbol(e))==null?void 0:r.getMusicInterface()}getVoiceSymbol(e){var r;return xc(xe(e),"voiceId",e),(r=this.obj.getVoiceSymbol(e))==null?void 0:r.getMusicInterface()}getMeasure(){return this.obj.measure.getMusicInterface()}};d(Bc,"Name","RhythmColumn");var os=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=>Gh(e))}};d(Gc,"Name","ScoreRow");var ws=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 Ss=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 _s=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 vs=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 Qo=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 Ko=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 As=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 ss=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 $o=$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 xs=Zc,Xc=class Xc extends xt{constructor(e){super(Xc.Name);this.obj=e}getMusicObject(){return this.obj}};d(Xc,"Name","ExtensionLine");var ys=Xc;function Cr(i,t,e){if(!i)throw new T(6,`Invalid arg: ${t} = ${e}`)}function Os(i,t){if(i==null)throw new TypeError(t);return i}var Rs=class Rs{constructor(t,e){d(this,"player");Cr(t instanceof Zr,"doc",t),Cr(y.isFunctionOrUndefined(e),"playStateChangeListener",e),this.player=new nc,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()),Ua()}play(){return Rs.currentlyPlaying.add(this),this.player.play(),this}pause(){return this.player.pause(),this}stop(){return this.player.stop(),Rs.currentlyPlaying.delete(this),this}};d(Rs,"currentlyPlaying",new qs);var Kn=Rs,Qc=class{constructor(){d(this,"ctx");this.ctx=new Qa(this)}setDocument(t){return Cr(y.isUndefined(t)||t instanceof Zr,"doc",t),this.ctx.setDocument(t),this}setCanvas(t){return t=Os(H.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)}}},Vh=class extends Qc{},Ie=class Ie{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 Kn(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),Ie.removeOnClickListeners(this.playButton,this.onPlay),this.playButton=Os(H.Dom.getButton(t),"Play button required!"),this.playLabel=e!=null?e:"Play",Ie.removeOnClickListeners(this.playButton,"all"),Ie.addOnClickListener(this.playButton,this.onPlay),this.updateButtons(),this}setStopButton(t,e){return Cr(y.isStringOrUndefined(e),"btnLabel",e),Ie.removeOnClickListeners(this.stopButton,this.onStop),this.stopButton=Os(H.Dom.getButton(t),"Stop button required!"),this.stopLabel=e!=null?e:"Stop",Ie.removeOnClickListeners(this.stopButton,"all"),Ie.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),Ie.removeOnClickListeners(this.playStopButton,this.onPlayStop),this.playStopButton=Os(H.Dom.getButton(t),"Play/stop button required!"),this.playLabel=e!=null?e:"Play",this.stopLabel=r!=null?r:"Stop",Ie.removeOnClickListeners(this.playStopButton,"all"),Ie.addOnClickListener(this.playStopButton,this.onPlayStop),this.updateButtons(),this}setPauseButton(t,e){return Cr(y.isStringOrUndefined(e),"btnLabel",e),Ie.removeOnClickListeners(this.pauseButton,this.onPause),this.pauseButton=Os(H.Dom.getButton(t),"Pause button required!"),this.pauseLabel=e!=null?e:"Pause",Ie.removeOnClickListeners(this.pauseButton,"all"),Ie.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(Ie,"savedOnClickListeners",new dt);var qh=Ie;wi();var $h={};tn($h,{createAll:()=>Zv,createAndanteByDiabelli:()=>Uh,createCanonInD:()=>zh,createFrereJacques:()=>Yh,createGreensleeves:()=>Hh});function Uh(){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 zh(){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 Yh(){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 Hh(){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 Zv(){return[Uh(),zh(),Yh(),Hh()]}return Cg(Xv);})();
211
211
  /*! Bundled license information:
212
212
 
213
213
  @tspro/ts-utils-lib/dist/index.mjs: