From c9c2d415aae4598bc192bf2367005be6fd6b1650 Mon Sep 17 00:00:00 2001 From: Bubobubobubobubo Date: Fri, 10 Nov 2023 12:43:58 +0000 Subject: [PATCH] deploy: ca4f7acfe232ec59066d5265c816034097b310b4 --- .../{index-bea23224.js => index-188e4a40.js} | 4 ++-- ...ex-bea23224.js.gz => index-188e4a40.js.gz} | Bin 699985 -> 699988 bytes index.html | 2 +- index.html.gz | Bin 11872 -> 11872 bytes sw.js | 2 +- sw.js.map | 2 +- 6 files changed, 5 insertions(+), 5 deletions(-) rename assets/{index-bea23224.js => index-188e4a40.js} (97%) rename assets/{index-bea23224.js.gz => index-188e4a40.js.gz} (97%) diff --git a/assets/index-bea23224.js b/assets/index-188e4a40.js similarity index 97% rename from assets/index-bea23224.js rename to assets/index-188e4a40.js index e32bdda..09e2a7b 100644 --- a/assets/index-bea23224.js +++ b/assets/index-188e4a40.js @@ -3044,7 +3044,7 @@ https://github.com/highlightjs/highlight.js/issues/2277`),le=Q,ue=j),K===void 0&

${Gi[t].name} [${Gi[t].category}]

${Gi[t].description}

${Gi[t].example}
- `,n.classList.add("px-4","py-2","rounded-lg","w-92"),n}}))}},mG=r=>{let e=Jc.get();delete e._base;let t=r.matchBefore(/sound\(/);return t?{from:t.from+6,options:Object.keys(e).map(i=>({label:i,type:e[i].data.type,apply:`"${i}"`}))}:null},fR=Yr.data.of({autocomplete:hG}),gG=Yr.data.of({autocomplete:mG}),_G=(()=>[oD(),Pw(),dP(),yw(),ww(),_t.allowMultipleSelections.of(!0),bD(),by(PD,{fallback:!0}),QD(),Nx(),Yx(),Gw(),qM(),Na.of([...kx,...s3,...bP,...J$])])(),SG=r=>{r.vimModeCompartment=new Br,r.hoveringCompartment=new Br,r.completionsCompartment=new Br,r.withLineNumbers=new Br,r.chosenLanguage=new Br,r.fontSize=new Br;const e=r.settings.vimMode?O_():[],t=r.settings.line_numbers?ly():[],n=Me.theme({"&":{fontSize:`${r.settings.font_size}px`},$content:{fontFamily:`${r.settings.font}`,fontSize:`${r.settings.font_size}px`},".cm-gutters":{fontSize:`${r.settings.font_size}px`}});r.editorExtensions=[r.vimModeCompartment.of(e),r.withLineNumbers.of(t),r.fontSize.of(n),r.hoveringCompartment.of(r.settings.tips?pR:[]),r.completionsCompartment.of(r.settings.completions?[fR,gG]:[]),_G,fG,r.chosenLanguage.of(Wg()),Me.updateListener.of(i=>{})],r.dynamicPlugins=new Br,r.state=_t.create({extensions:[...r.editorExtensions,Me.lineWrapping,r.dynamicPlugins.of(r.userPlugins),vi.highest(Na.of([{key:"Ctrl-Enter",run:()=>!0}])),Na.of([o3])],doc:r.universes[r.selected_universe].global.candidate}),r.view=new Me({parent:document.getElementById("editor"),state:r.state}),r.view.dispatch({effects:r.fontSize.reconfigure(Me.theme({"&":{fontSize:`${r.settings.font_size}px`},$content:{fontFamily:`${r.settings.font}`,fontSize:`${r.settings.font_size}px`},".cm-gutters":{fontSize:`${r.settings.font_size}px`}}))})},mT=(r,e)=>String(r).padStart(e,"0");class OG extends AudioWorkletNode{constructor(t,n,i){super(t,"transport",n);A(this,"handleMessage",t=>{if(t.data&&t.data.type==="bang"&&this.app.clock.running){this.app.settings.send_clock&&this.app.api.MidiConnection.sendMidiClock();const n=this.app.clock.convertTicksToTimeposition(this.app.clock.tick);this.app.clock.time_position=n,this.timeviewer.innerHTML=`${mT(n.bar,2)}:${n.beat+1}:${mT(n.pulse,2)} / ${this.app.clock.bpm}`,this.app.exampleIsPlaying?wa(this.app,this.app.example_buffer):wa(this.app,this.app.global_buffer),this.app.clock.incrementTick(t.data.bpm)}});this.app=i,this.port.addEventListener("message",this.handleMessage),this.port.start(),this.timeviewer=document.getElementById("timeviewer")}start(){this.port.postMessage({type:"start"})}pause(){this.port.postMessage({type:"pause"})}resume(){this.port.postMessage({type:"resume"})}setBPM(t){this.port.postMessage({type:"bpm",value:t})}setPPQN(t){this.port.postMessage({type:"ppqn",value:t})}setNudge(t){this.port.postMessage({type:"nudge",value:t})}stop(){this.port.postMessage({type:"stop"})}}const bG="/assets/TransportProcessor-d5d50b30.js";class EG{constructor(e,t){A(this,"ctx");A(this,"logicalTime");A(this,"transportNode");A(this,"_bpm");A(this,"time_signature");A(this,"time_position");A(this,"_ppqn");A(this,"tick");A(this,"running");A(this,"lastPauseTime");A(this,"lastPlayPressTime");A(this,"totalPauseTime");this.app=e,this.time_position={bar:0,beat:0,pulse:0},this.time_signature=[4,4],this.logicalTime=0,this.tick=0,this._bpm=120,this._ppqn=48,this.transportNode=null,this.ctx=t,this.running=!0,this.lastPauseTime=0,this.lastPlayPressTime=0,this.totalPauseTime=0,t.audioWorklet.addModule(bG).then(n=>(this.transportNode=new OG(t,{},this.app),this.transportNode.connect(t.destination),n)).catch(n=>{console.log("Error loading TransportProcessor.js:",n)})}convertTicksToTimeposition(e){const t=this.app.clock.time_signature[0],n=e%this.app.clock.ppqn,i=Math.floor(e/this.app.clock.ppqn),a=Math.floor(i/t),s=Math.floor(i%t);return{bar:a,beat:s,pulse:n}}get ticks_before_new_bar(){const e=this.ppqn-this.time_position.pulse;return(this.beats_per_bar-this.time_position.beat)*this.ppqn+e}get next_beat_in_ticks(){return this.app.clock.pulses_since_origin+this.time_position.pulse}get beats_per_bar(){return this.time_signature[0]}get beats_since_origin(){return Math.floor(this.tick/this.ppqn)}get pulses_since_origin(){return this.tick}get pulse_duration(){return 60/this.bpm/this.ppqn}pulse_duration_at_bpm(e=this.bpm){return 60/e/this.ppqn}get bpm(){return this._bpm}set nudge(e){var t;(t=this.transportNode)==null||t.setNudge(e)}set bpm(e){var t;e>0&&this._bpm!==e&&((t=this.transportNode)==null||t.setBPM(e),this._bpm=e,this.logicalTime=this.realTime)}get ppqn(){return this._ppqn}get realTime(){return this.app.audioContext.currentTime-this.totalPauseTime}get deviation(){return Math.abs(this.logicalTime-this.realTime)}set ppqn(e){var t;e>0&&this._ppqn!==e&&(this._ppqn=e,(t=this.transportNode)==null||t.setPPQN(e),this.logicalTime=this.realTime)}incrementTick(e){this.tick++,this.logicalTime+=this.pulse_duration_at_bpm(e)}nextTickFrom(e,t){const n=this.pulse_duration,i=e+t;return Math.ceil(i/n)*n-i}convertPulseToSecond(e){return e*this.pulse_duration}start(){var e;this.app.audioContext.resume(),this.running=!0,this.app.api.MidiConnection.sendStartMessage(),this.lastPlayPressTime=this.app.audioContext.currentTime,this.totalPauseTime+=this.lastPlayPressTime-this.lastPauseTime,(e=this.transportNode)==null||e.start()}pause(){var e;this.running=!1,(e=this.transportNode)==null||e.pause(),this.app.api.MidiConnection.sendStopMessage(),this.lastPauseTime=this.app.audioContext.currentTime,this.logicalTime=this.realTime}stop(){var e;this.running=!1,this.tick=0,this.lastPauseTime=this.app.audioContext.currentTime,this.logicalTime=this.realTime,this.time_position={bar:0,beat:0,pulse:0},this.app.api.MidiConnection.sendStopMessage(),(e=this.transportNode)==null||e.stop()}}const vG={"+":(r,e)=>r+e,"-":(r,e)=>r-e,"*":(r,e)=>r*e,"/":(r,e)=>r/e,"%":(r,e)=>r%e,"^":(r,e)=>r**e,"<<":(r,e)=>r<>":(r,e)=>r>>e,"&":(r,e)=>r&e,"|":(r,e)=>r|e},y_=.25,TG={octave:0,key:"C4",scale:"MAJOR",measure:0,degrees:!1},CG={m:8,k:10240/1920,l:4,"d.":3,p:5120/1920,d:2,"w.":1.5,c:2560/1920,w:1,"h..":.875,"h.":.75,y:1280/1920,h:.5,"q..":840/1920,"q.":.375,n:640/1920,q:.25,"e..":420/1920,"e.":.1875,a:320/1920,e:.125,"s..":210/1920,"s.":180/1920,f:160/1920,s:.0625,"t..":105/1920,"t.":90/1920,x:80/1920,t:60/1920,"u.":45/1920,g:40/1920,u:30/1920,j:15/1920,o:8/1920,z:0},yG={C:0,Cs:1,D:2,Eb:3,E:4,F:5,Fs:6,G:7,Ab:8,A:9,Bb:10,B:11},AG={0:"C",1:"Cs",2:"D",3:"Eb",4:"E",5:"F",6:"Fs",7:"G",8:"Ab",9:"A",10:"Bb",11:"B"},gT=["Gb","Cs","Ab","Eb","Bb","F","C","G","D","A","E","B","Fs"],IG={"#":1,b:-1,s:1},RG={i:1,v:5,x:10,l:50,c:100,d:500,m:1e3},NG=()=>{const r=[2,1,2,2,1,2,2],e=[2,2,1,2,2,2,1],t=[2,1,2,2,1,3,1],n=[2,2,1,2,1,3,1],i=[3,2,2,3,2],a=[2,3,2,3,2],s=[2,2,2,2,2,2],o=[2,1,1,3,2,3],l=[3,2,1,1,3,2],c=[2,1,2,2,2,2,1],u=[2,2,1,2,1,2,2],p=[1,2,2,2,1,3,1],m=[1,2,2,2,2,2,1],_=[1,2,1,2,1,2,1,2],E=[2,2,1,2,1,1,2,1],I=[2,1,2,2,1,1,2,1],R=[2,2,1,2,2,1,1,1];return{MAJOR:e,MINOR:r,"HARMONIC MINOR":t,"HARMONIC MAJOR":n,"MINOR PENTATONIC":i,"SUSPENDED PENTATONIC":a,"BLUES MAJOR":o,"BLUES MINOR":l,WHOLE:s,"MELODIC MINOR":c,"MELODIC MAJOR":u,MINORIC:[4,4,4],THAPTIC:[4,3,4,1],LOTHIC:[3,4,1,4],PHRATIC:[4,1,4,3],AERATHIC:[1,4,3,4],EPATHIC:[4,3,2,3],MYNIC:[3,2,3,4],ROTHIC:[2,3,4,3],EPORIC:[3,4,3,2],ZYPHIC:[4,4,3,1],EPOGIC:[4,3,1,4],LANIC:[3,1,4,4],PYRRIC:[1,4,4,3],AEOLORIC:[4,4,1,3],GONIC:[4,1,3,4],DALIC:[1,3,4,4],DYGIC:[3,4,4,1],DARIC:[4,3,3,2],LONIC:[3,3,2,4],PHRADIC:[3,2,4,3],BOLIC:[2,4,3,3],SARIC:[4,2,3,3],ZOPTIC:[2,3,3,4],AERAPHIC:[3,3,4,2],BYPTIC:[3,4,2,3],AEOLIC:[4,4,2,2],KOPTIC:[4,2,2,4],MIXOLYRIC:[2,2,4,4],LYDIC:[2,4,4,2],STATHIC:[4,2,4,2],DADIC:[2,4,2,4],PHRYNIC:[3,3,3,3],EPATHITONIC:[3,2,3,2,2],MYNITONIC:[2,3,2,2,3],ROCRITONIC:i,PENTATONIC:[2,2,3,2,3],THAPTITONIC:a,MAGITONIC:[4,3,2,2,1],DADITONIC:[3,2,2,1,4],AEOLYPHRITONIC:[2,2,1,4,3],GYCRITONIC:[2,1,4,3,2],PYRITONIC:[1,4,3,2,2],GATHITONIC:[4,2,3,2,1],IONITONIC:[2,3,2,1,4],PHRYNITONIC:[3,2,1,4,2],STATHITONIC:[2,1,4,2,3],THALITONIC:[1,4,2,3,2],ZOLITONIC:[4,2,1,4,1],EPOGITONIC:[2,1,4,1,4],LANITONIC:[1,4,1,4,2],PAPTITONIC:[4,1,4,2,1],IONACRITONIC:[1,4,2,1,4],PHRADITONIC:[4,1,4,1,2],AEOLORITONIC:[1,4,1,2,4],GONITONIC:[4,1,2,4,1],DALITONIC:[1,2,4,1,4],DYGITONIC:[2,4,1,4,1],AERACRITONIC:[4,1,2,3,2],BYPTITONIC:[1,2,3,2,4],DARITONIC:[2,3,2,4,1],LONITONIC:[3,2,4,1,2],IONYCRITONIC:[2,4,1,2,3],LOTHITONIC:[4,1,2,2,3],PHRATONIC:[1,2,2,3,4],AERATHITONIC:[2,2,3,4,1],SARITONIC:[2,3,4,1,2],ZOPTITONIC:[3,4,1,2,2],DOLITONIC:[4,4,1,2,1],PORITONIC:[4,1,2,1,4],AERYLITONIC:[1,2,1,4,4],ZAGITONIC:[2,1,4,4,1],LAGITONIC:[1,4,4,1,2],MOLITONIC:[4,3,3,1,1],STAPTITONIC:[3,3,1,1,4],MOTHITONIC:[3,1,1,4,3],AERITONIC:[1,1,4,3,3],RAGITONIC:[1,4,3,3,1],IONADITONIC:[4,3,2,1,2],BOCRITONIC:[3,2,1,2,4],GYTHITONIC:[2,1,2,4,3],PAGITONIC:[1,2,4,3,2],AEOLYTHITONIC:[2,4,3,2,1],ZACRITONIC:[4,3,1,3,1],LARITONIC:[3,1,3,1,4],THACRITONIC:[1,3,1,4,3],STYDITONIC:[3,1,4,3,1],LORITONIC:[1,4,3,1,3],AEOLYRITONIC:[4,3,1,1,3],GORITONIC:[3,1,1,3,4],AEOLODITONIC:[1,1,3,4,3],DOPTITONIC:[1,3,4,3,1],AERAPHITONIC:[3,4,3,1,1],ZATHITONIC:[4,2,4,1,1],RADITONIC:[2,4,1,1,4],STONITONIC:[4,1,1,4,2],SYPTITONIC:[1,1,4,2,4],IONYTHITONIC:[1,4,2,4,1],AEOLANITONIC:[4,2,2,3,1],DANITONIC:[2,2,3,1,4],IONARITONIC:[2,3,1,4,2],DYNITONIC:[3,1,4,2,2],ZYDITONIC:[1,4,2,2,3],AEOLACRITONIC:[4,2,1,2,3],ZYTHITONIC:[2,1,2,3,4],DYRITONIC:[1,2,3,4,2],KOPTITONIC:[2,3,4,2,1],THOCRITONIC:[3,4,2,1,2],LYCRITONIC:[4,1,3,3,1],DAPTITONIC:[1,3,3,1,4],KYGITONIC:[3,3,1,4,1],MOCRITONIC:[3,1,4,1,3],ZYNITONIC:[1,4,1,3,3],EPYGITONIC:[4,1,3,2,2],ZAPTITONIC:[1,3,2,2,4],KAGITONIC:[3,2,2,4,1],ZOGITONIC:[2,2,4,1,3],EPYRITONIC:[2,4,1,3,2],ZOTHITONIC:[4,1,3,1,3],PHROLITONIC:[1,3,1,3,4],IONAGITONIC:[3,1,3,4,1],AEOLAPRITONIC:[1,3,4,1,3],KYRITONIC:[3,4,1,3,1],IONYPTITONIC:[4,1,1,3,3],GYRITONIC:[1,1,3,3,4],ZALITONIC:[1,3,3,4,1],STOLITONIC:[3,3,4,1,1],BYLITONIC:[3,4,1,1,3],THODITONIC:[3,3,2,3,1],DOGITONIC:[3,2,3,1,3],PHRALITONIC:[2,3,1,3,3],GARITONIC:[3,1,3,3,2],SOPTITONIC:[1,3,3,2,3],KATARITONIC:[3,3,2,2,2],SYLITONIC:[3,2,2,2,3],THONITONIC:[2,2,2,3,3],PHROPITONIC:[2,2,3,3,2],STADITONIC:[2,3,3,2,2],LYDITONIC:[3,3,1,3,2],MYTHITONIC:[3,1,3,2,3],SOGITONIC:[1,3,2,3,3],GOTHITONIC:[3,2,3,3,1],ROTHITONIC:[2,3,3,1,3],ZYLITONIC:[4,4,2,1,1],ZODITONIC:[4,2,1,1,4],ZARITONIC:[2,1,1,4,4],PHRYTHITONIC:[1,1,4,4,2],ROLITONIC:[1,4,4,2,1],RANITONIC:[4,4,1,1,2],LADITONIC:[4,1,1,2,4],PODITONIC:[1,1,2,4,4],IONOTHITONIC:[1,2,4,4,1],KANITONIC:[2,4,4,1,1],RYPHITONIC:[4,3,1,2,2],GYLITONIC:[3,1,2,2,4],AEOLYCRITONIC:[1,2,2,4,3],PYNITONIC:[2,2,4,3,1],ZANITONIC:[2,4,3,1,2],PHRONITONIC:[4,2,3,1,2],BANITONIC:[2,3,1,2,4],AERONITONIC:[3,1,2,4,2],GOLITONIC:[1,2,4,2,3],DYPTITONIC:[2,4,2,3,1],AERYNITONIC:[4,2,2,1,3],PALITONIC:[2,2,1,3,4],STOTHITONIC:[2,1,3,4,2],AEROPHITONIC:[1,3,4,2,2],KATAGITONIC:[3,4,2,2,1],IONODITONIC:[4,2,1,3,2],BOGITONIC:[2,1,3,2,4],MOGITONIC:[1,3,2,4,2],DOCRITONIC:[3,2,4,2,1],EPADITONIC:[2,4,2,1,3],MIXITONIC:[3,3,3,2,1],PHROTHITONIC:[3,3,2,1,3],KATYCRITONIC:[3,2,1,3,3],IONALITONIC:[2,1,3,3,3],LOPTITONIC:[1,3,3,3,2],THYRITONIC:[3,3,3,1,2],THOPTITONIC:[3,3,1,2,3],BYCRITONIC:[3,1,2,3,3],PATHITONIC:[1,2,3,3,3],MYDITONIC:[2,3,3,3,1],BOLITONIC:[4,2,2,2,2],BOTHITONIC:[2,2,2,2,4],KATADITONIC:[2,2,2,4,2],KODITONIC:[2,2,4,2,2],THOLITONIC:[2,4,2,2,2],EPATHIMIC:[3,2,2,1,2,2],MYNIMIC:[2,2,1,2,2,3],ROCRIMIC:[2,1,2,2,3,2],EPORIMIC:[1,2,2,3,2,2],THAPTIMIC:[2,2,3,2,2,1],LOTHIMIC:[2,3,2,2,1,2],DYRIMIC:[4,2,1,2,2,1],KOPTIMIC:[2,1,2,2,1,4],THOCRIMIC:[1,2,2,1,4,2],AEOLANIMIC:[2,2,1,4,2,1],DANIMIC:[2,1,4,2,1,2],IONARIMIC:[1,4,2,1,2,2],DAPTIMIC:[4,1,4,1,1,1],KYGIMIC:[1,4,1,1,1,4],MOCRIMIC:[4,1,1,1,4,1],ZYNIMIC:[1,1,1,4,1,4],AEOLIMIC:[1,1,4,1,4,1],ZYTHIMIC:[1,4,1,4,1,1],EPYGIMIC:[4,1,2,3,1,1],ZAPTIMIC:[1,2,3,1,1,4],KAGIMIC:[2,3,1,1,4,1],ZOGIMIC:[3,1,1,4,1,2],EPYRIMIC:[1,1,4,1,2,3],LYCRIMIC:[1,4,1,2,3,1],BYLIMIC:[4,1,2,2,2,1],ZOTHIMIC:[1,2,2,2,1,4],PHROLIMIC:[2,2,2,1,4,1],IONAGIMIC:[2,2,1,4,1,2],AEOLAPHIMIC:[2,1,4,1,2,2],KYCRIMIC:[1,4,1,2,2,2],GARIMIC:[4,1,2,2,1,2],SOPTIMIC:[1,2,2,1,2,4],IONYPTIMIC:[2,2,1,2,4,1],GYRIMIC:[2,1,2,4,1,2],ZALIMIC:[1,2,4,1,2,2],STOLIMIC:[2,4,1,2,2,1],THONIMIC:[4,1,1,4,1,1],STADIMIC:[1,1,4,1,1,4],THODIMIC:[1,4,1,1,4,1],MYTHIMIC:[4,1,1,3,2,1],SOGIMIC:[1,1,3,2,1,4],GOGIMIC:[1,3,2,1,4,1],ROTHIMIC:[3,2,1,4,1,1],KATARIMIC:[2,1,4,1,1,3],SYLIMIC:[1,4,1,1,3,2],MIXOLIMIC:[3,2,3,2,1,1],DADIMIC:[2,3,2,1,1,3],AEOLYPHIMIC:[3,2,1,1,3,2],GYCRIMIC:o,PYRIMIC:[1,1,3,2,3,2],LYDIMIC:[1,3,2,3,2,1],IONACRIMIC:[3,2,3,1,1,2],GATHIMIC:[2,3,1,1,2,3],IONYNIMIC:[3,1,1,2,3,2],PHRYNIMIC:[1,1,2,3,2,3],STATHIMIC:[1,2,3,2,3,1],THATIMIC:[2,3,2,3,1,1],DALIMIC:[3,2,2,3,1,1],DYGIMIC:[2,2,3,1,1,3],ZOLIMIC:[2,3,1,1,3,2],EPOGIMIC:[3,1,1,3,2,2],LANIMIC:[1,1,3,2,2,3],PAPTIMIC:[1,3,2,2,3,1],DARMIC:[3,2,2,2,1,2],LONIMIC:[2,2,2,1,2,3],IONYCRIMIC:[2,2,1,2,3,2],PHRADIMIC:[2,1,2,3,2,2],AEOLORIMIC:[1,2,3,2,2,2],GONIMIC:[2,3,2,2,2,1],PHRACRIMIC:[3,2,1,2,2,2],AERATHIMIC:[2,1,2,2,2,3],SARIMIC:[1,2,2,2,3,2],ZOPTIMIC:[2,2,2,3,2,1],ZERACRIMIC:[2,2,3,2,1,2],BYPTIMIC:[2,3,2,1,2,2],STARIMIC:[4,3,2,1,1,1],PHRATHIMIC:[3,2,1,1,1,4],SAPTIMIC:[2,1,1,1,4,3],AERODIMIC:[1,1,1,4,3,2],MACRIMIC:[1,1,4,3,2,1],ROGIMIC:[1,4,3,2,1,1],BYGIMIC:[4,3,1,1,2,1],THYCRIMIC:[3,1,1,2,1,4],AEOLADIMIC:[1,1,2,1,4,3],DYLIMIC:[1,2,1,4,3,1],EPONIMIC:[2,1,4,3,1,1],KATYGIMIC:[1,4,3,1,1,2],STALIMIC:[4,2,3,1,1,1],STOPTIMIC:[2,3,1,1,1,4],ZYGIMIC:[3,1,1,1,4,2],KATAPTIMIC:[1,1,1,4,2,3],AEOLAPTIMIC:[1,1,4,2,3,1],POTHIMIC:[1,4,2,3,1,1],RYCRIMIC:[4,2,2,1,2,1],RONIMIC:[2,2,1,2,1,4],STYCRIMIC:[2,1,2,1,4,2],KATORIMIC:[1,2,1,4,2,2],EPYTHIMIC:[2,1,4,2,2,1],KAPTIMIC:[1,4,2,2,1,2],KATYTHIMIC:[4,2,1,3,1,1],MADIMIC:[2,1,3,1,1,4],AERYGIMIC:[1,3,1,1,4,2],PYLIMIC:[3,1,1,4,2,1],IONATHIMIC:[1,1,4,2,1,3],MORIMIC:[1,4,2,1,3,1],AERYCRIMIC:[4,2,1,1,3,1],GANIMIC:[2,1,1,3,1,4],EPARIMIC:[1,1,3,1,4,2],LYRIMIC:[1,3,1,4,2,1],PHRAPTIMIC:[3,1,4,2,1,1],BACRIMIC:[1,4,2,1,1,3],PHRALIMIC:[4,1,3,2,1,1],PHROGIMIC:[1,3,2,1,1,4],RATHIMIC:[3,2,1,1,4,1],KATOCRIMIC:[2,1,1,4,1,3],PHRYPTIMIC:[1,1,4,1,3,2],KATYNIMIC:[1,4,1,3,2,1],SOLIMIC:[4,1,3,1,2,1],IONOLIMIC:[1,3,1,2,1,4],IONOPHIMIC:[3,1,2,1,4,1],AEOLOGIMIC:[1,2,1,4,1,3],ZADIMIC:[2,1,4,1,3,1],SYGIMIC:[1,4,1,3,1,2],THOGIMIC:[4,1,3,1,1,2],RYTHIMIC:[1,3,1,1,2,4],DONIMIC:[3,1,1,2,4,1],AEOLOPTIMIC:[1,1,2,4,1,3],PANIMIC:[1,2,4,1,3,1],LODIMIC:[2,4,1,3,1,1],LAPTIMIC:[4,1,2,1,3,1],LYGIMIC:[1,2,1,3,1,4],LOGIMIC:[2,1,3,1,4,1],LALIMIC:[1,3,1,4,1,2],SOTHIMIC:[3,1,4,1,2,1],PHROCRIMIC:[1,4,1,2,1,3],MODIMIC:[4,1,2,1,2,2],BARIMIC:[1,2,1,2,2,4],POPTIMIC:[2,1,2,2,4,1],SAGIMIC:[1,2,2,4,1,2],AELOTHIMIC:l,SOCRIMIC:[2,4,1,2,1,2],SYRIMIC:[4,1,2,1,1,3],STODIMIC:[1,2,1,1,3,4],IONOCRIMIC:[2,1,1,3,4,1],ZYCRIMIC:[1,1,3,4,1,2],IONYGIMIC:[1,3,4,1,2,1],KATATHIMIC:[3,4,1,2,1,1],BOLIMIC:[4,1,1,3,1,2],BOTHIMIC:[1,1,3,1,2,4],KATADIMIC:[1,3,1,2,4,1],KODIMIC:[3,1,2,4,1,1],THOLIMIC:[1,2,4,1,1,3],RALIMIC:[2,4,1,1,3,1],KANIMIC:[4,1,1,2,3,1],ZYLIMIC:[1,1,2,3,1,4],ZODIMIC:[1,2,3,1,4,1],ZARIMIC:[2,3,1,4,1,1],PHRYTHIMIC:[3,1,4,1,1,2],RORIMIC:[1,4,1,1,2,3],PYNIMIC:[4,1,1,1,3,2],ZANIMIC:[1,1,1,3,2,4],RANIMIC:[1,1,3,2,4,1],LADIMIC:[1,3,2,4,1,1],PODIMIC:[3,2,4,1,1,1],IONOTHIMIC:[2,4,1,1,1,3],KYTRIMIC:[4,1,1,1,2,3],GOLIMIC:[1,1,1,2,3,4],DYPTIMIC:[1,1,2,3,4,1],RYRIMIC:[1,2,3,4,1,1],GYLIMIC:[2,3,4,1,1,1],AEOLYCRIMIC:[3,4,1,1,1,2],PALIMIC:[3,3,2,2,1,1],STOTHIMIC:[3,2,2,1,1,3],AERONIMIC:[2,2,1,1,3,3],KATAGIMIC:[2,1,1,3,3,2],PHRONIMIC:[1,1,3,3,2,2],BANIMIC:[1,3,3,2,2,1],IONODIMIC:[3,3,1,3,1,1],BOGIMIC:[3,1,3,1,1,3],MOGIMIC:[1,3,1,1,3,3],DOCRIMIC:[3,1,1,3,3,1],EPADIMIC:[1,1,3,3,1,3],AERYNIMIC:[1,3,3,1,3,1],MYDIMIC:[3,3,1,1,3,1],THYPTIMIC:[3,1,1,3,1,3],PHROTHIMIC:[1,1,3,1,3,3],KATYCRIMIC:[1,3,1,3,3,1],IONALIMIC:[3,1,3,3,1,1],LOPTIMIC:[1,3,3,1,1,3],ZAGIMIC:[3,3,1,1,2,2],LAGIMIC:[3,1,1,2,2,3],THYRIMIC:[1,1,2,2,3,3],THOTHIMIC:[1,2,2,3,3,1],BYCRIMIC:[2,2,3,3,1,1],PATHIMIC:[2,3,3,1,1,2],MOTHIMIC:[3,2,2,1,3,1],AERANIMIC:[2,2,1,3,1,3],RAGIMIC:[2,1,3,1,3,2],DOLIMIC:[1,3,1,3,2,2],PORIMIC:[3,1,3,2,2,1],AERYLIMIC:[1,3,2,2,1,3],BOCRIMIC:[3,2,1,3,1,2],GYTHIMIC:[2,1,3,1,2,3],PAGIMIC:[1,3,1,2,3,2],AEOLYTHIMIC:[3,1,2,3,2,1],MOLIMIC:[1,2,3,2,1,3],STAPTIMIC:[2,3,2,1,3,1],ZACRIMIC:[3,2,1,2,3,1],LARIMIC:[2,1,2,3,1,3],THACRIMIC:[1,2,3,1,3,2],STYDIMIC:[2,3,1,3,2,1],LORIMIC:[3,1,3,2,1,2],IONADIMIC:[1,3,2,1,2,3],IONYTHIMIC:[3,1,3,1,3,1],AERYTHIMIC:[1,3,1,3,1,3],DYNIMIC:[3,1,3,1,2,2],ZYDIMIC:[1,3,1,2,2,3],ZATHIMIC:[3,1,2,2,3,1],RADIMIC:[1,2,2,3,1,3],STONIMIC:[2,2,3,1,3,1],SYPTIMIC:[2,3,1,3,1,2],PONIMIC:[4,4,1,1,1,1],KADIMIC:[4,1,1,1,1,4],GYNIMIC:[1,1,1,1,4,4],THYDIMIC:[1,1,1,4,4,1],POLIMIC:[1,1,4,4,1,1],THANIMIC:[1,4,4,1,1,1],LATHIMIC:[4,3,1,2,1,1],AERALIMIC:[3,1,2,1,1,4],KYNIMIC:[1,2,1,1,4,3],STYNIMIC:[2,1,1,4,3,1],EPYTIMIC:[1,1,4,3,1,2],KATOPTIMIC:[1,4,3,1,2,1],GALIMIC:[4,3,1,1,1,2],KATHIMIC:[3,1,1,1,2,4],LYLIMIC:[1,1,1,2,4,3],EPALIMIC:[1,1,2,4,3,1],EPACRIMIC:[1,2,4,3,1,1],SATHIMIC:[2,4,3,1,1,1],KATANIMIC:[4,2,2,2,1,1],KATYRIMIC:[2,2,2,1,1,4],RYNIMIC:[2,2,1,1,4,2],POGIMIC:[2,1,1,4,2,2],AERAPTIMIC:[1,1,4,2,2,2],EPYLIMIC:[1,4,2,2,2,1],MANIMIC:[4,2,1,2,1,2],MARIMIC:[2,1,2,1,2,4],LOCRIMIC:[1,2,1,2,4,2],RYLIMIC:[2,1,2,4,2,1],EPATIMIC:[1,2,4,2,1,2],BYRIMIC:[2,4,2,1,2,1],KOCRIMIC:[4,2,1,1,1,3],KORIMIC:[2,1,1,1,3,4],LYNIMIC:[1,1,1,3,4,2],MALIMIC:[1,1,3,4,2,1],SYNIMIC:[1,3,4,2,1,1],PHRAGIMIC:[3,4,2,1,1,1],MYCRIMIC:[4,1,1,2,2,2],IONORIMIC:[1,1,2,2,2,4],PHRYDIMIC:[1,2,2,2,4,1],ZYPTIMIC:[2,2,2,4,1,1],KATOTHIMIC:[2,2,4,1,1,2],PHRYLIMIC:[2,4,1,1,2,2],AEROTHIMIC:[4,1,1,2,1,3],STAGIMIC:[1,1,2,1,3,4],DORIMIC:[1,2,1,3,4,1],PHRYCRIMIC:[2,1,3,4,1,1],KYPTIMIC:[1,3,4,1,1,2],IONYLIMIC:[3,4,1,1,2,1],EPYNIMIC:[3,3,3,1,1,1],IONOGIMIC:[3,3,1,1,1,3],KYDIMIC:[3,1,1,1,3,3],GAPTIMIC:[1,1,1,3,3,3],THARIMIC:[1,1,3,3,3,1],IONAPHIMIC:[1,3,3,3,1,1],THOPTIMIC:[3,3,2,1,2,1],BAGIMIC:[3,2,1,2,1,3],KYRIMIC:[2,1,2,1,3,3],SONIMIC:[1,2,1,3,3,2],AEOLONIMIC:[2,1,3,3,2,1],RYGIMIC:[1,3,3,2,1,2],THAGIMIC:[3,3,2,1,1,2],KOLIMIC:[3,2,1,1,2,3],DYCRIMIC:[2,1,1,2,3,3],EPYCRIMIC:[1,1,2,3,3,2],GOCRIMIC:[1,2,3,3,2,1],KATOLIMIC:[2,3,3,2,1,1],DAGIMIC:[3,3,1,2,2,1],AEOLYDIMIC:[3,1,2,2,1,3],PARIMIC:[1,2,2,1,3,3],IONAPTIMIC:[2,2,1,3,3,1],THYLIMIC:[2,1,3,3,1,2],LOLIMIC:[1,3,3,1,2,2],THALIMIC:[3,3,1,2,1,2],STYGIMIC:[3,1,2,1,2,3],AEOLYGIMIC:[1,2,1,2,3,3],AEROGIMIC:[2,1,2,3,3,1],DACRIMIC:[1,2,3,3,1,2],BAPTIMIC:[2,3,3,1,2,1],STYTHIMIC:[3,2,3,1,2,1],KOTHIMIC:[2,3,1,2,1,3],PYGIMIC:[3,1,2,1,3,2],RODIMIC:[1,2,1,3,2,3],SORIMIC:[2,1,3,2,3,1],MONIMIC:[1,3,2,3,1,2],AERAGIMIC:[3,2,2,2,2,1],EPOTHIMIC:[2,2,2,2,1,3],SALIMIC:[2,2,2,1,3,2],LYPTIMIC:[2,2,1,3,2,2],KATONIMIC:[2,1,3,2,2,2],GYGIMIC:[1,3,2,2,2,2],AERADIMIC:[3,2,1,3,2,1],ZYRIMIC:[2,1,3,2,1,3],STYLIMIC:[1,3,2,1,3,2],LYTHIMIC:[3,1,2,3,1,2],DODIMIC:[1,2,3,1,2,3],KATALIMIC:[2,3,1,2,3,1],BOPTIMIC:[3,1,2,2,2,2],STOGIMIC:[1,2,2,2,2,3],THYNIMIC:[2,2,2,2,3,1],AEOLATHIMIC:[2,2,2,3,1,2],BYTHIMIC:[2,2,3,1,2,2],PADIMIC:[2,3,1,2,2,2],DATHIMIC:[4,2,2,1,1,2],EPAGIMIC:[2,2,1,1,2,4],RAPTIMIC:[2,1,1,2,4,2],EPOLIMIC:[1,1,2,4,2,2],SYTHIMIC:[1,2,4,2,2,1],SYDIMIC:[2,4,2,2,1,1],GACRIMIC:[4,2,1,1,2,2],BORIMIC:[2,1,1,2,2,4],SYCRIMIC:[1,1,2,2,4,2],GADIMIC:[1,2,2,4,2,1],AEOLOCRIMIC:[2,2,4,2,1,1],PHRYGIMIC:[2,4,2,1,1,2],WHOLETONE:s,LYDIAN:[2,2,2,1,2,2,1],MIXOLYDIAN:[2,2,1,2,2,1,2],AEOLIAN:r,LOCRIAN:[1,2,2,1,2,2,2],IONIAN:e,DORIAN:[2,1,2,2,2,1,2],PHRYGIAN:[1,2,2,2,1,2,2],IONYTHIAN:[4,1,2,2,1,1,1],AEOLYRIAN:[1,2,2,1,1,1,4],GORIAN:[2,2,1,1,1,4,1],AEOLODIAN:[2,1,1,1,4,1,2],DOPTIAN:[1,1,1,4,1,2,2],AERAPHIAN:[1,1,4,1,2,2,1],ZACRIAN:[1,4,1,2,2,1,1],IONARIAN:[4,1,1,3,1,1,1],DYNIAN:[1,1,3,1,1,1,4],ZYDIAN:[1,3,1,1,1,4,1],ZATHIAN:[3,1,1,1,4,1,1],RADIAN:[1,1,1,4,1,1,3],STONIAN:[1,1,4,1,1,3,1],SYPTIAN:[1,4,1,1,3,1,1],AEOLACRIAN:[4,1,1,1,3,1,1],ZYTHIAN:[1,1,1,3,1,1,4],DYRIAN:[1,1,3,1,1,4,1],KOPTIAN:[1,3,1,1,4,1,1],THOCRIAN:[3,1,1,4,1,1,1],AEOLANIAN:[1,1,4,1,1,1,3],DANIAN:[1,4,1,1,1,3,1],ZOGIAN:[4,1,1,1,2,2,1],EPYRIAN:[1,1,1,2,2,1,4],LYCRIAN:[1,1,2,2,1,4,1],DAPTIAN:[1,2,2,1,4,1,1],KYGIAN:[2,2,1,4,1,1,1],MOCRIAN:[2,1,4,1,1,1,2],ZYNIAN:[1,4,1,1,1,2,2],PHROLIAN:[3,2,2,1,2,1,1],IONAGIAN:[2,2,1,2,1,1,3],AEODIAN:[2,1,2,1,1,3,2],KYCRIAN:[1,2,1,1,3,2,2],EPYGIAN:[2,1,1,3,2,2,1],ZAPTIAN:[1,1,3,2,2,1,2],KAGIAN:[1,3,2,2,1,2,1],SOPTIAN:[3,2,2,1,1,1,2],IONYPTIAN:[2,2,1,1,1,2,3],GYRIAN:[2,1,1,1,2,3,2],ZALIAN:[1,1,1,2,3,2,2],STOLIAN:[1,1,2,3,2,2,1],BYLIAN:[1,2,3,2,2,1,1],ZOTHIAN:[2,3,2,2,1,1,1],THONIAN:[3,2,1,2,2,1,1],PHRORIAN:[2,1,2,2,1,1,3],STADIAN:[1,2,2,1,1,3,2],THODIAN:[2,2,1,1,3,2,1],DOGIAN:[2,1,1,3,2,1,2],MIXOPYRIAN:[1,1,3,2,1,2,2],GARIAN:[1,3,2,1,2,2,1],EPATHIAN:[3,2,1,1,3,1,1],MYTHIAN:[2,1,1,3,1,1,3],SOGIAN:[1,1,3,1,1,3,2],GOGIAN:[1,3,1,1,3,2,1],ROTHIAN:[3,1,1,3,2,1,1],KATARIAN:[1,1,3,2,1,1,3],STYLIAN:[1,3,2,1,1,3,1],STATHIAN:[3,2,1,1,1,2,2],MIXONYPHIAN:[2,1,1,1,2,2,3],MAGIAN:[1,1,1,2,2,3,2],DADIAN:[1,1,2,2,3,2,1],AEOLYLIAN:[1,2,2,3,2,1,1],GYCRIAN:[2,2,3,2,1,1,1],PYRIAN:[2,3,2,1,1,1,2],EPOGIAN:[3,1,1,3,1,1,2],LANIAN:[1,1,3,1,1,2,3],PAPTIAN:[1,3,1,1,2,3,1],IONACRIAN:[3,1,1,2,3,1,1],GATHIAN:[1,1,2,3,1,1,3],IONYPHIAN:[1,2,3,1,1,3,1],PHRYNIAN:[2,3,1,1,3,1,1],IONYCRIAN:[3,1,1,2,2,1,2],PHRADIAN:[1,1,2,2,1,2,3],AEOLORIAN:[1,2,2,1,2,3,1],GONIAN:[2,2,1,2,3,1,1],DALIAN:[2,1,2,3,1,1,2],DYGIAN:[1,2,3,1,1,2,2],ZOLIAN:[2,3,1,1,2,2,1],AERATHIAN:[3,1,1,2,1,2,2],SARIAN:[1,1,2,1,2,2,3],ZOPTIAN:[1,2,1,2,2,3,1],AERACRIAN:[2,1,2,2,3,1,1],BYPTIAN:[1,2,2,3,1,1,2],DARIAN:[2,2,3,1,1,2,1],LONIAN:[2,3,1,1,2,1,2],AEOPIAN:[4,2,1,2,1,1,1],RYGIAN:[2,1,2,1,1,1,4],EPYNIAN:[1,2,1,1,1,4,2],IONOGIAN:[2,1,1,1,4,2,1],KYDIAN:[1,1,1,4,2,1,2],GAPTIAN:[1,1,4,2,1,2,1],THARIAN:[1,4,2,1,2,1,1],EPYCRIAN:[4,2,1,1,1,2,1],GOCRIAN:[2,1,1,1,2,1,4],KATOLIAN:[1,1,1,2,1,4,2],THOPTIAN:[1,1,2,1,4,2,1],BAGIAN:[1,2,1,4,2,1,1],KYRIAN:[2,1,4,2,1,1,1],SONIAN:[1,4,2,1,1,1,2],PARIAN:[4,1,3,1,1,1,1],IONAPTIAN:[1,3,1,1,1,1,4],THYLIAN:[3,1,1,1,1,4,1],LOLIAN:[1,1,1,1,4,1,3],THAGIAN:[1,1,1,4,1,3,1],KOLIAN:[1,1,4,1,3,1,1],DYCRIAN:[1,4,1,3,1,1,1],STYGIAN:[4,1,2,1,2,1,1],AEOLYGIAN:[1,2,1,2,1,1,4],AEROGIAN:[2,1,2,1,1,4,1],DACRIAN:[1,2,1,1,4,1,2],BAPTIAN:[2,1,1,4,1,2,1],DAGIAN:[1,1,4,1,2,1,2],AEOLYDIAN:[1,4,1,2,1,2,1],STYTHIAN:[4,1,2,1,1,2,1],KOTHIAN:[1,2,1,1,2,1,4],PYGIAN:[2,1,1,2,1,4,1],RODIAN:[1,1,2,1,4,1,2],SORIAN:[1,2,1,4,1,2,1],MONIAN:[2,1,4,1,2,1,1],THALIAN:[1,4,1,2,1,1,2],ZORIAN:[4,1,2,1,1,1,2],AERAGIAN:[1,2,1,1,1,2,4],EPOTHIAN:[2,1,1,1,2,4,1],SALIAN:[1,1,1,2,4,1,2],LYPTIAN:[1,1,2,4,1,2,1],KATONIAN:[1,2,4,1,2,1,1],GYPHIAN:[2,4,1,2,1,1,1],THACRIAN:[4,1,1,2,2,1,1],DODIAN:[1,1,2,2,1,1,4],AEOLYPTIAN:[1,2,2,1,1,4,1],AEOLONIAN:[2,2,1,1,4,1,1],AERADIAN:[2,1,1,4,1,1,2],AEOLAGIAN:[1,1,4,1,1,2,2],ZYRIAN:[1,4,1,1,2,2,1],AEOLATHIAN:[4,1,1,2,1,2,1],BYTHIAN:[1,1,2,1,2,1,4],PADIAN:[1,2,1,2,1,4,1],ROLIAN:[2,1,2,1,4,1,1],PYDIAN:[1,2,1,4,1,1,2],THYGIAN:[2,1,4,1,1,2,1],KATALIAN:[1,4,1,1,2,1,2],SAPTIAN:[4,1,1,1,2,1,2],AERODIAN:[1,1,1,2,1,2,4],MACRIAN:[1,1,2,1,2,4,1],ROGIAN:[1,2,1,2,4,1,1],BOPTIAN:[2,1,2,4,1,1,1],STOGIAN:[1,2,4,1,1,1,2],THYNIAN:[2,4,1,1,1,2,1],THYCRIAN:[4,1,1,1,1,3,1],AEOLADIAN:[1,1,1,1,3,1,4],DYLIAN:[1,1,1,3,1,4,1],EPONIAN:[1,1,3,1,4,1,1],KATYGIAN:[1,3,1,4,1,1,1],STARIAN:[3,1,4,1,1,1,1],PHRATHIAN:[1,4,1,1,1,1,3],STALIAN:[3,3,1,1,2,1,1],STOPTIAN:[3,1,1,2,1,1,3],ZYGIAN:[1,1,2,1,1,3,3],KATAPTIAN:[1,2,1,1,3,3,1],AEOLAPTIAN:[2,1,1,3,3,1,1],POTHIAN:[1,1,3,3,1,1,2],BYGIAN:[1,3,3,1,1,2,1],MORIAN:[3,2,3,1,1,1,1],RYCRIAN:[2,3,1,1,1,1,3],RONIAN:[3,1,1,1,1,3,2],STYCRIAN:[1,1,1,1,3,2,3],KATORIAN:[1,1,1,3,2,3,1],EPYTHIAN:[1,1,3,2,3,1,1],KAPTIAN:[1,3,2,3,1,1,1],PHRAPTIAN:[3,2,2,2,1,1,1],BACRIAN:[2,2,2,1,1,1,3],KATYTHIAN:[2,2,1,1,1,3,2],MADIAN:[2,1,1,1,3,2,2],AERYGIAN:[1,1,1,3,2,2,2],PYLIAN:[1,1,3,2,2,2,1],IONATHIAN:[1,3,2,2,2,1,1],KATOCRIAN:[3,2,1,3,1,1,1],PHRYPTIAN:[2,1,3,1,1,1,3],KATYNIAN:[1,3,1,1,1,3,2],AERYCRIAN:[3,1,1,1,3,2,1],GANIAN:[1,1,1,3,2,1,3],EPARIAN:[1,1,3,2,1,3,1],LYRIAN:[1,3,2,1,3,1,1],IONOPIAN:[3,2,1,2,1,1,2],AEOLOGIAN:[2,1,2,1,1,2,3],ZADIAN:[1,2,1,1,2,3,2],SYGIAN:[2,1,1,2,3,2,1],PHRALIAN:[1,1,2,3,2,1,2],PHROGIAN:[1,2,3,2,1,2,1],RATHIAN:[2,3,2,1,2,1,1],RYTHIAN:[3,2,1,1,2,1,2],DONIAN:[2,1,1,2,1,2,3],AEOLOPTIAN:[1,1,2,1,2,3,2],PANIAN:[1,2,1,2,3,2,1],LODIAN:[2,1,2,3,2,1,1],SOLIAN:[1,2,3,2,1,1,2],IONOLIAN:[2,3,2,1,1,2,1],LAPTIAN:[3,2,1,1,1,3,1],LYGIAN:[2,1,1,1,3,1,3],LOGIAN:[1,1,1,3,1,3,2],LALIAN:[1,1,3,1,3,2,1],SOTHIAN:[1,3,1,3,2,1,1],PHROCRIAN:[3,1,3,2,1,1,1],THOGIAN:[1,3,2,1,1,1,3],KATATHIAN:[3,1,3,1,2,1,1],MODIAN:[1,3,1,2,1,1,3],BARIAN:[3,1,2,1,1,3,1],MIXOLOCRIAN:[1,2,1,1,3,1,3],SAGIAN:[2,1,1,3,1,3,1],AEOLOTHIAN:[1,1,3,1,3,1,2],SOCRIAN:[1,3,1,3,1,2,1],THOLIAN:[3,1,3,1,1,2,1],RALIAN:[1,3,1,1,2,1,3],SYRIAN:[3,1,1,2,1,3,1],STODIAN:[1,1,2,1,3,1,3],IONOCRIAN:[1,2,1,3,1,3,1],ZYCRIAN:[2,1,3,1,3,1,1],IONYGIAN:[1,3,1,3,1,1,2],ZARIAN:[3,1,3,1,1,1,2],PHRYTHIAN:[1,3,1,1,1,2,3],RORIAN:[3,1,1,1,2,3,1],BOLIAN:[1,1,1,2,3,1,3],BOTHIAN:[1,1,2,3,1,3,1],KATADIAN:[1,2,3,1,3,1,1],KODIAN:[2,3,1,3,1,1,1],RANIAN:[3,1,2,3,1,1,1],LADIAN:[1,2,3,1,1,1,3],PODIAN:[2,3,1,1,1,3,1],IONOTHIAN:[3,1,1,1,3,1,2],KANIAN:[1,1,1,3,1,2,3],ZYLIAN:[1,1,3,1,2,3,1],ZODIAN:[1,3,1,2,3,1,1],GOLIAN:[3,1,2,2,2,1,1],DYPTIAN:[1,2,2,2,1,1,3],RYPHIAN:[2,2,2,1,1,3,1],GYLIAN:[2,2,1,1,3,1,2],AEOLYCRIAN:[2,1,1,3,1,2,2],PYNIAN:[1,1,3,1,2,2,2],ZANIAN:[1,3,1,2,2,2,1],PALIAN:[3,1,2,2,1,2,1],STOTHIAN:[1,2,2,1,2,1,3],AERORIAN:n,KATAGIAN:[2,1,2,1,3,1,2],PHRONIAN:[1,2,1,3,1,2,2],BANIAN:[2,1,3,1,2,2,1],AERONIAN:[1,3,1,2,2,1,2],LOPTIAN:[3,1,2,1,3,1,1],IONODIAN:[1,2,1,3,1,1,3],BOGIAN:[2,1,3,1,1,3,1],MOGIAN:[1,3,1,1,3,1,2],DOCRIAN:[3,1,1,3,1,2,1],EPADIAN:[1,1,3,1,2,1,3],AERYNIAN:[1,3,1,2,1,3,1],BYCRIAN:[3,1,2,1,2,2,1],PATHIAN:[1,2,1,2,2,1,3],MYDIAN:t,THYPTIAN:[1,2,2,1,3,1,2],PHROTHIAN:[2,2,1,3,1,2,1],KATYCRIAN:[2,1,3,1,2,1,2],IONALIAN:[1,3,1,2,1,2,2],DOLIAN:[3,1,1,2,2,2,1],PORIAN:[1,1,2,2,2,1,3],AERYLIAN:p,"NEOPOLITAN MINOR":p,ZAGIAN:[2,2,2,1,3,1,1],LAGIAN:[2,2,1,3,1,1,2],TYRIAN:[2,1,3,1,1,2,2],MIXONORIAN:[1,3,1,1,2,2,2],PAGIAN:[3,1,1,1,2,2,2],AEOLYTHIAN:[1,1,1,2,2,2,3],MOLIAN:[1,1,2,2,2,3,1],STAPTIAN:[1,2,2,2,3,1,1],MOTHIAN:[2,2,2,3,1,1,1],AERANIAN:[2,2,3,1,1,1,2],RAGIAN:[2,3,1,1,1,2,2],LARIAN:[2,2,2,2,1,2,1],LYTHIAN:[2,2,2,1,2,1,2],STYDIAN:u,LORIAN:[2,1,2,1,2,2,2],IONADIAN:[1,2,1,2,2,2,2],BOCRIAN:c,MIXOLYTHIAN:[1,2,2,2,2,1,2],THADIAN:[4,3,1,1,1,1,1],SANIAN:[3,1,1,1,1,1,4],IONYDIAN:[1,1,1,1,1,4,3],EPYDIAN:[1,1,1,1,4,3,1],KATYDIAN:[1,1,1,4,3,1,1],MATHIAN:[1,1,4,3,1,1,1],AERYPTIAN:[1,4,3,1,1,1,1],PYTHIAN:[4,2,2,1,1,1,1],KATYLIAN:[2,2,1,1,1,1,4],BYDIAN:[2,1,1,1,1,4,2],BYNIAN:[1,1,1,1,4,2,2],GALIAN:[1,1,1,4,2,2,1],ZONIAN:[1,1,4,2,2,1,1],MYRIAN:[1,4,2,2,1,1,1],KATOGIAN:[4,2,1,1,2,1,1],STACRIAN:[2,1,1,2,1,1,4],STYRIAN:[1,1,2,1,1,4,2],IONYRIAN:[1,2,1,1,4,2,1],PHRODIAN:[2,1,1,4,2,1,1],PYCRIAN:[1,1,4,2,1,1,2],GYPTIAN:[1,4,2,1,1,2,1],KATACRIAN:[4,1,1,2,1,1,2],SODIAN:[1,1,2,1,1,2,4],BATHIAN:[1,2,1,1,2,4,1],MYLIAN:[2,1,1,2,4,1,1],GODIAN:[1,1,2,4,1,1,2],THORIAN:[1,2,4,1,1,2,1],ZOCRIAN:[2,4,1,1,2,1,1],STANIAN:[4,1,1,1,1,2,2],EPANIAN:[1,1,1,1,2,2,4],KONIAN:[1,1,1,2,2,4,1],STOCRIAN:[1,1,2,2,4,1,1],KALIAN:[1,2,2,4,1,1,1],PHROPTIAN:[2,2,4,1,1,1,1],DYDIAN:[2,4,1,1,1,1,2],KATYPTIAN:[4,1,1,1,1,1,3],EPODIAN:[1,1,1,1,1,3,4],MYGIAN:[1,1,1,1,3,4,1],PACRIAN:[1,1,1,3,4,1,1],AEROCRIAN:[1,1,3,4,1,1,1],AEOLARIAN:[1,3,4,1,1,1,1],KYTHIAN:[3,4,1,1,1,1,1],BONIAN:[3,3,2,1,1,1,1],BADIAN:[3,2,1,1,1,1,3],KATODIAN:[2,1,1,1,1,3,3],SADIAN:[1,1,1,1,3,3,2],DOTHIAN:[1,1,1,3,3,2,1],MOPTIAN:[1,1,3,3,2,1,1],AERYRIAN:[1,3,3,2,1,1,1],EPAGIAN:[3,3,1,2,1,1,1],RAPTIAN:[3,1,2,1,1,1,3],EPOLIAN:[1,2,1,1,1,3,3],SYTHIAN:[2,1,1,1,3,3,1],SYDIAN:[1,1,1,3,3,1,2],EPOCRIAN:[1,1,3,3,1,2,1],KYLIAN:[1,3,3,1,2,1,1],GACRIAN:[3,3,1,1,1,2,1],BORIAN:[3,1,1,1,2,1,3],SYCRIAN:[1,1,1,2,1,3,3],GADIAN:[1,1,2,1,3,3,1],AEOLOCRIAN:[1,2,1,3,3,1,1],MIXODORIAN:[2,1,3,3,1,1,1],DATHIAN:[1,3,3,1,1,1,2],KATOPTIAN:[3,3,1,1,1,1,2],PONIAN:[3,1,1,1,1,2,3],KADIAN:[1,1,1,1,2,3,3],GYNIAN:[1,1,1,2,3,3,1],THYPHIAN:[1,1,2,3,3,1,1],POLIAN:[1,2,3,3,1,1,1],THANIAN:[2,3,3,1,1,1,1],EPACRIAN:[3,2,2,1,1,2,1],SATHIAN:[2,2,1,1,2,1,3],LATHIAN:[2,1,1,2,1,3,2],AERALIAN:[1,1,2,1,3,2,2],KYNIAN:[1,2,1,3,2,2,1],STYNIAN:[2,1,3,2,2,1,1],EPYPHIAN:[1,3,2,2,1,1,2],POGIAN:[3,2,1,2,1,2,1],AERAPTIAN:[2,1,2,1,2,1,3],EPYLIAN:[1,2,1,2,1,3,2],GAMIAN:[2,1,2,1,3,2,1],KATHIAN:[1,2,1,3,2,1,2],LYLIAN:[2,1,3,2,1,2,1],EPALIAN:[1,3,2,1,2,1,2],EPORIAN:[3,2,1,1,2,2,1],RYLIAN:[2,1,1,2,2,1,3],EPAPTIAN:[1,1,2,2,1,3,2],BYRIAN:[1,2,2,1,3,2,1],KATANIAN:[2,2,1,3,2,1,1],KATYRIAN:[2,1,3,2,1,1,2],RYNIAN:[1,3,2,1,1,2,2],KORIAN:[3,1,2,2,1,1,2],LYNIAN:[1,2,2,1,1,2,3],MALIAN:[2,2,1,1,2,3,1],SYNIAN:[2,1,1,2,3,1,2],PHRAGIAN:[1,1,2,3,1,2,2],MANIAN:[1,2,3,1,2,2,1],MARIAN:[2,3,1,2,2,1,1],MYCRIAN:[3,1,2,1,2,1,2],IONORIAN:[1,2,1,2,1,2,3],PHRYDIAN:[2,1,2,1,2,3,1],ZYPTIAN:[1,2,1,2,3,1,2],KATOTHIAN:[2,1,2,3,1,2,1],PHRYLIAN:[1,2,3,1,2,1,2],KOCRIAN:[2,3,1,2,1,2,1],IONANIAN:[3,1,2,1,1,2,2],AEROTHIAN:[1,2,1,1,2,2,3],STAGIAN:[2,1,1,2,2,3,1],LOTHIAN:[1,1,2,2,3,1,2],PHRYCRIAN:[1,2,2,3,1,2,1],KYPTIAN:[2,2,3,1,2,1,1],IONYLIAN:[2,3,1,2,1,1,2],GYDIAN:[4,2,1,1,1,1,2],KOGIAN:[2,1,1,1,1,2,4],RARIAN:[1,1,1,1,2,4,2],AEROLIAN:[1,1,1,2,4,2,1],KARIAN:[1,1,2,4,2,1,1],MYPTIAN:[1,2,4,2,1,1,1],RYDIAN:[2,4,2,1,1,1,1],AEOLYNIAN:[2,2,2,2,2,1,1],AEROPTIAN:[2,2,2,2,1,1,2],PHRYRIAN:[2,2,2,1,1,2,2],GOTHIAN:[2,2,1,1,2,2,2],STORIAN:[2,1,1,2,2,2,2],PYPTIAN:[1,1,2,2,2,2,2],THYDIAN:m,"NEOPOLITAN MAJOR":m,AERYCRYLLIC:R,"DOMINANT BEBOP":R,"BEBOP DOMINANT":R,GADYLLIC:[2,1,2,2,1,1,1,2],SOLYLLIC:[1,2,2,1,1,1,2,2],ZYLYLLIC:[2,2,1,1,1,2,2,1],MIXODYLLIC:[2,1,1,1,2,2,1,2],SORYLLIC:[1,1,1,2,2,1,2,2],GODYLLIC:[1,1,2,2,1,2,2,1],EPIPHYLLIC:[1,2,2,1,2,2,1,1],PYNYLLIC:[4,1,1,1,2,1,1,1],BOCRYLLIC:[1,1,1,2,1,1,1,4],KOGYLLIC:[1,1,2,1,1,1,4,1],RARYLLIC:[1,2,1,1,1,4,1,1],ZYCRYLLIC:[2,1,1,1,4,1,1,1],MYCRYLLIC:[1,1,1,4,1,1,1,2],LAPTYLLIC:[1,1,4,1,1,1,2,1],PYLYLLIC:[1,4,1,1,1,2,1,1],POTHYLLIC:[3,2,1,1,1,2,1,1],PHRONYLLIC:[2,1,1,1,2,1,1,3],STYNYLLIC:[1,1,1,2,1,1,3,2],RATHYLLIC:[1,1,2,1,1,3,2,1],AERYPTYLLIC:[1,2,1,1,3,2,1,1],ZYDYLLIC:[2,1,1,3,2,1,1,1],KATOLYLLIC:[1,1,3,2,1,1,1,2],RYTHYLLIC:[1,3,2,1,1,1,2,1],LOCRYLLIC:[3,1,1,3,1,1,1,1],BYLYLLIC:[1,1,3,1,1,1,1,3],SOGYLLIC:[1,3,1,1,1,1,3,1],IONYCRYLLIC:[3,1,1,1,1,3,1,1],KOPTYLLIC:[1,1,1,1,3,1,1,3],EPYRYLLIC:[1,1,1,3,1,1,3,1],SOPTYLLIC:[1,1,3,1,1,3,1,1],AEOLYLYLLIC:[1,3,1,1,3,1,1,1],AERACRYLLIC:[3,1,1,2,2,1,1,1],EPYGYLLIC:[1,1,2,2,1,1,1,3],THONYLLIC:[1,2,2,1,1,1,3,1],LANYLLIC:[2,2,1,1,1,3,1,1],PHRYNYLLIC:[2,1,1,1,3,1,1,2],LYCRYLLIC:[1,1,1,3,1,1,2,2],IONYPTYLLIC:[1,1,3,1,1,2,2,1],EPATHYLLIC:[1,3,1,1,2,2,1,1],DYDYLLIC:[3,1,1,2,1,2,1,1],THOGYLLIC:[1,1,2,1,2,1,1,3],RYGYLLIC:[1,2,1,2,1,1,3,1],BYCRYLLIC:[2,1,2,1,1,3,1,1],ZACRYLLIC:[1,2,1,1,3,1,1,2],PANYLLIC:[2,1,1,3,1,1,2,1],DYRYLLIC:[1,1,3,1,1,2,1,2],ZATHYLLIC:[1,3,1,1,2,1,2,1],DAGYLLIC:[3,1,1,2,1,1,1,2],KATALYLLIC:[1,1,2,1,1,1,2,3],KATORYLLIC:[1,2,1,1,1,2,3,1],DODYLLIC:[2,1,1,1,2,3,1,1],ZOGYLLIC:[1,1,1,2,3,1,1,2],MADYLLIC:[1,1,2,3,1,1,2,1],DYCRYLLIC:[1,2,3,1,1,2,1,1],AEOLOGYLLIC:[2,3,1,1,2,1,1,1],SYDYLLIC:[3,1,1,1,3,1,1,1],KATOGYLLIC:[1,1,1,3,1,1,1,3],ZYGYLLIC:[1,1,3,1,1,1,3,1],AERALYLLIC:[1,3,1,1,1,3,1,1],BACRYLLIC:[3,1,1,1,2,2,1,1],AERYGYLLIC:[1,1,1,2,2,1,1,3],DATHYLLIC:[1,1,2,2,1,1,3,1],BOPTYLLIC:[1,2,2,1,1,3,1,1],BAGYLLIC:[2,2,1,1,3,1,1,1],MATHYLLIC:[2,1,1,3,1,1,1,2],STYPTYLLIC:[1,1,3,1,1,1,2,2],ZOLYLLIC:[1,3,1,1,1,2,2,1],ROCRYLLIC:[2,2,2,1,2,1,1,1],ZYRYLLIC:[2,2,1,2,1,1,1,2],SAGYLLIC:[2,1,2,1,1,1,2,2],EPINYLLIC:[1,2,1,1,1,2,2,2],KATAGYLLIC:[2,1,1,1,2,2,2,1],RAGYLLIC:[1,1,1,2,2,2,1,2],GOTHYLLIC:[1,1,2,2,2,1,2,1],LYTHYLLIC:[1,2,2,2,1,2,1,1],IONOCRYLLIC:[2,2,2,1,1,1,2,1],GOCRYLLIC:[2,2,1,1,1,2,1,2],EPIRYLLIC:[2,1,1,1,2,1,2,2],AERADYLLIC:[1,1,1,2,1,2,2,2],STAPTYLLIC:[1,1,2,1,2,2,2,1],DANYLLIC:[1,2,1,2,2,2,1,1],GOPTYLLIC:[2,1,2,2,2,1,1,1],EPOCRYLLIC:[1,2,2,2,1,1,1,2],IONOPTYLLIC:E,"MARJOR BEBOP":E,"BEBOP MAJOR":E,AEOLORYLLIC:[2,1,2,1,1,2,1,2],THYDYLLIC:[1,2,1,1,2,1,2,2],GYCRYLLIC:[2,1,1,2,1,2,2,1],LYRYLLIC:[1,1,2,1,2,2,1,2],MOGYLLIC:[1,2,1,2,2,1,2,1],KATODYLLIC:[2,1,2,2,1,2,1,1],MOPTYLLIC:[1,2,2,1,2,1,1,2],DOLYLLIC:[4,1,2,1,1,1,1,1],MORYLLIC:[1,2,1,1,1,1,1,4],BYDYLLIC:[2,1,1,1,1,1,4,1],POCRYLLIC:[1,1,1,1,1,4,1,2],PHRACRYLLIC:[1,1,1,1,4,1,2,1],GYRYLLIC:[1,1,1,4,1,2,1,1],PHRYGYLLIC:[1,1,4,1,2,1,1,1],DOGYLLIC:[1,4,1,2,1,1,1,1],THAGYLLIC:[4,1,1,2,1,1,1,1],THOPTYLLIC:[1,1,2,1,1,1,1,4],PHRAPTYLLIC:[1,2,1,1,1,1,4,1],GYLYLLIC:[2,1,1,1,1,4,1,1],PHRALYLLIC:[1,1,1,1,4,1,1,2],DYGYLLIC:[1,1,1,4,1,1,2,1],RONYLLIC:[1,1,4,1,1,2,1,1],EPOGYLLIC:[1,4,1,1,2,1,1,1],AEOLADYLLIC:[4,1,1,1,1,2,1,1],KOCRYLLIC:[1,1,1,1,2,1,1,4],LODYLLIC:[1,1,1,2,1,1,4,1],BYNYLLIC:[1,1,2,1,1,4,1,1],KYDYLLIC:[1,2,1,1,4,1,1,1],BYGYLLIC:[2,1,1,4,1,1,1,1],PHRYPTYLLIC:[1,1,4,1,1,1,1,2],IONAYLLIC:[1,4,1,1,1,1,2,1],PHRORYLLIC:[4,1,1,1,1,1,2,1],THYPHYLLIC:[1,1,1,1,1,2,1,4],POPTYLLIC:[1,1,1,1,2,1,4,1],MIXONYLLIC:[1,1,1,2,1,4,1,1],PAPTYLLIC:[1,1,2,1,4,1,1,1],STORYLLIC:[1,2,1,4,1,1,1,1],PHRYCRYLLIC:[2,1,4,1,1,1,1,1],PALYLLIC:[1,4,1,1,1,1,1,2],PHRANYLLIC:[3,2,2,1,1,1,1,1],STYDYLLIC:[2,2,1,1,1,1,1,3],ZADYLLIC:[2,1,1,1,1,1,3,2],ZALYLLIC:[1,1,1,1,1,3,2,2],ZOCRYLLIC:[1,1,1,1,3,2,2,1],KATOCRYLLIC:[1,1,1,3,2,2,1,1],AERATHYLLIC:[1,1,3,2,2,1,1,1],STOPTYLLIC:[1,3,2,2,1,1,1,1],LYDYLLIC:[3,2,1,2,1,1,1,1],RADYLLIC:[2,1,2,1,1,1,1,3],STAGYLLIC:[1,2,1,1,1,1,3,2],IONORYLLIC:[2,1,1,1,1,3,2,1],PHRODYLLIC:[1,1,1,1,3,2,1,2],AERAGYLLIC:[1,1,1,3,2,1,2,1],BANYLLIC:[1,1,3,2,1,2,1,1],EPOTHYLLIC:[1,3,2,1,2,1,1,1],ZORYLLIC:[3,2,1,1,2,1,1,1],PHROLYLLIC:[2,1,1,2,1,1,1,3],KOLYLLIC:[1,1,2,1,1,1,3,2],THODYLLIC:[1,2,1,1,1,3,2,1],SOCRYLLIC:[2,1,1,1,3,2,1,1],AEOLYLLIC:[1,1,1,3,2,1,1,2],ZYTHYLLIC:[1,1,3,2,1,1,2,1],AEORYLLIC:[1,3,2,1,1,2,1,1],MIXOLYDYLLIC:[3,2,1,1,1,1,1,2],MIXONYPHYLLIC:[2,1,1,1,1,1,2,3],AEOLANYLLIC:[1,1,1,1,1,2,3,2],THOCRYLLIC:[1,1,1,1,2,3,2,1],KYGYLLIC:[1,1,1,2,3,2,1,1],IONAGYLLIC:[1,1,2,3,2,1,1,1],GOGYLLIC:[1,2,3,2,1,1,1,1],PHRADYLLIC:[2,3,2,1,1,1,1,1],IONIPTYLLIC:[3,1,3,1,1,1,1,1],KYCRYLLIC:[1,3,1,1,1,1,1,3],AEOLAPTYLLIC:[3,1,1,1,1,1,3,1],RODYLLIC:[1,1,1,1,1,3,1,3],IONATHYLLIC:[1,1,1,1,3,1,3,1],PYTHYLLIC:[1,1,1,3,1,3,1,1],ZONYLLIC:[1,1,3,1,3,1,1,1],RYRYLLIC:[1,3,1,3,1,1,1,1],AEOLOTHYLLIC:[3,1,2,2,1,1,1,1],IONYRYLLIC:[1,2,2,1,1,1,1,3],RYDYLLIC:[2,2,1,1,1,1,3,1],GONYLLIC:[2,1,1,1,1,3,1,2],ROLYLLIC:[1,1,1,1,3,1,2,2],KATYDYLLIC:[1,1,1,3,1,2,2,1],ZYPTYLLIC:[1,1,3,1,2,2,1,1],MODYLLIC:[1,3,1,2,2,1,1,1],MAPTYLLIC:[3,1,2,1,2,1,1,1],AERAPTYLLIC:[1,2,1,2,1,1,1,3],KATADYLLIC:[2,1,2,1,1,1,3,1],MAGYLLIC:[1,2,1,1,1,3,1,2],PHRYLYLLIC:[2,1,1,1,3,1,2,1],EPIGYLLIC:[1,1,1,3,1,2,1,2],MOLYLLIC:[1,1,3,1,2,1,2,1],PONYLLIC:[1,3,1,2,1,2,1,1],THYPTYLLIC:[3,1,2,1,1,2,1,1],IONOGYLLIC:[1,2,1,1,2,1,1,3],AEOLARYLLIC:[2,1,1,2,1,1,3,1],KATYGYLLIC:[1,1,2,1,1,3,1,2],GANYLLIC:[1,2,1,1,3,1,2,1],KYPTYLLIC:[2,1,1,3,1,2,1,1],SALYLLIC:[1,1,3,1,2,1,1,2],SANYLLIC:[1,3,1,2,1,1,2,1],DOPTYLLIC:[3,1,2,1,1,1,2,1],IONILYLLIC:[1,2,1,1,1,2,1,3],MANYLLIC:[2,1,1,1,2,1,3,1],POLYLLIC:[1,1,1,2,1,3,1,2],STANYLLIC:[1,1,2,1,3,1,2,1],MIXOTHARYLLIC:[1,2,1,3,1,2,1,1],EPORYLLIC:[2,1,3,1,2,1,1,1],AERYNYLLIC:[1,3,1,2,1,1,1,2],LONYLLIC:[3,1,1,2,1,1,2,1],SATHYLLIC:[1,1,2,1,1,2,1,3],LAYLLIC:[1,2,1,1,2,1,3,1],SARYLLIC:[2,1,1,2,1,3,1,1],THACRYLLIC:[1,1,2,1,3,1,1,2],AEOLYNYLLIC:[1,2,1,3,1,1,2,1],THADYLLIC:[2,1,3,1,1,2,1,1],LYNYLLIC:[1,3,1,1,2,1,1,2],AEOLATHYLLIC:[3,1,1,1,2,1,2,1],AEOLOCRYLLIC:[1,1,1,2,1,2,1,3],PHROPTYLLIC:[1,1,2,1,2,1,3,1],KODYLLIC:[1,2,1,2,1,3,1,1],EPAPTYLLIC:[2,1,2,1,3,1,1,1],IONOYLLIC:[1,2,1,3,1,1,1,2],GYPTYLLIC:[2,1,3,1,1,1,2,1],AERYTHYLLIC:[1,3,1,1,1,2,1,2],ZAGYLLIC:[3,1,1,1,2,1,1,2],EPACRYLLIC:[1,1,1,2,1,1,2,3],THORCRYLLIC:[1,1,2,1,1,2,3,1],LOPTYLLIC:[1,2,1,1,2,3,1,1],KATYLYLLIC:[2,1,1,2,3,1,1,1],MALYLLIC:[1,1,2,3,1,1,1,2],MYDYLLIC:[1,2,3,1,1,1,2,1],THYCRYLLIC:[2,3,1,1,1,2,1,1],GYTHYLLIC:[3,1,1,1,1,2,2,1],PYRYLLIC:[1,1,1,1,2,2,1,3],RYCRYLLIC:[1,1,1,2,2,1,3,1],PHRATHYLLIC:[1,1,2,2,1,3,1,1],BADYLLIC:[1,2,2,1,3,1,1,1],PHROCRYLLIC:[2,2,1,3,1,1,1,1],STARYLLIC:[2,1,3,1,1,1,1,2],ZOTHYLLIC:[1,3,1,1,1,1,2,2],THARYLLIC:[3,1,1,1,1,2,1,2],SYLYLLIC:[1,1,1,1,2,1,2,3],LOTHYLLIC:[1,1,1,2,1,2,3,1],DARYLLIC:[1,1,2,1,2,3,1,1],MONYLLIC:[1,2,1,2,3,1,1,1],STYRYLLIC:[2,1,2,3,1,1,1,1],AEOLACRYLLIC:[1,2,3,1,1,1,1,2],RAPTYLLIC:[2,3,1,1,1,1,2,1],KATARYLLIC:[3,1,1,1,1,1,2,2],AEROCRYLLIC:[1,1,1,1,1,2,2,3],ZANYLLIC:[1,1,1,1,2,2,3,1],AEOLONYLLIC:[1,1,1,2,2,3,1,1],AEONYLLIC:[1,1,2,2,3,1,1,1],KYRYLLIC:[1,2,2,3,1,1,1,1],SYTHYLLIC:[2,2,3,1,1,1,1,1],KATYCRYLLIC:[2,3,1,1,1,1,1,2],STOGYLLIC:[2,2,1,2,1,2,1,1],IONIDYLLIC:[2,1,2,1,2,1,1,2],STONYLLIC:[1,2,1,2,1,1,2,2],STALYLLIC:[2,1,2,1,1,2,2,1],PORYLLIC:[1,2,1,1,2,2,1,2],MOCRYLLIC:[2,1,1,2,2,1,2,1],AEOLYRYLLIC:[1,1,2,2,1,2,1,2],BARYLLIC:[1,2,2,1,2,1,2,1],DALYLLIC:[2,2,1,1,2,1,2,1],IONYPHYLLIC:[2,1,1,2,1,2,1,2],ZAPTYLLIC:[1,1,2,1,2,1,2,2],GARYLLIC:[1,2,1,2,1,2,2,1],GATHYLLIC:[2,1,2,1,2,2,1,1],MIXOPYRYLLIC:[1,2,1,2,2,1,1,2],IONACRYLLIC:I,"BEBOP MINOR":I,"MINOR BEBOP":I,"DORIAN BEBOP":I,"BEBOP DORIAN":I,STYLYLLIC:[1,2,2,1,1,2,1,2],STYCRYLLIC:[4,2,1,1,1,1,1,1],IONOTHYLLIC:[2,1,1,1,1,1,1,4],MYTHYLLIC:[1,1,1,1,1,1,4,2],AERYLYLLIC:[1,1,1,1,1,4,2,1],BONYLLIC:[1,1,1,1,4,2,1,1],THOLYLLIC:[1,1,1,4,2,1,1,1],KATYRYLLIC:[1,1,4,2,1,1,1,1],SADYLLIC:[1,4,2,1,1,1,1,1],STOLYLLIC:[4,1,1,1,1,1,1,2],LOGYLLIC:[1,1,1,1,1,1,2,4],DACRYLLIC:[1,1,1,1,1,2,4,1],THYNYLLIC:[1,1,1,1,2,4,1,1],GYDYLLIC:[1,1,1,2,4,1,1,1],EPARYLLIC:[1,1,2,4,1,1,1,1],DYNYLLIC:[1,2,4,1,1,1,1,1],IONYLLIC:[2,4,1,1,1,1,1,1],ZARYLLIC:[3,3,1,1,1,1,1,1],DYTHYLLIC:[3,1,1,1,1,1,1,3],IONARYLLIC:[1,1,1,1,1,1,3,3],LARYLLIC:[1,1,1,1,1,3,3,1],KATAPTYLLIC:[1,1,1,1,3,3,1,1],SONYLLIC:[1,1,1,3,3,1,1,1],PATHYLLIC:[1,1,3,3,1,1,1,1],LORYLLIC:[1,3,3,1,1,1,1,1],AERONYLLIC:[3,2,1,1,1,1,2,1],PYCRYLLIC:[2,1,1,1,1,2,1,3],MYGYLLIC:[1,1,1,1,2,1,3,2],LYLYLLIC:[1,1,1,2,1,3,2,1],DAPTYLLIC:[1,1,2,1,3,2,1,1],IONINYLLIC:[1,2,1,3,2,1,1,1],EPAPHYLLIC:[2,1,3,2,1,1,1,1],LOLYLLIC:[1,3,2,1,1,1,1,2],STACRYLLIC:[3,1,2,1,1,1,1,2],DORYLLIC:[1,2,1,1,1,1,2,3],KADYLLIC:[2,1,1,1,1,2,3,1],RYNYLLIC:[1,1,1,1,2,3,1,2],AEROGYLLIC:[1,1,1,2,3,1,2,1],ROTHYLLIC:[1,1,2,3,1,2,1,1],KAGYLLIC:[1,2,3,1,2,1,1,1],STATHYLLIC:[2,3,1,2,1,1,1,1],THYRYLLIC:[2,2,2,2,1,1,1,1],GYGYLLIC:[2,2,2,1,1,1,1,2],SODYLLIC:[2,2,1,1,1,1,2,2],GORYLLIC:[2,1,1,1,1,2,2,2],BOTHYLLIC:[1,1,1,1,2,2,2,2],GYNYLLIC:[1,1,1,2,2,2,2,1],IONAPTYLLIC:[1,1,2,2,2,2,1,1],PHRYRYLLIC:[1,2,2,2,2,1,1,1],RACRYLLIC:[2,2,2,1,1,2,1,1],EPICRYLLIC:[2,2,1,1,2,1,1,2],STYGYLLIC:[2,1,1,2,1,1,2,2],SYRYLLIC:[1,1,2,1,1,2,2,2],STYTHYLLIC:[1,2,1,1,2,2,2,1],AEROTHYLLIC:[2,1,1,2,2,2,1,1],MIXORYLLIC:[1,1,2,2,2,1,1,2],THANYLLIC:[1,2,2,2,1,1,2,1],RORYLLIC:[2,2,1,1,2,2,1,1],EPOTYLLIC:[2,1,1,2,2,1,1,2],EPIDYLLIC:[1,1,2,2,1,1,2,2],KAPTYLLIC:[1,2,2,1,1,2,2,1],MAJORDIMIN:[2,1,2,1,2,1,2,1],MINORDIMIN:_,OCTATONIC:_,AERYCRYGIC:[2,2,1,1,1,2,1,1,1],GADYGIC:[2,1,1,1,2,1,1,1,2],SOLYGIC:[1,1,1,2,1,1,1,2,2],ZYLYGIC:[1,1,2,1,1,1,2,2,1],GARYGIC:[1,2,1,1,1,2,2,1,1],SORYGIC:[2,1,1,1,2,2,1,1,1],GODYGIC:[1,1,1,2,2,1,1,1,2],EPITHYGIC:[1,1,2,2,1,1,1,2,1],IONOPTYGIC:[1,2,2,1,1,1,2,1,1],KALYGIC:[3,1,1,2,1,1,1,1,1],IONODYGIC:[1,1,2,1,1,1,1,1,3],BYTHYGIC:[1,2,1,1,1,1,1,3,1],EPYGIC:[2,1,1,1,1,1,3,1,1],MARYGIC:[1,1,1,1,1,3,1,1,2],GAPTYGIC:[1,1,1,1,3,1,1,2,1],AEROPTYGIC:[1,1,1,3,1,1,2,1,1],MYLYGIC:[1,1,3,1,1,2,1,1,1],GALYGIC:[1,3,1,1,2,1,1,1,1],MIXOLYDYGIC:[3,1,1,1,2,1,1,1,1],IONYCRYGIC:[1,1,1,2,1,1,1,1,3],ZOPTYGIC:[1,1,2,1,1,1,1,3,1],PHRYGYGIC:[1,2,1,1,1,1,3,1,1],LOCRYGIC:[2,1,1,1,1,3,1,1,1],GONYGIC:[1,1,1,1,3,1,1,1,2],AERACRYGIC:[1,1,1,3,1,1,1,2,1],AERATHYGIC:[1,1,3,1,1,1,2,1,1],DORYGIC:[1,3,1,1,1,2,1,1,1],DYCRYGIC:[3,1,1,1,1,2,1,1,1],AEOLYGIC:[1,1,1,1,2,1,1,1,3],DYDYGIC:[1,1,1,2,1,1,1,3,1],THOLYGIC:[1,1,2,1,1,1,3,1,1],RYNYGIC:[1,2,1,1,1,3,1,1,1],BYCRYGIC:[2,1,1,1,3,1,1,1,1],ZACRYGIC:[1,1,1,3,1,1,1,1,2],PANYGIC:[1,1,3,1,1,1,1,2,1],DYRYGIC:[1,3,1,1,1,1,2,1,1],LOPTYGIC:[3,1,1,1,1,1,2,1,1],KATYLYGIC:[1,1,1,1,1,2,1,1,3],PHRADYGIC:[1,1,1,1,2,1,1,3,1],MIXODYGIC:[1,1,1,2,1,1,3,1,1],KATALYGIC:[1,1,2,1,1,3,1,1,1],KATORYGIC:[1,2,1,1,3,1,1,1,1],DOGYGIC:[2,1,1,3,1,1,1,1,1],ZODYGIC:[1,1,3,1,1,1,1,1,2],MADYGIC:[1,3,1,1,1,1,1,2,1],BAGYGIC:[2,2,1,2,1,1,1,1,1],MATHYGIC:[2,1,2,1,1,1,1,1,2],STYPTYGIC:[1,2,1,1,1,1,1,2,2],ZOLYGIC:[2,1,1,1,1,1,2,2,1],SYDYGIC:[1,1,1,1,1,2,2,1,2],KATYGIC:[1,1,1,1,2,2,1,2,1],ZYPHYGIC:[1,1,1,2,2,1,2,1,1],AERALYGIC:[1,1,2,2,1,2,1,1,1],RYPTYGIC:[1,2,2,1,2,1,1,1,1],APINYGIC:[2,2,1,1,1,1,1,2,1],KATAGYGIC:[2,1,1,1,1,1,2,1,2],RADYGIC:[1,1,1,1,1,2,1,2,2],GOTHYGIC:[1,1,1,1,2,1,2,2,1],LYTHYGIC:[1,1,1,2,1,2,2,1,1],BACRYGIC:[1,1,2,1,2,2,1,1,1],AERYGIC:[1,2,1,2,2,1,1,1,1],DATHYGIC:[2,1,2,2,1,1,1,1,1],BOPTYGIC:[1,2,2,1,1,1,1,1,2],EPYRYGIC:[2,1,2,1,1,2,1,1,1],AERADYGIC:[1,2,1,1,2,1,1,1,2],STAPTYGIC:[2,1,1,2,1,1,1,2,1],DANYGIC:[1,1,2,1,1,1,2,1,2],GOPTYGIC:[1,2,1,1,1,2,1,2,1],EPOCRYGIC:[2,1,1,1,2,1,2,1,1],ROCRYGIC:[1,1,1,2,1,2,1,1,2],ZYRYGIC:[1,1,2,1,2,1,1,2,1],SADYGIC:[1,2,1,2,1,1,2,1,1],AEOLORYGIC:[2,1,2,1,1,1,2,1,1],THYDYGIC:[1,2,1,1,1,2,1,1,2],GYCRYGIC:[2,1,1,1,2,1,1,2,1],LYRYGIC:[1,1,1,2,1,1,2,1,2],MODYGIC:[1,1,2,1,1,2,1,2,1],KATODYGIC:[1,2,1,1,2,1,2,1,1],MOPTYGIC:[2,1,1,2,1,2,1,1,1],IONOCRYGIC:[1,1,2,1,2,1,1,1,2],GOCRYGIC:[1,2,1,2,1,1,1,2,1],MANYGIC:[4,1,1,1,1,1,1,1,1],POLYGIC:[1,1,1,1,1,1,1,1,4],STANYGIC:[1,1,1,1,1,1,1,4,1],THAPTYGIC:[1,1,1,1,1,1,4,1,1],EPORYGIC:[1,1,1,1,1,4,1,1,1],AERYNYGIC:[1,1,1,1,4,1,1,1,1],THYPTYGIC:[1,1,1,4,1,1,1,1,1],IONOGYGIC:[1,1,4,1,1,1,1,1,1],AEOLARYGIC:[1,4,1,1,1,1,1,1,1],SATHYGIC:[3,2,1,1,1,1,1,1,1],LADYGIC:[2,1,1,1,1,1,1,1,3],SARYGIC:[1,1,1,1,1,1,1,3,2],THACRYGIC:[1,1,1,1,1,1,3,2,1],AEOLYNYGIC:[1,1,1,1,1,3,2,1,1],THADYGIC:[1,1,1,1,3,2,1,1,1],LYNYGIC:[1,1,1,3,2,1,1,1,1],DOPTYGIC:[1,1,3,2,1,1,1,1,1],IONILYGIC:[1,3,2,1,1,1,1,1,1],PHRYGIC:[3,1,2,1,1,1,1,1,1],AERANYGIC:[1,2,1,1,1,1,1,1,3],DOTHYGIC:[2,1,1,1,1,1,1,3,1],LYDYGIC:[1,1,1,1,1,1,3,1,2],STADYGIC:[1,1,1,1,1,3,1,2,1],BYPTYGIC:[1,1,1,1,3,1,2,1,1],STODYGIC:[1,1,1,3,1,2,1,1,1],ZYNYGIC:[1,1,3,1,2,1,1,1,1],LONYGIC:[1,3,1,2,1,1,1,1,1],ZOTHYGIC:[3,1,1,1,1,1,1,2,1],AEOLATHYGIC:[1,1,1,1,1,1,2,1,3],AEOLOCRYGIC:[1,1,1,1,1,2,1,3,1],PHROPTYGIC:[1,1,1,1,2,1,3,1,1],KODYGIC:[1,1,1,2,1,3,1,1,1],EPARYGIC:[1,1,2,1,3,1,1,1,1],IONYGIC:[1,2,1,3,1,1,1,1,1],GYPTYGIC:[2,1,3,1,1,1,1,1,1],AERYTHYGIC:[1,3,1,1,1,1,1,1,2],AEOLACRYGIC:[3,1,1,1,1,1,1,1,2],RAPTYGIC:[1,1,1,1,1,1,1,2,3],GYTHYGIC:[1,1,1,1,1,1,2,3,1],PYRYGIC:[1,1,1,1,1,2,3,1,1],RYCRYGIC:[1,1,1,1,2,3,1,1,1],PHRATHYGIC:[1,1,1,2,3,1,1,1,1],BADYGIC:[1,1,2,3,1,1,1,1,1],PHROCRYGIC:[1,2,3,1,1,1,1,1,1],STARYGIC:[2,3,1,1,1,1,1,1,1],KYRYGIC:[2,2,2,1,1,1,1,1,1],SYTHYGIC:[2,2,1,1,1,1,1,1,2],KATYCRYGIC:[2,1,1,1,1,1,1,2,2],THARYGIC:[1,1,1,1,1,1,2,2,2],SYLYGIC:[1,1,1,1,1,2,2,2,1],LOTHYGIC:[1,1,1,1,2,2,2,1,1],DARYGIC:[1,1,1,2,2,2,1,1,1],MONYGIC:[1,1,2,2,2,1,1,1,1],STYRYGIC:[1,2,2,2,1,1,1,1,1],PORYGIC:[2,2,1,1,2,1,1,1,1],MOCRYGIC:[2,1,1,2,1,1,1,1,2],AEOLYRYGIC:[1,1,2,1,1,1,1,2,2],BARYGIC:[1,2,1,1,1,1,2,2,1],KATARYGIC:[2,1,1,1,1,2,2,1,1],AEROCRYGIC:[1,1,1,1,2,2,1,1,2],ZANYGIC:[1,1,1,2,2,1,1,2,1],AEOLONYGIC:[1,1,2,2,1,1,2,1,1],AEOLANYGIC:[1,2,2,1,1,2,1,1,1],KAPTYGIC:[2,2,1,1,1,1,2,1,1],SACRYGIC:[2,1,1,1,1,2,1,1,2],PADYGIC:[1,1,1,1,2,1,1,2,2],EPILYGIC:[1,1,1,2,1,1,2,2,1],KYNYGIC:[1,1,2,1,1,2,2,1,1],STOPHYGIC:[1,2,1,1,2,2,1,1,1],IONIDYGIC:[2,1,1,2,2,1,1,1,1],STONYGIC:[1,1,2,2,1,1,1,1,2],STALYGIC:[1,2,2,1,1,1,1,2,1],KOPTYGIC:[2,1,2,1,2,1,1,1,1],RAPHYGIC:[1,2,1,2,1,1,1,1,2],ZYCRYGIC:[2,1,2,1,1,1,1,2,1],MYCRYGIC:[1,2,1,1,1,1,2,1,2],LAPTYGIC:[2,1,1,1,1,2,1,2,1],PYLYGIC:[1,1,1,1,2,1,2,1,2],RODYGIC:[1,1,1,2,1,2,1,2,1],EPOLYGIC:[1,1,2,1,2,1,2,1,1],EPIDYGIC:[1,2,1,2,1,2,1,1,1],PHRONYGIC:[2,1,1,2,1,1,2,1,1],STYNYGIC:[1,1,2,1,1,2,1,1,2],ZYDYGIC:[1,2,1,1,2,1,1,2,1],AERYCRYLLIAN:[2,1,1,1,2,1,1,1,1,1],GADYLLIAN:[1,1,1,2,1,1,1,1,1,2],SOLYLLIAN:[1,1,2,1,1,1,1,1,2,1],ZYPHYLLIAN:[1,2,1,1,1,1,1,2,1,1],GARYLLIAN:[2,1,1,1,1,1,2,1,1,1],SORYLLIAN:[1,1,1,1,1,2,1,1,1,2],GODYLLIAN:[1,1,1,1,2,1,1,1,2,1],EPITYLLIAN:[1,1,1,2,1,1,1,2,1,1],IONYLLIAN:[1,1,2,1,1,1,2,1,1,1],AEORYLLIAN:[1,2,1,1,1,2,1,1,1,1],KATORYLLIAN:[3,1,1,1,1,1,1,1,1,1],DODYLLIAN:[1,1,1,1,1,1,1,1,1,3],ZOGYLLIAN:[1,1,1,1,1,1,1,1,3,1],MADYLLIAN:[1,1,1,1,1,1,1,3,1,1],DYCRYLLIAN:[1,1,1,1,1,1,3,1,1,1],AEOGYLLIAN:[1,1,1,1,1,3,1,1,1,1],DYDYLLIAN:[1,1,1,1,3,1,1,1,1,1],THOGYLLIAN:[1,1,1,3,1,1,1,1,1,1],RYGYLLIAN:[1,1,3,1,1,1,1,1,1,1],BATHYLLIAN:[1,3,1,1,1,1,1,1,1,1],SYDYLLIAN:[2,2,1,1,1,1,1,1,1,1],KATOGYLLIAN:[2,1,1,1,1,1,1,1,1,2],MIXODYLLIAN:[1,1,1,1,1,1,1,1,2,2],AERADYLLIAN:[1,1,1,1,1,1,1,2,2,1],RYPTYLLIAN:[1,1,1,1,1,1,2,2,1,1],LOPTYLLIAN:[1,1,1,1,1,2,2,1,1,1],KATAPHYLLIAN:[1,1,1,1,2,2,1,1,1,1],PHRADYLLIAN:[1,1,1,2,2,1,1,1,1,1],DAGYLLIAN:[1,1,2,2,1,1,1,1,1,1],KATYLLIAN:[1,2,2,1,1,1,1,1,1,1],GOTHYLLIAN:[2,1,2,1,1,1,1,1,1,1],LYTHYLLIAN:[1,2,1,1,1,1,1,1,1,2],BACRYLLIAN:[2,1,1,1,1,1,1,1,2,1],AERYGYLLIAN:[1,1,1,1,1,1,1,2,1,2],DATHYLLIAN:[1,1,1,1,1,1,2,1,2,1],BOPTYLLIAN:[1,1,1,1,1,2,1,2,1,1],BAGYLLIAN:[1,1,1,1,2,1,2,1,1,1],MATHYLLIAN:[1,1,1,2,1,2,1,1,1,1],STYPTYLLIAN:[1,1,2,1,2,1,1,1,1,1],ZOLYLLIAN:[1,2,1,2,1,1,1,1,1,1],STAPTYLLIAN:[2,1,1,2,1,1,1,1,1,1],DANYLLIAN:[1,1,2,1,1,1,1,1,1,2],GOPTYLLIAN:[1,2,1,1,1,1,1,1,2,1],EPOCRYLLIAN:[2,1,1,1,1,1,1,2,1,1],ROCRYLLIAN:[1,1,1,1,1,1,2,1,1,2],ZYRYLLIAN:[1,1,1,1,1,2,1,1,2,1],SAGYLLIAN:[1,1,1,1,2,1,1,2,1,1],EPINYLLIAN:[1,1,1,2,1,1,2,1,1,1],KATAGYLLIAN:[1,1,2,1,1,2,1,1,1,1],RAGYLLIAN:[1,2,1,1,2,1,1,1,1,1],THYDYLLIAN:[2,1,1,1,1,2,1,1,1,1],EPIRYLLIAN:[1,1,1,1,2,1,1,1,1,2],LYRYLLIAN:[1,1,1,2,1,1,1,1,2,1],MOGYLLIAN:[1,1,2,1,1,1,1,2,1,1],KATODYLLIAN:[1,2,1,1,1,1,2,1,1,1],AERYCRATIC:[2,1,1,1,1,1,1,1,1,1,1],MONATIC:[1,1,1,1,1,1,1,1,1,1,2],SOLATIC:[1,1,1,1,1,1,1,1,1,2,1],ZYLATIC:[1,1,1,1,1,1,1,1,2,1,1],MIXOLATIC:[1,1,1,1,1,1,1,2,1,1,1],SORATIC:[1,1,1,1,1,1,2,1,1,1,1],GODATIC:[1,1,1,1,1,2,1,1,1,1,1],EPTATIC:[1,1,1,1,2,1,1,1,1,1,1],IONATIC:[1,1,1,2,1,1,1,1,1,1,1],AEOLATIC:[1,1,2,1,1,1,1,1,1,1,1],THYDATIC:[1,2,1,1,1,1,1,1,1,1,1],CHROMATIC:[1,1,1,1,1,1,1,1,1,1,1,1]}},Vc=NG(),wG=()=>{const r=Object.keys(Vc),e=r[Math.floor(Math.random()*r.length)];return Vc[e]},ea=r=>Vc[r.toUpperCase()],hR=r=>r.toUpperCase()in Vc,DG=r=>ea(r).length,xG=()=>{const r=[0,4,7],e=[0,3,7],t=[0,4,7,11],n=[0,4,7,10],i=[0,3,7,10],a=[0,4,8],s=[0,3,6],o=[0,3,6,9],l=[0,3,6,10],m={1:[0],5:[0,7],"+5":[0,4,8],"m+5":[0,3,8],sus2:[0,2,7],sus4:[0,5,7],6:[0,4,7,9],m6:[0,3,7,9],"7sus2":[0,2,7,10],"7sus4":[0,5,7,10],"7-5":[0,4,6,10],"7+5":[0,4,8,10],"m7+5":[0,3,8,10],9:[0,4,7,10,14],m9:[0,3,7,10,14],"m7+9":[0,3,7,10,14],maj9:[0,4,7,11,14],"9sus4":[0,5,7,10,14],"6*9":[0,4,7,9,14],"m6*9":[0,3,7,9,14],"7-9":[0,4,7,10,13],"m7-9":[0,3,7,10,13],"7-10":[0,4,7,10,15],"7-11":[0,4,7,10,16],"7-13":[0,4,7,10,20],"9+5":[0,10,13],"m9+5":[0,10,14],"7+5-9":[0,4,8,10,13],"m7+5-9":[0,3,8,10,13],11:[0,4,7,10,14,17],m11:[0,3,7,10,14,17],maj11:[0,4,7,11,14,17],"11+":[0,4,7,10,14,18],"m11+":[0,3,7,10,14,18],13:[0,4,7,10,14,17,21],m13:[0,3,7,10,14,17,21],add2:[0,2,4,7],add4:[0,4,5,7],add9:[0,4,7,14],add11:[0,4,7,17],add13:[0,4,7,21],madd2:[0,2,3,7],madd4:[0,3,5,7],madd9:[0,3,7,14],madd11:[0,3,7,17],madd13:[0,3,7,21],dim9:[0,3,6,9,14],dim:s,hdim7:l,hdim9:[0,3,6,10,14],hdimb9:[0,3,6,10,13],augMaj7:[0,4,8,11],minmaj7:[0,3,7,11],five:[0,7,12],seven:n,nine:[0,4,10,14],b9:[0,4,10,13],mM9:[0,3,11,14],min7:i,min9:[0,3,10,14],b5:[0,4,6,12],mb5:[0,3,6,12],major:r,maj:r,M:r,minor:e,min:e,m:e,major7:t,dom7:n,7:n,M7:t,m7:i,augmented:a,a,aug:a,diminished:s,diminished7:o,dim7:o,halfdim:l,m7b5:l,"m7-5":l},_=Object.keys(m);return[m,_]},[_T,V5]=xG(),ig=(r="")=>{let e=0,t=0,n=0,i=0;function a(){const s=(e^e<<11)>>>0;return e=t,t=n,n=i,i^=(i>>>19^s^s>>>8)>>>0,(i>>>0)/4294967296}for(let s=0;sArray.isArray(r)?r.map(e=>ri(e)):r&&typeof r=="object"?Object.getOwnPropertyNames(r).reduce((e,t)=>(Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t)),e[t]=ri(r[t]),e),Object.create(Object.getPrototypeOf(r))):r,mR=r=>{try{return new Function(`"use strict";return (${r})`)()}catch(e){throw new Error(`Error in eval: ${e}`)}},kG=(r,e)=>(r%e+e)%e,gR=function(){function r(i,a){function s(){this.constructor=i}s.prototype=a.prototype,i.prototype=new s}function e(i,a,s,o){var l=Error.call(this,i);return Object.setPrototypeOf&&Object.setPrototypeOf(l,e.prototype),l.expected=a,l.found=s,l.location=o,l.name="SyntaxError",l}r(e,Error);function t(i,a,s){return s=s||" ",i.length>a?i:(a-=i.length,s+=s.repeat(a),i+s.slice(0,a))}e.prototype.format=function(i){var a="Error: "+this.message;if(this.location){var s=null,o;for(o=0;o{let e=Jc.get();delete e._base;let t=r.matchBefore(/sound\(/);return t?{from:t.from+6,options:Object.keys(e).map(i=>({label:i,type:e[i].data.type,apply:`"${i}"`}))}:null},fR=Yr.data.of({autocomplete:hG}),gG=Yr.data.of({autocomplete:mG}),_G=(()=>[oD(),Pw(),dP(),yw(),ww(),_t.allowMultipleSelections.of(!0),bD(),by(PD,{fallback:!0}),QD(),Nx(),Yx(),Gw(),qM(),Na.of([...kx,...s3,...bP,...J$])])(),SG=r=>{r.vimModeCompartment=new Br,r.hoveringCompartment=new Br,r.completionsCompartment=new Br,r.withLineNumbers=new Br,r.chosenLanguage=new Br,r.fontSize=new Br;const e=r.settings.vimMode?O_():[],t=r.settings.line_numbers?ly():[],n=Me.theme({"&":{fontSize:`${r.settings.font_size}px`},$content:{fontFamily:`${r.settings.font}`,fontSize:`${r.settings.font_size}px`},".cm-gutters":{fontSize:`${r.settings.font_size}px`}});r.editorExtensions=[r.vimModeCompartment.of(e),r.withLineNumbers.of(t),r.fontSize.of(n),r.hoveringCompartment.of(r.settings.tips?pR:[]),r.completionsCompartment.of(r.settings.completions?[fR,gG]:[]),_G,fG,r.chosenLanguage.of(Wg()),Me.updateListener.of(i=>{})],r.dynamicPlugins=new Br,r.state=_t.create({extensions:[...r.editorExtensions,Me.lineWrapping,r.dynamicPlugins.of(r.userPlugins),vi.highest(Na.of([{key:"Ctrl-Enter",run:()=>!0}])),Na.of([o3])],doc:r.universes[r.selected_universe].global.candidate}),r.view=new Me({parent:document.getElementById("editor"),state:r.state}),r.view.dispatch({effects:r.fontSize.reconfigure(Me.theme({"&":{fontSize:`${r.settings.font_size}px`},$content:{fontFamily:`${r.settings.font}`,fontSize:`${r.settings.font_size}px`},".cm-gutters":{fontSize:`${r.settings.font_size}px`}}))})},mT=(r,e)=>String(r).padStart(e,"0");class OG extends AudioWorkletNode{constructor(t,n,i){super(t,"transport",n);A(this,"handleMessage",t=>{if(t.data&&t.data.type==="bang"&&this.app.clock.running){this.app.settings.send_clock&&this.app.api.MidiConnection.sendMidiClock();const n=this.app.clock.convertTicksToTimeposition(this.app.clock.tick);this.app.clock.time_position=n,this.timeviewer.innerHTML=`${mT(n.bar,2)}:${n.beat+1}:${mT(n.pulse,2)} / ${this.app.clock.bpm}`,this.app.exampleIsPlaying?wa(this.app,this.app.example_buffer):wa(this.app,this.app.global_buffer),this.app.clock.incrementTick(t.data.bpm)}});this.app=i,this.port.addEventListener("message",this.handleMessage),this.port.start(),this.timeviewer=document.getElementById("timeviewer")}start(){this.port.postMessage({type:"start"})}pause(){this.port.postMessage({type:"pause"})}resume(){this.port.postMessage({type:"resume"})}setBPM(t){this.port.postMessage({type:"bpm",value:t})}setPPQN(t){this.port.postMessage({type:"ppqn",value:t})}setNudge(t){this.port.postMessage({type:"nudge",value:t})}stop(){this.port.postMessage({type:"stop"})}}const bG="/assets/TransportProcessor-d5d50b30.js";class EG{constructor(e,t){A(this,"ctx");A(this,"logicalTime");A(this,"transportNode");A(this,"_bpm");A(this,"time_signature");A(this,"time_position");A(this,"_ppqn");A(this,"tick");A(this,"running");A(this,"lastPauseTime");A(this,"lastPlayPressTime");A(this,"totalPauseTime");this.app=e,this.time_position={bar:0,beat:0,pulse:0},this.time_signature=[4,4],this.logicalTime=0,this.tick=0,this._bpm=120,this._ppqn=48*4,this.transportNode=null,this.ctx=t,this.running=!0,this.lastPauseTime=0,this.lastPlayPressTime=0,this.totalPauseTime=0,t.audioWorklet.addModule(bG).then(n=>(this.transportNode=new OG(t,{},this.app),this.transportNode.connect(t.destination),n)).catch(n=>{console.log("Error loading TransportProcessor.js:",n)})}convertTicksToTimeposition(e){const t=this.app.clock.time_signature[0],n=e%this.app.clock.ppqn,i=Math.floor(e/this.app.clock.ppqn),a=Math.floor(i/t),s=Math.floor(i%t);return{bar:a,beat:s,pulse:n}}get ticks_before_new_bar(){const e=this.ppqn-this.time_position.pulse;return(this.beats_per_bar-this.time_position.beat)*this.ppqn+e}get next_beat_in_ticks(){return this.app.clock.pulses_since_origin+this.time_position.pulse}get beats_per_bar(){return this.time_signature[0]}get beats_since_origin(){return Math.floor(this.tick/this.ppqn)}get pulses_since_origin(){return this.tick}get pulse_duration(){return 60/this.bpm/this.ppqn}pulse_duration_at_bpm(e=this.bpm){return 60/e/this.ppqn}get bpm(){return this._bpm}set nudge(e){var t;(t=this.transportNode)==null||t.setNudge(e)}set bpm(e){var t;e>0&&this._bpm!==e&&((t=this.transportNode)==null||t.setBPM(e),this._bpm=e,this.logicalTime=this.realTime)}get ppqn(){return this._ppqn}get realTime(){return this.app.audioContext.currentTime-this.totalPauseTime}get deviation(){return Math.abs(this.logicalTime-this.realTime)}set ppqn(e){var t;e>0&&this._ppqn!==e&&(this._ppqn=e,(t=this.transportNode)==null||t.setPPQN(e),this.logicalTime=this.realTime)}incrementTick(e){this.tick++,this.logicalTime+=this.pulse_duration_at_bpm(e)}nextTickFrom(e,t){const n=this.pulse_duration,i=e+t;return Math.ceil(i/n)*n-i}convertPulseToSecond(e){return e*this.pulse_duration}start(){var e;this.app.audioContext.resume(),this.running=!0,this.app.api.MidiConnection.sendStartMessage(),this.lastPlayPressTime=this.app.audioContext.currentTime,this.totalPauseTime+=this.lastPlayPressTime-this.lastPauseTime,(e=this.transportNode)==null||e.start()}pause(){var e;this.running=!1,(e=this.transportNode)==null||e.pause(),this.app.api.MidiConnection.sendStopMessage(),this.lastPauseTime=this.app.audioContext.currentTime,this.logicalTime=this.realTime}stop(){var e;this.running=!1,this.tick=0,this.lastPauseTime=this.app.audioContext.currentTime,this.logicalTime=this.realTime,this.time_position={bar:0,beat:0,pulse:0},this.app.api.MidiConnection.sendStopMessage(),(e=this.transportNode)==null||e.stop()}}const vG={"+":(r,e)=>r+e,"-":(r,e)=>r-e,"*":(r,e)=>r*e,"/":(r,e)=>r/e,"%":(r,e)=>r%e,"^":(r,e)=>r**e,"<<":(r,e)=>r<>":(r,e)=>r>>e,"&":(r,e)=>r&e,"|":(r,e)=>r|e},y_=.25,TG={octave:0,key:"C4",scale:"MAJOR",measure:0,degrees:!1},CG={m:8,k:10240/1920,l:4,"d.":3,p:5120/1920,d:2,"w.":1.5,c:2560/1920,w:1,"h..":.875,"h.":.75,y:1280/1920,h:.5,"q..":840/1920,"q.":.375,n:640/1920,q:.25,"e..":420/1920,"e.":.1875,a:320/1920,e:.125,"s..":210/1920,"s.":180/1920,f:160/1920,s:.0625,"t..":105/1920,"t.":90/1920,x:80/1920,t:60/1920,"u.":45/1920,g:40/1920,u:30/1920,j:15/1920,o:8/1920,z:0},yG={C:0,Cs:1,D:2,Eb:3,E:4,F:5,Fs:6,G:7,Ab:8,A:9,Bb:10,B:11},AG={0:"C",1:"Cs",2:"D",3:"Eb",4:"E",5:"F",6:"Fs",7:"G",8:"Ab",9:"A",10:"Bb",11:"B"},gT=["Gb","Cs","Ab","Eb","Bb","F","C","G","D","A","E","B","Fs"],IG={"#":1,b:-1,s:1},RG={i:1,v:5,x:10,l:50,c:100,d:500,m:1e3},NG=()=>{const r=[2,1,2,2,1,2,2],e=[2,2,1,2,2,2,1],t=[2,1,2,2,1,3,1],n=[2,2,1,2,1,3,1],i=[3,2,2,3,2],a=[2,3,2,3,2],s=[2,2,2,2,2,2],o=[2,1,1,3,2,3],l=[3,2,1,1,3,2],c=[2,1,2,2,2,2,1],u=[2,2,1,2,1,2,2],p=[1,2,2,2,1,3,1],m=[1,2,2,2,2,2,1],_=[1,2,1,2,1,2,1,2],E=[2,2,1,2,1,1,2,1],I=[2,1,2,2,1,1,2,1],R=[2,2,1,2,2,1,1,1];return{MAJOR:e,MINOR:r,"HARMONIC MINOR":t,"HARMONIC MAJOR":n,"MINOR PENTATONIC":i,"SUSPENDED PENTATONIC":a,"BLUES MAJOR":o,"BLUES MINOR":l,WHOLE:s,"MELODIC MINOR":c,"MELODIC MAJOR":u,MINORIC:[4,4,4],THAPTIC:[4,3,4,1],LOTHIC:[3,4,1,4],PHRATIC:[4,1,4,3],AERATHIC:[1,4,3,4],EPATHIC:[4,3,2,3],MYNIC:[3,2,3,4],ROTHIC:[2,3,4,3],EPORIC:[3,4,3,2],ZYPHIC:[4,4,3,1],EPOGIC:[4,3,1,4],LANIC:[3,1,4,4],PYRRIC:[1,4,4,3],AEOLORIC:[4,4,1,3],GONIC:[4,1,3,4],DALIC:[1,3,4,4],DYGIC:[3,4,4,1],DARIC:[4,3,3,2],LONIC:[3,3,2,4],PHRADIC:[3,2,4,3],BOLIC:[2,4,3,3],SARIC:[4,2,3,3],ZOPTIC:[2,3,3,4],AERAPHIC:[3,3,4,2],BYPTIC:[3,4,2,3],AEOLIC:[4,4,2,2],KOPTIC:[4,2,2,4],MIXOLYRIC:[2,2,4,4],LYDIC:[2,4,4,2],STATHIC:[4,2,4,2],DADIC:[2,4,2,4],PHRYNIC:[3,3,3,3],EPATHITONIC:[3,2,3,2,2],MYNITONIC:[2,3,2,2,3],ROCRITONIC:i,PENTATONIC:[2,2,3,2,3],THAPTITONIC:a,MAGITONIC:[4,3,2,2,1],DADITONIC:[3,2,2,1,4],AEOLYPHRITONIC:[2,2,1,4,3],GYCRITONIC:[2,1,4,3,2],PYRITONIC:[1,4,3,2,2],GATHITONIC:[4,2,3,2,1],IONITONIC:[2,3,2,1,4],PHRYNITONIC:[3,2,1,4,2],STATHITONIC:[2,1,4,2,3],THALITONIC:[1,4,2,3,2],ZOLITONIC:[4,2,1,4,1],EPOGITONIC:[2,1,4,1,4],LANITONIC:[1,4,1,4,2],PAPTITONIC:[4,1,4,2,1],IONACRITONIC:[1,4,2,1,4],PHRADITONIC:[4,1,4,1,2],AEOLORITONIC:[1,4,1,2,4],GONITONIC:[4,1,2,4,1],DALITONIC:[1,2,4,1,4],DYGITONIC:[2,4,1,4,1],AERACRITONIC:[4,1,2,3,2],BYPTITONIC:[1,2,3,2,4],DARITONIC:[2,3,2,4,1],LONITONIC:[3,2,4,1,2],IONYCRITONIC:[2,4,1,2,3],LOTHITONIC:[4,1,2,2,3],PHRATONIC:[1,2,2,3,4],AERATHITONIC:[2,2,3,4,1],SARITONIC:[2,3,4,1,2],ZOPTITONIC:[3,4,1,2,2],DOLITONIC:[4,4,1,2,1],PORITONIC:[4,1,2,1,4],AERYLITONIC:[1,2,1,4,4],ZAGITONIC:[2,1,4,4,1],LAGITONIC:[1,4,4,1,2],MOLITONIC:[4,3,3,1,1],STAPTITONIC:[3,3,1,1,4],MOTHITONIC:[3,1,1,4,3],AERITONIC:[1,1,4,3,3],RAGITONIC:[1,4,3,3,1],IONADITONIC:[4,3,2,1,2],BOCRITONIC:[3,2,1,2,4],GYTHITONIC:[2,1,2,4,3],PAGITONIC:[1,2,4,3,2],AEOLYTHITONIC:[2,4,3,2,1],ZACRITONIC:[4,3,1,3,1],LARITONIC:[3,1,3,1,4],THACRITONIC:[1,3,1,4,3],STYDITONIC:[3,1,4,3,1],LORITONIC:[1,4,3,1,3],AEOLYRITONIC:[4,3,1,1,3],GORITONIC:[3,1,1,3,4],AEOLODITONIC:[1,1,3,4,3],DOPTITONIC:[1,3,4,3,1],AERAPHITONIC:[3,4,3,1,1],ZATHITONIC:[4,2,4,1,1],RADITONIC:[2,4,1,1,4],STONITONIC:[4,1,1,4,2],SYPTITONIC:[1,1,4,2,4],IONYTHITONIC:[1,4,2,4,1],AEOLANITONIC:[4,2,2,3,1],DANITONIC:[2,2,3,1,4],IONARITONIC:[2,3,1,4,2],DYNITONIC:[3,1,4,2,2],ZYDITONIC:[1,4,2,2,3],AEOLACRITONIC:[4,2,1,2,3],ZYTHITONIC:[2,1,2,3,4],DYRITONIC:[1,2,3,4,2],KOPTITONIC:[2,3,4,2,1],THOCRITONIC:[3,4,2,1,2],LYCRITONIC:[4,1,3,3,1],DAPTITONIC:[1,3,3,1,4],KYGITONIC:[3,3,1,4,1],MOCRITONIC:[3,1,4,1,3],ZYNITONIC:[1,4,1,3,3],EPYGITONIC:[4,1,3,2,2],ZAPTITONIC:[1,3,2,2,4],KAGITONIC:[3,2,2,4,1],ZOGITONIC:[2,2,4,1,3],EPYRITONIC:[2,4,1,3,2],ZOTHITONIC:[4,1,3,1,3],PHROLITONIC:[1,3,1,3,4],IONAGITONIC:[3,1,3,4,1],AEOLAPRITONIC:[1,3,4,1,3],KYRITONIC:[3,4,1,3,1],IONYPTITONIC:[4,1,1,3,3],GYRITONIC:[1,1,3,3,4],ZALITONIC:[1,3,3,4,1],STOLITONIC:[3,3,4,1,1],BYLITONIC:[3,4,1,1,3],THODITONIC:[3,3,2,3,1],DOGITONIC:[3,2,3,1,3],PHRALITONIC:[2,3,1,3,3],GARITONIC:[3,1,3,3,2],SOPTITONIC:[1,3,3,2,3],KATARITONIC:[3,3,2,2,2],SYLITONIC:[3,2,2,2,3],THONITONIC:[2,2,2,3,3],PHROPITONIC:[2,2,3,3,2],STADITONIC:[2,3,3,2,2],LYDITONIC:[3,3,1,3,2],MYTHITONIC:[3,1,3,2,3],SOGITONIC:[1,3,2,3,3],GOTHITONIC:[3,2,3,3,1],ROTHITONIC:[2,3,3,1,3],ZYLITONIC:[4,4,2,1,1],ZODITONIC:[4,2,1,1,4],ZARITONIC:[2,1,1,4,4],PHRYTHITONIC:[1,1,4,4,2],ROLITONIC:[1,4,4,2,1],RANITONIC:[4,4,1,1,2],LADITONIC:[4,1,1,2,4],PODITONIC:[1,1,2,4,4],IONOTHITONIC:[1,2,4,4,1],KANITONIC:[2,4,4,1,1],RYPHITONIC:[4,3,1,2,2],GYLITONIC:[3,1,2,2,4],AEOLYCRITONIC:[1,2,2,4,3],PYNITONIC:[2,2,4,3,1],ZANITONIC:[2,4,3,1,2],PHRONITONIC:[4,2,3,1,2],BANITONIC:[2,3,1,2,4],AERONITONIC:[3,1,2,4,2],GOLITONIC:[1,2,4,2,3],DYPTITONIC:[2,4,2,3,1],AERYNITONIC:[4,2,2,1,3],PALITONIC:[2,2,1,3,4],STOTHITONIC:[2,1,3,4,2],AEROPHITONIC:[1,3,4,2,2],KATAGITONIC:[3,4,2,2,1],IONODITONIC:[4,2,1,3,2],BOGITONIC:[2,1,3,2,4],MOGITONIC:[1,3,2,4,2],DOCRITONIC:[3,2,4,2,1],EPADITONIC:[2,4,2,1,3],MIXITONIC:[3,3,3,2,1],PHROTHITONIC:[3,3,2,1,3],KATYCRITONIC:[3,2,1,3,3],IONALITONIC:[2,1,3,3,3],LOPTITONIC:[1,3,3,3,2],THYRITONIC:[3,3,3,1,2],THOPTITONIC:[3,3,1,2,3],BYCRITONIC:[3,1,2,3,3],PATHITONIC:[1,2,3,3,3],MYDITONIC:[2,3,3,3,1],BOLITONIC:[4,2,2,2,2],BOTHITONIC:[2,2,2,2,4],KATADITONIC:[2,2,2,4,2],KODITONIC:[2,2,4,2,2],THOLITONIC:[2,4,2,2,2],EPATHIMIC:[3,2,2,1,2,2],MYNIMIC:[2,2,1,2,2,3],ROCRIMIC:[2,1,2,2,3,2],EPORIMIC:[1,2,2,3,2,2],THAPTIMIC:[2,2,3,2,2,1],LOTHIMIC:[2,3,2,2,1,2],DYRIMIC:[4,2,1,2,2,1],KOPTIMIC:[2,1,2,2,1,4],THOCRIMIC:[1,2,2,1,4,2],AEOLANIMIC:[2,2,1,4,2,1],DANIMIC:[2,1,4,2,1,2],IONARIMIC:[1,4,2,1,2,2],DAPTIMIC:[4,1,4,1,1,1],KYGIMIC:[1,4,1,1,1,4],MOCRIMIC:[4,1,1,1,4,1],ZYNIMIC:[1,1,1,4,1,4],AEOLIMIC:[1,1,4,1,4,1],ZYTHIMIC:[1,4,1,4,1,1],EPYGIMIC:[4,1,2,3,1,1],ZAPTIMIC:[1,2,3,1,1,4],KAGIMIC:[2,3,1,1,4,1],ZOGIMIC:[3,1,1,4,1,2],EPYRIMIC:[1,1,4,1,2,3],LYCRIMIC:[1,4,1,2,3,1],BYLIMIC:[4,1,2,2,2,1],ZOTHIMIC:[1,2,2,2,1,4],PHROLIMIC:[2,2,2,1,4,1],IONAGIMIC:[2,2,1,4,1,2],AEOLAPHIMIC:[2,1,4,1,2,2],KYCRIMIC:[1,4,1,2,2,2],GARIMIC:[4,1,2,2,1,2],SOPTIMIC:[1,2,2,1,2,4],IONYPTIMIC:[2,2,1,2,4,1],GYRIMIC:[2,1,2,4,1,2],ZALIMIC:[1,2,4,1,2,2],STOLIMIC:[2,4,1,2,2,1],THONIMIC:[4,1,1,4,1,1],STADIMIC:[1,1,4,1,1,4],THODIMIC:[1,4,1,1,4,1],MYTHIMIC:[4,1,1,3,2,1],SOGIMIC:[1,1,3,2,1,4],GOGIMIC:[1,3,2,1,4,1],ROTHIMIC:[3,2,1,4,1,1],KATARIMIC:[2,1,4,1,1,3],SYLIMIC:[1,4,1,1,3,2],MIXOLIMIC:[3,2,3,2,1,1],DADIMIC:[2,3,2,1,1,3],AEOLYPHIMIC:[3,2,1,1,3,2],GYCRIMIC:o,PYRIMIC:[1,1,3,2,3,2],LYDIMIC:[1,3,2,3,2,1],IONACRIMIC:[3,2,3,1,1,2],GATHIMIC:[2,3,1,1,2,3],IONYNIMIC:[3,1,1,2,3,2],PHRYNIMIC:[1,1,2,3,2,3],STATHIMIC:[1,2,3,2,3,1],THATIMIC:[2,3,2,3,1,1],DALIMIC:[3,2,2,3,1,1],DYGIMIC:[2,2,3,1,1,3],ZOLIMIC:[2,3,1,1,3,2],EPOGIMIC:[3,1,1,3,2,2],LANIMIC:[1,1,3,2,2,3],PAPTIMIC:[1,3,2,2,3,1],DARMIC:[3,2,2,2,1,2],LONIMIC:[2,2,2,1,2,3],IONYCRIMIC:[2,2,1,2,3,2],PHRADIMIC:[2,1,2,3,2,2],AEOLORIMIC:[1,2,3,2,2,2],GONIMIC:[2,3,2,2,2,1],PHRACRIMIC:[3,2,1,2,2,2],AERATHIMIC:[2,1,2,2,2,3],SARIMIC:[1,2,2,2,3,2],ZOPTIMIC:[2,2,2,3,2,1],ZERACRIMIC:[2,2,3,2,1,2],BYPTIMIC:[2,3,2,1,2,2],STARIMIC:[4,3,2,1,1,1],PHRATHIMIC:[3,2,1,1,1,4],SAPTIMIC:[2,1,1,1,4,3],AERODIMIC:[1,1,1,4,3,2],MACRIMIC:[1,1,4,3,2,1],ROGIMIC:[1,4,3,2,1,1],BYGIMIC:[4,3,1,1,2,1],THYCRIMIC:[3,1,1,2,1,4],AEOLADIMIC:[1,1,2,1,4,3],DYLIMIC:[1,2,1,4,3,1],EPONIMIC:[2,1,4,3,1,1],KATYGIMIC:[1,4,3,1,1,2],STALIMIC:[4,2,3,1,1,1],STOPTIMIC:[2,3,1,1,1,4],ZYGIMIC:[3,1,1,1,4,2],KATAPTIMIC:[1,1,1,4,2,3],AEOLAPTIMIC:[1,1,4,2,3,1],POTHIMIC:[1,4,2,3,1,1],RYCRIMIC:[4,2,2,1,2,1],RONIMIC:[2,2,1,2,1,4],STYCRIMIC:[2,1,2,1,4,2],KATORIMIC:[1,2,1,4,2,2],EPYTHIMIC:[2,1,4,2,2,1],KAPTIMIC:[1,4,2,2,1,2],KATYTHIMIC:[4,2,1,3,1,1],MADIMIC:[2,1,3,1,1,4],AERYGIMIC:[1,3,1,1,4,2],PYLIMIC:[3,1,1,4,2,1],IONATHIMIC:[1,1,4,2,1,3],MORIMIC:[1,4,2,1,3,1],AERYCRIMIC:[4,2,1,1,3,1],GANIMIC:[2,1,1,3,1,4],EPARIMIC:[1,1,3,1,4,2],LYRIMIC:[1,3,1,4,2,1],PHRAPTIMIC:[3,1,4,2,1,1],BACRIMIC:[1,4,2,1,1,3],PHRALIMIC:[4,1,3,2,1,1],PHROGIMIC:[1,3,2,1,1,4],RATHIMIC:[3,2,1,1,4,1],KATOCRIMIC:[2,1,1,4,1,3],PHRYPTIMIC:[1,1,4,1,3,2],KATYNIMIC:[1,4,1,3,2,1],SOLIMIC:[4,1,3,1,2,1],IONOLIMIC:[1,3,1,2,1,4],IONOPHIMIC:[3,1,2,1,4,1],AEOLOGIMIC:[1,2,1,4,1,3],ZADIMIC:[2,1,4,1,3,1],SYGIMIC:[1,4,1,3,1,2],THOGIMIC:[4,1,3,1,1,2],RYTHIMIC:[1,3,1,1,2,4],DONIMIC:[3,1,1,2,4,1],AEOLOPTIMIC:[1,1,2,4,1,3],PANIMIC:[1,2,4,1,3,1],LODIMIC:[2,4,1,3,1,1],LAPTIMIC:[4,1,2,1,3,1],LYGIMIC:[1,2,1,3,1,4],LOGIMIC:[2,1,3,1,4,1],LALIMIC:[1,3,1,4,1,2],SOTHIMIC:[3,1,4,1,2,1],PHROCRIMIC:[1,4,1,2,1,3],MODIMIC:[4,1,2,1,2,2],BARIMIC:[1,2,1,2,2,4],POPTIMIC:[2,1,2,2,4,1],SAGIMIC:[1,2,2,4,1,2],AELOTHIMIC:l,SOCRIMIC:[2,4,1,2,1,2],SYRIMIC:[4,1,2,1,1,3],STODIMIC:[1,2,1,1,3,4],IONOCRIMIC:[2,1,1,3,4,1],ZYCRIMIC:[1,1,3,4,1,2],IONYGIMIC:[1,3,4,1,2,1],KATATHIMIC:[3,4,1,2,1,1],BOLIMIC:[4,1,1,3,1,2],BOTHIMIC:[1,1,3,1,2,4],KATADIMIC:[1,3,1,2,4,1],KODIMIC:[3,1,2,4,1,1],THOLIMIC:[1,2,4,1,1,3],RALIMIC:[2,4,1,1,3,1],KANIMIC:[4,1,1,2,3,1],ZYLIMIC:[1,1,2,3,1,4],ZODIMIC:[1,2,3,1,4,1],ZARIMIC:[2,3,1,4,1,1],PHRYTHIMIC:[3,1,4,1,1,2],RORIMIC:[1,4,1,1,2,3],PYNIMIC:[4,1,1,1,3,2],ZANIMIC:[1,1,1,3,2,4],RANIMIC:[1,1,3,2,4,1],LADIMIC:[1,3,2,4,1,1],PODIMIC:[3,2,4,1,1,1],IONOTHIMIC:[2,4,1,1,1,3],KYTRIMIC:[4,1,1,1,2,3],GOLIMIC:[1,1,1,2,3,4],DYPTIMIC:[1,1,2,3,4,1],RYRIMIC:[1,2,3,4,1,1],GYLIMIC:[2,3,4,1,1,1],AEOLYCRIMIC:[3,4,1,1,1,2],PALIMIC:[3,3,2,2,1,1],STOTHIMIC:[3,2,2,1,1,3],AERONIMIC:[2,2,1,1,3,3],KATAGIMIC:[2,1,1,3,3,2],PHRONIMIC:[1,1,3,3,2,2],BANIMIC:[1,3,3,2,2,1],IONODIMIC:[3,3,1,3,1,1],BOGIMIC:[3,1,3,1,1,3],MOGIMIC:[1,3,1,1,3,3],DOCRIMIC:[3,1,1,3,3,1],EPADIMIC:[1,1,3,3,1,3],AERYNIMIC:[1,3,3,1,3,1],MYDIMIC:[3,3,1,1,3,1],THYPTIMIC:[3,1,1,3,1,3],PHROTHIMIC:[1,1,3,1,3,3],KATYCRIMIC:[1,3,1,3,3,1],IONALIMIC:[3,1,3,3,1,1],LOPTIMIC:[1,3,3,1,1,3],ZAGIMIC:[3,3,1,1,2,2],LAGIMIC:[3,1,1,2,2,3],THYRIMIC:[1,1,2,2,3,3],THOTHIMIC:[1,2,2,3,3,1],BYCRIMIC:[2,2,3,3,1,1],PATHIMIC:[2,3,3,1,1,2],MOTHIMIC:[3,2,2,1,3,1],AERANIMIC:[2,2,1,3,1,3],RAGIMIC:[2,1,3,1,3,2],DOLIMIC:[1,3,1,3,2,2],PORIMIC:[3,1,3,2,2,1],AERYLIMIC:[1,3,2,2,1,3],BOCRIMIC:[3,2,1,3,1,2],GYTHIMIC:[2,1,3,1,2,3],PAGIMIC:[1,3,1,2,3,2],AEOLYTHIMIC:[3,1,2,3,2,1],MOLIMIC:[1,2,3,2,1,3],STAPTIMIC:[2,3,2,1,3,1],ZACRIMIC:[3,2,1,2,3,1],LARIMIC:[2,1,2,3,1,3],THACRIMIC:[1,2,3,1,3,2],STYDIMIC:[2,3,1,3,2,1],LORIMIC:[3,1,3,2,1,2],IONADIMIC:[1,3,2,1,2,3],IONYTHIMIC:[3,1,3,1,3,1],AERYTHIMIC:[1,3,1,3,1,3],DYNIMIC:[3,1,3,1,2,2],ZYDIMIC:[1,3,1,2,2,3],ZATHIMIC:[3,1,2,2,3,1],RADIMIC:[1,2,2,3,1,3],STONIMIC:[2,2,3,1,3,1],SYPTIMIC:[2,3,1,3,1,2],PONIMIC:[4,4,1,1,1,1],KADIMIC:[4,1,1,1,1,4],GYNIMIC:[1,1,1,1,4,4],THYDIMIC:[1,1,1,4,4,1],POLIMIC:[1,1,4,4,1,1],THANIMIC:[1,4,4,1,1,1],LATHIMIC:[4,3,1,2,1,1],AERALIMIC:[3,1,2,1,1,4],KYNIMIC:[1,2,1,1,4,3],STYNIMIC:[2,1,1,4,3,1],EPYTIMIC:[1,1,4,3,1,2],KATOPTIMIC:[1,4,3,1,2,1],GALIMIC:[4,3,1,1,1,2],KATHIMIC:[3,1,1,1,2,4],LYLIMIC:[1,1,1,2,4,3],EPALIMIC:[1,1,2,4,3,1],EPACRIMIC:[1,2,4,3,1,1],SATHIMIC:[2,4,3,1,1,1],KATANIMIC:[4,2,2,2,1,1],KATYRIMIC:[2,2,2,1,1,4],RYNIMIC:[2,2,1,1,4,2],POGIMIC:[2,1,1,4,2,2],AERAPTIMIC:[1,1,4,2,2,2],EPYLIMIC:[1,4,2,2,2,1],MANIMIC:[4,2,1,2,1,2],MARIMIC:[2,1,2,1,2,4],LOCRIMIC:[1,2,1,2,4,2],RYLIMIC:[2,1,2,4,2,1],EPATIMIC:[1,2,4,2,1,2],BYRIMIC:[2,4,2,1,2,1],KOCRIMIC:[4,2,1,1,1,3],KORIMIC:[2,1,1,1,3,4],LYNIMIC:[1,1,1,3,4,2],MALIMIC:[1,1,3,4,2,1],SYNIMIC:[1,3,4,2,1,1],PHRAGIMIC:[3,4,2,1,1,1],MYCRIMIC:[4,1,1,2,2,2],IONORIMIC:[1,1,2,2,2,4],PHRYDIMIC:[1,2,2,2,4,1],ZYPTIMIC:[2,2,2,4,1,1],KATOTHIMIC:[2,2,4,1,1,2],PHRYLIMIC:[2,4,1,1,2,2],AEROTHIMIC:[4,1,1,2,1,3],STAGIMIC:[1,1,2,1,3,4],DORIMIC:[1,2,1,3,4,1],PHRYCRIMIC:[2,1,3,4,1,1],KYPTIMIC:[1,3,4,1,1,2],IONYLIMIC:[3,4,1,1,2,1],EPYNIMIC:[3,3,3,1,1,1],IONOGIMIC:[3,3,1,1,1,3],KYDIMIC:[3,1,1,1,3,3],GAPTIMIC:[1,1,1,3,3,3],THARIMIC:[1,1,3,3,3,1],IONAPHIMIC:[1,3,3,3,1,1],THOPTIMIC:[3,3,2,1,2,1],BAGIMIC:[3,2,1,2,1,3],KYRIMIC:[2,1,2,1,3,3],SONIMIC:[1,2,1,3,3,2],AEOLONIMIC:[2,1,3,3,2,1],RYGIMIC:[1,3,3,2,1,2],THAGIMIC:[3,3,2,1,1,2],KOLIMIC:[3,2,1,1,2,3],DYCRIMIC:[2,1,1,2,3,3],EPYCRIMIC:[1,1,2,3,3,2],GOCRIMIC:[1,2,3,3,2,1],KATOLIMIC:[2,3,3,2,1,1],DAGIMIC:[3,3,1,2,2,1],AEOLYDIMIC:[3,1,2,2,1,3],PARIMIC:[1,2,2,1,3,3],IONAPTIMIC:[2,2,1,3,3,1],THYLIMIC:[2,1,3,3,1,2],LOLIMIC:[1,3,3,1,2,2],THALIMIC:[3,3,1,2,1,2],STYGIMIC:[3,1,2,1,2,3],AEOLYGIMIC:[1,2,1,2,3,3],AEROGIMIC:[2,1,2,3,3,1],DACRIMIC:[1,2,3,3,1,2],BAPTIMIC:[2,3,3,1,2,1],STYTHIMIC:[3,2,3,1,2,1],KOTHIMIC:[2,3,1,2,1,3],PYGIMIC:[3,1,2,1,3,2],RODIMIC:[1,2,1,3,2,3],SORIMIC:[2,1,3,2,3,1],MONIMIC:[1,3,2,3,1,2],AERAGIMIC:[3,2,2,2,2,1],EPOTHIMIC:[2,2,2,2,1,3],SALIMIC:[2,2,2,1,3,2],LYPTIMIC:[2,2,1,3,2,2],KATONIMIC:[2,1,3,2,2,2],GYGIMIC:[1,3,2,2,2,2],AERADIMIC:[3,2,1,3,2,1],ZYRIMIC:[2,1,3,2,1,3],STYLIMIC:[1,3,2,1,3,2],LYTHIMIC:[3,1,2,3,1,2],DODIMIC:[1,2,3,1,2,3],KATALIMIC:[2,3,1,2,3,1],BOPTIMIC:[3,1,2,2,2,2],STOGIMIC:[1,2,2,2,2,3],THYNIMIC:[2,2,2,2,3,1],AEOLATHIMIC:[2,2,2,3,1,2],BYTHIMIC:[2,2,3,1,2,2],PADIMIC:[2,3,1,2,2,2],DATHIMIC:[4,2,2,1,1,2],EPAGIMIC:[2,2,1,1,2,4],RAPTIMIC:[2,1,1,2,4,2],EPOLIMIC:[1,1,2,4,2,2],SYTHIMIC:[1,2,4,2,2,1],SYDIMIC:[2,4,2,2,1,1],GACRIMIC:[4,2,1,1,2,2],BORIMIC:[2,1,1,2,2,4],SYCRIMIC:[1,1,2,2,4,2],GADIMIC:[1,2,2,4,2,1],AEOLOCRIMIC:[2,2,4,2,1,1],PHRYGIMIC:[2,4,2,1,1,2],WHOLETONE:s,LYDIAN:[2,2,2,1,2,2,1],MIXOLYDIAN:[2,2,1,2,2,1,2],AEOLIAN:r,LOCRIAN:[1,2,2,1,2,2,2],IONIAN:e,DORIAN:[2,1,2,2,2,1,2],PHRYGIAN:[1,2,2,2,1,2,2],IONYTHIAN:[4,1,2,2,1,1,1],AEOLYRIAN:[1,2,2,1,1,1,4],GORIAN:[2,2,1,1,1,4,1],AEOLODIAN:[2,1,1,1,4,1,2],DOPTIAN:[1,1,1,4,1,2,2],AERAPHIAN:[1,1,4,1,2,2,1],ZACRIAN:[1,4,1,2,2,1,1],IONARIAN:[4,1,1,3,1,1,1],DYNIAN:[1,1,3,1,1,1,4],ZYDIAN:[1,3,1,1,1,4,1],ZATHIAN:[3,1,1,1,4,1,1],RADIAN:[1,1,1,4,1,1,3],STONIAN:[1,1,4,1,1,3,1],SYPTIAN:[1,4,1,1,3,1,1],AEOLACRIAN:[4,1,1,1,3,1,1],ZYTHIAN:[1,1,1,3,1,1,4],DYRIAN:[1,1,3,1,1,4,1],KOPTIAN:[1,3,1,1,4,1,1],THOCRIAN:[3,1,1,4,1,1,1],AEOLANIAN:[1,1,4,1,1,1,3],DANIAN:[1,4,1,1,1,3,1],ZOGIAN:[4,1,1,1,2,2,1],EPYRIAN:[1,1,1,2,2,1,4],LYCRIAN:[1,1,2,2,1,4,1],DAPTIAN:[1,2,2,1,4,1,1],KYGIAN:[2,2,1,4,1,1,1],MOCRIAN:[2,1,4,1,1,1,2],ZYNIAN:[1,4,1,1,1,2,2],PHROLIAN:[3,2,2,1,2,1,1],IONAGIAN:[2,2,1,2,1,1,3],AEODIAN:[2,1,2,1,1,3,2],KYCRIAN:[1,2,1,1,3,2,2],EPYGIAN:[2,1,1,3,2,2,1],ZAPTIAN:[1,1,3,2,2,1,2],KAGIAN:[1,3,2,2,1,2,1],SOPTIAN:[3,2,2,1,1,1,2],IONYPTIAN:[2,2,1,1,1,2,3],GYRIAN:[2,1,1,1,2,3,2],ZALIAN:[1,1,1,2,3,2,2],STOLIAN:[1,1,2,3,2,2,1],BYLIAN:[1,2,3,2,2,1,1],ZOTHIAN:[2,3,2,2,1,1,1],THONIAN:[3,2,1,2,2,1,1],PHRORIAN:[2,1,2,2,1,1,3],STADIAN:[1,2,2,1,1,3,2],THODIAN:[2,2,1,1,3,2,1],DOGIAN:[2,1,1,3,2,1,2],MIXOPYRIAN:[1,1,3,2,1,2,2],GARIAN:[1,3,2,1,2,2,1],EPATHIAN:[3,2,1,1,3,1,1],MYTHIAN:[2,1,1,3,1,1,3],SOGIAN:[1,1,3,1,1,3,2],GOGIAN:[1,3,1,1,3,2,1],ROTHIAN:[3,1,1,3,2,1,1],KATARIAN:[1,1,3,2,1,1,3],STYLIAN:[1,3,2,1,1,3,1],STATHIAN:[3,2,1,1,1,2,2],MIXONYPHIAN:[2,1,1,1,2,2,3],MAGIAN:[1,1,1,2,2,3,2],DADIAN:[1,1,2,2,3,2,1],AEOLYLIAN:[1,2,2,3,2,1,1],GYCRIAN:[2,2,3,2,1,1,1],PYRIAN:[2,3,2,1,1,1,2],EPOGIAN:[3,1,1,3,1,1,2],LANIAN:[1,1,3,1,1,2,3],PAPTIAN:[1,3,1,1,2,3,1],IONACRIAN:[3,1,1,2,3,1,1],GATHIAN:[1,1,2,3,1,1,3],IONYPHIAN:[1,2,3,1,1,3,1],PHRYNIAN:[2,3,1,1,3,1,1],IONYCRIAN:[3,1,1,2,2,1,2],PHRADIAN:[1,1,2,2,1,2,3],AEOLORIAN:[1,2,2,1,2,3,1],GONIAN:[2,2,1,2,3,1,1],DALIAN:[2,1,2,3,1,1,2],DYGIAN:[1,2,3,1,1,2,2],ZOLIAN:[2,3,1,1,2,2,1],AERATHIAN:[3,1,1,2,1,2,2],SARIAN:[1,1,2,1,2,2,3],ZOPTIAN:[1,2,1,2,2,3,1],AERACRIAN:[2,1,2,2,3,1,1],BYPTIAN:[1,2,2,3,1,1,2],DARIAN:[2,2,3,1,1,2,1],LONIAN:[2,3,1,1,2,1,2],AEOPIAN:[4,2,1,2,1,1,1],RYGIAN:[2,1,2,1,1,1,4],EPYNIAN:[1,2,1,1,1,4,2],IONOGIAN:[2,1,1,1,4,2,1],KYDIAN:[1,1,1,4,2,1,2],GAPTIAN:[1,1,4,2,1,2,1],THARIAN:[1,4,2,1,2,1,1],EPYCRIAN:[4,2,1,1,1,2,1],GOCRIAN:[2,1,1,1,2,1,4],KATOLIAN:[1,1,1,2,1,4,2],THOPTIAN:[1,1,2,1,4,2,1],BAGIAN:[1,2,1,4,2,1,1],KYRIAN:[2,1,4,2,1,1,1],SONIAN:[1,4,2,1,1,1,2],PARIAN:[4,1,3,1,1,1,1],IONAPTIAN:[1,3,1,1,1,1,4],THYLIAN:[3,1,1,1,1,4,1],LOLIAN:[1,1,1,1,4,1,3],THAGIAN:[1,1,1,4,1,3,1],KOLIAN:[1,1,4,1,3,1,1],DYCRIAN:[1,4,1,3,1,1,1],STYGIAN:[4,1,2,1,2,1,1],AEOLYGIAN:[1,2,1,2,1,1,4],AEROGIAN:[2,1,2,1,1,4,1],DACRIAN:[1,2,1,1,4,1,2],BAPTIAN:[2,1,1,4,1,2,1],DAGIAN:[1,1,4,1,2,1,2],AEOLYDIAN:[1,4,1,2,1,2,1],STYTHIAN:[4,1,2,1,1,2,1],KOTHIAN:[1,2,1,1,2,1,4],PYGIAN:[2,1,1,2,1,4,1],RODIAN:[1,1,2,1,4,1,2],SORIAN:[1,2,1,4,1,2,1],MONIAN:[2,1,4,1,2,1,1],THALIAN:[1,4,1,2,1,1,2],ZORIAN:[4,1,2,1,1,1,2],AERAGIAN:[1,2,1,1,1,2,4],EPOTHIAN:[2,1,1,1,2,4,1],SALIAN:[1,1,1,2,4,1,2],LYPTIAN:[1,1,2,4,1,2,1],KATONIAN:[1,2,4,1,2,1,1],GYPHIAN:[2,4,1,2,1,1,1],THACRIAN:[4,1,1,2,2,1,1],DODIAN:[1,1,2,2,1,1,4],AEOLYPTIAN:[1,2,2,1,1,4,1],AEOLONIAN:[2,2,1,1,4,1,1],AERADIAN:[2,1,1,4,1,1,2],AEOLAGIAN:[1,1,4,1,1,2,2],ZYRIAN:[1,4,1,1,2,2,1],AEOLATHIAN:[4,1,1,2,1,2,1],BYTHIAN:[1,1,2,1,2,1,4],PADIAN:[1,2,1,2,1,4,1],ROLIAN:[2,1,2,1,4,1,1],PYDIAN:[1,2,1,4,1,1,2],THYGIAN:[2,1,4,1,1,2,1],KATALIAN:[1,4,1,1,2,1,2],SAPTIAN:[4,1,1,1,2,1,2],AERODIAN:[1,1,1,2,1,2,4],MACRIAN:[1,1,2,1,2,4,1],ROGIAN:[1,2,1,2,4,1,1],BOPTIAN:[2,1,2,4,1,1,1],STOGIAN:[1,2,4,1,1,1,2],THYNIAN:[2,4,1,1,1,2,1],THYCRIAN:[4,1,1,1,1,3,1],AEOLADIAN:[1,1,1,1,3,1,4],DYLIAN:[1,1,1,3,1,4,1],EPONIAN:[1,1,3,1,4,1,1],KATYGIAN:[1,3,1,4,1,1,1],STARIAN:[3,1,4,1,1,1,1],PHRATHIAN:[1,4,1,1,1,1,3],STALIAN:[3,3,1,1,2,1,1],STOPTIAN:[3,1,1,2,1,1,3],ZYGIAN:[1,1,2,1,1,3,3],KATAPTIAN:[1,2,1,1,3,3,1],AEOLAPTIAN:[2,1,1,3,3,1,1],POTHIAN:[1,1,3,3,1,1,2],BYGIAN:[1,3,3,1,1,2,1],MORIAN:[3,2,3,1,1,1,1],RYCRIAN:[2,3,1,1,1,1,3],RONIAN:[3,1,1,1,1,3,2],STYCRIAN:[1,1,1,1,3,2,3],KATORIAN:[1,1,1,3,2,3,1],EPYTHIAN:[1,1,3,2,3,1,1],KAPTIAN:[1,3,2,3,1,1,1],PHRAPTIAN:[3,2,2,2,1,1,1],BACRIAN:[2,2,2,1,1,1,3],KATYTHIAN:[2,2,1,1,1,3,2],MADIAN:[2,1,1,1,3,2,2],AERYGIAN:[1,1,1,3,2,2,2],PYLIAN:[1,1,3,2,2,2,1],IONATHIAN:[1,3,2,2,2,1,1],KATOCRIAN:[3,2,1,3,1,1,1],PHRYPTIAN:[2,1,3,1,1,1,3],KATYNIAN:[1,3,1,1,1,3,2],AERYCRIAN:[3,1,1,1,3,2,1],GANIAN:[1,1,1,3,2,1,3],EPARIAN:[1,1,3,2,1,3,1],LYRIAN:[1,3,2,1,3,1,1],IONOPIAN:[3,2,1,2,1,1,2],AEOLOGIAN:[2,1,2,1,1,2,3],ZADIAN:[1,2,1,1,2,3,2],SYGIAN:[2,1,1,2,3,2,1],PHRALIAN:[1,1,2,3,2,1,2],PHROGIAN:[1,2,3,2,1,2,1],RATHIAN:[2,3,2,1,2,1,1],RYTHIAN:[3,2,1,1,2,1,2],DONIAN:[2,1,1,2,1,2,3],AEOLOPTIAN:[1,1,2,1,2,3,2],PANIAN:[1,2,1,2,3,2,1],LODIAN:[2,1,2,3,2,1,1],SOLIAN:[1,2,3,2,1,1,2],IONOLIAN:[2,3,2,1,1,2,1],LAPTIAN:[3,2,1,1,1,3,1],LYGIAN:[2,1,1,1,3,1,3],LOGIAN:[1,1,1,3,1,3,2],LALIAN:[1,1,3,1,3,2,1],SOTHIAN:[1,3,1,3,2,1,1],PHROCRIAN:[3,1,3,2,1,1,1],THOGIAN:[1,3,2,1,1,1,3],KATATHIAN:[3,1,3,1,2,1,1],MODIAN:[1,3,1,2,1,1,3],BARIAN:[3,1,2,1,1,3,1],MIXOLOCRIAN:[1,2,1,1,3,1,3],SAGIAN:[2,1,1,3,1,3,1],AEOLOTHIAN:[1,1,3,1,3,1,2],SOCRIAN:[1,3,1,3,1,2,1],THOLIAN:[3,1,3,1,1,2,1],RALIAN:[1,3,1,1,2,1,3],SYRIAN:[3,1,1,2,1,3,1],STODIAN:[1,1,2,1,3,1,3],IONOCRIAN:[1,2,1,3,1,3,1],ZYCRIAN:[2,1,3,1,3,1,1],IONYGIAN:[1,3,1,3,1,1,2],ZARIAN:[3,1,3,1,1,1,2],PHRYTHIAN:[1,3,1,1,1,2,3],RORIAN:[3,1,1,1,2,3,1],BOLIAN:[1,1,1,2,3,1,3],BOTHIAN:[1,1,2,3,1,3,1],KATADIAN:[1,2,3,1,3,1,1],KODIAN:[2,3,1,3,1,1,1],RANIAN:[3,1,2,3,1,1,1],LADIAN:[1,2,3,1,1,1,3],PODIAN:[2,3,1,1,1,3,1],IONOTHIAN:[3,1,1,1,3,1,2],KANIAN:[1,1,1,3,1,2,3],ZYLIAN:[1,1,3,1,2,3,1],ZODIAN:[1,3,1,2,3,1,1],GOLIAN:[3,1,2,2,2,1,1],DYPTIAN:[1,2,2,2,1,1,3],RYPHIAN:[2,2,2,1,1,3,1],GYLIAN:[2,2,1,1,3,1,2],AEOLYCRIAN:[2,1,1,3,1,2,2],PYNIAN:[1,1,3,1,2,2,2],ZANIAN:[1,3,1,2,2,2,1],PALIAN:[3,1,2,2,1,2,1],STOTHIAN:[1,2,2,1,2,1,3],AERORIAN:n,KATAGIAN:[2,1,2,1,3,1,2],PHRONIAN:[1,2,1,3,1,2,2],BANIAN:[2,1,3,1,2,2,1],AERONIAN:[1,3,1,2,2,1,2],LOPTIAN:[3,1,2,1,3,1,1],IONODIAN:[1,2,1,3,1,1,3],BOGIAN:[2,1,3,1,1,3,1],MOGIAN:[1,3,1,1,3,1,2],DOCRIAN:[3,1,1,3,1,2,1],EPADIAN:[1,1,3,1,2,1,3],AERYNIAN:[1,3,1,2,1,3,1],BYCRIAN:[3,1,2,1,2,2,1],PATHIAN:[1,2,1,2,2,1,3],MYDIAN:t,THYPTIAN:[1,2,2,1,3,1,2],PHROTHIAN:[2,2,1,3,1,2,1],KATYCRIAN:[2,1,3,1,2,1,2],IONALIAN:[1,3,1,2,1,2,2],DOLIAN:[3,1,1,2,2,2,1],PORIAN:[1,1,2,2,2,1,3],AERYLIAN:p,"NEOPOLITAN MINOR":p,ZAGIAN:[2,2,2,1,3,1,1],LAGIAN:[2,2,1,3,1,1,2],TYRIAN:[2,1,3,1,1,2,2],MIXONORIAN:[1,3,1,1,2,2,2],PAGIAN:[3,1,1,1,2,2,2],AEOLYTHIAN:[1,1,1,2,2,2,3],MOLIAN:[1,1,2,2,2,3,1],STAPTIAN:[1,2,2,2,3,1,1],MOTHIAN:[2,2,2,3,1,1,1],AERANIAN:[2,2,3,1,1,1,2],RAGIAN:[2,3,1,1,1,2,2],LARIAN:[2,2,2,2,1,2,1],LYTHIAN:[2,2,2,1,2,1,2],STYDIAN:u,LORIAN:[2,1,2,1,2,2,2],IONADIAN:[1,2,1,2,2,2,2],BOCRIAN:c,MIXOLYTHIAN:[1,2,2,2,2,1,2],THADIAN:[4,3,1,1,1,1,1],SANIAN:[3,1,1,1,1,1,4],IONYDIAN:[1,1,1,1,1,4,3],EPYDIAN:[1,1,1,1,4,3,1],KATYDIAN:[1,1,1,4,3,1,1],MATHIAN:[1,1,4,3,1,1,1],AERYPTIAN:[1,4,3,1,1,1,1],PYTHIAN:[4,2,2,1,1,1,1],KATYLIAN:[2,2,1,1,1,1,4],BYDIAN:[2,1,1,1,1,4,2],BYNIAN:[1,1,1,1,4,2,2],GALIAN:[1,1,1,4,2,2,1],ZONIAN:[1,1,4,2,2,1,1],MYRIAN:[1,4,2,2,1,1,1],KATOGIAN:[4,2,1,1,2,1,1],STACRIAN:[2,1,1,2,1,1,4],STYRIAN:[1,1,2,1,1,4,2],IONYRIAN:[1,2,1,1,4,2,1],PHRODIAN:[2,1,1,4,2,1,1],PYCRIAN:[1,1,4,2,1,1,2],GYPTIAN:[1,4,2,1,1,2,1],KATACRIAN:[4,1,1,2,1,1,2],SODIAN:[1,1,2,1,1,2,4],BATHIAN:[1,2,1,1,2,4,1],MYLIAN:[2,1,1,2,4,1,1],GODIAN:[1,1,2,4,1,1,2],THORIAN:[1,2,4,1,1,2,1],ZOCRIAN:[2,4,1,1,2,1,1],STANIAN:[4,1,1,1,1,2,2],EPANIAN:[1,1,1,1,2,2,4],KONIAN:[1,1,1,2,2,4,1],STOCRIAN:[1,1,2,2,4,1,1],KALIAN:[1,2,2,4,1,1,1],PHROPTIAN:[2,2,4,1,1,1,1],DYDIAN:[2,4,1,1,1,1,2],KATYPTIAN:[4,1,1,1,1,1,3],EPODIAN:[1,1,1,1,1,3,4],MYGIAN:[1,1,1,1,3,4,1],PACRIAN:[1,1,1,3,4,1,1],AEROCRIAN:[1,1,3,4,1,1,1],AEOLARIAN:[1,3,4,1,1,1,1],KYTHIAN:[3,4,1,1,1,1,1],BONIAN:[3,3,2,1,1,1,1],BADIAN:[3,2,1,1,1,1,3],KATODIAN:[2,1,1,1,1,3,3],SADIAN:[1,1,1,1,3,3,2],DOTHIAN:[1,1,1,3,3,2,1],MOPTIAN:[1,1,3,3,2,1,1],AERYRIAN:[1,3,3,2,1,1,1],EPAGIAN:[3,3,1,2,1,1,1],RAPTIAN:[3,1,2,1,1,1,3],EPOLIAN:[1,2,1,1,1,3,3],SYTHIAN:[2,1,1,1,3,3,1],SYDIAN:[1,1,1,3,3,1,2],EPOCRIAN:[1,1,3,3,1,2,1],KYLIAN:[1,3,3,1,2,1,1],GACRIAN:[3,3,1,1,1,2,1],BORIAN:[3,1,1,1,2,1,3],SYCRIAN:[1,1,1,2,1,3,3],GADIAN:[1,1,2,1,3,3,1],AEOLOCRIAN:[1,2,1,3,3,1,1],MIXODORIAN:[2,1,3,3,1,1,1],DATHIAN:[1,3,3,1,1,1,2],KATOPTIAN:[3,3,1,1,1,1,2],PONIAN:[3,1,1,1,1,2,3],KADIAN:[1,1,1,1,2,3,3],GYNIAN:[1,1,1,2,3,3,1],THYPHIAN:[1,1,2,3,3,1,1],POLIAN:[1,2,3,3,1,1,1],THANIAN:[2,3,3,1,1,1,1],EPACRIAN:[3,2,2,1,1,2,1],SATHIAN:[2,2,1,1,2,1,3],LATHIAN:[2,1,1,2,1,3,2],AERALIAN:[1,1,2,1,3,2,2],KYNIAN:[1,2,1,3,2,2,1],STYNIAN:[2,1,3,2,2,1,1],EPYPHIAN:[1,3,2,2,1,1,2],POGIAN:[3,2,1,2,1,2,1],AERAPTIAN:[2,1,2,1,2,1,3],EPYLIAN:[1,2,1,2,1,3,2],GAMIAN:[2,1,2,1,3,2,1],KATHIAN:[1,2,1,3,2,1,2],LYLIAN:[2,1,3,2,1,2,1],EPALIAN:[1,3,2,1,2,1,2],EPORIAN:[3,2,1,1,2,2,1],RYLIAN:[2,1,1,2,2,1,3],EPAPTIAN:[1,1,2,2,1,3,2],BYRIAN:[1,2,2,1,3,2,1],KATANIAN:[2,2,1,3,2,1,1],KATYRIAN:[2,1,3,2,1,1,2],RYNIAN:[1,3,2,1,1,2,2],KORIAN:[3,1,2,2,1,1,2],LYNIAN:[1,2,2,1,1,2,3],MALIAN:[2,2,1,1,2,3,1],SYNIAN:[2,1,1,2,3,1,2],PHRAGIAN:[1,1,2,3,1,2,2],MANIAN:[1,2,3,1,2,2,1],MARIAN:[2,3,1,2,2,1,1],MYCRIAN:[3,1,2,1,2,1,2],IONORIAN:[1,2,1,2,1,2,3],PHRYDIAN:[2,1,2,1,2,3,1],ZYPTIAN:[1,2,1,2,3,1,2],KATOTHIAN:[2,1,2,3,1,2,1],PHRYLIAN:[1,2,3,1,2,1,2],KOCRIAN:[2,3,1,2,1,2,1],IONANIAN:[3,1,2,1,1,2,2],AEROTHIAN:[1,2,1,1,2,2,3],STAGIAN:[2,1,1,2,2,3,1],LOTHIAN:[1,1,2,2,3,1,2],PHRYCRIAN:[1,2,2,3,1,2,1],KYPTIAN:[2,2,3,1,2,1,1],IONYLIAN:[2,3,1,2,1,1,2],GYDIAN:[4,2,1,1,1,1,2],KOGIAN:[2,1,1,1,1,2,4],RARIAN:[1,1,1,1,2,4,2],AEROLIAN:[1,1,1,2,4,2,1],KARIAN:[1,1,2,4,2,1,1],MYPTIAN:[1,2,4,2,1,1,1],RYDIAN:[2,4,2,1,1,1,1],AEOLYNIAN:[2,2,2,2,2,1,1],AEROPTIAN:[2,2,2,2,1,1,2],PHRYRIAN:[2,2,2,1,1,2,2],GOTHIAN:[2,2,1,1,2,2,2],STORIAN:[2,1,1,2,2,2,2],PYPTIAN:[1,1,2,2,2,2,2],THYDIAN:m,"NEOPOLITAN MAJOR":m,AERYCRYLLIC:R,"DOMINANT BEBOP":R,"BEBOP DOMINANT":R,GADYLLIC:[2,1,2,2,1,1,1,2],SOLYLLIC:[1,2,2,1,1,1,2,2],ZYLYLLIC:[2,2,1,1,1,2,2,1],MIXODYLLIC:[2,1,1,1,2,2,1,2],SORYLLIC:[1,1,1,2,2,1,2,2],GODYLLIC:[1,1,2,2,1,2,2,1],EPIPHYLLIC:[1,2,2,1,2,2,1,1],PYNYLLIC:[4,1,1,1,2,1,1,1],BOCRYLLIC:[1,1,1,2,1,1,1,4],KOGYLLIC:[1,1,2,1,1,1,4,1],RARYLLIC:[1,2,1,1,1,4,1,1],ZYCRYLLIC:[2,1,1,1,4,1,1,1],MYCRYLLIC:[1,1,1,4,1,1,1,2],LAPTYLLIC:[1,1,4,1,1,1,2,1],PYLYLLIC:[1,4,1,1,1,2,1,1],POTHYLLIC:[3,2,1,1,1,2,1,1],PHRONYLLIC:[2,1,1,1,2,1,1,3],STYNYLLIC:[1,1,1,2,1,1,3,2],RATHYLLIC:[1,1,2,1,1,3,2,1],AERYPTYLLIC:[1,2,1,1,3,2,1,1],ZYDYLLIC:[2,1,1,3,2,1,1,1],KATOLYLLIC:[1,1,3,2,1,1,1,2],RYTHYLLIC:[1,3,2,1,1,1,2,1],LOCRYLLIC:[3,1,1,3,1,1,1,1],BYLYLLIC:[1,1,3,1,1,1,1,3],SOGYLLIC:[1,3,1,1,1,1,3,1],IONYCRYLLIC:[3,1,1,1,1,3,1,1],KOPTYLLIC:[1,1,1,1,3,1,1,3],EPYRYLLIC:[1,1,1,3,1,1,3,1],SOPTYLLIC:[1,1,3,1,1,3,1,1],AEOLYLYLLIC:[1,3,1,1,3,1,1,1],AERACRYLLIC:[3,1,1,2,2,1,1,1],EPYGYLLIC:[1,1,2,2,1,1,1,3],THONYLLIC:[1,2,2,1,1,1,3,1],LANYLLIC:[2,2,1,1,1,3,1,1],PHRYNYLLIC:[2,1,1,1,3,1,1,2],LYCRYLLIC:[1,1,1,3,1,1,2,2],IONYPTYLLIC:[1,1,3,1,1,2,2,1],EPATHYLLIC:[1,3,1,1,2,2,1,1],DYDYLLIC:[3,1,1,2,1,2,1,1],THOGYLLIC:[1,1,2,1,2,1,1,3],RYGYLLIC:[1,2,1,2,1,1,3,1],BYCRYLLIC:[2,1,2,1,1,3,1,1],ZACRYLLIC:[1,2,1,1,3,1,1,2],PANYLLIC:[2,1,1,3,1,1,2,1],DYRYLLIC:[1,1,3,1,1,2,1,2],ZATHYLLIC:[1,3,1,1,2,1,2,1],DAGYLLIC:[3,1,1,2,1,1,1,2],KATALYLLIC:[1,1,2,1,1,1,2,3],KATORYLLIC:[1,2,1,1,1,2,3,1],DODYLLIC:[2,1,1,1,2,3,1,1],ZOGYLLIC:[1,1,1,2,3,1,1,2],MADYLLIC:[1,1,2,3,1,1,2,1],DYCRYLLIC:[1,2,3,1,1,2,1,1],AEOLOGYLLIC:[2,3,1,1,2,1,1,1],SYDYLLIC:[3,1,1,1,3,1,1,1],KATOGYLLIC:[1,1,1,3,1,1,1,3],ZYGYLLIC:[1,1,3,1,1,1,3,1],AERALYLLIC:[1,3,1,1,1,3,1,1],BACRYLLIC:[3,1,1,1,2,2,1,1],AERYGYLLIC:[1,1,1,2,2,1,1,3],DATHYLLIC:[1,1,2,2,1,1,3,1],BOPTYLLIC:[1,2,2,1,1,3,1,1],BAGYLLIC:[2,2,1,1,3,1,1,1],MATHYLLIC:[2,1,1,3,1,1,1,2],STYPTYLLIC:[1,1,3,1,1,1,2,2],ZOLYLLIC:[1,3,1,1,1,2,2,1],ROCRYLLIC:[2,2,2,1,2,1,1,1],ZYRYLLIC:[2,2,1,2,1,1,1,2],SAGYLLIC:[2,1,2,1,1,1,2,2],EPINYLLIC:[1,2,1,1,1,2,2,2],KATAGYLLIC:[2,1,1,1,2,2,2,1],RAGYLLIC:[1,1,1,2,2,2,1,2],GOTHYLLIC:[1,1,2,2,2,1,2,1],LYTHYLLIC:[1,2,2,2,1,2,1,1],IONOCRYLLIC:[2,2,2,1,1,1,2,1],GOCRYLLIC:[2,2,1,1,1,2,1,2],EPIRYLLIC:[2,1,1,1,2,1,2,2],AERADYLLIC:[1,1,1,2,1,2,2,2],STAPTYLLIC:[1,1,2,1,2,2,2,1],DANYLLIC:[1,2,1,2,2,2,1,1],GOPTYLLIC:[2,1,2,2,2,1,1,1],EPOCRYLLIC:[1,2,2,2,1,1,1,2],IONOPTYLLIC:E,"MARJOR BEBOP":E,"BEBOP MAJOR":E,AEOLORYLLIC:[2,1,2,1,1,2,1,2],THYDYLLIC:[1,2,1,1,2,1,2,2],GYCRYLLIC:[2,1,1,2,1,2,2,1],LYRYLLIC:[1,1,2,1,2,2,1,2],MOGYLLIC:[1,2,1,2,2,1,2,1],KATODYLLIC:[2,1,2,2,1,2,1,1],MOPTYLLIC:[1,2,2,1,2,1,1,2],DOLYLLIC:[4,1,2,1,1,1,1,1],MORYLLIC:[1,2,1,1,1,1,1,4],BYDYLLIC:[2,1,1,1,1,1,4,1],POCRYLLIC:[1,1,1,1,1,4,1,2],PHRACRYLLIC:[1,1,1,1,4,1,2,1],GYRYLLIC:[1,1,1,4,1,2,1,1],PHRYGYLLIC:[1,1,4,1,2,1,1,1],DOGYLLIC:[1,4,1,2,1,1,1,1],THAGYLLIC:[4,1,1,2,1,1,1,1],THOPTYLLIC:[1,1,2,1,1,1,1,4],PHRAPTYLLIC:[1,2,1,1,1,1,4,1],GYLYLLIC:[2,1,1,1,1,4,1,1],PHRALYLLIC:[1,1,1,1,4,1,1,2],DYGYLLIC:[1,1,1,4,1,1,2,1],RONYLLIC:[1,1,4,1,1,2,1,1],EPOGYLLIC:[1,4,1,1,2,1,1,1],AEOLADYLLIC:[4,1,1,1,1,2,1,1],KOCRYLLIC:[1,1,1,1,2,1,1,4],LODYLLIC:[1,1,1,2,1,1,4,1],BYNYLLIC:[1,1,2,1,1,4,1,1],KYDYLLIC:[1,2,1,1,4,1,1,1],BYGYLLIC:[2,1,1,4,1,1,1,1],PHRYPTYLLIC:[1,1,4,1,1,1,1,2],IONAYLLIC:[1,4,1,1,1,1,2,1],PHRORYLLIC:[4,1,1,1,1,1,2,1],THYPHYLLIC:[1,1,1,1,1,2,1,4],POPTYLLIC:[1,1,1,1,2,1,4,1],MIXONYLLIC:[1,1,1,2,1,4,1,1],PAPTYLLIC:[1,1,2,1,4,1,1,1],STORYLLIC:[1,2,1,4,1,1,1,1],PHRYCRYLLIC:[2,1,4,1,1,1,1,1],PALYLLIC:[1,4,1,1,1,1,1,2],PHRANYLLIC:[3,2,2,1,1,1,1,1],STYDYLLIC:[2,2,1,1,1,1,1,3],ZADYLLIC:[2,1,1,1,1,1,3,2],ZALYLLIC:[1,1,1,1,1,3,2,2],ZOCRYLLIC:[1,1,1,1,3,2,2,1],KATOCRYLLIC:[1,1,1,3,2,2,1,1],AERATHYLLIC:[1,1,3,2,2,1,1,1],STOPTYLLIC:[1,3,2,2,1,1,1,1],LYDYLLIC:[3,2,1,2,1,1,1,1],RADYLLIC:[2,1,2,1,1,1,1,3],STAGYLLIC:[1,2,1,1,1,1,3,2],IONORYLLIC:[2,1,1,1,1,3,2,1],PHRODYLLIC:[1,1,1,1,3,2,1,2],AERAGYLLIC:[1,1,1,3,2,1,2,1],BANYLLIC:[1,1,3,2,1,2,1,1],EPOTHYLLIC:[1,3,2,1,2,1,1,1],ZORYLLIC:[3,2,1,1,2,1,1,1],PHROLYLLIC:[2,1,1,2,1,1,1,3],KOLYLLIC:[1,1,2,1,1,1,3,2],THODYLLIC:[1,2,1,1,1,3,2,1],SOCRYLLIC:[2,1,1,1,3,2,1,1],AEOLYLLIC:[1,1,1,3,2,1,1,2],ZYTHYLLIC:[1,1,3,2,1,1,2,1],AEORYLLIC:[1,3,2,1,1,2,1,1],MIXOLYDYLLIC:[3,2,1,1,1,1,1,2],MIXONYPHYLLIC:[2,1,1,1,1,1,2,3],AEOLANYLLIC:[1,1,1,1,1,2,3,2],THOCRYLLIC:[1,1,1,1,2,3,2,1],KYGYLLIC:[1,1,1,2,3,2,1,1],IONAGYLLIC:[1,1,2,3,2,1,1,1],GOGYLLIC:[1,2,3,2,1,1,1,1],PHRADYLLIC:[2,3,2,1,1,1,1,1],IONIPTYLLIC:[3,1,3,1,1,1,1,1],KYCRYLLIC:[1,3,1,1,1,1,1,3],AEOLAPTYLLIC:[3,1,1,1,1,1,3,1],RODYLLIC:[1,1,1,1,1,3,1,3],IONATHYLLIC:[1,1,1,1,3,1,3,1],PYTHYLLIC:[1,1,1,3,1,3,1,1],ZONYLLIC:[1,1,3,1,3,1,1,1],RYRYLLIC:[1,3,1,3,1,1,1,1],AEOLOTHYLLIC:[3,1,2,2,1,1,1,1],IONYRYLLIC:[1,2,2,1,1,1,1,3],RYDYLLIC:[2,2,1,1,1,1,3,1],GONYLLIC:[2,1,1,1,1,3,1,2],ROLYLLIC:[1,1,1,1,3,1,2,2],KATYDYLLIC:[1,1,1,3,1,2,2,1],ZYPTYLLIC:[1,1,3,1,2,2,1,1],MODYLLIC:[1,3,1,2,2,1,1,1],MAPTYLLIC:[3,1,2,1,2,1,1,1],AERAPTYLLIC:[1,2,1,2,1,1,1,3],KATADYLLIC:[2,1,2,1,1,1,3,1],MAGYLLIC:[1,2,1,1,1,3,1,2],PHRYLYLLIC:[2,1,1,1,3,1,2,1],EPIGYLLIC:[1,1,1,3,1,2,1,2],MOLYLLIC:[1,1,3,1,2,1,2,1],PONYLLIC:[1,3,1,2,1,2,1,1],THYPTYLLIC:[3,1,2,1,1,2,1,1],IONOGYLLIC:[1,2,1,1,2,1,1,3],AEOLARYLLIC:[2,1,1,2,1,1,3,1],KATYGYLLIC:[1,1,2,1,1,3,1,2],GANYLLIC:[1,2,1,1,3,1,2,1],KYPTYLLIC:[2,1,1,3,1,2,1,1],SALYLLIC:[1,1,3,1,2,1,1,2],SANYLLIC:[1,3,1,2,1,1,2,1],DOPTYLLIC:[3,1,2,1,1,1,2,1],IONILYLLIC:[1,2,1,1,1,2,1,3],MANYLLIC:[2,1,1,1,2,1,3,1],POLYLLIC:[1,1,1,2,1,3,1,2],STANYLLIC:[1,1,2,1,3,1,2,1],MIXOTHARYLLIC:[1,2,1,3,1,2,1,1],EPORYLLIC:[2,1,3,1,2,1,1,1],AERYNYLLIC:[1,3,1,2,1,1,1,2],LONYLLIC:[3,1,1,2,1,1,2,1],SATHYLLIC:[1,1,2,1,1,2,1,3],LAYLLIC:[1,2,1,1,2,1,3,1],SARYLLIC:[2,1,1,2,1,3,1,1],THACRYLLIC:[1,1,2,1,3,1,1,2],AEOLYNYLLIC:[1,2,1,3,1,1,2,1],THADYLLIC:[2,1,3,1,1,2,1,1],LYNYLLIC:[1,3,1,1,2,1,1,2],AEOLATHYLLIC:[3,1,1,1,2,1,2,1],AEOLOCRYLLIC:[1,1,1,2,1,2,1,3],PHROPTYLLIC:[1,1,2,1,2,1,3,1],KODYLLIC:[1,2,1,2,1,3,1,1],EPAPTYLLIC:[2,1,2,1,3,1,1,1],IONOYLLIC:[1,2,1,3,1,1,1,2],GYPTYLLIC:[2,1,3,1,1,1,2,1],AERYTHYLLIC:[1,3,1,1,1,2,1,2],ZAGYLLIC:[3,1,1,1,2,1,1,2],EPACRYLLIC:[1,1,1,2,1,1,2,3],THORCRYLLIC:[1,1,2,1,1,2,3,1],LOPTYLLIC:[1,2,1,1,2,3,1,1],KATYLYLLIC:[2,1,1,2,3,1,1,1],MALYLLIC:[1,1,2,3,1,1,1,2],MYDYLLIC:[1,2,3,1,1,1,2,1],THYCRYLLIC:[2,3,1,1,1,2,1,1],GYTHYLLIC:[3,1,1,1,1,2,2,1],PYRYLLIC:[1,1,1,1,2,2,1,3],RYCRYLLIC:[1,1,1,2,2,1,3,1],PHRATHYLLIC:[1,1,2,2,1,3,1,1],BADYLLIC:[1,2,2,1,3,1,1,1],PHROCRYLLIC:[2,2,1,3,1,1,1,1],STARYLLIC:[2,1,3,1,1,1,1,2],ZOTHYLLIC:[1,3,1,1,1,1,2,2],THARYLLIC:[3,1,1,1,1,2,1,2],SYLYLLIC:[1,1,1,1,2,1,2,3],LOTHYLLIC:[1,1,1,2,1,2,3,1],DARYLLIC:[1,1,2,1,2,3,1,1],MONYLLIC:[1,2,1,2,3,1,1,1],STYRYLLIC:[2,1,2,3,1,1,1,1],AEOLACRYLLIC:[1,2,3,1,1,1,1,2],RAPTYLLIC:[2,3,1,1,1,1,2,1],KATARYLLIC:[3,1,1,1,1,1,2,2],AEROCRYLLIC:[1,1,1,1,1,2,2,3],ZANYLLIC:[1,1,1,1,2,2,3,1],AEOLONYLLIC:[1,1,1,2,2,3,1,1],AEONYLLIC:[1,1,2,2,3,1,1,1],KYRYLLIC:[1,2,2,3,1,1,1,1],SYTHYLLIC:[2,2,3,1,1,1,1,1],KATYCRYLLIC:[2,3,1,1,1,1,1,2],STOGYLLIC:[2,2,1,2,1,2,1,1],IONIDYLLIC:[2,1,2,1,2,1,1,2],STONYLLIC:[1,2,1,2,1,1,2,2],STALYLLIC:[2,1,2,1,1,2,2,1],PORYLLIC:[1,2,1,1,2,2,1,2],MOCRYLLIC:[2,1,1,2,2,1,2,1],AEOLYRYLLIC:[1,1,2,2,1,2,1,2],BARYLLIC:[1,2,2,1,2,1,2,1],DALYLLIC:[2,2,1,1,2,1,2,1],IONYPHYLLIC:[2,1,1,2,1,2,1,2],ZAPTYLLIC:[1,1,2,1,2,1,2,2],GARYLLIC:[1,2,1,2,1,2,2,1],GATHYLLIC:[2,1,2,1,2,2,1,1],MIXOPYRYLLIC:[1,2,1,2,2,1,1,2],IONACRYLLIC:I,"BEBOP MINOR":I,"MINOR BEBOP":I,"DORIAN BEBOP":I,"BEBOP DORIAN":I,STYLYLLIC:[1,2,2,1,1,2,1,2],STYCRYLLIC:[4,2,1,1,1,1,1,1],IONOTHYLLIC:[2,1,1,1,1,1,1,4],MYTHYLLIC:[1,1,1,1,1,1,4,2],AERYLYLLIC:[1,1,1,1,1,4,2,1],BONYLLIC:[1,1,1,1,4,2,1,1],THOLYLLIC:[1,1,1,4,2,1,1,1],KATYRYLLIC:[1,1,4,2,1,1,1,1],SADYLLIC:[1,4,2,1,1,1,1,1],STOLYLLIC:[4,1,1,1,1,1,1,2],LOGYLLIC:[1,1,1,1,1,1,2,4],DACRYLLIC:[1,1,1,1,1,2,4,1],THYNYLLIC:[1,1,1,1,2,4,1,1],GYDYLLIC:[1,1,1,2,4,1,1,1],EPARYLLIC:[1,1,2,4,1,1,1,1],DYNYLLIC:[1,2,4,1,1,1,1,1],IONYLLIC:[2,4,1,1,1,1,1,1],ZARYLLIC:[3,3,1,1,1,1,1,1],DYTHYLLIC:[3,1,1,1,1,1,1,3],IONARYLLIC:[1,1,1,1,1,1,3,3],LARYLLIC:[1,1,1,1,1,3,3,1],KATAPTYLLIC:[1,1,1,1,3,3,1,1],SONYLLIC:[1,1,1,3,3,1,1,1],PATHYLLIC:[1,1,3,3,1,1,1,1],LORYLLIC:[1,3,3,1,1,1,1,1],AERONYLLIC:[3,2,1,1,1,1,2,1],PYCRYLLIC:[2,1,1,1,1,2,1,3],MYGYLLIC:[1,1,1,1,2,1,3,2],LYLYLLIC:[1,1,1,2,1,3,2,1],DAPTYLLIC:[1,1,2,1,3,2,1,1],IONINYLLIC:[1,2,1,3,2,1,1,1],EPAPHYLLIC:[2,1,3,2,1,1,1,1],LOLYLLIC:[1,3,2,1,1,1,1,2],STACRYLLIC:[3,1,2,1,1,1,1,2],DORYLLIC:[1,2,1,1,1,1,2,3],KADYLLIC:[2,1,1,1,1,2,3,1],RYNYLLIC:[1,1,1,1,2,3,1,2],AEROGYLLIC:[1,1,1,2,3,1,2,1],ROTHYLLIC:[1,1,2,3,1,2,1,1],KAGYLLIC:[1,2,3,1,2,1,1,1],STATHYLLIC:[2,3,1,2,1,1,1,1],THYRYLLIC:[2,2,2,2,1,1,1,1],GYGYLLIC:[2,2,2,1,1,1,1,2],SODYLLIC:[2,2,1,1,1,1,2,2],GORYLLIC:[2,1,1,1,1,2,2,2],BOTHYLLIC:[1,1,1,1,2,2,2,2],GYNYLLIC:[1,1,1,2,2,2,2,1],IONAPTYLLIC:[1,1,2,2,2,2,1,1],PHRYRYLLIC:[1,2,2,2,2,1,1,1],RACRYLLIC:[2,2,2,1,1,2,1,1],EPICRYLLIC:[2,2,1,1,2,1,1,2],STYGYLLIC:[2,1,1,2,1,1,2,2],SYRYLLIC:[1,1,2,1,1,2,2,2],STYTHYLLIC:[1,2,1,1,2,2,2,1],AEROTHYLLIC:[2,1,1,2,2,2,1,1],MIXORYLLIC:[1,1,2,2,2,1,1,2],THANYLLIC:[1,2,2,2,1,1,2,1],RORYLLIC:[2,2,1,1,2,2,1,1],EPOTYLLIC:[2,1,1,2,2,1,1,2],EPIDYLLIC:[1,1,2,2,1,1,2,2],KAPTYLLIC:[1,2,2,1,1,2,2,1],MAJORDIMIN:[2,1,2,1,2,1,2,1],MINORDIMIN:_,OCTATONIC:_,AERYCRYGIC:[2,2,1,1,1,2,1,1,1],GADYGIC:[2,1,1,1,2,1,1,1,2],SOLYGIC:[1,1,1,2,1,1,1,2,2],ZYLYGIC:[1,1,2,1,1,1,2,2,1],GARYGIC:[1,2,1,1,1,2,2,1,1],SORYGIC:[2,1,1,1,2,2,1,1,1],GODYGIC:[1,1,1,2,2,1,1,1,2],EPITHYGIC:[1,1,2,2,1,1,1,2,1],IONOPTYGIC:[1,2,2,1,1,1,2,1,1],KALYGIC:[3,1,1,2,1,1,1,1,1],IONODYGIC:[1,1,2,1,1,1,1,1,3],BYTHYGIC:[1,2,1,1,1,1,1,3,1],EPYGIC:[2,1,1,1,1,1,3,1,1],MARYGIC:[1,1,1,1,1,3,1,1,2],GAPTYGIC:[1,1,1,1,3,1,1,2,1],AEROPTYGIC:[1,1,1,3,1,1,2,1,1],MYLYGIC:[1,1,3,1,1,2,1,1,1],GALYGIC:[1,3,1,1,2,1,1,1,1],MIXOLYDYGIC:[3,1,1,1,2,1,1,1,1],IONYCRYGIC:[1,1,1,2,1,1,1,1,3],ZOPTYGIC:[1,1,2,1,1,1,1,3,1],PHRYGYGIC:[1,2,1,1,1,1,3,1,1],LOCRYGIC:[2,1,1,1,1,3,1,1,1],GONYGIC:[1,1,1,1,3,1,1,1,2],AERACRYGIC:[1,1,1,3,1,1,1,2,1],AERATHYGIC:[1,1,3,1,1,1,2,1,1],DORYGIC:[1,3,1,1,1,2,1,1,1],DYCRYGIC:[3,1,1,1,1,2,1,1,1],AEOLYGIC:[1,1,1,1,2,1,1,1,3],DYDYGIC:[1,1,1,2,1,1,1,3,1],THOLYGIC:[1,1,2,1,1,1,3,1,1],RYNYGIC:[1,2,1,1,1,3,1,1,1],BYCRYGIC:[2,1,1,1,3,1,1,1,1],ZACRYGIC:[1,1,1,3,1,1,1,1,2],PANYGIC:[1,1,3,1,1,1,1,2,1],DYRYGIC:[1,3,1,1,1,1,2,1,1],LOPTYGIC:[3,1,1,1,1,1,2,1,1],KATYLYGIC:[1,1,1,1,1,2,1,1,3],PHRADYGIC:[1,1,1,1,2,1,1,3,1],MIXODYGIC:[1,1,1,2,1,1,3,1,1],KATALYGIC:[1,1,2,1,1,3,1,1,1],KATORYGIC:[1,2,1,1,3,1,1,1,1],DOGYGIC:[2,1,1,3,1,1,1,1,1],ZODYGIC:[1,1,3,1,1,1,1,1,2],MADYGIC:[1,3,1,1,1,1,1,2,1],BAGYGIC:[2,2,1,2,1,1,1,1,1],MATHYGIC:[2,1,2,1,1,1,1,1,2],STYPTYGIC:[1,2,1,1,1,1,1,2,2],ZOLYGIC:[2,1,1,1,1,1,2,2,1],SYDYGIC:[1,1,1,1,1,2,2,1,2],KATYGIC:[1,1,1,1,2,2,1,2,1],ZYPHYGIC:[1,1,1,2,2,1,2,1,1],AERALYGIC:[1,1,2,2,1,2,1,1,1],RYPTYGIC:[1,2,2,1,2,1,1,1,1],APINYGIC:[2,2,1,1,1,1,1,2,1],KATAGYGIC:[2,1,1,1,1,1,2,1,2],RADYGIC:[1,1,1,1,1,2,1,2,2],GOTHYGIC:[1,1,1,1,2,1,2,2,1],LYTHYGIC:[1,1,1,2,1,2,2,1,1],BACRYGIC:[1,1,2,1,2,2,1,1,1],AERYGIC:[1,2,1,2,2,1,1,1,1],DATHYGIC:[2,1,2,2,1,1,1,1,1],BOPTYGIC:[1,2,2,1,1,1,1,1,2],EPYRYGIC:[2,1,2,1,1,2,1,1,1],AERADYGIC:[1,2,1,1,2,1,1,1,2],STAPTYGIC:[2,1,1,2,1,1,1,2,1],DANYGIC:[1,1,2,1,1,1,2,1,2],GOPTYGIC:[1,2,1,1,1,2,1,2,1],EPOCRYGIC:[2,1,1,1,2,1,2,1,1],ROCRYGIC:[1,1,1,2,1,2,1,1,2],ZYRYGIC:[1,1,2,1,2,1,1,2,1],SADYGIC:[1,2,1,2,1,1,2,1,1],AEOLORYGIC:[2,1,2,1,1,1,2,1,1],THYDYGIC:[1,2,1,1,1,2,1,1,2],GYCRYGIC:[2,1,1,1,2,1,1,2,1],LYRYGIC:[1,1,1,2,1,1,2,1,2],MODYGIC:[1,1,2,1,1,2,1,2,1],KATODYGIC:[1,2,1,1,2,1,2,1,1],MOPTYGIC:[2,1,1,2,1,2,1,1,1],IONOCRYGIC:[1,1,2,1,2,1,1,1,2],GOCRYGIC:[1,2,1,2,1,1,1,2,1],MANYGIC:[4,1,1,1,1,1,1,1,1],POLYGIC:[1,1,1,1,1,1,1,1,4],STANYGIC:[1,1,1,1,1,1,1,4,1],THAPTYGIC:[1,1,1,1,1,1,4,1,1],EPORYGIC:[1,1,1,1,1,4,1,1,1],AERYNYGIC:[1,1,1,1,4,1,1,1,1],THYPTYGIC:[1,1,1,4,1,1,1,1,1],IONOGYGIC:[1,1,4,1,1,1,1,1,1],AEOLARYGIC:[1,4,1,1,1,1,1,1,1],SATHYGIC:[3,2,1,1,1,1,1,1,1],LADYGIC:[2,1,1,1,1,1,1,1,3],SARYGIC:[1,1,1,1,1,1,1,3,2],THACRYGIC:[1,1,1,1,1,1,3,2,1],AEOLYNYGIC:[1,1,1,1,1,3,2,1,1],THADYGIC:[1,1,1,1,3,2,1,1,1],LYNYGIC:[1,1,1,3,2,1,1,1,1],DOPTYGIC:[1,1,3,2,1,1,1,1,1],IONILYGIC:[1,3,2,1,1,1,1,1,1],PHRYGIC:[3,1,2,1,1,1,1,1,1],AERANYGIC:[1,2,1,1,1,1,1,1,3],DOTHYGIC:[2,1,1,1,1,1,1,3,1],LYDYGIC:[1,1,1,1,1,1,3,1,2],STADYGIC:[1,1,1,1,1,3,1,2,1],BYPTYGIC:[1,1,1,1,3,1,2,1,1],STODYGIC:[1,1,1,3,1,2,1,1,1],ZYNYGIC:[1,1,3,1,2,1,1,1,1],LONYGIC:[1,3,1,2,1,1,1,1,1],ZOTHYGIC:[3,1,1,1,1,1,1,2,1],AEOLATHYGIC:[1,1,1,1,1,1,2,1,3],AEOLOCRYGIC:[1,1,1,1,1,2,1,3,1],PHROPTYGIC:[1,1,1,1,2,1,3,1,1],KODYGIC:[1,1,1,2,1,3,1,1,1],EPARYGIC:[1,1,2,1,3,1,1,1,1],IONYGIC:[1,2,1,3,1,1,1,1,1],GYPTYGIC:[2,1,3,1,1,1,1,1,1],AERYTHYGIC:[1,3,1,1,1,1,1,1,2],AEOLACRYGIC:[3,1,1,1,1,1,1,1,2],RAPTYGIC:[1,1,1,1,1,1,1,2,3],GYTHYGIC:[1,1,1,1,1,1,2,3,1],PYRYGIC:[1,1,1,1,1,2,3,1,1],RYCRYGIC:[1,1,1,1,2,3,1,1,1],PHRATHYGIC:[1,1,1,2,3,1,1,1,1],BADYGIC:[1,1,2,3,1,1,1,1,1],PHROCRYGIC:[1,2,3,1,1,1,1,1,1],STARYGIC:[2,3,1,1,1,1,1,1,1],KYRYGIC:[2,2,2,1,1,1,1,1,1],SYTHYGIC:[2,2,1,1,1,1,1,1,2],KATYCRYGIC:[2,1,1,1,1,1,1,2,2],THARYGIC:[1,1,1,1,1,1,2,2,2],SYLYGIC:[1,1,1,1,1,2,2,2,1],LOTHYGIC:[1,1,1,1,2,2,2,1,1],DARYGIC:[1,1,1,2,2,2,1,1,1],MONYGIC:[1,1,2,2,2,1,1,1,1],STYRYGIC:[1,2,2,2,1,1,1,1,1],PORYGIC:[2,2,1,1,2,1,1,1,1],MOCRYGIC:[2,1,1,2,1,1,1,1,2],AEOLYRYGIC:[1,1,2,1,1,1,1,2,2],BARYGIC:[1,2,1,1,1,1,2,2,1],KATARYGIC:[2,1,1,1,1,2,2,1,1],AEROCRYGIC:[1,1,1,1,2,2,1,1,2],ZANYGIC:[1,1,1,2,2,1,1,2,1],AEOLONYGIC:[1,1,2,2,1,1,2,1,1],AEOLANYGIC:[1,2,2,1,1,2,1,1,1],KAPTYGIC:[2,2,1,1,1,1,2,1,1],SACRYGIC:[2,1,1,1,1,2,1,1,2],PADYGIC:[1,1,1,1,2,1,1,2,2],EPILYGIC:[1,1,1,2,1,1,2,2,1],KYNYGIC:[1,1,2,1,1,2,2,1,1],STOPHYGIC:[1,2,1,1,2,2,1,1,1],IONIDYGIC:[2,1,1,2,2,1,1,1,1],STONYGIC:[1,1,2,2,1,1,1,1,2],STALYGIC:[1,2,2,1,1,1,1,2,1],KOPTYGIC:[2,1,2,1,2,1,1,1,1],RAPHYGIC:[1,2,1,2,1,1,1,1,2],ZYCRYGIC:[2,1,2,1,1,1,1,2,1],MYCRYGIC:[1,2,1,1,1,1,2,1,2],LAPTYGIC:[2,1,1,1,1,2,1,2,1],PYLYGIC:[1,1,1,1,2,1,2,1,2],RODYGIC:[1,1,1,2,1,2,1,2,1],EPOLYGIC:[1,1,2,1,2,1,2,1,1],EPIDYGIC:[1,2,1,2,1,2,1,1,1],PHRONYGIC:[2,1,1,2,1,1,2,1,1],STYNYGIC:[1,1,2,1,1,2,1,1,2],ZYDYGIC:[1,2,1,1,2,1,1,2,1],AERYCRYLLIAN:[2,1,1,1,2,1,1,1,1,1],GADYLLIAN:[1,1,1,2,1,1,1,1,1,2],SOLYLLIAN:[1,1,2,1,1,1,1,1,2,1],ZYPHYLLIAN:[1,2,1,1,1,1,1,2,1,1],GARYLLIAN:[2,1,1,1,1,1,2,1,1,1],SORYLLIAN:[1,1,1,1,1,2,1,1,1,2],GODYLLIAN:[1,1,1,1,2,1,1,1,2,1],EPITYLLIAN:[1,1,1,2,1,1,1,2,1,1],IONYLLIAN:[1,1,2,1,1,1,2,1,1,1],AEORYLLIAN:[1,2,1,1,1,2,1,1,1,1],KATORYLLIAN:[3,1,1,1,1,1,1,1,1,1],DODYLLIAN:[1,1,1,1,1,1,1,1,1,3],ZOGYLLIAN:[1,1,1,1,1,1,1,1,3,1],MADYLLIAN:[1,1,1,1,1,1,1,3,1,1],DYCRYLLIAN:[1,1,1,1,1,1,3,1,1,1],AEOGYLLIAN:[1,1,1,1,1,3,1,1,1,1],DYDYLLIAN:[1,1,1,1,3,1,1,1,1,1],THOGYLLIAN:[1,1,1,3,1,1,1,1,1,1],RYGYLLIAN:[1,1,3,1,1,1,1,1,1,1],BATHYLLIAN:[1,3,1,1,1,1,1,1,1,1],SYDYLLIAN:[2,2,1,1,1,1,1,1,1,1],KATOGYLLIAN:[2,1,1,1,1,1,1,1,1,2],MIXODYLLIAN:[1,1,1,1,1,1,1,1,2,2],AERADYLLIAN:[1,1,1,1,1,1,1,2,2,1],RYPTYLLIAN:[1,1,1,1,1,1,2,2,1,1],LOPTYLLIAN:[1,1,1,1,1,2,2,1,1,1],KATAPHYLLIAN:[1,1,1,1,2,2,1,1,1,1],PHRADYLLIAN:[1,1,1,2,2,1,1,1,1,1],DAGYLLIAN:[1,1,2,2,1,1,1,1,1,1],KATYLLIAN:[1,2,2,1,1,1,1,1,1,1],GOTHYLLIAN:[2,1,2,1,1,1,1,1,1,1],LYTHYLLIAN:[1,2,1,1,1,1,1,1,1,2],BACRYLLIAN:[2,1,1,1,1,1,1,1,2,1],AERYGYLLIAN:[1,1,1,1,1,1,1,2,1,2],DATHYLLIAN:[1,1,1,1,1,1,2,1,2,1],BOPTYLLIAN:[1,1,1,1,1,2,1,2,1,1],BAGYLLIAN:[1,1,1,1,2,1,2,1,1,1],MATHYLLIAN:[1,1,1,2,1,2,1,1,1,1],STYPTYLLIAN:[1,1,2,1,2,1,1,1,1,1],ZOLYLLIAN:[1,2,1,2,1,1,1,1,1,1],STAPTYLLIAN:[2,1,1,2,1,1,1,1,1,1],DANYLLIAN:[1,1,2,1,1,1,1,1,1,2],GOPTYLLIAN:[1,2,1,1,1,1,1,1,2,1],EPOCRYLLIAN:[2,1,1,1,1,1,1,2,1,1],ROCRYLLIAN:[1,1,1,1,1,1,2,1,1,2],ZYRYLLIAN:[1,1,1,1,1,2,1,1,2,1],SAGYLLIAN:[1,1,1,1,2,1,1,2,1,1],EPINYLLIAN:[1,1,1,2,1,1,2,1,1,1],KATAGYLLIAN:[1,1,2,1,1,2,1,1,1,1],RAGYLLIAN:[1,2,1,1,2,1,1,1,1,1],THYDYLLIAN:[2,1,1,1,1,2,1,1,1,1],EPIRYLLIAN:[1,1,1,1,2,1,1,1,1,2],LYRYLLIAN:[1,1,1,2,1,1,1,1,2,1],MOGYLLIAN:[1,1,2,1,1,1,1,2,1,1],KATODYLLIAN:[1,2,1,1,1,1,2,1,1,1],AERYCRATIC:[2,1,1,1,1,1,1,1,1,1,1],MONATIC:[1,1,1,1,1,1,1,1,1,1,2],SOLATIC:[1,1,1,1,1,1,1,1,1,2,1],ZYLATIC:[1,1,1,1,1,1,1,1,2,1,1],MIXOLATIC:[1,1,1,1,1,1,1,2,1,1,1],SORATIC:[1,1,1,1,1,1,2,1,1,1,1],GODATIC:[1,1,1,1,1,2,1,1,1,1,1],EPTATIC:[1,1,1,1,2,1,1,1,1,1,1],IONATIC:[1,1,1,2,1,1,1,1,1,1,1],AEOLATIC:[1,1,2,1,1,1,1,1,1,1,1],THYDATIC:[1,2,1,1,1,1,1,1,1,1,1],CHROMATIC:[1,1,1,1,1,1,1,1,1,1,1,1]}},Vc=NG(),wG=()=>{const r=Object.keys(Vc),e=r[Math.floor(Math.random()*r.length)];return Vc[e]},ea=r=>Vc[r.toUpperCase()],hR=r=>r.toUpperCase()in Vc,DG=r=>ea(r).length,xG=()=>{const r=[0,4,7],e=[0,3,7],t=[0,4,7,11],n=[0,4,7,10],i=[0,3,7,10],a=[0,4,8],s=[0,3,6],o=[0,3,6,9],l=[0,3,6,10],m={1:[0],5:[0,7],"+5":[0,4,8],"m+5":[0,3,8],sus2:[0,2,7],sus4:[0,5,7],6:[0,4,7,9],m6:[0,3,7,9],"7sus2":[0,2,7,10],"7sus4":[0,5,7,10],"7-5":[0,4,6,10],"7+5":[0,4,8,10],"m7+5":[0,3,8,10],9:[0,4,7,10,14],m9:[0,3,7,10,14],"m7+9":[0,3,7,10,14],maj9:[0,4,7,11,14],"9sus4":[0,5,7,10,14],"6*9":[0,4,7,9,14],"m6*9":[0,3,7,9,14],"7-9":[0,4,7,10,13],"m7-9":[0,3,7,10,13],"7-10":[0,4,7,10,15],"7-11":[0,4,7,10,16],"7-13":[0,4,7,10,20],"9+5":[0,10,13],"m9+5":[0,10,14],"7+5-9":[0,4,8,10,13],"m7+5-9":[0,3,8,10,13],11:[0,4,7,10,14,17],m11:[0,3,7,10,14,17],maj11:[0,4,7,11,14,17],"11+":[0,4,7,10,14,18],"m11+":[0,3,7,10,14,18],13:[0,4,7,10,14,17,21],m13:[0,3,7,10,14,17,21],add2:[0,2,4,7],add4:[0,4,5,7],add9:[0,4,7,14],add11:[0,4,7,17],add13:[0,4,7,21],madd2:[0,2,3,7],madd4:[0,3,5,7],madd9:[0,3,7,14],madd11:[0,3,7,17],madd13:[0,3,7,21],dim9:[0,3,6,9,14],dim:s,hdim7:l,hdim9:[0,3,6,10,14],hdimb9:[0,3,6,10,13],augMaj7:[0,4,8,11],minmaj7:[0,3,7,11],five:[0,7,12],seven:n,nine:[0,4,10,14],b9:[0,4,10,13],mM9:[0,3,11,14],min7:i,min9:[0,3,10,14],b5:[0,4,6,12],mb5:[0,3,6,12],major:r,maj:r,M:r,minor:e,min:e,m:e,major7:t,dom7:n,7:n,M7:t,m7:i,augmented:a,a,aug:a,diminished:s,diminished7:o,dim7:o,halfdim:l,m7b5:l,"m7-5":l},_=Object.keys(m);return[m,_]},[_T,V5]=xG(),ig=(r="")=>{let e=0,t=0,n=0,i=0;function a(){const s=(e^e<<11)>>>0;return e=t,t=n,n=i,i^=(i>>>19^s^s>>>8)>>>0,(i>>>0)/4294967296}for(let s=0;sArray.isArray(r)?r.map(e=>ri(e)):r&&typeof r=="object"?Object.getOwnPropertyNames(r).reduce((e,t)=>(Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t)),e[t]=ri(r[t]),e),Object.create(Object.getPrototypeOf(r))):r,mR=r=>{try{return new Function(`"use strict";return (${r})`)()}catch(e){throw new Error(`Error in eval: ${e}`)}},kG=(r,e)=>(r%e+e)%e,gR=function(){function r(i,a){function s(){this.constructor=i}s.prototype=a.prototype,i.prototype=new s}function e(i,a,s,o){var l=Error.call(this,i);return Object.setPrototypeOf&&Object.setPrototypeOf(l,e.prototype),l.expected=a,l.found=s,l.location=o,l.name="SyntaxError",l}r(e,Error);function t(i,a,s){return s=s||" ",i.length>a?i:(a-=i.length,s+=s.repeat(a),i+s.slice(0,a))}e.prototype.format=function(i){var a="Error: "+this.message;if(this.location){var s=null,o;for(o=0;o `+u+` `+m+` | `+c.line+" | "+_+` @@ -3059,4 +3059,4 @@ https://github.com/highlightjs/highlight.js/issues/2277`),le=Q,ue=j),K===void 0& `,"\r"," "],!1,!1),sn=st(",",!1),H=st("|",!1),fe=jn([["a","z"]],!1,!1),Ie=jn([["a","z"],"_"],!1,!1),we=jn([["a","z"],"_",["0","9"]],!1,!1),Je=st("<",!1),ye=st(">",!1),Ht=st("@",!1),lt=st(":",!1),yt=jn(["m","k","l","p","d","c","w","y","h","n","q","a","e","f","s","x","t","g","u","j","z","o"],!1,!1),Hn=st("/",!1),dt=st("(",!1),jt=st(")",!1),Tt=st("[:",!1),Ue=st("]",!1),Fn=st("[",!1),Qr=st("{",!1),ct=st("}",!1),Wn=st("+",!1),Nn=st("*",!1),Ai=st("%",!1),wn=st("^",!1),Wt=st("&",!1),Ar=st(">>",!1),ra=st("<<",!1),li=st("_",!1),ia=st("?",!1),ur=st("!",!1),ci=st("r",!1),Ir=jn([["a","z"],["A","Z"],["0","9"]],!1,!1),Jt=st("#",!1),ui=st("b",!1),di=jn([["a","z"],["A","Z"],["0","9"],"-","*","+"],!1,!1),q=jn([["A","G"]],!1,!1),ie=jn(["b","s"],!1,!1),de=st("iii",!1),_e=st("ii",!1),Ae=st("iv",!1),Qe=st("i",!1),Pe=st("vii",!1),Ct=st("vi",!1),Dn=st("v",!1),Xn=function(v){return v.filter(w=>w)},ka=function(){return parseFloat($n())},aa=function(){return parseInt($n())},Ls=function(){return parseInt($n())},Zn=function(){},Ms=function(v){return Ut(zG,{sound:v})},La=function(){return $n()},Ma=function(v){return Ut(No,{items:v})},Ps=function(v){return v},Pa=function(v,w){return Ut(HG,{item:v,sound:w})},Bs=function(v,w){return Ut(WG,{item:v,soundIndex:w})},Ba=function(v){return v},Yn=function(){return CG[$n()]},Us=function(v,w){return v/w},Fs=function(v){return v.filter(w=>w)},Ua=function(v){return Ut(No,{items:v})},Fa=function(v,w){return w?Ut(ET,{item:v,times:w}):Ut(vT,{items:v})},Ys=function(v){return v},Ya=function(v,w,P){return Ut(JG,{left:v,operation:w,right:P})},$s=function(v,w){return Ut(jG,{items:v,times:w})},$a=function(v){return Ut(SR,{items:v})},Gs=function(v){return v.map(w=>typeof w=="number"?w:void 0)},Qs=function(){return Math.ceil(mR($n()))},dr=function(v){var w=v.filter(P=>P).map(P=>Ut(zn,{pitch:P[0]},P.toString()));return Ut(vT,{items:w})},Ot=function(v){return v},qs=function(v){return v},Ii=function(){},Vs=function(v){return Ut(No,{items:v})},pi=function(v){return Ut(ZG,{octave:v})},zs=function(){return $n().split("").reduce((v,w)=>v+(w==="^"?1:-1),0)},Ri=function(){return Ut(zc,{seededRandom:a.seededRandom})},Ga=function(v,w){return Ut(zc,{min:v,max:w,seededRandom:a.seededRandom})},Qa=function(v,w){return Ut(ET,{item:v,times:w})},Hs=function(v){return Ut(KG,{duration:v})},Ni=function(v){return v},qa=function(v){return Ut(ag,{duration:v})},wi=function(v,w,P,X){const oe=v?a.nodeOptions.octave+v:a.nodeOptions.octave;return Ut(zn,{duration:w,pitch:X,pitchOctave:oe,add:P})},Di=function(v){return v.reduce((w,P)=>w+(P==="#"?1:-1),0)},Va=function(v,w,P){return Ut($r,{pitches:[v].concat(w),inversion:P})},sa=function(){return $n()},fi=function(v){return v},_n=function(){return $n()},za=function(v,w,P,X,oe){const ve=a.nodeOptions.scaleName?a.nodeOptions.scaleName:"MAJOR",ft=a.nodeOptions.key?a.nodeOptions.key:"C",hr=o5(X,P,ve,v,w),Js=w||a.nodeOptions.duration,qR=v?a.nodeOptions.octave+v:a.nodeOptions.octave;return Ut($r,{duration:Js,chordOctave:qR,pitches:hr,chordName:X,inversion:oe,scaleName:ve,key:ft})},Kn=function(v,w,P){const X=a.nodeOptions.scaleName?a.nodeOptions.scaleName:"MAJOR",oe=a.nodeOptions.key?a.nodeOptions.key:"C";return Ut(XG,{roman:v,chordName:w,inversion:P,scaleName:X,key:oe})},oa=function(v){const w=a.nodeOptions.scaleName?a.nodeOptions.scaleName:"MAJOR",P=a.nodeOptions.key?a.nodeOptions.key:"C",X=m5(v,P,w);return Ut(zn,{pitch:X.pc,add:X.add,scaleName:w,key:P})},y=0,He=0,Ha=[{line:1,column:1}],pr=0,Ws=[],Oe=0,ge={},la;if("startRule"in a){if(!(a.startRule in l))throw new Error(`Can't start parsing from rule "`+a.startRule+'".');c=l[a.startRule]}function $n(){return i.substring(He,y)}function ml(){return d(He,y)}function st(v,w){return{type:"literal",text:v,ignoreCase:w}}function jn(v,w,P){return{type:"class",parts:v,inverted:w,ignoreCase:P}}function gl(){return{type:"end"}}function Xs(v){return{type:"other",description:v}}function _l(v){var w=Ha[v],P;if(w)return w;for(P=v-1;!Ha[P];)P--;for(w=Ha[P],w={line:w.line,column:w.column};Ppr&&(pr=y,Ws=[]),Ws.push(v))}function g(v,w,P){return new e(e.buildMessage(v,w),v,w,P)}function O(){var v,w,P=y*56+0,X=ge[P];return X?(y=X.nextPos,X.result):(v=y,w=Xt(),w!==s&&(He=v,w=Xn(w)),v=w,ge[P]={nextPos:y,result:v},v)}function T(){var v,w,P,X,oe,ve,ft,hr=y*56+1,Js=ge[hr];if(Js)return y=Js.nextPos,Js.result;for(v=y,w=y,i.charCodeAt(y)===45?(P=u,y++):(P=s,Oe===0&&f(an)),P===s&&(P=null),X=[],Be.test(i.charAt(y))?(oe=i.charAt(y),y++):(oe=s,Oe===0&&f(Ze));oe!==s;)X.push(oe),Be.test(i.charAt(y))?(oe=i.charAt(y),y++):(oe=s,Oe===0&&f(Ze));if(i.charCodeAt(y)===46?(oe=p,y++):(oe=s,Oe===0&&f(ke)),oe!==s){if(ve=[],Be.test(i.charAt(y))?(ft=i.charAt(y),y++):(ft=s,Oe===0&&f(Ze)),ft!==s)for(;ft!==s;)ve.push(ft),Be.test(i.charAt(y))?(ft=i.charAt(y),y++):(ft=s,Oe===0&&f(Ze));else ve=s;ve!==s?(P=[P,X,oe,ve],w=P):(y=w,w=s)}else y=w,w=s;if(w===s)if(w=y,i.charCodeAt(y)===46?(P=p,y++):(P=s,Oe===0&&f(ke)),P!==s){if(X=[],Be.test(i.charAt(y))?(oe=i.charAt(y),y++):(oe=s,Oe===0&&f(Ze)),oe!==s)for(;oe!==s;)X.push(oe),Be.test(i.charAt(y))?(oe=i.charAt(y),y++):(oe=s,Oe===0&&f(Ze));else X=s;X!==s?(P=[P,X],w=P):(y=w,w=s)}else y=w,w=s;return w!==s&&(He=v,w=ka()),v=w,ge[hr]={nextPos:y,result:v},v}function C(){var v,w,P=y*56+2,X=ge[P];return X?(y=X.nextPos,X.result):(v=y,i.charCodeAt(y)===45?y++:Oe===0&&f(an),Be.test(i.charAt(y))?(w=i.charAt(y),y++):(w=s,Oe===0&&f(Ze)),w!==s?(He=v,v=aa()):(y=v,v=s),ge[P]={nextPos:y,result:v},v)}function x(){var v,w,P,X=y*56+3,oe=ge[X];if(oe)return y=oe.nextPos,oe.result;if(v=y,i.charCodeAt(y)===45?y++:Oe===0&&f(an),w=[],Be.test(i.charAt(y))?(P=i.charAt(y),y++):(P=s,Oe===0&&f(Ze)),P!==s)for(;P!==s;)w.push(P),Be.test(i.charAt(y))?(P=i.charAt(y),y++):(P=s,Oe===0&&f(Ze));else w=s;return w!==s?(He=v,v=Ls()):(y=v,v=s),ge[X]={nextPos:y,result:v},v}function F(){var v,w,P=y*56+4,X=ge[P];return X?(y=X.nextPos,X.result):(Oe++,v=y,tt.test(i.charAt(y))?(w=i.charAt(y),y++):(w=s,Oe===0&&f(Kt)),w!==s&&(He=v,w=Zn()),v=w,Oe--,v===s&&(w=s,Oe===0&&f(tn)),ge[P]={nextPos:y,result:v},v)}function U(){var v,w,P=y*56+8,X=ge[P];return X?(y=X.nextPos,X.result):(v=y,w=W(),w!==s&&(He=v,w=Ms(w)),v=w,ge[P]={nextPos:y,result:v},v)}function W(){var v,w,P,X,oe,ve=y*56+10,ft=ge[ve];if(ft)return y=ft.nextPos,ft.result;if(v=y,rt.test(i.charAt(y))?(w=i.charAt(y),y++):(w=s,Oe===0&&f(fe)),w!==s){if(P=[],ht.test(i.charAt(y))?(X=i.charAt(y),y++):(X=s,Oe===0&&f(Ie)),X!==s)for(;X!==s;)P.push(X),ht.test(i.charAt(y))?(X=i.charAt(y),y++):(X=s,Oe===0&&f(Ie));else P=s;if(P!==s){for(X=[],vt.test(i.charAt(y))?(oe=i.charAt(y),y++):(oe=s,Oe===0&&f(we));oe!==s;)X.push(oe),vt.test(i.charAt(y))?(oe=i.charAt(y),y++):(oe=s,Oe===0&&f(we));He=v,v=La()}else y=v,v=s}else y=v,v=s;return ge[ve]={nextPos:y,result:v},v}function z(){var v,w=y*56+11,P=ge[w];return P?(y=P.nextPos,P.result):(v=pe(),v===s&&(v=he()),ge[w]={nextPos:y,result:v},v)}function pe(){var v,w,P,X,oe=y*56+12,ve=ge[oe];if(ve)return y=ve.nextPos,ve.result;if(v=y,i.charCodeAt(y)===60?(w=E,y++):(w=s,Oe===0&&f(Je)),w!==s){if(P=[],X=z(),X!==s)for(;X!==s;)P.push(X),X=z();else P=s;P!==s?(i.charCodeAt(y)===62?(X=I,y++):(X=s,Oe===0&&f(ye)),X!==s?(He=v,v=Ma(P)):(y=v,v=s)):(y=v,v=s)}else y=v,v=s;return ge[oe]={nextPos:y,result:v},v}function he(){var v,w=y*56+13,P=ge[w];return P?(y=P.nextPos,P.result):(v=W(),v===s&&(v=pe(),v===s&&(v=F())),ge[w]={nextPos:y,result:v},v)}function se(){var v,w,P,X=y*56+14,oe=ge[X];return oe?(y=oe.nextPos,oe.result):(v=y,i.charCodeAt(y)===64?(w=R,y++):(w=s,Oe===0&&f(Ht)),w!==s?(P=z(),P!==s?(He=v,v=Ps(P)):(y=v,v=s)):(y=v,v=s),ge[X]={nextPos:y,result:v},v)}function ae(){var v,w=y*56+15,P=ge[w];return P?(y=P.nextPos,P.result):(v=on(),v===s&&(v=it(),v===s&&(v=qt(),v===s&&(v=gu(),v===s&&(v=Qt())))),ge[w]={nextPos:y,result:v},v)}function Ce(){var v,w,P,X=y*56+16,oe=ge[X];return oe?(y=oe.nextPos,oe.result):(v=y,w=ae(),w===s&&(w=js()),w!==s?(P=se(),P!==s?(He=v,v=Pa(w,P)):(y=v,v=s)):(y=v,v=s),ge[X]={nextPos:y,result:v},v)}function Se(){var v,w,P,X=y*56+17,oe=ge[X];return oe?(y=oe.nextPos,oe.result):(v=y,w=Ce(),w===s&&(w=ae(),w===s&&(w=js())),w!==s?(P=Ve(),P!==s?(He=v,v=Bs(w,P)):(y=v,v=s)):(y=v,v=s),ge[X]={nextPos:y,result:v},v)}function Ve(){var v,w,P,X=y*56+18,oe=ge[X];return oe?(y=oe.nextPos,oe.result):(v=y,i.charCodeAt(y)===58?(w=D,y++):(w=s,Oe===0&&f(lt)),w!==s?(P=wt(),P!==s?(He=v,v=Ba(P)):(y=v,v=s)):(y=v,v=s),ge[X]={nextPos:y,result:v},v)}function je(){var v,w,P=y*56+19,X=ge[P];return X?(y=X.nextPos,X.result):(v=y,mt.test(i.charAt(y))?(w=i.charAt(y),y++):(w=s,Oe===0&&f(yt)),w!==s&&(He=v,w=Yn()),v=w,ge[P]={nextPos:y,result:v},v)}function Fe(){var v,w=y*56+20,P=ge[w];return P?(y=P.nextPos,P.result):(v=It(),v===s&&(v=T(),v===s&&(v=je())),ge[w]={nextPos:y,result:v},v)}function It(){var v,w,P,X,oe=y*56+21,ve=ge[oe];return ve?(y=ve.nextPos,ve.result):(v=y,w=x(),w!==s?(i.charCodeAt(y)===47?(P=Y,y++):(P=s,Oe===0&&f(Hn)),P!==s?(X=x(),X!==s?(He=v,v=Us(w,X)):(y=v,v=s)):(y=v,v=s)):(y=v,v=s),ge[oe]={nextPos:y,result:v},v)}function Xt(){var v,w,P,X=y*56+22,oe=ge[X];if(oe)return y=oe.nextPos,oe.result;if(v=y,w=[],P=M_(),P===s&&(P=Se(),P===s&&(P=Ce(),P===s&&(P=on(),P===s&&(P=qt(),P===s&&(P=it(),P===s&&(P=Qt(),P===s&&(P=js(),P===s&&(P=gu())))))))),P!==s)for(;P!==s;)w.push(P),P=M_(),P===s&&(P=Se(),P===s&&(P=Ce(),P===s&&(P=on(),P===s&&(P=qt(),P===s&&(P=it(),P===s&&(P=Qt(),P===s&&(P=js(),P===s&&(P=gu()))))))));else w=s;return w!==s&&(He=v,w=Fs(w)),v=w,ge[X]={nextPos:y,result:v},v}function wt(){var v,w=y*56+23,P=ge[w];return P?(y=P.nextPos,P.result):(v=F(),v===s&&(v=x(),v===s&&(v=L_(),v===s&&(v=Su(),v===s&&(v=nn(),v===s&&(v=x_()))))),ge[w]={nextPos:y,result:v},v)}function nn(){var v,w,P,X,oe=y*56+24,ve=ge[oe];if(ve)return y=ve.nextPos,ve.result;if(v=y,i.charCodeAt(y)===60?(w=E,y++):(w=s,Oe===0&&f(Je)),w!==s){if(P=[],X=wt(),X!==s)for(;X!==s;)P.push(X),X=wt();else P=s;P!==s?(i.charCodeAt(y)===62?(X=I,y++):(X=s,Oe===0&&f(ye)),X!==s?(He=v,v=Ua(P)):(y=v,v=s)):(y=v,v=s)}else y=v,v=s;return ge[oe]={nextPos:y,result:v},v}function it(){var v,w,P,X,oe,ve=y*56+25,ft=ge[ve];return ft?(y=ft.nextPos,ft.result):(v=y,i.charCodeAt(y)===40?(w=Z,y++):(w=s,Oe===0&&f(dt)),w!==s?(i.charCodeAt(y)===58?y++:Oe===0&&f(lt),P=Xt(),P!==s?(X=pt(),X===s&&(X=null),i.charCodeAt(y)===41?(oe=h,y++):(oe=s,Oe===0&&f(jt)),oe!==s?(He=v,v=Fa(P,X)):(y=v,v=s)):(y=v,v=s)):(y=v,v=s),ge[ve]={nextPos:y,result:v},v)}function pt(){var v,w,P,X=y*56+26,oe=ge[X];return oe?(y=oe.nextPos,oe.result):(v=y,i.charCodeAt(y)===58?(w=D,y++):(w=s,Oe===0&&f(lt)),w!==s?(P=x(),P!==s?(He=v,v=Ys(P)):(y=v,v=s)):(y=v,v=s),ge[X]={nextPos:y,result:v},v)}function on(){var v,w,P,X,oe=y*56+27,ve=ge[oe];return ve?(y=ve.nextPos,ve.result):(v=y,w=it(),w!==s?(P=k_(),P!==s?(X=it(),X!==s?(He=v,v=Ya(w,P,X)):(y=v,v=s)):(y=v,v=s)):(y=v,v=s),ge[oe]={nextPos:y,result:v},v)}function Qt(){var v,w,P,X,oe,ve=y*56+28,ft=ge[ve];return ft?(y=ft.nextPos,ft.result):(v=y,i.substr(y,2)===b?(w=b,y+=2):(w=s,Oe===0&&f(Tt)),w!==s?(P=Xt(),P!==s?(X=pt(),X===s&&(X=null),i.charCodeAt(y)===93?(oe=S,y++):(oe=s,Oe===0&&f(Ue)),oe!==s?(He=v,v=$s(P,X)):(y=v,v=s)):(y=v,v=s)):(y=v,v=s),ge[ve]={nextPos:y,result:v},v)}function qt(){var v,w,P,X,oe=y*56+29,ve=ge[oe];return ve?(y=ve.nextPos,ve.result):(v=y,i.charCodeAt(y)===91?(w=N,y++):(w=s,Oe===0&&f(Fn)),w!==s?(P=Xt(),P!==s?(i.charCodeAt(y)===93?(X=S,y++):(X=s,Oe===0&&f(Ue)),X!==s?(He=v,v=$a(P)):(y=v,v=s)):(y=v,v=s)):(y=v,v=s),ge[oe]={nextPos:y,result:v},v)}function fr(){var v,w=y*56+30,P=ge[w];return P?(y=P.nextPos,P.result):(v=x(),v===s&&(v=C()),ge[w]={nextPos:y,result:v},v)}function Zs(){var v,w,P,X=y*56+31,oe=ge[X];if(oe)return y=oe.nextPos,oe.result;if(v=y,w=[],P=Sl(),P===s&&(P=fr()),P!==s)for(;P!==s;)w.push(P),P=Sl(),P===s&&(P=fr());else w=s;return w!==s&&(He=v,w=Gs(w)),v=w,ge[X]={nextPos:y,result:v},v}function Sl(){var v,w,P,X,oe=y*56+32,ve=ge[oe];return ve?(y=ve.nextPos,ve.result):(v=y,i.charCodeAt(y)===40?y++:Oe===0&&f(dt),w=fr(),w!==s?(P=k_(),P!==s?(X=Zs(),X!==s?(i.charCodeAt(y)===41?y++:Oe===0&&f(jt),He=v,v=Qs()):(y=v,v=s)):(y=v,v=s)):(y=v,v=s),ge[oe]={nextPos:y,result:v},v)}function Ks(){var v,w,P,X,oe=y*56+33,ve=ge[oe];if(ve)return y=ve.nextPos,ve.result;if(v=y,i.charCodeAt(y)===123?(w=k,y++):(w=s,Oe===0&&f(Qr)),w!==s){if(P=[],X=Zs(),X===s&&(X=F()),X!==s)for(;X!==s;)P.push(X),X=Zs(),X===s&&(X=F());else P=s;P!==s?(i.charCodeAt(y)===125?(X=L,y++):(X=s,Oe===0&&f(ct)),X!==s?(He=v,v=dr(P)):(y=v,v=s)):(y=v,v=s)}else y=v,v=s;return ge[oe]={nextPos:y,result:v},v}function x_(){var v,w,P,X,oe=y*56+34,ve=ge[oe];return ve?(y=ve.nextPos,ve.result):(v=y,i.charCodeAt(y)===123?(w=k,y++):(w=s,Oe===0&&f(Qr)),w!==s?(P=x(),P===s&&(P=Su()),P!==s?(i.charCodeAt(y)===125?(X=L,y++):(X=s,Oe===0&&f(ct)),X!==s?(He=v,v=Ot(P)):(y=v,v=s)):(y=v,v=s)):(y=v,v=s),ge[oe]={nextPos:y,result:v},v)}function k_(){var v,w=y*56+35,P=ge[w];return P?(y=P.nextPos,P.result):(i.charCodeAt(y)===43?(v=M,y++):(v=s,Oe===0&&f(Wn)),v===s&&(i.charCodeAt(y)===45?(v=u,y++):(v=s,Oe===0&&f(an)),v===s&&(i.charCodeAt(y)===42?(v=G,y++):(v=s,Oe===0&&f(Nn)),v===s&&(i.charCodeAt(y)===47?(v=Y,y++):(v=s,Oe===0&&f(Hn)),v===s&&(i.charCodeAt(y)===37?(v=te,y++):(v=s,Oe===0&&f(Ai)),v===s&&(i.charCodeAt(y)===94?(v=re,y++):(v=s,Oe===0&&f(wn)),v===s&&(i.charCodeAt(y)===124?(v=_,y++):(v=s,Oe===0&&f(H)),v===s&&(i.charCodeAt(y)===38?(v=ne,y++):(v=s,Oe===0&&f(Wt)),v===s&&(i.substr(y,2)===ee?(v=ee,y+=2):(v=s,Oe===0&&f(Ar)),v===s&&(i.substr(y,2)===B?(v=B,y+=2):(v=s,Oe===0&&f(ra))))))))))),ge[w]={nextPos:y,result:v},v)}function js(){var v,w,P=y*56+36,X=ge[P];return X?(y=X.nextPos,X.result):(v=y,w=UR(),w===s&&(w=GR(),w===s&&(w=$R(),w===s&&(w=QR(),w===s&&(w=U(),w===s&&(w=YR(),w===s&&(w=Ol(),w===s&&(w=MR(),w===s&&(w=F(),w===s&&(w=PR(),w===s&&(w=it(),w===s&&(w=Ks(),w===s&&(w=LR())))))))))))),w!==s&&(He=v,w=qs(w)),v=w,ge[P]={nextPos:y,result:v},v)}function LR(){var v,w,P=y*56+37,X=ge[P];return X?(y=X.nextPos,X.result):(v=y,i.charCodeAt(y)===124?(w=_,y++):(w=s,Oe===0&&f(H)),w!==s&&(He=v,w=Ii()),v=w,ge[P]={nextPos:y,result:v},v)}function gu(){var v,w,P,X,oe=y*56+38,ve=ge[oe];return ve?(y=ve.nextPos,ve.result):(v=y,i.charCodeAt(y)===60?(w=E,y++):(w=s,Oe===0&&f(Je)),w!==s?(P=Xt(),P!==s?(i.charCodeAt(y)===62?(X=I,y++):(X=s,Oe===0&&f(ye)),X!==s?(He=v,v=Vs(P)):(y=v,v=s)):(y=v,v=s)):(y=v,v=s),ge[oe]={nextPos:y,result:v},v)}function MR(){var v,w,P=y*56+39,X=ge[P];return X?(y=X.nextPos,X.result):(v=y,w=_u(),w!==s&&(He=v,w=pi(w)),v=w,ge[P]={nextPos:y,result:v},v)}function _u(){var v,w,P,X=y*56+40,oe=ge[X];if(oe)return y=oe.nextPos,oe.result;if(v=y,w=[],i.charCodeAt(y)===94?(P=re,y++):(P=s,Oe===0&&f(wn)),P===s&&(i.charCodeAt(y)===95?(P=Q,y++):(P=s,Oe===0&&f(li))),P!==s)for(;P!==s;)w.push(P),i.charCodeAt(y)===94?(P=re,y++):(P=s,Oe===0&&f(wn)),P===s&&(i.charCodeAt(y)===95?(P=Q,y++):(P=s,Oe===0&&f(li)));else w=s;return w!==s&&(He=v,w=zs()),v=w,ge[X]={nextPos:y,result:v},v}function L_(){var v,w,P=y*56+41,X=ge[P];return X?(y=X.nextPos,X.result):(v=y,i.charCodeAt(y)===63?(w=j,y++):(w=s,Oe===0&&f(ia)),w!==s&&(He=v,w=Ri()),v=w,ge[P]={nextPos:y,result:v},v)}function Su(){var v,w,P,X,oe,ve,ft=y*56+42,hr=ge[ft];return hr?(y=hr.nextPos,hr.result):(v=y,i.charCodeAt(y)===40?(w=Z,y++):(w=s,Oe===0&&f(dt)),w!==s?(P=x(),P!==s?(i.charCodeAt(y)===44?(X=m,y++):(X=s,Oe===0&&f(sn)),X!==s?(oe=x(),oe!==s?(i.charCodeAt(y)===41?(ve=h,y++):(ve=s,Oe===0&&f(jt)),ve!==s?(He=v,v=Ga(P,oe)):(y=v,v=s)):(y=v,v=s)):(y=v,v=s)):(y=v,v=s)):(y=v,v=s),ge[ft]={nextPos:y,result:v},v)}function M_(){var v,w,P,X,oe=y*56+43,ve=ge[oe];return ve?(y=ve.nextPos,ve.result):(v=y,w=Se(),w===s&&(w=Ce(),w===s&&(w=ae(),w===s&&(w=js()))),w!==s?(i.charCodeAt(y)===33?(P=K,y++):(P=s,Oe===0&&f(ur)),P!==s?(X=x(),X!==s?(He=v,v=Qa(w,X)):(y=v,v=s)):(y=v,v=s)):(y=v,v=s),ge[oe]={nextPos:y,result:v},v)}function PR(){var v,w,P=y*56+44,X=ge[P];return X?(y=X.nextPos,X.result):(v=y,w=Fe(),w!==s&&(He=v,w=Hs(w)),v=w,ge[P]={nextPos:y,result:v},v)}function BR(){var v,w,P,X=y*56+45,oe=ge[X];return oe?(y=oe.nextPos,oe.result):(v=y,w=Fe(),w!==s?(i.charCodeAt(y)===94?(P=re,y++):(P=s,Oe===0&&f(wn)),P!==s?(He=v,v=Ni(w)):(y=v,v=s)):(y=v,v=s),ge[X]={nextPos:y,result:v},v)}function UR(){var v,w,P,X,oe,ve=y*56+46,ft=ge[ve];return ft?(y=ft.nextPos,ft.result):(v=y,w=BR(),w===s&&(w=null),i.charCodeAt(y)===114?(P=ue,y++):(P=s,Oe===0&&f(ci)),P!==s?(X=y,Oe++,At.test(i.charAt(y))?(oe=i.charAt(y),y++):(oe=s,Oe===0&&f(Ir)),Oe--,oe===s?X=void 0:(y=X,X=s),X!==s?(He=v,v=qa(w)):(y=v,v=s)):(y=v,v=s),ge[ve]={nextPos:y,result:v},v)}function Ol(){var v,w,P,X,oe,ve=y*56+47,ft=ge[ve];return ft?(y=ft.nextPos,ft.result):(v=y,w=_u(),w===s&&(w=null),P=Fe(),P===s&&(P=null),X=FR(),X===s&&(X=null),oe=C(),oe===s&&(oe=L_(),oe===s&&(oe=Su(),oe===s&&(oe=x_()))),oe!==s?(He=v,v=wi(w,P,X,oe)):(y=v,v=s),ge[ve]={nextPos:y,result:v},v)}function FR(){var v,w,P,X=y*56+48,oe=ge[X];if(oe)return y=oe.nextPos,oe.result;if(v=y,w=[],i.charCodeAt(y)===35?(P=le,y++):(P=s,Oe===0&&f(Jt)),P===s&&(i.charCodeAt(y)===98?(P=be,y++):(P=s,Oe===0&&f(ui))),P!==s)for(;P!==s;)w.push(P),i.charCodeAt(y)===35?(P=le,y++):(P=s,Oe===0&&f(Jt)),P===s&&(i.charCodeAt(y)===98?(P=be,y++):(P=s,Oe===0&&f(ui)));else w=s;return w!==s&&(He=v,w=Di(w)),v=w,ge[X]={nextPos:y,result:v},v}function YR(){var v,w,P,X,oe=y*56+49,ve=ge[oe];if(ve)return y=ve.nextPos,ve.result;if(v=y,w=Ol(),w!==s){if(P=[],X=Ol(),X!==s)for(;X!==s;)P.push(X),X=Ol();else P=s;P!==s?(X=Ou(),X===s&&(X=null),He=v,v=Va(w,P,X)):(y=v,v=s)}else y=v,v=s;return ge[oe]={nextPos:y,result:v},v}function P_(){var v,w,P,X=y*56+50,oe=ge[X];if(oe)return y=oe.nextPos,oe.result;if(v=y,w=[],Nt.test(i.charAt(y))?(P=i.charAt(y),y++):(P=s,Oe===0&&f(di)),P!==s)for(;P!==s;)w.push(P),Nt.test(i.charAt(y))?(P=i.charAt(y),y++):(P=s,Oe===0&&f(di));else w=s;return w!==s&&(He=v,w=sa()),v=w,ge[X]={nextPos:y,result:v},v}function Ou(){var v,w,P,X=y*56+51,oe=ge[X];return oe?(y=oe.nextPos,oe.result):(v=y,i.charCodeAt(y)===37?(w=te,y++):(w=s,Oe===0&&f(Ai)),w!==s?(P=x(),P!==s?(He=v,v=fi(P)):(y=v,v=s)):(y=v,v=s),ge[X]={nextPos:y,result:v},v)}function B_(){var v,w,P=y*56+52,X=ge[P];return X?(y=X.nextPos,X.result):(v=y,Rn.test(i.charAt(y))?(w=i.charAt(y),y++):(w=s,Oe===0&&f(q)),w!==s?(qe.test(i.charAt(y))?(i.charAt(y),y++):Oe===0&&f(ie),He=v,v=_n()):(y=v,v=s),ge[P]={nextPos:y,result:v},v)}function $R(){var v,w,P,X,oe,ve,ft=y*56+53,hr=ge[ft];return hr?(y=hr.nextPos,hr.result):(v=y,w=_u(),w===s&&(w=null),P=Fe(),P===s&&(P=null),X=B_(),X!==s?(i.charCodeAt(y)===94?y++:Oe===0&&f(wn),oe=P_(),oe!==s?(ve=Ou(),ve===s&&(ve=null),He=v,v=za(w,P,X,oe,ve)):(y=v,v=s)):(y=v,v=s),ge[ft]={nextPos:y,result:v},v)}function GR(){var v,w,P,X,oe=y*56+54,ve=ge[oe];return ve?(y=ve.nextPos,ve.result):(v=y,i.substr(y,3)===De?(w=De,y+=3):(w=s,Oe===0&&f(de)),w===s&&(i.substr(y,2)===xe?(w=xe,y+=2):(w=s,Oe===0&&f(_e)),w===s&&(i.substr(y,2)===Ee?(w=Ee,y+=2):(w=s,Oe===0&&f(Ae)),w===s&&(i.charCodeAt(y)===105?(w=Ne,y++):(w=s,Oe===0&&f(Qe)),w===s&&(i.substr(y,3)===ce?(w=ce,y+=3):(w=s,Oe===0&&f(Pe)),w===s&&(i.substr(y,2)===Le?(w=Le,y+=2):(w=s,Oe===0&&f(Ct)),w===s&&(i.charCodeAt(y)===118?(w=Xe,y++):(w=s,Oe===0&&f(Dn)))))))),w!==s?(i.charCodeAt(y)===94?y++:Oe===0&&f(wn),P=P_(),P===s&&(P=null),X=Ou(),X===s&&(X=null),He=v,v=Kn(w,P,X)):(y=v,v=s),ge[oe]={nextPos:y,result:v},v)}function QR(){var v,w,P=y*56+55,X=ge[P];return X?(y=X.nextPos,X.result):(v=y,w=B_(),w!==s&&(He=v,w=oa(w)),v=w,ge[P]={nextPos:y,result:v},v)}var U_=a.nodeOptions||{};function Ut(v,w,P=void 0){w.text=P||$n(),w.location=ml();for(var X in U_)(w[X]===void 0||w[X]===null)&&(w[X]=U_[X]);return new v(w)}if(la=c(),la!==s&&y===i.length)return la;throw la!==s&&y1&&(c=c.slice(1));const u=c.map(p=>isNaN(parseInt(p))?p:parseInt(p));return o(...u).toString()}return o.toString()}}return a[0]}const i=new RegExp(t.join("|"),"g");return r.replace(i,a=>n(a))}function b5(r,e,t){let n=r;for(let i=0;ie.collect("pitch"))}notes(){return this.evaluated.map(e=>e.collect("note"))}sounds(){return this.evaluated.map(e=>e.collect("sound"))}indices(){return this.evaluated.map(e=>e.collect("soundIndex"))}freqs(){return this.evaluated.map(e=>e.collect("freq"))}durations(){return this.evaluated.map(e=>e.collect("duration"))}octaves(){return this.evaluated.map(e=>e.collect("octave"))}retrograde(){return this.evaluated=this.evaluated.reverse(),this}scale(e){return this.applyOptions({scale:e}),this}key(e){return this.applyOptions({key:e}),this}octave(e){return this.applyOptions({octave:e}),this}invert(e){return this.applyOptions({inversion:e}),this}isInOptions(e,t){return this.options.nodeOptions&&this.options.nodeOptions[e]===t}atLast(){return this.index+1>=this.evaluated.length*this.redo}clone(){return ri(this)}notStarted(){return this.index<0}peek(){return this.evaluated[this.index-1||0]}hasStarted(){return this.index>=0}reset(){this.index=-1,this.counter=0}next(){this.index<0&&(this.index=0);const e=this.evaluated[this.index%this.evaluated.length];return this.index++,this.counter++,this.redo>0&&this.index>=this.evaluated.length*this.redo&&(this.index=0,this.evaluated=this.evaluate(this.values)),e}applyOptions(e={}){this.evaluated=this.evaluate(this.evaluated,e),this.applyTransformations()}applyTransformations(){var e;(e=this.globalOptions)!=null&&e.retrograde&&(this.evaluated=this.evaluated.reverse())}update(){return this.evaluated=this.evaluate(this.values),this.applyTransformations(),this}evaluate(e,t={}){let n=e.map(i=>i.evaluate(t)).flat(1/0).filter(i=>i!==void 0);return t.subdivisions&&(n=yR(n)),n}totalDuration(){return this.evaluated.reduce((t,n)=>t+n.collect("duration"),0)}lead(){let e=this.evaluated.findIndex(t=>t instanceof $r);if(e>=0){for(let t=e+1;t<=this.evaluated.length;t++)if(this.evaluated[t]instanceof $r){const n=this.evaluated[e],i=this.evaluated[t],a=_5(n.notes(),i.notes()),s=ri(i);s.voiceLeadFromNotes(a,this.options.nodeOptions),this.evaluated[t]=s,e=t}}return this}toString(){return this.evaluated.map(e=>e.toString()).join(" ")}rules(e,t=1){const n=b5(this.input,e,t);return new N_(n,this.options.nodeOptions,this.globalOptions)}tonnetzChords(e,t=[3,4,5]){return this.evaluated&&(this.evaluated=this.evaluated.map(n=>n instanceof zn?n.tonnetzChord(e,t):n)),this}tonnetzTransformation(e,t=[3,4,5]){return this.evaluated&&(this.evaluated=this.evaluated.map(n=>n instanceof $r?n.triadTransformation(e,t):n)),this}}const yR=(r,e=void 0)=>r.map(n=>{if(n instanceof SR){const i=n.evaluated.length,a=(e||n.duration)/i;return yR(n.evaluated,a)}else return n.duration=e||n.duration,n}).flat(1/0),E5=r=>{let e={};return VG.forEach(t=>{if(r[t]!==void 0){const n=r[t];e[t]=n,delete r[t]}}),e};class v5{constructor(e,t){A(this,"api");A(this,"settings");A(this,"midiAccess",null);A(this,"midiOutputs",[]);A(this,"currentOutputIndex",0);A(this,"scheduledNotes",{});A(this,"midiInputs",[]);A(this,"currentInputIndex");A(this,"bufferLength",512);A(this,"noteInputBuffer",[]);A(this,"ccInputBuffer",[]);A(this,"activeNotes",[]);A(this,"stickyNotes",[]);A(this,"lastNote");A(this,"lastCC",{});A(this,"lastNoteInChannel",{});A(this,"lastCCInChannel",{});A(this,"midiClockInputIndex");A(this,"midiClockInput");A(this,"lastTimestamp",0);A(this,"midiClockDelta",0);A(this,"lastBPM");A(this,"roundedBPM",0);A(this,"clockBuffer",[]);A(this,"clockBufferLength",24);A(this,"clockTicks",0);A(this,"clockErrorCount",0);A(this,"skipOnError",0);this.api=e,this.settings=t,this.lastBPM=e.bpm(),this.roundedBPM=this.lastBPM,this.initializeMidiAccess()}async initializeMidiAccess(){try{this.midiAccess=await navigator.requestMIDIAccess(),this.midiOutputs=Array.from(this.midiAccess.outputs.values()),this.midiOutputs.length===0&&(console.warn("No MIDI outputs available."),this.currentOutputIndex=-1),this.midiInputs=Array.from(this.midiAccess.inputs.values()),this.midiInputs.length===0?console.warn("No MIDI inputs available."):this.updateInputSelects()}catch(e){console.error("Failed to initialize MIDI:",e)}}getCurrentMidiPort(){return this.midiOutputs.length>0&&this.currentOutputIndex>=0&&this.currentOutputIndex0&&this.currentOutputIndex>=0&&this.currentOutputIndex0){const e=document.getElementById("midi-clock-input"),t=document.getElementById("default-midi-input");e.innerHTML="",t.innerHTML="";const n=document.createElement("option");n.value="-1",n.text="Internal",e.appendChild(n);const i=document.createElement("option");if(i.value="-1",i.text="None",t.appendChild(i),this.midiInputs.forEach((a,s)=>{const o=document.createElement("option");o.value=s.toString(),o.text=a.name||s.toString(),e.appendChild(o),t.appendChild(o.cloneNode(!0))}),this.settings.midi_clock_input){const a=this.getMidiInputIndex(this.settings.midi_clock_input);e.value=a.toString(),a>0&&(this.midiClockInput=this.midiInputs[a],this.registerMidiInputListener(a))}else e.value="-1";if(this.settings.default_midi_input){const a=this.getMidiInputIndex(this.settings.default_midi_input);t.value=a.toString(),a>0&&(this.currentInputIndex=a,this.registerMidiInputListener(a))}else t.value="-1";e.addEventListener("change",a=>{const s=a.target.value;if(s==="-1")this.midiClockInput&&this.midiClockInputIndex!=this.currentInputIndex&&(this.midiClockInput.onmidimessage=null),this.midiClockInput=void 0,this.settings.midi_clock_input=void 0;else{const o=parseInt(s);this.midiClockInputIndex=o,this.midiClockInput&&this.midiClockInputIndex!=this.currentInputIndex&&(this.midiClockInput.onmidimessage=null),this.midiClockInput=this.midiInputs[o],this.registerMidiInputListener(o),this.settings.midi_clock_input=this.midiClockInput.name||void 0}}),t.addEventListener("change",a=>{const s=a.target.value;s==="-1"?(this.currentInputIndex&&this.currentInputIndex!=this.midiClockInputIndex&&this.unregisterMidiInputListener(this.currentInputIndex),this.currentInputIndex=void 0,this.settings.default_midi_input=void 0):(this.currentInputIndex&&this.currentInputIndex!=this.midiClockInputIndex&&this.unregisterMidiInputListener(this.currentInputIndex),this.currentInputIndex=parseInt(s),this.registerMidiInputListener(this.currentInputIndex),this.settings.default_midi_input=this.midiInputs[this.currentInputIndex].name||void 0)})}}registerMidiInputListener(e){if(e!==void 0){const t=this.midiInputs[e];t&&!t.onmidimessage&&(t.onmidimessage=n=>{const i=n;if(t.name===this.settings.midi_clock_input&&(i.data[0]===248?this.skipOnError>0?this.skipOnError-=1:this.onMidiClock(n.timeStamp):i.data[0]===250?(console.log("MIDI start received"),this.api.stop(),this.api.play()):i.data[0]===252?(console.log("MIDI stop received"),this.api.pause()):i.data[0]===251?(console.log("MIDI continue received"),this.api.play()):i.data[0]===254&&console.log("MIDI active sensing received")),t.name===this.settings.default_midi_input){if(i.data[0]>=144&&i.data[0]<=159){const a=i.data[0]-144+1,s=i.data[1],o=i.data[2];this.lastNote={note:s,velocity:o,channel:a,timestamp:n.timeStamp},this.lastNoteInChannel[a]={note:s,velocity:o,channel:a,timestamp:n.timeStamp},this.settings.midi_channels_scripts&&this.api.script(a),this.pushToMidiInputBuffer({note:s,velocity:o,channel:a,timestamp:n.timeStamp}),this.activeNotes.push({note:s,velocity:o,channel:a,timestamp:n.timeStamp}),this.removeFromStickyNotes(s,a)||this.stickyNotes.push({note:s,velocity:o,channel:a,timestamp:n.timeStamp})}if(i.data[0]>=128&&i.data[0]<=143){const a=i.data[0]-128+1,s=i.data[1];this.removeFromActiveNotes(s,a)}if(i.data[0]>=176&&i.data[0]<=191){const a=i.data[0]-176+1,s=i.data[1],o=i.data[2];this.lastCC[s]=o,this.lastCCInChannel[a]?this.lastCCInChannel[a][s]=o:(this.lastCCInChannel[a]={},this.lastCCInChannel[a][s]=o),this.pushToMidiCCBuffer({control:s,value:o,channel:a,timestamp:n.timeStamp})}}})}}removeFromActiveNotes(e,t){const n=this.activeNotes.findIndex(i=>i.note===e&&i.channel===t);n>=0&&this.activeNotes.splice(n,1)}removeFromStickyNotes(e,t){const n=this.stickyNotes.findIndex(i=>i.note===e&&i.channel===t);return n>=0?(this.stickyNotes.splice(n,1),!0):!1}stickyNotesFromChannel(e){return this.stickyNotes.filter(t=>t.channel===e)}activeNotesFromChannel(e){return this.activeNotes.filter(t=>t.channel===e)}killActiveNotes(){this.activeNotes=[]}killActiveNotesFromChannel(e){this.activeNotes=this.activeNotes.filter(t=>t.channel!==e)}pushToMidiInputBuffer(e){this.noteInputBuffer.push(e),this.noteInputBuffer.length>this.bufferLength&&this.noteInputBuffer.shift()}pushToMidiCCBuffer(e){this.ccInputBuffer.push(e),this.ccInputBuffer.length>this.bufferLength&&this.ccInputBuffer.shift()}findNoteFromBufferInChannel(e){const t=this.noteInputBuffer.findIndex(n=>n.channel===e);if(t>=0){const n=this.noteInputBuffer[t];return this.noteInputBuffer.splice(t,1),n}else return}findCCFromBufferInChannel(e){const t=this.ccInputBuffer.findIndex(n=>n.channel===e);if(t>=0){const n=this.ccInputBuffer[t];return this.ccInputBuffer.splice(t,1),n}else return}unregisterMidiInputListener(e){if(e!==void 0){const t=this.midiInputs[e];t&&(t.onmidimessage=null)}}onMidiClock(e){if(this.clockTicks+=1,this.lastTimestamp>0)if(this.lastTimestamp===e)this.clockErrorCount+=1;else if(this.clockErrorCount>0)console.log("Timestamp error count: ",this.clockErrorCount),console.log("Current timestamp: ",e),console.log("Last timestamp: ",this.lastTimestamp),console.log("Last delta: ",this.midiClockDelta),console.log("Current delta: ",e-this.lastTimestamp),console.log("BPMs",this.clockBuffer),this.clockErrorCount=0,this.skipOnError=this.settings.midi_clock_ppqn/4,e=0;else{this.midiClockDelta=e-this.lastTimestamp,this.lastBPM=60*(1e3/this.midiClockDelta/this.settings.midi_clock_ppqn),this.clockBuffer.push(this.lastBPM),this.clockBuffer.length>this.clockBufferLength&&this.clockBuffer.shift();const t=this.estimatedBPM();t!==this.roundedBPM&&(console.log("Estimated BPM: ",t),this.api.bpm(t),this.roundedBPM=t)}this.lastTimestamp=e}estimatedBPM(){const e=this.clockBuffer.reduce((t,n)=>t+n);return Math.round(e/this.clockBuffer.length)}sendMidiClock(){if(!this.midiClockInput){const e=this.midiOutputs[this.currentOutputIndex];e&&e.send([248])}}switchMidiOutput(e){const t=this.getMidiOutputIndex(e);return t!==-1?(this.currentOutputIndex=t,!0):!1}getMidiOutputIndex(e){if(typeof e=="number")return e<0||e>=this.midiOutputs.length?(console.error(`Invalid MIDI output index. Index must be in the range 0-${this.midiOutputs.length-1}.`),this.currentOutputIndex):e;{const t=this.midiOutputs.findIndex(n=>n.name===e);return t!==-1?t:(console.error(`MIDI output "${e}" not found.`),this.currentOutputIndex)}}getMidiInputIndex(e){if(typeof e=="number")return e<0||e>=this.midiInputs.length?(console.error(`Invalid MIDI input index. Index must be in the range 0-${this.midiInputs.length-1}.`),-1):e;{const t=this.midiInputs.findIndex(n=>n.name===e);return t!==-1?t:(console.error(`MIDI input "${e}" not found.`),-1)}}listMidiOutputs(){let e="Available MIDI Outputs: ";return this.midiOutputs.forEach((t,n)=>{e+=`(${n+1}) ${t.name} `}),e}sendMidiNote(e,t,n,i,a=this.currentOutputIndex,s=void 0){typeof a=="string"&&(a=this.getMidiOutputIndex(a));const o=this.midiOutputs[a];if(e=Math.min(Math.max(e,0),127),o){const l=[144+t,e,n],c=[128+t,e,0];o.send(l),s&&this.sendPitchBend(s,t,a);const u=setTimeout(()=>{o.send(c),s&&this.sendPitchBend(8192,t,a),delete this.scheduledNotes[e]},(i-.02)*1e3);this.scheduledNotes[e]=u}else console.error("MIDI output not available.")}sendMidiOn(e,t,n,i=this.currentOutputIndex){typeof i=="string"&&(i=this.getMidiOutputIndex(i));const a=this.midiOutputs[i];if(e=Math.min(Math.max(e,0),127),a){const s=[144+t,e,n];a.send(s)}else console.error("MIDI output not available.")}sendMidiOff(e,t,n=this.currentOutputIndex){typeof n=="string"&&(n=this.getMidiOutputIndex(n));const i=this.midiOutputs[n];if(e=Math.min(Math.max(e,0),127),i){const a=[128+t,e,0];i.send(a)}else console.error("MIDI output not available.")}sendAllNotesOff(e,t=this.currentOutputIndex){typeof t=="string"&&(t=this.getMidiOutputIndex(t));const n=this.midiOutputs[t];if(n){const i=[176+e,123,0];n.send(i)}else console.error("MIDI output not available.")}sendAllSoundOff(e,t=this.currentOutputIndex){typeof t=="string"&&(t=this.getMidiOutputIndex(t));const n=this.midiOutputs[t];if(n){const i=[176+e,120,0];n.send(i)}else console.error("MIDI output not available.")}sendSysExMessage(e){const t=this.midiOutputs[this.currentOutputIndex];t?t.send(e):console.error("MIDI output not available.")}sendPitchBend(e,t,n=this.currentOutputIndex){(e<0||e>16383)&&console.error("Invalid pitch bend value. Value must be in the range 0-16383."),(t<0||t>15)&&console.error("Invalid MIDI channel. Channel must be in the range 0-15."),typeof n=="string"&&(n=this.getMidiOutputIndex(n));const i=this.midiOutputs[n];if(i){const a=e&127,s=e>>7&127;i.send([224|t,a,s])}else console.error("MIDI output not available.")}sendProgramChange(e,t){const n=this.midiOutputs[this.currentOutputIndex];n?n.send([192+t,e]):console.error("MIDI output not available.")}sendMidiControlChange(e,t,n){const i=this.midiOutputs[this.currentOutputIndex];i?i.send([176+n,e,t]):console.error("MIDI output not available.")}panic(){const e=this.midiOutputs[this.currentOutputIndex];if(e){for(const t in this.scheduledNotes){const n=this.scheduledNotes[t];clearTimeout(n),e.send([128,parseInt(t),0])}this.scheduledNotes={}}else console.error("MIDI output not available.")}}class T5{constructor(e,t,n){A(this,"min");A(this,"max");A(this,"wrap");A(this,"position");this.min=e,this.max=t,this.wrap=n,this.position=0}step(){const e=Math.floor(Math.random()*3)-1;this.position+=e,this.wrap?this.position>this.max?this.position=this.min:this.positionthis.max&&(this.position=this.max)}getPosition(){return this.position}toggleWrap(e){this.wrap=e}}let w_=class{constructor(e){A(this,"seedValue");A(this,"randomGen",Math.random);A(this,"app");A(this,"values",{});A(this,"evenbar",e=>this.app.clock.time_position.bar%2===0?this.modify(e):this);A(this,"even",e=>this.app.clock.time_position.beat%2===0?this.modify(e):this);A(this,"odd",e=>this.app.clock.time_position.beat%2!==0?this.modify(e):this);A(this,"odds",(e,t)=>this.randomGen()this);A(this,"almostNever",e=>this.odds(.025,e));A(this,"rarely",e=>this.odds(.1,e));A(this,"scarcely",e=>this.odds(.25,e));A(this,"sometimes",e=>this.odds(.5,e));A(this,"often",e=>this.odds(.75,e));A(this,"frequently",e=>this.odds(.9,e));A(this,"almostAlways",e=>this.odds(.985,e));A(this,"always",e=>this.modify(e));A(this,"modify",e=>e(this));A(this,"seed",e=>(this.seedValue=e.toString(),this.randomGen=this.app.api.localSeededRandom(this.seedValue),this));A(this,"clear",()=>(this.app.api.clearLocalSeed(this.seedValue),this));A(this,"apply",e=>this.modify(e));A(this,"noteLength",(e,...t)=>(t.length>0&&(e=Array.isArray(e)?e.concat(t):[e,...t]),Array.isArray(e)?(this.values.noteLength=e,this.values.dur=e.map(n=>this.app.clock.convertPulseToSecond(n*4*this.app.clock.ppqn))):(this.values.noteLength=e,this.values.dur=this.app.clock.convertPulseToSecond(e*4*this.app.clock.ppqn)),this));this.app=e,this.app.api.currentSeed&&(this.randomGen=this.app.api.randomGen)}};class AR extends w_{constructor(t){super(t);A(this,"pitch",(t,...n)=>(n.length>0&&(t=Array.isArray(t)?t.concat(n):[t,...n]),this.values.pitch=t,this.values.key&&this.values.parsedScale&&this.update(),this));A(this,"pc",this.pitch);A(this,"octave",(t,...n)=>(n.length>0&&(t=Array.isArray(t)?t.concat(n):[t,...n]),this.values.octave=t,this.values.key&&(this.values.pitch||this.values.pitch===0)&&this.values.parsedScale&&this.update(),this));A(this,"key",(t,...n)=>(n.length>0&&(t=Array.isArray(t)?t.concat(n):[t,...n]),this.values.key=t,(this.values.pitch||this.values.pitch===0)&&this.values.parsedScale&&this.update(),this));A(this,"scale",(t,...n)=>(n.length>0&&(t=Array.isArray(t)?t.concat(n):[t,...n]),typeof t=="string"||typeof t=="number"?this.values.parsedScale=ta(t):Array.isArray(t)&&(this.values.parsedScale=t.map(i=>ta(i))),this.values.key&&(this.values.pitch||this.values.pitch===0)&&this.update(),this));A(this,"freq",(t,...n)=>{if(n.length>0&&(t=Array.isArray(t)?t.concat(n):[t,...n]),this.values.freq=t,Array.isArray(t)){this.values.note=[],this.values.bend=[];for(const i of t){const a=TT(i);a%1!==0?(this.values.note.push(Math.floor(a)),this.values.bend.push(sg(a)[1])):this.values.note.push(a)}this.values.bend.length===0&&delete this.values.bend}else{const i=TT(t);i%1!==0?(this.values.note=Math.floor(i),this.values.bend=sg(i)[1]):this.values.note=i}return this});A(this,"update",()=>{})}}function Hc(r,e){e.forEach(a=>{Array.isArray(r[a])&&!Array.isArray(r[a][0])&&(r[a]=[r[a]])});const t=Object.keys(r),n=Math.max(...t.map(a=>Array.isArray(r[a])?r[a].length:1)),i=[];for(let a=0;a(Object.keys(e).forEach(i=>{n[i]=e[i]}),Object.keys(n).forEach(i=>{t[i]||(t[i]=[]),t[i].push(n[i])}),t),{})}function IR(r,e){return Object.fromEntries(Object.entries(r).filter(([t])=>e.includes(t)))}class lg extends AR{constructor(t,n){super(n);A(this,"nudge");A(this,"sound");A(this,"methodMap",{volume:["volume","vol"],zrand:["zrand","zr"],curve:["curve"],slide:["slide","sld"],deltaSlide:["deltaSlide","dslide"],pitchJump:["pitchJump","pj"],pitchJumpTime:["pitchJumpTime","pjt"],lfo:["lfo"],znoise:["znoise"],noise:["noise"],zmod:["zmod"],zcrush:["zcrush"],zdelay:["zdelay"],sustainVolume:["sustainVolume"],tremolo:["tremolo"],dur:["dur"],zzfx:["zzfx"],fmi:["fmi"],fmh:["fmh"],fmenv:["fmenv"],fmattack:["fmattack","fmatk"],fmdecay:["fmdecay","fmdec"],fmsustain:["fmsustain","fmsus"],fmrelease:["fmrelease","fmrel"],fmvelocity:["fmvelocity","fmvel"],fmwave:["fmwave","fmw"],fmadsr:(t,n,i,a)=>(this.updateValue("fmattack",t),this.updateValue("fmdecay",n),this.updateValue("fmsustain",i),this.updateValue("fmrelease",a),this),fmad:(t,n)=>(this.updateValue("fmattack",t),this.updateValue("fmdecay",n),this),ftype:["ftype"],fanchor:["fanchor"],attack:["attack","atk"],decay:["decay","dec"],sustain:["sustain","sus"],release:["release","rel"],adsr:(t,n,i,a)=>(this.updateValue("attack",t),this.updateValue("decay",n),this.updateValue("sustain",i),this.updateValue("release",a),this),ad:(t,n)=>(this.updateValue("attack",t),this.updateValue("decay",n),this.updateValue("sustain",0),this.updateValue("release",0),this),lpenv:["lpenv","lpe"],lpattack:["lpattack","lpa"],lpdecay:["lpdecay","lpd"],lpsustain:["lpsustain","lps"],lprelease:["lprelease","lpr"],cutoff:(t,n)=>(this.updateValue("cutoff",t),n&&this.updateValue("resonance",n),this),lpf:(t,n)=>(this.updateValue("cutoff",t),n&&this.updateValue("resonance",n),this),resonance:t=>(t>=0&&t<=1&&this.updateValue("resonance",50*t),this),lpadsr:(t,n,i,a,s)=>(this.updateValue("lpenv",t),this.updateValue("lpattack",n),this.updateValue("lpdecay",i),this.updateValue("lpsustain",a),this.updateValue("lprelease",s),this),lpad:(t,n,i)=>(this.updateValue("lpenv",t),this.updateValue("lpattack",n),this.updateValue("lpdecay",i),this.updateValue("lpsustain",0),this.updateValue("lprelease",0),this),hpenv:["hpenv","hpe"],hpattack:["hpattack","hpa"],hpdecay:["hpdecay","hpd"],hpsustain:["hpsustain","hpsus"],hprelease:["hprelease","hpr"],hcutoff:(t,n)=>(this.updateValue("hcutoff",t),n&&this.updateValue("hresonance",n),this),hpf:(t,n)=>(this.updateValue("hcutoff",t),n&&this.updateValue("hresonance",n),this),hpq:t=>(this.updateValue("hresonance",t),this),hpadsr:(t,n,i,a,s)=>(this.updateValue("hpenv",t),this.updateValue("hpattack",n),this.updateValue("hpdecay",i),this.updateValue("hpsustain",a),this.updateValue("hprelease",s),this),hpad:(t,n,i)=>(this.updateValue("hpenv",t),this.updateValue("hpattack",n),this.updateValue("hpdecay",i),this.updateValue("hpsustain",0),this.updateValue("hprelease",0),this),bpenv:["bpenv","bpe"],bpattack:["bpattack","bpa"],bpdecay:["bpdecay","bpd"],bpsustain:["bpsustain","bps"],bprelease:["bprelease","bpr"],bandf:(t,n)=>(this.updateValue("bandf",t),n&&this.updateValue("bandq",n),this),bpf:(t,n)=>(this.updateValue("bandf",t),n&&this.updateValue("bandq",n),this),bandq:["bandq","bpq"],bpadsr:(t,n,i,a,s)=>(this.updateValue("bpenv",t),this.updateValue("bpattack",n),this.updateValue("bpdecay",i),this.updateValue("bpsustain",a),this.updateValue("bprelease",s),this),bpad:(t,n,i)=>(this.updateValue("bpenv",t),this.updateValue("bpattack",n),this.updateValue("bpdecay",i),this.updateValue("bpsustain",0),this.updateValue("bprelease",0),this),vib:["vib"],vibmod:["vibmod"],fm:t=>{if(typeof t=="number")this.values.fmi=t;else{let n=t.split(":");this.values.fmi=parseFloat(n[0]),n.length>1&&(this.values.fmh=parseFloat(n[1]))}return this},loop:["loop"],loopBegin:["loopBegin","loopb"],loopEnd:["loopEnd","loope"],begin:["begin"],end:["end"],gain:["gain"],dbgain:t=>(this.updateValue("gain",Math.min(Math.pow(10,t/20),10)),this),db:t=>(this.updateValue("gain",Math.min(Math.pow(10,t/20),10)),this),velocity:["velocity","vel"],pan:["pan"],cut:["cut"],clip:["clip"],n:["n"],speed:["speed","spd"],coarse:["coarse"],crush:["crush"],shape:["shape"],vowel:["vowel","vow"],delay:["delay","del"],delayfeedback:["delayfeedback","delayfb"],delaytime:["delaytime","delayt"],orbit:["orbit","o"],room:["room","rm"],roomfade:["roomfade","rfade"],roomlp:["roomlp","rlp"],roomdim:["roomdim","rdim"],sound:["sound","s"],size:t=>(this.updateValue("roomsize",t),this),sz:t=>(this.updateValue("roomsize",t),this),comp:["compressor","cmp"],ratio:t=>(this.updateValue("compressorRatio",t),this),knee:t=>(this.updateValue("compressorKnee",t),this),compAttack:t=>(this.updateValue("compressorAttack",t),this),compRelease:t=>(this.updateValue("compressorRelease",t),this),stretch:t=>(this.updateValue("unit","c"),this.updateValue("speed",1/t),this.updateValue("cut",t),this)});A(this,"processSound",t=>{if(Array.isArray(t)&&typeof t[0]=="string"){const n=[],i=[];return t.forEach(a=>{const s=a.split(":");n.push(s[0]),s[1]&&i.push(parseInt(s[1]))}),{s:n,n:i.length>0?i:void 0,dur:this.app.clock.convertPulseToSecond(this.app.clock.ppqn),analyze:!0}}else{if(typeof t=="object")return{dur:this.app.clock.convertPulseToSecond(this.app.clock.ppqn),analyze:!0,...t};if(t.includes(":")){const n=t.split(":"),i=n[0],a=parseInt(n[1]);return{s:i,n:a,dur:this.app.clock.convertPulseToSecond(this.app.clock.ppqn),analyze:!0}}else return{s:t,dur:.5,analyze:!0}}});A(this,"modify",t=>{const n=t(this);return n instanceof Object?n:(t(this.values),this.update(),this)});A(this,"update",()=>{const t=IR(this.values,["key","pitch","parsedScale","octave"]),n=Hc(t,["parsedScale"]);n.forEach(a=>{const[s,o]=I_(a.key||"C4",a.pitch||0,a.parsedScale||a.scale||"MAJOR",a.octave||0);a.note=s,a.freq=Ns(s)});const i=Wc(n);this.values.note=i.note,this.values.freq=i.freq});A(this,"chord",t=>{const n=ER(t);return this.updateValue("note",n)});A(this,"invert",(t=0)=>{if(this.values.chord){let n=this.values.chord.map(a=>a.note);n=t<0?[...n].reverse():n;for(let a=0;a({note:a,freq:Ns(a)}));return this.updateValue("chord",i)}else return this});A(this,"note",t=>typeof t=="string"?this.updateValue("note",yr(t)):typeof t==null||t==null?this.updateValue("note",0).updateValue("gain",0):this.updateValue("note",t));A(this,"out",()=>{const t=Hc(this.values,["parsedScale"]);for(const n of t)h0(n,this.nudge-this.app.clock.deviation,n.dur)});this.app=n,this.nudge=n.dough_nudge/100;for(const[i,a]of Object.entries(this.methodMap))if(Symbol.iterator in Object(a))for(const s of a)this[s]=o=>this.updateValue(a[0],o);else this[i]=a;this.values=this.processSound(t)}updateValue(t,n){return n==null?this:(this.values[t]=n,this)}}class cg extends AR{constructor(t,n){super(n);A(this,"midiConnection");A(this,"chord",t=>(this.values.note=ER(t),this));A(this,"note",t=>(this.values.note=t,this));A(this,"sustain",t=>(this.values.sustain=t,this));A(this,"velocity",t=>(this.values.velocity=t,this));A(this,"channel",t=>(this.values.channel=t,this));A(this,"port",t=>(typeof t=="string"?this.values.port=this.midiConnection.getMidiOutputIndex(t):Array.isArray(t)&&(this.values.port=t.map(n=>typeof n=="string"?this.midiConnection.getMidiOutputIndex(n):n)),this));A(this,"add",t=>(this.values.note+=t,this));A(this,"modify",t=>{const n=t(this);return n instanceof Object?n:(t(this.values),this.update(),this)});A(this,"bend",t=>(this.values.bend=t,this));A(this,"random",(t=0,n=127)=>(t=Math.min(Math.max(t,0),127),n=Math.min(Math.max(n,0),127),this.values.note=Math.floor(this.randomGen()*(n-t+1))+t,this));A(this,"update",()=>{const t=IR(this.values,["key","pitch","parsedScale","octave"]),n=Hc(t,["parsedScale"]);n.forEach(a=>{const[s,o]=I_(a.key||"C4",a.pitch||0,a.parsedScale||a.scale||"MAJOR",a.octave||0);a.note=s,o&&(a.bend=o)});const i=Wc(n);this.values.note=i.note,i.bend&&(this.values.bend=i.bend)});A(this,"out",()=>{function t(i,a){const s=a.channel?a.channel:0,o=a.velocity?a.velocity:100,l=a.note?a.note:60,c=a.sustain?a.sustain*i.app.clock.pulse_duration*i.app.api.ppqn():i.app.clock.pulse_duration*i.app.api.ppqn(),u=a.bend?a.bend:void 0,p=a.port?i.midiConnection.getMidiOutputIndex(a.port):i.midiConnection.getCurrentMidiPortIndex()||0;i.midiConnection.sendMidiNote(l,s,o,c,p,u)}Hc(this.values,["parsedScale"]).forEach(i=>{t(this,i)})});this.app=n,this.values=t,this.midiConnection=n.api.MidiConnection}}const ho=typeof performance=="object"&&performance&&typeof performance.now=="function"?performance:Date,RR=new Set,ug=typeof process=="object"&&process?process:{},NR=(r,e,t,n)=>{typeof ug.emitWarning=="function"?ug.emitWarning(r,e,t,n):console.error(`[${t}] ${e}: ${r}`)};let Xc=globalThis.AbortController,CT=globalThis.AbortSignal;var IT;if(typeof Xc>"u"){CT=class{constructor(){A(this,"onabort");A(this,"_onabort",[]);A(this,"reason");A(this,"aborted",!1)}addEventListener(n,i){this._onabort.push(i)}},Xc=class{constructor(){A(this,"signal",new CT);e()}abort(n){var i,a;if(!this.signal.aborted){this.signal.reason=n,this.signal.aborted=!0;for(const s of this.signal._onabort)s(n);(a=(i=this.signal).onabort)==null||a.call(i,n)}}};let r=((IT=ug.env)==null?void 0:IT.LRU_CACHE_IGNORE_AC_WARNING)!=="1";const e=()=>{r&&(r=!1,NR("AbortController is not defined. If using lru-cache in node 14, load an AbortController polyfill from the `node-abort-controller` package. A minimal polyfill is provided for use by LRUCache.fetch(), but it should not be relied upon in other contexts (eg, passing it to other APIs that use AbortController/AbortSignal might have undesirable effects). You may disable this with LRU_CACHE_IGNORE_AC_WARNING=1 in the env.","NO_ABORT_CONTROLLER","ENOTSUP",e))}}const C5=r=>!RR.has(r),Pi=r=>r&&r===Math.floor(r)&&r>0&&isFinite(r),wR=r=>Pi(r)?r<=Math.pow(2,8)?Uint8Array:r<=Math.pow(2,16)?Uint16Array:r<=Math.pow(2,32)?Uint32Array:r<=Number.MAX_SAFE_INTEGER?oc:null:null;class oc extends Array{constructor(e){super(e),this.fill(0)}}var us;const ma=class ma{constructor(e,t){A(this,"heap");A(this,"length");if(!V(ma,us))throw new TypeError("instantiate Stack using Stack.create(n)");this.heap=new t(e),this.length=0}static create(e){const t=wR(e);if(!t)return[];We(ma,us,!0);const n=new ma(e,t);return We(ma,us,!1),n}push(e){this.heap[this.length++]=e}pop(){return this.heap[--this.length]}};us=new WeakMap,at(ma,us,!1);let dg=ma;var wr,tr,Dr,xr,ds,ln,kr,cn,Lt,nt,Ln,nr,Cn,mn,Lr,gn,_i,Si,Mr,Pr,qi,Mn,tl,fg,Ea,Oi,nl,rr,Kc,DR,va,ps,rl,Wr,Bi,Xr,Ui,il,hg,fs,lc,hs,cc,Dt,Ft,al,mg,Ta,vo;const D_=class D_{constructor(e){at(this,tl);at(this,Kc);at(this,Wr);at(this,Xr);at(this,il);at(this,fs);at(this,hs);at(this,Dt);at(this,al);at(this,Ta);at(this,wr,void 0);at(this,tr,void 0);at(this,Dr,void 0);at(this,xr,void 0);at(this,ds,void 0);A(this,"ttl");A(this,"ttlResolution");A(this,"ttlAutopurge");A(this,"updateAgeOnGet");A(this,"updateAgeOnHas");A(this,"allowStale");A(this,"noDisposeOnSet");A(this,"noUpdateTTL");A(this,"maxEntrySize");A(this,"sizeCalculation");A(this,"noDeleteOnFetchRejection");A(this,"noDeleteOnStaleGet");A(this,"allowStaleOnFetchAbort");A(this,"allowStaleOnFetchRejection");A(this,"ignoreFetchAbort");at(this,ln,void 0);at(this,kr,void 0);at(this,cn,void 0);at(this,Lt,void 0);at(this,nt,void 0);at(this,Ln,void 0);at(this,nr,void 0);at(this,Cn,void 0);at(this,mn,void 0);at(this,Lr,void 0);at(this,gn,void 0);at(this,_i,void 0);at(this,Si,void 0);at(this,Mr,void 0);at(this,Pr,void 0);at(this,qi,void 0);at(this,Mn,void 0);at(this,Ea,()=>{});at(this,Oi,()=>{});at(this,nl,()=>{});at(this,rr,()=>!1);at(this,va,e=>{});at(this,ps,(e,t,n)=>{});at(this,rl,(e,t,n,i)=>{if(n||i)throw new TypeError("cannot set size without setting maxSize or maxEntrySize on cache");return 0});const{max:t=0,ttl:n,ttlResolution:i=1,ttlAutopurge:a,updateAgeOnGet:s,updateAgeOnHas:o,allowStale:l,dispose:c,disposeAfter:u,noDisposeOnSet:p,noUpdateTTL:m,maxSize:_=0,maxEntrySize:E=0,sizeCalculation:I,fetchMethod:R,noDeleteOnFetchRejection:D,noDeleteOnStaleGet:Y,allowStaleOnFetchRejection:Z,allowStaleOnFetchAbort:h,ignoreFetchAbort:b}=e;if(t!==0&&!Pi(t))throw new TypeError("max option must be a nonnegative integer");const S=t?wR(t):Array;if(!S)throw new Error("invalid max value: "+t);if(We(this,wr,t),We(this,tr,_),this.maxEntrySize=E||V(this,tr),this.sizeCalculation=I,this.sizeCalculation){if(!V(this,tr)&&!this.maxEntrySize)throw new TypeError("cannot set sizeCalculation without setting maxSize or maxEntrySize");if(typeof this.sizeCalculation!="function")throw new TypeError("sizeCalculation set to non-function")}if(R!==void 0&&typeof R!="function")throw new TypeError("fetchMethod must be a function if specified");if(We(this,ds,R),We(this,qi,!!R),We(this,cn,new Map),We(this,Lt,new Array(t).fill(void 0)),We(this,nt,new Array(t).fill(void 0)),We(this,Ln,new S(t)),We(this,nr,new S(t)),We(this,Cn,0),We(this,mn,0),We(this,Lr,dg.create(t)),We(this,ln,0),We(this,kr,0),typeof c=="function"&&We(this,Dr,c),typeof u=="function"?(We(this,xr,u),We(this,gn,[])):(We(this,xr,void 0),We(this,gn,void 0)),We(this,Pr,!!V(this,Dr)),We(this,Mn,!!V(this,xr)),this.noDisposeOnSet=!!p,this.noUpdateTTL=!!m,this.noDeleteOnFetchRejection=!!D,this.allowStaleOnFetchRejection=!!Z,this.allowStaleOnFetchAbort=!!h,this.ignoreFetchAbort=!!b,this.maxEntrySize!==0){if(V(this,tr)!==0&&!Pi(V(this,tr)))throw new TypeError("maxSize must be a positive integer if specified");if(!Pi(this.maxEntrySize))throw new TypeError("maxEntrySize must be a positive integer if specified");ze(this,Kc,DR).call(this)}if(this.allowStale=!!l,this.noDeleteOnStaleGet=!!Y,this.updateAgeOnGet=!!s,this.updateAgeOnHas=!!o,this.ttlResolution=Pi(i)||i===0?i:1,this.ttlAutopurge=!!a,this.ttl=n||0,this.ttl){if(!Pi(this.ttl))throw new TypeError("ttl must be a positive integer if specified");ze(this,tl,fg).call(this)}if(V(this,wr)===0&&this.ttl===0&&V(this,tr)===0)throw new TypeError("At least one of max, maxSize, or ttl is required");if(!this.ttlAutopurge&&!V(this,wr)&&!V(this,tr)){const N="LRU_CACHE_UNBOUNDED";C5(N)&&(RR.add(N),NR("TTL caching without ttlAutopurge, max, or maxSize can result in unbounded memory consumption.","UnboundedCacheWarning",N,D_))}}static unsafeExposeInternals(e){return{starts:V(e,Si),ttls:V(e,Mr),sizes:V(e,_i),keyMap:V(e,cn),keyList:V(e,Lt),valList:V(e,nt),next:V(e,Ln),prev:V(e,nr),get head(){return V(e,Cn)},get tail(){return V(e,mn)},free:V(e,Lr),isBackgroundFetch:t=>{var n;return ze(n=e,Dt,Ft).call(n,t)},backgroundFetch:(t,n,i,a)=>{var s;return ze(s=e,hs,cc).call(s,t,n,i,a)},moveToTail:t=>{var n;return ze(n=e,Ta,vo).call(n,t)},indexes:t=>{var n;return ze(n=e,Wr,Bi).call(n,t)},rindexes:t=>{var n;return ze(n=e,Xr,Ui).call(n,t)},isStale:t=>{var n;return V(n=e,rr).call(n,t)}}}get max(){return V(this,wr)}get maxSize(){return V(this,tr)}get calculatedSize(){return V(this,kr)}get size(){return V(this,ln)}get fetchMethod(){return V(this,ds)}get dispose(){return V(this,Dr)}get disposeAfter(){return V(this,xr)}getRemainingTTL(e){return V(this,cn).has(e)?1/0:0}*entries(){for(const e of ze(this,Wr,Bi).call(this))V(this,nt)[e]!==void 0&&V(this,Lt)[e]!==void 0&&!ze(this,Dt,Ft).call(this,V(this,nt)[e])&&(yield[V(this,Lt)[e],V(this,nt)[e]])}*rentries(){for(const e of ze(this,Xr,Ui).call(this))V(this,nt)[e]!==void 0&&V(this,Lt)[e]!==void 0&&!ze(this,Dt,Ft).call(this,V(this,nt)[e])&&(yield[V(this,Lt)[e],V(this,nt)[e]])}*keys(){for(const e of ze(this,Wr,Bi).call(this)){const t=V(this,Lt)[e];t!==void 0&&!ze(this,Dt,Ft).call(this,V(this,nt)[e])&&(yield t)}}*rkeys(){for(const e of ze(this,Xr,Ui).call(this)){const t=V(this,Lt)[e];t!==void 0&&!ze(this,Dt,Ft).call(this,V(this,nt)[e])&&(yield t)}}*values(){for(const e of ze(this,Wr,Bi).call(this))V(this,nt)[e]!==void 0&&!ze(this,Dt,Ft).call(this,V(this,nt)[e])&&(yield V(this,nt)[e])}*rvalues(){for(const e of ze(this,Xr,Ui).call(this))V(this,nt)[e]!==void 0&&!ze(this,Dt,Ft).call(this,V(this,nt)[e])&&(yield V(this,nt)[e])}[Symbol.iterator](){return this.entries()}find(e,t={}){for(const n of ze(this,Wr,Bi).call(this)){const i=V(this,nt)[n],a=ze(this,Dt,Ft).call(this,i)?i.__staleWhileFetching:i;if(a!==void 0&&e(a,V(this,Lt)[n],this))return this.get(V(this,Lt)[n],t)}}forEach(e,t=this){for(const n of ze(this,Wr,Bi).call(this)){const i=V(this,nt)[n],a=ze(this,Dt,Ft).call(this,i)?i.__staleWhileFetching:i;a!==void 0&&e.call(t,a,V(this,Lt)[n],this)}}rforEach(e,t=this){for(const n of ze(this,Xr,Ui).call(this)){const i=V(this,nt)[n],a=ze(this,Dt,Ft).call(this,i)?i.__staleWhileFetching:i;a!==void 0&&e.call(t,a,V(this,Lt)[n],this)}}purgeStale(){let e=!1;for(const t of ze(this,Xr,Ui).call(this,{allowStale:!0}))V(this,rr).call(this,t)&&(this.delete(V(this,Lt)[t]),e=!0);return e}dump(){const e=[];for(const t of ze(this,Wr,Bi).call(this,{allowStale:!0})){const n=V(this,Lt)[t],i=V(this,nt)[t],a=ze(this,Dt,Ft).call(this,i)?i.__staleWhileFetching:i;if(a===void 0||n===void 0)continue;const s={value:a};if(V(this,Mr)&&V(this,Si)){s.ttl=V(this,Mr)[t];const o=ho.now()-V(this,Si)[t];s.start=Math.floor(Date.now()-o)}V(this,_i)&&(s.size=V(this,_i)[t]),e.unshift([n,s])}return e}load(e){this.clear();for(const[t,n]of e){if(n.start){const i=Date.now()-n.start;n.start=ho.now()-i}this.set(t,n.value,n)}}set(e,t,n={}){var m,_,E,I,R;if(t===void 0)return this.delete(e),this;const{ttl:i=this.ttl,start:a,noDisposeOnSet:s=this.noDisposeOnSet,sizeCalculation:o=this.sizeCalculation,status:l}=n;let{noUpdateTTL:c=this.noUpdateTTL}=n;const u=V(this,rl).call(this,e,t,n.size||0,o);if(this.maxEntrySize&&u>this.maxEntrySize)return l&&(l.set="miss",l.maxEntrySizeExceeded=!0),this.delete(e),this;let p=V(this,ln)===0?void 0:V(this,cn).get(e);if(p===void 0)p=V(this,ln)===0?V(this,mn):V(this,Lr).length!==0?V(this,Lr).pop():V(this,ln)===V(this,wr)?ze(this,fs,lc).call(this,!1):V(this,ln),V(this,Lt)[p]=e,V(this,nt)[p]=t,V(this,cn).set(e,p),V(this,Ln)[V(this,mn)]=p,V(this,nr)[p]=V(this,mn),We(this,mn,p),bl(this,ln)._++,V(this,ps).call(this,p,u,l),l&&(l.set="add"),c=!1;else{ze(this,Ta,vo).call(this,p);const D=V(this,nt)[p];if(t!==D){if(V(this,qi)&&ze(this,Dt,Ft).call(this,D)){D.__abortController.abort(new Error("replaced"));const{__staleWhileFetching:Y}=D;Y!==void 0&&!s&&(V(this,Pr)&&((m=V(this,Dr))==null||m.call(this,Y,e,"set")),V(this,Mn)&&((_=V(this,gn))==null||_.push([Y,e,"set"])))}else s||(V(this,Pr)&&((E=V(this,Dr))==null||E.call(this,D,e,"set")),V(this,Mn)&&((I=V(this,gn))==null||I.push([D,e,"set"])));if(V(this,va).call(this,p),V(this,ps).call(this,p,u,l),V(this,nt)[p]=t,l){l.set="replace";const Y=D&&ze(this,Dt,Ft).call(this,D)?D.__staleWhileFetching:D;Y!==void 0&&(l.oldValue=Y)}}else l&&(l.set="update")}if(i!==0&&!V(this,Mr)&&ze(this,tl,fg).call(this),V(this,Mr)&&(c||V(this,nl).call(this,p,i,a),l&&V(this,Oi).call(this,l,p)),!s&&V(this,Mn)&&V(this,gn)){const D=V(this,gn);let Y;for(;Y=D==null?void 0:D.shift();)(R=V(this,xr))==null||R.call(this,...Y)}return this}pop(){var e;try{for(;V(this,ln);){const t=V(this,nt)[V(this,Cn)];if(ze(this,fs,lc).call(this,!0),ze(this,Dt,Ft).call(this,t)){if(t.__staleWhileFetching)return t.__staleWhileFetching}else if(t!==void 0)return t}}finally{if(V(this,Mn)&&V(this,gn)){const t=V(this,gn);let n;for(;n=t==null?void 0:t.shift();)(e=V(this,xr))==null||e.call(this,...n)}}}has(e,t={}){const{updateAgeOnHas:n=this.updateAgeOnHas,status:i}=t,a=V(this,cn).get(e);if(a!==void 0){const s=V(this,nt)[a];if(ze(this,Dt,Ft).call(this,s)&&s.__staleWhileFetching===void 0)return!1;if(V(this,rr).call(this,a))i&&(i.has="stale",V(this,Oi).call(this,i,a));else return n&&V(this,Ea).call(this,a),i&&(i.has="hit",V(this,Oi).call(this,i,a)),!0}else i&&(i.has="miss");return!1}peek(e,t={}){const{allowStale:n=this.allowStale}=t,i=V(this,cn).get(e);if(i!==void 0&&(n||!V(this,rr).call(this,i))){const a=V(this,nt)[i];return ze(this,Dt,Ft).call(this,a)?a.__staleWhileFetching:a}}async fetch(e,t={}){const{allowStale:n=this.allowStale,updateAgeOnGet:i=this.updateAgeOnGet,noDeleteOnStaleGet:a=this.noDeleteOnStaleGet,ttl:s=this.ttl,noDisposeOnSet:o=this.noDisposeOnSet,size:l=0,sizeCalculation:c=this.sizeCalculation,noUpdateTTL:u=this.noUpdateTTL,noDeleteOnFetchRejection:p=this.noDeleteOnFetchRejection,allowStaleOnFetchRejection:m=this.allowStaleOnFetchRejection,ignoreFetchAbort:_=this.ignoreFetchAbort,allowStaleOnFetchAbort:E=this.allowStaleOnFetchAbort,context:I,forceRefresh:R=!1,status:D,signal:Y}=t;if(!V(this,qi))return D&&(D.fetch="get"),this.get(e,{allowStale:n,updateAgeOnGet:i,noDeleteOnStaleGet:a,status:D});const Z={allowStale:n,updateAgeOnGet:i,noDeleteOnStaleGet:a,ttl:s,noDisposeOnSet:o,size:l,sizeCalculation:c,noUpdateTTL:u,noDeleteOnFetchRejection:p,allowStaleOnFetchRejection:m,allowStaleOnFetchAbort:E,ignoreFetchAbort:_,status:D,signal:Y};let h=V(this,cn).get(e);if(h===void 0){D&&(D.fetch="miss");const b=ze(this,hs,cc).call(this,e,h,Z,I);return b.__returned=b}else{const b=V(this,nt)[h];if(ze(this,Dt,Ft).call(this,b)){const M=n&&b.__staleWhileFetching!==void 0;return D&&(D.fetch="inflight",M&&(D.returnedStale=!0)),M?b.__staleWhileFetching:b.__returned=b}const S=V(this,rr).call(this,h);if(!R&&!S)return D&&(D.fetch="hit"),ze(this,Ta,vo).call(this,h),i&&V(this,Ea).call(this,h),D&&V(this,Oi).call(this,D,h),b;const N=ze(this,hs,cc).call(this,e,h,Z,I),L=N.__staleWhileFetching!==void 0&&n;return D&&(D.fetch=S?"stale":"refresh",L&&S&&(D.returnedStale=!0)),L?N.__staleWhileFetching:N.__returned=N}}get(e,t={}){const{allowStale:n=this.allowStale,updateAgeOnGet:i=this.updateAgeOnGet,noDeleteOnStaleGet:a=this.noDeleteOnStaleGet,status:s}=t,o=V(this,cn).get(e);if(o!==void 0){const l=V(this,nt)[o],c=ze(this,Dt,Ft).call(this,l);return s&&V(this,Oi).call(this,s,o),V(this,rr).call(this,o)?(s&&(s.get="stale"),c?(s&&n&&l.__staleWhileFetching!==void 0&&(s.returnedStale=!0),n?l.__staleWhileFetching:void 0):(a||this.delete(e),s&&n&&(s.returnedStale=!0),n?l:void 0)):(s&&(s.get="hit"),c?l.__staleWhileFetching:(ze(this,Ta,vo).call(this,o),i&&V(this,Ea).call(this,o),l))}else s&&(s.get="miss")}delete(e){var n,i,a,s;let t=!1;if(V(this,ln)!==0){const o=V(this,cn).get(e);if(o!==void 0)if(t=!0,V(this,ln)===1)this.clear();else{V(this,va).call(this,o);const l=V(this,nt)[o];ze(this,Dt,Ft).call(this,l)?l.__abortController.abort(new Error("deleted")):(V(this,Pr)||V(this,Mn))&&(V(this,Pr)&&((n=V(this,Dr))==null||n.call(this,l,e,"delete")),V(this,Mn)&&((i=V(this,gn))==null||i.push([l,e,"delete"]))),V(this,cn).delete(e),V(this,Lt)[o]=void 0,V(this,nt)[o]=void 0,o===V(this,mn)?We(this,mn,V(this,nr)[o]):o===V(this,Cn)?We(this,Cn,V(this,Ln)[o]):(V(this,Ln)[V(this,nr)[o]]=V(this,Ln)[o],V(this,nr)[V(this,Ln)[o]]=V(this,nr)[o]),bl(this,ln)._--,V(this,Lr).push(o)}}if(V(this,Mn)&&((a=V(this,gn))!=null&&a.length)){const o=V(this,gn);let l;for(;l=o==null?void 0:o.shift();)(s=V(this,xr))==null||s.call(this,...l)}return t}clear(){var e,t,n;for(const i of ze(this,Xr,Ui).call(this,{allowStale:!0})){const a=V(this,nt)[i];if(ze(this,Dt,Ft).call(this,a))a.__abortController.abort(new Error("deleted"));else{const s=V(this,Lt)[i];V(this,Pr)&&((e=V(this,Dr))==null||e.call(this,a,s,"delete")),V(this,Mn)&&((t=V(this,gn))==null||t.push([a,s,"delete"]))}}if(V(this,cn).clear(),V(this,nt).fill(void 0),V(this,Lt).fill(void 0),V(this,Mr)&&V(this,Si)&&(V(this,Mr).fill(0),V(this,Si).fill(0)),V(this,_i)&&V(this,_i).fill(0),We(this,Cn,0),We(this,mn,0),V(this,Lr).length=0,We(this,kr,0),We(this,ln,0),V(this,Mn)&&V(this,gn)){const i=V(this,gn);let a;for(;a=i==null?void 0:i.shift();)(n=V(this,xr))==null||n.call(this,...a)}}};wr=new WeakMap,tr=new WeakMap,Dr=new WeakMap,xr=new WeakMap,ds=new WeakMap,ln=new WeakMap,kr=new WeakMap,cn=new WeakMap,Lt=new WeakMap,nt=new WeakMap,Ln=new WeakMap,nr=new WeakMap,Cn=new WeakMap,mn=new WeakMap,Lr=new WeakMap,gn=new WeakMap,_i=new WeakMap,Si=new WeakMap,Mr=new WeakMap,Pr=new WeakMap,qi=new WeakMap,Mn=new WeakMap,tl=new WeakSet,fg=function(){const e=new oc(V(this,wr)),t=new oc(V(this,wr));We(this,Mr,e),We(this,Si,t),We(this,nl,(a,s,o=ho.now())=>{if(t[a]=s!==0?o:0,e[a]=s,s!==0&&this.ttlAutopurge){const l=setTimeout(()=>{V(this,rr).call(this,a)&&this.delete(V(this,Lt)[a])},s+1);l.unref&&l.unref()}}),We(this,Ea,a=>{t[a]=e[a]!==0?ho.now():0}),We(this,Oi,(a,s)=>{if(e[s]){const o=e[s],l=t[s];a.ttl=o,a.start=l,a.now=n||i();const c=a.now-l;a.remainingTTL=o-c}});let n=0;const i=()=>{const a=ho.now();if(this.ttlResolution>0){n=a;const s=setTimeout(()=>n=0,this.ttlResolution);s.unref&&s.unref()}return a};this.getRemainingTTL=a=>{const s=V(this,cn).get(a);if(s===void 0)return 0;const o=e[s],l=t[s];if(o===0||l===0)return 1/0;const c=(n||i())-l;return o-c},We(this,rr,a=>e[a]!==0&&t[a]!==0&&(n||i())-t[a]>e[a])},Ea=new WeakMap,Oi=new WeakMap,nl=new WeakMap,rr=new WeakMap,Kc=new WeakSet,DR=function(){const e=new oc(V(this,wr));We(this,kr,0),We(this,_i,e),We(this,va,t=>{We(this,kr,V(this,kr)-e[t]),e[t]=0}),We(this,rl,(t,n,i,a)=>{if(ze(this,Dt,Ft).call(this,n))return 0;if(!Pi(i))if(a){if(typeof a!="function")throw new TypeError("sizeCalculation must be a function");if(i=a(n,t),!Pi(i))throw new TypeError("sizeCalculation return invalid (expect positive integer)")}else throw new TypeError("invalid size value (must be positive integer). When maxSize or maxEntrySize is used, sizeCalculation or size must be set.");return i}),We(this,ps,(t,n,i)=>{if(e[t]=n,V(this,tr)){const a=V(this,tr)-e[t];for(;V(this,kr)>a;)ze(this,fs,lc).call(this,!0)}We(this,kr,V(this,kr)+e[t]),i&&(i.entrySize=n,i.totalCalculatedSize=V(this,kr))})},va=new WeakMap,ps=new WeakMap,rl=new WeakMap,Wr=new WeakSet,Bi=function*({allowStale:e=this.allowStale}={}){if(V(this,ln))for(let t=V(this,mn);!(!ze(this,il,hg).call(this,t)||((e||!V(this,rr).call(this,t))&&(yield t),t===V(this,Cn)));)t=V(this,nr)[t]},Xr=new WeakSet,Ui=function*({allowStale:e=this.allowStale}={}){if(V(this,ln))for(let t=V(this,Cn);!(!ze(this,il,hg).call(this,t)||((e||!V(this,rr).call(this,t))&&(yield t),t===V(this,mn)));)t=V(this,Ln)[t]},il=new WeakSet,hg=function(e){return e!==void 0&&V(this,cn).get(V(this,Lt)[e])===e},fs=new WeakSet,lc=function(e){var a,s;const t=V(this,Cn),n=V(this,Lt)[t],i=V(this,nt)[t];return V(this,qi)&&ze(this,Dt,Ft).call(this,i)?i.__abortController.abort(new Error("evicted")):(V(this,Pr)||V(this,Mn))&&(V(this,Pr)&&((a=V(this,Dr))==null||a.call(this,i,n,"evict")),V(this,Mn)&&((s=V(this,gn))==null||s.push([i,n,"evict"]))),V(this,va).call(this,t),e&&(V(this,Lt)[t]=void 0,V(this,nt)[t]=void 0,V(this,Lr).push(t)),V(this,ln)===1?(We(this,Cn,We(this,mn,0)),V(this,Lr).length=0):We(this,Cn,V(this,Ln)[t]),V(this,cn).delete(n),bl(this,ln)._--,t},hs=new WeakSet,cc=function(e,t,n,i){const a=t===void 0?void 0:V(this,nt)[t];if(ze(this,Dt,Ft).call(this,a))return a;const s=new Xc,{signal:o}=n;o==null||o.addEventListener("abort",()=>s.abort(o.reason),{signal:s.signal});const l={signal:s.signal,options:n,context:i},c=(I,R=!1)=>{const{aborted:D}=s.signal,Y=n.ignoreFetchAbort&&I!==void 0;if(n.status&&(D&&!R?(n.status.fetchAborted=!0,n.status.fetchError=s.signal.reason,Y&&(n.status.fetchAbortIgnored=!0)):n.status.fetchResolved=!0),D&&!Y&&!R)return p(s.signal.reason);const Z=_;return V(this,nt)[t]===_&&(I===void 0?Z.__staleWhileFetching?V(this,nt)[t]=Z.__staleWhileFetching:this.delete(e):(n.status&&(n.status.fetchUpdated=!0),this.set(e,I,l.options))),I},u=I=>(n.status&&(n.status.fetchRejected=!0,n.status.fetchError=I),p(I)),p=I=>{const{aborted:R}=s.signal,D=R&&n.allowStaleOnFetchAbort,Y=D||n.allowStaleOnFetchRejection,Z=Y||n.noDeleteOnFetchRejection,h=_;if(V(this,nt)[t]===_&&(!Z||h.__staleWhileFetching===void 0?this.delete(e):D||(V(this,nt)[t]=h.__staleWhileFetching)),Y)return n.status&&h.__staleWhileFetching!==void 0&&(n.status.returnedStale=!0),h.__staleWhileFetching;if(h.__returned===h)throw I},m=(I,R)=>{var Y;const D=(Y=V(this,ds))==null?void 0:Y.call(this,e,a,l);D&&D instanceof Promise&&D.then(Z=>I(Z===void 0?void 0:Z),R),s.signal.addEventListener("abort",()=>{(!n.ignoreFetchAbort||n.allowStaleOnFetchAbort)&&(I(void 0),n.allowStaleOnFetchAbort&&(I=Z=>c(Z,!0)))})};n.status&&(n.status.fetchDispatched=!0);const _=new Promise(m).then(c,u),E=Object.assign(_,{__abortController:s,__staleWhileFetching:a,__returned:void 0});return t===void 0?(this.set(e,E,{...l.options,status:void 0}),t=V(this,cn).get(e)):V(this,nt)[t]=E,E},Dt=new WeakSet,Ft=function(e){if(!V(this,qi))return!1;const t=e;return!!t&&t instanceof Promise&&t.hasOwnProperty("__staleWhileFetching")&&t.__abortController instanceof Xc},al=new WeakSet,mg=function(e,t){V(this,nr)[t]=e,V(this,Ln)[e]=t},Ta=new WeakSet,vo=function(e){e!==V(this,mn)&&(e===V(this,Cn)?We(this,Cn,V(this,Ln)[e]):ze(this,al,mg).call(this,V(this,nr)[e],V(this,Ln)[e]),ze(this,al,mg).call(this,V(this,mn),e),We(this,mn,e))};let pg=D_;const wo=class wo{constructor(){A(this,"_fallbackMethod",()=>wo.createSkipProxy());A(this,"out",()=>{})}};A(wo,"createSkipProxy",()=>{const e=new wo;return new Proxy(e,{get(t,n,i){return typeof t[n]>"u"?t._fallbackMethod:t[n]},set(t,n,i,a){return!1}})});let el=wo;const Do=class Do extends w_{constructor(t,n){super(n);A(this,"_fallbackMethod",()=>Do.createRestProxy(this.values.noteLength,this.app));A(this,"out",()=>{});this.values.noteLength=t}};A(Do,"createRestProxy",(t,n)=>{const i=new Do(t,n);return new Proxy(i,{get(a,s,o){return typeof a[s]>"u"?a._fallbackMethod:a[s]},set(a,s,o,l){return!1}})});let Zc=Do;class y5 extends w_{constructor(t,n,i,a=""){super(i);A(this,"input");A(this,"ziffers");A(this,"initCallTime",0);A(this,"startCallTime",0);A(this,"lastCallTime",0);A(this,"waitTime",0);A(this,"played",!1);A(this,"current");A(this,"retro",!1);A(this,"index",-1);A(this,"zid","");A(this,"options",{});A(this,"skipIndex",0);A(this,"next",()=>(this.current=this.ziffers.next(),this.played=!0,this.current));A(this,"pulseToSecond",t=>this.app.clock.convertPulseToSecond(t));A(this,"firstRun",()=>this.notStarted());A(this,"atTheBeginning",()=>this.skipIndex===0&&this.ziffers.index<=0);A(this,"origin",()=>this.app.clock.pulses_since_origin+1);A(this,"pulse",()=>this.app.clock.time_position.pulse);A(this,"beat",()=>this.app.clock.time_position.beat);A(this,"nextBeat",()=>this.app.clock.next_beat_in_ticks);A(this,"nextBeatInTicks",()=>this.app.clock.next_beat_in_ticks);A(this,"areWeThereYet",()=>{this.app.clock.pulses_since_origin=this.nextBeatInTicks())&&this.origin()>=this.waitTime,n=this.current&&this.pulseToSecond(this.origin())>=this.pulseToSecond(this.lastCallTime)+this.pulseToSecond(this.current.duration*4*this.app.clock.ppqn)&&this.origin()>=this.waitTime,i=t||n;return this.skipIndex=i?0:this.skipIndex+1,this.index=i?this.index+1:this.index,i&&this.notStarted()&&(this.initCallTime=this.app.clock.pulses_since_origin),this.atTheBeginning()&&(this.startCallTime=this.app.clock.pulses_since_origin),i});A(this,"lead",()=>this.voiceleading());A(this,"invert",t=>(this.atTheBeginning()&&this.ziffers.invert(t),this));A(this,"out",()=>{});this.app=i,this.input=t,this.options=n,this.ziffers=new N_(t,n),this.zid=a}reset(){this.initCallTime=0,this.startCallTime=0,this.lastCallTime=0,this.waitTime=0,this.index=0,this.skipIndex=0,this.played=!1,this.skipIndex=0,this.ziffers.reset()}get ticks(){return this.ziffers.duration*4*this.app.clock.ppqn}nextEndTime(){return this.startCallTime+this.ticks}updateLastCallTime(){(this.notStarted()||this.played)&&(this.lastCallTime=this.app.clock.pulses_since_origin,this.played=!1)}notStarted(){return this.ziffers.notStarted()}sound(t){if(this.areWeThereYet()){const n=this.next(),i=this.app.clock.convertPulseToSecond(n.duration*4*this.app.clock.ppqn);if(n instanceof zn){const a=n.getExisting("freq","note","pitch","key","scale","octave","parsedScale");return n.sound&&(t=n.sound),n.soundIndex&&(a.n=n.soundIndex),a.dur=i,new lg(a,this.app).sound(t||"sine")}else if(n instanceof $r){const a=n.pitches.map(l=>l.getExisting("freq","note","pitch","key","scale","octave","parsedScale")),s={dur:i};t&&(s.s=t);let o=Wc(a,s);return new lg(o,this.app)}else if(n instanceof ag)return Zc.createRestProxy(n.duration,this.app)}else return el.createSkipProxy()}midi(t=void 0){if(this.areWeThereYet()){const n=this.next(),i=n.getExisting("note","pitch","bend","key","scale","octave","parsedScale");if(n instanceof zn){n.soundIndex&&(i.channel=n.soundIndex);const a=new cg(i,this.app);return t?a.note(t):a}else{if(n instanceof ag)return Zc.createRestProxy(n.duration,this.app);if(n instanceof $r){const a=n.midiChord(),s=Wc(a);return new cg(s,this.app)}}}else return el.createSkipProxy()}scale(t){return this.atTheBeginning()&&this.ziffers.scale(t),this}key(t){return this.atTheBeginning()&&this.ziffers.key(t),this}octave(t){return this.atTheBeginning()&&this.ziffers.octave(t),this}voiceleading(){return this.atTheBeginning()&&this.ziffers.lead(),this}retrograde(){return this.atTheBeginning()&&this.ziffers.retrograde(),this}wait(t){if(this.atTheBeginning()){if(typeof t=="function"){const n=this.app.api.patternCache.get(t.name);return n&&(this.waitTime=n.nextEndTime()),this}this.waitTime=this.origin()+Math.ceil(t*4*this.app.clock.ppqn)}return this}sync(t){if(this.atTheBeginning()&&this.notStarted()){const n=this.app.clock.pulses_since_origin,i=typeof t=="function"?t.name:t;if(n>0){const a=this.app.api.patternCache.get(i);if(a){const s=a.ziffers.duration,o=a.startCallTime,l=s*4*this.app.clock.ppqn;this.waitTime=o+l}}}return this}}const A5=r=>r[0]==="{"&&r[r.length-1]==="}",mo=(r,e)=>{if(A5(r)){const t=JSON.parse(r);return JSON.stringify({...t,...e})}else return JSON.stringify({...e,text:r})},I5=r=>{String.prototype.speak=function(){const e=JSON.parse(this.valueOf());new xR({...e,text:e.text}).speak().then(()=>{}).catch(t=>{console.log("Error speaking:",t)})},String.prototype.rate=function(e){return mo(this.valueOf(),{rate:e})},String.prototype.pitch=function(e){return mo(this.valueOf(),{pitch:e})},String.prototype.lang=function(e){return mo(this.valueOf(),{lang:e})},String.prototype.volume=function(e){return mo(this.valueOf(),{volume:e})},String.prototype.voice=function(e){return mo(this.valueOf(),{voice:e})},String.prototype.z=function(e={}){return r.z(this.valueOf(),e)},String.prototype.z0=function(e={}){return r.z0(this.valueOf(),e)},String.prototype.z1=function(e={}){return r.z1(this.valueOf(),e)},String.prototype.z2=function(e={}){return r.z2(this.valueOf(),e)},String.prototype.z3=function(e={}){return r.z3(this.valueOf(),e)},String.prototype.z4=function(e={}){return r.z4(this.valueOf(),e)},String.prototype.z5=function(e={}){return r.z5(this.valueOf(),e)},String.prototype.z6=function(e={}){return r.z6(this.valueOf(),e)},String.prototype.z7=function(e={}){return r.z7(this.valueOf(),e)},String.prototype.z8=function(e={}){return r.z8(this.valueOf(),e)},String.prototype.z9=function(e={}){return r.z9(this.valueOf(),e)},String.prototype.z10=function(e={}){return r.z10(this.valueOf(),e)},String.prototype.z11=function(e={}){return r.z11(this.valueOf(),e)},String.prototype.z12=function(e={}){return r.z12(this.valueOf(),e)},String.prototype.z13=function(e={}){return r.z13(this.valueOf(),e)},String.prototype.z14=function(e={}){return r.z14(this.valueOf(),e)},String.prototype.z15=function(e={}){return r.z15(this.valueOf(),e)},String.prototype.z16=function(e={}){return r.z16(this.valueOf(),e)},String.prototype.note=function(){try{return parseInt(this.valueOf())}catch{return yr(this.valueOf())}}};let Zh;class xR{constructor(e){A(this,"speak",()=>new Promise((e,t)=>{if(this.options.text){const n=window.speechSynthesis;n.speaking&&n.cancel();const i=new SpeechSynthesisUtterance(this.options.text);i.rate=this.options.rate||1,i.pitch=this.options.pitch||1,i.volume=this.options.volume||1,this.options.voice&&(i.voice=n.getVoices()[this.options.voice]),this.options.lang&&(this.options.lang.length===2?i.lang=`${this.options.lang}-${this.options.lang.toUpperCase()}`:this.options.lang.length===5?i.lang=this.options.lang:i.lang="en-US"),i.onend=()=>{e()},i.onerror=a=>{t(a)},n.speaking?(n.cancel(),Zh&&clearTimeout(Zh),Zh=setTimeout(()=>{n.speak(i)},200)):n.speak(i)}else t("No text provided")}));this.options=e}}async function kR(){return Promise.all([d0(),Fi("github:tidalcycles/Dirt-Samples/master").then(()=>R0()),k0(),Fi("github:Bubobubobubobubo/Dough-Fox/main"),Fi("github:Bubobubobubobubo/Dough-Samples/main"),Fi("github:Bubobubobubobubo/Dough-Amiga/main"),Fi("github:Bubobubobubobubo/Dough-Amen/main"),Fi("github:Bubobubobubobubo/Dough-Waveforms/main")])}class R5{constructor(e){A(this,"variables",{});A(this,"codeExamples",{});A(this,"counters",{});A(this,"_drunk",new T5(-100,100,!1));A(this,"randomGen",Math.random);A(this,"currentSeed");A(this,"localSeeds",new Map);A(this,"patternCache",new pg({max:1e3,ttl:1e3*60*5}));A(this,"errorTimeoutID",0);A(this,"printTimeoutID",0);A(this,"MidiConnection");A(this,"scale_aid");A(this,"load");A(this,"_loadUniverseFromInterface",e=>{Mc(this.app,e),Pc()});A(this,"_deleteUniverseFromInterface",e=>{delete this.app.universes[e],this.app.settings.saveApplicationToLocalStorage(this.app.universes,this.app.settings),this.app.updateKnownUniversesView()});A(this,"_playDocExample",e=>{let t=this.app.universes[this.app.selected_universe];this.app.exampleIsPlaying=!0,t.example?t.example.candidate=e||this.app.selectedExample:(t.example={candidate:"",committed:"",evaluations:0},t.example.candidate=e||this.app.selectedExample),this.stop(),this.play()});A(this,"_stopDocExample",()=>{let e=this.app.universes[this.app.selected_universe];(e==null?void 0:e.example)!==void 0&&(this.app.exampleIsPlaying=!1,e.example.candidate="",e.example.committed=""),this.stop()});A(this,"_playDocExampleOnce",e=>{let t=this.app.universes[this.app.selected_universe];(t==null?void 0:t.example)!==void 0&&(t.example.candidate="",t.example.committed=""),this.stop(),this.play(),this.app.exampleIsPlaying=!0,kM(this.app,e)});A(this,"_all_samples",()=>Jc.get());A(this,"_reportError",e=>{const t=s=>{var l;const o=(l=s.stack)==null?void 0:l.split(` `);if(o){for(const c of o)if(c.includes("")){const u=c.match(/:(\d+):(\d+)/);if(u)return{line:parseInt(u[1],10),column:parseInt(u[2],10)}}}return{line:null,column:null}},{line:n,column:i}=t(e),a=n&&i?`${e.message} (Line: ${n-2}, Column: ${i})`:e.message;clearTimeout(this.errorTimeoutID),clearTimeout(this.printTimeoutID),this.app.interface.error_line.innerHTML=a,this.app.interface.error_line.style.color="color-red-800",this.app.interface.error_line.classList.remove("hidden"),this.errorTimeoutID=setTimeout(()=>this.app.interface.error_line.classList.add("hidden"),2e3)});A(this,"_logMessage",e=>{console.log(e),clearTimeout(this.printTimeoutID),clearTimeout(this.errorTimeoutID),this.app.interface.error_line.innerHTML=e,this.app.interface.error_line.style.color="white",this.app.interface.error_line.classList.remove("hidden"),this.printTimeoutID=setTimeout(()=>this.app.interface.error_line.classList.add("hidden"),4e3)});A(this,"time",()=>this.app.audioContext.currentTime);A(this,"play",()=>{this.app.setButtonHighlighting("play",!0),this.MidiConnection.sendStartMessage(),this.app.clock.start()});A(this,"pause",()=>{this.app.setButtonHighlighting("pause",!0),this.app.clock.pause()});A(this,"stop",()=>{this.app.setButtonHighlighting("stop",!0),this.app.clock.stop()});A(this,"silence",this.stop);A(this,"hush",this.stop);A(this,"warp",e=>{this.app.clock.tick=e,this.app.clock.time_position=this.app.clock.convertTicksToTimeposition(e)});A(this,"beat_warp",e=>{this.app.clock.tick=e*this.app.clock.ppqn,this.app.clock.time_position=this.app.clock.convertTicksToTimeposition(e*this.app.clock.ppqn)});A(this,"onmousemove",e=>{this.app._mouseX=e.pageX,this.app._mouseY=e.pageY});A(this,"mouseX",()=>this.app._mouseX);A(this,"mouseY",()=>this.app._mouseY);A(this,"noteX",()=>Math.floor(this.app._mouseX/document.body.clientWidth*127));A(this,"noteY",()=>Math.floor(this.app._mouseY/document.body.clientHeight*127));A(this,"script",(...e)=>{e.forEach(t=>{t>=1&&t<=9&&(M0(this.app,"local",t),wa(this.app,this.app.universes[this.app.selected_universe].locals[t]))})});A(this,"s",this.script);A(this,"delete_script",e=>{this.app.universes[this.app.selected_universe].locals[e]={candidate:"",committed:"",evaluations:0}});A(this,"cs",this.delete_script);A(this,"copy_script",(e,t)=>{this.app.universes[this.app.selected_universe].locals[t]={...this.app.universes[this.app.selected_universe].locals[e]}});A(this,"cps",this.copy_script);A(this,"copy_universe",(e,t)=>{this.app.universes[t]={...this.app.universes[e]}});A(this,"delete_universe",e=>{this.app.selected_universe===e&&(this.app.selected_universe="Default"),delete this.app.universes[e],this.app.settings.saveApplicationToLocalStorage(this.app.universes,this.app.settings),this.app.updateKnownUniversesView()});A(this,"big_bang",()=>{confirm("Are you sure you want to delete all universes?")&&(this.app.universes={...Ko},this.app.settings.saveApplicationToLocalStorage(this.app.universes,this.app.settings)),this.app.selected_universe="Default",this.app.updateKnownUniversesView()});A(this,"midi_outputs",()=>{this._logMessage(this.MidiConnection.listMidiOutputs())});A(this,"midi_output",e=>{e?this.MidiConnection.switchMidiOutput(e):console.log(this.MidiConnection.getCurrentMidiPort())});A(this,"midi",(e=60,t,n,i)=>{const a={note:e,velocity:t,channel:n,port:i};return new cg(a,this.app)});A(this,"sysex",e=>{this.MidiConnection.sendSysExMessage(e)});A(this,"pitch_bend",(e,t)=>{this.MidiConnection.sendPitchBend(e,t)});A(this,"program_change",(e,t)=>{this.MidiConnection.sendProgramChange(e,t)});A(this,"midi_clock",()=>{this.MidiConnection.sendMidiClock()});A(this,"control_change",({control:e=20,value:t=0,channel:n=0})=>{this.MidiConnection.sendMidiControlChange(e,t,n)});A(this,"midi_panic",()=>{this.MidiConnection.panic()});A(this,"active_note_events",e=>{let t;if(e?t=this.MidiConnection.activeNotesFromChannel(e):t=this.MidiConnection.activeNotes,t.length>0)return t});A(this,"active_notes",e=>{const t=this.active_note_events(e);if(t&&t.length>0)return t.map(n=>n.note)});A(this,"kill_active_notes",()=>{this.MidiConnection.activeNotes=[]});A(this,"sticky_notes",e=>{let t;if(e?t=this.MidiConnection.stickyNotesFromChannel(e):t=this.MidiConnection.stickyNotes,t.length>0)return t.map(n=>n.note)});A(this,"kill_sticky_notes",()=>{this.MidiConnection.stickyNotes=[]});A(this,"buffer",e=>e?this.MidiConnection.findNoteFromBufferInChannel(e)!==void 0:this.MidiConnection.noteInputBuffer.length>0);A(this,"buffer_event",e=>e?this.MidiConnection.findNoteFromBufferInChannel(e):this.MidiConnection.noteInputBuffer.shift());A(this,"buffer_note",e=>{const t=this.buffer_event(e);return t?t.note:void 0});A(this,"last_note_event",e=>e?this.MidiConnection.lastNoteInChannel[e]:this.MidiConnection.lastNote);A(this,"last_note",e=>{const t=this.last_note_event(e);return t?t.note:60});A(this,"last_cc",(e,t)=>t?this.MidiConnection.lastCCInChannel[t]?this.MidiConnection.lastCCInChannel[t][e]:0:this.MidiConnection.lastCC[e]||0);A(this,"has_cc",e=>e?this.MidiConnection.findCCFromBufferInChannel(e)!==void 0:this.MidiConnection.ccInputBuffer.length>0);A(this,"buffer_cc",e=>e?this.MidiConnection.findCCFromBufferInChannel(e):this.MidiConnection.ccInputBuffer.shift());A(this,"show_scale",(e,t,n=0,i=this.MidiConnection.currentOutputIndex||0,a=!1)=>{(!this.scale_aid||t!==this.scale_aid)&&(this.hide_scale(e,t,n,i),l5(t,e).forEach(o=>{this.MidiConnection.sendMidiOn(o,n,1,i),a&&this.MidiConnection.sendAllSoundOff(n,i)}),this.scale_aid=t)});A(this,"hide_scale",(e=0,t=0,n=0,i=this.MidiConnection.currentOutputIndex||0)=>{Array.from(Array(128).keys()).forEach(s=>{this.MidiConnection.sendMidiOff(s,n,i)}),this.scale_aid=void 0});A(this,"midi_notes_off",(e=0,t=this.MidiConnection.currentOutputIndex||0)=>{this.MidiConnection.sendAllNotesOff(e,t)});A(this,"midi_sound_off",(e=0,t=this.MidiConnection.currentOutputIndex||0)=>{this.MidiConnection.sendAllSoundOff(e,t)});A(this,"generateCacheKey",(...e)=>e.map(t=>JSON.stringify(t)).join(","));A(this,"resetAllFromCache",()=>{this.patternCache.forEach(e=>e.reset())});A(this,"z",(e,t={},n="")=>{const i="z"+n.toString(),a=n===""?this.generateCacheKey(e,t):i;let s;return this.app.api.patternCache.has(a)&&(s=this.app.api.patternCache.get(a),s.input!==e&&(s=void 0)),s||(s=new y5(e,t,this.app,i),this.app.api.patternCache.set(a,s)),typeof n=="number"&&(s.zid=i),s.updateLastCallTime(),n!==""&&i!=="z0"&&s.sync("z0"),s});A(this,"z0",(e,t={})=>this.z(e,t,0));A(this,"z1",(e,t={})=>this.z(e,t,1));A(this,"z2",(e,t={})=>this.z(e,t,2));A(this,"z3",(e,t={})=>this.z(e,t,3));A(this,"z4",(e,t={})=>this.z(e,t,4));A(this,"z5",(e,t={})=>this.z(e,t,5));A(this,"z6",(e,t={})=>this.z(e,t,6));A(this,"z7",(e,t={})=>this.z(e,t,7));A(this,"z8",(e,t={})=>this.z(e,t,8));A(this,"z9",(e,t={})=>this.z(e,t,9));A(this,"z10",(e,t={})=>this.z(e,t,10));A(this,"z11",(e,t={})=>this.z(e,t,11));A(this,"z12",(e,t={})=>this.z(e,t,12));A(this,"z13",(e,t={})=>this.z(e,t,13));A(this,"z14",(e,t={})=>this.z(e,t,14));A(this,"z15",(e,t={})=>this.z(e,t,15));A(this,"z16",(e,t={})=>this.z(e,t,16));A(this,"counter",(e,t,n)=>(e in this.counters?(this.counters[e].limit!==t&&(this.counters[e].value=0,this.counters[e].limit=t),this.counters[e].step!==n&&(this.counters[e].step=n??this.counters[e].step),this.counters[e].value+=this.counters[e].step,this.counters[e].limit!==void 0&&this.counters[e].value>this.counters[e].limit&&(this.counters[e].value=0)):this.counters[e]={value:0,step:n??1,limit:t},this.counters[e].value));A(this,"$",this.counter);A(this,"i",e=>e!==void 0?(this.app.universes[this.app.selected_universe].global.evaluations=e,this.app.universes[this.app.selected_universe]):this.app.universes[this.app.selected_universe].global.evaluations);A(this,"drunk",e=>e!==void 0?(this._drunk.position=e,this._drunk.getPosition()):(this._drunk.step(),this._drunk.getPosition()));A(this,"drunk_max",e=>{this._drunk.max=e});A(this,"drunk_min",e=>{this._drunk.min=e});A(this,"drunk_wrap",e=>{this._drunk.toggleWrap(e)});A(this,"variable",(e,t)=>typeof e=="string"&&t===void 0?this.variables[e]:(this.variables[e]=t,this.variables[e]));A(this,"v",this.variable);A(this,"delete_variable",e=>{delete this.variables[e]});A(this,"dv",this.delete_variable);A(this,"clear_variables",()=>{this.variables={}});A(this,"cv",this.clear_variables);A(this,"randI",(e,t)=>Math.floor(this.randomGen()*(t-e+1))+e);A(this,"rand",(e,t)=>this.randomGen()*(t-e)+e);A(this,"irand",this.randI);A(this,"rI",this.randI);A(this,"r",this.rand);A(this,"ir",this.randI);A(this,"seed",e=>{typeof e=="number"&&(e=e.toString()),this.currentSeed!==e&&(this.currentSeed=e,this.randomGen=ig(e))});A(this,"localSeededRandom",e=>{if(typeof e=="number"&&(e=e.toString()),this.localSeeds.has(e))return this.localSeeds.get(e);const t=ig(e);return this.localSeeds.set(e,t),t});A(this,"clearLocalSeed",(e=void 0)=>{e&&this.localSeeds.delete(e.toString()),this.localSeeds.clear()});A(this,"quantize",(e,t)=>{if(t.length===0)return e;let n=t[0];return t.forEach(i=>{Math.abs(i-e)Math.min(Math.max(e,t),n));A(this,"cmp",this.clamp);A(this,"prob",e=>this.randomGen()*100this.randomGen()>.5);A(this,"odds",(e,t=1)=>this.randomGen()!1);A(this,"almostNever",(e=1)=>this.randomGen()<.025*this.ppqn()/(this.ppqn()*e));A(this,"rarely",(e=1)=>this.randomGen()<.1*this.ppqn()/(this.ppqn()*e));A(this,"scarcely",(e=1)=>this.randomGen()<.25*this.ppqn()/(this.ppqn()*e));A(this,"sometimes",(e=1)=>this.randomGen()<.5*this.ppqn()/(this.ppqn()*e));A(this,"often",(e=1)=>this.randomGen()<.75*this.ppqn()/(this.ppqn()*e));A(this,"frequently",(e=1)=>this.randomGen()<.9*this.ppqn()/(this.ppqn()*e));A(this,"almostAlways",(e=1)=>this.randomGen()<.985*this.ppqn()/(this.ppqn()*e));A(this,"always",(e=1)=>!0);A(this,"dice",e=>Math.floor(this.randomGen()*e)+1);A(this,"cbar",()=>this.app.clock.time_position.bar+1);A(this,"ctick",()=>this.app.clock.tick+1);A(this,"cpulse",()=>this.app.clock.time_position.pulse+1);A(this,"cbeat",()=>this.app.clock.time_position.beat+1);A(this,"ebeat",()=>this.app.clock.beats_since_origin+1);A(this,"epulse",()=>this.app.clock.pulses_since_origin+1);A(this,"nominator",()=>this.app.clock.time_signature[0]);A(this,"meter",()=>this.app.clock.time_signature[1]);A(this,"denominator",this.meter);A(this,"fill",()=>this.app.fill);A(this,"fullseq",(e,t)=>e.split("").every(n=>n==="x"||n==="o")?[...e].map(n=>n==="x").beat(t):!1);A(this,"seq",(e,t=.5)=>{let n=e.length*t,i=[];for(let a=1;a<=n+1;a+=t)i.push(Math.floor(a*10)/10);return i.pop(),i=i.filter((a,s)=>{const o=s%e.length;return e[o]==="x"}),this.oncount(i,n)});A(this,"beat",(e=1,t=0)=>(Array.isArray(e)?e:[e]).map(a=>(this.app.clock.pulses_since_origin-Math.floor(t*this.ppqn()))%Math.floor(a*this.ppqn())===0).some(a=>a===!0));A(this,"b",this.beat);A(this,"bar",(e=1,t=0)=>{const n=Array.isArray(e)?e:[e],i=this.app.clock.time_signature[1]*this.ppqn(),a=Math.floor(t*i);return n.map(o=>(this.app.clock.pulses_since_origin-a)%Math.floor(o*i)===0).some(o=>o===!0)});A(this,"B",this.bar);A(this,"pulse",(e=1,t=0)=>(Array.isArray(e)?e:[e]).map(a=>(this.app.clock.pulses_since_origin-t)%a===0).some(a=>a===!0));A(this,"p",this.pulse);A(this,"tick",(e,t=0)=>(Array.isArray(e)?e:[e]).map(a=>this.app.clock.time_position.pulse===a+t).some(a=>a===!0));A(this,"flip",(e,t=50)=>{let n=e*2;const i=this.app.clock.pulses_since_origin,a=Math.floor(n*this.ppqn()),s=Math.floor(t/100*a);return i%a{let t=e*2;const n=this.app.clock.time_position.bar;return Math.floor(n/t)%2===0});A(this,"onbar",(e,t=this.app.clock.time_signature[0])=>{let n=this.app.clock.time_position.bar%t+1;return typeof e=="number"?e===n:e.some(i=>i==n)});A(this,"onbeat",(...e)=>{let t=[];return e.forEach(n=>{let i=n%this.nominator()||this.nominator(),a=Math.floor(i);a=a==0?this.nominator():a;let s=Math.floor((i-a)*this.ppqn()+1);s<=0&&(s=s+this.ppqn()*this.nominator()),t.push(a===this.cbeat()&&this.cpulse()===s)}),t.some(n=>n==!0)});A(this,"oncount",(e,t)=>{typeof e=="number"&&(e=[e]);const n=this.app.clock.pulses_since_origin;let i=[];return e.forEach(a=>{a=a<1?0:a-1;const s=Math.ceil(a*this.ppqn()),o=n%(this.ppqn()*t);return i.push(o===s)}),i.some(a=>a==!0)});A(this,"oneuclid",(e,t,n=0)=>{const a=this._euclidean_cycle(e,t,n).reduce((s,o,l)=>(o&&s.push(l+1),s),[]);return this.oncount(a,t)});A(this,"delay",(e,t)=>{setTimeout(t,e)});A(this,"delayr",(e,t,n)=>{[...Array(t).keys()].map(a=>e*a).forEach((a,s)=>{setTimeout(n,a)})});A(this,"euclid",(e,t,n,i=0)=>this._euclidean_cycle(t,n,i)[e%n]);A(this,"ec",this.euclid);A(this,"rhythm",(e,t,n,i=0)=>this.beat(e)&&this._euclidean_cycle(t,n,i).beat(e));A(this,"bin",(e,t)=>{let i=t.toString(2).split("").map(a=>a==="1");return i[e%i.length]});A(this,"binrhythm",(e,t)=>{let i=t.toString(2).split("").map(a=>a==="1");return this.beat(e)&&i.beat(e)});A(this,"line",(e,t,n=1)=>{const i=[];if(t>e&&n>0||t(Math.sin(this.app.clock.ctx.currentTime*Math.PI*2*e)+n)*t);A(this,"usine",(e=1,t=1,n=0)=>(this.sine(e,t,n)+1)/2*t);A(this,"saw",(e=1,t=1,n=0)=>(this.app.clock.ctx.currentTime*e%1*2-1+n)*t);A(this,"usaw",(e=1,t=1,n=0)=>(this.saw(e,t,n)+1)/2*t);A(this,"triangle",(e=1,t=1,n=0)=>(Math.abs(this.saw(e,t,n))*2-1)*t);A(this,"utriangle",(e=1,t=1,n=0)=>(this.triangle(e,t,n)+1)/2*t);A(this,"square",(e=1,t=1,n=0,i=.5)=>{const a=1/e;return((Date.now()/1e3+n)%a/a(this.square(e,t,n,i)+1)/2*t);A(this,"noise",(e=1)=>(this.randomGen()*2-1)*e);A(this,"min",(...e)=>Math.min(...e));A(this,"max",(...e)=>Math.max(...e));A(this,"mean",(...e)=>e.reduce((n,i)=>n+i,0)/e.length);A(this,"range",(e,t,n,i,a)=>(e-t)/(n-t)*(a-i)+i);A(this,"limit",(e,t,n)=>Math.min(Math.max(e,t),n));A(this,"abs",Math.abs);A(this,"speak",(e,t="en-US",n=0,i=1,a=1)=>{new xR({text:e,lang:t,voice:n,rate:i,pitch:a}).speak().then(()=>{}).catch(o=>{console.log(o)})});A(this,"stop_hydra",()=>{this.app.hydra.hush()});A(this,"sound",e=>e?new lg(e,this.app):new el);A(this,"snd",this.sound);A(this,"samples",Fi);A(this,"log",e=>{console.log(e),this._logMessage(e)});A(this,"scale",R_);A(this,"rate",e=>{});A(this,"divseq",(...e)=>{const t=e[0],n=e.slice(1),i=this.app.clock.pulses_since_origin,a=Math.floor(i/Math.floor(t*this.ppqn()));return n[a%n.length]});A(this,"seqbeat",(...e)=>e[this.app.clock.time_position.beat%e.length]);A(this,"seqbar",(...e)=>e[(this.app.clock.time_position.bar+1)%e.length]);A(this,"shuffle",e=>e.sort(()=>this.randomGen()-.5));A(this,"reverse",e=>e.reverse());A(this,"rotate",e=>t=>t.slice(e,t.length).concat(t.slice(0,e)));A(this,"repeat",e=>t=>t.flatMap(n=>Array(e).fill(n)));A(this,"repeatOdd",e=>t=>t.flatMap((n,i)=>i%2===0?Array(e).fill(n):n));A(this,"repeatEven",e=>t=>t.flatMap((n,i)=>i%2!==0?Array(e).fill(n):n));A(this,"palindrome",e=>e.concat(e.slice(0,e.length-1).reverse()));A(this,"scope",e=>{this.app.osc={...this.app.osc,...e}});A(this,"raltfont",(e,t)=>{this.app.view.dispatch({effects:this.app.fontSize.reconfigure(Me.theme({"&":{fontFamily:e},".cm-gutters":{fontFamily:e},".cm-content":{fontFamily:e},".cm-comment":{fontFamily:t}}))})});A(this,"gif",e=>{const{url:t,posX:n=0,posY:i=0,opacity:a=1,size:s="auto",center:o=!1,rotation:l=0,filter:c="none",dur:u=1}=e;let p=u*this.app.clock.pulse_duration*this.app.clock.ppqn,m=p*.1,_=p-m;const E=document.createElement("img");E.src=t,E.style.position="fixed",E.style.left=o?"50%":`${n}px`,E.style.top=o?"50%":`${i}px`,E.style.opacity=`${a}`,E.style.zIndex="-1",s!=="auto"&&(E.style.width=s,E.style.height=s);const I=[`rotate(${l}deg)`];o&&I.unshift("translate(-50%, -50%)"),E.style.transform=I.join(" "),E.style.filter=c,E.style.transition=`opacity ${m}s ease`,document.body.appendChild(E),setTimeout(()=>{E.style.opacity="0"},_*1e3),setTimeout(()=>{document.body.contains(E)&&document.body.removeChild(E)},p*1e3)});A(this,"nudge",e=>(e&&(this.app.clock.nudge=e),this.app.clock.nudge));A(this,"bpm",e=>e===void 0?this.app.clock.bpm:((e<1||e>500)&&console.log(`Setting bpm to ${e}`),this.app.clock.bpm=e,e));A(this,"tempo",this.bpm);A(this,"bpb",e=>e===void 0?this.app.clock.time_signature[0]:(e<1&&console.log(`Setting bpb to ${e}`),this.app.clock.time_signature[0]=e,e));A(this,"ppqn",e=>e===void 0?this.app.clock.ppqn:(e<1&&console.log(`Setting ppqn to ${e}`),this.app.clock.ppqn=e,e));A(this,"time_signature",(e,t)=>{this.app.clock.time_signature=[e,t]});this.app=e,this.MidiConnection=new v5(this,e.settings)}transmission(){return this.MidiConnection.activeNotes.length>0}_euclidean_cycle(e,t,n=0){if(e==t)return Array.from({length:t},()=>!0);function i(o,l){const c=o.length,u=(l+1)%c;return o[l]>o[u]}if(e>=t)return[!0];const a=Array.from({length:t},(o,l)=>(e*(l-1)%t+t)%t);let s=a.map((o,l)=>i(a,l));return n!=0&&(s=s.slice(n).concat(s.slice(0,n))),s}}const N5=r=>{Array.prototype.mouseX=function(){const e=r.mouseX(),n=window.innerWidth/this.length,i=Math.floor(e/n);return this[i]},Array.prototype.mouseY=function(){const e=r.mouseY(),n=window.innerHeight/this.length,i=Math.floor(e/n);return this[i]},Array.prototype.square=function(){return this.map(e=>e*e)},Array.prototype.sometimes=function(e){return r.randomGen()<.5?e(this):this},Array.prototype.apply=function(e){return e(this)},Array.prototype.sqrt=function(){if(this.some(e=>e<0))throw new Error("Cannot take square root of negative number");return this.map(e=>Math.sqrt(e))},Array.prototype.add=function(e){return this.map(t=>t+e)},Array.prototype.sub=function(e){return this.map(t=>t-e)},Array.prototype.mult=function(e){return this.map(t=>t*e)},Array.prototype.div=function(e){if(e===0)throw new Error("Division by zero");return this.map(t=>t/e)},Array.prototype.pick=function(){return this[Math.floor(r.randomGen()*this.length)]},Array.prototype.gen=function(e,t,n){return n<1?[]:Array.from({length:n},()=>Math.floor(r.randomGen()*(t-e+1))+e)},Array.prototype.bar=function(e=1){return e===1?this[r.app.clock.time_position.bar%this.length]:this[Math.floor(r.app.clock.time_position.bar/e)%this.length]},Array.prototype.beat=function(e=1){const t=e,n=r.app.clock.pulses_since_origin,i=Math.floor(n/Math.floor(t*r.ppqn()));return this[i%this.length]},Array.prototype.b=Array.prototype.beat,Array.prototype.dur=function(...e){const t=r.app.clock.pulses_since_origin,n=r.ppqn(),i=this.map((l,c)=>e[c%e.length]),a=i.reduce((l,c)=>l+c*n,0),s=t%a;let o=0;for(let l=0;l0)e=e%t;else return this;const n=this.splice(-e,e);return this.unshift(...n),this},Array.prototype.unique=function(){const e=new Set;let t=0;for(let n=0;n100)throw new Error("Amount should be between 0 and 100");if(this.length<=1)return this;for(let t=0;t1)this.splice(t,1);else return this;else t++;return this},Array.prototype.repeat=function(e=1){if(e<1)throw new Error("Amount should be at least 1");let t=[];for(let n=0;n(i%a+a)%a,n=bR(ta(r));return this.map(i=>{const a=Math.floor(i/n.length)*12;return n[t(i,n.length)]+e+a})};Array.prototype.scaleArp=function(r="major",e=0){const t=bR(ta(r));let n=[];e=e>t.length?t.length:e,e=e==0?t.length:e;for(let i=0;i{const e=WA(),t=Object.keys(e).map(i=>({type:"output",regex:new RegExp(`<${i}([^>]*)>`,"g"),replace:(a,s)=>`<${i} class="${e[i]}" ${s}>`}));r.interface.line_numbers_checkbox.checked=r.settings.line_numbers,r.interface.time_position_checkbox.checked=r.settings.time_position,r.interface.tips_checkbox.checked=r.settings.tips,r.interface.completion_checkbox.checked=r.settings.completions,r.interface.midi_clock_checkbox.checked=r.settings.send_clock,r.interface.midi_channels_scripts.checked=r.settings.midi_channels_scripts,r.interface.midi_clock_ppqn.value=r.settings.midi_clock_ppqn.toString(),r.interface.load_demo_songs.checked=r.settings.load_demo_songs;const n=document.querySelectorAll('[id^="tab-"]');for(let i=0;i{n[i].classList.add("bg-orange-300");for(let l=0;l{mi(),r.updateKnownUniversesView(),Pc()}),r.buttonElements.play_buttons.forEach(i=>{i.addEventListener("click",()=>{r.isPlaying?(r.setButtonHighlighting("pause",!0),r.isPlaying=!r.isPlaying,r.clock.pause(),r.api.MidiConnection.sendStopMessage()):(r.setButtonHighlighting("play",!0),r.isPlaying=!r.isPlaying,r.clock.start(),r.api.MidiConnection.sendStartMessage())})}),r.buttonElements.clear_buttons.forEach(i=>{i.addEventListener("click",()=>{r.setButtonHighlighting("clear",!0),confirm("Do you want to reset the current universe?")&&(r.universes[r.selected_universe]=structuredClone(o_),r.updateEditorView())})}),r.interface.documentation_button.addEventListener("click",()=>{iR(r)}),r.interface.destroy_universes_button.addEventListener("click",()=>{confirm("Do you want to destroy all universes?")&&(r.universes={...Ko},r.updateKnownUniversesView())}),r.interface.audio_nudge_range.addEventListener("input",()=>{r.clock.nudge=parseInt(r.interface.audio_nudge_range.value)}),r.interface.dough_nudge_range.addEventListener("input",()=>{r.dough_nudge=parseInt(r.interface.dough_nudge_range.value)}),r.interface.upload_universe_button.addEventListener("click",()=>{const i=document.createElement("input");i.type="file",i.accept=".json",i.addEventListener("change",a=>{var l;const o=(l=a.target.files)==null?void 0:l[0];if(o){const c=new FileReader;c.readAsText(o,"UTF-8"),c.onload=u=>{const p=JSON.parse(u.target.result);for(const[m,_]of Object.entries(p))r.universes[m]=_},c.onerror=u=>{console.error("An error occurred reading the file:",u)}}}),document.body.appendChild(i),i.click(),document.body.removeChild(i)}),r.interface.download_universe_button.addEventListener("click",()=>{r.settings.saveApplicationToLocalStorage(r.universes,r.settings);let i=`topos-universes-${Date.now()}.json`;const a=new Blob([JSON.stringify(r.settings.universes)],{type:"application/json"}),s=URL.createObjectURL(a),o=document.createElement("a");o.href=s,o.download=i,document.body.appendChild(o),o.click(),document.body.removeChild(o),URL.revokeObjectURL(s)}),r.interface.load_universe_button.addEventListener("click",()=>{let i=r.interface.buffer_search.value;i.length>2&&i.length<20&&!i.includes(" ")&&(Mc(r,i),r.settings.selected_universe=i,r.interface.buffer_search.value="",Km(),r.view.focus(),HA())}),r.interface.eval_button.addEventListener("click",()=>{r.currentFile().candidate=r.view.state.doc.toString(),r.flashBackground("#404040",200)}),r.buttonElements.stop_buttons.forEach(i=>{i.addEventListener("click",()=>{r.setButtonHighlighting("stop",!0),r.isPlaying=!1,r.clock.stop()})}),r.interface.local_button.addEventListener("click",()=>r.changeModeFromInterface("local")),r.interface.global_button.addEventListener("click",()=>r.changeModeFromInterface("global")),r.interface.init_button.addEventListener("click",()=>r.changeModeFromInterface("init")),r.interface.note_button.addEventListener("click",()=>r.changeModeFromInterface("notes")),r.interface.font_family_selector.addEventListener("change",()=>{let i=r.interface.font_family_selector.value;console.log("Picking new font : "+i),r.settings.font=i,r.view.dispatch({effects:r.fontSize.reconfigure(Me.theme({"&":{fontSize:r.settings.font_size+"px"},".cm-content":{fontFamily:i,fontSize:r.settings.font_size+"px"},".cm-gutters":{fontSize:r.settings.font_size+"px"}}))})}),r.interface.font_size_input.addEventListener("input",()=>{let i=r.interface.font_size_input.value;r.settings.font_size=parseInt(i),r.view.dispatch({effects:r.fontSize.reconfigure(Me.theme({"&":{fontSize:r.settings.font_size+"px"},".cm-content":{fontFamily:r.settings.font,fontSize:r.settings.font_size+"px"},".cm-gutters":{fontSize:r.settings.font_size+"px"}}))})}),r.interface.settings_button.addEventListener("click",()=>{const i=document.getElementById("font-family");i&&(i.value=r.settings.font);const a=r.interface.dough_nudge_range;a.value=r.dough_nudge.toString();const s=document.getElementById("doughnumber");s.value=r.dough_nudge.toString(),r.settings.font_size===null&&(r.settings.font_size=12);const o=r.interface.font_size_input;o.value=r.settings.font_size.toString();const l=r.interface.line_numbers_checkbox;l.checked=r.settings.line_numbers;const c=r.interface.time_position_checkbox;c.checked=r.settings.time_position;const u=r.interface.tips_checkbox;u.checked=r.settings.tips;const p=r.interface.midi_clock_checkbox;p.checked=r.settings.send_clock;const m=r.interface.midi_channels_scripts;m.checked=r.settings.midi_channels_scripts;const _=r.interface.midi_clock_ppqn;_.value=r.settings.midi_clock_ppqn.toString();const E=r.interface.load_demo_songs;E.checked=r.settings.load_demo_songs;const I=r.interface.vim_mode_checkbox;I.checked=r.settings.vimMode;let R=document.getElementById("modal-settings"),D=document.getElementById("editor");R==null||R.classList.remove("invisible"),D==null||D.classList.add("invisible")}),r.interface.close_settings_button.addEventListener("click",()=>{let i=document.getElementById("modal-settings"),a=document.getElementById("editor");i==null||i.classList.add("invisible"),a==null||a.classList.remove("invisible");let s=r.interface.font_size_input.value;r.settings.font_size=parseInt(s),r.view.dispatch({effects:r.fontSize.reconfigure(Me.theme({"&":{fontSize:r.settings.font_size+"px"},".cm-content":{fontFamily:r.settings.font,fontSize:r.settings.font_size+"px"},".cm-gutters":{fontSize:r.settings.font_size+"px"}}))})}),r.interface.close_universes_button.addEventListener("click",()=>{Pc()}),r.interface.share_button.addEventListener("click",async()=>{r.currentFile().candidate=r.view.state.doc.toString(),r.currentFile().committed=r.view.state.doc.toString(),r.settings.saveApplicationToLocalStorage(r.universes,r.settings),await PM(r)}),r.interface.vim_mode_checkbox.addEventListener("change",()=>{let i=!!r.interface.vim_mode_checkbox.checked;r.settings.vimMode=i,r.view.dispatch({effects:r.vimModeCompartment.reconfigure(i?O_():[])})}),r.interface.line_numbers_checkbox.addEventListener("change",()=>{let a=!!r.interface.line_numbers_checkbox.checked;r.settings.line_numbers=a,r.view.dispatch({effects:r.withLineNumbers.reconfigure(a?[ly()]:[])})}),r.interface.time_position_checkbox.addEventListener("change",()=>{let i=document.getElementById("timeviewer"),a=!!r.interface.time_position_checkbox.checked;r.settings.time_position=a,a?i.classList.remove("hidden"):i.classList.add("hidden")}),r.interface.tips_checkbox.addEventListener("change",()=>{let i=!!r.interface.tips_checkbox.checked;r.settings.tips=i,r.view.dispatch({effects:r.hoveringCompartment.reconfigure(i?pR:[])})}),r.interface.completion_checkbox.addEventListener("change",()=>{let i=!!r.interface.completion_checkbox.checked;r.settings.completions=i,r.view.dispatch({effects:r.completionsCompartment.reconfigure(i?fR:[])})}),r.interface.midi_clock_checkbox.addEventListener("change",()=>{let i=!!r.interface.midi_clock_checkbox.checked;r.settings.send_clock=i}),r.interface.midi_channels_scripts.addEventListener("change",()=>{let i=!!r.interface.midi_channels_scripts.checked;r.settings.midi_channels_scripts=i}),r.interface.midi_clock_ppqn.addEventListener("change",()=>{let i=parseInt(r.interface.midi_clock_ppqn.value);r.settings.midi_clock_ppqn=i}),r.interface.load_demo_songs.addEventListener("change",()=>{let i=!!r.interface.load_demo_songs.checked;r.settings.load_demo_songs=i}),r.interface.universe_creator.addEventListener("submit",i=>{i.preventDefault();let s=new FormData(r.interface.universe_creator).get("universe");s&&s.length>2&&s.length<20&&(Mc(r,s),r.settings.selected_universe=s,r.interface.buffer_search.value="",Km(),r.view.focus())}),wa(r,r.universes[r.selected_universe.toString()].init),["introduction","interface","interaction","code","time","linear","cyclic","longform","sound","samples","synths","chaining","patterns","ziffers","midi","functions","lfos","probabilities","variables","synchronisation","mouse","shortcuts","about","bonus","oscilloscope"].forEach(i=>{let a="docs_"+i;document.getElementById(a).addEventListener("click",async()=>{a!=="docs_samples"?(r.currentDocumentationPane=i,rg(r,t)):(console.log("Loading samples!"),await kR().then(()=>{r.docs=rR(r),r.currentDocumentationPane=i,rg(r,t)}))})})},yT=r=>{if(!r)return;r.width=window.innerWidth,r.height=window.innerHeight;const e=r.getContext("2d"),t=window.devicePixelRatio||1;r.width=window.innerWidth*t,r.height=window.innerHeight*t,e&&e.scale(t,t)},D5=(r,e,t=!1)=>{e.addEventListener("resize",()=>yT(r.interface.scope)),e.addEventListener("resize",()=>yT(r.interface.feedback)),e.addEventListener("beforeunload",()=>(event.preventDefault(),r.currentFile().candidate=r.view.state.doc.toString(),r.currentFile().committed=r.view.state.doc.toString(),r.settings.saveApplicationToLocalStorage(r.universes,r.settings),r.clock.stop(),null)),t&&(localStorage.openpages=Date.now(),e.addEventListener("storage",function(n){n.key=="openpages"&&(localStorage.page_available=Date.now()),n.key=="page_available"&&(document.getElementById("all").classList.add("invisible"),alert("Topos is already opened in another tab. Close this tab now to prevent data loss."))},!1)),e.addEventListener("error",n=>{console.log("Je suis bien installé !"),console.log(n.message,` `,n.filename,":",n.lineno,n.colno?":"+n.colno:"",n.error&&n.error.stack?` -`:"",n.error?n.error.stack:void 0)},!1)},x5="modulepreload",k5=function(r){return"/"+r},AT={},L5=function(e,t,n){if(!t||t.length===0)return e();const i=document.getElementsByTagName("link");return Promise.all(t.map(a=>{if(a=k5(a),a in AT)return;AT[a]=!0;const s=a.endsWith(".css"),o=s?'[rel="stylesheet"]':"";if(!!n)for(let u=i.length-1;u>=0;u--){const p=i[u];if(p.href===a&&(!s||p.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${a}"]${o}`))return;const c=document.createElement("link");if(c.rel=s?"stylesheet":x5,s||(c.as="script",c.crossOrigin=""),c.href=a,document.head.appendChild(c),s)return new Promise((u,p)=>{c.addEventListener("load",u),c.addEventListener("error",()=>p(new Error(`Unable to preload CSS for ${a}`)))})})).then(()=>e()).catch(a=>{const s=new Event("vite:preloadError",{cancelable:!0});if(s.payload=a,window.dispatchEvent(s),!s.defaultPrevented)throw a})};function M5(r={}){const{immediate:e=!1,onNeedRefresh:t,onOfflineReady:n,onRegistered:i,onRegisteredSW:a,onRegisterError:s}=r;let o,l;const c=async(p=!0)=>{await l};async function u(){if("serviceWorker"in navigator){const{Workbox:p}=await L5(()=>import("./workbox-window.prod.es5-a7b12eab.js"),[]);o=new p("/sw.js",{scope:"/",type:"classic"}),o.addEventListener("activated",m=>{(m.isUpdate||m.isExternal)&&window.location.reload()}),o.addEventListener("installed",m=>{m.isUpdate||n==null||n()}),o.register({immediate:e}).then(m=>{a?a("/sw.js",m):i==null||i(m)}).catch(m=>{s==null||s(m)})}}return l=u(),c}"serviceWorker"in navigator&&M5();class P5{constructor(){A(this,"settings",new LM);A(this,"universes",Ko);A(this,"selected_universe","Welcome");A(this,"fill",!1);A(this,"local_index",1);A(this,"editor_mode","global");A(this,"fontSize");A(this,"withLineNumbers");A(this,"vimModeCompartment");A(this,"hoveringCompartment");A(this,"completionsCompartment");A(this,"chosenLanguage");A(this,"dynamicPlugins");A(this,"currentDocumentationPane","introduction");A(this,"exampleCounter",0);A(this,"exampleIsPlaying",!1);A(this,"editorExtensions",[]);A(this,"userPlugins",[]);A(this,"state");A(this,"view");A(this,"selectedExample","");A(this,"docs",{});A(this,"_mouseX",0);A(this,"_mouseY",0);A(this,"show_error",!1);A(this,"buttonElements",{});A(this,"interface",{});A(this,"blinkTimeouts",{});A(this,"osc",{enabled:!1,color:"#fdba74",thickness:4,refresh:1,fftSize:1024,orientation:"horizontal",is3D:!1,size:1});A(this,"api");A(this,"audioContext");A(this,"clock");A(this,"dough_nudge",20);A(this,"manualPlay",!1);A(this,"isPlaying",!1);A(this,"hydra_backend");A(this,"hydra");A(this,"updateKnownUniversesView",()=>{let e=document.getElementById("ui-known-universe-item-template");if(!e){console.warn("Missing template #ui-known-universe-item-template");return}let t=document.getElementById("existing-universes");if(!t){console.warn("Missing element #existing-universes");return}let n=document.createElement("ul");n.className="lg:h-80 lg:text-normal text-sm h-auto lg:w-80 w-auto lg:pb-2 lg:pt-2 overflow-y-scroll text-white lg:mb-4 border rounded-lg bg-neutral-800",n.append(...Object.keys(this.universes).map(i=>{var o,l;let a=e.content.cloneNode(!0),s=window;return a.querySelector(".universe-name").textContent=i,(o=a.querySelector(".load-universe"))==null||o.addEventListener("click",()=>s._loadUniverseFromInterface(i)),(l=a.querySelector(".delete-universe"))==null||l.addEventListener("click",()=>s._deleteUniverseFromInterface(i)),a})),t.innerHTML="",t.append(n)});this.initializeElements(),this.initializeButtonGroups(),this.setCanvas(this.interface.feedback),this.setCanvas(this.interface.scope);try{this.loadHydraSynthAsync()}catch(t){console.log("Couldn't start Hydra: ",t)}this.universes={...this.settings.universes,...Ko},MM(this),this.audioContext=new AudioContext({latencyHint:"playback"}),this.clock=new EG(this,this.audioContext),this.api=new R5(this),N5(this.api),I5(this.api),Object.entries(this.api).forEach(([t,n])=>{globalThis[t]=n}),(async()=>{await kR()})(),this.docs=rR(this),Q$(this),q$(this),w5(this),DT(this),SG(this),P0(this.interface.scope,this),wa(this,this.universes[this.selected_universe.toString()].init),this.changeModeFromInterface("global"),BM(this)}getBuffer(e){const t=this.universes[this.selected_universe.toString()];return e==="locals"?t[e][this.local_index]:t[e]}get note_buffer(){return this.getBuffer("notes")}get example_buffer(){return this.getBuffer("example")}get global_buffer(){return this.getBuffer("global")}get init_buffer(){return this.getBuffer("init")}get local_buffer(){return this.getBuffer("locals")}changeToLocalBuffer(e){const t=document.querySelectorAll('[id^="tab-"]'),n=t[e];n.classList.add("bg-orange-300");for(let a=0;a{t.forEach(a=>{let s=a.children[0];s.classList.contains("text-orange-300")&&(s.classList.remove("text-orange-300"),a.classList.remove("text-orange-300"))}),i.children[0].classList.remove("text-white"),i.children[0].classList.add("text-orange-300"),i.classList.add("text-orange-300"),i.classList.add("fill-orange-300")};switch(e){case"local":this.interface.local_script_tabs.classList.contains("hidden")&&this.interface.local_script_tabs.classList.remove("hidden"),this.editor_mode="local",this.local_index=0,document.getElementById("editor").style.height="calc(100% - 100px)",this.changeToLocalBuffer(this.local_index),n(this.interface.local_button);break;case"global":this.interface.local_script_tabs.classList.contains("hidden")||this.interface.local_script_tabs.classList.add("hidden"),this.editor_mode="global",document.getElementById("editor").style.height="100%",n(this.interface.global_button);break;case"init":this.interface.local_script_tabs.classList.contains("hidden")||this.interface.local_script_tabs.classList.add("hidden"),this.editor_mode="init",n(this.interface.init_button);break;case"notes":this.interface.local_script_tabs.classList.contains("hidden")||this.interface.local_script_tabs.classList.add("hidden"),this.editor_mode="notes",n(this.interface.note_button);break}this.view.dispatch({effects:this.chosenLanguage.reconfigure(this.editor_mode=="notes"?[KL()]:[Wg()])}),this.updateEditorView()}setButtonHighlighting(e,t){document.getElementById("play-label").textContent=e!=="pause"?"Pause":"Play",e!=="pause"?(document.getElementById("pause-icon").classList.remove("hidden"),document.getElementById("play-icon").classList.add("hidden")):(document.getElementById("pause-icon").classList.add("hidden"),document.getElementById("play-icon").classList.remove("hidden")),e==="stop"&&(this.isPlaying==!1,document.getElementById("play-label").textContent="Play",document.getElementById("pause-icon").classList.add("hidden"),document.getElementById("play-icon").classList.remove("hidden")),this.flashBackground("#404040",200);const n=['[id^="play-button-"]','[id^="clear-button-"]','[id^="stop-button-"]'];let i;switch(e){case"play":i=0;break;case"pause":i=1;break;case"clear":i=2;break;case"stop":i=3;break}document.querySelectorAll(n[i]).forEach(a=>{t&&a.children[0].classList.add("animate-pulse")}),document.querySelectorAll(n.filter((a,s)=>s!=i).join(",")).forEach(a=>{a.children[0].classList.remove("animate-pulse"),a.children[1].classList.remove("animate-pulse")})}unfocusPlayButtons(){document.querySelectorAll('[id^="play-button-"]').forEach(e=>{e.children[0].classList.remove("fill-orange-300"),e.children[0].classList.remove("animate-pulse")})}updateEditorView(){this.view.dispatch({changes:{from:0,to:this.view.state.doc.toString().length,insert:this.currentFile().candidate}})}currentFile(){switch(this.editor_mode){case"global":return this.global_buffer;case"local":return this.local_buffer;case"init":return this.init_buffer;case"notes":return this.note_buffer}}flashBackground(e,t){const n=this.view.dom,i=n.getElementsByClassName("cm-gutter");n.classList.add("fluid-bg-transition"),Array.from(i).forEach(a=>a.classList.add("fluid-bg-transition")),n.style.backgroundColor=e,Array.from(i).forEach(a=>a.style.backgroundColor=e),setTimeout(()=>{n.style.backgroundColor="",Array.from(i).forEach(a=>a.style.backgroundColor=""),n.classList.remove("fluid-bg-transition"),Array.from(i).forEach(a=>a.classList.remove("fluid-bg-transition"))},t)}initializeElements(){for(const[e,t]of Object.entries(YM))this.interface[e]=document.getElementById(t)}initializeButtonGroups(){for(const[e,t]of Object.entries($M))this.buttonElements[e]=t.map(n=>document.getElementById(n))}loadHydraSynthAsync(){var e=document.createElement("script");e.src="https://unpkg.com/hydra-synth",e.async=!0,e.onload=()=>{console.log("Hydra loaded successfully"),this.initializeHydra()},e.onerror=function(){console.error("Error loading Hydra script")},document.head.appendChild(e)}initializeHydra(){this.hydra_backend=new Hydra({canvas:this.interface.hydra_canvas,detectAudio:!1,enableStreamCapture:!1}),this.hydra=this.hydra_backend.synth}setCanvas(e){if(!e)return;const t=e.getContext("2d"),n=window.devicePixelRatio||1;e.width=window.innerWidth*n,e.height=window.innerHeight*n,t&&t.scale(n,n)}}let B5=new P5;D5(B5,window,!1); +`:"",n.error?n.error.stack:void 0)},!1)},x5="modulepreload",k5=function(r){return"/"+r},AT={},L5=function(e,t,n){if(!t||t.length===0)return e();const i=document.getElementsByTagName("link");return Promise.all(t.map(a=>{if(a=k5(a),a in AT)return;AT[a]=!0;const s=a.endsWith(".css"),o=s?'[rel="stylesheet"]':"";if(!!n)for(let u=i.length-1;u>=0;u--){const p=i[u];if(p.href===a&&(!s||p.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${a}"]${o}`))return;const c=document.createElement("link");if(c.rel=s?"stylesheet":x5,s||(c.as="script",c.crossOrigin=""),c.href=a,document.head.appendChild(c),s)return new Promise((u,p)=>{c.addEventListener("load",u),c.addEventListener("error",()=>p(new Error(`Unable to preload CSS for ${a}`)))})})).then(()=>e()).catch(a=>{const s=new Event("vite:preloadError",{cancelable:!0});if(s.payload=a,window.dispatchEvent(s),!s.defaultPrevented)throw a})};function M5(r={}){const{immediate:e=!1,onNeedRefresh:t,onOfflineReady:n,onRegistered:i,onRegisteredSW:a,onRegisterError:s}=r;let o,l;const c=async(p=!0)=>{await l};async function u(){if("serviceWorker"in navigator){const{Workbox:p}=await L5(()=>import("./workbox-window.prod.es5-a7b12eab.js"),[]);o=new p("/sw.js",{scope:"/",type:"classic"}),o.addEventListener("activated",m=>{(m.isUpdate||m.isExternal)&&window.location.reload()}),o.addEventListener("installed",m=>{m.isUpdate||n==null||n()}),o.register({immediate:e}).then(m=>{a?a("/sw.js",m):i==null||i(m)}).catch(m=>{s==null||s(m)})}}return l=u(),c}"serviceWorker"in navigator&&M5();class P5{constructor(){A(this,"settings",new LM);A(this,"universes",Ko);A(this,"selected_universe","Welcome");A(this,"fill",!1);A(this,"local_index",1);A(this,"editor_mode","global");A(this,"fontSize");A(this,"withLineNumbers");A(this,"vimModeCompartment");A(this,"hoveringCompartment");A(this,"completionsCompartment");A(this,"chosenLanguage");A(this,"dynamicPlugins");A(this,"currentDocumentationPane","introduction");A(this,"exampleCounter",0);A(this,"exampleIsPlaying",!1);A(this,"editorExtensions",[]);A(this,"userPlugins",[]);A(this,"state");A(this,"view");A(this,"selectedExample","");A(this,"docs",{});A(this,"_mouseX",0);A(this,"_mouseY",0);A(this,"show_error",!1);A(this,"buttonElements",{});A(this,"interface",{});A(this,"blinkTimeouts",{});A(this,"osc",{enabled:!1,color:"#fdba74",thickness:4,refresh:1,fftSize:1024,orientation:"horizontal",is3D:!1,size:1});A(this,"api");A(this,"audioContext");A(this,"clock");A(this,"dough_nudge",40);A(this,"manualPlay",!1);A(this,"isPlaying",!1);A(this,"hydra_backend");A(this,"hydra");A(this,"updateKnownUniversesView",()=>{let e=document.getElementById("ui-known-universe-item-template");if(!e){console.warn("Missing template #ui-known-universe-item-template");return}let t=document.getElementById("existing-universes");if(!t){console.warn("Missing element #existing-universes");return}let n=document.createElement("ul");n.className="lg:h-80 lg:text-normal text-sm h-auto lg:w-80 w-auto lg:pb-2 lg:pt-2 overflow-y-scroll text-white lg:mb-4 border rounded-lg bg-neutral-800",n.append(...Object.keys(this.universes).map(i=>{var o,l;let a=e.content.cloneNode(!0),s=window;return a.querySelector(".universe-name").textContent=i,(o=a.querySelector(".load-universe"))==null||o.addEventListener("click",()=>s._loadUniverseFromInterface(i)),(l=a.querySelector(".delete-universe"))==null||l.addEventListener("click",()=>s._deleteUniverseFromInterface(i)),a})),t.innerHTML="",t.append(n)});this.initializeElements(),this.initializeButtonGroups(),this.setCanvas(this.interface.feedback),this.setCanvas(this.interface.scope);try{this.loadHydraSynthAsync()}catch(t){console.log("Couldn't start Hydra: ",t)}this.universes={...this.settings.universes,...Ko},MM(this),this.audioContext=new AudioContext({latencyHint:"playback"}),this.clock=new EG(this,this.audioContext),this.api=new R5(this),N5(this.api),I5(this.api),Object.entries(this.api).forEach(([t,n])=>{globalThis[t]=n}),(async()=>{await kR()})(),this.docs=rR(this),Q$(this),q$(this),w5(this),DT(this),SG(this),P0(this.interface.scope,this),wa(this,this.universes[this.selected_universe.toString()].init),this.changeModeFromInterface("global"),BM(this)}getBuffer(e){const t=this.universes[this.selected_universe.toString()];return e==="locals"?t[e][this.local_index]:t[e]}get note_buffer(){return this.getBuffer("notes")}get example_buffer(){return this.getBuffer("example")}get global_buffer(){return this.getBuffer("global")}get init_buffer(){return this.getBuffer("init")}get local_buffer(){return this.getBuffer("locals")}changeToLocalBuffer(e){const t=document.querySelectorAll('[id^="tab-"]'),n=t[e];n.classList.add("bg-orange-300");for(let a=0;a{t.forEach(a=>{let s=a.children[0];s.classList.contains("text-orange-300")&&(s.classList.remove("text-orange-300"),a.classList.remove("text-orange-300"))}),i.children[0].classList.remove("text-white"),i.children[0].classList.add("text-orange-300"),i.classList.add("text-orange-300"),i.classList.add("fill-orange-300")};switch(e){case"local":this.interface.local_script_tabs.classList.contains("hidden")&&this.interface.local_script_tabs.classList.remove("hidden"),this.editor_mode="local",this.local_index=0,document.getElementById("editor").style.height="calc(100% - 100px)",this.changeToLocalBuffer(this.local_index),n(this.interface.local_button);break;case"global":this.interface.local_script_tabs.classList.contains("hidden")||this.interface.local_script_tabs.classList.add("hidden"),this.editor_mode="global",document.getElementById("editor").style.height="100%",n(this.interface.global_button);break;case"init":this.interface.local_script_tabs.classList.contains("hidden")||this.interface.local_script_tabs.classList.add("hidden"),this.editor_mode="init",n(this.interface.init_button);break;case"notes":this.interface.local_script_tabs.classList.contains("hidden")||this.interface.local_script_tabs.classList.add("hidden"),this.editor_mode="notes",n(this.interface.note_button);break}this.view.dispatch({effects:this.chosenLanguage.reconfigure(this.editor_mode=="notes"?[KL()]:[Wg()])}),this.updateEditorView()}setButtonHighlighting(e,t){document.getElementById("play-label").textContent=e!=="pause"?"Pause":"Play",e!=="pause"?(document.getElementById("pause-icon").classList.remove("hidden"),document.getElementById("play-icon").classList.add("hidden")):(document.getElementById("pause-icon").classList.add("hidden"),document.getElementById("play-icon").classList.remove("hidden")),e==="stop"&&(this.isPlaying==!1,document.getElementById("play-label").textContent="Play",document.getElementById("pause-icon").classList.add("hidden"),document.getElementById("play-icon").classList.remove("hidden")),this.flashBackground("#404040",200);const n=['[id^="play-button-"]','[id^="clear-button-"]','[id^="stop-button-"]'];let i;switch(e){case"play":i=0;break;case"pause":i=1;break;case"clear":i=2;break;case"stop":i=3;break}document.querySelectorAll(n[i]).forEach(a=>{t&&a.children[0].classList.add("animate-pulse")}),document.querySelectorAll(n.filter((a,s)=>s!=i).join(",")).forEach(a=>{a.children[0].classList.remove("animate-pulse"),a.children[1].classList.remove("animate-pulse")})}unfocusPlayButtons(){document.querySelectorAll('[id^="play-button-"]').forEach(e=>{e.children[0].classList.remove("fill-orange-300"),e.children[0].classList.remove("animate-pulse")})}updateEditorView(){this.view.dispatch({changes:{from:0,to:this.view.state.doc.toString().length,insert:this.currentFile().candidate}})}currentFile(){switch(this.editor_mode){case"global":return this.global_buffer;case"local":return this.local_buffer;case"init":return this.init_buffer;case"notes":return this.note_buffer}}flashBackground(e,t){const n=this.view.dom,i=n.getElementsByClassName("cm-gutter");n.classList.add("fluid-bg-transition"),Array.from(i).forEach(a=>a.classList.add("fluid-bg-transition")),n.style.backgroundColor=e,Array.from(i).forEach(a=>a.style.backgroundColor=e),setTimeout(()=>{n.style.backgroundColor="",Array.from(i).forEach(a=>a.style.backgroundColor=""),n.classList.remove("fluid-bg-transition"),Array.from(i).forEach(a=>a.classList.remove("fluid-bg-transition"))},t)}initializeElements(){for(const[e,t]of Object.entries(YM))this.interface[e]=document.getElementById(t)}initializeButtonGroups(){for(const[e,t]of Object.entries($M))this.buttonElements[e]=t.map(n=>document.getElementById(n))}loadHydraSynthAsync(){var e=document.createElement("script");e.src="https://unpkg.com/hydra-synth",e.async=!0,e.onload=()=>{console.log("Hydra loaded successfully"),this.initializeHydra()},e.onerror=function(){console.error("Error loading Hydra script")},document.head.appendChild(e)}initializeHydra(){this.hydra_backend=new Hydra({canvas:this.interface.hydra_canvas,detectAudio:!1,enableStreamCapture:!1}),this.hydra=this.hydra_backend.synth}setCanvas(e){if(!e)return;const t=e.getContext("2d"),n=window.devicePixelRatio||1;e.width=window.innerWidth*n,e.height=window.innerHeight*n,t&&t.scale(n,n)}}let B5=new P5;D5(B5,window,!1); diff --git a/assets/index-bea23224.js.gz b/assets/index-188e4a40.js.gz similarity index 97% rename from assets/index-bea23224.js.gz rename to assets/index-188e4a40.js.gz index 392a8ca9a1cc7e9aa8cca71280109aff0b0e93aa..fbff74403946af2e88f80768a7ed7df3f09bae00 100644 GIT binary patch delta 17820 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∋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 w0}QUD - +