From 2d35c43c9af93a7b9f6b644eb48d09603a9e6b6a Mon Sep 17 00:00:00 2001 From: Bubobubobubobubo Date: Fri, 10 Nov 2023 13:13:57 +0000 Subject: [PATCH] deploy: ccdbd6a7f7984d015da5db13226f864c41e13755 --- assets/TransportProcessor-8b20802d.js | 1 - assets/TransportProcessor-8b20802d.js.gz | Bin 515 -> 0 bytes assets/TransportProcessor-d5d50b30.js | 1 + assets/TransportProcessor-d5d50b30.js.gz | Bin 0 -> 514 bytes .../{index-689e649e.js => index-bea23224.js} | 4 ++-- ...ex-689e649e.js.gz => index-bea23224.js.gz} | Bin 699987 -> 699985 bytes index.html | 2 +- index.html.gz | Bin 11873 -> 11872 bytes sw.js | 2 +- sw.js.map | 2 +- 10 files changed, 6 insertions(+), 6 deletions(-) delete mode 100644 assets/TransportProcessor-8b20802d.js delete mode 100644 assets/TransportProcessor-8b20802d.js.gz create mode 100644 assets/TransportProcessor-d5d50b30.js create mode 100644 assets/TransportProcessor-d5d50b30.js.gz rename assets/{index-689e649e.js => index-bea23224.js} (97%) rename assets/{index-689e649e.js.gz => index-bea23224.js.gz} (95%) diff --git a/assets/TransportProcessor-8b20802d.js b/assets/TransportProcessor-8b20802d.js deleted file mode 100644 index 8f008e2..0000000 --- a/assets/TransportProcessor-8b20802d.js +++ /dev/null @@ -1 +0,0 @@ -var p=Object.defineProperty;var u=(e,s,i)=>s in e?p(e,s,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[s]=i;var a=(e,s,i)=>(u(e,typeof s!="symbol"?s+"":s,i),i);(function(){"use strict";class e extends AudioWorkletProcessor{constructor(t){super(t);a(this,"handleMessage",t=>{t.data&&t.data.type==="ping"?this.port.postMessage(t.data):t.data.type==="start"?this.started=!0:t.data.type==="pause"?this.started=!1:t.data.type==="stop"?this.started=!1:t.data.type==="bpm"?(this.bpm=t.data.value,this.currentPulsePosition=currentTime):t.data.type==="ppqn"?this.ppqn=t.data.value:t.data.type==="nudge"&&(this.nudge=t.data.value)});this.port.addEventListener("message",this.handleMessage),this.port.start(),this.nudge=0,this.started=!1,this.bpm=120,this.ppqn=48,this.currentPulsePosition=0}process(t,o,d){if(this.started){const n=(currentTime+this.nudge/100)/(60/this.bpm),r=Math.ceil(n*this.ppqn);r>this.currentPulsePosition&&(this.currentPulsePosition=r,this.port.postMessage({type:"bang",bpm:this.bpm}))}return!0}}registerProcessor("transport",e)})(); diff --git a/assets/TransportProcessor-8b20802d.js.gz b/assets/TransportProcessor-8b20802d.js.gz deleted file mode 100644 index 6bb6cfad0eb3c1f6dd782f42c1a51abe9179d97c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 515 zcmV+e0{s0SiwFP!000021BFvfkJB&^z4I$lA1a%*+7uzQO5|1?xUr%KBn~SMZZd5R zscr0Wp^Ea~aXy-EySpGo$$0!`=FOYQQM$y6FPk4w;H-qL(y(^Mg2PjOjCVm$;GQcc zmOfEBftBqXHRx~vCpQ&jlav=mZ`Cf0=ig4@**?lDK&Bd&!K42!RF_v?^3o7ZJXtW? z#7_kAr^CinWaaM&$y!K!a=Hz=KxH&#H3=RPk4_ax@}iR7Cy>A&1YP>%V4TE zyE*XATLkAo<2qCx*2b$=STQ)isslW0!P;N?+;udsQr=>9D5HkcX-}X#UEx{7@{4}5 zEI%D%+0V+y0miA2!#IT&bTt{qFM(bAbnx_5Qhp;0A2nFK8!kKg@9+PiL)zGWZzyuZ zOIE8beVUi`+mvWQpGbCh;W1yNDVx&|>HJ)taVH)m?q>z4it4u`6PCN>t4z)kzR1$? zmv^vk$B>bYjBCnc>Fms*VXSe0!RblbL~GXy?#5q)5_D4gHXq^bj3~?B`~}KHOwt|% F007*X_Z|QM diff --git a/assets/TransportProcessor-d5d50b30.js b/assets/TransportProcessor-d5d50b30.js new file mode 100644 index 0000000..6048fa7 --- /dev/null +++ b/assets/TransportProcessor-d5d50b30.js @@ -0,0 +1 @@ +var u=Object.defineProperty;var p=(s,e,i)=>e in s?u(s,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):s[e]=i;var a=(s,e,i)=>(p(s,typeof e!="symbol"?e+"":e,i),i);(function(){"use strict";class s extends AudioWorkletProcessor{constructor(t){super(t);a(this,"handleMessage",t=>{t.data&&t.data.type==="ping"?this.port.postMessage(t.data):t.data.type==="start"?this.started=!0:t.data.type==="pause"?this.started=!1:t.data.type==="stop"?this.started=!1:t.data.type==="bpm"?(this.bpm=t.data.value,this.currentPulsePosition=currentTime):t.data.type==="ppqn"?(this.ppqn=t.data.value,this.currentPulsePosition=currentTime):t.data.type==="nudge"&&(this.nudge=t.data.value)});this.port.addEventListener("message",this.handleMessage),this.port.start(),this.nudge=0,this.started=!1,this.bpm=120,this.ppqn=48,this.currentPulsePosition=0}process(t,o,d){if(this.started){const n=(currentTime+this.nudge/100)/(60/this.bpm),r=Math.ceil(n*this.ppqn);r>this.currentPulsePosition&&(this.currentPulsePosition=r,this.port.postMessage({type:"bang",bpm:this.bpm}))}return!0}}registerProcessor("transport",s)})(); diff --git a/assets/TransportProcessor-d5d50b30.js.gz b/assets/TransportProcessor-d5d50b30.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..ccb75a182edc8795e336900b0f804ef8a5b7207b GIT binary patch literal 514 zcmV+d0{#6TiwFP!000021Fcg{kJB&^z4I$lA1a%*+7uy#61f!zZmj45i38%`CX?2X z+QuFiswn>*=d0cAE^tALlJR)v&CGj~lXOWCA9vrNz(om_(y(>Lg2Quuig#8}&w(o@ z){rQj_)X{?4d`$LCwDbuvy>M`S85+F=bujDWS?XmAX6>N{1^BtRF5mKxYR}y&lXIT zz)TQ-KJH9SHgHEs)`i3;r&Z7eDx)cDNbrz&bgDp-7q#?0@d^Aw(4|k_g;JT%#(l2= z<0J)mZ(I}miwU7X<0!Jmhd5z0a!K)^JSPXK%Np)uu-pUTDArA+L!z9|hwq|mPzXV+ z(tEP$vKH1jj4zL49vwnic9Y^!IvjI)8%i-tZ=l1)F^BAQ~n z?RDV2w+POG#%-uQY>ihPv0`+7Qb%|)g0(;N1ligD15<}Gay_39sQu{?ENfYQ}jH-XQ-0$8v^--tJSOVvY+zx+rP|~wszPrirny$ zHL9WyaoMnSi5Bz$4R_Z*ma8;nOZp~VPURVQ;$GrmQGlwcetGGH^{jHucal);hr8^ek${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-8b20802d.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*2,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))}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,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",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); +`:"",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); diff --git a/assets/index-689e649e.js.gz b/assets/index-bea23224.js.gz similarity index 95% rename from assets/index-689e649e.js.gz rename to assets/index-bea23224.js.gz index 4226694255a57f884572baebb5f151268843ce2a..392a8ca9a1cc7e9aa8cca71280109aff0b0e93aa 100644 GIT binary patch delta 32885 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

rp_Wek&&q&Qxbm3Z%HF`$}ivF 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ℜ5>q{;pwbsxC9@Dt1p>zliF*OgeF`tZ! zU_F9ooQyCTn>D0)CpBJ%Qz<&7>^G@^yPfx}7bBY%Z|_37W*Vb8(HMSP;}ug!jU(#=)(ab-OWJ(Z2wHhy;!2;5mR! zDycSOIhvhG7rj1f6qK|+x3zo@+a{O5YuCEbR)}~FvwuA^ZIpT^f+u9bS7Is4+D&f| zdY6`x!38aB(npP}DI`}@*woDvstgMx2KsiztM&>KcfEL|N;+jawXHjJHX4nU!5mE} z>sx!n;kQN~p+J_mwy6{1@Ez>g(oF24vW-c*(S*VG?DJ z9zA6^TYqMKc8kveE=FYlmif~VHf;uS*B95 zL#Z{aT0R*6{Ue!4eMSZ%4>#U$O*H%1ATs2A>#jo%vmde<4=b-1L~D|s&IjfR{Xa6r z%Uu7|uC}5K{lG_oPZz!E?pm#UX}RptquVbp_kSZBuXf&cxX^gSOH;wC7H&)^<9__a z%Srx&$3;Ww_7KZ)6ULI;qPoS2K(5P?$>j9ikdCvaB@31!s9uQV_Kv{II*|~Y4^sE^ zRN-9?sW0_ZS{z9HULMkRrV)V|>=HAR?d-5Fu7E|s0#0FHgru@{U)6f;m7ry5&kOXh z_kZO8HX9h1O2dwpe{YNYYkR$l$ZiKWn;;tS@V?*3P*;|?=rkwGhVD++xF3fvi=|)BR8awi9z1FC2Wqlr+{yO8RG+ zxe0qA7S#CMa23q^@F*%Ev|+V1kg1@w-Pu;<(Rf1eMzg&4M=0a=cvsaeMe3;AZMB=` zlpG*Ty zv~-D!vjp^# zv&9ixBEkwJD|VDhdi6F3G_mVKNGl*Dd%SGg0sLm&LNDsF(BrKZdXd9BEc7BY2g{^| mUW73~N%8S^pJwM|-+i}lz1^3V52S7S)Bgf})=&vS@*n_QwTNE; diff --git a/index.html b/index.html index 7f87f78..ebc0730 100644 --- a/index.html +++ b/index.html @@ -14,7 +14,7 @@ - +