From 747ea610db080c407174ade25b37ceed70d3d2b8 Mon Sep 17 00:00:00 2001 From: Bubobubobubobubo Date: Sat, 7 Oct 2023 18:10:10 +0000 Subject: [PATCH] deploy: 0c21770eaa30b2fcfc1294b82d5d57c919778f50 --- assets/TransportProcessor-6c073985.js | 1 + assets/TransportProcessor-b463db54.js | 1 - ...{index-3ab5b43f.css => index-59cf8db1.css} | 2 +- .../{index-7ec2a84a.js => index-5f8bce62.js} | 52 +++++++++---------- index.html | 22 ++++++-- 5 files changed, 47 insertions(+), 31 deletions(-) create mode 100644 assets/TransportProcessor-6c073985.js delete mode 100644 assets/TransportProcessor-b463db54.js rename assets/{index-3ab5b43f.css => index-59cf8db1.css} (64%) rename assets/{index-7ec2a84a.js => index-5f8bce62.js} (94%) diff --git a/assets/TransportProcessor-6c073985.js b/assets/TransportProcessor-6c073985.js new file mode 100644 index 0000000..7949677 --- /dev/null +++ b/assets/TransportProcessor-6c073985.js @@ -0,0 +1 @@ +var o=Object.defineProperty;var u=(e,s,i)=>s in e?o(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==="start"?this.started=!0:t.data==="pause"?this.started=!1:t.data==="stop"?this.started=!1:t.data.type==="bpm"?(this.bpm=t.data.value,this.currentPulsePosition=0):t.data.type==="ppqn"?(this.ppqn=t.data.value,this.currentPulsePosition=0):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,p,d){if(this.started){const n=(currentTime+this.nudge/1e3)/(60/this.bpm),r=Math.ceil(n*this.ppqn);r>this.currentPulsePosition&&(this.currentPulsePosition=r,this.port.postMessage({type:"bang"}))}return!0}}registerProcessor("transport",e)})(); diff --git a/assets/TransportProcessor-b463db54.js b/assets/TransportProcessor-b463db54.js deleted file mode 100644 index 68f5bd3..0000000 --- a/assets/TransportProcessor-b463db54.js +++ /dev/null @@ -1 +0,0 @@ -var n=Object.defineProperty;var p=(e,s,r)=>s in e?n(e,s,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[s]=r;var a=(e,s,r)=>(p(e,typeof s!="symbol"?s+"":s,r),r);(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==="start"?this.started=!0:t.data==="pause"?this.started=!1:t.data==="stop"?this.started=!1:t.data.type==="bpm"?(this.bpm=t.data.value,this.currentPulsePosition=0):t.data.type==="ppqn"&&(this.ppqn=t.data.value,this.currentPulsePosition=0)});this.port.addEventListener("message",this.handleMessage),this.port.start(),this.started=!1,this.bpm=120,this.ppqn=48,this.currentPulsePosition=0}process(t,u,h){if(this.started){const o=currentTime/(60/this.bpm),i=Math.ceil(o*this.ppqn);i>this.currentPulsePosition&&(this.currentPulsePosition=i,this.port.postMessage({type:"bang"}))}return!0}}registerProcessor("transport",e)})(); diff --git a/assets/index-3ab5b43f.css b/assets/index-59cf8db1.css similarity index 64% rename from assets/index-3ab5b43f.css rename to assets/index-59cf8db1.css index 525c080..6a9e922 100644 --- a/assets/index-3ab5b43f.css +++ b/assets/index-59cf8db1.css @@ -1 +1 @@ -.hljs{display:block;overflow-x:auto;padding:.5em;background:#F0F0F0}.hljs,.hljs-subst{color:#444}.hljs-comment{color:#888}.hljs-keyword,.hljs-attribute,.hljs-selector-tag,.hljs-meta-keyword,.hljs-doctag,.hljs-name{font-weight:700}.hljs-type,.hljs-string,.hljs-number,.hljs-selector-id,.hljs-selector-class,.hljs-quote,.hljs-template-tag,.hljs-deletion{color:#800}.hljs-title,.hljs-section{color:#800;font-weight:700}.hljs-regexp,.hljs-symbol,.hljs-variable,.hljs-template-variable,.hljs-link,.hljs-selector-attr,.hljs-selector-pseudo{color:#bc6060}.hljs-literal{color:#78a960}.hljs-built_in,.hljs-bullet,.hljs-code,.hljs-addition{color:#397300}.hljs-meta{color:#1f7199}.hljs-meta-string{color:#4d99bf}.mx-16{margin-left:4rem;margin-right:4rem}.my-8{margin-top:2rem;margin-bottom:2rem}.ml-0{margin-left:0}.ml-8{margin-left:2rem}.mr-5{margin-right:1.25rem}.mt-8{margin-top:2rem}.h-2{height:.5rem}.h-full{height:100%}.min-h-screen{min-height:100vh}.w-2\/5{width:40%}.w-3\/5{width:60%}.w-60{width:15rem}.w-auto{width:auto}.max-w-sm{max-width:24rem}.flex-grow,.grow{flex-grow:1}.cursor-pointer{cursor:pointer}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.space-x-0>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(0px * var(--tw-space-x-reverse));margin-left:calc(0px * calc(1 - var(--tw-space-x-reverse)))}.space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(1rem * var(--tw-space-x-reverse));margin-left:calc(1rem * calc(1 - var(--tw-space-x-reverse)))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.overflow-hidden{overflow:hidden}.border-gray-600{--tw-border-opacity: 1;border-color:rgb(75 85 99 / var(--tw-border-opacity))}.border-gray-700{--tw-border-opacity: 1;border-color:rgb(55 65 81 / var(--tw-border-opacity))}.border-gray-800{--tw-border-opacity: 1;border-color:rgb(31 41 55 / var(--tw-border-opacity))}.bg-gray-700{--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity))}.p-6{padding:1.5rem}.p-8{padding:2rem}.px-0{padding-left:0;padding-right:0}.px-12{padding-left:3rem;padding-right:3rem}.py-0{padding-top:0;padding-bottom:0}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-12{padding-top:3rem;padding-bottom:3rem}.py-14{padding-top:3.5rem;padding-bottom:3.5rem}.pb-96{padding-bottom:24rem}.align-middle{vertical-align:middle}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.tracking-tight{letter-spacing:-.025em}.shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.ring-offset-gray-800{--tw-ring-offset-color: #1f2937}.hover\:bg-gray-100:hover{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity))}.focus\:ring-blue-600:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(37 99 235 / var(--tw-ring-opacity))}@media (prefers-reduced-motion: no-preference){@keyframes pulse{50%{opacity:.5}}.motion-safe\:animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}}@media (prefers-color-scheme: dark){.dark\:border-gray-500{--tw-border-opacity: 1;border-color:rgb(107 114 128 / var(--tw-border-opacity))}.dark\:border-gray-600{--tw-border-opacity: 1;border-color:rgb(75 85 99 / var(--tw-border-opacity))}.dark\:border-gray-700{--tw-border-opacity: 1;border-color:rgb(55 65 81 / var(--tw-border-opacity))}.dark\:bg-gray-600{--tw-bg-opacity: 1;background-color:rgb(75 85 99 / var(--tw-bg-opacity))}.dark\:bg-gray-700{--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity))}.dark\:bg-gray-800{--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity))}.dark\:text-gray-100{--tw-text-opacity: 1;color:rgb(243 244 246 / var(--tw-text-opacity))}.dark\:text-gray-200{--tw-text-opacity: 1;color:rgb(229 231 235 / var(--tw-text-opacity))}.dark\:text-gray-400{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity))}.dark\:text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.dark\:ring-offset-gray-800{--tw-ring-offset-color: #1f2937}.dark\:hover\:bg-gray-800:hover{--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity))}.dark\:focus\:ring-blue-600:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(37 99 235 / var(--tw-ring-opacity))}}@media (min-width: 1024px){.lg\:w-1\/5{width:20%}.lg\:w-4\/5{width:80%}.lg\:flex-row{flex-direction:row}.lg\:space-x-8>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(2rem * var(--tw-space-x-reverse));margin-left:calc(2rem * calc(1 - var(--tw-space-x-reverse)))}.lg\:space-y-0>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(0px * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0px * var(--tw-space-y-reverse))}.lg\:text-2xl{font-size:1.5rem;line-height:2rem}.lg\:text-sm{font-size:.875rem;line-height:1.25rem}}@media (min-width: 1280px){.xl\:block{display:block}.xl\:hidden{display:none}}@font-face{font-family:IBM Plex Mono;src:url(/assets/IBMPlexMono-Regular-82ad22f5.woff2) format("woff2"),url(/assets/IBMPlexMono-Regular-06ba2f2e.woff) format("woff");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:IBM PLex Mono;src:url(/assets/IBMPlexMono-Italic-30cb963d.woff2) format("woff2"),url(/assets/IBMPlexMono-Italic-fc3301da.woff) format("woff");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:IBM PLex Mono;src:url(/assets/IBMPlexMono-Bold-3152ee89.woff2) format("woff2"),url(/assets/IBMPlexMono-Bold-6bb3fd98.woff) format("woff");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:IBM Plex Mono;src:url(/assets/IBMPlexMono-BoldItalic-6f4d360c.woff2) format("woff2"),url(/assets/IBMPlexMono-BoldItalic-5cd662b9.woff) format("woff");font-weight:700;font-style:italic;font-display:swap}*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.hljs{display:block;overflow-x:auto;padding:.5em;background:#2E3440}.hljs,.hljs-subst{color:#d8dee9}.hljs-selector-tag{color:#81a1c1}.hljs-selector-id{color:#8fbcbb;font-weight:700}.hljs-selector-class,.hljs-selector-attr{color:#8fbcbb}.hljs-selector-pseudo{color:#88c0d0}.hljs-addition{background-color:#a3be8c80}.hljs-deletion{background-color:#bf616a80}.hljs-built_in,.hljs-type,.hljs-class{color:#8fbcbb}.hljs-function{color:#88c0d0}.hljs-function>.hljs-title{color:#88c0d0}.hljs-keyword,.hljs-literal,.hljs-symbol{color:#81a1c1}.hljs-number{color:#b48ead}.hljs-regexp{color:#ebcb8b}.hljs-string{color:#a3be8c}.hljs-title{color:#8fbcbb}.hljs-params{color:#d8dee9}.hljs-bullet{color:#81a1c1}.hljs-code{color:#8fbcbb}.hljs-emphasis{font-style:italic}.hljs-formula{color:#8fbcbb}.hljs-strong{font-weight:700}.hljs-link:hover{text-decoration:underline}.hljs-quote{color:#4c566a}.hljs-comment: #FEFEFE; .hljs-doctag{color:#8fbcbb}.hljs-meta,.hljs-meta-keyword{color:#5e81ac}.hljs-meta-string{color:#a3be8c}.hljs-attr{color:#8fbcbb}.hljs-attribute{color:#d8dee9}.hljs-builtin-name,.hljs-name{color:#81a1c1}.hljs-section{color:#88c0d0}.hljs-tag{color:#81a1c1}.hljs-variable,.hljs-template-variable{color:#d8dee9}.hljs-template-tag{color:#5e81ac}.abnf .hljs-attribute{color:#88c0d0}.abnf .hljs-symbol{color:#ebcb8b}.apache .hljs-attribute{color:#88c0d0}.apache .hljs-section{color:#81a1c1}.arduino .hljs-built_in{color:#88c0d0}.aspectj .hljs-meta{color:#d08770}.aspectj>.hljs-title{color:#88c0d0}.bnf .hljs-attribute{color:#8fbcbb}.clojure .hljs-name{color:#88c0d0}.clojure .hljs-symbol{color:#ebcb8b}.coq .hljs-built_in{color:#88c0d0}.cpp .hljs-meta-string{color:#8fbcbb}.css .hljs-built_in{color:#88c0d0}.css .hljs-keyword{color:#d08770}.diff .hljs-meta,.ebnf .hljs-attribute{color:#8fbcbb}.glsl .hljs-built_in{color:#88c0d0}.groovy .hljs-meta:not(:first-child){color:#d08770}.haxe .hljs-meta,.java .hljs-meta{color:#d08770}.ldif .hljs-attribute{color:#8fbcbb}.lisp .hljs-name,.lua .hljs-built_in,.moonscript .hljs-built_in,.nginx .hljs-attribute{color:#88c0d0}.nginx .hljs-section{color:#5e81ac}.pf .hljs-built_in,.processing .hljs-built_in{color:#88c0d0}.scss .hljs-keyword,.stylus .hljs-keyword{color:#81a1c1}.swift .hljs-meta{color:#d08770}.vim .hljs-built_in{color:#88c0d0;font-style:italic}.yaml .hljs-meta{color:#d08770}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.invisible{visibility:hidden}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.\!sticky{position:sticky!important}.sticky{position:sticky}.inset-y-0{top:0;bottom:0}.bottom-0{bottom:0}.bottom-2{bottom:.5rem}.bottom-2\.5{bottom:.625rem}.left-0{left:0}.right-0{right:0}.right-2{right:.5rem}.right-2\.5{right:.625rem}.top-0{top:0}.z-0{z-index:0}.col-span-1{grid-column:span 1 / span 1}.col-span-3{grid-column:span 3 / span 3}.mx-12{margin-left:3rem;margin-right:3rem}.mx-2{margin-left:.5rem;margin-right:.5rem}.mx-4{margin-left:1rem;margin-right:1rem}.mx-48{margin-left:12rem;margin-right:12rem}.mx-6{margin-left:1.5rem;margin-right:1.5rem}.mx-auto{margin-left:auto;margin-right:auto}.my-1{margin-top:.25rem;margin-bottom:.25rem}.my-2{margin-top:.5rem;margin-bottom:.5rem}.my-4{margin-top:1rem;margin-bottom:1rem}.my-48{margin-top:12rem;margin-bottom:12rem}.my-6{margin-top:1.5rem;margin-bottom:1.5rem}.-mt-2{margin-top:-.5rem}.mb-0{margin-bottom:0}.mb-2{margin-bottom:.5rem}.mb-24{margin-bottom:6rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-4{margin-left:1rem}.ml-5{margin-left:1.25rem}.ml-6{margin-left:1.5rem}.mr-2{margin-right:.5rem}.mr-4{margin-right:1rem}.mt-12{margin-top:3rem}.mt-2{margin-top:.5rem}.mt-4{margin-top:1rem}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.h-10{height:2.5rem}.h-4{height:1rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-screen{height:100vh}.max-h-96{max-height:24rem}.max-h-fit{max-height:-moz-fit-content;max-height:fit-content}.w-10{width:2.5rem}.w-11\/12{width:91.666667%}.w-14{width:3.5rem}.w-32{width:8rem}.w-4{width:1rem}.w-6{width:1.5rem}.w-7{width:1.75rem}.w-8{width:2rem}.w-fit{width:-moz-fit-content;width:fit-content}.w-full{width:100%}.w-screen{width:100vw}.flex-shrink-0{flex-shrink:0}.grow{flex-grow:1}.border-collapse{border-collapse:collapse}.border-spacing-y-4{--tw-border-spacing-y: 1rem;border-spacing:var(--tw-border-spacing-x) var(--tw-border-spacing-y)}.rotate-180{--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.list-disc{list-style-type:disc}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-x-2{-moz-column-gap:.5rem;column-gap:.5rem}.gap-y-2{row-gap:.5rem}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-6>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(1.5rem * var(--tw-space-x-reverse));margin-left:calc(1.5rem * calc(1 - var(--tw-space-x-reverse)))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(2rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem * var(--tw-space-y-reverse))}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-hidden{overflow-y:hidden}.overflow-y-scroll{overflow-y:scroll}.whitespace-pre{white-space:pre}.break-words{overflow-wrap:break-word}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-b{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.border{border-width:1px}.border-b{border-bottom-width:1px}.border-l-4{border-left-width:4px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-none{border-style:none}.border-gray-200{--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity))}.border-gray-300{--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity))}.border-neutral-500{--tw-border-opacity: 1;border-color:rgb(115 115 115 / var(--tw-border-opacity))}.border-neutral-800{--tw-border-opacity: 1;border-color:rgb(38 38 38 / var(--tw-border-opacity))}.bg-gray-100{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity))}.bg-gray-200{--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity))}.bg-gray-50{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity))}.bg-gray-800{--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity))}.bg-gray-900{--tw-bg-opacity: 1;background-color:rgb(17 24 39 / var(--tw-bg-opacity))}.bg-green-600{--tw-bg-opacity: 1;background-color:rgb(22 163 74 / var(--tw-bg-opacity))}.bg-neutral-500{--tw-bg-opacity: 1;background-color:rgb(115 115 115 / var(--tw-bg-opacity))}.bg-neutral-600{--tw-bg-opacity: 1;background-color:rgb(82 82 82 / var(--tw-bg-opacity))}.bg-neutral-700{--tw-bg-opacity: 1;background-color:rgb(64 64 64 / var(--tw-bg-opacity))}.bg-neutral-800{--tw-bg-opacity: 1;background-color:rgb(38 38 38 / var(--tw-bg-opacity))}.bg-neutral-900{--tw-bg-opacity: 1;background-color:rgb(23 23 23 / var(--tw-bg-opacity))}.bg-orange-300{--tw-bg-opacity: 1;background-color:rgb(253 186 116 / var(--tw-bg-opacity))}.bg-red-800{--tw-bg-opacity: 1;background-color:rgb(153 27 27 / var(--tw-bg-opacity))}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity))}.bg-opacity-50{--tw-bg-opacity: .5}.fill-current{fill:currentColor}.fill-orange-300{fill:#fdba74}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-2{padding:.5rem}.p-2\.5{padding:.625rem}.p-4{padding:1rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-16{padding-left:4rem;padding-right:4rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-4{padding-top:1rem;padding-bottom:1rem}.pb-1{padding-bottom:.25rem}.pb-32{padding-bottom:8rem}.pb-4{padding-bottom:1rem}.pl-10{padding-left:2.5rem}.pl-2{padding-left:.5rem}.pl-3{padding-left:.75rem}.pl-4{padding-left:1rem}.pl-5{padding-left:1.25rem}.pl-6{padding-left:1.5rem}.pl-8{padding-left:2rem}.pr-2{padding-right:.5rem}.pr-4{padding-right:1rem}.pt-1{padding-top:.25rem}.pt-2{padding-top:.5rem}.pt-4{padding-top:1rem}.text-left{text-align:left}.text-center{text-align:center}.align-top{vertical-align:top}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-2xl{font-size:1.5rem;line-height:2rem}.text-base{font-size:1rem;line-height:1.5rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.italic{font-style:italic}.leading-normal{line-height:1.5}.text-black{--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity))}.text-blue-600{--tw-text-opacity: 1;color:rgb(37 99 235 / var(--tw-text-opacity))}.text-gray-400{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity))}.text-gray-500{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity))}.text-gray-700{--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity))}.text-gray-800{--tw-text-opacity: 1;color:rgb(31 41 55 / var(--tw-text-opacity))}.text-gray-900{--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity))}.text-neutral-200{--tw-text-opacity: 1;color:rgb(229 229 229 / var(--tw-text-opacity))}.text-orange-300{--tw-text-opacity: 1;color:rgb(253 186 116 / var(--tw-text-opacity))}.text-red-400{--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity))}.text-rose-600{--tw-text-opacity: 1;color:rgb(225 29 72 / var(--tw-text-opacity))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.underline{text-decoration-line:underline}.line-through{text-decoration-line:line-through}.underline-offset-4{text-underline-offset:4px}.outline{outline-style:solid}.outline-0{outline-width:0px}.invert{--tw-invert: invert(100%);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-200{transition-duration:.2s}.striped .col-span-3,.striped .col-span-2{--tw-bg-opacity: 1;background-color:rgb(212 212 212 / var(--tw-bg-opacity))}.hover\:bg-gray-700:hover{--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity))}.hover\:bg-gray-800:hover{--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity))}.hover\:bg-gray-900:hover{--tw-bg-opacity: 1;background-color:rgb(17 24 39 / var(--tw-bg-opacity))}.hover\:bg-green-700:hover{--tw-bg-opacity: 1;background-color:rgb(21 128 61 / var(--tw-bg-opacity))}.hover\:bg-neutral-500:hover{--tw-bg-opacity: 1;background-color:rgb(115 115 115 / var(--tw-bg-opacity))}.hover\:bg-neutral-600:hover{--tw-bg-opacity: 1;background-color:rgb(82 82 82 / var(--tw-bg-opacity))}.hover\:bg-neutral-700:hover{--tw-bg-opacity: 1;background-color:rgb(64 64 64 / var(--tw-bg-opacity))}.hover\:bg-neutral-800:hover{--tw-bg-opacity: 1;background-color:rgb(38 38 38 / var(--tw-bg-opacity))}.hover\:bg-neutral-900:hover{--tw-bg-opacity: 1;background-color:rgb(23 23 23 / var(--tw-bg-opacity))}.hover\:bg-red-900:hover{--tw-bg-opacity: 1;background-color:rgb(127 29 29 / var(--tw-bg-opacity))}.hover\:bg-white:hover{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity))}.hover\:fill-black:hover{fill:#000}.hover\:text-black:hover{--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity))}.hover\:text-gray-900:hover{--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity))}.focus\:border-blue-500:focus{--tw-border-opacity: 1;border-color:rgb(59 130 246 / var(--tw-border-opacity))}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-4:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-blue-500:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(59 130 246 / var(--tw-ring-opacity))}:is([dir=rtl] .rtl\:border-l){border-left-width:1px}:is([dir=rtl] .rtl\:border-r-0){border-right-width:0px}@media (prefers-color-scheme: dark){.dark\:border-gray-500{--tw-border-opacity: 1;border-color:rgb(107 114 128 / var(--tw-border-opacity))}.dark\:border-gray-600{--tw-border-opacity: 1;border-color:rgb(75 85 99 / var(--tw-border-opacity))}.dark\:border-neutral-700{--tw-border-opacity: 1;border-color:rgb(64 64 64 / var(--tw-border-opacity))}.dark\:bg-gray-600{--tw-bg-opacity: 1;background-color:rgb(75 85 99 / var(--tw-bg-opacity))}.dark\:bg-gray-700{--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity))}.dark\:text-gray-100{--tw-text-opacity: 1;color:rgb(243 244 246 / var(--tw-text-opacity))}.dark\:text-gray-400{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity))}.dark\:text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.dark\:placeholder-gray-400::-moz-placeholder{--tw-placeholder-opacity: 1;color:rgb(156 163 175 / var(--tw-placeholder-opacity))}.dark\:placeholder-gray-400::placeholder{--tw-placeholder-opacity: 1;color:rgb(156 163 175 / var(--tw-placeholder-opacity))}.dark\:ring-offset-gray-800{--tw-ring-offset-color: #1f2937}.dark\:focus\:border-blue-500:focus{--tw-border-opacity: 1;border-color:rgb(59 130 246 / var(--tw-border-opacity))}.dark\:focus\:ring-blue-500:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(59 130 246 / var(--tw-ring-opacity))}.dark\:focus\:ring-blue-600:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(37 99 235 / var(--tw-ring-opacity))}}@media (min-width: 640px){.sm\:my-1{margin-top:.25rem;margin-bottom:.25rem}.sm\:text-sm{font-size:.875rem;line-height:1.25rem}.sm\:text-xs{font-size:.75rem;line-height:1rem}}@media (min-width: 1024px){.lg\:mx-12{margin-left:3rem;margin-right:3rem}.lg\:mx-4{margin-left:1rem;margin-right:1rem}.lg\:mx-6{margin-left:1.5rem;margin-right:1.5rem}.lg\:my-1{margin-top:.25rem;margin-bottom:.25rem}.lg\:my-12{margin-top:3rem;margin-bottom:3rem}.lg\:my-4{margin-top:1rem;margin-bottom:1rem}.lg\:mb-4{margin-bottom:1rem}.lg\:ml-12{margin-left:3rem}.lg\:ml-4{margin-left:1rem}.lg\:mt-16{margin-top:4rem}.lg\:block{display:block}.lg\:grid{display:grid}.lg\:h-80{height:20rem}.lg\:w-80{width:20rem}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:gap-4{gap:1rem}.lg\:space-x-8>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(2rem * var(--tw-space-x-reverse));margin-left:calc(2rem * calc(1 - var(--tw-space-x-reverse)))}.lg\:p-6{padding:1.5rem}.lg\:px-12{padding-left:3rem;padding-right:3rem}.lg\:px-2{padding-left:.5rem;padding-right:.5rem}.lg\:py-1{padding-top:.25rem;padding-bottom:.25rem}.lg\:py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.lg\:pb-2{padding-bottom:.5rem}.lg\:pl-6{padding-left:1.5rem}.lg\:pr-6{padding-right:1.5rem}.lg\:pt-2{padding-top:.5rem}.lg\:text-2xl{font-size:1.5rem;line-height:2rem}.lg\:text-3xl{font-size:1.875rem;line-height:2.25rem}.lg\:text-4xl{font-size:2.25rem;line-height:2.5rem}.lg\:text-sm{font-size:.875rem;line-height:1.25rem}.lg\:text-xl{font-size:1.25rem;line-height:1.75rem}}@media (min-width: 1280px){.xl\:block{display:block}} +.hljs{display:block;overflow-x:auto;padding:.5em;background:#F0F0F0}.hljs,.hljs-subst{color:#444}.hljs-comment{color:#888}.hljs-keyword,.hljs-attribute,.hljs-selector-tag,.hljs-meta-keyword,.hljs-doctag,.hljs-name{font-weight:700}.hljs-type,.hljs-string,.hljs-number,.hljs-selector-id,.hljs-selector-class,.hljs-quote,.hljs-template-tag,.hljs-deletion{color:#800}.hljs-title,.hljs-section{color:#800;font-weight:700}.hljs-regexp,.hljs-symbol,.hljs-variable,.hljs-template-variable,.hljs-link,.hljs-selector-attr,.hljs-selector-pseudo{color:#bc6060}.hljs-literal{color:#78a960}.hljs-built_in,.hljs-bullet,.hljs-code,.hljs-addition{color:#397300}.hljs-meta{color:#1f7199}.hljs-meta-string{color:#4d99bf}.mx-16{margin-left:4rem;margin-right:4rem}.my-8{margin-top:2rem;margin-bottom:2rem}.ml-0{margin-left:0}.ml-8{margin-left:2rem}.mr-5{margin-right:1.25rem}.mt-8{margin-top:2rem}.h-2{height:.5rem}.h-full{height:100%}.min-h-screen{min-height:100vh}.w-2\/5{width:40%}.w-3\/5{width:60%}.w-60{width:15rem}.w-auto{width:auto}.max-w-sm{max-width:24rem}.flex-grow,.grow{flex-grow:1}.cursor-pointer{cursor:pointer}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.space-x-0>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(0px * var(--tw-space-x-reverse));margin-left:calc(0px * calc(1 - var(--tw-space-x-reverse)))}.space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(1rem * var(--tw-space-x-reverse));margin-left:calc(1rem * calc(1 - var(--tw-space-x-reverse)))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.overflow-hidden{overflow:hidden}.border-gray-600{--tw-border-opacity: 1;border-color:rgb(75 85 99 / var(--tw-border-opacity))}.border-gray-700{--tw-border-opacity: 1;border-color:rgb(55 65 81 / var(--tw-border-opacity))}.border-gray-800{--tw-border-opacity: 1;border-color:rgb(31 41 55 / var(--tw-border-opacity))}.bg-gray-700{--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity))}.p-6{padding:1.5rem}.p-8{padding:2rem}.px-0{padding-left:0;padding-right:0}.px-12{padding-left:3rem;padding-right:3rem}.py-0{padding-top:0;padding-bottom:0}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-12{padding-top:3rem;padding-bottom:3rem}.py-14{padding-top:3.5rem;padding-bottom:3.5rem}.pb-96{padding-bottom:24rem}.align-middle{vertical-align:middle}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.tracking-tight{letter-spacing:-.025em}.shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.ring-offset-gray-800{--tw-ring-offset-color: #1f2937}.hover\:bg-gray-100:hover{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity))}.focus\:ring-blue-600:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(37 99 235 / var(--tw-ring-opacity))}@media (prefers-reduced-motion: no-preference){@keyframes pulse{50%{opacity:.5}}.motion-safe\:animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}}@media (prefers-color-scheme: dark){.dark\:border-gray-500{--tw-border-opacity: 1;border-color:rgb(107 114 128 / var(--tw-border-opacity))}.dark\:border-gray-600{--tw-border-opacity: 1;border-color:rgb(75 85 99 / var(--tw-border-opacity))}.dark\:border-gray-700{--tw-border-opacity: 1;border-color:rgb(55 65 81 / var(--tw-border-opacity))}.dark\:bg-gray-600{--tw-bg-opacity: 1;background-color:rgb(75 85 99 / var(--tw-bg-opacity))}.dark\:bg-gray-700{--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity))}.dark\:bg-gray-800{--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity))}.dark\:text-gray-100{--tw-text-opacity: 1;color:rgb(243 244 246 / var(--tw-text-opacity))}.dark\:text-gray-200{--tw-text-opacity: 1;color:rgb(229 231 235 / var(--tw-text-opacity))}.dark\:text-gray-400{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity))}.dark\:text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.dark\:ring-offset-gray-800{--tw-ring-offset-color: #1f2937}.dark\:hover\:bg-gray-800:hover{--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity))}.dark\:focus\:ring-blue-600:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(37 99 235 / var(--tw-ring-opacity))}}@media (min-width: 1024px){.lg\:w-1\/5{width:20%}.lg\:w-4\/5{width:80%}.lg\:flex-row{flex-direction:row}.lg\:space-x-8>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(2rem * var(--tw-space-x-reverse));margin-left:calc(2rem * calc(1 - var(--tw-space-x-reverse)))}.lg\:space-y-0>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(0px * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0px * var(--tw-space-y-reverse))}.lg\:text-2xl{font-size:1.5rem;line-height:2rem}.lg\:text-sm{font-size:.875rem;line-height:1.25rem}}@media (min-width: 1280px){.xl\:block{display:block}.xl\:hidden{display:none}}@font-face{font-family:IBM Plex Mono;src:url(/assets/IBMPlexMono-Regular-82ad22f5.woff2) format("woff2"),url(/assets/IBMPlexMono-Regular-06ba2f2e.woff) format("woff");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:IBM PLex Mono;src:url(/assets/IBMPlexMono-Italic-30cb963d.woff2) format("woff2"),url(/assets/IBMPlexMono-Italic-fc3301da.woff) format("woff");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:IBM PLex Mono;src:url(/assets/IBMPlexMono-Bold-3152ee89.woff2) format("woff2"),url(/assets/IBMPlexMono-Bold-6bb3fd98.woff) format("woff");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:IBM Plex Mono;src:url(/assets/IBMPlexMono-BoldItalic-6f4d360c.woff2) format("woff2"),url(/assets/IBMPlexMono-BoldItalic-5cd662b9.woff) format("woff");font-weight:700;font-style:italic;font-display:swap}*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.hljs{display:block;overflow-x:auto;padding:.5em;background:#2E3440}.hljs,.hljs-subst{color:#d8dee9}.hljs-selector-tag{color:#81a1c1}.hljs-selector-id{color:#8fbcbb;font-weight:700}.hljs-selector-class,.hljs-selector-attr{color:#8fbcbb}.hljs-selector-pseudo{color:#88c0d0}.hljs-addition{background-color:#a3be8c80}.hljs-deletion{background-color:#bf616a80}.hljs-built_in,.hljs-type,.hljs-class{color:#8fbcbb}.hljs-function{color:#88c0d0}.hljs-function>.hljs-title{color:#88c0d0}.hljs-keyword,.hljs-literal,.hljs-symbol{color:#81a1c1}.hljs-number{color:#b48ead}.hljs-regexp{color:#ebcb8b}.hljs-string{color:#a3be8c}.hljs-title{color:#8fbcbb}.hljs-params{color:#d8dee9}.hljs-bullet{color:#81a1c1}.hljs-code{color:#8fbcbb}.hljs-emphasis{font-style:italic}.hljs-formula{color:#8fbcbb}.hljs-strong{font-weight:700}.hljs-link:hover{text-decoration:underline}.hljs-quote{color:#4c566a}.hljs-comment: #FEFEFE; .hljs-doctag{color:#8fbcbb}.hljs-meta,.hljs-meta-keyword{color:#5e81ac}.hljs-meta-string{color:#a3be8c}.hljs-attr{color:#8fbcbb}.hljs-attribute{color:#d8dee9}.hljs-builtin-name,.hljs-name{color:#81a1c1}.hljs-section{color:#88c0d0}.hljs-tag{color:#81a1c1}.hljs-variable,.hljs-template-variable{color:#d8dee9}.hljs-template-tag{color:#5e81ac}.abnf .hljs-attribute{color:#88c0d0}.abnf .hljs-symbol{color:#ebcb8b}.apache .hljs-attribute{color:#88c0d0}.apache .hljs-section{color:#81a1c1}.arduino .hljs-built_in{color:#88c0d0}.aspectj .hljs-meta{color:#d08770}.aspectj>.hljs-title{color:#88c0d0}.bnf .hljs-attribute{color:#8fbcbb}.clojure .hljs-name{color:#88c0d0}.clojure .hljs-symbol{color:#ebcb8b}.coq .hljs-built_in{color:#88c0d0}.cpp .hljs-meta-string{color:#8fbcbb}.css .hljs-built_in{color:#88c0d0}.css .hljs-keyword{color:#d08770}.diff .hljs-meta,.ebnf .hljs-attribute{color:#8fbcbb}.glsl .hljs-built_in{color:#88c0d0}.groovy .hljs-meta:not(:first-child){color:#d08770}.haxe .hljs-meta,.java .hljs-meta{color:#d08770}.ldif .hljs-attribute{color:#8fbcbb}.lisp .hljs-name,.lua .hljs-built_in,.moonscript .hljs-built_in,.nginx .hljs-attribute{color:#88c0d0}.nginx .hljs-section{color:#5e81ac}.pf .hljs-built_in,.processing .hljs-built_in{color:#88c0d0}.scss .hljs-keyword,.stylus .hljs-keyword{color:#81a1c1}.swift .hljs-meta{color:#d08770}.vim .hljs-built_in{color:#88c0d0;font-style:italic}.yaml .hljs-meta{color:#d08770}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.invisible{visibility:hidden}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.\!sticky{position:sticky!important}.sticky{position:sticky}.inset-y-0{top:0;bottom:0}.bottom-0{bottom:0}.bottom-2{bottom:.5rem}.bottom-2\.5{bottom:.625rem}.left-0{left:0}.right-0{right:0}.right-2{right:.5rem}.right-2\.5{right:.625rem}.top-0{top:0}.z-0{z-index:0}.col-span-1{grid-column:span 1 / span 1}.col-span-3{grid-column:span 3 / span 3}.mx-12{margin-left:3rem;margin-right:3rem}.mx-2{margin-left:.5rem;margin-right:.5rem}.mx-4{margin-left:1rem;margin-right:1rem}.mx-48{margin-left:12rem;margin-right:12rem}.mx-6{margin-left:1.5rem;margin-right:1.5rem}.mx-auto{margin-left:auto;margin-right:auto}.my-1{margin-top:.25rem;margin-bottom:.25rem}.my-2{margin-top:.5rem;margin-bottom:.5rem}.my-4{margin-top:1rem;margin-bottom:1rem}.my-48{margin-top:12rem;margin-bottom:12rem}.my-6{margin-top:1.5rem;margin-bottom:1.5rem}.-mt-2{margin-top:-.5rem}.mb-0{margin-bottom:0}.mb-2{margin-bottom:.5rem}.mb-24{margin-bottom:6rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-4{margin-left:1rem}.ml-5{margin-left:1.25rem}.ml-6{margin-left:1.5rem}.mr-2{margin-right:.5rem}.mr-4{margin-right:1rem}.mt-12{margin-top:3rem}.mt-2{margin-top:.5rem}.mt-4{margin-top:1rem}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.h-10{height:2.5rem}.h-4{height:1rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-screen{height:100vh}.max-h-96{max-height:24rem}.max-h-fit{max-height:-moz-fit-content;max-height:fit-content}.w-10{width:2.5rem}.w-11\/12{width:91.666667%}.w-14{width:3.5rem}.w-32{width:8rem}.w-4{width:1rem}.w-6{width:1.5rem}.w-7{width:1.75rem}.w-8{width:2rem}.w-fit{width:-moz-fit-content;width:fit-content}.w-full{width:100%}.w-screen{width:100vw}.flex-shrink-0{flex-shrink:0}.grow{flex-grow:1}.border-collapse{border-collapse:collapse}.border-spacing-y-4{--tw-border-spacing-y: 1rem;border-spacing:var(--tw-border-spacing-x) var(--tw-border-spacing-y)}.rotate-180{--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.list-disc{list-style-type:disc}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-x-2{-moz-column-gap:.5rem;column-gap:.5rem}.gap-y-2{row-gap:.5rem}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-6>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(1.5rem * var(--tw-space-x-reverse));margin-left:calc(1.5rem * calc(1 - var(--tw-space-x-reverse)))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(2rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem * var(--tw-space-y-reverse))}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-hidden{overflow-y:hidden}.overflow-y-scroll{overflow-y:scroll}.whitespace-pre{white-space:pre}.break-words{overflow-wrap:break-word}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-b{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.border{border-width:1px}.border-b{border-bottom-width:1px}.border-l-4{border-left-width:4px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-none{border-style:none}.border-gray-200{--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity))}.border-gray-300{--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity))}.border-neutral-500{--tw-border-opacity: 1;border-color:rgb(115 115 115 / var(--tw-border-opacity))}.border-neutral-800{--tw-border-opacity: 1;border-color:rgb(38 38 38 / var(--tw-border-opacity))}.bg-gray-100{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity))}.bg-gray-200{--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity))}.bg-gray-50{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity))}.bg-gray-500{--tw-bg-opacity: 1;background-color:rgb(107 114 128 / var(--tw-bg-opacity))}.bg-gray-800{--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity))}.bg-gray-900{--tw-bg-opacity: 1;background-color:rgb(17 24 39 / var(--tw-bg-opacity))}.bg-green-600{--tw-bg-opacity: 1;background-color:rgb(22 163 74 / var(--tw-bg-opacity))}.bg-neutral-500{--tw-bg-opacity: 1;background-color:rgb(115 115 115 / var(--tw-bg-opacity))}.bg-neutral-600{--tw-bg-opacity: 1;background-color:rgb(82 82 82 / var(--tw-bg-opacity))}.bg-neutral-700{--tw-bg-opacity: 1;background-color:rgb(64 64 64 / var(--tw-bg-opacity))}.bg-neutral-800{--tw-bg-opacity: 1;background-color:rgb(38 38 38 / var(--tw-bg-opacity))}.bg-neutral-900{--tw-bg-opacity: 1;background-color:rgb(23 23 23 / var(--tw-bg-opacity))}.bg-orange-300{--tw-bg-opacity: 1;background-color:rgb(253 186 116 / var(--tw-bg-opacity))}.bg-red-800{--tw-bg-opacity: 1;background-color:rgb(153 27 27 / var(--tw-bg-opacity))}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity))}.bg-opacity-50{--tw-bg-opacity: .5}.fill-current{fill:currentColor}.fill-orange-300{fill:#fdba74}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-2{padding:.5rem}.p-2\.5{padding:.625rem}.p-4{padding:1rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-16{padding-left:4rem;padding-right:4rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-4{padding-top:1rem;padding-bottom:1rem}.pb-1{padding-bottom:.25rem}.pb-2{padding-bottom:.5rem}.pb-32{padding-bottom:8rem}.pb-4{padding-bottom:1rem}.pl-10{padding-left:2.5rem}.pl-2{padding-left:.5rem}.pl-3{padding-left:.75rem}.pl-4{padding-left:1rem}.pl-5{padding-left:1.25rem}.pl-6{padding-left:1.5rem}.pl-8{padding-left:2rem}.pr-2{padding-right:.5rem}.pr-4{padding-right:1rem}.pt-1{padding-top:.25rem}.pt-2{padding-top:.5rem}.pt-4{padding-top:1rem}.text-left{text-align:left}.text-center{text-align:center}.align-top{vertical-align:top}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-2xl{font-size:1.5rem;line-height:2rem}.text-base{font-size:1rem;line-height:1.5rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.italic{font-style:italic}.leading-normal{line-height:1.5}.text-black{--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity))}.text-blue-600{--tw-text-opacity: 1;color:rgb(37 99 235 / var(--tw-text-opacity))}.text-gray-400{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity))}.text-gray-500{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity))}.text-gray-700{--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity))}.text-gray-800{--tw-text-opacity: 1;color:rgb(31 41 55 / var(--tw-text-opacity))}.text-gray-900{--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity))}.text-neutral-200{--tw-text-opacity: 1;color:rgb(229 229 229 / var(--tw-text-opacity))}.text-orange-300{--tw-text-opacity: 1;color:rgb(253 186 116 / var(--tw-text-opacity))}.text-red-400{--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity))}.text-rose-600{--tw-text-opacity: 1;color:rgb(225 29 72 / var(--tw-text-opacity))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.underline{text-decoration-line:underline}.line-through{text-decoration-line:line-through}.underline-offset-4{text-underline-offset:4px}.outline{outline-style:solid}.outline-0{outline-width:0px}.invert{--tw-invert: invert(100%);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-200{transition-duration:.2s}.striped .col-span-3,.striped .col-span-2{--tw-bg-opacity: 1;background-color:rgb(212 212 212 / var(--tw-bg-opacity))}.hover\:bg-gray-700:hover{--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity))}.hover\:bg-gray-800:hover{--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity))}.hover\:bg-gray-900:hover{--tw-bg-opacity: 1;background-color:rgb(17 24 39 / var(--tw-bg-opacity))}.hover\:bg-green-700:hover{--tw-bg-opacity: 1;background-color:rgb(21 128 61 / var(--tw-bg-opacity))}.hover\:bg-neutral-500:hover{--tw-bg-opacity: 1;background-color:rgb(115 115 115 / var(--tw-bg-opacity))}.hover\:bg-neutral-600:hover{--tw-bg-opacity: 1;background-color:rgb(82 82 82 / var(--tw-bg-opacity))}.hover\:bg-neutral-700:hover{--tw-bg-opacity: 1;background-color:rgb(64 64 64 / var(--tw-bg-opacity))}.hover\:bg-neutral-800:hover{--tw-bg-opacity: 1;background-color:rgb(38 38 38 / var(--tw-bg-opacity))}.hover\:bg-neutral-900:hover{--tw-bg-opacity: 1;background-color:rgb(23 23 23 / var(--tw-bg-opacity))}.hover\:bg-red-900:hover{--tw-bg-opacity: 1;background-color:rgb(127 29 29 / var(--tw-bg-opacity))}.hover\:bg-white:hover{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity))}.hover\:fill-black:hover{fill:#000}.hover\:text-black:hover{--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity))}.hover\:text-gray-900:hover{--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity))}.focus\:border-blue-500:focus{--tw-border-opacity: 1;border-color:rgb(59 130 246 / var(--tw-border-opacity))}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-4:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-blue-500:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(59 130 246 / var(--tw-ring-opacity))}:is([dir=rtl] .rtl\:border-l){border-left-width:1px}:is([dir=rtl] .rtl\:border-r-0){border-right-width:0px}@media (prefers-color-scheme: dark){.dark\:border-gray-500{--tw-border-opacity: 1;border-color:rgb(107 114 128 / var(--tw-border-opacity))}.dark\:border-gray-600{--tw-border-opacity: 1;border-color:rgb(75 85 99 / var(--tw-border-opacity))}.dark\:border-neutral-700{--tw-border-opacity: 1;border-color:rgb(64 64 64 / var(--tw-border-opacity))}.dark\:bg-gray-600{--tw-bg-opacity: 1;background-color:rgb(75 85 99 / var(--tw-bg-opacity))}.dark\:bg-gray-700{--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity))}.dark\:text-gray-100{--tw-text-opacity: 1;color:rgb(243 244 246 / var(--tw-text-opacity))}.dark\:text-gray-400{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity))}.dark\:text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.dark\:placeholder-gray-400::-moz-placeholder{--tw-placeholder-opacity: 1;color:rgb(156 163 175 / var(--tw-placeholder-opacity))}.dark\:placeholder-gray-400::placeholder{--tw-placeholder-opacity: 1;color:rgb(156 163 175 / var(--tw-placeholder-opacity))}.dark\:ring-offset-gray-800{--tw-ring-offset-color: #1f2937}.dark\:focus\:border-blue-500:focus{--tw-border-opacity: 1;border-color:rgb(59 130 246 / var(--tw-border-opacity))}.dark\:focus\:ring-blue-500:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(59 130 246 / var(--tw-ring-opacity))}.dark\:focus\:ring-blue-600:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(37 99 235 / var(--tw-ring-opacity))}}@media (min-width: 640px){.sm\:my-1{margin-top:.25rem;margin-bottom:.25rem}.sm\:text-sm{font-size:.875rem;line-height:1.25rem}.sm\:text-xs{font-size:.75rem;line-height:1rem}}@media (min-width: 1024px){.lg\:mx-12{margin-left:3rem;margin-right:3rem}.lg\:mx-4{margin-left:1rem;margin-right:1rem}.lg\:mx-6{margin-left:1.5rem;margin-right:1.5rem}.lg\:my-1{margin-top:.25rem;margin-bottom:.25rem}.lg\:my-12{margin-top:3rem;margin-bottom:3rem}.lg\:my-4{margin-top:1rem;margin-bottom:1rem}.lg\:mb-4{margin-bottom:1rem}.lg\:ml-12{margin-left:3rem}.lg\:ml-4{margin-left:1rem}.lg\:mt-16{margin-top:4rem}.lg\:block{display:block}.lg\:grid{display:grid}.lg\:h-80{height:20rem}.lg\:w-80{width:20rem}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:gap-4{gap:1rem}.lg\:space-x-8>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(2rem * var(--tw-space-x-reverse));margin-left:calc(2rem * calc(1 - var(--tw-space-x-reverse)))}.lg\:p-6{padding:1.5rem}.lg\:px-12{padding-left:3rem;padding-right:3rem}.lg\:px-2{padding-left:.5rem;padding-right:.5rem}.lg\:py-1{padding-top:.25rem;padding-bottom:.25rem}.lg\:py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.lg\:pb-2{padding-bottom:.5rem}.lg\:pl-6{padding-left:1.5rem}.lg\:pr-6{padding-right:1.5rem}.lg\:pt-2{padding-top:.5rem}.lg\:text-2xl{font-size:1.5rem;line-height:2rem}.lg\:text-3xl{font-size:1.875rem;line-height:2.25rem}.lg\:text-4xl{font-size:2.25rem;line-height:2.5rem}.lg\:text-sm{font-size:.875rem;line-height:1.25rem}.lg\:text-xl{font-size:1.25rem;line-height:1.75rem}}@media (min-width: 1280px){.xl\:block{display:block}} diff --git a/assets/index-7ec2a84a.js b/assets/index-5f8bce62.js similarity index 94% rename from assets/index-7ec2a84a.js rename to assets/index-5f8bce62.js index fddef8f..643e35f 100644 --- a/assets/index-7ec2a84a.js +++ b/assets/index-5f8bce62.js @@ -438,13 +438,13 @@ There are some useful functions to help you manage your universes: Topos can interact with the physical world or react to events coming from outside the system (_MIDI_, physical control, etc). -## Midi input +## MIDI input -Topos can use MIDI input to estimate the bpm from incoming clock messages and to control sounds with incoming note and cc messages. Sending MIDI messages to Topos is like sending messages to far away universe; you can't expect a quick response, but the messages will be received and processed eventually. +Topos can use MIDI input to estimate the BPM from incoming Clock messages and to control sounds with incoming note and CC messages. Sending MIDI messages to Topos is like sending messages to a far away universe; you can't expect a quick response, but the messages will be received and processed eventually. -### Note input +### Note Input -Midi input can be enabled in the settings panel. Once you have done that, you can use the following functions to control values. All methods have channel parameter as optional value to receive only notes from a certain channel: +MIDI input can be enabled in the settings panel. Once you have done that, you can use the following functions to control values. All methods have channel parameter as optional value to receive only notes from a certain channel: * active_notes(channel?: number): returns array of the active notes / pressed keys as an array of MIDI note numbers (0-127). Returns undefined if no notes are active. * sticky_notes(channel?: number): returns array of the last pressed keys as an array of MIDI note numbers (0-127). Notes are added and removed from the list with the "Note on"-event. Returns undefined if no keys have been pressed. * last_note(channel?: number): returns the last note that has been received. Returns 60 if no other notes have been received. @@ -459,26 +459,26 @@ ${e("Play active notes as arpeggios",` beat(0.25) && active_notes() && sound('juno').note( active_notes().beat(0.5)+[12,24].beat(0.25) ).cutoff(300 + usine(1/4) * 2000).out() - `,!0)} + `,!1)} ${e("Play continous arpeggio with sticky notes",` beat(0.25) && sticky_notes() && sound('arp') .note(sticky_notes().palindrome().beat(0.25)).out() - `,!0)} + `,!1)} ${e("Play last note",` beat(0.5) && sound('sawtooth').note(last_note()) .vib([1, 3, 5].beat(1)) .vibmod([1,3,2,4].beat(2)).out() - `,!0)} + `,!1)} ${e("Play buffered note",` beat(1) && buffer() && sound('sine').note(buffer_note()).out() - `,!0)} + `,!1)} -### Midi CC input +### MIDI CC Input -Midi CC messages can be used to control any value in Topos. Midi input can be defined in Settings and last received CC message can be used to control any numeric value within Topos. +Midi CC messages can be used to control any value in Topos. MIDI input can be defined in Settings and last received CC message can be used to control any numeric value within Topos. Currently supported methods for CC input are: * last_cc(control: number, channel?: number): Returns last received CC value for given control number (and optional channel). By default last CC value is last value from ANY channel or 64 if no CC messages have been received. @@ -499,18 +499,21 @@ beat(last_cc(74)/127*.5) :: sound('sine') .cutoff(last_cc(76)*3*usine()) .sustain(last_cc(74)/127*.25) .out() - `,!0)} + `,!1)} -### Run scripts with mini note messages and channels +### Run scripts with MIDI -Midi note messages with channels can also be used to run scripts. This can be enabled in the settings panel by setting "Route channels to scripts". +MIDI note messages with channels can also be used to trigger scripts. +This can be enabled in the settings panel by setting _Route channels to scripts_. -### Midi clock +### MIDI clock Synchronisation -Topos can controlled from external hadware or software using Midi clock messages. To enable this feature, you need to connect a MIDI input as Midi Clock in the settings panel. Once you have done that, Topos will listen to incoming clock messages and will use them to estimate the current bpm. Topos will also listen to Start, Stop and Continue messages to start and stop the evaluation. Different MIDI devices can send clock at different resolution, define Clock PPQN in settings to match the resolution of your device. +Topos can controlled from external hadware or software using MIDI clock messages. To enable this feature, you need to connect a MIDI input as Midi Clock in the settings panel. +Once you have done that, Topos will listen to incoming Clock messages and will use them to estimate the current BPM. Topos will also listen to Start, Stop and Continue messages to start and stop the evaluation. +Different MIDI devices can send clock at different resolution, define Clock PPQN in settings to match the resolution of your device. -## Mouse input +## Mouse Input You can get the current position of the mouse on the screen by using the following functions: @@ -539,9 +542,6 @@ beat(.25) :: sound('sine') .vel(0.2) .room(0.9).out() `,!0)} - - - `},fP=n=>{const e=br(n);return` # Time @@ -1020,7 +1020,7 @@ You **do not need to have any prior knowledge of programming** to use Topos. It The code you enter in any of the scripts is evaluated in strict mode. This tells your browser that the code you run can be optimized quite agressively. We need this because by default, **the global script is evaluated 48 times per beat**. It also means that you can crash at the speed of light :smile:. The local and initialisation scripts are evaluated on demand, one run at a time. There are some things to keep in mind: - **about variables:** the state of your variables is not kept between iterations. If you write let a = 2 and change the value later on, the value will be reset to 2 after each run! There are other ways to deal with variables and to share variables between scripts! Some variables like **iterators** can keep their state between iterations because they are saved **with the file itself**. -- **about errors and printing:** your code will crash! Don't worry, it will hopefully try to crash in the most gracious way possible. To check if your code is erroring, you will have to open the dev console with ${Ot("Ctrl + Shift + I")}. You cannot directly use console.log('hello, world') in the interface. You will have to open the console as well to see your messages being printed there! +- **about errors and printing:** your code will crash! Don't worry, it will hopefully try to crash in the most gracious way possible. To check if your code is erroring, you will have to open the dev console with ${Ot("Ctrl + Shift + I")}. You cannot directly use console.log('hello, world') in the interface but you can use log(message) to print a one line message. You will have to open the console as well to see your messages being printed there! - **about new syntax:** sometimes, we have taken liberties with the JavaScript syntax in order to make it easier/faster to write on stage. && can also be written :: or -> because it is faster to type or better for the eyes! ## Common idioms @@ -1260,7 +1260,7 @@ beat(1) :: sound('kick').shape(0.35).out()`,!0)}; ## Filters -There are three basic filters: a _lowpass_, _highpass_ and _bandpass_ filters with rather soft slope. Each of them can take up to two arguments. You can also use only the _cutoff_ frequency and the resonance will stay to its default nominal value. +There are three basic filters: a _lowpass_, _highpass_ and _bandpass_ filters with rather soft slope. Each of them can take up to two arguments. You can also use only the _cutoff_ frequency and the resonance will stay to its default nominal value. You will learn more about the usage of filters in the synths page! | Method | Alias | Description | |------------|-------|-----------------------------------------| @@ -1325,7 +1325,7 @@ beat(.5)::snd('pad').crush([16, 8, 4].beat(2)).clip(.5).out() `},OP=()=>` # Keybindings -Topos is made to be controlled entirely with a keyboard. It is recommanded to stop using the mouse as much as possible when you are _live coding_. Some of the keybindings might not work like expected on Windows/Linux. They all work on MacOS. A fix is on the way. Here is a list of the most important keybindings: +Topos is made to be controlled entirely with a keyboard. It is recommanded to stop using the mouse as much as possible when you are _live coding_. Here is a list of the most important keybindings: ## Transport @@ -2553,7 +2553,7 @@ I won't teach you how to play with Hydra. You can find some great resources on t ${r} \`\`\` -`},dE=n=>(n.api.codeExamples={},{introduction:aP(n),interface:pP(n),interaction:hP(n),code:gP(n),time:fP(n),sound:SP(n),samples:lP(n),synths:IP(n),chaining:cP(n),patterns:EP(n),ziffers:yP(n),midi:mP(n),lfos:CP(n),variables:vP(n),probabilities:TP(n),functions:bP(n),reference:AP(),shortcuts:OP(),bonus:RP(n),about:_P()}),SI=n=>new Promise((e,t)=>setTimeout(()=>t(new Error("Operation took too long")),n)),OI=n=>n.replace(/->/g,"&&").replace(/::/g,"&&"),jg=(n,e)=>new Promise((t,r)=>{try{Function(`"use strict";try{${OI(e)}} catch (e) {console.log(e); _reportError(e);};`).call(n.api),t(!0)}catch(i){n.error_line.innerHTML=i,console.log(i),t(!1)}}),Ja=new Map,NP=20,wP=(n,e)=>{Ja.size>=NP&&Ja.delete(Ja.keys().next().value),Ja.set(n,e)},ls=async(n,e,t=5e3)=>{try{e.evaluations++;const r=e.candidate;if(Ja.has(r))Ja.get(r).call(n.api);else{const i=`let i = ${e.evaluations};`+r;if(await Promise.race([jg(n,i),SI(t)])){e.committed=e.candidate;const a=new Function(`"use strict";try{${OI(i)}} catch (e) {console.log(e); _reportError(e);};`);wP(r,a)}else await DP(n,e,t)}}catch(r){n.error_line.innerHTML=r,console.log(r)}},DP=async(n,e,t=1e3)=>{try{await Promise.race([jg(n,e.committed),SI(t)]),e.evaluations&&e.evaluations++}catch(r){n.error_line.innerHTML=r,console.log(r)}},xP=async(n,e)=>{await jg(n,e)},pE=(n,e)=>String(n).padStart(e,"0");class kP extends AudioWorkletNode{constructor(t,r,i){super(t,"transport",r);b(this,"handleMessage",t=>{if(t.data&&t.data.type==="bang"){this.app.settings.send_clock&&this.app.api.MidiConnection.sendMidiClock(),this.app.clock.tick++;const r=this.app.clock.convertTicksToTimeposition(this.app.clock.tick);this.app.clock.time_position=r,this.timeviewer.innerHTML=`${pE(r.bar,2)}:${r.beat+1}:${pE(r.pulse,2)} / ${this.app.clock.bpm}`,this.app.exampleIsPlaying?ls(this.app,this.app.example_buffer):ls(this.app,this.app.global_buffer)}});this.app=i,this.port.addEventListener("message",this.handleMessage),this.port.start(),this.timeviewer=document.getElementById("timeviewer")}start(){this.port.postMessage("start")}pause(){this.port.postMessage("pause")}setBPM(t){this.port.postMessage({type:"bpm",value:t})}setPPQN(t){this.port.postMessage({type:"ppqn",value:t})}stop(){this.port.postMessage("stop")}}const LP="/assets/TransportProcessor-b463db54.js";class MP{constructor(e,t){b(this,"ctx");b(this,"transportNode");b(this,"_bpm");b(this,"time_signature");b(this,"time_position");b(this,"_ppqn");b(this,"tick");this.app=e,this.time_position={bar:-1,beat:-1,pulse:-1},this.time_signature=[4,4],this.tick=-1,this._bpm=120,this._ppqn=48,this.transportNode=null,this.ctx=t,t.audioWorklet.addModule(LP).then(r=>(this.transportNode=new kP(t,{},this.app),this.transportNode.connect(t.destination),r)).catch(r=>{console.log("Error loading TransportProcessor.js:",r)})}convertTicksToTimeposition(e){const t=this.app.clock.time_signature[0],r=e%this.app.clock.ppqn,i=Math.floor(e/this.app.clock.ppqn),s=Math.floor(i/t),a=Math.floor(i%t);return{bar:s,beat:a,pulse:r}}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}get bpm(){return this._bpm}set bpm(e){var t;e>0&&this._bpm!==e&&(this._bpm=e,(t=this.transportNode)==null||t.setBPM(e))}get ppqn(){return this._ppqn}set ppqn(e){var t;e>0&&this._ppqn!==e&&(this._ppqn=e,(t=this.transportNode)==null||t.setPPQN(e))}convertPulseToSecond(e){return e*this.pulse_duration}start(){var e;this.app.audioContext.resume(),this.app.api.MidiConnection.sendStartMessage(),(e=this.transportNode)==null||e.start()}pause(){var e;(e=this.transportNode)==null||e.pause(),this.app.api.MidiConnection.sendStopMessage()}stop(){var e;this.app.clock.tick=-1,this.app.api.MidiConnection.sendStopMessage(),(e=this.transportNode)==null||e.stop()}}const PP={"+":(n,e)=>n+e,"-":(n,e)=>n-e,"*":(n,e)=>n*e,"/":(n,e)=>n/e,"%":(n,e)=>n%e,"^":(n,e)=>n**e,"<<":(n,e)=>n<>":(n,e)=>n>>e,"&":(n,e)=>n&e,"|":(n,e)=>n|e},Jg=.25,BP={octave:0,key:"C4",scale:"MAJOR",measure:0,degrees:!1},UP={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},FP={C:0,Cs:1,D:2,Eb:3,E:4,F:5,Fs:6,G:7,Ab:8,A:9,Bb:10,B:11},YP={0:"C",1:"Cs",2:"D",3:"Eb",4:"E",5:"F",6:"Fs",7:"G",8:"Ab",9:"A",10:"Bb",11:"B"},hE=["Gb","Cs","Ab","Eb","Bb","F","C","G","D","A","E","B","Fs"],$P={"#":1,b:-1,s:1},GP={i:1,v:5,x:10,l:50,c:100,d:500,m:1e3},QP=()=>{const n=[2,1,2,2,1,2,2],e=[2,2,1,2,2,2,1],t=[2,1,2,2,1,3,1],r=[2,2,1,2,1,3,1],i=[3,2,2,3,2],s=[2,3,2,3,2],a=[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],T=[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:n,"HARMONIC MINOR":t,"HARMONIC MAJOR":r,"MINOR PENTATONIC":i,"SUSPENDED PENTATONIC":s,"BLUES MAJOR":o,"BLUES MINOR":l,WHOLE:a,"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:s,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:a,LYDIAN:[2,2,2,1,2,2,1],MIXOLYDIAN:[2,2,1,2,2,1,2],AEOLIAN:n,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:r,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:T,"MARJOR BEBOP":T,"BEBOP MAJOR":T,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]}},Lc=QP(),qP=()=>{const n=Object.keys(Lc),e=n[Math.floor(Math.random()*n.length)];return Lc[e]},vi=n=>Lc[n.toUpperCase()],e_=n=>n.toUpperCase()in Lc,VP=n=>vi(n).length,zP=()=>{const n=[0,4,7],e=[0,3,7],t=[0,4,7,11],r=[0,4,7,10],i=[0,3,7,10],s=[0,4,8],a=[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:a,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:r,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:n,maj:n,M:n,minor:e,min:e,m:e,major7:t,dom7:r,7:r,M7:t,m7:i,augmented:s,a:s,aug:s,diminished:a,diminished7:o,dim7:o,halfdim:l,m7b5:l,"m7-5":l},_=Object.keys(m);return[m,_]},[fE,EG]=zP(),Ym=(n="")=>{let e=0,t=0,r=0,i=0;function s(){const a=(e^e<<11)>>>0;return e=t,t=r,r=i,i^=(i>>>19^a^a>>>8)>>>0,(i>>>0)/4294967296}for(let a=0;aArray.isArray(n)?n.map(e=>ei(e)):n&&typeof n=="object"?Object.getOwnPropertyNames(n).reduce((e,t)=>(Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t)),e[t]=ei(n[t]),e),Object.create(Object.getPrototypeOf(n))):n,EI=n=>{try{return new Function(`"use strict";return (${n})`)()}catch(e){throw new Error(`Error in eval: ${e}`)}},HP=(n,e)=>(n%e+e)%e,bI=function(){function n(i,s){function a(){this.constructor=i}a.prototype=s.prototype,i.prototype=new a}function e(i,s,a,o){var l=Error.call(this,i);return Object.setPrototypeOf&&Object.setPrototypeOf(l,e.prototype),l.expected=s,l.found=a,l.location=o,l.name="SyntaxError",l}n(e,Error);function t(i,s,a){return a=a||" ",i.length>s?i:(s-=i.length,a+=a.repeat(s),i+a.slice(0,s))}e.prototype.format=function(i){var s="Error: "+this.message;if(this.location){var a=null,o;for(o=0;o(n.api.codeExamples={},{introduction:aP(n),interface:pP(n),interaction:hP(n),code:gP(n),time:fP(n),sound:SP(n),samples:lP(n),synths:IP(n),chaining:cP(n),patterns:EP(n),ziffers:yP(n),midi:mP(n),lfos:CP(n),variables:vP(n),probabilities:TP(n),functions:bP(n),reference:AP(),shortcuts:OP(),bonus:RP(n),about:_P()}),SI=n=>new Promise((e,t)=>setTimeout(()=>t(new Error("Operation took too long")),n)),OI=n=>n.replace(/->/g,"&&").replace(/::/g,"&&"),jg=(n,e)=>new Promise((t,r)=>{try{Function(`"use strict";try{${OI(e)}} catch (e) {console.log(e); _reportError(e);};`).call(n.api),t(!0)}catch(i){n.error_line.innerHTML=i,console.log(i),t(!1)}}),Ja=new Map,NP=20,wP=(n,e)=>{Ja.size>=NP&&Ja.delete(Ja.keys().next().value),Ja.set(n,e)},ls=async(n,e,t=5e3)=>{try{e.evaluations++;const r=e.candidate;if(Ja.has(r))Ja.get(r).call(n.api);else{const i=`let i = ${e.evaluations};`+r;if(await Promise.race([jg(n,i),SI(t)])){e.committed=e.candidate;const a=new Function(`"use strict";try{${OI(i)}} catch (e) {console.log(e); _reportError(e);};`);wP(r,a)}else await DP(n,e,t)}}catch(r){n.error_line.innerHTML=r,console.log(r)}},DP=async(n,e,t=1e3)=>{try{await Promise.race([jg(n,e.committed),SI(t)]),e.evaluations&&e.evaluations++}catch(r){n.error_line.innerHTML=r,console.log(r)}},xP=async(n,e)=>{await jg(n,e)},pE=(n,e)=>String(n).padStart(e,"0");class kP extends AudioWorkletNode{constructor(t,r,i){super(t,"transport",r);b(this,"handleMessage",t=>{if(t.data&&t.data.type==="bang"){this.app.settings.send_clock&&this.app.api.MidiConnection.sendMidiClock(),this.app.clock.tick++;const r=this.app.clock.convertTicksToTimeposition(this.app.clock.tick);this.app.clock.time_position=r,this.timeviewer.innerHTML=`${pE(r.bar,2)}:${r.beat+1}:${pE(r.pulse,2)} / ${this.app.clock.bpm}`,this.app.exampleIsPlaying?ls(this.app,this.app.example_buffer):ls(this.app,this.app.global_buffer)}});this.app=i,this.port.addEventListener("message",this.handleMessage),this.port.start(),this.timeviewer=document.getElementById("timeviewer")}start(){this.port.postMessage("start")}pause(){this.port.postMessage("pause")}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("stop")}}const LP="/assets/TransportProcessor-6c073985.js";class MP{constructor(e,t){b(this,"ctx");b(this,"transportNode");b(this,"_bpm");b(this,"time_signature");b(this,"time_position");b(this,"_ppqn");b(this,"tick");this.app=e,this.time_position={bar:-1,beat:-1,pulse:-1},this.time_signature=[4,4],this.tick=-1,this._bpm=120,this._ppqn=48,this.transportNode=null,this.ctx=t,t.audioWorklet.addModule(LP).then(r=>(this.transportNode=new kP(t,{},this.app),this.transportNode.connect(t.destination),r)).catch(r=>{console.log("Error loading TransportProcessor.js:",r)})}convertTicksToTimeposition(e){const t=this.app.clock.time_signature[0],r=e%this.app.clock.ppqn,i=Math.floor(e/this.app.clock.ppqn),s=Math.floor(i/t),a=Math.floor(i%t);return{bar:s,beat:a,pulse:r}}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}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&&(this._bpm=e,(t=this.transportNode)==null||t.setBPM(e))}get ppqn(){return this._ppqn}set ppqn(e){var t;e>0&&this._ppqn!==e&&(this._ppqn=e,(t=this.transportNode)==null||t.setPPQN(e))}convertPulseToSecond(e){return e*this.pulse_duration}start(){var e;this.app.audioContext.resume(),this.app.api.MidiConnection.sendStartMessage(),(e=this.transportNode)==null||e.start()}pause(){var e;(e=this.transportNode)==null||e.pause(),this.app.api.MidiConnection.sendStopMessage()}stop(){var e;this.app.clock.tick=-1,this.app.api.MidiConnection.sendStopMessage(),(e=this.transportNode)==null||e.stop()}}const PP={"+":(n,e)=>n+e,"-":(n,e)=>n-e,"*":(n,e)=>n*e,"/":(n,e)=>n/e,"%":(n,e)=>n%e,"^":(n,e)=>n**e,"<<":(n,e)=>n<>":(n,e)=>n>>e,"&":(n,e)=>n&e,"|":(n,e)=>n|e},Jg=.25,BP={octave:0,key:"C4",scale:"MAJOR",measure:0,degrees:!1},UP={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},FP={C:0,Cs:1,D:2,Eb:3,E:4,F:5,Fs:6,G:7,Ab:8,A:9,Bb:10,B:11},YP={0:"C",1:"Cs",2:"D",3:"Eb",4:"E",5:"F",6:"Fs",7:"G",8:"Ab",9:"A",10:"Bb",11:"B"},hE=["Gb","Cs","Ab","Eb","Bb","F","C","G","D","A","E","B","Fs"],$P={"#":1,b:-1,s:1},GP={i:1,v:5,x:10,l:50,c:100,d:500,m:1e3},QP=()=>{const n=[2,1,2,2,1,2,2],e=[2,2,1,2,2,2,1],t=[2,1,2,2,1,3,1],r=[2,2,1,2,1,3,1],i=[3,2,2,3,2],s=[2,3,2,3,2],a=[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],T=[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:n,"HARMONIC MINOR":t,"HARMONIC MAJOR":r,"MINOR PENTATONIC":i,"SUSPENDED PENTATONIC":s,"BLUES MAJOR":o,"BLUES MINOR":l,WHOLE:a,"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:s,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:a,LYDIAN:[2,2,2,1,2,2,1],MIXOLYDIAN:[2,2,1,2,2,1,2],AEOLIAN:n,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:r,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:T,"MARJOR BEBOP":T,"BEBOP MAJOR":T,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]}},Lc=QP(),qP=()=>{const n=Object.keys(Lc),e=n[Math.floor(Math.random()*n.length)];return Lc[e]},vi=n=>Lc[n.toUpperCase()],e_=n=>n.toUpperCase()in Lc,VP=n=>vi(n).length,zP=()=>{const n=[0,4,7],e=[0,3,7],t=[0,4,7,11],r=[0,4,7,10],i=[0,3,7,10],s=[0,4,8],a=[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:a,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:r,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:n,maj:n,M:n,minor:e,min:e,m:e,major7:t,dom7:r,7:r,M7:t,m7:i,augmented:s,a:s,aug:s,diminished:a,diminished7:o,dim7:o,halfdim:l,m7b5:l,"m7-5":l},_=Object.keys(m);return[m,_]},[fE,EG]=zP(),Ym=(n="")=>{let e=0,t=0,r=0,i=0;function s(){const a=(e^e<<11)>>>0;return e=t,t=r,r=i,i^=(i>>>19^a^a>>>8)>>>0,(i>>>0)/4294967296}for(let a=0;aArray.isArray(n)?n.map(e=>ei(e)):n&&typeof n=="object"?Object.getOwnPropertyNames(n).reduce((e,t)=>(Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t)),e[t]=ei(n[t]),e),Object.create(Object.getPrototypeOf(n))):n,EI=n=>{try{return new Function(`"use strict";return (${n})`)()}catch(e){throw new Error(`Error in eval: ${e}`)}},HP=(n,e)=>(n%e+e)%e,bI=function(){function n(i,s){function a(){this.constructor=i}a.prototype=s.prototype,i.prototype=new a}function e(i,s,a,o){var l=Error.call(this,i);return Object.setPrototypeOf&&Object.setPrototypeOf(l,e.prototype),l.expected=s,l.found=a,l.location=o,l.name="SyntaxError",l}n(e,Error);function t(i,s,a){return a=a||" ",i.length>s?i:(s-=i.length,a+=a.repeat(s),i+a.slice(0,s))}e.prototype.format=function(i){var s="Error: "+this.message;if(this.location){var a=null,o;for(o=0;o `+u+` `+m+` | `+c.line+" | "+_+` @@ -2565,7 +2565,7 @@ I won't teach you how to play with Hydra. You can find some great resources on t `+c.line+" | "+_+` `+m+" | "+t("",l.column-1," ")+t("",I,"^")}else s+=` at `+u}return s},e.buildMessage=function(i,s){var a={literal:function(_){return'"'+l(_.text)+'"'},class:function(_){var T=_.parts.map(function(I){return Array.isArray(I)?c(I[0])+"-"+c(I[1]):c(I)});return"["+(_.inverted?"^":"")+T.join("")+"]"},any:function(){return"any character"},end:function(){return"end of input"},other:function(_){return _.description}};function o(_){return _.charCodeAt(0).toString(16).toUpperCase()}function l(_){return _.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(T){return"\\x0"+o(T)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(T){return"\\x"+o(T)})}function c(_){return _.replace(/\\/g,"\\\\").replace(/\]/g,"\\]").replace(/\^/g,"\\^").replace(/-/g,"\\-").replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(T){return"\\x0"+o(T)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(T){return"\\x"+o(T)})}function u(_){return a[_.type](_)}function p(_){var T=_.map(u),I,R;if(T.sort(),T.length>0){for(I=1,R=1;I",R="@",L=":",$="/",K="(",f=")",E="[:",S="]",N="[",k="{",x="}",M="+",G="*",te="%",ne="^",re="&",ee=">>",B="<<",Q="_",j="?",Z="!",ue="r",le="#",Ee="b",De="iii",xe="ii",be="iv",Re="i",ce="vii",ke="vi",Ze="v",Le=/^[0-9]/,tt=/^[ \n\r\t]/,nt=/^[a-z]/,ze=/^[a-z_]/,St=/^[a-z_0-9]/,mt=/^[mklpdcwyhnqaefsxtgujzo]/,At=/^[a-zA-Z0-9]/,Rt=/^[a-zA-Z0-9\-*+]/,at=/^[A-G]/,$e=/^[bs]/,hr=lt("-",!1),rt=Zr([["0","9"]],!1,!1),He=lt(".",!1),Br=zs("whitespace"),cr=Zr([" ",` -`,"\r"," "],!1,!1),vr=lt(",",!1),W=lt("|",!1),_e=Zr([["a","z"]],!1,!1),we=Zr([["a","z"],"_"],!1,!1),Ne=Zr([["a","z"],"_",["0","9"]],!1,!1),Je=lt("<",!1),ye=lt(">",!1),Ht=lt("@",!1),ut=lt(":",!1),It=Zr(["m","k","l","p","d","c","w","y","h","n","q","a","e","f","s","x","t","g","u","j","z","o"],!1,!1),Vr=lt("/",!1),ht=lt("(",!1),Zt=lt(")",!1),Ct=lt("[:",!1),Be=lt("]",!1),Ur=lt("[",!1),Fn=lt("{",!1),dt=lt("}",!1),zr=lt("+",!1),Ir=lt("*",!1),Ii=lt("%",!1),Rr=lt("^",!1),Wt=lt("&",!1),yn=lt(">>",!1),Ji=lt("<<",!1),li=lt("_",!1),ea=lt("?",!1),cn=lt("!",!1),ci=lt("r",!1),An=Zr([["a","z"],["A","Z"],["0","9"]],!1,!1),Kt=lt("#",!1),ui=lt("b",!1),di=Zr([["a","z"],["A","Z"],["0","9"],"-","*","+"],!1,!1),q=Zr([["A","G"]],!1,!1),ie=Zr(["b","s"],!1,!1),de=lt("iii",!1),ge=lt("ii",!1),Ae=lt("iv",!1),Qe=lt("i",!1),Me=lt("vii",!1),yt=lt("vi",!1),Nr=lt("v",!1),Hr=function(v){return v.filter(w=>w)},Da=function(){return parseFloat(Yr())},ta=function(){return parseInt(Yr())},Ds=function(){return parseInt(Yr())},Wr=function(){},xs=function(v){return Ut(XP,{sound:v})},xa=function(){return Yr()},ka=function(v){return Ut(Io,{items:v})},ks=function(v){return v},La=function(v,w){return Ut(ZP,{item:v,sound:w})},Ls=function(v,w){return Ut(KP,{item:v,soundIndex:w})},Ma=function(v){return v},Fr=function(){return UP[Yr()]},Ms=function(v,w){return v/w},Ps=function(v){return v.filter(w=>w)},Pa=function(v){return Ut(Io,{items:v})},Ba=function(v,w){return w?Ut(mE,{item:v,times:w}):Ut(gE,{items:v})},Bs=function(v){return v},Ua=function(v,w,P){return Ut(r3,{left:v,operation:w,right:P})},Us=function(v,w){return Ut(t3,{items:v,times:w})},Fa=function(v){return Ut(vI,{items:v})},Fs=function(v){return v.map(w=>typeof w=="number"?w:void 0)},Ys=function(){return Math.ceil(EI(Yr()))},un=function(v){var w=v.filter(P=>P).map(P=>Ut(ti,{pitch:P[0]},P.toString()));return Ut(gE,{items:w})},bt=function(v){return v},$s=function(v){return v},Ri=function(){},Gs=function(v){return Ut(Io,{items:v})},pi=function(v){return Ut(JP,{octave:v})},Qs=function(){return Yr().split("").reduce((v,w)=>v+(w==="^"?1:-1),0)},Ni=function(){return Ut(Mc,{seededRandom:s.seededRandom})},Ya=function(v,w){return Ut(Mc,{min:v,max:w,seededRandom:s.seededRandom})},$a=function(v,w){return Ut(mE,{item:v,times:w})},qs=function(v){return Ut(e3,{duration:v})},wi=function(v){return v},Ga=function(v){return Ut($m,{duration:v})},Di=function(v,w,P,X){const oe=v?s.nodeOptions.octave+v:s.nodeOptions.octave;return Ut(ti,{duration:w,pitch:X,pitchOctave:oe,add:P})},xi=function(v){return v.reduce((w,P)=>w+(P==="#"?1:-1),0)},Qa=function(v,w,P){return Ut(Ra,{pitches:[v].concat(w),inversion:P})},ra=function(){return Yr()},hi=function(v){return v},fr=function(){return Yr()},qa=function(v,w,P,X,oe){const ve=s.nodeOptions.scaleName?s.nodeOptions.scaleName:"MAJOR",gt=s.nodeOptions.key?s.nodeOptions.key:"C",hn=d3(X,P,ve,v,w),Zs=w||s.nodeOptions.duration,mR=v?s.nodeOptions.octave+v:s.nodeOptions.octave;return Ut(Ra,{duration:Zs,chordOctave:mR,pitches:hn,chordName:X,inversion:oe,scaleName:ve,key:gt})},Xr=function(v,w,P){const X=s.nodeOptions.scaleName?s.nodeOptions.scaleName:"MAJOR",oe=s.nodeOptions.key?s.nodeOptions.key:"C";return Ut(jP,{roman:v,chordName:w,inversion:P,scaleName:X,key:oe})},na=function(v){const w=s.nodeOptions.scaleName?s.nodeOptions.scaleName:"MAJOR",P=s.nodeOptions.key?s.nodeOptions.key:"C",X=O3(v,P,w);return Ut(ti,{pitch:X.pc,add:X.add,scaleName:w,key:P})},A=0,We=0,Va=[{line:1,column:1}],dn=0,Vs=[],Oe=0,me={},ia;if("startRule"in s){if(!(s.startRule in l))throw new Error(`Can't start parsing from rule "`+s.startRule+'".');c=l[s.startRule]}function Yr(){return i.substring(We,A)}function ul(){return d(We,A)}function lt(v,w){return{type:"literal",text:v,ignoreCase:w}}function Zr(v,w,P){return{type:"class",parts:v,inverted:w,ignoreCase:P}}function dl(){return{type:"end"}}function zs(v){return{type:"other",description:v}}function pl(v){var w=Va[v],P;if(w)return w;for(P=v-1;!Va[P];)P--;for(w=Va[P],w={line:w.line,column:w.column};Pdn&&(dn=A,Vs=[]),Vs.push(v))}function g(v,w,P){return new e(e.buildMessage(v,w),v,w,P)}function O(){var v,w,P=A*56+0,X=me[P];return X?(A=X.nextPos,X.result):(v=A,w=Xt(),w!==a&&(We=v,w=Hr(w)),v=w,me[P]={nextPos:A,result:v},v)}function C(){var v,w,P,X,oe,ve,gt,hn=A*56+1,Zs=me[hn];if(Zs)return A=Zs.nextPos,Zs.result;for(v=A,w=A,i.charCodeAt(A)===45?(P=u,A++):(P=a,Oe===0&&h(hr)),P===a&&(P=null),X=[],Le.test(i.charAt(A))?(oe=i.charAt(A),A++):(oe=a,Oe===0&&h(rt));oe!==a;)X.push(oe),Le.test(i.charAt(A))?(oe=i.charAt(A),A++):(oe=a,Oe===0&&h(rt));if(i.charCodeAt(A)===46?(oe=p,A++):(oe=a,Oe===0&&h(He)),oe!==a){if(ve=[],Le.test(i.charAt(A))?(gt=i.charAt(A),A++):(gt=a,Oe===0&&h(rt)),gt!==a)for(;gt!==a;)ve.push(gt),Le.test(i.charAt(A))?(gt=i.charAt(A),A++):(gt=a,Oe===0&&h(rt));else ve=a;ve!==a?(P=[P,X,oe,ve],w=P):(A=w,w=a)}else A=w,w=a;if(w===a)if(w=A,i.charCodeAt(A)===46?(P=p,A++):(P=a,Oe===0&&h(He)),P!==a){if(X=[],Le.test(i.charAt(A))?(oe=i.charAt(A),A++):(oe=a,Oe===0&&h(rt)),oe!==a)for(;oe!==a;)X.push(oe),Le.test(i.charAt(A))?(oe=i.charAt(A),A++):(oe=a,Oe===0&&h(rt));else X=a;X!==a?(P=[P,X],w=P):(A=w,w=a)}else A=w,w=a;return w!==a&&(We=v,w=Da()),v=w,me[hn]={nextPos:A,result:v},v}function y(){var v,w,P=A*56+2,X=me[P];return X?(A=X.nextPos,X.result):(v=A,i.charCodeAt(A)===45?A++:Oe===0&&h(hr),Le.test(i.charAt(A))?(w=i.charAt(A),A++):(w=a,Oe===0&&h(rt)),w!==a?(We=v,v=ta()):(A=v,v=a),me[P]={nextPos:A,result:v},v)}function D(){var v,w,P,X=A*56+3,oe=me[X];if(oe)return A=oe.nextPos,oe.result;if(v=A,i.charCodeAt(A)===45?A++:Oe===0&&h(hr),w=[],Le.test(i.charAt(A))?(P=i.charAt(A),A++):(P=a,Oe===0&&h(rt)),P!==a)for(;P!==a;)w.push(P),Le.test(i.charAt(A))?(P=i.charAt(A),A++):(P=a,Oe===0&&h(rt));else w=a;return w!==a?(We=v,v=Ds()):(A=v,v=a),me[X]={nextPos:A,result:v},v}function F(){var v,w,P=A*56+4,X=me[P];return X?(A=X.nextPos,X.result):(Oe++,v=A,tt.test(i.charAt(A))?(w=i.charAt(A),A++):(w=a,Oe===0&&h(cr)),w!==a&&(We=v,w=Wr()),v=w,Oe--,v===a&&(w=a,Oe===0&&h(Br)),me[P]={nextPos:A,result:v},v)}function U(){var v,w,P=A*56+8,X=me[P];return X?(A=X.nextPos,X.result):(v=A,w=H(),w!==a&&(We=v,w=xs(w)),v=w,me[P]={nextPos:A,result:v},v)}function H(){var v,w,P,X,oe,ve=A*56+10,gt=me[ve];if(gt)return A=gt.nextPos,gt.result;if(v=A,nt.test(i.charAt(A))?(w=i.charAt(A),A++):(w=a,Oe===0&&h(_e)),w!==a){if(P=[],ze.test(i.charAt(A))?(X=i.charAt(A),A++):(X=a,Oe===0&&h(we)),X!==a)for(;X!==a;)P.push(X),ze.test(i.charAt(A))?(X=i.charAt(A),A++):(X=a,Oe===0&&h(we));else P=a;if(P!==a){for(X=[],St.test(i.charAt(A))?(oe=i.charAt(A),A++):(oe=a,Oe===0&&h(Ne));oe!==a;)X.push(oe),St.test(i.charAt(A))?(oe=i.charAt(A),A++):(oe=a,Oe===0&&h(Ne));We=v,v=xa()}else A=v,v=a}else A=v,v=a;return me[ve]={nextPos:A,result:v},v}function z(){var v,w=A*56+11,P=me[w];return P?(A=P.nextPos,P.result):(v=pe(),v===a&&(v=he()),me[w]={nextPos:A,result:v},v)}function pe(){var v,w,P,X,oe=A*56+12,ve=me[oe];if(ve)return A=ve.nextPos,ve.result;if(v=A,i.charCodeAt(A)===60?(w=T,A++):(w=a,Oe===0&&h(Je)),w!==a){if(P=[],X=z(),X!==a)for(;X!==a;)P.push(X),X=z();else P=a;P!==a?(i.charCodeAt(A)===62?(X=I,A++):(X=a,Oe===0&&h(ye)),X!==a?(We=v,v=ka(P)):(A=v,v=a)):(A=v,v=a)}else A=v,v=a;return me[oe]={nextPos:A,result:v},v}function he(){var v,w=A*56+13,P=me[w];return P?(A=P.nextPos,P.result):(v=H(),v===a&&(v=pe(),v===a&&(v=F())),me[w]={nextPos:A,result:v},v)}function se(){var v,w,P,X=A*56+14,oe=me[X];return oe?(A=oe.nextPos,oe.result):(v=A,i.charCodeAt(A)===64?(w=R,A++):(w=a,Oe===0&&h(Ht)),w!==a?(P=z(),P!==a?(We=v,v=ks(P)):(A=v,v=a)):(A=v,v=a),me[X]={nextPos:A,result:v},v)}function ae(){var v,w=A*56+15,P=me[w];return P?(A=P.nextPos,P.result):(v=rr(),v===a&&(v=st(),v===a&&(v=qt(),v===a&&(v=ou(),v===a&&(v=Qt())))),me[w]={nextPos:A,result:v},v)}function Ce(){var v,w,P,X=A*56+16,oe=me[X];return oe?(A=oe.nextPos,oe.result):(v=A,w=ae(),w===a&&(w=Xs()),w!==a?(P=se(),P!==a?(We=v,v=La(w,P)):(A=v,v=a)):(A=v,v=a),me[X]={nextPos:A,result:v},v)}function Se(){var v,w,P,X=A*56+17,oe=me[X];return oe?(A=oe.nextPos,oe.result):(v=A,w=Ce(),w===a&&(w=ae(),w===a&&(w=Xs())),w!==a?(P=qe(),P!==a?(We=v,v=Ls(w,P)):(A=v,v=a)):(A=v,v=a),me[X]={nextPos:A,result:v},v)}function qe(){var v,w,P,X=A*56+18,oe=me[X];return oe?(A=oe.nextPos,oe.result):(v=A,i.charCodeAt(A)===58?(w=L,A++):(w=a,Oe===0&&h(ut)),w!==a?(P=Dt(),P!==a?(We=v,v=Ma(P)):(A=v,v=a)):(A=v,v=a),me[X]={nextPos:A,result:v},v)}function je(){var v,w,P=A*56+19,X=me[P];return X?(A=X.nextPos,X.result):(v=A,mt.test(i.charAt(A))?(w=i.charAt(A),A++):(w=a,Oe===0&&h(It)),w!==a&&(We=v,w=Fr()),v=w,me[P]={nextPos:A,result:v},v)}function Ue(){var v,w=A*56+20,P=me[w];return P?(A=P.nextPos,P.result):(v=Nt(),v===a&&(v=C(),v===a&&(v=je())),me[w]={nextPos:A,result:v},v)}function Nt(){var v,w,P,X,oe=A*56+21,ve=me[oe];return ve?(A=ve.nextPos,ve.result):(v=A,w=D(),w!==a?(i.charCodeAt(A)===47?(P=$,A++):(P=a,Oe===0&&h(Vr)),P!==a?(X=D(),X!==a?(We=v,v=Ms(w,X)):(A=v,v=a)):(A=v,v=a)):(A=v,v=a),me[oe]={nextPos:A,result:v},v)}function Xt(){var v,w,P,X=A*56+22,oe=me[X];if(oe)return A=oe.nextPos,oe.result;if(v=A,w=[],P=E_(),P===a&&(P=Se(),P===a&&(P=Ce(),P===a&&(P=rr(),P===a&&(P=qt(),P===a&&(P=st(),P===a&&(P=Qt(),P===a&&(P=Xs(),P===a&&(P=ou())))))))),P!==a)for(;P!==a;)w.push(P),P=E_(),P===a&&(P=Se(),P===a&&(P=Ce(),P===a&&(P=rr(),P===a&&(P=qt(),P===a&&(P=st(),P===a&&(P=Qt(),P===a&&(P=Xs(),P===a&&(P=ou()))))))));else w=a;return w!==a&&(We=v,w=Ps(w)),v=w,me[X]={nextPos:A,result:v},v}function Dt(){var v,w=A*56+23,P=me[w];return P?(A=P.nextPos,P.result):(v=F(),v===a&&(v=D(),v===a&&(v=O_(),v===a&&(v=cu(),v===a&&(v=er(),v===a&&(v=__()))))),me[w]={nextPos:A,result:v},v)}function er(){var v,w,P,X,oe=A*56+24,ve=me[oe];if(ve)return A=ve.nextPos,ve.result;if(v=A,i.charCodeAt(A)===60?(w=T,A++):(w=a,Oe===0&&h(Je)),w!==a){if(P=[],X=Dt(),X!==a)for(;X!==a;)P.push(X),X=Dt();else P=a;P!==a?(i.charCodeAt(A)===62?(X=I,A++):(X=a,Oe===0&&h(ye)),X!==a?(We=v,v=Pa(P)):(A=v,v=a)):(A=v,v=a)}else A=v,v=a;return me[oe]={nextPos:A,result:v},v}function st(){var v,w,P,X,oe,ve=A*56+25,gt=me[ve];return gt?(A=gt.nextPos,gt.result):(v=A,i.charCodeAt(A)===40?(w=K,A++):(w=a,Oe===0&&h(ht)),w!==a?(i.charCodeAt(A)===58?A++:Oe===0&&h(ut),P=Xt(),P!==a?(X=ft(),X===a&&(X=null),i.charCodeAt(A)===41?(oe=f,A++):(oe=a,Oe===0&&h(Zt)),oe!==a?(We=v,v=Ba(P,X)):(A=v,v=a)):(A=v,v=a)):(A=v,v=a),me[ve]={nextPos:A,result:v},v)}function ft(){var v,w,P,X=A*56+26,oe=me[X];return oe?(A=oe.nextPos,oe.result):(v=A,i.charCodeAt(A)===58?(w=L,A++):(w=a,Oe===0&&h(ut)),w!==a?(P=D(),P!==a?(We=v,v=Bs(P)):(A=v,v=a)):(A=v,v=a),me[X]={nextPos:A,result:v},v)}function rr(){var v,w,P,X,oe=A*56+27,ve=me[oe];return ve?(A=ve.nextPos,ve.result):(v=A,w=st(),w!==a?(P=S_(),P!==a?(X=st(),X!==a?(We=v,v=Ua(w,P,X)):(A=v,v=a)):(A=v,v=a)):(A=v,v=a),me[oe]={nextPos:A,result:v},v)}function Qt(){var v,w,P,X,oe,ve=A*56+28,gt=me[ve];return gt?(A=gt.nextPos,gt.result):(v=A,i.substr(A,2)===E?(w=E,A+=2):(w=a,Oe===0&&h(Ct)),w!==a?(P=Xt(),P!==a?(X=ft(),X===a&&(X=null),i.charCodeAt(A)===93?(oe=S,A++):(oe=a,Oe===0&&h(Be)),oe!==a?(We=v,v=Us(P,X)):(A=v,v=a)):(A=v,v=a)):(A=v,v=a),me[ve]={nextPos:A,result:v},v)}function qt(){var v,w,P,X,oe=A*56+29,ve=me[oe];return ve?(A=ve.nextPos,ve.result):(v=A,i.charCodeAt(A)===91?(w=N,A++):(w=a,Oe===0&&h(Ur)),w!==a?(P=Xt(),P!==a?(i.charCodeAt(A)===93?(X=S,A++):(X=a,Oe===0&&h(Be)),X!==a?(We=v,v=Fa(P)):(A=v,v=a)):(A=v,v=a)):(A=v,v=a),me[oe]={nextPos:A,result:v},v)}function pn(){var v,w=A*56+30,P=me[w];return P?(A=P.nextPos,P.result):(v=D(),v===a&&(v=y()),me[w]={nextPos:A,result:v},v)}function Hs(){var v,w,P,X=A*56+31,oe=me[X];if(oe)return A=oe.nextPos,oe.result;if(v=A,w=[],P=hl(),P===a&&(P=pn()),P!==a)for(;P!==a;)w.push(P),P=hl(),P===a&&(P=pn());else w=a;return w!==a&&(We=v,w=Fs(w)),v=w,me[X]={nextPos:A,result:v},v}function hl(){var v,w,P,X,oe=A*56+32,ve=me[oe];return ve?(A=ve.nextPos,ve.result):(v=A,i.charCodeAt(A)===40?A++:Oe===0&&h(ht),w=pn(),w!==a?(P=S_(),P!==a?(X=Hs(),X!==a?(i.charCodeAt(A)===41?A++:Oe===0&&h(Zt),We=v,v=Ys()):(A=v,v=a)):(A=v,v=a)):(A=v,v=a),me[oe]={nextPos:A,result:v},v)}function Ws(){var v,w,P,X,oe=A*56+33,ve=me[oe];if(ve)return A=ve.nextPos,ve.result;if(v=A,i.charCodeAt(A)===123?(w=k,A++):(w=a,Oe===0&&h(Fn)),w!==a){if(P=[],X=Hs(),X===a&&(X=F()),X!==a)for(;X!==a;)P.push(X),X=Hs(),X===a&&(X=F());else P=a;P!==a?(i.charCodeAt(A)===125?(X=x,A++):(X=a,Oe===0&&h(dt)),X!==a?(We=v,v=un(P)):(A=v,v=a)):(A=v,v=a)}else A=v,v=a;return me[oe]={nextPos:A,result:v},v}function __(){var v,w,P,X,oe=A*56+34,ve=me[oe];return ve?(A=ve.nextPos,ve.result):(v=A,i.charCodeAt(A)===123?(w=k,A++):(w=a,Oe===0&&h(Fn)),w!==a?(P=D(),P===a&&(P=cu()),P!==a?(i.charCodeAt(A)===125?(X=x,A++):(X=a,Oe===0&&h(dt)),X!==a?(We=v,v=bt(P)):(A=v,v=a)):(A=v,v=a)):(A=v,v=a),me[oe]={nextPos:A,result:v},v)}function S_(){var v,w=A*56+35,P=me[w];return P?(A=P.nextPos,P.result):(i.charCodeAt(A)===43?(v=M,A++):(v=a,Oe===0&&h(zr)),v===a&&(i.charCodeAt(A)===45?(v=u,A++):(v=a,Oe===0&&h(hr)),v===a&&(i.charCodeAt(A)===42?(v=G,A++):(v=a,Oe===0&&h(Ir)),v===a&&(i.charCodeAt(A)===47?(v=$,A++):(v=a,Oe===0&&h(Vr)),v===a&&(i.charCodeAt(A)===37?(v=te,A++):(v=a,Oe===0&&h(Ii)),v===a&&(i.charCodeAt(A)===94?(v=ne,A++):(v=a,Oe===0&&h(Rr)),v===a&&(i.charCodeAt(A)===124?(v=_,A++):(v=a,Oe===0&&h(W)),v===a&&(i.charCodeAt(A)===38?(v=re,A++):(v=a,Oe===0&&h(Wt)),v===a&&(i.substr(A,2)===ee?(v=ee,A+=2):(v=a,Oe===0&&h(yn)),v===a&&(i.substr(A,2)===B?(v=B,A+=2):(v=a,Oe===0&&h(Ji))))))))))),me[w]={nextPos:A,result:v},v)}function Xs(){var v,w,P=A*56+36,X=me[P];return X?(A=X.nextPos,X.result):(v=A,w=cR(),w===a&&(w=hR(),w===a&&(w=pR(),w===a&&(w=fR(),w===a&&(w=U(),w===a&&(w=dR(),w===a&&(w=fl(),w===a&&(w=sR(),w===a&&(w=F(),w===a&&(w=oR(),w===a&&(w=st(),w===a&&(w=Ws(),w===a&&(w=aR())))))))))))),w!==a&&(We=v,w=$s(w)),v=w,me[P]={nextPos:A,result:v},v)}function aR(){var v,w,P=A*56+37,X=me[P];return X?(A=X.nextPos,X.result):(v=A,i.charCodeAt(A)===124?(w=_,A++):(w=a,Oe===0&&h(W)),w!==a&&(We=v,w=Ri()),v=w,me[P]={nextPos:A,result:v},v)}function ou(){var v,w,P,X,oe=A*56+38,ve=me[oe];return ve?(A=ve.nextPos,ve.result):(v=A,i.charCodeAt(A)===60?(w=T,A++):(w=a,Oe===0&&h(Je)),w!==a?(P=Xt(),P!==a?(i.charCodeAt(A)===62?(X=I,A++):(X=a,Oe===0&&h(ye)),X!==a?(We=v,v=Gs(P)):(A=v,v=a)):(A=v,v=a)):(A=v,v=a),me[oe]={nextPos:A,result:v},v)}function sR(){var v,w,P=A*56+39,X=me[P];return X?(A=X.nextPos,X.result):(v=A,w=lu(),w!==a&&(We=v,w=pi(w)),v=w,me[P]={nextPos:A,result:v},v)}function lu(){var v,w,P,X=A*56+40,oe=me[X];if(oe)return A=oe.nextPos,oe.result;if(v=A,w=[],i.charCodeAt(A)===94?(P=ne,A++):(P=a,Oe===0&&h(Rr)),P===a&&(i.charCodeAt(A)===95?(P=Q,A++):(P=a,Oe===0&&h(li))),P!==a)for(;P!==a;)w.push(P),i.charCodeAt(A)===94?(P=ne,A++):(P=a,Oe===0&&h(Rr)),P===a&&(i.charCodeAt(A)===95?(P=Q,A++):(P=a,Oe===0&&h(li)));else w=a;return w!==a&&(We=v,w=Qs()),v=w,me[X]={nextPos:A,result:v},v}function O_(){var v,w,P=A*56+41,X=me[P];return X?(A=X.nextPos,X.result):(v=A,i.charCodeAt(A)===63?(w=j,A++):(w=a,Oe===0&&h(ea)),w!==a&&(We=v,w=Ni()),v=w,me[P]={nextPos:A,result:v},v)}function cu(){var v,w,P,X,oe,ve,gt=A*56+42,hn=me[gt];return hn?(A=hn.nextPos,hn.result):(v=A,i.charCodeAt(A)===40?(w=K,A++):(w=a,Oe===0&&h(ht)),w!==a?(P=D(),P!==a?(i.charCodeAt(A)===44?(X=m,A++):(X=a,Oe===0&&h(vr)),X!==a?(oe=D(),oe!==a?(i.charCodeAt(A)===41?(ve=f,A++):(ve=a,Oe===0&&h(Zt)),ve!==a?(We=v,v=Ya(P,oe)):(A=v,v=a)):(A=v,v=a)):(A=v,v=a)):(A=v,v=a)):(A=v,v=a),me[gt]={nextPos:A,result:v},v)}function E_(){var v,w,P,X,oe=A*56+43,ve=me[oe];return ve?(A=ve.nextPos,ve.result):(v=A,w=Se(),w===a&&(w=Ce(),w===a&&(w=ae(),w===a&&(w=Xs()))),w!==a?(i.charCodeAt(A)===33?(P=Z,A++):(P=a,Oe===0&&h(cn)),P!==a?(X=D(),X!==a?(We=v,v=$a(w,X)):(A=v,v=a)):(A=v,v=a)):(A=v,v=a),me[oe]={nextPos:A,result:v},v)}function oR(){var v,w,P=A*56+44,X=me[P];return X?(A=X.nextPos,X.result):(v=A,w=Ue(),w!==a&&(We=v,w=qs(w)),v=w,me[P]={nextPos:A,result:v},v)}function lR(){var v,w,P,X=A*56+45,oe=me[X];return oe?(A=oe.nextPos,oe.result):(v=A,w=Ue(),w!==a?(i.charCodeAt(A)===94?(P=ne,A++):(P=a,Oe===0&&h(Rr)),P!==a?(We=v,v=wi(w)):(A=v,v=a)):(A=v,v=a),me[X]={nextPos:A,result:v},v)}function cR(){var v,w,P,X,oe,ve=A*56+46,gt=me[ve];return gt?(A=gt.nextPos,gt.result):(v=A,w=lR(),w===a&&(w=null),i.charCodeAt(A)===114?(P=ue,A++):(P=a,Oe===0&&h(ci)),P!==a?(X=A,Oe++,At.test(i.charAt(A))?(oe=i.charAt(A),A++):(oe=a,Oe===0&&h(An)),Oe--,oe===a?X=void 0:(A=X,X=a),X!==a?(We=v,v=Ga(w)):(A=v,v=a)):(A=v,v=a),me[ve]={nextPos:A,result:v},v)}function fl(){var v,w,P,X,oe,ve=A*56+47,gt=me[ve];return gt?(A=gt.nextPos,gt.result):(v=A,w=lu(),w===a&&(w=null),P=Ue(),P===a&&(P=null),X=uR(),X===a&&(X=null),oe=y(),oe===a&&(oe=O_(),oe===a&&(oe=cu(),oe===a&&(oe=__()))),oe!==a?(We=v,v=Di(w,P,X,oe)):(A=v,v=a),me[ve]={nextPos:A,result:v},v)}function uR(){var v,w,P,X=A*56+48,oe=me[X];if(oe)return A=oe.nextPos,oe.result;if(v=A,w=[],i.charCodeAt(A)===35?(P=le,A++):(P=a,Oe===0&&h(Kt)),P===a&&(i.charCodeAt(A)===98?(P=Ee,A++):(P=a,Oe===0&&h(ui))),P!==a)for(;P!==a;)w.push(P),i.charCodeAt(A)===35?(P=le,A++):(P=a,Oe===0&&h(Kt)),P===a&&(i.charCodeAt(A)===98?(P=Ee,A++):(P=a,Oe===0&&h(ui)));else w=a;return w!==a&&(We=v,w=xi(w)),v=w,me[X]={nextPos:A,result:v},v}function dR(){var v,w,P,X,oe=A*56+49,ve=me[oe];if(ve)return A=ve.nextPos,ve.result;if(v=A,w=fl(),w!==a){if(P=[],X=fl(),X!==a)for(;X!==a;)P.push(X),X=fl();else P=a;P!==a?(X=uu(),X===a&&(X=null),We=v,v=Qa(w,P,X)):(A=v,v=a)}else A=v,v=a;return me[oe]={nextPos:A,result:v},v}function b_(){var v,w,P,X=A*56+50,oe=me[X];if(oe)return A=oe.nextPos,oe.result;if(v=A,w=[],Rt.test(i.charAt(A))?(P=i.charAt(A),A++):(P=a,Oe===0&&h(di)),P!==a)for(;P!==a;)w.push(P),Rt.test(i.charAt(A))?(P=i.charAt(A),A++):(P=a,Oe===0&&h(di));else w=a;return w!==a&&(We=v,w=ra()),v=w,me[X]={nextPos:A,result:v},v}function uu(){var v,w,P,X=A*56+51,oe=me[X];return oe?(A=oe.nextPos,oe.result):(v=A,i.charCodeAt(A)===37?(w=te,A++):(w=a,Oe===0&&h(Ii)),w!==a?(P=D(),P!==a?(We=v,v=hi(P)):(A=v,v=a)):(A=v,v=a),me[X]={nextPos:A,result:v},v)}function v_(){var v,w,P=A*56+52,X=me[P];return X?(A=X.nextPos,X.result):(v=A,at.test(i.charAt(A))?(w=i.charAt(A),A++):(w=a,Oe===0&&h(q)),w!==a?($e.test(i.charAt(A))?(i.charAt(A),A++):Oe===0&&h(ie),We=v,v=fr()):(A=v,v=a),me[P]={nextPos:A,result:v},v)}function pR(){var v,w,P,X,oe,ve,gt=A*56+53,hn=me[gt];return hn?(A=hn.nextPos,hn.result):(v=A,w=lu(),w===a&&(w=null),P=Ue(),P===a&&(P=null),X=v_(),X!==a?(i.charCodeAt(A)===94?A++:Oe===0&&h(Rr),oe=b_(),oe!==a?(ve=uu(),ve===a&&(ve=null),We=v,v=qa(w,P,X,oe,ve)):(A=v,v=a)):(A=v,v=a),me[gt]={nextPos:A,result:v},v)}function hR(){var v,w,P,X,oe=A*56+54,ve=me[oe];return ve?(A=ve.nextPos,ve.result):(v=A,i.substr(A,3)===De?(w=De,A+=3):(w=a,Oe===0&&h(de)),w===a&&(i.substr(A,2)===xe?(w=xe,A+=2):(w=a,Oe===0&&h(ge)),w===a&&(i.substr(A,2)===be?(w=be,A+=2):(w=a,Oe===0&&h(Ae)),w===a&&(i.charCodeAt(A)===105?(w=Re,A++):(w=a,Oe===0&&h(Qe)),w===a&&(i.substr(A,3)===ce?(w=ce,A+=3):(w=a,Oe===0&&h(Me)),w===a&&(i.substr(A,2)===ke?(w=ke,A+=2):(w=a,Oe===0&&h(yt)),w===a&&(i.charCodeAt(A)===118?(w=Ze,A++):(w=a,Oe===0&&h(Nr)))))))),w!==a?(i.charCodeAt(A)===94?A++:Oe===0&&h(Rr),P=b_(),P===a&&(P=null),X=uu(),X===a&&(X=null),We=v,v=Xr(w,P,X)):(A=v,v=a),me[oe]={nextPos:A,result:v},v)}function fR(){var v,w,P=A*56+55,X=me[P];return X?(A=X.nextPos,X.result):(v=A,w=v_(),w!==a&&(We=v,w=na(w)),v=w,me[P]={nextPos:A,result:v},v)}var T_=s.nodeOptions||{};function Ut(v,w,P=void 0){w.text=P||Yr(),w.location=ul();for(var X in T_)(w[X]===void 0||w[X]===null)&&(w[X]=T_[X]);return new v(w)}if(ia=c(),ia!==a&&A===i.length)return ia;throw ia!==a&&Ae.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 ei(this)}notStarted(){return this.index<0}peek(){return this.evaluated[this.index-1||0]}hasStarted(){return this.index>=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 r=e.map(i=>i.evaluate(t)).flat(1/0).filter(i=>i!==void 0);return t.subdivisions&&(r=NI(r)),r}totalDuration(){return this.evaluated.reduce((t,r)=>t+r.collect("duration"),0)}lead(){let e=this.evaluated.findIndex(t=>t instanceof Ra);if(e>=0){for(let t=e+1;t<=this.evaluated.length;t++)if(this.evaluated[t]instanceof Ra){const r=this.evaluated[e],i=this.evaluated[t],s=b3(r.notes(),i.notes()),a=ei(i);a.voiceLeadFromNotes(s,this.options.nodeOptions),this.evaluated[t]=a,e=t}}return this}}const NI=(n,e=void 0)=>n.map(r=>{if(r instanceof vI){const i=r.evaluated.length,s=(e||r.duration)/i;return NI(r.evaluated,s)}else return r.duration=e||r.duration,r}).flat(1/0),C3=n=>{let e={};return WP.forEach(t=>{if(n[t]!==void 0){const r=n[t];e[t]=r,delete n[t]}}),e};class y3{constructor(e,t){b(this,"api");b(this,"settings");b(this,"midiAccess",null);b(this,"midiOutputs",[]);b(this,"currentOutputIndex",0);b(this,"scheduledNotes",{});b(this,"midiInputs",[]);b(this,"currentInputIndex");b(this,"bufferLength",512);b(this,"noteInputBuffer",[]);b(this,"ccInputBuffer",[]);b(this,"activeNotes",[]);b(this,"stickyNotes",[]);b(this,"lastNote");b(this,"lastCC",{});b(this,"lastNoteInChannel",{});b(this,"lastCCInChannel",{});b(this,"midiClockInputIndex");b(this,"midiClockInput");b(this,"lastTimestamp",0);b(this,"midiClockDelta",0);b(this,"lastBPM");b(this,"roundedBPM",0);b(this,"clockBuffer",[]);b(this,"clockBufferLength",24);b(this,"clockTicks",0);b(this,"clockErrorCount",0);b(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 r=document.createElement("option");r.value="-1",r.text="Internal",e.appendChild(r);const i=document.createElement("option");if(i.value="-1",i.text="None",t.appendChild(i),this.midiInputs.forEach((s,a)=>{const o=document.createElement("option");o.value=a.toString(),o.text=s.name||a.toString(),e.appendChild(o),t.appendChild(o.cloneNode(!0))}),this.settings.midi_clock_input){const s=this.getMidiInputIndex(this.settings.midi_clock_input);e.value=s.toString(),s>0&&(this.midiClockInput=this.midiInputs[s],this.registerMidiInputListener(s))}else e.value="-1";if(this.settings.default_midi_input){const s=this.getMidiInputIndex(this.settings.default_midi_input);t.value=s.toString(),s>0&&(this.currentInputIndex=s,this.registerMidiInputListener(s))}else t.value="-1";e.addEventListener("change",s=>{const a=s.target.value;if(a==="-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(a);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",s=>{const a=s.target.value;a==="-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(a),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=r=>{const i=r;if(t.name===this.settings.midi_clock_input&&(i.data[0]===248?this.skipOnError>0?this.skipOnError-=1:this.onMidiClock(r.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 s=i.data[0]-144+1,a=i.data[1],o=i.data[2];this.lastNote={note:a,velocity:o,channel:s,timestamp:r.timeStamp},this.lastNoteInChannel[s]={note:a,velocity:o,channel:s,timestamp:r.timeStamp},this.settings.midi_channels_scripts&&this.api.script(s),this.pushToMidiInputBuffer({note:a,velocity:o,channel:s,timestamp:r.timeStamp}),this.activeNotes.push({note:a,velocity:o,channel:s,timestamp:r.timeStamp}),this.removeFromStickyNotes(a,s)||this.stickyNotes.push({note:a,velocity:o,channel:s,timestamp:r.timeStamp})}if(i.data[0]>=128&&i.data[0]<=143){const s=i.data[0]-128+1,a=i.data[1];this.removeFromActiveNotes(a,s)}if(i.data[0]>=176&&i.data[0]<=191){const s=i.data[0]-176+1,a=i.data[1],o=i.data[2];this.lastCC[a]=o,this.lastCCInChannel[s]?this.lastCCInChannel[s][a]=o:(this.lastCCInChannel[s]={},this.lastCCInChannel[s][a]=o),this.pushToMidiCCBuffer({control:a,value:o,channel:s,timestamp:r.timeStamp})}}})}}removeFromActiveNotes(e,t){const r=this.activeNotes.findIndex(i=>i.note===e&&i.channel===t);r>=0&&this.activeNotes.splice(r,1)}removeFromStickyNotes(e,t){const r=this.stickyNotes.findIndex(i=>i.note===e&&i.channel===t);return r>=0?(this.stickyNotes.splice(r,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(r=>r.channel===e);if(t>=0){const r=this.noteInputBuffer[t];return this.noteInputBuffer.splice(t,1),r}else return}findCCFromBufferInChannel(e){const t=this.ccInputBuffer.findIndex(r=>r.channel===e);if(t>=0){const r=this.ccInputBuffer[t];return this.ccInputBuffer.splice(t,1),r}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("Esimated BPM: ",t),this.api.bpm(t),this.roundedBPM=t)}this.lastTimestamp=e}estimatedBPM(){const e=this.clockBuffer.reduce((t,r)=>t+r);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(r=>r.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(r=>r.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,r)=>{e+=`(${r+1}) ${t.name} `}),e}sendMidiNote(e,t,r,i,s=this.currentOutputIndex,a=void 0){typeof s=="string"&&(s=this.getMidiOutputIndex(s));const o=this.midiOutputs[s];if(e=Math.min(Math.max(e,0),127),o){const l=[144+t,e,r],c=[128+t,e,0];o.send(l),a&&this.sendPitchBend(a,t,s);const u=setTimeout(()=>{o.send(c),a&&this.sendPitchBend(8192,t,s),delete this.scheduledNotes[e]},(i-.02)*1e3);this.scheduledNotes[e]=u}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,r=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 r=="string"&&(r=this.getMidiOutputIndex(r));const i=this.midiOutputs[r];if(i){const s=e&127,a=e>>7&127;i.send([224|t,s,a])}else console.error("MIDI output not available.")}sendProgramChange(e,t){const r=this.midiOutputs[this.currentOutputIndex];r?r.send([192+t,e]):console.error("MIDI output not available.")}sendMidiControlChange(e,t,r){const i=this.midiOutputs[this.currentOutputIndex];i?i.send([176+r,e,t]):console.error("MIDI output not available.")}panic(){const e=this.midiOutputs[this.currentOutputIndex];if(e){for(const t in this.scheduledNotes){const r=this.scheduledNotes[t];clearTimeout(r),e.send([128,parseInt(t),0])}this.scheduledNotes={}}else console.error("MIDI output not available.")}}class A3{constructor(e,t,r){b(this,"min");b(this,"max");b(this,"wrap");b(this,"position");this.min=e,this.max=t,this.wrap=r,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}}class i_{constructor(e){b(this,"seedValue");b(this,"randomGen",Math.random);b(this,"app");b(this,"values",{});b(this,"odds",(e,t)=>this.randomGen()this);b(this,"almostNever",e=>this.odds(.025,e));b(this,"rarely",e=>this.odds(.1,e));b(this,"scarcely",e=>this.odds(.25,e));b(this,"sometimes",e=>this.odds(.5,e));b(this,"often",e=>this.odds(.75,e));b(this,"frequently",e=>this.odds(.9,e));b(this,"almostAlways",e=>this.odds(.985,e));b(this,"always",e=>this.modify(e));b(this,"modify",e=>e(this));b(this,"seed",e=>(this.seedValue=e.toString(),this.randomGen=this.app.api.localSeededRandom(this.seedValue),this));b(this,"clear",()=>(this.app.api.clearLocalSeed(this.seedValue),this));b(this,"apply",e=>this.modify(e));b(this,"length",e=>(this.values.length=e,this));this.app=e,this.app.api.currentSeed&&(this.randomGen=this.app.api.randomGen)}}class wI extends i_{constructor(t){super(t);b(this,"octave",t=>(this.values.octave=t,this.update(),this));b(this,"key",t=>(this.values.key=t,this.update(),this));b(this,"scale",t=>(e_(t)?(this.values.scaleName=t,this.values.parsedScale=vi(t)):this.values.parsedScale=t_(t),this.update(),this));b(this,"freq",t=>{this.values.freq=t;const r=n3(t);return r%1!==0?(this.values.note=Math.floor(r),this.values.bend=TI(r)[1]):this.values.note=r,this});b(this,"update",()=>{})}}let Dr=[],I3=(n,e)=>{let t,r=[],i={lc:0,l:e||0,value:n,set(s){i.value=s,i.notify()},get(){return i.lc||i.listen(()=>{})(),i.value},notify(s){t=r;let a=!Dr.length;for(let o=0;o{r===t&&(r=r.slice());let o=r.indexOf(s);~o&&(r.splice(o,2),i.lc--,i.lc||i.off())}},subscribe(s,a){let o=i.listen(s,a);return s(i.value),o},off(){}};return i},R3=(n={})=>{let e=I3(n);return e.setKey=function(t,r){typeof r>"u"?t in e.value&&(e.value={...e.value},delete e.value[t],e.notify(t)):e.value[t]!==r&&(e.value={...e.value,[t]:r},e.notify(t))},e};if(typeof DelayNode<"u"){class n extends DelayNode{constructor(t,r,i,s){super(t),r=Math.abs(r),this.delayTime.value=i;const a=t.createGain();a.gain.value=Math.min(Math.abs(s),.995),this.feedback=a.gain;const o=t.createGain();return o.gain.value=r,this.delayGain=o,this.connect(a),this.connect(o),a.connect(this),this.connect=l=>o.connect(l),this}start(t){this.delayGain.gain.setValueAtTime(this.delayGain.gain.value,t+this.delayTime.value)}}AudioContext.prototype.createFeedbackDelay=function(e,t,r){return new n(this,e,t,r)}}typeof AudioContext<"u"&&(AudioContext.prototype.impulseResponse=function(n,e=1){const t=this.sampleRate*n,r=this.createBuffer(e,t,this.sampleRate),i=r.getChannelData(0);for(let s=0;s(e.buffer=this.impulseResponse(t),e.duration=n,e),e.setDuration(n),e});var _E={a:{freqs:[660,1120,2750,3e3,3350],gains:[1,.5012,.0708,.0631,.0126],qs:[80,90,120,130,140]},e:{freqs:[440,1800,2700,3e3,3300],gains:[1,.1995,.1259,.1,.1],qs:[70,80,100,120,120]},i:{freqs:[270,1850,2900,3350,3590],gains:[1,.0631,.0631,.0158,.0158],qs:[40,90,100,120,120]},o:{freqs:[430,820,2700,3e3,3300],gains:[1,.3162,.0501,.0794,.01995],qs:[40,80,100,120,120]},u:{freqs:[370,630,2750,3e3,3400],gains:[1,.1,.0708,.0316,.01995],qs:[40,60,100,120,120]}};if(typeof GainNode<"u"){class n extends GainNode{constructor(t,r){if(super(t),!_E[r])throw new Error("vowel: unknown vowel "+r);const{gains:i,qs:s,freqs:a}=_E[r],o=t.createGain();for(let l=0;l<5;l++){const c=t.createGain();c.gain.value=i[l];const u=t.createBiquadFilter();u.type="bandpass",u.Q.value=s[l],u.frequency.value=a[l],this.connect(u),u.connect(c),c.connect(o)}return o.gain.value=8,this.connect=l=>o.connect(l),this}}AudioContext.prototype.createVowelFilter=function(e){return new n(this,e)}}const N3=n=>{var i;if(typeof n!="string")return[];const[e,t="",r]=((i=n.match(/^([a-gA-G])([#bsf]*)([0-9]*)$/))==null?void 0:i.slice(1))||[];return e?[e,t,r?Number(r):void 0]:[]},w3={c:0,d:2,e:4,f:5,g:7,a:9,b:11},D3={"#":1,b:-1,s:1,f:-1},nu=(n,e=3)=>{const[t,r,i=e]=N3(n);if(!t)throw new Error('not a note: "'+n+'"');const s=w3[t.toLowerCase()],a=(r==null?void 0:r.split("").reduce((o,l)=>o+D3[l],0))||0;return(Number(i)+1)*12+s+a},DI=n=>Math.pow(2,(n-69)/12)*440,Qm=(n,e,t)=>Math.min(Math.max(n,e),t),x3=n=>12*Math.log(n/440)/Math.LN2+69,k3=(n,e)=>{if(typeof n!="object")throw new Error("valueToMidi: expected object value");let{freq:t,note:r}=n;if(typeof t=="number")return x3(t);if(typeof r=="string")return nu(r);if(typeof r=="number")return r;if(!e)throw new Error("valueToMidi: expected freq or note to be set");return e},L3="data:application/javascript;base64,Ly8gTElDRU5TRSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2My4wIHNlZSBodHRwczovL2dpdGh1Yi5jb20vZGt0cjAvV2ViRGlydC9ibG9iL21haW4vTElDRU5TRQovLyBhbGwgdGhlIGNyZWRpdCBnb2VzIHRvIGRrdHIwJ3Mgd2ViZGlydDogaHR0cHM6Ly9naXRodWIuY29tL2RrdHIwL1dlYkRpcnQvYmxvYi81Y2UzZDY5ODM2MmM1NGQ2ZTFiNjhhY2M0N2ViMjk1NWFjNjJjNzkzL2Rpc3QvQXVkaW9Xb3JrbGV0cy5qcwovLyA8MwoKY2xhc3MgQ29hcnNlUHJvY2Vzc29yIGV4dGVuZHMgQXVkaW9Xb3JrbGV0UHJvY2Vzc29yIHsKICBzdGF0aWMgZ2V0IHBhcmFtZXRlckRlc2NyaXB0b3JzKCkgewogICAgcmV0dXJuIFt7IG5hbWU6ICdjb2Fyc2UnLCBkZWZhdWx0VmFsdWU6IDEgfV07CiAgfQoKICBjb25zdHJ1Y3RvcigpIHsKICAgIHN1cGVyKCk7CiAgICB0aGlzLm5vdFN0YXJ0ZWQgPSB0cnVlOwogIH0KCiAgcHJvY2VzcyhpbnB1dHMsIG91dHB1dHMsIHBhcmFtZXRlcnMpIHsKICAgIGNvbnN0IGlucHV0ID0gaW5wdXRzWzBdOwogICAgY29uc3Qgb3V0cHV0ID0gb3V0cHV0c1swXTsKICAgIGNvbnN0IGNvYXJzZSA9IHBhcmFtZXRlcnMuY29hcnNlOwogICAgY29uc3QgYmxvY2tTaXplID0gMTI4OwogICAgY29uc3QgaGFzSW5wdXQgPSAhKGlucHV0WzBdID09PSB1bmRlZmluZWQpOwogICAgaWYgKGhhc0lucHV0KSB7CiAgICAgIHRoaXMubm90U3RhcnRlZCA9IGZhbHNlOwogICAgICBvdXRwdXRbMF1bMF0gPSBpbnB1dFswXVswXTsKICAgICAgZm9yIChsZXQgbiA9IDE7IG4gPCBibG9ja1NpemU7IG4rKykgewogICAgICAgIGZvciAobGV0IG8gPSAwOyBvIDwgb3V0cHV0Lmxlbmd0aDsgbysrKSB7CiAgICAgICAgICBvdXRwdXRbb11bbl0gPSBuICUgY29hcnNlID09IDAgPyBpbnB1dFswXVtuXSA6IG91dHB1dFtvXVtuIC0gMV07CiAgICAgICAgfQogICAgICB9CiAgICB9CiAgICByZXR1cm4gdGhpcy5ub3RTdGFydGVkIHx8IGhhc0lucHV0OwogIH0KfQoKcmVnaXN0ZXJQcm9jZXNzb3IoJ2NvYXJzZS1wcm9jZXNzb3InLCBDb2Fyc2VQcm9jZXNzb3IpOwoKY2xhc3MgQ3J1c2hQcm9jZXNzb3IgZXh0ZW5kcyBBdWRpb1dvcmtsZXRQcm9jZXNzb3IgewogIHN0YXRpYyBnZXQgcGFyYW1ldGVyRGVzY3JpcHRvcnMoKSB7CiAgICByZXR1cm4gW3sgbmFtZTogJ2NydXNoJywgZGVmYXVsdFZhbHVlOiAwIH1dOwogIH0KCiAgY29uc3RydWN0b3IoKSB7CiAgICBzdXBlcigpOwogICAgdGhpcy5ub3RTdGFydGVkID0gdHJ1ZTsKICB9CgogIHByb2Nlc3MoaW5wdXRzLCBvdXRwdXRzLCBwYXJhbWV0ZXJzKSB7CiAgICBjb25zdCBpbnB1dCA9IGlucHV0c1swXTsKICAgIGNvbnN0IG91dHB1dCA9IG91dHB1dHNbMF07CiAgICBjb25zdCBjcnVzaCA9IHBhcmFtZXRlcnMuY3J1c2g7CiAgICBjb25zdCBibG9ja1NpemUgPSAxMjg7CiAgICBjb25zdCBoYXNJbnB1dCA9ICEoaW5wdXRbMF0gPT09IHVuZGVmaW5lZCk7CiAgICBpZiAoaGFzSW5wdXQpIHsKICAgICAgdGhpcy5ub3RTdGFydGVkID0gZmFsc2U7CiAgICAgIGlmIChjcnVzaC5sZW5ndGggPT09IDEpIHsKICAgICAgICBjb25zdCB4ID0gTWF0aC5wb3coMiwgY3J1c2hbMF0gLSAxKTsKICAgICAgICBmb3IgKGxldCBuID0gMDsgbiA8IGJsb2NrU2l6ZTsgbisrKSB7CiAgICAgICAgICBjb25zdCB2YWx1ZSA9IE1hdGgucm91bmQoaW5wdXRbMF1bbl0gKiB4KSAvIHg7CiAgICAgICAgICBmb3IgKGxldCBvID0gMDsgbyA8IG91dHB1dC5sZW5ndGg7IG8rKykgewogICAgICAgICAgICBvdXRwdXRbb11bbl0gPSB2YWx1ZTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0gZWxzZSB7CiAgICAgICAgZm9yIChsZXQgbiA9IDA7IG4gPCBibG9ja1NpemU7IG4rKykgewogICAgICAgICAgbGV0IHggPSBNYXRoLnBvdygyLCBjcnVzaFtuXSAtIDEpOwogICAgICAgICAgY29uc3QgdmFsdWUgPSBNYXRoLnJvdW5kKGlucHV0WzBdW25dICogeCkgLyB4OwogICAgICAgICAgZm9yIChsZXQgbyA9IDA7IG8gPCBvdXRwdXQubGVuZ3RoOyBvKyspIHsKICAgICAgICAgICAgb3V0cHV0W29dW25dID0gdmFsdWU7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CiAgICB9CiAgICByZXR1cm4gdGhpcy5ub3RTdGFydGVkIHx8IGhhc0lucHV0OwogIH0KfQpyZWdpc3RlclByb2Nlc3NvcignY3J1c2gtcHJvY2Vzc29yJywgQ3J1c2hQcm9jZXNzb3IpOwoKY2xhc3MgU2hhcGVQcm9jZXNzb3IgZXh0ZW5kcyBBdWRpb1dvcmtsZXRQcm9jZXNzb3IgewogIHN0YXRpYyBnZXQgcGFyYW1ldGVyRGVzY3JpcHRvcnMoKSB7CiAgICByZXR1cm4gW3sgbmFtZTogJ3NoYXBlJywgZGVmYXVsdFZhbHVlOiAwIH1dOwogIH0KCiAgY29uc3RydWN0b3IoKSB7CiAgICBzdXBlcigpOwogICAgdGhpcy5ub3RTdGFydGVkID0gdHJ1ZTsKICB9CgogIHByb2Nlc3MoaW5wdXRzLCBvdXRwdXRzLCBwYXJhbWV0ZXJzKSB7CiAgICBjb25zdCBpbnB1dCA9IGlucHV0c1swXTsKICAgIGNvbnN0IG91dHB1dCA9IG91dHB1dHNbMF07CiAgICBjb25zdCBzaGFwZTAgPSBwYXJhbWV0ZXJzLnNoYXBlWzBdOwogICAgY29uc3Qgc2hhcGUxID0gc2hhcGUwIDwgMSA/IHNoYXBlMCA6IDEuMCAtIDRlLTEwOwogICAgY29uc3Qgc2hhcGUgPSAoMi4wICogc2hhcGUxKSAvICgxLjAgLSBzaGFwZTEpOwogICAgY29uc3QgYmxvY2tTaXplID0gMTI4OwogICAgY29uc3QgaGFzSW5wdXQgPSAhKGlucHV0WzBdID09PSB1bmRlZmluZWQpOwogICAgaWYgKGhhc0lucHV0KSB7CiAgICAgIHRoaXMubm90U3RhcnRlZCA9IGZhbHNlOwogICAgICBmb3IgKGxldCBuID0gMDsgbiA8IGJsb2NrU2l6ZTsgbisrKSB7CiAgICAgICAgY29uc3QgdmFsdWUgPSAoKDEgKyBzaGFwZSkgKiBpbnB1dFswXVtuXSkgLyAoMSArIHNoYXBlICogTWF0aC5hYnMoaW5wdXRbMF1bbl0pKTsKICAgICAgICBmb3IgKGxldCBvID0gMDsgbyA8IG91dHB1dC5sZW5ndGg7IG8rKykgewogICAgICAgICAgb3V0cHV0W29dW25dID0gdmFsdWU7CiAgICAgICAgfQogICAgICB9CiAgICB9CiAgICByZXR1cm4gdGhpcy5ub3RTdGFydGVkIHx8IGhhc0lucHV0OwogIH0KfQoKcmVnaXN0ZXJQcm9jZXNzb3IoJ3NoYXBlLXByb2Nlc3NvcicsIFNoYXBlUHJvY2Vzc29yKTsK";function Pc(n){const e=Jt().createGain();return e.gain.value=n,e}const qm=(n,e,t,r,i,s)=>{const a=Jt().createGain();return a.gain.setValueAtTime(0,s),a.gain.linearRampToValueAtTime(i,s+n),a.gain.linearRampToValueAtTime(t*i,s+n+e),{node:a,stop:o=>{a.gain.setValueAtTime(t*i,o),a.gain.linearRampToValueAtTime(0,o+r)}}},M3=(n,e,t,r,i,s)=>{t=Math.max(.001,t),i=Math.max(.001,i);const a=Jt().createGain();return a.gain.setValueAtTime(1e-4,s),a.gain.exponentialRampToValueAtTime(i,s+n),a.gain.exponentialRampToValueAtTime(t*i,s+n+e),{node:a,stop:o=>{a.gain.exponentialRampToValueAtTime(1e-4,o+r)}}},P3=(n,e,t,r,i,s,a,o,l)=>{const c=a-s,u=s+c,p=s+r*c;n.setValueAtTime(s,o),n.linearRampToValueAtTime(u,o+e),n.linearRampToValueAtTime(p,o+e+t),n.setValueAtTime(p,l),n.linearRampToValueAtTime(s,l+Math.max(i,.1))};function Zu(n,e,t,r,i,s,a,o,l,c,u,p=.5){const m=n.createBiquadFilter();if(m.type=e,m.Q.value=r,m.frequency.value=t,!isNaN(l)&&l!==0){const _=l*p,T=Qm(2**-_*t,0,2e4),I=Qm(2**(l-_)*t,0,2e4);return P3(m.frequency,i,s,a,o,T,I,c,u),m}return m}let B3=n=>console.log(n);const ys=(...n)=>B3(...n),a_=R3();function s_(n,e,t={}){a_.setKey(n,{onTrigger:e,data:t})}function SE(n){return a_.get()[n]}let Ku;const Jt=()=>(Ku||(Ku=new AudioContext),Ku);let Ul;const o_=()=>{const n=Jt();return Ul||(Ul=n.createGain(),Ul.connect(n.destination)),Ul};let ju;function U3(){return ju||(ju=Jt().audioWorklet.addModule(L3),ju)}function Ju(n,e,t){const r=new AudioWorkletNode(n,e);return Object.entries(t).forEach(([i,s])=>{r.parameters.get(i).value=s}),r}async function F3(n={}){const{disableWorklets:e=!1}=n;typeof window<"u"&&(await Jt().resume(),e?console.log("disableWorklets: AudioWorklet effects coarse, crush and shape are skipped!"):await U3().catch(t=>{console.warn("could not load AudioWorklet effects coarse, crush and shape",t)}))}async function Y3(n){return new Promise(e=>{document.addEventListener("click",async function t(){await F3(n),e(),document.removeEventListener("click",t)})})}let oa={};function $3(n,e,t,r){var i;if(t=Qm(t,0,.98),!oa[n]){const s=Jt().createFeedbackDelay(1,e,t);(i=s.start)==null||i.call(s,r),s.connect(o_()),oa[n]=s}return oa[n].delayTime.value!==e&&oa[n].delayTime.setValueAtTime(e,r),oa[n].feedback.value!==t&&oa[n].feedback.setValueAtTime(t,r),oa[n]}let la={};function G3(n,e=2){if(!la[n]){const t=Jt().createReverb(e);t.connect(o_()),la[n]=t}return la[n].duration!==e&&(la[n]=la[n].setDuration(e),la[n].duration=e),la[n]}let ca;function Q3(n=2048){if(!ca){const e=Jt().createAnalyser();e.fftSize=n,ca=e,new Float32Array(ca.frequencyBinCount)}return ca.fftSize!==n&&(ca.fftSize=n,new Float32Array(ca.frequencyBinCount)),ca}function ed(n,e,t){const r=Pc(t);return n.connect(r),r.connect(e),r}const OE=async(n,e,t)=>{const r=Jt();if(typeof n!="object")throw new Error(`expected hap.value to be an object, but got "${n}". Hint: append .note() or .s() to the end`,"error");n.duration=t;let i=r.currentTime+e,{s="triangle",bank:a,source:o,gain:l=.8,ftype:c="12db",fanchor:u=.5,cutoff:p,lpenv:m,lpattack:_=.01,lpdecay:T=.01,lpsustain:I=1,lprelease:R=.01,resonance:L=1,hpenv:$,hcutoff:K,hpattack:f=.01,hpdecay:E=.01,hpsustain:S=1,hprelease:N=.01,hresonance:k=1,bpenv:x,bandf:M,bpattack:G=.01,bpdecay:te=.01,bpsustain:ne=1,bprelease:re=.01,bandq:ee=1,coarse:B,crush:Q,shape:j,pan:Z,vowel:ue,delay:le=0,delayfeedback:Ee=.5,delaytime:De=.25,orbit:xe=1,room:be,size:Re=2,velocity:ce=1,analyze:ke,fft:Ze=8}=n;l*=ce;let Le=[];const tt=()=>{Le.forEach(at=>at==null?void 0:at.disconnect())};a&&s&&(s=`${a}_${s}`);let nt;if(o)nt=o(i,n,t);else if(SE(s)){const{onTrigger:at}=SE(s),$e=await at(i,n,tt);$e&&(nt=$e.node,$e.stop(i+t))}else throw new Error(`sound ${s} not found! Is it loaded?`);if(!nt)return;if(r.currentTime>i){ys("[webaudio] skip hap: still loading",r.currentTime-i);return}const ze=[];if(ze.push(nt),ze.push(Pc(l)),p!==void 0){let at=()=>Zu(r,"lowpass",p,L,_,T,I,R,m,i,i+t,u);ze.push(at()),c==="24db"&&ze.push(at())}if(K!==void 0){let at=()=>Zu(r,"highpass",K,k,f,E,S,N,$,i,i+t,u);ze.push(at()),c==="24db"&&ze.push(at())}if(M!==void 0){let at=()=>Zu(r,"bandpass",M,ee,G,te,ne,re,x,i,i+t,u);ze.push(at()),c==="24db"&&ze.push(at())}if(ue!==void 0){const at=r.createVowelFilter(ue);ze.push(at)}if(B!==void 0&&ze.push(Ju(r,"coarse-processor",{coarse:B})),Q!==void 0&&ze.push(Ju(r,"crush-processor",{crush:Q})),j!==void 0&&ze.push(Ju(r,"shape-processor",{shape:j})),Z!==void 0){const at=r.createStereoPanner();at.pan.value=2*Z-1,ze.push(at)}const St=Pc(1);ze.push(St),St.connect(o_());let mt;if(le>0&&De>0&&Ee>0){const at=$3(xe,De,Ee,i);mt=ed(St,at,le)}let At;if(be>0&&Re>0){const at=G3(xe,Re);At=ed(St,at,be)}let Rt;if(ke){const at=Q3(2**(Ze+5));Rt=ed(St,at,ke)}ze.slice(1).reduce((at,$e)=>at.connect($e),ze[0]),Le=ze.concat([mt,At,Rt])},td={};function q3(n,e){var t=e?1e3:1024;if(n=t);return n.toFixed(1)+" "+r[i]}const V3=async(n,e,t,r,i,s,a)=>{let o=0;i!==void 0&&t!==void 0&&ys("[sampler] hap has note and freq. ignoring note","warning");let l=k3({freq:i,note:t},36);o=l-36;const c=Jt();let u;if(Array.isArray(s))u=s[e%s.length];else{const T=R=>nu(R)-l,I=Object.keys(s).filter(R=>!R.startsWith("_")).reduce((R,L,$)=>!R||Math.abs(T(L)){const i=t?`sound "${t}:${r}"`:"sample";if(!td[n]){ys(`[sampler] load ${i}..`,"load-sample",{url:n});const s=Date.now();td[n]=fetch(n).then(a=>a.arrayBuffer()).then(async a=>{const o=Date.now()-s,l=q3(a.byteLength);return ys(`[sampler] load ${i}... done! loaded ${l} in ${o}ms`,"loaded-sample",{url:n}),await e.decodeAudioData(a)})}return td[n]};function H3(n){const e=Jt(),t=e.createBuffer(n.numberOfChannels,n.length,e.sampleRate);for(let r=0;rObject.entries(n).forEach(([r,i])=>{if(typeof i=="string"&&(i=[i]),typeof i!="object")throw new Error("wrong sample map format for "+r);t=i._base||t;const s=a=>(t+a).replace("github:","https://raw.githubusercontent.com/");Array.isArray(i)?i=i.map(s):i=Object.fromEntries(Object.entries(i).map(([a,o])=>[a,(typeof o=="string"?[o]:o).map(s)])),e(r,i)});let X3={};function Z3(n){const e=Object.entries(X3).find(([t])=>n.startsWith(t));if(e)return e[1]}const pa=async(n,e=n._base||"",t={})=>{if(typeof n=="string"){const s=Z3(n);if(s)return s(n);if(n.startsWith("github:")){let[o,l]=n.split("github:");l=l.endsWith("/")?l.slice(0,-1):l,n=`https://raw.githubusercontent.com/${l}/strudel.json`}if(typeof fetch!="function")return;const a=n.split("/").slice(0,-1).join("/");return typeof fetch>"u"?void 0:fetch(n).then(o=>o.json()).then(o=>pa(o,e||o._base||a,t)).catch(o=>{throw console.error(o),new Error(`error loading "${n}"`)})}const{prebake:r,tag:i}=t;W3(n,(s,a)=>s_(s,(o,l,c)=>K3(o,l,c,a),{type:"sample",samples:a,baseUrl:e,prebake:r,tag:i}),e)},EE=[];async function K3(n,e,t,r,i){let{s,freq:a,unit:o,nudge:l=0,cut:c,loop:u,clip:p=void 0,n:m=0,note:_,speed:T=1,loopBegin:I=0,begin:R=0,loopEnd:L=1,end:$=1}=e;if(T===0)return;u=s.startsWith("wt_")?1:e.loop;const K=Jt(),{attack:f=.001,decay:E=.001,sustain:S=1,release:N=.001}=e,k=n+l,x=await V3(s,m,_,T,a,r,i);if(K.currentTime>n){ys(`[sampler] still loading sound "${s}:${m}"`,"highlight");return}if(!x){ys(`[sampler] could not load "${s}:${m}"`,"error");return}x.playbackRate.value=Math.abs(T)*x.playbackRate.value,o==="c"&&(x.playbackRate.value=x.playbackRate.value*x.buffer.duration*1);const M=R*x.buffer.duration;u&&(x.loop=!0,x.loopStart=I*x.buffer.duration-M,x.loopEnd=L*x.buffer.duration-M),x.start(k,M);const{node:G,stop:te}=qm(f,E,S,N,1,n);x.connect(G);const ne=K.createGain();G.connect(ne),x.onended=function(){x.disconnect(),G.disconnect(),ne.disconnect(),t()};const re={node:ne,bufferSource:x,stop:(ee,B=p===void 0&&u===void 0)=>{let Q=ee;if(B){const j=x.buffer.duration/x.playbackRate.value;Q=n+($-R)*j}x.stop(Q+N),te(Q)}};if(c!==void 0){const ee=EE[c];ee&&(ee.node.gain.setValueAtTime(1,k),ee.node.gain.linearRampToValueAtTime(0,k+.01)),EE[c]=re}return re}const j3=(n,e=1,t="sine")=>{const r=Jt(),i=r.createOscillator();i.type=t,i.frequency.value=n,i.start();const s=new GainNode(r,{gain:e});return i.connect(s),{node:s,stop:a=>i.stop(a)}},J3=(n,e,t,r="sine")=>{const i=n.frequency.value*e,s=i*t;return j3(i,s,r)};function eB(){["sine","square","triangle","sawtooth"].forEach(n=>{s_(n,(e,t,r)=>{let{attack:i=.001,decay:s=.05,sustain:a=.6,release:o=.01,fmh:l=1,fmi:c,fmenv:u="lin",fmattack:p,fmdecay:m,fmsustain:_,fmrelease:T,fmvelocity:I,fmwave:R="sine",vib:L=0,vibmod:$=.5}=t,{n:K,note:f,freq:E}=t;f=f||36,typeof f=="string"&&(f=nu(f)),!E&&typeof f=="number"&&(E=DI(f));const{node:S,stop:N}=rB({t:e,s:n,freq:E,vib:L,vibmod:$,partials:K});let k,x;if(c){const{node:ne,stop:re}=J3(S,l,c,R);[p,m,_,T,I].find(ee=>ee!==void 0)?(p=p??.001,m=m??.001,_=_??1,T=T??.001,I=I??1,x=qm(p,m,_,T,I,e),u==="exp"&&(x=M3(p,m,_,T,I,e),x.node.maxValue=c*2,x.node.minValue=1e-5),ne.connect(x.node),x.node.connect(S.frequency)):ne.connect(S.frequency),k=re}const M=Pc(.3),{node:G,stop:te}=qm(i,s,a,o,1,e);return S.onended=()=>{S.disconnect(),M.disconnect(),r()},{node:S.connect(M).connect(G),stop:ne=>{te(ne),x==null||x.stop(ne);let re=ne+o;N(re),k==null||k(re)}}},{type:"synth",prebake:!0})})}function tB(n,e){const t=new Float32Array(n+1),r=new Float32Array(n+1),i=Jt(),s=i.createOscillator(),a={sawtooth:c=>1/c,square:c=>c%2===0?0:1/c,triangle:c=>c%2===0?0:1/(c*c)};if(!a[e])throw new Error(`unknown wave type ${e}`);t[0]=0,r[0]=0;let o=1;for(;o<=n;)t[o]=a[e](o),r[o]=0,o++;const l=i.createPeriodicWave(t,r);return s.setPeriodicWave(l),s}function rB({s:n,freq:e,t,vib:r,vibmod:i,partials:s}){let a;!s||n==="sine"?(a=Jt().createOscillator(),a.type=n||"triangle"):a=tB(s,n),a.frequency.value=Number(e),a.start(t);let o;if(r>0){o=Jt().createOscillator(),o.frequency.value=r;const l=Jt().createGain();l.gain.value=i*100,o.connect(l),l.connect(a.detune),o.start(t)}return{node:a,stop:l=>{o==null||o.stop(l),a.stop(l)}}}function nB(n=1,e=.05,t=220,r=0,i=0,s=.1,a=0,o=1,l=0,c=0,u=0,p=0,m=0,_=0,T=0,I=0,R=0,L=1,$=0,K=0){let f=Math.PI*2,E=Jt().sampleRate,S=Z=>Z>0?1:-1,N=l*=500*f/E/E,k=t*=(1+e*2*Math.random()-e)*f/E,x=[],M=0,G=0,te=0,ne=1,re=0,ee=0,B=0,Q,j;for(r=r*E+9,$*=E,i*=E,s*=E,R*=E,c*=500*f/E**3,T*=f/E,u*=f/E,p*=E,m=m*E|0,j=r+$+i+s+R|0;te1?a>2?a>3?Math.sin((M%f)**3):Math.max(Math.min(Math.tan(M),1),-1):1-(2*M/f%2+2)%2:1-4*Math.abs(Math.round(M/f)-M/f):Math.sin(M),B=(m?1-K+K*Math.sin(f*te/m):1)*S(B)*Math.abs(B)**o*n*1*(tete?0:(tep&&(t+=u,k+=u,ne=0),m&&!(++re%m)&&(t=k,l=N,ne||(ne=1));return x}const iB=(n,e)=>{let{s:t,note:r=36,freq:i,zrand:s=0,attack:a=0,decay:o=0,sustain:l=.8,release:c=.1,curve:u=1,slide:p=0,deltaSlide:m=0,pitchJump:_=0,pitchJumpTime:T=0,lfo:I=0,noise:R=0,zmod:L=0,zcrush:$=0,zdelay:K=0,tremolo:f=0,duration:E=.2,zzfx:S}=n;const N=Math.max(E-a-o,0);typeof r=="string"&&(r=nu(r)),!i&&typeof r=="number"&&(i=DI(r)),t=t.replace("z_","");const k=["sine","triangle","sawtooth","tan","noise"].indexOf(t)||0;u=t==="square"?0:u;const x=nB(...S||[.25,s,i,a,N,c,k,u,p,m,_,T,I,R,L,$,K,l,o,f]),M=Jt(),G=M.createBuffer(1,x.length,M.sampleRate);G.getChannelData(0).set(x);const te=Jt().createBufferSource();return te.buffer=G,te.start(e),{node:te}};function aB(){["zzfx","z_sine","z_sawtooth","z_triangle","z_square","z_tan","z_noise"].forEach(n=>{s_(n,(e,t,r)=>{const{node:i}=iB({s:n,...t},e);return i.onended=()=>{i.disconnect(),r()},{node:i,stop:()=>{}}},{type:"synth",prebake:!0})})}class Vm extends wI{constructor(t,r){super(r);b(this,"volume",t=>this.updateValue("volume",t));b(this,"vol",this.volume);b(this,"zrand",t=>this.updateValue("zrand",t));b(this,"curve",t=>this.updateValue("curve",t));b(this,"slide",t=>this.updateValue("slide",t));b(this,"sld",this.slide);b(this,"deltaSlide",t=>this.updateValue("deltaSlide",t));b(this,"dslide",this.deltaSlide);b(this,"pitchJump",t=>this.updateValue("pitchJump",t));b(this,"pj",this.pitchJump);b(this,"pitchJumpTime",t=>this.updateValue("pitchJumpTime",t));b(this,"pjt",this.pitchJumpTime);b(this,"lfo",t=>this.updateValue("lfo",t));b(this,"noise",t=>this.updateValue("noise",t));b(this,"zmod",t=>this.updateValue("zmod",t));b(this,"zcrush",t=>this.updateValue("zcrush",t));b(this,"zdelay",t=>this.updateValue("zdelay",t));b(this,"sustainVolume",t=>this.updateValue("sustainVolume",t));b(this,"tremolo",t=>this.updateValue("tremolo",t));b(this,"dur",t=>this.updateValue("dur",t));b(this,"zzfx",t=>this.updateValue("zzfx",t));b(this,"fmi",t=>this.updateValue("fmi",t));b(this,"fmh",t=>this.updateValue("fmh",t));b(this,"fmenv",t=>this.updateValue("fmenv",t));b(this,"fmattack",t=>this.updateValue("fmattack",t));b(this,"fmatk",this.fmattack);b(this,"fmdecay",t=>this.updateValue("fmdecay",t));b(this,"fmdec",this.fmdecay);b(this,"fmsustain",t=>this.updateValue("fmsustain",t));b(this,"fmsus",this.fmsustain);b(this,"fmrelease",t=>this.updateValue("fmrelease",t));b(this,"fmrel",this.fmrelease);b(this,"fmvelocity",t=>this.updateValue("fmvelocity",t));b(this,"fmvel",this.fmvelocity);b(this,"fmwave",t=>this.updateValue("fmwave",t));b(this,"fmw",this.fmwave);b(this,"ftype",t=>this.updateValue("ftype",t));b(this,"fanchor",t=>this.updateValue("fanchor",t));b(this,"attack",t=>this.updateValue("attack",t));b(this,"atk",this.attack);b(this,"decay",t=>this.updateValue("decay",t));b(this,"dec",this.decay);b(this,"sustain",t=>this.updateValue("sustain",t));b(this,"sus",this.sustain);b(this,"release",t=>this.updateValue("release",t));b(this,"rel",this.release);b(this,"adsr",(t,r,i,s)=>(this.attack(t),this.decay(r),this.sustain(i),this.release(s),this));b(this,"lpenv",t=>this.updateValue("lpenv",t));b(this,"lpe",t=>this.updateValue("lpenv",t));b(this,"lpattack",t=>this.updateValue("lpattack",t));b(this,"lpa",this.lpattack);b(this,"lpdecay",t=>this.updateValue("lpdecay",t));b(this,"lpd",this.lpdecay);b(this,"lpsustain",t=>this.updateValue("lpsustain",t));b(this,"lps",this.lpsustain);b(this,"lprelease",t=>this.updateValue("lprelease",t));b(this,"lpr",this.lprelease);b(this,"cutoff",t=>this.updateValue("cutoff",t));b(this,"lpf",this.cutoff);b(this,"resonance",t=>this.updateValue("resonance",Math.min(Math.max(t,0),50)));b(this,"lpq",this.resonance);b(this,"lpadsr",(t,r,i,s,a)=>(this.lpenv(t),this.lpattack(r),this.lpdecay(i),this.lpsustain(s),this.lprelease(a),this));b(this,"hpenv",t=>this.updateValue("hpenv",t));b(this,"hpe",t=>this.updateValue("hpe",t));b(this,"hpattack",t=>this.updateValue("hpattack",t));b(this,"hpa",this.hpattack);b(this,"hpdecay",t=>this.updateValue("hpdecay",t));b(this,"hpd",this.hpdecay);b(this,"hpsustain",t=>this.updateValue("hpsustain",t));b(this,"hpsus",this.hpsustain);b(this,"hprelease",t=>this.updateValue("hprelease",t));b(this,"hpr",this.hprelease);b(this,"hcutoff",t=>this.updateValue("hcutoff",t));b(this,"hpf",this.hcutoff);b(this,"hresonance",t=>this.updateValue("hresonance",t));b(this,"hpq",this.hresonance);b(this,"hpadsr",(t,r,i,s,a)=>(this.hpenv(t),this.hpattack(r),this.hpdecay(i),this.hpsustain(s),this.hprelease(a),this));b(this,"bpenv",t=>this.updateValue("bpenv",t));b(this,"bpe",t=>this.updateValue("bpe",t));b(this,"bpattack",t=>this.updateValue("bpattack",t));b(this,"bpa",this.bpattack);b(this,"bpdecay",t=>this.updateValue("bpdecay",t));b(this,"bpd",this.bpdecay);b(this,"bpsustain",t=>this.updateValue("bpsustain",t));b(this,"bps",this.bpsustain);b(this,"bprelease",t=>this.updateValue("bprelease",t));b(this,"bpr",this.bprelease);b(this,"bandf",t=>this.updateValue("bandf",t));b(this,"bpf",this.bandf);b(this,"bandq",t=>this.updateValue("bandq",t));b(this,"bpq",this.bandq);b(this,"bpadsr",(t,r,i,s,a)=>(this.bpenv(t),this.bpattack(r),this.bpdecay(i),this.bpsustain(s),this.bprelease(a),this));b(this,"freq",t=>this.updateValue("freq",t));b(this,"f",this.freq);b(this,"vib",t=>this.updateValue("vib",t));b(this,"vibmod",t=>this.updateValue("vibmod",t));b(this,"fm",t=>{if(typeof t=="number")this.values.fmi=t;else{let r=t.split(":");this.values.fmi=parseFloat(r[0]),r.length>1&&(this.values.fmh=parseFloat(r[1]))}return this});b(this,"loop",t=>this.updateValue("loop",t));b(this,"loopBegin",t=>this.updateValue("loopBegin",t));b(this,"loopEnd",t=>this.updateValue("loopEnd",t));b(this,"begin",t=>this.updateValue("begin",t));b(this,"end",t=>this.updateValue("end",t));b(this,"gain",t=>this.updateValue("gain",t));b(this,"dbgain",t=>this.updateValue("gain",Math.min(Math.pow(10,t/20),10)));b(this,"db",this.dbgain);b(this,"velocity",t=>this.updateValue("velocity",t));b(this,"vel",this.velocity);b(this,"pan",t=>this.updateValue("pan",t));b(this,"sound",t=>this.updateValue("s",t));b(this,"chord",(t,...r)=>(typeof t=="string"?t=f3(t).map(s=>({note:s,freq:Zn(s)})):t instanceof Array&&typeof t[0]=="number"?t=t.map(i=>({note:i,freq:Zn(i)})):typeof t=="number"&&r.length>0&&(t=[t,...r].map(i=>({note:i,freq:Zn(i)}))),this.updateValue("chord",t)));b(this,"invert",(t=0)=>{if(this.values.chord){let r=this.values.chord.map(s=>s.note);r=t<0?[...r].reverse():r;for(let s=0;s({note:s,freq:Zn(s)}));return this.updateValue("chord",i)}else return this});b(this,"snd",this.sound);b(this,"nudge",t=>this.updateValue("nudge",t));b(this,"cut",t=>this.updateValue("cut",t));b(this,"clip",t=>this.updateValue("clip",t));b(this,"n",t=>this.updateValue("n",t));b(this,"note",t=>typeof t=="string"?this.updateValue("note",oi(t)):this.updateValue("note",t));b(this,"speed",t=>this.updateValue("speed",t));b(this,"spd",this.speed);b(this,"coarse",t=>this.updateValue("coarse",t));b(this,"crush",t=>this.updateValue("crush",t));b(this,"shape",t=>this.updateValue("shape",t));b(this,"vowel",t=>this.updateValue("vowel",t));b(this,"vow",this.vowel);b(this,"delay",t=>this.updateValue("delay",t));b(this,"del",this.delay);b(this,"delayfeedback",t=>this.updateValue("delayfeedback",t));b(this,"delayfb",this.delayfeedback);b(this,"delaytime",t=>this.updateValue("delaytime",t));b(this,"delayt",this.delaytime);b(this,"orbit",t=>this.updateValue("orbit",t));b(this,"o",this.orbit);b(this,"room",t=>this.updateValue("room",t));b(this,"rm",this.room);b(this,"size",t=>this.updateValue("size",t));b(this,"sz",this.size);b(this,"stretch",t=>(this.updateValue("unit","c"),this.updateValue("speed",1/t),this.updateValue("cut",t),this));b(this,"modify",t=>{const r=t(this);return r instanceof Object?r:(t(this.values),this.update(),this)});b(this,"update",()=>{const[t,r]=r_(this.values.key||"C4",this.values.pitch||0,this.values.parsedScale||"MAJOR",this.values.octave||0);this.values.freq=Zn(t)});b(this,"out",()=>{this.values.chord?this.values.chord.forEach(t=>{const r={...this.values};r.freq=t.freq,OE(r,.25,this.values.dur)}):OE(this.values,.25,this.values.dur)});this.app=r,typeof t=="string"?t.includes(":")?this.values={s:t.split(":")[0],n:t.split(":")[1],dur:r.clock.convertPulseToSecond(r.clock.ppqn)}:this.values={s:t,dur:.5}:this.values=t}updateValue(t,r){return this.values[t]=r,this}}class zm extends wI{constructor(t,r){super(r);b(this,"midiConnection");b(this,"chord",t=>(this.values.chord=t,this));b(this,"note",t=>(this.values.note=t,this));b(this,"sustain",t=>(this.values.sustain=t,this));b(this,"channel",t=>(this.values.channel=t,this));b(this,"port",t=>(this.values.port=this.midiConnection.getMidiOutputIndex(t),this));b(this,"add",t=>(this.values.note+=t,this));b(this,"modify",t=>{const r=t(this);return r instanceof Object?r:(t(this.values),this.update(),this)});b(this,"bend",t=>(this.values.bend=t,this));b(this,"random",(t=0,r=127)=>(t=Math.min(Math.max(t,0),127),r=Math.min(Math.max(r,0),127),this.values.note=Math.floor(this.randomGen()*(r-t+1))+t,this));b(this,"update",()=>{const[t,r]=r_(this.values.key||"C4",this.values.pitch||0,this.values.parsedScale||"MAJOR",this.values.octave||0);this.values.note=t,this.values.freq=Zn(t),r&&(this.values.bend=r)});b(this,"out",()=>{function t(r,i){const s=i&&i.channel?i.channel:0,a=r.values.channel?r.values.channel:s,o=r.values.velocity?r.values.velocity:100,l=i&&i.note?i.note:60,c=r.values.note?r.values.note:l,u=r.values.sustain?r.values.sustain*r.app.clock.pulse_duration*r.app.api.ppqn():r.app.clock.pulse_duration*r.app.api.ppqn(),p=r.values.bend?r.values.bend:void 0,m=r.values.port?r.midiConnection.getMidiOutputIndex(r.values.port):r.midiConnection.getCurrentMidiPortIndex();r.midiConnection.sendMidiNote(c,a,o,u,m,p)}this.values.chord?this.values.chord.forEach(r=>{t(this,r)}):t(this)});this.app=r,typeof t=="number"?this.values.note=t:this.values=t,this.midiConnection=r.api.MidiConnection}}const lo=typeof performance=="object"&&performance&&typeof performance.now=="function"?performance:Date,xI=new Set,Hm=typeof process=="object"&&process?process:{},kI=(n,e,t,r)=>{typeof Hm.emitWarning=="function"?Hm.emitWarning(n,e,t,r):console.error(`[${t}] ${e}: ${n}`)};let Bc=globalThis.AbortController,bE=globalThis.AbortSignal;var dT;if(typeof Bc>"u"){bE=class{constructor(){b(this,"onabort");b(this,"_onabort",[]);b(this,"reason");b(this,"aborted",!1)}addEventListener(r,i){this._onabort.push(i)}},Bc=class{constructor(){b(this,"signal",new bE);e()}abort(r){var i,s;if(!this.signal.aborted){this.signal.reason=r,this.signal.aborted=!0;for(const a of this.signal._onabort)a(r);(s=(i=this.signal).onabort)==null||s.call(i,r)}}};let n=((dT=Hm.env)==null?void 0:dT.LRU_CACHE_IGNORE_AC_WARNING)!=="1";const e=()=>{n&&(n=!1,kI("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 sB=n=>!xI.has(n),Pi=n=>n&&n===Math.floor(n)&&n>0&&isFinite(n),LI=n=>Pi(n)?n<=Math.pow(2,8)?Uint8Array:n<=Math.pow(2,16)?Uint16Array:n<=Math.pow(2,32)?Uint32Array:n<=Number.MAX_SAFE_INTEGER?ec:null:null;class ec extends Array{constructor(e){super(e),this.fill(0)}}var cs;const ha=class ha{constructor(e,t){b(this,"heap");b(this,"length");if(!V(ha,cs))throw new TypeError("instantiate Stack using Stack.create(n)");this.heap=new t(e),this.length=0}static create(e){const t=LI(e);if(!t)return[];Xe(ha,cs,!0);const r=new ha(e,t);return Xe(ha,cs,!1),r}push(e){this.heap[this.length++]=e}pop(){return this.heap[--this.length]}};cs=new WeakMap,ot(ha,cs,!1);let Wm=ha;var Nn,Jr,wn,Dn,us,nr,xn,ir,Mt,it,xr,en,Tr,dr,kn,pr,gi,_i,Ln,Mn,Gi,kr,Zo,Zm,Oa,Si,Ko,tn,Gc,MI,Ea,ds,jo,qn,Bi,Vn,Ui,Jo,Km,ps,tc,hs,rc,xt,Ft,el,jm,ba,Oo;const g_=class g_{constructor(e){ot(this,Zo);ot(this,Gc);ot(this,qn);ot(this,Vn);ot(this,Jo);ot(this,ps);ot(this,hs);ot(this,xt);ot(this,el);ot(this,ba);ot(this,Nn,void 0);ot(this,Jr,void 0);ot(this,wn,void 0);ot(this,Dn,void 0);ot(this,us,void 0);b(this,"ttl");b(this,"ttlResolution");b(this,"ttlAutopurge");b(this,"updateAgeOnGet");b(this,"updateAgeOnHas");b(this,"allowStale");b(this,"noDisposeOnSet");b(this,"noUpdateTTL");b(this,"maxEntrySize");b(this,"sizeCalculation");b(this,"noDeleteOnFetchRejection");b(this,"noDeleteOnStaleGet");b(this,"allowStaleOnFetchAbort");b(this,"allowStaleOnFetchRejection");b(this,"ignoreFetchAbort");ot(this,nr,void 0);ot(this,xn,void 0);ot(this,ir,void 0);ot(this,Mt,void 0);ot(this,it,void 0);ot(this,xr,void 0);ot(this,en,void 0);ot(this,Tr,void 0);ot(this,dr,void 0);ot(this,kn,void 0);ot(this,pr,void 0);ot(this,gi,void 0);ot(this,_i,void 0);ot(this,Ln,void 0);ot(this,Mn,void 0);ot(this,Gi,void 0);ot(this,kr,void 0);ot(this,Oa,()=>{});ot(this,Si,()=>{});ot(this,Ko,()=>{});ot(this,tn,()=>!1);ot(this,Ea,e=>{});ot(this,ds,(e,t,r)=>{});ot(this,jo,(e,t,r,i)=>{if(r||i)throw new TypeError("cannot set size without setting maxSize or maxEntrySize on cache");return 0});const{max:t=0,ttl:r,ttlResolution:i=1,ttlAutopurge:s,updateAgeOnGet:a,updateAgeOnHas:o,allowStale:l,dispose:c,disposeAfter:u,noDisposeOnSet:p,noUpdateTTL:m,maxSize:_=0,maxEntrySize:T=0,sizeCalculation:I,fetchMethod:R,noDeleteOnFetchRejection:L,noDeleteOnStaleGet:$,allowStaleOnFetchRejection:K,allowStaleOnFetchAbort:f,ignoreFetchAbort:E}=e;if(t!==0&&!Pi(t))throw new TypeError("max option must be a nonnegative integer");const S=t?LI(t):Array;if(!S)throw new Error("invalid max value: "+t);if(Xe(this,Nn,t),Xe(this,Jr,_),this.maxEntrySize=T||V(this,Jr),this.sizeCalculation=I,this.sizeCalculation){if(!V(this,Jr)&&!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(Xe(this,us,R),Xe(this,Gi,!!R),Xe(this,ir,new Map),Xe(this,Mt,new Array(t).fill(void 0)),Xe(this,it,new Array(t).fill(void 0)),Xe(this,xr,new S(t)),Xe(this,en,new S(t)),Xe(this,Tr,0),Xe(this,dr,0),Xe(this,kn,Wm.create(t)),Xe(this,nr,0),Xe(this,xn,0),typeof c=="function"&&Xe(this,wn,c),typeof u=="function"?(Xe(this,Dn,u),Xe(this,pr,[])):(Xe(this,Dn,void 0),Xe(this,pr,void 0)),Xe(this,Mn,!!V(this,wn)),Xe(this,kr,!!V(this,Dn)),this.noDisposeOnSet=!!p,this.noUpdateTTL=!!m,this.noDeleteOnFetchRejection=!!L,this.allowStaleOnFetchRejection=!!K,this.allowStaleOnFetchAbort=!!f,this.ignoreFetchAbort=!!E,this.maxEntrySize!==0){if(V(this,Jr)!==0&&!Pi(V(this,Jr)))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");Ve(this,Gc,MI).call(this)}if(this.allowStale=!!l,this.noDeleteOnStaleGet=!!$,this.updateAgeOnGet=!!a,this.updateAgeOnHas=!!o,this.ttlResolution=Pi(i)||i===0?i:1,this.ttlAutopurge=!!s,this.ttl=r||0,this.ttl){if(!Pi(this.ttl))throw new TypeError("ttl must be a positive integer if specified");Ve(this,Zo,Zm).call(this)}if(V(this,Nn)===0&&this.ttl===0&&V(this,Jr)===0)throw new TypeError("At least one of max, maxSize, or ttl is required");if(!this.ttlAutopurge&&!V(this,Nn)&&!V(this,Jr)){const N="LRU_CACHE_UNBOUNDED";sB(N)&&(xI.add(N),kI("TTL caching without ttlAutopurge, max, or maxSize can result in unbounded memory consumption.","UnboundedCacheWarning",N,g_))}}static unsafeExposeInternals(e){return{starts:V(e,_i),ttls:V(e,Ln),sizes:V(e,gi),keyMap:V(e,ir),keyList:V(e,Mt),valList:V(e,it),next:V(e,xr),prev:V(e,en),get head(){return V(e,Tr)},get tail(){return V(e,dr)},free:V(e,kn),isBackgroundFetch:t=>{var r;return Ve(r=e,xt,Ft).call(r,t)},backgroundFetch:(t,r,i,s)=>{var a;return Ve(a=e,hs,rc).call(a,t,r,i,s)},moveToTail:t=>{var r;return Ve(r=e,ba,Oo).call(r,t)},indexes:t=>{var r;return Ve(r=e,qn,Bi).call(r,t)},rindexes:t=>{var r;return Ve(r=e,Vn,Ui).call(r,t)},isStale:t=>{var r;return V(r=e,tn).call(r,t)}}}get max(){return V(this,Nn)}get maxSize(){return V(this,Jr)}get calculatedSize(){return V(this,xn)}get size(){return V(this,nr)}get fetchMethod(){return V(this,us)}get dispose(){return V(this,wn)}get disposeAfter(){return V(this,Dn)}getRemainingTTL(e){return V(this,ir).has(e)?1/0:0}*entries(){for(const e of Ve(this,qn,Bi).call(this))V(this,it)[e]!==void 0&&V(this,Mt)[e]!==void 0&&!Ve(this,xt,Ft).call(this,V(this,it)[e])&&(yield[V(this,Mt)[e],V(this,it)[e]])}*rentries(){for(const e of Ve(this,Vn,Ui).call(this))V(this,it)[e]!==void 0&&V(this,Mt)[e]!==void 0&&!Ve(this,xt,Ft).call(this,V(this,it)[e])&&(yield[V(this,Mt)[e],V(this,it)[e]])}*keys(){for(const e of Ve(this,qn,Bi).call(this)){const t=V(this,Mt)[e];t!==void 0&&!Ve(this,xt,Ft).call(this,V(this,it)[e])&&(yield t)}}*rkeys(){for(const e of Ve(this,Vn,Ui).call(this)){const t=V(this,Mt)[e];t!==void 0&&!Ve(this,xt,Ft).call(this,V(this,it)[e])&&(yield t)}}*values(){for(const e of Ve(this,qn,Bi).call(this))V(this,it)[e]!==void 0&&!Ve(this,xt,Ft).call(this,V(this,it)[e])&&(yield V(this,it)[e])}*rvalues(){for(const e of Ve(this,Vn,Ui).call(this))V(this,it)[e]!==void 0&&!Ve(this,xt,Ft).call(this,V(this,it)[e])&&(yield V(this,it)[e])}[Symbol.iterator](){return this.entries()}find(e,t={}){for(const r of Ve(this,qn,Bi).call(this)){const i=V(this,it)[r],s=Ve(this,xt,Ft).call(this,i)?i.__staleWhileFetching:i;if(s!==void 0&&e(s,V(this,Mt)[r],this))return this.get(V(this,Mt)[r],t)}}forEach(e,t=this){for(const r of Ve(this,qn,Bi).call(this)){const i=V(this,it)[r],s=Ve(this,xt,Ft).call(this,i)?i.__staleWhileFetching:i;s!==void 0&&e.call(t,s,V(this,Mt)[r],this)}}rforEach(e,t=this){for(const r of Ve(this,Vn,Ui).call(this)){const i=V(this,it)[r],s=Ve(this,xt,Ft).call(this,i)?i.__staleWhileFetching:i;s!==void 0&&e.call(t,s,V(this,Mt)[r],this)}}purgeStale(){let e=!1;for(const t of Ve(this,Vn,Ui).call(this,{allowStale:!0}))V(this,tn).call(this,t)&&(this.delete(V(this,Mt)[t]),e=!0);return e}dump(){const e=[];for(const t of Ve(this,qn,Bi).call(this,{allowStale:!0})){const r=V(this,Mt)[t],i=V(this,it)[t],s=Ve(this,xt,Ft).call(this,i)?i.__staleWhileFetching:i;if(s===void 0||r===void 0)continue;const a={value:s};if(V(this,Ln)&&V(this,_i)){a.ttl=V(this,Ln)[t];const o=lo.now()-V(this,_i)[t];a.start=Math.floor(Date.now()-o)}V(this,gi)&&(a.size=V(this,gi)[t]),e.unshift([r,a])}return e}load(e){this.clear();for(const[t,r]of e){if(r.start){const i=Date.now()-r.start;r.start=lo.now()-i}this.set(t,r.value,r)}}set(e,t,r={}){var m,_,T,I,R;if(t===void 0)return this.delete(e),this;const{ttl:i=this.ttl,start:s,noDisposeOnSet:a=this.noDisposeOnSet,sizeCalculation:o=this.sizeCalculation,status:l}=r;let{noUpdateTTL:c=this.noUpdateTTL}=r;const u=V(this,jo).call(this,e,t,r.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,nr)===0?void 0:V(this,ir).get(e);if(p===void 0)p=V(this,nr)===0?V(this,dr):V(this,kn).length!==0?V(this,kn).pop():V(this,nr)===V(this,Nn)?Ve(this,ps,tc).call(this,!1):V(this,nr),V(this,Mt)[p]=e,V(this,it)[p]=t,V(this,ir).set(e,p),V(this,xr)[V(this,dr)]=p,V(this,en)[p]=V(this,dr),Xe(this,dr,p),ml(this,nr)._++,V(this,ds).call(this,p,u,l),l&&(l.set="add"),c=!1;else{Ve(this,ba,Oo).call(this,p);const L=V(this,it)[p];if(t!==L){if(V(this,Gi)&&Ve(this,xt,Ft).call(this,L)){L.__abortController.abort(new Error("replaced"));const{__staleWhileFetching:$}=L;$!==void 0&&!a&&(V(this,Mn)&&((m=V(this,wn))==null||m.call(this,$,e,"set")),V(this,kr)&&((_=V(this,pr))==null||_.push([$,e,"set"])))}else a||(V(this,Mn)&&((T=V(this,wn))==null||T.call(this,L,e,"set")),V(this,kr)&&((I=V(this,pr))==null||I.push([L,e,"set"])));if(V(this,Ea).call(this,p),V(this,ds).call(this,p,u,l),V(this,it)[p]=t,l){l.set="replace";const $=L&&Ve(this,xt,Ft).call(this,L)?L.__staleWhileFetching:L;$!==void 0&&(l.oldValue=$)}}else l&&(l.set="update")}if(i!==0&&!V(this,Ln)&&Ve(this,Zo,Zm).call(this),V(this,Ln)&&(c||V(this,Ko).call(this,p,i,s),l&&V(this,Si).call(this,l,p)),!a&&V(this,kr)&&V(this,pr)){const L=V(this,pr);let $;for(;$=L==null?void 0:L.shift();)(R=V(this,Dn))==null||R.call(this,...$)}return this}pop(){var e;try{for(;V(this,nr);){const t=V(this,it)[V(this,Tr)];if(Ve(this,ps,tc).call(this,!0),Ve(this,xt,Ft).call(this,t)){if(t.__staleWhileFetching)return t.__staleWhileFetching}else if(t!==void 0)return t}}finally{if(V(this,kr)&&V(this,pr)){const t=V(this,pr);let r;for(;r=t==null?void 0:t.shift();)(e=V(this,Dn))==null||e.call(this,...r)}}}has(e,t={}){const{updateAgeOnHas:r=this.updateAgeOnHas,status:i}=t,s=V(this,ir).get(e);if(s!==void 0){const a=V(this,it)[s];if(Ve(this,xt,Ft).call(this,a)&&a.__staleWhileFetching===void 0)return!1;if(V(this,tn).call(this,s))i&&(i.has="stale",V(this,Si).call(this,i,s));else return r&&V(this,Oa).call(this,s),i&&(i.has="hit",V(this,Si).call(this,i,s)),!0}else i&&(i.has="miss");return!1}peek(e,t={}){const{allowStale:r=this.allowStale}=t,i=V(this,ir).get(e);if(i!==void 0&&(r||!V(this,tn).call(this,i))){const s=V(this,it)[i];return Ve(this,xt,Ft).call(this,s)?s.__staleWhileFetching:s}}async fetch(e,t={}){const{allowStale:r=this.allowStale,updateAgeOnGet:i=this.updateAgeOnGet,noDeleteOnStaleGet:s=this.noDeleteOnStaleGet,ttl:a=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:T=this.allowStaleOnFetchAbort,context:I,forceRefresh:R=!1,status:L,signal:$}=t;if(!V(this,Gi))return L&&(L.fetch="get"),this.get(e,{allowStale:r,updateAgeOnGet:i,noDeleteOnStaleGet:s,status:L});const K={allowStale:r,updateAgeOnGet:i,noDeleteOnStaleGet:s,ttl:a,noDisposeOnSet:o,size:l,sizeCalculation:c,noUpdateTTL:u,noDeleteOnFetchRejection:p,allowStaleOnFetchRejection:m,allowStaleOnFetchAbort:T,ignoreFetchAbort:_,status:L,signal:$};let f=V(this,ir).get(e);if(f===void 0){L&&(L.fetch="miss");const E=Ve(this,hs,rc).call(this,e,f,K,I);return E.__returned=E}else{const E=V(this,it)[f];if(Ve(this,xt,Ft).call(this,E)){const M=r&&E.__staleWhileFetching!==void 0;return L&&(L.fetch="inflight",M&&(L.returnedStale=!0)),M?E.__staleWhileFetching:E.__returned=E}const S=V(this,tn).call(this,f);if(!R&&!S)return L&&(L.fetch="hit"),Ve(this,ba,Oo).call(this,f),i&&V(this,Oa).call(this,f),L&&V(this,Si).call(this,L,f),E;const N=Ve(this,hs,rc).call(this,e,f,K,I),x=N.__staleWhileFetching!==void 0&&r;return L&&(L.fetch=S?"stale":"refresh",x&&S&&(L.returnedStale=!0)),x?N.__staleWhileFetching:N.__returned=N}}get(e,t={}){const{allowStale:r=this.allowStale,updateAgeOnGet:i=this.updateAgeOnGet,noDeleteOnStaleGet:s=this.noDeleteOnStaleGet,status:a}=t,o=V(this,ir).get(e);if(o!==void 0){const l=V(this,it)[o],c=Ve(this,xt,Ft).call(this,l);return a&&V(this,Si).call(this,a,o),V(this,tn).call(this,o)?(a&&(a.get="stale"),c?(a&&r&&l.__staleWhileFetching!==void 0&&(a.returnedStale=!0),r?l.__staleWhileFetching:void 0):(s||this.delete(e),a&&r&&(a.returnedStale=!0),r?l:void 0)):(a&&(a.get="hit"),c?l.__staleWhileFetching:(Ve(this,ba,Oo).call(this,o),i&&V(this,Oa).call(this,o),l))}else a&&(a.get="miss")}delete(e){var r,i,s,a;let t=!1;if(V(this,nr)!==0){const o=V(this,ir).get(e);if(o!==void 0)if(t=!0,V(this,nr)===1)this.clear();else{V(this,Ea).call(this,o);const l=V(this,it)[o];Ve(this,xt,Ft).call(this,l)?l.__abortController.abort(new Error("deleted")):(V(this,Mn)||V(this,kr))&&(V(this,Mn)&&((r=V(this,wn))==null||r.call(this,l,e,"delete")),V(this,kr)&&((i=V(this,pr))==null||i.push([l,e,"delete"]))),V(this,ir).delete(e),V(this,Mt)[o]=void 0,V(this,it)[o]=void 0,o===V(this,dr)?Xe(this,dr,V(this,en)[o]):o===V(this,Tr)?Xe(this,Tr,V(this,xr)[o]):(V(this,xr)[V(this,en)[o]]=V(this,xr)[o],V(this,en)[V(this,xr)[o]]=V(this,en)[o]),ml(this,nr)._--,V(this,kn).push(o)}}if(V(this,kr)&&((s=V(this,pr))!=null&&s.length)){const o=V(this,pr);let l;for(;l=o==null?void 0:o.shift();)(a=V(this,Dn))==null||a.call(this,...l)}return t}clear(){var e,t,r;for(const i of Ve(this,Vn,Ui).call(this,{allowStale:!0})){const s=V(this,it)[i];if(Ve(this,xt,Ft).call(this,s))s.__abortController.abort(new Error("deleted"));else{const a=V(this,Mt)[i];V(this,Mn)&&((e=V(this,wn))==null||e.call(this,s,a,"delete")),V(this,kr)&&((t=V(this,pr))==null||t.push([s,a,"delete"]))}}if(V(this,ir).clear(),V(this,it).fill(void 0),V(this,Mt).fill(void 0),V(this,Ln)&&V(this,_i)&&(V(this,Ln).fill(0),V(this,_i).fill(0)),V(this,gi)&&V(this,gi).fill(0),Xe(this,Tr,0),Xe(this,dr,0),V(this,kn).length=0,Xe(this,xn,0),Xe(this,nr,0),V(this,kr)&&V(this,pr)){const i=V(this,pr);let s;for(;s=i==null?void 0:i.shift();)(r=V(this,Dn))==null||r.call(this,...s)}}};Nn=new WeakMap,Jr=new WeakMap,wn=new WeakMap,Dn=new WeakMap,us=new WeakMap,nr=new WeakMap,xn=new WeakMap,ir=new WeakMap,Mt=new WeakMap,it=new WeakMap,xr=new WeakMap,en=new WeakMap,Tr=new WeakMap,dr=new WeakMap,kn=new WeakMap,pr=new WeakMap,gi=new WeakMap,_i=new WeakMap,Ln=new WeakMap,Mn=new WeakMap,Gi=new WeakMap,kr=new WeakMap,Zo=new WeakSet,Zm=function(){const e=new ec(V(this,Nn)),t=new ec(V(this,Nn));Xe(this,Ln,e),Xe(this,_i,t),Xe(this,Ko,(s,a,o=lo.now())=>{if(t[s]=a!==0?o:0,e[s]=a,a!==0&&this.ttlAutopurge){const l=setTimeout(()=>{V(this,tn).call(this,s)&&this.delete(V(this,Mt)[s])},a+1);l.unref&&l.unref()}}),Xe(this,Oa,s=>{t[s]=e[s]!==0?lo.now():0}),Xe(this,Si,(s,a)=>{if(e[a]){const o=e[a],l=t[a];s.ttl=o,s.start=l,s.now=r||i();const c=s.now-l;s.remainingTTL=o-c}});let r=0;const i=()=>{const s=lo.now();if(this.ttlResolution>0){r=s;const a=setTimeout(()=>r=0,this.ttlResolution);a.unref&&a.unref()}return s};this.getRemainingTTL=s=>{const a=V(this,ir).get(s);if(a===void 0)return 0;const o=e[a],l=t[a];if(o===0||l===0)return 1/0;const c=(r||i())-l;return o-c},Xe(this,tn,s=>e[s]!==0&&t[s]!==0&&(r||i())-t[s]>e[s])},Oa=new WeakMap,Si=new WeakMap,Ko=new WeakMap,tn=new WeakMap,Gc=new WeakSet,MI=function(){const e=new ec(V(this,Nn));Xe(this,xn,0),Xe(this,gi,e),Xe(this,Ea,t=>{Xe(this,xn,V(this,xn)-e[t]),e[t]=0}),Xe(this,jo,(t,r,i,s)=>{if(Ve(this,xt,Ft).call(this,r))return 0;if(!Pi(i))if(s){if(typeof s!="function")throw new TypeError("sizeCalculation must be a function");if(i=s(r,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}),Xe(this,ds,(t,r,i)=>{if(e[t]=r,V(this,Jr)){const s=V(this,Jr)-e[t];for(;V(this,xn)>s;)Ve(this,ps,tc).call(this,!0)}Xe(this,xn,V(this,xn)+e[t]),i&&(i.entrySize=r,i.totalCalculatedSize=V(this,xn))})},Ea=new WeakMap,ds=new WeakMap,jo=new WeakMap,qn=new WeakSet,Bi=function*({allowStale:e=this.allowStale}={}){if(V(this,nr))for(let t=V(this,dr);!(!Ve(this,Jo,Km).call(this,t)||((e||!V(this,tn).call(this,t))&&(yield t),t===V(this,Tr)));)t=V(this,en)[t]},Vn=new WeakSet,Ui=function*({allowStale:e=this.allowStale}={}){if(V(this,nr))for(let t=V(this,Tr);!(!Ve(this,Jo,Km).call(this,t)||((e||!V(this,tn).call(this,t))&&(yield t),t===V(this,dr)));)t=V(this,xr)[t]},Jo=new WeakSet,Km=function(e){return e!==void 0&&V(this,ir).get(V(this,Mt)[e])===e},ps=new WeakSet,tc=function(e){var s,a;const t=V(this,Tr),r=V(this,Mt)[t],i=V(this,it)[t];return V(this,Gi)&&Ve(this,xt,Ft).call(this,i)?i.__abortController.abort(new Error("evicted")):(V(this,Mn)||V(this,kr))&&(V(this,Mn)&&((s=V(this,wn))==null||s.call(this,i,r,"evict")),V(this,kr)&&((a=V(this,pr))==null||a.push([i,r,"evict"]))),V(this,Ea).call(this,t),e&&(V(this,Mt)[t]=void 0,V(this,it)[t]=void 0,V(this,kn).push(t)),V(this,nr)===1?(Xe(this,Tr,Xe(this,dr,0)),V(this,kn).length=0):Xe(this,Tr,V(this,xr)[t]),V(this,ir).delete(r),ml(this,nr)._--,t},hs=new WeakSet,rc=function(e,t,r,i){const s=t===void 0?void 0:V(this,it)[t];if(Ve(this,xt,Ft).call(this,s))return s;const a=new Bc,{signal:o}=r;o==null||o.addEventListener("abort",()=>a.abort(o.reason),{signal:a.signal});const l={signal:a.signal,options:r,context:i},c=(I,R=!1)=>{const{aborted:L}=a.signal,$=r.ignoreFetchAbort&&I!==void 0;if(r.status&&(L&&!R?(r.status.fetchAborted=!0,r.status.fetchError=a.signal.reason,$&&(r.status.fetchAbortIgnored=!0)):r.status.fetchResolved=!0),L&&!$&&!R)return p(a.signal.reason);const K=_;return V(this,it)[t]===_&&(I===void 0?K.__staleWhileFetching?V(this,it)[t]=K.__staleWhileFetching:this.delete(e):(r.status&&(r.status.fetchUpdated=!0),this.set(e,I,l.options))),I},u=I=>(r.status&&(r.status.fetchRejected=!0,r.status.fetchError=I),p(I)),p=I=>{const{aborted:R}=a.signal,L=R&&r.allowStaleOnFetchAbort,$=L||r.allowStaleOnFetchRejection,K=$||r.noDeleteOnFetchRejection,f=_;if(V(this,it)[t]===_&&(!K||f.__staleWhileFetching===void 0?this.delete(e):L||(V(this,it)[t]=f.__staleWhileFetching)),$)return r.status&&f.__staleWhileFetching!==void 0&&(r.status.returnedStale=!0),f.__staleWhileFetching;if(f.__returned===f)throw I},m=(I,R)=>{var $;const L=($=V(this,us))==null?void 0:$.call(this,e,s,l);L&&L instanceof Promise&&L.then(K=>I(K===void 0?void 0:K),R),a.signal.addEventListener("abort",()=>{(!r.ignoreFetchAbort||r.allowStaleOnFetchAbort)&&(I(void 0),r.allowStaleOnFetchAbort&&(I=K=>c(K,!0)))})};r.status&&(r.status.fetchDispatched=!0);const _=new Promise(m).then(c,u),T=Object.assign(_,{__abortController:a,__staleWhileFetching:s,__returned:void 0});return t===void 0?(this.set(e,T,{...l.options,status:void 0}),t=V(this,ir).get(e)):V(this,it)[t]=T,T},xt=new WeakSet,Ft=function(e){if(!V(this,Gi))return!1;const t=e;return!!t&&t instanceof Promise&&t.hasOwnProperty("__staleWhileFetching")&&t.__abortController instanceof Bc},el=new WeakSet,jm=function(e,t){V(this,en)[t]=e,V(this,xr)[e]=t},ba=new WeakSet,Oo=function(e){e!==V(this,dr)&&(e===V(this,Tr)?Xe(this,Tr,V(this,xr)[e]):Ve(this,el,jm).call(this,V(this,en)[e],V(this,xr)[e]),Ve(this,el,jm).call(this,V(this,dr),e),Xe(this,dr,e))};let Xm=g_;const Ro=class Ro{constructor(){b(this,"_fallbackMethod",()=>Ro.createSkipProxy());b(this,"out",()=>{})}};b(Ro,"createSkipProxy",()=>{const e=new Ro;return new Proxy(e,{get(t,r,i){return typeof t[r]>"u"?t._fallbackMethod:t[r]},set(t,r,i,s){return!1}})});let Uc=Ro;const No=class No extends i_{constructor(t,r){super(r);b(this,"_fallbackMethod",()=>No.createRestProxy(this.values.length,this.app));b(this,"out",()=>{});this.values.length=t}};b(No,"createRestProxy",(t,r)=>{const i=new No(t,r);return new Proxy(i,{get(s,a,o){return typeof s[a]>"u"?s._fallbackMethod:s[a]},set(s,a,o,l){return!1}})});let Fc=No;class oB extends i_{constructor(t,r,i){super(i);b(this,"input");b(this,"ziffers");b(this,"initCallTime",0);b(this,"startCallTime",0);b(this,"lastCallTime",0);b(this,"waitTime",0);b(this,"startBeat",0);b(this,"played",!1);b(this,"current");b(this,"retro",!1);b(this,"index",-1);b(this,"zid","");b(this,"options",{});b(this,"skipIndex",0);b(this,"endTime",0);b(this,"next",()=>(this.current=this.ziffers.next(),this.played=!0,this.current));b(this,"pulseToSecond",t=>this.app.clock.convertPulseToSecond(t));b(this,"firstRun",()=>this.notStarted());b(this,"atTheBeginning",()=>this.skipIndex===0&&this.ziffers.index<=0);b(this,"origin",()=>this.app.clock.pulses_since_origin+1);b(this,"pulse",()=>this.app.clock.time_position.pulse);b(this,"beat",()=>this.app.clock.time_position.beat);b(this,"nextBeat",()=>this.app.clock.next_beat_in_ticks);b(this,"nextBeatInTicks",()=>this.app.clock.next_beat_in_ticks);b(this,"areWeThereYet",()=>{this.app.clock.pulses_since_origin=this.nextBeatInTicks())&&this.origin()>=this.waitTime,r=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||r;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});b(this,"lead",()=>this.voiceleading());b(this,"invert",t=>(this.atTheBeginning()&&this.ziffers.invert(t),this));b(this,"out",()=>{});this.app=i,this.input=t,this.options=r,this.ziffers=new T3(t,r)}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 r=this.next(),i=this.app.clock.convertPulseToSecond(r.duration*4*this.app.clock.ppqn);if(r instanceof ti){const s=r.getExisting("freq","pitch","key","scale","octave","parsedScale");return r.sound&&(t=r.sound),r.soundIndex&&(s.n=r.soundIndex),s.dur=i,new Vm(s,this.app).sound(t||"sine")}else if(r instanceof Ra){const s=r.pitches.map(o=>o.getExisting("freq","pitch","key","scale","octave","parsedScale")),a={dur:i};return t&&(a.s=t),new Vm(a,this.app).chord(s)}else if(r instanceof $m)return Fc.createRestProxy(r.duration,this.app)}else return Uc.createSkipProxy()}midi(t=void 0){if(this.areWeThereYet()){const r=this.next(),i=r.getExisting("note","pitch","bend","key","scale","octave","parsedScale");if(r instanceof ti){r.soundIndex&&(i.channel=r.soundIndex);const s=new zm(i,this.app);return t?s.note(t):s}else{if(r instanceof $m)return Fc.createRestProxy(r.duration,this.app);if(r instanceof Ra){const s=r.midiChord();return new zm(i,this.app).chord(s)}}}else return Uc.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 r=this.app.api.patternCache.get(t.name);return r&&(this.waitTime=r.nextEndTime()),this}this.waitTime=this.origin()+Math.ceil(t*4*this.app.clock.ppqn)}return this}sync(t){if(this.atTheBeginning()&&this.notStarted()){const r=this.app.clock.pulses_since_origin,i=typeof t=="function"?t.name:t;if(r>0){const s=this.app.api.patternCache.get(i);if(s){const a=s.ziffers.duration,o=s.startCallTime,l=a*4*this.app.clock.ppqn;this.waitTime=o+l}}}return this}}const lB=n=>n[0]==="{"&&n[n.length-1]==="}",co=(n,e)=>{if(lB(n)){const t=JSON.parse(n);return JSON.stringify({...t,...e})}else return JSON.stringify({...e,text:n})},cB=n=>{String.prototype.speak=function(){const e=JSON.parse(this.valueOf());new PI({...e,text:e.text}).speak().then(()=>{}).catch(t=>{console.log("Error speaking:",t)})},String.prototype.rate=function(e){return co(this.valueOf(),{rate:e})},String.prototype.pitch=function(e){return co(this.valueOf(),{pitch:e})},String.prototype.lang=function(e){return co(this.valueOf(),{lang:e})},String.prototype.volume=function(e){return co(this.valueOf(),{volume:e})},String.prototype.voice=function(e){return co(this.valueOf(),{voice:e})},String.prototype.z=function(e={}){return n.z(this.valueOf(),e)},String.prototype.z0=function(e={}){return n.z0(this.valueOf(),e)},String.prototype.z1=function(e={}){return n.z1(this.valueOf(),e)},String.prototype.z2=function(e={}){return n.z2(this.valueOf(),e)},String.prototype.z3=function(e={}){return n.z3(this.valueOf(),e)},String.prototype.z4=function(e={}){return n.z4(this.valueOf(),e)},String.prototype.z5=function(e={}){return n.z5(this.valueOf(),e)},String.prototype.z6=function(e={}){return n.z6(this.valueOf(),e)},String.prototype.z7=function(e={}){return n.z7(this.valueOf(),e)},String.prototype.z8=function(e={}){return n.z8(this.valueOf(),e)},String.prototype.z9=function(e={}){return n.z9(this.valueOf(),e)},String.prototype.z10=function(e={}){return n.z10(this.valueOf(),e)},String.prototype.z11=function(e={}){return n.z11(this.valueOf(),e)},String.prototype.z12=function(e={}){return n.z12(this.valueOf(),e)},String.prototype.z13=function(e={}){return n.z13(this.valueOf(),e)},String.prototype.z14=function(e={}){return n.z14(this.valueOf(),e)},String.prototype.z15=function(e={}){return n.z15(this.valueOf(),e)},String.prototype.z16=function(e={}){return n.z16(this.valueOf(),e)},String.prototype.note=function(){try{return parseInt(this.valueOf())}catch{return oi(this.valueOf())}}};let rd;class PI{constructor(e){b(this,"speak",()=>new Promise((e,t)=>{if(this.options.text){const r=window.speechSynthesis;r.speaking&&r.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=r.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=s=>{t(s)},r.speaking?(r.cancel(),rd&&clearTimeout(rd),rd=setTimeout(()=>{r.speak(i)},200)):r.speak(i)}else t("No text provided")}));this.options=e}}async function vE(){return Promise.all([Y3(),pa("github:tidalcycles/Dirt-Samples/master").then(()=>eB()),aB(),pa("github:Bubobubobubobubo/Dough-Samples/main"),pa("github:Bubobubobubobubo/Dough-Amiga/main"),pa("github:Bubobubobubobubo/Dough-Amen/main"),pa("github:Bubobubobubobubo/Dough-Waveforms/main")])}class uB{constructor(e){b(this,"variables",{});b(this,"codeExamples",{});b(this,"counters",{});b(this,"_drunk",new A3(-100,100,!1));b(this,"randomGen",Math.random);b(this,"currentSeed");b(this,"localSeeds",new Map);b(this,"patternCache",new Xm({max:1e3,ttl:1e3*60*5}));b(this,"errorTimeoutID",0);b(this,"printTimeoutID",0);b(this,"MidiConnection");b(this,"load");b(this,"_loadUniverseFromInterface",e=>{this.app.loadUniverse(e),this.app.openBuffersModal()});b(this,"_deleteUniverseFromInterface",e=>{delete this.app.universes[e],this.app.settings.saveApplicationToLocalStorage(this.app.universes,this.app.settings),this.app.updateKnownUniversesView()});b(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.play()});b(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.pause()});b(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.play(),this.app.exampleIsPlaying=!0,xP(this.app,e)});b(this,"_all_samples",()=>a_.get());b(this,"_reportError",e=>{console.log(e),clearTimeout(this.errorTimeoutID),clearTimeout(this.printTimeoutID),this.app.error_line.innerHTML=e,this.app.error_line.style.color="color-red-800",this.app.error_line.classList.remove("hidden"),this.errorTimeoutID=setTimeout(()=>this.app.error_line.classList.add("hidden"),2e3)});b(this,"_logMessage",e=>{console.log(e),clearTimeout(this.printTimeoutID),clearTimeout(this.errorTimeoutID),this.app.error_line.innerHTML=e,this.app.error_line.style.color="white",this.app.error_line.classList.remove("hidden"),this.printTimeoutID=setTimeout(()=>this.app.error_line.classList.add("hidden"),4e3)});b(this,"time",()=>this.app.audioContext.currentTime);b(this,"play",()=>{this.app.setButtonHighlighting("play",!0),this.MidiConnection.sendStartMessage(),this.app.clock.start()});b(this,"pause",()=>{this.app.setButtonHighlighting("pause",!0),this.MidiConnection.sendStopMessage(),this.app.clock.pause()});b(this,"stop",()=>{this.app.setButtonHighlighting("stop",!0),this.MidiConnection.sendStopMessage(),this.app.clock.stop()});b(this,"silence",this.stop);b(this,"hush",this.stop);b(this,"warp",e=>{this.app.clock.tick=e,this.app.clock.time_position=this.app.clock.convertTicksToTimeposition(e)});b(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)});b(this,"onmousemove",e=>{this.app._mouseX=e.pageX,this.app._mouseY=e.pageY});b(this,"mouseX",()=>this.app._mouseX);b(this,"mouseY",()=>this.app._mouseY);b(this,"noteX",()=>Math.floor(this.app._mouseX/document.body.clientWidth*127));b(this,"noteY",()=>Math.floor(this.app._mouseY/document.body.clientHeight*127));b(this,"script",(...e)=>{e.forEach(t=>{ls(this.app,this.app.universes[this.app.selected_universe].locals[t])})});b(this,"s",this.script);b(this,"delete_script",e=>{this.app.universes[this.app.selected_universe].locals[e]={candidate:"",committed:"",evaluations:0}});b(this,"cs",this.delete_script);b(this,"copy_script",(e,t)=>{this.app.universes[this.app.selected_universe].locals[t]={...this.app.universes[this.app.selected_universe].locals[e]}});b(this,"cps",this.copy_script);b(this,"copy_universe",(e,t)=>{this.app.universes[t]={...this.app.universes[e]}});b(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()});b(this,"big_bang",()=>{confirm("Are you sure you want to delete all universes?")&&(this.app.universes={...Ao},this.app.settings.saveApplicationToLocalStorage(this.app.universes,this.app.settings)),this.app.selected_universe="Default",this.app.updateKnownUniversesView()});b(this,"midi_outputs",()=>{this._logMessage(this.MidiConnection.listMidiOutputs())});b(this,"midi_output",e=>{e?this.MidiConnection.switchMidiOutput(e):console.log(this.MidiConnection.getCurrentMidiPort())});b(this,"midi",(e=60,t,r)=>(t!==void 0&&(typeof e=="number"&&(e={note:e}),e.velocity=t),r!==void 0&&(typeof e=="number"&&(e={note:e}),e.channel=r),new zm(e,this.app)));b(this,"sysex",e=>{this.MidiConnection.sendSysExMessage(e)});b(this,"pitch_bend",(e,t)=>{this.MidiConnection.sendPitchBend(e,t)});b(this,"program_change",(e,t)=>{this.MidiConnection.sendProgramChange(e,t)});b(this,"midi_clock",()=>{this.MidiConnection.sendMidiClock()});b(this,"control_change",({control:e=20,value:t=0,channel:r=0})=>{this.MidiConnection.sendMidiControlChange(e,t,r)});b(this,"midi_panic",()=>{this.MidiConnection.panic()});b(this,"active_note_events",e=>{let t;if(e?t=this.MidiConnection.activeNotesFromChannel(e):t=this.MidiConnection.activeNotes,t.length>0)return t});b(this,"active_notes",e=>{const t=this.active_note_events(e);if(t&&t.length>0)return t.map(r=>r.note)});b(this,"kill_active_notes",()=>{this.MidiConnection.activeNotes=[]});b(this,"sticky_notes",e=>{let t;if(e?t=this.MidiConnection.stickyNotesFromChannel(e):t=this.MidiConnection.stickyNotes,t.length>0)return t.map(r=>r.note)});b(this,"kill_sticky_notes",()=>{this.MidiConnection.stickyNotes=[]});b(this,"buffer",e=>e?this.MidiConnection.findNoteFromBufferInChannel(e)!==void 0:this.MidiConnection.noteInputBuffer.length>0);b(this,"buffer_event",e=>e?this.MidiConnection.findNoteFromBufferInChannel(e):this.MidiConnection.noteInputBuffer.shift());b(this,"buffer_note",e=>{const t=this.buffer_event(e);return t?t.note:void 0});b(this,"last_note_event",e=>e?this.MidiConnection.lastNoteInChannel[e]:this.MidiConnection.lastNote);b(this,"last_note",e=>{const t=this.last_note_event(e);return t?t.note:60});b(this,"last_cc",(e,t)=>t?this.MidiConnection.lastCCInChannel[t]?this.MidiConnection.lastCCInChannel[t][e]:64:this.MidiConnection.lastCC[e]||64);b(this,"has_cc",e=>e?this.MidiConnection.findCCFromBufferInChannel(e)!==void 0:this.MidiConnection.ccInputBuffer.length>0);b(this,"buffer_cc",e=>e?this.MidiConnection.findCCFromBufferInChannel(e):this.MidiConnection.ccInputBuffer.shift());b(this,"generateCacheKey",(...e)=>e.map(t=>JSON.stringify(t)).join(","));b(this,"z",(e,t={},r="")=>{const i="z"+r.toString(),s=r===""?this.generateCacheKey(e,t):i;let a;return this.app.api.patternCache.has(s)&&(a=this.app.api.patternCache.get(s),a.input!==e&&(a=void 0)),a||(a=new oB(e,t,this.app),this.app.api.patternCache.set(s,a)),typeof r=="number"&&(a.zid=i),a.updateLastCallTime(),r!==""&&a.sync("z0"),a});b(this,"z0",(e,t={})=>this.z(e,t,0));b(this,"z1",(e,t={})=>this.z(e,t,1));b(this,"z2",(e,t={})=>this.z(e,t,2));b(this,"z3",(e,t={})=>this.z(e,t,3));b(this,"z4",(e,t={})=>this.z(e,t,4));b(this,"z5",(e,t={})=>this.z(e,t,5));b(this,"z6",(e,t={})=>this.z(e,t,6));b(this,"z7",(e,t={})=>this.z(e,t,7));b(this,"z8",(e,t={})=>this.z(e,t,8));b(this,"z9",(e,t={})=>this.z(e,t,9));b(this,"z10",(e,t={})=>this.z(e,t,10));b(this,"z11",(e,t={})=>this.z(e,t,11));b(this,"z12",(e,t={})=>this.z(e,t,12));b(this,"z13",(e,t={})=>this.z(e,t,13));b(this,"z14",(e,t={})=>this.z(e,t,14));b(this,"z15",(e,t={})=>this.z(e,t,15));b(this,"z16",(e,t={})=>this.z(e,t,16));b(this,"counter",(e,t,r)=>(e in this.counters?(this.counters[e].limit!==t&&(this.counters[e].value=0,this.counters[e].limit=t),this.counters[e].step!==r&&(this.counters[e].step=r??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:r??1,limit:t},this.counters[e].value));b(this,"$",this.counter);b(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);b(this,"drunk",e=>e!==void 0?(this._drunk.position=e,this._drunk.getPosition()):(this._drunk.step(),this._drunk.getPosition()));b(this,"drunk_max",e=>{this._drunk.max=e});b(this,"drunk_min",e=>{this._drunk.min=e});b(this,"drunk_wrap",e=>{this._drunk.toggleWrap(e)});b(this,"variable",(e,t)=>typeof e=="string"&&t===void 0?this.variables[e]:(this.variables[e]=t,this.variables[e]));b(this,"v",this.variable);b(this,"delete_variable",e=>{delete this.variables[e]});b(this,"dv",this.delete_variable);b(this,"clear_variables",()=>{this.variables={}});b(this,"cv",this.clear_variables);b(this,"randI",(e,t)=>Math.floor(this.randomGen()*(t-e+1))+e);b(this,"rand",(e,t)=>this.randomGen()*(t-e)+e);b(this,"irand",this.randI);b(this,"rI",this.randI);b(this,"r",this.rand);b(this,"ir",this.randI);b(this,"seed",e=>{typeof e=="number"&&(e=e.toString()),this.currentSeed!==e&&(this.currentSeed=e,this.randomGen=Ym(e))});b(this,"localSeededRandom",e=>{if(typeof e=="number"&&(e=e.toString()),this.localSeeds.has(e))return this.localSeeds.get(e);const t=Ym(e);return this.localSeeds.set(e,t),t});b(this,"clearLocalSeed",(e=void 0)=>{e&&this.localSeeds.delete(e.toString()),this.localSeeds.clear()});b(this,"quantize",(e,t)=>{if(t.length===0)return e;let r=t[0];return t.forEach(i=>{Math.abs(i-e)Math.min(Math.max(e,t),r));b(this,"cmp",this.clamp);b(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));b(this,"tempo",this.bpm);b(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));b(this,"ppqn",e=>e===void 0?this.app.clock.ppqn:(e<1&&console.log(`Setting ppqn to ${e}`),this.app.clock.ppqn=e,e));b(this,"time_signature",(e,t)=>{this.app.clock.time_signature=[e,t]});b(this,"prob",e=>this.randomGen()*100this.randomGen()>.5);b(this,"odds",(e,t=1)=>this.randomGen()!1);b(this,"almostNever",(e=1)=>this.randomGen()<.025*this.ppqn()/(this.ppqn()*e));b(this,"rarely",(e=1)=>this.randomGen()<.1*this.ppqn()/(this.ppqn()*e));b(this,"scarcely",(e=1)=>this.randomGen()<.25*this.ppqn()/(this.ppqn()*e));b(this,"sometimes",(e=1)=>this.randomGen()<.5*this.ppqn()/(this.ppqn()*e));b(this,"often",(e=1)=>this.randomGen()<.75*this.ppqn()/(this.ppqn()*e));b(this,"frequently",(e=1)=>this.randomGen()<.9*this.ppqn()/(this.ppqn()*e));b(this,"almostAlways",(e=1)=>this.randomGen()<.985*this.ppqn()/(this.ppqn()*e));b(this,"always",(e=1)=>!0);b(this,"dice",e=>Math.floor(this.randomGen()*e)+1);b(this,"cbar",()=>this.app.clock.time_position.bar+1);b(this,"ctick",()=>this.app.clock.tick+1);b(this,"cpulse",()=>this.app.clock.time_position.pulse+1);b(this,"cbeat",()=>this.app.clock.time_position.beat+1);b(this,"ebeat",()=>this.app.clock.beats_since_origin+1);b(this,"epulse",()=>this.app.clock.pulses_since_origin+1);b(this,"nominator",()=>this.app.clock.time_signature[0]);b(this,"meter",()=>this.app.clock.time_signature[1]);b(this,"denominator",this.meter);b(this,"beat",(...e)=>e.map(r=>this.app.clock.pulses_since_origin%Math.floor(r*this.ppqn())===0).some(r=>r===!0));b(this,"b",this.beat);b(this,"pulse",(...e)=>e.map(r=>this.app.clock.pulses_since_origin%r===0).some(r=>r===!0));b(this,"flip",(e,t=50)=>{let r=e*2;const i=this.app.clock.pulses_since_origin,s=Math.floor(r*this.ppqn()),a=Math.floor(t/100*s);return i%s{let t=e*2;const r=this.app.clock.time_position.bar;return Math.floor(r/t)%2===0});b(this,"onbar",(e,t=this.app.clock.time_signature[0])=>{let r=this.app.clock.time_position.bar%t+1;return typeof e=="number"?e===r:e.some(i=>i==r)});b(this,"onbeat",(...e)=>{let t=[];return e.forEach(r=>{let i=r%this.nominator()||this.nominator(),s=Math.floor(i);s=s==0?this.nominator():s;let a=Math.floor((i-s)*this.ppqn()+1);a<=0&&(a=a+this.ppqn()*this.nominator()),t.push(s===this.cbeat()&&this.cpulse()===a)}),t.some(r=>r==!0)});b(this,"oncount",(e,t)=>{typeof e=="number"&&(e=[e]);const r=this.app.clock.pulses_since_origin;let i=[];return e.forEach(s=>{s=s<1?0:s-1;const a=Math.ceil(s*this.ppqn()),o=r%(this.ppqn()*t);return i.push(o===a)}),i.some(s=>s==!0)});b(this,"oneuclid",(e,t,r=0)=>{const s=this._euclidean_cycle(e,t,r).reduce((a,o,l)=>(o&&a.push(l+1),a),[]);return this.oncount(s,t)});b(this,"delay",(e,t)=>{setTimeout(t,e)});b(this,"delayr",(e,t,r)=>{[...Array(t).keys()].map(s=>e*s).forEach((s,a)=>{setTimeout(r,s)})});b(this,"euclid",(e,t,r,i=0)=>this._euclidean_cycle(t,r,i)[e%r]);b(this,"ec",this.euclid);b(this,"rhythm",(e,t,r,i=0)=>this.beat(e)&&this._euclidean_cycle(t,r,i).beat(e));b(this,"bin",(e,t)=>{let i=t.toString(2).split("").map(s=>s==="1");return i[e%i.length]});b(this,"binrhythm",(e,t)=>{let i=t.toString(2).split("").map(s=>s==="1");return this.beat(e)&&i.beat(e)});b(this,"line",(e,t,r=1)=>{const i=[];if(t>e&&r>0||tMath.sin(this.app.clock.ctx.currentTime*Math.PI*2*e)+t);b(this,"usine",(e=1,t=0)=>(this.sine(e,t)+1)/2);b(this,"saw",(e=1,t=0)=>this.app.clock.ctx.currentTime*e%1*2-1+t);b(this,"usaw",(e=1,t=0)=>(this.saw(e,t)+1)/2);b(this,"triangle",(e=1,t=0)=>Math.abs(this.saw(e,t))*2-1);b(this,"utriangle",(e=1,t=0)=>(this.triangle(e,t)+1)/2);b(this,"square",(e=1,t=0,r=.5)=>{const i=1/e;return(Date.now()/1e3+t)%i/i(this.square(e,t,r)+1)/2);b(this,"noise",()=>this.randomGen()*2-1);b(this,"min",(...e)=>Math.min(...e));b(this,"max",(...e)=>Math.max(...e));b(this,"mean",(...e)=>e.reduce((r,i)=>r+i,0)/e.length);b(this,"limit",(e,t,r)=>Math.min(Math.max(e,t),r));b(this,"abs",Math.abs);b(this,"speak",(e,t="en-US",r=0,i=1,s=1)=>{new PI({text:e,lang:t,voice:r,rate:i,pitch:s}).speak().then(()=>{}).catch(o=>{console.log(o)})});b(this,"stop_hydra",()=>{this.app.hydra.hush()});b(this,"sound",e=>new Vm(e,this.app));b(this,"snd",this.sound);b(this,"samples",pa);b(this,"log",e=>{console.log(e),this._logMessage(e)});b(this,"scale",n_);b(this,"rate",e=>{});b(this,"divseq",(...e)=>{const t=e[0],r=e.slice(1),i=this.app.clock.pulses_since_origin,s=Math.floor(i/Math.floor(t*this.ppqn()));return r[s%r.length]});b(this,"seqbeat",(...e)=>e[this.app.clock.time_position.beat%e.length]);b(this,"seqbar",(...e)=>e[(this.app.clock.time_position.bar+1)%e.length]);this.app=e,this.MidiConnection=new y3(this,e.settings)}transmission(){return this.MidiConnection.activeNotes.length>0}_euclidean_cycle(e,t,r=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 s=Array.from({length:t},(o,l)=>(e*(l-1)%t+t)%t);let a=s.map((o,l)=>i(s,l));return r!=0&&(a=a.slice(r).concat(a.slice(0,r))),a}}const dB=n=>{Array.prototype.in=function(e){return this.includes(e)},Array.prototype.square=function(){return this.map(e=>e*e)},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(n.randomGen()*this.length)]},Array.prototype.gen=function(e,t,r){return r<1?[]:Array.from({length:r},()=>Math.floor(n.randomGen()*(t-e+1))+e)},Array.prototype.bar=function(){return this[n.app.clock.time_position.bar%this.length]},Array.prototype.pulse=function(){return this[n.app.clock.time_position.pulse%this.length]},Array.prototype.beat=function(e=1){const t=e,r=n.app.clock.pulses_since_origin,i=Math.floor(r/Math.floor(t*n.ppqn()));return this[i%this.length]},Array.prototype.b=Array.prototype.beat,Array.prototype.shuffle=function(){let e=this.length,t;for(;e!==0;)t=Math.floor(n.randomGen()*e),e--,[this[e],this[t]]=[this[t],this[e]];return this},Array.prototype.rotate=function(e){const t=this.length;if(e<0)e=t+e%t;else if(e>0)e=e%t;else return this;const r=this.splice(-e,e);return this.unshift(...r),this},Array.prototype.unique=function(){const e=new Set;let t=0;for(let r=0;r100)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.repeatAll=function(e=1){if(e<1)throw new Error("Amount should be at least 1");let t=[];for(let r=0;r(i%s+s)%s,r=yI(cl(n));return this.map(i=>{const s=Math.floor(i/r.length)*12;return r[t(i,r.length)]+e+s})};Array.prototype.scaleArp=function(n="major",e=0){const t=yI(cl(n));let r=[];e=e>t.length?t.length:e,e=e==0?t.length:e;for(let i=0;i>1|(Bt&21845)<<1;Li=(Li&52428)>>2|(Li&13107)<<2,Li=(Li&61680)>>4|(Li&3855)<<4,tg[Bt]=((Li&65280)>>8|(Li&255)<<8)>>1}var ri=function(n,e,t){for(var r=n.length,i=0,s=new ln(e);i>l]=c}else for(o=new ln(r),i=0;i>15-n[i]);return o},Ki=new Sr(288);for(var Bt=0;Bt<144;++Bt)Ki[Bt]=8;for(var Bt=144;Bt<256;++Bt)Ki[Bt]=9;for(var Bt=256;Bt<280;++Bt)Ki[Bt]=7;for(var Bt=280;Bt<288;++Bt)Ki[Bt]=8;var Ho=new Sr(32);for(var Bt=0;Bt<32;++Bt)Ho[Bt]=5;var hB=ri(Ki,9,0),fB=ri(Ki,9,1),mB=ri(Ho,5,0),gB=ri(Ho,5,1),nd=function(n){for(var e=n[0],t=1;te&&(e=n[t]);return e},Rn=function(n,e,t){var r=e/8|0;return(n[r]|n[r+1]<<8)>>(e&7)&t},id=function(n,e){var t=e/8|0;return(n[t]|n[t+1]<<8|n[t+2]<<16)>>(e&7)},c_=function(n){return(n+7)/8|0},u_=function(n,e,t){(e==null||e<0)&&(e=0),(t==null||t>n.length)&&(t=n.length);var r=new Sr(t-e);return r.set(n.subarray(e,t)),r},_B=["unexpected EOF","invalid block type","invalid length/literal","invalid distance","stream finished","no stream handler",,"no callback","invalid UTF-8 data","extra field too long","date not in range 1980-2099","filename too long","stream finishing","invalid zip data"],$r=function(n,e,t){var r=new Error(e||_B[n]);if(r.code=n,Error.captureStackTrace&&Error.captureStackTrace(r,$r),!t)throw r;return r},d_=function(n,e,t,r){var i=n.length,s=r?r.length:0;if(!i||e.f&&!e.l)return t||new Sr(0);var a=!t||e.i!=2,o=e.i;t||(t=new Sr(i*3));var l=function(Le){var tt=t.length;if(Le>tt){var nt=new Sr(Math.max(tt*2,Le));nt.set(t),t=nt}},c=e.f||0,u=e.p||0,p=e.b||0,m=e.l,_=e.d,T=e.m,I=e.n,R=i*8;do{if(!m){c=Rn(n,u,1);var L=Rn(n,u+1,3);if(u+=3,L)if(L==1)m=fB,_=gB,T=9,I=5;else if(L==2){var E=Rn(n,u,31)+257,S=Rn(n,u+10,15)+4,N=E+Rn(n,u+5,31)+1;u+=14;for(var k=new Sr(N),x=new Sr(19),M=0;M>4;if($<16)k[M++]=$;else{var ee=0,B=0;for($==16?(B=3+Rn(n,u,3),u+=2,ee=k[M-1]):$==17?(B=3+Rn(n,u,7),u+=3):$==18&&(B=11+Rn(n,u,127),u+=7);B--;)k[M++]=ee}}var Q=k.subarray(0,E),j=k.subarray(E);T=nd(Q),I=nd(j),m=ri(Q,T,1),_=ri(j,I,1)}else $r(1);else{var $=c_(u)+4,K=n[$-4]|n[$-3]<<8,f=$+K;if(f>i){o&&$r(0);break}a&&l(p+K),t.set(n.subarray($,f),p),e.b=p+=K,e.p=u=f*8,e.f=c;continue}if(u>R){o&&$r(0);break}}a&&l(p+131072);for(var Z=(1<>4;if(u+=ee&15,u>R){o&&$r(0);break}if(ee||$r(2),Ee<256)t[p++]=Ee;else if(Ee==256){le=u,m=null;break}else{var De=Ee-254;if(Ee>264){var M=Ee-257,xe=iu[M];De=Rn(n,u,(1<>4;be||$r(3),u+=be&15;var j=pB[Re];if(Re>3){var xe=au[Re];j+=id(n,u)&(1<R){o&&$r(0);break}a&&l(p+131072);var ce=p+De;if(p>8},uo=function(n,e,t){t<<=e&7;var r=e/8|0;n[r]|=t,n[r+1]|=t>>8,n[r+2]|=t>>16},ad=function(n,e){for(var t=[],r=0;rm&&(m=s[r].s);var _=new ln(m+1),T=rg(t[u-1],_,0);if(T>e){var r=0,I=0,R=T-e,L=1<e)I+=L-(1<>=R;I>0;){var K=s[r].s;_[K]=0&&I;--r){var f=s[r].s;_[f]==e&&(--_[f],++I)}T=e}return{t:new Sr(_),l:T}},rg=function(n,e,t){return n.s==-1?Math.max(rg(n.l,e,t+1),rg(n.r,e,t+1)):e[n.s]=t},CE=function(n){for(var e=n.length;e&&!n[--e];);for(var t=new ln(++e),r=0,i=n[0],s=1,a=function(l){t[r++]=l},o=1;o<=e;++o)if(n[o]==i&&o!=e)++s;else{if(!i&&s>2){for(;s>138;s-=138)a(32754);s>2&&(a(s>10?s-11<<5|28690:s-3<<5|12305),s=0)}else if(s>3){for(a(i),--s;s>6;s-=6)a(8304);s>2&&(a(s-3<<5|8208),s=0)}for(;s--;)a(i);s=1,i=n[o]}return{c:t.subarray(0,r),n:e}},po=function(n,e){for(var t=0,r=0;r>8,n[i+2]=n[i]^255,n[i+3]=n[i+1]^255;for(var s=0;s4&&!M[Jm[te-1]];--te);var ne=c+5<<3,re=po(i,Ki)+po(s,Ho)+a,ee=po(i,m)+po(s,I)+a+14+3*te+po(N,M)+2*N[16]+3*N[17]+7*N[18];if(l>=0&&ne<=re&&ne<=ee)return $I(e,u,n.subarray(l,l+c));var B,Q,j,Z;if(fi(e,u,1+(ee15&&(fi(e,u,De[k]>>5&127),u+=De[k]>>12)}}else B=hB,Q=Ki,j=mB,Z=Ho;for(var k=0;k255){var xe=be>>18&31;uo(e,u,B[xe+257]),u+=Q[xe+257],xe>7&&(fi(e,u,be>>23&31),u+=iu[xe]);var Re=be&31;uo(e,u,j[Re]),u+=Z[Re],Re>3&&(uo(e,u,be>>5&8191),u+=au[Re])}else uo(e,u,B[be]),u+=Q[be]}return uo(e,u,B[256]),u+Q[256]},SB=new l_([65540,131080,131088,131104,262176,1048704,1048832,2114560,2117632]),GI=new Sr(0),OB=function(n,e,t,r,i,s){var a=s.z||n.length,o=new Sr(r+a+5*(1+Math.ceil(a/7e3))+i),l=o.subarray(r,o.length-i),c=s.l,u=(s.r||0)&7;if(e){u&&(l[0]=s.r>>3);for(var p=SB[e-1],m=p>>13,_=p&8191,T=(1<7e3||M>24576)&&(B>423||!c)){u=yE(n,l,0,f,E,S,k,M,te,x-te,u),M=N=k=0,te=x;for(var Q=0;Q<286;++Q)E[Q]=0;for(var Q=0;Q<30;++Q)S[Q]=0}var j=2,Z=0,ue=_,le=re-ee&32767;if(B>2&&ne==K(x-le))for(var Ee=Math.min(m,B)-1,De=Math.min(32767,x),xe=Math.min(258,B);le<=De&&--ue&&re!=ee;){if(n[x+j]==n[x+j-le]){for(var be=0;bej){if(j=be,Z=le,be>Ee)break;for(var Re=Math.min(le,be-2),ce=0,Q=0;Qce&&(ce=Le,ee=ke)}}}re=ee,ee=I[re],le+=re-ee&32767}if(Z){f[M++]=268435456|eg[j]<<18|TE[Z];var tt=eg[j]&31,nt=TE[Z]&31;k+=iu[tt]+au[nt],++E[257+tt],++S[nt],G=x+j,++N}else f[M++]=n[x],++E[n[x]]}}for(x=Math.max(x,G);x=a&&(l[u/8|0]=c,ze=a),u=$I(l,u+1,n.subarray(x,ze))}s.i=a}return u_(o,0,r+c_(u)+i)},EB=function(){for(var n=new Int32Array(256),e=0;e<256;++e){for(var t=e,r=9;--r;)t=(t&1&&-306674912)^t>>>1;n[e]=t}return n}(),bB=function(){var n=-1;return{p:function(e){for(var t=n,r=0;r>>8;n=t},d:function(){return~n}}},vB=function(n,e,t,r,i){if(!i&&(i={l:1},e.dictionary)){var s=e.dictionary.subarray(-32768),a=new Sr(s.length+n.length);a.set(s),a.set(n,s.length),n=a,i.w=s.length}return OB(n,e.level==null?6:e.level,e.mem==null?Math.ceil(Math.max(8,Math.min(13,Math.log(n.length)))*1.5):12+e.mem,t,r,i)},ng=function(n,e,t){for(;t;++e)n[e]=t,t>>>=8},TB=function(n,e){var t=e.filename;if(n[0]=31,n[1]=139,n[2]=8,n[8]=e.level<2?4:e.level==9?2:0,n[9]=3,e.mtime!=0&&ng(n,4,Math.floor(new Date(e.mtime||Date.now())/1e3)),t){n[3]=8;for(var r=0;r<=t.length;++r)n[r+10]=t.charCodeAt(r)}},CB=function(n){(n[0]!=31||n[1]!=139||n[2]!=8)&&$r(6,"invalid gzip data");var e=n[3],t=10;e&4&&(t+=(n[10]|n[11]<<8)+2);for(var r=(e>>3&1)+(e>>4&1);r>0;r-=!n[t++]);return t+(e&2)},yB=function(n){var e=n.length;return(n[e-4]|n[e-3]<<8|n[e-2]<<16|n[e-1]<<24)>>>0},AB=function(n){return 10+(n.filename?n.filename.length+1:0)},IB=function(n,e){return((n[0]&15)!=8||n[0]>>4>7||(n[0]<<8|n[1])%31)&&$r(6,"invalid zlib data"),(n[1]>>5&1)==+!e&&$r(6,"invalid zlib data: "+(n[1]&32?"need":"unexpected")+" dictionary"),(n[1]>>3&4)+2};function RB(n,e){return d_(n,{i:2},e&&e.out,e&&e.dictionary)}function NB(n,e){e||(e={});var t=bB(),r=n.length;t.p(n);var i=vB(n,e,AB(e),8),s=i.length;return TB(i,e),ng(i,s-8,t.d()),ng(i,s-4,r),i}function wB(n,e){var t=CB(n);return t+8>n.length&&$r(6,"invalid gzip data"),d_(n.subarray(t,-8),{i:2},e&&e.out||new Sr(yB(n)),e&&e.dictionary)}function DB(n,e){return d_(n.subarray(IB(n,e&&e.dictionary),-4),{i:2},e&&e.out,e&&e.dictionary)}function xB(n,e){return n[0]==31&&n[1]==139&&n[2]==8?wB(n,e):(n[0]&15)!=8||n[0]>>4>7||(n[0]<<8|n[1])%31?RB(n,e):DB(n,e)}var ig=typeof TextDecoder<"u"&&new TextDecoder,kB=0;try{ig.decode(GI,{stream:!0}),kB=1}catch{}var LB=function(n){for(var e="",t=0;;){var r=n[t++],i=(r>127)+(r>223)+(r>239);if(t+i>n.length)return{s:e,r:u_(n,t-1)};i?i==3?(r=((r&15)<<18|(n[t++]&63)<<12|(n[t++]&63)<<6|n[t++]&63)-65536,e+=String.fromCharCode(55296|r>>10,56320|r&1023)):i&1?e+=String.fromCharCode((r&31)<<6|n[t++]&63):e+=String.fromCharCode((r&15)<<12|(n[t++]&63)<<6|n[t++]&63):e+=String.fromCharCode(r)}};function MB(n,e){if(e){for(var t="",r=0;r (GFM Style)",type:"boolean"},requireSpaceBeforeHeadingText:{defaultValue:!1,describe:"Makes adding a space between `#` and the header text mandatory (GFM Style)",type:"boolean"},ghMentions:{defaultValue:!1,describe:"Enables github @mentions",type:"boolean"},ghMentionsLink:{defaultValue:"https://github.com/{u}",describe:"Changes the link generated by @mentions. Only applies if ghMentions option is enabled.",type:"string"},encodeEmails:{defaultValue:!0,describe:"Encode e-mail addresses through the use of Character Entities, transforming ASCII e-mail addresses into its equivalent decimal entities",type:"boolean"},openLinksInNewWindow:{defaultValue:!1,describe:"Open all links in new windows",type:"boolean"},backslashEscapesHTMLTags:{defaultValue:!1,describe:"Support for HTML Tag escaping. ex:
foo
",type:"boolean"},emoji:{defaultValue:!1,describe:"Enable emoji support. Ex: `this is a :smile: emoji`",type:"boolean"},underline:{defaultValue:!1,describe:"Enable support for underline. Syntax is double or triple underscores: `__underline word__`. With this option enabled, underscores no longer parses into `` and ``",type:"boolean"},ellipsis:{defaultValue:!0,describe:"Replaces three dots with the ellipsis unicode character",type:"boolean"},completeHTMLDocument:{defaultValue:!1,describe:"Outputs a complete html document, including ``, `` and `` tags",type:"boolean"},metadata:{defaultValue:!1,describe:"Enable support for document metadata (defined at the top of the document between `«««` and `»»»` or between `---` and `---`).",type:"boolean"},splitAdjacentBlockquotes:{defaultValue:!1,describe:"Split adjacent blockquote blocks",type:"boolean"}};if(f===!1)return JSON.parse(JSON.stringify(E));var S={};for(var N in E)E.hasOwnProperty(N)&&(S[N]=E[N].defaultValue);return S}function t(){var f=e(!0),E={};for(var S in f)f.hasOwnProperty(S)&&(E[S]=!0);return E}var r={},i={},s={},a=e(!0),o="vanilla",l={github:{omitExtraWLInCodeBlocks:!0,simplifiedAutoLink:!0,excludeTrailingPunctuationFromURLs:!0,literalMidWordUnderscores:!0,strikethrough:!0,tables:!0,tablesHeaderId:!0,ghCodeBlocks:!0,tasklists:!0,disableForced4SpacesIndentedSublists:!0,simpleLineBreaks:!0,requireSpaceBeforeHeadingText:!0,ghCompatibleHeaderId:!0,ghMentions:!0,backslashEscapesHTMLTags:!0,emoji:!0,splitAdjacentBlockquotes:!0},original:{noHeaderId:!0,ghCodeBlocks:!1},ghost:{omitExtraWLInCodeBlocks:!0,parseImgDimensions:!0,simplifiedAutoLink:!0,excludeTrailingPunctuationFromURLs:!0,literalMidWordUnderscores:!0,strikethrough:!0,tables:!0,tablesHeaderId:!0,ghCodeBlocks:!0,tasklists:!0,smoothLivePreview:!0,simpleLineBreaks:!0,requireSpaceBeforeHeadingText:!0,ghMentions:!1,encodeEmails:!0},vanilla:e(!0),allOn:t()};r.helper={},r.extensions={},r.setOption=function(f,E){return a[f]=E,this},r.getOption=function(f){return a[f]},r.getOptions=function(){return a},r.resetOptions=function(){a=e(!0)},r.setFlavor=function(f){if(!l.hasOwnProperty(f))throw Error(f+" flavor was not found");r.resetOptions();var E=l[f];o=f;for(var S in E)E.hasOwnProperty(S)&&(a[S]=E[S])},r.getFlavor=function(){return o},r.getFlavorOptions=function(f){if(l.hasOwnProperty(f))return l[f]},r.getDefaultOptions=function(f){return e(f)},r.subParser=function(f,E){if(r.helper.isString(f))if(typeof E<"u")i[f]=E;else{if(i.hasOwnProperty(f))return i[f];throw Error("SubParser named "+f+" not registered!")}},r.extension=function(f,E){if(!r.helper.isString(f))throw Error("Extension 'name' must be a string");if(f=r.helper.stdExtName(f),r.helper.isUndefined(E)){if(!s.hasOwnProperty(f))throw Error("Extension named "+f+" is not registered!");return s[f]}else{typeof E=="function"&&(E=E()),r.helper.isArray(E)||(E=[E]);var S=c(E,f);if(S.valid)s[f]=E;else throw Error(S.error)}},r.getAllExtensions=function(){return s},r.removeExtension=function(f){delete s[f]},r.resetExtensions=function(){s={}};function c(f,E){var S=E?"Error in "+E+" extension->":"Error in unnamed extension",N={valid:!0,error:""};r.helper.isArray(f)||(f=[f]);for(var k=0;k"u"},r.helper.forEach=function(f,E){if(r.helper.isUndefined(f))throw new Error("obj param is required");if(r.helper.isUndefined(E))throw new Error("callback param is required");if(!r.helper.isFunction(E))throw new Error("callback param must be a function/closure");if(typeof f.forEach=="function")f.forEach(E);else if(r.helper.isArray(f))for(var S=0;S").replace(/&/g,"&")};var p=function(f,E,S,N){var k=N||"",x=k.indexOf("g")>-1,M=new RegExp(E+"|"+S,"g"+k.replace(/g/g,"")),G=new RegExp(E,k.replace(/g/g,"")),te=[],ne,re,ee,B,Q;do for(ne=0;ee=M.exec(f);)if(G.test(ee[0]))ne++||(re=M.lastIndex,B=re-ee[0].length);else if(ne&&!--ne){Q=ee.index+ee[0].length;var j={left:{start:B,end:re},match:{start:re,end:ee.index},right:{start:ee.index,end:Q},wholeMatch:{start:B,end:Q}};if(te.push(j),!x)return te}while(ne&&(M.lastIndex=re));return te};r.helper.matchRecursiveRegExp=function(f,E,S,N){for(var k=p(f,E,S,N),x=[],M=0;M0){var ne=[];M[0].wholeMatch.start!==0&&ne.push(f.slice(0,M[0].wholeMatch.start));for(var re=0;re=0?N+(S||0):N},r.helper.splitAtIndex=function(f,E){if(!r.helper.isString(f))throw"InvalidArgumentError: first parameter of showdown.helper.regexIndexOf function must be a string";return[f.substring(0,E),f.substring(E)]},r.helper.encodeEmailAddress=function(f){var E=[function(S){return"&#"+S.charCodeAt(0)+";"},function(S){return"&#x"+S.charCodeAt(0).toString(16)+";"},function(S){return S}];return f=f.replace(/./g,function(S){if(S==="@")S=E[Math.floor(Math.random()*2)](S);else{var N=Math.random();S=N>.9?E[2](S):N>.45?E[1](S):E[0](S)}return S}),f},r.helper.padEnd=function(E,S,N){return S=S>>0,N=String(N||" "),E.length>S?String(E):(S=S-E.length,S>N.length&&(N+=N.repeat(S/N.length)),String(E)+N.slice(0,S))},typeof console>"u"&&(console={warn:function(f){alert(f)},log:function(f){alert(f)},error:function(f){throw f}}),r.helper.regexes={asteriskDashAndColon:/([*_:~])/g},r.helper.emojis={"+1":"👍","-1":"👎",100:"💯",1234:"🔢","1st_place_medal":"🥇","2nd_place_medal":"🥈","3rd_place_medal":"🥉","8ball":"🎱",a:"🅰️",ab:"🆎",abc:"🔤",abcd:"🔡",accept:"🉑",aerial_tramway:"🚡",airplane:"✈️",alarm_clock:"⏰",alembic:"⚗️",alien:"👽",ambulance:"🚑",amphora:"🏺",anchor:"⚓️",angel:"👼",anger:"💢",angry:"😠",anguished:"😧",ant:"🐜",apple:"🍎",aquarius:"♒️",aries:"♈️",arrow_backward:"◀️",arrow_double_down:"⏬",arrow_double_up:"⏫",arrow_down:"⬇️",arrow_down_small:"🔽",arrow_forward:"▶️",arrow_heading_down:"⤵️",arrow_heading_up:"⤴️",arrow_left:"⬅️",arrow_lower_left:"↙️",arrow_lower_right:"↘️",arrow_right:"➡️",arrow_right_hook:"↪️",arrow_up:"⬆️",arrow_up_down:"↕️",arrow_up_small:"🔼",arrow_upper_left:"↖️",arrow_upper_right:"↗️",arrows_clockwise:"🔃",arrows_counterclockwise:"🔄",art:"🎨",articulated_lorry:"🚛",artificial_satellite:"🛰",astonished:"😲",athletic_shoe:"👟",atm:"🏧",atom_symbol:"⚛️",avocado:"🥑",b:"🅱️",baby:"👶",baby_bottle:"🍼",baby_chick:"🐤",baby_symbol:"🚼",back:"🔙",bacon:"🥓",badminton:"🏸",baggage_claim:"🛄",baguette_bread:"🥖",balance_scale:"⚖️",balloon:"🎈",ballot_box:"🗳",ballot_box_with_check:"☑️",bamboo:"🎍",banana:"🍌",bangbang:"‼️",bank:"🏦",bar_chart:"📊",barber:"💈",baseball:"⚾️",basketball:"🏀",basketball_man:"⛹️",basketball_woman:"⛹️‍♀️",bat:"🦇",bath:"🛀",bathtub:"🛁",battery:"🔋",beach_umbrella:"🏖",bear:"🐻",bed:"🛏",bee:"🐝",beer:"🍺",beers:"🍻",beetle:"🐞",beginner:"🔰",bell:"🔔",bellhop_bell:"🛎",bento:"🍱",biking_man:"🚴",bike:"🚲",biking_woman:"🚴‍♀️",bikini:"👙",biohazard:"☣️",bird:"🐦",birthday:"🎂",black_circle:"⚫️",black_flag:"🏴",black_heart:"🖤",black_joker:"🃏",black_large_square:"⬛️",black_medium_small_square:"◾️",black_medium_square:"◼️",black_nib:"✒️",black_small_square:"▪️",black_square_button:"🔲",blonde_man:"👱",blonde_woman:"👱‍♀️",blossom:"🌼",blowfish:"🐡",blue_book:"📘",blue_car:"🚙",blue_heart:"💙",blush:"😊",boar:"🐗",boat:"⛵️",bomb:"💣",book:"📖",bookmark:"🔖",bookmark_tabs:"📑",books:"📚",boom:"💥",boot:"👢",bouquet:"💐",bowing_man:"🙇",bow_and_arrow:"🏹",bowing_woman:"🙇‍♀️",bowling:"🎳",boxing_glove:"🥊",boy:"👦",bread:"🍞",bride_with_veil:"👰",bridge_at_night:"🌉",briefcase:"💼",broken_heart:"💔",bug:"🐛",building_construction:"🏗",bulb:"💡",bullettrain_front:"🚅",bullettrain_side:"🚄",burrito:"🌯",bus:"🚌",business_suit_levitating:"🕴",busstop:"🚏",bust_in_silhouette:"👤",busts_in_silhouette:"👥",butterfly:"🦋",cactus:"🌵",cake:"🍰",calendar:"📆",call_me_hand:"🤙",calling:"📲",camel:"🐫",camera:"📷",camera_flash:"📸",camping:"🏕",cancer:"♋️",candle:"🕯",candy:"🍬",canoe:"🛶",capital_abcd:"🔠",capricorn:"♑️",car:"🚗",card_file_box:"🗃",card_index:"📇",card_index_dividers:"🗂",carousel_horse:"🎠",carrot:"🥕",cat:"🐱",cat2:"🐈",cd:"💿",chains:"⛓",champagne:"🍾",chart:"💹",chart_with_downwards_trend:"📉",chart_with_upwards_trend:"📈",checkered_flag:"🏁",cheese:"🧀",cherries:"🍒",cherry_blossom:"🌸",chestnut:"🌰",chicken:"🐔",children_crossing:"🚸",chipmunk:"🐿",chocolate_bar:"🍫",christmas_tree:"🎄",church:"⛪️",cinema:"🎦",circus_tent:"🎪",city_sunrise:"🌇",city_sunset:"🌆",cityscape:"🏙",cl:"🆑",clamp:"🗜",clap:"👏",clapper:"🎬",classical_building:"🏛",clinking_glasses:"🥂",clipboard:"📋",clock1:"🕐",clock10:"🕙",clock1030:"🕥",clock11:"🕚",clock1130:"🕦",clock12:"🕛",clock1230:"🕧",clock130:"🕜",clock2:"🕑",clock230:"🕝",clock3:"🕒",clock330:"🕞",clock4:"🕓",clock430:"🕟",clock5:"🕔",clock530:"🕠",clock6:"🕕",clock630:"🕡",clock7:"🕖",clock730:"🕢",clock8:"🕗",clock830:"🕣",clock9:"🕘",clock930:"🕤",closed_book:"📕",closed_lock_with_key:"🔐",closed_umbrella:"🌂",cloud:"☁️",cloud_with_lightning:"🌩",cloud_with_lightning_and_rain:"⛈",cloud_with_rain:"🌧",cloud_with_snow:"🌨",clown_face:"🤡",clubs:"♣️",cocktail:"🍸",coffee:"☕️",coffin:"⚰️",cold_sweat:"😰",comet:"☄️",computer:"💻",computer_mouse:"🖱",confetti_ball:"🎊",confounded:"😖",confused:"😕",congratulations:"㊗️",construction:"🚧",construction_worker_man:"👷",construction_worker_woman:"👷‍♀️",control_knobs:"🎛",convenience_store:"🏪",cookie:"🍪",cool:"🆒",policeman:"👮",copyright:"©️",corn:"🌽",couch_and_lamp:"🛋",couple:"👫",couple_with_heart_woman_man:"💑",couple_with_heart_man_man:"👨‍❤️‍👨",couple_with_heart_woman_woman:"👩‍❤️‍👩",couplekiss_man_man:"👨‍❤️‍💋‍👨",couplekiss_man_woman:"💏",couplekiss_woman_woman:"👩‍❤️‍💋‍👩",cow:"🐮",cow2:"🐄",cowboy_hat_face:"🤠",crab:"🦀",crayon:"🖍",credit_card:"💳",crescent_moon:"🌙",cricket:"🏏",crocodile:"🐊",croissant:"🥐",crossed_fingers:"🤞",crossed_flags:"🎌",crossed_swords:"⚔️",crown:"👑",cry:"😢",crying_cat_face:"😿",crystal_ball:"🔮",cucumber:"🥒",cupid:"💘",curly_loop:"➰",currency_exchange:"💱",curry:"🍛",custard:"🍮",customs:"🛃",cyclone:"🌀",dagger:"🗡",dancer:"💃",dancing_women:"👯",dancing_men:"👯‍♂️",dango:"🍡",dark_sunglasses:"🕶",dart:"🎯",dash:"💨",date:"📅",deciduous_tree:"🌳",deer:"🦌",department_store:"🏬",derelict_house:"🏚",desert:"🏜",desert_island:"🏝",desktop_computer:"🖥",male_detective:"🕵️",diamond_shape_with_a_dot_inside:"💠",diamonds:"♦️",disappointed:"😞",disappointed_relieved:"😥",dizzy:"💫",dizzy_face:"😵",do_not_litter:"🚯",dog:"🐶",dog2:"🐕",dollar:"💵",dolls:"🎎",dolphin:"🐬",door:"🚪",doughnut:"🍩",dove:"🕊",dragon:"🐉",dragon_face:"🐲",dress:"👗",dromedary_camel:"🐪",drooling_face:"🤤",droplet:"💧",drum:"🥁",duck:"🦆",dvd:"📀","e-mail":"📧",eagle:"🦅",ear:"👂",ear_of_rice:"🌾",earth_africa:"🌍",earth_americas:"🌎",earth_asia:"🌏",egg:"🥚",eggplant:"🍆",eight_pointed_black_star:"✴️",eight_spoked_asterisk:"✳️",electric_plug:"🔌",elephant:"🐘",email:"✉️",end:"🔚",envelope_with_arrow:"📩",euro:"💶",european_castle:"🏰",european_post_office:"🏤",evergreen_tree:"🌲",exclamation:"❗️",expressionless:"😑",eye:"👁",eye_speech_bubble:"👁‍🗨",eyeglasses:"👓",eyes:"👀",face_with_head_bandage:"🤕",face_with_thermometer:"🤒",fist_oncoming:"👊",factory:"🏭",fallen_leaf:"🍂",family_man_woman_boy:"👪",family_man_boy:"👨‍👦",family_man_boy_boy:"👨‍👦‍👦",family_man_girl:"👨‍👧",family_man_girl_boy:"👨‍👧‍👦",family_man_girl_girl:"👨‍👧‍👧",family_man_man_boy:"👨‍👨‍👦",family_man_man_boy_boy:"👨‍👨‍👦‍👦",family_man_man_girl:"👨‍👨‍👧",family_man_man_girl_boy:"👨‍👨‍👧‍👦",family_man_man_girl_girl:"👨‍👨‍👧‍👧",family_man_woman_boy_boy:"👨‍👩‍👦‍👦",family_man_woman_girl:"👨‍👩‍👧",family_man_woman_girl_boy:"👨‍👩‍👧‍👦",family_man_woman_girl_girl:"👨‍👩‍👧‍👧",family_woman_boy:"👩‍👦",family_woman_boy_boy:"👩‍👦‍👦",family_woman_girl:"👩‍👧",family_woman_girl_boy:"👩‍👧‍👦",family_woman_girl_girl:"👩‍👧‍👧",family_woman_woman_boy:"👩‍👩‍👦",family_woman_woman_boy_boy:"👩‍👩‍👦‍👦",family_woman_woman_girl:"👩‍👩‍👧",family_woman_woman_girl_boy:"👩‍👩‍👧‍👦",family_woman_woman_girl_girl:"👩‍👩‍👧‍👧",fast_forward:"⏩",fax:"📠",fearful:"😨",feet:"🐾",female_detective:"🕵️‍♀️",ferris_wheel:"🎡",ferry:"⛴",field_hockey:"🏑",file_cabinet:"🗄",file_folder:"📁",film_projector:"📽",film_strip:"🎞",fire:"🔥",fire_engine:"🚒",fireworks:"🎆",first_quarter_moon:"🌓",first_quarter_moon_with_face:"🌛",fish:"🐟",fish_cake:"🍥",fishing_pole_and_fish:"🎣",fist_raised:"✊",fist_left:"🤛",fist_right:"🤜",flags:"🎏",flashlight:"🔦",fleur_de_lis:"⚜️",flight_arrival:"🛬",flight_departure:"🛫",floppy_disk:"💾",flower_playing_cards:"🎴",flushed:"😳",fog:"🌫",foggy:"🌁",football:"🏈",footprints:"👣",fork_and_knife:"🍴",fountain:"⛲️",fountain_pen:"🖋",four_leaf_clover:"🍀",fox_face:"🦊",framed_picture:"🖼",free:"🆓",fried_egg:"🍳",fried_shrimp:"🍤",fries:"🍟",frog:"🐸",frowning:"😦",frowning_face:"☹️",frowning_man:"🙍‍♂️",frowning_woman:"🙍",middle_finger:"🖕",fuelpump:"⛽️",full_moon:"🌕",full_moon_with_face:"🌝",funeral_urn:"⚱️",game_die:"🎲",gear:"⚙️",gem:"💎",gemini:"♊️",ghost:"👻",gift:"🎁",gift_heart:"💝",girl:"👧",globe_with_meridians:"🌐",goal_net:"🥅",goat:"🐐",golf:"⛳️",golfing_man:"🏌️",golfing_woman:"🏌️‍♀️",gorilla:"🦍",grapes:"🍇",green_apple:"🍏",green_book:"📗",green_heart:"💚",green_salad:"🥗",grey_exclamation:"❕",grey_question:"❔",grimacing:"😬",grin:"😁",grinning:"😀",guardsman:"💂",guardswoman:"💂‍♀️",guitar:"🎸",gun:"🔫",haircut_woman:"💇",haircut_man:"💇‍♂️",hamburger:"🍔",hammer:"🔨",hammer_and_pick:"⚒",hammer_and_wrench:"🛠",hamster:"🐹",hand:"✋",handbag:"👜",handshake:"🤝",hankey:"💩",hatched_chick:"🐥",hatching_chick:"🐣",headphones:"🎧",hear_no_evil:"🙉",heart:"❤️",heart_decoration:"💟",heart_eyes:"😍",heart_eyes_cat:"😻",heartbeat:"💓",heartpulse:"💗",hearts:"♥️",heavy_check_mark:"✔️",heavy_division_sign:"➗",heavy_dollar_sign:"💲",heavy_heart_exclamation:"❣️",heavy_minus_sign:"➖",heavy_multiplication_x:"✖️",heavy_plus_sign:"➕",helicopter:"🚁",herb:"🌿",hibiscus:"🌺",high_brightness:"🔆",high_heel:"👠",hocho:"🔪",hole:"🕳",honey_pot:"🍯",horse:"🐴",horse_racing:"🏇",hospital:"🏥",hot_pepper:"🌶",hotdog:"🌭",hotel:"🏨",hotsprings:"♨️",hourglass:"⌛️",hourglass_flowing_sand:"⏳",house:"🏠",house_with_garden:"🏡",houses:"🏘",hugs:"🤗",hushed:"😯",ice_cream:"🍨",ice_hockey:"🏒",ice_skate:"⛸",icecream:"🍦",id:"🆔",ideograph_advantage:"🉐",imp:"👿",inbox_tray:"📥",incoming_envelope:"📨",tipping_hand_woman:"💁",information_source:"ℹ️",innocent:"😇",interrobang:"⁉️",iphone:"📱",izakaya_lantern:"🏮",jack_o_lantern:"🎃",japan:"🗾",japanese_castle:"🏯",japanese_goblin:"👺",japanese_ogre:"👹",jeans:"👖",joy:"😂",joy_cat:"😹",joystick:"🕹",kaaba:"🕋",key:"🔑",keyboard:"⌨️",keycap_ten:"🔟",kick_scooter:"🛴",kimono:"👘",kiss:"💋",kissing:"😗",kissing_cat:"😽",kissing_closed_eyes:"😚",kissing_heart:"😘",kissing_smiling_eyes:"😙",kiwi_fruit:"🥝",koala:"🐨",koko:"🈁",label:"🏷",large_blue_circle:"🔵",large_blue_diamond:"🔷",large_orange_diamond:"🔶",last_quarter_moon:"🌗",last_quarter_moon_with_face:"🌜",latin_cross:"✝️",laughing:"😆",leaves:"🍃",ledger:"📒",left_luggage:"🛅",left_right_arrow:"↔️",leftwards_arrow_with_hook:"↩️",lemon:"🍋",leo:"♌️",leopard:"🐆",level_slider:"🎚",libra:"♎️",light_rail:"🚈",link:"🔗",lion:"🦁",lips:"👄",lipstick:"💄",lizard:"🦎",lock:"🔒",lock_with_ink_pen:"🔏",lollipop:"🍭",loop:"➿",loud_sound:"🔊",loudspeaker:"📢",love_hotel:"🏩",love_letter:"💌",low_brightness:"🔅",lying_face:"🤥",m:"Ⓜ️",mag:"🔍",mag_right:"🔎",mahjong:"🀄️",mailbox:"📫",mailbox_closed:"📪",mailbox_with_mail:"📬",mailbox_with_no_mail:"📭",man:"👨",man_artist:"👨‍🎨",man_astronaut:"👨‍🚀",man_cartwheeling:"🤸‍♂️",man_cook:"👨‍🍳",man_dancing:"🕺",man_facepalming:"🤦‍♂️",man_factory_worker:"👨‍🏭",man_farmer:"👨‍🌾",man_firefighter:"👨‍🚒",man_health_worker:"👨‍⚕️",man_in_tuxedo:"🤵",man_judge:"👨‍⚖️",man_juggling:"🤹‍♂️",man_mechanic:"👨‍🔧",man_office_worker:"👨‍💼",man_pilot:"👨‍✈️",man_playing_handball:"🤾‍♂️",man_playing_water_polo:"🤽‍♂️",man_scientist:"👨‍🔬",man_shrugging:"🤷‍♂️",man_singer:"👨‍🎤",man_student:"👨‍🎓",man_teacher:"👨‍🏫",man_technologist:"👨‍💻",man_with_gua_pi_mao:"👲",man_with_turban:"👳",tangerine:"🍊",mans_shoe:"👞",mantelpiece_clock:"🕰",maple_leaf:"🍁",martial_arts_uniform:"🥋",mask:"😷",massage_woman:"💆",massage_man:"💆‍♂️",meat_on_bone:"🍖",medal_military:"🎖",medal_sports:"🏅",mega:"📣",melon:"🍈",memo:"📝",men_wrestling:"🤼‍♂️",menorah:"🕎",mens:"🚹",metal:"🤘",metro:"🚇",microphone:"🎤",microscope:"🔬",milk_glass:"🥛",milky_way:"🌌",minibus:"🚐",minidisc:"💽",mobile_phone_off:"📴",money_mouth_face:"🤑",money_with_wings:"💸",moneybag:"💰",monkey:"🐒",monkey_face:"🐵",monorail:"🚝",moon:"🌔",mortar_board:"🎓",mosque:"🕌",motor_boat:"🛥",motor_scooter:"🛵",motorcycle:"🏍",motorway:"🛣",mount_fuji:"🗻",mountain:"⛰",mountain_biking_man:"🚵",mountain_biking_woman:"🚵‍♀️",mountain_cableway:"🚠",mountain_railway:"🚞",mountain_snow:"🏔",mouse:"🐭",mouse2:"🐁",movie_camera:"🎥",moyai:"🗿",mrs_claus:"🤶",muscle:"💪",mushroom:"🍄",musical_keyboard:"🎹",musical_note:"🎵",musical_score:"🎼",mute:"🔇",nail_care:"💅",name_badge:"📛",national_park:"🏞",nauseated_face:"🤢",necktie:"👔",negative_squared_cross_mark:"❎",nerd_face:"🤓",neutral_face:"😐",new:"🆕",new_moon:"🌑",new_moon_with_face:"🌚",newspaper:"📰",newspaper_roll:"🗞",next_track_button:"⏭",ng:"🆖",no_good_man:"🙅‍♂️",no_good_woman:"🙅",night_with_stars:"🌃",no_bell:"🔕",no_bicycles:"🚳",no_entry:"⛔️",no_entry_sign:"🚫",no_mobile_phones:"📵",no_mouth:"😶",no_pedestrians:"🚷",no_smoking:"🚭","non-potable_water":"🚱",nose:"👃",notebook:"📓",notebook_with_decorative_cover:"📔",notes:"🎶",nut_and_bolt:"🔩",o:"⭕️",o2:"🅾️",ocean:"🌊",octopus:"🐙",oden:"🍢",office:"🏢",oil_drum:"🛢",ok:"🆗",ok_hand:"👌",ok_man:"🙆‍♂️",ok_woman:"🙆",old_key:"🗝",older_man:"👴",older_woman:"👵",om:"🕉",on:"🔛",oncoming_automobile:"🚘",oncoming_bus:"🚍",oncoming_police_car:"🚔",oncoming_taxi:"🚖",open_file_folder:"📂",open_hands:"👐",open_mouth:"😮",open_umbrella:"☂️",ophiuchus:"⛎",orange_book:"📙",orthodox_cross:"☦️",outbox_tray:"📤",owl:"🦉",ox:"🐂",package:"📦",page_facing_up:"📄",page_with_curl:"📃",pager:"📟",paintbrush:"🖌",palm_tree:"🌴",pancakes:"🥞",panda_face:"🐼",paperclip:"📎",paperclips:"🖇",parasol_on_ground:"⛱",parking:"🅿️",part_alternation_mark:"〽️",partly_sunny:"⛅️",passenger_ship:"🛳",passport_control:"🛂",pause_button:"⏸",peace_symbol:"☮️",peach:"🍑",peanuts:"🥜",pear:"🍐",pen:"🖊",pencil2:"✏️",penguin:"🐧",pensive:"😔",performing_arts:"🎭",persevere:"😣",person_fencing:"🤺",pouting_woman:"🙎",phone:"☎️",pick:"⛏",pig:"🐷",pig2:"🐖",pig_nose:"🐽",pill:"💊",pineapple:"🍍",ping_pong:"🏓",pisces:"♓️",pizza:"🍕",place_of_worship:"🛐",plate_with_cutlery:"🍽",play_or_pause_button:"⏯",point_down:"👇",point_left:"👈",point_right:"👉",point_up:"☝️",point_up_2:"👆",police_car:"🚓",policewoman:"👮‍♀️",poodle:"🐩",popcorn:"🍿",post_office:"🏣",postal_horn:"📯",postbox:"📮",potable_water:"🚰",potato:"🥔",pouch:"👝",poultry_leg:"🍗",pound:"💷",rage:"😡",pouting_cat:"😾",pouting_man:"🙎‍♂️",pray:"🙏",prayer_beads:"📿",pregnant_woman:"🤰",previous_track_button:"⏮",prince:"🤴",princess:"👸",printer:"🖨",purple_heart:"💜",purse:"👛",pushpin:"📌",put_litter_in_its_place:"🚮",question:"❓",rabbit:"🐰",rabbit2:"🐇",racehorse:"🐎",racing_car:"🏎",radio:"📻",radio_button:"🔘",radioactive:"☢️",railway_car:"🚃",railway_track:"🛤",rainbow:"🌈",rainbow_flag:"🏳️‍🌈",raised_back_of_hand:"🤚",raised_hand_with_fingers_splayed:"🖐",raised_hands:"🙌",raising_hand_woman:"🙋",raising_hand_man:"🙋‍♂️",ram:"🐏",ramen:"🍜",rat:"🐀",record_button:"⏺",recycle:"♻️",red_circle:"🔴",registered:"®️",relaxed:"☺️",relieved:"😌",reminder_ribbon:"🎗",repeat:"🔁",repeat_one:"🔂",rescue_worker_helmet:"⛑",restroom:"🚻",revolving_hearts:"💞",rewind:"⏪",rhinoceros:"🦏",ribbon:"🎀",rice:"🍚",rice_ball:"🍙",rice_cracker:"🍘",rice_scene:"🎑",right_anger_bubble:"🗯",ring:"💍",robot:"🤖",rocket:"🚀",rofl:"🤣",roll_eyes:"🙄",roller_coaster:"🎢",rooster:"🐓",rose:"🌹",rosette:"🏵",rotating_light:"🚨",round_pushpin:"📍",rowing_man:"🚣",rowing_woman:"🚣‍♀️",rugby_football:"🏉",running_man:"🏃",running_shirt_with_sash:"🎽",running_woman:"🏃‍♀️",sa:"🈂️",sagittarius:"♐️",sake:"🍶",sandal:"👡",santa:"🎅",satellite:"📡",saxophone:"🎷",school:"🏫",school_satchel:"🎒",scissors:"✂️",scorpion:"🦂",scorpius:"♏️",scream:"😱",scream_cat:"🙀",scroll:"📜",seat:"💺",secret:"㊙️",see_no_evil:"🙈",seedling:"🌱",selfie:"🤳",shallow_pan_of_food:"🥘",shamrock:"☘️",shark:"🦈",shaved_ice:"🍧",sheep:"🐑",shell:"🐚",shield:"🛡",shinto_shrine:"⛩",ship:"🚢",shirt:"👕",shopping:"🛍",shopping_cart:"🛒",shower:"🚿",shrimp:"🦐",signal_strength:"📶",six_pointed_star:"🔯",ski:"🎿",skier:"⛷",skull:"💀",skull_and_crossbones:"☠️",sleeping:"😴",sleeping_bed:"🛌",sleepy:"😪",slightly_frowning_face:"🙁",slightly_smiling_face:"🙂",slot_machine:"🎰",small_airplane:"🛩",small_blue_diamond:"🔹",small_orange_diamond:"🔸",small_red_triangle:"🔺",small_red_triangle_down:"🔻",smile:"😄",smile_cat:"😸",smiley:"😃",smiley_cat:"😺",smiling_imp:"😈",smirk:"😏",smirk_cat:"😼",smoking:"🚬",snail:"🐌",snake:"🐍",sneezing_face:"🤧",snowboarder:"🏂",snowflake:"❄️",snowman:"⛄️",snowman_with_snow:"☃️",sob:"😭",soccer:"⚽️",soon:"🔜",sos:"🆘",sound:"🔉",space_invader:"👾",spades:"♠️",spaghetti:"🍝",sparkle:"❇️",sparkler:"🎇",sparkles:"✨",sparkling_heart:"💖",speak_no_evil:"🙊",speaker:"🔈",speaking_head:"🗣",speech_balloon:"💬",speedboat:"🚤",spider:"🕷",spider_web:"🕸",spiral_calendar:"🗓",spiral_notepad:"🗒",spoon:"🥄",squid:"🦑",stadium:"🏟",star:"⭐️",star2:"🌟",star_and_crescent:"☪️",star_of_david:"✡️",stars:"🌠",station:"🚉",statue_of_liberty:"🗽",steam_locomotive:"🚂",stew:"🍲",stop_button:"⏹",stop_sign:"🛑",stopwatch:"⏱",straight_ruler:"📏",strawberry:"🍓",stuck_out_tongue:"😛",stuck_out_tongue_closed_eyes:"😝",stuck_out_tongue_winking_eye:"😜",studio_microphone:"🎙",stuffed_flatbread:"🥙",sun_behind_large_cloud:"🌥",sun_behind_rain_cloud:"🌦",sun_behind_small_cloud:"🌤",sun_with_face:"🌞",sunflower:"🌻",sunglasses:"😎",sunny:"☀️",sunrise:"🌅",sunrise_over_mountains:"🌄",surfing_man:"🏄",surfing_woman:"🏄‍♀️",sushi:"🍣",suspension_railway:"🚟",sweat:"😓",sweat_drops:"💦",sweat_smile:"😅",sweet_potato:"🍠",swimming_man:"🏊",swimming_woman:"🏊‍♀️",symbols:"🔣",synagogue:"🕍",syringe:"💉",taco:"🌮",tada:"🎉",tanabata_tree:"🎋",taurus:"♉️",taxi:"🚕",tea:"🍵",telephone_receiver:"📞",telescope:"🔭",tennis:"🎾",tent:"⛺️",thermometer:"🌡",thinking:"🤔",thought_balloon:"💭",ticket:"🎫",tickets:"🎟",tiger:"🐯",tiger2:"🐅",timer_clock:"⏲",tipping_hand_man:"💁‍♂️",tired_face:"😫",tm:"™️",toilet:"🚽",tokyo_tower:"🗼",tomato:"🍅",tongue:"👅",top:"🔝",tophat:"🎩",tornado:"🌪",trackball:"🖲",tractor:"🚜",traffic_light:"🚥",train:"🚋",train2:"🚆",tram:"🚊",triangular_flag_on_post:"🚩",triangular_ruler:"📐",trident:"🔱",triumph:"😤",trolleybus:"🚎",trophy:"🏆",tropical_drink:"🍹",tropical_fish:"🐠",truck:"🚚",trumpet:"🎺",tulip:"🌷",tumbler_glass:"🥃",turkey:"🦃",turtle:"🐢",tv:"📺",twisted_rightwards_arrows:"🔀",two_hearts:"💕",two_men_holding_hands:"👬",two_women_holding_hands:"👭",u5272:"🈹",u5408:"🈴",u55b6:"🈺",u6307:"🈯️",u6708:"🈷️",u6709:"🈶",u6e80:"🈵",u7121:"🈚️",u7533:"🈸",u7981:"🈲",u7a7a:"🈳",umbrella:"☔️",unamused:"😒",underage:"🔞",unicorn:"🦄",unlock:"🔓",up:"🆙",upside_down_face:"🙃",v:"✌️",vertical_traffic_light:"🚦",vhs:"📼",vibration_mode:"📳",video_camera:"📹",video_game:"🎮",violin:"🎻",virgo:"♍️",volcano:"🌋",volleyball:"🏐",vs:"🆚",vulcan_salute:"🖖",walking_man:"🚶",walking_woman:"🚶‍♀️",waning_crescent_moon:"🌘",waning_gibbous_moon:"🌖",warning:"⚠️",wastebasket:"🗑",watch:"⌚️",water_buffalo:"🐃",watermelon:"🍉",wave:"👋",wavy_dash:"〰️",waxing_crescent_moon:"🌒",wc:"🚾",weary:"😩",wedding:"💒",weight_lifting_man:"🏋️",weight_lifting_woman:"🏋️‍♀️",whale:"🐳",whale2:"🐋",wheel_of_dharma:"☸️",wheelchair:"♿️",white_check_mark:"✅",white_circle:"⚪️",white_flag:"🏳️",white_flower:"💮",white_large_square:"⬜️",white_medium_small_square:"◽️",white_medium_square:"◻️",white_small_square:"▫️",white_square_button:"🔳",wilted_flower:"🥀",wind_chime:"🎐",wind_face:"🌬",wine_glass:"🍷",wink:"😉",wolf:"🐺",woman:"👩",woman_artist:"👩‍🎨",woman_astronaut:"👩‍🚀",woman_cartwheeling:"🤸‍♀️",woman_cook:"👩‍🍳",woman_facepalming:"🤦‍♀️",woman_factory_worker:"👩‍🏭",woman_farmer:"👩‍🌾",woman_firefighter:"👩‍🚒",woman_health_worker:"👩‍⚕️",woman_judge:"👩‍⚖️",woman_juggling:"🤹‍♀️",woman_mechanic:"👩‍🔧",woman_office_worker:"👩‍💼",woman_pilot:"👩‍✈️",woman_playing_handball:"🤾‍♀️",woman_playing_water_polo:"🤽‍♀️",woman_scientist:"👩‍🔬",woman_shrugging:"🤷‍♀️",woman_singer:"👩‍🎤",woman_student:"👩‍🎓",woman_teacher:"👩‍🏫",woman_technologist:"👩‍💻",woman_with_turban:"👳‍♀️",womans_clothes:"👚",womans_hat:"👒",women_wrestling:"🤼‍♀️",womens:"🚺",world_map:"🗺",worried:"😟",wrench:"🔧",writing_hand:"✍️",x:"❌",yellow_heart:"💛",yen:"💴",yin_yang:"☯️",yum:"😋",zap:"⚡️",zipper_mouth_face:"🤐",zzz:"💤",octocat:':octocat:',showdown:`S`},r.Converter=function(f){var E={},S=[],N=[],k={},x=o,M={parsed:{},raw:"",format:""};G();function G(){f=f||{};for(var B in a)a.hasOwnProperty(B)&&(E[B]=a[B]);if(typeof f=="object")for(var Q in f)f.hasOwnProperty(Q)&&(E[Q]=f[Q]);else throw Error("Converter expects the passed parameter to be an object, but "+typeof f+" was passed instead.");E.extensions&&r.helper.forEach(E.extensions,te)}function te(B,Q){if(Q=Q||null,r.helper.isString(B))if(B=r.helper.stdExtName(B),Q=B,r.extensions[B]){console.warn("DEPRECATION WARNING: "+B+" is an old extension that uses a deprecated loading method.Please inform the developer that the extension should be updated!"),ne(r.extensions[B],B);return}else if(!r.helper.isUndefined(s[B]))B=s[B];else throw Error('Extension "'+B+'" could not be loaded. It was either not found or is not a valid extension.');typeof B=="function"&&(B=B()),r.helper.isArray(B)||(B=[B]);var j=c(B,Q);if(!j.valid)throw Error(j.error);for(var Z=0;Z",!1),Ht=lt("@",!1),ut=lt(":",!1),It=Zr(["m","k","l","p","d","c","w","y","h","n","q","a","e","f","s","x","t","g","u","j","z","o"],!1,!1),Vr=lt("/",!1),ht=lt("(",!1),Zt=lt(")",!1),Ct=lt("[:",!1),Be=lt("]",!1),Ur=lt("[",!1),Fn=lt("{",!1),dt=lt("}",!1),zr=lt("+",!1),Ir=lt("*",!1),Ii=lt("%",!1),Rr=lt("^",!1),Wt=lt("&",!1),yn=lt(">>",!1),Ji=lt("<<",!1),li=lt("_",!1),ea=lt("?",!1),cn=lt("!",!1),ci=lt("r",!1),An=Zr([["a","z"],["A","Z"],["0","9"]],!1,!1),Kt=lt("#",!1),ui=lt("b",!1),di=Zr([["a","z"],["A","Z"],["0","9"],"-","*","+"],!1,!1),q=Zr([["A","G"]],!1,!1),ie=Zr(["b","s"],!1,!1),de=lt("iii",!1),ge=lt("ii",!1),Ae=lt("iv",!1),Qe=lt("i",!1),Me=lt("vii",!1),yt=lt("vi",!1),Nr=lt("v",!1),Hr=function(v){return v.filter(w=>w)},Da=function(){return parseFloat(Yr())},ta=function(){return parseInt(Yr())},Ds=function(){return parseInt(Yr())},Wr=function(){},xs=function(v){return Ut(XP,{sound:v})},xa=function(){return Yr()},ka=function(v){return Ut(Io,{items:v})},ks=function(v){return v},La=function(v,w){return Ut(ZP,{item:v,sound:w})},Ls=function(v,w){return Ut(KP,{item:v,soundIndex:w})},Ma=function(v){return v},Fr=function(){return UP[Yr()]},Ms=function(v,w){return v/w},Ps=function(v){return v.filter(w=>w)},Pa=function(v){return Ut(Io,{items:v})},Ba=function(v,w){return w?Ut(mE,{item:v,times:w}):Ut(gE,{items:v})},Bs=function(v){return v},Ua=function(v,w,P){return Ut(r3,{left:v,operation:w,right:P})},Us=function(v,w){return Ut(t3,{items:v,times:w})},Fa=function(v){return Ut(vI,{items:v})},Fs=function(v){return v.map(w=>typeof w=="number"?w:void 0)},Ys=function(){return Math.ceil(EI(Yr()))},un=function(v){var w=v.filter(P=>P).map(P=>Ut(ti,{pitch:P[0]},P.toString()));return Ut(gE,{items:w})},bt=function(v){return v},$s=function(v){return v},Ri=function(){},Gs=function(v){return Ut(Io,{items:v})},pi=function(v){return Ut(JP,{octave:v})},Qs=function(){return Yr().split("").reduce((v,w)=>v+(w==="^"?1:-1),0)},Ni=function(){return Ut(Mc,{seededRandom:s.seededRandom})},Ya=function(v,w){return Ut(Mc,{min:v,max:w,seededRandom:s.seededRandom})},$a=function(v,w){return Ut(mE,{item:v,times:w})},qs=function(v){return Ut(e3,{duration:v})},wi=function(v){return v},Ga=function(v){return Ut($m,{duration:v})},Di=function(v,w,P,X){const oe=v?s.nodeOptions.octave+v:s.nodeOptions.octave;return Ut(ti,{duration:w,pitch:X,pitchOctave:oe,add:P})},xi=function(v){return v.reduce((w,P)=>w+(P==="#"?1:-1),0)},Qa=function(v,w,P){return Ut(Ra,{pitches:[v].concat(w),inversion:P})},ra=function(){return Yr()},hi=function(v){return v},fr=function(){return Yr()},qa=function(v,w,P,X,oe){const ve=s.nodeOptions.scaleName?s.nodeOptions.scaleName:"MAJOR",gt=s.nodeOptions.key?s.nodeOptions.key:"C",hn=d3(X,P,ve,v,w),Zs=w||s.nodeOptions.duration,mR=v?s.nodeOptions.octave+v:s.nodeOptions.octave;return Ut(Ra,{duration:Zs,chordOctave:mR,pitches:hn,chordName:X,inversion:oe,scaleName:ve,key:gt})},Xr=function(v,w,P){const X=s.nodeOptions.scaleName?s.nodeOptions.scaleName:"MAJOR",oe=s.nodeOptions.key?s.nodeOptions.key:"C";return Ut(jP,{roman:v,chordName:w,inversion:P,scaleName:X,key:oe})},na=function(v){const w=s.nodeOptions.scaleName?s.nodeOptions.scaleName:"MAJOR",P=s.nodeOptions.key?s.nodeOptions.key:"C",X=O3(v,P,w);return Ut(ti,{pitch:X.pc,add:X.add,scaleName:w,key:P})},A=0,We=0,Va=[{line:1,column:1}],dn=0,Vs=[],Oe=0,me={},ia;if("startRule"in s){if(!(s.startRule in l))throw new Error(`Can't start parsing from rule "`+s.startRule+'".');c=l[s.startRule]}function Yr(){return i.substring(We,A)}function ul(){return d(We,A)}function lt(v,w){return{type:"literal",text:v,ignoreCase:w}}function Zr(v,w,P){return{type:"class",parts:v,inverted:w,ignoreCase:P}}function dl(){return{type:"end"}}function zs(v){return{type:"other",description:v}}function pl(v){var w=Va[v],P;if(w)return w;for(P=v-1;!Va[P];)P--;for(w=Va[P],w={line:w.line,column:w.column};Pdn&&(dn=A,Vs=[]),Vs.push(v))}function g(v,w,P){return new e(e.buildMessage(v,w),v,w,P)}function O(){var v,w,P=A*56+0,X=me[P];return X?(A=X.nextPos,X.result):(v=A,w=Xt(),w!==a&&(We=v,w=Hr(w)),v=w,me[P]={nextPos:A,result:v},v)}function C(){var v,w,P,X,oe,ve,gt,hn=A*56+1,Zs=me[hn];if(Zs)return A=Zs.nextPos,Zs.result;for(v=A,w=A,i.charCodeAt(A)===45?(P=u,A++):(P=a,Oe===0&&h(hr)),P===a&&(P=null),X=[],Le.test(i.charAt(A))?(oe=i.charAt(A),A++):(oe=a,Oe===0&&h(rt));oe!==a;)X.push(oe),Le.test(i.charAt(A))?(oe=i.charAt(A),A++):(oe=a,Oe===0&&h(rt));if(i.charCodeAt(A)===46?(oe=p,A++):(oe=a,Oe===0&&h(He)),oe!==a){if(ve=[],Le.test(i.charAt(A))?(gt=i.charAt(A),A++):(gt=a,Oe===0&&h(rt)),gt!==a)for(;gt!==a;)ve.push(gt),Le.test(i.charAt(A))?(gt=i.charAt(A),A++):(gt=a,Oe===0&&h(rt));else ve=a;ve!==a?(P=[P,X,oe,ve],w=P):(A=w,w=a)}else A=w,w=a;if(w===a)if(w=A,i.charCodeAt(A)===46?(P=p,A++):(P=a,Oe===0&&h(He)),P!==a){if(X=[],Le.test(i.charAt(A))?(oe=i.charAt(A),A++):(oe=a,Oe===0&&h(rt)),oe!==a)for(;oe!==a;)X.push(oe),Le.test(i.charAt(A))?(oe=i.charAt(A),A++):(oe=a,Oe===0&&h(rt));else X=a;X!==a?(P=[P,X],w=P):(A=w,w=a)}else A=w,w=a;return w!==a&&(We=v,w=Da()),v=w,me[hn]={nextPos:A,result:v},v}function y(){var v,w,P=A*56+2,X=me[P];return X?(A=X.nextPos,X.result):(v=A,i.charCodeAt(A)===45?A++:Oe===0&&h(hr),Le.test(i.charAt(A))?(w=i.charAt(A),A++):(w=a,Oe===0&&h(rt)),w!==a?(We=v,v=ta()):(A=v,v=a),me[P]={nextPos:A,result:v},v)}function D(){var v,w,P,X=A*56+3,oe=me[X];if(oe)return A=oe.nextPos,oe.result;if(v=A,i.charCodeAt(A)===45?A++:Oe===0&&h(hr),w=[],Le.test(i.charAt(A))?(P=i.charAt(A),A++):(P=a,Oe===0&&h(rt)),P!==a)for(;P!==a;)w.push(P),Le.test(i.charAt(A))?(P=i.charAt(A),A++):(P=a,Oe===0&&h(rt));else w=a;return w!==a?(We=v,v=Ds()):(A=v,v=a),me[X]={nextPos:A,result:v},v}function F(){var v,w,P=A*56+4,X=me[P];return X?(A=X.nextPos,X.result):(Oe++,v=A,tt.test(i.charAt(A))?(w=i.charAt(A),A++):(w=a,Oe===0&&h(cr)),w!==a&&(We=v,w=Wr()),v=w,Oe--,v===a&&(w=a,Oe===0&&h(Br)),me[P]={nextPos:A,result:v},v)}function U(){var v,w,P=A*56+8,X=me[P];return X?(A=X.nextPos,X.result):(v=A,w=H(),w!==a&&(We=v,w=xs(w)),v=w,me[P]={nextPos:A,result:v},v)}function H(){var v,w,P,X,oe,ve=A*56+10,gt=me[ve];if(gt)return A=gt.nextPos,gt.result;if(v=A,nt.test(i.charAt(A))?(w=i.charAt(A),A++):(w=a,Oe===0&&h(_e)),w!==a){if(P=[],ze.test(i.charAt(A))?(X=i.charAt(A),A++):(X=a,Oe===0&&h(we)),X!==a)for(;X!==a;)P.push(X),ze.test(i.charAt(A))?(X=i.charAt(A),A++):(X=a,Oe===0&&h(we));else P=a;if(P!==a){for(X=[],St.test(i.charAt(A))?(oe=i.charAt(A),A++):(oe=a,Oe===0&&h(Ne));oe!==a;)X.push(oe),St.test(i.charAt(A))?(oe=i.charAt(A),A++):(oe=a,Oe===0&&h(Ne));We=v,v=xa()}else A=v,v=a}else A=v,v=a;return me[ve]={nextPos:A,result:v},v}function z(){var v,w=A*56+11,P=me[w];return P?(A=P.nextPos,P.result):(v=pe(),v===a&&(v=he()),me[w]={nextPos:A,result:v},v)}function pe(){var v,w,P,X,oe=A*56+12,ve=me[oe];if(ve)return A=ve.nextPos,ve.result;if(v=A,i.charCodeAt(A)===60?(w=T,A++):(w=a,Oe===0&&h(Je)),w!==a){if(P=[],X=z(),X!==a)for(;X!==a;)P.push(X),X=z();else P=a;P!==a?(i.charCodeAt(A)===62?(X=I,A++):(X=a,Oe===0&&h(ye)),X!==a?(We=v,v=ka(P)):(A=v,v=a)):(A=v,v=a)}else A=v,v=a;return me[oe]={nextPos:A,result:v},v}function he(){var v,w=A*56+13,P=me[w];return P?(A=P.nextPos,P.result):(v=H(),v===a&&(v=pe(),v===a&&(v=F())),me[w]={nextPos:A,result:v},v)}function se(){var v,w,P,X=A*56+14,oe=me[X];return oe?(A=oe.nextPos,oe.result):(v=A,i.charCodeAt(A)===64?(w=R,A++):(w=a,Oe===0&&h(Ht)),w!==a?(P=z(),P!==a?(We=v,v=ks(P)):(A=v,v=a)):(A=v,v=a),me[X]={nextPos:A,result:v},v)}function ae(){var v,w=A*56+15,P=me[w];return P?(A=P.nextPos,P.result):(v=rr(),v===a&&(v=st(),v===a&&(v=qt(),v===a&&(v=ou(),v===a&&(v=Qt())))),me[w]={nextPos:A,result:v},v)}function Ce(){var v,w,P,X=A*56+16,oe=me[X];return oe?(A=oe.nextPos,oe.result):(v=A,w=ae(),w===a&&(w=Xs()),w!==a?(P=se(),P!==a?(We=v,v=La(w,P)):(A=v,v=a)):(A=v,v=a),me[X]={nextPos:A,result:v},v)}function Se(){var v,w,P,X=A*56+17,oe=me[X];return oe?(A=oe.nextPos,oe.result):(v=A,w=Ce(),w===a&&(w=ae(),w===a&&(w=Xs())),w!==a?(P=qe(),P!==a?(We=v,v=Ls(w,P)):(A=v,v=a)):(A=v,v=a),me[X]={nextPos:A,result:v},v)}function qe(){var v,w,P,X=A*56+18,oe=me[X];return oe?(A=oe.nextPos,oe.result):(v=A,i.charCodeAt(A)===58?(w=L,A++):(w=a,Oe===0&&h(ut)),w!==a?(P=Dt(),P!==a?(We=v,v=Ma(P)):(A=v,v=a)):(A=v,v=a),me[X]={nextPos:A,result:v},v)}function je(){var v,w,P=A*56+19,X=me[P];return X?(A=X.nextPos,X.result):(v=A,mt.test(i.charAt(A))?(w=i.charAt(A),A++):(w=a,Oe===0&&h(It)),w!==a&&(We=v,w=Fr()),v=w,me[P]={nextPos:A,result:v},v)}function Ue(){var v,w=A*56+20,P=me[w];return P?(A=P.nextPos,P.result):(v=Nt(),v===a&&(v=C(),v===a&&(v=je())),me[w]={nextPos:A,result:v},v)}function Nt(){var v,w,P,X,oe=A*56+21,ve=me[oe];return ve?(A=ve.nextPos,ve.result):(v=A,w=D(),w!==a?(i.charCodeAt(A)===47?(P=$,A++):(P=a,Oe===0&&h(Vr)),P!==a?(X=D(),X!==a?(We=v,v=Ms(w,X)):(A=v,v=a)):(A=v,v=a)):(A=v,v=a),me[oe]={nextPos:A,result:v},v)}function Xt(){var v,w,P,X=A*56+22,oe=me[X];if(oe)return A=oe.nextPos,oe.result;if(v=A,w=[],P=E_(),P===a&&(P=Se(),P===a&&(P=Ce(),P===a&&(P=rr(),P===a&&(P=qt(),P===a&&(P=st(),P===a&&(P=Qt(),P===a&&(P=Xs(),P===a&&(P=ou())))))))),P!==a)for(;P!==a;)w.push(P),P=E_(),P===a&&(P=Se(),P===a&&(P=Ce(),P===a&&(P=rr(),P===a&&(P=qt(),P===a&&(P=st(),P===a&&(P=Qt(),P===a&&(P=Xs(),P===a&&(P=ou()))))))));else w=a;return w!==a&&(We=v,w=Ps(w)),v=w,me[X]={nextPos:A,result:v},v}function Dt(){var v,w=A*56+23,P=me[w];return P?(A=P.nextPos,P.result):(v=F(),v===a&&(v=D(),v===a&&(v=O_(),v===a&&(v=cu(),v===a&&(v=er(),v===a&&(v=__()))))),me[w]={nextPos:A,result:v},v)}function er(){var v,w,P,X,oe=A*56+24,ve=me[oe];if(ve)return A=ve.nextPos,ve.result;if(v=A,i.charCodeAt(A)===60?(w=T,A++):(w=a,Oe===0&&h(Je)),w!==a){if(P=[],X=Dt(),X!==a)for(;X!==a;)P.push(X),X=Dt();else P=a;P!==a?(i.charCodeAt(A)===62?(X=I,A++):(X=a,Oe===0&&h(ye)),X!==a?(We=v,v=Pa(P)):(A=v,v=a)):(A=v,v=a)}else A=v,v=a;return me[oe]={nextPos:A,result:v},v}function st(){var v,w,P,X,oe,ve=A*56+25,gt=me[ve];return gt?(A=gt.nextPos,gt.result):(v=A,i.charCodeAt(A)===40?(w=K,A++):(w=a,Oe===0&&h(ht)),w!==a?(i.charCodeAt(A)===58?A++:Oe===0&&h(ut),P=Xt(),P!==a?(X=ft(),X===a&&(X=null),i.charCodeAt(A)===41?(oe=f,A++):(oe=a,Oe===0&&h(Zt)),oe!==a?(We=v,v=Ba(P,X)):(A=v,v=a)):(A=v,v=a)):(A=v,v=a),me[ve]={nextPos:A,result:v},v)}function ft(){var v,w,P,X=A*56+26,oe=me[X];return oe?(A=oe.nextPos,oe.result):(v=A,i.charCodeAt(A)===58?(w=L,A++):(w=a,Oe===0&&h(ut)),w!==a?(P=D(),P!==a?(We=v,v=Bs(P)):(A=v,v=a)):(A=v,v=a),me[X]={nextPos:A,result:v},v)}function rr(){var v,w,P,X,oe=A*56+27,ve=me[oe];return ve?(A=ve.nextPos,ve.result):(v=A,w=st(),w!==a?(P=S_(),P!==a?(X=st(),X!==a?(We=v,v=Ua(w,P,X)):(A=v,v=a)):(A=v,v=a)):(A=v,v=a),me[oe]={nextPos:A,result:v},v)}function Qt(){var v,w,P,X,oe,ve=A*56+28,gt=me[ve];return gt?(A=gt.nextPos,gt.result):(v=A,i.substr(A,2)===E?(w=E,A+=2):(w=a,Oe===0&&h(Ct)),w!==a?(P=Xt(),P!==a?(X=ft(),X===a&&(X=null),i.charCodeAt(A)===93?(oe=S,A++):(oe=a,Oe===0&&h(Be)),oe!==a?(We=v,v=Us(P,X)):(A=v,v=a)):(A=v,v=a)):(A=v,v=a),me[ve]={nextPos:A,result:v},v)}function qt(){var v,w,P,X,oe=A*56+29,ve=me[oe];return ve?(A=ve.nextPos,ve.result):(v=A,i.charCodeAt(A)===91?(w=N,A++):(w=a,Oe===0&&h(Ur)),w!==a?(P=Xt(),P!==a?(i.charCodeAt(A)===93?(X=S,A++):(X=a,Oe===0&&h(Be)),X!==a?(We=v,v=Fa(P)):(A=v,v=a)):(A=v,v=a)):(A=v,v=a),me[oe]={nextPos:A,result:v},v)}function pn(){var v,w=A*56+30,P=me[w];return P?(A=P.nextPos,P.result):(v=D(),v===a&&(v=y()),me[w]={nextPos:A,result:v},v)}function Hs(){var v,w,P,X=A*56+31,oe=me[X];if(oe)return A=oe.nextPos,oe.result;if(v=A,w=[],P=hl(),P===a&&(P=pn()),P!==a)for(;P!==a;)w.push(P),P=hl(),P===a&&(P=pn());else w=a;return w!==a&&(We=v,w=Fs(w)),v=w,me[X]={nextPos:A,result:v},v}function hl(){var v,w,P,X,oe=A*56+32,ve=me[oe];return ve?(A=ve.nextPos,ve.result):(v=A,i.charCodeAt(A)===40?A++:Oe===0&&h(ht),w=pn(),w!==a?(P=S_(),P!==a?(X=Hs(),X!==a?(i.charCodeAt(A)===41?A++:Oe===0&&h(Zt),We=v,v=Ys()):(A=v,v=a)):(A=v,v=a)):(A=v,v=a),me[oe]={nextPos:A,result:v},v)}function Ws(){var v,w,P,X,oe=A*56+33,ve=me[oe];if(ve)return A=ve.nextPos,ve.result;if(v=A,i.charCodeAt(A)===123?(w=k,A++):(w=a,Oe===0&&h(Fn)),w!==a){if(P=[],X=Hs(),X===a&&(X=F()),X!==a)for(;X!==a;)P.push(X),X=Hs(),X===a&&(X=F());else P=a;P!==a?(i.charCodeAt(A)===125?(X=x,A++):(X=a,Oe===0&&h(dt)),X!==a?(We=v,v=un(P)):(A=v,v=a)):(A=v,v=a)}else A=v,v=a;return me[oe]={nextPos:A,result:v},v}function __(){var v,w,P,X,oe=A*56+34,ve=me[oe];return ve?(A=ve.nextPos,ve.result):(v=A,i.charCodeAt(A)===123?(w=k,A++):(w=a,Oe===0&&h(Fn)),w!==a?(P=D(),P===a&&(P=cu()),P!==a?(i.charCodeAt(A)===125?(X=x,A++):(X=a,Oe===0&&h(dt)),X!==a?(We=v,v=bt(P)):(A=v,v=a)):(A=v,v=a)):(A=v,v=a),me[oe]={nextPos:A,result:v},v)}function S_(){var v,w=A*56+35,P=me[w];return P?(A=P.nextPos,P.result):(i.charCodeAt(A)===43?(v=M,A++):(v=a,Oe===0&&h(zr)),v===a&&(i.charCodeAt(A)===45?(v=u,A++):(v=a,Oe===0&&h(hr)),v===a&&(i.charCodeAt(A)===42?(v=G,A++):(v=a,Oe===0&&h(Ir)),v===a&&(i.charCodeAt(A)===47?(v=$,A++):(v=a,Oe===0&&h(Vr)),v===a&&(i.charCodeAt(A)===37?(v=te,A++):(v=a,Oe===0&&h(Ii)),v===a&&(i.charCodeAt(A)===94?(v=ne,A++):(v=a,Oe===0&&h(Rr)),v===a&&(i.charCodeAt(A)===124?(v=_,A++):(v=a,Oe===0&&h(W)),v===a&&(i.charCodeAt(A)===38?(v=re,A++):(v=a,Oe===0&&h(Wt)),v===a&&(i.substr(A,2)===ee?(v=ee,A+=2):(v=a,Oe===0&&h(yn)),v===a&&(i.substr(A,2)===B?(v=B,A+=2):(v=a,Oe===0&&h(Ji))))))))))),me[w]={nextPos:A,result:v},v)}function Xs(){var v,w,P=A*56+36,X=me[P];return X?(A=X.nextPos,X.result):(v=A,w=cR(),w===a&&(w=hR(),w===a&&(w=pR(),w===a&&(w=fR(),w===a&&(w=U(),w===a&&(w=dR(),w===a&&(w=fl(),w===a&&(w=sR(),w===a&&(w=F(),w===a&&(w=oR(),w===a&&(w=st(),w===a&&(w=Ws(),w===a&&(w=aR())))))))))))),w!==a&&(We=v,w=$s(w)),v=w,me[P]={nextPos:A,result:v},v)}function aR(){var v,w,P=A*56+37,X=me[P];return X?(A=X.nextPos,X.result):(v=A,i.charCodeAt(A)===124?(w=_,A++):(w=a,Oe===0&&h(W)),w!==a&&(We=v,w=Ri()),v=w,me[P]={nextPos:A,result:v},v)}function ou(){var v,w,P,X,oe=A*56+38,ve=me[oe];return ve?(A=ve.nextPos,ve.result):(v=A,i.charCodeAt(A)===60?(w=T,A++):(w=a,Oe===0&&h(Je)),w!==a?(P=Xt(),P!==a?(i.charCodeAt(A)===62?(X=I,A++):(X=a,Oe===0&&h(ye)),X!==a?(We=v,v=Gs(P)):(A=v,v=a)):(A=v,v=a)):(A=v,v=a),me[oe]={nextPos:A,result:v},v)}function sR(){var v,w,P=A*56+39,X=me[P];return X?(A=X.nextPos,X.result):(v=A,w=lu(),w!==a&&(We=v,w=pi(w)),v=w,me[P]={nextPos:A,result:v},v)}function lu(){var v,w,P,X=A*56+40,oe=me[X];if(oe)return A=oe.nextPos,oe.result;if(v=A,w=[],i.charCodeAt(A)===94?(P=ne,A++):(P=a,Oe===0&&h(Rr)),P===a&&(i.charCodeAt(A)===95?(P=Q,A++):(P=a,Oe===0&&h(li))),P!==a)for(;P!==a;)w.push(P),i.charCodeAt(A)===94?(P=ne,A++):(P=a,Oe===0&&h(Rr)),P===a&&(i.charCodeAt(A)===95?(P=Q,A++):(P=a,Oe===0&&h(li)));else w=a;return w!==a&&(We=v,w=Qs()),v=w,me[X]={nextPos:A,result:v},v}function O_(){var v,w,P=A*56+41,X=me[P];return X?(A=X.nextPos,X.result):(v=A,i.charCodeAt(A)===63?(w=j,A++):(w=a,Oe===0&&h(ea)),w!==a&&(We=v,w=Ni()),v=w,me[P]={nextPos:A,result:v},v)}function cu(){var v,w,P,X,oe,ve,gt=A*56+42,hn=me[gt];return hn?(A=hn.nextPos,hn.result):(v=A,i.charCodeAt(A)===40?(w=K,A++):(w=a,Oe===0&&h(ht)),w!==a?(P=D(),P!==a?(i.charCodeAt(A)===44?(X=m,A++):(X=a,Oe===0&&h(vr)),X!==a?(oe=D(),oe!==a?(i.charCodeAt(A)===41?(ve=f,A++):(ve=a,Oe===0&&h(Zt)),ve!==a?(We=v,v=Ya(P,oe)):(A=v,v=a)):(A=v,v=a)):(A=v,v=a)):(A=v,v=a)):(A=v,v=a),me[gt]={nextPos:A,result:v},v)}function E_(){var v,w,P,X,oe=A*56+43,ve=me[oe];return ve?(A=ve.nextPos,ve.result):(v=A,w=Se(),w===a&&(w=Ce(),w===a&&(w=ae(),w===a&&(w=Xs()))),w!==a?(i.charCodeAt(A)===33?(P=Z,A++):(P=a,Oe===0&&h(cn)),P!==a?(X=D(),X!==a?(We=v,v=$a(w,X)):(A=v,v=a)):(A=v,v=a)):(A=v,v=a),me[oe]={nextPos:A,result:v},v)}function oR(){var v,w,P=A*56+44,X=me[P];return X?(A=X.nextPos,X.result):(v=A,w=Ue(),w!==a&&(We=v,w=qs(w)),v=w,me[P]={nextPos:A,result:v},v)}function lR(){var v,w,P,X=A*56+45,oe=me[X];return oe?(A=oe.nextPos,oe.result):(v=A,w=Ue(),w!==a?(i.charCodeAt(A)===94?(P=ne,A++):(P=a,Oe===0&&h(Rr)),P!==a?(We=v,v=wi(w)):(A=v,v=a)):(A=v,v=a),me[X]={nextPos:A,result:v},v)}function cR(){var v,w,P,X,oe,ve=A*56+46,gt=me[ve];return gt?(A=gt.nextPos,gt.result):(v=A,w=lR(),w===a&&(w=null),i.charCodeAt(A)===114?(P=ue,A++):(P=a,Oe===0&&h(ci)),P!==a?(X=A,Oe++,At.test(i.charAt(A))?(oe=i.charAt(A),A++):(oe=a,Oe===0&&h(An)),Oe--,oe===a?X=void 0:(A=X,X=a),X!==a?(We=v,v=Ga(w)):(A=v,v=a)):(A=v,v=a),me[ve]={nextPos:A,result:v},v)}function fl(){var v,w,P,X,oe,ve=A*56+47,gt=me[ve];return gt?(A=gt.nextPos,gt.result):(v=A,w=lu(),w===a&&(w=null),P=Ue(),P===a&&(P=null),X=uR(),X===a&&(X=null),oe=y(),oe===a&&(oe=O_(),oe===a&&(oe=cu(),oe===a&&(oe=__()))),oe!==a?(We=v,v=Di(w,P,X,oe)):(A=v,v=a),me[ve]={nextPos:A,result:v},v)}function uR(){var v,w,P,X=A*56+48,oe=me[X];if(oe)return A=oe.nextPos,oe.result;if(v=A,w=[],i.charCodeAt(A)===35?(P=le,A++):(P=a,Oe===0&&h(Kt)),P===a&&(i.charCodeAt(A)===98?(P=Ee,A++):(P=a,Oe===0&&h(ui))),P!==a)for(;P!==a;)w.push(P),i.charCodeAt(A)===35?(P=le,A++):(P=a,Oe===0&&h(Kt)),P===a&&(i.charCodeAt(A)===98?(P=Ee,A++):(P=a,Oe===0&&h(ui)));else w=a;return w!==a&&(We=v,w=xi(w)),v=w,me[X]={nextPos:A,result:v},v}function dR(){var v,w,P,X,oe=A*56+49,ve=me[oe];if(ve)return A=ve.nextPos,ve.result;if(v=A,w=fl(),w!==a){if(P=[],X=fl(),X!==a)for(;X!==a;)P.push(X),X=fl();else P=a;P!==a?(X=uu(),X===a&&(X=null),We=v,v=Qa(w,P,X)):(A=v,v=a)}else A=v,v=a;return me[oe]={nextPos:A,result:v},v}function b_(){var v,w,P,X=A*56+50,oe=me[X];if(oe)return A=oe.nextPos,oe.result;if(v=A,w=[],Rt.test(i.charAt(A))?(P=i.charAt(A),A++):(P=a,Oe===0&&h(di)),P!==a)for(;P!==a;)w.push(P),Rt.test(i.charAt(A))?(P=i.charAt(A),A++):(P=a,Oe===0&&h(di));else w=a;return w!==a&&(We=v,w=ra()),v=w,me[X]={nextPos:A,result:v},v}function uu(){var v,w,P,X=A*56+51,oe=me[X];return oe?(A=oe.nextPos,oe.result):(v=A,i.charCodeAt(A)===37?(w=te,A++):(w=a,Oe===0&&h(Ii)),w!==a?(P=D(),P!==a?(We=v,v=hi(P)):(A=v,v=a)):(A=v,v=a),me[X]={nextPos:A,result:v},v)}function v_(){var v,w,P=A*56+52,X=me[P];return X?(A=X.nextPos,X.result):(v=A,at.test(i.charAt(A))?(w=i.charAt(A),A++):(w=a,Oe===0&&h(q)),w!==a?($e.test(i.charAt(A))?(i.charAt(A),A++):Oe===0&&h(ie),We=v,v=fr()):(A=v,v=a),me[P]={nextPos:A,result:v},v)}function pR(){var v,w,P,X,oe,ve,gt=A*56+53,hn=me[gt];return hn?(A=hn.nextPos,hn.result):(v=A,w=lu(),w===a&&(w=null),P=Ue(),P===a&&(P=null),X=v_(),X!==a?(i.charCodeAt(A)===94?A++:Oe===0&&h(Rr),oe=b_(),oe!==a?(ve=uu(),ve===a&&(ve=null),We=v,v=qa(w,P,X,oe,ve)):(A=v,v=a)):(A=v,v=a),me[gt]={nextPos:A,result:v},v)}function hR(){var v,w,P,X,oe=A*56+54,ve=me[oe];return ve?(A=ve.nextPos,ve.result):(v=A,i.substr(A,3)===De?(w=De,A+=3):(w=a,Oe===0&&h(de)),w===a&&(i.substr(A,2)===xe?(w=xe,A+=2):(w=a,Oe===0&&h(ge)),w===a&&(i.substr(A,2)===be?(w=be,A+=2):(w=a,Oe===0&&h(Ae)),w===a&&(i.charCodeAt(A)===105?(w=Re,A++):(w=a,Oe===0&&h(Qe)),w===a&&(i.substr(A,3)===ce?(w=ce,A+=3):(w=a,Oe===0&&h(Me)),w===a&&(i.substr(A,2)===ke?(w=ke,A+=2):(w=a,Oe===0&&h(yt)),w===a&&(i.charCodeAt(A)===118?(w=Ze,A++):(w=a,Oe===0&&h(Nr)))))))),w!==a?(i.charCodeAt(A)===94?A++:Oe===0&&h(Rr),P=b_(),P===a&&(P=null),X=uu(),X===a&&(X=null),We=v,v=Xr(w,P,X)):(A=v,v=a),me[oe]={nextPos:A,result:v},v)}function fR(){var v,w,P=A*56+55,X=me[P];return X?(A=X.nextPos,X.result):(v=A,w=v_(),w!==a&&(We=v,w=na(w)),v=w,me[P]={nextPos:A,result:v},v)}var T_=s.nodeOptions||{};function Ut(v,w,P=void 0){w.text=P||Yr(),w.location=ul();for(var X in T_)(w[X]===void 0||w[X]===null)&&(w[X]=T_[X]);return new v(w)}if(ia=c(),ia!==a&&A===i.length)return ia;throw ia!==a&&Ae.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 ei(this)}notStarted(){return this.index<0}peek(){return this.evaluated[this.index-1||0]}hasStarted(){return this.index>=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 r=e.map(i=>i.evaluate(t)).flat(1/0).filter(i=>i!==void 0);return t.subdivisions&&(r=NI(r)),r}totalDuration(){return this.evaluated.reduce((t,r)=>t+r.collect("duration"),0)}lead(){let e=this.evaluated.findIndex(t=>t instanceof Ra);if(e>=0){for(let t=e+1;t<=this.evaluated.length;t++)if(this.evaluated[t]instanceof Ra){const r=this.evaluated[e],i=this.evaluated[t],s=b3(r.notes(),i.notes()),a=ei(i);a.voiceLeadFromNotes(s,this.options.nodeOptions),this.evaluated[t]=a,e=t}}return this}}const NI=(n,e=void 0)=>n.map(r=>{if(r instanceof vI){const i=r.evaluated.length,s=(e||r.duration)/i;return NI(r.evaluated,s)}else return r.duration=e||r.duration,r}).flat(1/0),C3=n=>{let e={};return WP.forEach(t=>{if(n[t]!==void 0){const r=n[t];e[t]=r,delete n[t]}}),e};class y3{constructor(e,t){b(this,"api");b(this,"settings");b(this,"midiAccess",null);b(this,"midiOutputs",[]);b(this,"currentOutputIndex",0);b(this,"scheduledNotes",{});b(this,"midiInputs",[]);b(this,"currentInputIndex");b(this,"bufferLength",512);b(this,"noteInputBuffer",[]);b(this,"ccInputBuffer",[]);b(this,"activeNotes",[]);b(this,"stickyNotes",[]);b(this,"lastNote");b(this,"lastCC",{});b(this,"lastNoteInChannel",{});b(this,"lastCCInChannel",{});b(this,"midiClockInputIndex");b(this,"midiClockInput");b(this,"lastTimestamp",0);b(this,"midiClockDelta",0);b(this,"lastBPM");b(this,"roundedBPM",0);b(this,"clockBuffer",[]);b(this,"clockBufferLength",24);b(this,"clockTicks",0);b(this,"clockErrorCount",0);b(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 r=document.createElement("option");r.value="-1",r.text="Internal",e.appendChild(r);const i=document.createElement("option");if(i.value="-1",i.text="None",t.appendChild(i),this.midiInputs.forEach((s,a)=>{const o=document.createElement("option");o.value=a.toString(),o.text=s.name||a.toString(),e.appendChild(o),t.appendChild(o.cloneNode(!0))}),this.settings.midi_clock_input){const s=this.getMidiInputIndex(this.settings.midi_clock_input);e.value=s.toString(),s>0&&(this.midiClockInput=this.midiInputs[s],this.registerMidiInputListener(s))}else e.value="-1";if(this.settings.default_midi_input){const s=this.getMidiInputIndex(this.settings.default_midi_input);t.value=s.toString(),s>0&&(this.currentInputIndex=s,this.registerMidiInputListener(s))}else t.value="-1";e.addEventListener("change",s=>{const a=s.target.value;if(a==="-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(a);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",s=>{const a=s.target.value;a==="-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(a),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=r=>{const i=r;if(t.name===this.settings.midi_clock_input&&(i.data[0]===248?this.skipOnError>0?this.skipOnError-=1:this.onMidiClock(r.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 s=i.data[0]-144+1,a=i.data[1],o=i.data[2];this.lastNote={note:a,velocity:o,channel:s,timestamp:r.timeStamp},this.lastNoteInChannel[s]={note:a,velocity:o,channel:s,timestamp:r.timeStamp},this.settings.midi_channels_scripts&&this.api.script(s),this.pushToMidiInputBuffer({note:a,velocity:o,channel:s,timestamp:r.timeStamp}),this.activeNotes.push({note:a,velocity:o,channel:s,timestamp:r.timeStamp}),this.removeFromStickyNotes(a,s)||this.stickyNotes.push({note:a,velocity:o,channel:s,timestamp:r.timeStamp})}if(i.data[0]>=128&&i.data[0]<=143){const s=i.data[0]-128+1,a=i.data[1];this.removeFromActiveNotes(a,s)}if(i.data[0]>=176&&i.data[0]<=191){const s=i.data[0]-176+1,a=i.data[1],o=i.data[2];this.lastCC[a]=o,this.lastCCInChannel[s]?this.lastCCInChannel[s][a]=o:(this.lastCCInChannel[s]={},this.lastCCInChannel[s][a]=o),this.pushToMidiCCBuffer({control:a,value:o,channel:s,timestamp:r.timeStamp})}}})}}removeFromActiveNotes(e,t){const r=this.activeNotes.findIndex(i=>i.note===e&&i.channel===t);r>=0&&this.activeNotes.splice(r,1)}removeFromStickyNotes(e,t){const r=this.stickyNotes.findIndex(i=>i.note===e&&i.channel===t);return r>=0?(this.stickyNotes.splice(r,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(r=>r.channel===e);if(t>=0){const r=this.noteInputBuffer[t];return this.noteInputBuffer.splice(t,1),r}else return}findCCFromBufferInChannel(e){const t=this.ccInputBuffer.findIndex(r=>r.channel===e);if(t>=0){const r=this.ccInputBuffer[t];return this.ccInputBuffer.splice(t,1),r}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("Esimated BPM: ",t),this.api.bpm(t),this.roundedBPM=t)}this.lastTimestamp=e}estimatedBPM(){const e=this.clockBuffer.reduce((t,r)=>t+r);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(r=>r.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(r=>r.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,r)=>{e+=`(${r+1}) ${t.name} `}),e}sendMidiNote(e,t,r,i,s=this.currentOutputIndex,a=void 0){typeof s=="string"&&(s=this.getMidiOutputIndex(s));const o=this.midiOutputs[s];if(e=Math.min(Math.max(e,0),127),o){const l=[144+t,e,r],c=[128+t,e,0];o.send(l),a&&this.sendPitchBend(a,t,s);const u=setTimeout(()=>{o.send(c),a&&this.sendPitchBend(8192,t,s),delete this.scheduledNotes[e]},(i-.02)*1e3);this.scheduledNotes[e]=u}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,r=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 r=="string"&&(r=this.getMidiOutputIndex(r));const i=this.midiOutputs[r];if(i){const s=e&127,a=e>>7&127;i.send([224|t,s,a])}else console.error("MIDI output not available.")}sendProgramChange(e,t){const r=this.midiOutputs[this.currentOutputIndex];r?r.send([192+t,e]):console.error("MIDI output not available.")}sendMidiControlChange(e,t,r){const i=this.midiOutputs[this.currentOutputIndex];i?i.send([176+r,e,t]):console.error("MIDI output not available.")}panic(){const e=this.midiOutputs[this.currentOutputIndex];if(e){for(const t in this.scheduledNotes){const r=this.scheduledNotes[t];clearTimeout(r),e.send([128,parseInt(t),0])}this.scheduledNotes={}}else console.error("MIDI output not available.")}}class A3{constructor(e,t,r){b(this,"min");b(this,"max");b(this,"wrap");b(this,"position");this.min=e,this.max=t,this.wrap=r,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}}class i_{constructor(e){b(this,"seedValue");b(this,"randomGen",Math.random);b(this,"app");b(this,"values",{});b(this,"odds",(e,t)=>this.randomGen()this);b(this,"almostNever",e=>this.odds(.025,e));b(this,"rarely",e=>this.odds(.1,e));b(this,"scarcely",e=>this.odds(.25,e));b(this,"sometimes",e=>this.odds(.5,e));b(this,"often",e=>this.odds(.75,e));b(this,"frequently",e=>this.odds(.9,e));b(this,"almostAlways",e=>this.odds(.985,e));b(this,"always",e=>this.modify(e));b(this,"modify",e=>e(this));b(this,"seed",e=>(this.seedValue=e.toString(),this.randomGen=this.app.api.localSeededRandom(this.seedValue),this));b(this,"clear",()=>(this.app.api.clearLocalSeed(this.seedValue),this));b(this,"apply",e=>this.modify(e));b(this,"length",e=>(this.values.length=e,this));this.app=e,this.app.api.currentSeed&&(this.randomGen=this.app.api.randomGen)}}class wI extends i_{constructor(t){super(t);b(this,"octave",t=>(this.values.octave=t,this.update(),this));b(this,"key",t=>(this.values.key=t,this.update(),this));b(this,"scale",t=>(e_(t)?(this.values.scaleName=t,this.values.parsedScale=vi(t)):this.values.parsedScale=t_(t),this.update(),this));b(this,"freq",t=>{this.values.freq=t;const r=n3(t);return r%1!==0?(this.values.note=Math.floor(r),this.values.bend=TI(r)[1]):this.values.note=r,this});b(this,"update",()=>{})}}let Dr=[],I3=(n,e)=>{let t,r=[],i={lc:0,l:e||0,value:n,set(s){i.value=s,i.notify()},get(){return i.lc||i.listen(()=>{})(),i.value},notify(s){t=r;let a=!Dr.length;for(let o=0;o{r===t&&(r=r.slice());let o=r.indexOf(s);~o&&(r.splice(o,2),i.lc--,i.lc||i.off())}},subscribe(s,a){let o=i.listen(s,a);return s(i.value),o},off(){}};return i},R3=(n={})=>{let e=I3(n);return e.setKey=function(t,r){typeof r>"u"?t in e.value&&(e.value={...e.value},delete e.value[t],e.notify(t)):e.value[t]!==r&&(e.value={...e.value,[t]:r},e.notify(t))},e};if(typeof DelayNode<"u"){class n extends DelayNode{constructor(t,r,i,s){super(t),r=Math.abs(r),this.delayTime.value=i;const a=t.createGain();a.gain.value=Math.min(Math.abs(s),.995),this.feedback=a.gain;const o=t.createGain();return o.gain.value=r,this.delayGain=o,this.connect(a),this.connect(o),a.connect(this),this.connect=l=>o.connect(l),this}start(t){this.delayGain.gain.setValueAtTime(this.delayGain.gain.value,t+this.delayTime.value)}}AudioContext.prototype.createFeedbackDelay=function(e,t,r){return new n(this,e,t,r)}}typeof AudioContext<"u"&&(AudioContext.prototype.impulseResponse=function(n,e=1){const t=this.sampleRate*n,r=this.createBuffer(e,t,this.sampleRate),i=r.getChannelData(0);for(let s=0;s(e.buffer=this.impulseResponse(t),e.duration=n,e),e.setDuration(n),e});var _E={a:{freqs:[660,1120,2750,3e3,3350],gains:[1,.5012,.0708,.0631,.0126],qs:[80,90,120,130,140]},e:{freqs:[440,1800,2700,3e3,3300],gains:[1,.1995,.1259,.1,.1],qs:[70,80,100,120,120]},i:{freqs:[270,1850,2900,3350,3590],gains:[1,.0631,.0631,.0158,.0158],qs:[40,90,100,120,120]},o:{freqs:[430,820,2700,3e3,3300],gains:[1,.3162,.0501,.0794,.01995],qs:[40,80,100,120,120]},u:{freqs:[370,630,2750,3e3,3400],gains:[1,.1,.0708,.0316,.01995],qs:[40,60,100,120,120]}};if(typeof GainNode<"u"){class n extends GainNode{constructor(t,r){if(super(t),!_E[r])throw new Error("vowel: unknown vowel "+r);const{gains:i,qs:s,freqs:a}=_E[r],o=t.createGain();for(let l=0;l<5;l++){const c=t.createGain();c.gain.value=i[l];const u=t.createBiquadFilter();u.type="bandpass",u.Q.value=s[l],u.frequency.value=a[l],this.connect(u),u.connect(c),c.connect(o)}return o.gain.value=8,this.connect=l=>o.connect(l),this}}AudioContext.prototype.createVowelFilter=function(e){return new n(this,e)}}const N3=n=>{var i;if(typeof n!="string")return[];const[e,t="",r]=((i=n.match(/^([a-gA-G])([#bsf]*)([0-9]*)$/))==null?void 0:i.slice(1))||[];return e?[e,t,r?Number(r):void 0]:[]},w3={c:0,d:2,e:4,f:5,g:7,a:9,b:11},D3={"#":1,b:-1,s:1,f:-1},nu=(n,e=3)=>{const[t,r,i=e]=N3(n);if(!t)throw new Error('not a note: "'+n+'"');const s=w3[t.toLowerCase()],a=(r==null?void 0:r.split("").reduce((o,l)=>o+D3[l],0))||0;return(Number(i)+1)*12+s+a},DI=n=>Math.pow(2,(n-69)/12)*440,Qm=(n,e,t)=>Math.min(Math.max(n,e),t),x3=n=>12*Math.log(n/440)/Math.LN2+69,k3=(n,e)=>{if(typeof n!="object")throw new Error("valueToMidi: expected object value");let{freq:t,note:r}=n;if(typeof t=="number")return x3(t);if(typeof r=="string")return nu(r);if(typeof r=="number")return r;if(!e)throw new Error("valueToMidi: expected freq or note to be set");return e},L3="data:application/javascript;base64,Ly8gTElDRU5TRSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2My4wIHNlZSBodHRwczovL2dpdGh1Yi5jb20vZGt0cjAvV2ViRGlydC9ibG9iL21haW4vTElDRU5TRQovLyBhbGwgdGhlIGNyZWRpdCBnb2VzIHRvIGRrdHIwJ3Mgd2ViZGlydDogaHR0cHM6Ly9naXRodWIuY29tL2RrdHIwL1dlYkRpcnQvYmxvYi81Y2UzZDY5ODM2MmM1NGQ2ZTFiNjhhY2M0N2ViMjk1NWFjNjJjNzkzL2Rpc3QvQXVkaW9Xb3JrbGV0cy5qcwovLyA8MwoKY2xhc3MgQ29hcnNlUHJvY2Vzc29yIGV4dGVuZHMgQXVkaW9Xb3JrbGV0UHJvY2Vzc29yIHsKICBzdGF0aWMgZ2V0IHBhcmFtZXRlckRlc2NyaXB0b3JzKCkgewogICAgcmV0dXJuIFt7IG5hbWU6ICdjb2Fyc2UnLCBkZWZhdWx0VmFsdWU6IDEgfV07CiAgfQoKICBjb25zdHJ1Y3RvcigpIHsKICAgIHN1cGVyKCk7CiAgICB0aGlzLm5vdFN0YXJ0ZWQgPSB0cnVlOwogIH0KCiAgcHJvY2VzcyhpbnB1dHMsIG91dHB1dHMsIHBhcmFtZXRlcnMpIHsKICAgIGNvbnN0IGlucHV0ID0gaW5wdXRzWzBdOwogICAgY29uc3Qgb3V0cHV0ID0gb3V0cHV0c1swXTsKICAgIGNvbnN0IGNvYXJzZSA9IHBhcmFtZXRlcnMuY29hcnNlOwogICAgY29uc3QgYmxvY2tTaXplID0gMTI4OwogICAgY29uc3QgaGFzSW5wdXQgPSAhKGlucHV0WzBdID09PSB1bmRlZmluZWQpOwogICAgaWYgKGhhc0lucHV0KSB7CiAgICAgIHRoaXMubm90U3RhcnRlZCA9IGZhbHNlOwogICAgICBvdXRwdXRbMF1bMF0gPSBpbnB1dFswXVswXTsKICAgICAgZm9yIChsZXQgbiA9IDE7IG4gPCBibG9ja1NpemU7IG4rKykgewogICAgICAgIGZvciAobGV0IG8gPSAwOyBvIDwgb3V0cHV0Lmxlbmd0aDsgbysrKSB7CiAgICAgICAgICBvdXRwdXRbb11bbl0gPSBuICUgY29hcnNlID09IDAgPyBpbnB1dFswXVtuXSA6IG91dHB1dFtvXVtuIC0gMV07CiAgICAgICAgfQogICAgICB9CiAgICB9CiAgICByZXR1cm4gdGhpcy5ub3RTdGFydGVkIHx8IGhhc0lucHV0OwogIH0KfQoKcmVnaXN0ZXJQcm9jZXNzb3IoJ2NvYXJzZS1wcm9jZXNzb3InLCBDb2Fyc2VQcm9jZXNzb3IpOwoKY2xhc3MgQ3J1c2hQcm9jZXNzb3IgZXh0ZW5kcyBBdWRpb1dvcmtsZXRQcm9jZXNzb3IgewogIHN0YXRpYyBnZXQgcGFyYW1ldGVyRGVzY3JpcHRvcnMoKSB7CiAgICByZXR1cm4gW3sgbmFtZTogJ2NydXNoJywgZGVmYXVsdFZhbHVlOiAwIH1dOwogIH0KCiAgY29uc3RydWN0b3IoKSB7CiAgICBzdXBlcigpOwogICAgdGhpcy5ub3RTdGFydGVkID0gdHJ1ZTsKICB9CgogIHByb2Nlc3MoaW5wdXRzLCBvdXRwdXRzLCBwYXJhbWV0ZXJzKSB7CiAgICBjb25zdCBpbnB1dCA9IGlucHV0c1swXTsKICAgIGNvbnN0IG91dHB1dCA9IG91dHB1dHNbMF07CiAgICBjb25zdCBjcnVzaCA9IHBhcmFtZXRlcnMuY3J1c2g7CiAgICBjb25zdCBibG9ja1NpemUgPSAxMjg7CiAgICBjb25zdCBoYXNJbnB1dCA9ICEoaW5wdXRbMF0gPT09IHVuZGVmaW5lZCk7CiAgICBpZiAoaGFzSW5wdXQpIHsKICAgICAgdGhpcy5ub3RTdGFydGVkID0gZmFsc2U7CiAgICAgIGlmIChjcnVzaC5sZW5ndGggPT09IDEpIHsKICAgICAgICBjb25zdCB4ID0gTWF0aC5wb3coMiwgY3J1c2hbMF0gLSAxKTsKICAgICAgICBmb3IgKGxldCBuID0gMDsgbiA8IGJsb2NrU2l6ZTsgbisrKSB7CiAgICAgICAgICBjb25zdCB2YWx1ZSA9IE1hdGgucm91bmQoaW5wdXRbMF1bbl0gKiB4KSAvIHg7CiAgICAgICAgICBmb3IgKGxldCBvID0gMDsgbyA8IG91dHB1dC5sZW5ndGg7IG8rKykgewogICAgICAgICAgICBvdXRwdXRbb11bbl0gPSB2YWx1ZTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0gZWxzZSB7CiAgICAgICAgZm9yIChsZXQgbiA9IDA7IG4gPCBibG9ja1NpemU7IG4rKykgewogICAgICAgICAgbGV0IHggPSBNYXRoLnBvdygyLCBjcnVzaFtuXSAtIDEpOwogICAgICAgICAgY29uc3QgdmFsdWUgPSBNYXRoLnJvdW5kKGlucHV0WzBdW25dICogeCkgLyB4OwogICAgICAgICAgZm9yIChsZXQgbyA9IDA7IG8gPCBvdXRwdXQubGVuZ3RoOyBvKyspIHsKICAgICAgICAgICAgb3V0cHV0W29dW25dID0gdmFsdWU7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CiAgICB9CiAgICByZXR1cm4gdGhpcy5ub3RTdGFydGVkIHx8IGhhc0lucHV0OwogIH0KfQpyZWdpc3RlclByb2Nlc3NvcignY3J1c2gtcHJvY2Vzc29yJywgQ3J1c2hQcm9jZXNzb3IpOwoKY2xhc3MgU2hhcGVQcm9jZXNzb3IgZXh0ZW5kcyBBdWRpb1dvcmtsZXRQcm9jZXNzb3IgewogIHN0YXRpYyBnZXQgcGFyYW1ldGVyRGVzY3JpcHRvcnMoKSB7CiAgICByZXR1cm4gW3sgbmFtZTogJ3NoYXBlJywgZGVmYXVsdFZhbHVlOiAwIH1dOwogIH0KCiAgY29uc3RydWN0b3IoKSB7CiAgICBzdXBlcigpOwogICAgdGhpcy5ub3RTdGFydGVkID0gdHJ1ZTsKICB9CgogIHByb2Nlc3MoaW5wdXRzLCBvdXRwdXRzLCBwYXJhbWV0ZXJzKSB7CiAgICBjb25zdCBpbnB1dCA9IGlucHV0c1swXTsKICAgIGNvbnN0IG91dHB1dCA9IG91dHB1dHNbMF07CiAgICBjb25zdCBzaGFwZTAgPSBwYXJhbWV0ZXJzLnNoYXBlWzBdOwogICAgY29uc3Qgc2hhcGUxID0gc2hhcGUwIDwgMSA/IHNoYXBlMCA6IDEuMCAtIDRlLTEwOwogICAgY29uc3Qgc2hhcGUgPSAoMi4wICogc2hhcGUxKSAvICgxLjAgLSBzaGFwZTEpOwogICAgY29uc3QgYmxvY2tTaXplID0gMTI4OwogICAgY29uc3QgaGFzSW5wdXQgPSAhKGlucHV0WzBdID09PSB1bmRlZmluZWQpOwogICAgaWYgKGhhc0lucHV0KSB7CiAgICAgIHRoaXMubm90U3RhcnRlZCA9IGZhbHNlOwogICAgICBmb3IgKGxldCBuID0gMDsgbiA8IGJsb2NrU2l6ZTsgbisrKSB7CiAgICAgICAgY29uc3QgdmFsdWUgPSAoKDEgKyBzaGFwZSkgKiBpbnB1dFswXVtuXSkgLyAoMSArIHNoYXBlICogTWF0aC5hYnMoaW5wdXRbMF1bbl0pKTsKICAgICAgICBmb3IgKGxldCBvID0gMDsgbyA8IG91dHB1dC5sZW5ndGg7IG8rKykgewogICAgICAgICAgb3V0cHV0W29dW25dID0gdmFsdWU7CiAgICAgICAgfQogICAgICB9CiAgICB9CiAgICByZXR1cm4gdGhpcy5ub3RTdGFydGVkIHx8IGhhc0lucHV0OwogIH0KfQoKcmVnaXN0ZXJQcm9jZXNzb3IoJ3NoYXBlLXByb2Nlc3NvcicsIFNoYXBlUHJvY2Vzc29yKTsK";function Pc(n){const e=Jt().createGain();return e.gain.value=n,e}const qm=(n,e,t,r,i,s)=>{const a=Jt().createGain();return a.gain.setValueAtTime(0,s),a.gain.linearRampToValueAtTime(i,s+n),a.gain.linearRampToValueAtTime(t*i,s+n+e),{node:a,stop:o=>{a.gain.setValueAtTime(t*i,o),a.gain.linearRampToValueAtTime(0,o+r)}}},M3=(n,e,t,r,i,s)=>{t=Math.max(.001,t),i=Math.max(.001,i);const a=Jt().createGain();return a.gain.setValueAtTime(1e-4,s),a.gain.exponentialRampToValueAtTime(i,s+n),a.gain.exponentialRampToValueAtTime(t*i,s+n+e),{node:a,stop:o=>{a.gain.exponentialRampToValueAtTime(1e-4,o+r)}}},P3=(n,e,t,r,i,s,a,o,l)=>{const c=a-s,u=s+c,p=s+r*c;n.setValueAtTime(s,o),n.linearRampToValueAtTime(u,o+e),n.linearRampToValueAtTime(p,o+e+t),n.setValueAtTime(p,l),n.linearRampToValueAtTime(s,l+Math.max(i,.1))};function Zu(n,e,t,r,i,s,a,o,l,c,u,p=.5){const m=n.createBiquadFilter();if(m.type=e,m.Q.value=r,m.frequency.value=t,!isNaN(l)&&l!==0){const _=l*p,T=Qm(2**-_*t,0,2e4),I=Qm(2**(l-_)*t,0,2e4);return P3(m.frequency,i,s,a,o,T,I,c,u),m}return m}let B3=n=>console.log(n);const ys=(...n)=>B3(...n),a_=R3();function s_(n,e,t={}){a_.setKey(n,{onTrigger:e,data:t})}function SE(n){return a_.get()[n]}let Ku;const Jt=()=>(Ku||(Ku=new AudioContext),Ku);let Ul;const o_=()=>{const n=Jt();return Ul||(Ul=n.createGain(),Ul.connect(n.destination)),Ul};let ju;function U3(){return ju||(ju=Jt().audioWorklet.addModule(L3),ju)}function Ju(n,e,t){const r=new AudioWorkletNode(n,e);return Object.entries(t).forEach(([i,s])=>{r.parameters.get(i).value=s}),r}async function F3(n={}){const{disableWorklets:e=!1}=n;typeof window<"u"&&(await Jt().resume(),e?console.log("disableWorklets: AudioWorklet effects coarse, crush and shape are skipped!"):await U3().catch(t=>{console.warn("could not load AudioWorklet effects coarse, crush and shape",t)}))}async function Y3(n){return new Promise(e=>{document.addEventListener("click",async function t(){await F3(n),e(),document.removeEventListener("click",t)})})}let oa={};function $3(n,e,t,r){var i;if(t=Qm(t,0,.98),!oa[n]){const s=Jt().createFeedbackDelay(1,e,t);(i=s.start)==null||i.call(s,r),s.connect(o_()),oa[n]=s}return oa[n].delayTime.value!==e&&oa[n].delayTime.setValueAtTime(e,r),oa[n].feedback.value!==t&&oa[n].feedback.setValueAtTime(t,r),oa[n]}let la={};function G3(n,e=2){if(!la[n]){const t=Jt().createReverb(e);t.connect(o_()),la[n]=t}return la[n].duration!==e&&(la[n]=la[n].setDuration(e),la[n].duration=e),la[n]}let ca;function Q3(n=2048){if(!ca){const e=Jt().createAnalyser();e.fftSize=n,ca=e,new Float32Array(ca.frequencyBinCount)}return ca.fftSize!==n&&(ca.fftSize=n,new Float32Array(ca.frequencyBinCount)),ca}function ed(n,e,t){const r=Pc(t);return n.connect(r),r.connect(e),r}const OE=async(n,e,t)=>{const r=Jt();if(typeof n!="object")throw new Error(`expected hap.value to be an object, but got "${n}". Hint: append .note() or .s() to the end`,"error");n.duration=t;let i=r.currentTime+e,{s="triangle",bank:a,source:o,gain:l=.8,ftype:c="12db",fanchor:u=.5,cutoff:p,lpenv:m,lpattack:_=.01,lpdecay:T=.01,lpsustain:I=1,lprelease:R=.01,resonance:L=1,hpenv:$,hcutoff:K,hpattack:f=.01,hpdecay:E=.01,hpsustain:S=1,hprelease:N=.01,hresonance:k=1,bpenv:x,bandf:M,bpattack:G=.01,bpdecay:te=.01,bpsustain:ne=1,bprelease:re=.01,bandq:ee=1,coarse:B,crush:Q,shape:j,pan:Z,vowel:ue,delay:le=0,delayfeedback:Ee=.5,delaytime:De=.25,orbit:xe=1,room:be,size:Re=2,velocity:ce=1,analyze:ke,fft:Ze=8}=n;l*=ce;let Le=[];const tt=()=>{Le.forEach(at=>at==null?void 0:at.disconnect())};a&&s&&(s=`${a}_${s}`);let nt;if(o)nt=o(i,n,t);else if(SE(s)){const{onTrigger:at}=SE(s),$e=await at(i,n,tt);$e&&(nt=$e.node,$e.stop(i+t))}else throw new Error(`sound ${s} not found! Is it loaded?`);if(!nt)return;if(r.currentTime>i){ys("[webaudio] skip hap: still loading",r.currentTime-i);return}const ze=[];if(ze.push(nt),ze.push(Pc(l)),p!==void 0){let at=()=>Zu(r,"lowpass",p,L,_,T,I,R,m,i,i+t,u);ze.push(at()),c==="24db"&&ze.push(at())}if(K!==void 0){let at=()=>Zu(r,"highpass",K,k,f,E,S,N,$,i,i+t,u);ze.push(at()),c==="24db"&&ze.push(at())}if(M!==void 0){let at=()=>Zu(r,"bandpass",M,ee,G,te,ne,re,x,i,i+t,u);ze.push(at()),c==="24db"&&ze.push(at())}if(ue!==void 0){const at=r.createVowelFilter(ue);ze.push(at)}if(B!==void 0&&ze.push(Ju(r,"coarse-processor",{coarse:B})),Q!==void 0&&ze.push(Ju(r,"crush-processor",{crush:Q})),j!==void 0&&ze.push(Ju(r,"shape-processor",{shape:j})),Z!==void 0){const at=r.createStereoPanner();at.pan.value=2*Z-1,ze.push(at)}const St=Pc(1);ze.push(St),St.connect(o_());let mt;if(le>0&&De>0&&Ee>0){const at=$3(xe,De,Ee,i);mt=ed(St,at,le)}let At;if(be>0&&Re>0){const at=G3(xe,Re);At=ed(St,at,be)}let Rt;if(ke){const at=Q3(2**(Ze+5));Rt=ed(St,at,ke)}ze.slice(1).reduce((at,$e)=>at.connect($e),ze[0]),Le=ze.concat([mt,At,Rt])},td={};function q3(n,e){var t=e?1e3:1024;if(n=t);return n.toFixed(1)+" "+r[i]}const V3=async(n,e,t,r,i,s,a)=>{let o=0;i!==void 0&&t!==void 0&&ys("[sampler] hap has note and freq. ignoring note","warning");let l=k3({freq:i,note:t},36);o=l-36;const c=Jt();let u;if(Array.isArray(s))u=s[e%s.length];else{const T=R=>nu(R)-l,I=Object.keys(s).filter(R=>!R.startsWith("_")).reduce((R,L,$)=>!R||Math.abs(T(L)){const i=t?`sound "${t}:${r}"`:"sample";if(!td[n]){ys(`[sampler] load ${i}..`,"load-sample",{url:n});const s=Date.now();td[n]=fetch(n).then(a=>a.arrayBuffer()).then(async a=>{const o=Date.now()-s,l=q3(a.byteLength);return ys(`[sampler] load ${i}... done! loaded ${l} in ${o}ms`,"loaded-sample",{url:n}),await e.decodeAudioData(a)})}return td[n]};function H3(n){const e=Jt(),t=e.createBuffer(n.numberOfChannels,n.length,e.sampleRate);for(let r=0;rObject.entries(n).forEach(([r,i])=>{if(typeof i=="string"&&(i=[i]),typeof i!="object")throw new Error("wrong sample map format for "+r);t=i._base||t;const s=a=>(t+a).replace("github:","https://raw.githubusercontent.com/");Array.isArray(i)?i=i.map(s):i=Object.fromEntries(Object.entries(i).map(([a,o])=>[a,(typeof o=="string"?[o]:o).map(s)])),e(r,i)});let X3={};function Z3(n){const e=Object.entries(X3).find(([t])=>n.startsWith(t));if(e)return e[1]}const pa=async(n,e=n._base||"",t={})=>{if(typeof n=="string"){const s=Z3(n);if(s)return s(n);if(n.startsWith("github:")){let[o,l]=n.split("github:");l=l.endsWith("/")?l.slice(0,-1):l,n=`https://raw.githubusercontent.com/${l}/strudel.json`}if(typeof fetch!="function")return;const a=n.split("/").slice(0,-1).join("/");return typeof fetch>"u"?void 0:fetch(n).then(o=>o.json()).then(o=>pa(o,e||o._base||a,t)).catch(o=>{throw console.error(o),new Error(`error loading "${n}"`)})}const{prebake:r,tag:i}=t;W3(n,(s,a)=>s_(s,(o,l,c)=>K3(o,l,c,a),{type:"sample",samples:a,baseUrl:e,prebake:r,tag:i}),e)},EE=[];async function K3(n,e,t,r,i){let{s,freq:a,unit:o,nudge:l=0,cut:c,loop:u,clip:p=void 0,n:m=0,note:_,speed:T=1,loopBegin:I=0,begin:R=0,loopEnd:L=1,end:$=1}=e;if(T===0)return;u=s.startsWith("wt_")?1:e.loop;const K=Jt(),{attack:f=.001,decay:E=.001,sustain:S=1,release:N=.001}=e,k=n+l,x=await V3(s,m,_,T,a,r,i);if(K.currentTime>n){ys(`[sampler] still loading sound "${s}:${m}"`,"highlight");return}if(!x){ys(`[sampler] could not load "${s}:${m}"`,"error");return}x.playbackRate.value=Math.abs(T)*x.playbackRate.value,o==="c"&&(x.playbackRate.value=x.playbackRate.value*x.buffer.duration*1);const M=R*x.buffer.duration;u&&(x.loop=!0,x.loopStart=I*x.buffer.duration-M,x.loopEnd=L*x.buffer.duration-M),x.start(k,M);const{node:G,stop:te}=qm(f,E,S,N,1,n);x.connect(G);const ne=K.createGain();G.connect(ne),x.onended=function(){x.disconnect(),G.disconnect(),ne.disconnect(),t()};const re={node:ne,bufferSource:x,stop:(ee,B=p===void 0&&u===void 0)=>{let Q=ee;if(B){const j=x.buffer.duration/x.playbackRate.value;Q=n+($-R)*j}x.stop(Q+N),te(Q)}};if(c!==void 0){const ee=EE[c];ee&&(ee.node.gain.setValueAtTime(1,k),ee.node.gain.linearRampToValueAtTime(0,k+.01)),EE[c]=re}return re}const j3=(n,e=1,t="sine")=>{const r=Jt(),i=r.createOscillator();i.type=t,i.frequency.value=n,i.start();const s=new GainNode(r,{gain:e});return i.connect(s),{node:s,stop:a=>i.stop(a)}},J3=(n,e,t,r="sine")=>{const i=n.frequency.value*e,s=i*t;return j3(i,s,r)};function eB(){["sine","square","triangle","sawtooth"].forEach(n=>{s_(n,(e,t,r)=>{let{attack:i=.001,decay:s=.05,sustain:a=.6,release:o=.01,fmh:l=1,fmi:c,fmenv:u="lin",fmattack:p,fmdecay:m,fmsustain:_,fmrelease:T,fmvelocity:I,fmwave:R="sine",vib:L=0,vibmod:$=.5}=t,{n:K,note:f,freq:E}=t;f=f||36,typeof f=="string"&&(f=nu(f)),!E&&typeof f=="number"&&(E=DI(f));const{node:S,stop:N}=rB({t:e,s:n,freq:E,vib:L,vibmod:$,partials:K});let k,x;if(c){const{node:ne,stop:re}=J3(S,l,c,R);[p,m,_,T,I].find(ee=>ee!==void 0)?(p=p??.001,m=m??.001,_=_??1,T=T??.001,I=I??1,x=qm(p,m,_,T,I,e),u==="exp"&&(x=M3(p,m,_,T,I,e),x.node.maxValue=c*2,x.node.minValue=1e-5),ne.connect(x.node),x.node.connect(S.frequency)):ne.connect(S.frequency),k=re}const M=Pc(.3),{node:G,stop:te}=qm(i,s,a,o,1,e);return S.onended=()=>{S.disconnect(),M.disconnect(),r()},{node:S.connect(M).connect(G),stop:ne=>{te(ne),x==null||x.stop(ne);let re=ne+o;N(re),k==null||k(re)}}},{type:"synth",prebake:!0})})}function tB(n,e){const t=new Float32Array(n+1),r=new Float32Array(n+1),i=Jt(),s=i.createOscillator(),a={sawtooth:c=>1/c,square:c=>c%2===0?0:1/c,triangle:c=>c%2===0?0:1/(c*c)};if(!a[e])throw new Error(`unknown wave type ${e}`);t[0]=0,r[0]=0;let o=1;for(;o<=n;)t[o]=a[e](o),r[o]=0,o++;const l=i.createPeriodicWave(t,r);return s.setPeriodicWave(l),s}function rB({s:n,freq:e,t,vib:r,vibmod:i,partials:s}){let a;!s||n==="sine"?(a=Jt().createOscillator(),a.type=n||"triangle"):a=tB(s,n),a.frequency.value=Number(e),a.start(t);let o;if(r>0){o=Jt().createOscillator(),o.frequency.value=r;const l=Jt().createGain();l.gain.value=i*100,o.connect(l),l.connect(a.detune),o.start(t)}return{node:a,stop:l=>{o==null||o.stop(l),a.stop(l)}}}function nB(n=1,e=.05,t=220,r=0,i=0,s=.1,a=0,o=1,l=0,c=0,u=0,p=0,m=0,_=0,T=0,I=0,R=0,L=1,$=0,K=0){let f=Math.PI*2,E=Jt().sampleRate,S=Z=>Z>0?1:-1,N=l*=500*f/E/E,k=t*=(1+e*2*Math.random()-e)*f/E,x=[],M=0,G=0,te=0,ne=1,re=0,ee=0,B=0,Q,j;for(r=r*E+9,$*=E,i*=E,s*=E,R*=E,c*=500*f/E**3,T*=f/E,u*=f/E,p*=E,m=m*E|0,j=r+$+i+s+R|0;te1?a>2?a>3?Math.sin((M%f)**3):Math.max(Math.min(Math.tan(M),1),-1):1-(2*M/f%2+2)%2:1-4*Math.abs(Math.round(M/f)-M/f):Math.sin(M),B=(m?1-K+K*Math.sin(f*te/m):1)*S(B)*Math.abs(B)**o*n*1*(tete?0:(tep&&(t+=u,k+=u,ne=0),m&&!(++re%m)&&(t=k,l=N,ne||(ne=1));return x}const iB=(n,e)=>{let{s:t,note:r=36,freq:i,zrand:s=0,attack:a=0,decay:o=0,sustain:l=.8,release:c=.1,curve:u=1,slide:p=0,deltaSlide:m=0,pitchJump:_=0,pitchJumpTime:T=0,lfo:I=0,noise:R=0,zmod:L=0,zcrush:$=0,zdelay:K=0,tremolo:f=0,duration:E=.2,zzfx:S}=n;const N=Math.max(E-a-o,0);typeof r=="string"&&(r=nu(r)),!i&&typeof r=="number"&&(i=DI(r)),t=t.replace("z_","");const k=["sine","triangle","sawtooth","tan","noise"].indexOf(t)||0;u=t==="square"?0:u;const x=nB(...S||[.25,s,i,a,N,c,k,u,p,m,_,T,I,R,L,$,K,l,o,f]),M=Jt(),G=M.createBuffer(1,x.length,M.sampleRate);G.getChannelData(0).set(x);const te=Jt().createBufferSource();return te.buffer=G,te.start(e),{node:te}};function aB(){["zzfx","z_sine","z_sawtooth","z_triangle","z_square","z_tan","z_noise"].forEach(n=>{s_(n,(e,t,r)=>{const{node:i}=iB({s:n,...t},e);return i.onended=()=>{i.disconnect(),r()},{node:i,stop:()=>{}}},{type:"synth",prebake:!0})})}class Vm extends wI{constructor(t,r){super(r);b(this,"volume",t=>this.updateValue("volume",t));b(this,"vol",this.volume);b(this,"zrand",t=>this.updateValue("zrand",t));b(this,"curve",t=>this.updateValue("curve",t));b(this,"slide",t=>this.updateValue("slide",t));b(this,"sld",this.slide);b(this,"deltaSlide",t=>this.updateValue("deltaSlide",t));b(this,"dslide",this.deltaSlide);b(this,"pitchJump",t=>this.updateValue("pitchJump",t));b(this,"pj",this.pitchJump);b(this,"pitchJumpTime",t=>this.updateValue("pitchJumpTime",t));b(this,"pjt",this.pitchJumpTime);b(this,"lfo",t=>this.updateValue("lfo",t));b(this,"noise",t=>this.updateValue("noise",t));b(this,"zmod",t=>this.updateValue("zmod",t));b(this,"zcrush",t=>this.updateValue("zcrush",t));b(this,"zdelay",t=>this.updateValue("zdelay",t));b(this,"sustainVolume",t=>this.updateValue("sustainVolume",t));b(this,"tremolo",t=>this.updateValue("tremolo",t));b(this,"dur",t=>this.updateValue("dur",t));b(this,"zzfx",t=>this.updateValue("zzfx",t));b(this,"fmi",t=>this.updateValue("fmi",t));b(this,"fmh",t=>this.updateValue("fmh",t));b(this,"fmenv",t=>this.updateValue("fmenv",t));b(this,"fmattack",t=>this.updateValue("fmattack",t));b(this,"fmatk",this.fmattack);b(this,"fmdecay",t=>this.updateValue("fmdecay",t));b(this,"fmdec",this.fmdecay);b(this,"fmsustain",t=>this.updateValue("fmsustain",t));b(this,"fmsus",this.fmsustain);b(this,"fmrelease",t=>this.updateValue("fmrelease",t));b(this,"fmrel",this.fmrelease);b(this,"fmvelocity",t=>this.updateValue("fmvelocity",t));b(this,"fmvel",this.fmvelocity);b(this,"fmwave",t=>this.updateValue("fmwave",t));b(this,"fmw",this.fmwave);b(this,"ftype",t=>this.updateValue("ftype",t));b(this,"fanchor",t=>this.updateValue("fanchor",t));b(this,"attack",t=>this.updateValue("attack",t));b(this,"atk",this.attack);b(this,"decay",t=>this.updateValue("decay",t));b(this,"dec",this.decay);b(this,"sustain",t=>this.updateValue("sustain",t));b(this,"sus",this.sustain);b(this,"release",t=>this.updateValue("release",t));b(this,"rel",this.release);b(this,"adsr",(t,r,i,s)=>(this.attack(t),this.decay(r),this.sustain(i),this.release(s),this));b(this,"lpenv",t=>this.updateValue("lpenv",t));b(this,"lpe",t=>this.updateValue("lpenv",t));b(this,"lpattack",t=>this.updateValue("lpattack",t));b(this,"lpa",this.lpattack);b(this,"lpdecay",t=>this.updateValue("lpdecay",t));b(this,"lpd",this.lpdecay);b(this,"lpsustain",t=>this.updateValue("lpsustain",t));b(this,"lps",this.lpsustain);b(this,"lprelease",t=>this.updateValue("lprelease",t));b(this,"lpr",this.lprelease);b(this,"cutoff",t=>this.updateValue("cutoff",t));b(this,"lpf",this.cutoff);b(this,"resonance",t=>this.updateValue("resonance",Math.min(Math.max(t,0),50)));b(this,"lpq",this.resonance);b(this,"lpadsr",(t,r,i,s,a)=>(this.lpenv(t),this.lpattack(r),this.lpdecay(i),this.lpsustain(s),this.lprelease(a),this));b(this,"hpenv",t=>this.updateValue("hpenv",t));b(this,"hpe",t=>this.updateValue("hpe",t));b(this,"hpattack",t=>this.updateValue("hpattack",t));b(this,"hpa",this.hpattack);b(this,"hpdecay",t=>this.updateValue("hpdecay",t));b(this,"hpd",this.hpdecay);b(this,"hpsustain",t=>this.updateValue("hpsustain",t));b(this,"hpsus",this.hpsustain);b(this,"hprelease",t=>this.updateValue("hprelease",t));b(this,"hpr",this.hprelease);b(this,"hcutoff",t=>this.updateValue("hcutoff",t));b(this,"hpf",this.hcutoff);b(this,"hresonance",t=>this.updateValue("hresonance",t));b(this,"hpq",this.hresonance);b(this,"hpadsr",(t,r,i,s,a)=>(this.hpenv(t),this.hpattack(r),this.hpdecay(i),this.hpsustain(s),this.hprelease(a),this));b(this,"bpenv",t=>this.updateValue("bpenv",t));b(this,"bpe",t=>this.updateValue("bpe",t));b(this,"bpattack",t=>this.updateValue("bpattack",t));b(this,"bpa",this.bpattack);b(this,"bpdecay",t=>this.updateValue("bpdecay",t));b(this,"bpd",this.bpdecay);b(this,"bpsustain",t=>this.updateValue("bpsustain",t));b(this,"bps",this.bpsustain);b(this,"bprelease",t=>this.updateValue("bprelease",t));b(this,"bpr",this.bprelease);b(this,"bandf",t=>this.updateValue("bandf",t));b(this,"bpf",this.bandf);b(this,"bandq",t=>this.updateValue("bandq",t));b(this,"bpq",this.bandq);b(this,"bpadsr",(t,r,i,s,a)=>(this.bpenv(t),this.bpattack(r),this.bpdecay(i),this.bpsustain(s),this.bprelease(a),this));b(this,"freq",t=>this.updateValue("freq",t));b(this,"f",this.freq);b(this,"vib",t=>this.updateValue("vib",t));b(this,"vibmod",t=>this.updateValue("vibmod",t));b(this,"fm",t=>{if(typeof t=="number")this.values.fmi=t;else{let r=t.split(":");this.values.fmi=parseFloat(r[0]),r.length>1&&(this.values.fmh=parseFloat(r[1]))}return this});b(this,"loop",t=>this.updateValue("loop",t));b(this,"loopBegin",t=>this.updateValue("loopBegin",t));b(this,"loopEnd",t=>this.updateValue("loopEnd",t));b(this,"begin",t=>this.updateValue("begin",t));b(this,"end",t=>this.updateValue("end",t));b(this,"gain",t=>this.updateValue("gain",t));b(this,"dbgain",t=>this.updateValue("gain",Math.min(Math.pow(10,t/20),10)));b(this,"db",this.dbgain);b(this,"velocity",t=>this.updateValue("velocity",t));b(this,"vel",this.velocity);b(this,"pan",t=>this.updateValue("pan",t));b(this,"sound",t=>this.updateValue("s",t));b(this,"chord",(t,...r)=>(typeof t=="string"?t=f3(t).map(s=>({note:s,freq:Zn(s)})):t instanceof Array&&typeof t[0]=="number"?t=t.map(i=>({note:i,freq:Zn(i)})):typeof t=="number"&&r.length>0&&(t=[t,...r].map(i=>({note:i,freq:Zn(i)}))),this.updateValue("chord",t)));b(this,"invert",(t=0)=>{if(this.values.chord){let r=this.values.chord.map(s=>s.note);r=t<0?[...r].reverse():r;for(let s=0;s({note:s,freq:Zn(s)}));return this.updateValue("chord",i)}else return this});b(this,"snd",this.sound);b(this,"nudge",t=>this.updateValue("nudge",t));b(this,"cut",t=>this.updateValue("cut",t));b(this,"clip",t=>this.updateValue("clip",t));b(this,"n",t=>this.updateValue("n",t));b(this,"note",t=>typeof t=="string"?this.updateValue("note",oi(t)):this.updateValue("note",t));b(this,"speed",t=>this.updateValue("speed",t));b(this,"spd",this.speed);b(this,"coarse",t=>this.updateValue("coarse",t));b(this,"crush",t=>this.updateValue("crush",t));b(this,"shape",t=>this.updateValue("shape",t));b(this,"vowel",t=>this.updateValue("vowel",t));b(this,"vow",this.vowel);b(this,"delay",t=>this.updateValue("delay",t));b(this,"del",this.delay);b(this,"delayfeedback",t=>this.updateValue("delayfeedback",t));b(this,"delayfb",this.delayfeedback);b(this,"delaytime",t=>this.updateValue("delaytime",t));b(this,"delayt",this.delaytime);b(this,"orbit",t=>this.updateValue("orbit",t));b(this,"o",this.orbit);b(this,"room",t=>this.updateValue("room",t));b(this,"rm",this.room);b(this,"size",t=>this.updateValue("size",t));b(this,"sz",this.size);b(this,"stretch",t=>(this.updateValue("unit","c"),this.updateValue("speed",1/t),this.updateValue("cut",t),this));b(this,"modify",t=>{const r=t(this);return r instanceof Object?r:(t(this.values),this.update(),this)});b(this,"update",()=>{const[t,r]=r_(this.values.key||"C4",this.values.pitch||0,this.values.parsedScale||"MAJOR",this.values.octave||0);this.values.freq=Zn(t)});b(this,"out",()=>{this.values.chord?this.values.chord.forEach(t=>{const r={...this.values};r.freq=t.freq,OE(r,.25,this.values.dur)}):OE(this.values,.25,this.values.dur)});this.app=r,typeof t=="string"?t.includes(":")?this.values={s:t.split(":")[0],n:t.split(":")[1],dur:r.clock.convertPulseToSecond(r.clock.ppqn)}:this.values={s:t,dur:.5}:this.values=t}updateValue(t,r){return this.values[t]=r,this}}class zm extends wI{constructor(t,r){super(r);b(this,"midiConnection");b(this,"chord",t=>(this.values.chord=t,this));b(this,"note",t=>(this.values.note=t,this));b(this,"sustain",t=>(this.values.sustain=t,this));b(this,"channel",t=>(this.values.channel=t,this));b(this,"port",t=>(this.values.port=this.midiConnection.getMidiOutputIndex(t),this));b(this,"add",t=>(this.values.note+=t,this));b(this,"modify",t=>{const r=t(this);return r instanceof Object?r:(t(this.values),this.update(),this)});b(this,"bend",t=>(this.values.bend=t,this));b(this,"random",(t=0,r=127)=>(t=Math.min(Math.max(t,0),127),r=Math.min(Math.max(r,0),127),this.values.note=Math.floor(this.randomGen()*(r-t+1))+t,this));b(this,"update",()=>{const[t,r]=r_(this.values.key||"C4",this.values.pitch||0,this.values.parsedScale||"MAJOR",this.values.octave||0);this.values.note=t,this.values.freq=Zn(t),r&&(this.values.bend=r)});b(this,"out",()=>{function t(r,i){const s=i&&i.channel?i.channel:0,a=r.values.channel?r.values.channel:s,o=r.values.velocity?r.values.velocity:100,l=i&&i.note?i.note:60,c=r.values.note?r.values.note:l,u=r.values.sustain?r.values.sustain*r.app.clock.pulse_duration*r.app.api.ppqn():r.app.clock.pulse_duration*r.app.api.ppqn(),p=r.values.bend?r.values.bend:void 0,m=r.values.port?r.midiConnection.getMidiOutputIndex(r.values.port):r.midiConnection.getCurrentMidiPortIndex();r.midiConnection.sendMidiNote(c,a,o,u,m,p)}this.values.chord?this.values.chord.forEach(r=>{t(this,r)}):t(this)});this.app=r,typeof t=="number"?this.values.note=t:this.values=t,this.midiConnection=r.api.MidiConnection}}const lo=typeof performance=="object"&&performance&&typeof performance.now=="function"?performance:Date,xI=new Set,Hm=typeof process=="object"&&process?process:{},kI=(n,e,t,r)=>{typeof Hm.emitWarning=="function"?Hm.emitWarning(n,e,t,r):console.error(`[${t}] ${e}: ${n}`)};let Bc=globalThis.AbortController,bE=globalThis.AbortSignal;var dT;if(typeof Bc>"u"){bE=class{constructor(){b(this,"onabort");b(this,"_onabort",[]);b(this,"reason");b(this,"aborted",!1)}addEventListener(r,i){this._onabort.push(i)}},Bc=class{constructor(){b(this,"signal",new bE);e()}abort(r){var i,s;if(!this.signal.aborted){this.signal.reason=r,this.signal.aborted=!0;for(const a of this.signal._onabort)a(r);(s=(i=this.signal).onabort)==null||s.call(i,r)}}};let n=((dT=Hm.env)==null?void 0:dT.LRU_CACHE_IGNORE_AC_WARNING)!=="1";const e=()=>{n&&(n=!1,kI("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 sB=n=>!xI.has(n),Pi=n=>n&&n===Math.floor(n)&&n>0&&isFinite(n),LI=n=>Pi(n)?n<=Math.pow(2,8)?Uint8Array:n<=Math.pow(2,16)?Uint16Array:n<=Math.pow(2,32)?Uint32Array:n<=Number.MAX_SAFE_INTEGER?ec:null:null;class ec extends Array{constructor(e){super(e),this.fill(0)}}var cs;const ha=class ha{constructor(e,t){b(this,"heap");b(this,"length");if(!V(ha,cs))throw new TypeError("instantiate Stack using Stack.create(n)");this.heap=new t(e),this.length=0}static create(e){const t=LI(e);if(!t)return[];Xe(ha,cs,!0);const r=new ha(e,t);return Xe(ha,cs,!1),r}push(e){this.heap[this.length++]=e}pop(){return this.heap[--this.length]}};cs=new WeakMap,ot(ha,cs,!1);let Wm=ha;var Nn,Jr,wn,Dn,us,nr,xn,ir,Mt,it,xr,en,Tr,dr,kn,pr,gi,_i,Ln,Mn,Gi,kr,Zo,Zm,Oa,Si,Ko,tn,Gc,MI,Ea,ds,jo,qn,Bi,Vn,Ui,Jo,Km,ps,tc,hs,rc,xt,Ft,el,jm,ba,Oo;const g_=class g_{constructor(e){ot(this,Zo);ot(this,Gc);ot(this,qn);ot(this,Vn);ot(this,Jo);ot(this,ps);ot(this,hs);ot(this,xt);ot(this,el);ot(this,ba);ot(this,Nn,void 0);ot(this,Jr,void 0);ot(this,wn,void 0);ot(this,Dn,void 0);ot(this,us,void 0);b(this,"ttl");b(this,"ttlResolution");b(this,"ttlAutopurge");b(this,"updateAgeOnGet");b(this,"updateAgeOnHas");b(this,"allowStale");b(this,"noDisposeOnSet");b(this,"noUpdateTTL");b(this,"maxEntrySize");b(this,"sizeCalculation");b(this,"noDeleteOnFetchRejection");b(this,"noDeleteOnStaleGet");b(this,"allowStaleOnFetchAbort");b(this,"allowStaleOnFetchRejection");b(this,"ignoreFetchAbort");ot(this,nr,void 0);ot(this,xn,void 0);ot(this,ir,void 0);ot(this,Mt,void 0);ot(this,it,void 0);ot(this,xr,void 0);ot(this,en,void 0);ot(this,Tr,void 0);ot(this,dr,void 0);ot(this,kn,void 0);ot(this,pr,void 0);ot(this,gi,void 0);ot(this,_i,void 0);ot(this,Ln,void 0);ot(this,Mn,void 0);ot(this,Gi,void 0);ot(this,kr,void 0);ot(this,Oa,()=>{});ot(this,Si,()=>{});ot(this,Ko,()=>{});ot(this,tn,()=>!1);ot(this,Ea,e=>{});ot(this,ds,(e,t,r)=>{});ot(this,jo,(e,t,r,i)=>{if(r||i)throw new TypeError("cannot set size without setting maxSize or maxEntrySize on cache");return 0});const{max:t=0,ttl:r,ttlResolution:i=1,ttlAutopurge:s,updateAgeOnGet:a,updateAgeOnHas:o,allowStale:l,dispose:c,disposeAfter:u,noDisposeOnSet:p,noUpdateTTL:m,maxSize:_=0,maxEntrySize:T=0,sizeCalculation:I,fetchMethod:R,noDeleteOnFetchRejection:L,noDeleteOnStaleGet:$,allowStaleOnFetchRejection:K,allowStaleOnFetchAbort:f,ignoreFetchAbort:E}=e;if(t!==0&&!Pi(t))throw new TypeError("max option must be a nonnegative integer");const S=t?LI(t):Array;if(!S)throw new Error("invalid max value: "+t);if(Xe(this,Nn,t),Xe(this,Jr,_),this.maxEntrySize=T||V(this,Jr),this.sizeCalculation=I,this.sizeCalculation){if(!V(this,Jr)&&!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(Xe(this,us,R),Xe(this,Gi,!!R),Xe(this,ir,new Map),Xe(this,Mt,new Array(t).fill(void 0)),Xe(this,it,new Array(t).fill(void 0)),Xe(this,xr,new S(t)),Xe(this,en,new S(t)),Xe(this,Tr,0),Xe(this,dr,0),Xe(this,kn,Wm.create(t)),Xe(this,nr,0),Xe(this,xn,0),typeof c=="function"&&Xe(this,wn,c),typeof u=="function"?(Xe(this,Dn,u),Xe(this,pr,[])):(Xe(this,Dn,void 0),Xe(this,pr,void 0)),Xe(this,Mn,!!V(this,wn)),Xe(this,kr,!!V(this,Dn)),this.noDisposeOnSet=!!p,this.noUpdateTTL=!!m,this.noDeleteOnFetchRejection=!!L,this.allowStaleOnFetchRejection=!!K,this.allowStaleOnFetchAbort=!!f,this.ignoreFetchAbort=!!E,this.maxEntrySize!==0){if(V(this,Jr)!==0&&!Pi(V(this,Jr)))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");Ve(this,Gc,MI).call(this)}if(this.allowStale=!!l,this.noDeleteOnStaleGet=!!$,this.updateAgeOnGet=!!a,this.updateAgeOnHas=!!o,this.ttlResolution=Pi(i)||i===0?i:1,this.ttlAutopurge=!!s,this.ttl=r||0,this.ttl){if(!Pi(this.ttl))throw new TypeError("ttl must be a positive integer if specified");Ve(this,Zo,Zm).call(this)}if(V(this,Nn)===0&&this.ttl===0&&V(this,Jr)===0)throw new TypeError("At least one of max, maxSize, or ttl is required");if(!this.ttlAutopurge&&!V(this,Nn)&&!V(this,Jr)){const N="LRU_CACHE_UNBOUNDED";sB(N)&&(xI.add(N),kI("TTL caching without ttlAutopurge, max, or maxSize can result in unbounded memory consumption.","UnboundedCacheWarning",N,g_))}}static unsafeExposeInternals(e){return{starts:V(e,_i),ttls:V(e,Ln),sizes:V(e,gi),keyMap:V(e,ir),keyList:V(e,Mt),valList:V(e,it),next:V(e,xr),prev:V(e,en),get head(){return V(e,Tr)},get tail(){return V(e,dr)},free:V(e,kn),isBackgroundFetch:t=>{var r;return Ve(r=e,xt,Ft).call(r,t)},backgroundFetch:(t,r,i,s)=>{var a;return Ve(a=e,hs,rc).call(a,t,r,i,s)},moveToTail:t=>{var r;return Ve(r=e,ba,Oo).call(r,t)},indexes:t=>{var r;return Ve(r=e,qn,Bi).call(r,t)},rindexes:t=>{var r;return Ve(r=e,Vn,Ui).call(r,t)},isStale:t=>{var r;return V(r=e,tn).call(r,t)}}}get max(){return V(this,Nn)}get maxSize(){return V(this,Jr)}get calculatedSize(){return V(this,xn)}get size(){return V(this,nr)}get fetchMethod(){return V(this,us)}get dispose(){return V(this,wn)}get disposeAfter(){return V(this,Dn)}getRemainingTTL(e){return V(this,ir).has(e)?1/0:0}*entries(){for(const e of Ve(this,qn,Bi).call(this))V(this,it)[e]!==void 0&&V(this,Mt)[e]!==void 0&&!Ve(this,xt,Ft).call(this,V(this,it)[e])&&(yield[V(this,Mt)[e],V(this,it)[e]])}*rentries(){for(const e of Ve(this,Vn,Ui).call(this))V(this,it)[e]!==void 0&&V(this,Mt)[e]!==void 0&&!Ve(this,xt,Ft).call(this,V(this,it)[e])&&(yield[V(this,Mt)[e],V(this,it)[e]])}*keys(){for(const e of Ve(this,qn,Bi).call(this)){const t=V(this,Mt)[e];t!==void 0&&!Ve(this,xt,Ft).call(this,V(this,it)[e])&&(yield t)}}*rkeys(){for(const e of Ve(this,Vn,Ui).call(this)){const t=V(this,Mt)[e];t!==void 0&&!Ve(this,xt,Ft).call(this,V(this,it)[e])&&(yield t)}}*values(){for(const e of Ve(this,qn,Bi).call(this))V(this,it)[e]!==void 0&&!Ve(this,xt,Ft).call(this,V(this,it)[e])&&(yield V(this,it)[e])}*rvalues(){for(const e of Ve(this,Vn,Ui).call(this))V(this,it)[e]!==void 0&&!Ve(this,xt,Ft).call(this,V(this,it)[e])&&(yield V(this,it)[e])}[Symbol.iterator](){return this.entries()}find(e,t={}){for(const r of Ve(this,qn,Bi).call(this)){const i=V(this,it)[r],s=Ve(this,xt,Ft).call(this,i)?i.__staleWhileFetching:i;if(s!==void 0&&e(s,V(this,Mt)[r],this))return this.get(V(this,Mt)[r],t)}}forEach(e,t=this){for(const r of Ve(this,qn,Bi).call(this)){const i=V(this,it)[r],s=Ve(this,xt,Ft).call(this,i)?i.__staleWhileFetching:i;s!==void 0&&e.call(t,s,V(this,Mt)[r],this)}}rforEach(e,t=this){for(const r of Ve(this,Vn,Ui).call(this)){const i=V(this,it)[r],s=Ve(this,xt,Ft).call(this,i)?i.__staleWhileFetching:i;s!==void 0&&e.call(t,s,V(this,Mt)[r],this)}}purgeStale(){let e=!1;for(const t of Ve(this,Vn,Ui).call(this,{allowStale:!0}))V(this,tn).call(this,t)&&(this.delete(V(this,Mt)[t]),e=!0);return e}dump(){const e=[];for(const t of Ve(this,qn,Bi).call(this,{allowStale:!0})){const r=V(this,Mt)[t],i=V(this,it)[t],s=Ve(this,xt,Ft).call(this,i)?i.__staleWhileFetching:i;if(s===void 0||r===void 0)continue;const a={value:s};if(V(this,Ln)&&V(this,_i)){a.ttl=V(this,Ln)[t];const o=lo.now()-V(this,_i)[t];a.start=Math.floor(Date.now()-o)}V(this,gi)&&(a.size=V(this,gi)[t]),e.unshift([r,a])}return e}load(e){this.clear();for(const[t,r]of e){if(r.start){const i=Date.now()-r.start;r.start=lo.now()-i}this.set(t,r.value,r)}}set(e,t,r={}){var m,_,T,I,R;if(t===void 0)return this.delete(e),this;const{ttl:i=this.ttl,start:s,noDisposeOnSet:a=this.noDisposeOnSet,sizeCalculation:o=this.sizeCalculation,status:l}=r;let{noUpdateTTL:c=this.noUpdateTTL}=r;const u=V(this,jo).call(this,e,t,r.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,nr)===0?void 0:V(this,ir).get(e);if(p===void 0)p=V(this,nr)===0?V(this,dr):V(this,kn).length!==0?V(this,kn).pop():V(this,nr)===V(this,Nn)?Ve(this,ps,tc).call(this,!1):V(this,nr),V(this,Mt)[p]=e,V(this,it)[p]=t,V(this,ir).set(e,p),V(this,xr)[V(this,dr)]=p,V(this,en)[p]=V(this,dr),Xe(this,dr,p),ml(this,nr)._++,V(this,ds).call(this,p,u,l),l&&(l.set="add"),c=!1;else{Ve(this,ba,Oo).call(this,p);const L=V(this,it)[p];if(t!==L){if(V(this,Gi)&&Ve(this,xt,Ft).call(this,L)){L.__abortController.abort(new Error("replaced"));const{__staleWhileFetching:$}=L;$!==void 0&&!a&&(V(this,Mn)&&((m=V(this,wn))==null||m.call(this,$,e,"set")),V(this,kr)&&((_=V(this,pr))==null||_.push([$,e,"set"])))}else a||(V(this,Mn)&&((T=V(this,wn))==null||T.call(this,L,e,"set")),V(this,kr)&&((I=V(this,pr))==null||I.push([L,e,"set"])));if(V(this,Ea).call(this,p),V(this,ds).call(this,p,u,l),V(this,it)[p]=t,l){l.set="replace";const $=L&&Ve(this,xt,Ft).call(this,L)?L.__staleWhileFetching:L;$!==void 0&&(l.oldValue=$)}}else l&&(l.set="update")}if(i!==0&&!V(this,Ln)&&Ve(this,Zo,Zm).call(this),V(this,Ln)&&(c||V(this,Ko).call(this,p,i,s),l&&V(this,Si).call(this,l,p)),!a&&V(this,kr)&&V(this,pr)){const L=V(this,pr);let $;for(;$=L==null?void 0:L.shift();)(R=V(this,Dn))==null||R.call(this,...$)}return this}pop(){var e;try{for(;V(this,nr);){const t=V(this,it)[V(this,Tr)];if(Ve(this,ps,tc).call(this,!0),Ve(this,xt,Ft).call(this,t)){if(t.__staleWhileFetching)return t.__staleWhileFetching}else if(t!==void 0)return t}}finally{if(V(this,kr)&&V(this,pr)){const t=V(this,pr);let r;for(;r=t==null?void 0:t.shift();)(e=V(this,Dn))==null||e.call(this,...r)}}}has(e,t={}){const{updateAgeOnHas:r=this.updateAgeOnHas,status:i}=t,s=V(this,ir).get(e);if(s!==void 0){const a=V(this,it)[s];if(Ve(this,xt,Ft).call(this,a)&&a.__staleWhileFetching===void 0)return!1;if(V(this,tn).call(this,s))i&&(i.has="stale",V(this,Si).call(this,i,s));else return r&&V(this,Oa).call(this,s),i&&(i.has="hit",V(this,Si).call(this,i,s)),!0}else i&&(i.has="miss");return!1}peek(e,t={}){const{allowStale:r=this.allowStale}=t,i=V(this,ir).get(e);if(i!==void 0&&(r||!V(this,tn).call(this,i))){const s=V(this,it)[i];return Ve(this,xt,Ft).call(this,s)?s.__staleWhileFetching:s}}async fetch(e,t={}){const{allowStale:r=this.allowStale,updateAgeOnGet:i=this.updateAgeOnGet,noDeleteOnStaleGet:s=this.noDeleteOnStaleGet,ttl:a=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:T=this.allowStaleOnFetchAbort,context:I,forceRefresh:R=!1,status:L,signal:$}=t;if(!V(this,Gi))return L&&(L.fetch="get"),this.get(e,{allowStale:r,updateAgeOnGet:i,noDeleteOnStaleGet:s,status:L});const K={allowStale:r,updateAgeOnGet:i,noDeleteOnStaleGet:s,ttl:a,noDisposeOnSet:o,size:l,sizeCalculation:c,noUpdateTTL:u,noDeleteOnFetchRejection:p,allowStaleOnFetchRejection:m,allowStaleOnFetchAbort:T,ignoreFetchAbort:_,status:L,signal:$};let f=V(this,ir).get(e);if(f===void 0){L&&(L.fetch="miss");const E=Ve(this,hs,rc).call(this,e,f,K,I);return E.__returned=E}else{const E=V(this,it)[f];if(Ve(this,xt,Ft).call(this,E)){const M=r&&E.__staleWhileFetching!==void 0;return L&&(L.fetch="inflight",M&&(L.returnedStale=!0)),M?E.__staleWhileFetching:E.__returned=E}const S=V(this,tn).call(this,f);if(!R&&!S)return L&&(L.fetch="hit"),Ve(this,ba,Oo).call(this,f),i&&V(this,Oa).call(this,f),L&&V(this,Si).call(this,L,f),E;const N=Ve(this,hs,rc).call(this,e,f,K,I),x=N.__staleWhileFetching!==void 0&&r;return L&&(L.fetch=S?"stale":"refresh",x&&S&&(L.returnedStale=!0)),x?N.__staleWhileFetching:N.__returned=N}}get(e,t={}){const{allowStale:r=this.allowStale,updateAgeOnGet:i=this.updateAgeOnGet,noDeleteOnStaleGet:s=this.noDeleteOnStaleGet,status:a}=t,o=V(this,ir).get(e);if(o!==void 0){const l=V(this,it)[o],c=Ve(this,xt,Ft).call(this,l);return a&&V(this,Si).call(this,a,o),V(this,tn).call(this,o)?(a&&(a.get="stale"),c?(a&&r&&l.__staleWhileFetching!==void 0&&(a.returnedStale=!0),r?l.__staleWhileFetching:void 0):(s||this.delete(e),a&&r&&(a.returnedStale=!0),r?l:void 0)):(a&&(a.get="hit"),c?l.__staleWhileFetching:(Ve(this,ba,Oo).call(this,o),i&&V(this,Oa).call(this,o),l))}else a&&(a.get="miss")}delete(e){var r,i,s,a;let t=!1;if(V(this,nr)!==0){const o=V(this,ir).get(e);if(o!==void 0)if(t=!0,V(this,nr)===1)this.clear();else{V(this,Ea).call(this,o);const l=V(this,it)[o];Ve(this,xt,Ft).call(this,l)?l.__abortController.abort(new Error("deleted")):(V(this,Mn)||V(this,kr))&&(V(this,Mn)&&((r=V(this,wn))==null||r.call(this,l,e,"delete")),V(this,kr)&&((i=V(this,pr))==null||i.push([l,e,"delete"]))),V(this,ir).delete(e),V(this,Mt)[o]=void 0,V(this,it)[o]=void 0,o===V(this,dr)?Xe(this,dr,V(this,en)[o]):o===V(this,Tr)?Xe(this,Tr,V(this,xr)[o]):(V(this,xr)[V(this,en)[o]]=V(this,xr)[o],V(this,en)[V(this,xr)[o]]=V(this,en)[o]),ml(this,nr)._--,V(this,kn).push(o)}}if(V(this,kr)&&((s=V(this,pr))!=null&&s.length)){const o=V(this,pr);let l;for(;l=o==null?void 0:o.shift();)(a=V(this,Dn))==null||a.call(this,...l)}return t}clear(){var e,t,r;for(const i of Ve(this,Vn,Ui).call(this,{allowStale:!0})){const s=V(this,it)[i];if(Ve(this,xt,Ft).call(this,s))s.__abortController.abort(new Error("deleted"));else{const a=V(this,Mt)[i];V(this,Mn)&&((e=V(this,wn))==null||e.call(this,s,a,"delete")),V(this,kr)&&((t=V(this,pr))==null||t.push([s,a,"delete"]))}}if(V(this,ir).clear(),V(this,it).fill(void 0),V(this,Mt).fill(void 0),V(this,Ln)&&V(this,_i)&&(V(this,Ln).fill(0),V(this,_i).fill(0)),V(this,gi)&&V(this,gi).fill(0),Xe(this,Tr,0),Xe(this,dr,0),V(this,kn).length=0,Xe(this,xn,0),Xe(this,nr,0),V(this,kr)&&V(this,pr)){const i=V(this,pr);let s;for(;s=i==null?void 0:i.shift();)(r=V(this,Dn))==null||r.call(this,...s)}}};Nn=new WeakMap,Jr=new WeakMap,wn=new WeakMap,Dn=new WeakMap,us=new WeakMap,nr=new WeakMap,xn=new WeakMap,ir=new WeakMap,Mt=new WeakMap,it=new WeakMap,xr=new WeakMap,en=new WeakMap,Tr=new WeakMap,dr=new WeakMap,kn=new WeakMap,pr=new WeakMap,gi=new WeakMap,_i=new WeakMap,Ln=new WeakMap,Mn=new WeakMap,Gi=new WeakMap,kr=new WeakMap,Zo=new WeakSet,Zm=function(){const e=new ec(V(this,Nn)),t=new ec(V(this,Nn));Xe(this,Ln,e),Xe(this,_i,t),Xe(this,Ko,(s,a,o=lo.now())=>{if(t[s]=a!==0?o:0,e[s]=a,a!==0&&this.ttlAutopurge){const l=setTimeout(()=>{V(this,tn).call(this,s)&&this.delete(V(this,Mt)[s])},a+1);l.unref&&l.unref()}}),Xe(this,Oa,s=>{t[s]=e[s]!==0?lo.now():0}),Xe(this,Si,(s,a)=>{if(e[a]){const o=e[a],l=t[a];s.ttl=o,s.start=l,s.now=r||i();const c=s.now-l;s.remainingTTL=o-c}});let r=0;const i=()=>{const s=lo.now();if(this.ttlResolution>0){r=s;const a=setTimeout(()=>r=0,this.ttlResolution);a.unref&&a.unref()}return s};this.getRemainingTTL=s=>{const a=V(this,ir).get(s);if(a===void 0)return 0;const o=e[a],l=t[a];if(o===0||l===0)return 1/0;const c=(r||i())-l;return o-c},Xe(this,tn,s=>e[s]!==0&&t[s]!==0&&(r||i())-t[s]>e[s])},Oa=new WeakMap,Si=new WeakMap,Ko=new WeakMap,tn=new WeakMap,Gc=new WeakSet,MI=function(){const e=new ec(V(this,Nn));Xe(this,xn,0),Xe(this,gi,e),Xe(this,Ea,t=>{Xe(this,xn,V(this,xn)-e[t]),e[t]=0}),Xe(this,jo,(t,r,i,s)=>{if(Ve(this,xt,Ft).call(this,r))return 0;if(!Pi(i))if(s){if(typeof s!="function")throw new TypeError("sizeCalculation must be a function");if(i=s(r,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}),Xe(this,ds,(t,r,i)=>{if(e[t]=r,V(this,Jr)){const s=V(this,Jr)-e[t];for(;V(this,xn)>s;)Ve(this,ps,tc).call(this,!0)}Xe(this,xn,V(this,xn)+e[t]),i&&(i.entrySize=r,i.totalCalculatedSize=V(this,xn))})},Ea=new WeakMap,ds=new WeakMap,jo=new WeakMap,qn=new WeakSet,Bi=function*({allowStale:e=this.allowStale}={}){if(V(this,nr))for(let t=V(this,dr);!(!Ve(this,Jo,Km).call(this,t)||((e||!V(this,tn).call(this,t))&&(yield t),t===V(this,Tr)));)t=V(this,en)[t]},Vn=new WeakSet,Ui=function*({allowStale:e=this.allowStale}={}){if(V(this,nr))for(let t=V(this,Tr);!(!Ve(this,Jo,Km).call(this,t)||((e||!V(this,tn).call(this,t))&&(yield t),t===V(this,dr)));)t=V(this,xr)[t]},Jo=new WeakSet,Km=function(e){return e!==void 0&&V(this,ir).get(V(this,Mt)[e])===e},ps=new WeakSet,tc=function(e){var s,a;const t=V(this,Tr),r=V(this,Mt)[t],i=V(this,it)[t];return V(this,Gi)&&Ve(this,xt,Ft).call(this,i)?i.__abortController.abort(new Error("evicted")):(V(this,Mn)||V(this,kr))&&(V(this,Mn)&&((s=V(this,wn))==null||s.call(this,i,r,"evict")),V(this,kr)&&((a=V(this,pr))==null||a.push([i,r,"evict"]))),V(this,Ea).call(this,t),e&&(V(this,Mt)[t]=void 0,V(this,it)[t]=void 0,V(this,kn).push(t)),V(this,nr)===1?(Xe(this,Tr,Xe(this,dr,0)),V(this,kn).length=0):Xe(this,Tr,V(this,xr)[t]),V(this,ir).delete(r),ml(this,nr)._--,t},hs=new WeakSet,rc=function(e,t,r,i){const s=t===void 0?void 0:V(this,it)[t];if(Ve(this,xt,Ft).call(this,s))return s;const a=new Bc,{signal:o}=r;o==null||o.addEventListener("abort",()=>a.abort(o.reason),{signal:a.signal});const l={signal:a.signal,options:r,context:i},c=(I,R=!1)=>{const{aborted:L}=a.signal,$=r.ignoreFetchAbort&&I!==void 0;if(r.status&&(L&&!R?(r.status.fetchAborted=!0,r.status.fetchError=a.signal.reason,$&&(r.status.fetchAbortIgnored=!0)):r.status.fetchResolved=!0),L&&!$&&!R)return p(a.signal.reason);const K=_;return V(this,it)[t]===_&&(I===void 0?K.__staleWhileFetching?V(this,it)[t]=K.__staleWhileFetching:this.delete(e):(r.status&&(r.status.fetchUpdated=!0),this.set(e,I,l.options))),I},u=I=>(r.status&&(r.status.fetchRejected=!0,r.status.fetchError=I),p(I)),p=I=>{const{aborted:R}=a.signal,L=R&&r.allowStaleOnFetchAbort,$=L||r.allowStaleOnFetchRejection,K=$||r.noDeleteOnFetchRejection,f=_;if(V(this,it)[t]===_&&(!K||f.__staleWhileFetching===void 0?this.delete(e):L||(V(this,it)[t]=f.__staleWhileFetching)),$)return r.status&&f.__staleWhileFetching!==void 0&&(r.status.returnedStale=!0),f.__staleWhileFetching;if(f.__returned===f)throw I},m=(I,R)=>{var $;const L=($=V(this,us))==null?void 0:$.call(this,e,s,l);L&&L instanceof Promise&&L.then(K=>I(K===void 0?void 0:K),R),a.signal.addEventListener("abort",()=>{(!r.ignoreFetchAbort||r.allowStaleOnFetchAbort)&&(I(void 0),r.allowStaleOnFetchAbort&&(I=K=>c(K,!0)))})};r.status&&(r.status.fetchDispatched=!0);const _=new Promise(m).then(c,u),T=Object.assign(_,{__abortController:a,__staleWhileFetching:s,__returned:void 0});return t===void 0?(this.set(e,T,{...l.options,status:void 0}),t=V(this,ir).get(e)):V(this,it)[t]=T,T},xt=new WeakSet,Ft=function(e){if(!V(this,Gi))return!1;const t=e;return!!t&&t instanceof Promise&&t.hasOwnProperty("__staleWhileFetching")&&t.__abortController instanceof Bc},el=new WeakSet,jm=function(e,t){V(this,en)[t]=e,V(this,xr)[e]=t},ba=new WeakSet,Oo=function(e){e!==V(this,dr)&&(e===V(this,Tr)?Xe(this,Tr,V(this,xr)[e]):Ve(this,el,jm).call(this,V(this,en)[e],V(this,xr)[e]),Ve(this,el,jm).call(this,V(this,dr),e),Xe(this,dr,e))};let Xm=g_;const Ro=class Ro{constructor(){b(this,"_fallbackMethod",()=>Ro.createSkipProxy());b(this,"out",()=>{})}};b(Ro,"createSkipProxy",()=>{const e=new Ro;return new Proxy(e,{get(t,r,i){return typeof t[r]>"u"?t._fallbackMethod:t[r]},set(t,r,i,s){return!1}})});let Uc=Ro;const No=class No extends i_{constructor(t,r){super(r);b(this,"_fallbackMethod",()=>No.createRestProxy(this.values.length,this.app));b(this,"out",()=>{});this.values.length=t}};b(No,"createRestProxy",(t,r)=>{const i=new No(t,r);return new Proxy(i,{get(s,a,o){return typeof s[a]>"u"?s._fallbackMethod:s[a]},set(s,a,o,l){return!1}})});let Fc=No;class oB extends i_{constructor(t,r,i){super(i);b(this,"input");b(this,"ziffers");b(this,"initCallTime",0);b(this,"startCallTime",0);b(this,"lastCallTime",0);b(this,"waitTime",0);b(this,"startBeat",0);b(this,"played",!1);b(this,"current");b(this,"retro",!1);b(this,"index",-1);b(this,"zid","");b(this,"options",{});b(this,"skipIndex",0);b(this,"endTime",0);b(this,"next",()=>(this.current=this.ziffers.next(),this.played=!0,this.current));b(this,"pulseToSecond",t=>this.app.clock.convertPulseToSecond(t));b(this,"firstRun",()=>this.notStarted());b(this,"atTheBeginning",()=>this.skipIndex===0&&this.ziffers.index<=0);b(this,"origin",()=>this.app.clock.pulses_since_origin+1);b(this,"pulse",()=>this.app.clock.time_position.pulse);b(this,"beat",()=>this.app.clock.time_position.beat);b(this,"nextBeat",()=>this.app.clock.next_beat_in_ticks);b(this,"nextBeatInTicks",()=>this.app.clock.next_beat_in_ticks);b(this,"areWeThereYet",()=>{this.app.clock.pulses_since_origin=this.nextBeatInTicks())&&this.origin()>=this.waitTime,r=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||r;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});b(this,"lead",()=>this.voiceleading());b(this,"invert",t=>(this.atTheBeginning()&&this.ziffers.invert(t),this));b(this,"out",()=>{});this.app=i,this.input=t,this.options=r,this.ziffers=new T3(t,r)}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 r=this.next(),i=this.app.clock.convertPulseToSecond(r.duration*4*this.app.clock.ppqn);if(r instanceof ti){const s=r.getExisting("freq","pitch","key","scale","octave","parsedScale");return r.sound&&(t=r.sound),r.soundIndex&&(s.n=r.soundIndex),s.dur=i,new Vm(s,this.app).sound(t||"sine")}else if(r instanceof Ra){const s=r.pitches.map(o=>o.getExisting("freq","pitch","key","scale","octave","parsedScale")),a={dur:i};return t&&(a.s=t),new Vm(a,this.app).chord(s)}else if(r instanceof $m)return Fc.createRestProxy(r.duration,this.app)}else return Uc.createSkipProxy()}midi(t=void 0){if(this.areWeThereYet()){const r=this.next(),i=r.getExisting("note","pitch","bend","key","scale","octave","parsedScale");if(r instanceof ti){r.soundIndex&&(i.channel=r.soundIndex);const s=new zm(i,this.app);return t?s.note(t):s}else{if(r instanceof $m)return Fc.createRestProxy(r.duration,this.app);if(r instanceof Ra){const s=r.midiChord();return new zm(i,this.app).chord(s)}}}else return Uc.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 r=this.app.api.patternCache.get(t.name);return r&&(this.waitTime=r.nextEndTime()),this}this.waitTime=this.origin()+Math.ceil(t*4*this.app.clock.ppqn)}return this}sync(t){if(this.atTheBeginning()&&this.notStarted()){const r=this.app.clock.pulses_since_origin,i=typeof t=="function"?t.name:t;if(r>0){const s=this.app.api.patternCache.get(i);if(s){const a=s.ziffers.duration,o=s.startCallTime,l=a*4*this.app.clock.ppqn;this.waitTime=o+l}}}return this}}const lB=n=>n[0]==="{"&&n[n.length-1]==="}",co=(n,e)=>{if(lB(n)){const t=JSON.parse(n);return JSON.stringify({...t,...e})}else return JSON.stringify({...e,text:n})},cB=n=>{String.prototype.speak=function(){const e=JSON.parse(this.valueOf());new PI({...e,text:e.text}).speak().then(()=>{}).catch(t=>{console.log("Error speaking:",t)})},String.prototype.rate=function(e){return co(this.valueOf(),{rate:e})},String.prototype.pitch=function(e){return co(this.valueOf(),{pitch:e})},String.prototype.lang=function(e){return co(this.valueOf(),{lang:e})},String.prototype.volume=function(e){return co(this.valueOf(),{volume:e})},String.prototype.voice=function(e){return co(this.valueOf(),{voice:e})},String.prototype.z=function(e={}){return n.z(this.valueOf(),e)},String.prototype.z0=function(e={}){return n.z0(this.valueOf(),e)},String.prototype.z1=function(e={}){return n.z1(this.valueOf(),e)},String.prototype.z2=function(e={}){return n.z2(this.valueOf(),e)},String.prototype.z3=function(e={}){return n.z3(this.valueOf(),e)},String.prototype.z4=function(e={}){return n.z4(this.valueOf(),e)},String.prototype.z5=function(e={}){return n.z5(this.valueOf(),e)},String.prototype.z6=function(e={}){return n.z6(this.valueOf(),e)},String.prototype.z7=function(e={}){return n.z7(this.valueOf(),e)},String.prototype.z8=function(e={}){return n.z8(this.valueOf(),e)},String.prototype.z9=function(e={}){return n.z9(this.valueOf(),e)},String.prototype.z10=function(e={}){return n.z10(this.valueOf(),e)},String.prototype.z11=function(e={}){return n.z11(this.valueOf(),e)},String.prototype.z12=function(e={}){return n.z12(this.valueOf(),e)},String.prototype.z13=function(e={}){return n.z13(this.valueOf(),e)},String.prototype.z14=function(e={}){return n.z14(this.valueOf(),e)},String.prototype.z15=function(e={}){return n.z15(this.valueOf(),e)},String.prototype.z16=function(e={}){return n.z16(this.valueOf(),e)},String.prototype.note=function(){try{return parseInt(this.valueOf())}catch{return oi(this.valueOf())}}};let rd;class PI{constructor(e){b(this,"speak",()=>new Promise((e,t)=>{if(this.options.text){const r=window.speechSynthesis;r.speaking&&r.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=r.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=s=>{t(s)},r.speaking?(r.cancel(),rd&&clearTimeout(rd),rd=setTimeout(()=>{r.speak(i)},200)):r.speak(i)}else t("No text provided")}));this.options=e}}async function vE(){return Promise.all([Y3(),pa("github:tidalcycles/Dirt-Samples/master").then(()=>eB()),aB(),pa("github:Bubobubobubobubo/Dough-Samples/main"),pa("github:Bubobubobubobubo/Dough-Amiga/main"),pa("github:Bubobubobubobubo/Dough-Amen/main"),pa("github:Bubobubobubobubo/Dough-Waveforms/main")])}class uB{constructor(e){b(this,"variables",{});b(this,"codeExamples",{});b(this,"counters",{});b(this,"_drunk",new A3(-100,100,!1));b(this,"randomGen",Math.random);b(this,"currentSeed");b(this,"localSeeds",new Map);b(this,"patternCache",new Xm({max:1e3,ttl:1e3*60*5}));b(this,"errorTimeoutID",0);b(this,"printTimeoutID",0);b(this,"MidiConnection");b(this,"load");b(this,"_loadUniverseFromInterface",e=>{this.app.loadUniverse(e),this.app.openBuffersModal()});b(this,"_deleteUniverseFromInterface",e=>{delete this.app.universes[e],this.app.settings.saveApplicationToLocalStorage(this.app.universes,this.app.settings),this.app.updateKnownUniversesView()});b(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.play()});b(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.pause()});b(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.play(),this.app.exampleIsPlaying=!0,xP(this.app,e)});b(this,"_all_samples",()=>a_.get());b(this,"_reportError",e=>{console.log(e),clearTimeout(this.errorTimeoutID),clearTimeout(this.printTimeoutID),this.app.error_line.innerHTML=e,this.app.error_line.style.color="color-red-800",this.app.error_line.classList.remove("hidden"),this.errorTimeoutID=setTimeout(()=>this.app.error_line.classList.add("hidden"),2e3)});b(this,"_logMessage",e=>{console.log(e),clearTimeout(this.printTimeoutID),clearTimeout(this.errorTimeoutID),this.app.error_line.innerHTML=e,this.app.error_line.style.color="white",this.app.error_line.classList.remove("hidden"),this.printTimeoutID=setTimeout(()=>this.app.error_line.classList.add("hidden"),4e3)});b(this,"time",()=>this.app.audioContext.currentTime);b(this,"play",()=>{this.app.setButtonHighlighting("play",!0),this.MidiConnection.sendStartMessage(),this.app.clock.start()});b(this,"pause",()=>{this.app.setButtonHighlighting("pause",!0),this.MidiConnection.sendStopMessage(),this.app.clock.pause()});b(this,"stop",()=>{this.app.setButtonHighlighting("stop",!0),this.MidiConnection.sendStopMessage(),this.app.clock.stop()});b(this,"silence",this.stop);b(this,"hush",this.stop);b(this,"warp",e=>{this.app.clock.tick=e,this.app.clock.time_position=this.app.clock.convertTicksToTimeposition(e)});b(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)});b(this,"onmousemove",e=>{this.app._mouseX=e.pageX,this.app._mouseY=e.pageY});b(this,"mouseX",()=>this.app._mouseX);b(this,"mouseY",()=>this.app._mouseY);b(this,"noteX",()=>Math.floor(this.app._mouseX/document.body.clientWidth*127));b(this,"noteY",()=>Math.floor(this.app._mouseY/document.body.clientHeight*127));b(this,"script",(...e)=>{e.forEach(t=>{ls(this.app,this.app.universes[this.app.selected_universe].locals[t])})});b(this,"s",this.script);b(this,"delete_script",e=>{this.app.universes[this.app.selected_universe].locals[e]={candidate:"",committed:"",evaluations:0}});b(this,"cs",this.delete_script);b(this,"copy_script",(e,t)=>{this.app.universes[this.app.selected_universe].locals[t]={...this.app.universes[this.app.selected_universe].locals[e]}});b(this,"cps",this.copy_script);b(this,"copy_universe",(e,t)=>{this.app.universes[t]={...this.app.universes[e]}});b(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()});b(this,"big_bang",()=>{confirm("Are you sure you want to delete all universes?")&&(this.app.universes={...Ao},this.app.settings.saveApplicationToLocalStorage(this.app.universes,this.app.settings)),this.app.selected_universe="Default",this.app.updateKnownUniversesView()});b(this,"midi_outputs",()=>{this._logMessage(this.MidiConnection.listMidiOutputs())});b(this,"midi_output",e=>{e?this.MidiConnection.switchMidiOutput(e):console.log(this.MidiConnection.getCurrentMidiPort())});b(this,"midi",(e=60,t,r)=>(t!==void 0&&(typeof e=="number"&&(e={note:e}),e.velocity=t),r!==void 0&&(typeof e=="number"&&(e={note:e}),e.channel=r),new zm(e,this.app)));b(this,"sysex",e=>{this.MidiConnection.sendSysExMessage(e)});b(this,"pitch_bend",(e,t)=>{this.MidiConnection.sendPitchBend(e,t)});b(this,"program_change",(e,t)=>{this.MidiConnection.sendProgramChange(e,t)});b(this,"midi_clock",()=>{this.MidiConnection.sendMidiClock()});b(this,"control_change",({control:e=20,value:t=0,channel:r=0})=>{this.MidiConnection.sendMidiControlChange(e,t,r)});b(this,"midi_panic",()=>{this.MidiConnection.panic()});b(this,"active_note_events",e=>{let t;if(e?t=this.MidiConnection.activeNotesFromChannel(e):t=this.MidiConnection.activeNotes,t.length>0)return t});b(this,"active_notes",e=>{const t=this.active_note_events(e);if(t&&t.length>0)return t.map(r=>r.note)});b(this,"kill_active_notes",()=>{this.MidiConnection.activeNotes=[]});b(this,"sticky_notes",e=>{let t;if(e?t=this.MidiConnection.stickyNotesFromChannel(e):t=this.MidiConnection.stickyNotes,t.length>0)return t.map(r=>r.note)});b(this,"kill_sticky_notes",()=>{this.MidiConnection.stickyNotes=[]});b(this,"buffer",e=>e?this.MidiConnection.findNoteFromBufferInChannel(e)!==void 0:this.MidiConnection.noteInputBuffer.length>0);b(this,"buffer_event",e=>e?this.MidiConnection.findNoteFromBufferInChannel(e):this.MidiConnection.noteInputBuffer.shift());b(this,"buffer_note",e=>{const t=this.buffer_event(e);return t?t.note:void 0});b(this,"last_note_event",e=>e?this.MidiConnection.lastNoteInChannel[e]:this.MidiConnection.lastNote);b(this,"last_note",e=>{const t=this.last_note_event(e);return t?t.note:60});b(this,"last_cc",(e,t)=>t?this.MidiConnection.lastCCInChannel[t]?this.MidiConnection.lastCCInChannel[t][e]:64:this.MidiConnection.lastCC[e]||64);b(this,"has_cc",e=>e?this.MidiConnection.findCCFromBufferInChannel(e)!==void 0:this.MidiConnection.ccInputBuffer.length>0);b(this,"buffer_cc",e=>e?this.MidiConnection.findCCFromBufferInChannel(e):this.MidiConnection.ccInputBuffer.shift());b(this,"generateCacheKey",(...e)=>e.map(t=>JSON.stringify(t)).join(","));b(this,"z",(e,t={},r="")=>{const i="z"+r.toString(),s=r===""?this.generateCacheKey(e,t):i;let a;return this.app.api.patternCache.has(s)&&(a=this.app.api.patternCache.get(s),a.input!==e&&(a=void 0)),a||(a=new oB(e,t,this.app),this.app.api.patternCache.set(s,a)),typeof r=="number"&&(a.zid=i),a.updateLastCallTime(),r!==""&&a.sync("z0"),a});b(this,"z0",(e,t={})=>this.z(e,t,0));b(this,"z1",(e,t={})=>this.z(e,t,1));b(this,"z2",(e,t={})=>this.z(e,t,2));b(this,"z3",(e,t={})=>this.z(e,t,3));b(this,"z4",(e,t={})=>this.z(e,t,4));b(this,"z5",(e,t={})=>this.z(e,t,5));b(this,"z6",(e,t={})=>this.z(e,t,6));b(this,"z7",(e,t={})=>this.z(e,t,7));b(this,"z8",(e,t={})=>this.z(e,t,8));b(this,"z9",(e,t={})=>this.z(e,t,9));b(this,"z10",(e,t={})=>this.z(e,t,10));b(this,"z11",(e,t={})=>this.z(e,t,11));b(this,"z12",(e,t={})=>this.z(e,t,12));b(this,"z13",(e,t={})=>this.z(e,t,13));b(this,"z14",(e,t={})=>this.z(e,t,14));b(this,"z15",(e,t={})=>this.z(e,t,15));b(this,"z16",(e,t={})=>this.z(e,t,16));b(this,"counter",(e,t,r)=>(e in this.counters?(this.counters[e].limit!==t&&(this.counters[e].value=0,this.counters[e].limit=t),this.counters[e].step!==r&&(this.counters[e].step=r??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:r??1,limit:t},this.counters[e].value));b(this,"$",this.counter);b(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);b(this,"drunk",e=>e!==void 0?(this._drunk.position=e,this._drunk.getPosition()):(this._drunk.step(),this._drunk.getPosition()));b(this,"drunk_max",e=>{this._drunk.max=e});b(this,"drunk_min",e=>{this._drunk.min=e});b(this,"drunk_wrap",e=>{this._drunk.toggleWrap(e)});b(this,"variable",(e,t)=>typeof e=="string"&&t===void 0?this.variables[e]:(this.variables[e]=t,this.variables[e]));b(this,"v",this.variable);b(this,"delete_variable",e=>{delete this.variables[e]});b(this,"dv",this.delete_variable);b(this,"clear_variables",()=>{this.variables={}});b(this,"cv",this.clear_variables);b(this,"randI",(e,t)=>Math.floor(this.randomGen()*(t-e+1))+e);b(this,"rand",(e,t)=>this.randomGen()*(t-e)+e);b(this,"irand",this.randI);b(this,"rI",this.randI);b(this,"r",this.rand);b(this,"ir",this.randI);b(this,"seed",e=>{typeof e=="number"&&(e=e.toString()),this.currentSeed!==e&&(this.currentSeed=e,this.randomGen=Ym(e))});b(this,"localSeededRandom",e=>{if(typeof e=="number"&&(e=e.toString()),this.localSeeds.has(e))return this.localSeeds.get(e);const t=Ym(e);return this.localSeeds.set(e,t),t});b(this,"clearLocalSeed",(e=void 0)=>{e&&this.localSeeds.delete(e.toString()),this.localSeeds.clear()});b(this,"quantize",(e,t)=>{if(t.length===0)return e;let r=t[0];return t.forEach(i=>{Math.abs(i-e)Math.min(Math.max(e,t),r));b(this,"cmp",this.clamp);b(this,"nudge",e=>(e&&(this.app.clock.nudge=e),this.app.clock.nudge));b(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));b(this,"tempo",this.bpm);b(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));b(this,"ppqn",e=>e===void 0?this.app.clock.ppqn:(e<1&&console.log(`Setting ppqn to ${e}`),this.app.clock.ppqn=e,e));b(this,"time_signature",(e,t)=>{this.app.clock.time_signature=[e,t]});b(this,"prob",e=>this.randomGen()*100this.randomGen()>.5);b(this,"odds",(e,t=1)=>this.randomGen()!1);b(this,"almostNever",(e=1)=>this.randomGen()<.025*this.ppqn()/(this.ppqn()*e));b(this,"rarely",(e=1)=>this.randomGen()<.1*this.ppqn()/(this.ppqn()*e));b(this,"scarcely",(e=1)=>this.randomGen()<.25*this.ppqn()/(this.ppqn()*e));b(this,"sometimes",(e=1)=>this.randomGen()<.5*this.ppqn()/(this.ppqn()*e));b(this,"often",(e=1)=>this.randomGen()<.75*this.ppqn()/(this.ppqn()*e));b(this,"frequently",(e=1)=>this.randomGen()<.9*this.ppqn()/(this.ppqn()*e));b(this,"almostAlways",(e=1)=>this.randomGen()<.985*this.ppqn()/(this.ppqn()*e));b(this,"always",(e=1)=>!0);b(this,"dice",e=>Math.floor(this.randomGen()*e)+1);b(this,"cbar",()=>this.app.clock.time_position.bar+1);b(this,"ctick",()=>this.app.clock.tick+1);b(this,"cpulse",()=>this.app.clock.time_position.pulse+1);b(this,"cbeat",()=>this.app.clock.time_position.beat+1);b(this,"ebeat",()=>this.app.clock.beats_since_origin+1);b(this,"epulse",()=>this.app.clock.pulses_since_origin+1);b(this,"nominator",()=>this.app.clock.time_signature[0]);b(this,"meter",()=>this.app.clock.time_signature[1]);b(this,"denominator",this.meter);b(this,"beat",(...e)=>e.map(r=>this.app.clock.pulses_since_origin%Math.floor(r*this.ppqn())===0).some(r=>r===!0));b(this,"b",this.beat);b(this,"pulse",(...e)=>e.map(r=>this.app.clock.pulses_since_origin%r===0).some(r=>r===!0));b(this,"flip",(e,t=50)=>{let r=e*2;const i=this.app.clock.pulses_since_origin,s=Math.floor(r*this.ppqn()),a=Math.floor(t/100*s);return i%s{let t=e*2;const r=this.app.clock.time_position.bar;return Math.floor(r/t)%2===0});b(this,"onbar",(e,t=this.app.clock.time_signature[0])=>{let r=this.app.clock.time_position.bar%t+1;return typeof e=="number"?e===r:e.some(i=>i==r)});b(this,"onbeat",(...e)=>{let t=[];return e.forEach(r=>{let i=r%this.nominator()||this.nominator(),s=Math.floor(i);s=s==0?this.nominator():s;let a=Math.floor((i-s)*this.ppqn()+1);a<=0&&(a=a+this.ppqn()*this.nominator()),t.push(s===this.cbeat()&&this.cpulse()===a)}),t.some(r=>r==!0)});b(this,"oncount",(e,t)=>{typeof e=="number"&&(e=[e]);const r=this.app.clock.pulses_since_origin;let i=[];return e.forEach(s=>{s=s<1?0:s-1;const a=Math.ceil(s*this.ppqn()),o=r%(this.ppqn()*t);return i.push(o===a)}),i.some(s=>s==!0)});b(this,"oneuclid",(e,t,r=0)=>{const s=this._euclidean_cycle(e,t,r).reduce((a,o,l)=>(o&&a.push(l+1),a),[]);return this.oncount(s,t)});b(this,"delay",(e,t)=>{setTimeout(t,e)});b(this,"delayr",(e,t,r)=>{[...Array(t).keys()].map(s=>e*s).forEach((s,a)=>{setTimeout(r,s)})});b(this,"euclid",(e,t,r,i=0)=>this._euclidean_cycle(t,r,i)[e%r]);b(this,"ec",this.euclid);b(this,"rhythm",(e,t,r,i=0)=>this.beat(e)&&this._euclidean_cycle(t,r,i).beat(e));b(this,"bin",(e,t)=>{let i=t.toString(2).split("").map(s=>s==="1");return i[e%i.length]});b(this,"binrhythm",(e,t)=>{let i=t.toString(2).split("").map(s=>s==="1");return this.beat(e)&&i.beat(e)});b(this,"line",(e,t,r=1)=>{const i=[];if(t>e&&r>0||tMath.sin(this.app.clock.ctx.currentTime*Math.PI*2*e)+t);b(this,"usine",(e=1,t=0)=>(this.sine(e,t)+1)/2);b(this,"saw",(e=1,t=0)=>this.app.clock.ctx.currentTime*e%1*2-1+t);b(this,"usaw",(e=1,t=0)=>(this.saw(e,t)+1)/2);b(this,"triangle",(e=1,t=0)=>Math.abs(this.saw(e,t))*2-1);b(this,"utriangle",(e=1,t=0)=>(this.triangle(e,t)+1)/2);b(this,"square",(e=1,t=0,r=.5)=>{const i=1/e;return(Date.now()/1e3+t)%i/i(this.square(e,t,r)+1)/2);b(this,"noise",()=>this.randomGen()*2-1);b(this,"min",(...e)=>Math.min(...e));b(this,"max",(...e)=>Math.max(...e));b(this,"mean",(...e)=>e.reduce((r,i)=>r+i,0)/e.length);b(this,"limit",(e,t,r)=>Math.min(Math.max(e,t),r));b(this,"abs",Math.abs);b(this,"speak",(e,t="en-US",r=0,i=1,s=1)=>{new PI({text:e,lang:t,voice:r,rate:i,pitch:s}).speak().then(()=>{}).catch(o=>{console.log(o)})});b(this,"stop_hydra",()=>{this.app.hydra.hush()});b(this,"sound",e=>new Vm(e,this.app));b(this,"snd",this.sound);b(this,"samples",pa);b(this,"log",e=>{console.log(e),this._logMessage(e)});b(this,"scale",n_);b(this,"rate",e=>{});b(this,"divseq",(...e)=>{const t=e[0],r=e.slice(1),i=this.app.clock.pulses_since_origin,s=Math.floor(i/Math.floor(t*this.ppqn()));return r[s%r.length]});b(this,"seqbeat",(...e)=>e[this.app.clock.time_position.beat%e.length]);b(this,"seqbar",(...e)=>e[(this.app.clock.time_position.bar+1)%e.length]);this.app=e,this.MidiConnection=new y3(this,e.settings)}transmission(){return this.MidiConnection.activeNotes.length>0}_euclidean_cycle(e,t,r=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 s=Array.from({length:t},(o,l)=>(e*(l-1)%t+t)%t);let a=s.map((o,l)=>i(s,l));return r!=0&&(a=a.slice(r).concat(a.slice(0,r))),a}}const dB=n=>{Array.prototype.in=function(e){return this.includes(e)},Array.prototype.square=function(){return this.map(e=>e*e)},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(n.randomGen()*this.length)]},Array.prototype.gen=function(e,t,r){return r<1?[]:Array.from({length:r},()=>Math.floor(n.randomGen()*(t-e+1))+e)},Array.prototype.bar=function(){return this[n.app.clock.time_position.bar%this.length]},Array.prototype.pulse=function(){return this[n.app.clock.time_position.pulse%this.length]},Array.prototype.beat=function(e=1){const t=e,r=n.app.clock.pulses_since_origin,i=Math.floor(r/Math.floor(t*n.ppqn()));return this[i%this.length]},Array.prototype.b=Array.prototype.beat,Array.prototype.shuffle=function(){let e=this.length,t;for(;e!==0;)t=Math.floor(n.randomGen()*e),e--,[this[e],this[t]]=[this[t],this[e]];return this},Array.prototype.rotate=function(e){const t=this.length;if(e<0)e=t+e%t;else if(e>0)e=e%t;else return this;const r=this.splice(-e,e);return this.unshift(...r),this},Array.prototype.unique=function(){const e=new Set;let t=0;for(let r=0;r100)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.repeatAll=function(e=1){if(e<1)throw new Error("Amount should be at least 1");let t=[];for(let r=0;r(i%s+s)%s,r=yI(cl(n));return this.map(i=>{const s=Math.floor(i/r.length)*12;return r[t(i,r.length)]+e+s})};Array.prototype.scaleArp=function(n="major",e=0){const t=yI(cl(n));let r=[];e=e>t.length?t.length:e,e=e==0?t.length:e;for(let i=0;i>1|(Bt&21845)<<1;Li=(Li&52428)>>2|(Li&13107)<<2,Li=(Li&61680)>>4|(Li&3855)<<4,tg[Bt]=((Li&65280)>>8|(Li&255)<<8)>>1}var ri=function(n,e,t){for(var r=n.length,i=0,s=new ln(e);i>l]=c}else for(o=new ln(r),i=0;i>15-n[i]);return o},Ki=new Sr(288);for(var Bt=0;Bt<144;++Bt)Ki[Bt]=8;for(var Bt=144;Bt<256;++Bt)Ki[Bt]=9;for(var Bt=256;Bt<280;++Bt)Ki[Bt]=7;for(var Bt=280;Bt<288;++Bt)Ki[Bt]=8;var Ho=new Sr(32);for(var Bt=0;Bt<32;++Bt)Ho[Bt]=5;var hB=ri(Ki,9,0),fB=ri(Ki,9,1),mB=ri(Ho,5,0),gB=ri(Ho,5,1),nd=function(n){for(var e=n[0],t=1;te&&(e=n[t]);return e},Rn=function(n,e,t){var r=e/8|0;return(n[r]|n[r+1]<<8)>>(e&7)&t},id=function(n,e){var t=e/8|0;return(n[t]|n[t+1]<<8|n[t+2]<<16)>>(e&7)},c_=function(n){return(n+7)/8|0},u_=function(n,e,t){(e==null||e<0)&&(e=0),(t==null||t>n.length)&&(t=n.length);var r=new Sr(t-e);return r.set(n.subarray(e,t)),r},_B=["unexpected EOF","invalid block type","invalid length/literal","invalid distance","stream finished","no stream handler",,"no callback","invalid UTF-8 data","extra field too long","date not in range 1980-2099","filename too long","stream finishing","invalid zip data"],$r=function(n,e,t){var r=new Error(e||_B[n]);if(r.code=n,Error.captureStackTrace&&Error.captureStackTrace(r,$r),!t)throw r;return r},d_=function(n,e,t,r){var i=n.length,s=r?r.length:0;if(!i||e.f&&!e.l)return t||new Sr(0);var a=!t||e.i!=2,o=e.i;t||(t=new Sr(i*3));var l=function(Le){var tt=t.length;if(Le>tt){var nt=new Sr(Math.max(tt*2,Le));nt.set(t),t=nt}},c=e.f||0,u=e.p||0,p=e.b||0,m=e.l,_=e.d,T=e.m,I=e.n,R=i*8;do{if(!m){c=Rn(n,u,1);var L=Rn(n,u+1,3);if(u+=3,L)if(L==1)m=fB,_=gB,T=9,I=5;else if(L==2){var E=Rn(n,u,31)+257,S=Rn(n,u+10,15)+4,N=E+Rn(n,u+5,31)+1;u+=14;for(var k=new Sr(N),x=new Sr(19),M=0;M>4;if($<16)k[M++]=$;else{var ee=0,B=0;for($==16?(B=3+Rn(n,u,3),u+=2,ee=k[M-1]):$==17?(B=3+Rn(n,u,7),u+=3):$==18&&(B=11+Rn(n,u,127),u+=7);B--;)k[M++]=ee}}var Q=k.subarray(0,E),j=k.subarray(E);T=nd(Q),I=nd(j),m=ri(Q,T,1),_=ri(j,I,1)}else $r(1);else{var $=c_(u)+4,K=n[$-4]|n[$-3]<<8,f=$+K;if(f>i){o&&$r(0);break}a&&l(p+K),t.set(n.subarray($,f),p),e.b=p+=K,e.p=u=f*8,e.f=c;continue}if(u>R){o&&$r(0);break}}a&&l(p+131072);for(var Z=(1<>4;if(u+=ee&15,u>R){o&&$r(0);break}if(ee||$r(2),Ee<256)t[p++]=Ee;else if(Ee==256){le=u,m=null;break}else{var De=Ee-254;if(Ee>264){var M=Ee-257,xe=iu[M];De=Rn(n,u,(1<>4;be||$r(3),u+=be&15;var j=pB[Re];if(Re>3){var xe=au[Re];j+=id(n,u)&(1<R){o&&$r(0);break}a&&l(p+131072);var ce=p+De;if(p>8},uo=function(n,e,t){t<<=e&7;var r=e/8|0;n[r]|=t,n[r+1]|=t>>8,n[r+2]|=t>>16},ad=function(n,e){for(var t=[],r=0;rm&&(m=s[r].s);var _=new ln(m+1),T=rg(t[u-1],_,0);if(T>e){var r=0,I=0,R=T-e,L=1<e)I+=L-(1<>=R;I>0;){var K=s[r].s;_[K]=0&&I;--r){var f=s[r].s;_[f]==e&&(--_[f],++I)}T=e}return{t:new Sr(_),l:T}},rg=function(n,e,t){return n.s==-1?Math.max(rg(n.l,e,t+1),rg(n.r,e,t+1)):e[n.s]=t},CE=function(n){for(var e=n.length;e&&!n[--e];);for(var t=new ln(++e),r=0,i=n[0],s=1,a=function(l){t[r++]=l},o=1;o<=e;++o)if(n[o]==i&&o!=e)++s;else{if(!i&&s>2){for(;s>138;s-=138)a(32754);s>2&&(a(s>10?s-11<<5|28690:s-3<<5|12305),s=0)}else if(s>3){for(a(i),--s;s>6;s-=6)a(8304);s>2&&(a(s-3<<5|8208),s=0)}for(;s--;)a(i);s=1,i=n[o]}return{c:t.subarray(0,r),n:e}},po=function(n,e){for(var t=0,r=0;r>8,n[i+2]=n[i]^255,n[i+3]=n[i+1]^255;for(var s=0;s4&&!M[Jm[te-1]];--te);var ne=c+5<<3,re=po(i,Ki)+po(s,Ho)+a,ee=po(i,m)+po(s,I)+a+14+3*te+po(N,M)+2*N[16]+3*N[17]+7*N[18];if(l>=0&&ne<=re&&ne<=ee)return $I(e,u,n.subarray(l,l+c));var B,Q,j,Z;if(fi(e,u,1+(ee15&&(fi(e,u,De[k]>>5&127),u+=De[k]>>12)}}else B=hB,Q=Ki,j=mB,Z=Ho;for(var k=0;k255){var xe=be>>18&31;uo(e,u,B[xe+257]),u+=Q[xe+257],xe>7&&(fi(e,u,be>>23&31),u+=iu[xe]);var Re=be&31;uo(e,u,j[Re]),u+=Z[Re],Re>3&&(uo(e,u,be>>5&8191),u+=au[Re])}else uo(e,u,B[be]),u+=Q[be]}return uo(e,u,B[256]),u+Q[256]},SB=new l_([65540,131080,131088,131104,262176,1048704,1048832,2114560,2117632]),GI=new Sr(0),OB=function(n,e,t,r,i,s){var a=s.z||n.length,o=new Sr(r+a+5*(1+Math.ceil(a/7e3))+i),l=o.subarray(r,o.length-i),c=s.l,u=(s.r||0)&7;if(e){u&&(l[0]=s.r>>3);for(var p=SB[e-1],m=p>>13,_=p&8191,T=(1<7e3||M>24576)&&(B>423||!c)){u=yE(n,l,0,f,E,S,k,M,te,x-te,u),M=N=k=0,te=x;for(var Q=0;Q<286;++Q)E[Q]=0;for(var Q=0;Q<30;++Q)S[Q]=0}var j=2,Z=0,ue=_,le=re-ee&32767;if(B>2&&ne==K(x-le))for(var Ee=Math.min(m,B)-1,De=Math.min(32767,x),xe=Math.min(258,B);le<=De&&--ue&&re!=ee;){if(n[x+j]==n[x+j-le]){for(var be=0;bej){if(j=be,Z=le,be>Ee)break;for(var Re=Math.min(le,be-2),ce=0,Q=0;Qce&&(ce=Le,ee=ke)}}}re=ee,ee=I[re],le+=re-ee&32767}if(Z){f[M++]=268435456|eg[j]<<18|TE[Z];var tt=eg[j]&31,nt=TE[Z]&31;k+=iu[tt]+au[nt],++E[257+tt],++S[nt],G=x+j,++N}else f[M++]=n[x],++E[n[x]]}}for(x=Math.max(x,G);x=a&&(l[u/8|0]=c,ze=a),u=$I(l,u+1,n.subarray(x,ze))}s.i=a}return u_(o,0,r+c_(u)+i)},EB=function(){for(var n=new Int32Array(256),e=0;e<256;++e){for(var t=e,r=9;--r;)t=(t&1&&-306674912)^t>>>1;n[e]=t}return n}(),bB=function(){var n=-1;return{p:function(e){for(var t=n,r=0;r>>8;n=t},d:function(){return~n}}},vB=function(n,e,t,r,i){if(!i&&(i={l:1},e.dictionary)){var s=e.dictionary.subarray(-32768),a=new Sr(s.length+n.length);a.set(s),a.set(n,s.length),n=a,i.w=s.length}return OB(n,e.level==null?6:e.level,e.mem==null?Math.ceil(Math.max(8,Math.min(13,Math.log(n.length)))*1.5):12+e.mem,t,r,i)},ng=function(n,e,t){for(;t;++e)n[e]=t,t>>>=8},TB=function(n,e){var t=e.filename;if(n[0]=31,n[1]=139,n[2]=8,n[8]=e.level<2?4:e.level==9?2:0,n[9]=3,e.mtime!=0&&ng(n,4,Math.floor(new Date(e.mtime||Date.now())/1e3)),t){n[3]=8;for(var r=0;r<=t.length;++r)n[r+10]=t.charCodeAt(r)}},CB=function(n){(n[0]!=31||n[1]!=139||n[2]!=8)&&$r(6,"invalid gzip data");var e=n[3],t=10;e&4&&(t+=(n[10]|n[11]<<8)+2);for(var r=(e>>3&1)+(e>>4&1);r>0;r-=!n[t++]);return t+(e&2)},yB=function(n){var e=n.length;return(n[e-4]|n[e-3]<<8|n[e-2]<<16|n[e-1]<<24)>>>0},AB=function(n){return 10+(n.filename?n.filename.length+1:0)},IB=function(n,e){return((n[0]&15)!=8||n[0]>>4>7||(n[0]<<8|n[1])%31)&&$r(6,"invalid zlib data"),(n[1]>>5&1)==+!e&&$r(6,"invalid zlib data: "+(n[1]&32?"need":"unexpected")+" dictionary"),(n[1]>>3&4)+2};function RB(n,e){return d_(n,{i:2},e&&e.out,e&&e.dictionary)}function NB(n,e){e||(e={});var t=bB(),r=n.length;t.p(n);var i=vB(n,e,AB(e),8),s=i.length;return TB(i,e),ng(i,s-8,t.d()),ng(i,s-4,r),i}function wB(n,e){var t=CB(n);return t+8>n.length&&$r(6,"invalid gzip data"),d_(n.subarray(t,-8),{i:2},e&&e.out||new Sr(yB(n)),e&&e.dictionary)}function DB(n,e){return d_(n.subarray(IB(n,e&&e.dictionary),-4),{i:2},e&&e.out,e&&e.dictionary)}function xB(n,e){return n[0]==31&&n[1]==139&&n[2]==8?wB(n,e):(n[0]&15)!=8||n[0]>>4>7||(n[0]<<8|n[1])%31?RB(n,e):DB(n,e)}var ig=typeof TextDecoder<"u"&&new TextDecoder,kB=0;try{ig.decode(GI,{stream:!0}),kB=1}catch{}var LB=function(n){for(var e="",t=0;;){var r=n[t++],i=(r>127)+(r>223)+(r>239);if(t+i>n.length)return{s:e,r:u_(n,t-1)};i?i==3?(r=((r&15)<<18|(n[t++]&63)<<12|(n[t++]&63)<<6|n[t++]&63)-65536,e+=String.fromCharCode(55296|r>>10,56320|r&1023)):i&1?e+=String.fromCharCode((r&31)<<6|n[t++]&63):e+=String.fromCharCode((r&15)<<12|(n[t++]&63)<<6|n[t++]&63):e+=String.fromCharCode(r)}};function MB(n,e){if(e){for(var t="",r=0;r (GFM Style)",type:"boolean"},requireSpaceBeforeHeadingText:{defaultValue:!1,describe:"Makes adding a space between `#` and the header text mandatory (GFM Style)",type:"boolean"},ghMentions:{defaultValue:!1,describe:"Enables github @mentions",type:"boolean"},ghMentionsLink:{defaultValue:"https://github.com/{u}",describe:"Changes the link generated by @mentions. Only applies if ghMentions option is enabled.",type:"string"},encodeEmails:{defaultValue:!0,describe:"Encode e-mail addresses through the use of Character Entities, transforming ASCII e-mail addresses into its equivalent decimal entities",type:"boolean"},openLinksInNewWindow:{defaultValue:!1,describe:"Open all links in new windows",type:"boolean"},backslashEscapesHTMLTags:{defaultValue:!1,describe:"Support for HTML Tag escaping. ex:
foo
",type:"boolean"},emoji:{defaultValue:!1,describe:"Enable emoji support. Ex: `this is a :smile: emoji`",type:"boolean"},underline:{defaultValue:!1,describe:"Enable support for underline. Syntax is double or triple underscores: `__underline word__`. With this option enabled, underscores no longer parses into `` and ``",type:"boolean"},ellipsis:{defaultValue:!0,describe:"Replaces three dots with the ellipsis unicode character",type:"boolean"},completeHTMLDocument:{defaultValue:!1,describe:"Outputs a complete html document, including ``, `` and `` tags",type:"boolean"},metadata:{defaultValue:!1,describe:"Enable support for document metadata (defined at the top of the document between `«««` and `»»»` or between `---` and `---`).",type:"boolean"},splitAdjacentBlockquotes:{defaultValue:!1,describe:"Split adjacent blockquote blocks",type:"boolean"}};if(f===!1)return JSON.parse(JSON.stringify(E));var S={};for(var N in E)E.hasOwnProperty(N)&&(S[N]=E[N].defaultValue);return S}function t(){var f=e(!0),E={};for(var S in f)f.hasOwnProperty(S)&&(E[S]=!0);return E}var r={},i={},s={},a=e(!0),o="vanilla",l={github:{omitExtraWLInCodeBlocks:!0,simplifiedAutoLink:!0,excludeTrailingPunctuationFromURLs:!0,literalMidWordUnderscores:!0,strikethrough:!0,tables:!0,tablesHeaderId:!0,ghCodeBlocks:!0,tasklists:!0,disableForced4SpacesIndentedSublists:!0,simpleLineBreaks:!0,requireSpaceBeforeHeadingText:!0,ghCompatibleHeaderId:!0,ghMentions:!0,backslashEscapesHTMLTags:!0,emoji:!0,splitAdjacentBlockquotes:!0},original:{noHeaderId:!0,ghCodeBlocks:!1},ghost:{omitExtraWLInCodeBlocks:!0,parseImgDimensions:!0,simplifiedAutoLink:!0,excludeTrailingPunctuationFromURLs:!0,literalMidWordUnderscores:!0,strikethrough:!0,tables:!0,tablesHeaderId:!0,ghCodeBlocks:!0,tasklists:!0,smoothLivePreview:!0,simpleLineBreaks:!0,requireSpaceBeforeHeadingText:!0,ghMentions:!1,encodeEmails:!0},vanilla:e(!0),allOn:t()};r.helper={},r.extensions={},r.setOption=function(f,E){return a[f]=E,this},r.getOption=function(f){return a[f]},r.getOptions=function(){return a},r.resetOptions=function(){a=e(!0)},r.setFlavor=function(f){if(!l.hasOwnProperty(f))throw Error(f+" flavor was not found");r.resetOptions();var E=l[f];o=f;for(var S in E)E.hasOwnProperty(S)&&(a[S]=E[S])},r.getFlavor=function(){return o},r.getFlavorOptions=function(f){if(l.hasOwnProperty(f))return l[f]},r.getDefaultOptions=function(f){return e(f)},r.subParser=function(f,E){if(r.helper.isString(f))if(typeof E<"u")i[f]=E;else{if(i.hasOwnProperty(f))return i[f];throw Error("SubParser named "+f+" not registered!")}},r.extension=function(f,E){if(!r.helper.isString(f))throw Error("Extension 'name' must be a string");if(f=r.helper.stdExtName(f),r.helper.isUndefined(E)){if(!s.hasOwnProperty(f))throw Error("Extension named "+f+" is not registered!");return s[f]}else{typeof E=="function"&&(E=E()),r.helper.isArray(E)||(E=[E]);var S=c(E,f);if(S.valid)s[f]=E;else throw Error(S.error)}},r.getAllExtensions=function(){return s},r.removeExtension=function(f){delete s[f]},r.resetExtensions=function(){s={}};function c(f,E){var S=E?"Error in "+E+" extension->":"Error in unnamed extension",N={valid:!0,error:""};r.helper.isArray(f)||(f=[f]);for(var k=0;k"u"},r.helper.forEach=function(f,E){if(r.helper.isUndefined(f))throw new Error("obj param is required");if(r.helper.isUndefined(E))throw new Error("callback param is required");if(!r.helper.isFunction(E))throw new Error("callback param must be a function/closure");if(typeof f.forEach=="function")f.forEach(E);else if(r.helper.isArray(f))for(var S=0;S").replace(/&/g,"&")};var p=function(f,E,S,N){var k=N||"",x=k.indexOf("g")>-1,M=new RegExp(E+"|"+S,"g"+k.replace(/g/g,"")),G=new RegExp(E,k.replace(/g/g,"")),te=[],ne,re,ee,B,Q;do for(ne=0;ee=M.exec(f);)if(G.test(ee[0]))ne++||(re=M.lastIndex,B=re-ee[0].length);else if(ne&&!--ne){Q=ee.index+ee[0].length;var j={left:{start:B,end:re},match:{start:re,end:ee.index},right:{start:ee.index,end:Q},wholeMatch:{start:B,end:Q}};if(te.push(j),!x)return te}while(ne&&(M.lastIndex=re));return te};r.helper.matchRecursiveRegExp=function(f,E,S,N){for(var k=p(f,E,S,N),x=[],M=0;M0){var ne=[];M[0].wholeMatch.start!==0&&ne.push(f.slice(0,M[0].wholeMatch.start));for(var re=0;re=0?N+(S||0):N},r.helper.splitAtIndex=function(f,E){if(!r.helper.isString(f))throw"InvalidArgumentError: first parameter of showdown.helper.regexIndexOf function must be a string";return[f.substring(0,E),f.substring(E)]},r.helper.encodeEmailAddress=function(f){var E=[function(S){return"&#"+S.charCodeAt(0)+";"},function(S){return"&#x"+S.charCodeAt(0).toString(16)+";"},function(S){return S}];return f=f.replace(/./g,function(S){if(S==="@")S=E[Math.floor(Math.random()*2)](S);else{var N=Math.random();S=N>.9?E[2](S):N>.45?E[1](S):E[0](S)}return S}),f},r.helper.padEnd=function(E,S,N){return S=S>>0,N=String(N||" "),E.length>S?String(E):(S=S-E.length,S>N.length&&(N+=N.repeat(S/N.length)),String(E)+N.slice(0,S))},typeof console>"u"&&(console={warn:function(f){alert(f)},log:function(f){alert(f)},error:function(f){throw f}}),r.helper.regexes={asteriskDashAndColon:/([*_:~])/g},r.helper.emojis={"+1":"👍","-1":"👎",100:"💯",1234:"🔢","1st_place_medal":"🥇","2nd_place_medal":"🥈","3rd_place_medal":"🥉","8ball":"🎱",a:"🅰️",ab:"🆎",abc:"🔤",abcd:"🔡",accept:"🉑",aerial_tramway:"🚡",airplane:"✈️",alarm_clock:"⏰",alembic:"⚗️",alien:"👽",ambulance:"🚑",amphora:"🏺",anchor:"⚓️",angel:"👼",anger:"💢",angry:"😠",anguished:"😧",ant:"🐜",apple:"🍎",aquarius:"♒️",aries:"♈️",arrow_backward:"◀️",arrow_double_down:"⏬",arrow_double_up:"⏫",arrow_down:"⬇️",arrow_down_small:"🔽",arrow_forward:"▶️",arrow_heading_down:"⤵️",arrow_heading_up:"⤴️",arrow_left:"⬅️",arrow_lower_left:"↙️",arrow_lower_right:"↘️",arrow_right:"➡️",arrow_right_hook:"↪️",arrow_up:"⬆️",arrow_up_down:"↕️",arrow_up_small:"🔼",arrow_upper_left:"↖️",arrow_upper_right:"↗️",arrows_clockwise:"🔃",arrows_counterclockwise:"🔄",art:"🎨",articulated_lorry:"🚛",artificial_satellite:"🛰",astonished:"😲",athletic_shoe:"👟",atm:"🏧",atom_symbol:"⚛️",avocado:"🥑",b:"🅱️",baby:"👶",baby_bottle:"🍼",baby_chick:"🐤",baby_symbol:"🚼",back:"🔙",bacon:"🥓",badminton:"🏸",baggage_claim:"🛄",baguette_bread:"🥖",balance_scale:"⚖️",balloon:"🎈",ballot_box:"🗳",ballot_box_with_check:"☑️",bamboo:"🎍",banana:"🍌",bangbang:"‼️",bank:"🏦",bar_chart:"📊",barber:"💈",baseball:"⚾️",basketball:"🏀",basketball_man:"⛹️",basketball_woman:"⛹️‍♀️",bat:"🦇",bath:"🛀",bathtub:"🛁",battery:"🔋",beach_umbrella:"🏖",bear:"🐻",bed:"🛏",bee:"🐝",beer:"🍺",beers:"🍻",beetle:"🐞",beginner:"🔰",bell:"🔔",bellhop_bell:"🛎",bento:"🍱",biking_man:"🚴",bike:"🚲",biking_woman:"🚴‍♀️",bikini:"👙",biohazard:"☣️",bird:"🐦",birthday:"🎂",black_circle:"⚫️",black_flag:"🏴",black_heart:"🖤",black_joker:"🃏",black_large_square:"⬛️",black_medium_small_square:"◾️",black_medium_square:"◼️",black_nib:"✒️",black_small_square:"▪️",black_square_button:"🔲",blonde_man:"👱",blonde_woman:"👱‍♀️",blossom:"🌼",blowfish:"🐡",blue_book:"📘",blue_car:"🚙",blue_heart:"💙",blush:"😊",boar:"🐗",boat:"⛵️",bomb:"💣",book:"📖",bookmark:"🔖",bookmark_tabs:"📑",books:"📚",boom:"💥",boot:"👢",bouquet:"💐",bowing_man:"🙇",bow_and_arrow:"🏹",bowing_woman:"🙇‍♀️",bowling:"🎳",boxing_glove:"🥊",boy:"👦",bread:"🍞",bride_with_veil:"👰",bridge_at_night:"🌉",briefcase:"💼",broken_heart:"💔",bug:"🐛",building_construction:"🏗",bulb:"💡",bullettrain_front:"🚅",bullettrain_side:"🚄",burrito:"🌯",bus:"🚌",business_suit_levitating:"🕴",busstop:"🚏",bust_in_silhouette:"👤",busts_in_silhouette:"👥",butterfly:"🦋",cactus:"🌵",cake:"🍰",calendar:"📆",call_me_hand:"🤙",calling:"📲",camel:"🐫",camera:"📷",camera_flash:"📸",camping:"🏕",cancer:"♋️",candle:"🕯",candy:"🍬",canoe:"🛶",capital_abcd:"🔠",capricorn:"♑️",car:"🚗",card_file_box:"🗃",card_index:"📇",card_index_dividers:"🗂",carousel_horse:"🎠",carrot:"🥕",cat:"🐱",cat2:"🐈",cd:"💿",chains:"⛓",champagne:"🍾",chart:"💹",chart_with_downwards_trend:"📉",chart_with_upwards_trend:"📈",checkered_flag:"🏁",cheese:"🧀",cherries:"🍒",cherry_blossom:"🌸",chestnut:"🌰",chicken:"🐔",children_crossing:"🚸",chipmunk:"🐿",chocolate_bar:"🍫",christmas_tree:"🎄",church:"⛪️",cinema:"🎦",circus_tent:"🎪",city_sunrise:"🌇",city_sunset:"🌆",cityscape:"🏙",cl:"🆑",clamp:"🗜",clap:"👏",clapper:"🎬",classical_building:"🏛",clinking_glasses:"🥂",clipboard:"📋",clock1:"🕐",clock10:"🕙",clock1030:"🕥",clock11:"🕚",clock1130:"🕦",clock12:"🕛",clock1230:"🕧",clock130:"🕜",clock2:"🕑",clock230:"🕝",clock3:"🕒",clock330:"🕞",clock4:"🕓",clock430:"🕟",clock5:"🕔",clock530:"🕠",clock6:"🕕",clock630:"🕡",clock7:"🕖",clock730:"🕢",clock8:"🕗",clock830:"🕣",clock9:"🕘",clock930:"🕤",closed_book:"📕",closed_lock_with_key:"🔐",closed_umbrella:"🌂",cloud:"☁️",cloud_with_lightning:"🌩",cloud_with_lightning_and_rain:"⛈",cloud_with_rain:"🌧",cloud_with_snow:"🌨",clown_face:"🤡",clubs:"♣️",cocktail:"🍸",coffee:"☕️",coffin:"⚰️",cold_sweat:"😰",comet:"☄️",computer:"💻",computer_mouse:"🖱",confetti_ball:"🎊",confounded:"😖",confused:"😕",congratulations:"㊗️",construction:"🚧",construction_worker_man:"👷",construction_worker_woman:"👷‍♀️",control_knobs:"🎛",convenience_store:"🏪",cookie:"🍪",cool:"🆒",policeman:"👮",copyright:"©️",corn:"🌽",couch_and_lamp:"🛋",couple:"👫",couple_with_heart_woman_man:"💑",couple_with_heart_man_man:"👨‍❤️‍👨",couple_with_heart_woman_woman:"👩‍❤️‍👩",couplekiss_man_man:"👨‍❤️‍💋‍👨",couplekiss_man_woman:"💏",couplekiss_woman_woman:"👩‍❤️‍💋‍👩",cow:"🐮",cow2:"🐄",cowboy_hat_face:"🤠",crab:"🦀",crayon:"🖍",credit_card:"💳",crescent_moon:"🌙",cricket:"🏏",crocodile:"🐊",croissant:"🥐",crossed_fingers:"🤞",crossed_flags:"🎌",crossed_swords:"⚔️",crown:"👑",cry:"😢",crying_cat_face:"😿",crystal_ball:"🔮",cucumber:"🥒",cupid:"💘",curly_loop:"➰",currency_exchange:"💱",curry:"🍛",custard:"🍮",customs:"🛃",cyclone:"🌀",dagger:"🗡",dancer:"💃",dancing_women:"👯",dancing_men:"👯‍♂️",dango:"🍡",dark_sunglasses:"🕶",dart:"🎯",dash:"💨",date:"📅",deciduous_tree:"🌳",deer:"🦌",department_store:"🏬",derelict_house:"🏚",desert:"🏜",desert_island:"🏝",desktop_computer:"🖥",male_detective:"🕵️",diamond_shape_with_a_dot_inside:"💠",diamonds:"♦️",disappointed:"😞",disappointed_relieved:"😥",dizzy:"💫",dizzy_face:"😵",do_not_litter:"🚯",dog:"🐶",dog2:"🐕",dollar:"💵",dolls:"🎎",dolphin:"🐬",door:"🚪",doughnut:"🍩",dove:"🕊",dragon:"🐉",dragon_face:"🐲",dress:"👗",dromedary_camel:"🐪",drooling_face:"🤤",droplet:"💧",drum:"🥁",duck:"🦆",dvd:"📀","e-mail":"📧",eagle:"🦅",ear:"👂",ear_of_rice:"🌾",earth_africa:"🌍",earth_americas:"🌎",earth_asia:"🌏",egg:"🥚",eggplant:"🍆",eight_pointed_black_star:"✴️",eight_spoked_asterisk:"✳️",electric_plug:"🔌",elephant:"🐘",email:"✉️",end:"🔚",envelope_with_arrow:"📩",euro:"💶",european_castle:"🏰",european_post_office:"🏤",evergreen_tree:"🌲",exclamation:"❗️",expressionless:"😑",eye:"👁",eye_speech_bubble:"👁‍🗨",eyeglasses:"👓",eyes:"👀",face_with_head_bandage:"🤕",face_with_thermometer:"🤒",fist_oncoming:"👊",factory:"🏭",fallen_leaf:"🍂",family_man_woman_boy:"👪",family_man_boy:"👨‍👦",family_man_boy_boy:"👨‍👦‍👦",family_man_girl:"👨‍👧",family_man_girl_boy:"👨‍👧‍👦",family_man_girl_girl:"👨‍👧‍👧",family_man_man_boy:"👨‍👨‍👦",family_man_man_boy_boy:"👨‍👨‍👦‍👦",family_man_man_girl:"👨‍👨‍👧",family_man_man_girl_boy:"👨‍👨‍👧‍👦",family_man_man_girl_girl:"👨‍👨‍👧‍👧",family_man_woman_boy_boy:"👨‍👩‍👦‍👦",family_man_woman_girl:"👨‍👩‍👧",family_man_woman_girl_boy:"👨‍👩‍👧‍👦",family_man_woman_girl_girl:"👨‍👩‍👧‍👧",family_woman_boy:"👩‍👦",family_woman_boy_boy:"👩‍👦‍👦",family_woman_girl:"👩‍👧",family_woman_girl_boy:"👩‍👧‍👦",family_woman_girl_girl:"👩‍👧‍👧",family_woman_woman_boy:"👩‍👩‍👦",family_woman_woman_boy_boy:"👩‍👩‍👦‍👦",family_woman_woman_girl:"👩‍👩‍👧",family_woman_woman_girl_boy:"👩‍👩‍👧‍👦",family_woman_woman_girl_girl:"👩‍👩‍👧‍👧",fast_forward:"⏩",fax:"📠",fearful:"😨",feet:"🐾",female_detective:"🕵️‍♀️",ferris_wheel:"🎡",ferry:"⛴",field_hockey:"🏑",file_cabinet:"🗄",file_folder:"📁",film_projector:"📽",film_strip:"🎞",fire:"🔥",fire_engine:"🚒",fireworks:"🎆",first_quarter_moon:"🌓",first_quarter_moon_with_face:"🌛",fish:"🐟",fish_cake:"🍥",fishing_pole_and_fish:"🎣",fist_raised:"✊",fist_left:"🤛",fist_right:"🤜",flags:"🎏",flashlight:"🔦",fleur_de_lis:"⚜️",flight_arrival:"🛬",flight_departure:"🛫",floppy_disk:"💾",flower_playing_cards:"🎴",flushed:"😳",fog:"🌫",foggy:"🌁",football:"🏈",footprints:"👣",fork_and_knife:"🍴",fountain:"⛲️",fountain_pen:"🖋",four_leaf_clover:"🍀",fox_face:"🦊",framed_picture:"🖼",free:"🆓",fried_egg:"🍳",fried_shrimp:"🍤",fries:"🍟",frog:"🐸",frowning:"😦",frowning_face:"☹️",frowning_man:"🙍‍♂️",frowning_woman:"🙍",middle_finger:"🖕",fuelpump:"⛽️",full_moon:"🌕",full_moon_with_face:"🌝",funeral_urn:"⚱️",game_die:"🎲",gear:"⚙️",gem:"💎",gemini:"♊️",ghost:"👻",gift:"🎁",gift_heart:"💝",girl:"👧",globe_with_meridians:"🌐",goal_net:"🥅",goat:"🐐",golf:"⛳️",golfing_man:"🏌️",golfing_woman:"🏌️‍♀️",gorilla:"🦍",grapes:"🍇",green_apple:"🍏",green_book:"📗",green_heart:"💚",green_salad:"🥗",grey_exclamation:"❕",grey_question:"❔",grimacing:"😬",grin:"😁",grinning:"😀",guardsman:"💂",guardswoman:"💂‍♀️",guitar:"🎸",gun:"🔫",haircut_woman:"💇",haircut_man:"💇‍♂️",hamburger:"🍔",hammer:"🔨",hammer_and_pick:"⚒",hammer_and_wrench:"🛠",hamster:"🐹",hand:"✋",handbag:"👜",handshake:"🤝",hankey:"💩",hatched_chick:"🐥",hatching_chick:"🐣",headphones:"🎧",hear_no_evil:"🙉",heart:"❤️",heart_decoration:"💟",heart_eyes:"😍",heart_eyes_cat:"😻",heartbeat:"💓",heartpulse:"💗",hearts:"♥️",heavy_check_mark:"✔️",heavy_division_sign:"➗",heavy_dollar_sign:"💲",heavy_heart_exclamation:"❣️",heavy_minus_sign:"➖",heavy_multiplication_x:"✖️",heavy_plus_sign:"➕",helicopter:"🚁",herb:"🌿",hibiscus:"🌺",high_brightness:"🔆",high_heel:"👠",hocho:"🔪",hole:"🕳",honey_pot:"🍯",horse:"🐴",horse_racing:"🏇",hospital:"🏥",hot_pepper:"🌶",hotdog:"🌭",hotel:"🏨",hotsprings:"♨️",hourglass:"⌛️",hourglass_flowing_sand:"⏳",house:"🏠",house_with_garden:"🏡",houses:"🏘",hugs:"🤗",hushed:"😯",ice_cream:"🍨",ice_hockey:"🏒",ice_skate:"⛸",icecream:"🍦",id:"🆔",ideograph_advantage:"🉐",imp:"👿",inbox_tray:"📥",incoming_envelope:"📨",tipping_hand_woman:"💁",information_source:"ℹ️",innocent:"😇",interrobang:"⁉️",iphone:"📱",izakaya_lantern:"🏮",jack_o_lantern:"🎃",japan:"🗾",japanese_castle:"🏯",japanese_goblin:"👺",japanese_ogre:"👹",jeans:"👖",joy:"😂",joy_cat:"😹",joystick:"🕹",kaaba:"🕋",key:"🔑",keyboard:"⌨️",keycap_ten:"🔟",kick_scooter:"🛴",kimono:"👘",kiss:"💋",kissing:"😗",kissing_cat:"😽",kissing_closed_eyes:"😚",kissing_heart:"😘",kissing_smiling_eyes:"😙",kiwi_fruit:"🥝",koala:"🐨",koko:"🈁",label:"🏷",large_blue_circle:"🔵",large_blue_diamond:"🔷",large_orange_diamond:"🔶",last_quarter_moon:"🌗",last_quarter_moon_with_face:"🌜",latin_cross:"✝️",laughing:"😆",leaves:"🍃",ledger:"📒",left_luggage:"🛅",left_right_arrow:"↔️",leftwards_arrow_with_hook:"↩️",lemon:"🍋",leo:"♌️",leopard:"🐆",level_slider:"🎚",libra:"♎️",light_rail:"🚈",link:"🔗",lion:"🦁",lips:"👄",lipstick:"💄",lizard:"🦎",lock:"🔒",lock_with_ink_pen:"🔏",lollipop:"🍭",loop:"➿",loud_sound:"🔊",loudspeaker:"📢",love_hotel:"🏩",love_letter:"💌",low_brightness:"🔅",lying_face:"🤥",m:"Ⓜ️",mag:"🔍",mag_right:"🔎",mahjong:"🀄️",mailbox:"📫",mailbox_closed:"📪",mailbox_with_mail:"📬",mailbox_with_no_mail:"📭",man:"👨",man_artist:"👨‍🎨",man_astronaut:"👨‍🚀",man_cartwheeling:"🤸‍♂️",man_cook:"👨‍🍳",man_dancing:"🕺",man_facepalming:"🤦‍♂️",man_factory_worker:"👨‍🏭",man_farmer:"👨‍🌾",man_firefighter:"👨‍🚒",man_health_worker:"👨‍⚕️",man_in_tuxedo:"🤵",man_judge:"👨‍⚖️",man_juggling:"🤹‍♂️",man_mechanic:"👨‍🔧",man_office_worker:"👨‍💼",man_pilot:"👨‍✈️",man_playing_handball:"🤾‍♂️",man_playing_water_polo:"🤽‍♂️",man_scientist:"👨‍🔬",man_shrugging:"🤷‍♂️",man_singer:"👨‍🎤",man_student:"👨‍🎓",man_teacher:"👨‍🏫",man_technologist:"👨‍💻",man_with_gua_pi_mao:"👲",man_with_turban:"👳",tangerine:"🍊",mans_shoe:"👞",mantelpiece_clock:"🕰",maple_leaf:"🍁",martial_arts_uniform:"🥋",mask:"😷",massage_woman:"💆",massage_man:"💆‍♂️",meat_on_bone:"🍖",medal_military:"🎖",medal_sports:"🏅",mega:"📣",melon:"🍈",memo:"📝",men_wrestling:"🤼‍♂️",menorah:"🕎",mens:"🚹",metal:"🤘",metro:"🚇",microphone:"🎤",microscope:"🔬",milk_glass:"🥛",milky_way:"🌌",minibus:"🚐",minidisc:"💽",mobile_phone_off:"📴",money_mouth_face:"🤑",money_with_wings:"💸",moneybag:"💰",monkey:"🐒",monkey_face:"🐵",monorail:"🚝",moon:"🌔",mortar_board:"🎓",mosque:"🕌",motor_boat:"🛥",motor_scooter:"🛵",motorcycle:"🏍",motorway:"🛣",mount_fuji:"🗻",mountain:"⛰",mountain_biking_man:"🚵",mountain_biking_woman:"🚵‍♀️",mountain_cableway:"🚠",mountain_railway:"🚞",mountain_snow:"🏔",mouse:"🐭",mouse2:"🐁",movie_camera:"🎥",moyai:"🗿",mrs_claus:"🤶",muscle:"💪",mushroom:"🍄",musical_keyboard:"🎹",musical_note:"🎵",musical_score:"🎼",mute:"🔇",nail_care:"💅",name_badge:"📛",national_park:"🏞",nauseated_face:"🤢",necktie:"👔",negative_squared_cross_mark:"❎",nerd_face:"🤓",neutral_face:"😐",new:"🆕",new_moon:"🌑",new_moon_with_face:"🌚",newspaper:"📰",newspaper_roll:"🗞",next_track_button:"⏭",ng:"🆖",no_good_man:"🙅‍♂️",no_good_woman:"🙅",night_with_stars:"🌃",no_bell:"🔕",no_bicycles:"🚳",no_entry:"⛔️",no_entry_sign:"🚫",no_mobile_phones:"📵",no_mouth:"😶",no_pedestrians:"🚷",no_smoking:"🚭","non-potable_water":"🚱",nose:"👃",notebook:"📓",notebook_with_decorative_cover:"📔",notes:"🎶",nut_and_bolt:"🔩",o:"⭕️",o2:"🅾️",ocean:"🌊",octopus:"🐙",oden:"🍢",office:"🏢",oil_drum:"🛢",ok:"🆗",ok_hand:"👌",ok_man:"🙆‍♂️",ok_woman:"🙆",old_key:"🗝",older_man:"👴",older_woman:"👵",om:"🕉",on:"🔛",oncoming_automobile:"🚘",oncoming_bus:"🚍",oncoming_police_car:"🚔",oncoming_taxi:"🚖",open_file_folder:"📂",open_hands:"👐",open_mouth:"😮",open_umbrella:"☂️",ophiuchus:"⛎",orange_book:"📙",orthodox_cross:"☦️",outbox_tray:"📤",owl:"🦉",ox:"🐂",package:"📦",page_facing_up:"📄",page_with_curl:"📃",pager:"📟",paintbrush:"🖌",palm_tree:"🌴",pancakes:"🥞",panda_face:"🐼",paperclip:"📎",paperclips:"🖇",parasol_on_ground:"⛱",parking:"🅿️",part_alternation_mark:"〽️",partly_sunny:"⛅️",passenger_ship:"🛳",passport_control:"🛂",pause_button:"⏸",peace_symbol:"☮️",peach:"🍑",peanuts:"🥜",pear:"🍐",pen:"🖊",pencil2:"✏️",penguin:"🐧",pensive:"😔",performing_arts:"🎭",persevere:"😣",person_fencing:"🤺",pouting_woman:"🙎",phone:"☎️",pick:"⛏",pig:"🐷",pig2:"🐖",pig_nose:"🐽",pill:"💊",pineapple:"🍍",ping_pong:"🏓",pisces:"♓️",pizza:"🍕",place_of_worship:"🛐",plate_with_cutlery:"🍽",play_or_pause_button:"⏯",point_down:"👇",point_left:"👈",point_right:"👉",point_up:"☝️",point_up_2:"👆",police_car:"🚓",policewoman:"👮‍♀️",poodle:"🐩",popcorn:"🍿",post_office:"🏣",postal_horn:"📯",postbox:"📮",potable_water:"🚰",potato:"🥔",pouch:"👝",poultry_leg:"🍗",pound:"💷",rage:"😡",pouting_cat:"😾",pouting_man:"🙎‍♂️",pray:"🙏",prayer_beads:"📿",pregnant_woman:"🤰",previous_track_button:"⏮",prince:"🤴",princess:"👸",printer:"🖨",purple_heart:"💜",purse:"👛",pushpin:"📌",put_litter_in_its_place:"🚮",question:"❓",rabbit:"🐰",rabbit2:"🐇",racehorse:"🐎",racing_car:"🏎",radio:"📻",radio_button:"🔘",radioactive:"☢️",railway_car:"🚃",railway_track:"🛤",rainbow:"🌈",rainbow_flag:"🏳️‍🌈",raised_back_of_hand:"🤚",raised_hand_with_fingers_splayed:"🖐",raised_hands:"🙌",raising_hand_woman:"🙋",raising_hand_man:"🙋‍♂️",ram:"🐏",ramen:"🍜",rat:"🐀",record_button:"⏺",recycle:"♻️",red_circle:"🔴",registered:"®️",relaxed:"☺️",relieved:"😌",reminder_ribbon:"🎗",repeat:"🔁",repeat_one:"🔂",rescue_worker_helmet:"⛑",restroom:"🚻",revolving_hearts:"💞",rewind:"⏪",rhinoceros:"🦏",ribbon:"🎀",rice:"🍚",rice_ball:"🍙",rice_cracker:"🍘",rice_scene:"🎑",right_anger_bubble:"🗯",ring:"💍",robot:"🤖",rocket:"🚀",rofl:"🤣",roll_eyes:"🙄",roller_coaster:"🎢",rooster:"🐓",rose:"🌹",rosette:"🏵",rotating_light:"🚨",round_pushpin:"📍",rowing_man:"🚣",rowing_woman:"🚣‍♀️",rugby_football:"🏉",running_man:"🏃",running_shirt_with_sash:"🎽",running_woman:"🏃‍♀️",sa:"🈂️",sagittarius:"♐️",sake:"🍶",sandal:"👡",santa:"🎅",satellite:"📡",saxophone:"🎷",school:"🏫",school_satchel:"🎒",scissors:"✂️",scorpion:"🦂",scorpius:"♏️",scream:"😱",scream_cat:"🙀",scroll:"📜",seat:"💺",secret:"㊙️",see_no_evil:"🙈",seedling:"🌱",selfie:"🤳",shallow_pan_of_food:"🥘",shamrock:"☘️",shark:"🦈",shaved_ice:"🍧",sheep:"🐑",shell:"🐚",shield:"🛡",shinto_shrine:"⛩",ship:"🚢",shirt:"👕",shopping:"🛍",shopping_cart:"🛒",shower:"🚿",shrimp:"🦐",signal_strength:"📶",six_pointed_star:"🔯",ski:"🎿",skier:"⛷",skull:"💀",skull_and_crossbones:"☠️",sleeping:"😴",sleeping_bed:"🛌",sleepy:"😪",slightly_frowning_face:"🙁",slightly_smiling_face:"🙂",slot_machine:"🎰",small_airplane:"🛩",small_blue_diamond:"🔹",small_orange_diamond:"🔸",small_red_triangle:"🔺",small_red_triangle_down:"🔻",smile:"😄",smile_cat:"😸",smiley:"😃",smiley_cat:"😺",smiling_imp:"😈",smirk:"😏",smirk_cat:"😼",smoking:"🚬",snail:"🐌",snake:"🐍",sneezing_face:"🤧",snowboarder:"🏂",snowflake:"❄️",snowman:"⛄️",snowman_with_snow:"☃️",sob:"😭",soccer:"⚽️",soon:"🔜",sos:"🆘",sound:"🔉",space_invader:"👾",spades:"♠️",spaghetti:"🍝",sparkle:"❇️",sparkler:"🎇",sparkles:"✨",sparkling_heart:"💖",speak_no_evil:"🙊",speaker:"🔈",speaking_head:"🗣",speech_balloon:"💬",speedboat:"🚤",spider:"🕷",spider_web:"🕸",spiral_calendar:"🗓",spiral_notepad:"🗒",spoon:"🥄",squid:"🦑",stadium:"🏟",star:"⭐️",star2:"🌟",star_and_crescent:"☪️",star_of_david:"✡️",stars:"🌠",station:"🚉",statue_of_liberty:"🗽",steam_locomotive:"🚂",stew:"🍲",stop_button:"⏹",stop_sign:"🛑",stopwatch:"⏱",straight_ruler:"📏",strawberry:"🍓",stuck_out_tongue:"😛",stuck_out_tongue_closed_eyes:"😝",stuck_out_tongue_winking_eye:"😜",studio_microphone:"🎙",stuffed_flatbread:"🥙",sun_behind_large_cloud:"🌥",sun_behind_rain_cloud:"🌦",sun_behind_small_cloud:"🌤",sun_with_face:"🌞",sunflower:"🌻",sunglasses:"😎",sunny:"☀️",sunrise:"🌅",sunrise_over_mountains:"🌄",surfing_man:"🏄",surfing_woman:"🏄‍♀️",sushi:"🍣",suspension_railway:"🚟",sweat:"😓",sweat_drops:"💦",sweat_smile:"😅",sweet_potato:"🍠",swimming_man:"🏊",swimming_woman:"🏊‍♀️",symbols:"🔣",synagogue:"🕍",syringe:"💉",taco:"🌮",tada:"🎉",tanabata_tree:"🎋",taurus:"♉️",taxi:"🚕",tea:"🍵",telephone_receiver:"📞",telescope:"🔭",tennis:"🎾",tent:"⛺️",thermometer:"🌡",thinking:"🤔",thought_balloon:"💭",ticket:"🎫",tickets:"🎟",tiger:"🐯",tiger2:"🐅",timer_clock:"⏲",tipping_hand_man:"💁‍♂️",tired_face:"😫",tm:"™️",toilet:"🚽",tokyo_tower:"🗼",tomato:"🍅",tongue:"👅",top:"🔝",tophat:"🎩",tornado:"🌪",trackball:"🖲",tractor:"🚜",traffic_light:"🚥",train:"🚋",train2:"🚆",tram:"🚊",triangular_flag_on_post:"🚩",triangular_ruler:"📐",trident:"🔱",triumph:"😤",trolleybus:"🚎",trophy:"🏆",tropical_drink:"🍹",tropical_fish:"🐠",truck:"🚚",trumpet:"🎺",tulip:"🌷",tumbler_glass:"🥃",turkey:"🦃",turtle:"🐢",tv:"📺",twisted_rightwards_arrows:"🔀",two_hearts:"💕",two_men_holding_hands:"👬",two_women_holding_hands:"👭",u5272:"🈹",u5408:"🈴",u55b6:"🈺",u6307:"🈯️",u6708:"🈷️",u6709:"🈶",u6e80:"🈵",u7121:"🈚️",u7533:"🈸",u7981:"🈲",u7a7a:"🈳",umbrella:"☔️",unamused:"😒",underage:"🔞",unicorn:"🦄",unlock:"🔓",up:"🆙",upside_down_face:"🙃",v:"✌️",vertical_traffic_light:"🚦",vhs:"📼",vibration_mode:"📳",video_camera:"📹",video_game:"🎮",violin:"🎻",virgo:"♍️",volcano:"🌋",volleyball:"🏐",vs:"🆚",vulcan_salute:"🖖",walking_man:"🚶",walking_woman:"🚶‍♀️",waning_crescent_moon:"🌘",waning_gibbous_moon:"🌖",warning:"⚠️",wastebasket:"🗑",watch:"⌚️",water_buffalo:"🐃",watermelon:"🍉",wave:"👋",wavy_dash:"〰️",waxing_crescent_moon:"🌒",wc:"🚾",weary:"😩",wedding:"💒",weight_lifting_man:"🏋️",weight_lifting_woman:"🏋️‍♀️",whale:"🐳",whale2:"🐋",wheel_of_dharma:"☸️",wheelchair:"♿️",white_check_mark:"✅",white_circle:"⚪️",white_flag:"🏳️",white_flower:"💮",white_large_square:"⬜️",white_medium_small_square:"◽️",white_medium_square:"◻️",white_small_square:"▫️",white_square_button:"🔳",wilted_flower:"🥀",wind_chime:"🎐",wind_face:"🌬",wine_glass:"🍷",wink:"😉",wolf:"🐺",woman:"👩",woman_artist:"👩‍🎨",woman_astronaut:"👩‍🚀",woman_cartwheeling:"🤸‍♀️",woman_cook:"👩‍🍳",woman_facepalming:"🤦‍♀️",woman_factory_worker:"👩‍🏭",woman_farmer:"👩‍🌾",woman_firefighter:"👩‍🚒",woman_health_worker:"👩‍⚕️",woman_judge:"👩‍⚖️",woman_juggling:"🤹‍♀️",woman_mechanic:"👩‍🔧",woman_office_worker:"👩‍💼",woman_pilot:"👩‍✈️",woman_playing_handball:"🤾‍♀️",woman_playing_water_polo:"🤽‍♀️",woman_scientist:"👩‍🔬",woman_shrugging:"🤷‍♀️",woman_singer:"👩‍🎤",woman_student:"👩‍🎓",woman_teacher:"👩‍🏫",woman_technologist:"👩‍💻",woman_with_turban:"👳‍♀️",womans_clothes:"👚",womans_hat:"👒",women_wrestling:"🤼‍♀️",womens:"🚺",world_map:"🗺",worried:"😟",wrench:"🔧",writing_hand:"✍️",x:"❌",yellow_heart:"💛",yen:"💴",yin_yang:"☯️",yum:"😋",zap:"⚡️",zipper_mouth_face:"🤐",zzz:"💤",octocat:':octocat:',showdown:`S`},r.Converter=function(f){var E={},S=[],N=[],k={},x=o,M={parsed:{},raw:"",format:""};G();function G(){f=f||{};for(var B in a)a.hasOwnProperty(B)&&(E[B]=a[B]);if(typeof f=="object")for(var Q in f)f.hasOwnProperty(Q)&&(E[Q]=f[Q]);else throw Error("Converter expects the passed parameter to be an object, but "+typeof f+" was passed instead.");E.extensions&&r.helper.forEach(E.extensions,te)}function te(B,Q){if(Q=Q||null,r.helper.isString(B))if(B=r.helper.stdExtName(B),Q=B,r.extensions[B]){console.warn("DEPRECATION WARNING: "+B+" is an old extension that uses a deprecated loading method.Please inform the developer that the extension should be updated!"),ne(r.extensions[B],B);return}else if(!r.helper.isUndefined(s[B]))B=s[B];else throw Error('Extension "'+B+'" could not be loaded. It was either not found or is not a valid extension.');typeof B=="function"&&(B=B()),r.helper.isArray(B)||(B=[B]);var j=c(B,Q);if(!j.valid)throw Error(j.error);for(var Z=0;Z({IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:o.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[o.APOS_STRING_MODE,o.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:o.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z][A-Za-z0-9_-]*/}}),e=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","p","q","quote","samp","section","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],t=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"],r=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"],i=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"],s=["align-content","align-items","align-self","all","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","content","content-visibility","counter-increment","counter-reset","cue","cue-after","cue-before","cursor","direction","display","empty-cells","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-size","font-size-adjust","font-smoothing","font-stretch","font-style","font-synthesis","font-variant","font-variant-caps","font-variant-east-asian","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","gap","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","inline-size","isolation","justify-content","left","letter-spacing","line-break","line-height","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-wrap","overflow-x","overflow-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page-break-after","page-break-before","page-break-inside","pause","pause-after","pause-before","perspective","perspective-origin","pointer-events","position","quotes","resize","rest","rest-after","rest-before","right","row-gap","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","speak","speak-as","src","tab-size","table-layout","text-align","text-align-all","text-align-last","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-style","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-transform","text-underline-position","top","transform","transform-box","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","vertical-align","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","z-index"].reverse();function a(o){const l=n(o),c="and or not only",u={className:"variable",begin:"\\$"+o.IDENT_RE},p=["charset","css","debug","extend","font-face","for","import","include","keyframes","media","mixin","page","warn","while"],m="(?=[.\\s\\n[:,(])";return{name:"Stylus",aliases:["styl"],case_insensitive:!1,keywords:"if else for in",illegal:"("+["\\?","(\\bReturn\\b)","(\\bEnd\\b)","(\\bend\\b)","(\\bdef\\b)",";","#\\s","\\*\\s","===\\s","\\|","%"].join("|")+")",contains:[o.QUOTE_STRING_MODE,o.APOS_STRING_MODE,o.C_LINE_COMMENT_MODE,o.C_BLOCK_COMMENT_MODE,l.HEXCOLOR,{begin:"\\.[a-zA-Z][a-zA-Z0-9_-]*"+m,className:"selector-class"},{begin:"#[a-zA-Z][a-zA-Z0-9_-]*"+m,className:"selector-id"},{begin:"\\b("+e.join("|")+")"+m,className:"selector-tag"},{className:"selector-pseudo",begin:"&?:("+r.join("|")+")"+m},{className:"selector-pseudo",begin:"&?:(:)?("+i.join("|")+")"+m},l.ATTRIBUTE_SELECTOR_MODE,{className:"keyword",begin:/@media/,starts:{end:/[{;}]/,keywords:{$pattern:/[a-z-]+/,keyword:c,attribute:t.join(" ")},contains:[l.CSS_NUMBER_MODE]}},{className:"keyword",begin:"@((-(o|moz|ms|webkit)-)?("+p.join("|")+"))\\b"},u,l.CSS_NUMBER_MODE,{className:"function",begin:"^[a-zA-Z][a-zA-Z0-9_-]*\\(.*\\)",illegal:"[\\n]",returnBegin:!0,contains:[{className:"title",begin:"\\b[a-zA-Z][a-zA-Z0-9_-]*"},{className:"params",begin:/\(/,end:/\)/,contains:[l.HEXCOLOR,u,o.APOS_STRING_MODE,l.CSS_NUMBER_MODE,o.QUOTE_STRING_MODE]}]},l.CSS_VARIABLE,{className:"attribute",begin:"\\b("+s.join("|")+")\\b",starts:{end:/;|$/,contains:[l.HEXCOLOR,u,o.APOS_STRING_MODE,o.QUOTE_STRING_MODE,l.CSS_NUMBER_MODE,o.C_BLOCK_COMMENT_MODE,l.IMPORTANT,l.FUNCTION_DISPATCH],illegal:/\./,relevance:0}},l.FUNCTION_DISPATCH]}}return mf=a,mf}var gf,$v;function U$(){if($v)return gf;$v=1;function n(e){return{name:"SubUnit",case_insensitive:!0,contains:[{className:"string",begin:`\\[ (multipart)?`,end:`\\] -`},{className:"string",begin:"\\d{4}-\\d{2}-\\d{2}(\\s+)\\d{2}:\\d{2}:\\d{2}.\\d+Z"},{className:"string",begin:"(\\+|-)\\d+"},{className:"keyword",relevance:10,variants:[{begin:"^(test|testing|success|successful|failure|error|skip|xfail|uxsuccess)(:?)\\s+(test)?"},{begin:"^progress(:?)(\\s+)?(pop|push)?"},{begin:"^tags:"},{begin:"^time:"}]}]}}return gf=n,gf}var _f,Gv;function F$(){if(Gv)return _f;Gv=1;function n(k){return k?typeof k=="string"?k:k.source:null}function e(k){return t("(?=",k,")")}function t(...k){return k.map(M=>n(M)).join("")}function r(k){const x=k[k.length-1];return typeof x=="object"&&x.constructor===Object?(k.splice(k.length-1,1),x):{}}function i(...k){return"("+(r(k).capture?"":"?:")+k.map(G=>n(G)).join("|")+")"}const s=k=>t(/\b/,k,/\w$/.test(k)?/\b/:/\B/),a=["Protocol","Type"].map(s),o=["init","self"].map(s),l=["Any","Self"],c=["actor","any","associatedtype","async","await",/as\?/,/as!/,"as","break","case","catch","class","continue","convenience","default","defer","deinit","didSet","distributed","do","dynamic","else","enum","extension","fallthrough",/fileprivate\(set\)/,"fileprivate","final","for","func","get","guard","if","import","indirect","infix",/init\?/,/init!/,"inout",/internal\(set\)/,"internal","in","is","isolated","nonisolated","lazy","let","mutating","nonmutating",/open\(set\)/,"open","operator","optional","override","postfix","precedencegroup","prefix",/private\(set\)/,"private","protocol",/public\(set\)/,"public","repeat","required","rethrows","return","set","some","static","struct","subscript","super","switch","throws","throw",/try\?/,/try!/,"try","typealias",/unowned\(safe\)/,/unowned\(unsafe\)/,"unowned","var","weak","where","while","willSet"],u=["false","nil","true"],p=["assignment","associativity","higherThan","left","lowerThan","none","right"],m=["#colorLiteral","#column","#dsohandle","#else","#elseif","#endif","#error","#file","#fileID","#fileLiteral","#filePath","#function","#if","#imageLiteral","#keyPath","#line","#selector","#sourceLocation","#warn_unqualified_access","#warning"],_=["abs","all","any","assert","assertionFailure","debugPrint","dump","fatalError","getVaList","isKnownUniquelyReferenced","max","min","numericCast","pointwiseMax","pointwiseMin","precondition","preconditionFailure","print","readLine","repeatElement","sequence","stride","swap","swift_unboxFromSwiftValueWithType","transcode","type","unsafeBitCast","unsafeDowncast","withExtendedLifetime","withUnsafeMutablePointer","withUnsafePointer","withVaList","withoutActuallyEscaping","zip"],T=i(/[/=\-+!*%<>&|^~?]/,/[\u00A1-\u00A7]/,/[\u00A9\u00AB]/,/[\u00AC\u00AE]/,/[\u00B0\u00B1]/,/[\u00B6\u00BB\u00BF\u00D7\u00F7]/,/[\u2016-\u2017]/,/[\u2020-\u2027]/,/[\u2030-\u203E]/,/[\u2041-\u2053]/,/[\u2055-\u205E]/,/[\u2190-\u23FF]/,/[\u2500-\u2775]/,/[\u2794-\u2BFF]/,/[\u2E00-\u2E7F]/,/[\u3001-\u3003]/,/[\u3008-\u3020]/,/[\u3030]/),I=i(T,/[\u0300-\u036F]/,/[\u1DC0-\u1DFF]/,/[\u20D0-\u20FF]/,/[\uFE00-\uFE0F]/,/[\uFE20-\uFE2F]/),R=t(T,I,"*"),L=i(/[a-zA-Z_]/,/[\u00A8\u00AA\u00AD\u00AF\u00B2-\u00B5\u00B7-\u00BA]/,/[\u00BC-\u00BE\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF]/,/[\u0100-\u02FF\u0370-\u167F\u1681-\u180D\u180F-\u1DBF]/,/[\u1E00-\u1FFF]/,/[\u200B-\u200D\u202A-\u202E\u203F-\u2040\u2054\u2060-\u206F]/,/[\u2070-\u20CF\u2100-\u218F\u2460-\u24FF\u2776-\u2793]/,/[\u2C00-\u2DFF\u2E80-\u2FFF]/,/[\u3004-\u3007\u3021-\u302F\u3031-\u303F\u3040-\uD7FF]/,/[\uF900-\uFD3D\uFD40-\uFDCF\uFDF0-\uFE1F\uFE30-\uFE44]/,/[\uFE47-\uFEFE\uFF00-\uFFFD]/),$=i(L,/\d/,/[\u0300-\u036F\u1DC0-\u1DFF\u20D0-\u20FF\uFE20-\uFE2F]/),K=t(L,$,"*"),f=t(/[A-Z]/,$,"*"),E=["autoclosure",t(/convention\(/,i("swift","block","c"),/\)/),"discardableResult","dynamicCallable","dynamicMemberLookup","escaping","frozen","GKInspectable","IBAction","IBDesignable","IBInspectable","IBOutlet","IBSegueAction","inlinable","main","nonobjc","NSApplicationMain","NSCopying","NSManaged",t(/objc\(/,K,/\)/),"objc","objcMembers","propertyWrapper","requires_stored_property_inits","resultBuilder","testable","UIApplicationMain","unknown","usableFromInline"],S=["iOS","iOSApplicationExtension","macOS","macOSApplicationExtension","macCatalyst","macCatalystApplicationExtension","watchOS","watchOSApplicationExtension","tvOS","tvOSApplicationExtension","swift"];function N(k){const x={match:/\s+/,relevance:0},M=k.COMMENT("/\\*","\\*/",{contains:["self"]}),G=[k.C_LINE_COMMENT_MODE,M],te={match:[/\./,i(...a,...o)],className:{2:"keyword"}},ne={match:t(/\./,i(...c)),relevance:0},re=c.filter(ut=>typeof ut=="string").concat(["_|0"]),ee=c.filter(ut=>typeof ut!="string").concat(l).map(s),B={variants:[{className:"keyword",match:i(...ee,...o)}]},Q={$pattern:i(/\b\w+/,/#\w+/),keyword:re.concat(m),literal:u},j=[te,ne,B],Z={match:t(/\./,i(..._)),relevance:0},ue={className:"built_in",match:t(/\b/,i(..._),/(?=\()/)},le=[Z,ue],Ee={match:/->/,relevance:0},De={className:"operator",relevance:0,variants:[{match:R},{match:`\\.(\\.|${I})+`}]},xe=[Ee,De],be="([0-9]_*)+",Re="([0-9a-fA-F]_*)+",ce={className:"number",relevance:0,variants:[{match:`\\b(${be})(\\.(${be}))?([eE][+-]?(${be}))?\\b`},{match:`\\b0x(${Re})(\\.(${Re}))?([pP][+-]?(${be}))?\\b`},{match:/\b0o([0-7]_*)+\b/},{match:/\b0b([01]_*)+\b/}]},ke=(ut="")=>({className:"subst",variants:[{match:t(/\\/,ut,/[0\\tnr"']/)},{match:t(/\\/,ut,/u\{[0-9a-fA-F]{1,8}\}/)}]}),Ze=(ut="")=>({className:"subst",match:t(/\\/,ut,/[\t ]*(?:[\r\n]|\r\n)/)}),Le=(ut="")=>({className:"subst",label:"interpol",begin:t(/\\/,ut,/\(/),end:/\)/}),tt=(ut="")=>({begin:t(ut,/"""/),end:t(/"""/,ut),contains:[ke(ut),Ze(ut),Le(ut)]}),nt=(ut="")=>({begin:t(ut,/"/),end:t(/"/,ut),contains:[ke(ut),Le(ut)]}),ze={className:"string",variants:[tt(),tt("#"),tt("##"),tt("###"),nt(),nt("#"),nt("##"),nt("###")]},St={match:t(/`/,K,/`/)},mt={className:"variable",match:/\$\d+/},At={className:"variable",match:`\\$${$}+`},Rt=[St,mt,At],at={match:/(@|#(un)?)available/,className:"keyword",starts:{contains:[{begin:/\(/,end:/\)/,keywords:S,contains:[...xe,ce,ze]}]}},$e={className:"keyword",match:t(/@/,i(...E))},hr={className:"meta",match:t(/@/,K)},rt=[at,$e,hr],He={match:e(/\b[A-Z]/),relevance:0,contains:[{className:"type",match:t(/(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)/,$,"+")},{className:"type",match:f,relevance:0},{match:/[?!]+/,relevance:0},{match:/\.\.\./,relevance:0},{match:t(/\s+&\s+/,e(f)),relevance:0}]},Br={begin://,keywords:Q,contains:[...G,...j,...rt,Ee,He]};He.contains.push(Br);const cr={match:t(K,/\s*:/),keywords:"_|0",relevance:0},vr={begin:/\(/,end:/\)/,relevance:0,keywords:Q,contains:["self",cr,...G,...j,...le,...xe,ce,ze,...Rt,...rt,He]},W={begin://,contains:[...G,He]},_e={begin:i(e(t(K,/\s*:/)),e(t(K,/\s+/,K,/\s*:/))),end:/:/,relevance:0,contains:[{className:"keyword",match:/\b_\b/},{className:"params",match:K}]},we={begin:/\(/,end:/\)/,keywords:Q,contains:[_e,...G,...j,...xe,ce,ze,...rt,He,vr],endsParent:!0,illegal:/["']/},Ne={match:[/func/,/\s+/,i(St.match,K,R)],className:{1:"keyword",3:"title.function"},contains:[W,we,x],illegal:[/\[/,/%/]},Je={match:[/\b(?:subscript|init[?!]?)/,/\s*(?=[<(])/],className:{1:"keyword"},contains:[W,we,x],illegal:/\[|%/},ye={match:[/operator/,/\s+/,R],className:{1:"keyword",3:"title"}},Ht={begin:[/precedencegroup/,/\s+/,f],className:{1:"keyword",3:"title"},contains:[He],keywords:[...p,...u],end:/}/};for(const ut of ze.variants){const It=ut.contains.find(ht=>ht.label==="interpol");It.keywords=Q;const Vr=[...j,...le,...xe,ce,ze,...Rt];It.contains=[...Vr,{begin:/\(/,end:/\)/,contains:["self",...Vr]}]}return{name:"Swift",keywords:Q,contains:[...G,Ne,Je,{beginKeywords:"struct protocol class extension enum actor",end:"\\{",excludeEnd:!0,keywords:Q,contains:[k.inherit(k.TITLE_MODE,{className:"title.class",begin:/[A-Za-z$_][\u00C0-\u02B80-9A-Za-z$_]*/}),...j]},ye,Ht,{beginKeywords:"import",end:/$/,contains:[...G],relevance:0},...j,...le,...xe,ce,ze,...Rt,...rt,He,vr]}}return _f=N,_f}var Sf,Qv;function Y$(){if(Qv)return Sf;Qv=1;function n(e){return{name:"Tagger Script",contains:[{className:"comment",begin:/\$noop\(/,end:/\)/,contains:[{begin:/\\[()]/},{begin:/\(/,end:/\)/,contains:[{begin:/\\[()]/},"self"]}],relevance:10},{className:"keyword",begin:/\$[_a-zA-Z0-9]+(?=\()/},{className:"variable",begin:/%[_a-zA-Z0-9:]+%/},{className:"symbol",begin:/\\[\\nt$%,()]/},{className:"symbol",begin:/\\u[a-fA-F0-9]{4}/}]}}return Sf=n,Sf}var Of,qv;function $$(){if(qv)return Of;qv=1;function n(e){const t="true false yes no null",r="[\\w#;/?:@&=+$,.~*'()[\\]]+",i={className:"attr",variants:[{begin:"\\w[\\w :\\/.-]*:(?=[ ]|$)"},{begin:'"\\w[\\w :\\/.-]*":(?=[ ]|$)'},{begin:"'\\w[\\w :\\/.-]*':(?=[ ]|$)"}]},s={className:"template-variable",variants:[{begin:/\{\{/,end:/\}\}/},{begin:/%\{/,end:/\}/}]},a={className:"string",relevance:0,variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/\S+/}],contains:[e.BACKSLASH_ESCAPE,s]},o=e.inherit(a,{variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/[^\s,{}[\]]+/}]}),l="[0-9]{4}(-[0-9][0-9]){0,2}",c="([Tt \\t][0-9][0-9]?(:[0-9][0-9]){2})?",u="(\\.[0-9]*)?",p="([ \\t])*(Z|[-+][0-9][0-9]?(:[0-9][0-9])?)?",m={className:"number",begin:"\\b"+l+c+u+p+"\\b"},_={end:",",endsWithParent:!0,excludeEnd:!0,keywords:t,relevance:0},T={begin:/\{/,end:/\}/,contains:[_],illegal:"\\n",relevance:0},I={begin:"\\[",end:"\\]",contains:[_],illegal:"\\n",relevance:0},R=[i,{className:"meta",begin:"^---\\s*$",relevance:10},{className:"string",begin:"[\\|>]([1-9]?[+-])?[ ]*\\n( +)[^ ][^\\n]*\\n(\\2[^\\n]+\\n?)*"},{begin:"<%[%=-]?",end:"[%-]?%>",subLanguage:"ruby",excludeBegin:!0,excludeEnd:!0,relevance:0},{className:"type",begin:"!\\w+!"+r},{className:"type",begin:"!<"+r+">"},{className:"type",begin:"!"+r},{className:"type",begin:"!!"+r},{className:"meta",begin:"&"+e.UNDERSCORE_IDENT_RE+"$"},{className:"meta",begin:"\\*"+e.UNDERSCORE_IDENT_RE+"$"},{className:"bullet",begin:"-(?=[ ]|$)",relevance:0},e.HASH_COMMENT_MODE,{beginKeywords:t,keywords:{literal:t}},m,{className:"number",begin:e.C_NUMBER_RE+"\\b",relevance:0},T,I,a],L=[...R];return L.pop(),L.push(o),_.contains=L,{name:"YAML",case_insensitive:!0,aliases:["yml"],contains:R}}return Of=n,Of}var Ef,Vv;function G$(){if(Vv)return Ef;Vv=1;function n(e){return{name:"Test Anything Protocol",case_insensitive:!0,contains:[e.HASH_COMMENT_MODE,{className:"meta",variants:[{begin:"^TAP version (\\d+)$"},{begin:"^1\\.\\.(\\d+)$"}]},{begin:/---$/,end:"\\.\\.\\.$",subLanguage:"yaml",relevance:0},{className:"number",begin:" (\\d+) "},{className:"symbol",variants:[{begin:"^ok"},{begin:"^not ok"}]}]}}return Ef=n,Ef}var bf,zv;function Q$(){if(zv)return bf;zv=1;function n(e){const t=e.regex,r=/[a-zA-Z_][a-zA-Z0-9_]*/,i={className:"number",variants:[e.BINARY_NUMBER_MODE,e.C_NUMBER_MODE]};return{name:"Tcl",aliases:["tk"],keywords:["after","append","apply","array","auto_execok","auto_import","auto_load","auto_mkindex","auto_mkindex_old","auto_qualify","auto_reset","bgerror","binary","break","catch","cd","chan","clock","close","concat","continue","dde","dict","encoding","eof","error","eval","exec","exit","expr","fblocked","fconfigure","fcopy","file","fileevent","filename","flush","for","foreach","format","gets","glob","global","history","http","if","incr","info","interp","join","lappend|10","lassign|10","lindex|10","linsert|10","list","llength|10","load","lrange|10","lrepeat|10","lreplace|10","lreverse|10","lsearch|10","lset|10","lsort|10","mathfunc","mathop","memory","msgcat","namespace","open","package","parray","pid","pkg::create","pkg_mkIndex","platform","platform::shell","proc","puts","pwd","read","refchan","regexp","registry","regsub|10","rename","return","safe","scan","seek","set","socket","source","split","string","subst","switch","tcl_endOfWord","tcl_findLibrary","tcl_startOfNextWord","tcl_startOfPreviousWord","tcl_wordBreakAfter","tcl_wordBreakBefore","tcltest","tclvars","tell","time","tm","trace","unknown","unload","unset","update","uplevel","upvar","variable","vwait","while"],contains:[e.COMMENT(";[ \\t]*#","$"),e.COMMENT("^[ \\t]*#","$"),{beginKeywords:"proc",end:"[\\{]",excludeEnd:!0,contains:[{className:"title",begin:"[ \\t\\n\\r]+(::)?[a-zA-Z_]((::)?[a-zA-Z0-9_])*",end:"[ \\t\\n\\r]",endsWithParent:!0,excludeEnd:!0}]},{className:"variable",variants:[{begin:t.concat(/\$/,t.optional(/::/),r,"(::",r,")*")},{begin:"\\$\\{(::)?[a-zA-Z_]((::)?[a-zA-Z0-9_])*",end:"\\}",contains:[i]}]},{className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[e.inherit(e.QUOTE_STRING_MODE,{illegal:null})]},i]}}return bf=n,bf}var vf,Hv;function q$(){if(Hv)return vf;Hv=1;function n(e){const t=["bool","byte","i16","i32","i64","double","string","binary"];return{name:"Thrift",keywords:{keyword:["namespace","const","typedef","struct","enum","service","exception","void","oneway","set","list","map","required","optional"],type:t,literal:"true false"},contains:[e.QUOTE_STRING_MODE,e.NUMBER_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"class",beginKeywords:"struct enum service exception",end:/\{/,illegal:/\n/,contains:[e.inherit(e.TITLE_MODE,{starts:{endsWithParent:!0,excludeEnd:!0}})]},{begin:"\\b(set|list|map)\\s*<",keywords:{type:[...t,"set","list","map"]},end:">",contains:["self"]}]}}return vf=n,vf}var Tf,Wv;function V$(){if(Wv)return Tf;Wv=1;function n(e){const t={className:"number",begin:"[1-9][0-9]*",relevance:0},r={className:"symbol",begin:":[^\\]]+"},i={className:"built_in",begin:"(AR|P|PAYLOAD|PR|R|SR|RSR|LBL|VR|UALM|MESSAGE|UTOOL|UFRAME|TIMER|TIMER_OVERFLOW|JOINT_MAX_SPEED|RESUME_PROG|DIAG_REC)\\[",end:"\\]",contains:["self",t,r]},s={className:"built_in",begin:"(AI|AO|DI|DO|F|RI|RO|UI|UO|GI|GO|SI|SO)\\[",end:"\\]",contains:["self",t,e.QUOTE_STRING_MODE,r]};return{name:"TP",keywords:{keyword:["ABORT","ACC","ADJUST","AND","AP_LD","BREAK","CALL","CNT","COL","CONDITION","CONFIG","DA","DB","DIV","DETECT","ELSE","END","ENDFOR","ERR_NUM","ERROR_PROG","FINE","FOR","GP","GUARD","INC","IF","JMP","LINEAR_MAX_SPEED","LOCK","MOD","MONITOR","OFFSET","Offset","OR","OVERRIDE","PAUSE","PREG","PTH","RT_LD","RUN","SELECT","SKIP","Skip","TA","TB","TO","TOOL_OFFSET","Tool_Offset","UF","UT","UFRAME_NUM","UTOOL_NUM","UNLOCK","WAIT","X","Y","Z","W","P","R","STRLEN","SUBSTR","FINDSTR","VOFFSET","PROG","ATTR","MN","POS"],literal:["ON","OFF","max_speed","LPOS","JPOS","ENABLE","DISABLE","START","STOP","RESET"]},contains:[i,s,{className:"keyword",begin:"/(PROG|ATTR|MN|POS|END)\\b"},{className:"keyword",begin:"(CALL|RUN|POINT_LOGIC|LBL)\\b"},{className:"keyword",begin:"\\b(ACC|CNT|Skip|Offset|PSPD|RT_LD|AP_LD|Tool_Offset)"},{className:"number",begin:"\\d+(sec|msec|mm/sec|cm/min|inch/min|deg/sec|mm|in|cm)?\\b",relevance:0},e.COMMENT("//","[;$]"),e.COMMENT("!","[;$]"),e.COMMENT("--eg:","$"),e.QUOTE_STRING_MODE,{className:"string",begin:"'",end:"'"},e.C_NUMBER_MODE,{className:"variable",begin:"\\$[A-Za-z0-9_]+"}]}}return Tf=n,Tf}var Cf,Xv;function z$(){if(Xv)return Cf;Xv=1;function n(e){const t=e.regex,r=["absolute_url","asset|0","asset_version","attribute","block","constant","controller|0","country_timezones","csrf_token","cycle","date","dump","expression","form|0","form_end","form_errors","form_help","form_label","form_rest","form_row","form_start","form_widget","html_classes","include","is_granted","logout_path","logout_url","max","min","parent","path|0","random","range","relative_path","render","render_esi","source","template_from_string","url|0"],i=["abs","abbr_class","abbr_method","batch","capitalize","column","convert_encoding","country_name","currency_name","currency_symbol","data_uri","date","date_modify","default","escape","file_excerpt","file_link","file_relative","filter","first","format","format_args","format_args_as_text","format_currency","format_date","format_datetime","format_file","format_file_from_text","format_number","format_time","html_to_markdown","humanize","inky_to_html","inline_css","join","json_encode","keys","language_name","last","length","locale_name","lower","map","markdown","markdown_to_html","merge","nl2br","number_format","raw","reduce","replace","reverse","round","slice","slug","sort","spaceless","split","striptags","timezone_name","title","trans","transchoice","trim","u|0","upper","url_encode","yaml_dump","yaml_encode"];let s=["apply","autoescape","block","cache","deprecated","do","embed","extends","filter","flush","for","form_theme","from","if","import","include","macro","sandbox","set","stopwatch","trans","trans_default_domain","transchoice","use","verbatim","with"];s=s.concat(s.map(I=>`end${I}`));const a={scope:"string",variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/}]},o={scope:"number",match:/\d+/},l={begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,contains:[a,o]},c={beginKeywords:r.join(" "),keywords:{name:r},relevance:0,contains:[l]},u={match:/\|(?=[A-Za-z_]+:?)/,beginScope:"punctuation",relevance:0,contains:[{match:/[A-Za-z_]+:?/,keywords:i}]},p=(I,{relevance:R})=>({beginScope:{1:"template-tag",3:"name"},relevance:R||2,endScope:"template-tag",begin:[/\{%/,/\s*/,t.either(...I)],end:/%\}/,keywords:"in",contains:[u,c,a,o]}),m=/[a-z_]+/,_=p(s,{relevance:2}),T=p([m],{relevance:1});return{name:"Twig",aliases:["craftcms"],case_insensitive:!0,subLanguage:"xml",contains:[e.COMMENT(/\{#/,/#\}/),_,T,{className:"template-variable",begin:/\{\{/,end:/\}\}/,contains:["self",u,c,a,o]}]}}return Cf=n,Cf}var yf,Zv;function H$(){if(Zv)return yf;Zv=1;const n="[A-Za-z$_][0-9A-Za-z$_]*",e=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends"],t=["true","false","null","undefined","NaN","Infinity"],r=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],i=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],s=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],a=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","global"],o=[].concat(s,r,i);function l(u){const p=u.regex,m=(ke,{after:Ze})=>{const Le="",end:""},I=/<[A-Za-z0-9\\._:-]+\s*\/>/,R={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(ke,Ze)=>{const Le=ke[0].length+ke.index,tt=ke.input[Le];if(tt==="<"||tt===","){Ze.ignoreMatch();return}tt===">"&&(m(ke,{after:Le})||Ze.ignoreMatch());let nt;const ze=ke.input.substring(Le);if(nt=ze.match(/^\s*=/)){Ze.ignoreMatch();return}if((nt=ze.match(/^\s+extends\s+/))&&nt.index===0){Ze.ignoreMatch();return}}},L={$pattern:n,keyword:e,literal:t,built_in:o,"variable.language":a},$="[0-9](_?[0-9])*",K=`\\.(${$})`,f="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",E={className:"number",variants:[{begin:`(\\b(${f})((${K})|\\.)?|(${K}))[eE][+-]?(${$})\\b`},{begin:`\\b(${f})\\b((${K})\\b|\\.)?|(${K})\\b`},{begin:"\\b(0|[1-9](_?[0-9])*)n\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*n?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*n?\\b"},{begin:"\\b0[0-7]+n?\\b"}],relevance:0},S={className:"subst",begin:"\\$\\{",end:"\\}",keywords:L,contains:[]},N={begin:"html`",end:"",starts:{end:"`",returnEnd:!1,contains:[u.BACKSLASH_ESCAPE,S],subLanguage:"xml"}},k={begin:"css`",end:"",starts:{end:"`",returnEnd:!1,contains:[u.BACKSLASH_ESCAPE,S],subLanguage:"css"}},x={begin:"gql`",end:"",starts:{end:"`",returnEnd:!1,contains:[u.BACKSLASH_ESCAPE,S],subLanguage:"graphql"}},M={className:"string",begin:"`",end:"`",contains:[u.BACKSLASH_ESCAPE,S]},te={className:"comment",variants:[u.COMMENT(/\/\*\*(?!\/)/,"\\*/",{relevance:0,contains:[{begin:"(?=@[A-Za-z]+)",relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"},{className:"type",begin:"\\{",end:"\\}",excludeEnd:!0,excludeBegin:!0,relevance:0},{className:"variable",begin:_+"(?=\\s*(-)|$)",endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),u.C_BLOCK_COMMENT_MODE,u.C_LINE_COMMENT_MODE]},ne=[u.APOS_STRING_MODE,u.QUOTE_STRING_MODE,N,k,x,M,{match:/\$\d+/},E];S.contains=ne.concat({begin:/\{/,end:/\}/,keywords:L,contains:["self"].concat(ne)});const re=[].concat(te,S.contains),ee=re.concat([{begin:/\(/,end:/\)/,keywords:L,contains:["self"].concat(re)}]),B={className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:L,contains:ee},Q={variants:[{match:[/class/,/\s+/,_,/\s+/,/extends/,/\s+/,p.concat(_,"(",p.concat(/\./,_),")*")],scope:{1:"keyword",3:"title.class",5:"keyword",7:"title.class.inherited"}},{match:[/class/,/\s+/,_],scope:{1:"keyword",3:"title.class"}}]},j={relevance:0,match:p.either(/\bJSON/,/\b[A-Z][a-z]+([A-Z][a-z]*|\d)*/,/\b[A-Z]{2,}([A-Z][a-z]+|\d)+([A-Z][a-z]*)*/,/\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\d)*([A-Z][a-z]*)*/),className:"title.class",keywords:{_:[...r,...i]}},Z={label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},ue={variants:[{match:[/function/,/\s+/,_,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:"keyword",3:"title.function"},label:"func.def",contains:[B],illegal:/%/},le={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"};function Ee(ke){return p.concat("(?!",ke.join("|"),")")}const De={match:p.concat(/\b/,Ee([...s,"super","import"]),_,p.lookahead(/\(/)),className:"title.function",relevance:0},xe={begin:p.concat(/\./,p.lookahead(p.concat(_,/(?![0-9A-Za-z$_(])/))),end:_,excludeBegin:!0,keywords:"prototype",className:"property",relevance:0},be={match:[/get|set/,/\s+/,_,/(?=\()/],className:{1:"keyword",3:"title.function"},contains:[{begin:/\(\)/},B]},Re="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+u.UNDERSCORE_IDENT_RE+")\\s*=>",ce={match:[/const|var|let/,/\s+/,_,/\s*/,/=\s*/,/(async\s*)?/,p.lookahead(Re)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[B]};return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:L,exports:{PARAMS_CONTAINS:ee,CLASS_REFERENCE:j},illegal:/#(?![$_A-z])/,contains:[u.SHEBANG({label:"shebang",binary:"node",relevance:5}),Z,u.APOS_STRING_MODE,u.QUOTE_STRING_MODE,N,k,x,M,te,{match:/\$\d+/},E,j,{className:"attr",begin:_+p.lookahead(":"),relevance:0},ce,{begin:"("+u.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[te,u.REGEXP_MODE,{className:"function",begin:Re,returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:u.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:L,contains:ee}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:T.begin,end:T.end},{match:I},{begin:R.begin,"on:begin":R.isTrulyOpeningTag,end:R.end}],subLanguage:"xml",contains:[{begin:R.begin,end:R.end,skip:!0,contains:["self"]}]}]},ue,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+u.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[B,u.inherit(u.TITLE_MODE,{begin:_,className:"title.function"})]},{match:/\.\.\./,relevance:0},xe,{match:"\\$"+_,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[B]},De,le,Q,be,{match:/\$[(.]/}]}}function c(u){const p=l(u),m=n,_=["any","void","number","boolean","string","object","never","symbol","bigint","unknown"],T={beginKeywords:"namespace",end:/\{/,excludeEnd:!0,contains:[p.exports.CLASS_REFERENCE]},I={beginKeywords:"interface",end:/\{/,excludeEnd:!0,keywords:{keyword:"interface extends",built_in:_},contains:[p.exports.CLASS_REFERENCE]},R={className:"meta",relevance:10,begin:/^\s*['"]use strict['"]/},L=["type","namespace","interface","public","private","protected","implements","declare","abstract","readonly","enum","override"],$={$pattern:n,keyword:e.concat(L),literal:t,built_in:o.concat(_),"variable.language":a},K={className:"meta",begin:"@"+m},f=(S,N,k)=>{const x=S.contains.findIndex(M=>M.label===N);if(x===-1)throw new Error("can not find mode to replace");S.contains.splice(x,1,k)};Object.assign(p.keywords,$),p.exports.PARAMS_CONTAINS.push(K),p.contains=p.contains.concat([K,T,I]),f(p,"shebang",u.SHEBANG()),f(p,"use_strict",R);const E=p.contains.find(S=>S.label==="func.def");return E.relevance=0,Object.assign(p,{name:"TypeScript",aliases:["ts","tsx","mts","cts"]}),p}return yf=c,yf}var Af,Kv;function W$(){if(Kv)return Af;Kv=1;function n(e){return{name:"Vala",keywords:{keyword:"char uchar unichar int uint long ulong short ushort int8 int16 int32 int64 uint8 uint16 uint32 uint64 float double bool struct enum string void weak unowned owned async signal static abstract interface override virtual delegate if while do for foreach else switch case break default return try catch public private protected internal using new this get set const stdout stdin stderr var",built_in:"DBus GLib CCode Gee Object Gtk Posix",literal:"false true null"},contains:[{className:"class",beginKeywords:"class interface namespace",end:/\{/,excludeEnd:!0,illegal:"[^,:\\n\\s\\.]",contains:[e.UNDERSCORE_TITLE_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"string",begin:'"""',end:'"""',relevance:5},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_NUMBER_MODE,{className:"meta",begin:"^#",end:"$"}]}}return Af=n,Af}var If,jv;function X$(){if(jv)return If;jv=1;function n(e){const t=e.regex,r={className:"string",begin:/"(""|[^/n])"C\b/},i={className:"string",begin:/"/,end:/"/,illegal:/\n/,contains:[{begin:/""/}]},s=/\d{1,2}\/\d{1,2}\/\d{4}/,a=/\d{4}-\d{1,2}-\d{1,2}/,o=/(\d|1[012])(:\d+){0,2} *(AM|PM)/,l=/\d{1,2}(:\d{1,2}){1,2}/,c={className:"literal",variants:[{begin:t.concat(/# */,t.either(a,s),/ *#/)},{begin:t.concat(/# */,l,/ *#/)},{begin:t.concat(/# */,o,/ *#/)},{begin:t.concat(/# */,t.either(a,s),/ +/,t.either(o,l),/ *#/)}]},u={className:"number",relevance:0,variants:[{begin:/\b\d[\d_]*((\.[\d_]+(E[+-]?[\d_]+)?)|(E[+-]?[\d_]+))[RFD@!#]?/},{begin:/\b\d[\d_]*((U?[SIL])|[%&])?/},{begin:/&H[\dA-F_]+((U?[SIL])|[%&])?/},{begin:/&O[0-7_]+((U?[SIL])|[%&])?/},{begin:/&B[01_]+((U?[SIL])|[%&])?/}]},p={className:"label",begin:/^\w+:/},m=e.COMMENT(/'''/,/$/,{contains:[{className:"doctag",begin:/<\/?/,end:/>/}]}),_=e.COMMENT(null,/$/,{variants:[{begin:/'/},{begin:/([\t ]|^)REM(?=\s)/}]});return{name:"Visual Basic .NET",aliases:["vb"],case_insensitive:!0,classNameAliases:{label:"symbol"},keywords:{keyword:"addhandler alias aggregate ansi as async assembly auto binary by byref byval call case catch class compare const continue custom declare default delegate dim distinct do each equals else elseif end enum erase error event exit explicit finally for friend from function get global goto group handles if implements imports in inherits interface into iterator join key let lib loop me mid module mustinherit mustoverride mybase myclass namespace narrowing new next notinheritable notoverridable of off on operator option optional order overloads overridable overrides paramarray partial preserve private property protected public raiseevent readonly redim removehandler resume return select set shadows shared skip static step stop structure strict sub synclock take text then throw to try unicode until using when where while widening with withevents writeonly yield",built_in:"addressof and andalso await directcast gettype getxmlnamespace is isfalse isnot istrue like mod nameof new not or orelse trycast typeof xor cbool cbyte cchar cdate cdbl cdec cint clng cobj csbyte cshort csng cstr cuint culng cushort",type:"boolean byte char date decimal double integer long object sbyte short single string uinteger ulong ushort",literal:"true false nothing"},illegal:"//|\\{|\\}|endif|gosub|variant|wend|^\\$ ",contains:[r,i,c,u,p,m,_,{className:"meta",begin:/[\t ]*#(const|disable|else|elseif|enable|end|externalsource|if|region)\b/,end:/$/,keywords:{keyword:"const disable else elseif enable end externalsource if region then"},contains:[_]}]}}return If=n,If}var Rf,Jv;function Z$(){if(Jv)return Rf;Jv=1;function n(e){const t=e.regex,r=["lcase","month","vartype","instrrev","ubound","setlocale","getobject","rgb","getref","string","weekdayname","rnd","dateadd","monthname","now","day","minute","isarray","cbool","round","formatcurrency","conversions","csng","timevalue","second","year","space","abs","clng","timeserial","fixs","len","asc","isempty","maths","dateserial","atn","timer","isobject","filter","weekday","datevalue","ccur","isdate","instr","datediff","formatdatetime","replace","isnull","right","sgn","array","snumeric","log","cdbl","hex","chr","lbound","msgbox","ucase","getlocale","cos","cdate","cbyte","rtrim","join","hour","oct","typename","trim","strcomp","int","createobject","loadpicture","tan","formatnumber","mid","split","cint","sin","datepart","ltrim","sqr","time","derived","eval","date","formatpercent","exp","inputbox","left","ascw","chrw","regexp","cstr","err"],i=["server","response","request","scriptengine","scriptenginebuildversion","scriptengineminorversion","scriptenginemajorversion"],s={begin:t.concat(t.either(...r),"\\s*\\("),relevance:0,keywords:{built_in:r}};return{name:"VBScript",aliases:["vbs"],case_insensitive:!0,keywords:{keyword:["call","class","const","dim","do","loop","erase","execute","executeglobal","exit","for","each","next","function","if","then","else","on","error","option","explicit","new","private","property","let","get","public","randomize","redim","rem","select","case","set","stop","sub","while","wend","with","end","to","elseif","is","or","xor","and","not","class_initialize","class_terminate","default","preserve","in","me","byval","byref","step","resume","goto"],built_in:i,literal:["true","false","null","nothing","empty"]},illegal:"//",contains:[s,e.inherit(e.QUOTE_STRING_MODE,{contains:[{begin:'""'}]}),e.COMMENT(/'/,/$/,{relevance:0}),e.C_NUMBER_MODE]}}return Rf=n,Rf}var Nf,eT;function K$(){if(eT)return Nf;eT=1;function n(e){return{name:"VBScript in HTML",subLanguage:"xml",contains:[{begin:"<%",end:"%>",subLanguage:"vbscript"}]}}return Nf=n,Nf}var wf,tT;function j$(){if(tT)return wf;tT=1;function n(e){const t=e.regex,r={$pattern:/\$?[\w]+(\$[\w]+)*/,keyword:["accept_on","alias","always","always_comb","always_ff","always_latch","and","assert","assign","assume","automatic","before","begin","bind","bins","binsof","bit","break","buf|0","bufif0","bufif1","byte","case","casex","casez","cell","chandle","checker","class","clocking","cmos","config","const","constraint","context","continue","cover","covergroup","coverpoint","cross","deassign","default","defparam","design","disable","dist","do","edge","else","end","endcase","endchecker","endclass","endclocking","endconfig","endfunction","endgenerate","endgroup","endinterface","endmodule","endpackage","endprimitive","endprogram","endproperty","endspecify","endsequence","endtable","endtask","enum","event","eventually","expect","export","extends","extern","final","first_match","for","force","foreach","forever","fork","forkjoin","function","generate|5","genvar","global","highz0","highz1","if","iff","ifnone","ignore_bins","illegal_bins","implements","implies","import","incdir","include","initial","inout","input","inside","instance","int","integer","interconnect","interface","intersect","join","join_any","join_none","large","let","liblist","library","local","localparam","logic","longint","macromodule","matches","medium","modport","module","nand","negedge","nettype","new","nexttime","nmos","nor","noshowcancelled","not","notif0","notif1","or","output","package","packed","parameter","pmos","posedge","primitive","priority","program","property","protected","pull0","pull1","pulldown","pullup","pulsestyle_ondetect","pulsestyle_onevent","pure","rand","randc","randcase","randsequence","rcmos","real","realtime","ref","reg","reject_on","release","repeat","restrict","return","rnmos","rpmos","rtran","rtranif0","rtranif1","s_always","s_eventually","s_nexttime","s_until","s_until_with","scalared","sequence","shortint","shortreal","showcancelled","signed","small","soft","solve","specify","specparam","static","string","strong","strong0","strong1","struct","super","supply0","supply1","sync_accept_on","sync_reject_on","table","tagged","task","this","throughout","time","timeprecision","timeunit","tran","tranif0","tranif1","tri","tri0","tri1","triand","trior","trireg","type","typedef","union","unique","unique0","unsigned","until","until_with","untyped","use","uwire","var","vectored","virtual","void","wait","wait_order","wand","weak","weak0","weak1","while","wildcard","wire","with","within","wor","xnor","xor"],literal:["null"],built_in:["$finish","$stop","$exit","$fatal","$error","$warning","$info","$realtime","$time","$printtimescale","$bitstoreal","$bitstoshortreal","$itor","$signed","$cast","$bits","$stime","$timeformat","$realtobits","$shortrealtobits","$rtoi","$unsigned","$asserton","$assertkill","$assertpasson","$assertfailon","$assertnonvacuouson","$assertoff","$assertcontrol","$assertpassoff","$assertfailoff","$assertvacuousoff","$isunbounded","$sampled","$fell","$changed","$past_gclk","$fell_gclk","$changed_gclk","$rising_gclk","$steady_gclk","$coverage_control","$coverage_get","$coverage_save","$set_coverage_db_name","$rose","$stable","$past","$rose_gclk","$stable_gclk","$future_gclk","$falling_gclk","$changing_gclk","$display","$coverage_get_max","$coverage_merge","$get_coverage","$load_coverage_db","$typename","$unpacked_dimensions","$left","$low","$increment","$clog2","$ln","$log10","$exp","$sqrt","$pow","$floor","$ceil","$sin","$cos","$tan","$countbits","$onehot","$isunknown","$fatal","$warning","$dimensions","$right","$high","$size","$asin","$acos","$atan","$atan2","$hypot","$sinh","$cosh","$tanh","$asinh","$acosh","$atanh","$countones","$onehot0","$error","$info","$random","$dist_chi_square","$dist_erlang","$dist_exponential","$dist_normal","$dist_poisson","$dist_t","$dist_uniform","$q_initialize","$q_remove","$q_exam","$async$and$array","$async$nand$array","$async$or$array","$async$nor$array","$sync$and$array","$sync$nand$array","$sync$or$array","$sync$nor$array","$q_add","$q_full","$psprintf","$async$and$plane","$async$nand$plane","$async$or$plane","$async$nor$plane","$sync$and$plane","$sync$nand$plane","$sync$or$plane","$sync$nor$plane","$system","$display","$displayb","$displayh","$displayo","$strobe","$strobeb","$strobeh","$strobeo","$write","$readmemb","$readmemh","$writememh","$value$plusargs","$dumpvars","$dumpon","$dumplimit","$dumpports","$dumpportson","$dumpportslimit","$writeb","$writeh","$writeo","$monitor","$monitorb","$monitorh","$monitoro","$writememb","$dumpfile","$dumpoff","$dumpall","$dumpflush","$dumpportsoff","$dumpportsall","$dumpportsflush","$fclose","$fdisplay","$fdisplayb","$fdisplayh","$fdisplayo","$fstrobe","$fstrobeb","$fstrobeh","$fstrobeo","$swrite","$swriteb","$swriteh","$swriteo","$fscanf","$fread","$fseek","$fflush","$feof","$fopen","$fwrite","$fwriteb","$fwriteh","$fwriteo","$fmonitor","$fmonitorb","$fmonitorh","$fmonitoro","$sformat","$sformatf","$fgetc","$ungetc","$fgets","$sscanf","$rewind","$ftell","$ferror"]},i=["__FILE__","__LINE__"],s=["begin_keywords","celldefine","default_nettype","default_decay_time","default_trireg_strength","define","delay_mode_distributed","delay_mode_path","delay_mode_unit","delay_mode_zero","else","elsif","end_keywords","endcelldefine","endif","ifdef","ifndef","include","line","nounconnected_drive","pragma","resetall","timescale","unconnected_drive","undef","undefineall"];return{name:"Verilog",aliases:["v","sv","svh"],case_insensitive:!1,keywords:r,contains:[e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE,e.QUOTE_STRING_MODE,{scope:"number",contains:[e.BACKSLASH_ESCAPE],variants:[{begin:/\b((\d+'([bhodBHOD]))[0-9xzXZa-fA-F_]+)/},{begin:/\B(('([bhodBHOD]))[0-9xzXZa-fA-F_]+)/},{begin:/\b[0-9][0-9_]*/,relevance:0}]},{scope:"variable",variants:[{begin:"#\\((?!parameter).+\\)"},{begin:"\\.\\w+",relevance:0}]},{scope:"variable.constant",match:t.concat(/`/,t.either(...i))},{scope:"meta",begin:t.concat(/`/,t.either(...s)),end:/$|\/\/|\/\*/,returnEnd:!0,keywords:s}]}}return wf=n,wf}var Df,rT;function J$(){if(rT)return Df;rT=1;function n(e){const t="\\d(_|\\d)*",r="[eE][-+]?"+t,i=t+"(\\."+t+")?("+r+")?",s="\\w+",o="\\b("+(t+"#"+s+"(\\."+s+")?#("+r+")?")+"|"+i+")";return{name:"VHDL",case_insensitive:!0,keywords:{keyword:["abs","access","after","alias","all","and","architecture","array","assert","assume","assume_guarantee","attribute","begin","block","body","buffer","bus","case","component","configuration","constant","context","cover","disconnect","downto","default","else","elsif","end","entity","exit","fairness","file","for","force","function","generate","generic","group","guarded","if","impure","in","inertial","inout","is","label","library","linkage","literal","loop","map","mod","nand","new","next","nor","not","null","of","on","open","or","others","out","package","parameter","port","postponed","procedure","process","property","protected","pure","range","record","register","reject","release","rem","report","restrict","restrict_guarantee","return","rol","ror","select","sequence","severity","shared","signal","sla","sll","sra","srl","strong","subtype","then","to","transport","type","unaffected","units","until","use","variable","view","vmode","vprop","vunit","wait","when","while","with","xnor","xor"],built_in:["boolean","bit","character","integer","time","delay_length","natural","positive","string","bit_vector","file_open_kind","file_open_status","std_logic","std_logic_vector","unsigned","signed","boolean_vector","integer_vector","std_ulogic","std_ulogic_vector","unresolved_unsigned","u_unsigned","unresolved_signed","u_signed","real_vector","time_vector"],literal:["false","true","note","warning","error","failure","line","text","side","width"]},illegal:/\{/,contains:[e.C_BLOCK_COMMENT_MODE,e.COMMENT("--","$"),e.QUOTE_STRING_MODE,{className:"number",begin:o,relevance:0},{className:"string",begin:"'(U|X|0|1|Z|W|L|H|-)'",contains:[e.BACKSLASH_ESCAPE]},{className:"symbol",begin:"'[A-Za-z](_?[A-Za-z0-9])*",contains:[e.BACKSLASH_ESCAPE]}]}}return Df=n,Df}var xf,nT;function eG(){if(nT)return xf;nT=1;function n(e){return{name:"Vim Script",keywords:{$pattern:/[!#@\w]+/,keyword:"N|0 P|0 X|0 a|0 ab abc abo al am an|0 ar arga argd arge argdo argg argl argu as au aug aun b|0 bN ba bad bd be bel bf bl bm bn bo bp br brea breaka breakd breakl bro bufdo buffers bun bw c|0 cN cNf ca cabc caddb cad caddf cal cat cb cc ccl cd ce cex cf cfir cgetb cgete cg changes chd che checkt cl cla clo cm cmapc cme cn cnew cnf cno cnorea cnoreme co col colo com comc comp con conf cope cp cpf cq cr cs cst cu cuna cunme cw delm deb debugg delc delf dif diffg diffo diffp diffpu diffs diffthis dig di dl dell dj dli do doautoa dp dr ds dsp e|0 ea ec echoe echoh echom echon el elsei em en endfo endf endt endw ene ex exe exi exu f|0 files filet fin fina fini fir fix fo foldc foldd folddoc foldo for fu go gr grepa gu gv ha helpf helpg helpt hi hid his ia iabc if ij il im imapc ime ino inorea inoreme int is isp iu iuna iunme j|0 ju k|0 keepa kee keepj lN lNf l|0 lad laddb laddf la lan lat lb lc lch lcl lcs le lefta let lex lf lfir lgetb lgete lg lgr lgrepa lh ll lla lli lmak lm lmapc lne lnew lnf ln loadk lo loc lockv lol lope lp lpf lr ls lt lu lua luad luaf lv lvimgrepa lw m|0 ma mak map mapc marks mat me menut mes mk mks mksp mkv mkvie mod mz mzf nbc nb nbs new nm nmapc nme nn nnoreme noa no noh norea noreme norm nu nun nunme ol o|0 om omapc ome on ono onoreme opt ou ounme ow p|0 profd prof pro promptr pc ped pe perld po popu pp pre prev ps pt ptN ptf ptj ptl ptn ptp ptr pts pu pw py3 python3 py3d py3f py pyd pyf quita qa rec red redi redr redraws reg res ret retu rew ri rightb rub rubyd rubyf rund ru rv sN san sa sal sav sb sbN sba sbf sbl sbm sbn sbp sbr scrip scripte scs se setf setg setl sf sfir sh sim sig sil sl sla sm smap smapc sme sn sni sno snor snoreme sor so spelld spe spelli spellr spellu spellw sp spr sre st sta startg startr star stopi stj sts sun sunm sunme sus sv sw sy synti sync tN tabN tabc tabdo tabe tabf tabfir tabl tabm tabnew tabn tabo tabp tabr tabs tab ta tags tc tcld tclf te tf th tj tl tm tn to tp tr try ts tu u|0 undoj undol una unh unl unlo unm unme uns up ve verb vert vim vimgrepa vi viu vie vm vmapc vme vne vn vnoreme vs vu vunme windo w|0 wN wa wh wi winc winp wn wp wq wqa ws wu wv x|0 xa xmapc xm xme xn xnoreme xu xunme y|0 z|0 ~ Next Print append abbreviate abclear aboveleft all amenu anoremenu args argadd argdelete argedit argglobal arglocal argument ascii autocmd augroup aunmenu buffer bNext ball badd bdelete behave belowright bfirst blast bmodified bnext botright bprevious brewind break breakadd breakdel breaklist browse bunload bwipeout change cNext cNfile cabbrev cabclear caddbuffer caddexpr caddfile call catch cbuffer cclose center cexpr cfile cfirst cgetbuffer cgetexpr cgetfile chdir checkpath checktime clist clast close cmap cmapclear cmenu cnext cnewer cnfile cnoremap cnoreabbrev cnoremenu copy colder colorscheme command comclear compiler continue confirm copen cprevious cpfile cquit crewind cscope cstag cunmap cunabbrev cunmenu cwindow delete delmarks debug debuggreedy delcommand delfunction diffupdate diffget diffoff diffpatch diffput diffsplit digraphs display deletel djump dlist doautocmd doautoall deletep drop dsearch dsplit edit earlier echo echoerr echohl echomsg else elseif emenu endif endfor endfunction endtry endwhile enew execute exit exusage file filetype find finally finish first fixdel fold foldclose folddoopen folddoclosed foldopen function global goto grep grepadd gui gvim hardcopy help helpfind helpgrep helptags highlight hide history insert iabbrev iabclear ijump ilist imap imapclear imenu inoremap inoreabbrev inoremenu intro isearch isplit iunmap iunabbrev iunmenu join jumps keepalt keepmarks keepjumps lNext lNfile list laddexpr laddbuffer laddfile last language later lbuffer lcd lchdir lclose lcscope left leftabove lexpr lfile lfirst lgetbuffer lgetexpr lgetfile lgrep lgrepadd lhelpgrep llast llist lmake lmap lmapclear lnext lnewer lnfile lnoremap loadkeymap loadview lockmarks lockvar lolder lopen lprevious lpfile lrewind ltag lunmap luado luafile lvimgrep lvimgrepadd lwindow move mark make mapclear match menu menutranslate messages mkexrc mksession mkspell mkvimrc mkview mode mzscheme mzfile nbclose nbkey nbsart next nmap nmapclear nmenu nnoremap nnoremenu noautocmd noremap nohlsearch noreabbrev noremenu normal number nunmap nunmenu oldfiles open omap omapclear omenu only onoremap onoremenu options ounmap ounmenu ownsyntax print profdel profile promptfind promptrepl pclose pedit perl perldo pop popup ppop preserve previous psearch ptag ptNext ptfirst ptjump ptlast ptnext ptprevious ptrewind ptselect put pwd py3do py3file python pydo pyfile quit quitall qall read recover redo redir redraw redrawstatus registers resize retab return rewind right rightbelow ruby rubydo rubyfile rundo runtime rviminfo substitute sNext sandbox sargument sall saveas sbuffer sbNext sball sbfirst sblast sbmodified sbnext sbprevious sbrewind scriptnames scriptencoding scscope set setfiletype setglobal setlocal sfind sfirst shell simalt sign silent sleep slast smagic smapclear smenu snext sniff snomagic snoremap snoremenu sort source spelldump spellgood spellinfo spellrepall spellundo spellwrong split sprevious srewind stop stag startgreplace startreplace startinsert stopinsert stjump stselect sunhide sunmap sunmenu suspend sview swapname syntax syntime syncbind tNext tabNext tabclose tabedit tabfind tabfirst tablast tabmove tabnext tabonly tabprevious tabrewind tag tcl tcldo tclfile tearoff tfirst throw tjump tlast tmenu tnext topleft tprevious trewind tselect tunmenu undo undojoin undolist unabbreviate unhide unlet unlockvar unmap unmenu unsilent update vglobal version verbose vertical vimgrep vimgrepadd visual viusage view vmap vmapclear vmenu vnew vnoremap vnoremenu vsplit vunmap vunmenu write wNext wall while winsize wincmd winpos wnext wprevious wqall wsverb wundo wviminfo xit xall xmapclear xmap xmenu xnoremap xnoremenu xunmap xunmenu yank",built_in:"synIDtrans atan2 range matcharg did_filetype asin feedkeys xor argv complete_check add getwinposx getqflist getwinposy screencol clearmatches empty extend getcmdpos mzeval garbagecollect setreg ceil sqrt diff_hlID inputsecret get getfperm getpid filewritable shiftwidth max sinh isdirectory synID system inputrestore winline atan visualmode inputlist tabpagewinnr round getregtype mapcheck hasmapto histdel argidx findfile sha256 exists toupper getcmdline taglist string getmatches bufnr strftime winwidth bufexists strtrans tabpagebuflist setcmdpos remote_read printf setloclist getpos getline bufwinnr float2nr len getcmdtype diff_filler luaeval resolve libcallnr foldclosedend reverse filter has_key bufname str2float strlen setline getcharmod setbufvar index searchpos shellescape undofile foldclosed setqflist buflisted strchars str2nr virtcol floor remove undotree remote_expr winheight gettabwinvar reltime cursor tabpagenr finddir localtime acos getloclist search tanh matchend rename gettabvar strdisplaywidth type abs py3eval setwinvar tolower wildmenumode log10 spellsuggest bufloaded synconcealed nextnonblank server2client complete settabwinvar executable input wincol setmatches getftype hlID inputsave searchpair or screenrow line settabvar histadd deepcopy strpart remote_peek and eval getftime submatch screenchar winsaveview matchadd mkdir screenattr getfontname libcall reltimestr getfsize winnr invert pow getbufline byte2line soundfold repeat fnameescape tagfiles sin strwidth spellbadword trunc maparg log lispindent hostname setpos globpath remote_foreground getchar synIDattr fnamemodify cscope_connection stridx winbufnr indent min complete_add nr2char searchpairpos inputdialog values matchlist items hlexists strridx browsedir expand fmod pathshorten line2byte argc count getwinvar glob foldtextresult getreg foreground cosh matchdelete has char2nr simplify histget searchdecl iconv winrestcmd pumvisible writefile foldlevel haslocaldir keys cos matchstr foldtext histnr tan tempname getcwd byteidx getbufvar islocked escape eventhandler remote_send serverlist winrestview synstack pyeval prevnonblank readfile cindent filereadable changenr exp"},illegal:/;/,contains:[e.NUMBER_MODE,{className:"string",begin:"'",end:"'",illegal:"\\n"},{className:"string",begin:/"(\\"|\n\\|[^"\n])*"/},e.COMMENT('"',"$"),{className:"variable",begin:/[bwtglsav]:[\w\d_]+/},{begin:[/\b(?:function|function!)/,/\s+/,e.IDENT_RE],className:{1:"keyword",3:"title"},end:"$",relevance:0,contains:[{className:"params",begin:"\\(",end:"\\)"}]},{className:"symbol",begin:/<[\w-]+>/}]}}return xf=n,xf}var kf,iT;function tG(){if(iT)return kf;iT=1;function n(e){e.regex;const t=e.COMMENT(/\(;/,/;\)/);t.contains.push("self");const r=e.COMMENT(/;;/,/$/),i=["anyfunc","block","br","br_if","br_table","call","call_indirect","data","drop","elem","else","end","export","func","global.get","global.set","local.get","local.set","local.tee","get_global","get_local","global","if","import","local","loop","memory","memory.grow","memory.size","module","mut","nop","offset","param","result","return","select","set_global","set_local","start","table","tee_local","then","type","unreachable"],s={begin:[/(?:func|call|call_indirect)/,/\s+/,/\$[^\s)]+/],className:{1:"keyword",3:"title.function"}},a={className:"variable",begin:/\$[\w_]+/},o={match:/(\((?!;)|\))+/,className:"punctuation",relevance:0},l={className:"number",relevance:0,match:/[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/},c={match:/(i32|i64|f32|f64)(?!\.)/,className:"type"},u={className:"keyword",match:/\b(f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|nearest|neg?|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|store(?:8|16|32)?|sqrt|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))\b/};return{name:"WebAssembly",keywords:{$pattern:/[\w.]+/,keyword:i},contains:[r,t,{match:[/(?:offset|align)/,/\s*/,/=/],className:{1:"keyword",3:"operator"}},a,o,s,e.QUOTE_STRING_MODE,c,u,l]}}return kf=n,kf}var Lf,aT;function rG(){if(aT)return Lf;aT=1;function n(e){const t=e.regex,r=/[a-zA-Z]\w*/,i=["as","break","class","construct","continue","else","for","foreign","if","import","in","is","return","static","var","while"],s=["true","false","null"],a=["this","super"],o=["Bool","Class","Fiber","Fn","List","Map","Null","Num","Object","Range","Sequence","String","System"],l=["-","~",/\*/,"%",/\.\.\./,/\.\./,/\+/,"<<",">>",">=","<=","<",">",/\^/,/!=/,/!/,/\bis\b/,"==","&&","&",/\|\|/,/\|/,/\?:/,"="],c={relevance:0,match:t.concat(/\b(?!(if|while|for|else|super)\b)/,r,/(?=\s*[({])/),className:"title.function"},u={match:t.concat(t.either(t.concat(/\b(?!(if|while|for|else|super)\b)/,r),t.either(...l)),/(?=\s*\([^)]+\)\s*\{)/),className:"title.function",starts:{contains:[{begin:/\(/,end:/\)/,contains:[{relevance:0,scope:"params",match:r}]}]}},p={variants:[{match:[/class\s+/,r,/\s+is\s+/,r]},{match:[/class\s+/,r]}],scope:{2:"title.class",4:"title.class.inherited"},keywords:i},m={relevance:0,match:t.either(...l),className:"operator"},_={className:"string",begin:/"""/,end:/"""/},T={className:"property",begin:t.concat(/\./,t.lookahead(r)),end:r,excludeBegin:!0,relevance:0},I={relevance:0,match:t.concat(/\b_/,r),scope:"variable"},R={relevance:0,match:/\b[A-Z]+[a-z]+([A-Z]+[a-z]+)*/,scope:"title.class",keywords:{_:o}},L=e.C_NUMBER_MODE,$={match:[r,/\s*/,/=/,/\s*/,/\(/,r,/\)\s*\{/],scope:{1:"title.function",3:"operator",6:"params"}},K=e.COMMENT(/\/\*\*/,/\*\//,{contains:[{match:/@[a-z]+/,scope:"doctag"},"self"]}),f={scope:"subst",begin:/%\(/,end:/\)/,contains:[L,R,c,I,m]},E={scope:"string",begin:/"/,end:/"/,contains:[f,{scope:"char.escape",variants:[{match:/\\\\|\\["0%abefnrtv]/},{match:/\\x[0-9A-F]{2}/},{match:/\\u[0-9A-F]{4}/},{match:/\\U[0-9A-F]{8}/}]}]};f.contains.push(E);const S=[...i,...a,...s],N={relevance:0,match:t.concat("\\b(?!",S.join("|"),"\\b)",/[a-zA-Z_]\w*(?:[?!]|\b)/),className:"variable"};return{name:"Wren",keywords:{keyword:i,"variable.language":a,literal:s},contains:[{scope:"comment",variants:[{begin:[/#!?/,/[A-Za-z_]+(?=\()/],beginScope:{},keywords:{literal:s},contains:[],end:/\)/},{begin:[/#!?/,/[A-Za-z_]+/],beginScope:{},end:/$/}]},L,E,_,K,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,R,p,$,u,c,m,I,T,N]}}return Lf=n,Lf}var Mf,sT;function nG(){if(sT)return Mf;sT=1;function n(e){return{name:"Intel x86 Assembly",case_insensitive:!0,keywords:{$pattern:"[.%]?"+e.IDENT_RE,keyword:"lock rep repe repz repne repnz xaquire xrelease bnd nobnd aaa aad aam aas adc add and arpl bb0_reset bb1_reset bound bsf bsr bswap bt btc btr bts call cbw cdq cdqe clc cld cli clts cmc cmp cmpsb cmpsd cmpsq cmpsw cmpxchg cmpxchg486 cmpxchg8b cmpxchg16b cpuid cpu_read cpu_write cqo cwd cwde daa das dec div dmint emms enter equ f2xm1 fabs fadd faddp fbld fbstp fchs fclex fcmovb fcmovbe fcmove fcmovnb fcmovnbe fcmovne fcmovnu fcmovu fcom fcomi fcomip fcomp fcompp fcos fdecstp fdisi fdiv fdivp fdivr fdivrp femms feni ffree ffreep fiadd ficom ficomp fidiv fidivr fild fimul fincstp finit fist fistp fisttp fisub fisubr fld fld1 fldcw fldenv fldl2e fldl2t fldlg2 fldln2 fldpi fldz fmul fmulp fnclex fndisi fneni fninit fnop fnsave fnstcw fnstenv fnstsw fpatan fprem fprem1 fptan frndint frstor fsave fscale fsetpm fsin fsincos fsqrt fst fstcw fstenv fstp fstsw fsub fsubp fsubr fsubrp ftst fucom fucomi fucomip fucomp fucompp fxam fxch fxtract fyl2x fyl2xp1 hlt ibts icebp idiv imul in inc incbin insb insd insw int int01 int1 int03 int3 into invd invpcid invlpg invlpga iret iretd iretq iretw jcxz jecxz jrcxz jmp jmpe lahf lar lds lea leave les lfence lfs lgdt lgs lidt lldt lmsw loadall loadall286 lodsb lodsd lodsq lodsw loop loope loopne loopnz loopz lsl lss ltr mfence monitor mov movd movq movsb movsd movsq movsw movsx movsxd movzx mul mwait neg nop not or out outsb outsd outsw packssdw packsswb packuswb paddb paddd paddsb paddsiw paddsw paddusb paddusw paddw pand pandn pause paveb pavgusb pcmpeqb pcmpeqd pcmpeqw pcmpgtb pcmpgtd pcmpgtw pdistib pf2id pfacc pfadd pfcmpeq pfcmpge pfcmpgt pfmax pfmin pfmul pfrcp pfrcpit1 pfrcpit2 pfrsqit1 pfrsqrt pfsub pfsubr pi2fd pmachriw pmaddwd pmagw pmulhriw pmulhrwa pmulhrwc pmulhw pmullw pmvgezb pmvlzb pmvnzb pmvzb pop popa popad popaw popf popfd popfq popfw por prefetch prefetchw pslld psllq psllw psrad psraw psrld psrlq psrlw psubb psubd psubsb psubsiw psubsw psubusb psubusw psubw punpckhbw punpckhdq punpckhwd punpcklbw punpckldq punpcklwd push pusha pushad pushaw pushf pushfd pushfq pushfw pxor rcl rcr rdshr rdmsr rdpmc rdtsc rdtscp ret retf retn rol ror rdm rsdc rsldt rsm rsts sahf sal salc sar sbb scasb scasd scasq scasw sfence sgdt shl shld shr shrd sidt sldt skinit smi smint smintold smsw stc std sti stosb stosd stosq stosw str sub svdc svldt svts swapgs syscall sysenter sysexit sysret test ud0 ud1 ud2b ud2 ud2a umov verr verw fwait wbinvd wrshr wrmsr xadd xbts xchg xlatb xlat xor cmove cmovz cmovne cmovnz cmova cmovnbe cmovae cmovnb cmovb cmovnae cmovbe cmovna cmovg cmovnle cmovge cmovnl cmovl cmovnge cmovle cmovng cmovc cmovnc cmovo cmovno cmovs cmovns cmovp cmovpe cmovnp cmovpo je jz jne jnz ja jnbe jae jnb jb jnae jbe jna jg jnle jge jnl jl jnge jle jng jc jnc jo jno js jns jpo jnp jpe jp sete setz setne setnz seta setnbe setae setnb setnc setb setnae setcset setbe setna setg setnle setge setnl setl setnge setle setng sets setns seto setno setpe setp setpo setnp addps addss andnps andps cmpeqps cmpeqss cmpleps cmpless cmpltps cmpltss cmpneqps cmpneqss cmpnleps cmpnless cmpnltps cmpnltss cmpordps cmpordss cmpunordps cmpunordss cmpps cmpss comiss cvtpi2ps cvtps2pi cvtsi2ss cvtss2si cvttps2pi cvttss2si divps divss ldmxcsr maxps maxss minps minss movaps movhps movlhps movlps movhlps movmskps movntps movss movups mulps mulss orps rcpps rcpss rsqrtps rsqrtss shufps sqrtps sqrtss stmxcsr subps subss ucomiss unpckhps unpcklps xorps fxrstor fxrstor64 fxsave fxsave64 xgetbv xsetbv xsave xsave64 xsaveopt xsaveopt64 xrstor xrstor64 prefetchnta prefetcht0 prefetcht1 prefetcht2 maskmovq movntq pavgb pavgw pextrw pinsrw pmaxsw pmaxub pminsw pminub pmovmskb pmulhuw psadbw pshufw pf2iw pfnacc pfpnacc pi2fw pswapd maskmovdqu clflush movntdq movnti movntpd movdqa movdqu movdq2q movq2dq paddq pmuludq pshufd pshufhw pshuflw pslldq psrldq psubq punpckhqdq punpcklqdq addpd addsd andnpd andpd cmpeqpd cmpeqsd cmplepd cmplesd cmpltpd cmpltsd cmpneqpd cmpneqsd cmpnlepd cmpnlesd cmpnltpd cmpnltsd cmpordpd cmpordsd cmpunordpd cmpunordsd cmppd comisd cvtdq2pd cvtdq2ps cvtpd2dq cvtpd2pi cvtpd2ps cvtpi2pd cvtps2dq cvtps2pd cvtsd2si cvtsd2ss cvtsi2sd cvtss2sd cvttpd2pi cvttpd2dq cvttps2dq cvttsd2si divpd divsd maxpd maxsd minpd minsd movapd movhpd movlpd movmskpd movupd mulpd mulsd orpd shufpd sqrtpd sqrtsd subpd subsd ucomisd unpckhpd unpcklpd xorpd addsubpd addsubps haddpd haddps hsubpd hsubps lddqu movddup movshdup movsldup clgi stgi vmcall vmclear vmfunc vmlaunch vmload vmmcall vmptrld vmptrst vmread vmresume vmrun vmsave vmwrite vmxoff vmxon invept invvpid pabsb pabsw pabsd palignr phaddw phaddd phaddsw phsubw phsubd phsubsw pmaddubsw pmulhrsw pshufb psignb psignw psignd extrq insertq movntsd movntss lzcnt blendpd blendps blendvpd blendvps dppd dpps extractps insertps movntdqa mpsadbw packusdw pblendvb pblendw pcmpeqq pextrb pextrd pextrq phminposuw pinsrb pinsrd pinsrq pmaxsb pmaxsd pmaxud pmaxuw pminsb pminsd pminud pminuw pmovsxbw pmovsxbd pmovsxbq pmovsxwd pmovsxwq pmovsxdq pmovzxbw pmovzxbd pmovzxbq pmovzxwd pmovzxwq pmovzxdq pmuldq pmulld ptest roundpd roundps roundsd roundss crc32 pcmpestri pcmpestrm pcmpistri pcmpistrm pcmpgtq popcnt getsec pfrcpv pfrsqrtv movbe aesenc aesenclast aesdec aesdeclast aesimc aeskeygenassist vaesenc vaesenclast vaesdec vaesdeclast vaesimc vaeskeygenassist vaddpd vaddps vaddsd vaddss vaddsubpd vaddsubps vandpd vandps vandnpd vandnps vblendpd vblendps vblendvpd vblendvps vbroadcastss vbroadcastsd vbroadcastf128 vcmpeq_ospd vcmpeqpd vcmplt_ospd vcmpltpd vcmple_ospd vcmplepd vcmpunord_qpd vcmpunordpd vcmpneq_uqpd vcmpneqpd vcmpnlt_uspd vcmpnltpd vcmpnle_uspd vcmpnlepd vcmpord_qpd vcmpordpd vcmpeq_uqpd vcmpnge_uspd vcmpngepd vcmpngt_uspd vcmpngtpd vcmpfalse_oqpd vcmpfalsepd vcmpneq_oqpd vcmpge_ospd vcmpgepd vcmpgt_ospd vcmpgtpd vcmptrue_uqpd vcmptruepd vcmplt_oqpd vcmple_oqpd vcmpunord_spd vcmpneq_uspd vcmpnlt_uqpd vcmpnle_uqpd vcmpord_spd vcmpeq_uspd vcmpnge_uqpd vcmpngt_uqpd vcmpfalse_ospd vcmpneq_ospd vcmpge_oqpd vcmpgt_oqpd vcmptrue_uspd vcmppd vcmpeq_osps vcmpeqps vcmplt_osps vcmpltps vcmple_osps vcmpleps vcmpunord_qps vcmpunordps vcmpneq_uqps vcmpneqps vcmpnlt_usps vcmpnltps vcmpnle_usps vcmpnleps vcmpord_qps vcmpordps vcmpeq_uqps vcmpnge_usps vcmpngeps vcmpngt_usps vcmpngtps vcmpfalse_oqps vcmpfalseps vcmpneq_oqps vcmpge_osps vcmpgeps vcmpgt_osps vcmpgtps vcmptrue_uqps vcmptrueps vcmplt_oqps vcmple_oqps vcmpunord_sps vcmpneq_usps vcmpnlt_uqps vcmpnle_uqps vcmpord_sps vcmpeq_usps vcmpnge_uqps vcmpngt_uqps vcmpfalse_osps vcmpneq_osps vcmpge_oqps vcmpgt_oqps vcmptrue_usps vcmpps vcmpeq_ossd vcmpeqsd vcmplt_ossd vcmpltsd vcmple_ossd vcmplesd vcmpunord_qsd vcmpunordsd vcmpneq_uqsd vcmpneqsd vcmpnlt_ussd vcmpnltsd vcmpnle_ussd vcmpnlesd vcmpord_qsd vcmpordsd vcmpeq_uqsd vcmpnge_ussd vcmpngesd vcmpngt_ussd vcmpngtsd vcmpfalse_oqsd vcmpfalsesd vcmpneq_oqsd vcmpge_ossd vcmpgesd vcmpgt_ossd vcmpgtsd vcmptrue_uqsd vcmptruesd vcmplt_oqsd vcmple_oqsd vcmpunord_ssd vcmpneq_ussd vcmpnlt_uqsd vcmpnle_uqsd vcmpord_ssd vcmpeq_ussd vcmpnge_uqsd vcmpngt_uqsd vcmpfalse_ossd vcmpneq_ossd vcmpge_oqsd vcmpgt_oqsd vcmptrue_ussd vcmpsd vcmpeq_osss vcmpeqss vcmplt_osss vcmpltss vcmple_osss vcmpless vcmpunord_qss vcmpunordss vcmpneq_uqss vcmpneqss vcmpnlt_usss vcmpnltss vcmpnle_usss vcmpnless vcmpord_qss vcmpordss vcmpeq_uqss vcmpnge_usss vcmpngess vcmpngt_usss vcmpngtss vcmpfalse_oqss vcmpfalsess vcmpneq_oqss vcmpge_osss vcmpgess vcmpgt_osss vcmpgtss vcmptrue_uqss vcmptruess vcmplt_oqss vcmple_oqss vcmpunord_sss vcmpneq_usss vcmpnlt_uqss vcmpnle_uqss vcmpord_sss vcmpeq_usss vcmpnge_uqss vcmpngt_uqss vcmpfalse_osss vcmpneq_osss vcmpge_oqss vcmpgt_oqss vcmptrue_usss vcmpss vcomisd vcomiss vcvtdq2pd vcvtdq2ps vcvtpd2dq vcvtpd2ps vcvtps2dq vcvtps2pd vcvtsd2si vcvtsd2ss vcvtsi2sd vcvtsi2ss vcvtss2sd vcvtss2si vcvttpd2dq vcvttps2dq vcvttsd2si vcvttss2si vdivpd vdivps vdivsd vdivss vdppd vdpps vextractf128 vextractps vhaddpd vhaddps vhsubpd vhsubps vinsertf128 vinsertps vlddqu vldqqu vldmxcsr vmaskmovdqu vmaskmovps vmaskmovpd vmaxpd vmaxps vmaxsd vmaxss vminpd vminps vminsd vminss vmovapd vmovaps vmovd vmovq vmovddup vmovdqa vmovqqa vmovdqu vmovqqu vmovhlps vmovhpd vmovhps vmovlhps vmovlpd vmovlps vmovmskpd vmovmskps vmovntdq vmovntqq vmovntdqa vmovntpd vmovntps vmovsd vmovshdup vmovsldup vmovss vmovupd vmovups vmpsadbw vmulpd vmulps vmulsd vmulss vorpd vorps vpabsb vpabsw vpabsd vpacksswb vpackssdw vpackuswb vpackusdw vpaddb vpaddw vpaddd vpaddq vpaddsb vpaddsw vpaddusb vpaddusw vpalignr vpand vpandn vpavgb vpavgw vpblendvb vpblendw vpcmpestri vpcmpestrm vpcmpistri vpcmpistrm vpcmpeqb vpcmpeqw vpcmpeqd vpcmpeqq vpcmpgtb vpcmpgtw vpcmpgtd vpcmpgtq vpermilpd vpermilps vperm2f128 vpextrb vpextrw vpextrd vpextrq vphaddw vphaddd vphaddsw vphminposuw vphsubw vphsubd vphsubsw vpinsrb vpinsrw vpinsrd vpinsrq vpmaddwd vpmaddubsw vpmaxsb vpmaxsw vpmaxsd vpmaxub vpmaxuw vpmaxud vpminsb vpminsw vpminsd vpminub vpminuw vpminud vpmovmskb vpmovsxbw vpmovsxbd vpmovsxbq vpmovsxwd vpmovsxwq vpmovsxdq vpmovzxbw vpmovzxbd vpmovzxbq vpmovzxwd vpmovzxwq vpmovzxdq vpmulhuw vpmulhrsw vpmulhw vpmullw vpmulld vpmuludq vpmuldq vpor vpsadbw vpshufb vpshufd vpshufhw vpshuflw vpsignb vpsignw vpsignd vpslldq vpsrldq vpsllw vpslld vpsllq vpsraw vpsrad vpsrlw vpsrld vpsrlq vptest vpsubb vpsubw vpsubd vpsubq vpsubsb vpsubsw vpsubusb vpsubusw vpunpckhbw vpunpckhwd vpunpckhdq vpunpckhqdq vpunpcklbw vpunpcklwd vpunpckldq vpunpcklqdq vpxor vrcpps vrcpss vrsqrtps vrsqrtss vroundpd vroundps vroundsd vroundss vshufpd vshufps vsqrtpd vsqrtps vsqrtsd vsqrtss vstmxcsr vsubpd vsubps vsubsd vsubss vtestps vtestpd vucomisd vucomiss vunpckhpd vunpckhps vunpcklpd vunpcklps vxorpd vxorps vzeroall vzeroupper pclmullqlqdq pclmulhqlqdq pclmullqhqdq pclmulhqhqdq pclmulqdq vpclmullqlqdq vpclmulhqlqdq vpclmullqhqdq vpclmulhqhqdq vpclmulqdq vfmadd132ps vfmadd132pd vfmadd312ps vfmadd312pd vfmadd213ps vfmadd213pd vfmadd123ps vfmadd123pd vfmadd231ps vfmadd231pd vfmadd321ps vfmadd321pd vfmaddsub132ps vfmaddsub132pd vfmaddsub312ps vfmaddsub312pd vfmaddsub213ps vfmaddsub213pd vfmaddsub123ps vfmaddsub123pd vfmaddsub231ps vfmaddsub231pd vfmaddsub321ps vfmaddsub321pd vfmsub132ps vfmsub132pd vfmsub312ps vfmsub312pd vfmsub213ps vfmsub213pd vfmsub123ps vfmsub123pd vfmsub231ps vfmsub231pd vfmsub321ps vfmsub321pd vfmsubadd132ps vfmsubadd132pd vfmsubadd312ps vfmsubadd312pd vfmsubadd213ps vfmsubadd213pd vfmsubadd123ps vfmsubadd123pd vfmsubadd231ps vfmsubadd231pd vfmsubadd321ps vfmsubadd321pd vfnmadd132ps vfnmadd132pd vfnmadd312ps vfnmadd312pd vfnmadd213ps vfnmadd213pd vfnmadd123ps vfnmadd123pd vfnmadd231ps vfnmadd231pd vfnmadd321ps vfnmadd321pd vfnmsub132ps vfnmsub132pd vfnmsub312ps vfnmsub312pd vfnmsub213ps vfnmsub213pd vfnmsub123ps vfnmsub123pd vfnmsub231ps vfnmsub231pd vfnmsub321ps vfnmsub321pd vfmadd132ss vfmadd132sd vfmadd312ss vfmadd312sd vfmadd213ss vfmadd213sd vfmadd123ss vfmadd123sd vfmadd231ss vfmadd231sd vfmadd321ss vfmadd321sd vfmsub132ss vfmsub132sd vfmsub312ss vfmsub312sd vfmsub213ss vfmsub213sd vfmsub123ss vfmsub123sd vfmsub231ss vfmsub231sd vfmsub321ss vfmsub321sd vfnmadd132ss vfnmadd132sd vfnmadd312ss vfnmadd312sd vfnmadd213ss vfnmadd213sd vfnmadd123ss vfnmadd123sd vfnmadd231ss vfnmadd231sd vfnmadd321ss vfnmadd321sd vfnmsub132ss vfnmsub132sd vfnmsub312ss vfnmsub312sd vfnmsub213ss vfnmsub213sd vfnmsub123ss vfnmsub123sd vfnmsub231ss vfnmsub231sd vfnmsub321ss vfnmsub321sd rdfsbase rdgsbase rdrand wrfsbase wrgsbase vcvtph2ps vcvtps2ph adcx adox rdseed clac stac xstore xcryptecb xcryptcbc xcryptctr xcryptcfb xcryptofb montmul xsha1 xsha256 llwpcb slwpcb lwpval lwpins vfmaddpd vfmaddps vfmaddsd vfmaddss vfmaddsubpd vfmaddsubps vfmsubaddpd vfmsubaddps vfmsubpd vfmsubps vfmsubsd vfmsubss vfnmaddpd vfnmaddps vfnmaddsd vfnmaddss vfnmsubpd vfnmsubps vfnmsubsd vfnmsubss vfrczpd vfrczps vfrczsd vfrczss vpcmov vpcomb vpcomd vpcomq vpcomub vpcomud vpcomuq vpcomuw vpcomw vphaddbd vphaddbq vphaddbw vphadddq vphaddubd vphaddubq vphaddubw vphaddudq vphadduwd vphadduwq vphaddwd vphaddwq vphsubbw vphsubdq vphsubwd vpmacsdd vpmacsdqh vpmacsdql vpmacssdd vpmacssdqh vpmacssdql vpmacsswd vpmacssww vpmacswd vpmacsww vpmadcsswd vpmadcswd vpperm vprotb vprotd vprotq vprotw vpshab vpshad vpshaq vpshaw vpshlb vpshld vpshlq vpshlw vbroadcasti128 vpblendd vpbroadcastb vpbroadcastw vpbroadcastd vpbroadcastq vpermd vpermpd vpermps vpermq vperm2i128 vextracti128 vinserti128 vpmaskmovd vpmaskmovq vpsllvd vpsllvq vpsravd vpsrlvd vpsrlvq vgatherdpd vgatherqpd vgatherdps vgatherqps vpgatherdd vpgatherqd vpgatherdq vpgatherqq xabort xbegin xend xtest andn bextr blci blcic blsi blsic blcfill blsfill blcmsk blsmsk blsr blcs bzhi mulx pdep pext rorx sarx shlx shrx tzcnt tzmsk t1mskc valignd valignq vblendmpd vblendmps vbroadcastf32x4 vbroadcastf64x4 vbroadcasti32x4 vbroadcasti64x4 vcompresspd vcompressps vcvtpd2udq vcvtps2udq vcvtsd2usi vcvtss2usi vcvttpd2udq vcvttps2udq vcvttsd2usi vcvttss2usi vcvtudq2pd vcvtudq2ps vcvtusi2sd vcvtusi2ss vexpandpd vexpandps vextractf32x4 vextractf64x4 vextracti32x4 vextracti64x4 vfixupimmpd vfixupimmps vfixupimmsd vfixupimmss vgetexppd vgetexpps vgetexpsd vgetexpss vgetmantpd vgetmantps vgetmantsd vgetmantss vinsertf32x4 vinsertf64x4 vinserti32x4 vinserti64x4 vmovdqa32 vmovdqa64 vmovdqu32 vmovdqu64 vpabsq vpandd vpandnd vpandnq vpandq vpblendmd vpblendmq vpcmpltd vpcmpled vpcmpneqd vpcmpnltd vpcmpnled vpcmpd vpcmpltq vpcmpleq vpcmpneqq vpcmpnltq vpcmpnleq vpcmpq vpcmpequd vpcmpltud vpcmpleud vpcmpnequd vpcmpnltud vpcmpnleud vpcmpud vpcmpequq vpcmpltuq vpcmpleuq vpcmpnequq vpcmpnltuq vpcmpnleuq vpcmpuq vpcompressd vpcompressq vpermi2d vpermi2pd vpermi2ps vpermi2q vpermt2d vpermt2pd vpermt2ps vpermt2q vpexpandd vpexpandq vpmaxsq vpmaxuq vpminsq vpminuq vpmovdb vpmovdw vpmovqb vpmovqd vpmovqw vpmovsdb vpmovsdw vpmovsqb vpmovsqd vpmovsqw vpmovusdb vpmovusdw vpmovusqb vpmovusqd vpmovusqw vpord vporq vprold vprolq vprolvd vprolvq vprord vprorq vprorvd vprorvq vpscatterdd vpscatterdq vpscatterqd vpscatterqq vpsraq vpsravq vpternlogd vpternlogq vptestmd vptestmq vptestnmd vptestnmq vpxord vpxorq vrcp14pd vrcp14ps vrcp14sd vrcp14ss vrndscalepd vrndscaleps vrndscalesd vrndscaless vrsqrt14pd vrsqrt14ps vrsqrt14sd vrsqrt14ss vscalefpd vscalefps vscalefsd vscalefss vscatterdpd vscatterdps vscatterqpd vscatterqps vshuff32x4 vshuff64x2 vshufi32x4 vshufi64x2 kandnw kandw kmovw knotw kortestw korw kshiftlw kshiftrw kunpckbw kxnorw kxorw vpbroadcastmb2q vpbroadcastmw2d vpconflictd vpconflictq vplzcntd vplzcntq vexp2pd vexp2ps vrcp28pd vrcp28ps vrcp28sd vrcp28ss vrsqrt28pd vrsqrt28ps vrsqrt28sd vrsqrt28ss vgatherpf0dpd vgatherpf0dps vgatherpf0qpd vgatherpf0qps vgatherpf1dpd vgatherpf1dps vgatherpf1qpd vgatherpf1qps vscatterpf0dpd vscatterpf0dps vscatterpf0qpd vscatterpf0qps vscatterpf1dpd vscatterpf1dps vscatterpf1qpd vscatterpf1qps prefetchwt1 bndmk bndcl bndcu bndcn bndmov bndldx bndstx sha1rnds4 sha1nexte sha1msg1 sha1msg2 sha256rnds2 sha256msg1 sha256msg2 hint_nop0 hint_nop1 hint_nop2 hint_nop3 hint_nop4 hint_nop5 hint_nop6 hint_nop7 hint_nop8 hint_nop9 hint_nop10 hint_nop11 hint_nop12 hint_nop13 hint_nop14 hint_nop15 hint_nop16 hint_nop17 hint_nop18 hint_nop19 hint_nop20 hint_nop21 hint_nop22 hint_nop23 hint_nop24 hint_nop25 hint_nop26 hint_nop27 hint_nop28 hint_nop29 hint_nop30 hint_nop31 hint_nop32 hint_nop33 hint_nop34 hint_nop35 hint_nop36 hint_nop37 hint_nop38 hint_nop39 hint_nop40 hint_nop41 hint_nop42 hint_nop43 hint_nop44 hint_nop45 hint_nop46 hint_nop47 hint_nop48 hint_nop49 hint_nop50 hint_nop51 hint_nop52 hint_nop53 hint_nop54 hint_nop55 hint_nop56 hint_nop57 hint_nop58 hint_nop59 hint_nop60 hint_nop61 hint_nop62 hint_nop63",built_in:"ip eip rip al ah bl bh cl ch dl dh sil dil bpl spl r8b r9b r10b r11b r12b r13b r14b r15b ax bx cx dx si di bp sp r8w r9w r10w r11w r12w r13w r14w r15w eax ebx ecx edx esi edi ebp esp eip r8d r9d r10d r11d r12d r13d r14d r15d rax rbx rcx rdx rsi rdi rbp rsp r8 r9 r10 r11 r12 r13 r14 r15 cs ds es fs gs ss st st0 st1 st2 st3 st4 st5 st6 st7 mm0 mm1 mm2 mm3 mm4 mm5 mm6 mm7 xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 xmm11 xmm12 xmm13 xmm14 xmm15 xmm16 xmm17 xmm18 xmm19 xmm20 xmm21 xmm22 xmm23 xmm24 xmm25 xmm26 xmm27 xmm28 xmm29 xmm30 xmm31 ymm0 ymm1 ymm2 ymm3 ymm4 ymm5 ymm6 ymm7 ymm8 ymm9 ymm10 ymm11 ymm12 ymm13 ymm14 ymm15 ymm16 ymm17 ymm18 ymm19 ymm20 ymm21 ymm22 ymm23 ymm24 ymm25 ymm26 ymm27 ymm28 ymm29 ymm30 ymm31 zmm0 zmm1 zmm2 zmm3 zmm4 zmm5 zmm6 zmm7 zmm8 zmm9 zmm10 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm17 zmm18 zmm19 zmm20 zmm21 zmm22 zmm23 zmm24 zmm25 zmm26 zmm27 zmm28 zmm29 zmm30 zmm31 k0 k1 k2 k3 k4 k5 k6 k7 bnd0 bnd1 bnd2 bnd3 cr0 cr1 cr2 cr3 cr4 cr8 dr0 dr1 dr2 dr3 dr8 tr3 tr4 tr5 tr6 tr7 r0 r1 r2 r3 r4 r5 r6 r7 r0b r1b r2b r3b r4b r5b r6b r7b r0w r1w r2w r3w r4w r5w r6w r7w r0d r1d r2d r3d r4d r5d r6d r7d r0h r1h r2h r3h r0l r1l r2l r3l r4l r5l r6l r7l r8l r9l r10l r11l r12l r13l r14l r15l db dw dd dq dt ddq do dy dz resb resw resd resq rest resdq reso resy resz incbin equ times byte word dword qword nosplit rel abs seg wrt strict near far a32 ptr",meta:"%define %xdefine %+ %undef %defstr %deftok %assign %strcat %strlen %substr %rotate %elif %else %endif %if %ifmacro %ifctx %ifidn %ifidni %ifid %ifnum %ifstr %iftoken %ifempty %ifenv %error %warning %fatal %rep %endrep %include %push %pop %repl %pathsearch %depend %use %arg %stacksize %local %line %comment %endcomment .nolist __FILE__ __LINE__ __SECT__ __BITS__ __OUTPUT_FORMAT__ __DATE__ __TIME__ __DATE_NUM__ __TIME_NUM__ __UTC_DATE__ __UTC_TIME__ __UTC_DATE_NUM__ __UTC_TIME_NUM__ __PASS__ struc endstruc istruc at iend align alignb sectalign daz nodaz up down zero default option assume public bits use16 use32 use64 default section segment absolute extern global common cpu float __utf16__ __utf16le__ __utf16be__ __utf32__ __utf32le__ __utf32be__ __float8__ __float16__ __float32__ __float64__ __float80m__ __float80e__ __float128l__ __float128h__ __Infinity__ __QNaN__ __SNaN__ Inf NaN QNaN SNaN float8 float16 float32 float64 float80m float80e float128l float128h __FLOAT_DAZ__ __FLOAT_ROUND__ __FLOAT__"},contains:[e.COMMENT(";","$",{relevance:0}),{className:"number",variants:[{begin:"\\b(?:([0-9][0-9_]*)?\\.[0-9_]*(?:[eE][+-]?[0-9_]+)?|(0[Xx])?[0-9][0-9_]*(\\.[0-9_]*)?(?:[pP](?:[+-]?[0-9_]+)?)?)\\b",relevance:0},{begin:"\\$[0-9][0-9A-Fa-f]*",relevance:0},{begin:"\\b(?:[0-9A-Fa-f][0-9A-Fa-f_]*[Hh]|[0-9][0-9_]*[DdTt]?|[0-7][0-7_]*[QqOo]|[0-1][0-1_]*[BbYy])\\b"},{begin:"\\b(?:0[Xx][0-9A-Fa-f_]+|0[DdTt][0-9_]+|0[QqOo][0-7_]+|0[BbYy][0-1_]+)\\b"}]},e.QUOTE_STRING_MODE,{className:"string",variants:[{begin:"'",end:"[^\\\\]'"},{begin:"`",end:"[^\\\\]`"}],relevance:0},{className:"symbol",variants:[{begin:"^\\s*[A-Za-z._?][A-Za-z0-9_$#@~.?]*(:|\\s+label)"},{begin:"^\\s*%%[A-Za-z0-9_$#@~.?]*:"}],relevance:0},{className:"subst",begin:"%[0-9]+",relevance:0},{className:"subst",begin:"%!S+",relevance:0},{className:"meta",begin:/^\s*\.[\w_-]+/}]}}return Mf=n,Mf}var Pf,oT;function iG(){if(oT)return Pf;oT=1;function n(e){const t=["if","then","else","do","while","until","for","loop","import","with","is","as","where","when","by","data","constant","integer","real","text","name","boolean","symbol","infix","prefix","postfix","block","tree"],r=["in","mod","rem","and","or","xor","not","abs","sign","floor","ceil","sqrt","sin","cos","tan","asin","acos","atan","exp","expm1","log","log2","log10","log1p","pi","at","text_length","text_range","text_find","text_replace","contains","page","slide","basic_slide","title_slide","title","subtitle","fade_in","fade_out","fade_at","clear_color","color","line_color","line_width","texture_wrap","texture_transform","texture","scale_?x","scale_?y","scale_?z?","translate_?x","translate_?y","translate_?z?","rotate_?x","rotate_?y","rotate_?z?","rectangle","circle","ellipse","sphere","path","line_to","move_to","quad_to","curve_to","theme","background","contents","locally","time","mouse_?x","mouse_?y","mouse_buttons"],i=["ObjectLoader","Animate","MovieCredits","Slides","Filters","Shading","Materials","LensFlare","Mapping","VLCAudioVideo","StereoDecoder","PointCloud","NetworkAccess","RemoteControl","RegExp","ChromaKey","Snowfall","NodeJS","Speech","Charts"],a={$pattern:/[a-zA-Z][a-zA-Z0-9_?]*/,keyword:t,literal:["true","false","nil"],built_in:r.concat(i)},o={className:"string",begin:'"',end:'"',illegal:"\\n"},l={className:"string",begin:"'",end:"'",illegal:"\\n"},c={className:"string",begin:"<<",end:">>"},u={className:"number",begin:"[0-9]+#[0-9A-Z_]+(\\.[0-9-A-Z_]+)?#?([Ee][+-]?[0-9]+)?"},p={beginKeywords:"import",end:"$",keywords:a,contains:[o]},m={className:"function",begin:/[a-z][^\n]*->/,returnBegin:!0,end:/->/,contains:[e.inherit(e.TITLE_MODE,{starts:{endsWithParent:!0,keywords:a}})]};return{name:"XL",aliases:["tao"],keywords:a,contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,o,l,c,m,p,u,e.NUMBER_MODE]}}return Pf=n,Pf}var Bf,lT;function aG(){if(lT)return Bf;lT=1;function n(e){return{name:"XQuery",aliases:["xpath","xq"],case_insensitive:!1,illegal:/(proc)|(abstract)|(extends)|(until)|(#)/,keywords:{$pattern:/[a-zA-Z$][a-zA-Z0-9_:-]*/,keyword:["module","schema","namespace","boundary-space","preserve","no-preserve","strip","default","collation","base-uri","ordering","context","decimal-format","decimal-separator","copy-namespaces","empty-sequence","except","exponent-separator","external","grouping-separator","inherit","no-inherit","lax","minus-sign","per-mille","percent","schema-attribute","schema-element","strict","unordered","zero-digit","declare","import","option","function","validate","variable","for","at","in","let","where","order","group","by","return","if","then","else","tumbling","sliding","window","start","when","only","end","previous","next","stable","ascending","descending","allowing","empty","greatest","least","some","every","satisfies","switch","case","typeswitch","try","catch","and","or","to","union","intersect","instance","of","treat","as","castable","cast","map","array","delete","insert","into","replace","value","rename","copy","modify","update"],type:["item","document-node","node","attribute","document","element","comment","namespace","namespace-node","processing-instruction","text","construction","xs:anyAtomicType","xs:untypedAtomic","xs:duration","xs:time","xs:decimal","xs:float","xs:double","xs:gYearMonth","xs:gYear","xs:gMonthDay","xs:gMonth","xs:gDay","xs:boolean","xs:base64Binary","xs:hexBinary","xs:anyURI","xs:QName","xs:NOTATION","xs:dateTime","xs:dateTimeStamp","xs:date","xs:string","xs:normalizedString","xs:token","xs:language","xs:NMTOKEN","xs:Name","xs:NCName","xs:ID","xs:IDREF","xs:ENTITY","xs:integer","xs:nonPositiveInteger","xs:negativeInteger","xs:long","xs:int","xs:short","xs:byte","xs:nonNegativeInteger","xs:unisignedLong","xs:unsignedInt","xs:unsignedShort","xs:unsignedByte","xs:positiveInteger","xs:yearMonthDuration","xs:dayTimeDuration"],literal:["eq","ne","lt","le","gt","ge","is","self::","child::","descendant::","descendant-or-self::","attribute::","following::","following-sibling::","parent::","ancestor::","ancestor-or-self::","preceding::","preceding-sibling::","NaN"]},contains:[{className:"variable",begin:/[$][\w\-:]+/},{className:"built_in",variants:[{begin:/\barray:/,end:/(?:append|filter|flatten|fold-(?:left|right)|for-each(?:-pair)?|get|head|insert-before|join|put|remove|reverse|size|sort|subarray|tail)\b/},{begin:/\bmap:/,end:/(?:contains|entry|find|for-each|get|keys|merge|put|remove|size)\b/},{begin:/\bmath:/,end:/(?:a(?:cos|sin|tan[2]?)|cos|exp(?:10)?|log(?:10)?|pi|pow|sin|sqrt|tan)\b/},{begin:/\bop:/,end:/\(/,excludeEnd:!0},{begin:/\bfn:/,end:/\(/,excludeEnd:!0},{begin:/[^/,end:/(\/[\w._:-]+>)/,subLanguage:"xml",contains:[{begin:/\{/,end:/\}/,subLanguage:"xquery"},"self"]}]}}return Bf=n,Bf}var Uf,cT;function sG(){if(cT)return Uf;cT=1;function n(e){const t={className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[e.inherit(e.APOS_STRING_MODE,{illegal:null}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null})]},r=e.UNDERSCORE_TITLE_MODE,i={variants:[e.BINARY_NUMBER_MODE,e.C_NUMBER_MODE]},s="namespace class interface use extends function return abstract final public protected private static deprecated throw try catch Exception echo empty isset instanceof unset let var new const self require if else elseif switch case default do while loop for continue break likely unlikely __LINE__ __FILE__ __DIR__ __FUNCTION__ __CLASS__ __TRAIT__ __METHOD__ __NAMESPACE__ array boolean float double integer object resource string char long unsigned bool int uint ulong uchar true false null undefined";return{name:"Zephir",aliases:["zep"],keywords:s,contains:[e.C_LINE_COMMENT_MODE,e.COMMENT(/\/\*/,/\*\//,{contains:[{className:"doctag",begin:/@[A-Za-z]+/}]}),{className:"string",begin:/<<<['"]?\w+['"]?$/,end:/^\w+;/,contains:[e.BACKSLASH_ESCAPE]},{begin:/(::|->)+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/},{className:"function",beginKeywords:"function fn",end:/[;{]/,excludeEnd:!0,illegal:/\$|\[|%/,contains:[r,{className:"params",begin:/\(/,end:/\)/,keywords:s,contains:["self",e.C_BLOCK_COMMENT_MODE,t,i]}]},{className:"class",beginKeywords:"class interface",end:/\{/,excludeEnd:!0,illegal:/[:($"]/,contains:[{beginKeywords:"extends implements"},r]},{beginKeywords:"namespace",end:/;/,illegal:/[.']/,contains:[r]},{beginKeywords:"use",end:/;/,contains:[r]},{begin:/=>/},t,i]}}return Uf=n,Uf}var J=wU;J.registerLanguage("1c",DU());J.registerLanguage("abnf",xU());J.registerLanguage("accesslog",kU());J.registerLanguage("actionscript",LU());J.registerLanguage("ada",MU());J.registerLanguage("angelscript",PU());J.registerLanguage("apache",BU());J.registerLanguage("applescript",UU());J.registerLanguage("arcade",FU());J.registerLanguage("arduino",YU());J.registerLanguage("armasm",$U());J.registerLanguage("xml",GU());J.registerLanguage("asciidoc",QU());J.registerLanguage("aspectj",qU());J.registerLanguage("autohotkey",VU());J.registerLanguage("autoit",zU());J.registerLanguage("avrasm",HU());J.registerLanguage("awk",WU());J.registerLanguage("axapta",XU());J.registerLanguage("bash",ZU());J.registerLanguage("basic",KU());J.registerLanguage("bnf",jU());J.registerLanguage("brainfuck",JU());J.registerLanguage("c",eF());J.registerLanguage("cal",tF());J.registerLanguage("capnproto",rF());J.registerLanguage("ceylon",nF());J.registerLanguage("clean",iF());J.registerLanguage("clojure",aF());J.registerLanguage("clojure-repl",sF());J.registerLanguage("cmake",oF());J.registerLanguage("coffeescript",lF());J.registerLanguage("coq",cF());J.registerLanguage("cos",uF());J.registerLanguage("cpp",dF());J.registerLanguage("crmsh",pF());J.registerLanguage("crystal",hF());J.registerLanguage("csharp",fF());J.registerLanguage("csp",mF());J.registerLanguage("css",gF());J.registerLanguage("d",_F());J.registerLanguage("markdown",SF());J.registerLanguage("dart",OF());J.registerLanguage("delphi",EF());J.registerLanguage("diff",bF());J.registerLanguage("django",vF());J.registerLanguage("dns",TF());J.registerLanguage("dockerfile",CF());J.registerLanguage("dos",yF());J.registerLanguage("dsconfig",AF());J.registerLanguage("dts",IF());J.registerLanguage("dust",RF());J.registerLanguage("ebnf",NF());J.registerLanguage("elixir",wF());J.registerLanguage("elm",DF());J.registerLanguage("ruby",xF());J.registerLanguage("erb",kF());J.registerLanguage("erlang-repl",LF());J.registerLanguage("erlang",MF());J.registerLanguage("excel",PF());J.registerLanguage("fix",BF());J.registerLanguage("flix",UF());J.registerLanguage("fortran",FF());J.registerLanguage("fsharp",YF());J.registerLanguage("gams",$F());J.registerLanguage("gauss",GF());J.registerLanguage("gcode",QF());J.registerLanguage("gherkin",qF());J.registerLanguage("glsl",VF());J.registerLanguage("gml",zF());J.registerLanguage("go",HF());J.registerLanguage("golo",WF());J.registerLanguage("gradle",XF());J.registerLanguage("graphql",ZF());J.registerLanguage("groovy",KF());J.registerLanguage("haml",jF());J.registerLanguage("handlebars",JF());J.registerLanguage("haskell",eY());J.registerLanguage("haxe",tY());J.registerLanguage("hsp",rY());J.registerLanguage("http",nY());J.registerLanguage("hy",iY());J.registerLanguage("inform7",aY());J.registerLanguage("ini",sY());J.registerLanguage("irpf90",oY());J.registerLanguage("isbl",lY());J.registerLanguage("java",cY());J.registerLanguage("javascript",uY());J.registerLanguage("jboss-cli",dY());J.registerLanguage("json",pY());J.registerLanguage("julia",hY());J.registerLanguage("julia-repl",fY());J.registerLanguage("kotlin",mY());J.registerLanguage("lasso",gY());J.registerLanguage("latex",_Y());J.registerLanguage("ldif",SY());J.registerLanguage("leaf",OY());J.registerLanguage("less",EY());J.registerLanguage("lisp",bY());J.registerLanguage("livecodeserver",vY());J.registerLanguage("livescript",TY());J.registerLanguage("llvm",CY());J.registerLanguage("lsl",yY());J.registerLanguage("lua",AY());J.registerLanguage("makefile",IY());J.registerLanguage("mathematica",RY());J.registerLanguage("matlab",NY());J.registerLanguage("maxima",wY());J.registerLanguage("mel",DY());J.registerLanguage("mercury",xY());J.registerLanguage("mipsasm",kY());J.registerLanguage("mizar",LY());J.registerLanguage("perl",MY());J.registerLanguage("mojolicious",PY());J.registerLanguage("monkey",BY());J.registerLanguage("moonscript",UY());J.registerLanguage("n1ql",FY());J.registerLanguage("nestedtext",YY());J.registerLanguage("nginx",$Y());J.registerLanguage("nim",GY());J.registerLanguage("nix",QY());J.registerLanguage("node-repl",qY());J.registerLanguage("nsis",VY());J.registerLanguage("objectivec",zY());J.registerLanguage("ocaml",HY());J.registerLanguage("openscad",WY());J.registerLanguage("oxygene",XY());J.registerLanguage("parser3",ZY());J.registerLanguage("pf",KY());J.registerLanguage("pgsql",jY());J.registerLanguage("php",JY());J.registerLanguage("php-template",e$());J.registerLanguage("plaintext",t$());J.registerLanguage("pony",r$());J.registerLanguage("powershell",n$());J.registerLanguage("processing",i$());J.registerLanguage("profile",a$());J.registerLanguage("prolog",s$());J.registerLanguage("properties",o$());J.registerLanguage("protobuf",l$());J.registerLanguage("puppet",c$());J.registerLanguage("purebasic",u$());J.registerLanguage("python",d$());J.registerLanguage("python-repl",p$());J.registerLanguage("q",h$());J.registerLanguage("qml",f$());J.registerLanguage("r",m$());J.registerLanguage("reasonml",g$());J.registerLanguage("rib",_$());J.registerLanguage("roboconf",S$());J.registerLanguage("routeros",O$());J.registerLanguage("rsl",E$());J.registerLanguage("ruleslanguage",b$());J.registerLanguage("rust",v$());J.registerLanguage("sas",T$());J.registerLanguage("scala",C$());J.registerLanguage("scheme",y$());J.registerLanguage("scilab",A$());J.registerLanguage("scss",I$());J.registerLanguage("shell",R$());J.registerLanguage("smali",N$());J.registerLanguage("smalltalk",w$());J.registerLanguage("sml",D$());J.registerLanguage("sqf",x$());J.registerLanguage("sql",k$());J.registerLanguage("stan",L$());J.registerLanguage("stata",M$());J.registerLanguage("step21",P$());J.registerLanguage("stylus",B$());J.registerLanguage("subunit",U$());J.registerLanguage("swift",F$());J.registerLanguage("taggerscript",Y$());J.registerLanguage("yaml",$$());J.registerLanguage("tap",G$());J.registerLanguage("tcl",Q$());J.registerLanguage("thrift",q$());J.registerLanguage("tp",V$());J.registerLanguage("twig",z$());J.registerLanguage("typescript",H$());J.registerLanguage("vala",W$());J.registerLanguage("vbnet",X$());J.registerLanguage("vbscript",Z$());J.registerLanguage("vbscript-html",K$());J.registerLanguage("verilog",j$());J.registerLanguage("vhdl",J$());J.registerLanguage("vim",eG());J.registerLanguage("wasm",tG());J.registerLanguage("wren",rG());J.registerLanguage("x86asm",nG());J.registerLanguage("xl",iG());J.registerLanguage("xquery",aG());J.registerLanguage("zephir",sG());J.HighlightJS=J;J.default=J;var oG=J,lG=BB.decode,cG=VI,Ff=oG,Yf='class="',uG=function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=e.pre,r=t===void 0?!1:t,i=e.auto_detection,s=i===void 0?!0:i,a=function(l,c,u){var p={left:"
]*>",right:"
",flags:"g"},m=function(T,I,R,L){I=lG(I);var $=(R.match(/class=\"([^ \"]+)/)||[])[1];if(!$&&!s)return T;if(R.includes(Yf)){var K=R.indexOf(Yf)+Yf.length;R=R.slice(0,K)+"hljs "+R.slice(K)}else R=R.slice(0,-1)+' class="hljs">';return r&&$&&(R=R.replace("
",'
')),$&&Ff.getLanguage($)?R+Ff.highlight(I,{language:$}).value+L:R+Ff.highlightAuto(I).value+L};return cG.helper.replaceRecursiveRegExp(l,m,p.left,p.right,p.flags)};return[{type:"output",filter:a}]};const dG=QI(uG);zI.setFlavor("github");localStorage.openpages=Date.now();window.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);const uT={h1:"text-white lg:text-4xl text-xl lg:ml-4 lg:mx-4 mx-2 lg:my-4 my-2 lg:mb-4 mb-4 bg-neutral-900 rounded-lg py-2 px-2",h2:"text-white lg:text-3xl text-xl lg:ml-4 lg:mx-4 mx-2 lg:my-4 my-2 lg:mb-4 mb-4 bg-neutral-900 rounded-lg py-2 px-2",h3:"text-white lg:text-2xl text-xl lg:ml-4 lg:mx-4 mx-2 lg:my-4 my-2 lg:mb-4 mb-4 bg-neutral-700 rounded-lg py-2 px-2 lg:mt-16",ul:"text-underline pl-6",li:"list-disc lg:text-2xl text-base text-white lg:mx-4 mx-2 my-4 my-2 leading-normal",p:"lg:text-2xl text-base text-white lg:mx-6 mx-2 my-4 leading-normal",warning:"animate-pulse lg:text-2xl font-bold text-rose-600 lg:mx-6 mx-2 my-4 leading-normal",a:"lg:text-2xl text-base text-orange-300",code:"lg:my-4 sm:my-1 text-base lg:text-xl block whitespace-pre overflow-x-hidden",icode:"lg:my-1 my-1 lg:text-xl sm:text-xs text-white font-mono bg-neutral-600",ic:"lg:my-1 my-1 lg:text-xl sm:text-xs text-white font-mono bg-neutral-600",blockquote:"text-neutral-200 border-l-4 border-neutral-500 pl-4 my-4 mx-4",details:"lg:mx-12 py-2 px-6 lg:text-2xl text-white rounded-lg bg-neutral-600",summary:"font-semibold text-xl",table:"justify-center lg:my-12 my-2 lg:mx-12 mx-2 lg:text-2xl text-base w-full text-left text-white border-collapse",thead:"text-xs text-gray-700 uppercase bg-gray-50 dark:bg-gray-700 dark:text-gray-400",th:"",td:"",tr:""},pG=Object.keys(uT).map(n=>({type:"output",regex:new RegExp(`<${n}([^>]*)>`,"g"),replace:(e,t)=>`<${n} class="${uT[n]}" ${t}>`}));class hG{constructor(){b(this,"universes",Ao);b(this,"selected_universe");b(this,"local_index",1);b(this,"editor_mode","global");b(this,"fontSize");b(this,"withLineNumbers");b(this,"vimModeCompartment");b(this,"hoveringCompartment");b(this,"chosenLanguage");b(this,"currentDocumentationPane","introduction");b(this,"exampleCounter",0);b(this,"exampleIsPlaying",!1);b(this,"settings",new qM);b(this,"editorExtensions",[]);b(this,"userPlugins",[]);b(this,"state");b(this,"api");b(this,"selectedExample","");b(this,"docs",{});b(this,"audioContext");b(this,"view");b(this,"clock");b(this,"manualPlay",!1);b(this,"isPlaying",!1);b(this,"_mouseX",0);b(this,"_mouseY",0);b(this,"topos_logo",document.getElementById("topos-logo"));b(this,"play_buttons",[document.getElementById("play-button-1")]);b(this,"stop_buttons",[document.getElementById("stop-button-1")]);b(this,"clear_buttons",[document.getElementById("clear-button-1")]);b(this,"load_universe_button",document.getElementById("load-universe-button"));b(this,"download_universe_button",document.getElementById("download-universes"));b(this,"upload_universe_button",document.getElementById("upload-universes"));b(this,"destroy_universes_button",document.getElementById("destroy-universes"));b(this,"documentation_button",document.getElementById("doc-button-1"));b(this,"eval_button",document.getElementById("eval-button-1"));b(this,"local_button",document.getElementById("local-button"));b(this,"global_button",document.getElementById("global-button"));b(this,"init_button",document.getElementById("init-button"));b(this,"note_button",document.getElementById("note-button"));b(this,"settings_button",document.getElementById("settings-button"));b(this,"close_settings_button",document.getElementById("close-settings-button"));b(this,"close_universes_button",document.getElementById("close-universes-button"));b(this,"universe_viewer",document.getElementById("universe-viewer"));b(this,"buffer_modal",document.getElementById("modal-buffers"));b(this,"buffer_search",document.getElementById("buffer-search"));b(this,"universe_creator",document.getElementById("universe-creator"));b(this,"local_script_tabs",document.getElementById("local-script-tabs"));b(this,"font_size_input",document.getElementById("font-size-input"));b(this,"font_family_selector",document.getElementById("font-family"));b(this,"vim_mode_checkbox",document.getElementById("vim-mode"));b(this,"line_numbers_checkbox",document.getElementById("show-line-numbers"));b(this,"time_position_checkbox",document.getElementById("show-time-position"));b(this,"tips_checkbox",document.getElementById("show-tips"));b(this,"midi_clock_checkbox",document.getElementById("send-midi-clock"));b(this,"midi_channels_scripts",document.getElementById("midi-channels-scripts"));b(this,"midi_clock_ppqn",document.getElementById("midi-clock-ppqn-input"));b(this,"load_demo_songs",document.getElementById("load-demo-songs"));b(this,"normal_mode_button",document.getElementById("normal-mode"));b(this,"vim_mode_button",document.getElementById("vim-mode"));b(this,"share_button",document.getElementById("share-button"));b(this,"error_line",document.getElementById("error_line"));b(this,"show_error",!1);b(this,"hydra_canvas",document.getElementById("hydra-bg"));b(this,"hydra_backend",new Hydra({canvas:this.hydra_canvas,detectAudio:!1,enableStreamCapture:!1}));b(this,"hydra",this.hydra_backend.synth);b(this,"emptyUrl",()=>{window.history.replaceState({},document.title,"/")});b(this,"parseHash",e=>JSON.parse(e));b(this,"updateKnownUniversesView",()=>{let e=document.getElementById("existing-universes"),t=Object.keys(this.universes),r="
    ";t.forEach(i=>{r+=` +`},{className:"string",begin:"\\d{4}-\\d{2}-\\d{2}(\\s+)\\d{2}:\\d{2}:\\d{2}.\\d+Z"},{className:"string",begin:"(\\+|-)\\d+"},{className:"keyword",relevance:10,variants:[{begin:"^(test|testing|success|successful|failure|error|skip|xfail|uxsuccess)(:?)\\s+(test)?"},{begin:"^progress(:?)(\\s+)?(pop|push)?"},{begin:"^tags:"},{begin:"^time:"}]}]}}return gf=n,gf}var _f,Gv;function F$(){if(Gv)return _f;Gv=1;function n(k){return k?typeof k=="string"?k:k.source:null}function e(k){return t("(?=",k,")")}function t(...k){return k.map(M=>n(M)).join("")}function r(k){const x=k[k.length-1];return typeof x=="object"&&x.constructor===Object?(k.splice(k.length-1,1),x):{}}function i(...k){return"("+(r(k).capture?"":"?:")+k.map(G=>n(G)).join("|")+")"}const s=k=>t(/\b/,k,/\w$/.test(k)?/\b/:/\B/),a=["Protocol","Type"].map(s),o=["init","self"].map(s),l=["Any","Self"],c=["actor","any","associatedtype","async","await",/as\?/,/as!/,"as","break","case","catch","class","continue","convenience","default","defer","deinit","didSet","distributed","do","dynamic","else","enum","extension","fallthrough",/fileprivate\(set\)/,"fileprivate","final","for","func","get","guard","if","import","indirect","infix",/init\?/,/init!/,"inout",/internal\(set\)/,"internal","in","is","isolated","nonisolated","lazy","let","mutating","nonmutating",/open\(set\)/,"open","operator","optional","override","postfix","precedencegroup","prefix",/private\(set\)/,"private","protocol",/public\(set\)/,"public","repeat","required","rethrows","return","set","some","static","struct","subscript","super","switch","throws","throw",/try\?/,/try!/,"try","typealias",/unowned\(safe\)/,/unowned\(unsafe\)/,"unowned","var","weak","where","while","willSet"],u=["false","nil","true"],p=["assignment","associativity","higherThan","left","lowerThan","none","right"],m=["#colorLiteral","#column","#dsohandle","#else","#elseif","#endif","#error","#file","#fileID","#fileLiteral","#filePath","#function","#if","#imageLiteral","#keyPath","#line","#selector","#sourceLocation","#warn_unqualified_access","#warning"],_=["abs","all","any","assert","assertionFailure","debugPrint","dump","fatalError","getVaList","isKnownUniquelyReferenced","max","min","numericCast","pointwiseMax","pointwiseMin","precondition","preconditionFailure","print","readLine","repeatElement","sequence","stride","swap","swift_unboxFromSwiftValueWithType","transcode","type","unsafeBitCast","unsafeDowncast","withExtendedLifetime","withUnsafeMutablePointer","withUnsafePointer","withVaList","withoutActuallyEscaping","zip"],T=i(/[/=\-+!*%<>&|^~?]/,/[\u00A1-\u00A7]/,/[\u00A9\u00AB]/,/[\u00AC\u00AE]/,/[\u00B0\u00B1]/,/[\u00B6\u00BB\u00BF\u00D7\u00F7]/,/[\u2016-\u2017]/,/[\u2020-\u2027]/,/[\u2030-\u203E]/,/[\u2041-\u2053]/,/[\u2055-\u205E]/,/[\u2190-\u23FF]/,/[\u2500-\u2775]/,/[\u2794-\u2BFF]/,/[\u2E00-\u2E7F]/,/[\u3001-\u3003]/,/[\u3008-\u3020]/,/[\u3030]/),I=i(T,/[\u0300-\u036F]/,/[\u1DC0-\u1DFF]/,/[\u20D0-\u20FF]/,/[\uFE00-\uFE0F]/,/[\uFE20-\uFE2F]/),R=t(T,I,"*"),L=i(/[a-zA-Z_]/,/[\u00A8\u00AA\u00AD\u00AF\u00B2-\u00B5\u00B7-\u00BA]/,/[\u00BC-\u00BE\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF]/,/[\u0100-\u02FF\u0370-\u167F\u1681-\u180D\u180F-\u1DBF]/,/[\u1E00-\u1FFF]/,/[\u200B-\u200D\u202A-\u202E\u203F-\u2040\u2054\u2060-\u206F]/,/[\u2070-\u20CF\u2100-\u218F\u2460-\u24FF\u2776-\u2793]/,/[\u2C00-\u2DFF\u2E80-\u2FFF]/,/[\u3004-\u3007\u3021-\u302F\u3031-\u303F\u3040-\uD7FF]/,/[\uF900-\uFD3D\uFD40-\uFDCF\uFDF0-\uFE1F\uFE30-\uFE44]/,/[\uFE47-\uFEFE\uFF00-\uFFFD]/),$=i(L,/\d/,/[\u0300-\u036F\u1DC0-\u1DFF\u20D0-\u20FF\uFE20-\uFE2F]/),K=t(L,$,"*"),f=t(/[A-Z]/,$,"*"),E=["autoclosure",t(/convention\(/,i("swift","block","c"),/\)/),"discardableResult","dynamicCallable","dynamicMemberLookup","escaping","frozen","GKInspectable","IBAction","IBDesignable","IBInspectable","IBOutlet","IBSegueAction","inlinable","main","nonobjc","NSApplicationMain","NSCopying","NSManaged",t(/objc\(/,K,/\)/),"objc","objcMembers","propertyWrapper","requires_stored_property_inits","resultBuilder","testable","UIApplicationMain","unknown","usableFromInline"],S=["iOS","iOSApplicationExtension","macOS","macOSApplicationExtension","macCatalyst","macCatalystApplicationExtension","watchOS","watchOSApplicationExtension","tvOS","tvOSApplicationExtension","swift"];function N(k){const x={match:/\s+/,relevance:0},M=k.COMMENT("/\\*","\\*/",{contains:["self"]}),G=[k.C_LINE_COMMENT_MODE,M],te={match:[/\./,i(...a,...o)],className:{2:"keyword"}},ne={match:t(/\./,i(...c)),relevance:0},re=c.filter(ut=>typeof ut=="string").concat(["_|0"]),ee=c.filter(ut=>typeof ut!="string").concat(l).map(s),B={variants:[{className:"keyword",match:i(...ee,...o)}]},Q={$pattern:i(/\b\w+/,/#\w+/),keyword:re.concat(m),literal:u},j=[te,ne,B],Z={match:t(/\./,i(..._)),relevance:0},ue={className:"built_in",match:t(/\b/,i(..._),/(?=\()/)},le=[Z,ue],Ee={match:/->/,relevance:0},De={className:"operator",relevance:0,variants:[{match:R},{match:`\\.(\\.|${I})+`}]},xe=[Ee,De],be="([0-9]_*)+",Re="([0-9a-fA-F]_*)+",ce={className:"number",relevance:0,variants:[{match:`\\b(${be})(\\.(${be}))?([eE][+-]?(${be}))?\\b`},{match:`\\b0x(${Re})(\\.(${Re}))?([pP][+-]?(${be}))?\\b`},{match:/\b0o([0-7]_*)+\b/},{match:/\b0b([01]_*)+\b/}]},ke=(ut="")=>({className:"subst",variants:[{match:t(/\\/,ut,/[0\\tnr"']/)},{match:t(/\\/,ut,/u\{[0-9a-fA-F]{1,8}\}/)}]}),Ze=(ut="")=>({className:"subst",match:t(/\\/,ut,/[\t ]*(?:[\r\n]|\r\n)/)}),Le=(ut="")=>({className:"subst",label:"interpol",begin:t(/\\/,ut,/\(/),end:/\)/}),tt=(ut="")=>({begin:t(ut,/"""/),end:t(/"""/,ut),contains:[ke(ut),Ze(ut),Le(ut)]}),nt=(ut="")=>({begin:t(ut,/"/),end:t(/"/,ut),contains:[ke(ut),Le(ut)]}),ze={className:"string",variants:[tt(),tt("#"),tt("##"),tt("###"),nt(),nt("#"),nt("##"),nt("###")]},St={match:t(/`/,K,/`/)},mt={className:"variable",match:/\$\d+/},At={className:"variable",match:`\\$${$}+`},Rt=[St,mt,At],at={match:/(@|#(un)?)available/,className:"keyword",starts:{contains:[{begin:/\(/,end:/\)/,keywords:S,contains:[...xe,ce,ze]}]}},$e={className:"keyword",match:t(/@/,i(...E))},hr={className:"meta",match:t(/@/,K)},rt=[at,$e,hr],He={match:e(/\b[A-Z]/),relevance:0,contains:[{className:"type",match:t(/(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)/,$,"+")},{className:"type",match:f,relevance:0},{match:/[?!]+/,relevance:0},{match:/\.\.\./,relevance:0},{match:t(/\s+&\s+/,e(f)),relevance:0}]},Br={begin://,keywords:Q,contains:[...G,...j,...rt,Ee,He]};He.contains.push(Br);const cr={match:t(K,/\s*:/),keywords:"_|0",relevance:0},vr={begin:/\(/,end:/\)/,relevance:0,keywords:Q,contains:["self",cr,...G,...j,...le,...xe,ce,ze,...Rt,...rt,He]},W={begin://,contains:[...G,He]},_e={begin:i(e(t(K,/\s*:/)),e(t(K,/\s+/,K,/\s*:/))),end:/:/,relevance:0,contains:[{className:"keyword",match:/\b_\b/},{className:"params",match:K}]},we={begin:/\(/,end:/\)/,keywords:Q,contains:[_e,...G,...j,...xe,ce,ze,...rt,He,vr],endsParent:!0,illegal:/["']/},Ne={match:[/func/,/\s+/,i(St.match,K,R)],className:{1:"keyword",3:"title.function"},contains:[W,we,x],illegal:[/\[/,/%/]},Je={match:[/\b(?:subscript|init[?!]?)/,/\s*(?=[<(])/],className:{1:"keyword"},contains:[W,we,x],illegal:/\[|%/},ye={match:[/operator/,/\s+/,R],className:{1:"keyword",3:"title"}},Ht={begin:[/precedencegroup/,/\s+/,f],className:{1:"keyword",3:"title"},contains:[He],keywords:[...p,...u],end:/}/};for(const ut of ze.variants){const It=ut.contains.find(ht=>ht.label==="interpol");It.keywords=Q;const Vr=[...j,...le,...xe,ce,ze,...Rt];It.contains=[...Vr,{begin:/\(/,end:/\)/,contains:["self",...Vr]}]}return{name:"Swift",keywords:Q,contains:[...G,Ne,Je,{beginKeywords:"struct protocol class extension enum actor",end:"\\{",excludeEnd:!0,keywords:Q,contains:[k.inherit(k.TITLE_MODE,{className:"title.class",begin:/[A-Za-z$_][\u00C0-\u02B80-9A-Za-z$_]*/}),...j]},ye,Ht,{beginKeywords:"import",end:/$/,contains:[...G],relevance:0},...j,...le,...xe,ce,ze,...Rt,...rt,He,vr]}}return _f=N,_f}var Sf,Qv;function Y$(){if(Qv)return Sf;Qv=1;function n(e){return{name:"Tagger Script",contains:[{className:"comment",begin:/\$noop\(/,end:/\)/,contains:[{begin:/\\[()]/},{begin:/\(/,end:/\)/,contains:[{begin:/\\[()]/},"self"]}],relevance:10},{className:"keyword",begin:/\$[_a-zA-Z0-9]+(?=\()/},{className:"variable",begin:/%[_a-zA-Z0-9:]+%/},{className:"symbol",begin:/\\[\\nt$%,()]/},{className:"symbol",begin:/\\u[a-fA-F0-9]{4}/}]}}return Sf=n,Sf}var Of,qv;function $$(){if(qv)return Of;qv=1;function n(e){const t="true false yes no null",r="[\\w#;/?:@&=+$,.~*'()[\\]]+",i={className:"attr",variants:[{begin:"\\w[\\w :\\/.-]*:(?=[ ]|$)"},{begin:'"\\w[\\w :\\/.-]*":(?=[ ]|$)'},{begin:"'\\w[\\w :\\/.-]*':(?=[ ]|$)"}]},s={className:"template-variable",variants:[{begin:/\{\{/,end:/\}\}/},{begin:/%\{/,end:/\}/}]},a={className:"string",relevance:0,variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/\S+/}],contains:[e.BACKSLASH_ESCAPE,s]},o=e.inherit(a,{variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/[^\s,{}[\]]+/}]}),l="[0-9]{4}(-[0-9][0-9]){0,2}",c="([Tt \\t][0-9][0-9]?(:[0-9][0-9]){2})?",u="(\\.[0-9]*)?",p="([ \\t])*(Z|[-+][0-9][0-9]?(:[0-9][0-9])?)?",m={className:"number",begin:"\\b"+l+c+u+p+"\\b"},_={end:",",endsWithParent:!0,excludeEnd:!0,keywords:t,relevance:0},T={begin:/\{/,end:/\}/,contains:[_],illegal:"\\n",relevance:0},I={begin:"\\[",end:"\\]",contains:[_],illegal:"\\n",relevance:0},R=[i,{className:"meta",begin:"^---\\s*$",relevance:10},{className:"string",begin:"[\\|>]([1-9]?[+-])?[ ]*\\n( +)[^ ][^\\n]*\\n(\\2[^\\n]+\\n?)*"},{begin:"<%[%=-]?",end:"[%-]?%>",subLanguage:"ruby",excludeBegin:!0,excludeEnd:!0,relevance:0},{className:"type",begin:"!\\w+!"+r},{className:"type",begin:"!<"+r+">"},{className:"type",begin:"!"+r},{className:"type",begin:"!!"+r},{className:"meta",begin:"&"+e.UNDERSCORE_IDENT_RE+"$"},{className:"meta",begin:"\\*"+e.UNDERSCORE_IDENT_RE+"$"},{className:"bullet",begin:"-(?=[ ]|$)",relevance:0},e.HASH_COMMENT_MODE,{beginKeywords:t,keywords:{literal:t}},m,{className:"number",begin:e.C_NUMBER_RE+"\\b",relevance:0},T,I,a],L=[...R];return L.pop(),L.push(o),_.contains=L,{name:"YAML",case_insensitive:!0,aliases:["yml"],contains:R}}return Of=n,Of}var Ef,Vv;function G$(){if(Vv)return Ef;Vv=1;function n(e){return{name:"Test Anything Protocol",case_insensitive:!0,contains:[e.HASH_COMMENT_MODE,{className:"meta",variants:[{begin:"^TAP version (\\d+)$"},{begin:"^1\\.\\.(\\d+)$"}]},{begin:/---$/,end:"\\.\\.\\.$",subLanguage:"yaml",relevance:0},{className:"number",begin:" (\\d+) "},{className:"symbol",variants:[{begin:"^ok"},{begin:"^not ok"}]}]}}return Ef=n,Ef}var bf,zv;function Q$(){if(zv)return bf;zv=1;function n(e){const t=e.regex,r=/[a-zA-Z_][a-zA-Z0-9_]*/,i={className:"number",variants:[e.BINARY_NUMBER_MODE,e.C_NUMBER_MODE]};return{name:"Tcl",aliases:["tk"],keywords:["after","append","apply","array","auto_execok","auto_import","auto_load","auto_mkindex","auto_mkindex_old","auto_qualify","auto_reset","bgerror","binary","break","catch","cd","chan","clock","close","concat","continue","dde","dict","encoding","eof","error","eval","exec","exit","expr","fblocked","fconfigure","fcopy","file","fileevent","filename","flush","for","foreach","format","gets","glob","global","history","http","if","incr","info","interp","join","lappend|10","lassign|10","lindex|10","linsert|10","list","llength|10","load","lrange|10","lrepeat|10","lreplace|10","lreverse|10","lsearch|10","lset|10","lsort|10","mathfunc","mathop","memory","msgcat","namespace","open","package","parray","pid","pkg::create","pkg_mkIndex","platform","platform::shell","proc","puts","pwd","read","refchan","regexp","registry","regsub|10","rename","return","safe","scan","seek","set","socket","source","split","string","subst","switch","tcl_endOfWord","tcl_findLibrary","tcl_startOfNextWord","tcl_startOfPreviousWord","tcl_wordBreakAfter","tcl_wordBreakBefore","tcltest","tclvars","tell","time","tm","trace","unknown","unload","unset","update","uplevel","upvar","variable","vwait","while"],contains:[e.COMMENT(";[ \\t]*#","$"),e.COMMENT("^[ \\t]*#","$"),{beginKeywords:"proc",end:"[\\{]",excludeEnd:!0,contains:[{className:"title",begin:"[ \\t\\n\\r]+(::)?[a-zA-Z_]((::)?[a-zA-Z0-9_])*",end:"[ \\t\\n\\r]",endsWithParent:!0,excludeEnd:!0}]},{className:"variable",variants:[{begin:t.concat(/\$/,t.optional(/::/),r,"(::",r,")*")},{begin:"\\$\\{(::)?[a-zA-Z_]((::)?[a-zA-Z0-9_])*",end:"\\}",contains:[i]}]},{className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[e.inherit(e.QUOTE_STRING_MODE,{illegal:null})]},i]}}return bf=n,bf}var vf,Hv;function q$(){if(Hv)return vf;Hv=1;function n(e){const t=["bool","byte","i16","i32","i64","double","string","binary"];return{name:"Thrift",keywords:{keyword:["namespace","const","typedef","struct","enum","service","exception","void","oneway","set","list","map","required","optional"],type:t,literal:"true false"},contains:[e.QUOTE_STRING_MODE,e.NUMBER_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"class",beginKeywords:"struct enum service exception",end:/\{/,illegal:/\n/,contains:[e.inherit(e.TITLE_MODE,{starts:{endsWithParent:!0,excludeEnd:!0}})]},{begin:"\\b(set|list|map)\\s*<",keywords:{type:[...t,"set","list","map"]},end:">",contains:["self"]}]}}return vf=n,vf}var Tf,Wv;function V$(){if(Wv)return Tf;Wv=1;function n(e){const t={className:"number",begin:"[1-9][0-9]*",relevance:0},r={className:"symbol",begin:":[^\\]]+"},i={className:"built_in",begin:"(AR|P|PAYLOAD|PR|R|SR|RSR|LBL|VR|UALM|MESSAGE|UTOOL|UFRAME|TIMER|TIMER_OVERFLOW|JOINT_MAX_SPEED|RESUME_PROG|DIAG_REC)\\[",end:"\\]",contains:["self",t,r]},s={className:"built_in",begin:"(AI|AO|DI|DO|F|RI|RO|UI|UO|GI|GO|SI|SO)\\[",end:"\\]",contains:["self",t,e.QUOTE_STRING_MODE,r]};return{name:"TP",keywords:{keyword:["ABORT","ACC","ADJUST","AND","AP_LD","BREAK","CALL","CNT","COL","CONDITION","CONFIG","DA","DB","DIV","DETECT","ELSE","END","ENDFOR","ERR_NUM","ERROR_PROG","FINE","FOR","GP","GUARD","INC","IF","JMP","LINEAR_MAX_SPEED","LOCK","MOD","MONITOR","OFFSET","Offset","OR","OVERRIDE","PAUSE","PREG","PTH","RT_LD","RUN","SELECT","SKIP","Skip","TA","TB","TO","TOOL_OFFSET","Tool_Offset","UF","UT","UFRAME_NUM","UTOOL_NUM","UNLOCK","WAIT","X","Y","Z","W","P","R","STRLEN","SUBSTR","FINDSTR","VOFFSET","PROG","ATTR","MN","POS"],literal:["ON","OFF","max_speed","LPOS","JPOS","ENABLE","DISABLE","START","STOP","RESET"]},contains:[i,s,{className:"keyword",begin:"/(PROG|ATTR|MN|POS|END)\\b"},{className:"keyword",begin:"(CALL|RUN|POINT_LOGIC|LBL)\\b"},{className:"keyword",begin:"\\b(ACC|CNT|Skip|Offset|PSPD|RT_LD|AP_LD|Tool_Offset)"},{className:"number",begin:"\\d+(sec|msec|mm/sec|cm/min|inch/min|deg/sec|mm|in|cm)?\\b",relevance:0},e.COMMENT("//","[;$]"),e.COMMENT("!","[;$]"),e.COMMENT("--eg:","$"),e.QUOTE_STRING_MODE,{className:"string",begin:"'",end:"'"},e.C_NUMBER_MODE,{className:"variable",begin:"\\$[A-Za-z0-9_]+"}]}}return Tf=n,Tf}var Cf,Xv;function z$(){if(Xv)return Cf;Xv=1;function n(e){const t=e.regex,r=["absolute_url","asset|0","asset_version","attribute","block","constant","controller|0","country_timezones","csrf_token","cycle","date","dump","expression","form|0","form_end","form_errors","form_help","form_label","form_rest","form_row","form_start","form_widget","html_classes","include","is_granted","logout_path","logout_url","max","min","parent","path|0","random","range","relative_path","render","render_esi","source","template_from_string","url|0"],i=["abs","abbr_class","abbr_method","batch","capitalize","column","convert_encoding","country_name","currency_name","currency_symbol","data_uri","date","date_modify","default","escape","file_excerpt","file_link","file_relative","filter","first","format","format_args","format_args_as_text","format_currency","format_date","format_datetime","format_file","format_file_from_text","format_number","format_time","html_to_markdown","humanize","inky_to_html","inline_css","join","json_encode","keys","language_name","last","length","locale_name","lower","map","markdown","markdown_to_html","merge","nl2br","number_format","raw","reduce","replace","reverse","round","slice","slug","sort","spaceless","split","striptags","timezone_name","title","trans","transchoice","trim","u|0","upper","url_encode","yaml_dump","yaml_encode"];let s=["apply","autoescape","block","cache","deprecated","do","embed","extends","filter","flush","for","form_theme","from","if","import","include","macro","sandbox","set","stopwatch","trans","trans_default_domain","transchoice","use","verbatim","with"];s=s.concat(s.map(I=>`end${I}`));const a={scope:"string",variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/}]},o={scope:"number",match:/\d+/},l={begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,contains:[a,o]},c={beginKeywords:r.join(" "),keywords:{name:r},relevance:0,contains:[l]},u={match:/\|(?=[A-Za-z_]+:?)/,beginScope:"punctuation",relevance:0,contains:[{match:/[A-Za-z_]+:?/,keywords:i}]},p=(I,{relevance:R})=>({beginScope:{1:"template-tag",3:"name"},relevance:R||2,endScope:"template-tag",begin:[/\{%/,/\s*/,t.either(...I)],end:/%\}/,keywords:"in",contains:[u,c,a,o]}),m=/[a-z_]+/,_=p(s,{relevance:2}),T=p([m],{relevance:1});return{name:"Twig",aliases:["craftcms"],case_insensitive:!0,subLanguage:"xml",contains:[e.COMMENT(/\{#/,/#\}/),_,T,{className:"template-variable",begin:/\{\{/,end:/\}\}/,contains:["self",u,c,a,o]}]}}return Cf=n,Cf}var yf,Zv;function H$(){if(Zv)return yf;Zv=1;const n="[A-Za-z$_][0-9A-Za-z$_]*",e=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends"],t=["true","false","null","undefined","NaN","Infinity"],r=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],i=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],s=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],a=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","global"],o=[].concat(s,r,i);function l(u){const p=u.regex,m=(ke,{after:Ze})=>{const Le="",end:""},I=/<[A-Za-z0-9\\._:-]+\s*\/>/,R={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(ke,Ze)=>{const Le=ke[0].length+ke.index,tt=ke.input[Le];if(tt==="<"||tt===","){Ze.ignoreMatch();return}tt===">"&&(m(ke,{after:Le})||Ze.ignoreMatch());let nt;const ze=ke.input.substring(Le);if(nt=ze.match(/^\s*=/)){Ze.ignoreMatch();return}if((nt=ze.match(/^\s+extends\s+/))&&nt.index===0){Ze.ignoreMatch();return}}},L={$pattern:n,keyword:e,literal:t,built_in:o,"variable.language":a},$="[0-9](_?[0-9])*",K=`\\.(${$})`,f="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",E={className:"number",variants:[{begin:`(\\b(${f})((${K})|\\.)?|(${K}))[eE][+-]?(${$})\\b`},{begin:`\\b(${f})\\b((${K})\\b|\\.)?|(${K})\\b`},{begin:"\\b(0|[1-9](_?[0-9])*)n\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*n?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*n?\\b"},{begin:"\\b0[0-7]+n?\\b"}],relevance:0},S={className:"subst",begin:"\\$\\{",end:"\\}",keywords:L,contains:[]},N={begin:"html`",end:"",starts:{end:"`",returnEnd:!1,contains:[u.BACKSLASH_ESCAPE,S],subLanguage:"xml"}},k={begin:"css`",end:"",starts:{end:"`",returnEnd:!1,contains:[u.BACKSLASH_ESCAPE,S],subLanguage:"css"}},x={begin:"gql`",end:"",starts:{end:"`",returnEnd:!1,contains:[u.BACKSLASH_ESCAPE,S],subLanguage:"graphql"}},M={className:"string",begin:"`",end:"`",contains:[u.BACKSLASH_ESCAPE,S]},te={className:"comment",variants:[u.COMMENT(/\/\*\*(?!\/)/,"\\*/",{relevance:0,contains:[{begin:"(?=@[A-Za-z]+)",relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"},{className:"type",begin:"\\{",end:"\\}",excludeEnd:!0,excludeBegin:!0,relevance:0},{className:"variable",begin:_+"(?=\\s*(-)|$)",endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),u.C_BLOCK_COMMENT_MODE,u.C_LINE_COMMENT_MODE]},ne=[u.APOS_STRING_MODE,u.QUOTE_STRING_MODE,N,k,x,M,{match:/\$\d+/},E];S.contains=ne.concat({begin:/\{/,end:/\}/,keywords:L,contains:["self"].concat(ne)});const re=[].concat(te,S.contains),ee=re.concat([{begin:/\(/,end:/\)/,keywords:L,contains:["self"].concat(re)}]),B={className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:L,contains:ee},Q={variants:[{match:[/class/,/\s+/,_,/\s+/,/extends/,/\s+/,p.concat(_,"(",p.concat(/\./,_),")*")],scope:{1:"keyword",3:"title.class",5:"keyword",7:"title.class.inherited"}},{match:[/class/,/\s+/,_],scope:{1:"keyword",3:"title.class"}}]},j={relevance:0,match:p.either(/\bJSON/,/\b[A-Z][a-z]+([A-Z][a-z]*|\d)*/,/\b[A-Z]{2,}([A-Z][a-z]+|\d)+([A-Z][a-z]*)*/,/\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\d)*([A-Z][a-z]*)*/),className:"title.class",keywords:{_:[...r,...i]}},Z={label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},ue={variants:[{match:[/function/,/\s+/,_,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:"keyword",3:"title.function"},label:"func.def",contains:[B],illegal:/%/},le={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"};function Ee(ke){return p.concat("(?!",ke.join("|"),")")}const De={match:p.concat(/\b/,Ee([...s,"super","import"]),_,p.lookahead(/\(/)),className:"title.function",relevance:0},xe={begin:p.concat(/\./,p.lookahead(p.concat(_,/(?![0-9A-Za-z$_(])/))),end:_,excludeBegin:!0,keywords:"prototype",className:"property",relevance:0},be={match:[/get|set/,/\s+/,_,/(?=\()/],className:{1:"keyword",3:"title.function"},contains:[{begin:/\(\)/},B]},Re="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+u.UNDERSCORE_IDENT_RE+")\\s*=>",ce={match:[/const|var|let/,/\s+/,_,/\s*/,/=\s*/,/(async\s*)?/,p.lookahead(Re)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[B]};return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:L,exports:{PARAMS_CONTAINS:ee,CLASS_REFERENCE:j},illegal:/#(?![$_A-z])/,contains:[u.SHEBANG({label:"shebang",binary:"node",relevance:5}),Z,u.APOS_STRING_MODE,u.QUOTE_STRING_MODE,N,k,x,M,te,{match:/\$\d+/},E,j,{className:"attr",begin:_+p.lookahead(":"),relevance:0},ce,{begin:"("+u.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[te,u.REGEXP_MODE,{className:"function",begin:Re,returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:u.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:L,contains:ee}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:T.begin,end:T.end},{match:I},{begin:R.begin,"on:begin":R.isTrulyOpeningTag,end:R.end}],subLanguage:"xml",contains:[{begin:R.begin,end:R.end,skip:!0,contains:["self"]}]}]},ue,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+u.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[B,u.inherit(u.TITLE_MODE,{begin:_,className:"title.function"})]},{match:/\.\.\./,relevance:0},xe,{match:"\\$"+_,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[B]},De,le,Q,be,{match:/\$[(.]/}]}}function c(u){const p=l(u),m=n,_=["any","void","number","boolean","string","object","never","symbol","bigint","unknown"],T={beginKeywords:"namespace",end:/\{/,excludeEnd:!0,contains:[p.exports.CLASS_REFERENCE]},I={beginKeywords:"interface",end:/\{/,excludeEnd:!0,keywords:{keyword:"interface extends",built_in:_},contains:[p.exports.CLASS_REFERENCE]},R={className:"meta",relevance:10,begin:/^\s*['"]use strict['"]/},L=["type","namespace","interface","public","private","protected","implements","declare","abstract","readonly","enum","override"],$={$pattern:n,keyword:e.concat(L),literal:t,built_in:o.concat(_),"variable.language":a},K={className:"meta",begin:"@"+m},f=(S,N,k)=>{const x=S.contains.findIndex(M=>M.label===N);if(x===-1)throw new Error("can not find mode to replace");S.contains.splice(x,1,k)};Object.assign(p.keywords,$),p.exports.PARAMS_CONTAINS.push(K),p.contains=p.contains.concat([K,T,I]),f(p,"shebang",u.SHEBANG()),f(p,"use_strict",R);const E=p.contains.find(S=>S.label==="func.def");return E.relevance=0,Object.assign(p,{name:"TypeScript",aliases:["ts","tsx","mts","cts"]}),p}return yf=c,yf}var Af,Kv;function W$(){if(Kv)return Af;Kv=1;function n(e){return{name:"Vala",keywords:{keyword:"char uchar unichar int uint long ulong short ushort int8 int16 int32 int64 uint8 uint16 uint32 uint64 float double bool struct enum string void weak unowned owned async signal static abstract interface override virtual delegate if while do for foreach else switch case break default return try catch public private protected internal using new this get set const stdout stdin stderr var",built_in:"DBus GLib CCode Gee Object Gtk Posix",literal:"false true null"},contains:[{className:"class",beginKeywords:"class interface namespace",end:/\{/,excludeEnd:!0,illegal:"[^,:\\n\\s\\.]",contains:[e.UNDERSCORE_TITLE_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"string",begin:'"""',end:'"""',relevance:5},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_NUMBER_MODE,{className:"meta",begin:"^#",end:"$"}]}}return Af=n,Af}var If,jv;function X$(){if(jv)return If;jv=1;function n(e){const t=e.regex,r={className:"string",begin:/"(""|[^/n])"C\b/},i={className:"string",begin:/"/,end:/"/,illegal:/\n/,contains:[{begin:/""/}]},s=/\d{1,2}\/\d{1,2}\/\d{4}/,a=/\d{4}-\d{1,2}-\d{1,2}/,o=/(\d|1[012])(:\d+){0,2} *(AM|PM)/,l=/\d{1,2}(:\d{1,2}){1,2}/,c={className:"literal",variants:[{begin:t.concat(/# */,t.either(a,s),/ *#/)},{begin:t.concat(/# */,l,/ *#/)},{begin:t.concat(/# */,o,/ *#/)},{begin:t.concat(/# */,t.either(a,s),/ +/,t.either(o,l),/ *#/)}]},u={className:"number",relevance:0,variants:[{begin:/\b\d[\d_]*((\.[\d_]+(E[+-]?[\d_]+)?)|(E[+-]?[\d_]+))[RFD@!#]?/},{begin:/\b\d[\d_]*((U?[SIL])|[%&])?/},{begin:/&H[\dA-F_]+((U?[SIL])|[%&])?/},{begin:/&O[0-7_]+((U?[SIL])|[%&])?/},{begin:/&B[01_]+((U?[SIL])|[%&])?/}]},p={className:"label",begin:/^\w+:/},m=e.COMMENT(/'''/,/$/,{contains:[{className:"doctag",begin:/<\/?/,end:/>/}]}),_=e.COMMENT(null,/$/,{variants:[{begin:/'/},{begin:/([\t ]|^)REM(?=\s)/}]});return{name:"Visual Basic .NET",aliases:["vb"],case_insensitive:!0,classNameAliases:{label:"symbol"},keywords:{keyword:"addhandler alias aggregate ansi as async assembly auto binary by byref byval call case catch class compare const continue custom declare default delegate dim distinct do each equals else elseif end enum erase error event exit explicit finally for friend from function get global goto group handles if implements imports in inherits interface into iterator join key let lib loop me mid module mustinherit mustoverride mybase myclass namespace narrowing new next notinheritable notoverridable of off on operator option optional order overloads overridable overrides paramarray partial preserve private property protected public raiseevent readonly redim removehandler resume return select set shadows shared skip static step stop structure strict sub synclock take text then throw to try unicode until using when where while widening with withevents writeonly yield",built_in:"addressof and andalso await directcast gettype getxmlnamespace is isfalse isnot istrue like mod nameof new not or orelse trycast typeof xor cbool cbyte cchar cdate cdbl cdec cint clng cobj csbyte cshort csng cstr cuint culng cushort",type:"boolean byte char date decimal double integer long object sbyte short single string uinteger ulong ushort",literal:"true false nothing"},illegal:"//|\\{|\\}|endif|gosub|variant|wend|^\\$ ",contains:[r,i,c,u,p,m,_,{className:"meta",begin:/[\t ]*#(const|disable|else|elseif|enable|end|externalsource|if|region)\b/,end:/$/,keywords:{keyword:"const disable else elseif enable end externalsource if region then"},contains:[_]}]}}return If=n,If}var Rf,Jv;function Z$(){if(Jv)return Rf;Jv=1;function n(e){const t=e.regex,r=["lcase","month","vartype","instrrev","ubound","setlocale","getobject","rgb","getref","string","weekdayname","rnd","dateadd","monthname","now","day","minute","isarray","cbool","round","formatcurrency","conversions","csng","timevalue","second","year","space","abs","clng","timeserial","fixs","len","asc","isempty","maths","dateserial","atn","timer","isobject","filter","weekday","datevalue","ccur","isdate","instr","datediff","formatdatetime","replace","isnull","right","sgn","array","snumeric","log","cdbl","hex","chr","lbound","msgbox","ucase","getlocale","cos","cdate","cbyte","rtrim","join","hour","oct","typename","trim","strcomp","int","createobject","loadpicture","tan","formatnumber","mid","split","cint","sin","datepart","ltrim","sqr","time","derived","eval","date","formatpercent","exp","inputbox","left","ascw","chrw","regexp","cstr","err"],i=["server","response","request","scriptengine","scriptenginebuildversion","scriptengineminorversion","scriptenginemajorversion"],s={begin:t.concat(t.either(...r),"\\s*\\("),relevance:0,keywords:{built_in:r}};return{name:"VBScript",aliases:["vbs"],case_insensitive:!0,keywords:{keyword:["call","class","const","dim","do","loop","erase","execute","executeglobal","exit","for","each","next","function","if","then","else","on","error","option","explicit","new","private","property","let","get","public","randomize","redim","rem","select","case","set","stop","sub","while","wend","with","end","to","elseif","is","or","xor","and","not","class_initialize","class_terminate","default","preserve","in","me","byval","byref","step","resume","goto"],built_in:i,literal:["true","false","null","nothing","empty"]},illegal:"//",contains:[s,e.inherit(e.QUOTE_STRING_MODE,{contains:[{begin:'""'}]}),e.COMMENT(/'/,/$/,{relevance:0}),e.C_NUMBER_MODE]}}return Rf=n,Rf}var Nf,eT;function K$(){if(eT)return Nf;eT=1;function n(e){return{name:"VBScript in HTML",subLanguage:"xml",contains:[{begin:"<%",end:"%>",subLanguage:"vbscript"}]}}return Nf=n,Nf}var wf,tT;function j$(){if(tT)return wf;tT=1;function n(e){const t=e.regex,r={$pattern:/\$?[\w]+(\$[\w]+)*/,keyword:["accept_on","alias","always","always_comb","always_ff","always_latch","and","assert","assign","assume","automatic","before","begin","bind","bins","binsof","bit","break","buf|0","bufif0","bufif1","byte","case","casex","casez","cell","chandle","checker","class","clocking","cmos","config","const","constraint","context","continue","cover","covergroup","coverpoint","cross","deassign","default","defparam","design","disable","dist","do","edge","else","end","endcase","endchecker","endclass","endclocking","endconfig","endfunction","endgenerate","endgroup","endinterface","endmodule","endpackage","endprimitive","endprogram","endproperty","endspecify","endsequence","endtable","endtask","enum","event","eventually","expect","export","extends","extern","final","first_match","for","force","foreach","forever","fork","forkjoin","function","generate|5","genvar","global","highz0","highz1","if","iff","ifnone","ignore_bins","illegal_bins","implements","implies","import","incdir","include","initial","inout","input","inside","instance","int","integer","interconnect","interface","intersect","join","join_any","join_none","large","let","liblist","library","local","localparam","logic","longint","macromodule","matches","medium","modport","module","nand","negedge","nettype","new","nexttime","nmos","nor","noshowcancelled","not","notif0","notif1","or","output","package","packed","parameter","pmos","posedge","primitive","priority","program","property","protected","pull0","pull1","pulldown","pullup","pulsestyle_ondetect","pulsestyle_onevent","pure","rand","randc","randcase","randsequence","rcmos","real","realtime","ref","reg","reject_on","release","repeat","restrict","return","rnmos","rpmos","rtran","rtranif0","rtranif1","s_always","s_eventually","s_nexttime","s_until","s_until_with","scalared","sequence","shortint","shortreal","showcancelled","signed","small","soft","solve","specify","specparam","static","string","strong","strong0","strong1","struct","super","supply0","supply1","sync_accept_on","sync_reject_on","table","tagged","task","this","throughout","time","timeprecision","timeunit","tran","tranif0","tranif1","tri","tri0","tri1","triand","trior","trireg","type","typedef","union","unique","unique0","unsigned","until","until_with","untyped","use","uwire","var","vectored","virtual","void","wait","wait_order","wand","weak","weak0","weak1","while","wildcard","wire","with","within","wor","xnor","xor"],literal:["null"],built_in:["$finish","$stop","$exit","$fatal","$error","$warning","$info","$realtime","$time","$printtimescale","$bitstoreal","$bitstoshortreal","$itor","$signed","$cast","$bits","$stime","$timeformat","$realtobits","$shortrealtobits","$rtoi","$unsigned","$asserton","$assertkill","$assertpasson","$assertfailon","$assertnonvacuouson","$assertoff","$assertcontrol","$assertpassoff","$assertfailoff","$assertvacuousoff","$isunbounded","$sampled","$fell","$changed","$past_gclk","$fell_gclk","$changed_gclk","$rising_gclk","$steady_gclk","$coverage_control","$coverage_get","$coverage_save","$set_coverage_db_name","$rose","$stable","$past","$rose_gclk","$stable_gclk","$future_gclk","$falling_gclk","$changing_gclk","$display","$coverage_get_max","$coverage_merge","$get_coverage","$load_coverage_db","$typename","$unpacked_dimensions","$left","$low","$increment","$clog2","$ln","$log10","$exp","$sqrt","$pow","$floor","$ceil","$sin","$cos","$tan","$countbits","$onehot","$isunknown","$fatal","$warning","$dimensions","$right","$high","$size","$asin","$acos","$atan","$atan2","$hypot","$sinh","$cosh","$tanh","$asinh","$acosh","$atanh","$countones","$onehot0","$error","$info","$random","$dist_chi_square","$dist_erlang","$dist_exponential","$dist_normal","$dist_poisson","$dist_t","$dist_uniform","$q_initialize","$q_remove","$q_exam","$async$and$array","$async$nand$array","$async$or$array","$async$nor$array","$sync$and$array","$sync$nand$array","$sync$or$array","$sync$nor$array","$q_add","$q_full","$psprintf","$async$and$plane","$async$nand$plane","$async$or$plane","$async$nor$plane","$sync$and$plane","$sync$nand$plane","$sync$or$plane","$sync$nor$plane","$system","$display","$displayb","$displayh","$displayo","$strobe","$strobeb","$strobeh","$strobeo","$write","$readmemb","$readmemh","$writememh","$value$plusargs","$dumpvars","$dumpon","$dumplimit","$dumpports","$dumpportson","$dumpportslimit","$writeb","$writeh","$writeo","$monitor","$monitorb","$monitorh","$monitoro","$writememb","$dumpfile","$dumpoff","$dumpall","$dumpflush","$dumpportsoff","$dumpportsall","$dumpportsflush","$fclose","$fdisplay","$fdisplayb","$fdisplayh","$fdisplayo","$fstrobe","$fstrobeb","$fstrobeh","$fstrobeo","$swrite","$swriteb","$swriteh","$swriteo","$fscanf","$fread","$fseek","$fflush","$feof","$fopen","$fwrite","$fwriteb","$fwriteh","$fwriteo","$fmonitor","$fmonitorb","$fmonitorh","$fmonitoro","$sformat","$sformatf","$fgetc","$ungetc","$fgets","$sscanf","$rewind","$ftell","$ferror"]},i=["__FILE__","__LINE__"],s=["begin_keywords","celldefine","default_nettype","default_decay_time","default_trireg_strength","define","delay_mode_distributed","delay_mode_path","delay_mode_unit","delay_mode_zero","else","elsif","end_keywords","endcelldefine","endif","ifdef","ifndef","include","line","nounconnected_drive","pragma","resetall","timescale","unconnected_drive","undef","undefineall"];return{name:"Verilog",aliases:["v","sv","svh"],case_insensitive:!1,keywords:r,contains:[e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE,e.QUOTE_STRING_MODE,{scope:"number",contains:[e.BACKSLASH_ESCAPE],variants:[{begin:/\b((\d+'([bhodBHOD]))[0-9xzXZa-fA-F_]+)/},{begin:/\B(('([bhodBHOD]))[0-9xzXZa-fA-F_]+)/},{begin:/\b[0-9][0-9_]*/,relevance:0}]},{scope:"variable",variants:[{begin:"#\\((?!parameter).+\\)"},{begin:"\\.\\w+",relevance:0}]},{scope:"variable.constant",match:t.concat(/`/,t.either(...i))},{scope:"meta",begin:t.concat(/`/,t.either(...s)),end:/$|\/\/|\/\*/,returnEnd:!0,keywords:s}]}}return wf=n,wf}var Df,rT;function J$(){if(rT)return Df;rT=1;function n(e){const t="\\d(_|\\d)*",r="[eE][-+]?"+t,i=t+"(\\."+t+")?("+r+")?",s="\\w+",o="\\b("+(t+"#"+s+"(\\."+s+")?#("+r+")?")+"|"+i+")";return{name:"VHDL",case_insensitive:!0,keywords:{keyword:["abs","access","after","alias","all","and","architecture","array","assert","assume","assume_guarantee","attribute","begin","block","body","buffer","bus","case","component","configuration","constant","context","cover","disconnect","downto","default","else","elsif","end","entity","exit","fairness","file","for","force","function","generate","generic","group","guarded","if","impure","in","inertial","inout","is","label","library","linkage","literal","loop","map","mod","nand","new","next","nor","not","null","of","on","open","or","others","out","package","parameter","port","postponed","procedure","process","property","protected","pure","range","record","register","reject","release","rem","report","restrict","restrict_guarantee","return","rol","ror","select","sequence","severity","shared","signal","sla","sll","sra","srl","strong","subtype","then","to","transport","type","unaffected","units","until","use","variable","view","vmode","vprop","vunit","wait","when","while","with","xnor","xor"],built_in:["boolean","bit","character","integer","time","delay_length","natural","positive","string","bit_vector","file_open_kind","file_open_status","std_logic","std_logic_vector","unsigned","signed","boolean_vector","integer_vector","std_ulogic","std_ulogic_vector","unresolved_unsigned","u_unsigned","unresolved_signed","u_signed","real_vector","time_vector"],literal:["false","true","note","warning","error","failure","line","text","side","width"]},illegal:/\{/,contains:[e.C_BLOCK_COMMENT_MODE,e.COMMENT("--","$"),e.QUOTE_STRING_MODE,{className:"number",begin:o,relevance:0},{className:"string",begin:"'(U|X|0|1|Z|W|L|H|-)'",contains:[e.BACKSLASH_ESCAPE]},{className:"symbol",begin:"'[A-Za-z](_?[A-Za-z0-9])*",contains:[e.BACKSLASH_ESCAPE]}]}}return Df=n,Df}var xf,nT;function eG(){if(nT)return xf;nT=1;function n(e){return{name:"Vim Script",keywords:{$pattern:/[!#@\w]+/,keyword:"N|0 P|0 X|0 a|0 ab abc abo al am an|0 ar arga argd arge argdo argg argl argu as au aug aun b|0 bN ba bad bd be bel bf bl bm bn bo bp br brea breaka breakd breakl bro bufdo buffers bun bw c|0 cN cNf ca cabc caddb cad caddf cal cat cb cc ccl cd ce cex cf cfir cgetb cgete cg changes chd che checkt cl cla clo cm cmapc cme cn cnew cnf cno cnorea cnoreme co col colo com comc comp con conf cope cp cpf cq cr cs cst cu cuna cunme cw delm deb debugg delc delf dif diffg diffo diffp diffpu diffs diffthis dig di dl dell dj dli do doautoa dp dr ds dsp e|0 ea ec echoe echoh echom echon el elsei em en endfo endf endt endw ene ex exe exi exu f|0 files filet fin fina fini fir fix fo foldc foldd folddoc foldo for fu go gr grepa gu gv ha helpf helpg helpt hi hid his ia iabc if ij il im imapc ime ino inorea inoreme int is isp iu iuna iunme j|0 ju k|0 keepa kee keepj lN lNf l|0 lad laddb laddf la lan lat lb lc lch lcl lcs le lefta let lex lf lfir lgetb lgete lg lgr lgrepa lh ll lla lli lmak lm lmapc lne lnew lnf ln loadk lo loc lockv lol lope lp lpf lr ls lt lu lua luad luaf lv lvimgrepa lw m|0 ma mak map mapc marks mat me menut mes mk mks mksp mkv mkvie mod mz mzf nbc nb nbs new nm nmapc nme nn nnoreme noa no noh norea noreme norm nu nun nunme ol o|0 om omapc ome on ono onoreme opt ou ounme ow p|0 profd prof pro promptr pc ped pe perld po popu pp pre prev ps pt ptN ptf ptj ptl ptn ptp ptr pts pu pw py3 python3 py3d py3f py pyd pyf quita qa rec red redi redr redraws reg res ret retu rew ri rightb rub rubyd rubyf rund ru rv sN san sa sal sav sb sbN sba sbf sbl sbm sbn sbp sbr scrip scripte scs se setf setg setl sf sfir sh sim sig sil sl sla sm smap smapc sme sn sni sno snor snoreme sor so spelld spe spelli spellr spellu spellw sp spr sre st sta startg startr star stopi stj sts sun sunm sunme sus sv sw sy synti sync tN tabN tabc tabdo tabe tabf tabfir tabl tabm tabnew tabn tabo tabp tabr tabs tab ta tags tc tcld tclf te tf th tj tl tm tn to tp tr try ts tu u|0 undoj undol una unh unl unlo unm unme uns up ve verb vert vim vimgrepa vi viu vie vm vmapc vme vne vn vnoreme vs vu vunme windo w|0 wN wa wh wi winc winp wn wp wq wqa ws wu wv x|0 xa xmapc xm xme xn xnoreme xu xunme y|0 z|0 ~ Next Print append abbreviate abclear aboveleft all amenu anoremenu args argadd argdelete argedit argglobal arglocal argument ascii autocmd augroup aunmenu buffer bNext ball badd bdelete behave belowright bfirst blast bmodified bnext botright bprevious brewind break breakadd breakdel breaklist browse bunload bwipeout change cNext cNfile cabbrev cabclear caddbuffer caddexpr caddfile call catch cbuffer cclose center cexpr cfile cfirst cgetbuffer cgetexpr cgetfile chdir checkpath checktime clist clast close cmap cmapclear cmenu cnext cnewer cnfile cnoremap cnoreabbrev cnoremenu copy colder colorscheme command comclear compiler continue confirm copen cprevious cpfile cquit crewind cscope cstag cunmap cunabbrev cunmenu cwindow delete delmarks debug debuggreedy delcommand delfunction diffupdate diffget diffoff diffpatch diffput diffsplit digraphs display deletel djump dlist doautocmd doautoall deletep drop dsearch dsplit edit earlier echo echoerr echohl echomsg else elseif emenu endif endfor endfunction endtry endwhile enew execute exit exusage file filetype find finally finish first fixdel fold foldclose folddoopen folddoclosed foldopen function global goto grep grepadd gui gvim hardcopy help helpfind helpgrep helptags highlight hide history insert iabbrev iabclear ijump ilist imap imapclear imenu inoremap inoreabbrev inoremenu intro isearch isplit iunmap iunabbrev iunmenu join jumps keepalt keepmarks keepjumps lNext lNfile list laddexpr laddbuffer laddfile last language later lbuffer lcd lchdir lclose lcscope left leftabove lexpr lfile lfirst lgetbuffer lgetexpr lgetfile lgrep lgrepadd lhelpgrep llast llist lmake lmap lmapclear lnext lnewer lnfile lnoremap loadkeymap loadview lockmarks lockvar lolder lopen lprevious lpfile lrewind ltag lunmap luado luafile lvimgrep lvimgrepadd lwindow move mark make mapclear match menu menutranslate messages mkexrc mksession mkspell mkvimrc mkview mode mzscheme mzfile nbclose nbkey nbsart next nmap nmapclear nmenu nnoremap nnoremenu noautocmd noremap nohlsearch noreabbrev noremenu normal number nunmap nunmenu oldfiles open omap omapclear omenu only onoremap onoremenu options ounmap ounmenu ownsyntax print profdel profile promptfind promptrepl pclose pedit perl perldo pop popup ppop preserve previous psearch ptag ptNext ptfirst ptjump ptlast ptnext ptprevious ptrewind ptselect put pwd py3do py3file python pydo pyfile quit quitall qall read recover redo redir redraw redrawstatus registers resize retab return rewind right rightbelow ruby rubydo rubyfile rundo runtime rviminfo substitute sNext sandbox sargument sall saveas sbuffer sbNext sball sbfirst sblast sbmodified sbnext sbprevious sbrewind scriptnames scriptencoding scscope set setfiletype setglobal setlocal sfind sfirst shell simalt sign silent sleep slast smagic smapclear smenu snext sniff snomagic snoremap snoremenu sort source spelldump spellgood spellinfo spellrepall spellundo spellwrong split sprevious srewind stop stag startgreplace startreplace startinsert stopinsert stjump stselect sunhide sunmap sunmenu suspend sview swapname syntax syntime syncbind tNext tabNext tabclose tabedit tabfind tabfirst tablast tabmove tabnext tabonly tabprevious tabrewind tag tcl tcldo tclfile tearoff tfirst throw tjump tlast tmenu tnext topleft tprevious trewind tselect tunmenu undo undojoin undolist unabbreviate unhide unlet unlockvar unmap unmenu unsilent update vglobal version verbose vertical vimgrep vimgrepadd visual viusage view vmap vmapclear vmenu vnew vnoremap vnoremenu vsplit vunmap vunmenu write wNext wall while winsize wincmd winpos wnext wprevious wqall wsverb wundo wviminfo xit xall xmapclear xmap xmenu xnoremap xnoremenu xunmap xunmenu yank",built_in:"synIDtrans atan2 range matcharg did_filetype asin feedkeys xor argv complete_check add getwinposx getqflist getwinposy screencol clearmatches empty extend getcmdpos mzeval garbagecollect setreg ceil sqrt diff_hlID inputsecret get getfperm getpid filewritable shiftwidth max sinh isdirectory synID system inputrestore winline atan visualmode inputlist tabpagewinnr round getregtype mapcheck hasmapto histdel argidx findfile sha256 exists toupper getcmdline taglist string getmatches bufnr strftime winwidth bufexists strtrans tabpagebuflist setcmdpos remote_read printf setloclist getpos getline bufwinnr float2nr len getcmdtype diff_filler luaeval resolve libcallnr foldclosedend reverse filter has_key bufname str2float strlen setline getcharmod setbufvar index searchpos shellescape undofile foldclosed setqflist buflisted strchars str2nr virtcol floor remove undotree remote_expr winheight gettabwinvar reltime cursor tabpagenr finddir localtime acos getloclist search tanh matchend rename gettabvar strdisplaywidth type abs py3eval setwinvar tolower wildmenumode log10 spellsuggest bufloaded synconcealed nextnonblank server2client complete settabwinvar executable input wincol setmatches getftype hlID inputsave searchpair or screenrow line settabvar histadd deepcopy strpart remote_peek and eval getftime submatch screenchar winsaveview matchadd mkdir screenattr getfontname libcall reltimestr getfsize winnr invert pow getbufline byte2line soundfold repeat fnameescape tagfiles sin strwidth spellbadword trunc maparg log lispindent hostname setpos globpath remote_foreground getchar synIDattr fnamemodify cscope_connection stridx winbufnr indent min complete_add nr2char searchpairpos inputdialog values matchlist items hlexists strridx browsedir expand fmod pathshorten line2byte argc count getwinvar glob foldtextresult getreg foreground cosh matchdelete has char2nr simplify histget searchdecl iconv winrestcmd pumvisible writefile foldlevel haslocaldir keys cos matchstr foldtext histnr tan tempname getcwd byteidx getbufvar islocked escape eventhandler remote_send serverlist winrestview synstack pyeval prevnonblank readfile cindent filereadable changenr exp"},illegal:/;/,contains:[e.NUMBER_MODE,{className:"string",begin:"'",end:"'",illegal:"\\n"},{className:"string",begin:/"(\\"|\n\\|[^"\n])*"/},e.COMMENT('"',"$"),{className:"variable",begin:/[bwtglsav]:[\w\d_]+/},{begin:[/\b(?:function|function!)/,/\s+/,e.IDENT_RE],className:{1:"keyword",3:"title"},end:"$",relevance:0,contains:[{className:"params",begin:"\\(",end:"\\)"}]},{className:"symbol",begin:/<[\w-]+>/}]}}return xf=n,xf}var kf,iT;function tG(){if(iT)return kf;iT=1;function n(e){e.regex;const t=e.COMMENT(/\(;/,/;\)/);t.contains.push("self");const r=e.COMMENT(/;;/,/$/),i=["anyfunc","block","br","br_if","br_table","call","call_indirect","data","drop","elem","else","end","export","func","global.get","global.set","local.get","local.set","local.tee","get_global","get_local","global","if","import","local","loop","memory","memory.grow","memory.size","module","mut","nop","offset","param","result","return","select","set_global","set_local","start","table","tee_local","then","type","unreachable"],s={begin:[/(?:func|call|call_indirect)/,/\s+/,/\$[^\s)]+/],className:{1:"keyword",3:"title.function"}},a={className:"variable",begin:/\$[\w_]+/},o={match:/(\((?!;)|\))+/,className:"punctuation",relevance:0},l={className:"number",relevance:0,match:/[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/},c={match:/(i32|i64|f32|f64)(?!\.)/,className:"type"},u={className:"keyword",match:/\b(f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|nearest|neg?|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|store(?:8|16|32)?|sqrt|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))\b/};return{name:"WebAssembly",keywords:{$pattern:/[\w.]+/,keyword:i},contains:[r,t,{match:[/(?:offset|align)/,/\s*/,/=/],className:{1:"keyword",3:"operator"}},a,o,s,e.QUOTE_STRING_MODE,c,u,l]}}return kf=n,kf}var Lf,aT;function rG(){if(aT)return Lf;aT=1;function n(e){const t=e.regex,r=/[a-zA-Z]\w*/,i=["as","break","class","construct","continue","else","for","foreign","if","import","in","is","return","static","var","while"],s=["true","false","null"],a=["this","super"],o=["Bool","Class","Fiber","Fn","List","Map","Null","Num","Object","Range","Sequence","String","System"],l=["-","~",/\*/,"%",/\.\.\./,/\.\./,/\+/,"<<",">>",">=","<=","<",">",/\^/,/!=/,/!/,/\bis\b/,"==","&&","&",/\|\|/,/\|/,/\?:/,"="],c={relevance:0,match:t.concat(/\b(?!(if|while|for|else|super)\b)/,r,/(?=\s*[({])/),className:"title.function"},u={match:t.concat(t.either(t.concat(/\b(?!(if|while|for|else|super)\b)/,r),t.either(...l)),/(?=\s*\([^)]+\)\s*\{)/),className:"title.function",starts:{contains:[{begin:/\(/,end:/\)/,contains:[{relevance:0,scope:"params",match:r}]}]}},p={variants:[{match:[/class\s+/,r,/\s+is\s+/,r]},{match:[/class\s+/,r]}],scope:{2:"title.class",4:"title.class.inherited"},keywords:i},m={relevance:0,match:t.either(...l),className:"operator"},_={className:"string",begin:/"""/,end:/"""/},T={className:"property",begin:t.concat(/\./,t.lookahead(r)),end:r,excludeBegin:!0,relevance:0},I={relevance:0,match:t.concat(/\b_/,r),scope:"variable"},R={relevance:0,match:/\b[A-Z]+[a-z]+([A-Z]+[a-z]+)*/,scope:"title.class",keywords:{_:o}},L=e.C_NUMBER_MODE,$={match:[r,/\s*/,/=/,/\s*/,/\(/,r,/\)\s*\{/],scope:{1:"title.function",3:"operator",6:"params"}},K=e.COMMENT(/\/\*\*/,/\*\//,{contains:[{match:/@[a-z]+/,scope:"doctag"},"self"]}),f={scope:"subst",begin:/%\(/,end:/\)/,contains:[L,R,c,I,m]},E={scope:"string",begin:/"/,end:/"/,contains:[f,{scope:"char.escape",variants:[{match:/\\\\|\\["0%abefnrtv]/},{match:/\\x[0-9A-F]{2}/},{match:/\\u[0-9A-F]{4}/},{match:/\\U[0-9A-F]{8}/}]}]};f.contains.push(E);const S=[...i,...a,...s],N={relevance:0,match:t.concat("\\b(?!",S.join("|"),"\\b)",/[a-zA-Z_]\w*(?:[?!]|\b)/),className:"variable"};return{name:"Wren",keywords:{keyword:i,"variable.language":a,literal:s},contains:[{scope:"comment",variants:[{begin:[/#!?/,/[A-Za-z_]+(?=\()/],beginScope:{},keywords:{literal:s},contains:[],end:/\)/},{begin:[/#!?/,/[A-Za-z_]+/],beginScope:{},end:/$/}]},L,E,_,K,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,R,p,$,u,c,m,I,T,N]}}return Lf=n,Lf}var Mf,sT;function nG(){if(sT)return Mf;sT=1;function n(e){return{name:"Intel x86 Assembly",case_insensitive:!0,keywords:{$pattern:"[.%]?"+e.IDENT_RE,keyword:"lock rep repe repz repne repnz xaquire xrelease bnd nobnd aaa aad aam aas adc add and arpl bb0_reset bb1_reset bound bsf bsr bswap bt btc btr bts call cbw cdq cdqe clc cld cli clts cmc cmp cmpsb cmpsd cmpsq cmpsw cmpxchg cmpxchg486 cmpxchg8b cmpxchg16b cpuid cpu_read cpu_write cqo cwd cwde daa das dec div dmint emms enter equ f2xm1 fabs fadd faddp fbld fbstp fchs fclex fcmovb fcmovbe fcmove fcmovnb fcmovnbe fcmovne fcmovnu fcmovu fcom fcomi fcomip fcomp fcompp fcos fdecstp fdisi fdiv fdivp fdivr fdivrp femms feni ffree ffreep fiadd ficom ficomp fidiv fidivr fild fimul fincstp finit fist fistp fisttp fisub fisubr fld fld1 fldcw fldenv fldl2e fldl2t fldlg2 fldln2 fldpi fldz fmul fmulp fnclex fndisi fneni fninit fnop fnsave fnstcw fnstenv fnstsw fpatan fprem fprem1 fptan frndint frstor fsave fscale fsetpm fsin fsincos fsqrt fst fstcw fstenv fstp fstsw fsub fsubp fsubr fsubrp ftst fucom fucomi fucomip fucomp fucompp fxam fxch fxtract fyl2x fyl2xp1 hlt ibts icebp idiv imul in inc incbin insb insd insw int int01 int1 int03 int3 into invd invpcid invlpg invlpga iret iretd iretq iretw jcxz jecxz jrcxz jmp jmpe lahf lar lds lea leave les lfence lfs lgdt lgs lidt lldt lmsw loadall loadall286 lodsb lodsd lodsq lodsw loop loope loopne loopnz loopz lsl lss ltr mfence monitor mov movd movq movsb movsd movsq movsw movsx movsxd movzx mul mwait neg nop not or out outsb outsd outsw packssdw packsswb packuswb paddb paddd paddsb paddsiw paddsw paddusb paddusw paddw pand pandn pause paveb pavgusb pcmpeqb pcmpeqd pcmpeqw pcmpgtb pcmpgtd pcmpgtw pdistib pf2id pfacc pfadd pfcmpeq pfcmpge pfcmpgt pfmax pfmin pfmul pfrcp pfrcpit1 pfrcpit2 pfrsqit1 pfrsqrt pfsub pfsubr pi2fd pmachriw pmaddwd pmagw pmulhriw pmulhrwa pmulhrwc pmulhw pmullw pmvgezb pmvlzb pmvnzb pmvzb pop popa popad popaw popf popfd popfq popfw por prefetch prefetchw pslld psllq psllw psrad psraw psrld psrlq psrlw psubb psubd psubsb psubsiw psubsw psubusb psubusw psubw punpckhbw punpckhdq punpckhwd punpcklbw punpckldq punpcklwd push pusha pushad pushaw pushf pushfd pushfq pushfw pxor rcl rcr rdshr rdmsr rdpmc rdtsc rdtscp ret retf retn rol ror rdm rsdc rsldt rsm rsts sahf sal salc sar sbb scasb scasd scasq scasw sfence sgdt shl shld shr shrd sidt sldt skinit smi smint smintold smsw stc std sti stosb stosd stosq stosw str sub svdc svldt svts swapgs syscall sysenter sysexit sysret test ud0 ud1 ud2b ud2 ud2a umov verr verw fwait wbinvd wrshr wrmsr xadd xbts xchg xlatb xlat xor cmove cmovz cmovne cmovnz cmova cmovnbe cmovae cmovnb cmovb cmovnae cmovbe cmovna cmovg cmovnle cmovge cmovnl cmovl cmovnge cmovle cmovng cmovc cmovnc cmovo cmovno cmovs cmovns cmovp cmovpe cmovnp cmovpo je jz jne jnz ja jnbe jae jnb jb jnae jbe jna jg jnle jge jnl jl jnge jle jng jc jnc jo jno js jns jpo jnp jpe jp sete setz setne setnz seta setnbe setae setnb setnc setb setnae setcset setbe setna setg setnle setge setnl setl setnge setle setng sets setns seto setno setpe setp setpo setnp addps addss andnps andps cmpeqps cmpeqss cmpleps cmpless cmpltps cmpltss cmpneqps cmpneqss cmpnleps cmpnless cmpnltps cmpnltss cmpordps cmpordss cmpunordps cmpunordss cmpps cmpss comiss cvtpi2ps cvtps2pi cvtsi2ss cvtss2si cvttps2pi cvttss2si divps divss ldmxcsr maxps maxss minps minss movaps movhps movlhps movlps movhlps movmskps movntps movss movups mulps mulss orps rcpps rcpss rsqrtps rsqrtss shufps sqrtps sqrtss stmxcsr subps subss ucomiss unpckhps unpcklps xorps fxrstor fxrstor64 fxsave fxsave64 xgetbv xsetbv xsave xsave64 xsaveopt xsaveopt64 xrstor xrstor64 prefetchnta prefetcht0 prefetcht1 prefetcht2 maskmovq movntq pavgb pavgw pextrw pinsrw pmaxsw pmaxub pminsw pminub pmovmskb pmulhuw psadbw pshufw pf2iw pfnacc pfpnacc pi2fw pswapd maskmovdqu clflush movntdq movnti movntpd movdqa movdqu movdq2q movq2dq paddq pmuludq pshufd pshufhw pshuflw pslldq psrldq psubq punpckhqdq punpcklqdq addpd addsd andnpd andpd cmpeqpd cmpeqsd cmplepd cmplesd cmpltpd cmpltsd cmpneqpd cmpneqsd cmpnlepd cmpnlesd cmpnltpd cmpnltsd cmpordpd cmpordsd cmpunordpd cmpunordsd cmppd comisd cvtdq2pd cvtdq2ps cvtpd2dq cvtpd2pi cvtpd2ps cvtpi2pd cvtps2dq cvtps2pd cvtsd2si cvtsd2ss cvtsi2sd cvtss2sd cvttpd2pi cvttpd2dq cvttps2dq cvttsd2si divpd divsd maxpd maxsd minpd minsd movapd movhpd movlpd movmskpd movupd mulpd mulsd orpd shufpd sqrtpd sqrtsd subpd subsd ucomisd unpckhpd unpcklpd xorpd addsubpd addsubps haddpd haddps hsubpd hsubps lddqu movddup movshdup movsldup clgi stgi vmcall vmclear vmfunc vmlaunch vmload vmmcall vmptrld vmptrst vmread vmresume vmrun vmsave vmwrite vmxoff vmxon invept invvpid pabsb pabsw pabsd palignr phaddw phaddd phaddsw phsubw phsubd phsubsw pmaddubsw pmulhrsw pshufb psignb psignw psignd extrq insertq movntsd movntss lzcnt blendpd blendps blendvpd blendvps dppd dpps extractps insertps movntdqa mpsadbw packusdw pblendvb pblendw pcmpeqq pextrb pextrd pextrq phminposuw pinsrb pinsrd pinsrq pmaxsb pmaxsd pmaxud pmaxuw pminsb pminsd pminud pminuw pmovsxbw pmovsxbd pmovsxbq pmovsxwd pmovsxwq pmovsxdq pmovzxbw pmovzxbd pmovzxbq pmovzxwd pmovzxwq pmovzxdq pmuldq pmulld ptest roundpd roundps roundsd roundss crc32 pcmpestri pcmpestrm pcmpistri pcmpistrm pcmpgtq popcnt getsec pfrcpv pfrsqrtv movbe aesenc aesenclast aesdec aesdeclast aesimc aeskeygenassist vaesenc vaesenclast vaesdec vaesdeclast vaesimc vaeskeygenassist vaddpd vaddps vaddsd vaddss vaddsubpd vaddsubps vandpd vandps vandnpd vandnps vblendpd vblendps vblendvpd vblendvps vbroadcastss vbroadcastsd vbroadcastf128 vcmpeq_ospd vcmpeqpd vcmplt_ospd vcmpltpd vcmple_ospd vcmplepd vcmpunord_qpd vcmpunordpd vcmpneq_uqpd vcmpneqpd vcmpnlt_uspd vcmpnltpd vcmpnle_uspd vcmpnlepd vcmpord_qpd vcmpordpd vcmpeq_uqpd vcmpnge_uspd vcmpngepd vcmpngt_uspd vcmpngtpd vcmpfalse_oqpd vcmpfalsepd vcmpneq_oqpd vcmpge_ospd vcmpgepd vcmpgt_ospd vcmpgtpd vcmptrue_uqpd vcmptruepd vcmplt_oqpd vcmple_oqpd vcmpunord_spd vcmpneq_uspd vcmpnlt_uqpd vcmpnle_uqpd vcmpord_spd vcmpeq_uspd vcmpnge_uqpd vcmpngt_uqpd vcmpfalse_ospd vcmpneq_ospd vcmpge_oqpd vcmpgt_oqpd vcmptrue_uspd vcmppd vcmpeq_osps vcmpeqps vcmplt_osps vcmpltps vcmple_osps vcmpleps vcmpunord_qps vcmpunordps vcmpneq_uqps vcmpneqps vcmpnlt_usps vcmpnltps vcmpnle_usps vcmpnleps vcmpord_qps vcmpordps vcmpeq_uqps vcmpnge_usps vcmpngeps vcmpngt_usps vcmpngtps vcmpfalse_oqps vcmpfalseps vcmpneq_oqps vcmpge_osps vcmpgeps vcmpgt_osps vcmpgtps vcmptrue_uqps vcmptrueps vcmplt_oqps vcmple_oqps vcmpunord_sps vcmpneq_usps vcmpnlt_uqps vcmpnle_uqps vcmpord_sps vcmpeq_usps vcmpnge_uqps vcmpngt_uqps vcmpfalse_osps vcmpneq_osps vcmpge_oqps vcmpgt_oqps vcmptrue_usps vcmpps vcmpeq_ossd vcmpeqsd vcmplt_ossd vcmpltsd vcmple_ossd vcmplesd vcmpunord_qsd vcmpunordsd vcmpneq_uqsd vcmpneqsd vcmpnlt_ussd vcmpnltsd vcmpnle_ussd vcmpnlesd vcmpord_qsd vcmpordsd vcmpeq_uqsd vcmpnge_ussd vcmpngesd vcmpngt_ussd vcmpngtsd vcmpfalse_oqsd vcmpfalsesd vcmpneq_oqsd vcmpge_ossd vcmpgesd vcmpgt_ossd vcmpgtsd vcmptrue_uqsd vcmptruesd vcmplt_oqsd vcmple_oqsd vcmpunord_ssd vcmpneq_ussd vcmpnlt_uqsd vcmpnle_uqsd vcmpord_ssd vcmpeq_ussd vcmpnge_uqsd vcmpngt_uqsd vcmpfalse_ossd vcmpneq_ossd vcmpge_oqsd vcmpgt_oqsd vcmptrue_ussd vcmpsd vcmpeq_osss vcmpeqss vcmplt_osss vcmpltss vcmple_osss vcmpless vcmpunord_qss vcmpunordss vcmpneq_uqss vcmpneqss vcmpnlt_usss vcmpnltss vcmpnle_usss vcmpnless vcmpord_qss vcmpordss vcmpeq_uqss vcmpnge_usss vcmpngess vcmpngt_usss vcmpngtss vcmpfalse_oqss vcmpfalsess vcmpneq_oqss vcmpge_osss vcmpgess vcmpgt_osss vcmpgtss vcmptrue_uqss vcmptruess vcmplt_oqss vcmple_oqss vcmpunord_sss vcmpneq_usss vcmpnlt_uqss vcmpnle_uqss vcmpord_sss vcmpeq_usss vcmpnge_uqss vcmpngt_uqss vcmpfalse_osss vcmpneq_osss vcmpge_oqss vcmpgt_oqss vcmptrue_usss vcmpss vcomisd vcomiss vcvtdq2pd vcvtdq2ps vcvtpd2dq vcvtpd2ps vcvtps2dq vcvtps2pd vcvtsd2si vcvtsd2ss vcvtsi2sd vcvtsi2ss vcvtss2sd vcvtss2si vcvttpd2dq vcvttps2dq vcvttsd2si vcvttss2si vdivpd vdivps vdivsd vdivss vdppd vdpps vextractf128 vextractps vhaddpd vhaddps vhsubpd vhsubps vinsertf128 vinsertps vlddqu vldqqu vldmxcsr vmaskmovdqu vmaskmovps vmaskmovpd vmaxpd vmaxps vmaxsd vmaxss vminpd vminps vminsd vminss vmovapd vmovaps vmovd vmovq vmovddup vmovdqa vmovqqa vmovdqu vmovqqu vmovhlps vmovhpd vmovhps vmovlhps vmovlpd vmovlps vmovmskpd vmovmskps vmovntdq vmovntqq vmovntdqa vmovntpd vmovntps vmovsd vmovshdup vmovsldup vmovss vmovupd vmovups vmpsadbw vmulpd vmulps vmulsd vmulss vorpd vorps vpabsb vpabsw vpabsd vpacksswb vpackssdw vpackuswb vpackusdw vpaddb vpaddw vpaddd vpaddq vpaddsb vpaddsw vpaddusb vpaddusw vpalignr vpand vpandn vpavgb vpavgw vpblendvb vpblendw vpcmpestri vpcmpestrm vpcmpistri vpcmpistrm vpcmpeqb vpcmpeqw vpcmpeqd vpcmpeqq vpcmpgtb vpcmpgtw vpcmpgtd vpcmpgtq vpermilpd vpermilps vperm2f128 vpextrb vpextrw vpextrd vpextrq vphaddw vphaddd vphaddsw vphminposuw vphsubw vphsubd vphsubsw vpinsrb vpinsrw vpinsrd vpinsrq vpmaddwd vpmaddubsw vpmaxsb vpmaxsw vpmaxsd vpmaxub vpmaxuw vpmaxud vpminsb vpminsw vpminsd vpminub vpminuw vpminud vpmovmskb vpmovsxbw vpmovsxbd vpmovsxbq vpmovsxwd vpmovsxwq vpmovsxdq vpmovzxbw vpmovzxbd vpmovzxbq vpmovzxwd vpmovzxwq vpmovzxdq vpmulhuw vpmulhrsw vpmulhw vpmullw vpmulld vpmuludq vpmuldq vpor vpsadbw vpshufb vpshufd vpshufhw vpshuflw vpsignb vpsignw vpsignd vpslldq vpsrldq vpsllw vpslld vpsllq vpsraw vpsrad vpsrlw vpsrld vpsrlq vptest vpsubb vpsubw vpsubd vpsubq vpsubsb vpsubsw vpsubusb vpsubusw vpunpckhbw vpunpckhwd vpunpckhdq vpunpckhqdq vpunpcklbw vpunpcklwd vpunpckldq vpunpcklqdq vpxor vrcpps vrcpss vrsqrtps vrsqrtss vroundpd vroundps vroundsd vroundss vshufpd vshufps vsqrtpd vsqrtps vsqrtsd vsqrtss vstmxcsr vsubpd vsubps vsubsd vsubss vtestps vtestpd vucomisd vucomiss vunpckhpd vunpckhps vunpcklpd vunpcklps vxorpd vxorps vzeroall vzeroupper pclmullqlqdq pclmulhqlqdq pclmullqhqdq pclmulhqhqdq pclmulqdq vpclmullqlqdq vpclmulhqlqdq vpclmullqhqdq vpclmulhqhqdq vpclmulqdq vfmadd132ps vfmadd132pd vfmadd312ps vfmadd312pd vfmadd213ps vfmadd213pd vfmadd123ps vfmadd123pd vfmadd231ps vfmadd231pd vfmadd321ps vfmadd321pd vfmaddsub132ps vfmaddsub132pd vfmaddsub312ps vfmaddsub312pd vfmaddsub213ps vfmaddsub213pd vfmaddsub123ps vfmaddsub123pd vfmaddsub231ps vfmaddsub231pd vfmaddsub321ps vfmaddsub321pd vfmsub132ps vfmsub132pd vfmsub312ps vfmsub312pd vfmsub213ps vfmsub213pd vfmsub123ps vfmsub123pd vfmsub231ps vfmsub231pd vfmsub321ps vfmsub321pd vfmsubadd132ps vfmsubadd132pd vfmsubadd312ps vfmsubadd312pd vfmsubadd213ps vfmsubadd213pd vfmsubadd123ps vfmsubadd123pd vfmsubadd231ps vfmsubadd231pd vfmsubadd321ps vfmsubadd321pd vfnmadd132ps vfnmadd132pd vfnmadd312ps vfnmadd312pd vfnmadd213ps vfnmadd213pd vfnmadd123ps vfnmadd123pd vfnmadd231ps vfnmadd231pd vfnmadd321ps vfnmadd321pd vfnmsub132ps vfnmsub132pd vfnmsub312ps vfnmsub312pd vfnmsub213ps vfnmsub213pd vfnmsub123ps vfnmsub123pd vfnmsub231ps vfnmsub231pd vfnmsub321ps vfnmsub321pd vfmadd132ss vfmadd132sd vfmadd312ss vfmadd312sd vfmadd213ss vfmadd213sd vfmadd123ss vfmadd123sd vfmadd231ss vfmadd231sd vfmadd321ss vfmadd321sd vfmsub132ss vfmsub132sd vfmsub312ss vfmsub312sd vfmsub213ss vfmsub213sd vfmsub123ss vfmsub123sd vfmsub231ss vfmsub231sd vfmsub321ss vfmsub321sd vfnmadd132ss vfnmadd132sd vfnmadd312ss vfnmadd312sd vfnmadd213ss vfnmadd213sd vfnmadd123ss vfnmadd123sd vfnmadd231ss vfnmadd231sd vfnmadd321ss vfnmadd321sd vfnmsub132ss vfnmsub132sd vfnmsub312ss vfnmsub312sd vfnmsub213ss vfnmsub213sd vfnmsub123ss vfnmsub123sd vfnmsub231ss vfnmsub231sd vfnmsub321ss vfnmsub321sd rdfsbase rdgsbase rdrand wrfsbase wrgsbase vcvtph2ps vcvtps2ph adcx adox rdseed clac stac xstore xcryptecb xcryptcbc xcryptctr xcryptcfb xcryptofb montmul xsha1 xsha256 llwpcb slwpcb lwpval lwpins vfmaddpd vfmaddps vfmaddsd vfmaddss vfmaddsubpd vfmaddsubps vfmsubaddpd vfmsubaddps vfmsubpd vfmsubps vfmsubsd vfmsubss vfnmaddpd vfnmaddps vfnmaddsd vfnmaddss vfnmsubpd vfnmsubps vfnmsubsd vfnmsubss vfrczpd vfrczps vfrczsd vfrczss vpcmov vpcomb vpcomd vpcomq vpcomub vpcomud vpcomuq vpcomuw vpcomw vphaddbd vphaddbq vphaddbw vphadddq vphaddubd vphaddubq vphaddubw vphaddudq vphadduwd vphadduwq vphaddwd vphaddwq vphsubbw vphsubdq vphsubwd vpmacsdd vpmacsdqh vpmacsdql vpmacssdd vpmacssdqh vpmacssdql vpmacsswd vpmacssww vpmacswd vpmacsww vpmadcsswd vpmadcswd vpperm vprotb vprotd vprotq vprotw vpshab vpshad vpshaq vpshaw vpshlb vpshld vpshlq vpshlw vbroadcasti128 vpblendd vpbroadcastb vpbroadcastw vpbroadcastd vpbroadcastq vpermd vpermpd vpermps vpermq vperm2i128 vextracti128 vinserti128 vpmaskmovd vpmaskmovq vpsllvd vpsllvq vpsravd vpsrlvd vpsrlvq vgatherdpd vgatherqpd vgatherdps vgatherqps vpgatherdd vpgatherqd vpgatherdq vpgatherqq xabort xbegin xend xtest andn bextr blci blcic blsi blsic blcfill blsfill blcmsk blsmsk blsr blcs bzhi mulx pdep pext rorx sarx shlx shrx tzcnt tzmsk t1mskc valignd valignq vblendmpd vblendmps vbroadcastf32x4 vbroadcastf64x4 vbroadcasti32x4 vbroadcasti64x4 vcompresspd vcompressps vcvtpd2udq vcvtps2udq vcvtsd2usi vcvtss2usi vcvttpd2udq vcvttps2udq vcvttsd2usi vcvttss2usi vcvtudq2pd vcvtudq2ps vcvtusi2sd vcvtusi2ss vexpandpd vexpandps vextractf32x4 vextractf64x4 vextracti32x4 vextracti64x4 vfixupimmpd vfixupimmps vfixupimmsd vfixupimmss vgetexppd vgetexpps vgetexpsd vgetexpss vgetmantpd vgetmantps vgetmantsd vgetmantss vinsertf32x4 vinsertf64x4 vinserti32x4 vinserti64x4 vmovdqa32 vmovdqa64 vmovdqu32 vmovdqu64 vpabsq vpandd vpandnd vpandnq vpandq vpblendmd vpblendmq vpcmpltd vpcmpled vpcmpneqd vpcmpnltd vpcmpnled vpcmpd vpcmpltq vpcmpleq vpcmpneqq vpcmpnltq vpcmpnleq vpcmpq vpcmpequd vpcmpltud vpcmpleud vpcmpnequd vpcmpnltud vpcmpnleud vpcmpud vpcmpequq vpcmpltuq vpcmpleuq vpcmpnequq vpcmpnltuq vpcmpnleuq vpcmpuq vpcompressd vpcompressq vpermi2d vpermi2pd vpermi2ps vpermi2q vpermt2d vpermt2pd vpermt2ps vpermt2q vpexpandd vpexpandq vpmaxsq vpmaxuq vpminsq vpminuq vpmovdb vpmovdw vpmovqb vpmovqd vpmovqw vpmovsdb vpmovsdw vpmovsqb vpmovsqd vpmovsqw vpmovusdb vpmovusdw vpmovusqb vpmovusqd vpmovusqw vpord vporq vprold vprolq vprolvd vprolvq vprord vprorq vprorvd vprorvq vpscatterdd vpscatterdq vpscatterqd vpscatterqq vpsraq vpsravq vpternlogd vpternlogq vptestmd vptestmq vptestnmd vptestnmq vpxord vpxorq vrcp14pd vrcp14ps vrcp14sd vrcp14ss vrndscalepd vrndscaleps vrndscalesd vrndscaless vrsqrt14pd vrsqrt14ps vrsqrt14sd vrsqrt14ss vscalefpd vscalefps vscalefsd vscalefss vscatterdpd vscatterdps vscatterqpd vscatterqps vshuff32x4 vshuff64x2 vshufi32x4 vshufi64x2 kandnw kandw kmovw knotw kortestw korw kshiftlw kshiftrw kunpckbw kxnorw kxorw vpbroadcastmb2q vpbroadcastmw2d vpconflictd vpconflictq vplzcntd vplzcntq vexp2pd vexp2ps vrcp28pd vrcp28ps vrcp28sd vrcp28ss vrsqrt28pd vrsqrt28ps vrsqrt28sd vrsqrt28ss vgatherpf0dpd vgatherpf0dps vgatherpf0qpd vgatherpf0qps vgatherpf1dpd vgatherpf1dps vgatherpf1qpd vgatherpf1qps vscatterpf0dpd vscatterpf0dps vscatterpf0qpd vscatterpf0qps vscatterpf1dpd vscatterpf1dps vscatterpf1qpd vscatterpf1qps prefetchwt1 bndmk bndcl bndcu bndcn bndmov bndldx bndstx sha1rnds4 sha1nexte sha1msg1 sha1msg2 sha256rnds2 sha256msg1 sha256msg2 hint_nop0 hint_nop1 hint_nop2 hint_nop3 hint_nop4 hint_nop5 hint_nop6 hint_nop7 hint_nop8 hint_nop9 hint_nop10 hint_nop11 hint_nop12 hint_nop13 hint_nop14 hint_nop15 hint_nop16 hint_nop17 hint_nop18 hint_nop19 hint_nop20 hint_nop21 hint_nop22 hint_nop23 hint_nop24 hint_nop25 hint_nop26 hint_nop27 hint_nop28 hint_nop29 hint_nop30 hint_nop31 hint_nop32 hint_nop33 hint_nop34 hint_nop35 hint_nop36 hint_nop37 hint_nop38 hint_nop39 hint_nop40 hint_nop41 hint_nop42 hint_nop43 hint_nop44 hint_nop45 hint_nop46 hint_nop47 hint_nop48 hint_nop49 hint_nop50 hint_nop51 hint_nop52 hint_nop53 hint_nop54 hint_nop55 hint_nop56 hint_nop57 hint_nop58 hint_nop59 hint_nop60 hint_nop61 hint_nop62 hint_nop63",built_in:"ip eip rip al ah bl bh cl ch dl dh sil dil bpl spl r8b r9b r10b r11b r12b r13b r14b r15b ax bx cx dx si di bp sp r8w r9w r10w r11w r12w r13w r14w r15w eax ebx ecx edx esi edi ebp esp eip r8d r9d r10d r11d r12d r13d r14d r15d rax rbx rcx rdx rsi rdi rbp rsp r8 r9 r10 r11 r12 r13 r14 r15 cs ds es fs gs ss st st0 st1 st2 st3 st4 st5 st6 st7 mm0 mm1 mm2 mm3 mm4 mm5 mm6 mm7 xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 xmm11 xmm12 xmm13 xmm14 xmm15 xmm16 xmm17 xmm18 xmm19 xmm20 xmm21 xmm22 xmm23 xmm24 xmm25 xmm26 xmm27 xmm28 xmm29 xmm30 xmm31 ymm0 ymm1 ymm2 ymm3 ymm4 ymm5 ymm6 ymm7 ymm8 ymm9 ymm10 ymm11 ymm12 ymm13 ymm14 ymm15 ymm16 ymm17 ymm18 ymm19 ymm20 ymm21 ymm22 ymm23 ymm24 ymm25 ymm26 ymm27 ymm28 ymm29 ymm30 ymm31 zmm0 zmm1 zmm2 zmm3 zmm4 zmm5 zmm6 zmm7 zmm8 zmm9 zmm10 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm17 zmm18 zmm19 zmm20 zmm21 zmm22 zmm23 zmm24 zmm25 zmm26 zmm27 zmm28 zmm29 zmm30 zmm31 k0 k1 k2 k3 k4 k5 k6 k7 bnd0 bnd1 bnd2 bnd3 cr0 cr1 cr2 cr3 cr4 cr8 dr0 dr1 dr2 dr3 dr8 tr3 tr4 tr5 tr6 tr7 r0 r1 r2 r3 r4 r5 r6 r7 r0b r1b r2b r3b r4b r5b r6b r7b r0w r1w r2w r3w r4w r5w r6w r7w r0d r1d r2d r3d r4d r5d r6d r7d r0h r1h r2h r3h r0l r1l r2l r3l r4l r5l r6l r7l r8l r9l r10l r11l r12l r13l r14l r15l db dw dd dq dt ddq do dy dz resb resw resd resq rest resdq reso resy resz incbin equ times byte word dword qword nosplit rel abs seg wrt strict near far a32 ptr",meta:"%define %xdefine %+ %undef %defstr %deftok %assign %strcat %strlen %substr %rotate %elif %else %endif %if %ifmacro %ifctx %ifidn %ifidni %ifid %ifnum %ifstr %iftoken %ifempty %ifenv %error %warning %fatal %rep %endrep %include %push %pop %repl %pathsearch %depend %use %arg %stacksize %local %line %comment %endcomment .nolist __FILE__ __LINE__ __SECT__ __BITS__ __OUTPUT_FORMAT__ __DATE__ __TIME__ __DATE_NUM__ __TIME_NUM__ __UTC_DATE__ __UTC_TIME__ __UTC_DATE_NUM__ __UTC_TIME_NUM__ __PASS__ struc endstruc istruc at iend align alignb sectalign daz nodaz up down zero default option assume public bits use16 use32 use64 default section segment absolute extern global common cpu float __utf16__ __utf16le__ __utf16be__ __utf32__ __utf32le__ __utf32be__ __float8__ __float16__ __float32__ __float64__ __float80m__ __float80e__ __float128l__ __float128h__ __Infinity__ __QNaN__ __SNaN__ Inf NaN QNaN SNaN float8 float16 float32 float64 float80m float80e float128l float128h __FLOAT_DAZ__ __FLOAT_ROUND__ __FLOAT__"},contains:[e.COMMENT(";","$",{relevance:0}),{className:"number",variants:[{begin:"\\b(?:([0-9][0-9_]*)?\\.[0-9_]*(?:[eE][+-]?[0-9_]+)?|(0[Xx])?[0-9][0-9_]*(\\.[0-9_]*)?(?:[pP](?:[+-]?[0-9_]+)?)?)\\b",relevance:0},{begin:"\\$[0-9][0-9A-Fa-f]*",relevance:0},{begin:"\\b(?:[0-9A-Fa-f][0-9A-Fa-f_]*[Hh]|[0-9][0-9_]*[DdTt]?|[0-7][0-7_]*[QqOo]|[0-1][0-1_]*[BbYy])\\b"},{begin:"\\b(?:0[Xx][0-9A-Fa-f_]+|0[DdTt][0-9_]+|0[QqOo][0-7_]+|0[BbYy][0-1_]+)\\b"}]},e.QUOTE_STRING_MODE,{className:"string",variants:[{begin:"'",end:"[^\\\\]'"},{begin:"`",end:"[^\\\\]`"}],relevance:0},{className:"symbol",variants:[{begin:"^\\s*[A-Za-z._?][A-Za-z0-9_$#@~.?]*(:|\\s+label)"},{begin:"^\\s*%%[A-Za-z0-9_$#@~.?]*:"}],relevance:0},{className:"subst",begin:"%[0-9]+",relevance:0},{className:"subst",begin:"%!S+",relevance:0},{className:"meta",begin:/^\s*\.[\w_-]+/}]}}return Mf=n,Mf}var Pf,oT;function iG(){if(oT)return Pf;oT=1;function n(e){const t=["if","then","else","do","while","until","for","loop","import","with","is","as","where","when","by","data","constant","integer","real","text","name","boolean","symbol","infix","prefix","postfix","block","tree"],r=["in","mod","rem","and","or","xor","not","abs","sign","floor","ceil","sqrt","sin","cos","tan","asin","acos","atan","exp","expm1","log","log2","log10","log1p","pi","at","text_length","text_range","text_find","text_replace","contains","page","slide","basic_slide","title_slide","title","subtitle","fade_in","fade_out","fade_at","clear_color","color","line_color","line_width","texture_wrap","texture_transform","texture","scale_?x","scale_?y","scale_?z?","translate_?x","translate_?y","translate_?z?","rotate_?x","rotate_?y","rotate_?z?","rectangle","circle","ellipse","sphere","path","line_to","move_to","quad_to","curve_to","theme","background","contents","locally","time","mouse_?x","mouse_?y","mouse_buttons"],i=["ObjectLoader","Animate","MovieCredits","Slides","Filters","Shading","Materials","LensFlare","Mapping","VLCAudioVideo","StereoDecoder","PointCloud","NetworkAccess","RemoteControl","RegExp","ChromaKey","Snowfall","NodeJS","Speech","Charts"],a={$pattern:/[a-zA-Z][a-zA-Z0-9_?]*/,keyword:t,literal:["true","false","nil"],built_in:r.concat(i)},o={className:"string",begin:'"',end:'"',illegal:"\\n"},l={className:"string",begin:"'",end:"'",illegal:"\\n"},c={className:"string",begin:"<<",end:">>"},u={className:"number",begin:"[0-9]+#[0-9A-Z_]+(\\.[0-9-A-Z_]+)?#?([Ee][+-]?[0-9]+)?"},p={beginKeywords:"import",end:"$",keywords:a,contains:[o]},m={className:"function",begin:/[a-z][^\n]*->/,returnBegin:!0,end:/->/,contains:[e.inherit(e.TITLE_MODE,{starts:{endsWithParent:!0,keywords:a}})]};return{name:"XL",aliases:["tao"],keywords:a,contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,o,l,c,m,p,u,e.NUMBER_MODE]}}return Pf=n,Pf}var Bf,lT;function aG(){if(lT)return Bf;lT=1;function n(e){return{name:"XQuery",aliases:["xpath","xq"],case_insensitive:!1,illegal:/(proc)|(abstract)|(extends)|(until)|(#)/,keywords:{$pattern:/[a-zA-Z$][a-zA-Z0-9_:-]*/,keyword:["module","schema","namespace","boundary-space","preserve","no-preserve","strip","default","collation","base-uri","ordering","context","decimal-format","decimal-separator","copy-namespaces","empty-sequence","except","exponent-separator","external","grouping-separator","inherit","no-inherit","lax","minus-sign","per-mille","percent","schema-attribute","schema-element","strict","unordered","zero-digit","declare","import","option","function","validate","variable","for","at","in","let","where","order","group","by","return","if","then","else","tumbling","sliding","window","start","when","only","end","previous","next","stable","ascending","descending","allowing","empty","greatest","least","some","every","satisfies","switch","case","typeswitch","try","catch","and","or","to","union","intersect","instance","of","treat","as","castable","cast","map","array","delete","insert","into","replace","value","rename","copy","modify","update"],type:["item","document-node","node","attribute","document","element","comment","namespace","namespace-node","processing-instruction","text","construction","xs:anyAtomicType","xs:untypedAtomic","xs:duration","xs:time","xs:decimal","xs:float","xs:double","xs:gYearMonth","xs:gYear","xs:gMonthDay","xs:gMonth","xs:gDay","xs:boolean","xs:base64Binary","xs:hexBinary","xs:anyURI","xs:QName","xs:NOTATION","xs:dateTime","xs:dateTimeStamp","xs:date","xs:string","xs:normalizedString","xs:token","xs:language","xs:NMTOKEN","xs:Name","xs:NCName","xs:ID","xs:IDREF","xs:ENTITY","xs:integer","xs:nonPositiveInteger","xs:negativeInteger","xs:long","xs:int","xs:short","xs:byte","xs:nonNegativeInteger","xs:unisignedLong","xs:unsignedInt","xs:unsignedShort","xs:unsignedByte","xs:positiveInteger","xs:yearMonthDuration","xs:dayTimeDuration"],literal:["eq","ne","lt","le","gt","ge","is","self::","child::","descendant::","descendant-or-self::","attribute::","following::","following-sibling::","parent::","ancestor::","ancestor-or-self::","preceding::","preceding-sibling::","NaN"]},contains:[{className:"variable",begin:/[$][\w\-:]+/},{className:"built_in",variants:[{begin:/\barray:/,end:/(?:append|filter|flatten|fold-(?:left|right)|for-each(?:-pair)?|get|head|insert-before|join|put|remove|reverse|size|sort|subarray|tail)\b/},{begin:/\bmap:/,end:/(?:contains|entry|find|for-each|get|keys|merge|put|remove|size)\b/},{begin:/\bmath:/,end:/(?:a(?:cos|sin|tan[2]?)|cos|exp(?:10)?|log(?:10)?|pi|pow|sin|sqrt|tan)\b/},{begin:/\bop:/,end:/\(/,excludeEnd:!0},{begin:/\bfn:/,end:/\(/,excludeEnd:!0},{begin:/[^/,end:/(\/[\w._:-]+>)/,subLanguage:"xml",contains:[{begin:/\{/,end:/\}/,subLanguage:"xquery"},"self"]}]}}return Bf=n,Bf}var Uf,cT;function sG(){if(cT)return Uf;cT=1;function n(e){const t={className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[e.inherit(e.APOS_STRING_MODE,{illegal:null}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null})]},r=e.UNDERSCORE_TITLE_MODE,i={variants:[e.BINARY_NUMBER_MODE,e.C_NUMBER_MODE]},s="namespace class interface use extends function return abstract final public protected private static deprecated throw try catch Exception echo empty isset instanceof unset let var new const self require if else elseif switch case default do while loop for continue break likely unlikely __LINE__ __FILE__ __DIR__ __FUNCTION__ __CLASS__ __TRAIT__ __METHOD__ __NAMESPACE__ array boolean float double integer object resource string char long unsigned bool int uint ulong uchar true false null undefined";return{name:"Zephir",aliases:["zep"],keywords:s,contains:[e.C_LINE_COMMENT_MODE,e.COMMENT(/\/\*/,/\*\//,{contains:[{className:"doctag",begin:/@[A-Za-z]+/}]}),{className:"string",begin:/<<<['"]?\w+['"]?$/,end:/^\w+;/,contains:[e.BACKSLASH_ESCAPE]},{begin:/(::|->)+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/},{className:"function",beginKeywords:"function fn",end:/[;{]/,excludeEnd:!0,illegal:/\$|\[|%/,contains:[r,{className:"params",begin:/\(/,end:/\)/,keywords:s,contains:["self",e.C_BLOCK_COMMENT_MODE,t,i]}]},{className:"class",beginKeywords:"class interface",end:/\{/,excludeEnd:!0,illegal:/[:($"]/,contains:[{beginKeywords:"extends implements"},r]},{beginKeywords:"namespace",end:/;/,illegal:/[.']/,contains:[r]},{beginKeywords:"use",end:/;/,contains:[r]},{begin:/=>/},t,i]}}return Uf=n,Uf}var J=wU;J.registerLanguage("1c",DU());J.registerLanguage("abnf",xU());J.registerLanguage("accesslog",kU());J.registerLanguage("actionscript",LU());J.registerLanguage("ada",MU());J.registerLanguage("angelscript",PU());J.registerLanguage("apache",BU());J.registerLanguage("applescript",UU());J.registerLanguage("arcade",FU());J.registerLanguage("arduino",YU());J.registerLanguage("armasm",$U());J.registerLanguage("xml",GU());J.registerLanguage("asciidoc",QU());J.registerLanguage("aspectj",qU());J.registerLanguage("autohotkey",VU());J.registerLanguage("autoit",zU());J.registerLanguage("avrasm",HU());J.registerLanguage("awk",WU());J.registerLanguage("axapta",XU());J.registerLanguage("bash",ZU());J.registerLanguage("basic",KU());J.registerLanguage("bnf",jU());J.registerLanguage("brainfuck",JU());J.registerLanguage("c",eF());J.registerLanguage("cal",tF());J.registerLanguage("capnproto",rF());J.registerLanguage("ceylon",nF());J.registerLanguage("clean",iF());J.registerLanguage("clojure",aF());J.registerLanguage("clojure-repl",sF());J.registerLanguage("cmake",oF());J.registerLanguage("coffeescript",lF());J.registerLanguage("coq",cF());J.registerLanguage("cos",uF());J.registerLanguage("cpp",dF());J.registerLanguage("crmsh",pF());J.registerLanguage("crystal",hF());J.registerLanguage("csharp",fF());J.registerLanguage("csp",mF());J.registerLanguage("css",gF());J.registerLanguage("d",_F());J.registerLanguage("markdown",SF());J.registerLanguage("dart",OF());J.registerLanguage("delphi",EF());J.registerLanguage("diff",bF());J.registerLanguage("django",vF());J.registerLanguage("dns",TF());J.registerLanguage("dockerfile",CF());J.registerLanguage("dos",yF());J.registerLanguage("dsconfig",AF());J.registerLanguage("dts",IF());J.registerLanguage("dust",RF());J.registerLanguage("ebnf",NF());J.registerLanguage("elixir",wF());J.registerLanguage("elm",DF());J.registerLanguage("ruby",xF());J.registerLanguage("erb",kF());J.registerLanguage("erlang-repl",LF());J.registerLanguage("erlang",MF());J.registerLanguage("excel",PF());J.registerLanguage("fix",BF());J.registerLanguage("flix",UF());J.registerLanguage("fortran",FF());J.registerLanguage("fsharp",YF());J.registerLanguage("gams",$F());J.registerLanguage("gauss",GF());J.registerLanguage("gcode",QF());J.registerLanguage("gherkin",qF());J.registerLanguage("glsl",VF());J.registerLanguage("gml",zF());J.registerLanguage("go",HF());J.registerLanguage("golo",WF());J.registerLanguage("gradle",XF());J.registerLanguage("graphql",ZF());J.registerLanguage("groovy",KF());J.registerLanguage("haml",jF());J.registerLanguage("handlebars",JF());J.registerLanguage("haskell",eY());J.registerLanguage("haxe",tY());J.registerLanguage("hsp",rY());J.registerLanguage("http",nY());J.registerLanguage("hy",iY());J.registerLanguage("inform7",aY());J.registerLanguage("ini",sY());J.registerLanguage("irpf90",oY());J.registerLanguage("isbl",lY());J.registerLanguage("java",cY());J.registerLanguage("javascript",uY());J.registerLanguage("jboss-cli",dY());J.registerLanguage("json",pY());J.registerLanguage("julia",hY());J.registerLanguage("julia-repl",fY());J.registerLanguage("kotlin",mY());J.registerLanguage("lasso",gY());J.registerLanguage("latex",_Y());J.registerLanguage("ldif",SY());J.registerLanguage("leaf",OY());J.registerLanguage("less",EY());J.registerLanguage("lisp",bY());J.registerLanguage("livecodeserver",vY());J.registerLanguage("livescript",TY());J.registerLanguage("llvm",CY());J.registerLanguage("lsl",yY());J.registerLanguage("lua",AY());J.registerLanguage("makefile",IY());J.registerLanguage("mathematica",RY());J.registerLanguage("matlab",NY());J.registerLanguage("maxima",wY());J.registerLanguage("mel",DY());J.registerLanguage("mercury",xY());J.registerLanguage("mipsasm",kY());J.registerLanguage("mizar",LY());J.registerLanguage("perl",MY());J.registerLanguage("mojolicious",PY());J.registerLanguage("monkey",BY());J.registerLanguage("moonscript",UY());J.registerLanguage("n1ql",FY());J.registerLanguage("nestedtext",YY());J.registerLanguage("nginx",$Y());J.registerLanguage("nim",GY());J.registerLanguage("nix",QY());J.registerLanguage("node-repl",qY());J.registerLanguage("nsis",VY());J.registerLanguage("objectivec",zY());J.registerLanguage("ocaml",HY());J.registerLanguage("openscad",WY());J.registerLanguage("oxygene",XY());J.registerLanguage("parser3",ZY());J.registerLanguage("pf",KY());J.registerLanguage("pgsql",jY());J.registerLanguage("php",JY());J.registerLanguage("php-template",e$());J.registerLanguage("plaintext",t$());J.registerLanguage("pony",r$());J.registerLanguage("powershell",n$());J.registerLanguage("processing",i$());J.registerLanguage("profile",a$());J.registerLanguage("prolog",s$());J.registerLanguage("properties",o$());J.registerLanguage("protobuf",l$());J.registerLanguage("puppet",c$());J.registerLanguage("purebasic",u$());J.registerLanguage("python",d$());J.registerLanguage("python-repl",p$());J.registerLanguage("q",h$());J.registerLanguage("qml",f$());J.registerLanguage("r",m$());J.registerLanguage("reasonml",g$());J.registerLanguage("rib",_$());J.registerLanguage("roboconf",S$());J.registerLanguage("routeros",O$());J.registerLanguage("rsl",E$());J.registerLanguage("ruleslanguage",b$());J.registerLanguage("rust",v$());J.registerLanguage("sas",T$());J.registerLanguage("scala",C$());J.registerLanguage("scheme",y$());J.registerLanguage("scilab",A$());J.registerLanguage("scss",I$());J.registerLanguage("shell",R$());J.registerLanguage("smali",N$());J.registerLanguage("smalltalk",w$());J.registerLanguage("sml",D$());J.registerLanguage("sqf",x$());J.registerLanguage("sql",k$());J.registerLanguage("stan",L$());J.registerLanguage("stata",M$());J.registerLanguage("step21",P$());J.registerLanguage("stylus",B$());J.registerLanguage("subunit",U$());J.registerLanguage("swift",F$());J.registerLanguage("taggerscript",Y$());J.registerLanguage("yaml",$$());J.registerLanguage("tap",G$());J.registerLanguage("tcl",Q$());J.registerLanguage("thrift",q$());J.registerLanguage("tp",V$());J.registerLanguage("twig",z$());J.registerLanguage("typescript",H$());J.registerLanguage("vala",W$());J.registerLanguage("vbnet",X$());J.registerLanguage("vbscript",Z$());J.registerLanguage("vbscript-html",K$());J.registerLanguage("verilog",j$());J.registerLanguage("vhdl",J$());J.registerLanguage("vim",eG());J.registerLanguage("wasm",tG());J.registerLanguage("wren",rG());J.registerLanguage("x86asm",nG());J.registerLanguage("xl",iG());J.registerLanguage("xquery",aG());J.registerLanguage("zephir",sG());J.HighlightJS=J;J.default=J;var oG=J,lG=BB.decode,cG=VI,Ff=oG,Yf='class="',uG=function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=e.pre,r=t===void 0?!1:t,i=e.auto_detection,s=i===void 0?!0:i,a=function(l,c,u){var p={left:"
    ]*>",right:"
    ",flags:"g"},m=function(T,I,R,L){I=lG(I);var $=(R.match(/class=\"([^ \"]+)/)||[])[1];if(!$&&!s)return T;if(R.includes(Yf)){var K=R.indexOf(Yf)+Yf.length;R=R.slice(0,K)+"hljs "+R.slice(K)}else R=R.slice(0,-1)+' class="hljs">';return r&&$&&(R=R.replace("
    ",'
    ')),$&&Ff.getLanguage($)?R+Ff.highlight(I,{language:$}).value+L:R+Ff.highlightAuto(I).value+L};return cG.helper.replaceRecursiveRegExp(l,m,p.left,p.right,p.flags)};return[{type:"output",filter:a}]};const dG=QI(uG);zI.setFlavor("github");localStorage.openpages=Date.now();window.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);const uT={h1:"text-white lg:text-4xl text-xl lg:ml-4 lg:mx-4 mx-2 lg:my-4 my-2 lg:mb-4 mb-4 bg-neutral-900 rounded-lg py-2 px-2",h2:"text-white lg:text-3xl text-xl lg:ml-4 lg:mx-4 mx-2 lg:my-4 my-2 lg:mb-4 mb-4 bg-neutral-900 rounded-lg py-2 px-2",h3:"text-white lg:text-2xl text-xl lg:ml-4 lg:mx-4 mx-2 lg:my-4 my-2 lg:mb-4 mb-4 bg-neutral-700 rounded-lg py-2 px-2 lg:mt-16",ul:"text-underline pl-6",li:"list-disc lg:text-2xl text-base text-white lg:mx-4 mx-2 my-4 my-2 leading-normal",p:"lg:text-2xl text-base text-white lg:mx-6 mx-2 my-4 leading-normal",warning:"animate-pulse lg:text-2xl font-bold text-rose-600 lg:mx-6 mx-2 my-4 leading-normal",a:"lg:text-2xl text-base text-orange-300",code:"lg:my-4 sm:my-1 text-base lg:text-xl block whitespace-pre overflow-x-hidden",icode:"lg:my-1 my-1 lg:text-xl sm:text-xs text-white font-mono bg-neutral-600",ic:"lg:my-1 my-1 lg:text-xl sm:text-xs text-white font-mono bg-neutral-600",blockquote:"text-neutral-200 border-l-4 border-neutral-500 pl-4 my-4 mx-4",details:"lg:mx-12 py-2 px-6 lg:text-2xl text-white rounded-lg bg-neutral-600",summary:"font-semibold text-xl",table:"justify-center lg:my-12 my-2 lg:mx-12 mx-2 lg:text-2xl text-base w-full text-left text-white border-collapse",thead:"text-xs text-gray-700 uppercase bg-gray-50 dark:bg-gray-700 dark:text-gray-400",th:"",td:"",tr:""},pG=Object.keys(uT).map(n=>({type:"output",regex:new RegExp(`<${n}([^>]*)>`,"g"),replace:(e,t)=>`<${n} class="${uT[n]}" ${t}>`}));class hG{constructor(){b(this,"universes",Ao);b(this,"selected_universe");b(this,"local_index",1);b(this,"editor_mode","global");b(this,"fontSize");b(this,"withLineNumbers");b(this,"vimModeCompartment");b(this,"hoveringCompartment");b(this,"chosenLanguage");b(this,"currentDocumentationPane","introduction");b(this,"exampleCounter",0);b(this,"exampleIsPlaying",!1);b(this,"settings",new qM);b(this,"editorExtensions",[]);b(this,"userPlugins",[]);b(this,"state");b(this,"api");b(this,"selectedExample","");b(this,"docs",{});b(this,"audioContext");b(this,"view");b(this,"clock");b(this,"manualPlay",!1);b(this,"isPlaying",!1);b(this,"_mouseX",0);b(this,"_mouseY",0);b(this,"topos_logo",document.getElementById("topos-logo"));b(this,"play_buttons",[document.getElementById("play-button-1")]);b(this,"stop_buttons",[document.getElementById("stop-button-1")]);b(this,"clear_buttons",[document.getElementById("clear-button-1")]);b(this,"load_universe_button",document.getElementById("load-universe-button"));b(this,"download_universe_button",document.getElementById("download-universes"));b(this,"upload_universe_button",document.getElementById("upload-universes"));b(this,"destroy_universes_button",document.getElementById("destroy-universes"));b(this,"documentation_button",document.getElementById("doc-button-1"));b(this,"eval_button",document.getElementById("eval-button-1"));b(this,"local_button",document.getElementById("local-button"));b(this,"global_button",document.getElementById("global-button"));b(this,"init_button",document.getElementById("init-button"));b(this,"note_button",document.getElementById("note-button"));b(this,"settings_button",document.getElementById("settings-button"));b(this,"close_settings_button",document.getElementById("close-settings-button"));b(this,"close_universes_button",document.getElementById("close-universes-button"));b(this,"universe_viewer",document.getElementById("universe-viewer"));b(this,"buffer_modal",document.getElementById("modal-buffers"));b(this,"buffer_search",document.getElementById("buffer-search"));b(this,"universe_creator",document.getElementById("universe-creator"));b(this,"local_script_tabs",document.getElementById("local-script-tabs"));b(this,"font_size_input",document.getElementById("font-size-input"));b(this,"font_family_selector",document.getElementById("font-family"));b(this,"vim_mode_checkbox",document.getElementById("vim-mode"));b(this,"line_numbers_checkbox",document.getElementById("show-line-numbers"));b(this,"time_position_checkbox",document.getElementById("show-time-position"));b(this,"tips_checkbox",document.getElementById("show-tips"));b(this,"midi_clock_checkbox",document.getElementById("send-midi-clock"));b(this,"midi_channels_scripts",document.getElementById("midi-channels-scripts"));b(this,"midi_clock_ppqn",document.getElementById("midi-clock-ppqn-input"));b(this,"load_demo_songs",document.getElementById("load-demo-songs"));b(this,"normal_mode_button",document.getElementById("normal-mode"));b(this,"vim_mode_button",document.getElementById("vim-mode"));b(this,"share_button",document.getElementById("share-button"));b(this,"audio_nudge_range",document.getElementById("audio_nudge"));b(this,"error_line",document.getElementById("error_line"));b(this,"show_error",!1);b(this,"hydra_canvas",document.getElementById("hydra-bg"));b(this,"hydra_backend",new Hydra({canvas:this.hydra_canvas,detectAudio:!1,enableStreamCapture:!1}));b(this,"hydra",this.hydra_backend.synth);b(this,"emptyUrl",()=>{window.history.replaceState({},document.title,"/")});b(this,"parseHash",e=>JSON.parse(e));b(this,"updateKnownUniversesView",()=>{let e=document.getElementById("existing-universes"),t=Object.keys(this.universes),r="
      ";t.forEach(i=>{r+=`
    • ${i}

      -
    • `}),r=r+"
    ",e.innerHTML=r});if(this.line_numbers_checkbox.checked=this.settings.line_numbers,this.time_position_checkbox.checked=this.settings.time_position,this.tips_checkbox.checked=this.settings.tips,this.midi_clock_checkbox.checked=this.settings.send_clock,this.midi_channels_scripts.checked=this.settings.midi_channels_scripts,this.midi_clock_ppqn.value=this.settings.midi_clock_ppqn.toString(),this.settings.time_position||document.getElementById("timeviewer").classList.add("hidden"),this.load_demo_songs.checked=this.settings.load_demo_songs,this.universes={...this.settings.universes,...Ao},this.settings.load_demo_songs){let l=ic[Math.floor(Math.random()*ic.length)];this.selected_universe="Welcome",this.universes[this.selected_universe].global.committed=l,this.universes[this.selected_universe].global.candidate=l}else this.selected_universe=this.settings.selected_universe,this.universes[this.selected_universe]===void 0&&(this.universes[this.selected_universe]=structuredClone(Xu));this.universe_viewer.innerHTML=`Topos: ${this.selected_universe}`,this.audioContext=new AudioContext({latencyHint:"playback"}),this.clock=new MP(this,this.audioContext),this.api=new uB(this),dB(this.api),cB(this.api),this.vimModeCompartment=new zn,this.hoveringCompartment=new zn,this.withLineNumbers=new zn,this.chosenLanguage=new zn,this.fontSize=new zn;const e=this.settings.vimMode?Wu():[],t=this.settings.line_numbers?IS():[],r=Pe.theme({"&":{fontSize:`${this.settings.font_size}px`},$content:{fontFamily:`${this.settings.font}, Menlo, Monaco, Lucida Console, monospace`,fontSize:`${this.settings.font_size}px`},".cm-gutters":{fontSize:`${this.settings.font_size}px`}});this.editorExtensions=[this.vimModeCompartment.of(e),this.withLineNumbers.of(t),this.fontSize.of(r),this.hoveringCompartment.of(this.settings.tips?hO:[]),iP,zD,this.chosenLanguage.of(Am()),Pe.updateListener.of(l=>{})];let i=new zn;(async()=>{await vE()})(),this.docs=dE(this),window.addEventListener("keydown",l=>{l.key==="Tab"&&l.preventDefault(),l.ctrlKey&&l.key==="s"&&(l.preventDefault(),this.setButtonHighlighting("stop",!0),this.clock.stop()),l.ctrlKey&&l.key==="p"&&(l.preventDefault(),this.isPlaying?(this.isPlaying=!1,this.setButtonHighlighting("pause",!0),this.clock.pause()):(this.isPlaying=!0,this.setButtonHighlighting("play",!0),this.clock.start())),(l.key==="v"||l.key==="V")&&l.ctrlKey&&l.shiftKey&&(this.settings.vimMode=!this.settings.vimMode,l.preventDefault(),this.userPlugins=this.settings.vimMode?[]:[Wu()],this.view.dispatch({effects:i.reconfigure(this.userPlugins)})),(l.key==="Enter"||l.key==="Return")&&l.ctrlKey&&(l.preventDefault(),this.currentFile().candidate=this.view.state.doc.toString(),this.flashBackground("#404040",200)),(l.key==="Enter"&&l.shiftKey||l.key==="e"&&l.ctrlKey)&&(l.preventDefault(),this.currentFile().candidate=this.view.state.doc.toString(),this.flashBackground("#404040",200)),l.key==="Enter"&&l.shiftKey&&l.ctrlKey&&(l.preventDefault(),this.currentFile().candidate=this.view.state.doc.toString(),ls(this,this.currentFile()),this.flashBackground("#404040",200)),l.ctrlKey&&l.key==="b"&&(l.preventDefault(),this.hideDocumentation(),this.updateKnownUniversesView(),this.openBuffersModal()),l.shiftKey&&l.key==="Escape"&&this.openSettingsModal(),l.ctrlKey&&l.key==="l"&&(l.preventDefault(),this.changeModeFromInterface("local"),this.hideDocumentation(),this.view.focus()),l.ctrlKey&&l.key==="n"&&(l.preventDefault(),this.changeModeFromInterface("notes"),this.hideDocumentation(),this.view.focus()),l.ctrlKey&&l.key==="g"&&(l.preventDefault(),this.changeModeFromInterface("global"),this.hideDocumentation(),this.view.focus()),l.ctrlKey&&l.key==="i"&&(l.preventDefault(),this.changeModeFromInterface("init"),this.hideDocumentation(),this.changeToLocalBuffer(0),this.view.focus()),l.ctrlKey&&l.key==="d"&&(l.preventDefault(),this.showDocumentation()),[112,113,114,115,116,117,118,119,120].forEach((c,u)=>{l.keyCode===c&&(l.preventDefault(),l.ctrlKey?(l.preventDefault(),this.api.script(c-111)):(l.preventDefault(),this.changeModeFromInterface("local"),this.changeToLocalBuffer(u),this.hideDocumentation()))}),l.keyCode==121&&(l.preventDefault(),this.changeModeFromInterface("global"),this.hideDocumentation()),l.keyCode==122&&(l.preventDefault(),this.changeModeFromInterface("init"),this.hideDocumentation())});const a=document.querySelectorAll('[id^="tab-"]');for(let l=0;l{a[l].classList.add("bg-orange-300");for(let m=0;m{this.hideDocumentation(),this.updateKnownUniversesView(),this.openBuffersModal()}),this.play_buttons.forEach(l=>{l.addEventListener("click",()=>{this.isPlaying?(this.setButtonHighlighting("pause",!0),this.isPlaying=!this.isPlaying,this.clock.pause(),this.api.MidiConnection.sendStopMessage()):(this.setButtonHighlighting("play",!0),this.isPlaying=!this.isPlaying,this.clock.start(),this.api.MidiConnection.sendStartMessage())})}),this.clear_buttons.forEach(l=>{l.addEventListener("click",()=>{this.setButtonHighlighting("clear",!0),confirm("Do you want to reset the current universe?")&&(this.universes[this.selected_universe]=structuredClone(Xu),this.updateEditorView())})}),this.documentation_button.addEventListener("click",()=>{this.showDocumentation()}),this.destroy_universes_button.addEventListener("click",()=>{confirm("Do you want to destroy all universes?")&&(this.universes={...Ao},this.updateKnownUniversesView())}),this.upload_universe_button.addEventListener("click",()=>{const l=document.createElement("input");l.type="file",l.accept=".json",l.addEventListener("change",c=>{var m;const p=(m=c.target.files)==null?void 0:m[0];if(p){const _=new FileReader;_.readAsText(p,"UTF-8"),_.onload=T=>{const I=JSON.parse(T.target.result);for(const[R,L]of Object.entries(I))this.universes[R]=L},_.onerror=T=>{console.error("An error occurred reading the file:",T)}}}),document.body.appendChild(l),l.click(),document.body.removeChild(l)}),this.download_universe_button.addEventListener("click",()=>{this.settings.saveApplicationToLocalStorage(this.universes,this.settings);let l=`topos-universes-${Date.now()}.json`;const c=new Blob([JSON.stringify(this.settings.universes)],{type:"application/json"}),u=URL.createObjectURL(c),p=document.createElement("a");p.href=u,p.download=l,document.body.appendChild(p),p.click(),document.body.removeChild(p),URL.revokeObjectURL(u)}),this.load_universe_button.addEventListener("click",()=>{let l=this.buffer_search.value;l.length>2&&l.length<20&&!l.includes(" ")&&(this.loadUniverse(l),this.settings.selected_universe=l,this.buffer_search.value="",this.closeBuffersModal(),this.view.focus(),this.emptyUrl())}),this.eval_button.addEventListener("click",()=>{this.currentFile().candidate=this.view.state.doc.toString(),this.flashBackground("#404040",200)}),this.stop_buttons.forEach(l=>{l.addEventListener("click",()=>{this.setButtonHighlighting("stop",!0),this.isPlaying=!1,this.clock.stop()})}),this.local_button.addEventListener("click",()=>this.changeModeFromInterface("local")),this.global_button.addEventListener("click",()=>this.changeModeFromInterface("global")),this.init_button.addEventListener("click",()=>this.changeModeFromInterface("init")),this.note_button.addEventListener("click",()=>this.changeModeFromInterface("notes")),this.font_family_selector.addEventListener("change",()=>{let l=this.font_family_selector.value;this.settings.font=l;let c=Pe.theme({"&":{fontSize:this.settings.font_size+"px"},"&content":{fontFamily:l,fontSize:this.settings.font_size+"px"},".cm-gutters":{fontSize:this.settings.font_size+"px"}});this.view.dispatch({effects:this.fontSize.reconfigure(c)})}),this.font_size_input.addEventListener("input",()=>{let l=this.font_size_input.value;this.settings.font_size=Math.max(8,Math.min(48,parseInt(l)));let c=Pe.theme({"&":{fontSize:l+"px"},"&content":{fontFamily:this.settings.font,fontSize:l+"px"},".cm-gutters":{fontSize:l+"px"}});this.view.dispatch({effects:this.fontSize.reconfigure(c)}),this.settings.font_size=parseInt(l)}),this.settings_button.addEventListener("click",()=>{this.font_family_selector.value=this.settings.font,this.settings.font_size===null&&(this.settings.font_size=12),this.font_size_input.value=this.settings.font_size.toString(),this.line_numbers_checkbox.checked=this.settings.line_numbers,this.time_position_checkbox.checked=this.settings.time_position,this.tips_checkbox.checked=this.settings.tips,this.midi_clock_checkbox.checked=this.settings.send_clock,this.midi_channels_scripts.checked=this.settings.midi_channels_scripts,this.midi_clock_ppqn.value=this.settings.midi_clock_ppqn.toString(),this.load_demo_songs.checked=this.settings.load_demo_songs,this.vim_mode_checkbox.checked=this.settings.vimMode;let l=document.getElementById("modal-settings"),c=document.getElementById("editor");l==null||l.classList.remove("invisible"),c==null||c.classList.add("invisible")}),this.close_settings_button.addEventListener("click",()=>{let l=document.getElementById("modal-settings"),c=document.getElementById("editor");l==null||l.classList.add("invisible"),c==null||c.classList.remove("invisible"),this.view.dispatch({effects:this.fontSize.reconfigure(Pe.theme({"&":{fontSize:this.settings.font_size+"px"},"&content":{fontFamily:this.settings.font,fontSize:this.settings.font_size+"px"},".cm-gutters":{fontSize:this.settings.font_size+"px"}}))})}),this.close_universes_button.addEventListener("click",()=>{this.openBuffersModal()}),this.share_button.addEventListener("click",async()=>{this.currentFile().candidate=mn.view.state.doc.toString(),this.currentFile().committed=mn.view.state.doc.toString(),this.settings.saveApplicationToLocalStorage(mn.universes,mn.settings),await this.share()}),this.vim_mode_checkbox.addEventListener("change",()=>{let l=!!this.vim_mode_checkbox.checked;this.settings.vimMode=l,this.view.dispatch({effects:this.vimModeCompartment.reconfigure(l?Wu():[])})}),this.line_numbers_checkbox.addEventListener("change",()=>{let l=!!this.line_numbers_checkbox.checked;this.settings.line_numbers=l,this.view.dispatch({effects:this.withLineNumbers.reconfigure(l?[IS()]:[])})}),this.time_position_checkbox.addEventListener("change",()=>{let l=document.getElementById("timeviewer"),c=!!this.time_position_checkbox.checked;this.settings.time_position=c,c?l.classList.remove("hidden"):l.classList.add("hidden")}),this.tips_checkbox.addEventListener("change",()=>{let l=!!this.tips_checkbox.checked;this.settings.tips=l,this.view.dispatch({effects:this.hoveringCompartment.reconfigure(l?hO:[])})}),this.midi_clock_checkbox.addEventListener("change",()=>{let l=!!this.midi_clock_checkbox.checked;this.settings.send_clock=l}),this.midi_channels_scripts.addEventListener("change",()=>{let l=!!this.midi_channels_scripts.checked;this.settings.midi_channels_scripts=l}),this.midi_clock_ppqn.addEventListener("change",()=>{let l=parseInt(this.midi_clock_ppqn.value);this.settings.midi_clock_ppqn=l}),this.load_demo_songs.addEventListener("change",()=>{let l=!!this.load_demo_songs.checked;this.settings.load_demo_songs=l}),this.universe_creator.addEventListener("submit",l=>{l.preventDefault();let u=new FormData(this.universe_creator).get("universe");u&&u.length>2&&u.length<20&&(this.loadUniverse(u),this.settings.selected_universe=u,this.buffer_search.value="",this.closeBuffersModal(),this.view.focus())}),ls(this,this.universes[this.selected_universe.toString()].init),["introduction","interface","interaction","code","time","sound","samples","synths","chaining","patterns","ziffers","midi","functions","lfos","probabilities","variables","shortcuts","about","bonus"].forEach(l=>{let c="docs_"+l;document.getElementById(c).addEventListener("click",async()=>{c!=="docs_samples"?(this.currentDocumentationPane=l,this.updateDocumentationContent()):(console.log("Loading samples!"),await vE().then(()=>{this.docs=dE(this),this.currentDocumentationPane=l,this.updateDocumentationContent()}))})}),Object.entries(this.api).forEach(([l,c])=>{globalThis[l]=c}),this.state=_t.create({extensions:[...this.editorExtensions,Pe.lineWrapping,i.of(this.userPlugins),Ti.highest(Ia.of([{key:"Ctrl-Enter",run:()=>!0}])),Ia.of([tM])],doc:this.universes[this.selected_universe].global.candidate}),this.view=new Pe({parent:document.getElementById("editor"),state:this.state}),this.changeModeFromInterface("global");let o=new URLSearchParams(window.location.search);if(o!==void 0){let l;if(o!==null){const c=o.get("universe");if(c!==null){let u=Uint8Array.from(atob(c),m=>m.charCodeAt(0));l=JSON.parse(MB(xB(u)));const p=OR({length:2,separator:"_",dictionaries:[bR,ER]});this.loadUniverse(p,l.universe),this.emptyUrl(),this.emptyUrl()}}}this.hydra=this.hydra_backend.synth}get note_buffer(){return this.universes[this.selected_universe.toString()].notes}get example_buffer(){return this.universes[this.selected_universe.toString()].example}get global_buffer(){return this.universes[this.selected_universe.toString()].global}get init_buffer(){return this.universes[this.selected_universe.toString()].init}get local_buffer(){return this.universes[this.selected_universe.toString()].locals[this.local_index]}async share(){async function e(a){const o=await new Promise(l=>{const c=new FileReader;c.onload=()=>l(c.result),c.readAsDataURL(new Blob([a]))});return o.slice(o.indexOf(",")+1)}let t=JSON.stringify({universe:this.settings.universes[this.selected_universe]}),r=NB(new TextEncoder().encode(t));const i=await e(r),s=new URL(window.location.href);s.searchParams.set("universe",i),window.history.replaceState({},"",s.toString()),navigator.clipboard.writeText(s.toString())}showDocumentation(){var e,t,r,i,s;(e=document.getElementById("app"))!=null&&e.classList.contains("hidden")?((t=document.getElementById("app"))==null||t.classList.remove("hidden"),(r=document.getElementById("documentation"))==null||r.classList.add("hidden"),this.exampleIsPlaying=!1):((i=document.getElementById("app"))==null||i.classList.add("hidden"),(s=document.getElementById("documentation"))==null||s.classList.remove("hidden"),this.updateDocumentationContent())}hideDocumentation(){var e,t,r;(e=document.getElementById("app"))!=null&&e.classList.contains("hidden")&&((t=document.getElementById("app"))==null||t.classList.remove("hidden"),(r=document.getElementById("documentation"))==null||r.classList.add("hidden"))}updateDocumentationContent(){const t=new zI.Converter({emoji:!0,moreStyling:!0,backslashEscapesHTMLTags:!0,extensions:[dG({auto_detection:!0}),...pG]}).makeHtml(this.docs[this.currentDocumentationPane]);document.getElementById("documentation-content").innerHTML=t}changeToLocalBuffer(e){const t=document.querySelectorAll('[id^="tab-"]'),r=t[e];r.classList.add("bg-orange-300");for(let s=0;s{t.forEach(s=>{let a=s.children[0];a.classList.contains("text-orange-300")&&(a.classList.remove("text-orange-300"),s.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.local_script_tabs.classList.contains("hidden")&&this.local_script_tabs.classList.remove("hidden"),this.editor_mode="local",this.local_index=0,this.changeToLocalBuffer(this.local_index),r(this.local_button);break;case"global":this.local_script_tabs.classList.contains("hidden")||this.local_script_tabs.classList.add("hidden"),this.editor_mode="global",r(this.global_button);break;case"init":this.local_script_tabs.classList.contains("hidden")||this.local_script_tabs.classList.add("hidden"),this.editor_mode="init",r(this.init_button);break;case"notes":this.local_script_tabs.classList.contains("hidden")||this.local_script_tabs.classList.add("hidden"),this.editor_mode="notes",r(this.note_button);break}this.view.dispatch({effects:this.chosenLanguage.reconfigure(this.editor_mode=="notes"?[zk()]:[Am()])}),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 r=['[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(r[i]).forEach(s=>{t&&s.children[0].classList.add("animate-pulse")}),document.querySelectorAll(r.filter((s,a)=>a!=i).join(",")).forEach(s=>{s.children[0].classList.remove("animate-pulse"),s.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}}loadUniverse(e,t=Xu){console.log(e,t),this.currentFile().candidate=this.view.state.doc.toString();let r=e.trim();this.universes[r]===void 0&&(this.settings.universes[r]=t,this.universes[r]=t),this.selected_universe=r,this.settings.selected_universe=this.selected_universe,this.universe_viewer.innerHTML=`Topos: ${r}`,this.updateEditorView(),ls(this,this.universes[this.selected_universe.toString()].init)}openSettingsModal(){document.getElementById("modal-settings").classList.contains("invisible")?(document.getElementById("editor").classList.add("invisible"),document.getElementById("modal-settings").classList.remove("invisible")):this.closeSettingsModal()}closeSettingsModal(){document.getElementById("editor").classList.remove("invisible"),document.getElementById("modal-settings").classList.add("invisible")}openBuffersModal(){document.getElementById("modal-buffers").classList.contains("invisible")?(document.getElementById("editor").classList.add("invisible"),document.getElementById("modal-buffers").classList.remove("invisible"),document.getElementById("buffer-search").focus()):this.closeBuffersModal()}closeBuffersModal(){document.getElementById("buffer-search").value="",document.getElementById("editor").classList.remove("invisible"),document.getElementById("modal-buffers").classList.add("invisible")}flashBackground(e,t){this.view.dom.style.backgroundColor=e;const r=this.view.dom.getElementsByClassName("cm-gutter");Array.from(r).forEach(i=>i.style.backgroundColor=e),setTimeout(()=>{this.view.dom.style.backgroundColor="",Array.from(r).forEach(i=>i.style.backgroundColor="")},t)}}let mn=new hG;window.addEventListener("beforeunload",()=>(event.preventDefault(),mn.currentFile().candidate=mn.view.state.doc.toString(),mn.currentFile().committed=mn.view.state.doc.toString(),mn.settings.saveApplicationToLocalStorage(mn.universes,mn.settings),mn.clock.stop(),null)); +`}),r=r+"
",e.innerHTML=r});if(this.line_numbers_checkbox.checked=this.settings.line_numbers,this.time_position_checkbox.checked=this.settings.time_position,this.tips_checkbox.checked=this.settings.tips,this.midi_clock_checkbox.checked=this.settings.send_clock,this.midi_channels_scripts.checked=this.settings.midi_channels_scripts,this.midi_clock_ppqn.value=this.settings.midi_clock_ppqn.toString(),this.settings.time_position||document.getElementById("timeviewer").classList.add("hidden"),this.load_demo_songs.checked=this.settings.load_demo_songs,this.universes={...this.settings.universes,...Ao},this.settings.load_demo_songs){let l=ic[Math.floor(Math.random()*ic.length)];this.selected_universe="Welcome",this.universes[this.selected_universe].global.committed=l,this.universes[this.selected_universe].global.candidate=l}else this.selected_universe=this.settings.selected_universe,this.universes[this.selected_universe]===void 0&&(this.universes[this.selected_universe]=structuredClone(Xu));this.universe_viewer.innerHTML=`Topos: ${this.selected_universe}`,this.audioContext=new AudioContext({latencyHint:"playback"}),this.clock=new MP(this,this.audioContext),this.api=new uB(this),dB(this.api),cB(this.api),this.vimModeCompartment=new zn,this.hoveringCompartment=new zn,this.withLineNumbers=new zn,this.chosenLanguage=new zn,this.fontSize=new zn;const e=this.settings.vimMode?Wu():[],t=this.settings.line_numbers?IS():[],r=Pe.theme({"&":{fontSize:`${this.settings.font_size}px`},$content:{fontFamily:`${this.settings.font}, Menlo, Monaco, Lucida Console, monospace`,fontSize:`${this.settings.font_size}px`},".cm-gutters":{fontSize:`${this.settings.font_size}px`}});this.editorExtensions=[this.vimModeCompartment.of(e),this.withLineNumbers.of(t),this.fontSize.of(r),this.hoveringCompartment.of(this.settings.tips?hO:[]),iP,zD,this.chosenLanguage.of(Am()),Pe.updateListener.of(l=>{})];let i=new zn;(async()=>{await vE()})(),this.docs=dE(this),window.addEventListener("keydown",l=>{l.key==="Tab"&&l.preventDefault(),l.ctrlKey&&l.key==="s"&&(l.preventDefault(),this.setButtonHighlighting("stop",!0),this.clock.stop()),l.ctrlKey&&l.key==="p"&&(l.preventDefault(),this.isPlaying?(this.isPlaying=!1,this.setButtonHighlighting("pause",!0),this.clock.pause()):(this.isPlaying=!0,this.setButtonHighlighting("play",!0),this.clock.start())),(l.key==="v"||l.key==="V")&&l.ctrlKey&&l.shiftKey&&(this.settings.vimMode=!this.settings.vimMode,l.preventDefault(),this.userPlugins=this.settings.vimMode?[]:[Wu()],this.view.dispatch({effects:i.reconfigure(this.userPlugins)})),(l.key==="Enter"||l.key==="Return")&&l.ctrlKey&&(l.preventDefault(),this.currentFile().candidate=this.view.state.doc.toString(),this.flashBackground("#404040",200)),(l.key==="Enter"&&l.shiftKey||l.key==="e"&&l.ctrlKey)&&(l.preventDefault(),this.currentFile().candidate=this.view.state.doc.toString(),this.flashBackground("#404040",200)),l.key==="Enter"&&l.shiftKey&&l.ctrlKey&&(l.preventDefault(),this.currentFile().candidate=this.view.state.doc.toString(),ls(this,this.currentFile()),this.flashBackground("#404040",200)),l.ctrlKey&&l.key==="b"&&(l.preventDefault(),this.hideDocumentation(),this.updateKnownUniversesView(),this.openBuffersModal()),l.shiftKey&&l.key==="Escape"&&this.openSettingsModal(),l.ctrlKey&&l.key==="l"&&(l.preventDefault(),this.changeModeFromInterface("local"),this.hideDocumentation(),this.view.focus()),l.ctrlKey&&l.key==="n"&&(l.preventDefault(),this.changeModeFromInterface("notes"),this.hideDocumentation(),this.view.focus()),l.ctrlKey&&l.key==="g"&&(l.preventDefault(),this.changeModeFromInterface("global"),this.hideDocumentation(),this.view.focus()),l.ctrlKey&&l.key==="i"&&(l.preventDefault(),this.changeModeFromInterface("init"),this.hideDocumentation(),this.changeToLocalBuffer(0),this.view.focus()),l.ctrlKey&&l.key==="d"&&(l.preventDefault(),this.showDocumentation()),[112,113,114,115,116,117,118,119,120].forEach((c,u)=>{l.keyCode===c&&(l.preventDefault(),l.ctrlKey?(l.preventDefault(),this.api.script(c-111)):(l.preventDefault(),this.changeModeFromInterface("local"),this.changeToLocalBuffer(u),this.hideDocumentation()))}),l.keyCode==121&&(l.preventDefault(),this.changeModeFromInterface("global"),this.hideDocumentation()),l.keyCode==122&&(l.preventDefault(),this.changeModeFromInterface("init"),this.hideDocumentation())});const a=document.querySelectorAll('[id^="tab-"]');for(let l=0;l{a[l].classList.add("bg-orange-300");for(let m=0;m{this.hideDocumentation(),this.updateKnownUniversesView(),this.openBuffersModal()}),this.play_buttons.forEach(l=>{l.addEventListener("click",()=>{this.isPlaying?(this.setButtonHighlighting("pause",!0),this.isPlaying=!this.isPlaying,this.clock.pause(),this.api.MidiConnection.sendStopMessage()):(this.setButtonHighlighting("play",!0),this.isPlaying=!this.isPlaying,this.clock.start(),this.api.MidiConnection.sendStartMessage())})}),this.clear_buttons.forEach(l=>{l.addEventListener("click",()=>{this.setButtonHighlighting("clear",!0),confirm("Do you want to reset the current universe?")&&(this.universes[this.selected_universe]=structuredClone(Xu),this.updateEditorView())})}),this.documentation_button.addEventListener("click",()=>{this.showDocumentation()}),this.destroy_universes_button.addEventListener("click",()=>{confirm("Do you want to destroy all universes?")&&(this.universes={...Ao},this.updateKnownUniversesView())}),this.audio_nudge_range.addEventListener("input",()=>{this.clock.nudge=parseInt(this.audio_nudge_range.value)}),this.upload_universe_button.addEventListener("click",()=>{const l=document.createElement("input");l.type="file",l.accept=".json",l.addEventListener("change",c=>{var m;const p=(m=c.target.files)==null?void 0:m[0];if(p){const _=new FileReader;_.readAsText(p,"UTF-8"),_.onload=T=>{const I=JSON.parse(T.target.result);for(const[R,L]of Object.entries(I))this.universes[R]=L},_.onerror=T=>{console.error("An error occurred reading the file:",T)}}}),document.body.appendChild(l),l.click(),document.body.removeChild(l)}),this.download_universe_button.addEventListener("click",()=>{this.settings.saveApplicationToLocalStorage(this.universes,this.settings);let l=`topos-universes-${Date.now()}.json`;const c=new Blob([JSON.stringify(this.settings.universes)],{type:"application/json"}),u=URL.createObjectURL(c),p=document.createElement("a");p.href=u,p.download=l,document.body.appendChild(p),p.click(),document.body.removeChild(p),URL.revokeObjectURL(u)}),this.load_universe_button.addEventListener("click",()=>{let l=this.buffer_search.value;l.length>2&&l.length<20&&!l.includes(" ")&&(this.loadUniverse(l),this.settings.selected_universe=l,this.buffer_search.value="",this.closeBuffersModal(),this.view.focus(),this.emptyUrl())}),this.eval_button.addEventListener("click",()=>{this.currentFile().candidate=this.view.state.doc.toString(),this.flashBackground("#404040",200)}),this.stop_buttons.forEach(l=>{l.addEventListener("click",()=>{this.setButtonHighlighting("stop",!0),this.isPlaying=!1,this.clock.stop()})}),this.local_button.addEventListener("click",()=>this.changeModeFromInterface("local")),this.global_button.addEventListener("click",()=>this.changeModeFromInterface("global")),this.init_button.addEventListener("click",()=>this.changeModeFromInterface("init")),this.note_button.addEventListener("click",()=>this.changeModeFromInterface("notes")),this.font_family_selector.addEventListener("change",()=>{let l=this.font_family_selector.value;this.settings.font=l;let c=Pe.theme({"&":{fontSize:this.settings.font_size+"px"},"&content":{fontFamily:l,fontSize:this.settings.font_size+"px"},".cm-gutters":{fontSize:this.settings.font_size+"px"}});this.view.dispatch({effects:this.fontSize.reconfigure(c)})}),this.font_size_input.addEventListener("input",()=>{let l=this.font_size_input.value;this.settings.font_size=Math.max(8,Math.min(48,parseInt(l)));let c=Pe.theme({"&":{fontSize:l+"px"},"&content":{fontFamily:this.settings.font,fontSize:l+"px"},".cm-gutters":{fontSize:l+"px"}});this.view.dispatch({effects:this.fontSize.reconfigure(c)}),this.settings.font_size=parseInt(l)}),this.settings_button.addEventListener("click",()=>{this.font_family_selector.value=this.settings.font,this.settings.font_size===null&&(this.settings.font_size=12),this.font_size_input.value=this.settings.font_size.toString(),this.line_numbers_checkbox.checked=this.settings.line_numbers,this.time_position_checkbox.checked=this.settings.time_position,this.tips_checkbox.checked=this.settings.tips,this.midi_clock_checkbox.checked=this.settings.send_clock,this.midi_channels_scripts.checked=this.settings.midi_channels_scripts,this.midi_clock_ppqn.value=this.settings.midi_clock_ppqn.toString(),this.load_demo_songs.checked=this.settings.load_demo_songs,this.vim_mode_checkbox.checked=this.settings.vimMode;let l=document.getElementById("modal-settings"),c=document.getElementById("editor");l==null||l.classList.remove("invisible"),c==null||c.classList.add("invisible")}),this.close_settings_button.addEventListener("click",()=>{let l=document.getElementById("modal-settings"),c=document.getElementById("editor");l==null||l.classList.add("invisible"),c==null||c.classList.remove("invisible"),this.view.dispatch({effects:this.fontSize.reconfigure(Pe.theme({"&":{fontSize:this.settings.font_size+"px"},"&content":{fontFamily:this.settings.font,fontSize:this.settings.font_size+"px"},".cm-gutters":{fontSize:this.settings.font_size+"px"}}))})}),this.close_universes_button.addEventListener("click",()=>{this.openBuffersModal()}),this.share_button.addEventListener("click",async()=>{this.currentFile().candidate=mn.view.state.doc.toString(),this.currentFile().committed=mn.view.state.doc.toString(),this.settings.saveApplicationToLocalStorage(mn.universes,mn.settings),await this.share()}),this.vim_mode_checkbox.addEventListener("change",()=>{let l=!!this.vim_mode_checkbox.checked;this.settings.vimMode=l,this.view.dispatch({effects:this.vimModeCompartment.reconfigure(l?Wu():[])})}),this.line_numbers_checkbox.addEventListener("change",()=>{let l=!!this.line_numbers_checkbox.checked;this.settings.line_numbers=l,this.view.dispatch({effects:this.withLineNumbers.reconfigure(l?[IS()]:[])})}),this.time_position_checkbox.addEventListener("change",()=>{let l=document.getElementById("timeviewer"),c=!!this.time_position_checkbox.checked;this.settings.time_position=c,c?l.classList.remove("hidden"):l.classList.add("hidden")}),this.tips_checkbox.addEventListener("change",()=>{let l=!!this.tips_checkbox.checked;this.settings.tips=l,this.view.dispatch({effects:this.hoveringCompartment.reconfigure(l?hO:[])})}),this.midi_clock_checkbox.addEventListener("change",()=>{let l=!!this.midi_clock_checkbox.checked;this.settings.send_clock=l}),this.midi_channels_scripts.addEventListener("change",()=>{let l=!!this.midi_channels_scripts.checked;this.settings.midi_channels_scripts=l}),this.midi_clock_ppqn.addEventListener("change",()=>{let l=parseInt(this.midi_clock_ppqn.value);this.settings.midi_clock_ppqn=l}),this.load_demo_songs.addEventListener("change",()=>{let l=!!this.load_demo_songs.checked;this.settings.load_demo_songs=l}),this.universe_creator.addEventListener("submit",l=>{l.preventDefault();let u=new FormData(this.universe_creator).get("universe");u&&u.length>2&&u.length<20&&(this.loadUniverse(u),this.settings.selected_universe=u,this.buffer_search.value="",this.closeBuffersModal(),this.view.focus())}),ls(this,this.universes[this.selected_universe.toString()].init),["introduction","interface","interaction","code","time","sound","samples","synths","chaining","patterns","ziffers","midi","functions","lfos","probabilities","variables","shortcuts","about","bonus"].forEach(l=>{let c="docs_"+l;document.getElementById(c).addEventListener("click",async()=>{c!=="docs_samples"?(this.currentDocumentationPane=l,this.updateDocumentationContent()):(console.log("Loading samples!"),await vE().then(()=>{this.docs=dE(this),this.currentDocumentationPane=l,this.updateDocumentationContent()}))})}),Object.entries(this.api).forEach(([l,c])=>{globalThis[l]=c}),this.state=_t.create({extensions:[...this.editorExtensions,Pe.lineWrapping,i.of(this.userPlugins),Ti.highest(Ia.of([{key:"Ctrl-Enter",run:()=>!0}])),Ia.of([tM])],doc:this.universes[this.selected_universe].global.candidate}),this.view=new Pe({parent:document.getElementById("editor"),state:this.state}),this.changeModeFromInterface("global");let o=new URLSearchParams(window.location.search);if(o!==void 0){let l;if(o!==null){const c=o.get("universe");if(c!==null){let u=Uint8Array.from(atob(c),m=>m.charCodeAt(0));l=JSON.parse(MB(xB(u)));const p=OR({length:2,separator:"_",dictionaries:[bR,ER]});this.loadUniverse(p,l.universe),this.emptyUrl(),this.emptyUrl()}}}this.hydra=this.hydra_backend.synth}get note_buffer(){return this.universes[this.selected_universe.toString()].notes}get example_buffer(){return this.universes[this.selected_universe.toString()].example}get global_buffer(){return this.universes[this.selected_universe.toString()].global}get init_buffer(){return this.universes[this.selected_universe.toString()].init}get local_buffer(){return this.universes[this.selected_universe.toString()].locals[this.local_index]}async share(){async function e(a){const o=await new Promise(l=>{const c=new FileReader;c.onload=()=>l(c.result),c.readAsDataURL(new Blob([a]))});return o.slice(o.indexOf(",")+1)}let t=JSON.stringify({universe:this.settings.universes[this.selected_universe]}),r=NB(new TextEncoder().encode(t));const i=await e(r),s=new URL(window.location.href);s.searchParams.set("universe",i),window.history.replaceState({},"",s.toString()),navigator.clipboard.writeText(s.toString())}showDocumentation(){var e,t,r,i,s;(e=document.getElementById("app"))!=null&&e.classList.contains("hidden")?((t=document.getElementById("app"))==null||t.classList.remove("hidden"),(r=document.getElementById("documentation"))==null||r.classList.add("hidden"),this.exampleIsPlaying=!1):((i=document.getElementById("app"))==null||i.classList.add("hidden"),(s=document.getElementById("documentation"))==null||s.classList.remove("hidden"),this.updateDocumentationContent())}hideDocumentation(){var e,t,r;(e=document.getElementById("app"))!=null&&e.classList.contains("hidden")&&((t=document.getElementById("app"))==null||t.classList.remove("hidden"),(r=document.getElementById("documentation"))==null||r.classList.add("hidden"))}updateDocumentationContent(){const t=new zI.Converter({emoji:!0,moreStyling:!0,backslashEscapesHTMLTags:!0,extensions:[dG({auto_detection:!0}),...pG]}).makeHtml(this.docs[this.currentDocumentationPane]);document.getElementById("documentation-content").innerHTML=t}changeToLocalBuffer(e){const t=document.querySelectorAll('[id^="tab-"]'),r=t[e];r.classList.add("bg-orange-300");for(let s=0;s{t.forEach(s=>{let a=s.children[0];a.classList.contains("text-orange-300")&&(a.classList.remove("text-orange-300"),s.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.local_script_tabs.classList.contains("hidden")&&this.local_script_tabs.classList.remove("hidden"),this.editor_mode="local",this.local_index=0,this.changeToLocalBuffer(this.local_index),r(this.local_button);break;case"global":this.local_script_tabs.classList.contains("hidden")||this.local_script_tabs.classList.add("hidden"),this.editor_mode="global",r(this.global_button);break;case"init":this.local_script_tabs.classList.contains("hidden")||this.local_script_tabs.classList.add("hidden"),this.editor_mode="init",r(this.init_button);break;case"notes":this.local_script_tabs.classList.contains("hidden")||this.local_script_tabs.classList.add("hidden"),this.editor_mode="notes",r(this.note_button);break}this.view.dispatch({effects:this.chosenLanguage.reconfigure(this.editor_mode=="notes"?[zk()]:[Am()])}),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 r=['[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(r[i]).forEach(s=>{t&&s.children[0].classList.add("animate-pulse")}),document.querySelectorAll(r.filter((s,a)=>a!=i).join(",")).forEach(s=>{s.children[0].classList.remove("animate-pulse"),s.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}}loadUniverse(e,t=Xu){console.log(e,t),this.currentFile().candidate=this.view.state.doc.toString();let r=e.trim();this.universes[r]===void 0&&(this.settings.universes[r]=t,this.universes[r]=t),this.selected_universe=r,this.settings.selected_universe=this.selected_universe,this.universe_viewer.innerHTML=`Topos: ${r}`,this.updateEditorView(),ls(this,this.universes[this.selected_universe.toString()].init)}openSettingsModal(){document.getElementById("modal-settings").classList.contains("invisible")?(document.getElementById("editor").classList.add("invisible"),document.getElementById("modal-settings").classList.remove("invisible")):this.closeSettingsModal()}closeSettingsModal(){document.getElementById("editor").classList.remove("invisible"),document.getElementById("modal-settings").classList.add("invisible")}openBuffersModal(){document.getElementById("modal-buffers").classList.contains("invisible")?(document.getElementById("editor").classList.add("invisible"),document.getElementById("modal-buffers").classList.remove("invisible"),document.getElementById("buffer-search").focus()):this.closeBuffersModal()}closeBuffersModal(){document.getElementById("buffer-search").value="",document.getElementById("editor").classList.remove("invisible"),document.getElementById("modal-buffers").classList.add("invisible")}flashBackground(e,t){this.view.dom.style.backgroundColor=e;const r=this.view.dom.getElementsByClassName("cm-gutter");Array.from(r).forEach(i=>i.style.backgroundColor=e),setTimeout(()=>{this.view.dom.style.backgroundColor="",Array.from(r).forEach(i=>i.style.backgroundColor="")},t)}}let mn=new hG;window.addEventListener("beforeunload",()=>(event.preventDefault(),mn.currentFile().candidate=mn.view.state.doc.toString(),mn.currentFile().committed=mn.view.state.doc.toString(),mn.settings.saveApplicationToLocalStorage(mn.universes,mn.settings),mn.clock.stop(),null)); diff --git a/index.html b/index.html index 6642fe7..8993817 100644 --- a/index.html +++ b/index.html @@ -8,8 +8,8 @@ - - + +