omar-musayev 1.0.3 → 1.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/dist/cli.js +168 -93
  2. package/package.json +2 -2
package/dist/cli.js CHANGED
@@ -1,94 +1,169 @@
1
1
  #!/usr/bin/env node
2
- var x5=Object.create;var Y2=Object.defineProperty;var v5=Object.getOwnPropertyDescriptor;var B5=Object.getOwnPropertyNames;var M5=Object.getPrototypeOf,E5=Object.prototype.hasOwnProperty;var nu=(u=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(u,{get:(e,t)=>(typeof require<"u"?require:e)[t]}):u)(function(u){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+u+'" is not supported')});var r2=(u,e)=>()=>(u&&(e=u(u=0)),e);var P5=(u,e)=>()=>(e||u((e={exports:{}}).exports,e),e.exports),S5=(u,e)=>{for(var t in e)Y2(u,t,{get:e[t],enumerable:!0})},I5=(u,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of B5(e))!E5.call(u,r)&&r!==t&&Y2(u,r,{get:()=>e[r],enumerable:!(n=v5(e,r))||n.enumerable});return u};var A5=(u,e,t)=>(t=u!=null?x5(M5(u)):{},I5(e||!u||!u.__esModule?Y2(t,"default",{value:u,enumerable:!0}):t,u));var he=P5((Dr,fe)=>{"use strict";var e8=Object.defineProperty,Q5=Object.getOwnPropertyDescriptor,Z5=Object.getOwnPropertyNames,X5=Object.prototype.hasOwnProperty,ut=(u,e)=>{for(var t in e)e8(u,t,{get:e[t],enumerable:!0})},et=(u,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of Z5(e))!X5.call(u,r)&&r!==t&&e8(u,r,{get:()=>e[r],enumerable:!(n=Q5(e,r))||n.enumerable});return u},tt=u=>et(e8({},"__esModule",{value:!0}),u),f2={};ut(f2,{analyzeMetafile:()=>Lt,analyzeMetafileSync:()=>Rt,build:()=>St,buildSync:()=>Tt,context:()=>It,default:()=>Wt,formatMessages:()=>Dt,formatMessagesSync:()=>$t,initialize:()=>jt,stop:()=>kt,transform:()=>At,transformSync:()=>Ot,version:()=>Pt});fe.exports=tt(f2);function W8(u){let e=n=>{if(n===null)t.write8(0);else if(typeof n=="boolean")t.write8(1),t.write8(+n);else if(typeof n=="number")t.write8(2),t.write32(n|0);else if(typeof n=="string")t.write8(3),t.write(Mu(n));else if(n instanceof Uint8Array)t.write8(4),t.write(n);else if(n instanceof Array){t.write8(5),t.write32(n.length);for(let r of n)e(r)}else{let r=Object.keys(n);t.write8(6),t.write32(r.length);for(let o of r)t.write(Mu(o)),e(n[o])}},t=new Q8;return t.write32(0),t.write32(u.id<<1|+!u.isRequest),e(u.value),Z2(t.buf,t.len-4,0),t.buf.subarray(0,t.len)}function nt(u){let e=()=>{switch(t.read8()){case 0:return null;case 1:return!!t.read8();case 2:return t.read32();case 3:return Uu(t.read());case 4:return t.read();case 5:{let s=t.read32(),a=[];for(let i=0;i<s;i++)a.push(e());return a}case 6:{let s=t.read32(),a={};for(let i=0;i<s;i++)a[Uu(t.read())]=e();return a}default:throw new Error("Invalid packet")}},t=new Q8(u),n=t.read32(),r=(n&1)===0;n>>>=1;let o=e();if(t.ptr!==u.length)throw new Error("Invalid packet");return{id:n,isRequest:r,value:o}}var Q8=class{constructor(u=new Uint8Array(1024)){this.buf=u,this.len=0,this.ptr=0}_write(u){if(this.len+u>this.buf.length){let e=new Uint8Array((this.len+u)*2);e.set(this.buf),this.buf=e}return this.len+=u,this.len-u}write8(u){let e=this._write(1);this.buf[e]=u}write32(u){let e=this._write(4);Z2(this.buf,u,e)}write(u){let e=this._write(4+u.length);Z2(this.buf,u.length,e),this.buf.set(u,e+4)}_read(u){if(this.ptr+u>this.buf.length)throw new Error("Invalid packet");return this.ptr+=u,this.ptr-u}read8(){return this.buf[this._read(1)]}read32(){return Z8(this.buf,this._read(4))}read(){let u=this.read32(),e=new Uint8Array(u),t=this._read(e.length);return e.set(this.buf.subarray(t,t+u)),e}},Mu,Uu,Q2;if(typeof TextEncoder<"u"&&typeof TextDecoder<"u"){let u=new TextEncoder,e=new TextDecoder;Mu=t=>u.encode(t),Uu=t=>e.decode(t),Q2='new TextEncoder().encode("")'}else if(typeof Buffer<"u")Mu=u=>Buffer.from(u),Uu=u=>{let{buffer:e,byteOffset:t,byteLength:n}=u;return Buffer.from(e,t,n).toString()},Q2='Buffer.from("")';else throw new Error("No UTF-8 codec found");if(!(Mu("")instanceof Uint8Array))throw new Error(`Invariant violation: "${Q2} instanceof Uint8Array" is incorrectly false
3
-
4
- This indicates that your JavaScript environment is broken. You cannot use
5
- esbuild in this environment because esbuild relies on this invariant. This
6
- is not a problem with esbuild. You need to fix your environment instead.
7
- `);function Z8(u,e){return(u[e++]|u[e++]<<8|u[e++]<<16|u[e++]<<24)>>>0}function Z2(u,e,t){u[t++]=e,u[t++]=e>>8,u[t++]=e>>16,u[t++]=e>>24}var Au=String.fromCharCode;function wu(u,e,t){let n=u[e],r=1,o=0;for(let s=0;s<e;s++)u[s]===10?(r++,o=0):o++;throw new SyntaxError(t||(e===u.length?"Unexpected end of input while parsing JSON":n>=32&&n<=126?`Unexpected character ${Au(n)} in JSON at position ${e} (line ${r}, column ${o})`:`Unexpected byte 0x${n.toString(16)} in JSON at position ${e} (line ${r}, column ${o})`))}function rt(u){if(!(u instanceof Uint8Array))throw new Error("JSON input must be a Uint8Array");let e=[],t=[],n=[],r=u.length,o=null,s=0,a,i=0;for(;i<r;){let c=u[i++];if(c<=32)continue;let l;switch(s===2&&o===null&&c!==34&&c!==125&&wu(u,--i),c){case 116:{(u[i++]!==114||u[i++]!==117||u[i++]!==101)&&wu(u,--i),l=!0;break}case 102:{(u[i++]!==97||u[i++]!==108||u[i++]!==115||u[i++]!==101)&&wu(u,--i),l=!1;break}case 110:{(u[i++]!==117||u[i++]!==108||u[i++]!==108)&&wu(u,--i),l=null;break}case 45:case 46:case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:{let f=i;for(l=Au(c),c=u[i];;){switch(c){case 43:case 45:case 46:case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:case 101:case 69:{l+=Au(c),c=u[++i];continue}}break}l=+l,isNaN(l)&&wu(u,--f,"Invalid number");break}case 34:{for(l="";i>=r&&wu(u,r),c=u[i++],c!==34;)if(c===92)switch(u[i++]){case 34:l+='"';break;case 47:l+="/";break;case 92:l+="\\";break;case 98:l+="\b";break;case 102:l+="\f";break;case 110:l+=`
8
- `;break;case 114:l+="\r";break;case 116:l+=" ";break;case 117:{let f=0;for(let _=0;_<4;_++)c=u[i++],f<<=4,c>=48&&c<=57?f|=c-48:c>=97&&c<=102?f|=c+-87:c>=65&&c<=70?f|=c+-55:wu(u,--i);l+=Au(f);break}default:wu(u,--i);break}else if(c<=127)l+=Au(c);else if((c&224)===192)l+=Au((c&31)<<6|u[i++]&63);else if((c&240)===224)l+=Au((c&15)<<12|(u[i++]&63)<<6|u[i++]&63);else if((c&248)==240){let f=(c&7)<<18|(u[i++]&63)<<12|(u[i++]&63)<<6|u[i++]&63;f>65535&&(f-=65536,l+=Au(f>>10&1023|55296),f=56320|f&1023),l+=Au(f)}l[0];break}case 91:{l=[],e.push(o),t.push(a),n.push(s),o=null,a=l,s=1;continue}case 123:{l={},e.push(o),t.push(a),n.push(s),o=null,a=l,s=2;continue}case 93:{s!==1&&wu(u,--i),l=a,o=e.pop(),a=t.pop(),s=n.pop();break}case 125:{s!==2&&wu(u,--i),l=a,o=e.pop(),a=t.pop(),s=n.pop();break}default:wu(u,--i)}for(c=u[i];c<=32;)c=u[++i];switch(s){case 0:{if(i===r)return l;break}case 1:{if(a.push(l),c===44){i++;continue}if(c===93)continue;break}case 2:{if(o===null){if(o=l,c===58){i++;continue}}else{if(a[o]=l,o=null,c===44){i++;continue}if(c===125)continue}break}}break}wu(u,i)}var eu=JSON.stringify,Y8="warning",H8="silent";function Ju(u,e){let t=[];for(let n of u){if(lu(n,e),n.indexOf(",")>=0)throw new Error(`Invalid ${e}: ${n}`);t.push(n)}return t.join(",")}var B2=()=>null,Z=u=>typeof u=="boolean"?null:"a boolean",O=u=>typeof u=="string"?null:"a string",M2=u=>u instanceof RegExp?null:"a RegExp object",Wu=u=>typeof u=="number"&&u===(u|0)?null:"an integer",ot=u=>typeof u=="number"&&u===(u|0)&&u>=0&&u<=65535?null:"a valid port number",X8=u=>typeof u=="function"?null:"a function",Du=u=>Array.isArray(u)?null:"an array",fu=u=>Array.isArray(u)&&u.every(e=>typeof e=="string")?null:"an array of strings",mu=u=>typeof u=="object"&&u!==null&&!Array.isArray(u)?null:"an object",st=u=>typeof u=="object"&&u!==null?null:"an array or an object",it=u=>u instanceof WebAssembly.Module?null:"a WebAssembly.Module",U8=u=>typeof u=="object"&&!Array.isArray(u)?null:"an object or null",ue=u=>typeof u=="string"||typeof u=="boolean"?null:"a string or a boolean",at=u=>typeof u=="string"||typeof u=="object"&&u!==null&&!Array.isArray(u)?null:"a string or an object",ee=u=>typeof u=="string"||Array.isArray(u)&&u.every(e=>typeof e=="string")?null:"a string or an array of strings",te=u=>typeof u=="string"||u instanceof Uint8Array?null:"a string or a Uint8Array",ct=u=>typeof u=="string"||u instanceof URL?null:"a string or a URL";function b(u,e,t,n){let r=u[t];if(e[t+""]=!0,r===void 0)return;let o=n(r);if(o!==null)throw new Error(`${eu(t)} must be ${o}`);return r}function uu(u,e,t){for(let n in u)if(!(n in e))throw new Error(`Invalid option ${t}: ${eu(n)}`)}function lt(u){let e=Object.create(null),t=b(u,e,"wasmURL",ct),n=b(u,e,"wasmModule",it),r=b(u,e,"worker",Z);return uu(u,e,"in initialize() call"),{wasmURL:t,wasmModule:n,worker:r}}function ne(u){let e;if(u!==void 0){e=Object.create(null);for(let t in u){let n=u[t];if(typeof n=="string"||n===!1)e[t]=n;else throw new Error(`Expected ${eu(t)} in mangle cache to map to either a string or false`)}}return e}function A2(u,e,t,n,r){let o=b(e,t,"color",Z),s=b(e,t,"logLevel",O),a=b(e,t,"logLimit",Wu);o!==void 0?u.push(`--color=${o}`):n&&u.push("--color=true"),u.push(`--log-level=${s||r}`),u.push(`--log-limit=${a||0}`)}function lu(u,e,t){if(typeof u!="string")throw new Error(`Expected value for ${e}${t!==void 0?" "+eu(t):""} to be a string, got ${typeof u} instead`);return u}function re(u,e,t){let n=b(e,t,"legalComments",O),r=b(e,t,"sourceRoot",O),o=b(e,t,"sourcesContent",Z),s=b(e,t,"target",ee),a=b(e,t,"format",O),i=b(e,t,"globalName",O),c=b(e,t,"mangleProps",M2),l=b(e,t,"reserveProps",M2),f=b(e,t,"mangleQuoted",Z),_=b(e,t,"minify",Z),p=b(e,t,"minifySyntax",Z),m=b(e,t,"minifyWhitespace",Z),g=b(e,t,"minifyIdentifiers",Z),F=b(e,t,"lineLimit",Wu),w=b(e,t,"drop",fu),y=b(e,t,"dropLabels",fu),v=b(e,t,"charset",O),x=b(e,t,"treeShaking",Z),B=b(e,t,"ignoreAnnotations",Z),C=b(e,t,"jsx",O),S=b(e,t,"jsxFactory",O),D=b(e,t,"jsxFragment",O),$=b(e,t,"jsxImportSource",O),I=b(e,t,"jsxDev",Z),M=b(e,t,"jsxSideEffects",Z),E=b(e,t,"define",mu),P=b(e,t,"logOverride",mu),T=b(e,t,"supported",mu),j=b(e,t,"pure",fu),W=b(e,t,"keepNames",Z),N=b(e,t,"platform",O),Y=b(e,t,"tsconfigRaw",at),J=b(e,t,"absPaths",fu);if(n&&u.push(`--legal-comments=${n}`),r!==void 0&&u.push(`--source-root=${r}`),o!==void 0&&u.push(`--sources-content=${o}`),s&&u.push(`--target=${Ju(Array.isArray(s)?s:[s],"target")}`),a&&u.push(`--format=${a}`),i&&u.push(`--global-name=${i}`),N&&u.push(`--platform=${N}`),Y&&u.push(`--tsconfig-raw=${typeof Y=="string"?Y:JSON.stringify(Y)}`),_&&u.push("--minify"),p&&u.push("--minify-syntax"),m&&u.push("--minify-whitespace"),g&&u.push("--minify-identifiers"),F&&u.push(`--line-limit=${F}`),v&&u.push(`--charset=${v}`),x!==void 0&&u.push(`--tree-shaking=${x}`),B&&u.push("--ignore-annotations"),w)for(let A of w)u.push(`--drop:${lu(A,"drop")}`);if(y&&u.push(`--drop-labels=${Ju(y,"drop label")}`),J&&u.push(`--abs-paths=${Ju(J,"abs paths")}`),c&&u.push(`--mangle-props=${E2(c)}`),l&&u.push(`--reserve-props=${E2(l)}`),f!==void 0&&u.push(`--mangle-quoted=${f}`),C&&u.push(`--jsx=${C}`),S&&u.push(`--jsx-factory=${S}`),D&&u.push(`--jsx-fragment=${D}`),$&&u.push(`--jsx-import-source=${$}`),I&&u.push("--jsx-dev"),M&&u.push("--jsx-side-effects"),E)for(let A in E){if(A.indexOf("=")>=0)throw new Error(`Invalid define: ${A}`);u.push(`--define:${A}=${lu(E[A],"define",A)}`)}if(P)for(let A in P){if(A.indexOf("=")>=0)throw new Error(`Invalid log override: ${A}`);u.push(`--log-override:${A}=${lu(P[A],"log override",A)}`)}if(T)for(let A in T){if(A.indexOf("=")>=0)throw new Error(`Invalid supported: ${A}`);let H=T[A];if(typeof H!="boolean")throw new Error(`Expected value for supported ${eu(A)} to be a boolean, got ${typeof H} instead`);u.push(`--supported:${A}=${H}`)}if(j)for(let A of j)u.push(`--pure:${lu(A,"pure")}`);W&&u.push("--keep-names")}function ft(u,e,t,n,r){var o;let s=[],a=[],i=Object.create(null),c=null,l=null;A2(s,e,i,t,n),re(s,e,i);let f=b(e,i,"sourcemap",ue),_=b(e,i,"bundle",Z),p=b(e,i,"splitting",Z),m=b(e,i,"preserveSymlinks",Z),g=b(e,i,"metafile",Z),F=b(e,i,"outfile",O),w=b(e,i,"outdir",O),y=b(e,i,"outbase",O),v=b(e,i,"tsconfig",O),x=b(e,i,"resolveExtensions",fu),B=b(e,i,"nodePaths",fu),C=b(e,i,"mainFields",fu),S=b(e,i,"conditions",fu),D=b(e,i,"external",fu),$=b(e,i,"packages",O),I=b(e,i,"alias",mu),M=b(e,i,"loader",mu),E=b(e,i,"outExtension",mu),P=b(e,i,"publicPath",O),T=b(e,i,"entryNames",O),j=b(e,i,"chunkNames",O),W=b(e,i,"assetNames",O),N=b(e,i,"inject",fu),Y=b(e,i,"banner",mu),J=b(e,i,"footer",mu),A=b(e,i,"entryPoints",st),H=b(e,i,"absWorkingDir",O),V=b(e,i,"stdin",mu),z=(o=b(e,i,"write",Z))!=null?o:r,cu=b(e,i,"allowOverwrite",Z),X=b(e,i,"mangleCache",mu);if(i.plugins=!0,uu(e,i,`in ${u}() call`),f&&s.push(`--sourcemap${f===!0?"":`=${f}`}`),_&&s.push("--bundle"),cu&&s.push("--allow-overwrite"),p&&s.push("--splitting"),m&&s.push("--preserve-symlinks"),g&&s.push("--metafile"),F&&s.push(`--outfile=${F}`),w&&s.push(`--outdir=${w}`),y&&s.push(`--outbase=${y}`),v&&s.push(`--tsconfig=${v}`),$&&s.push(`--packages=${$}`),x&&s.push(`--resolve-extensions=${Ju(x,"resolve extension")}`),P&&s.push(`--public-path=${P}`),T&&s.push(`--entry-names=${T}`),j&&s.push(`--chunk-names=${j}`),W&&s.push(`--asset-names=${W}`),C&&s.push(`--main-fields=${Ju(C,"main field")}`),S&&s.push(`--conditions=${Ju(S,"condition")}`),D)for(let R of D)s.push(`--external:${lu(R,"external")}`);if(I)for(let R in I){if(R.indexOf("=")>=0)throw new Error(`Invalid package name in alias: ${R}`);s.push(`--alias:${R}=${lu(I[R],"alias",R)}`)}if(Y)for(let R in Y){if(R.indexOf("=")>=0)throw new Error(`Invalid banner file type: ${R}`);s.push(`--banner:${R}=${lu(Y[R],"banner",R)}`)}if(J)for(let R in J){if(R.indexOf("=")>=0)throw new Error(`Invalid footer file type: ${R}`);s.push(`--footer:${R}=${lu(J[R],"footer",R)}`)}if(N)for(let R of N)s.push(`--inject:${lu(R,"inject")}`);if(M)for(let R in M){if(R.indexOf("=")>=0)throw new Error(`Invalid loader extension: ${R}`);s.push(`--loader:${R}=${lu(M[R],"loader",R)}`)}if(E)for(let R in E){if(R.indexOf("=")>=0)throw new Error(`Invalid out extension: ${R}`);s.push(`--out-extension:${R}=${lu(E[R],"out extension",R)}`)}if(A)if(Array.isArray(A))for(let R=0,Su=A.length;R<Su;R++){let bu=A[R];if(typeof bu=="object"&&bu!==null){let Eu=Object.create(null),Iu=b(bu,Eu,"in",O),Cu=b(bu,Eu,"out",O);if(uu(bu,Eu,"in entry point at index "+R),Iu===void 0)throw new Error('Missing property "in" for entry point at index '+R);if(Cu===void 0)throw new Error('Missing property "out" for entry point at index '+R);a.push([Cu,Iu])}else a.push(["",lu(bu,"entry point at index "+R)])}else for(let R in A)a.push([R,lu(A[R],"entry point",R)]);if(V){let R=Object.create(null),Su=b(V,R,"contents",te),bu=b(V,R,"resolveDir",O),Eu=b(V,R,"sourcefile",O),Iu=b(V,R,"loader",O);uu(V,R,'in "stdin" object'),Eu&&s.push(`--sourcefile=${Eu}`),Iu&&s.push(`--loader=${Iu}`),bu&&(l=bu),typeof Su=="string"?c=Mu(Su):Su instanceof Uint8Array&&(c=Su)}let Pu=[];if(B)for(let R of B)R+="",Pu.push(R);return{entries:a,flags:s,write:z,stdinContents:c,stdinResolveDir:l,absWorkingDir:H,nodePaths:Pu,mangleCache:ne(X)}}function ht(u,e,t,n){let r=[],o=Object.create(null);A2(r,e,o,t,n),re(r,e,o);let s=b(e,o,"sourcemap",ue),a=b(e,o,"sourcefile",O),i=b(e,o,"loader",O),c=b(e,o,"banner",O),l=b(e,o,"footer",O),f=b(e,o,"mangleCache",mu);return uu(e,o,`in ${u}() call`),s&&r.push(`--sourcemap=${s===!0?"external":s}`),a&&r.push(`--sourcefile=${a}`),i&&r.push(`--loader=${i}`),c&&r.push(`--banner=${c}`),l&&r.push(`--footer=${l}`),{flags:r,mangleCache:ne(f)}}function oe(u){let e={},t={didClose:!1,reason:""},n={},r=0,o=0,s=new Uint8Array(16*1024),a=0,i=v=>{let x=a+v.length;if(x>s.length){let C=new Uint8Array(x*2);C.set(s),s=C}s.set(v,a),a+=v.length;let B=0;for(;B+4<=a;){let C=Z8(s,B);if(B+4+C>a)break;B+=4,m(s.subarray(B,B+C)),B+=C}B>0&&(s.copyWithin(0,B,a),a-=B)},c=v=>{t.didClose=!0,v&&(t.reason=": "+(v.message||v));let x="The service was stopped"+t.reason;for(let B in n)n[B](x,null);n={}},l=(v,x,B)=>{if(t.didClose)return B("The service is no longer running"+t.reason,null);let C=r++;n[C]=(S,D)=>{try{B(S,D)}finally{v&&v.unref()}},v&&v.ref(),u.writeToStdin(W8({id:C,isRequest:!0,value:x}))},f=(v,x)=>{if(t.didClose)throw new Error("The service is no longer running"+t.reason);u.writeToStdin(W8({id:v,isRequest:!1,value:x}))},_=async(v,x)=>{try{if(x.command==="ping"){f(v,{});return}if(typeof x.key=="number"){let B=e[x.key];if(!B)return;let C=B[x.command];if(C){await C(v,x);return}}throw new Error("Invalid command: "+x.command)}catch(B){let C=[Nu(B,u,null,void 0,"")];try{f(v,{errors:C})}catch{}}},p=!0,m=v=>{if(p){p=!1;let B=String.fromCharCode(...v);if(B!=="0.27.4")throw new Error(`Cannot start service: Host version "0.27.4" does not match binary version ${eu(B)}`);return}let x=nt(v);if(x.isRequest)_(x.id,x.value);else{let B=n[x.id];delete n[x.id],x.value.error?B(x.value.error,{}):B(null,x.value)}};return{readFromStdout:i,afterClose:c,service:{buildOrContext:({callName:v,refs:x,options:B,isTTY:C,defaultWD:S,callback:D})=>{let $=0,I=o++,M={},E={ref(){++$===1&&x&&x.ref()},unref(){--$===0&&(delete e[I],x&&x.unref())}};e[I]=M,E.ref(),dt(v,I,l,f,E,u,M,B,C,S,(P,T)=>{try{D(P,T)}finally{E.unref()}})},transform:({callName:v,refs:x,input:B,options:C,isTTY:S,fs:D,callback:$})=>{let I=se(),M=E=>{try{if(typeof B!="string"&&!(B instanceof Uint8Array))throw new Error('The input to "transform" must be a string or a Uint8Array');let{flags:P,mangleCache:T}=ht(v,C,S,H8),j={command:"transform",flags:P,inputFS:E!==null,input:E!==null?Mu(E):typeof B=="string"?Mu(B):B};T&&(j.mangleCache=T),l(x,j,(W,N)=>{if(W)return $(new Error(W),null);let Y=Qu(N.errors,I),J=Qu(N.warnings,I),A=1,H=()=>{if(--A===0){let V={warnings:J,code:N.code,map:N.map,mangleCache:void 0,legalComments:void 0};"legalComments"in N&&(V.legalComments=N?.legalComments),N.mangleCache&&(V.mangleCache=N?.mangleCache),$(null,V)}};if(Y.length>0)return $(c2("Transform failed",Y,J),null);N.codeFS&&(A++,D.readFile(N.code,(V,z)=>{V!==null?$(V,null):(N.code=z,H())})),N.mapFS&&(A++,D.readFile(N.map,(V,z)=>{V!==null?$(V,null):(N.map=z,H())})),H()})}catch(P){let T=[];try{A2(T,C,{},S,H8)}catch{}let j=Nu(P,u,I,void 0,"");l(x,{command:"error",flags:T,error:j},()=>{j.detail=I.load(j.detail),$(c2("Transform failed",[j],[]),null)})}};if((typeof B=="string"||B instanceof Uint8Array)&&B.length>1024*1024){let E=M;M=()=>D.writeFile(B,E)}M(null)},formatMessages:({callName:v,refs:x,messages:B,options:C,callback:S})=>{if(!C)throw new Error(`Missing second argument in ${v}() call`);let D={},$=b(C,D,"kind",O),I=b(C,D,"color",Z),M=b(C,D,"terminalWidth",Wu);if(uu(C,D,`in ${v}() call`),$===void 0)throw new Error(`Missing "kind" in ${v}() call`);if($!=="error"&&$!=="warning")throw new Error(`Expected "kind" to be "error" or "warning" in ${v}() call`);let E={command:"format-msgs",messages:Lu(B,"messages",null,"",M),isWarning:$==="warning"};I!==void 0&&(E.color=I),M!==void 0&&(E.terminalWidth=M),l(x,E,(P,T)=>{if(P)return S(new Error(P),null);S(null,T.messages)})},analyzeMetafile:({callName:v,refs:x,metafile:B,options:C,callback:S})=>{C===void 0&&(C={});let D={},$=b(C,D,"color",Z),I=b(C,D,"verbose",Z);uu(C,D,`in ${v}() call`);let M={command:"analyze-metafile",metafile:B};$!==void 0&&(M.color=$),I!==void 0&&(M.verbose=I),l(x,M,(E,P)=>{if(E)return S(new Error(E),null);S(null,P.result)})}}}}function dt(u,e,t,n,r,o,s,a,i,c,l){let f=se(),_=u==="context",p=(F,w)=>{let y=[];try{A2(y,a,{},i,Y8)}catch{}let v=Nu(F,o,f,void 0,w);t(r,{command:"error",flags:y,error:v},()=>{v.detail=f.load(v.detail),l(c2(_?"Context failed":"Build failed",[v],[]),null)})},m;if(typeof a=="object"){let F=a.plugins;if(F!==void 0){if(!Array.isArray(F))return p(new Error('"plugins" must be an array'),"");m=F}}if(m&&m.length>0){if(o.isSync)return p(new Error("Cannot use plugins in synchronous API calls"),"");_t(e,t,n,r,o,s,a,m,f).then(F=>{if(!F.ok)return p(F.error,F.pluginName);try{g(F.requestPlugins,F.runOnEndCallbacks,F.scheduleOnDisposeCallbacks)}catch(w){p(w,"")}},F=>p(F,""));return}try{g(null,(F,w)=>w([],[]),()=>{})}catch(F){p(F,"")}function g(F,w,y){let v=o.hasFS,{entries:x,flags:B,write:C,stdinContents:S,stdinResolveDir:D,absWorkingDir:$,nodePaths:I,mangleCache:M}=ft(u,a,i,Y8,v);if(C&&!o.hasFS)throw new Error('The "write" option is unavailable in this environment');let E={command:"build",key:e,entries:x,flags:B,write:C,stdinContents:S,stdinResolveDir:D,absWorkingDir:$||c,nodePaths:I,context:_};F&&(E.plugins=F),M&&(E.mangleCache=M);let P=(W,N)=>{let Y={errors:Qu(W.errors,f),warnings:Qu(W.warnings,f),outputFiles:void 0,metafile:void 0,mangleCache:void 0},J=Y.errors.slice(),A=Y.warnings.slice();W.outputFiles&&(Y.outputFiles=W.outputFiles.map(mt)),W.metafile&&(Y.metafile=gt(W.metafile)),W.mangleCache&&(Y.mangleCache=W.mangleCache),W.writeToStdout!==void 0&&console.log(Uu(W.writeToStdout).replace(/\n$/,"")),w(Y,(H,V)=>{if(J.length>0||H.length>0){let z=c2("Build failed",J.concat(H),A.concat(V));return N(z,null,H,V)}N(null,Y,H,V)})},T,j;_&&(s["on-end"]=(W,N)=>new Promise(Y=>{P(N,(J,A,H,V)=>{let z={errors:H,warnings:V};j&&j(J,A),T=void 0,j=void 0,n(W,z),Y()})})),t(r,E,(W,N)=>{if(W)return l(new Error(W),null);if(!_)return P(N,(A,H)=>(y(),l(A,H)));if(N.errors.length>0)return l(c2("Context failed",N.errors,N.warnings),null);let Y=!1,J={rebuild:()=>(T||(T=new Promise((A,H)=>{let V;j=(cu,X)=>{V||(V=()=>cu?H(cu):A(X))};let z=()=>{t(r,{command:"rebuild",key:e},(X,Pu)=>{X?H(new Error(X)):V?V():z()})};z()})),T),watch:(A={})=>new Promise((H,V)=>{if(!o.hasFS)throw new Error('Cannot use the "watch" API in this environment');let z={},cu=b(A,z,"delay",Wu);uu(A,z,"in watch() call");let X={command:"watch",key:e};cu&&(X.delay=cu),t(r,X,Pu=>{Pu?V(new Error(Pu)):H(void 0)})}),serve:(A={})=>new Promise((H,V)=>{if(!o.hasFS)throw new Error('Cannot use the "serve" API in this environment');let z={},cu=b(A,z,"port",ot),X=b(A,z,"host",O),Pu=b(A,z,"servedir",O),R=b(A,z,"keyfile",O),Su=b(A,z,"certfile",O),bu=b(A,z,"fallback",O),Eu=b(A,z,"cors",mu),Iu=b(A,z,"onRequest",X8);uu(A,z,"in serve() call");let Cu={command:"serve",key:e,onRequest:!!Iu};if(cu!==void 0&&(Cu.port=cu),X!==void 0&&(Cu.host=X),Pu!==void 0&&(Cu.servedir=Pu),R!==void 0&&(Cu.keyfile=R),Su!==void 0&&(Cu.certfile=Su),bu!==void 0&&(Cu.fallback=bu),Eu){let n2={},Gu=b(Eu,n2,"origin",ee);uu(Eu,n2,'on "cors" object'),Array.isArray(Gu)?Cu.corsOrigin=Gu:Gu!==void 0&&(Cu.corsOrigin=[Gu])}t(r,Cu,(n2,Gu)=>{if(n2)return V(new Error(n2));Iu&&(s["serve-request"]=(w5,y5)=>{Iu(y5.args),n(w5,{})}),H(Gu)})}),cancel:()=>new Promise(A=>{if(Y)return A();t(r,{command:"cancel",key:e},()=>{A()})}),dispose:()=>new Promise(A=>{if(Y)return A();Y=!0,t(r,{command:"dispose",key:e},()=>{A(),y(),r.unref()})})};r.ref(),l(null,J)})}}var _t=async(u,e,t,n,r,o,s,a,i)=>{let c=[],l=[],f={},_={},p=[],m=0,g=0,F=[],w=!1;a=[...a];for(let x of a){let B={};if(typeof x!="object")throw new Error(`Plugin at index ${g} must be an object`);let C=b(x,B,"name",O);if(typeof C!="string"||C==="")throw new Error(`Plugin at index ${g} is missing a name`);try{let S=b(x,B,"setup",X8);if(typeof S!="function")throw new Error("Plugin is missing a setup function");uu(x,B,`on plugin ${eu(C)}`);let D={name:C,onStart:!1,onEnd:!1,onResolve:[],onLoad:[]};g++;let I=S({initialOptions:s,resolve:(M,E={})=>{if(!w)throw new Error('Cannot call "resolve" before plugin setup has completed');if(typeof M!="string")throw new Error("The path to resolve must be a string");let P=Object.create(null),T=b(E,P,"pluginName",O),j=b(E,P,"importer",O),W=b(E,P,"namespace",O),N=b(E,P,"resolveDir",O),Y=b(E,P,"kind",O),J=b(E,P,"pluginData",B2),A=b(E,P,"with",mu);return uu(E,P,"in resolve() call"),new Promise((H,V)=>{let z={command:"resolve",path:M,key:u,pluginName:C};if(T!=null&&(z.pluginName=T),j!=null&&(z.importer=j),W!=null&&(z.namespace=W),N!=null&&(z.resolveDir=N),Y!=null)z.kind=Y;else throw new Error('Must specify "kind" when calling "resolve"');J!=null&&(z.pluginData=i.store(J)),A!=null&&(z.with=pt(A,"with")),e(n,z,(cu,X)=>{cu!==null?V(new Error(cu)):H({errors:Qu(X.errors,i),warnings:Qu(X.warnings,i),path:X.path,external:X.external,sideEffects:X.sideEffects,namespace:X.namespace,suffix:X.suffix,pluginData:i.load(X.pluginData)})})})},onStart(M){let E='This error came from the "onStart" callback registered here:',P=x2(new Error(E),r,"onStart");c.push({name:C,callback:M,note:P}),D.onStart=!0},onEnd(M){let E='This error came from the "onEnd" callback registered here:',P=x2(new Error(E),r,"onEnd");l.push({name:C,callback:M,note:P}),D.onEnd=!0},onResolve(M,E){let P='This error came from the "onResolve" callback registered here:',T=x2(new Error(P),r,"onResolve"),j={},W=b(M,j,"filter",M2),N=b(M,j,"namespace",O);if(uu(M,j,`in onResolve() call for plugin ${eu(C)}`),W==null)throw new Error("onResolve() call is missing a filter");let Y=m++;f[Y]={name:C,callback:E,note:T},D.onResolve.push({id:Y,filter:E2(W),namespace:N||""})},onLoad(M,E){let P='This error came from the "onLoad" callback registered here:',T=x2(new Error(P),r,"onLoad"),j={},W=b(M,j,"filter",M2),N=b(M,j,"namespace",O);if(uu(M,j,`in onLoad() call for plugin ${eu(C)}`),W==null)throw new Error("onLoad() call is missing a filter");let Y=m++;_[Y]={name:C,callback:E,note:T},D.onLoad.push({id:Y,filter:E2(W),namespace:N||""})},onDispose(M){p.push(M)},esbuild:r.esbuild});I&&await I,F.push(D)}catch(S){return{ok:!1,error:S,pluginName:C}}}o["on-start"]=async(x,B)=>{i.clear();let C={errors:[],warnings:[]};await Promise.all(c.map(async({name:S,callback:D,note:$})=>{try{let I=await D();if(I!=null){if(typeof I!="object")throw new Error(`Expected onStart() callback in plugin ${eu(S)} to return an object`);let M={},E=b(I,M,"errors",Du),P=b(I,M,"warnings",Du);uu(I,M,`from onStart() callback in plugin ${eu(S)}`),E!=null&&C.errors.push(...Lu(E,"errors",i,S,void 0)),P!=null&&C.warnings.push(...Lu(P,"warnings",i,S,void 0))}}catch(I){C.errors.push(Nu(I,r,i,$&&$(),S))}})),t(x,C)},o["on-resolve"]=async(x,B)=>{let C={},S="",D,$;for(let I of B.ids)try{({name:S,callback:D,note:$}=f[I]);let M=await D({path:B.path,importer:B.importer,namespace:B.namespace,resolveDir:B.resolveDir,kind:B.kind,pluginData:i.load(B.pluginData),with:B.with});if(M!=null){if(typeof M!="object")throw new Error(`Expected onResolve() callback in plugin ${eu(S)} to return an object`);let E={},P=b(M,E,"pluginName",O),T=b(M,E,"path",O),j=b(M,E,"namespace",O),W=b(M,E,"suffix",O),N=b(M,E,"external",Z),Y=b(M,E,"sideEffects",Z),J=b(M,E,"pluginData",B2),A=b(M,E,"errors",Du),H=b(M,E,"warnings",Du),V=b(M,E,"watchFiles",fu),z=b(M,E,"watchDirs",fu);uu(M,E,`from onResolve() callback in plugin ${eu(S)}`),C.id=I,P!=null&&(C.pluginName=P),T!=null&&(C.path=T),j!=null&&(C.namespace=j),W!=null&&(C.suffix=W),N!=null&&(C.external=N),Y!=null&&(C.sideEffects=Y),J!=null&&(C.pluginData=i.store(J)),A!=null&&(C.errors=Lu(A,"errors",i,S,void 0)),H!=null&&(C.warnings=Lu(H,"warnings",i,S,void 0)),V!=null&&(C.watchFiles=v2(V,"watchFiles")),z!=null&&(C.watchDirs=v2(z,"watchDirs"));break}}catch(M){C={id:I,errors:[Nu(M,r,i,$&&$(),S)]};break}t(x,C)},o["on-load"]=async(x,B)=>{let C={},S="",D,$;for(let I of B.ids)try{({name:S,callback:D,note:$}=_[I]);let M=await D({path:B.path,namespace:B.namespace,suffix:B.suffix,pluginData:i.load(B.pluginData),with:B.with});if(M!=null){if(typeof M!="object")throw new Error(`Expected onLoad() callback in plugin ${eu(S)} to return an object`);let E={},P=b(M,E,"pluginName",O),T=b(M,E,"contents",te),j=b(M,E,"resolveDir",O),W=b(M,E,"pluginData",B2),N=b(M,E,"loader",O),Y=b(M,E,"errors",Du),J=b(M,E,"warnings",Du),A=b(M,E,"watchFiles",fu),H=b(M,E,"watchDirs",fu);uu(M,E,`from onLoad() callback in plugin ${eu(S)}`),C.id=I,P!=null&&(C.pluginName=P),T instanceof Uint8Array?C.contents=T:T!=null&&(C.contents=Mu(T)),j!=null&&(C.resolveDir=j),W!=null&&(C.pluginData=i.store(W)),N!=null&&(C.loader=N),Y!=null&&(C.errors=Lu(Y,"errors",i,S,void 0)),J!=null&&(C.warnings=Lu(J,"warnings",i,S,void 0)),A!=null&&(C.watchFiles=v2(A,"watchFiles")),H!=null&&(C.watchDirs=v2(H,"watchDirs"));break}}catch(M){C={id:I,errors:[Nu(M,r,i,$&&$(),S)]};break}t(x,C)};let y=(x,B)=>B([],[]);l.length>0&&(y=(x,B)=>{(async()=>{let C=[],S=[];for(let{name:D,callback:$,note:I}of l){let M,E;try{let P=await $(x);if(P!=null){if(typeof P!="object")throw new Error(`Expected onEnd() callback in plugin ${eu(D)} to return an object`);let T={},j=b(P,T,"errors",Du),W=b(P,T,"warnings",Du);uu(P,T,`from onEnd() callback in plugin ${eu(D)}`),j!=null&&(M=Lu(j,"errors",i,D,void 0)),W!=null&&(E=Lu(W,"warnings",i,D,void 0))}}catch(P){M=[Nu(P,r,i,I&&I(),D)]}if(M){C.push(...M);try{x.errors.push(...M)}catch{}}if(E){S.push(...E);try{x.warnings.push(...E)}catch{}}}B(C,S)})()});let v=()=>{for(let x of p)setTimeout(()=>x(),0)};return w=!0,{ok:!0,requestPlugins:F,runOnEndCallbacks:y,scheduleOnDisposeCallbacks:v}};function se(){let u=new Map,e=0;return{clear(){u.clear()},load(t){return u.get(t)},store(t){if(t===void 0)return-1;let n=e++;return u.set(n,t),n}}}function x2(u,e,t){let n,r=!1;return()=>{if(r)return n;r=!0;try{let o=(u.stack+"").split(`
9
- `);o.splice(1,1);let s=ie(e,o,t);if(s)return n={text:u.message,location:s},n}catch{}}}function Nu(u,e,t,n,r){let o="Internal error",s=null;try{o=(u&&u.message||u)+""}catch{}try{s=ie(e,(u.stack+"").split(`
10
- `),"")}catch{}return{id:"",pluginName:r,text:o,location:s,notes:n?[n]:[],detail:t?t.store(u):-1}}function ie(u,e,t){let n=" at ";if(u.readFileSync&&!e[0].startsWith(n)&&e[1].startsWith(n))for(let r=1;r<e.length;r++){let o=e[r];if(o.startsWith(n))for(o=o.slice(n.length);;){let s=/^(?:new |async )?\S+ \((.*)\)$/.exec(o);if(s){o=s[1];continue}if(s=/^eval at \S+ \((.*)\)(?:, \S+:\d+:\d+)?$/.exec(o),s){o=s[1];continue}if(s=/^(\S+):(\d+):(\d+)$/.exec(o),s){let a;try{a=u.readFileSync(s[1],"utf8")}catch{break}let i=a.split(/\r\n|\r|\n|\u2028|\u2029/)[+s[2]-1]||"",c=+s[3]-1,l=i.slice(c,c+t.length)===t?t.length:0;return{file:s[1],namespace:"file",line:+s[2],column:Mu(i.slice(0,c)).length,length:Mu(i.slice(c,c+l)).length,lineText:i+`
11
- `+e.slice(1).join(`
12
- `),suggestion:""}}break}}return null}function c2(u,e,t){let n=5;u+=e.length<1?"":` with ${e.length} error${e.length<2?"":"s"}:`+e.slice(0,n+1).map((o,s)=>{if(s===n)return`
13
- ...`;if(!o.location)return`
14
- error: ${o.text}`;let{file:a,line:i,column:c}=o.location,l=o.pluginName?`[plugin: ${o.pluginName}] `:"";return`
15
- ${a}:${i}:${c}: ERROR: ${l}${o.text}`}).join("");let r=new Error(u);for(let[o,s]of[["errors",e],["warnings",t]])Object.defineProperty(r,o,{configurable:!0,enumerable:!0,get:()=>s,set:a=>Object.defineProperty(r,o,{configurable:!0,enumerable:!0,value:a})});return r}function Qu(u,e){for(let t of u)t.detail=e.load(t.detail);return u}function z8(u,e,t){if(u==null)return null;let n={},r=b(u,n,"file",O),o=b(u,n,"namespace",O),s=b(u,n,"line",Wu),a=b(u,n,"column",Wu),i=b(u,n,"length",Wu),c=b(u,n,"lineText",O),l=b(u,n,"suggestion",O);if(uu(u,n,e),c){let f=c.slice(0,(a&&a>0?a:0)+(i&&i>0?i:0)+(t&&t>0?t:80));!/[\x7F-\uFFFF]/.test(f)&&!/\n/.test(c)&&(c=f)}return{file:r||"",namespace:o||"",line:s||0,column:a||0,length:i||0,lineText:c||"",suggestion:l||""}}function Lu(u,e,t,n,r){let o=[],s=0;for(let a of u){let i={},c=b(a,i,"id",O),l=b(a,i,"pluginName",O),f=b(a,i,"text",O),_=b(a,i,"location",U8),p=b(a,i,"notes",Du),m=b(a,i,"detail",B2),g=`in element ${s} of "${e}"`;uu(a,i,g);let F=[];if(p)for(let w of p){let y={},v=b(w,y,"text",O),x=b(w,y,"location",U8);uu(w,y,g),F.push({text:v||"",location:z8(x,g,r)})}o.push({id:c||"",pluginName:l||n,text:f||"",location:z8(_,g,r),notes:F,detail:t?t.store(m):-1}),s++}return o}function v2(u,e){let t=[];for(let n of u){if(typeof n!="string")throw new Error(`${eu(e)} must be an array of strings`);t.push(n)}return t}function pt(u,e){let t=Object.create(null);for(let n in u){let r=u[n];if(typeof r!="string")throw new Error(`key ${eu(n)} in object ${eu(e)} must be a string`);t[n]=r}return t}function mt({path:u,contents:e,hash:t}){let n=null;return{path:u,contents:e,hash:t,get text(){let r=this.contents;return(n===null||r!==e)&&(e=r,n=Uu(r)),n}}}function E2(u){let e=u.source;return u.flags&&(e=`(?${u.flags})${e}`),e}function gt(u){let e;try{e=Uu(u)}catch{return rt(u)}return JSON.parse(e)}var Ou=nu("fs"),V8=nu("os"),yu=nu("path"),qu=process.env.ESBUILD_BINARY_PATH||qu,Ft=u=>!!u&&u!=="/usr/bin/esbuild",G8="@esbuild/darwin-arm64",K8="@esbuild/darwin-x64",P2={"win32 arm64 LE":"@esbuild/win32-arm64","win32 ia32 LE":"@esbuild/win32-ia32","win32 x64 LE":"@esbuild/win32-x64"},S2={"aix ppc64 BE":"@esbuild/aix-ppc64","android arm64 LE":"@esbuild/android-arm64","darwin arm64 LE":"@esbuild/darwin-arm64","darwin x64 LE":"@esbuild/darwin-x64","freebsd arm64 LE":"@esbuild/freebsd-arm64","freebsd x64 LE":"@esbuild/freebsd-x64","linux arm LE":"@esbuild/linux-arm","linux arm64 LE":"@esbuild/linux-arm64","linux ia32 LE":"@esbuild/linux-ia32","linux mips64el LE":"@esbuild/linux-mips64el","linux ppc64 LE":"@esbuild/linux-ppc64","linux riscv64 LE":"@esbuild/linux-riscv64","linux s390x BE":"@esbuild/linux-s390x","linux x64 LE":"@esbuild/linux-x64","linux loong64 LE":"@esbuild/linux-loong64","netbsd arm64 LE":"@esbuild/netbsd-arm64","netbsd x64 LE":"@esbuild/netbsd-x64","openbsd arm64 LE":"@esbuild/openbsd-arm64","openbsd x64 LE":"@esbuild/openbsd-x64","sunos x64 LE":"@esbuild/sunos-x64"},q8={"android arm LE":"@esbuild/android-arm","android x64 LE":"@esbuild/android-x64","openharmony arm64 LE":"@esbuild/openharmony-arm64"};function bt(){let u,e,t=!1,n=`${process.platform} ${V8.arch()} ${V8.endianness()}`;if(n in P2)u=P2[n],e="esbuild.exe";else if(n in S2)u=S2[n],e="bin/esbuild";else if(n in q8)u=q8[n],e="bin/esbuild",t=!0;else throw new Error(`Unsupported platform: ${n}`);return{pkg:u,subpath:e,isWASM:t}}function Ct(){let u=nu.resolve("esbuild"),e=yu.dirname(yu.dirname(yu.dirname(u)));if(yu.basename(e)==="node_modules"){for(let t in S2)try{let n=S2[t];if(Ou.existsSync(yu.join(e,n)))return n}catch{}for(let t in P2)try{let n=P2[t];if(Ou.existsSync(yu.join(e,n)))return n}catch{}}return null}function wt(u,e){let t=yu.dirname(nu.resolve("esbuild"));return yu.join(t,`downloaded-${u.replace("/","-")}-${yu.basename(e)}`)}function yt(){if(Ft(qu))if(!Ou.existsSync(qu))console.warn(`[esbuild] Ignoring bad configuration: ESBUILD_BINARY_PATH=${qu}`);else return{binPath:qu,isWASM:!1};let{pkg:u,subpath:e,isWASM:t}=bt(),n;try{n=nu.resolve(`${u}/${e}`)}catch(r){if(n=wt(u,e),!Ou.existsSync(n)){try{nu.resolve(u)}catch{let o=Ct();if(o){let s=`
16
- Specifically the "${o}" package is present but this platform
17
- needs the "${u}" package instead. People often get into this
18
- situation by installing esbuild on Windows or macOS and copying "node_modules"
19
- into a Docker image that runs Linux, or by copying "node_modules" between
20
- Windows and WSL environments.
21
-
22
- If you are installing with npm, you can try not copying the "node_modules"
23
- directory when you copy the files over, and running "npm ci" or "npm install"
24
- on the destination platform after the copy. Or you could consider using yarn
25
- instead of npm which has built-in support for installing a package on multiple
26
- platforms simultaneously.
27
-
28
- If you are installing with yarn, you can try listing both this platform and the
29
- other platform in your ".yarnrc.yml" file using the "supportedArchitectures"
30
- feature: https://yarnpkg.com/configuration/yarnrc/#supportedArchitectures
31
- Keep in mind that this means multiple copies of esbuild will be present.
32
- `;throw(u===K8&&o===G8||u===G8&&o===K8)&&(s=`
33
- Specifically the "${o}" package is present but this platform
34
- needs the "${u}" package instead. People often get into this
35
- situation by installing esbuild with npm running inside of Rosetta 2 and then
36
- trying to use it with node running outside of Rosetta 2, or vice versa (Rosetta
37
- 2 is Apple's on-the-fly x86_64-to-arm64 translation service).
38
-
39
- If you are installing with npm, you can try ensuring that both npm and node are
40
- not running under Rosetta 2 and then reinstalling esbuild. This likely involves
41
- changing how you installed npm and/or node. For example, installing node with
42
- the universal installer here should work: https://nodejs.org/en/download/. Or
43
- you could consider using yarn instead of npm which has built-in support for
44
- installing a package on multiple platforms simultaneously.
45
-
46
- If you are installing with yarn, you can try listing both "arm64" and "x64"
47
- in your ".yarnrc.yml" file using the "supportedArchitectures" feature:
48
- https://yarnpkg.com/configuration/yarnrc/#supportedArchitectures
49
- Keep in mind that this means multiple copies of esbuild will be present.
50
- `),new Error(`
51
- You installed esbuild for another platform than the one you're currently using.
52
- This won't work because esbuild is written with native code and needs to
53
- install a platform-specific binary executable.
54
- ${s}
55
- Another alternative is to use the "esbuild-wasm" package instead, which works
56
- the same way on all platforms. But it comes with a heavy performance cost and
57
- can sometimes be 10x slower than the "esbuild" package, so you may also not
58
- want to do that.
59
- `)}throw new Error(`The package "${u}" could not be found, and is needed by esbuild.
60
-
61
- If you are installing esbuild with npm, make sure that you don't specify the
62
- "--no-optional" or "--omit=optional" flags. The "optionalDependencies" feature
63
- of "package.json" is used by esbuild to install the correct binary executable
64
- for your current platform.`)}throw r}}if(/\.zip\//.test(n)){let r;try{r=nu("pnpapi")}catch{}if(r){let o=r.getPackageInformation(r.topLevel).packageLocation,s=yu.join(o,"node_modules",".cache","esbuild",`pnpapi-${u.replace("/","-")}-0.27.4-${yu.basename(e)}`);return Ou.existsSync(s)||(Ou.mkdirSync(yu.dirname(s),{recursive:!0}),Ou.copyFileSync(n,s),Ou.chmodSync(s,493)),{binPath:s,isWASM:t}}}return{binPath:n,isWASM:t}}var ae=nu("child_process"),xt=nu("crypto"),X2=nu("path"),Yu=nu("fs"),vt=nu("os"),Bt=nu("tty"),ou;if(process.env.ESBUILD_WORKER_THREADS!=="0"){try{ou=nu("worker_threads")}catch{}let[u,e]=process.versions.node.split(".");(+u<12||+u==12&&+e<17||+u==13&&+e<13)&&(ou=void 0)}var J8,h2=((J8=ou?.workerData)==null?void 0:J8.esbuildVersion)==="0.27.4",ce=()=>{if(!qu&&(X2.basename(__filename)!=="main.js"||X2.basename(__dirname)!=="lib"))throw new Error(`The esbuild JavaScript API cannot be bundled. Please mark the "esbuild" package as external so it's not included in the bundle.
65
-
66
- More information: The file containing the code for esbuild's JavaScript API (${__filename}) does not appear to be inside the esbuild package on the file system, which usually means that the esbuild package was bundled into another file. This is problematic because the API needs to run a binary executable inside the esbuild package which is located using a relative path from the API code to the executable. If the esbuild package is bundled, the relative path will be incorrect and the executable won't be found.`);{let{binPath:u,isWASM:e}=yt();return e?["node",[u]]:[u,[]]}},l2=()=>Bt.isatty(2),Mt={readFile(u,e){try{let t=Yu.readFileSync(u,"utf8");try{Yu.unlinkSync(u)}catch{}e(null,t)}catch(t){e(t,null)}},writeFile(u,e){try{let t=le();Yu.writeFileSync(t,u),e(t)}catch{e(null)}}},Et={readFile(u,e){try{Yu.readFile(u,"utf8",(t,n)=>{try{Yu.unlink(u,()=>e(t,n))}catch{e(t,n)}})}catch(t){e(t,null)}},writeFile(u,e){try{let t=le();Yu.writeFile(t,u,n=>e(n!==null?null:t))}catch{e(null)}}},Pt="0.27.4",St=u=>zu().build(u),It=u=>zu().context(u),At=(u,e)=>zu().transform(u,e),Dt=(u,e)=>zu().formatMessages(u,e),Lt=(u,e)=>zu().analyzeMetafile(u,e),Tt=u=>{if(ou&&!h2)return su||(su=L2(ou)),su.buildSync(u);let e;return D2(t=>t.buildOrContext({callName:"buildSync",refs:null,options:u,isTTY:l2(),defaultWD:Hu,callback:(n,r)=>{if(n)throw n;e=r}})),e},Ot=(u,e)=>{if(ou&&!h2)return su||(su=L2(ou)),su.transformSync(u,e);let t;return D2(n=>n.transform({callName:"transformSync",refs:null,input:u,options:e||{},isTTY:l2(),fs:Mt,callback:(r,o)=>{if(r)throw r;t=o}})),t},$t=(u,e)=>{if(ou&&!h2)return su||(su=L2(ou)),su.formatMessagesSync(u,e);let t;return D2(n=>n.formatMessages({callName:"formatMessagesSync",refs:null,messages:u,options:e,callback:(r,o)=>{if(r)throw r;t=o}})),t},Rt=(u,e)=>{if(ou&&!h2)return su||(su=L2(ou)),su.analyzeMetafileSync(u,e);let t;return D2(n=>n.analyzeMetafile({callName:"analyzeMetafileSync",refs:null,metafile:typeof u=="string"?u:JSON.stringify(u),options:e,callback:(r,o)=>{if(r)throw r;t=o}})),t},kt=()=>(I2&&I2(),su&&su.stop(),Promise.resolve()),u8=!1,jt=u=>{if(u=lt(u||{}),u.wasmURL)throw new Error('The "wasmURL" option only works in the browser');if(u.wasmModule)throw new Error('The "wasmModule" option only works in the browser');if(u.worker)throw new Error('The "worker" option only works in the browser');if(u8)throw new Error('Cannot call "initialize" more than once');return zu(),u8=!0,Promise.resolve()},Hu=process.cwd(),a2,I2,zu=()=>{if(a2)return a2;let[u,e]=ce(),t=ae.spawn(u,e.concat("--service=0.27.4","--ping"),{windowsHide:!0,stdio:["pipe","pipe","inherit"],cwd:Hu}),{readFromStdout:n,afterClose:r,service:o}=oe({writeToStdin(l){t.stdin.write(l,f=>{f&&r(f)})},readFileSync:Yu.readFileSync,isSync:!1,hasFS:!0,esbuild:f2});t.stdin.on("error",r),t.on("error",r);let s=t.stdin,a=t.stdout;a.on("data",n),a.on("end",r),I2=()=>{s.destroy(),a.destroy(),t.kill(),u8=!1,a2=void 0,I2=void 0};let i=0;t.unref(),s.unref&&s.unref(),a.unref&&a.unref();let c={ref(){++i===1&&t.ref()},unref(){--i===0&&t.unref()}};return a2={build:l=>new Promise((f,_)=>{o.buildOrContext({callName:"build",refs:c,options:l,isTTY:l2(),defaultWD:Hu,callback:(p,m)=>p?_(p):f(m)})}),context:l=>new Promise((f,_)=>o.buildOrContext({callName:"context",refs:c,options:l,isTTY:l2(),defaultWD:Hu,callback:(p,m)=>p?_(p):f(m)})),transform:(l,f)=>new Promise((_,p)=>o.transform({callName:"transform",refs:c,input:l,options:f||{},isTTY:l2(),fs:Et,callback:(m,g)=>m?p(m):_(g)})),formatMessages:(l,f)=>new Promise((_,p)=>o.formatMessages({callName:"formatMessages",refs:c,messages:l,options:f,callback:(m,g)=>m?p(m):_(g)})),analyzeMetafile:(l,f)=>new Promise((_,p)=>o.analyzeMetafile({callName:"analyzeMetafile",refs:c,metafile:typeof l=="string"?l:JSON.stringify(l),options:f,callback:(m,g)=>m?p(m):_(g)}))},a2},D2=u=>{let[e,t]=ce(),n=new Uint8Array,{readFromStdout:r,afterClose:o,service:s}=oe({writeToStdin(i){if(n.length!==0)throw new Error("Must run at most one command");n=i},isSync:!0,hasFS:!0,esbuild:f2});u(s);let a=ae.execFileSync(e,t.concat("--service=0.27.4"),{cwd:Hu,windowsHide:!0,input:n,maxBuffer:+process.env.ESBUILD_MAX_BUFFER||16*1024*1024});r(a),o(null)},le=()=>X2.join(vt.tmpdir(),`esbuild-${xt.randomBytes(32).toString("hex")}`),su=null,L2=u=>{let{port1:e,port2:t}=new u.MessageChannel,n=new u.Worker(__filename,{workerData:{workerPort:t,defaultWD:Hu,esbuildVersion:"0.27.4"},transferList:[t],execArgv:[]}),r=0,o=c=>{let l=new Error(`Build failed with 1 error:
67
- error: ${c}`),f=[{id:"",pluginName:"",text:c,location:null,notes:[],detail:void 0}];return l.errors=f,l.warnings=[],l},s=c=>{if(!c)return;let l=c.plugins;if(l&&l.length>0)throw o("Cannot use plugins in synchronous API calls")},a=(c,l)=>{for(let f in l)c[f]=l[f]},i=(c,l)=>{let f=r++,_=new SharedArrayBuffer(8),p=new Int32Array(_),m={sharedBuffer:_,id:f,command:c,args:l};n.postMessage(m);let g=Atomics.wait(p,0,0);if(g!=="ok"&&g!=="not-equal")throw new Error("Internal error: Atomics.wait() failed: "+g);let{message:{id:F,resolve:w,reject:y,properties:v}}=u.receiveMessageOnPort(e);if(f!==F)throw new Error(`Internal error: Expected id ${f} but got id ${F}`);if(y)throw a(y,v),y;return w};return n.unref(),{buildSync(c){return s(c),i("build",[c])},transformSync(c,l){return i("transform",[c,l])},formatMessagesSync(c,l){return i("formatMessages",[c,l])},analyzeMetafileSync(c,l){return i("analyzeMetafile",[c,l])},stop(){n.terminate(),su=null}}},Nt=()=>{let u=ou.workerData.workerPort,e=ou.parentPort,t=n=>{let r={};if(n&&typeof n=="object")for(let o in n)r[o]=n[o];return r};try{let n=zu();Hu=ou.workerData.defaultWD,e.on("message",r=>{(async()=>{let{sharedBuffer:o,id:s,command:a,args:i}=r,c=new Int32Array(o);try{switch(a){case"build":u.postMessage({id:s,resolve:await n.build(i[0])});break;case"transform":u.postMessage({id:s,resolve:await n.transform(i[0],i[1])});break;case"formatMessages":u.postMessage({id:s,resolve:await n.formatMessages(i[0],i[1])});break;case"analyzeMetafile":u.postMessage({id:s,resolve:await n.analyzeMetafile(i[0],i[1])});break;default:throw new Error(`Invalid command: ${a}`)}}catch(l){u.postMessage({id:s,reject:l,properties:t(l)})}Atomics.add(c,0,1),Atomics.notify(c,0,1/0)})()})}catch(n){e.on("message",r=>{let{sharedBuffer:o,id:s}=r,a=new Int32Array(o);u.postMessage({id:s,reject:n,properties:t(n)}),Atomics.add(a,0,1),Atomics.notify(a,0,1/0)})}};h2&&Nt();var Wt=f2});import{resolve as _e,join as Yt}from"path";import{mkdirSync as Ht}from"fs";import{pathToFileURL as Ut}from"url";async function t8(u,e){let t=_e(u),n=Yt(e,zt(t));Ht(e,{recursive:!0});try{let{build:r}=await Promise.resolve().then(()=>A5(he(),1));await r({entryPoints:[t],outfile:n,bundle:!0,format:"esm",platform:"node",external:["terminaltui"],target:"node18"})}catch{return t}return n}function zt(u){return u.replace(/[^a-zA-Z0-9]/g,"_").slice(-80)+".mjs"}async function n8(u){let e=de.get(u);if(e)return e;let n=await import(Ut(_e(u)).href);return de.set(u,n),n}async function pe(u,e){let t=await t8(u,e),n=await n8(t);if(typeof n.default!="function")throw new Error(`Page file ${u} must have a default export that is a function. Got: ${typeof n.default}`);return{default:n.default,metadata:n.metadata}}async function me(u,e){let t=await t8(u,e),n=await n8(t);if(typeof n.default!="function")throw new Error(`Layout file ${u} must have a default export that is a function. Got: ${typeof n.default}`);return{default:n.default}}async function ge(u,e){let t=await t8(u,e),n=await n8(t),r={},o=["GET","POST","PUT","DELETE","PATCH"];for(let s of o)typeof n[s]=="function"&&(r[s]=n[s]);return r}var de,T2=r2(()=>{de=new Map});import{readFileSync as r8}from"fs";function Fe(u,e,t){let n=[],r=new Set;for(let i of u.routes)r.has(i.name)&&n.push({level:"error",message:`Duplicate page ID: "${i.name}"`}),r.add(i.name);if(u.routes.find(i=>i.name==="home")){let i=t.get("home");if(i)try{let c=r8(i,"utf-8");(c.includes('source: "auto"')||c.includes("source: 'auto'"))&&n.push({level:"warn",message:'pages/home.ts uses menu({ source: "auto" }) \u2014 this creates a duplicate menu. The framework renders the navigation menu automatically on the home screen. Remove the menu() call.'})}catch{}}let s=new Set(u.routes.map(i=>i.name));for(let[i,c]of t)try{let f=r8(c,"utf-8").matchAll(/navigate:\s*["']([^"']+)["']/g);for(let _ of f){let p=_[1];s.has(p)||u.routes.some(g=>g.isDynamic&&g.name.replace(/\/\[.*?\].*$/,"")===p)||n.push({level:"warn",message:`${i}: navigate("${p}") \u2014 page "${p}" not found. Available pages: ${[...s].join(", ")}`})}}catch{}let a=new Set;for(let[,i]of t)try{let l=r8(i,"utf-8").matchAll(/navigate:\s*["']([^"']+)["']/g);for(let f of l)a.add(f[1])}catch{}for(let i of u.routes)e.get(i.name)?.hidden&&!a.has(i.name)&&n.push({level:"warn",message:`"${i.name}" is hidden but never referenced by navigate(). It may be unreachable.`});return n}function be(u){if(u.length!==0){process.stderr.write(`
68
- [terminaltui] Project validation:
69
- `);for(let e of u){let t=e.level==="error"?" \x1B[31m\u2717\x1B[0m":" \x1B[33m\u26A0\x1B[0m";process.stderr.write(`${t} ${e.message}
70
- `)}process.stderr.write(`
71
- `)}}var O2=r2(()=>{});import{readdirSync as sn,statSync as an,existsSync as cn}from"fs";import{join as ln,relative as xe,basename as fn,extname as $2}from"path";function Vt(u,e,t){let n=new Map;for(let o of e)n.set(o.parentDir,o.absolutePath);let r=[];for(let o of u){let s=Gt(o,n,t);s&&r.push(s)}return{routes:r,layouts:n}}function Gt(u,e,t){let n=Kt(u),r=qt(u.parentDir,e);return{name:n,filePath:u.absolutePath,isIndex:u.isIndex,isDynamic:u.isDynamic,paramName:u.paramName,parentDir:u.parentDir,depth:u.depth,layoutChain:r}}function Kt(u){return u.isIndex?u.parentDir===""?"home":u.parentDir:u.isDynamic?u.parentDir===""?`[${u.paramName}]`:`${u.parentDir}/[${u.paramName}]`:u.parentDir===""?u.name:`${u.parentDir}/${u.name}`}function qt(u,e){let t=[],n=e.get("");if(n&&t.push(n),u!==""){let r=u.split("/"),o="";for(let s of r){o=o?`${o}/${s}`:s;let a=e.get(o);a&&t.push(a)}}return t}function Ce(u,e){return u.routes.find(t=>t.name===e)}function Jt(u,e){let t=e.split("/");for(let n of u.routes){if(!n.isDynamic)continue;let r=n.name.split("/");if(r.length!==t.length)continue;let o={},s=!0;for(let a=0;a<r.length;a++){let i=r[a].match(/^\[(\w+)\]$/);if(i)o[i[1]]=t[a];else if(r[a]!==t[a]){s=!1;break}}if(s)return{route:n,params:o}}}async function ye(u,e,t){if(e.length===0)return u;let n=[];for(let o of e){let s=await Qt(o,t);n.push(s)}let r=u;for(let o=n.length-1;o>=0;o--)r=n[o]({children:r});return r}async function Qt(u,e){let t=we.get(u);if(t)return t;let n=await me(u,e);return we.set(u,n.default),n.default}function Zt(u,e,t){if(t?.items&&t.items.length>0)return t.items.map((r,o)=>({label:r.label,page:r.page,icon:r.icon,order:o}));let n=[];for(let r of u.routes){if(!Xt(r))continue;let o=e.get(r.name);if(o?.hidden||t?.exclude?.includes(r.name))continue;let s=un(r,o,t),a=en(r,o,t),i=tn(r,o);n.push({label:s,page:r.name,icon:a,order:i})}return n.sort(nn),t?.order?rn(n,t.order):n}function Xt(u){return u.isDynamic?!1:!!(u.depth===0||u.isIndex&&u.depth===1)}function un(u,e,t){if(t?.labels?.[u.name])return t.labels[u.name];if(e?.label)return e.label;let n=u.isIndex?u.parentDir:u.name,r=n.split("/").pop()||n;return on(r)}function en(u,e,t){return t?.icons?.[u.name]?t.icons[u.name]:e?.icon}function tn(u,e){return u.name==="home"?-1/0:e?.order!==void 0?e.order:1/0}function nn(u,e){return u.order!==1/0&&e.order!==1/0?u.order-e.order:u.order!==1/0?-1:e.order!==1/0?1:u.label.localeCompare(e.label)}function rn(u,e){let t=[],n=[];for(let r of e){let o=u.find(s=>s.page===r);o&&t.push(o)}for(let r of u)e.includes(r.page)||n.push(r);return[...t,...n]}function on(u){return u.replace(/[-_]/g," ").replace(/([a-z])([A-Z])/g,"$1 $2").replace(/\b\w/g,e=>e.toUpperCase())}function o8(u,e){let t=e??u,n=[];if(!cn(u))return n;let r=sn(u);for(let o of r){let s=ln(u,o);if(o.startsWith(".")||o==="node_modules"||o===".terminaltui")continue;let a=an(s);if(a.isDirectory())n.push(...o8(s,t));else if(a.isFile()&&($2(o)===".ts"||$2(o)===".js"||$2(o)===".mjs")){let i=xe(t,s),c=fn(o,$2(o)),l=xe(t,u),f=c.match(/^\[(\w+)\]$/);n.push({absolutePath:s,relativePath:i,name:c,isLayout:c==="layout",isIndex:c==="index",isDynamic:!!f,paramName:f?.[1],depth:l===""?0:l.split("/").length,parentDir:l})}}return n}function hn(u){let e=o8(u);return{pages:e.filter(t=>!t.isLayout),layouts:e.filter(t=>t.isLayout)}}function dn(u){return o8(u)}function _n(u){let e=[];for(let t of u){let n=pn(t),r=mn(t);e.push({endpoint:n,filePath:t.absolutePath,methods:[],paramNames:r})}return e}function pn(u){let e=u.relativePath;return e=e.replace(/\.(ts|js|mjs)$/,""),e=e.replace(/\/index$/,""),e==="index"&&(e=""),e=e.replace(/\[(\w+)\]/g,":$1"),`/api/${e}`.replace(/\/+/g,"/")}function mn(u){let e=[],t=u.relativePath.matchAll(/\[(\w+)\]/g);for(let n of t)e.push(n[1]);return e}async function gn(u,e){let t={};for(let n of u){let r=await ge(n.filePath,e),o=["GET","POST","PUT","DELETE","PATCH"];for(let s of o){let a=r[s];if(!a)continue;n.methods.includes(s)||n.methods.push(s);let i=`${s} ${n.endpoint}`;t[i]=Fn(a)}}return t}function Fn(u){return async e=>u({params:e.params,body:e.body,query:e.query,headers:e.headers})}var we,R2,s8,i8=r2(()=>{T2();O2();we=new Map;R2=new Map,s8=class{routeTable=null;config;pagesDir;apiDir;outDir;metadataMap=new Map;menuItems=[];constructor(u){this.config=u.config,this.pagesDir=u.pagesDir,this.apiDir=u.apiDir,this.outDir=u.outDir}async initialize(){let{pages:u,layouts:e}=hn(this.pagesDir);this.routeTable=Vt(u,e,this.pagesDir),await this.loadAllMetadata(),this.menuItems=Zt(this.routeTable,this.metadataMap,this.config.menu)}async loadAllMetadata(){if(this.routeTable)for(let u of this.routeTable.routes)try{let e=await this.getPageModule(u);e.metadata&&this.metadataMap.set(u.name,e.metadata)}catch{}}async getPageModule(u){let e=R2.get(u.filePath);if(e)return e;let t=await pe(u.filePath,this.outDir);return R2.set(u.filePath,t),t}getRouteTable(){if(!this.routeTable)throw new Error("Router not initialized");return this.routeTable}getMenuItems(){return this.menuItems}getAllRouteNames(){return this.routeTable?this.routeTable.routes.map(u=>u.name):[]}getMenuRouteNames(){return this.menuItems.map(u=>u.page)}async resolvePage(u,e){if(!this.routeTable)throw new Error("Router not initialized");let t=Ce(this.routeTable,u),n=e??{};if(!t){let a=Jt(this.routeTable,u);a&&(t=a.route,n={...a.params,...e})}if(!t)throw new Error(`Route not found: ${u}`);let r=await this.getPageModule(t),o=t.isDynamic||Object.keys(n).length>0?{params:n}:void 0,s=await r.default(o);return t.layoutChain.length>0&&(s=await ye(s,t.layoutChain,this.outDir)),s}async buildPagesArray(){if(!this.routeTable)throw new Error("Router not initialized");let u=[];for(let e of this.menuItems){let t=Ce(this.routeTable,e.page);if(!t)continue;let n=this.metadataMap.get(t.name);u.push({id:t.name,title:e.label,icon:e.icon,content:this.createPageContentLoader(t)})}for(let e of this.routeTable.routes){if(u.some(n=>n.id===e.name))continue;let t=this.metadataMap.get(e.name);u.push({id:e.name,title:t?.label??e.name,icon:t?.icon,_hidden:!0,content:this.createPageContentLoader(e)})}return u}createPageContentLoader(u){let e=this;return async()=>{let t=await e.getPageModule(u),n;u.isDynamic&&(n=void 0);let r=await t.default(n);return u.layoutChain.length>0&&(r=await ye(r,u.layoutChain,e.outDir)),r}}async loadApiRoutes(){if(!this.apiDir)return{};let u=dn(this.apiDir),e=_n(u);return gn(e,this.outDir)}getMetadata(u){return this.metadataMap.get(u)}validate(){if(!this.routeTable)return[];let u=new Map;for(let e of this.routeTable.routes)u.set(e.name,e.filePath);return Fe(this.routeTable,this.metadataMap,u)}validateAndPrint(){let u=this.validate();be(u)}invalidate(u){R2.delete(u)}async reload(){R2.clear(),this.metadataMap.clear(),await this.initialize()}}});var a8,bn,ve,Cn,Be,Me,wn,Ee,k2=r2(()=>{a8=Object.defineProperty,bn=Object.getOwnPropertyDescriptor,ve=Object.getOwnPropertyNames,Cn=Object.prototype.hasOwnProperty,Be=(u,e)=>function(){return u&&(e=(0,u[ve(u)[0]])(u=0)),e},Me=(u,e)=>{for(var t in e)a8(u,t,{get:e[t],enumerable:!0})},wn=(u,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of ve(e))!Cn.call(u,r)&&r!==t&&a8(u,r,{get:()=>e[r],enumerable:!(n=bn(e,r))||n.enumerable});return u},Ee=u=>wn(a8({},"__esModule",{value:!0}),u)});var Pe={};S5(Pe,{FileRouter:()=>s8});var Se=r2(()=>{i8();T2();O2();k2()});var P8={name:"Larry 3D",height:9,chars:{A:[" ______ ","/\\ _ \\ ","\\ \\ \\L\\ \\ "," \\ \\ __ \\ "," \\ \\ \\/\\ \\ "," \\ \\_\\ \\_\\"," \\/_/\\/_/"," "," "],B:[" ____ ","/\\ _`\\ ","\\ \\ \\L\\ \\ "," \\ \\ _ <' "," \\ \\ \\L\\ \\"," \\ \\____/"," \\/___/ "," "," "],C:[" ____ ","/\\ _`\\ ","\\ \\ \\/\\_\\ "," \\ \\ \\/_/_ "," \\ \\ \\L\\ \\"," \\ \\____/"," \\/___/ "," "," "],D:[" ____ ","/\\ _`\\ ","\\ \\ \\/\\ \\ "," \\ \\ \\ \\ \\ "," \\ \\ \\_\\ \\"," \\ \\____/"," \\/___/ "," "," "],E:[" ____ ","/\\ _`\\ ","\\ \\ \\L\\_\\ "," \\ \\ _\\L "," \\ \\ \\L\\ \\"," \\ \\____/"," \\/___/ "," "," "],F:[" ____ ","/\\ _`\\ ","\\ \\ \\L\\_\\"," \\ \\ _\\/"," \\ \\ \\/ "," \\ \\_\\ "," \\/_/ "," "," "],G:[" ____ ","/\\ _`\\ ","\\ \\ \\L\\_\\ "," \\ \\ \\L_L "," \\ \\ \\/, \\"," \\ \\____/"," \\/___/ "," "," "],H:[" __ __ ","/\\ \\/\\ \\ ","\\ \\ \\_\\ \\ "," \\ \\ _ \\ "," \\ \\ \\ \\ \\ "," \\ \\_\\ \\_\\"," \\/_/\\/_/"," "," "],I:[" ______ ","/\\__ _\\ ","\\/_/\\ \\/ "," \\ \\ \\ "," \\_\\ \\__ "," /\\_____\\"," \\/_____/"," "," "],J:[" _____ ","/\\___ \\ ","\\/__/\\ \\ "," _\\ \\ \\ "," /\\ \\_\\ \\"," \\ \\____/"," \\/___/ "," "," "],K:[" __ __ ","/\\ \\/\\ \\ ","\\ \\ \\/'/' "," \\ \\ , < "," \\ \\ \\\\`\\ "," \\ \\_\\ \\_\\"," \\/_/\\/_/"," "," "],L:[" __ ","/\\ \\ ","\\ \\ \\ "," \\ \\ \\ __ "," \\ \\ \\L\\ \\"," \\ \\____/"," \\/___/ "," "," "],M:[" "," /'\\_/`\\ ","/\\ \\ ","\\ \\ \\__\\ \\ "," \\ \\ \\_/\\ \\ "," \\ \\_\\\\ \\_\\"," \\/_/ \\/_/"," "," "],N:[" __ __ ","/\\ \\/\\ \\ ","\\ \\ `\\\\ \\ "," \\ \\ , ` \\ "," \\ \\ \\`\\ \\ "," \\ \\_\\ \\_\\"," \\/_/\\/_/"," "," "],O:[" _____ ","/\\ __`\\ ","\\ \\ \\/\\ \\ "," \\ \\ \\ \\ \\ "," \\ \\ \\_\\ \\ "," \\ \\_____\\"," \\/_____/"," "," "],P:[" ____ ","/\\ _`\\ ","\\ \\ \\L\\ \\"," \\ \\ ,__/"," \\ \\ \\/ "," \\ \\_\\ "," \\/_/ "," "," "],Q:[" _____ ","/\\ __`\\ ","\\ \\ \\/\\ \\ "," \\ \\ \\ \\ \\ "," \\ \\ \\\\'\\\\ "," \\ \\___\\_\\"," \\/__//_/"," "," "],R:[" ____ ","/\\ _`\\ ","\\ \\ \\L\\ \\ "," \\ \\ , / "," \\ \\ \\\\ \\ "," \\ \\_\\ \\_\\"," \\/_/\\/ /"," "," "],S:[" ____ ","/\\ _`\\ ","\\ \\,\\L\\_\\ "," \\/_\\__ \\ "," /\\ \\L\\ \\ "," \\ `\\____\\"," \\/_____/"," "," "],T:[" ______ ","/\\__ _\\ ","\\/_/\\ \\/ "," \\ \\ \\ "," \\ \\ \\ "," \\ \\_\\"," \\/_/"," "," "],U:[" __ __ ","/\\ \\/\\ \\ ","\\ \\ \\ \\ \\ "," \\ \\ \\ \\ \\ "," \\ \\ \\_\\ \\ "," \\ \\_____\\"," \\/_____/"," "," "],V:[" __ __ ","/\\ \\/\\ \\ ","\\ \\ \\ \\ \\ "," \\ \\ \\ \\ \\ "," \\ \\ \\_/ \\"," \\ `\\___/"," `\\/__/ "," "," "],W:[" __ __ ","/\\ \\ __/\\ \\ ","\\ \\ \\/\\ \\ \\ \\ "," \\ \\ \\ \\ \\ \\ \\ "," \\ \\ \\_/ \\_\\ \\"," \\ `\\___x___/"," '\\/__//__/ "," "," "],X:[" __ __ ","/\\ \\ /\\ \\ ","\\ `\\`\\/'/' "," `\\/ > < "," \\/'/\\`\\ "," /\\_\\\\ \\_\\"," \\/_/ \\/_/"," "," "],Y:[" __ __ ","/\\ \\ /\\ \\","\\ `\\`\\\\/'/"," `\\ `\\ /' "," `\\ \\ \\ "," \\ \\_\\"," \\/_/"," "," "],Z:[" ________ ","/\\_____ \\ ","\\/____//'/' "," //'/' "," //'/'___ "," /\\_______\\"," \\/_______/"," "," "],0:[" __ "," /'__`\\ ","/\\ \\/\\ \\ ","\\ \\ \\ \\ \\ "," \\ \\ \\_\\ \\"," \\ \\____/"," \\/___/ "," "," "],1:[" _ "," /' \\ ","/\\_, \\ ","\\/_/\\ \\ "," \\ \\ \\ "," \\ \\_\\"," \\/_/"," "," "],2:[" ___ "," /'___`\\ ","/\\_\\ /\\ \\ ","\\/_/// /__ "," // /_\\ \\"," /\\______/"," \\/_____/ "," "," "],3:[" __ "," /'__`\\ ","/\\_\\L\\ \\ ","\\/_/_\\_<_ "," /\\ \\L\\ \\"," \\ \\____/"," \\/___/ "," "," "],4:[" __ __ ","/\\ \\\\ \\ ","\\ \\ \\\\ \\ "," \\ \\ \\\\ \\_ "," \\ \\__ ,__\\"," \\/_/\\_\\_/"," \\/_/ "," "," "],5:[" ______ ","/\\ ___\\ ","\\ \\ \\__/ "," \\ \\___``\\ "," \\/\\ \\L\\ \\"," \\ \\____/"," \\/___/ "," "," "],6:[" ____ "," /'___\\ ","/\\ \\__/ ","\\ \\ _``\\ "," \\ \\ \\L\\ \\"," \\ \\____/"," \\/___/ "," "," "],7:[" ________ ","/\\_____ \\","\\/___//'/'"," /' /' "," /' /' "," /\\_/ "," \\// "," "," "],8:[" __ "," /'_ `\\ ","/\\ \\L\\ \\ ","\\/_> _ <_ "," /\\ \\L\\ \\"," \\ \\____/"," \\/___/ "," "," "],9:[" __ "," /'_ `\\ ","/\\ \\L\\ \\ ","\\ \\___, \\ "," \\/__,/\\ \\ "," \\ \\_\\"," \\/_/"," "," "]," ":[" "," "," "," "," "," "," "," "," "],"!":[" __ ","/\\ \\ ","\\ \\ \\ "," \\ \\ \\ "," \\ \\_\\ "," \\/\\_\\"," \\/_/"," "," "],'"':[" __ __ ","/\\ \\\\ \\ ","\\ \\_\\\\_\\ "," \\/_//_/ "," "," "," "," "," "],"#":[" __ __ "," _\\ \\\\ \\__ ","/\\__ _ _\\ ","\\/_L\\ \\\\ \\L_ "," /\\_ _ _\\"," \\/_/\\_\\\\_\\/"," \\/_//_/ "," "," "],$:[" __ ","/\\ \\_ ","\\/'__`\\ ","/\\ \\_\\_\\ ","\\ \\____ \\ "," \\/\\ \\_\\ \\"," \\ `\\_ _/"," `\\_/\\_\\"," \\/_/"],"%":[" __ __ ","/\\_\\ / / ","\\/_/ / / "," / / "," / / __ "," /_/ /\\_\\"," /_/ \\/_/"," "," "],"&":[" ____ ","/| _ \\ ","|/\\ | "," \\// __`\\/\\ "," /| \\L> <_"," | \\_____/\\/"," \\/____/\\/ "," "," "],"'":[" __ ","/\\ \\ ","\\ \\/ "," \\/ "," "," "," "," "," "],"(":[" _ "," /' \\ ","/\\ ,/' ","\\ \\ \\ "," \\ \\ `\\ "," \\ `\\__\\"," `\\/_/ "," "," "],")":[" __ ","/\\ `\\ ","\\`\\ \\ "," `\\`\\ \\ "," `\\/' \\"," /\\__/"," \\/_/ "," "," "],"*":[" __ "," _\\ \\ _ ","/\\_` ' \\ ","\\/_> <_ "," /\\_, ,_\\"," \\/_/\\_\\/"," \\/_/ "," "," "],"+":[" __ "," /\\ \\ "," \\_\\ \\___ ","/\\___ __\\","\\/__/\\ \\_/"," \\ \\_\\ "," \\/_/ "," "," "],",":[" "," "," "," "," __ ","/\\ \\","\\ \\/"," \\/ "," "],"-":[" "," "," "," _______ ","/\\______\\","\\/______/"," "," "," "],".":[" "," "," "," "," __ ","/\\_\\","\\/_/"," "," "],"/":[" __"," / /"," / / "," / / "," / / "," /_/ ","/_/ "," "," "],":":[" "," "," __ ","/\\_\\ ","\\/_/_ "," /\\_\\"," \\/_/"," "," "],";":[" "," "," __ ","/\\_\\ ","\\/_/_ "," /\\ \\"," \\ \\/"," \\/ "," "],"<":[" ___ "," / / "," / / ","/< < ","\\ `\\ `\\ "," `\\ `\\_|"," `\\// "," "," "],"=":[" "," _______ ","/\\______\\ ","\\/______/_ "," /\\______\\"," \\/______/"," "," "," "],">":[" __ ","/\\ `\\ ","\\ `\\ `\\ "," `\\ > >"," / / "," /\\_/ "," \\// "," "," "],"?":[" _ "," /'_`\\ ","/\\_\\/\\`\\","\\/_//'/'"," /\\_\\ "," \\/\\_\\"," \\/_/"," "," "],"@":[" "," __ "," /'_`\\_ "," /'/'_` \\ ","/\\ \\ \\L\\ \\ ","\\ \\ `\\__,_\\"," \\ `\\_____\\"," `\\/_____/"," "],"[":[" ____ ","/\\ _\\ ","\\ \\ \\/ "," \\ \\ \\ "," \\ \\ \\_ "," \\ \\___\\"," \\/___/"," "," "],"\\":[" __ ","/\\ `\\ ","\\`\\ `\\ ","`\\`\\ `\\ "," `\\`\\ `\\ "," `\\`\\__\\"," `\\/__/"," "," "],"]":[" ____ ","/\\__ \\ ","\\/_/\\ \\ "," \\ \\ \\ "," \\_\\ \\ "," /\\___\\"," \\/___/"," "," "],"^":[" __ "," / `\\ ","/\\_/\\_\\ ","\\//\\// "," "," "," "," "," "],_:[" "," "," "," "," "," "," _______ "," /\\______\\"," \\/______/"],"{":[" _ "," /' \\"," \\ ,/'"," <' \\ ","< \\ `\\ "," \\`\\__\\"," \\/__/"," "," "],"|":[" __ ","/\\ \\ ","\\ \\ \\ "," \\ \\ \\ "," \\ \\ \\ "," \\ \\ \\ "," \\ \\ \\ "," \\ \\_\\"," \\/_/"],"}":[" __ ","/\\ `\\ ","\\`\\ \\ "," \\ \\ `>"," //' \\ ","/\\__/' ","\\/_/ "," "," "],"~":[" _ _ "," /' \\/' \\ ","/\\_/\\__// ","\\//\\/__/ "," "," "," "," "," "]}};var S8={name:"Colossal",height:11,chars:{A:[" d8888 "," d88888 "," d88P888 "," d88P 888 "," d88P 888 "," d88P 888 "," d8888888888 ","d88P 888 "," "," "," "],B:["888888b. ",'888 "88b ',"888 .88P ","8888888K. ",'888 "Y88b ',"888 888 ","888 d88P ",'8888888P" '," "," "," "],C:[" .d8888b. ","d88P Y88b ","888 888 ","888 ","888 ","888 888 ","Y88b d88P ",' "Y8888P" '," "," "," "],D:["8888888b. ",'888 "Y88b ',"888 888 ","888 888 ","888 888 ","888 888 ","888 .d88P ",'8888888P" '," "," "," "],E:["8888888888 ","888 ","888 ","8888888 ","888 ","888 ","888 ","8888888888 "," "," "," "],F:["8888888888 ","888 ","888 ","8888888 ","888 ","888 ","888 ","888 "," "," "," "],G:[" .d8888b. ","d88P Y88b ","888 888 ","888 ","888 88888 ","888 888 ","Y88b d88P ",' "Y8888P88 '," "," "," "],H:["888 888 ","888 888 ","888 888 ","8888888888 ","888 888 ","888 888 ","888 888 ","888 888 "," "," "," "],I:["8888888 "," 888 "," 888 "," 888 "," 888 "," 888 "," 888 ","8888888 "," "," "," "],J:[" 888888 ",' "88b '," 888 "," 888 "," 888 "," 888 "," 88P "," 888 "," .d88P ",' .d88P" ','888P" '],K:["888 d8P ","888 d8P ","888 d8P ","888d88K ","8888888b ","888 Y88b ","888 Y88b ","888 Y88b "," "," "," "],L:["888 ","888 ","888 ","888 ","888 ","888 ","888 ","88888888 "," "," "," "],M:["888b d888 ","8888b d8888 ","88888b.d88888 ","888Y88888P888 ","888 Y888P 888 ","888 Y8P 888 ",'888 " 888 ',"888 888 "," "," "," "],N:["888b 888 ","8888b 888 ","88888b 888 ","888Y88b 888 ","888 Y88b888 ","888 Y88888 ","888 Y8888 ","888 Y888 "," "," "," "],O:[" .d88888b. ",'d88P" "Y88b ',"888 888 ","888 888 ","888 888 ","888 888 ","Y88b. .d88P ",' "Y88888P" '," "," "," "],P:["8888888b. ","888 Y88b ","888 888 ","888 d88P ",'8888888P" ',"888 ","888 ","888 "," "," "," "],Q:[" .d88888b. ",'d88P" "Y88b ',"888 888 ","888 888 ","888 888 ","888 Y8b 888 ","Y88b.Y8b88P ",' "Y888888" '," Y8b "," "," "],R:["8888888b. ","888 Y88b ","888 888 ","888 d88P ",'8888888P" ',"888 T88b ","888 T88b ","888 T88b "," "," "," "],S:[" .d8888b. ","d88P Y88b ","Y88b. ",' "Y888b. ',' "Y88b. ',' "888 ',"Y88b d88P ",' "Y8888P" '," "," "," "],T:["88888888888 "," 888 "," 888 "," 888 "," 888 "," 888 "," 888 "," 888 "," "," "," "],U:["888 888 ","888 888 ","888 888 ","888 888 ","888 888 ","888 888 ","Y88b. .d88P ",' "Y88888P" '," "," "," "],V:["888 888 ","888 888 ","888 888 ","Y88b d88P "," Y88b d88P "," Y88o88P "," Y888P "," Y8P "," "," "," "],W:["888 888 ","888 o 888 ","888 d8b 888 ","888 d888b 888 ","888d88888b888 ","88888P Y88888 ","8888P Y8888 ","888P Y888 "," "," "," "],X:["Y88b d88P "," Y88b d88P "," Y88o88P "," Y888P "," d888b "," d88888b "," d88P Y88b ","d88P Y88b "," "," "," "],Y:["Y88b d88P "," Y88b d88P "," Y88o88P "," Y888P "," 888 "," 888 "," 888 "," 888 "," "," "," "],Z:["8888888888P "," d88P "," d88P "," d88P "," d88P "," d88P "," d88P ","d8888888888 "," "," "," "],0:[" .d8888b. ","d88P Y88b ","888 888 ","888 888 ","888 888 ","888 888 ","Y88b d88P ",' "Y8888P" '," "," "," "],1:[" d888 ","d8888 "," 888 "," 888 "," 888 "," 888 "," 888 ","8888888 "," "," "," "],2:[" .d8888b. ","d88P Y88b "," 888 "," .d88P ",' .od888P" ','d88P" ','888" ',"888888888 "," "," "," "],3:[" .d8888b. ","d88P Y88b "," .d88P ",' 8888" ',' "Y8b. ',"888 888 ","Y88b d88P ",' "Y8888P" '," "," "," "],4:[" d8888 "," d8P888 "," d8P 888 "," d8P 888 ","d88 888 ","8888888888 "," 888 "," 888 "," "," "," "],5:["888888888 ","888 ","888 ","8888888b. ",' "Y88b '," 888 ","Y88b d88P ",' "Y8888P" '," "," "," "],6:[" .d8888b. ","d88P Y88b ","888 ","888d888b. ",'888P "Y88b ',"888 888 ","Y88b d88P ",' "Y8888P" '," "," "," "],7:["8888888888 "," d88P "," d88P "," d88P "," 88888888 "," d88P "," d88P ","d88P "," "," "," "],8:[" .d8888b. ","d88P Y88b ","Y88b. d88P ",' "Y88888" ','.d8P""Y8b. ',"888 888 ","Y88b d88P ",' "Y8888P" '," "," "," "],9:[" .d8888b. ","d88P Y88b ","888 888 ","Y88b. d888 ",' "Y888P888 '," 888 ","Y88b d88P ",' "Y8888P" '," "," "," "]," ":[" "," "," "," "," "," "," "," "," "," "," "],"!":["888 ","888 ","888 ","888 ","888 ","Y8P ",' " ',"888 "," "," "," "],'"':["88 88 ","8P 8P ",'" " '," "," "," "," "," "," "," "," "],"#":[" 888 888 "," 888 888 ","888888888888 "," 888 888 "," 888 888 ","888888888888 "," 888 888 "," 888 888 "," "," "," "],$:[" 88 "," .d88888b. ",'d88P 88"88b ',"Y88b.88 ",' "Y88888b. ',' 88"88b ',"Y88b 88.88P ",' "Y88888P" '," 88 "," "," "],"%":["d88b d88P ","Y88P d88P "," d88P "," d88P "," d88P "," d88P "," d88P d88b ","d88P Y88P "," "," "," "],"&":[" .d8888b. ",'d88P "88b ',"Y88b. d88P ",' "Y8888P" ',".d88P88K.d88P ",'888" Y888P" ',"Y88b .d8888b ",' "Y8888P" Y88b'," "," "," "],"'":["d8b ","88P ","8P ",'" '," "," "," "," "," "," "," "],"(":[" .d88 ",' d88P" ',"d88P ","888 ","888 ","Y88b "," Y88b. ",' "Y88 '," "," "," "],")":["88b. ",'"Y88b '," Y88b "," 888 "," 888 "," d88P ",".d88P ",'88P" '," "," "," "],"*":[" "," o "," d8b "," d888b ",'"Y888888888P"',' "Y88888P" ',' d88P"Y88b ',' dP" "Yb '," "," "," "],"+":[" "," "," "," 888 ","8888888 "," 888 "," "," "," "," "," "],",":[" "," "," "," "," "," ","d8b ","88P ","8P ",'" '," "],"-":[" "," "," "," "," ","888888 "," "," "," "," "," "],".":[" "," "," "," "," "," ","d8b ","Y8P "," "," "," "],"/":[" d88P "," d88P "," d88P "," d88P "," d88P "," d88P "," d88P ","d88P "," "," "," "],":":[" "," "," ","d8b ","Y8P "," ","d8b ","Y8P "," "," "," "],";":[" "," "," ","d8b ","Y8P "," ","d8b ","88P ","8P ",'" '," "],"<":[" d88P "," d88P "," d88P ","d88P ","Y88b "," Y88b "," Y88b "," Y88b "," "," "," "],"=":[" "," "," ","888888 "," ","888888 "," "," "," "," "," "],">":["Y88b "," Y88b "," Y88b "," Y88b "," d88P "," d88P "," d88P ","d88P "," "," "," "],"?":[" .d8888b. ","d88P Y88b "," .d88P ",' .d88P" ',' 888" '," 888 "," "," 888 "," "," "," "],"@":[" .d8888888b. ",'d88P" "Y88b ',"888 d8b 888 ","888 888 888 ","888 888bd88P ",'888 Y8888P" ',"Y88b. .d8 ",' "Y88888888P" '," "," "," "],"[":["8888888 ","888 ","888 ","888 ","888 ","888 ","888 ","8888888 "," "," "," "],"\\":["Y88b "," Y88b "," Y88b "," Y88b "," Y88b "," Y88b "," Y88b "," Y88b "," "," "," "],"]":["8888888 "," 888 "," 888 "," 888 "," 888 "," 888 "," 888 ","8888888 "," "," "," "],"^":[" o "," d8b "," d888b ",' d8P"Y8b '," "," "," "," "," "," "," "],_:[" "," "," "," "," "," "," ","88888888 "," "," "," "],"{":[" .d888 ",' d88P" '," 888 ",".888 ","888( ",'"888 '," 888 "," Y88b. ",' "Y888 '," "," "],"|":[" 888 "," 888 "," 888 "," 888 "," "," 888 "," 888 "," 888 "," 888 "," "," "],"}":["888b. ",' "Y88b '," 888 "," 888. "," )888 ",' 888" '," 888 "," .d88P ",'888P" '," "," "],"~":[" "," "," d888b d88 ","d888888888P ","88P Y888P "," "," "," "," "," "," "]}};var I8={name:"Isometric1",height:11,chars:{A:[" ___ "," /\\ \\ "," /::\\ \\ "," /:/\\:\\ \\ "," /::\\~\\:\\ \\ "," /:/\\:\\ \\:\\__\\"," \\/__\\:\\/:/ /"," \\::/ / "," /:/ / "," /:/ / "," \\/__/ "],B:[" ___ "," /\\ \\ "," /::\\ \\ "," /:/\\:\\ \\ "," /::\\~\\:\\__\\ "," /:/\\:\\ \\:|__|"," \\:\\~\\:\\/:/ /"," \\:\\ \\::/ / "," \\:\\/:/ / "," \\::/__/ "," ~~ "],C:[" ___ "," /\\ \\ "," /::\\ \\ "," /:/\\:\\ \\ "," /:/ \\:\\ \\ "," /:/__/ \\:\\__\\"," \\:\\ \\ \\/__/"," \\:\\ \\ "," \\:\\ \\ "," \\:\\__\\ "," \\/__/ "],D:[" ___ "," /\\ \\ "," /::\\ \\ "," /:/\\:\\ \\ "," /:/ \\:\\__\\ "," /:/__/ \\:|__|"," \\:\\ \\ /:/ /"," \\:\\ /:/ / "," \\:\\/:/ / "," \\::/__/ "," ~~ "],E:[" ___ "," /\\ \\ "," /::\\ \\ "," /:/\\:\\ \\ "," /::\\~\\:\\ \\ "," /:/\\:\\ \\:\\__\\"," \\:\\~\\:\\ \\/__/"," \\:\\ \\:\\__\\ "," \\:\\ \\/__/ "," \\:\\__\\ "," \\/__/ "],F:[" ___ "," /\\ \\ "," /::\\ \\ "," /:/\\:\\ \\ "," /::\\~\\:\\ \\ "," /:/\\:\\ \\:\\__\\"," \\/__\\:\\ \\/__/"," \\:\\__\\ "," \\/__/ "," "," "],G:[" ___ "," /\\ \\ "," /::\\ \\ "," /:/\\:\\ \\ "," /:/ \\:\\ \\ "," /:/__/_\\:\\__\\"," \\:\\ /\\ \\/__/"," \\:\\ \\:\\__\\ "," \\:\\/:/ / "," \\::/ / "," \\/__/ "],H:[" ___ "," /\\__\\ "," /:/ / "," /:/__/ "," /::\\ \\ ___ "," /:/\\:\\ /\\__\\"," \\/__\\:\\/:/ /"," \\::/ / "," /:/ / "," /:/ / "," \\/__/ "],I:[" "," ___ "," /\\ \\ "," \\:\\ \\ "," /::\\__\\"," __/:/\\/__/"," /\\/:/ / "," \\::/__/ "," \\:\\__\\ "," \\/__/ "," "],J:[" ___ "," /\\ \\ "," \\:\\ \\ "," ___ /::\\__\\"," /\\ /:/\\/__/"," \\:\\/:/ / "," \\::/ / "," \\/__/ "," "," "," "],K:[" ___ "," /\\__\\ "," /:/ / "," /:/__/ "," /::\\__\\____ "," /:/\\:::::\\__\\"," \\/_|:|~~|~ "," |:| | "," |:| | "," |:| | "," \\|__| "],L:[" ___ "," /\\__\\"," /:/ /"," /:/ / "," /:/ / "," /:/__/ "," \\:\\ \\ "," \\:\\ \\ "," \\:\\ \\ "," \\:\\__\\"," \\/__/"],M:[" ___ "," /\\__\\ "," /::| | "," /:|:| | "," /:/|:|__|__ "," /:/ |::::\\__\\"," \\/__/~~/:/ /"," /:/ / "," /:/ / "," /:/ / "," \\/__/ "],N:[" ___ "," /\\__\\ "," /::| | "," /:|:| | "," /:/|:| |__ "," /:/ |:| /\\__\\"," \\/__|:|/:/ /"," |:/:/ / "," |::/ / "," /:/ / "," \\/__/ "],O:[" ___ "," /\\ \\ "," /::\\ \\ "," /:/\\:\\ \\ "," /:/ \\:\\ \\ "," /:/__/ \\:\\__\\"," \\:\\ \\ /:/ /"," \\:\\ /:/ / "," \\:\\/:/ / "," \\::/ / "," \\/__/ "],P:[" ___ "," /\\ \\ "," /::\\ \\ "," /:/\\:\\ \\ "," /::\\~\\:\\ \\ "," /:/\\:\\ \\:\\__\\"," \\/__\\:\\/:/ /"," \\::/ / "," \\/__/ "," "," "],Q:[" ___ "," /\\ \\ "," /::\\ \\ "," /:/\\:\\ \\ "," \\:\\~\\:\\ \\ "," \\:\\ \\:\\__\\"," \\:\\/:/ /"," \\::/ / "," /:/ / "," /:/ / "," \\/__/ "],R:[" ___ "," /\\ \\ "," /::\\ \\ "," /:/\\:\\ \\ "," /::\\~\\:\\ \\ "," /:/\\:\\ \\:\\__\\"," \\/_|::\\/:/ /"," |:|::/ / "," |:|\\/__/ "," |:| | "," \\|__| "],S:[" ___ "," /\\ \\ "," /::\\ \\ "," /:/\\ \\ \\ "," _\\:\\~\\ \\ \\ "," /\\ \\:\\ \\ \\__\\"," \\:\\ \\:\\ \\/__/"," \\:\\ \\:\\__\\ "," \\:\\/:/ / "," \\::/ / "," \\/__/ "],T:[" ___ "," /\\ \\ "," \\:\\ \\ "," \\:\\ \\ "," /::\\ \\ "," /:/\\:\\__\\"," /:/ \\/__/"," /:/ / "," \\/__/ "," "," "],U:[" ___ "," /\\__\\ "," /:/ / "," /:/ / "," /:/ / ___ "," /:/__/ /\\__\\"," \\:\\ \\ /:/ /"," \\:\\ /:/ / "," \\:\\/:/ / "," \\::/ / "," \\/__/ "],V:[" ___ "," /\\__\\ "," /:/ / "," /:/ / "," /:/__/ ___ "," |:| | /\\__\\"," |:| |/:/ /"," |:|__/:/ / "," \\::::/__/ "," ~~~~ "," "],W:[" ___ "," /\\__\\ "," /:/ _/_ "," /:/ /\\__\\ "," /:/ /:/ _/_ "," /:/_/:/ /\\__\\"," \\:\\/:/ /:/ /"," \\::/_/:/ / "," \\:\\/:/ / "," \\::/ / "," \\/__/ "],X:[" ___ "," |\\__\\ "," |:| | "," |:| | "," |:|__|__ "," ____/::::\\__\\"," \\::::/~~/~ "," ~~|:|~~| "," |:| | "," |:| | "," \\|__| "],Y:[" ___ "," |\\__\\ "," |:| | "," |:| | "," |:|__|__ "," /::::\\__\\"," /:/~~/~ "," /:/ / "," \\/__/ "," "," "],Z:[" ___ "," /\\ \\ "," \\:\\ \\ "," \\:\\ \\ "," \\:\\ \\ "," _______\\:\\__\\"," \\::::::::/__/"," \\:\\~~\\~~ "," \\:\\ \\ "," \\:\\__\\ "," \\/__/ "],0:[" "," "," "," "," "," "," "," "," "," "," "],1:[" "," "," "," "," "," "," "," "," "," "," "],2:[" "," "," "," "," "," "," "," "," "," "," "],3:[" "," "," "," "," "," "," "," "," "," "," "],4:[" "," "," "," "," "," "," "," "," "," "," "],5:[" "," "," "," "," "," "," "," "," "," "," "],6:[" "," "," "," "," "," "," "," "," "," "," "],7:[" "," "," "," "," "," "," "," "," "," "," "],8:[" "," "," "," "," "," "," "," "," "," "," "],9:[" "," "," "," "," "," "," "," "," "," "," "]," ":[" "," "," "," "," "," "," "," "," "," "," "],"!":[" "," "," "," "," "," "," "," "," "," "," "],"-":[" "," "," "," "," "," "," "," "," "," "," "],".":[" "," "," "," "," "," "," "," "," "," "," "],":":[" "," "," "," "," "," "," "," "," "," "," "],"[":[" ___ "," /\\ \\ "," /::\\ \\ "," /::::\\ \\ "," /::::::\\ \\ "," /:::LS:::\\__\\"," \\::1994::/ /"," \\::::::/ / "," \\::::/ / "," \\::/ / "," \\/__/ "],_:[" "," "," "," "," "," "," "," "," "," "," "]}};var A8={name:"DOS Rebel",height:10,chars:{A:[" \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591\u2591\u2591 "," "," "],B:[" \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 ","\u2591\u2591\u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2588\u2588\u2588"," \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588"," \u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2588\u2588\u2588"," \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588"," \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 ","\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 "," "," "],C:[" \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2588\u2588\u2588"," \u2588\u2588\u2588 \u2591\u2591\u2591 ","\u2591\u2588\u2588\u2588 ","\u2591\u2588\u2588\u2588 ","\u2591\u2591\u2588\u2588\u2588 \u2588\u2588\u2588"," \u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 "," "," "],D:[" \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 ","\u2591\u2591\u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588"," \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588"," \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588"," \u2591\u2588\u2588\u2588 \u2588\u2588\u2588 "," \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 ","\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 "," "," "],E:[" \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2588"," \u2591\u2588\u2588\u2588 \u2588 \u2591 "," \u2591\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588\u2591\u2591\u2588 "," \u2591\u2588\u2588\u2588 \u2591 \u2588"," \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 "," "," "],F:[" \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2591\u2588"," \u2591\u2588\u2588\u2588 \u2588 \u2591 "," \u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588\u2591\u2591\u2591\u2588 "," \u2591\u2588\u2588\u2588 \u2591 "," \u2588\u2588\u2588\u2588\u2588 ","\u2591\u2591\u2591\u2591\u2591 "," "," "],G:[" \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2588\u2588\u2588"," \u2588\u2588\u2588 \u2591\u2591\u2591 ","\u2591\u2588\u2588\u2588 ","\u2591\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588 "," \u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 "," "," "],H:[" \u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591\u2591\u2591 "," "," "],I:[" \u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2591\u2591\u2591 "," "," "],J:[" \u2588\u2588\u2588\u2588\u2588"," \u2591\u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 "," \u2588\u2588\u2588 \u2591\u2588\u2588\u2588 ","\u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 "," "," "],K:[" \u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588","\u2591\u2591\u2588\u2588\u2588 \u2588\u2588\u2588\u2591 "," \u2591\u2588\u2588\u2588 \u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588\u2591\u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588\u2588","\u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591\u2591 "," "," "],L:[" \u2588\u2588\u2588\u2588\u2588 ","\u2591\u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 \u2588"," \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 "," "," "],M:[" \u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588\u2591\u2588\u2588\u2588\u2588\u2588\u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588\u2591\u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 \u2591\u2591\u2591 \u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591\u2591\u2591 "," "," "],N:[" \u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588\u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588\u2591\u2591\u2588\u2588\u2588\u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591\u2591\u2591 "," "," "],O:[" \u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2588\u2588\u2588 "," \u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588","\u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588","\u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588","\u2591\u2591\u2588\u2588\u2588 \u2588\u2588\u2588 "," \u2591\u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2591 "," \u2591\u2591\u2591\u2591\u2591\u2591\u2591 "," "," "],P:[" \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 ","\u2591\u2591\u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2588\u2588\u2588"," \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588"," \u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2591 "," \u2591\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2588\u2588 ","\u2591\u2591\u2591\u2591\u2591 "," "," "],Q:[" \u2588\u2588\u2588\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2588\u2588\u2588 "," \u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588","\u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588","\u2591\u2588\u2588\u2588 \u2588\u2588\u2591\u2588\u2588\u2588","\u2591\u2591\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588\u2588 "," \u2591\u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2591\u2588\u2588"," \u2591\u2591\u2591\u2591\u2591\u2591 \u2591\u2591 "," "," "],R:[" \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 ","\u2591\u2591\u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591\u2591\u2591 "," "," "],S:[" \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2588\u2588\u2588","\u2591\u2588\u2588\u2588 \u2591\u2591\u2591 ","\u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2588\u2588\u2588"," \u2588\u2588\u2588 \u2591\u2588\u2588\u2588","\u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 "," "," "],T:[" \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2591\u2588\u2591\u2591\u2591\u2588\u2588\u2588\u2591\u2591\u2591\u2588","\u2591 \u2591\u2588\u2588\u2588 \u2591 "," \u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2588\u2588 "," \u2591\u2591\u2591\u2591\u2591 "," "," "],U:[" \u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 "," \u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 "," "," "],V:[" \u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 "," \u2591\u2591\u2588\u2588\u2588 \u2588\u2588\u2588 "," \u2591\u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2591 "," \u2591\u2591\u2588\u2588\u2588 "," \u2591\u2591\u2591 "," "," "],W:[" \u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 "," \u2591\u2591\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588 "," \u2591\u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2591\u2588\u2588\u2588\u2588\u2588\u2591 "," \u2591\u2591\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588 "," \u2591\u2591\u2591 \u2591\u2591\u2591 "," "," "],X:[" \u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588 "," \u2591\u2591\u2588\u2588\u2588 \u2588\u2588\u2588 "," \u2591\u2591\u2588\u2588\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2591\u2588\u2588\u2588 "," \u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591\u2591\u2591 "," "," "],Y:[" \u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588 "," \u2591\u2591\u2588\u2588\u2588 \u2588\u2588\u2588 "," \u2591\u2591\u2588\u2588\u2588\u2588\u2588 "," \u2591\u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2588\u2588 "," \u2591\u2591\u2591\u2591\u2591 "," "," "],Z:[" \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2591\u2588\u2591\u2591\u2591\u2591\u2591\u2591\u2588\u2588\u2588 ","\u2591 \u2588\u2588\u2588\u2591 "," \u2588\u2588\u2588 "," \u2588\u2588\u2588 "," \u2588\u2588\u2588\u2588 \u2588"," \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 "," "," "],0:[" \u2588\u2588\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2591\u2591\u2591\u2588\u2588\u2588 "," \u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588","\u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588","\u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588","\u2591\u2591\u2588\u2588\u2588 \u2588\u2588\u2588 "," \u2591\u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2591 "," \u2591\u2591\u2591\u2591\u2591\u2591 "," "," "],1:[" \u2588\u2588\u2588\u2588 ","\u2591\u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2591\u2591\u2591 "," "," "],2:[" \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2588\u2588\u2588","\u2591\u2591\u2591 \u2591\u2588\u2588\u2588"," \u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2591\u2591\u2591\u2591 "," \u2588\u2588\u2588 \u2588","\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 "," "," "],3:[" \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2588\u2588\u2588","\u2591\u2591\u2591 \u2591\u2588\u2588\u2588"," \u2588\u2588\u2588\u2588\u2588\u2588\u2591 "," \u2591\u2591\u2591\u2591\u2591\u2591\u2588\u2588\u2588"," \u2588\u2588\u2588 \u2591\u2588\u2588\u2588","\u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 "," "," "],4:[" \u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588 ","\u2591\u2591\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2588"," \u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588"," \u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2588\u2588\u2588\u2591\u2588"," \u2591\u2588\u2588\u2588\u2591 "," \u2588\u2588\u2588\u2588\u2588 "," \u2591\u2591\u2591\u2591\u2591 "," "," "],5:[" \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2591\u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2591\u2588","\u2591\u2588\u2588\u2588 \u2591 ","\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 ","\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2588\u2588\u2588"," \u2588\u2588\u2588 \u2591\u2588\u2588\u2588","\u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 "," "," "],6:[" \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2588\u2588\u2588","\u2591\u2588\u2588\u2588 \u2591\u2591\u2591 ","\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 ","\u2591\u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2588\u2588\u2588","\u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588","\u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 "," "," "],7:[" \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2591\u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2588\u2588\u2588","\u2591\u2591\u2591 \u2588\u2588\u2588 "," \u2588\u2588\u2588 "," \u2588\u2588\u2588 "," \u2588\u2588\u2588 "," \u2588\u2588\u2588 "," \u2591\u2591\u2591 "," "," "],8:[" \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2588\u2588\u2588 ","\u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 ","\u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2588\u2588\u2588 ","\u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 ","\u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 "," "," "],9:[" \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2588\u2588\u2588","\u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588","\u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588"," \u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2588\u2588\u2588"," \u2588\u2588\u2588 \u2591\u2588\u2588\u2588","\u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 "," "," "]," ":[" "," "," "," "," "," "," "," "," "," "],"!":[" \u2588\u2588\u2588","\u2591\u2588\u2588\u2588","\u2591\u2588\u2588\u2588","\u2591\u2588\u2588\u2588","\u2591\u2588\u2588\u2588","\u2591\u2591\u2591 "," \u2588\u2588\u2588","\u2591\u2591\u2591 "," "," "],'"':[" \u2588\u2588 \u2588\u2588","\u2591\u2588\u2588\u2591\u2588\u2588","\u2591\u2591 \u2591\u2591 "," "," "," "," "," "," "," "],"#":[" \u2588\u2588\u2588 \u2588\u2588\u2588 "," \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2591\u2588\u2588\u2588\u2591\u2591\u2588\u2588\u2588\u2591 "," \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2591\u2588\u2588\u2588\u2591\u2591\u2588\u2588\u2588\u2591 "," \u2591\u2591\u2591 \u2591\u2591\u2591 "," "," "," "," "],$:[" \u2588\u2588\u2588 "," \u2588\u2588\u2588\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2591\u2591\u2591 "," \u2591\u2591\u2588\u2588\u2588\u2588\u2588 "," \u2591\u2591\u2591\u2591\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2588\u2588\u2588 "," \u2591\u2591\u2591\u2588\u2588\u2588 "," \u2591\u2591\u2591 "," "," "],"%":[" \u2588\u2588\u2588 \u2588\u2588\u2588"," \u2591\u2591\u2591 \u2588\u2588\u2588\u2591 "," \u2588\u2588\u2588\u2591 "," \u2588\u2588\u2588\u2591 "," \u2588\u2588\u2588\u2591 "," \u2588\u2588\u2588\u2591 "," \u2588\u2588\u2588\u2591 \u2588\u2588\u2588 ","\u2591\u2591\u2591 \u2591\u2591\u2591 "," "," "],"&":[" \u2588\u2588\u2588\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2591\u2591\u2588\u2588\u2588 "," \u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2588\u2588\u2588 ","\u2591\u2588\u2588\u2588\u2591\u2591\u2588\u2588\u2588 ","\u2591\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588 ","\u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2591\u2588\u2588\u2588"," \u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591 "," "," "],"'":[" \u2588\u2588"," \u2588\u2588\u2588","\u2591\u2591\u2591 "," "," "," "," "," "," "," "],"(":[" \u2588\u2588\u2588"," \u2588\u2588\u2588 "," \u2588\u2588\u2588 ","\u2591\u2588\u2588\u2588 ","\u2591\u2588\u2588\u2588 ","\u2591\u2591\u2588\u2588\u2588 "," \u2591\u2591\u2588\u2588\u2588"," \u2591\u2591\u2591 "," "," "],")":[" \u2588\u2588\u2588 ","\u2591\u2591\u2588\u2588\u2588 "," \u2591\u2591\u2588\u2588\u2588"," \u2591\u2588\u2588\u2588"," \u2591\u2588\u2588\u2588"," \u2588\u2588\u2588 "," \u2588\u2588\u2591 ","\u2591\u2591\u2591 "," "," "],"*":[" \u2588\u2588\u2588 "," \u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2588\u2588\u2588","\u2591\u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2591 "," \u2591\u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2591 "," \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2591\u2591\u2588\u2588\u2588\u2591\u2591\u2588\u2588\u2588","\u2591\u2591\u2591 \u2591\u2588\u2588\u2588 \u2591\u2591\u2591 "," \u2591\u2591\u2591 "," "," "],"+":[" "," \u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2591\u2591\u2591\u2588\u2588\u2588\u2591\u2591\u2591 "," \u2591\u2588\u2588\u2588 "," \u2591\u2591\u2591 "," "," "," "],",":[" "," "," "," "," "," "," \u2588\u2588"," \u2588\u2588 ","\u2591\u2591 "," "],"-":[" "," "," "," \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 "," "," "," "," "," "],".":[" "," "," "," "," "," "," \u2588\u2588","\u2591\u2591 "," "," "],"/":[" \u2588\u2588\u2588"," \u2588\u2588\u2588\u2591 "," \u2588\u2588\u2588\u2591 "," \u2588\u2588\u2588\u2591 "," \u2588\u2588\u2588\u2591 "," \u2588\u2588\u2588\u2591 "," \u2588\u2588\u2588\u2591 ","\u2591\u2591\u2591 "," "," "],":":[" "," "," \u2588\u2588","\u2591\u2591 "," "," "," \u2588\u2588","\u2591\u2591 "," "," "],";":[" "," "," "," "," \u2588\u2588"," \u2591\u2591 "," \u2588\u2588"," \u2588\u2588 ","\u2591\u2591 "," "],"<":[" \u2588\u2588\u2588"," \u2588\u2588\u2588\u2591 "," \u2588\u2588\u2588\u2591 "," \u2588\u2588\u2588\u2591 ","\u2591\u2591\u2591\u2588\u2588\u2588 "," \u2591\u2591\u2591\u2588\u2588\u2588 "," \u2591\u2591\u2591\u2588\u2588\u2588"," \u2591\u2591\u2591 "," "," "],"=":[" "," "," \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 "," \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 "," "," "," "," "],">":[" \u2588\u2588\u2588 ","\u2591\u2591\u2591\u2588\u2588\u2588 "," \u2591\u2591\u2591\u2588\u2588\u2588 "," \u2591\u2591\u2591\u2588\u2588\u2588"," \u2588\u2588\u2588\u2591 "," \u2588\u2588\u2588\u2591 "," \u2588\u2588\u2588\u2591 ","\u2591\u2591\u2591 "," "," "],"?":[" \u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2591\u2591\u2591\u2588\u2588\u2588","\u2591\u2591\u2591 \u2591\u2588\u2588\u2588"," \u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588\u2591\u2591\u2591 "," \u2591\u2591\u2591 "," \u2588\u2588\u2588 "," \u2591\u2591\u2591 "," "," "],"@":[" \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2591 ","\u2591\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588 ","\u2591\u2588\u2588\u2588\u2591\u2588\u2588\u2588\u2591\u2588\u2588\u2588","\u2591\u2588\u2588\u2588\u2591\u2588\u2588\u2588\u2591\u2588\u2588\u2588","\u2591\u2588\u2588\u2588\u2591\u2591\u2591 \u2591\u2588\u2588\u2588","\u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 "," "," "],"[":[" \u2588\u2588\u2588\u2588\u2588","\u2591\u2588\u2588\u2588\u2591 ","\u2591\u2588\u2588\u2588 ","\u2591\u2588\u2588\u2588 ","\u2591\u2588\u2588\u2588 ","\u2591\u2588\u2588\u2588 ","\u2591\u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2591\u2591\u2591 "," "," "],"\\":[" \u2588\u2588\u2588 ","\u2591\u2591\u2588\u2588\u2588 "," \u2591\u2591\u2588\u2588\u2588 "," \u2591\u2591\u2588\u2588\u2588 "," \u2591\u2591\u2588\u2588\u2588 "," \u2591\u2591\u2588\u2588\u2588 "," \u2591\u2591\u2588\u2588\u2588"," \u2591\u2591\u2591 "," "," "],"]":[" \u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2591\u2588\u2588\u2588"," \u2591\u2588\u2588\u2588"," \u2591\u2588\u2588\u2588"," \u2591\u2588\u2588\u2588"," \u2591\u2588\u2588\u2588"," \u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2591\u2591\u2591 "," "," "],"^":[" \u2588\u2588 "," \u2588\u2588\u2588\u2588 "," \u2588\u2588\u2591\u2591\u2588\u2588","\u2591\u2591 \u2591\u2591 "," "," "," "," "," "," "],_:[" "," "," "," "," "," "," \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 "," "," "],"{":[" \u2588\u2588\u2588"," \u2588\u2588\u2591 "," \u2588\u2588 "," \u2588\u2588\u2588 ","\u2591\u2591\u2591\u2588\u2588 "," \u2591\u2591\u2588\u2588 "," \u2591\u2591\u2588\u2588\u2588"," \u2591\u2591\u2591 "," "," "],"|":[" \u2588\u2588\u2588","\u2591\u2588\u2588\u2588","\u2591\u2588\u2588\u2588","\u2591\u2588\u2588\u2588","\u2591\u2588\u2588\u2588","\u2591\u2588\u2588\u2588","\u2591\u2588\u2588\u2588","\u2591\u2591\u2591 "," "," "],"}":[" \u2588\u2588\u2588 ","\u2591\u2591\u2591\u2588\u2588 "," \u2591\u2591\u2588\u2588 "," \u2591\u2591\u2588\u2588\u2588"," \u2588\u2588\u2591 "," \u2588\u2588 "," \u2588\u2588\u2588 ","\u2591\u2591\u2591 "," "," "],"~":[" "," \u2588\u2588\u2588 \u2588\u2588\u2588"," \u2588\u2588\u2588\u2591\u2588\u2588\u2588\u2591 ","\u2591\u2591\u2591 \u2591\u2591\u2591 "," "," "," "," "," "," "]}};var D8={name:"Ghost",height:9,chars:{A:[" ('-. "," ( OO ).-. "," / . --. / "," | \\-. \\ ",".-'-' | | "," \\| |_.' | "," | .-. | "," | | | | "," `--' `--' "],B:[".-. .-') ","\\ ( OO ) "," ;-----.\\ "," | .-. | "," | '-' /_) "," | .-. `. "," | | \\ | "," | '--' / "," `------' "],C:[" "," "," .-----. "," ' .--./ "," | |('-. "," /_) |OO ) "," || |`-'| ","(_' '--'\\ "," `-----' "],D:[" _ .-') _ ","( ( OO) ) "," \\ .'_ "," ,`'--..._) "," | | \\ ' "," | | ' | "," | | / : "," | '--' / "," `-------' "],E:[" ('-. "," _( OO) ","(,------. "," | .---' "," | | ","(| '--. "," | .--' "," | `---. "," `------' "],F:[" "," "," ,------. ","('-| _.---' ","(OO|(_\\ ","/ | '--. ","\\_)| .--' "," \\| |_) "," `--' "],G:[" "," "," ,----. "," ' .-./-') "," | |_( O- ) "," | | .--, \\ ","(| | '. (_/ "," | '--' | "," `------' "],H:[" ('-. .-. ","( OO ) / ",",--. ,--. ","| | | | ","| .| | ","| | ","| .-. | ","| | | | ","`--' `--' "],I:[" "," "," ,-.-') "," | |OO) "," | | \\ "," | |(_/ "," ,| |_.' ","(_| | "," `--' "],J:[" "," "," ,--. "," .-')| ,| ","( OO |(_| ","| `-'| | ",",--. | | ","| '-' / "," `-----' "],K:[".-. .-') ","\\ ( OO ) ",",--. ,--. ","| .' / ","| /, ","| ' _) ","| . \\ ","| |\\ \\ ","`--' '--' "],L:[" "," "," ,--. "," | |.-') "," | | OO ) "," | |`-' | ","(| '---.' "," | | "," `------' "],M:[" _ .-') ","( '.( OO )_ "," ,--. ,--.)"," | `.' | "," | | "," | |'.'| | "," | | | | "," | | | | "," `--' `--' "],N:[" .-') _ "," ( OO ) ) ",",--./ ,--,' ","| \\ | |\\ ","| \\| | ) ","| . |/ ","| |\\ | ","| | \\ | ","`--' `--' "],O:[" "," "," .-'),-----. ","( OO' .-. '","/ | | | |","\\_) | |\\| |"," \\ | | | |"," `' '-' '"," `-----' "],P:[" _ (`-. "," ( (OO ) "," _.` \\ ","(__...--'' "," | / | | "," | |_.' | "," | .___.' "," | | "," `--' "],Q:[" .-') "," .( OO) "," (_)---\\_) "," ' .-. ' "," ,| | | | ","(_| | | | "," | | | | "," ' '-' '-."," `-----'--'"],R:[" _ .-') ","( \\( -O ) "," ,------. "," | /`. ' "," | / | | "," | |_.' | "," | . '.' "," | |\\ \\ "," `--' '--' "],S:[" .-') "," ( OO ). ","(_)---\\_) ","/ _ | ","\\ :` `. "," '..`''.) ",".-._) \\ ","\\ / "," `-----' "],T:[" .-') _ ","( OO) ) ","/ '._ ","|'--...__) ","'--. .--' "," | | "," | | "," | | "," `--' "],U:[" "," "," ,--. ,--. "," | | | | "," | | | .-') "," | |_|( OO )"," | | | `-' /","(' '-'(_.-' "," `-----' "],V:[" (`-. "," _(OO )_ ",",--(_/ ,. \\","\\ \\ /(__/"," \\ \\ / / "," \\ ' /, "," \\ /__)"," \\ / "," `-' "],W:[" (`\\ .-') /`"," `.( OO ),'",",--./ .--. ","| | | ","| | | |, ","| |.'.| |_)","| | ","| ,'. | ","'--' '--' "],X:[") (`-. "," ( OO ). ","(_/. \\_)-. "," \\ `.' / "," \\ /\\ "," \\ \\ | "," .' \\_) "," / .'. \\ ","'--' '--' "],Y:[" "," "," ,--. ,--."," \\ `.' / "," .-') / ","(OO \\ / "," | / /\\_ "," `-./ /.__) "," `--' "],Z:[" .-') _ "," ( OO) ) ",",(_)----. ","| | ","'--. / ","(_/ / "," / /___ ","| | ","`--------' "],0:[" "," "," .----. "," / .. \\ ",". / \\ . ","| | ' | ","' \\ / ' "," \\ `' / "," `---'' "],1:[" "," "," .---. ","/_ | "," | | "," | | "," | | "," | | "," `---' "],2:[" "," "," .-----. ","/ ,-. \\ ","'-' | | "," .' / "," .' /__ ","| | ","`-------' "],3:[" "," "," .-----. ","/ -. \\ ","'-' _' | "," |_ < ",".-. | | ","\\ `-' / "," `----'' "],4:[" "," "," .---. "," / . | "," / /| | "," / / | |_ ","/ '-' | ","`----| |-' "," `--' "],5:[" "," ",".------. ","| ___| ","| '--. ","`---. '. ",".- | | ","| `-' / "," `----'' "],6:[" "," "," ,--. "," / .' ",". / -. ","| .-. ' ","' \\ | | ","\\ `' / "," `----' "],7:[" "," ",".--------. ","| __ ' ","`--' . / "," / / "," . / "," / / "," `--' "],8:[" "," "," .-----. "," / .-. \\ ","| \\_.' / "," / .-. '. ","| | | | "," \\ '-' / "," `----'' "],9:[" "," "," .----. "," / ,. \\ ","| | \\ | "," ' `-' ' "," `- / ' "," ,' / "," `---' "]," ":[" "," "," "," "," "," "," "," "," "],"!":[",---. ","| | ","| | ","| | ","| | ","| .' ","`--' ",".--. ","'--' "],'"':[" ",",--.,--. ","\\ |\\ | "," `-' `-' "," "," "," "," "," "],"#":[" "," ,-. ,-. "," | | | | ",",--| |-| |--.","'--| |-| |--'","'--| |-| |--'"," | | | | "," `-' `-' "," "],$:[" ,-. "," .-| |-. ","| | |_/ ","\\ | |. "," '-| | '. ",".- | | | ","| `| | / "," `-| |'` "," `-' "],"%":[" ,-. "," ,--. / / "," '--'/ / "," / / "," / / "," / / "," / / ,--. ","/ / '--' ","`-' "],"&":[" "," .-----. ","/ .-. \\ ","| \\_.' / ","/ .-. ',-. ","| | | . /_ ","\\ '-' _.__)"," `----'' "," "],"'":[" ",",--. ","\\ | "," `-' "," "," "," "," "," "],"(":[" ,-. "," / | ","' .' ","| | ","| | ","| | ","' '. "," \\ | "," `-' "],")":[",-. ","| \\ ","'. ' "," | | "," | | "," | | ",".' ' ","| / ","`-' "],"*":[" "," .-. "," .-,| |,-. "," _\\ ' ' /_ ","(__ __) "," / . . \\ "," `-'| |`-' "," `-' "," "],"+":[" "," "," ,-. "," | | ",",---| |---. ","'---| |---' "," | | "," `-' "," "],",":[" "," "," "," "," "," "," ",".-. ","',/ "],"-":[" "," "," "," .-') "," _( OO) ","(,------. "," '------' "," "," "],".":[" "," "," "," "," "," "," ",".-. ","`-' "],"/":[" ,-. "," / / "," / / "," / / "," / / "," / / "," / / ","/ / ","`-' "],":":[" "," ",".-. ","`-' "," ",".-. ","`-' "," "," "],";":[" "," ",".-. ","'-' "," ",".-. ","',/ "," "," "],"<":[" "," ,-. "," / / "," / / ","/ / ","\\ \\ "," \\ \\ "," \\ \\ "," `-' "],"=":[" "," ",",-----. ","'-----' "," ",",-----. ","'-----' "," "," "],">":[" ",",-. "," \\ \\ "," \\ \\ "," \\ \\ "," / / "," / / "," / / ","`-' "],"?":[" ,------. ","' .--. ' ","| | | | ","'--' | | "," __. | "," | .' "," |___| "," .---. "," '---' "],"@":[" "," "," ____ "," .' __ \\ ","/ .' \\ | ","| | (_/ | ","\\ `.__.'\\ "," `.___ .' "," "],"[":[",----. ","| | ","| .-' ","| | ","| | ","| | ","| '-. ","| | ","`----' "],"\\":[",-. ","\\ \\ "," \\ \\ "," \\ \\ "," \\ \\ "," \\ \\ "," \\ \\ "," \\ \\ "," `-' "],"]":[",----. ","| | ","`-. | "," | | "," | | "," | | ",".-' | ","| | ","`----' "],"^":[" "," "," ,---. "," / \\ \\ ","`--' `--' "," "," "," "," "],_:[" "," "," "," "," "," (`-. "," (OO )_ ",",------.) ","`------' "],"{":[" ,--. "," | | "," | .' "," .' / ","< < "," `. \\ "," | '. "," | | "," `--' "],"|":[",-. ","| | ","| | ","| | ","| | ","| | ","| | ","| | ","`-' "],"}":[",--. ","| | ","'. | "," \\ ` "," > > "," / . ",".' | ","| | ","`--' "],"~":[" "," .--, "," .--' / "," / ---` ","`--' "," "," "," "," "]}};var L8={name:"Bloody",height:10,chars:{A:[" \u2584\u2584\u2584 ","\u2592\u2588\u2588\u2588\u2588\u2584 ","\u2592\u2588\u2588 \u2580\u2588\u2584 ","\u2591\u2588\u2588\u2584\u2584\u2584\u2584\u2588\u2588 "," \u2593\u2588 \u2593\u2588\u2588\u2592"," \u2592\u2592 \u2593\u2592\u2588\u2591"," \u2592 \u2592\u2592 \u2591"," \u2591 \u2592 "," \u2591 \u2591"," "],B:[" \u2584\u2584\u2584\u2584 ","\u2593\u2588\u2588\u2588\u2588\u2588\u2584 ","\u2592\u2588\u2588\u2592 \u2584\u2588\u2588","\u2592\u2588\u2588\u2591\u2588\u2580 ","\u2591\u2593\u2588 \u2580\u2588\u2593","\u2591\u2592\u2593\u2588\u2588\u2588\u2580\u2592","\u2592\u2591\u2592 \u2591 "," \u2591 \u2591 "," \u2591 "," \u2591 "],C:[" \u2584\u2588\u2588\u2588\u2588\u2584 ","\u2592\u2588\u2588\u2580 \u2580\u2588 ","\u2592\u2593\u2588 \u2584 ","\u2592\u2593\u2593\u2584 \u2584\u2588\u2588\u2592","\u2592 \u2593\u2588\u2588\u2588\u2580 \u2591","\u2591 \u2591\u2592 \u2592 \u2591"," \u2591 \u2592 ","\u2591 ","\u2591 \u2591 ","\u2591 "],D:["\u2593\u2588\u2588\u2588\u2588\u2588\u2584 ","\u2592\u2588\u2588\u2580 \u2588\u2588\u258C","\u2591\u2588\u2588 \u2588\u258C","\u2591\u2593\u2588\u2584 \u258C","\u2591\u2592\u2588\u2588\u2588\u2588\u2593 "," \u2592\u2592\u2593 \u2592 "," \u2591 \u2592 \u2592 "," \u2591 \u2591 \u2591 "," \u2591 "," \u2591 "],E:["\u2593\u2588\u2588\u2588\u2588\u2588 ","\u2593\u2588 \u2580 ","\u2592\u2588\u2588\u2588 ","\u2592\u2593\u2588 \u2584 ","\u2591\u2592\u2588\u2588\u2588\u2588\u2592","\u2591\u2591 \u2592\u2591 \u2591"," \u2591 \u2591 \u2591"," \u2591 "," \u2591 \u2591"," "],F:[" \u2588\u2588\u2588\u2588\u2588\u2592","\u2593\u2588\u2588 \u2592 ","\u2592\u2588\u2588\u2588\u2588 \u2591 ","\u2591\u2593\u2588\u2592 \u2591 ","\u2591\u2592\u2588\u2591 "," \u2592 \u2591 "," \u2591 "," \u2591 \u2591 "," "," "],G:[" \u2584\u2588\u2588\u2588\u2588 "," \u2588\u2588\u2592 \u2580\u2588\u2592","\u2592\u2588\u2588\u2591\u2584\u2584\u2584\u2591","\u2591\u2593\u2588 \u2588\u2588\u2593","\u2591\u2592\u2593\u2588\u2588\u2588\u2580\u2592"," \u2591\u2592 \u2592 "," \u2591 \u2591 ","\u2591 \u2591 \u2591 "," \u2591 "," "],H:[" \u2588\u2588\u2591 \u2588\u2588 ","\u2593\u2588\u2588\u2591 \u2588\u2588\u2592","\u2592\u2588\u2588\u2580\u2580\u2588\u2588\u2591","\u2591\u2593\u2588 \u2591\u2588\u2588 ","\u2591\u2593\u2588\u2592\u2591\u2588\u2588\u2593"," \u2592 \u2591\u2591\u2592\u2591\u2592"," \u2592 \u2591\u2592\u2591 \u2591"," \u2591 \u2591\u2591 \u2591"," \u2591 \u2591 \u2591"," "],I:[" \u2588\u2588\u2593","\u2593\u2588\u2588\u2592","\u2592\u2588\u2588\u2592","\u2591\u2588\u2588\u2591","\u2591\u2588\u2588\u2591","\u2591\u2593 "," \u2592 \u2591"," \u2592 \u2591"," \u2591 "," "],J:[" \u2584\u2584\u2584\u2588\u2588\u2580\u2580\u2580"," \u2592\u2588\u2588 "," \u2591\u2588\u2588 ","\u2593\u2588\u2588\u2584\u2588\u2588\u2593 "," \u2593\u2588\u2588\u2588\u2592 "," \u2592\u2593\u2592\u2592\u2591 "," \u2592 \u2591\u2592\u2591 "," \u2591 \u2591 \u2591 "," \u2591 \u2591 "," "],K:[" \u2588\u2588 \u2584\u2588\u2580"," \u2588\u2588\u2584\u2588\u2592 ","\u2593\u2588\u2588\u2588\u2584\u2591 ","\u2593\u2588\u2588 \u2588\u2584 ","\u2592\u2588\u2588\u2592 \u2588\u2584","\u2592 \u2592\u2592 \u2593\u2592","\u2591 \u2591\u2592 \u2592\u2591","\u2591 \u2591\u2591 \u2591 ","\u2591 \u2591 "," "],L:[" \u2588\u2588\u2593 ","\u2593\u2588\u2588\u2592 ","\u2592\u2588\u2588\u2591 ","\u2592\u2588\u2588\u2591 ","\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2592","\u2591 \u2592\u2591\u2593 \u2591","\u2591 \u2591 \u2592 \u2591"," \u2591 \u2591 "," \u2591 \u2591"," "],M:[" \u2588\u2588\u2588\u2584 \u2584\u2588\u2588\u2588\u2593","\u2593\u2588\u2588\u2592\u2580\u2588\u2580 \u2588\u2588\u2592","\u2593\u2588\u2588 \u2593\u2588\u2588\u2591","\u2592\u2588\u2588 \u2592\u2588\u2588 ","\u2592\u2588\u2588\u2592 \u2591\u2588\u2588\u2592","\u2591 \u2592\u2591 \u2591 \u2591","\u2591 \u2591 \u2591","\u2591 \u2591 "," \u2591 "," "],N:[" \u2588\u2588\u2588\u2584 \u2588 "," \u2588\u2588 \u2580\u2588 \u2588 ","\u2593\u2588\u2588 \u2580\u2588 \u2588\u2588\u2592","\u2593\u2588\u2588\u2592 \u2590\u258C\u2588\u2588\u2592","\u2592\u2588\u2588\u2591 \u2593\u2588\u2588\u2591","\u2591 \u2592\u2591 \u2592 \u2592 ","\u2591 \u2591\u2591 \u2591 \u2592\u2591"," \u2591 \u2591 \u2591 "," \u2591 "," "],O:[" \u2592\u2588\u2588\u2588\u2588\u2588 ","\u2592\u2588\u2588\u2592 \u2588\u2588\u2592","\u2592\u2588\u2588\u2591 \u2588\u2588\u2592","\u2592\u2588\u2588 \u2588\u2588\u2591","\u2591 \u2588\u2588\u2588\u2588\u2593\u2592\u2591","\u2591 \u2592\u2591\u2592\u2591\u2592\u2591 "," \u2591 \u2592 \u2592\u2591 ","\u2591 \u2591 \u2591 \u2592 "," \u2591 \u2591 "," "],P:[" \u2588\u2588\u2593\u2588\u2588\u2588 ","\u2593\u2588\u2588\u2591 \u2588\u2588\u2592","\u2593\u2588\u2588\u2591 \u2588\u2588\u2593\u2592","\u2592\u2588\u2588\u2584\u2588\u2593\u2592 \u2592","\u2592\u2588\u2588\u2592 \u2591 \u2591","\u2592\u2593\u2592\u2591 \u2591 \u2591","\u2591\u2592 \u2591 ","\u2591\u2591 "," "," "],Q:[" \u2588\u2588\u2588\u2588\u2588 ","\u2592\u2588\u2588\u2593 \u2588\u2588\u2592","\u2592\u2588\u2588\u2592 \u2588\u2588\u2591","\u2591\u2588\u2588 \u2588\u2580 \u2591","\u2591\u2592\u2588\u2588\u2588\u2592\u2588\u2584 ","\u2591\u2591 \u2592\u2592\u2591 \u2592 "," \u2591 \u2592\u2591 \u2591 "," \u2591 \u2591 "," \u2591 "," "],R:[" \u2588\u2588\u2580\u2588\u2588\u2588 ","\u2593\u2588\u2588 \u2592 \u2588\u2588\u2592","\u2593\u2588\u2588 \u2591\u2584\u2588 \u2592","\u2592\u2588\u2588\u2580\u2580\u2588\u2584 ","\u2591\u2588\u2588\u2593 \u2592\u2588\u2588\u2592","\u2591 \u2592\u2593 \u2591\u2592\u2593\u2591"," \u2591\u2592 \u2591 \u2592\u2591"," \u2591\u2591 \u2591 "," \u2591 "," "],S:[" \u2588\u2588\u2588\u2588\u2588\u2588 ","\u2592\u2588\u2588 \u2592 ","\u2591 \u2593\u2588\u2588\u2584 "," \u2592 \u2588\u2588\u2592","\u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2592\u2592","\u2592 \u2592\u2593\u2592 \u2592 \u2591","\u2591 \u2591\u2592 \u2591 \u2591","\u2591 \u2591 \u2591 "," \u2591 "," "],T:["\u2584\u2584\u2584\u2588\u2588\u2588\u2588\u2588\u2593","\u2593 \u2588\u2588\u2592 \u2593\u2592","\u2592 \u2593\u2588\u2588\u2591 \u2592\u2591","\u2591 \u2593\u2588\u2588\u2593 \u2591 "," \u2592\u2588\u2588\u2592 \u2591 "," \u2592 \u2591\u2591 "," \u2591 "," \u2591 "," "," "],U:[" \u2588 \u2588\u2588 "," \u2588\u2588 \u2593\u2588\u2588\u2592","\u2593\u2588\u2588 \u2592\u2588\u2588\u2591","\u2593\u2593\u2588 \u2591\u2588\u2588\u2591","\u2592\u2592\u2588\u2588\u2588\u2588\u2588\u2593 ","\u2591\u2592\u2593\u2592 \u2592 \u2592 ","\u2591\u2591\u2592\u2591 \u2591 \u2591 "," \u2591\u2591\u2591 \u2591 \u2591 "," \u2591 "," "],V:[" \u2588\u2588\u2592 \u2588\u2593","\u2593\u2588\u2588\u2591 \u2588\u2592"," \u2593\u2588\u2588 \u2588\u2592\u2591"," \u2592\u2588\u2588 \u2588\u2591\u2591"," \u2592\u2580\u2588\u2591 "," \u2591 \u2590\u2591 "," \u2591 \u2591\u2591 "," \u2591\u2591 "," \u2591 "," \u2591 "],W:[" \u2588 \u2588\u2591","\u2593\u2588\u2591 \u2588 \u2591\u2588\u2591","\u2592\u2588\u2591 \u2588 \u2591\u2588 ","\u2591\u2588\u2591 \u2588 \u2591\u2588 ","\u2591\u2591\u2588\u2588\u2592\u2588\u2588\u2593 ","\u2591 \u2593\u2591\u2592 \u2592 "," \u2592 \u2591 \u2591 "," \u2591 \u2591 "," \u2591 "," "],X:["\u2592\u2588\u2588 \u2588\u2588\u2592","\u2592\u2592 \u2588 \u2588 \u2592\u2591","\u2591\u2591 \u2588 \u2591"," \u2591 \u2588 \u2588 \u2592 ","\u2592\u2588\u2588\u2592 \u2592\u2588\u2588\u2592","\u2592\u2592 \u2591 \u2591\u2593 \u2591","\u2591\u2591 \u2591\u2592 \u2591"," \u2591 \u2591 "," \u2591 \u2591 "," "],Y:["\u2593\u2588\u2588 \u2588\u2588\u2593"," \u2592\u2588\u2588 \u2588\u2588\u2592"," \u2592\u2588\u2588 \u2588\u2588\u2591"," \u2591 \u2590\u2588\u2588\u2593\u2591"," \u2591 \u2588\u2588\u2592\u2593\u2591"," \u2588\u2588\u2592\u2592\u2592 "," \u2593\u2588\u2588 \u2591\u2592\u2591 "," \u2592 \u2592 \u2591\u2591 "," \u2591 \u2591 "," \u2591 \u2591 "],Z:["\u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2592","\u2592 \u2592 \u2592 \u2584\u2580\u2591","\u2591 \u2592 \u2584\u2580\u2592\u2591 "," \u2584\u2580\u2592 \u2591","\u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2592","\u2591\u2592\u2592 \u2593\u2591\u2592\u2591\u2592","\u2591\u2591\u2592 \u2592 \u2591 \u2592","\u2591 \u2591 \u2591 \u2591 \u2591"," \u2591 \u2591 ","\u2591 "],0:[" "," "," "," "," "," "," "," "," "," "],1:[" "," "," "," "," "," "," "," "," "," "],2:[" "," "," "," "," "," "," "," "," "," "],3:[" "," "," "," "," "," "," "," "," "," "],4:[" "," "," "," "," "," "," "," "," "," "],5:[" "," "," "," "," "," "," "," "," "," "],6:[" "," "," "," "," "," "," "," "," "," "],7:[" "," "," "," "," "," "," "," "," "," "],8:[" "," "," "," "," "," "," "," "," "," "],9:[" "," "," "," "," "," "," "," "," "," "]," ":[" "," "," "," "," "," "," "," "," "," "],"!":[" \u2590\u2588\u2588\u258C "," \u2590\u2588\u2588\u258C "," \u2590\u2588\u2588\u258C "," \u2593\u2588\u2588\u2592 "," \u2592\u2584\u2584 "," \u2591\u2580\u2580\u2592 "," \u2591 \u2591 "," \u2591 "," \u2591 "," "],"-":[" "," "," "," "," "," "," "," "," "," "],".":[" "," "," "," "," \u2588\u2588\u2593 "," \u2592\u2593\u2592 "," \u2591\u2592 "," \u2591 "," \u2591 "," \u2591 "],":":[" "," "," "," "," "," "," "," "," "," "],_:[" "," "," "," "," "," "," "," "," "," "]}};var T8={name:"Electronic",height:12,chars:{A:[" \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C","\u2590\u2591\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588\u2591\u258C","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C","\u2590\u2591\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C"," \u2580 \u2580 "," "],B:[" \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C ","\u2590\u2591\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588\u2591\u258C","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C ","\u2590\u2591\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588\u2591\u258C","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C "," \u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 "," "],C:[" \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C","\u2590\u2591\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 ","\u2590\u2591\u258C ","\u2590\u2591\u258C ","\u2590\u2591\u258C ","\u2590\u2591\u258C ","\u2590\u2591\u258C ","\u2590\u2591\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 "," "],D:[" \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C ","\u2590\u2591\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588\u2591\u258C","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C "," \u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 "," "],E:[" \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C","\u2590\u2591\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 ","\u2590\u2591\u258C ","\u2590\u2591\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C","\u2590\u2591\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 ","\u2590\u2591\u258C ","\u2590\u2591\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 "," "],F:[" \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C","\u2590\u2591\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 ","\u2590\u2591\u258C ","\u2590\u2591\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C","\u2590\u2591\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 ","\u2590\u2591\u258C ","\u2590\u2591\u258C ","\u2590\u2591\u258C "," \u2580 "," "],G:[" \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C","\u2590\u2591\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 ","\u2590\u2591\u258C ","\u2590\u2591\u258C \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u258C\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C","\u2590\u2591\u258C \u2580\u2580\u2580\u2580\u2580\u2580\u2588\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588\u2591\u258C","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 "," "],H:[" \u2584 \u2584 ","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588\u2591\u258C","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C","\u2590\u2591\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C"," \u2580 \u2580 "," "],I:[" \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2588\u2591\u2588\u2580\u2580\u2580\u2580 "," \u2590\u2591\u258C "," \u2590\u2591\u258C "," \u2590\u2591\u258C "," \u2590\u2591\u258C "," \u2590\u2591\u258C "," \u2584\u2584\u2584\u2584\u2588\u2591\u2588\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 "," "],J:[" \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2580\u2588\u2591\u2588\u2580\u2580\u2580 "," \u2590\u2591\u258C "," \u2590\u2591\u258C "," \u2590\u2591\u258C "," \u2590\u2591\u258C "," \u2590\u2591\u258C "," \u2584\u2584\u2584\u2584\u2584\u2588\u2591\u258C ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C "," \u2580\u2580\u2580\u2580\u2580\u2580\u2580 "," "],K:[" \u2584 \u2584 ","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C ","\u2590\u2591\u258C\u2590\u2591\u258C ","\u2590\u2591\u258C\u2591\u258C ","\u2590\u2591\u2591\u258C ","\u2590\u2591\u258C\u2591\u258C ","\u2590\u2591\u258C\u2590\u2591\u258C ","\u2590\u2591\u258C \u2590\u2591\u258C ","\u2590\u2591\u258C \u2590\u2591\u258C"," \u2580 \u2580 "," "],L:[" \u2584 ","\u2590\u2591\u258C ","\u2590\u2591\u258C ","\u2590\u2591\u258C ","\u2590\u2591\u258C ","\u2590\u2591\u258C ","\u2590\u2591\u258C ","\u2590\u2591\u258C ","\u2590\u2591\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 "," "],M:[" \u2584\u2584 \u2584\u2584 ","\u2590\u2591\u2591\u258C \u2590\u2591\u2591\u258C","\u2590\u2591\u258C\u2591\u258C \u2590\u2591\u2590\u2591\u258C","\u2590\u2591\u258C\u2590\u2591\u258C \u2590\u2591\u258C\u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2580 \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C"," \u2580 \u2580 "," "],N:[" \u2584\u2584 \u2584 ","\u2590\u2591\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C\u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u2591\u258C"," \u2580 \u2580\u2580 "," "],O:[" \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C","\u2590\u2591\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588\u2591\u258C","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 "," "],P:[" \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C","\u2590\u2591\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588\u2591\u258C","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C","\u2590\u2591\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 ","\u2590\u2591\u258C ","\u2590\u2591\u258C ","\u2590\u2591\u258C "," \u2580 "," "],Q:[" \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C","\u2590\u2591\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588\u2591\u258C","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2580\u2580\u2588\u2591\u2588\u2580\u2580 "," \u2590\u2591\u258C "," \u2580 "," "],R:[" \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C","\u2590\u2591\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588\u2591\u258C","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C","\u2590\u2591\u2588\u2580\u2580\u2580\u2580\u2588\u2591\u2588\u2580\u2580 ","\u2590\u2591\u258C \u2590\u2591\u258C ","\u2590\u2591\u258C \u2590\u2591\u258C ","\u2590\u2591\u258C \u2590\u2591\u258C"," \u2580 \u2580 "," "],S:[" \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C","\u2590\u2591\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 ","\u2590\u2591\u258C ","\u2590\u2591\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588\u2591\u258C"," \u2590\u2591\u258C"," \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588\u2591\u258C","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 "," "],T:[" \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2588\u2591\u2588\u2580\u2580\u2580\u2580 "," \u2590\u2591\u258C "," \u2590\u2591\u258C "," \u2590\u2591\u258C "," \u2590\u2591\u258C "," \u2590\u2591\u258C "," \u2590\u2591\u258C "," \u2590\u2591\u258C "," \u2580 "," "],U:[" \u2584 \u2584 ","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588\u2591\u258C","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 "," "],V:[" \u2584 \u2584 ","\u2590\u2591\u258C \u2590\u2591\u258C"," \u2590\u2591\u258C \u2590\u2591\u258C "," \u2590\u2591\u258C \u2590\u2591\u258C "," \u2590\u2591\u258C \u2590\u2591\u258C "," \u2590\u2591\u258C \u2590\u2591\u258C "," \u2590\u2591\u258C \u2590\u2591\u258C "," \u2590\u2591\u258C \u2590\u2591\u258C "," \u2590\u2591\u2590\u2591\u258C "," \u2590\u2591\u258C "," \u2580 "," "],W:[" \u2584 \u2584 ","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2584 \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C\u2590\u2591\u258C \u2590\u2591\u258C\u2590\u2591\u258C","\u2590\u2591\u258C\u2591\u258C \u2590\u2591\u2590\u2591\u258C","\u2590\u2591\u2591\u258C \u2590\u2591\u2591\u258C"," \u2580\u2580 \u2580\u2580 "," "],X:[" \u2584 \u2584 ","\u2590\u2591\u258C \u2590\u2591\u258C"," \u2590\u2591\u258C \u2590\u2591\u258C "," \u2590\u2591\u258C \u2590\u2591\u258C "," \u2590\u2591\u2590\u2591\u258C "," \u2590\u2591\u258C "," \u2590\u2591\u258C\u2591\u258C "," \u2590\u2591\u258C \u2590\u2591\u258C "," \u2590\u2591\u258C \u2590\u2591\u258C ","\u2590\u2591\u258C \u2590\u2591\u258C"," \u2580 \u2580 "," "],Y:[" \u2584 \u2584 ","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588\u2591\u258C","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2588\u2591\u2588\u2580\u2580\u2580\u2580 "," \u2590\u2591\u258C "," \u2590\u2591\u258C "," \u2590\u2591\u258C "," \u2580 "," "],Z:[" \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588\u2591\u258C"," \u2590\u2591\u258C"," \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588\u2591\u258C","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C","\u2590\u2591\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 ","\u2590\u2591\u258C ","\u2590\u2591\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 "," "],0:[" \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 "," \u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C ","\u2590\u2591\u2588\u2591\u2588\u2580\u2580\u2580\u2580\u2580\u2588\u2591\u258C","\u2590\u2591\u258C\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C\u2590\u2591\u258C","\u2590\u2591\u2588\u2584\u2584\u2584\u2584\u2584\u2588\u2591\u2588\u2591\u258C"," \u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C "," \u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 "," "],1:[" \u2584\u2584\u2584\u2584 "," \u2584\u2588\u2591\u2591\u2591\u2591\u258C "," \u2590\u2591\u2591\u258C\u2590\u2591\u2591\u258C "," \u2580\u2580 \u2590\u2591\u2591\u258C "," \u2590\u2591\u2591\u258C "," \u2590\u2591\u2591\u258C "," \u2590\u2591\u2591\u258C "," \u2590\u2591\u2591\u258C "," \u2584\u2584\u2584\u2584\u2588\u2591\u2591\u2588\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 "," "],2:[" \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588\u2591\u258C"," \u2590\u2591\u258C"," \u2590\u2591\u258C"," \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588\u2591\u258C","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C","\u2590\u2591\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 ","\u2590\u2591\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 "," "],3:[" \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588\u2591\u258C"," \u2590\u2591\u258C"," \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588\u2591\u258C","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588\u2591\u258C"," \u2590\u2591\u258C"," \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588\u2591\u258C","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 "," "],4:[" \u2584 \u2584 ","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588\u2591\u258C","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588\u2591\u258C"," \u2590\u2591\u258C"," \u2590\u2591\u258C"," \u2590\u2591\u258C"," \u2580 "," "],5:[" \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C","\u2590\u2591\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 ","\u2590\u2591\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588\u2591\u258C"," \u2590\u2591\u258C"," \u2590\u2591\u258C"," \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588\u2591\u258C","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 "," "],6:[" \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C","\u2590\u2591\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 ","\u2590\u2591\u258C ","\u2590\u2591\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C","\u2590\u2591\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588\u2591\u258C","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 "," "],7:[" \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588\u2591\u258C"," \u2590\u2591\u258C "," \u2590\u2591\u258C "," \u2590\u2591\u258C "," \u2590\u2591\u258C "," \u2590\u2591\u258C "," \u2590\u2591\u258C "," \u2590\u2591\u258C "," \u2580 "," "],8:[" \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C","\u2590\u2591\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588\u2591\u258C"," \u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C ","\u2590\u2591\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588\u2591\u258C","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 "," "],9:[" \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C","\u2590\u2591\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588\u2591\u258C","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588\u2591\u258C"," \u2590\u2591\u258C"," \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588\u2591\u258C","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 "," "]," ":[" "," "," "," "," "," "," "," "," "," "," "," "],"!":[" \u2584 ","\u2590\u2591\u258C","\u2590\u2591\u258C","\u2590\u2591\u258C","\u2590\u2591\u258C","\u2590\u2591\u258C","\u2590\u2591\u258C"," \u2580 "," \u2584 ","\u2590\u2591\u258C"," \u2580 "," "],"#":[" \u2584 \u2584 "," \u2590\u2591\u258C \u2590\u2591\u258C "," \u2584\u2588\u2591\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588\u2591\u2588\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2588\u2591\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588\u2591\u2588\u2580 "," \u2590\u2591\u258C \u2590\u2591\u258C "," \u2584\u2588\u2591\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588\u2591\u2588\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2588\u2591\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588\u2591\u2588\u2580 "," \u2590\u2591\u258C \u2590\u2591\u258C "," \u2580 \u2580 "," "],$:[" \u2584 "," \u2584\u2584\u2584\u2584\u2588\u2591\u2588\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C","\u2590\u2591\u2588\u2580\u2580\u2588\u2591\u2588\u2580\u2580\u2580\u2580 ","\u2590\u2591\u2588\u2584\u2584\u2588\u2591\u2588\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2588\u2591\u2588\u2580\u2580\u2588\u2591\u258C"," \u2584\u2584\u2584\u2584\u2588\u2591\u2588\u2584\u2584\u2588\u2591\u258C","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2588\u2591\u2588\u2580\u2580\u2580\u2580 "," \u2580 "," "],"%":[" \u2584"," \u2584 \u2590\u2591"," \u2590\u2591\u258C \u2590\u2591\u258C"," \u2580 \u2590\u2591\u258C "," \u2590\u2591\u258C "," \u2590\u2591\u258C "," \u2590\u2591\u258C "," \u2590\u2591\u258C \u2584 "," \u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2580 "," \u2580 "," "],"*":[" \u2584 \u2584 \u2584 ","\u2590\u2591\u258C\u2590\u2591\u258C\u2590\u2591\u258C"," \u2590\u2591\u2590\u2591\u258C\u2591\u258C "," \u2590\u2591 \u2591\u258C "," \u2584\u2584\u2588\u2591\u2588\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2588\u2591\u2588\u2580\u2580 "," \u2590\u2591 \u2591\u258C "," \u2590\u2591\u2590\u2591\u258C\u2591\u258C ","\u2590\u2591\u258C\u2590\u2591\u258C\u2590\u2591\u258C"," \u2580 \u2580 \u2580 "," "],"-":[" "," "," "," "," \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 "," "," "," "," "," "],".":[" "," "," "," "," "," "," "," "," \u2584 ","\u2590\u2591\u258C"," \u2580 "," "],":":[" "," "," "," "," "," "," "," "," "," "," "," "],"<":[" \u2584 "," \u2590\u2591\u258C"," \u2590\u2591\u258C "," \u2590\u2591\u258C ","\u2590\u2591\u258C ","\u2590\u2591\u258C ","\u2590\u2591\u258C "," \u2590\u2591\u258C "," \u2590\u2591\u258C "," \u2590\u2591\u258C"," \u2580"," "],">":[" \u2584 ","\u2590\u2591\u258C "," \u2590\u2591\u258C "," \u2590\u2591\u258C "," \u2590\u2591\u258C"," \u2590\u2591\u258C"," \u2590\u2591\u258C"," \u2590\u2591\u258C "," \u2590\u2591\u258C ","\u2590\u2591\u258C "," \u2580 "," "],"^":[" \u2584 "," \u2590\u2591\u258C "," \u2590\u2591\u2590\u2591\u258C "," \u2590\u2591\u258C \u2590\u2591\u258C ","\u2590\u2591\u258C \u2590\u2591\u258C "," \u2580 \u2580 "," "," "," "," "," "," "],_:[" "," "," "," "," "," "," "," "," "," "," "," "]}};var O8={name:"Sub-Zero",height:6,chars:{A:[" ______ ","/\\ __ \\ ","\\ \\ __ \\ "," \\ \\_\\ \\_\\ "," \\/_/\\/_/ "," "],B:[" ______ ","/\\ == \\ ","\\ \\ __< "," \\ \\_____\\ "," \\/_____/ "," "],C:[" ______ ","/\\ ___\\ ","\\ \\ \\____ "," \\ \\_____\\ "," \\/_____/ "," "],D:[" _____ ","/\\ __-. ","\\ \\ \\/\\ \\ "," \\ \\____- "," \\/____/ "," "],E:[" ______ ","/\\ ___\\ ","\\ \\ __\\ "," \\ \\_____\\ "," \\/_____/ "," "],F:[" ______ ","/\\ ___\\ ","\\ \\ __\\ "," \\ \\_\\ "," \\/_/ "," "],G:[" ______ ","/\\ ___\\ ","\\ \\ \\__ \\ "," \\ \\_____\\ "," \\/_____/ "," "],H:[" __ __ ","/\\ \\_\\ \\ ","\\ \\ __ \\ "," \\ \\_\\ \\_\\ "," \\/_/\\/_/ "," "],I:[" __ ","/\\ \\ ","\\ \\ \\ "," \\ \\_\\ "," \\/_/ "," "],J:[" __ "," /\\ \\ "," _\\_\\ \\ ","/\\_____\\ ","\\/_____/ "," "],K:[" __ __ ","/\\ \\/ / ",'\\ \\ _"-. '," \\ \\_\\ \\_\\ "," \\/_/\\/_/ "," "],L:[" __ ","/\\ \\ ","\\ \\ \\____ "," \\ \\_____\\ "," \\/_____/ "," "],M:[" __ __ ",'/\\ "-./ \\ ',"\\ \\ \\-./\\ \\ "," \\ \\_\\ \\ \\_\\ "," \\/_/ \\/_/ "," "],N:[" __ __ ",'/\\ "-.\\ \\ ',"\\ \\ \\-. \\ ",' \\ \\_\\\\"\\_\\ '," \\/_/ \\/_/ "," "],O:[" ______ ","/\\ __ \\ ","\\ \\ \\/\\ \\ "," \\ \\_____\\ "," \\/_____/ "," "],P:[" ______ ","/\\ == \\ ","\\ \\ _-/ "," \\ \\_\\ "," \\/_/ "," "],Q:[" ______ ","/\\ __ \\ ","\\ \\ \\/\\_\\ "," \\ \\___\\_\\ "," \\/___/_/ "," "],R:[" ______ ","/\\ == \\ ","\\ \\ __< "," \\ \\_\\ \\_\\ "," \\/_/ /_/ "," "],S:[" ______ ","/\\ ___\\ ","\\ \\___ \\ "," \\/\\_____\\ "," \\/_____/ "," "],T:[" ______ ","/\\__ _\\ ","\\/_/\\ \\/ "," \\ \\_\\ "," \\/_/ "," "],U:[" __ __ ","/\\ \\/\\ \\ ","\\ \\ \\_\\ \\ "," \\ \\_____\\ "," \\/_____/ "," "],V:[" __ __ ","/\\ \\ / / ","\\ \\ \\'/ "," \\ \\__| "," \\/_/ "," "],W:[" __ __ ","/\\ \\ _ \\ \\ ",'\\ \\ \\/ ".\\ \\ ',' \\ \\__/".~\\_\\ '," \\/_/ \\/_/ "," "],X:[" __ __ ","/\\_\\_\\_\\ ","\\/_/\\_\\/_ "," /\\_\\/\\_\\ "," \\/_/\\/_/ "," "],Y:[" __ __ ","/\\ \\_\\ \\ ","\\ \\____ \\ "," \\/\\_____\\ "," \\/_____/ "," "],Z:[" ______ ","/\\___ \\ ","\\/_/ /__ "," /\\_____\\ "," \\/_____/ "," "],0:[" "," "," "," "," "," "],1:[" "," "," "," "," "," "],2:[" "," "," "," "," "," "],3:[" "," "," "," "," "," "],4:[" "," "," "," "," "," "],5:[" "," "," "," "," "," "],6:[" "," "," "," "," "," "],7:[" "," "," "," "," "," "],8:[" "," "," "," "," "," "],9:[" "," "," "," "," "," "]," ":[" "," "," "," "," "," "],"!":[" "," "," "," "," "," "],"-":[" "," "," "," "," "," "],".":[" "," "," "," "," "," "],":":[" "," "," "," "," "," "],_:[" "," "," "," "," "," "]}};function y2(u){let e=u.match(/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i);return e?{r:parseInt(e[1],16),g:parseInt(e[2],16),b:parseInt(e[3],16)}:null}function D5(u,e,t){return"#"+[u,e,t].map(n=>n.toString(16).padStart(2,"0")).join("")}function R8(){let u=process.env;return u.NO_COLOR!==void 0?"none":u.TERM_PROGRAM==="Apple_Terminal"?"256":u.COLORTERM==="truecolor"||u.COLORTERM==="24bit"?"truecolor":u.TERM_PROGRAM==="iTerm.app"||u.TERM_PROGRAM==="WezTerm"||u.TERM_PROGRAM==="vscode"||u.TERM_PROGRAM==="Hyper"||u.TERM_PROGRAM==="WarpTerminal"||u.WT_SESSION!==void 0?u.COLORTERM?"truecolor":"256":u.TERM?.includes("256color")?"256":u.TERM?"16":"none"}var du=R8();function U2(u){du=u}function k8(u,e,t){if(u===e&&e===t)return u<8?16:u>248?231:Math.round((u-8)/247*24)+232;let n=Math.round(u/255*5),r=Math.round(e/255*5),o=Math.round(t/255*5);return 16+36*n+6*r+o}var L5=[{r:0,g:0,b:0,code:30},{r:170,g:0,b:0,code:31},{r:0,g:170,b:0,code:32},{r:170,g:170,b:0,code:33},{r:0,g:0,b:170,code:34},{r:170,g:0,b:170,code:35},{r:0,g:170,b:170,code:36},{r:170,g:170,b:170,code:37},{r:85,g:85,b:85,code:90},{r:255,g:85,b:85,code:91},{r:85,g:255,b:85,code:92},{r:255,g:255,b:85,code:93},{r:85,g:85,b:255,code:94},{r:255,g:85,b:255,code:95},{r:85,g:255,b:255,code:96},{r:255,g:255,b:255,code:97}];function j8(u,e,t){let n=30,r=1/0;for(let o of L5){let s=u-o.r,a=e-o.g,i=t-o.b,c=s*s+a*a+i*i;c<r&&(r=c,n=o.code)}return n}function h(u){if(du==="none")return"";let e=y2(u);return e?du==="16"?`\x1B[${j8(e.r,e.g,e.b)}m`:du==="256"?`\x1B[38;5;${k8(e.r,e.g,e.b)}m`:`\x1B[38;2;${e.r};${e.g};${e.b}m`:""}function z2(u){if(du==="none")return"";let e=y2(u);return e?du==="16"?`\x1B[${j8(e.r,e.g,e.b)+10}m`:du==="256"?`\x1B[48;5;${k8(e.r,e.g,e.b)}m`:`\x1B[48;2;${e.r};${e.g};${e.b}m`:""}function T5(u,e,t){let n=y2(u),r=y2(e);if(!n||!r)return u;let o=Math.round(n.r+(r.r-n.r)*t),s=Math.round(n.g+(r.g-n.g)*t),a=Math.round(n.b+(r.b-n.b)*t);return D5(o,s,a)}function V2(u,e){if(u.length===0)return[];if(u.length===1)return Array(e).fill(u[0]);let t=[];for(let n=0;n<e;n++){let r=e<=1?0:n/(e-1)*(u.length-1),o=Math.min(Math.floor(r),u.length-2),s=r-o;t.push(T5(u[o],u[Math.min(o+1,u.length-1)],s))}return t}var d=du==="none"?"":"\x1B[0m",k=du==="none"?"":"\x1B[1m",q=du==="none"?"":"\x1B[2m",Ku=du==="none"?"":"\x1B[3m",s2=du==="none"?"":"\x1B[4m",G2=du==="none"?"":"\x1B[7m",O5=class{renderers=new Map;focusableTypes=new Set;register(u,e,t=!1){this.renderers.set(u,e),t&&this.focusableTypes.add(u)}getRenderer(u){return this.renderers.get(u)}isFocusable(u){return this.focusableTypes.has(u)}has(u){return this.renderers.has(u)}},U=new O5;function ku(u){return u<32||u===127||u>=768&&u<=879||u===8203||u===8204||u===8205||u===173||u===65279||u>=6832&&u<=6911||u>=7616&&u<=7679||u>=8400&&u<=8447||u>=65056&&u<=65071||u>=65024&&u<=65039||u>=917760&&u<=917999?0:u>=19968&&u<=40959||u>=13312&&u<=19903||u>=131072&&u<=173791||u>=173824&&u<=177983||u>=177984&&u<=178207||u>=63744&&u<=64255||u>=12288&&u<=12351||u>=12352&&u<=12447||u>=12448&&u<=12543||u>=44032&&u<=55215||u>=4352&&u<=4447||u>=65281&&u<=65376||u>=65504&&u<=65510||u>=127744&&u<=129535||u>=129536&&u<=129647||u>=129648&&u<=129791?2:(u>=9984&&u<=10175||u>=9728&&u<=9983,1)}function L(u){let e=i2(u),t=0;for(let n of e)t+=ku(n.codePointAt(0)??0);return t}function N8(u,e){return h(e)+u+d}function _u(u,e,t="left"){let n=L(u),r=Math.max(0,e-n);switch(t){case"center":{let o=Math.floor(r/2),s=r-o;return" ".repeat(o)+u+" ".repeat(s)}case"right":return" ".repeat(r)+u;default:return u+" ".repeat(r)}}function i2(u){return u.replace(/\x1b\[[0-9;]*m/g,"")}function Q(u,e){if(!u)return"";if(L(u)<=e)return u;let t=0,n="",r=!1;for(let o of u){if(o==="\x1B"){r=!0,n+=o;continue}if(r){n+=o,o==="m"&&(r=!1);continue}let s=ku(o.codePointAt(0)??0);if(t+s>=e){n+="\u2026";break}n+=o,t+=s}return n+d}function pu(u,e){if(e<=0)return[];let t=u.split(`
72
- `),n=[];for(let r of t){if(r.length===0){n.push("");continue}let o=r.split(" "),s="",a=0;for(let i of o){let c=L(i);if(c>e){s&&(n.push(s),s="",a=0);let l="",f=0;for(let _ of i){let p=ku(_.codePointAt(0)??0);f+p>e&&l&&(n.push(l),l="",f=0),l+=_,f+=p}s=l,a=f;continue}a===0?(s=i,a=c):a+1+c<=e?(s+=" "+i,a+=1+c):(n.push(s),s=i,a=c)}s&&n.push(s)}return n.length>0?n:[""]}var $5={name:"ANSI Shadow",height:6,chars:{A:[" \u2588\u2588\u2588\u2588\u2588\u2557 ","\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2551","\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2551","\u2588\u2588\u2551 \u2588\u2588\u2551","\u255A\u2550\u255D \u255A\u2550\u255D"],B:["\u2588\u2588\u2588\u2588\u2588\u2588\u2557 ","\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557","\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D","\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557","\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D","\u255A\u2550\u2550\u2550\u2550\u2550\u255D "],C:[" \u2588\u2588\u2588\u2588\u2588\u2588\u2557","\u2588\u2588\u2554\u2550\u2550\u2550\u2550\u255D","\u2588\u2588\u2551 ","\u2588\u2588\u2551 ","\u255A\u2588\u2588\u2588\u2588\u2588\u2588\u2557"," \u255A\u2550\u2550\u2550\u2550\u2550\u255D"],D:["\u2588\u2588\u2588\u2588\u2588\u2588\u2557 ","\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557","\u2588\u2588\u2551 \u2588\u2588\u2551","\u2588\u2588\u2551 \u2588\u2588\u2551","\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D","\u255A\u2550\u2550\u2550\u2550\u2550\u255D "],E:["\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557","\u2588\u2588\u2554\u2550\u2550\u2550\u2550\u255D","\u2588\u2588\u2588\u2588\u2588\u2557 ","\u2588\u2588\u2554\u2550\u2550\u255D ","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557","\u255A\u2550\u2550\u2550\u2550\u2550\u2550\u255D"],F:["\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557","\u2588\u2588\u2554\u2550\u2550\u2550\u2550\u255D","\u2588\u2588\u2588\u2588\u2588\u2557 ","\u2588\u2588\u2554\u2550\u2550\u255D ","\u2588\u2588\u2551 ","\u255A\u2550\u255D "],G:[" \u2588\u2588\u2588\u2588\u2588\u2588\u2557 ","\u2588\u2588\u2554\u2550\u2550\u2550\u2550\u255D ","\u2588\u2588\u2551 \u2588\u2588\u2588\u2557","\u2588\u2588\u2551 \u2588\u2588\u2551","\u255A\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D"," \u255A\u2550\u2550\u2550\u2550\u2550\u255D "],H:["\u2588\u2588\u2557 \u2588\u2588\u2557","\u2588\u2588\u2551 \u2588\u2588\u2551","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2551","\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2551","\u2588\u2588\u2551 \u2588\u2588\u2551","\u255A\u2550\u255D \u255A\u2550\u255D"],I:["\u2588\u2588\u2557","\u2588\u2588\u2551","\u2588\u2588\u2551","\u2588\u2588\u2551","\u2588\u2588\u2551","\u255A\u2550\u255D"],J:[" \u2588\u2588\u2557"," \u2588\u2588\u2551"," \u2588\u2588\u2551","\u2588\u2588 \u2588\u2588\u2551","\u255A\u2588\u2588\u2588\u2588\u2588\u2554\u255D"," \u255A\u2550\u2550\u2550\u2550\u255D "],K:["\u2588\u2588\u2557 \u2588\u2588\u2557","\u2588\u2588\u2551 \u2588\u2588\u2554\u255D","\u2588\u2588\u2588\u2588\u2588\u2554\u255D ","\u2588\u2588\u2554\u2550\u2588\u2588\u2557 ","\u2588\u2588\u2551 \u2588\u2588\u2557","\u255A\u2550\u255D \u255A\u2550\u255D"],L:["\u2588\u2588\u2557 ","\u2588\u2588\u2551 ","\u2588\u2588\u2551 ","\u2588\u2588\u2551 ","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557","\u255A\u2550\u2550\u2550\u2550\u2550\u2550\u255D"],M:["\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2557","\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2551","\u2588\u2588\u2554\u2588\u2588\u2588\u2588\u2554\u2588\u2588\u2551","\u2588\u2588\u2551\u255A\u2588\u2588\u2554\u255D\u2588\u2588\u2551","\u2588\u2588\u2551 \u255A\u2550\u255D \u2588\u2588\u2551","\u255A\u2550\u255D \u255A\u2550\u255D"],N:["\u2588\u2588\u2588\u2557 \u2588\u2588\u2557","\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2551","\u2588\u2588\u2554\u2588\u2588\u2557 \u2588\u2588\u2551","\u2588\u2588\u2551\u255A\u2588\u2588\u2557\u2588\u2588\u2551","\u2588\u2588\u2551 \u255A\u2588\u2588\u2588\u2588\u2551","\u255A\u2550\u255D \u255A\u2550\u2550\u2550\u255D"],O:[" \u2588\u2588\u2588\u2588\u2588\u2588\u2557 ","\u2588\u2588\u2554\u2550\u2550\u2550\u2588\u2588\u2557","\u2588\u2588\u2551 \u2588\u2588\u2551","\u2588\u2588\u2551 \u2588\u2588\u2551","\u255A\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D"," \u255A\u2550\u2550\u2550\u2550\u2550\u255D "],P:["\u2588\u2588\u2588\u2588\u2588\u2588\u2557 ","\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557","\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D","\u2588\u2588\u2554\u2550\u2550\u2550\u255D ","\u2588\u2588\u2551 ","\u255A\u2550\u255D "],Q:[" \u2588\u2588\u2588\u2588\u2588\u2588\u2557 ","\u2588\u2588\u2554\u2550\u2550\u2550\u2588\u2588\u2557","\u2588\u2588\u2551 \u2588\u2588\u2551","\u2588\u2588\u2551\u2584\u2584 \u2588\u2588\u2551","\u255A\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D"," \u255A\u2550\u2550\u2580\u2580\u2550\u255D "],R:["\u2588\u2588\u2588\u2588\u2588\u2588\u2557 ","\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557","\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D","\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557","\u2588\u2588\u2551 \u2588\u2588\u2551","\u255A\u2550\u255D \u255A\u2550\u255D"],S:["\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557","\u2588\u2588\u2554\u2550\u2550\u2550\u2550\u255D","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557","\u255A\u2550\u2550\u2550\u2550\u2588\u2588\u2551","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2551","\u255A\u2550\u2550\u2550\u2550\u2550\u2550\u255D"],T:["\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557","\u255A\u2550\u2550\u2588\u2588\u2554\u2550\u2550\u255D"," \u2588\u2588\u2551 "," \u2588\u2588\u2551 "," \u2588\u2588\u2551 "," \u255A\u2550\u255D "],U:["\u2588\u2588\u2557 \u2588\u2588\u2557","\u2588\u2588\u2551 \u2588\u2588\u2551","\u2588\u2588\u2551 \u2588\u2588\u2551","\u2588\u2588\u2551 \u2588\u2588\u2551","\u255A\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D"," \u255A\u2550\u2550\u2550\u2550\u2550\u255D "],V:["\u2588\u2588\u2557 \u2588\u2588\u2557","\u2588\u2588\u2551 \u2588\u2588\u2551","\u2588\u2588\u2551 \u2588\u2588\u2551","\u255A\u2588\u2588\u2557 \u2588\u2588\u2554\u255D"," \u255A\u2588\u2588\u2588\u2588\u2554\u255D "," \u255A\u2550\u2550\u2550\u255D "],W:["\u2588\u2588\u2557 \u2588\u2588\u2557","\u2588\u2588\u2551 \u2588\u2588\u2551","\u2588\u2588\u2551 \u2588\u2557 \u2588\u2588\u2551","\u2588\u2588\u2551\u2588\u2588\u2588\u2557\u2588\u2588\u2551","\u255A\u2588\u2588\u2588\u2554\u2588\u2588\u2588\u2554\u255D"," \u255A\u2550\u2550\u255D\u255A\u2550\u2550\u255D "],X:["\u2588\u2588\u2557 \u2588\u2588\u2557","\u255A\u2588\u2588\u2557\u2588\u2588\u2554\u255D"," \u255A\u2588\u2588\u2588\u2554\u255D "," \u2588\u2588\u2554\u2588\u2588\u2557 ","\u2588\u2588\u2554\u255D \u2588\u2588\u2557","\u255A\u2550\u255D \u255A\u2550\u255D"],Y:["\u2588\u2588\u2557 \u2588\u2588\u2557","\u255A\u2588\u2588\u2557 \u2588\u2588\u2554\u255D"," \u255A\u2588\u2588\u2588\u2588\u2554\u255D "," \u255A\u2588\u2588\u2554\u255D "," \u2588\u2588\u2551 "," \u255A\u2550\u255D "],Z:["\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557","\u255A\u2550\u2550\u2588\u2588\u2588\u2554\u255D"," \u2588\u2588\u2588\u2554\u255D "," \u2588\u2588\u2588\u2554\u255D ","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557","\u255A\u2550\u2550\u2550\u2550\u2550\u2550\u255D"],0:[" \u2588\u2588\u2588\u2588\u2588\u2588\u2557 ","\u2588\u2588\u2554\u2550\u2550\u2550\u2588\u2588\u2557","\u2588\u2588\u2551 \u2588\u2588\u2551","\u2588\u2588\u2551 \u2588\u2588\u2551","\u255A\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D"," \u255A\u2550\u2550\u2550\u2550\u2550\u255D "],1:[" \u2588\u2588\u2557","\u2588\u2588\u2588\u2551","\u255A\u2588\u2588\u2551"," \u2588\u2588\u2551"," \u2588\u2588\u2551"," \u255A\u2550\u255D"],2:["\u2588\u2588\u2588\u2588\u2588\u2588\u2557 ","\u255A\u2550\u2550\u2550\u2550\u2588\u2588\u2557"," \u2588\u2588\u2588\u2588\u2588\u2554\u255D","\u2588\u2588\u2554\u2550\u2550\u2550\u255D ","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557","\u255A\u2550\u2550\u2550\u2550\u2550\u2550\u255D"],3:["\u2588\u2588\u2588\u2588\u2588\u2588\u2557 ","\u255A\u2550\u2550\u2550\u2550\u2588\u2588\u2557"," \u2588\u2588\u2588\u2588\u2588\u2554\u255D"," \u255A\u2550\u2550\u2550\u2588\u2588\u2557","\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D","\u255A\u2550\u2550\u2550\u2550\u2550\u255D "],4:["\u2588\u2588\u2557 \u2588\u2588\u2557","\u2588\u2588\u2551 \u2588\u2588\u2551","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2551","\u255A\u2550\u2550\u2550\u2550\u2588\u2588\u2551"," \u2588\u2588\u2551"," \u255A\u2550\u255D"],5:["\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557","\u2588\u2588\u2554\u2550\u2550\u2550\u2550\u255D","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557","\u255A\u2550\u2550\u2550\u2550\u2588\u2588\u2551","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2551","\u255A\u2550\u2550\u2550\u2550\u2550\u2550\u255D"],6:[" \u2588\u2588\u2588\u2588\u2588\u2588\u2557","\u2588\u2588\u2554\u2550\u2550\u2550\u2550\u255D","\u2588\u2588\u2588\u2588\u2588\u2588\u2557 ","\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557","\u255A\u2588\u2588\u2588\u2588\u2588\u2554\u255D"," \u255A\u2550\u2550\u2550\u2550\u255D "],7:["\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557","\u255A\u2550\u2550\u2550\u2550\u2588\u2588\u2551"," \u2588\u2588\u2554\u255D"," \u2588\u2588\u2554\u255D "," \u2588\u2588\u2551 "," \u255A\u2550\u255D "],8:[" \u2588\u2588\u2588\u2588\u2588\u2557 ","\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557","\u255A\u2588\u2588\u2588\u2588\u2588\u2554\u255D","\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557","\u255A\u2588\u2588\u2588\u2588\u2588\u2554\u255D"," \u255A\u2550\u2550\u2550\u2550\u255D "],9:[" \u2588\u2588\u2588\u2588\u2588\u2557 ","\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557","\u255A\u2588\u2588\u2588\u2588\u2588\u2588\u2551"," \u255A\u2550\u2550\u2550\u2588\u2588\u2551"," \u2588\u2588\u2588\u2588\u2588\u2554\u255D"," \u255A\u2550\u2550\u2550\u2550\u255D "]," ":[" "," "," "," "," "," "],".":[" "," "," "," ","\u2588\u2588\u2557","\u255A\u2550\u255D"],"!":["\u2588\u2588\u2557","\u2588\u2588\u2551","\u2588\u2588\u2551","\u255A\u2550\u255D","\u2588\u2588\u2557","\u255A\u2550\u255D"],"-":[" "," ","\u2588\u2588\u2588\u2588\u2588\u2557","\u255A\u2550\u2550\u2550\u2550\u255D"," "," "],_:[" "," "," "," ","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557","\u255A\u2550\u2550\u2550\u2550\u2550\u2550\u255D"],":":[" ","\u2588\u2588\u2557","\u255A\u2550\u255D","\u2588\u2588\u2557","\u255A\u2550\u255D"," "],"'":["\u2588\u2588\u2557","\u255A\u2588\u2551"," \u255A\u255D"," "," "," "],",":[" "," "," "," ","\u2584\u2588\u2557","\u255A\u2550\u255D"],"/":[" \u2588\u2588\u2557"," \u2588\u2588\u2554\u255D"," \u2588\u2588\u2554\u255D "," \u2588\u2588\u2554\u255D ","\u2588\u2588\u2554\u255D ","\u255A\u2550\u255D "],"?":["\u2588\u2588\u2588\u2588\u2588\u2588\u2557 ","\u255A\u2550\u2550\u2550\u2550\u2588\u2588\u2557"," \u2584\u2588\u2588\u2588\u2554\u255D"," \u255A\u2550\u2550\u2588\u2551 "," \u2588\u2588\u2588\u2588\u2551 "," \u255A\u2550\u2550\u2550\u255D "],"+":[" "," \u2588\u2588\u2557 ","\u2588\u2588\u2588\u2588\u2588\u2588\u2557","\u255A\u2550\u2588\u2588\u2554\u2550\u255D"," \u255A\u2550\u255D "," "],"=":[" ","\u2588\u2588\u2588\u2588\u2588\u2588\u2557","\u255A\u2550\u2550\u2550\u2550\u2550\u255D","\u2588\u2588\u2588\u2588\u2588\u2588\u2557","\u255A\u2550\u2550\u2550\u2550\u2550\u255D"," "],"@":[" \u2588\u2588\u2588\u2588\u2588\u2557 ","\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557","\u2588\u2588\u2588\u2588\u2588\u2588\u2551\u2551","\u2588\u2588\u2554\u2550\u2550\u2550\u255D\u2551","\u255A\u2588\u2588\u2588\u2588\u2588\u2554\u255D"," \u255A\u2550\u2550\u2550\u2550\u255D "],"#":[" \u2588\u2588\u2557\u2588\u2588\u2557 ","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u255A\u2588\u2588\u2554\u2588\u2588\u2554\u255D","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u255A\u2588\u2588\u2554\u2588\u2588\u2554\u255D"," \u255A\u2550\u255D\u255A\u2550\u255D "],"&":[" \u2588\u2588\u2588\u2588\u2557 ","\u2588\u2588\u2554\u2550\u2588\u2588\u2557 ","\u255A\u2588\u2588\u2588\u2588\u2554\u255D ","\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557","\u255A\u2588\u2588\u2588\u2588\u2588\u2554\u255D"," \u255A\u2550\u2550\u2550\u2550\u255D "],"(":[" \u2588\u2588\u2557","\u2588\u2588\u2554\u255D","\u2588\u2588\u2551 ","\u2588\u2588\u2551 ","\u255A\u2588\u2588\u2557"," \u255A\u2550\u255D"],")":["\u2588\u2588\u2557 ","\u255A\u2588\u2588\u2557"," \u2588\u2588\u2551"," \u2588\u2588\u2551","\u2588\u2588\u2554\u255D","\u255A\u2550\u255D "],"*":[" ","\u2584\u2588\u2557\u2588\u2584 ","\u255A\u2588\u2588\u2588\u2554\u255D","\u2584\u2588\u2588\u2588\u2584\u2557","\u255A\u2588\u2554\u255D\u2588\u255D"," "],"%":["\u2588\u2588\u2557\u2588\u2588\u2557 ","\u255A\u2550\u255D\u2588\u2588\u2554\u255D"," \u2588\u2588\u2554\u255D "," \u2588\u2588\u2554\u255D ","\u2588\u2588\u2554\u255D\u2588\u2588\u2557","\u255A\u2550\u255D\u255A\u2550\u255D "]}},R5={name:"Block",height:4,chars:{A:["\u2584\u2588\u2584 ","\u2588 \u2588 ","\u2588\u2588\u2588 ","\u2588 \u2588 "],B:["\u2588\u2588\u2584 ","\u2588\u2584\u2588 ","\u2588 \u2588 ","\u2588\u2588\u2580 "],C:["\u2584\u2588\u2588 ","\u2588 ","\u2588 ","\u2580\u2588\u2588 "],D:["\u2588\u2588\u2584 ","\u2588 \u2588 ","\u2588 \u2588 ","\u2588\u2588\u2580 "],E:["\u2588\u2588\u2588 ","\u2588\u2584 ","\u2588\u2580 ","\u2588\u2588\u2588 "],F:["\u2588\u2588\u2588 ","\u2588\u2584 ","\u2588 ","\u2588 "],G:["\u2584\u2588\u2588 ","\u2588 ","\u2588\u2584\u2588 ","\u2580\u2588\u2588 "],H:["\u2588 \u2588 ","\u2588\u2588\u2588 ","\u2588 \u2588 ","\u2588 \u2588 "],I:["\u2588\u2588\u2588 "," \u2588 "," \u2588 ","\u2588\u2588\u2588 "],J:[" \u2588\u2588 "," \u2588 ","\u2588 \u2588 ","\u2580\u2588\u2580 "],K:["\u2588\u2584\u2588 ","\u2588\u2588 ","\u2588\u2580\u2588 ","\u2588 \u2588 "],L:["\u2588 ","\u2588 ","\u2588 ","\u2588\u2588\u2588 "],M:["\u2588\u2584\u2584\u2588 ","\u2588\u2580\u2580\u2588 ","\u2588 \u2588 ","\u2588 \u2588 "],N:["\u2588\u2584 \u2588 ","\u2588\u2580\u2588\u2588 ","\u2588 \u2580\u2588 ","\u2588 \u2588 "],O:["\u2584\u2588\u2584 ","\u2588 \u2588 ","\u2588 \u2588 ","\u2580\u2588\u2580 "],P:["\u2588\u2588\u2584 ","\u2588 \u2588 ","\u2588\u2588\u2580 ","\u2588 "],Q:["\u2584\u2588\u2584 ","\u2588 \u2588 ","\u2588\u2584\u2588 ","\u2580 \u2580\u2588"],R:["\u2588\u2588\u2584 ","\u2588 \u2588 ","\u2588\u2588\u2580 ","\u2588 \u2588 "],S:["\u2584\u2588\u2588 ","\u2588\u2584 "," \u2580\u2588 ","\u2588\u2588\u2580 "],T:["\u2588\u2588\u2588\u2588 "," \u2588\u2588 "," \u2588\u2588 "," \u2588\u2588 "],U:["\u2588 \u2588 ","\u2588 \u2588 ","\u2588 \u2588 ","\u2580\u2588\u2580 "],V:["\u2588 \u2588 ","\u2588 \u2588 ","\u2580\u2584\u2584\u2580 "," \u2580\u2580 "],W:["\u2588 \u2588 ","\u2588 \u2588 ","\u2588\u2584\u2584\u2588 ","\u2580 \u2580 "],X:["\u2588 \u2588 ","\u2580\u2588\u2580 ","\u2584\u2588\u2584 ","\u2588 \u2588 "],Y:["\u2588 \u2588 ","\u2580\u2588\u2580 "," \u2588 "," \u2588 "],Z:["\u2588\u2588\u2588 "," \u2584\u2588 ","\u2588\u2580 ","\u2588\u2588\u2588 "],0:["\u2584\u2588\u2584 ","\u2588 \u2588 ","\u2588 \u2588 ","\u2580\u2588\u2580 "],1:[" \u2588 ","\u2588\u2588 "," \u2588 ","\u2588\u2588\u2588 "],2:["\u2584\u2588\u2584 "," \u2584\u2588 ","\u2588\u2580 ","\u2588\u2588\u2588 "],3:["\u2588\u2588\u2584 "," \u2584\u2588 "," \u2580\u2588 ","\u2588\u2588\u2580 "],4:["\u2588 \u2588 ","\u2588\u2588\u2588 "," \u2588 "," \u2588 "],5:["\u2588\u2588\u2588 ","\u2588\u2584 "," \u2580\u2588 ","\u2588\u2588\u2580 "],6:["\u2584\u2588\u2588 ","\u2588\u2584 ","\u2588 \u2588 ","\u2580\u2588\u2580 "],7:["\u2588\u2588\u2588 "," \u2588 "," \u2588 ","\u2588 "],8:["\u2584\u2588\u2584 ","\u2580\u2588\u2580 ","\u2584\u2588\u2584 ","\u2580\u2588\u2580 "],9:["\u2584\u2588\u2584 ","\u2588 \u2588 ","\u2580\u2588\u2588 "," \u2584\u2588 "]," ":[" "," "," "," "],".":[" "," "," ","\u2580 "],"!":["\u2588 ","\u2588 "," ","\u2580 "],"-":[" ","\u2584\u2584\u2584 "," "," "],":":[" ","\u2580 "," ","\u2580 "],_:[" "," "," ","\u2584\u2584\u2584 "]}},k5={name:"Slant",height:5,chars:{A:[" ___ "," / | "," / /| | ","/ ___ | ","/_/ |_| "],B:[" ___ "," / _ ) "," / _ | ","/ /_) | ","\\____/ "],C:[" _____ "," / ___/ ","/ / ","\\ \\___ "," \\____/ "],D:[" ___ "," / _ \\ "," / // / ","/ /\\_/ ","\\___/ "],E:[" ____ "," / __/ "," / _/ ","/___/ "," "],F:[" ____ "," / __/ "," / _/ ","/_/ "," "],G:[" _____ "," / ___/ ","/ (_ / ","\\___/ "," "],H:[" __ __ "," / // / "," / _ / ","/_//_/ "," "],I:[" __ "," / / "," / / ","/_/ "," "],J:[" __ "," __ / / ","/ /_/ / ","\\____/ "," "],K:[" __ __ "," / //_/ "," / ,< ","/_/|_| "," "],L:[" __ "," / / "," / /__ ","/____/ "," "],M:[" __ __ "," / |/ | "," / /|_/ / ","/_/ /_/ "," "],N:[" _ __ "," / |/ / "," / / ","/_/|_/ "," "],O:[" ____ "," / __ \\ ","/ /_/ / ","\\____/ "," "],P:[" ___ "," / _ \\ "," / ___/ ","/_/ "," "],Q:[" ____ "," / __ \\ ","/ /_/ / ","\\___\\_\\ "," "],R:[" ___ "," / _ \\ "," / , _/ ","/_/|_| "," "],S:[" ____ "," / __/ "," \\__ \\ ","/____/ "," "],T:[" ______ ","/_ __/ "," / / ","/_/ "," "],U:[" __ __ "," / / / / ","/ /_/ / ","\\____/ "," "],V:[" _ __ ","| | / / ","| |/ / ","|___/ "," "],W:[" _ __ ","| | /| / / ","| |/ |/ / ","|__/|__/ "," "],X:[" _ __ "," | |/ / "," _> < ","/_/|_| "," "],Y:["__ __ ","\\ \\ / / "," \\_ / "," /_/ "," "],Z:[" ____ ","/_ / "," / /_ ","/___/ "," "]," ":[" "," "," "," "," "],0:[" __ ","/ /\\ ","\\/_/ "," "," "],1:[" _ ","/ | ","| | ","|_| "," "],2:[" __ ","|_ | ","/ _/ ","\\__| "," "],3:[" __ ","|_ / "," _|\\ ","|__/ "," "],4:[" _ _ ","| | |","|_ |"," |_|"," "],5:[" __ ","| _| ","\\_ \\ ","|__/ "," "],6:[" __ ","/ _| ","| _ |","\\__/ "," "],7:[" ___ ","|_ / "," / / ","/_/ "," "],8:[" __ ","(_ ) ","/ _ |","\\__/ "," "],9:[" __ ","/ _ \\","\\_, /","/___/"," "],".":[" "," "," _ ","(_) "," "],"!":[" _ ","| | ","|_| ","(_) "," "],"-":[" "," "," _____ "," "," "],":":[" "," _ ","(_) ","(_) "," "],_:[" "," "," "," ______ "," "]}},j5={name:"Calvin S",height:4,chars:{A:[" ___ ","| . |","| |","|_|_|"],B:[" ___ ","| . >","| . >","|___>"],C:[" ___ ","| _>","| <_ ","|___>"],D:[" ___ ","| . \\ ","| | | ","|___/ "],E:[" ___ ","| __>","| _> ","|___>"],F:[" ___ ","| __>","| _> ","|_| "],G:[" ___ ","| . >","| . |","|___|"],H:[" _ _ ","| || |","| >< |","|_||_|"],I:[" _ ","| |","| |","|_|"],J:[" _ "," | |","|_| |","|___|"],K:[" _ _ ","| |/ >","| |\\ >","|_| \\_>"],L:[" _ ","| | ","| |_ ","|___| "],M:[" _ _ ","| ' ' |","| . . |","|_|_|_|"],N:[" _ _ ","| \\| |","| . |","|_|\\_|"],O:[" ___ ","| . |","| . |","|___|"],P:[" ___ ","| . >","| _>","|_| "],Q:[" ___ ","| . |","| . |","|_\\_\\"],R:[" ___ ","| . >","| >","|_\\_>"],S:[" ___ ","| __>","<__. |","<___>"],T:[" ___ ","|_ _|"," | | "," |_| "],U:[" _ _ ","| || |","| || |","|____>"],V:[" _ _ ","| || |","\\ \\/ /"," \\__/ "],W:[" _ _ ","| | | |","| |/\\| |","\\_/\\_/ "],X:[" _ _ ","\\ \\/ /"," > < ","/_/\\_\\"],Y:[" _ _ ","\\ \\/ /"," \\ / "," \\/ "],Z:[" ___ ","|_ |"," / / ","|___|"]," ":[" "," "," "," "],0:[" ___ ","| . |","| . |","|___|"],1:[" _ ","| | ","| | ","|_| "],2:[" ___ ","|_ |","| _/|","|___|"],3:[" ___ ","|__ \\ "," __) |","|___/ "],4:[" _ _ ","| | |","|_ |"," |_|"],5:[" ___ ","| __|","|__ |","|___|"],6:[" _ "," / | ","| _ |","|___|"],7:[" ___ ","|_ |"," | |"," |_|"],8:[" ___ ","| _ |","| _ |","|___|"],9:[" ___ ","| _ |","|__ |","|___|"],".":[" "," "," "," ."],"!":[" ! "," ! "," "," ! "],"-":[" "," "," --- "," "],":":[" "," : "," "," : "],_:[" "," "," "," ___ "]}},N5={name:"Small",height:4,chars:{A:[" "," /\\ ","/--\\"," "],B:[" __ ","|__)","|__)"," "],C:[" __ ","| ","|__ "," "],D:[" __ ","| \\","|_/"," "],E:[" __ ","|_ ","|__"," "],F:[" __ ","|_ ","| "," "],G:[" __ ","/ _ ","\\_|"," "],H:[" ","|__|","| |"," "],I:[" _ ","| |","|_|"," "],J:[" _ "," | ","\\_| "," "],K:[" ","|/ ","|\\ "," "],L:[" ","| ","|__ "," "],M:[" ","|\\/|","| | "," "],N:[" ","|\\ | ","| \\| "," "],O:[" __ ","/ \\","\\__/"," "],P:[" __ ","|__)","| "," "],Q:[" __ ","/ \\","\\_\\/"," "],R:[" __ ","|__)","|\\ "," "],S:[" __ ","(__ "," __)"," "],T:["___ "," | "," | "," "],U:[" ","| |","\\__/"," "],V:[" ","\\ / "," \\/ "," "],W:[" ","\\ /"," \\/\\/ "," "],X:[" ","\\/ ","/\\ "," "],Y:[" ","\\_/ "," | "," "],Z:["___ "," _/ ","/__ "," "]," ":[" "," "," "," "],0:[" _ ","/ \\","\\_/"," "],1:[" "," /|"," |"," "],2:[" _ "," _)","(_ "," "],3:[" _ "," _)"," _)"," "],4:[" ","|_|"," | "," "],5:[" _ ","|_ "," _)"," "],6:[" _ ","|_ ","|_)"," "],7:["__ "," / ","/ "," "],8:[" _ ","(_)","(_)"," "],9:[" _ ","(_|"," _|"," "],".":[" "," ",". "," "],"!":[" ","! ",". "," "],"-":[" "," ","--- "," "],":":[" ",": ",": "," "],_:[" "," "," ","___ "]}},W5={name:"Ogre",height:5,chars:{A:[" _ "," / \\ ","/ _ \\ ","| |_| |","|_| |_|"],B:[" ___ ","| _ ) ","| _ \\ ","|____/ "," "],C:[" ___ "," / __| ","| (__ "," \\___| "," "],D:[" ___ ","| _ \\ ","| | | ","|___/ "," "],E:[" ___ ","| __| ","| _| ","|___| "," "],F:[" ___ ","| __| ","| _| ","|_| "," "],G:[" ___ "," / __| ","| |___ "," \\____| "," "],H:[" _ _ ","| || | ","| __ | ","|_||_| "," "],I:[" ___ ","|_ _| "," | | ","|___| "," "],J:[" _ "," | | "," | | ","|__/ "," "],K:[" _ _ ","| |/ / ","| ' < ","|_|\\_\\ "," "],L:[" _ ","| | ","| |__ ","|____| "," "],M:[" __ __ ","| \\/ | ","| |\\/| | ","|_| |_| "," "],N:[" _ _ ","| \\ | | ","| .\\| | ","|_|\\_| "," "],O:[" ___ "," / _ \\ ","| |_| |"," \\___/ "," "],P:[" ___ ","| _ \\ ","| _/ ","|_| "," "],Q:[" ___ "," / _ \\ ","| |_| |"," \\__\\_\\"," "],R:[" ___ ","| _ \\ ","| / ","|_\\_\\ "," "],S:[" ___ ","/ __| ","\\__ \\ ","|___/ "," "],T:[" _____ ","|_ _| "," | | "," |_| "," "],U:[" _ _ ","| || | ","| \\/ | "," \\__/ "," "],V:["__ __ ","\\ \\ / / "," \\ V / "," \\_/ "," "],W:["__ __ ","\\ \\ / / "," \\ \\/\\/ / "," \\_/\\_/ "," "],X:["__ __ ","\\ \\/ / "," > < ","/_/\\_\\ "," "],Y:["__ __ ","\\ \\ / / "," \\_ / "," |_| "," "],Z:[" ____ ","|_ / "," / / ","/____| "," "]," ":[" "," "," "," "," "],0:[" __ "," / \\ ","| () |"," \\__/ "," "],1:[" _ ","/ | ","| | ","|_| "," "],2:[" ___ ","|_ ) "," / / ","/___| "," "],3:[" ___ ","|__ / "," |_ \\ ","|___/ "," "],4:[" _ _ ","| | | ","|_ | "," |_| "," "],5:[" ___ ","| __| ","|__ \\ ","|___/ "," "],6:[" __ "," / / ","| _ \\ "," \\__/ "," "],7:[" ____ ","|__ |"," / / "," /_/ "," "],8:[" __ "," / _ \\","| (_) |"," \\___/ "," "],9:[" __ "," / _ \\","| (_) |"," \\__, |"," /_/ "],".":[" "," "," _ ","(_)"," "],"!":[" _ ","| | ","|_| ","(_) "," "],"-":[" "," "," _____ ","|_____|"," "],":":[" "," _ ","(_) ","(_) "," "],_:[" "," "," "," ______ ","|______|"]}},Y5={"ANSI Shadow":$5,Block:R5,Slant:k5,"Calvin S":j5,Small:N5,Ogre:W5,"DOS Rebel":A8,Ghost:D8,Bloody:L8,Electronic:T8,"Sub-Zero":O8,"Larry 3D":P8,Colossal:S8,Isometric1:I8},H2=Y5,H5="ANSI Shadow";function U5(u,e){let t=u.split(`
73
- `);if(t.length===0)throw new Error(`parseFLF: empty font data for "${e}"`);let n=t[0];if(!n.startsWith("flf2"))throw new Error(`parseFLF: invalid FLF header for "${e}": ${n}`);let r=n.charAt(5),o=n.slice(6).trim().split(/\s+/),s=parseInt(o[0],10),a=parseInt(o[4],10)||0;if(isNaN(s)||s<=0)throw new Error(`parseFLF: invalid height in header for "${e}"`);let i=1+a,c={},l=new Set;for(let p=65;p<=90;p++)l.add(p);for(let p=48;p<=57;p++)l.add(p);l.add(32);let f="!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~";for(let p of f)l.add(p.charCodeAt(0));let _=i;for(let p=32;p<=126&&!(_+s>t.length);p++){let m=[];for(let g=0;g<s;g++){let F=t[_+g]??"";F.endsWith("@@")?F=F.slice(0,-2):F.endsWith("@")&&(F=F.slice(0,-1)),r&&r!==" "&&(F=F.split(r).join(" ")),m.push(F)}if(_+=s,l.has(p)){let g=String.fromCharCode(p);c[g]=m}}return{name:e,height:s,chars:c}}function o2(u){return u.toLowerCase().replace(/[\s_]+/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,"")}function z5(u){return!Array.isArray(u)&&Array.isArray(u.art)}function V5(u){if(Array.isArray(u))return!1;let e=u;return e.small!==void 0||e.medium!==void 0||e.large!==void 0||e.art!==void 0||e.author!==void 0||e.source!==void 0}var G5=class{fonts=new Map;scenes=new Map;icons=new Map;patterns=new Map;register(u,e,t,n="custom"){let r=o2(e);switch(u){case"font":{this.fonts.has(r)&&process.stderr.write(`[art-registry] warning: font "${r}" overwritten (source: ${n})
74
- `);let o;typeof t=="string"?o=U5(t,r):o=t,this.fonts.set(r,{font:o,source:n,author:void 0});break}case"scene":{this.scenes.has(r)&&process.stderr.write(`[art-registry] warning: scene "${r}" overwritten (source: ${n})
75
- `);let o;if(Array.isArray(t))o={art:t,source:n};else if(z5(t))o={...t,source:t.source??n};else throw new Error(`Invalid scene data for "${e}"`);this.scenes.set(r,{scene:o,source:n});break}case"icon":{this.icons.has(r)&&process.stderr.write(`[art-registry] warning: icon "${r}" overwritten (source: ${n})
76
- `);let o;if(Array.isArray(t))o=K5(t,n);else if(V5(t))o={...t,source:t.source??n};else throw new Error(`Invalid icon data for "${e}"`);this.icons.set(r,{icon:o,source:n});break}case"pattern":{this.patterns.has(r)&&process.stderr.write(`[art-registry] warning: pattern "${r}" overwritten (source: ${n})
77
- `);let o=t;this.patterns.set(r,{pattern:{...o,source:o.source??n},source:n});break}}}get(u,e){let t=o2(e),n=this.mapFor(u),r=n.get(t);if(r)return this.unwrapEntry(u,r);if(e.includes("/")){let o=o2(e.replace("/","-")),s=n.get(o);if(s)return this.unwrapEntry(u,s)}for(let[o,s]of n)if(o.endsWith(`-${t}`)||o.endsWith(`/${t}`))return this.unwrapEntry(u,s);return null}has(u,e){return this.get(u,e)!==null}list(u){if(u)return Array.from(this.mapFor(u).keys()).sort();let e=new Set;for(let t of this.fonts.keys())e.add(t);for(let t of this.scenes.keys())e.add(t);for(let t of this.icons.keys())e.add(t);for(let t of this.patterns.keys())e.add(t);return Array.from(e).sort()}getInfo(u,e){let t=o2(e),r=this.mapFor(u).get(t);if(!r)return null;let o={name:t,type:u,source:""};switch(u){case"font":{let s=r;o.source=s.source,o.author=s.author;break}case"scene":{let s=r;o.source=s.source,o.author=s.scene.author,o.description=s.scene.description;break}case"icon":{let s=r;o.source=s.source,o.author=s.icon.author;break}case"pattern":{let s=r;o.source=s.source,o.author=s.pattern.author;break}}return o}loadPack(u){let e=`pack:${u.name}`;if(u.fonts){for(let[t,n]of Object.entries(u.fonts))if(this.register("font",t,n,e),u.author){let r=o2(t),o=this.fonts.get(r);o&&!o.author&&(o.author=u.author)}}if(u.scenes)for(let[t,n]of Object.entries(u.scenes))this.register("scene",t,n,e);if(u.icons)for(let[t,n]of Object.entries(u.icons))this.register("icon",t,n,e);if(u.patterns)for(let[t,n]of Object.entries(u.patterns))this.register("pattern",t,n,e)}clear(){this.fonts.clear(),this.scenes.clear(),this.icons.clear(),this.patterns.clear()}mapFor(u){switch(u){case"font":return this.fonts;case"scene":return this.scenes;case"icon":return this.icons;case"pattern":return this.patterns}}unwrapEntry(u,e){switch(u){case"font":return e.font;case"scene":return e.scene;case"icon":return e.icon;case"pattern":return e.pattern}}};function K5(u,e){let t=u.length,n={source:e};return t<=4?n.small=u:t<=6?n.medium=u:n.large=u,n}var K2=new G5;var $8={single:{topLeft:"\u250C",topRight:"\u2510",bottomLeft:"\u2514",bottomRight:"\u2518",horizontal:"\u2500",vertical:"\u2502",teeLeft:"\u2524",teeRight:"\u251C",teeUp:"\u2534",teeDown:"\u252C",cross:"\u253C"},double:{topLeft:"\u2554",topRight:"\u2557",bottomLeft:"\u255A",bottomRight:"\u255D",horizontal:"\u2550",vertical:"\u2551",teeLeft:"\u2563",teeRight:"\u2560",teeUp:"\u2569",teeDown:"\u2566",cross:"\u256C"},rounded:{topLeft:"\u256D",topRight:"\u256E",bottomLeft:"\u2570",bottomRight:"\u256F",horizontal:"\u2500",vertical:"\u2502",teeLeft:"\u2524",teeRight:"\u251C",teeUp:"\u2534",teeDown:"\u252C",cross:"\u253C"},heavy:{topLeft:"\u250F",topRight:"\u2513",bottomLeft:"\u2517",bottomRight:"\u251B",horizontal:"\u2501",vertical:"\u2503",teeLeft:"\u252B",teeRight:"\u2523",teeUp:"\u253B",teeDown:"\u2533",cross:"\u254B"},dashed:{topLeft:"\u250C",topRight:"\u2510",bottomLeft:"\u2514",bottomRight:"\u2518",horizontal:"\u2504",vertical:"\u2506",teeLeft:"\u2524",teeRight:"\u251C",teeUp:"\u2534",teeDown:"\u252C",cross:"\u253C"},ascii:{topLeft:"+",topRight:"+",bottomLeft:"+",bottomRight:"+",horizontal:"-",vertical:"|",teeLeft:"+",teeRight:"+",teeUp:"+",teeDown:"+",cross:"+"},none:{topLeft:" ",topRight:" ",bottomLeft:" ",bottomRight:" ",horizontal:" ",vertical:" ",teeLeft:" ",teeRight:" ",teeUp:" ",teeDown:" ",cross:" "}};function ju(u){return $8[u??"rounded"]??$8.rounded}function q2(u,e={},t){let n=e.font??"ANSI Shadow",o=K2.get("font",n)??H2[n]??H2[H5];if(!o)return[u];let s=u.toUpperCase(),a=Array(o.height).fill("");for(let l of s){let f=o.chars[l]??o.chars[" "]??Array(o.height).fill(" "),_=Math.max(0,...f.map(p=>(p??"").length));for(let p=0;p<o.height;p++){let m=f[p]??"";a[p]+=m+" ".repeat(Math.max(0,_-m.length))}}for(a=a.map(l=>l.trimEnd());a.length>0&&a[a.length-1]==="";)a.pop();let i=Math.max(0,...a.map(l=>l.length));a=a.map(l=>l+" ".repeat(Math.max(0,i-l.length)));let c=e.width??t;return c!==void 0&&Math.max(0,...a.map(f=>L(f)))>c?[u]:(e.shadow&&(a=q5(a)),e.border&&e.border!=="none"&&(a=J5(a,e.border)),a)}function q5(u){let e=[];for(let n=0;n<u.length;n++)e.push(u[n]+" ");let t=Math.max(0,...u.map(n=>L(n)));return e.push(" "+"\u2591".repeat(t)),e}function J5(u,e){let t=ju(e),n=Math.max(0,...u.map(s=>L(s))),r=n+2,o=[];o.push(t.topLeft+t.horizontal.repeat(r)+t.topRight);for(let s of u){let a=s+" ".repeat(Math.max(0,n-L(s)));o.push(t.vertical+" "+a+" "+t.vertical)}return o.push(t.bottomLeft+t.horizontal.repeat(r)+t.bottomRight),o}function J2(u,e){if(u.length===0)return u;let t=Math.max(0,...u.map(o=>L(o))),n=Math.max(0,Math.floor((e-t)/2)),r=" ".repeat(n);return u.map(o=>{if(L(o)>e){let a=0,i="",c=!1;for(let l of o){if(l==="\x1B"){c=!0,i+=l;continue}if(c){i+=l,l==="m"&&(c=!1);continue}let f=ku(l.codePointAt(0)??0);if(a+f>e)break;i+=l,a+=f}return i+"\x1B[0m"}return r+o})}i8();T2();O2();k2();import{readFileSync as vn,existsSync as Bn}from"fs";import{resolve as Mn}from"path";import{EventEmitter as Sn}from"events";import{EventEmitter as Dn}from"events";import{createServer as Yn}from"http";import{exec as er}from"child_process";var Re={};Me(Re,{defaultTheme:()=>b2,themes:()=>F2});var F2,b2,W2=Be({"src/style/theme.ts"(){"use strict";F2={cyberpunk:{accent:"#ff2a6d",accentDim:"#b91d4f",text:"#05d9e8",muted:"#0abdc6",subtle:"#01579b",success:"#05d9e8",warning:"#d1f7ff",error:"#ff2a6d",border:"#01579b",bg:"#01012b"},dracula:{accent:"#ff79c6",accentDim:"#bd93f9",text:"#f8f8f2",muted:"#6272a4",subtle:"#44475a",success:"#50fa7b",warning:"#f1fa8c",error:"#ff5555",border:"#6272a4",bg:"#282a36"},nord:{accent:"#88c0d0",accentDim:"#5e81ac",text:"#eceff4",muted:"#81a1c1",subtle:"#4c566a",success:"#a3be8c",warning:"#ebcb8b",error:"#bf616a",border:"#4c566a",bg:"#2e3440"},monokai:{accent:"#f92672",accentDim:"#ae81ff",text:"#f8f8f2",muted:"#75715e",subtle:"#49483e",success:"#a6e22e",warning:"#e6db74",error:"#f92672",border:"#75715e",bg:"#272822"},solarized:{accent:"#268bd2",accentDim:"#2aa198",text:"#839496",muted:"#657b83",subtle:"#586e75",success:"#859900",warning:"#b58900",error:"#dc322f",border:"#586e75",bg:"#002b36"},gruvbox:{accent:"#fe8019",accentDim:"#d65d0e",text:"#ebdbb2",muted:"#a89984",subtle:"#504945",success:"#b8bb26",warning:"#fabd2f",error:"#fb4934",border:"#504945",bg:"#282828"},catppuccin:{accent:"#f5c2e7",accentDim:"#cba6f7",text:"#cdd6f4",muted:"#a6adc8",subtle:"#45475a",success:"#a6e3a1",warning:"#f9e2af",error:"#f38ba8",border:"#585b70",bg:"#1e1e2e"},tokyoNight:{accent:"#7aa2f7",accentDim:"#bb9af7",text:"#c0caf5",muted:"#565f89",subtle:"#3b4261",success:"#9ece6a",warning:"#e0af68",error:"#f7768e",border:"#3b4261",bg:"#1a1b26"},rosePine:{accent:"#ebbcba",accentDim:"#c4a7e7",text:"#e0def4",muted:"#908caa",subtle:"#6e6a86",success:"#9ccfd8",warning:"#f6c177",error:"#eb6f92",border:"#6e6a86",bg:"#191724"},hacker:{accent:"#00ff41",accentDim:"#008f11",text:"#00ff41",muted:"#008f11",subtle:"#003b00",success:"#00ff41",warning:"#ccff00",error:"#ff0000",border:"#008f11",bg:"#0d0208"}},b2=F2.dracula}}),yn=null;function Ie(u){yn=u}var xn=null;function Ae(u){xn=u}function En(u){let e={};for(let t of u.split(`
78
- `)){let n=t.trim();if(!n||n.startsWith("#"))continue;let r=n.indexOf("=");if(r<0)continue;let o=n.substring(0,r).trim(),s=n.substring(r+1).trim();if(s.startsWith('"')&&s.endsWith('"')||s.startsWith("'")&&s.endsWith("'"))s=s.slice(1,-1);else{let a=s.indexOf(" #");a>=0&&(s=s.substring(0,a).trim())}e[o]=s}return e}function C8(u){let e=u??process.cwd(),t=process.env.NODE_ENV??"",n=[".env",".env.local"];t==="production"?n.push(".env.production"):t==="development"&&n.push(".env.development");for(let r of n){let o=Mn(e,r);if(Bn(o))try{let s=vn(o,"utf-8"),a=En(s);for(let[i,c]of Object.entries(a))process.env[i]===void 0&&(process.env[i]=c)}catch{}}}W2();function Pn(){let u=!!process.stdout.isTTY,e=process.env,t=e.TERM_PROGRAM??"",n=t==="Apple_Terminal",r=t||e.TERM||"unknown",o="none";e.NO_COLOR!==void 0?o="none":u&&(n?o="256":e.COLORTERM==="truecolor"||e.COLORTERM==="24bit"||t==="iTerm.app"||t==="Hyper"||t==="WezTerm"||t==="WarpTerminal"||e.WT_SESSION!==void 0||e.TERM?.includes("24bit")||e.TERM?.includes("truecolor")?o="truecolor":e.TERM?.includes("256color")?o="256":u&&(o="16"));let s=e.LANG?.includes("UTF-8")||e.LANG?.includes("utf8")||e.LC_ALL?.includes("UTF-8")||t==="iTerm.app"||t==="WezTerm"||e.WT_SESSION!==void 0||process.platform==="darwin";return{colorDepth:o,unicode:!!s,columns:process.stdout.columns||80,rows:process.stdout.rows||24,isTTY:u,terminalName:r,isAppleTerminal:n}}var In=class extends Sn{started=!1;rawModeWas;start(){this.started||(this.started=!0,process.stdin.isTTY&&(this.rawModeWas=process.stdin.isRaw,process.stdin.setRawMode(!0)),process.stdin.resume(),process.stdin.setEncoding("utf-8"),process.stdin.on("data",this.handleData))}stop(){this.started&&(this.started=!1,process.stdin.removeListener("data",this.handleData),process.stdin.isTTY&&this.rawModeWas!==void 0&&process.stdin.setRawMode(this.rawModeWas),process.stdin.pause())}handleData=u=>{for(let e of An(u))this.emit("keypress",e)}};function An(u){let e=[];if(u==="\x1B[A")e.push(iu("up","",!1,!1,!1,u));else if(u==="\x1B[B")e.push(iu("down","",!1,!1,!1,u));else if(u==="\x1B[C")e.push(iu("right","",!1,!1,!1,u));else if(u==="\x1B[D")e.push(iu("left","",!1,!1,!1,u));else if(u==="\r"||u===`
79
- `)e.push(iu("return","",!1,!1,!1,u));else if(u==="\x1B")e.push(iu("escape","",!1,!1,!1,u));else if(u==="\x7F"||u==="\b")e.push(iu("backspace","",!1,!1,!1,u));else if(u===" ")e.push(iu("tab","",!1,!1,!1,u));else if(u==="\x1B[Z")e.push(iu("tab","",!1,!1,!0,u));else if(u==="\x1B[3~")e.push(iu("delete","",!1,!1,!1,u));else if(u==="\x1B[H"||u==="\x1B[1~"||u==="\x1BOH")e.push(iu("home","",!1,!1,!1,u));else if(u==="\x1B[F"||u==="\x1B[4~"||u==="\x1BOF")e.push(iu("end","",!1,!1,!1,u));else if(u===" ")e.push(iu("space"," ",!1,!1,!1,u));else for(let t=0;t<u.length;t++){let n=u[t],r=n.charCodeAt(0);if(r<=26&&r>0){let o=String.fromCharCode(r+96);e.push(iu(o,n,!0,!1,!1,n))}else e.push(iu(n,n,!1,!1,!1,n))}return e}function iu(u,e,t,n,r,o){return{name:u,char:e,ctrl:t,meta:n,shift:r,sequence:o}}var c8=new In,Ln=class extends Dn{_size;constructor(){super(),this._size=this.measure(),process.stdout.on("resize",()=>{this._size=this.measure(),this.emit("resize",this._size)}),typeof process.on=="function"&&process.on("SIGWINCH",()=>{this._size=this.measure(),this.emit("resize",this._size)})}get size(){return this._size}get columns(){return this._size.columns}get rows(){return this._size.rows}measure(){return{columns:process.stdout.columns||80,rows:process.stdout.rows||24}}},ke=new Ln;function Bu(){return ke.size}var Tn=class{listeners=new Map;on(u,e){return this.listeners.has(u)||this.listeners.set(u,new Set),this.listeners.get(u).add(e),()=>this.off(u,e)}off(u,e){this.listeners.get(u)?.delete(e)}emit(u,...e){this.listeners.get(u)?.forEach(t=>{try{t(...e)}catch{}})}once(u,e){let t=(...n)=>{this.off(u,t),e(...n)};return this.on(u,t)}removeAll(u){u?this.listeners.delete(u):this.listeners.clear()}},De=new Tn,On=class{pages=[];_currentPage="";history=[];get currentPage(){return this._currentPage}get currentIndex(){return this.pages.indexOf(this._currentPage)}get pageCount(){return this.pages.length}registerPages(u){this.pages=[...u]}navigate(u){return this.pages.includes(u)?(this.history.push(this._currentPage),this._currentPage=u,De.emit("navigate",{from:this.history[this.history.length-1],to:u}),!0):!1}navigateByIndex(u){return u<0||u>=this.pages.length?!1:this._currentPage===this.pages[u]?!0:this.navigate(this.pages[u])}back(){if(this.history.length===0)return!1;let u=this.history.pop(),e=this._currentPage;return this._currentPage=u,De.emit("navigate",{from:e,to:u}),!0}home(){return this._currentPage===""||(this.history=[],this._currentPage=""),!0}isHome(){return this._currentPage===""}getPageId(u){return this.pages[u]}getAllPages(){return[...this.pages]}},$n=class{items=[];_focusIndex=0;get focusedId(){return this.items[this._focusIndex]}get focusIndex(){return this._focusIndex}set focusIndex(u){u>=0&&u<this.items.length&&(this._focusIndex=u)}setItems(u){this.items=[...u],this._focusIndex>=this.items.length&&(this._focusIndex=Math.max(0,this.items.length-1))}focusNext(){if(this.items.length!==0)return this._focusIndex=(this._focusIndex+1)%this.items.length,this.items[this._focusIndex]}focusPrev(){if(this.items.length!==0)return this._focusIndex=(this._focusIndex-1+this.items.length)%this.items.length,this.items[this._focusIndex]}focusFirst(){return this._focusIndex=0,this.items[0]}focusLast(){return this._focusIndex=Math.max(0,this.items.length-1),this.items[this._focusIndex]}isFocused(u){return this.items[this._focusIndex]===u}get count(){return this.items.length}},Rn=class{animations=new Map;timer=null;fps=30;running=!1;start(){if(this.running)return;this.running=!0;let u=Math.floor(1e3/this.fps);this.timer=setInterval(()=>this.tick(),u)}stop(){this.running=!1,this.timer&&(clearInterval(this.timer),this.timer=null),this.animations.clear()}add(u,e,t,n){this.animations.set(u,{id:u,totalFrames:e,onFrame:t,onComplete:n,currentFrame:0}),this.running||this.start()}remove(u){this.animations.delete(u),this.animations.size===0&&this.stop()}tick(){let u=[];for(let[e,t]of this.animations)t.onFrame(t.currentFrame,t.totalFrames,t.currentFrame/this.fps),t.currentFrame++,t.currentFrame>=t.totalFrames&&(u.push(e),t.onComplete?.());for(let e of u)this.animations.delete(e);this.animations.size===0&&this.stop()}get isRunning(){return this.running}get activeCount(){return this.animations.size}},kn=new Rn,jn=class{_mode="navigation";_editingId=null;get mode(){return this._mode}get editingId(){return this._editingId}get isEditing(){return this._mode==="editing"}get isNavigating(){return this._mode==="navigation"}enterEdit(u){this._mode="editing",this._editingId=u}exitEdit(){this._mode="navigation",this._editingId=null}reset(){this._mode="navigation",this._editingId=null}},Nn=class{_notifications=[];get current(){return this.prune(),this._notifications[0]??null}get all(){return this.prune(),[...this._notifications]}success(u,e=3e3){this._notifications.push({message:u,type:"success",createdAt:Date.now(),duration:e})}error(u,e=4e3){this._notifications.push({message:u,type:"error",createdAt:Date.now(),duration:e})}info(u,e=3e3){this._notifications.push({message:u,type:"info",createdAt:Date.now(),duration:e})}prune(){let u=Date.now(),e=this._notifications.length;return this._notifications=this._notifications.filter(t=>u-t.createdAt<t.duration),this._notifications.length!==e}clear(){this._notifications=[]}},Wn=class{states=new Map;refreshTimers=new Map;getState(u){return this.states.get(u)}needsLoad(u){let e=this.states.get(u);return!e||e.status==="loading"}load(u,e,t){this.states.get(u)?.status!=="loading"&&(this.states.set(u,{status:"loading"}),e().then(r=>{this.states.set(u,{status:"loaded",content:r,lastLoadTime:Date.now()}),t()}).catch(r=>{this.states.set(u,{status:"error",error:r instanceof Error?r:new Error(String(r))}),t()}))}setupRefresh(u,e,t,n){this.clearRefresh(u);let r=setInterval(()=>{let o=this.states.get(u);t().then(s=>{this.states.set(u,{status:"loaded",content:s,lastLoadTime:Date.now()}),n()}).catch(s=>{o?.content?this.states.set(u,{...o,lastLoadTime:Date.now()}):this.states.set(u,{status:"error",error:s instanceof Error?s:new Error(String(s))}),n()})},e);this.refreshTimers.set(u,r)}clearRefresh(u){let e=this.refreshTimers.get(u);e&&(clearInterval(e),this.refreshTimers.delete(u))}reload(u,e,t){this.states.delete(u),this.load(u,e,t)}cleanup(){for(let u of this.refreshTimers.values())clearInterval(u);this.refreshTimers.clear()}reset(u){this.states.delete(u),this.clearRefresh(u)}};function Hn(u){let e=u.indexOf(" ");if(e===-1)throw new Error(`Invalid API route key: "${u}". Expected format: "METHOD /path"`);let t=u.slice(0,e).toUpperCase(),n=u.slice(e+1).trim();if(!n.startsWith("/"))throw new Error(`API route path must start with "/": "${u}"`);let r=[],o=n.replace(/:(\w+)/g,(a,i)=>(r.push(i),"([^/]+)")),s=new RegExp(`^${o}$`);return{method:t,pattern:s,paramNames:r}}function Un(u){let e=[];for(let[t,n]of Object.entries(u)){let{method:r,pattern:o,paramNames:s}=Hn(t);e.push({method:r,pattern:o,paramNames:s,handler:n})}return e}function zn(u,e,t){for(let n of u){if(n.method!==e)continue;let r=t.match(n.pattern);if(!r)continue;let o={};return n.paramNames.forEach((s,a)=>{o[s]=decodeURIComponent(r[a+1])}),{route:n,params:o}}return null}var je=class{routes=[];server=null;port=0;registerRoutes(u){this.routes=Un(u)}async start(){return new Promise((u,e)=>{this.server=Yn((t,n)=>{this.handleRequest(t,n)}),this.server.on("error",e),this.server.listen(0,"127.0.0.1",()=>{let t=this.server.address();this.port=typeof t=="object"&&t?t.port:0,u(this.port)})})}async stop(){if(this.server)return new Promise(u=>{this.server.close(()=>u())})}getPort(){return this.port}getBaseUrl(){return`http://127.0.0.1:${this.port}`}async handleRequest(u,e){let t=new URL(u.url||"/",`http://127.0.0.1:${this.port}`),n=(u.method||"GET").toUpperCase(),r=t.pathname;if(e.setHeader("Access-Control-Allow-Origin","*"),e.setHeader("Access-Control-Allow-Methods","GET, POST, PUT, DELETE, PATCH, OPTIONS"),e.setHeader("Access-Control-Allow-Headers","Content-Type"),e.setHeader("Content-Type","application/json"),n==="OPTIONS"){e.writeHead(204),e.end();return}let o=zn(this.routes,n,r);if(!o){e.writeHead(404),e.end(JSON.stringify({error:"Not found"}));return}let s={};t.searchParams.forEach((c,l)=>{s[l]=c});let a;["POST","PUT","PATCH"].includes(n)&&(a=await this.parseBody(u));let i={method:n,path:r,params:o.params,query:s,body:a,headers:u.headers};try{let c=await o.route.handler(i),l=JSON.stringify(c);e.writeHead(200),e.end(l)}catch(c){let l=c?.message||"Internal server error";e.writeHead(500),e.end(JSON.stringify({error:l}))}}parseBody(u){return new Promise((e,t)=>{let n="";u.on("data",r=>{n+=r.toString()}),u.on("end",()=>{if(!n){e(void 0);return}try{e(JSON.parse(n))}catch{e(n)}}),u.on("error",t)})}},_8="__terminaltui_api_base_url__";function p8(u){u?globalThis[_8]=u:delete globalThis[_8]}function Vn(){return globalThis[_8]??null}function Ne(u){let e=Vn();return u.startsWith("/")&&e?`${e}${u}`:u}var Gn=class{entries=new Map;get(u){let e=this.entries.get(u);if(e){if(Date.now()-e.timestamp>e.ttl){this.entries.delete(u);return}return e.data}}set(u,e,t){this.entries.set(u,{data:e,timestamp:Date.now(),ttl:t})}has(u){return this.get(u)!==void 0}delete(u){this.entries.delete(u)}clear(){this.entries.clear()}},oo=new Gn,Kn="__terminaltui_fetcher_registry__";function We(){let u=globalThis[Kn];if(u){for(let e of u.values())e.destroy();u.clear()}}function qn(u){let e=u??"";return{value:e,cursorPos:typeof e=="string"?e.length:0,error:null,open:!1,highlightIndex:0,scrollOffset:0}}function Jn(u,e){return u.name==="q"&&!u.ctrl||u.name==="c"&&u.ctrl?"quit":u.name==="escape"?e?"quit":"back":u.name==="backspace"?e?null:"back":u.name==="up"||u.name==="k"?"up":u.name==="down"||u.name==="j"?"down":u.name==="left"||u.name==="h"?"left":u.name==="right"||u.name==="l"?"right":u.name==="return"?"select":u.char===":"||u.char==="/"?"command":u.name==="tab"?u.shift?"up":"down":u.char==="g"&&!u.shift&&!u.ctrl?"home":u.char==="G"||u.char==="g"&&u.shift?"pageDown":u.char>="1"&&u.char<="9"?`jump${u.char}`:null}function j2(u,e,t){let n=t.find(a=>a.focusIndex===u);if(!n)return null;let r=t.filter(a=>a.focusIndex===u?!1:Qn(n,a,e));if(r.length===0)return null;let o=r[0],s=Le(n,o,e);for(let a=1;a<r.length;a++){let i=Le(n,r[a],e);i<s&&(o=r[a],s=i)}return o.focusIndex}function Qn(u,e,t){switch(t){case"right":return e.x>u.x;case"left":return e.x+e.width<u.x+u.width;case"down":return e.y>u.y;case"up":return e.y+e.height<u.y+u.height}}function Le(u,e,t){let n=u.x+u.width/2,r=u.y+u.height/2,o=e.x+e.width/2,s=e.y+e.height/2,a,i;return t==="left"||t==="right"?(a=Math.abs(o-n),i=Math.abs(s-r)):(a=Math.abs(s-r),i=Math.abs(o-n)),a+i*2}function G(u,e){let t=e.margin??0,n=typeof e.border=="boolean"?e.border?1:0:e.border??0,r=e.padding??0,o=t*2+n*2+r*2,s=Math.max(0,u-o);return{allocated:u,margin:t,border:n,padding:r,content:s}}var K={card:{padding:1,border:!0,margin:0},text:{padding:0,border:!1,margin:0},hero:{padding:0,border:!1,margin:0},table:{padding:0,border:!0,margin:0},quote:{padding:1,border:!0,margin:1},badge:{padding:0,border:!1,margin:0},progressBar:{padding:0,border:!1,margin:0},link:{padding:0,border:!1,margin:0},list:{padding:0,border:!1,margin:0},section:{padding:0,border:!1,margin:0},divider:{padding:0,border:!1,margin:0},spacer:{padding:0,border:!1,margin:0},timeline:{padding:1,border:!0,margin:1},gallery:{padding:0,border:!1,margin:0},image:{padding:0,border:!0,margin:0},markdown:{padding:0,border:!1,margin:0},menu:{padding:0,border:!1,margin:0},accordion:{padding:2,border:!1,margin:0},tabs:{padding:2,border:!1,margin:0},scrollView:{padding:0,border:!1,margin:0},textInput:{padding:1,border:!0,margin:0},textArea:{padding:1,border:!0,margin:0},select:{padding:1,border:!0,margin:0},checkbox:{padding:0,border:!1,margin:0},toggle:{padding:0,border:!1,margin:0},radioGroup:{padding:0,border:!1,margin:0},numberInput:{padding:1,border:!0,margin:0},searchInput:{padding:1,border:!0,margin:0},button:{padding:2,border:!0,margin:1},form:{padding:1,border:!0,margin:0},box:{padding:0,border:!1,margin:0}};function $u(u,e){let t=u.border??e.borderStyle??"rounded",n=ju(t),r=u.width??e.width,o=u.padding??1,s=Math.max(0,Math.floor((r-2)/2)),a=Math.min(o,s),i=G(r,{border:!0,padding:a}),c=i.content,l=u.borderColor??e.theme.border,f=[],_=Math.max(0,i.allocated-i.border*2);if(u.title){let F=` ${u.title} `,w="";u.titleRight&&(w=` ${u.titleRight} `);let y=Math.max(0,_-L(F)-L(w)-1);f.push(h(l)+n.topLeft+n.horizontal+d+h(e.theme.accent)+F+d+h(l)+n.horizontal.repeat(y)+(w?d+h(e.theme.muted)+w+d+h(l):"")+n.topRight+d)}else f.push(h(l)+n.topLeft+n.horizontal.repeat(_)+n.topRight+d);let p=[];for(let F of u.content)p.push(F);let m=u.height?Math.max(0,u.height-2):p.length+(a>0,0),g=Math.max(m,p.length);for(let F=0;F<g;F++){let w=p[F]??"",y=" ".repeat(a);f.push(h(l)+n.vertical+d+y+_u(w,c)+y+h(l)+n.vertical+d),u.midSeparatorAfter!==void 0&&F===u.midSeparatorAfter&&f.push(h(l)+n.teeRight+n.horizontal.repeat(_)+n.teeLeft+d)}return f.push(h(l)+n.bottomLeft+n.horizontal.repeat(_)+n.bottomRight+d),f}function Ye(u,e){if(!u.resultMessage)return[];let t=e.theme,n=G(e.width,K.form),r,o;switch(u.resultType){case"success":r="\u2713",o=t.success;break;case"error":r="\u2717",o=t.error;break;default:r="\u2139",o=t.accent;break}let s=[h(o)+r+" "+u.resultMessage+d];return $u({content:s,width:e.width,border:e.borderStyle??"rounded",padding:1,borderColor:o},e)}function Zn(u){let e=[];for(let t of u)"id"in t&&t.type!=="form"&&t.type!=="button"&&e.push(t.id);return e}function w8(u){switch(u.type){case"textInput":case"textArea":return u.defaultValue??"";case"select":case"radioGroup":return u.defaultValue??"";case"checkbox":case"toggle":return u.defaultValue??!1;case"numberInput":return u.defaultValue??0;case"searchInput":return"";default:return}}function Te(u,e){let t=u.toLowerCase(),n=e.toLowerCase(),r=0;for(let o=0;o<n.length&&r<t.length;o++)n[o]===t[r]&&r++;return r===t.length}function m8(u,e,t){if(!e)return u.slice(0,t);let n=[];for(let r of u){let o=Te(e,r.label),s=r.keywords?.some(i=>Te(e,i))??!1,a=r.label.toLowerCase().includes(e.toLowerCase());if(o||s){let i=a?2:o?1:0;n.push({label:r.label,value:r.value,score:i})}}return n.sort((r,o)=>o.score-r.score),n.slice(0,t).map(r=>({label:r.label,value:r.value}))}function Xn(u,e,t){let n=t.theme,r=[],o=!!t.focused,s=e.editing,i=G(t.width,K.searchInput).content,c=u.label??"",l="\u{1F50D}";c&&r.push(h(o?n.accent:n.text)+k+" "+c+d);let f;if(e.query.length===0&&!s)f=h(n.subtle)+q+(u.placeholder??"Search...")+d;else if(s){let w=Math.min(e.cursorPos,e.query.length),y=e.query.substring(0,w),v=e.query.substring(w);f=h(n.text)+y+h(n.accent)+"\u2588"+d+h(n.text)+v+d}else f=h(n.text)+e.query+d;let _=[f],p=u.maxResults??5;if(s||e.query.length>0){let w=e.filteredItems;if(w.length===0)_.push(h(n.subtle)+q+"No results"+d);else for(let y=0;y<w.length;y++){let v=w[y],x=y===e.highlightIndex,B=x?"\u276F ":" ",C=x?n.accent:n.text,S=Q(v.label,Math.max(1,i-2));_.push(h(C)+(x?k:"")+B+S+d)}}let m=o?n.accent:n.border,g=_.length>1,F=$u({content:_,width:t.width,border:t.borderStyle??"rounded",padding:1,borderColor:m,midSeparatorAfter:g?0:void 0},t);return r.push(...F),r}function u0(u,e,t){let n=u.getInputState(e.id,e.defaultValue??""),r=n.value,o=n.cursorPos;if(t.name==="escape"){u.validateInput(e),u.inputMode.exitEdit();return}if(t.name==="return"){u.validateInput(e),u.inputMode.exitEdit(),u.pageFocusNext();return}if(t.name==="up"){u.validateInput(e),u.inputMode.exitEdit(),u.pageFocusPrev();return}if(t.name==="down"){u.validateInput(e),u.inputMode.exitEdit(),u.pageFocusNext();return}t.name==="backspace"?o>0&&(r=r.substring(0,o-1)+r.substring(o),o--):t.name==="delete"?o<r.length&&(r=r.substring(0,o)+r.substring(o+1)):t.name==="left"?o>0&&o--:t.name==="right"?o<r.length&&o++:t.name==="home"?o=0:t.name==="end"?o=r.length:t.char&&t.char.length===1&&!t.ctrl&&t.name!=="tab"&&(!e.maxLength||r.length<e.maxLength)&&(r=r.substring(0,o)+t.char+r.substring(o),o++),e.transform&&(r=e.transform(r),o=Math.min(o,r.length));let s=n.value!==r;n.value=r,n.cursorPos=o,n.error=null,s&&e.onChange&&e.onChange(r)}function e0(u,e,t){let n=u.getInputState(e.id,e.defaultValue??""),r=n.value,o=n.cursorPos;if(t.name==="escape"){u.validateInput(e),u.inputMode.exitEdit();return}if(t.name==="return")(!e.maxLength||r.length<e.maxLength)&&(r=r.substring(0,o)+`
80
- `+r.substring(o),o++);else if(t.name==="backspace")o>0&&(r=r.substring(0,o-1)+r.substring(o),o--);else if(t.name==="delete")o<r.length&&(r=r.substring(0,o)+r.substring(o+1));else if(t.name==="left")o>0&&o--;else if(t.name==="right")o<r.length&&o++;else if(t.name==="up"){let a=r.substring(0,o).split(`
81
- `);if(a.length>1){let i=a[a.length-1].length,c=a[a.length-2],l=Math.min(i,c.length);o=a.slice(0,-1).join(`
82
- `).length-c.length+l,o<0&&(o=0)}}else if(t.name==="down"){let a=r.substring(0,o),i=r.substring(o),c=a.lastIndexOf(`
83
- `)+1,l=o-c,f=i.indexOf(`
84
- `);if(f>=0){let _=i.substring(f+1),p=_.indexOf(`
85
- `),m=p>=0?p:_.length,g=Math.min(l,m);o=o+f+1+g}}else if(t.name==="home")o=r.substring(0,o).lastIndexOf(`
86
- `)+1;else if(t.name==="end"){let i=r.substring(o).indexOf(`
87
- `);o=i>=0?o+i:r.length}else t.char&&t.char.length===1&&!t.ctrl&&t.name!=="tab"&&(!e.maxLength||r.length<e.maxLength)&&(r=r.substring(0,o)+t.char+r.substring(o),o++);let s=n.value!==r;n.value=r,n.cursorPos=o,n.error=null,s&&e.onChange&&e.onChange(r)}function t0(u,e,t){let n=u.getInputState(e.id,e.defaultValue??"");if(t.name==="escape"){n.open=!1,u.inputMode.exitEdit();return}if(!n.open){if(t.name==="return"){n.open=!0;let r=e.options.findIndex(o=>o.value===n.value);n.highlightIndex=r>=0?r:0}return}if(t.name==="up")n.highlightIndex=Math.max(0,n.highlightIndex-1);else if(t.name==="down")n.highlightIndex=Math.min(e.options.length-1,n.highlightIndex+1);else if(t.name==="return"){let r=e.options[n.highlightIndex];r&&(n.value=r.value,e.onChange?.(r.value)),n.open=!1,u.inputMode.exitEdit()}}function n0(u,e,t){let n=u.getInputState(e.id,e.defaultValue??0),r=e.step??1,o=e.min??-1/0,s=e.max??1/0;if(t.name==="escape"){u.inputMode.exitEdit();return}if(t.name==="return"||t.name==="up"||t.name==="down"){u.inputMode.exitEdit(),t.name==="up"&&u.pageFocusPrev(),t.name==="down"&&u.pageFocusNext();return}if(t.name==="left"||t.char==="-")n.value=Math.max(o,n.value-r);else if(t.name==="right"||t.char==="+")n.value=Math.min(s,n.value+r);else if(t.char&&/[0-9]/.test(t.char)){let a=String(n.value)==="0"?t.char:String(n.value)+t.char,i=parseInt(a,10);isNaN(i)||(n.value=Math.max(o,Math.min(s,i)))}else if(t.name==="backspace"){let a=String(n.value).slice(0,-1);n.value=a?Math.max(o,Math.min(s,parseInt(a,10)||0)):0}}function r0(u,e,t){let n=u.getInputState(e.id,""),r=n.value,o=n.cursorPos;if(t.name==="escape")return u.inputMode.exitEdit(),{};if(t.name==="return"){let s=e.maxResults??10,i=m8(e.items,r,s)[n.highlightIndex];return u.inputMode.exitEdit(),i?{action:"search",selected:i}:{}}if(t.name==="up")return n.highlightIndex=Math.max(0,n.highlightIndex-1),{};if(t.name==="down"){let s=e.maxResults??10,a=m8(e.items,r,s);return n.highlightIndex=Math.min(a.length-1,n.highlightIndex+1),{}}return t.name==="backspace"?o>0&&(r=r.substring(0,o-1)+r.substring(o),o--):t.name==="left"?o>0&&o--:t.name==="right"?o<r.length&&o++:t.char&&t.char.length===1&&!t.ctrl&&t.name!=="tab"&&(r=r.substring(0,o)+t.char+r.substring(o),o++),n.value=r,n.cursorPos=o,n.highlightIndex=0,{}}function o0(u,e,t){let n=u.getInputState(e.id,e.defaultValue??"");if(t.name==="escape"){u.inputMode.exitEdit();return}if(t.name==="up"){n.highlightIndex>0?n.highlightIndex--:(u.inputMode.exitEdit(),u.pageFocusPrev());return}if(t.name==="down"){n.highlightIndex<e.options.length-1?n.highlightIndex++:(u.inputMode.exitEdit(),u.pageFocusNext());return}if(t.name==="return"||t.name==="space"){let r=e.options[n.highlightIndex];r&&(n.value=r.value,e.onChange?.(r.value));return}}function s0(u,e){if(e.name==="escape"){u.commandMode=!1,u.commandBuffer="",u.render();return}if(e.name==="return"){u.executeCommand(u.commandBuffer),u.commandMode=!1,u.commandBuffer="",u.render();return}if(e.name==="backspace"){u.commandBuffer=u.commandBuffer.slice(0,-1),u.render();return}if(e.char&&e.char.length===1&&!e.ctrl){u.commandBuffer+=e.char,u.render();return}}function i0(u,e){let t=u.router.isHome();if(!t){let r=u.getFocusedInputBlock();if(r&&u.isTextEntryType(r.type)&&u.isAutoEditKey(e)){let o=r.id;u.inputMode.enterEdit(o),u.getInputState(o,w8(r)),u.handleEditMode(e),u.render();return}}let n=Jn(e,t);if(n)switch(n){case"quit":u.stop();break;case"back":u.router.back()&&(u.scrollOffset=0,u.pageFocusIndex=0,u.pageScrollOffset=0,u.pageFocusItems=[],u.focusRects=[],u.inputMode.reset(),u.render());break;case"up":if(t)u.focus.focusPrev();else{let r=j2(u.pageFocusIndex,"up",u.focusRects);r!==null?u.pageFocusIndex=r:u.pageFocusPrev()}u.render();break;case"down":if(t)u.focus.focusNext();else{let r=j2(u.pageFocusIndex,"down",u.focusRects);r!==null?u.pageFocusIndex=r:u.pageFocusNext()}u.render();break;case"left":if(!t){let r=u.pageFocusItems[u.pageFocusIndex];if(r?.kind==="block"&&r.block.type==="tabs"){let o=r.block,s=o.items.map(i=>i.label).join(","),a=u.tabState.get(s)??0;u.tabState.set(s,a>0?a-1:o.items.length-1)}else{let o=j2(u.pageFocusIndex,"left",u.focusRects);o!==null?u.pageFocusIndex=o:u.router.back()&&(u.scrollOffset=0,u.pageFocusIndex=0,u.pageScrollOffset=0,u.pageFocusItems=[],u.focusRects=[],u.inputMode.reset())}}u.render();break;case"right":if(t){let r=u.focus.focusedId;r&&u.navigateToPage(r)}else{let r=u.pageFocusItems[u.pageFocusIndex];if(r?.kind==="block"&&r.block.type==="tabs"){let o=r.block,s=o.items.map(i=>i.label).join(","),a=u.tabState.get(s)??0;u.tabState.set(s,(a+1)%o.items.length)}else{let o=j2(u.pageFocusIndex,"right",u.focusRects);o!==null&&(u.pageFocusIndex=o)}}u.render();break;case"select":if(t){let r=u.focus.focusedId;r&&u.navigateToPage(r)}else u.handlePageSelect();u.render();break;case"home":u.router.isHome()||(u.pageFocusIndex=0,u.pageScrollOffset=0),u.render();break;case"pageDown":!u.router.isHome()&&u.pageFocusItems.length>0&&(u.pageFocusIndex=u.pageFocusItems.length-1),u.render();break;case"command":u.commandMode=!0,u.commandBuffer="",u.render();break;default:if(n.startsWith("jump")){let r=parseInt(n.replace("jump",""));if(u.router.isHome()){let o=r-1;if(o<u.focus.count){u.focus.focusIndex=o;let s=u.router.getPageId(o);s&&u.navigateToPage(s)}}u.render()}break}}function a0(u,e){let t=u.getFocusedInputBlock();if(!t){u.inputMode.exitEdit(),u.render();return}switch(t.type){case"textInput":u0(u,t,e);break;case"textArea":e0(u,t,e);break;case"select":t0(u,t,e);break;case"numberInput":n0(u,t,e);break;case"searchInput":{let n=r0(u,t,e);n.action==="search"&&n.selected&&c0(u,t,n.selected);break}case"radioGroup":o0(u,t,e);break;default:e.name==="escape"&&u.inputMode.exitEdit();break}u.render()}function Ru(u){return u.toLowerCase().replace(/[^a-z0-9]/g,"")}function c0(u,e,t){if((e.action??(e.onSelect?"callback":"navigate"))==="callback"&&e.onSelect){e.onSelect(t.value);return}let r=t.value,o=u.site.pages.find(c=>c.id===r);if(o){u.router.navigate(r),u.enterPage(),u.showFeedback(`\u2192 ${o.title}`),u.render();return}if(l8(u,r,t.label)){u.showFeedback(t.label),u.render();return}let a=u.getCurrentPage(),i=a?typeof a.content=="function"?u.resolvedPageContent.get(a.id):a.content:null;if(i&&_2(u,i,r,t.label)){u.render(),setTimeout(()=>{l8(u,r,t.label),u.showFeedback(t.label),u.render()},50);return}for(let c of u.site.pages){if(c.id===u.router.currentPage)continue;let l=typeof c.content=="function"?u.resolvedPageContent.get(c.id):c.content;if(l&&gu(r,t.label,l)){u.router.navigate(c.id),u.enterPage(),l8(u,r,t.label),u.showFeedback(`\u2192 ${c.title} \u203A ${t.label}`),u.render();return}}e.onSelect&&e.onSelect(r),u.showFeedback(t.label)}function vu(u,e,t){if(!u)return!1;let n=Ru(u);return u.toLowerCase().includes(e)||n.includes(t)||t.includes(n)}function l8(u,e,t){let n=e.toLowerCase(),r=Ru(e),o=t.toLowerCase(),s=Ru(t);for(let i=0;i<u.pageFocusItems.length;i++){let c=u.pageFocusItems[i];if(c.kind==="block"){let l=c.block;if("id"in l&&l.id===e||l.type==="card"&&(vu(l.title,n,r)||vu(l.subtitle,n,r)||vu(l.title,s,s)||vu(l.subtitle,s,s))||l.type==="link"&&vu(l.label,n,r)||l.type==="hero"&&vu(l.title,n,r))return u.pageFocusIndex=i,!0}if(c.kind==="accordion-item"){let l=c.accordion.items[c.itemIndex].label,f=l.toLowerCase().replace(/[^a-z0-9]/g,""),_=n.replace(/[^a-z0-9]/g,"");if(l.toLowerCase().includes(n)||f.includes(_)||_.includes(f)||l.toLowerCase().startsWith(o.split(" \u2014 ")[0]?.trim().toLowerCase()??"\0")){u.pageFocusIndex=i;let p=c.accordion.items.map(m=>m.label).join(",");return u.accordionState.set(p,c.itemIndex),!0}}if(c.kind==="timeline-item"&&c.timeline.items[c.itemIndex].title.toLowerCase().includes(n))return u.pageFocusIndex=i,!0}let a=u.getCurrentPage();if(a){let i=typeof a.content=="function"?u.resolvedPageContent.get(a.id):a.content;if(i){let c=l0(i,e,t,u);if(c>=0)return u.pageFocusIndex=c,!0}}return!1}function _2(u,e,t,n){let r=t.toLowerCase(),o=Ru(t);for(let s of e){if(s.type==="tabs"){let a=s;for(let i=0;i<a.items.length;i++){let c=a.items[i].content;if(gu(t,n,c)){let l=a.items.map(f=>f.label).join(",");return u.tabState.set(l,i),!0}}}if(s.type==="section"&&s.content&&_2(u,s.content,t,n))return!0;if(s.type==="columns"){for(let a of s.panels)if(_2(u,a.content,t,n))return!0}if(s.type==="split"){let a=s;if(_2(u,a.config.first,t,n)||_2(u,a.config.second,t,n))return!0}}return!1}function l0(u,e,t,n){let r=e.toLowerCase(),o=Ru(e),s=Ru(t),a=0;for(let i of u)if(i.type==="grid"){let c=i;for(let l of c.config.items){let f=tu(l.content);if(l.title&&(vu(l.title,r,o)||vu(l.title,s,s)))return a;a+=f}}else if(i.type==="columns")for(let c of i.panels){let l=tu(c.content);if(c.title&&(vu(c.title,r,o)||vu(c.title,s,s)))return a;a+=l}else if(i.type==="split"){let c=i;a+=tu(c.config.first),a+=tu(c.config.second)}else if(i.type==="rows")for(let c of i.panels)a+=tu(c.content);else a+=tu([i]);return-1}function tu(u){let e=0;for(let t of u)if(["card","link","hero","textInput","textArea","select","checkbox","toggle","radioGroup","numberInput","searchInput","button"].includes(t.type))e++;else if(t.type==="accordion")e+=t.items.length;else if(t.type==="timeline")e+=t.items.length;else if(t.type==="tabs")e++;else if(t.type==="section")e+=tu(t.content);else if(t.type==="form")e+=tu(t.fields);else if(t.type==="columns")for(let n of t.panels)e+=tu(n.content);else if(t.type==="rows")for(let n of t.panels)e+=tu(n.content);else if(t.type==="split")e+=tu(t.config.first),e+=tu(t.config.second);else if(t.type==="grid")for(let n of t.config.items)e+=tu(n.content);else if(t.type==="panel")e+=tu(t.config.content);else if(t.type==="box")e+=tu(t.config.children);else if(t.type==="row")for(let n of t.cols)e+=tu(n.content);else t.type==="container"&&(e+=tu(t.content));return e}function gu(u,e,t){let n=u.toLowerCase(),r=Ru(u);for(let o of t){if("id"in o&&o.id===u||o.type==="card"&&(vu(o.title,n,r)||vu(o.subtitle,n,r)))return!0;if(o.type==="link"){let s=Ru(o.label);if(o.label.toLowerCase().includes(n)||s.includes(r)||r.includes(s))return!0}if(o.type==="accordion")for(let s of o.items){let a=s.label.toLowerCase().replace(/[^a-z0-9]/g,"");if(s.label.toLowerCase().includes(n)||a.includes(r)||r.includes(a))return!0}if(o.type==="timeline"){for(let s of o.items)if(s.title.toLowerCase().includes(n))return!0}if(o.type==="section"&&gu(u,e,o.content)||o.type==="form"&&gu(u,e,o.fields))return!0;if(o.type==="columns"){for(let s of o.panels)if(gu(u,e,s.content))return!0}if(o.type==="rows"){for(let s of o.panels)if(gu(u,e,s.content))return!0}if(o.type==="split"){let s=o;if(gu(u,e,s.config.first)||gu(u,e,s.config.second))return!0}if(o.type==="grid"){for(let s of o.config.items)if(gu(u,e,s.content))return!0}if(o.type==="panel"&&gu(u,e,o.config.content)||o.type==="box"&&gu(u,e,o.config.children))return!0;if(o.type==="row"){for(let s of o.cols)if(gu(u,e,s.content))return!0}if(o.type==="container"&&gu(u,e,o.content))return!0}return!1}function f0(u,e){if(e.length===0)return u;if(e.length===1)return u.map(r=>h(e[0])+r+d);let t=Math.max(...u.map(r=>r.length),2),n=V2(e,t);return u.map(r=>{let o="",s=!1;for(let a=0;a<r.length;a++)r[a]===" "?(s&&(o+=d,s=!1),o+=" "):(o+=h(n[a])+r[a],s=!0);return o+d})}var h0={dots:["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"],bars:["\u258F","\u258E","\u258D","\u258C","\u258B","\u258A","\u2589","\u2588","\u2589","\u258A","\u258B","\u258C","\u258D","\u258E","\u258F"],braille:["\u28FE","\u28FD","\u28FB","\u28BF","\u287F","\u28DF","\u28EF","\u28F7"],circle:["\u25D0","\u25D3","\u25D1","\u25D2"],bounce:["\u2801","\u2802","\u2804","\u2840","\u2880","\u2820","\u2810","\u2808"],line:["-","\\","|","/"]};function g8(u,e){let t=h0[u];return t[e%t.length]}function F8(u,e,t){let n=[],r=t.theme,o=G(t.width,K.menu);for(let s=0;s<u.length;s++){let a=u[s],i=s===e,c=a.icon??"\u25C6",f=` [${`${s+1}`}]`;if(i){let p=Math.max(1,o.content-7-L(f)),m=Q(a.label,p),g=h(r.accent)+"\u276F"+d,F=h(r.accent)+k+` ${c} `+d,w=h(r.accent)+k+m+d,y=h(r.muted)+q+f+d;n.push(` ${g}${F}${w}${y}`)}else{let p=Math.max(1,o.content-7-L(f)),m=Q(a.label,p),g=h(r.muted)+` ${c} `+d,F=h(r.text)+m+d,w=h(r.subtle)+q+f+d;n.push(` ${g}${F}${w}`)}}return n}function He(u,e){if(u===void 0||u==="auto")return"auto";if(typeof u=="number")return u;if(typeof u=="string"&&u.endsWith("%")){let n=parseFloat(u);if(!isNaN(n))return Math.floor(n/100*e)}let t=parseInt(u,10);return isNaN(t)?"auto":t}function Ue(u,e,t){let n=Math.max(0,e-t),r=0,o=0;for(let i of u)i==="auto"?o++:r+=i;if(r>n&&r>0&&o===0){let i=n/r;return u.map(c=>Math.max(0,c==="auto"?0:Math.floor(c*i)))}let s=Math.max(0,n-r),a=o>0?Math.floor(s/o):0;return u.map(i=>Math.max(0,i==="auto"?a:i))}var d0=10,_0=3,N2=3;function g2(u,e,t){if(u.length===0)return[];if(u.length===1)return[{x:0,y:0,width:e,height:t,panel:u[0]}];let r=(u.length-1)*N2,o=Math.max(0,e-r),s=u.map(l=>He(l.width,o)),a=Ue(s,e,r),i=[],c=0;for(let l=0;l<u.length;l++)i.push({x:c,y:0,width:a[l],height:t,panel:u[l]}),c+=a[l],l<u.length-1&&(c+=N2);return i}function y8(u,e,t){if(u.length===0)return[];if(u.length===1)return[{x:0,y:0,width:e,height:t,panel:u[0]}];let n=u.length-1,r=u.map(i=>He(i.height,t)),o=Ue(r,t,n),s=[],a=0;for(let i=0;i<u.length;i++)s.push({x:0,y:a,width:e,height:o[i],panel:u[i]}),a+=o[i],i<u.length-1&&(a+=1);return s}function b8(u,e,t){let n=u.ratio??50,o=u.border!==!1?N2:0;if(u.direction==="horizontal"){let s=Math.floor((e-o)*n/100),a=e-s-o;return[{x:0,y:0,width:s,height:t,panel:{content:u.first}},{x:s+o,y:0,width:a,height:t,panel:{content:u.second}}]}else{let s=Math.floor((t-o)*n/100),a=t-s-o;return[{x:0,y:0,width:e,height:s,panel:{content:u.first}},{x:0,y:s+o,width:e,height:a,panel:{content:u.second}}]}}function ze(u,e,t){let{cols:n,items:r,gap:o=1}=u;if(r.length===0||n<=0)return[];let s=u.rows??Math.ceil(r.length/n),a=Math.max(d0,Math.floor((e-o*(n-1))/n)),i=Math.max(_0,Math.floor((t-o*(s-1))/s)),c=[];for(let l=0;l<r.length;l++){let f=l%n,_=Math.floor(l/n);if(_>=s)break;c.push({x:f*(a+o),y:_*(i+o),width:a,height:i,panel:r[l]})}return c}function Zu(u,e){let n=u*20+(u-1);return e<n}function Ve(u,e,t){let r=u;for(;r>1&&!(Math.floor((e-t*(r-1))/r)>=20);)r--;return Math.max(1,r)}var p0=12;function x8(u){return u<60?"xs":u<90?"sm":u<120?"md":"lg"}function v8(u,e,t){let n=e;return n==="xs"&&u.xs!==void 0?u.xs:(n==="xs"||n==="sm")&&u.sm!==void 0?u.sm:(n==="xs"||n==="sm"||n==="md")&&u.md!==void 0?u.md:u.lg!==void 0&&n==="lg"?u.lg:u.span??t}function Ge(u,e,t=1,n=e){if(u.length===0)return[];let r=x8(n),o=Math.max(1,Math.floor(p0/u.length)),s=u.map(_=>v8(_,r,o)),a=s.reduce((_,p)=>_+p,0),i=u.length>1?(u.length-1)*N2:0,c=Math.max(0,e-i),l=u.map((_,p)=>Math.max(1,Math.floor(s[p]/a*c))),f=c-l.reduce((_,p)=>_+p,0);for(let _=0;_<l.length&&f>0;_++)l[_]++,f--;return u.map((_,p)=>({content:_.content,width:l[p],padding:_.padding}))}function Ke(u,e,t,n){let r=[];return ru(u,0,0,e,t,r,{value:0},n),r}function ru(u,e,t,n,r,o,s,a){let i=t;for(let c of u)switch(c.type){case"columns":{let l=c;if(Zu(l.panels.length,n))for(let f of l.panels){let _=d2(f);i=ru(f.content,e+_.dx,i+_.dy,n-_.dw,r-_.dh,o,s,a),i+=2}else{let f=g2(l.panels,n,r);for(let p=0;p<f.length;p++){let m=f[p],g=d2(l.panels[p]);ru(l.panels[p].content,e+m.x+g.dx,i+g.dy,m.width-g.dw,m.height-g.dh,o,s,a)}let _=f.length>0?Math.max(...f.map(p=>p.height)):0;i+=_+1}break}case"rows":{let l=c,f=y8(l.panels,n,r);for(let p=0;p<f.length;p++){let m=f[p],g=d2(l.panels[p]);ru(l.panels[p].content,e+m.x+g.dx,i+m.y+g.dy,m.width-g.dw,m.height-g.dh,o,s,a)}let _=f.length>0?f[f.length-1].y+f[f.length-1].height:0;i+=_+1;break}case"split":{let f=c.config,m=f.direction==="horizontal"&&Zu(2,n)?{...f,direction:"vertical"}:f,g=b8(m,n,r),F=[f.first,f.second];for(let y=0;y<g.length;y++){let v=g[y];ru(F[y],e+v.x,i+v.y,v.width,v.height,o,s,a)}let w=g.length>0?Math.max(...g.map(y=>y.y+y.height)):0;i+=w+1;break}case"grid":{let l=c,f=l.config.gap??1,_=Ve(l.config.cols,n,f),p={...l.config,cols:_},m=ze(p,n,r);for(let F=0;F<m.length;F++){let w=m[F],y=l.config.items[F];if(!y)continue;let v=d2(y);ru(y.content,e+w.x+v.dx,i+w.y+v.dy,w.width-v.dw,w.height-v.dh,o,s,a)}let g=m.length>0?Math.max(...m.map(F=>F.y+F.height)):0;i+=g+1;break}case"panel":{let l=c,f=d2(l.config);i=ru(l.config.content,e+f.dx,i+f.dy,n-f.dw,r-f.dh,o,s,a),i+=1;break}case"box":{let l=c.config,f=l.direction??"column",_=l.gap??0,p=l.children??[];if(f==="row"){let m=p.map(g=>g.type==="box"?{content:[g],width:g.config?.width,height:g.config?.height,padding:g.config?.padding}:{content:[g]});if(Zu(m.length,n))for(let g of m)i=ru(g.content,e,i,n,r,o,s,a),i+=_||1;else{let g=g2(m,n,r);for(let w=0;w<g.length;w++){let y=g[w];ru(m[w].content,e+y.x,i,y.width,y.height,o,s,a)}let F=g.length>0?Math.max(...g.map(w=>w.height)):0;i+=F+1}}else{for(let m=0;m<p.length;m++)m>0&&_>0&&(i+=_),i=ru([p[m]],e,i,n,r,o,s,a);i+=1}break}case"row":{let l=c,f=l.gap??1,_=l.cols,p=x8(n),m=Math.max(1,Math.floor(12/_.length)),g=_.map(y=>v8(y,p,m)),F=[[]],w=0;for(let y=0;y<_.length;y++){let v=_[y].offset??0,x=g[y]+v;w+x>12&&F[F.length-1].length>0&&(F.push([]),w=0),F[F.length-1].push(_[y]),w+=x}for(let y of F){let v=Ge(y,n,f,n);if(Zu(v.length,n))for(let x of v)i=ru(x.content,e,i,n,r,o,s,a),i+=2;else{let x=g2(v,n,r);for(let C=0;C<x.length;C++){let S=x[C];ru(v[C].content,e+S.x,i,S.width,S.height,o,s,a)}let B=x.length>0?Math.max(...x.map(C=>C.height)):0;i+=B+1}}break}case"container":{let l=c,f=l.padding??0,_=l.maxWidth??n,p=Math.max(1,Math.min(n,_)-f*2),m=n-p,g=l.center!==!1?Math.floor(m/2):f;i=ru(l.content,e+g,i,p,r,o,s,a),i+=1;break}case"section":i+=3,i=ru(c.content,e,i,n,r,o,s,a);break;case"form":i=ru(c.fields,e,i,n,r,o,s,a);break;case"dynamic":{let l=a(c);i=ru(l,e,i,n,r,o,s,a);break}case"accordion":{for(let l=0;l<c.items.length;l++)o.push({focusIndex:s.value,x:e,y:i,width:n,height:2}),s.value++,i+=2;i+=1;break}case"timeline":{for(let l=0;l<c.items.length;l++)o.push({focusIndex:s.value,x:e,y:i,width:n,height:3}),s.value++,i+=3;i+=1;break}case"tabs":{o.push({focusIndex:s.value,x:e,y:i,width:n,height:3}),s.value++,i+=4;break}default:{let l=U.isFocusable(c.type),f=m0(c,n);l&&(o.push({focusIndex:s.value,x:e,y:i,width:n,height:f}),s.value++),i+=f+1}}return i}function m0(u,e){switch(u.type){case"card":{let t=3;return u.subtitle&&t++,u.body&&(t+=Math.ceil(u.body.length/Math.max(1,e-6))+1),u.tags&&u.tags.length>0&&t++,Math.max(3,t)}case"link":return 1;case"hero":return 5;case"textInput":return 3;case"textArea":return(u.rows??3)+2;case"select":return 2;case"checkbox":return 1;case"toggle":return 1;case"radioGroup":return(u.options?.length??2)+1;case"numberInput":return 2;case"searchInput":return 3;case"button":return 1;case"text":return Math.max(1,Math.ceil((u.content?.length??0)/Math.max(1,e))+1);case"table":return(u.rows?.length??0)+3;case"list":return(u.items?.length??0)+1;case"divider":return 1;case"spacer":return u.lines??1;case"quote":return 3;case"badge":return 1;case"image":return 10;case"progressBar":return 2;case"gallery":return 8;default:return 3}}function d2(u){let e=u.border===!0||typeof u.border=="string"&&u.border!=="none"&&u.border!=="left"&&u.border!=="right"&&u.border!=="top"&&u.border!=="bottom",t=u.padding??0,n=!!u.title&&!e,r=e?1:0,o=n?1:0;return{dx:r+t,dy:r+t+o,dw:(r+t)*2,dh:(r+t)*2+o}}function g0(u,e,t){let r=G(t.width,{padding:1,border:!0}).content,o=[];if(e.messages.length===0&&!e.loading){if(u.suggestedQuestions&&u.suggestedQuestions.length>0){o.push(h(t.theme.muted)+q+" Try asking:"+d);for(let c of u.suggestedQuestions)o.push(h(t.theme.subtle)+" "+c+d);o.push("")}}else for(let c of e.messages){if(c.role==="user")o.push(h(t.theme.accent)+k+" You: "+d+h(t.theme.text)+c.content+d);else{let l=pu(c.content,Math.max(1,r-6));o.push(h(t.theme.muted)+k+" AI: "+d+h(t.theme.text)+l[0]+d);for(let f=1;f<l.length;f++)o.push(" "+h(t.theme.text)+l[f]+d)}o.push("")}e.loading&&(o.push(h(t.theme.accent)+" ..."+d),o.push("")),e.error&&(o.push(h(t.theme.error)+" "+e.error+d),o.push(""));let s=u.placeholder??"Type a message...",a=e.input||(t.editing?"":h(t.theme.subtle)+s+d),i=t.editing?h(t.theme.accent)+k+" > "+d:h(t.theme.muted)+" > "+d;return o.push(i+a),o}function qe(u,e,t){let r=G(e.width,K.text).content,o=e.theme;return t==="markdown"?F0(u,r,o):pu(u,r).map(s=>N8(s,o.text))}function F0(u,e,t){let n=[],r=u.split(/\n\n+/);for(let o of r){let s=o.trim();if(!s)continue;let a=s.split(`
88
- `);for(let i of a){let c=i.trim();if(!c)continue;if(c.startsWith("#")){let _=c.match(/^(#+)\s+(.*)/);if(_){let p=_[2];n.push(k+h(t.accent)+p+d);continue}}if(c.match(/^[-*]\s/)){let _=c.replace(/^[-*]\s+/,""),p=f8(_,t),m=Oe(_),g=pu(m,e-2);for(let F=0;F<g.length;F++){let w=F===0?"\u2022 ":" ",y=F===0?f8(g[F],t):h(t.text)+g[F]+d;n.push(h(t.text)+w+y+d)}continue}let l=Oe(c),f=pu(l,e);for(let _ of f)n.push(h(t.text)+f8(_,t)+d)}n.push("")}return n.length>0&&n[n.length-1]===""&&n.pop(),n}function f8(u,e){let t=u;return t=t.replace(/\*\*(.+?)\*\*/g,(n,r)=>k+h(e.accent)+r+d+h(e.text)),t=t.replace(/\*(.+?)\*/g,(n,r)=>Ku+r+d+h(e.text)),t=t.replace(/`(.+?)`/g,(n,r)=>h(e.warning)+r+d+h(e.text)),t}function Oe(u){return u.replace(/\*\*(.+?)\*\*/g,"$1").replace(/\*(.+?)\*/g,"$1").replace(/`(.+?)`/g,"$1")}function B8(u,e){let t=e.theme,r=G(e.width,K.card).content,o=[],s=e.focused?"\u25C6":"\u25C7",a=u.title??"";if(u.subtitle){let i=s+" ",c=u.subtitle,l=L(i)+L(a)+1+L(c);if(l>r){let f=Math.max(1,r-L(i)),_=Math.min(L(c),Math.max(4,Math.floor(f/2))),p=Q(c,_),m=i2(p),g=Math.max(1,f-1-L(m)),F=Q(a,g),w=i2(F),y=L(i)+L(w)+L(m),v=Math.max(1,r-y);o.push(h(t.accent)+s+" "+k+F+d+" ".repeat(v)+h(t.muted)+p+d)}else{let f=Math.max(1,r-l);o.push(h(t.accent)+s+" "+k+a+d+" ".repeat(f)+h(t.muted)+u.subtitle+d)}}else{let i=s+" ";if(L(i)+L(a)>r){let c=Math.max(1,r-L(i)),l=Q(a,c);o.push(h(t.accent)+s+" "+k+l+d)}else o.push(h(t.accent)+s+" "+k+a+d)}if(u.body){let i=pu(u.body,r);for(let c of i)o.push(h(t.text)+c+d)}if(u.tags&&u.tags.length>0){o.push("");let i="",c="";for(let l=0;l<u.tags.length;l++){let _="["+u.tags[l]+"]",p=h(t.warning)+_+d;L(i)===0?(i=_,c=p):L(i)+1+L(_)<=r?(i+=" "+_,c+=" "+p):(o.push(c),i=_,c=p)}c&&o.push(c)}return $u({content:o,width:e.width,border:u.border??e.borderStyle??"rounded",padding:1,borderColor:e.focused?e.theme.accent:void 0},e)}function Je(u,e,t){let n=[],r=e.theme,o=G(e.width,K.timeline),s=e.width,a=o.content;for(let i=0;i<u.length;i++){let c=u[i],l=i===0,f=i===u.length-1,_=l?"\u25CF":"\u25CB",p=h(r.accent)+" "+_+" "+d,m=o.content,g;if(c.subtitle)if((c.title+" \xB7 "+c.subtitle).length>m){let w=m-c.title.length-3;w>0?g=p+h(r.accent)+k+c.title+d+h(r.muted)+" \xB7 "+Q(c.subtitle,w)+d:g=p+h(r.accent)+k+Q(c.title,m)+d}else g=p+h(r.accent)+k+c.title+d+h(r.muted)+" \xB7 "+c.subtitle+d;else g=p+h(r.accent)+k+Q(c.title,m)+d;if(n.push(g),c.period&&n.push(h(r.border)+" \u2502 "+d+h(r.muted)+q+c.period+d),c.description){let F=pu(c.description,a);for(let w of F)n.push(h(r.border)+" \u2502 "+d+h(r.text)+w+d)}f||n.push(h(r.border)+" \u2502"+d)}return n}function Qe(u,e,t,n){let r=t.theme,o=G(t.width,K.progressBar),s=n?.max??100,a=n?.showPercent??!0,i=Number.isFinite(e)?e:0,c=Math.min(100,Math.max(0,i/s*100)),l=a?5:0,f=Math.max(4,Math.floor(o.content*.4)),_=Math.min(L(u)+2,f),p=Math.max(5,o.content-_-l-2),m=Math.round(c/100*p),g=p-m,F;c>=70?F=r.success:c>=40?F=r.warning:F=r.error;let w=L(u)>_-2?Q(u,_-2):u,y=h(r.text)+_u(w,_)+d,v=h(F)+"\u2588".repeat(m)+d,x=h(r.subtle)+"\u2591".repeat(g)+d,B=a?h(r.muted)+` ${Math.round(c)}%`+d:"";return[y+v+x+B]}function Ze(u,e,t){let n=t.theme,r=[],o=u.length,s=G(t.width,K.table),a=u.map((p,m)=>Math.max(L(p),...e.map(F=>L(F[m]??"")))+2),i=Math.max(o,s.content-(o-1)),c=a.reduce((p,m)=>p+m,0);if(c>i){for(let m=0;m<a.length;m++)a[m]=Math.max(2,Math.floor(a[m]/c*i));let p=a.reduce((m,g)=>m+g,0);for(;p>i;){let m=0;for(let g=1;g<a.length;g++)a[g]>a[m]&&(m=g);if(a[m]<=2)break;a[m]--,p--}}let l=t.borderStyle??"single",f=ju(l);r.push(h(n.border)+f.topLeft+a.map(p=>f.horizontal.repeat(p)).join(f.teeDown)+f.topRight+d);let _=u.map((p,m)=>{let g=" "+p,F=a[m]-1,w=L(g)>F?Q(g,F)+" ":_u(g,a[m]);return h(n.accent)+k+w+d});r.push(h(n.border)+f.vertical+d+_.join(h(n.border)+f.vertical+d)+h(n.border)+f.vertical+d),r.push(h(n.border)+f.teeRight+a.map(p=>f.horizontal.repeat(p)).join(f.cross)+f.teeLeft+d);for(let p of e){let m=p.map((g,F)=>{let w=" "+(g??""),y=a[F]-1,v=L(w)>y?Q(w,y)+" ":_u(w,a[F]);return h(n.text)+v+d});r.push(h(n.border)+f.vertical+d+m.join(h(n.border)+f.vertical+d)+h(n.border)+f.vertical+d)}return r.push(h(n.border)+f.bottomLeft+a.map(p=>f.horizontal.repeat(p)).join(f.teeUp)+f.bottomRight+d),r}function Xe(u,e,t,n){let r=t.theme,o=n?.icon??"\u2192",s=n?.focused??t.focused??!1,i=G(t.width,K.link).content;if(s){let F=" \u276F "+o+" ",w=" ",y=L(F),v=i-y;if(v<=0)return[h(r.accent)+k+Q(F,i)+d];let x=L(u)+L(w)+L(e);if(y+x<=i)return[h(r.accent)+k+F+s2+u+d+h(r.muted)+q+w+e+d];let B=i-y-L(u)-L(w);if(B>=4){let S=Q(e,B);return[h(r.accent)+k+F+s2+u+d+h(r.muted)+q+w+S+d]}let C=Q(u,v);return[h(r.accent)+k+F+s2+C+d]}let c=" "+o+" ",l=" ",f=L(c),_=i-f;if(_<=0)return[h(r.text)+Q(c,i)+d];let p=L(u)+L(l)+L(e);if(f+p<=i)return[h(r.text)+c+u+d+h(r.subtle)+q+l+e+d];let m=i-f-L(u)-L(l);if(m>=4){let F=Q(e,m);return[h(r.text)+c+u+d+h(r.subtle)+q+l+F+d]}let g=Q(u,_);return[h(r.text)+c+g+d]}function u5(u,e){let t=u.theme,n=e?.color??t.border,o=G(u.width,K.divider).content;if(e?.style==="label"&&e.label){let a=Math.max(0,o-8),i=e.label;i.length>a&&(i=i.slice(0,Math.max(0,a-1))+"\u2026");let c=` ${i} `,l=Math.max(0,o-c.length-4),f=Math.floor(l/2),_=l-f;return[h(n)+"\u2500\u2500"+"\u2500".repeat(f)+d+h(t.muted)+c+d+h(n)+"\u2500".repeat(_)+"\u2500\u2500"+d]}let s="\u2500";return e?.style==="dashed"?s="\u2504":e?.style==="dotted"?s="\xB7":e?.style==="double"&&(s="\u2550"),[h(n)+s.repeat(o)+d]}function e5(u=1){return Array(Math.max(0,u)).fill("")}function t5(u,e,t){let n=e.theme,r=t?.style??"border",s=G(e.width,K.quote).content,a=[],i=pu(`"${u}"`,s);if(r==="border"){for(let c of i)a.push(h(n.accent)+" \u2502 "+d+Ku+h(n.text)+c+d);if(t?.attribution){let c="\u2014 "+t.attribution;L(c)>s&&(c=c.substring(0,s-1)+"\u2026");let l=Math.max(0,s-L(c));a.push(h(n.accent)+" \u2502 "+d+h(n.muted)+q+" ".repeat(l)+c+d)}}else if(r==="fancy"){a.push(h(n.accent)+" \u250C"+"\u2500".repeat(s+2)+"\u2510"+d);for(let c of i)a.push(h(n.accent)+" \u2502 "+d+Ku+h(n.text)+c+" ".repeat(Math.max(0,s-L(c)))+d+h(n.accent)+" \u2502"+d);if(t?.attribution){let c="\u2014 "+t.attribution,l=Math.max(0,s-L(c));a.push(h(n.accent)+" \u2502 "+d+" ".repeat(l)+h(n.muted)+c+d+h(n.accent)+" \u2502"+d)}a.push(h(n.accent)+" \u2514"+"\u2500".repeat(s+2)+"\u2518"+d)}else{for(let c of i)a.push(" "+Ku+h(n.text)+c+d);t?.attribution&&a.push(" "+h(n.muted)+q+"\u2014 "+t.attribution+d)}return a}function n5(u,e,t){let n=G(e.width,K.badge),r=t?.color??e.theme.warning;return(t?.style??"outline")==="filled"?G2+h(r)+` ${u} `+d:h(r)+`[${u}]`+d}function r5(u,e){let t=e.theme,n=[],o=G(e.width,K.hero).content;n.push("");let s=pu(u.title,o);for(let a of s){let i=h(t.accent)+k+a+d;n.push(_u(i,o,"center"))}if(n.push(""),u.subtitle){let a=pu(u.subtitle,o);for(let i of a){let c=h(t.text)+i+d;n.push(_u(c,o,"center"))}n.push("")}if(u.cta){let a=h(t.accent)+k+s2+u.cta.label+d;n.push(_u(a,o,"center")),n.push("")}if(u.art){let a=u.art.split(`
89
- `);for(let i of a)n.push(_u(h(t.muted)+i+d,o,"center"))}return n.push(""),n}function o5(u,e,t){let n=G(e.width,K.list),r=e.theme,o=t??"bullet",s={bullet:()=>"\u2022",number:c=>`${c+1}.`,dash:()=>"\u2500",check:()=>"\u2713",arrow:()=>"\u2192"},a=s[o]??s.bullet,i=[];for(let c=0;c<u.length;c++){let f=` ${a(c)} `,_=" ".repeat(f.length),p=Math.max(1,n.content-f.length),m=pu(u[c],p);for(let g=0;g<m.length;g++)g===0?i.push(h(r.accent)+f+d+h(r.text)+m[g]+d):i.push(_+h(r.text)+m[g]+d)}return i}function s5(u,e,t){let n=G(e.width,K.image),r=Math.min(t?.width??Math.min(40,n.content),n.content),o=Math.floor(r/3),s=e.theme,a=[];a.push(h(s.border)+"\u250C"+"\u2500".repeat(r)+"\u2510"+d);for(let i=0;i<o;i++)if(i===Math.floor(o/2)){let c=`[Image: ${u}]`,l=Math.max(0,r-L(c)),f=Math.floor(l/2),_=l-f;a.push(h(s.border)+"\u2502"+d+" ".repeat(f)+h(s.muted)+c+d+" ".repeat(_)+h(s.border)+"\u2502"+d)}else a.push(h(s.border)+"\u2502"+" ".repeat(r)+"\u2502"+d);return a.push(h(s.border)+"\u2514"+"\u2500".repeat(r)+"\u2518"+d),a}function i5(u,e,t){let n=G(e.width,K.gallery),r=t?.columns??Math.min(3,Math.max(1,Math.floor(n.content/30))),o=t?.scrollIndex??0,s=e.theme,a=Math.floor((n.content-(r-1)*2)/r);for(;a<20&&r>1;)r--,a=Math.floor((n.content-(r-1)*2)/r);let c=u.slice(o,o+r).map(_=>B8(_,{...e,width:a})),l=Math.max(0,...c.map(_=>_.length)),f=[];for(let _=0;_<l;_++){let p=c.map(m=>{let g=m[_]??"";return _u(g,a)});f.push(p.join(" "))}if(u.length>r){let _=h(s.muted)+q+` \u25C2 ${o+1}-${Math.min(o+r,u.length)} of ${u.length} \u25B8`+d;f.push(_u(_,n.content,"center"))}return f}U.register("text",(u,e)=>qe(u.content,e,u.style));U.register("list",(u,e)=>o5(u.items,e,u.style));U.register("quote",(u,e)=>t5(u.text,e,{attribution:u.attribution,style:u.style}));U.register("table",(u,e)=>Ze(u.headers,u.rows,e));U.register("progressBar",(u,e)=>Qe(u.label,u.value,e,{max:u.max,showPercent:u.showPercent}));U.register("badge",(u,e)=>[n5(u.text,e,{color:u.color,style:u.style})]);U.register("image",(u,e)=>s5(u.path,e,{width:u.width,mode:u.mode}));U.register("divider",(u,e)=>u5(e,{style:u.style,label:u.label,color:u.color}));U.register("spacer",u=>e5(u.lines));U.register("custom",(u,e)=>u.render(e.width,e.theme));U.register("card",(u,e)=>B8(u,e),!0);U.register("link",(u,e)=>Xe(u.label,u.url,e,{icon:u.icon}),!0);U.register("hero",(u,e)=>r5(u,e),!0);U.register("tabs",(u,e)=>[],!0);U.register("accordion",(u,e)=>[],!0);U.register("timeline",(u,e)=>Je(u.items,e,u.style));U.register("gallery",(u,e)=>i5(u.items,e,{columns:u.columns}));U.register("textInput",(u,e)=>[],!0);U.register("textArea",(u,e)=>[],!0);U.register("select",(u,e)=>[],!0);U.register("checkbox",(u,e)=>[],!0);U.register("toggle",(u,e)=>[],!0);U.register("radioGroup",(u,e)=>[],!0);U.register("numberInput",(u,e)=>[],!0);U.register("searchInput",(u,e)=>[],!0);U.register("button",(u,e)=>[],!0);U.register("columns",(u,e)=>[]);U.register("rows",(u,e)=>[]);U.register("split",(u,e)=>[]);U.register("grid",(u,e)=>[]);U.register("panel",(u,e)=>[]);U.register("box",(u,e)=>[]);U.register("row",(u,e)=>[]);U.register("container",(u,e)=>[]);function b0(u,e,t,n){let r=t.theme,o=t.focused??!1,s=[],a=G(t.width,K.accordion);for(let i=0;i<u.length;i++){let c=u[i],l=i===e,f=l?"\u25BE":"\u25B8",_=o&&(l||e<0&&i===0),p=Math.max(0,a.content-2),m=Q(c.label,p),g=l||_?r.accent:r.text,F=_?"\u276F ":" ";if(s.push(h(g)+k+`${F}${f} ${m}`+d),l){let w=n(c.content,{...t,width:a.content,focused:!1});for(let y of w)s.push(" "+y);s.push("")}}return s}function C0(u,e,t,n){let r=t.theme,o=[],s=G(t.width,K.tabs),a=" ";for(let c=0;c<u.length;c++){let l=u[c];c===e?a+=G2+h(r.accent)+` ${l.label} `+d+" ":a+=h(r.muted)+`[${l.label}]`+d+" "}o.push(a),o.push(h(r.border)+" "+"\u2500".repeat(Math.max(0,s.content))+d);let i=u[e];if(i){let c=n(i.content,{...t,width:s.content});for(let l of c)o.push(" "+l)}return o}function w0(u,e,t){let n=t.theme,r=[],o=!!t.focused,s=e.editing;r.push(h(o?n.accent:n.text)+k+" "+u.label+d);let i=G(t.width,K.textInput).content,c,l=e.value;if(l.length===0&&!s?c=h(n.subtle)+q+(u.placeholder??"")+d:u.mask&&l.length>0?c=h(n.text)+"\u25CF".repeat(l.length)+d:c=h(n.text)+l+d,s){let p=Math.min(e.cursorPos,l.length),m;u.mask?m="\u25CF".repeat(l.length):m=l;let g=Math.max(1,i-1),F=0;p>g&&(F=p-g);let w=F+g,y=m.substring(F,w),v=p-F,x=y.substring(0,v),B=v<y.length?y[v]:" ",C=y.substring(v+1);c=h(n.text)+x+h(n.accent)+k+"\u2588"+d+h(n.text)+C+d,v>=y.length&&(c=h(n.text)+y+h(n.accent)+"\u2588"+d)}let f=o?n.accent:n.border,_=$u({content:[c],width:t.width,border:t.borderStyle??"rounded",padding:1,borderColor:f},t);return r.push(..._),e.error&&r.push(h(n.error)+" \u2717 "+e.error+d),r}function y0(u,e,t){let n=t.theme,r=[],o=!!t.focused,s=e.editing,a=u.rows??4,c=G(t.width,K.textArea).content;r.push(h(o?n.accent:n.text)+k+" "+u.label+d);let l=e.value,f=l.split(`
90
- `),_=[],p=[];for(let x=0;x<f.length;x++)if(f[x].length===0)_.push(""),p.push({origLine:x,origCol:0});else{let B=pu(f[x],c);for(let C of B)_.push(C),p.push({origLine:x,origCol:0})}let m=0,g=0;if(s){let x=e.cursorPos;for(let B=0;B<f.length;B++){if(x<=f[B].length){let C=0;for(let S=0;S<_.length;S++)if(p[S].origLine===B){if(x<=_[S].length){m=S,g=x;break}if(x-=_[S].length,x>0&&S+1<_.length&&p[S+1]?.origLine===B)continue;m=S,g=_[S].length;break}break}x-=f[B].length+1}}let F=e.scrollOffset;s&&(m<F?F=m:m>=F+a&&(F=m-a+1)),F=Math.max(0,Math.min(F,Math.max(0,_.length-a)));let w=[];for(let x=0;x<a;x++){let B=F+x;if(B<_.length){let C=_[B];if(s&&B===m){let S=C.substring(0,g),D=C.substring(g);C=h(n.text)+S+h(n.accent)+"\u2588"+d+h(n.text)+D+d}else C=h(n.text)+C+d;if(_.length>a){let S=Math.max(1,Math.floor(a*a/_.length)),D=Math.floor(F*a/_.length);x>=D&&x<D+S}w.push(C)}else w.push("")}l.length===0&&!s&&u.placeholder&&(w[0]=h(n.subtle)+q+u.placeholder+d);let y=o?n.accent:n.border,v=$u({content:w,width:t.width,border:t.borderStyle??"rounded",padding:1,borderColor:y},t);return r.push(...v),e.error&&r.push(h(n.error)+" \u2717 "+e.error+d),r}function x0(u,e,t){let n=t.theme,r=[],o=!!t.focused,a=G(t.width,K.select).content;r.push(h(o?n.accent:n.text)+k+" "+u.label+d);let i=u.options.find(y=>y.value===e.value),c=i?.label??u.placeholder??"Choose an option...",l=i?n.text:n.subtle,f=e.open?"\u25B4":"\u25BE",_=h(n.muted)+f+d,p=Math.max(1,a-2),m=Q(c,p),g=L(m),F=Math.max(1,a-g-1),w=h(l)+m+d+" ".repeat(F)+_;if(e.open){let y=[w],v=0;for(let C=0;C<u.options.length;C++){let S=u.options[C],D=C===e.highlightIndex,$=D?"\u276F ":" ",I=D?n.accent:n.text,M=Q(S.label,Math.max(1,a-2));y.push(h(I)+(D?k:"")+$+M+d)}let x=o?n.accent:n.border,B=$u({content:y,width:t.width,border:t.borderStyle??"rounded",padding:1,borderColor:x,midSeparatorAfter:v},t);r.push(...B)}else{let y=o?n.accent:n.border,v=$u({content:[w],width:t.width,border:t.borderStyle??"rounded",padding:1,borderColor:y},t);r.push(...v)}return r}function v0(u,e,t){let n=t.theme,r=!!t.focused,o=G(t.width,K.checkbox),s=e?"\u2611":"\u2610",a=e||r?n.accent:n.muted,i=r?n.accent:n.text;return[h(a)+(r?k:"")+" "+s+d+h(i)+" "+u.label+d]}function B0(u,e,t){let n=t.theme,r=!!t.focused,o=G(t.width,K.toggle),s=u.onLabel??"On",a=u.offLabel??"Off",i=r?n.accent:n.text,c,l;return e?(c=h(n.accent)+"\u25CB\u2500\u2500\u2500\u2500\u25CF"+d,l=h(n.accent)+k+" "+s+d):(c=h(n.muted)+"\u25CF\u2500\u2500\u2500\u2500\u25CB"+d,l=h(n.muted)+q+" "+a+d),[h(i)+(r?k:"")+" "+u.label+d+" "+c+l]}function M0(u,e,t){let n=t.theme,r=[],o=!!t.focused,s=G(t.width,K.radioGroup);r.push(h(o?n.accent:n.text)+k+" "+u.label+d);for(let a=0;a<u.options.length;a++){let i=u.options[a],c=i.value===e.value,l=o&&a===e.highlightIndex,f=c?"\u25C9":"\u25CB",_=c||l?n.accent:n.muted,p=l?n.accent:n.text;r.push(h(_)+(l?k:"")+" "+f+d+h(p)+" "+i.label+d)}return r}function E0(u,e,t){let n=t.theme,r=[],o=!!t.focused,s=e.editing,i=G(t.width,K.numberInput).content;r.push(h(o?n.accent:n.text)+k+" "+u.label+d);let c=h(o?n.accent:n.muted)+"\u25C2"+d,l=h(o?n.accent:n.muted)+"\u25B8"+d,f;s&&e.textBuffer.length>0?f=h(n.text)+e.textBuffer+h(n.accent)+"\u2588"+d:f=h(n.text)+k+String(e.value)+d;let _=c+" "+f+" "+l,p=o?n.accent:n.border,m=$u({content:[_],width:t.width,border:t.borderStyle??"rounded",padding:1,borderColor:p},t);return r.push(...m),r}function P0(u,e,t){let n=e.theme,r=!!e.focused,o=t||u.loading,s=u.style??"secondary",a,i;switch(s){case"primary":a=n.accent,i="\u25C6";break;case"danger":a=n.error,i="\u25C6";break;default:a=n.border,i="";break}let c;if(o){let y=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"];c=y[Math.floor(Date.now()/100)%y.length]+" "+u.label}else i?c=i+" "+u.label:c=u.label;let l=G(e.width,K.button),f=2,_=Math.max(1,l.content);L(c)>_&&(c=Q(c,_));let m=L(c)+f*2,g=ju(e.borderStyle??"rounded"),F=[],w=" ";if(r&&s==="primary")F.push(w+h(a)+g.topLeft+g.horizontal.repeat(m)+g.topRight+d),F.push(w+h(a)+g.vertical+d+z2(a)+h("#000000")+k+" ".repeat(f)+c+" ".repeat(f)+d+h(a)+g.vertical+d),F.push(w+h(a)+g.bottomLeft+g.horizontal.repeat(m)+g.bottomRight+d);else if(r)F.push(w+h(a)+k+g.topLeft+g.horizontal.repeat(m)+g.topRight+d),F.push(w+h(a)+k+g.vertical+d+h(a)+k+" ".repeat(f)+c+" ".repeat(f)+d+h(a)+k+g.vertical+d),F.push(w+h(a)+k+g.bottomLeft+g.horizontal.repeat(m)+g.bottomRight+d);else{let y=s==="danger"?a:n.border,v=s==="primary"?a:n.text;F.push(w+h(y)+g.topLeft+g.horizontal.repeat(m)+g.topRight+d),F.push(w+h(y)+g.vertical+d+h(v)+" ".repeat(f)+c+" ".repeat(f)+d+h(y)+g.vertical+d),F.push(w+h(y)+g.bottomLeft+g.horizontal.repeat(m)+g.bottomRight+d)}return F}function e2(u,e,t){let{width:n,height:r,active:o=!1,renderContent:s}=t;if(n<=0||r<=0)return[];let a=u.border===!0||typeof u.border=="string"&&u.border!=="none",i=typeof u.border=="string"&&["single","double","rounded","heavy","dashed","ascii","none"].includes(u.border)?u.border:"rounded",c=ju(a?i:"none"),l=u.padding??0,f=!!u.title&&!a,_=f?1:0,p=a?2:0,m=a?2:0,g=Math.max(0,n-p-l*2),F=Math.max(0,r-m-l*2-_);if(g<=0||F<=0){let I=[];for(let M=0;M<r;M++)I.push(" ".repeat(n));return I}let w={...e,width:g,panelHeight:F},v=s(u.content,w).slice(0,F),x=[],B=" ".repeat(l);for(let I=0;I<F;I++){let M=I<v.length?v[I]:"",E=L(M),P=Math.max(0,g-E);x.push(B+M+" ".repeat(P)+B)}let C=o?e.theme.accent:e.theme.border,S=o?e.theme.accent:e.theme.muted,D=I=>h(C)+I+d,$=[];if(a){let I=n-2;if(u.title){let M=` ${u.title} `,E=L(M),P=Math.max(0,I-E-1);$.push(D(c.topLeft+c.horizontal)+h(S)+k+M+d+D(c.horizontal.repeat(P)+c.topRight))}else $.push(D(c.topLeft+c.horizontal.repeat(I)+c.topRight));for(let M of x)$.push(D(c.vertical)+M+D(c.vertical));$.push(D(c.bottomLeft+c.horizontal.repeat(I)+c.bottomRight))}else{if(f){let I=u.title,M=L(I),E="\u2500".repeat(Math.min(M+2,g));$.push(h(S)+k+I+d+" ".repeat(Math.max(0,n-M)))}for(let I of x)$.push(I)}for(;$.length<r;)$.push(" ".repeat(n));return $.length>r&&($.length=r),$.map(I=>{let M=L(I);return M>n?Q(I,n):M<n?I+" ".repeat(n-M):I})}function a5(u,e,t){let{panels:n}=u;if(n.length===0)return[];let{availableHeight:r,activePanelIndex:o=-1,renderContent:s}=t,a=e.width;if(Zu(n.length,a))return S0(n,e,t);let i=g2(n,a,r);return M8(i,e,a,r,o,s)}function S0(u,e,t){let{availableHeight:n,activePanelIndex:r=-1,renderContent:o}=t,s=y8(u,e.width,n),a=[];for(let i=0;i<s.length;i++){let c=s[i],l=e2(c.panel,e,{width:c.width,height:c.height,active:i===r,renderContent:o});a.push(...l),i<s.length-1&&a.push(h(e.theme.border)+"\u2500".repeat(e.width)+d)}return a}function M8(u,e,t,n,r,o){let s=[];for(let i=0;i<u.length;i++){let c=u[i],l={...e,width:c.width},f=e2(c.panel,l,{width:c.width,height:c.height,active:i===r,renderContent:o});s.push(f)}if(u.length>1&&u[0].y===u[1].y){let i=Math.max(...s.map(l=>l.length)),c=[];for(let l=0;l<i;l++){let f="";for(let _=0;_<u.length;_++){let p=s[_][l]??" ".repeat(u[_].width);if(_>0){let m=" "+h(e.theme.border)+"\u2502"+d+" ";f+=m}f+=p}c.push(f)}return c}else{let i=[];for(let c=0;c<s.length;c++)i.push(...s[c]),c<s.length-1&&i.push(h(e.theme.border)+"\u2500".repeat(t)+d);return i}}function I0(u,e,t){let{panels:n}=u;if(n.length===0)return[];let{availableHeight:r,activePanelIndex:o=-1,renderContent:s}=t,a=y8(n,e.width,r),i=[];for(let c=0;c<a.length;c++){let l=a[c],f=e2(l.panel,e,{width:l.width,height:l.height,active:c===o,renderContent:s});i.push(...f),c<a.length-1&&i.push(h(e.theme.border)+"\u2500".repeat(e.width)+d)}return i}function A0(u,e,t){let{config:n}=u,{availableHeight:r,activePanelIndex:o=-1,renderContent:s}=t;if(n.direction==="horizontal"&&Zu(2,e.width)){let i=b8({...n,direction:"vertical"},e.width,r),c=[];for(let l=0;l<i.length;l++){let f=i[l],_=e2(f.panel,e,{width:f.width,height:f.height,active:l===o,renderContent:s});c.push(..._),l===0&&n.border!==!1&&c.push(h(e.theme.border)+"\u2500".repeat(e.width)+d)}return c}let a=b8(n,e.width,r);return M8(a,e,e.width,r,o,s)}function D0(u,e,t){let{config:n}=u,{availableHeight:r,activePanelIndex:o=-1,renderContent:s}=t;if(n.items.length===0)return[];let a=n.gap??1,i=Ve(n.cols,e.width,a),c={...n,cols:i},l=ze(c,e.width,r);if(l.length===0)return[];let f=[];for(let F=0;F<l.length;F++){let w=l[F],y={...e,width:w.width},v=e2(w.panel,y,{width:w.width,height:w.height,active:F===o,renderContent:s});f.push(v)}let _=c.rows??Math.ceil(n.items.length/i),p=l[0]?.height??0,m=l[0]?.width??0,g=[];for(let F=0;F<_;F++){if(F>0)for(let w=0;w<a;w++)g.push("");for(let w=0;w<p;w++){let y="";for(let v=0;v<i;v++){let x=F*i+v;if(v>0&&(y+=" ".repeat(a)),x<f.length){let B=f[x][w]??" ".repeat(m);y+=B}else y+=" ".repeat(m)}g.push(y)}}return g}function C2(u,e){let t=e._dynamicId??"",n=u.dynamicCache.get(t);if(n)return n;try{let r=e.render(),o=Array.isArray(r)?r:[r];return t&&u.dynamicCache.set(t,o),o}catch{return[]}}function L0(u){u.dynamicCache.clear()}function c5(u){return U.isFocusable(u.type)}function Fu(u,e,t){let n=[];for(let r of e){let o=t;u.currentFocusedBlock&&r===u.currentFocusedBlock&&(o={...t,focused:!0});let s=Vu(u,r,o);n.push(...s),n.push("")}return n.length>0&&n[n.length-1]===""&&n.pop(),n}function Vu(u,e,t){switch(e.type){case"text":return qe(e.content,t,e.style);case"card":return B8(e,t);case"timeline":return Je(e.items,t,e.style);case"table":return Ze(e.headers,e.rows,t);case"list":return o5(e.items,t,e.style);case"quote":return t5(e.text,t,{attribution:e.attribution,style:e.style});case"hero":return r5(e,t);case"gallery":{let n=JSON.stringify(e.items.map(o=>o.title)),r=u.galleryState.get(n)??0;return i5(e.items,t,{columns:e.columns,scrollIndex:r})}case"tabs":{let n=e.items.map(o=>o.label).join(","),r=u.tabState.get(n)??0;return C0(e.items,r,t,(o,s)=>Fu(u,o,s))}case"accordion":{let n=e.items.map(o=>o.label).join(","),r=u.accordionState.get(n)??-1;return b0(e.items,r,t,(o,s)=>Fu(u,o,s))}case"link":return Xe(e.label,e.url,t,{icon:e.icon});case"progressBar":return Qe(e.label,e.value,t,{max:e.max,showPercent:e.showPercent});case"badge":return[n5(e.text,t,{color:e.color,style:e.style})];case"image":return s5(e.path,t,{width:e.width,mode:e.mode});case"divider":return u5(t,{style:e.style,label:e.label,color:e.color});case"spacer":return e5(e.lines);case"section":{let n=G(t.width,K.section),r=[];return r.push(h(t.theme.accent)+k+" "+e.title+d),r.push(h(t.theme.border)+" "+"\u2500".repeat(Math.max(0,n.content-4))+d),r.push(""),r.push(...Fu(u,e.content,t)),r}case"custom":return e.render(t.width,t.theme);case"textInput":{let n=u.getInputState(e.id,e.defaultValue??"");return w0(e,{value:n.value,cursorPos:n.cursorPos,editing:!!t.editing,error:n.error},t)}case"textArea":{let n=u.getInputState(e.id,e.defaultValue??"");return y0(e,{value:n.value,cursorPos:n.cursorPos,editing:!!t.editing,error:n.error,scrollOffset:n.scrollOffset},t)}case"select":{let n=u.getInputState(e.id,e.defaultValue??"");return x0(e,{value:n.value,open:n.open,highlightIndex:n.highlightIndex},t)}case"checkbox":{let n=u.getInputState(e.id,e.defaultValue??!1);return v0(e,n.value,t)}case"toggle":{let n=u.getInputState(e.id,e.defaultValue??!1);return B0(e,n.value,t)}case"radioGroup":{let n=u.getInputState(e.id,e.defaultValue??"");return M0(e,{value:n.value,highlightIndex:n.highlightIndex},t)}case"numberInput":{let n=u.getInputState(e.id,e.defaultValue??0);return E0(e,{value:n.value,editing:!!t.editing,textBuffer:""},t)}case"searchInput":{let n=u.getInputState(e.id,""),r=e.maxResults??10,o=m8(e.items,n.value,r);return Xn(e,{query:n.value,cursorPos:n.cursorPos,editing:!!t.editing,highlightIndex:n.highlightIndex,filteredItems:o},t)}case"button":{let n=u.buttonLoading.get(e.label)??!1;return P0(e,t,n)}case"form":{let n=Fu(u,e.fields,t),r=u.formResults.get(e.id);return r&&(n.push(""),n.push(...Ye({resultMessage:r.message,resultType:r.type},t))),n}case"asyncContent":return[];case"dynamic":{let n=C2(u,e);return Fu(u,n,t)}case"columns":{let{rows:n}=Bu(),r=Math.max(10,n-8),o=e,s=Xu(o.panels.map(a=>a.content),u.currentFocusedBlock);return a5(o,t,{availableHeight:r,activePanelIndex:s,renderContent:(a,i)=>Fu(u,a,i)})}case"rows":{let{rows:n}=Bu(),r=Math.max(10,n-8),o=e,s=Xu(o.panels.map(a=>a.content),u.currentFocusedBlock);return I0(o,t,{availableHeight:r,activePanelIndex:s,renderContent:(a,i)=>Fu(u,a,i)})}case"split":{let{rows:n}=Bu(),r=Math.max(10,n-8),o=e,s=Xu([o.config.first,o.config.second],u.currentFocusedBlock);return A0(o,t,{availableHeight:r,activePanelIndex:s,renderContent:(a,i)=>Fu(u,a,i)})}case"grid":{let{rows:n}=Bu(),r=Math.max(10,n-8),o=e,s=Xu(o.config.items.map(a=>a.content),u.currentFocusedBlock);return D0(o,t,{availableHeight:r,activePanelIndex:s,renderContent:(a,i)=>Fu(u,a,i)})}case"panel":{let{rows:n}=Bu(),r=Math.max(10,n-8);return e2(e.config,t,{width:t.width,height:r,renderContent:(o,s)=>Fu(u,o,s)})}case"box":return T0(u,e,t);case"row":return O0(u,e,t);case"container":return R0(u,e,t);case"menu":return $0(u,e,t);case"chat":{let n=e,r=u.getInputState(n.id,{messages:[],input:"",cursorPos:0,loading:!1,error:null}),o={messages:r.value?.messages??[],input:r.value?.input??r.value??"",cursorPos:r.cursorPos??0,loading:r.value?.loading??!1,error:r.value?.error??null};return g0(n,o,t)}default:return[]}}function Xu(u,e){if(!e)return-1;for(let t=0;t<u.length;t++)if(xu(u[t],e))return t;return-1}function xu(u,e){for(let t of u){if(t===e)return!0;if(t.type==="columns"){for(let n of t.panels)if(xu(n.content,e))return!0}else if(t.type==="rows"){for(let n of t.panels)if(xu(n.content,e))return!0}else if(t.type==="split"){let n=t.config;if(xu(n.first,e)||xu(n.second,e))return!0}else if(t.type==="grid"){for(let n of t.config.items)if(xu(n.content,e))return!0}else if(t.type==="panel"){if(xu(t.config.content,e))return!0}else if(t.type==="section"){if(xu(t.content,e))return!0}else if(t.type==="form"){if(xu(t.fields,e))return!0}else if(t.type==="box"){if(xu(t.config.children,e))return!0}else if(t.type==="row"){for(let n of t.cols)if(xu(n.content,e))return!0}else if(t.type==="container"&&xu(t.content,e))return!0}return!1}function T0(u,e,t){let{config:n}=e,r=n.direction??"column",o=n.gap??0,{rows:s}=Bu(),a=Math.max(10,s-8);if(r==="row"){let i=n.children.map(l=>l.type==="box"?{content:[l],width:l.config.width,height:l.config.height,padding:l.config.padding}:{content:[l]}),c=Xu(i.map(l=>l.content),u.currentFocusedBlock);return a5({type:"columns",panels:i},t,{availableHeight:a,activePanelIndex:c,renderContent:(l,f)=>Fu(u,l,f)})}else{let i=[];for(let c=0;c<n.children.length;c++){if(c>0&&o>0)for(let _=0;_<o;_++)i.push("");let l=n.children[c],f=t;u.currentFocusedBlock&&l===u.currentFocusedBlock&&(f={...t,focused:!0}),i.push(...Vu(u,l,f))}return i}}function O0(u,e,t){let{cols:n,gap:r=1}=e;if(n.length===0)return[];let{rows:o,columns:s}=Bu(),a=Math.max(10,o-8),i=x8(s),c=Math.max(1,Math.floor(12/n.length)),l=n.map(m=>v8(m,i,c)),f=[[]],_=0;for(let m=0;m<n.length;m++){let g=n[m].offset??0,F=l[m]+g;_+F>12&&f[f.length-1].length>0&&(f.push([]),_=0),f[f.length-1].push({col:n[m],span:l[m]}),_+=F}let p=[];for(let m of f){let g=m.map(x=>x.col),F=Ge(g,t.width,r,s),w=Xu(F.map(x=>x.content),u.currentFocusedBlock),y=g2(F,t.width,a),v=M8(y,t,t.width,a,w,(x,B)=>Fu(u,x,B));for(;v.length>0;){let B=v[v.length-1].replace(/\x1b\[[0-9;]*m/g,"");if(/^[\s\u2502\u2506\u250a\u2503]*$/.test(B))v.pop();else break}p.length>0&&p.push(""),p.push(...v)}return p}function $0(u,e,t){let n=[];if(e.items&&e.items.length>0)n=e.items.map(r=>({label:r.label,icon:r.icon,id:r.page}));else if(e.source==="auto"){let r=u._fileRouter;if(r)n=r.getMenuItems().map(s=>({label:s.label,icon:s.icon,id:s.page}));else{let o=u.site;o?.pages&&(n=o.pages.filter(s=>typeof s.title=="string").map(s=>({label:s.title,icon:s.icon,id:s.id})))}}return F8(n,0,t)}function R0(u,e,t){let n=e.padding??0,r=e.maxWidth??t.width,o=Math.max(1,Math.min(t.width,r)-n*2),s={...t,width:o},a=[];for(let i of e.content){let c=s;u.currentFocusedBlock&&i===u.currentFocusedBlock&&(c={...s,focused:!0});let l=Vu(u,i,c),f=e.center!==!1,_=t.width-o,p=f?Math.floor(_/2):n,m=" ".repeat(p);for(let g of l)a.push(m+g);a.push("")}return a.length>0&&a[a.length-1]===""&&a.pop(),a}function k0(u,e,t){let n=t.theme;return[h(n.accent)+k+u+d+h(n.text)+e+d+h(n.muted)+"\u2588"+d]}function j0(u,e){let t=0,n="",r=!1;for(let o of u){if(o==="\x1B"){r=!0,n+=o;continue}if(r){n+=o,o==="m"&&(r=!1);continue}let s=ku(o.codePointAt(0)??0);if(t+s>e)break;n+=o,t+=s}return n+"\x1B[0m"}function l5(u,e){return{width:Math.min(e,100),theme:u.theme,borderStyle:u.borderStyle}}function N0(u,e,t,n){let r="\x1B[H";for(let o=0;o<n;o++){if(r+="\x1B[2K",o<e.length){let s=e[o];L(s)>t?r+=j0(s,t):r+=s}o<n-1&&(r+=`
91
- `)}if(u.commandMode)r+=`\x1B[${n};1H\x1B[2K`,r+=k0(":",u.commandBuffer,l5(u,t)).join("");else{let o=u.notifications.current;if(o){r+=`\x1B[${n};1H\x1B[2K`;let s,a;switch(o.type){case"success":s=u.theme.success,a="\u2713";break;case"error":s=u.theme.error,a="\u2717";break;default:s=u.theme.accent,a="\u2139";break}r+=h(s)+" "+a+" "+o.message+d}else u.feedbackMessage&&(r+=`\x1B[${n};1H\x1B[2K`,r+=h(u.theme.success)+" "+u.feedbackMessage+d)}r+=u.inputMode.isEditing?"\x1B[?25h":"\x1B[?25l",process.stdout.write(r)}function W0(u){L0(u);let e=u.getCurrentPage();if(e&&!u.router.isHome()){let s=u.getPageContent(e);if(s){let a=u.pageFocusIndex;u.pageFocusItems=u.collectFocusItems(s),u.pageFocusIndex=Math.min(a,Math.max(0,u.pageFocusItems.length-1)),u.registerForms(s);let i=Bu(),c=Math.min(120,i.columns-2),l=Math.max(10,i.rows-8);u.focusRects=Ke(s,c,l,f=>C2(u,f))}}let{columns:t,rows:n}=Bu(),r=[],o=l5(u,t);u.router.isHome()?Y0(u,r,o,t,n):H0(u,r,o,t,n),N0(u,r,t,n)}function Y0(u,e,t,n,r){let o=t.width,s=Math.max(0,Math.floor((n-o)/2)),a=" ".repeat(s);if(u.site.banner){let f=q2(u.site.banner.text,{font:u.site.banner.font});if(f=J2(f,o),u.site.banner.gradient?f=f0(f,u.site.banner.gradient):f=f.map(_=>h(u.theme.accent)+_+d),!u.bootComplete&&u.site.animations?.boot){let _=Math.floor(u.bootFrame/30*f.length);f=f.slice(0,_)}e.push("");for(let _ of f)e.push(a+_)}else{e.push("");let f=h(u.theme.accent)+k+u.site.name+d;e.push(a+_u(f,o,"center"))}if(e.push(""),u.site.tagline){let f=h(u.theme.muted)+Ku+u.site.tagline+d;e.push(a+_u(f,o,"center")),e.push("")}e.push(a+h(u.theme.border)+"\u2500".repeat(o)+d),e.push("");let i=u.site.pages.find(f=>f.id==="home"),c=i?u.getPageContent(i):null;if(c?p2(c):!1){if(c){let f=Math.max(1,o-1),_={...t,width:f};for(let p of c){let m=Vu(u,p,_);for(let g of m)e.push(a+" "+g);e.push("")}}}else{let f;u.site.menu?.items&&u.site.menu.items.length>0?f=u.site.menu.items.map(p=>({label:p.label,icon:p.icon,id:p.page})):u._fileRouter?f=u._fileRouter.getMenuItems().map(m=>({label:m.label,icon:m.icon,id:m.page})):f=u.site.pages.filter(p=>typeof p.title=="string"&&!p._hidden).map(p=>({label:p.title,icon:p.icon,id:p.id}));let _;if(!u.bootComplete&&u.site.animations?.boot){let p=Math.max(0,Math.floor((u.bootFrame-15)/3));_=F8(f.slice(0,p),u.focus.focusIndex,t)}else _=F8(f,u.focus.focusIndex,t);for(let p of _)e.push(a+p)}e.push(""),e.push(a+h(u.theme.border)+"\u2500".repeat(o)+d),e.push(""),e.push(a+h(u.theme.subtle)+q+" \u2191\u2193 navigate \u23CE select q quit : command"+d),u.site.handle&&(e.push(""),e.push(a+h(u.theme.subtle)+q+" "+u.site.handle+d))}function p2(u){for(let e of u){if(e.type==="menu"||e.type==="section"&&p2(e.content))return!0;if(e.type==="columns"){for(let t of e.panels)if(p2(t.content))return!0}if(e.type==="split"){let t=e.config;if(p2(t.first)||p2(t.second))return!0}}return!1}function Tu(u,e){if(u===e)return!0;if(u.type==="columns"){for(let t of u.panels)for(let n of t.content)if(Tu(n,e))return!0}else if(u.type==="rows"){for(let t of u.panels)for(let n of t.content)if(Tu(n,e))return!0}else if(u.type==="split"){let t=u.config;for(let n of t.first)if(Tu(n,e))return!0;for(let n of t.second)if(Tu(n,e))return!0}else if(u.type==="grid"){for(let t of u.config.items)for(let n of t.content)if(Tu(n,e))return!0}else if(u.type==="box"){for(let t of u.config.children)if(Tu(t,e))return!0}else if(u.type==="row"){for(let t of u.cols)for(let n of t.content)if(Tu(n,e))return!0}else if(u.type==="container"){for(let t of u.content)if(Tu(t,e))return!0}return!1}function H0(u,e,t,n,r){let o=u.getCurrentPage();if(!o)return;let s=u.getPageContent(o),a=t.width,i=Math.max(0,Math.floor((n-a)/2)),c=" ".repeat(i);if(s===null){let E=o.loading??"Loading...";e.push("");let P=h(u.theme.subtle)+q+"\u2190 back"+d,T=h(u.theme.accent)+k+(o.icon?o.icon+" ":"")+u.resolvePageTitle(o)+d;e.push(c+P+" "+T),e.push(c+h(u.theme.border)+"\u2500".repeat(a)+d),e.push("");let j=g8("dots",Math.floor(Date.now()/80));e.push(c+" "+h(u.theme.accent)+j+d+h(u.theme.muted)+" "+E+d);return}u.pageFocusItems.length===0&&s.length>0&&u.initializePageContent(s);let l=u.pageFocusItems[u.pageFocusIndex],f=[],_=-1,p=-1;u.currentFocusedBlock=l?.kind==="block"?l.block:void 0;let m=E=>!!l&&l.kind==="block"&&l.block===E,g=E=>!l||l.kind!=="accordion-item"||l.accordion!==E?-1:l.itemIndex,F=h(u.theme.accent)+"\u258C"+d,w=Math.max(1,a-1),y={...t,width:w},v=E=>{for(let P of E){if(P.type==="section"){let T=G(w,K.section);f.push(h(y.theme.accent)+k+" "+P.title+d),f.push(h(y.theme.border)+" "+"\u2500".repeat(Math.max(0,T.content-4))+d),f.push(""),v(P.content)}else if(P.type==="form"){v(P.fields);let T=u.formResults.get(P.id);if(T){for(let j of Ye({resultMessage:T.message,resultType:T.type},y))f.push(" "+j);f.push("")}}else if(P.type==="dynamic"){v(C2(u,P));continue}else if(P.type==="asyncContent")V0(u,P,f,y,v);else if(P.type==="accordion")U0(u,P,f,y,w,g,F,_,p,(T,j)=>{_=T,p=j});else if(P.type==="timeline")z0(u,P,f,y,w,l,F,_,p,(T,j)=>{_=T,p=j});else{let T=m(P),W=(P.type==="columns"||P.type==="rows"||P.type==="split"||P.type==="grid"||P.type==="box"||P.type==="row"||P.type==="container")&&!T&&!!u.currentFocusedBlock&&Tu(P,u.currentFocusedBlock);(T||W)&&(_=f.length);let N=c5(P),Y=T&&u.inputMode.isEditing,J=T?{...y,focused:!0,editing:Y}:y,A=Vu(u,P,J);if(N&&T)for(let H of A)f.push(F+H);else for(let H of A)f.push(" "+H);(T||W)&&(p=f.length)}f.push("")}};v(s),f.length>0&&f[f.length-1]===""&&f.pop();let x=4,B=3,C=Math.max(1,r-x-B);_>=0&&(_<u.pageScrollOffset?u.pageScrollOffset=Math.max(0,_):p>u.pageScrollOffset+C&&(u.pageScrollOffset=Math.max(0,p-C))),u.pageScrollOffset=Math.min(u.pageScrollOffset,Math.max(0,f.length-C));let S=0,D=0;u.pageFocusItems.length>0&&(S=u.pageFocusIndex,D=u.pageFocusItems.length-1-u.pageFocusIndex),e.push(""),e.push(c+h(u.theme.subtle)+q+"\u2190 back"+d+" "+h(u.theme.accent)+k+(o.icon?o.icon+" ":"")+u.resolvePageTitle(o)+d),e.push(c+h(u.theme.border)+"\u2500".repeat(a)+d),u.pageScrollOffset>0&&S>0?e.push(c+h(u.theme.subtle)+q+" \u2191 "+S+" item"+(S>1?"s":"")+" above"+d):u.pageScrollOffset>0?e.push(c+h(u.theme.subtle)+q+" \u2191 more above"+d):e.push("");for(let E of f.slice(u.pageScrollOffset,u.pageScrollOffset+C))e.push(c+E);for(;e.length<r-B;)e.push("");let $=u.pageScrollOffset+C<f.length;D>0?e.push(c+h(u.theme.subtle)+q+" \u2193 "+D+" item"+(D>1?"s":"")+" below"+d):$?e.push(c+h(u.theme.subtle)+q+" \u2193 more below"+d):e.push(""),e.push(c+h(u.theme.border)+"\u2500".repeat(a)+d);let I=u.router.currentIndex+1,M=u.router.pageCount;u.inputMode.isEditing?e.push(c+h(u.theme.accent)+k+" \u2500\u2500 Editing \u2500\u2500"+d+h(u.theme.subtle)+q+" Type to input Esc done ["+I+"/"+M+"]"+d):e.push(c+h(u.theme.subtle)+q+" \u2191\u2193 navigate \u23CE select \u2190 back q quit ["+I+"/"+M+"]"+d)}function U0(u,e,t,n,r,o,s,a,i,c){let l=o(e),f=e.items.map(p=>p.label).join(","),_=u.accordionState.get(f)??-1;for(let p=0;p<e.items.length;p++){let m=e.items[p],g=l===p,F=p===_,w=-1,y=-1;g&&(w=t.length);let v=F?"\u25BE":"\u25B8",x=F||g?n.theme.accent:n.theme.text,B=G(r,K.accordion),C=Math.max(0,B.content-2),S=h(x)+k+` ${v} ${m.label.length>C?m.label.substring(0,C-1)+"\u2026":m.label}`+d;if(t.push(g?s+S:" "+S),F){let D={...n,width:B.content,focused:!1};for(let $ of m.content)for(let I of Vu(u,$,D))t.push(" "+I);t.push("")}g&&(y=t.length,c(w,y))}}function z0(u,e,t,n,r,o,s,a,i,c){let l=o?.kind==="timeline-item"&&o.timeline===e?o.itemIndex:-1;for(let f=0;f<e.items.length;f++){let _=e.items[f],p=l===f,m=f===e.items.length-1,g=-1,F=-1;p&&(g=t.length);let w=p?"\u25CF":"\u25CB",y=_.title;_.subtitle&&(y+=" \xB7 "+_.subtitle);let v=p?n.theme.accent:n.theme.border,x=p?n.theme.accent:n.theme.text;if(t.push(" "+h(v)+" "+w+" "+d+h(x)+k+y+d),(_.period||_.date)&&t.push(" "+h(n.theme.border)+" \u2502 "+d+h(n.theme.muted)+q+(_.period??_.date)+d),_.description){let B=G(r,K.timeline);for(let C of pu(_.description,B.content))t.push(" "+h(n.theme.border)+" \u2502 "+d+h(n.theme.text)+C+d)}m||t.push(" "+h(n.theme.border)+" \u2502"+d),p&&(F=t.length,c(g,F))}}function V0(u,e,t,n,r){let o=e._asyncId??"async-anon",s=u.asyncManager.getState(o);if(!s){u.asyncManager.load(o,e.load,()=>u.render());let a=g8("dots",Math.floor(Date.now()/80));t.push(" "+h(n.theme.accent)+a+d+h(n.theme.muted)+" "+(e.loading??"Loading...")+d);return}if(s.status==="loading"){let a=g8("dots",Math.floor(Date.now()/80));t.push(" "+h(n.theme.accent)+a+d+h(n.theme.muted)+" "+(e.loading??"Loading...")+d),setTimeout(()=>u.render(),100);return}if(s.status==="error"){e.fallback?r(e.fallback):t.push(" "+h(n.theme.error)+"\u26A0 "+(s.error?.message??"Failed to load content")+d);return}s.content&&r(s.content)}async function G0(u,e){for(let t of u){let n=await t(e);if(n&&"redirect"in n)return n}}function f5(u,e,t){let n=u.site.pages.find(o=>o.id===e);if(n||(n=u.site.pages.find(o=>{if(!o.id.includes("["))return!1;let s=o.id.replace(/\/\[.*?\].*$/,"");return e===s||e.startsWith(s+"/")})),!n){typeof process<"u"&&process.stderr&&process.stderr.write(`[terminaltui] navigate: page '${e}' not found. Available: ${u.site.pages.map(o=>o.id).join(", ")}
92
- `);return}let r=[...u.site.middleware??[],...n.middleware??[]];r.length>0?G0(r,{page:e,params:t??{},state:null}).then(o=>{if(o&&"redirect"in o){f5(u,o.redirect,o.params);return}h8(u,e,t)}).catch(()=>{h8(u,e,t)}):h8(u,e,t)}function h8(u,e,t){let n=u.router.currentPage;u.router.navigate(e),u.currentParams=t??{},u.scrollOffset=0,h5(u),u.site.onNavigate&&u.site.onNavigate(n,e,t),u.render()}function h5(u){u.pageFocusIndex=0,u.pageScrollOffset=0,u.pageFocusItems=[],u.focusRects=[],u.inputMode.reset(),u.formRegistry.clear();let e=_5(u);if(!e)return;let t=u.site.pages.find(r=>r.id===e.id);if(t&&typeof t.title=="function"){K0(u,t);return}let n=e.content;if(typeof n=="function"){q0(u,e);return}u2(u,n)}function K0(u,e){let t=u.currentParams,n=`route-${e.id}-${JSON.stringify(t)}`,r=async()=>{let o=e.content(t);return o instanceof Promise?await o:o};u.asyncManager.load(n,r,()=>{let o=u.asyncManager.getState(n);if(o?.status==="loaded"&&o.content)u.resolvedPageContent.set(e.id,o.content),u2(u,o.content);else if(o?.status==="error"&&e.onError){let s=e.onError(o.error,t);u.resolvedPageContent.set(e.id,s),u2(u,s)}u.render()})}function q0(u,e){let t=`page-${e.id}`,n=e.content;u.asyncManager.load(t,n,()=>{let r=u.asyncManager.getState(t);if(r?.status==="loaded"&&r.content)u.resolvedPageContent.set(e.id,r.content),u2(u,r.content);else if(r?.status==="error"&&e.onError){let o=e.onError(r.error);u.resolvedPageContent.set(e.id,o),u2(u,o)}u.render()}),e.refreshInterval&&u.asyncManager.setupRefresh(t,e.refreshInterval,n,()=>{let r=u.asyncManager.getState(t);if(r?.status==="loaded"&&r.content){u.resolvedPageContent.set(e.id,r.content);let o=u.pageFocusIndex;u.pageFocusItems=au(u,r.content),u.pageFocusIndex=Math.min(o,Math.max(0,u.pageFocusItems.length-1)),hu(u,r.content),d5(u,r.content)}u.render()})}function u2(u,e){u.pageFocusItems=au(u,e),hu(u,e),d5(u,e)}function d5(u,e){let{columns:t}=Bu(),n=Math.min(120,t-2),{rows:r}=Bu(),o=Math.max(10,r-8);u.focusRects=Ke(e,n,o,s=>C2(u,s))}function hu(u,e){for(let t of e)if(t.type==="form")u.formRegistry.set(t.id,t),hu(u,t.fields);else if(t.type==="section")hu(u,t.content);else if(t.type==="columns")for(let n of t.panels)hu(u,n.content);else if(t.type==="rows")for(let n of t.panels)hu(u,n.content);else if(t.type==="split"){let n=t;hu(u,n.config.first),hu(u,n.config.second)}else if(t.type==="grid")for(let n of t.config.items)hu(u,n.content);else if(t.type==="panel")hu(u,t.config.content);else if(t.type==="box")hu(u,t.config.children);else if(t.type==="row")for(let n of t.cols)hu(u,n.content);else t.type==="container"&&hu(u,t.content)}function J0(u,e){let t=u.site.pages.find(n=>n.id===e.id);return t&&typeof t.title=="function"?t.title(u.currentParams):e.title}function Q0(u,e){return typeof e.content=="function"?u.resolvedPageContent.get(e.id)??null:e.content}function au(u,e){let t=[];for(let n of e)switch(n.type){case"card":case"link":case"hero":t.push({kind:"block",block:n});break;case"textInput":case"textArea":case"select":case"checkbox":case"toggle":case"radioGroup":case"numberInput":case"searchInput":case"button":case"chat":t.push({kind:"block",block:n});break;case"accordion":for(let r=0;r<n.items.length;r++)t.push({kind:"accordion-item",accordion:n,itemIndex:r});break;case"timeline":for(let r=0;r<n.items.length;r++)t.push({kind:"timeline-item",timeline:n,itemIndex:r});break;case"tabs":t.push({kind:"block",block:n});break;case"section":t.push(...au(u,n.content));break;case"form":t.push(...au(u,n.fields));break;case"dynamic":{let r=C2(u,n);t.push(...au(u,r));break}case"columns":{let r=n;for(let o of r.panels)t.push(...au(u,o.content));break}case"rows":{let r=n;for(let o of r.panels)t.push(...au(u,o.content));break}case"split":{let r=n;t.push(...au(u,r.config.first)),t.push(...au(u,r.config.second));break}case"grid":{let r=n;for(let o of r.config.items)t.push(...au(u,o.content));break}case"panel":{let r=n;t.push(...au(u,r.config.content));break}case"box":{let r=n;t.push(...au(u,r.config.children));break}case"row":{let r=n;for(let o of r.cols)t.push(...au(u,o.content));break}case"container":{let r=n;t.push(...au(u,r.content));break}default:break}return t}function Z0(u){if(u.pageFocusItems.length===0){u.pageScrollOffset++;return}u.pageFocusIndex<u.pageFocusItems.length-1?u.pageFocusIndex++:u.pageScrollOffset++}function X0(u){if(u.pageFocusItems.length===0){u.pageScrollOffset>0&&u.pageScrollOffset--;return}u.pageFocusIndex>0?u.pageFocusIndex--:u.pageScrollOffset>0&&u.pageScrollOffset--}function _5(u){let e=u.site.pages.find(t=>t.id===u.router.currentPage);if(e)return e}function m2(u,e){u.feedbackMessage=e,u.feedbackTimer&&clearTimeout(u.feedbackTimer),u.feedbackTimer=setTimeout(()=>{u.feedbackMessage="",u.render()},2e3),u.render()}function ur(u,e){let t=e.trim().toLowerCase();if(t==="q"||t==="quit"){u.stop();return}if(t.startsWith("theme ")){let n=t.slice(6).trim(),{themes:r}=(W2(),Ee(Re));r[n]?(u.theme=r[n],m2(u,`Theme: ${n}`)):m2(u,`Unknown theme: ${n}`);return}if(u.site.easterEggs?.commands?.[t]){let n=u.site.easterEggs.commands[t];typeof n=="string"?m2(u,n):n();return}m2(u,`Unknown command: ${e}`)}function d8(u){return new Promise((e,t)=>{let n=process.platform,r;n==="darwin"?r=`open "${u}"`:n==="win32"?r=`start "" "${u}"`:r=`xdg-open "${u}"`,er(r,o=>{o?t(o):e()})})}function tr(u){let e=u.pageFocusItems[u.pageFocusIndex];if(!e)return;if(e.kind==="accordion-item"){let r=e.accordion.items.map(s=>s.label).join(","),o=u.accordionState.get(r)??-1;u.accordionState.set(r,o===e.itemIndex?-1:e.itemIndex);return}if(e.kind==="timeline-item")return;let t=e.block;if(t.type==="textInput"||t.type==="textArea"||t.type==="numberInput"||t.type==="searchInput"){let n=t.id;u.inputMode.enterEdit(n),u.getInputState(n,w8(t));return}if(t.type==="select"){let n=t.id,r=u.getInputState(n,t.defaultValue??"");u.inputMode.enterEdit(n),r.open=!0;let o=t.options.findIndex(s=>s.value===r.value);r.highlightIndex=o>=0?o:0;return}if(t.type==="radioGroup"){let n=t.id,r=u.getInputState(n,t.defaultValue??"");u.inputMode.enterEdit(n);let o=t.options.findIndex(s=>s.value===r.value);r.highlightIndex=o>=0?o:0;return}if(t.type==="checkbox"||t.type==="toggle"){let n=t.id,r=u.getInputState(n,t.defaultValue??!1);r.value=!r.value,t.onChange?.(r.value);return}if(t.type==="button"){nr(u,t);return}if(t.type==="link"){u.showFeedback(`Opening ${t.url}...`),d8(t.url).catch(()=>{});return}if(t.type==="card"&&t.url){u.showFeedback(`Opening ${t.url}...`),d8(t.url).catch(()=>{});return}if(t.type==="card"&&t.action){rr(u,t);return}if(t.type==="tabs"){let n=t.items.map(o=>o.label).join(","),r=u.tabState.get(n)??0;u.tabState.set(n,(r+1)%t.items.length);return}if(t.type==="hero"&&t.cta?.url){u.showFeedback(`Opening ${t.cta.url}...`),d8(t.cta.url).catch(()=>{});return}}function nr(u,e){if(e._formId){or(u,e._formId);return}if(e.onPress){let t=e.onPress();if(t&&typeof t.then=="function"){let n=e.label;u.buttonLoading.set(n,!0),u.render(),t.then(r=>{u.buttonLoading.delete(n),$e(u,r),u.render()}).catch(r=>{u.buttonLoading.delete(n),u.notifications.error(r instanceof Error?r.message:String(r)),u.render()})}else t&&$e(u,t),u.render()}}function rr(u,e){if(!e.action)return;if(e.action.navigate){u.navigateToPage(e.action.navigate,e.action.params);return}if(e.action.confirm&&u.showFeedback("Action triggered"),!e.action.onPress)return;let t=e.action.onPress();t&&typeof t.then=="function"&&t.then(()=>u.render()).catch(()=>u.render())}function $e(u,e){!e||typeof e!="object"||("success"in e?u.notifications.success(e.success):"error"in e?u.notifications.error(e.error):"info"in e&&u.notifications.info(e.info))}function p5(u,e){if(e.type==="textInput"){let t=e;if(t.validate){let n=u.getInputState(t.id,t.defaultValue??""),r=t.validate(n.value);return n.error=r,r===null}}else if(e.type==="textArea"){let t=e;if(t.validate){let n=u.getInputState(t.id,t.defaultValue??""),r=t.validate(n.value);return n.error=r,r===null}}return!0}async function or(u,e){let t=u.formRegistry.get(e);if(!t)return;let n=Zn(t.fields),r=-1;for(let i=0;i<t.fields.length;i++){let c=t.fields[i];p5(u,c)||r<0&&(r=i)}if(r>=0){let c=t.fields[r].id;if(c)for(let l=0;l<u.pageFocusItems.length;l++){let f=u.pageFocusItems[l];if(f.kind==="block"&&"id"in f.block&&f.block.id===c){u.pageFocusIndex=l;break}}u.render();return}let o={};for(let i of n){let c=u.inputStates.get(i);o[i]=c?.value??void 0}let s=t.fields.find(i=>i.type==="button"),a=s?s.label:"";a&&u.buttonLoading.set(a,!0),u.render();try{let i=await t.onSubmit(o);a&&u.buttonLoading.delete(a),"success"in i?(u.formResults.set(e,{message:i.success,type:"success"}),u.notifications.success(i.success),t.resetOnSubmit&&m5(u,t)):"error"in i?(u.formResults.set(e,{message:i.error,type:"error"}),u.notifications.error(i.error)):"info"in i&&(u.formResults.set(e,{message:i.info,type:"info"}),u.notifications.info(i.info))}catch(i){a&&u.buttonLoading.delete(a);let c=i instanceof Error?i.message:"An error occurred";u.formResults.set(e,{message:c,type:"error"}),u.notifications.error(c)}u.render(),setTimeout(()=>{u.formResults.delete(e),u.render()},5e3)}function m5(u,e){for(let t of e.fields)if("id"in t&&t.type!=="button"){let n=t.id,r=w8(t),o=u.inputStates.get(n);o&&(o.value=r,o.cursorPos=typeof r=="string"?r.length:0,o.error=null,o.open=!1,o.highlightIndex=0,o.scrollOffset=0)}}var g5=class{site;theme;router;focus;borderStyle;scrollOffset=0;commandMode=!1;commandBuffer="";feedbackMessage="";feedbackTimer=null;accordionState=new Map;tabState=new Map;galleryState=new Map;pageFocusIndex=0;pageFocusItems=[];pageScrollOffset=0;bootComplete=!1;bootFrame=0;bootTimer=null;inputMode=new jn;inputStates=new Map;formResults=new Map;buttonLoading=new Map;notifications=new Nn;notificationTimer=null;asyncManager=new Wn;resolvedPageContent=new Map;formRegistry=new Map;currentParams={};dynamicCache=new Map;apiServer=null;focusRects=[];constructor(u){this.site=u.config,this.theme=this.resolveTheme(u.config.theme),this.borderStyle=u.config.borders??"rounded",this.router=new On,this.focus=new $n;let e=u.config.pages.map(n=>n.id);this.router.registerPages(e);let t=u.config.pages.filter(n=>typeof n.title=="string"&&!n._hidden).map(n=>n.id);this.focus.setItems(t)}resolveTheme(u){return u?typeof u=="string"?F2[u]??b2:u:b2}async start(){C8(),this.site.api&&Object.keys(this.site.api).length>0&&(this.apiServer=new je,this.apiServer.registerRoutes(this.site.api),await this.apiServer.start(),p8(this.apiServer.getBaseUrl()));let u=Pn();U2(u.colorDepth),Ae(()=>this.render());let e=null;if(globalThis.__terminaltui_render_callback__=()=>{e||(e=setTimeout(()=>{e=null,this.render()},0))},Ie((t,n)=>this.navigateToPage(t,n)),this.site.onInit)try{await this.site.onInit({state:null,navigate:(t,n)=>this.navigateToPage(t,n)})}catch(t){console.error("[terminaltui] onInit error:",t)}this.setupTerminal(),ke.on("resize",()=>this.render()),c8.on("keypress",t=>this.handleKey(t)),c8.start(),this.notificationTimer=setInterval(()=>{this.notifications.prune()&&this.render()},500),this.site.animations?.boot?this.runBootAnimation():(this.bootComplete=!0,this.render())}setupTerminal(){process.stdout.write("\x1B[?1049h"),process.stdout.write("\x1B[?25l"),process.stdout.write("\x1B[2J"),process.stdout.write("\x1B[H");let u=()=>this.cleanup();process.on("SIGINT",u),process.on("SIGTERM",u),process.on("uncaughtException",e=>{this.cleanup(),console.error(e),process.exit(1)})}cleanup(){c8.stop(),kn.stop(),this.asyncManager.cleanup(),this.bootTimer&&clearInterval(this.bootTimer),this.feedbackTimer&&clearTimeout(this.feedbackTimer),this.notificationTimer&&clearInterval(this.notificationTimer),We(),this.apiServer&&(this.apiServer.stop(),p8(null)),delete globalThis.__terminaltui_render_callback__,process.stdout.write("\x1B[?25h"),process.stdout.write("\x1B[?1049l"),process.stdout.write("\x1B[0m")}async stop(){if(this.site.onExit)try{await this.site.onExit({state:null,navigate:()=>{}})}catch{}if(Ae(null),Ie(null),this.site.animations?.exitMessage){let{columns:u,rows:e}=Bu();process.stdout.write("\x1B[2J\x1B[H");let t=this.site.animations.exitMessage,n=Math.floor(e/2),r=Math.max(0,Math.floor((u-L(t))/2));process.stdout.write(`\x1B[${n};${r}H`),process.stdout.write(h(this.theme.accent)+k+t+d),await new Promise(o=>setTimeout(o,800))}this.cleanup(),process.exit(0)}runBootAnimation(){this.bootComplete=!1,this.bootFrame=0;let u=30;this.bootTimer=setInterval(()=>{this.bootFrame++,this.render(),this.bootFrame>=u&&(this.bootTimer&&clearInterval(this.bootTimer),this.bootTimer=null,this.bootComplete=!0,this.render())},33)}handleKey(u){if(this.commandMode){s0(this,u);return}if(this.inputMode.isEditing){this.handleEditMode(u);return}i0(this,u)}handleEditMode(u){a0(this,u)}render(){W0(this)}navigateToPage(u,e){f5(this,u,e)}enterPage(){h5(this)}getCurrentPage(){return _5(this)}getPageContent(u){return Q0(this,u)}resolvePageTitle(u){return J0(this,u)}collectFocusItems(u){return au(this,u)}initializePageContent(u){u2(this,u)}registerForms(u){hu(this,u)}pageFocusNext(){Z0(this)}pageFocusPrev(){X0(this)}handlePageSelect(){tr(this)}showFeedback(u){m2(this,u)}executeCommand(u){ur(this,u)}validateInput(u){return p5(this,u)}renderBlock(u,e){return Vu(this,u,e)}isBlockFocusable(u){return c5(u)}renderContentBlocks(u,e){return Fu(this,u,e)}getInputState(u,e){let t=this.inputStates.get(u);return t||(t=qn(e),this.inputStates.set(u,t)),t}getFocusedInputBlock(){let u=this.pageFocusItems[this.pageFocusIndex];if(!u||u.kind!=="block")return null;let e=u.block;return["textInput","textArea","select","checkbox","toggle","radioGroup","numberInput","searchInput","button"].includes(e.type)?e:null}getFocusedInputId(){let u=this.getFocusedInputBlock();return u?u.id??null:null}isTextEntryType(u){return u==="textInput"||u==="textArea"||u==="searchInput"||u==="numberInput"}isAutoEditKey(u){return!!(u.char&&u.char.length===1&&!u.ctrl&&!["up","down","left","right","escape","return","delete","home","end","tab"].includes(u.name)||u.name==="space"||u.name==="backspace")}resetForm(u){let e=this.formRegistry.get(u);e&&(m5(this,e),this.render())}clearField(u){let e=this.inputStates.get(u);e&&(e.value="",e.cursorPos=0,e.error=null,this.render())}};async function E8(u){let{FileRouter:e}=await Promise.resolve().then(()=>(Se(),Pe)),t=new e({config:u.config,pagesDir:u.pagesDir,apiDir:u.apiDir,outDir:u.outDir});await t.initialize(),t.validateAndPrint();let n=await t.buildPagesArray(),r=await t.loadApiRoutes(),s={config:{name:u.config.name,handle:u.config.handle,tagline:u.config.tagline,banner:u.config.banner,theme:u.config.theme,borders:u.config.borders,animations:u.config.animations,navigation:u.config.navigation,easterEggs:u.config.easterEggs,footer:u.config.footer,statusBar:u.config.statusBar,artDir:u.config.artDir,middleware:u.config.middleware,menu:u.config.menu,pages:n,api:{...r||{}},onInit:u.config.onInit,onExit:u.config.onExit,onNavigate:u.config.onNavigate,onError:u.config.onError}},a=new g5(s);a._fileRouter=t,await a.start()}k2();W2();async function t2(u){try{let e=new AbortController,t=u.timeout?setTimeout(()=>e.abort(),u.timeout):null,n={method:u.method??"GET",headers:{"Content-Type":"application/json",...u.headers},signal:e.signal};u.body&&u.method!=="GET"&&(n.body=typeof u.body=="string"?u.body:JSON.stringify(u.body));let r=await fetch(Ne(u.url),n);t&&clearTimeout(t);let o=null;return(r.headers.get("content-type")??"").includes("application/json")?o=await r.json():o=await r.text(),r.ok?{data:o,error:null,status:r.status,ok:!0}:{data:o,error:new Error(`HTTP ${r.status}: ${r.statusText}`),status:r.status,ok:!1}}catch(e){return{data:null,error:e instanceof Error?e:new Error(String(e)),status:0,ok:!1}}}async function w2(u){return t2(u)}w2.get=(u,e)=>t2({url:u,method:"GET",headers:e});w2.post=(u,e,t)=>t2({url:u,method:"POST",body:e,headers:t});w2.put=(u,e,t)=>t2({url:u,method:"PUT",body:e,headers:t});w2.delete=(u,e)=>t2({url:u,method:"DELETE",headers:e});w2.patch=(u,e,t)=>t2({url:u,method:"PATCH",body:e,headers:t});var F5=!1;function sr(){if(!F5){F5=!0;try{C8()}catch{}}}function b5(u){if("name"in u&&typeof u.name=="string"){let r=u;if(!r.name)throw new Error("defineConfig() config must have a name");return r}let e=u;sr();let t={},n=[];for(let[r,o]of Object.entries(e)){let s=process.env[o.env];s!==void 0?t[r]=o.transform?o.transform(s):s:o.default!==void 0?t[r]=o.default:o.required?n.push(`Missing required environment variable: ${o.env} (config key: ${r})`):t[r]=void 0}if(n.length>0)throw new Error(`[terminaltui] Configuration errors:
93
- ${n.join(`
94
- `)}`);return{get(r){return t[r]},getAll(){return{...t}}}}var C5=b5({name:"Omar Musayev",tagline:"AI Engineer & Full Stack Developer",banner:{text:"OMAR",font:"ANSI Shadow",gradient:["#ff6b00","#ff9500"]},theme:"cyberpunk",borders:"rounded",animations:{boot:!0,transitions:"fade",exitMessage:"// Session terminated. See you later!"}});await E8({config:C5,pagesDir:"/Users/omar/WebstormProjects/retro-web-2/tui/pages",apiDir:"/Users/omar/WebstormProjects/retro-web-2/tui/api",outDir:"/Users/omar/WebstormProjects/retro-web-2/tui/.terminaltui"});
2
+ var q=(u,e)=>()=>(u&&(e=u(u=0)),e);var X=q(()=>{});var uu=q(()=>{});var hu=q(()=>{X();uu()});var Nu,Hu,du,_u,eu=q(()=>{Nu=Object.defineProperty,Hu=Object.getOwnPropertyNames,du=(u,e)=>function(){return u&&(e=(0,u[Hu(u)[0]])(u=0)),e},_u=(u,e)=>{for(var t in e)Nu(u,t,{get:e[t],enumerable:!0})}});function Du(u){let e=u.match(/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i);return e?{r:parseInt(e[1],16),g:parseInt(e[2],16),b:parseInt(e[3],16)}:null}function au(){let u=process.env;return u.NO_COLOR!==void 0?"none":u.TERM_PROGRAM==="Apple_Terminal"?"256":u.COLORTERM==="truecolor"||u.COLORTERM==="24bit"?"truecolor":u.TERM_PROGRAM==="iTerm.app"||u.TERM_PROGRAM==="WezTerm"||u.TERM_PROGRAM==="vscode"||u.TERM_PROGRAM==="Hyper"||u.TERM_PROGRAM==="WarpTerminal"||u.WT_SESSION!==void 0?u.COLORTERM?"truecolor":"256":u.TERM?.includes("256color")?"256":u.TERM?"16":"none"}var T=au();function Lu(u,e,t){if(u===e&&e===t)return u<8?16:u>248?231:Math.round((u-8)/247*24)+232;let n=Math.round(u/255*5),o=Math.round(e/255*5),r=Math.round(t/255*5);return 16+36*n+6*o+r}var Tu=[{r:0,g:0,b:0,code:30},{r:170,g:0,b:0,code:31},{r:0,g:170,b:0,code:32},{r:170,g:170,b:0,code:33},{r:0,g:0,b:170,code:34},{r:170,g:0,b:170,code:35},{r:0,g:170,b:170,code:36},{r:170,g:170,b:170,code:37},{r:85,g:85,b:85,code:90},{r:255,g:85,b:85,code:91},{r:85,g:255,b:85,code:92},{r:255,g:255,b:85,code:93},{r:85,g:85,b:255,code:94},{r:255,g:85,b:255,code:95},{r:85,g:255,b:255,code:96},{r:255,g:255,b:255,code:97}];function Ou(u,e,t){let n=30,o=1/0;for(let r of Tu){let s=u-r.r,l=e-r.g,d=t-r.b,c=s*s+l*l+d*d;c<o&&(o=c,n=r.code)}return n}function i(u){if(T==="none")return"";let e=Du(u);return e?T==="16"?`\x1B[${Ou(e.r,e.g,e.b)}m`:T==="256"?`\x1B[38;5;${Lu(e.r,e.g,e.b)}m`:`\x1B[38;2;${e.r};${e.g};${e.b}m`:""}var a=T==="none"?"":"\x1B[0m",v=T==="none"?"":"\x1B[1m",O=T==="none"?"":"\x1B[2m",j=T==="none"?"":"\x1B[3m",N=T==="none"?"":"\x1B[4m",cu=T==="none"?"":"\x1B[7m",Ru=class{renderers=new Map;focusableTypes=new Set;register(u,e,t=!1){this.renderers.set(u,e),t&&this.focusableTypes.add(u)}getRenderer(u){return this.renderers.get(u)}isFocusable(u){return this.focusableTypes.has(u)}has(u){return this.renderers.has(u)}},C=new Ru;function H(u){return u<32||u===127||u>=768&&u<=879||u===8203||u===8204||u===8205||u===173||u===65279||u>=6832&&u<=6911||u>=7616&&u<=7679||u>=8400&&u<=8447||u>=65056&&u<=65071||u>=65024&&u<=65039||u>=917760&&u<=917999?0:u>=19968&&u<=40959||u>=13312&&u<=19903||u>=131072&&u<=173791||u>=173824&&u<=177983||u>=177984&&u<=178207||u>=63744&&u<=64255||u>=12288&&u<=12351||u>=12352&&u<=12447||u>=12448&&u<=12543||u>=44032&&u<=55215||u>=4352&&u<=4447||u>=65281&&u<=65376||u>=65504&&u<=65510||u>=127744&&u<=129535||u>=129536&&u<=129647||u>=129648&&u<=129791?2:(u>=9984&&u<=10175||u>=9728&&u<=9983,1)}function b(u){let e=z(u),t=0;for(let n of e)t+=H(n.codePointAt(0)??0);return t}function lu(u,e){return i(e)+u+a}function S(u,e,t="left"){let n=b(u),o=Math.max(0,e-n);switch(t){case"center":{let r=Math.floor(o/2),s=o-r;return" ".repeat(r)+u+" ".repeat(s)}case"right":return" ".repeat(o)+u;default:return u+" ".repeat(o)}}function z(u){return u.replace(/\x1b\[[0-9;]*m/g,"")}function B(u,e){if(!u)return"";if(b(u)<=e)return u;let t=0,n="",o=!1;for(let r of u){if(r==="\x1B"){o=!0,n+=r;continue}if(o){n+=r,r==="m"&&(o=!1);continue}let s=H(r.codePointAt(0)??0);if(t+s>=e){n+="\u2026";break}n+=r,t+=s}return n+a}function L(u,e){if(e<=0)return[];let t=u.split(`
3
+ `),n=[];for(let o of t){if(o.length===0){n.push("");continue}let r=o.split(" "),s="",l=0;for(let d of r){let c=b(d);if(c>e){s&&(n.push(s),s="",l=0);let f="",h=0;for(let p of d){let _=H(p.codePointAt(0)??0);h+_>e&&f&&(n.push(f),f="",h=0),f+=p,h+=_}s=f,l=h;continue}l===0?(s=d,l=c):l+1+c<=e?(s+=" "+d,l+=1+c):(n.push(s),s=d,l=c)}s&&n.push(s)}return n.length>0?n:[""]}function ku(u,e){let t=u.split(`
4
+ `);if(t.length===0)throw new Error(`parseFLF: empty font data for "${e}"`);let n=t[0];if(!n.startsWith("flf2"))throw new Error(`parseFLF: invalid FLF header for "${e}": ${n}`);let o=n.charAt(5),r=n.slice(6).trim().split(/\s+/),s=parseInt(r[0],10),l=parseInt(r[4],10)||0;if(isNaN(s)||s<=0)throw new Error(`parseFLF: invalid height in header for "${e}"`);let d=1+l,c={},f=new Set;for(let _=65;_<=90;_++)f.add(_);for(let _=48;_<=57;_++)f.add(_);f.add(32);let h="!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~";for(let _ of h)f.add(_.charCodeAt(0));let p=d;for(let _=32;_<=126&&!(p+s>t.length);_++){let m=[];for(let F=0;F<s;F++){let g=t[p+F]??"";g.endsWith("@@")?g=g.slice(0,-2):g.endsWith("@")&&(g=g.slice(0,-1)),o&&o!==" "&&(g=g.split(o).join(" ")),m.push(g)}if(p+=s,f.has(_)){let F=String.fromCharCode(_);c[F]=m}}return{name:e,height:s,chars:c}}function Y(u){return u.toLowerCase().replace(/[\s_]+/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,"")}function $u(u){return!Array.isArray(u)&&Array.isArray(u.art)}function Wu(u){if(Array.isArray(u))return!1;let e=u;return e.small!==void 0||e.medium!==void 0||e.large!==void 0||e.art!==void 0||e.author!==void 0||e.source!==void 0}var Yu=class{fonts=new Map;scenes=new Map;icons=new Map;patterns=new Map;register(u,e,t,n="custom"){let o=Y(e);switch(u){case"font":{this.fonts.has(o)&&process.stderr.write(`[art-registry] warning: font "${o}" overwritten (source: ${n})
5
+ `);let r;typeof t=="string"?r=ku(t,o):r=t,this.fonts.set(o,{font:r,source:n,author:void 0});break}case"scene":{this.scenes.has(o)&&process.stderr.write(`[art-registry] warning: scene "${o}" overwritten (source: ${n})
6
+ `);let r;if(Array.isArray(t))r={art:t,source:n};else if($u(t))r={...t,source:t.source??n};else throw new Error(`Invalid scene data for "${e}"`);this.scenes.set(o,{scene:r,source:n});break}case"icon":{this.icons.has(o)&&process.stderr.write(`[art-registry] warning: icon "${o}" overwritten (source: ${n})
7
+ `);let r;if(Array.isArray(t))r=ju(t,n);else if(Wu(t))r={...t,source:t.source??n};else throw new Error(`Invalid icon data for "${e}"`);this.icons.set(o,{icon:r,source:n});break}case"pattern":{this.patterns.has(o)&&process.stderr.write(`[art-registry] warning: pattern "${o}" overwritten (source: ${n})
8
+ `);let r=t;this.patterns.set(o,{pattern:{...r,source:r.source??n},source:n});break}}}get(u,e){let t=Y(e),n=this.mapFor(u),o=n.get(t);if(o)return this.unwrapEntry(u,o);if(e.includes("/")){let r=Y(e.replace("/","-")),s=n.get(r);if(s)return this.unwrapEntry(u,s)}for(let[r,s]of n)if(r.endsWith(`-${t}`)||r.endsWith(`/${t}`))return this.unwrapEntry(u,s);return null}has(u,e){return this.get(u,e)!==null}list(u){if(u)return Array.from(this.mapFor(u).keys()).sort();let e=new Set;for(let t of this.fonts.keys())e.add(t);for(let t of this.scenes.keys())e.add(t);for(let t of this.icons.keys())e.add(t);for(let t of this.patterns.keys())e.add(t);return Array.from(e).sort()}getInfo(u,e){let t=Y(e),o=this.mapFor(u).get(t);if(!o)return null;let r={name:t,type:u,source:""};switch(u){case"font":{let s=o;r.source=s.source,r.author=s.author;break}case"scene":{let s=o;r.source=s.source,r.author=s.scene.author,r.description=s.scene.description;break}case"icon":{let s=o;r.source=s.source,r.author=s.icon.author;break}case"pattern":{let s=o;r.source=s.source,r.author=s.pattern.author;break}}return r}loadPack(u){let e=`pack:${u.name}`;if(u.fonts){for(let[t,n]of Object.entries(u.fonts))if(this.register("font",t,n,e),u.author){let o=Y(t),r=this.fonts.get(o);r&&!r.author&&(r.author=u.author)}}if(u.scenes)for(let[t,n]of Object.entries(u.scenes))this.register("scene",t,n,e);if(u.icons)for(let[t,n]of Object.entries(u.icons))this.register("icon",t,n,e);if(u.patterns)for(let[t,n]of Object.entries(u.patterns))this.register("pattern",t,n,e)}clear(){this.fonts.clear(),this.scenes.clear(),this.icons.clear(),this.patterns.clear()}mapFor(u){switch(u){case"font":return this.fonts;case"scene":return this.scenes;case"icon":return this.icons;case"pattern":return this.patterns}}unwrapEntry(u,e){switch(u){case"font":return e.font;case"scene":return e.scene;case"icon":return e.icon;case"pattern":return e.pattern}}};function ju(u,e){let t=u.length,n={source:e};return t<=4?n.small=u:t<=6?n.medium=u:n.large=u,n}var fu=new Yu;var iu={single:{topLeft:"\u250C",topRight:"\u2510",bottomLeft:"\u2514",bottomRight:"\u2518",horizontal:"\u2500",vertical:"\u2502",teeLeft:"\u2524",teeRight:"\u251C",teeUp:"\u2534",teeDown:"\u252C",cross:"\u253C"},double:{topLeft:"\u2554",topRight:"\u2557",bottomLeft:"\u255A",bottomRight:"\u255D",horizontal:"\u2550",vertical:"\u2551",teeLeft:"\u2563",teeRight:"\u2560",teeUp:"\u2569",teeDown:"\u2566",cross:"\u256C"},rounded:{topLeft:"\u256D",topRight:"\u256E",bottomLeft:"\u2570",bottomRight:"\u256F",horizontal:"\u2500",vertical:"\u2502",teeLeft:"\u2524",teeRight:"\u251C",teeUp:"\u2534",teeDown:"\u252C",cross:"\u253C"},heavy:{topLeft:"\u250F",topRight:"\u2513",bottomLeft:"\u2517",bottomRight:"\u251B",horizontal:"\u2501",vertical:"\u2503",teeLeft:"\u252B",teeRight:"\u2523",teeUp:"\u253B",teeDown:"\u2533",cross:"\u254B"},dashed:{topLeft:"\u250C",topRight:"\u2510",bottomLeft:"\u2514",bottomRight:"\u2518",horizontal:"\u2504",vertical:"\u2506",teeLeft:"\u2524",teeRight:"\u251C",teeUp:"\u2534",teeDown:"\u252C",cross:"\u253C"},ascii:{topLeft:"+",topRight:"+",bottomLeft:"+",bottomRight:"+",horizontal:"-",vertical:"|",teeLeft:"+",teeRight:"+",teeUp:"+",teeDown:"+",cross:"+"},none:{topLeft:" ",topRight:" ",bottomLeft:" ",bottomRight:" ",horizontal:" ",vertical:" ",teeLeft:" ",teeRight:" ",teeUp:" ",teeDown:" ",cross:" "}};function K(u){return iu[u??"rounded"]??iu.rounded}hu();X();uu();eu();import{EventEmitter as Zu}from"events";import{EventEmitter as e2}from"events";var Ku={};_u(Ku,{defaultTheme:()=>ou,themes:()=>Q});var Q,ou,ru=du({"src/style/theme.ts"(){"use strict";Q={cyberpunk:{accent:"#ff2a6d",accentDim:"#b91d4f",text:"#05d9e8",muted:"#0abdc6",subtle:"#01579b",success:"#05d9e8",warning:"#d1f7ff",error:"#ff2a6d",border:"#01579b",bg:"#01012b"},dracula:{accent:"#ff79c6",accentDim:"#bd93f9",text:"#f8f8f2",muted:"#6272a4",subtle:"#44475a",success:"#50fa7b",warning:"#f1fa8c",error:"#ff5555",border:"#6272a4",bg:"#282a36"},nord:{accent:"#88c0d0",accentDim:"#5e81ac",text:"#eceff4",muted:"#81a1c1",subtle:"#4c566a",success:"#a3be8c",warning:"#ebcb8b",error:"#bf616a",border:"#4c566a",bg:"#2e3440"},monokai:{accent:"#f92672",accentDim:"#ae81ff",text:"#f8f8f2",muted:"#75715e",subtle:"#49483e",success:"#a6e22e",warning:"#e6db74",error:"#f92672",border:"#75715e",bg:"#272822"},solarized:{accent:"#268bd2",accentDim:"#2aa198",text:"#839496",muted:"#657b83",subtle:"#586e75",success:"#859900",warning:"#b58900",error:"#dc322f",border:"#586e75",bg:"#002b36"},gruvbox:{accent:"#fe8019",accentDim:"#d65d0e",text:"#ebdbb2",muted:"#a89984",subtle:"#504945",success:"#b8bb26",warning:"#fabd2f",error:"#fb4934",border:"#504945",bg:"#282828"},catppuccin:{accent:"#f5c2e7",accentDim:"#cba6f7",text:"#cdd6f4",muted:"#a6adc8",subtle:"#45475a",success:"#a6e3a1",warning:"#f9e2af",error:"#f38ba8",border:"#585b70",bg:"#1e1e2e"},tokyoNight:{accent:"#7aa2f7",accentDim:"#bb9af7",text:"#c0caf5",muted:"#565f89",subtle:"#3b4261",success:"#9ece6a",warning:"#e0af68",error:"#f7768e",border:"#3b4261",bg:"#1a1b26"},rosePine:{accent:"#ebbcba",accentDim:"#c4a7e7",text:"#e0def4",muted:"#908caa",subtle:"#6e6a86",success:"#9ccfd8",warning:"#f6c177",error:"#eb6f92",border:"#6e6a86",bg:"#191724"},hacker:{accent:"#00ff41",accentDim:"#008f11",text:"#00ff41",muted:"#008f11",subtle:"#003b00",success:"#00ff41",warning:"#ccff00",error:"#ff0000",border:"#008f11",bg:"#0d0208"}},ou=Q.dracula}});var pu=!1,mu=new Set,J=null,tu=new Map,Ju=new Map;function gu(u,e){tu.has(u)||tu.set(u,new Set),tu.get(u).add(e)}var Qu=0,Fu=null;function su(u){let e=`state-${Qu++}`,t={...u},n=new Map,o=new Set,r=!1,s=new Map;function l(f,h,p){if(r){s.set(f,{newVal:h,oldVal:p});return}let _=n.get(f);if(_)for(let m of _)m(h,p);for(let m of o)m(f,h);Fu?.()}function d(){let f=new Map(s);s.clear();for(let[h,{newVal:p,oldVal:_}]of f){let m=n.get(h);if(m)for(let F of m)F(p,_);for(let F of o)F(h,p)}f.size>0&&Fu?.()}let c={_id:e,get(f){if(f===void 0){if(pu&&(J===null||J===e))for(let h of Object.keys(t))mu.add(h),gu(e,h);return{...t}}return pu&&(J===null||J===e)&&(mu.add(f),gu(e,f)),t[f]},set(f,h){let p=t[f];p!==h&&(t[f]=h,l(f,h,p))},update(f,h){let p=t[f],_=h(p);p!==_&&(t[f]=_,l(f,_,p))},batch(f){r=!0;try{f()}finally{r=!1,d()}},on(f,h){return f==="*"?(o.add(h),()=>o.delete(h)):(n.has(f)||n.set(f,new Set),n.get(f).add(h),()=>n.get(f)?.delete(h))},keys(){return Object.keys(t)}};return Ju.set(e,c),c}ru();var Xu=class extends Zu{started=!1;rawModeWas;start(){this.started||(this.started=!0,process.stdin.isTTY&&(this.rawModeWas=process.stdin.isRaw,process.stdin.setRawMode(!0)),process.stdin.resume(),process.stdin.setEncoding("utf-8"),process.stdin.on("data",this.handleData))}stop(){this.started&&(this.started=!1,process.stdin.removeListener("data",this.handleData),process.stdin.isTTY&&this.rawModeWas!==void 0&&process.stdin.setRawMode(this.rawModeWas),process.stdin.pause())}handleData=u=>{for(let e of u2(u))this.emit("keypress",e)}};function u2(u){let e=[];if(u==="\x1B[A")e.push(I("up","",!1,!1,!1,u));else if(u==="\x1B[B")e.push(I("down","",!1,!1,!1,u));else if(u==="\x1B[C")e.push(I("right","",!1,!1,!1,u));else if(u==="\x1B[D")e.push(I("left","",!1,!1,!1,u));else if(u==="\r"||u===`
9
+ `)e.push(I("return","",!1,!1,!1,u));else if(u==="\x1B")e.push(I("escape","",!1,!1,!1,u));else if(u==="\x7F"||u==="\b")e.push(I("backspace","",!1,!1,!1,u));else if(u===" ")e.push(I("tab","",!1,!1,!1,u));else if(u==="\x1B[Z")e.push(I("tab","",!1,!1,!0,u));else if(u==="\x1B[3~")e.push(I("delete","",!1,!1,!1,u));else if(u==="\x1B[H"||u==="\x1B[1~"||u==="\x1BOH")e.push(I("home","",!1,!1,!1,u));else if(u==="\x1B[F"||u==="\x1B[4~"||u==="\x1BOF")e.push(I("end","",!1,!1,!1,u));else if(u===" ")e.push(I("space"," ",!1,!1,!1,u));else for(let t=0;t<u.length;t++){let n=u[t],o=n.charCodeAt(0);if(o<=26&&o>0){let r=String.fromCharCode(o+96);e.push(I(r,n,!0,!1,!1,n))}else e.push(I(n,n,!1,!1,!1,n))}return e}function I(u,e,t,n,o,r){return{name:u,char:e,ctrl:t,meta:n,shift:o,sequence:r}}var g8=new Xu,t2=class extends e2{_size;constructor(){super(),this._size=this.measure(),process.stdout.on("resize",()=>{this._size=this.measure(),this.emit("resize",this._size)}),typeof process.on=="function"&&process.on("SIGWINCH",()=>{this._size=this.measure(),this.emit("resize",this._size)})}get size(){return this._size}get columns(){return this._size.columns}get rows(){return this._size.rows}measure(){return{columns:process.stdout.columns||80,rows:process.stdout.rows||24}}},b8=new t2;var n2=class{listeners=new Map;on(u,e){return this.listeners.has(u)||this.listeners.set(u,new Set),this.listeners.get(u).add(e),()=>this.off(u,e)}off(u,e){this.listeners.get(u)?.delete(e)}emit(u,...e){this.listeners.get(u)?.forEach(t=>{try{t(...e)}catch{}})}once(u,e){let t=(...n)=>{this.off(u,t),e(...n)};return this.on(u,t)}removeAll(u){u?this.listeners.delete(u):this.listeners.clear()}},C8=new n2;var o2=class{animations=new Map;timer=null;fps=30;running=!1;start(){if(this.running)return;this.running=!0;let u=Math.floor(1e3/this.fps);this.timer=setInterval(()=>this.tick(),u)}stop(){this.running=!1,this.timer&&(clearInterval(this.timer),this.timer=null),this.animations.clear()}add(u,e,t,n){this.animations.set(u,{id:u,totalFrames:e,onFrame:t,onComplete:n,currentFrame:0}),this.running||this.start()}remove(u){this.animations.delete(u),this.animations.size===0&&this.stop()}tick(){let u=[];for(let[e,t]of this.animations)t.onFrame(t.currentFrame,t.totalFrames,t.currentFrame/this.fps),t.currentFrame++,t.currentFrame>=t.totalFrames&&(u.push(e),t.onComplete?.());for(let e of u)this.animations.delete(e);this.animations.size===0&&this.stop()}get isRunning(){return this.running}get activeCount(){return this.animations.size}},w8=new o2;var r2="__terminaltui_api_base_url__";function s2(){return globalThis[r2]??null}function Cu(u){let e=s2();return u.startsWith("/")&&e?`${e}${u}`:u}var i2=class{entries=new Map;get(u){let e=this.entries.get(u);if(e){if(Date.now()-e.timestamp>e.ttl){this.entries.delete(u);return}return e.data}}set(u,e,t){this.entries.set(u,{data:e,timestamp:Date.now(),ttl:t})}has(u){return this.get(u)!==void 0}delete(u){this.entries.delete(u)}clear(){this.entries.clear()}},y8=new i2;function M(u,e){let t=e.margin??0,n=typeof e.border=="boolean"?e.border?1:0:e.border??0,o=e.padding??0,r=t*2+n*2+o*2,s=Math.max(0,u-r);return{allocated:u,margin:t,border:n,padding:o,content:s}}var A={card:{padding:1,border:!0,margin:0},text:{padding:0,border:!1,margin:0},hero:{padding:0,border:!1,margin:0},table:{padding:0,border:!0,margin:0},quote:{padding:1,border:!0,margin:1},badge:{padding:0,border:!1,margin:0},progressBar:{padding:0,border:!1,margin:0},link:{padding:0,border:!1,margin:0},list:{padding:0,border:!1,margin:0},section:{padding:0,border:!1,margin:0},divider:{padding:0,border:!1,margin:0},spacer:{padding:0,border:!1,margin:0},timeline:{padding:1,border:!0,margin:1},gallery:{padding:0,border:!1,margin:0},image:{padding:0,border:!0,margin:0},markdown:{padding:0,border:!1,margin:0},menu:{padding:0,border:!1,margin:0},accordion:{padding:2,border:!1,margin:0},tabs:{padding:2,border:!1,margin:0},scrollView:{padding:0,border:!1,margin:0},textInput:{padding:1,border:!0,margin:0},textArea:{padding:1,border:!0,margin:0},select:{padding:1,border:!0,margin:0},checkbox:{padding:0,border:!1,margin:0},toggle:{padding:0,border:!1,margin:0},radioGroup:{padding:0,border:!1,margin:0},numberInput:{padding:1,border:!0,margin:0},searchInput:{padding:1,border:!0,margin:0},button:{padding:2,border:!0,margin:1},form:{padding:1,border:!0,margin:0},box:{padding:0,border:!1,margin:0}};function a2(u,e){let t=u.border??e.borderStyle??"rounded",n=K(t),o=u.width??e.width,r=u.padding??1,s=Math.max(0,Math.floor((o-2)/2)),l=Math.min(r,s),d=M(o,{border:!0,padding:l}),c=d.content,f=u.borderColor??e.theme.border,h=[],p=Math.max(0,d.allocated-d.border*2);if(u.title){let g=` ${u.title} `,y="";u.titleRight&&(y=` ${u.titleRight} `);let x=Math.max(0,p-b(g)-b(y)-1);h.push(i(f)+n.topLeft+n.horizontal+a+i(e.theme.accent)+g+a+i(f)+n.horizontal.repeat(x)+(y?a+i(e.theme.muted)+y+a+i(f):"")+n.topRight+a)}else h.push(i(f)+n.topLeft+n.horizontal.repeat(p)+n.topRight+a);let _=[];for(let g of u.content)_.push(g);let m=u.height?Math.max(0,u.height-2):_.length+(l>0,0),F=Math.max(m,_.length);for(let g=0;g<F;g++){let y=_[g]??"",x=" ".repeat(l);h.push(i(f)+n.vertical+a+x+S(y,c)+x+i(f)+n.vertical+a),u.midSeparatorAfter!==void 0&&g===u.midSeparatorAfter&&h.push(i(f)+n.teeRight+n.horizontal.repeat(p)+n.teeLeft+a)}return h.push(i(f)+n.bottomLeft+n.horizontal.repeat(p)+n.bottomRight+a),h}function c2(u,e,t){let o=M(e.width,A.text).content,r=e.theme;return t==="markdown"?l2(u,o,r):L(u,o).map(s=>lu(s,r.text))}function l2(u,e,t){let n=[],o=u.split(/\n\n+/);for(let r of o){let s=r.trim();if(!s)continue;let l=s.split(`
10
+ `);for(let d of l){let c=d.trim();if(!c)continue;if(c.startsWith("#")){let p=c.match(/^(#+)\s+(.*)/);if(p){let _=p[2];n.push(v+i(t.accent)+_+a);continue}}if(c.match(/^[-*]\s/)){let p=c.replace(/^[-*]\s+/,""),_=nu(p,t),m=bu(p),F=L(m,e-2);for(let g=0;g<F.length;g++){let y=g===0?"\u2022 ":" ",x=g===0?nu(F[g],t):i(t.text)+F[g]+a;n.push(i(t.text)+y+x+a)}continue}let f=bu(c),h=L(f,e);for(let p of h)n.push(i(t.text)+nu(p,t)+a)}n.push("")}return n.length>0&&n[n.length-1]===""&&n.pop(),n}function nu(u,e){let t=u;return t=t.replace(/\*\*(.+?)\*\*/g,(n,o)=>v+i(e.accent)+o+a+i(e.text)),t=t.replace(/\*(.+?)\*/g,(n,o)=>j+o+a+i(e.text)),t=t.replace(/`(.+?)`/g,(n,o)=>i(e.warning)+o+a+i(e.text)),t}function bu(u){return u.replace(/\*\*(.+?)\*\*/g,"$1").replace(/\*(.+?)\*/g,"$1").replace(/`(.+?)`/g,"$1")}function wu(u,e){let t=e.theme,o=M(e.width,A.card).content,r=[],s=e.focused?"\u25C6":"\u25C7",l=u.title??"";if(u.subtitle){let d=s+" ",c=u.subtitle,f=b(d)+b(l)+1+b(c);if(f>o){let h=Math.max(1,o-b(d)),p=Math.min(b(c),Math.max(4,Math.floor(h/2))),_=B(c,p),m=z(_),F=Math.max(1,h-1-b(m)),g=B(l,F),y=z(g),x=b(d)+b(y)+b(m),R=Math.max(1,o-x);r.push(i(t.accent)+s+" "+v+g+a+" ".repeat(R)+i(t.muted)+_+a)}else{let h=Math.max(1,o-f);r.push(i(t.accent)+s+" "+v+l+a+" ".repeat(h)+i(t.muted)+u.subtitle+a)}}else{let d=s+" ";if(b(d)+b(l)>o){let c=Math.max(1,o-b(d)),f=B(l,c);r.push(i(t.accent)+s+" "+v+f+a)}else r.push(i(t.accent)+s+" "+v+l+a)}if(u.body){let d=L(u.body,o);for(let c of d)r.push(i(t.text)+c+a)}if(u.tags&&u.tags.length>0){r.push("");let d="",c="";for(let f=0;f<u.tags.length;f++){let p="["+u.tags[f]+"]",_=i(t.warning)+p+a;b(d)===0?(d=p,c=_):b(d)+1+b(p)<=o?(d+=" "+p,c+=" "+_):(r.push(c),d=p,c=_)}c&&r.push(c)}return a2({content:r,width:e.width,border:u.border??e.borderStyle??"rounded",padding:1,borderColor:e.focused?e.theme.accent:void 0},e)}function f2(u,e,t){let n=[],o=e.theme,r=M(e.width,A.timeline),s=e.width,l=r.content;for(let d=0;d<u.length;d++){let c=u[d],f=d===0,h=d===u.length-1,p=f?"\u25CF":"\u25CB",_=i(o.accent)+" "+p+" "+a,m=r.content,F;if(c.subtitle)if((c.title+" \xB7 "+c.subtitle).length>m){let y=m-c.title.length-3;y>0?F=_+i(o.accent)+v+c.title+a+i(o.muted)+" \xB7 "+B(c.subtitle,y)+a:F=_+i(o.accent)+v+B(c.title,m)+a}else F=_+i(o.accent)+v+c.title+a+i(o.muted)+" \xB7 "+c.subtitle+a;else F=_+i(o.accent)+v+B(c.title,m)+a;if(n.push(F),c.period&&n.push(i(o.border)+" \u2502 "+a+i(o.muted)+O+c.period+a),c.description){let g=L(c.description,l);for(let y of g)n.push(i(o.border)+" \u2502 "+a+i(o.text)+y+a)}h||n.push(i(o.border)+" \u2502"+a)}return n}function h2(u,e,t,n){let o=t.theme,r=M(t.width,A.progressBar),s=n?.max??100,l=n?.showPercent??!0,d=Number.isFinite(e)?e:0,c=Math.min(100,Math.max(0,d/s*100)),f=l?5:0,h=Math.max(4,Math.floor(r.content*.4)),p=Math.min(b(u)+2,h),_=Math.max(5,r.content-p-f-2),m=Math.round(c/100*_),F=_-m,g;c>=70?g=o.success:c>=40?g=o.warning:g=o.error;let y=b(u)>p-2?B(u,p-2):u,x=i(o.text)+S(y,p)+a,R=i(g)+"\u2588".repeat(m)+a,Z=i(o.subtle)+"\u2591".repeat(F)+a,V=l?i(o.muted)+` ${Math.round(c)}%`+a:"";return[x+R+Z+V]}function d2(u,e,t){let n=t.theme,o=[],r=u.length,s=M(t.width,A.table),l=u.map((_,m)=>Math.max(b(_),...e.map(g=>b(g[m]??"")))+2),d=Math.max(r,s.content-(r-1)),c=l.reduce((_,m)=>_+m,0);if(c>d){for(let m=0;m<l.length;m++)l[m]=Math.max(2,Math.floor(l[m]/c*d));let _=l.reduce((m,F)=>m+F,0);for(;_>d;){let m=0;for(let F=1;F<l.length;F++)l[F]>l[m]&&(m=F);if(l[m]<=2)break;l[m]--,_--}}let f=t.borderStyle??"single",h=K(f);o.push(i(n.border)+h.topLeft+l.map(_=>h.horizontal.repeat(_)).join(h.teeDown)+h.topRight+a);let p=u.map((_,m)=>{let F=" "+_,g=l[m]-1,y=b(F)>g?B(F,g)+" ":S(F,l[m]);return i(n.accent)+v+y+a});o.push(i(n.border)+h.vertical+a+p.join(i(n.border)+h.vertical+a)+i(n.border)+h.vertical+a),o.push(i(n.border)+h.teeRight+l.map(_=>h.horizontal.repeat(_)).join(h.cross)+h.teeLeft+a);for(let _ of e){let m=_.map((F,g)=>{let y=" "+(F??""),x=l[g]-1,R=b(y)>x?B(y,x)+" ":S(y,l[g]);return i(n.text)+R+a});o.push(i(n.border)+h.vertical+a+m.join(i(n.border)+h.vertical+a)+i(n.border)+h.vertical+a)}return o.push(i(n.border)+h.bottomLeft+l.map(_=>h.horizontal.repeat(_)).join(h.teeUp)+h.bottomRight+a),o}function _2(u,e,t,n){let o=t.theme,r=n?.icon??"\u2192",s=n?.focused??t.focused??!1,d=M(t.width,A.link).content;if(s){let g=" \u276F "+r+" ",y=" ",x=b(g),R=d-x;if(R<=0)return[i(o.accent)+v+B(g,d)+a];let Z=b(u)+b(y)+b(e);if(x+Z<=d)return[i(o.accent)+v+g+N+u+a+i(o.muted)+O+y+e+a];let V=d-x-b(u)-b(y);if(V>=4){let Su=B(e,V);return[i(o.accent)+v+g+N+u+a+i(o.muted)+O+y+Su+a]}let Eu=B(u,R);return[i(o.accent)+v+g+N+Eu+a]}let c=" "+r+" ",f=" ",h=b(c),p=d-h;if(p<=0)return[i(o.text)+B(c,d)+a];let _=b(u)+b(f)+b(e);if(h+_<=d)return[i(o.text)+c+u+a+i(o.subtle)+O+f+e+a];let m=d-h-b(u)-b(f);if(m>=4){let g=B(e,m);return[i(o.text)+c+u+a+i(o.subtle)+O+f+g+a]}let F=B(u,p);return[i(o.text)+c+F+a]}function p2(u,e){let t=u.theme,n=e?.color??t.border,r=M(u.width,A.divider).content;if(e?.style==="label"&&e.label){let l=Math.max(0,r-8),d=e.label;d.length>l&&(d=d.slice(0,Math.max(0,l-1))+"\u2026");let c=` ${d} `,f=Math.max(0,r-c.length-4),h=Math.floor(f/2),p=f-h;return[i(n)+"\u2500\u2500"+"\u2500".repeat(h)+a+i(t.muted)+c+a+i(n)+"\u2500".repeat(p)+"\u2500\u2500"+a]}let s="\u2500";return e?.style==="dashed"?s="\u2504":e?.style==="dotted"?s="\xB7":e?.style==="double"&&(s="\u2550"),[i(n)+s.repeat(r)+a]}function m2(u=1){return Array(Math.max(0,u)).fill("")}function g2(u,e,t){let n=e.theme,o=t?.style??"border",s=M(e.width,A.quote).content,l=[],d=L(`"${u}"`,s);if(o==="border"){for(let c of d)l.push(i(n.accent)+" \u2502 "+a+j+i(n.text)+c+a);if(t?.attribution){let c="\u2014 "+t.attribution;b(c)>s&&(c=c.substring(0,s-1)+"\u2026");let f=Math.max(0,s-b(c));l.push(i(n.accent)+" \u2502 "+a+i(n.muted)+O+" ".repeat(f)+c+a)}}else if(o==="fancy"){l.push(i(n.accent)+" \u250C"+"\u2500".repeat(s+2)+"\u2510"+a);for(let c of d)l.push(i(n.accent)+" \u2502 "+a+j+i(n.text)+c+" ".repeat(Math.max(0,s-b(c)))+a+i(n.accent)+" \u2502"+a);if(t?.attribution){let c="\u2014 "+t.attribution,f=Math.max(0,s-b(c));l.push(i(n.accent)+" \u2502 "+a+" ".repeat(f)+i(n.muted)+c+a+i(n.accent)+" \u2502"+a)}l.push(i(n.accent)+" \u2514"+"\u2500".repeat(s+2)+"\u2518"+a)}else{for(let c of d)l.push(" "+j+i(n.text)+c+a);t?.attribution&&l.push(" "+i(n.muted)+O+"\u2014 "+t.attribution+a)}return l}function F2(u,e,t){let n=M(e.width,A.badge),o=t?.color??e.theme.warning;return(t?.style??"outline")==="filled"?cu+i(o)+` ${u} `+a:i(o)+`[${u}]`+a}function b2(u,e){let t=e.theme,n=[],r=M(e.width,A.hero).content;n.push("");let s=L(u.title,r);for(let l of s){let d=i(t.accent)+v+l+a;n.push(S(d,r,"center"))}if(n.push(""),u.subtitle){let l=L(u.subtitle,r);for(let d of l){let c=i(t.text)+d+a;n.push(S(c,r,"center"))}n.push("")}if(u.cta){let l=i(t.accent)+v+N+u.cta.label+a;n.push(S(l,r,"center")),n.push("")}if(u.art){let l=u.art.split(`
11
+ `);for(let d of l)n.push(S(i(t.muted)+d+a,r,"center"))}return n.push(""),n}function C2(u,e,t){let n=M(e.width,A.list),o=e.theme,r=t??"bullet",s={bullet:()=>"\u2022",number:c=>`${c+1}.`,dash:()=>"\u2500",check:()=>"\u2713",arrow:()=>"\u2192"},l=s[r]??s.bullet,d=[];for(let c=0;c<u.length;c++){let h=` ${l(c)} `,p=" ".repeat(h.length),_=Math.max(1,n.content-h.length),m=L(u[c],_);for(let F=0;F<m.length;F++)F===0?d.push(i(o.accent)+h+a+i(o.text)+m[F]+a):d.push(p+i(o.text)+m[F]+a)}return d}function w2(u,e,t){let n=M(e.width,A.image),o=Math.min(t?.width??Math.min(40,n.content),n.content),r=Math.floor(o/3),s=e.theme,l=[];l.push(i(s.border)+"\u250C"+"\u2500".repeat(o)+"\u2510"+a);for(let d=0;d<r;d++)if(d===Math.floor(r/2)){let c=`[Image: ${u}]`,f=Math.max(0,o-b(c)),h=Math.floor(f/2),p=f-h;l.push(i(s.border)+"\u2502"+a+" ".repeat(h)+i(s.muted)+c+a+" ".repeat(p)+i(s.border)+"\u2502"+a)}else l.push(i(s.border)+"\u2502"+" ".repeat(o)+"\u2502"+a);return l.push(i(s.border)+"\u2514"+"\u2500".repeat(o)+"\u2518"+a),l}function y2(u,e,t){let n=M(e.width,A.gallery),o=t?.columns??Math.min(3,Math.max(1,Math.floor(n.content/30))),r=t?.scrollIndex??0,s=e.theme,l=Math.floor((n.content-(o-1)*2)/o);for(;l<20&&o>1;)o--,l=Math.floor((n.content-(o-1)*2)/o);let c=u.slice(r,r+o).map(p=>wu(p,{...e,width:l})),f=Math.max(0,...c.map(p=>p.length)),h=[];for(let p=0;p<f;p++){let _=c.map(m=>{let F=m[p]??"";return S(F,l)});h.push(_.join(" "))}if(u.length>o){let p=i(s.muted)+O+` \u25C2 ${r+1}-${Math.min(r+o,u.length)} of ${u.length} \u25B8`+a;h.push(S(p,n.content,"center"))}return h}C.register("text",(u,e)=>c2(u.content,e,u.style));C.register("list",(u,e)=>C2(u.items,e,u.style));C.register("quote",(u,e)=>g2(u.text,e,{attribution:u.attribution,style:u.style}));C.register("table",(u,e)=>d2(u.headers,u.rows,e));C.register("progressBar",(u,e)=>h2(u.label,u.value,e,{max:u.max,showPercent:u.showPercent}));C.register("badge",(u,e)=>[F2(u.text,e,{color:u.color,style:u.style})]);C.register("image",(u,e)=>w2(u.path,e,{width:u.width,mode:u.mode}));C.register("divider",(u,e)=>p2(e,{style:u.style,label:u.label,color:u.color}));C.register("spacer",u=>m2(u.lines));C.register("custom",(u,e)=>u.render(e.width,e.theme));C.register("card",(u,e)=>wu(u,e),!0);C.register("link",(u,e)=>_2(u.label,u.url,e,{icon:u.icon}),!0);C.register("hero",(u,e)=>b2(u,e),!0);C.register("tabs",(u,e)=>[],!0);C.register("accordion",(u,e)=>[],!0);C.register("timeline",(u,e)=>f2(u.items,e,u.style));C.register("gallery",(u,e)=>y2(u.items,e,{columns:u.columns}));C.register("textInput",(u,e)=>[],!0);C.register("textArea",(u,e)=>[],!0);C.register("select",(u,e)=>[],!0);C.register("checkbox",(u,e)=>[],!0);C.register("toggle",(u,e)=>[],!0);C.register("radioGroup",(u,e)=>[],!0);C.register("numberInput",(u,e)=>[],!0);C.register("searchInput",(u,e)=>[],!0);C.register("button",(u,e)=>[],!0);C.register("columns",(u,e)=>[]);C.register("rows",(u,e)=>[]);C.register("split",(u,e)=>[]);C.register("grid",(u,e)=>[]);C.register("panel",(u,e)=>[]);C.register("box",(u,e)=>[]);C.register("row",(u,e)=>[]);C.register("container",(u,e)=>[]);eu();function vu(u){if(!u.name)throw new Error("Site config must have a name");if(!u.pages||u.pages.length===0)throw new Error("Site must have at least one page");for(let e of u.pages)if(!e.id)throw new Error(`Page must have an id: ${JSON.stringify(e)}`);return{config:u}}function D(u,e){return{id:u,...e}}function w(u){return{type:"card",...u}}function xu(u,e){return{type:"list",items:u,style:e}}function Bu(u){return{type:"hero",...u}}function U(u,e,t){return{type:"link",label:u,url:e,icon:t?.icon}}function k(u){return{type:"text",content:u.replace(/\n\s+/g,`
12
+ `),style:"markdown"}}function P(u,e){return typeof u=="string"&&u!=="solid"&&u!=="dashed"&&u!=="dotted"&&u!=="double"&&u!=="label"?{type:"divider",style:"label",label:u}:{type:"divider",style:u,label:e}}function Iu(u){return{type:"textInput",...u}}function Mu(u){return{type:"button",...u}}function Au(u){let e={type:"form",...u};for(let t of e.fields)t.type==="button"&&(t._formId=e.id);return e}ru();var yu=0;function Pu(u,e){return typeof u=="function"?{type:"dynamic",render:u,_dynamicId:`dynamic-${yu++}`}:{type:"dynamic",deps:u,render:e,_dynamicId:`dynamic-${yu++}`}}async function W(u){try{let e=new AbortController,t=u.timeout?setTimeout(()=>e.abort(),u.timeout):null,n={method:u.method??"GET",headers:{"Content-Type":"application/json",...u.headers},signal:e.signal};u.body&&u.method!=="GET"&&(n.body=typeof u.body=="string"?u.body:JSON.stringify(u.body));let o=await fetch(Cu(u.url),n);t&&clearTimeout(t);let r=null;return(o.headers.get("content-type")??"").includes("application/json")?r=await o.json():r=await o.text(),o.ok?{data:r,error:null,status:o.status,ok:!0}:{data:r,error:new Error(`HTTP ${o.status}: ${o.statusText}`),status:o.status,ok:!1}}catch(e){return{data:null,error:e instanceof Error?e:new Error(String(e)),status:0,ok:!1}}}async function $(u){return W(u)}$.get=(u,e)=>W({url:u,method:"GET",headers:e});$.post=(u,e,t)=>W({url:u,method:"POST",body:e,headers:t});$.put=(u,e,t)=>W({url:u,method:"PUT",body:e,headers:t});$.delete=(u,e)=>W({url:u,method:"DELETE",headers:e});$.patch=(u,e,t)=>W({url:u,method:"PATCH",body:e,headers:t});var E=su({conversation:"",loading:!1,history:[]});async function G(u){let e=u["ai-prompt"];if(!e||!e.trim())return{error:"Type a message first"};let t=E.get("history");E.set("loading",!0),E.set("conversation",E.get("conversation")+`
13
+ **You:** ${e}
14
+
15
+ *thinking...*
16
+ `);try{let n=await $.post("https://theomar.me/api/chat",{messages:[...t,{role:"user",content:e}]});if(n.ok&&n.data?.message?.content){let o=n.data.message.content,r=[...t,{role:"user",content:e},{role:"assistant",content:o}];E.set("history",r);let s="";for(let l of r)l.role==="user"?s+=`
17
+ **You:** ${l.content}
18
+ `:s+=`
19
+ **Omar:** ${l.content}
20
+ `;E.set("conversation",s)}else E.set("conversation",E.get("conversation").replace(`*thinking...*
21
+ `,`**Omar:** sorry, something went wrong. try again?
22
+ `))}catch{E.set("conversation",E.get("conversation").replace(`*thinking...*
23
+ `,`**Omar:** couldn't reach the server right now. try again in a bit?
24
+ `))}return E.set("loading",!1),{success:"Message sent"}}var x5=vu({name:"Omar Musayev",tagline:"AI Engineer & Full Stack Developer",banner:{text:"OMAR",font:"ANSI Shadow",gradient:["#ff6b00","#ff9500"]},theme:"cyberpunk",borders:"rounded",animations:{boot:!0,transitions:"fade",exitMessage:"// Session terminated. See you later!"},menu:{order:["home","resume","projects","blogs","omar-ai"],labels:{"omar-ai":"OmarAi"},icons:{resume:"\u25C6",projects:"\u25A3",blogs:"\u2726","omar-ai":">"}},pages:[D("home",{title:"Home",content:[Bu({title:"Omar Musayev",subtitle:"AI Engineer & Full Stack Developer | Purdue University | 4.0 GPA"}),P("About"),w({title:"About Me",body:"I'm a double major in Artificial Intelligence and Mathematics at Purdue University with a 4.0 GPA. Passionate about starting new projects, finishing what I can, and learning along the way. I love building things\u2014especially with AI\u2014and exploring how tech can solve real-world problems."}),P("Skills"),xu(["Multi-Agentic Systems","LLM Fine-Tuning","RAG Pipelines","Prompt Engineering","Computer Vision","NLP","TensorFlow","PyTorch","LangChain","Neural Networks","Reinforcement Learning","Time Series Forecasting","Python","JavaScript","React","Next.js","Node.js","SQL","Git","Java","C++"],"check"),P("Contact"),U("Website","https://theomar.me",{icon:"\u25C6"}),U("Email","mailto:omar.musayev.v.2@gmail.com",{icon:"\u2709"}),U("LinkedIn","https://linkedin.com/in/omar-musayev-267195286/",{icon:"\u25C9"}),U("Instagram","https://instagram.com/omar.musayev/",{icon:"\u2605"})]}),D("resume",{title:"Resume",icon:"\u25C6",content:[P("Experience"),w({title:"Purdue LaunchPad",subtitle:"Website Chair & Organizer \u2014 West Lafayette, IN | 2025 \u2013 Present",body:"Website Chair and Organizer for Purdue's largest CS/DS mentorship community. LaunchPad is a one-on-one, semester-long mentorship program that pairs incoming students with upperclassmen, guiding them in building technical projects and fostering community through events and skill-building workshops."}),w({title:"COP-29 (UNFCCC)",subtitle:"ICT Technician \u2014 Baku, Azerbaijan | November 2024",body:"Selected as one of 50 technicians from ~15,000 applicants for a 55,000-attendee conference. Tracked and maintained 1,000+ laptops, set up presentation equipment, assisted broadcasters/guests with technical issues, and coordinated daily patches and team memos."}),w({title:"Payriff",subtitle:"AI Intern \u2014 Baku, Azerbaijan | June 2024 \u2013 September 2024",body:"Developed an AI-driven credit-scoring solution integrating data from banks and mobile providers. Built an AI chatbot to explain Payriff service APIs, streamlining developer onboarding."}),w({title:"U\u015Faqlar\u0131m\u0131za \xD6yr\u0259d\u0259k",subtitle:"Lead Developer \u2014 Baku, Azerbaijan | January 2024 \u2013 Present",body:"Led development of a comprehensive website for a youth-led NGO supporting underprivileged children; published resources and promoted educational initiatives across Azerbaijan."}),P("Volunteering"),w({title:"F1 Baku City Circuit",subtitle:"Workforce Team Member \u2014 Baku, Azerbaijan | June 2022",body:"Oversaw volunteer check-in/out and punctuality for ~1,500 volunteers; resolved operational issues throughout race weekend."}),w({title:"European Azerbaijan School",subtitle:"CAS Team Member \u2014 Baku, Azerbaijan | September 2024 \u2013 Ongoing",body:"Participated in environmental cleanup of beaches, mountains, and lakes in Azerbaijan."}),P("Honors & Awards"),w({title:"Purdue Dean's List",subtitle:"2025",body:"Named to the Purdue University Dean's List for academic excellence."}),w({title:"Purdue Semester Honors",subtitle:"2025",body:"Awarded Semester Honors at Purdue University for outstanding academic performance."}),w({title:"Azerbaijan Olympiad in Informatics",subtitle:"Silver Medal \u2014 2022",body:"Recognized among top participants for outstanding performance in computer algorithms."}),w({title:"IELTS",subtitle:"Score: 8.5 \u2014 2024",body:"Achieved an 8.5 overall, with perfect scores in reading and listening."}),w({title:"SAT Superscore",subtitle:"Score: 1520 \u2014 2024",body:"Achieved a 1520 SAT superscore (780 Math, 740 Reading/Writing)."}),P("Education"),w({title:"B.S. in Artificial Intelligence & Mathematics",subtitle:"Purdue University, College of Science \u2014 August 2025 \u2013 Ongoing",body:"Double major in Artificial Intelligence and Mathematics. 4.0 GPA. Dean's List and Semester Honors recipient."}),w({title:"International Baccalaureate",subtitle:"European Azerbaijan School \u2014 2022 \u2013 2024",body:"IBDP Subjects: Math AA HL, Business Management HL, Computer Science HL, English A SL, Physics SL, Spanish AB Initio. MYP: 7/7 from M23 Personal Project."}),w({title:"Pre-College: Introduction to Machine Learning for Astronomy",subtitle:"Harvard University \u2014 June \u2013 July 2024, Boston, MA",body:"Applied machine learning algorithms to contemporary astronomical problems."}),w({title:"Pre-College: Data Science and Machine Learning 2",subtitle:"Columbia University \u2014 July \u2013 August 2024, New York, NY",body:"Advanced course on data science and machine learning using Python and statistical methods."}),w({title:"Physics for Scientists and Engineers: Mechanics",subtitle:"University of California, Los Angeles (UCLA) \u2014 August \u2013 September 2024, Online",body:"5-unit credit course covering fundamental mechanics for scientists and engineers."}),w({title:"Artificial Intelligence and Machine Learning",subtitle:"Stanford University \u2014 July \u2013 August 2023, Palo Alto, CA",body:"NVIDIA DLI program using the Jetson Nano; hands-on AI/ML projects."}),w({title:"AI Scholars Program",subtitle:"Inspirit AI \u2014 August 2023, Online",body:"Certificate program covering modern AI concepts and practical applications."})]}),D("projects",{title:"Projects",icon:"\u25A3",content:[P("Projects"),w({title:"TerminalTUI",subtitle:"Creator & Lead Developer \u2014 Developer Tool \u2014 2025",body:"A TypeScript framework for building interactive terminal user interfaces with 1,500+ downloads on npm. Converts declarative TypeScript into fully interactive TUI applications runnable via a single npx command. Features 30+ pre-built UI components, a 12-column responsive grid system, spatial arrow-key navigation, 10 color themes, an ASCII art engine, file-based routing, reactive state management, and form handling. Includes 2,185+ tests.",url:"https://www.npmjs.com/package/terminaltui",tags:["TypeScript","CLI","Framework"]}),w({title:"Adneural",subtitle:"Creator & Lead Developer \u2014 AI Project \u2014 2025",body:"A platform connecting computational neuroscience with social simulation for pre-launch advertising analysis. Predicts how ads will perform neurologically and socially before launch by combining Meta TRIBE v2 brain encoding (trained on 450 hours of fMRI data) with MiroFish/OASIS multi-agent social simulation (200 personality-diverse agents). Features Neo4j GraphRAG integrating 22 neuroscience papers, LangGraph diagnostic analysis, and Three.js brain visualization. Built with Next.js 15, React 19, FastAPI, and OpenRouter.",url:"https://github.com/OmarMusayev/Adneural",tags:["AI","Neuroscience","Next.js"]}),w({title:"Ushaqlarimiza Oyredek Website",subtitle:"Lead Developer \u2014 Web Development \u2014 2024",body:"Served as the Lead Developer for a youth-led NGO focused on providing education to underprivileged children and fostering a passion for learning among youth.",url:"https://ushaqlarimizaoyredek.com",tags:["Web Development"]}),w({title:"World Temperature Forecasting",subtitle:"Researcher & Developer \u2014 AI Project \u2014 2024",body:"Designed a time series model using LSTMs to predict global temperatures, aiding planning and combating climate change.",tags:["AI","LSTM","Time Series"]}),w({title:"AI Handwriting Generator",subtitle:"Developer \u2014 AI Project \u2014 May 2023",body:"A web application that generates realistic handwritten text using deep learning. Features two neural network approaches: a 3-layer LSTM with Gaussian attention for style transfer, and a 6-layer Transformer decoder that tokenizes strokes into polar coordinates. Users can draw on a canvas to capture their own handwriting style and generate personalized text. Built with PyTorch, FastAPI, and JavaScript.",url:"https://hand-magic.com",tags:["AI","Deep Learning","PyTorch"]}),w({title:"AI Jigsaw Puzzle Solver",subtitle:"Lead Developer \u2014 AI Project \u2014 Apr 2023",body:"Created an AI-driven jigsaw puzzle solver that automatically assembles pieces using computer vision techniques.",url:"https://tinyurl.com/PuzzleSolvers",tags:["AI","Computer Vision"]})]}),D("blogs",{title:"Blogs",icon:"\u2726",content:[P("Dev Logs"),w({title:"OmarAi Dev Log 1",subtitle:"September 8, 2024",body:"Starting on the journey to making an AI Large Language Model (LLM) that can replicate my speech",action:{navigate:"blog-1"}}),w({title:"OmarAi Dev Log 2",subtitle:"September 12, 2024",body:"Tinkering around with Omar AI to get better results",action:{navigate:"blog-2"}}),w({title:"OmarAi Dev Log 3",subtitle:"September 14, 2024",body:"Testing out the model",action:{navigate:"blog-3"}}),w({title:"OmarAi Dev Log 4",subtitle:"September 18, 2024",body:"Creating the UI",action:{navigate:"blog-4"}}),w({title:"OmarAi Dev Log 5",subtitle:"October 2, 2024",body:"The Launch",action:{navigate:"blog-5"}})]}),D("blog-1",{title:"OmarAi Dev Log 1",content:[k(`# OmarAi Dev Log 1
25
+ *September 8, 2024*
26
+
27
+ Hello Everybody,
28
+
29
+ Today I started working on a project that I have been meaning to do for a long time, creating an AI version of me. Well at least something similar, we all know that AI can't replace me but I need someone who I can rely on to answer questions about me to other people.
30
+
31
+ **Initial Plan:** My initial plan for this project is to fine-tune one of OpenAI's LLMs to get an idea of what the final product could look like. My idea was to download my message data from Instagram, which you can easily do through Instagram settings. However, the data that Instagram gives you needs to be heavily re-organized and scrubbed to be put into OpenAI's fine-tuning.
32
+
33
+ **The file structure it gives us is similar to this:**
34
+
35
+ \`\`\`
36
+ messages/inbox/Xpersonsname/mychatlogswiththatperson
37
+ \`\`\`
38
+
39
+ And inside, you'll find a file called \`message_1.json\` (sometimes more, depending on the length of the chat) and possibly folders for photos, videos, and other media shared in the chat.
40
+
41
+ The \`message_1.json\` files contain a series of messages exchanged between me and the other person, formatted as a JSON object. Here's a simplified example of what these messages look like inside the JSON:
42
+
43
+ \`\`\`json
44
+ {
45
+ "participants": [
46
+ { "name": "Omar Musayev" },
47
+ { "name": "Abdul-Aziz Mammadli" }
48
+ ],
49
+ "messages": [
50
+ {
51
+ "sender_name": "Abdul-Aziz Mammadli",
52
+ "timestamp_ms": 1712667823182,
53
+ "content": "Hey Omar, how's it going?"
54
+ },
55
+ {
56
+ "sender_name": "Omar Musayev",
57
+ "timestamp_ms": 1712667805807,
58
+ "content": "Not bad, just working on this cool AI project!"
59
+ }
60
+ ]
61
+ }
62
+ \`\`\`
63
+
64
+ There are a few ways I tried to organize this data into a way the fine-tuning can understand.
65
+
66
+ First, I tried to pair up every consecutive message that contained me at least once in the structure: **Prompt : answer**
67
+
68
+ But then I realized that when texting, I often double text, leading to the AI thinking I'm talking to myself.
69
+
70
+ I then fixed this problem and wrote a program to detect when I and another person send consecutive messages. I didn't realize it at the time, but this hadn't solved the problem either.
71
+
72
+ At the time, I was satisfied with the results and moved on to the fine-tuning. I tried fine-tuning 2 models:
73
+
74
+ - **Babbage-002**
75
+ - **GPT-4o-mini-2024-07-18**
76
+
77
+ However, they didn't give me the best of results. While GPT-4o-mini-2024-07-18 could give me actual responses, they were usually very short or just irrelevant. One thing it did pick up on was my vocabulary, and it would use words like "I mean", "Kinda", and "fr".
78
+
79
+ This is when I realized that the reason it was giving short outputs was because I was giving it short inputs in the training data. You see, my data only took 2 messages at a time, but we teenagers rarely fit our sentences into a single message. Instead, we send multiple messages that make up a complete sentence. So I decided on a new way to sort the data:
80
+
81
+ 1. Merge all consecutive messages from the other person into one complete prompt.
82
+ 2. Merge all consecutive responses from me into one complete reply.
83
+ 3. Use this merged conversation to form a better prompt-response pair for training.
84
+
85
+ After doing this, I put my new data into the GPT-4o-2024-08-06 model fine-tuning, and as I am writing this, I am waiting for the model to train.
86
+
87
+ I will update you guys on the results in the next dev log.
88
+
89
+ See you guys later!!`)]}),D("blog-2",{title:"OmarAi Dev Log 2",content:[k(`# OmarAi Dev Log 2
90
+ *September 12, 2024*
91
+
92
+ Hello Everybody,
93
+
94
+ So, over the course of the past few days I have found some mistakes in my old codes for OmarAi and I have experimented with new things.
95
+
96
+ First thing first remember how I was waiting for my "GPT-4o-2024-08-06" model to fine tune? Well, that failed due to the huge number of data points I had which was around 20k+ message pairs. The model couldn't tokenize all this and train on it because I had set a limit on it to not use too many resources.
97
+
98
+ This was a good thing though because it prompted me to look over my data to see if there was anything I could cut out. This is when I realized that my data was heavily flawed. The algorithm I had used to convert my messages from just messages to conversation pairs looked at messages from the most recent to the oldest which caused a problem. The conversation pairs would take the last message sent as the first message sent and vice versa.
99
+
100
+ The fix for this was quite easy. I just had to reverse the order of messages before using the same algorithm to form conversation pairs.
101
+
102
+ Now, coming back to my original problem of having too many messages that took too many resources without contributing anything to the model, I first had to make sure that my conversations were in English. While looking at the data, I noticed that most of the conversations included Azerbaijani or even random languages that me and my friends had developed to talk to each other. This would negatively affect the future model as its language understanding would be confused so I had to find a way of cutting it.
103
+
104
+ The solution I came up with? **Use AI!**
105
+
106
+ I used the open-ai gpt-3.5 api to go over each of my message pairs and convert them into data that was more useful to the model that I wanted to train. I made an algorithm to feed it 50 conversations at a time and for it to choose the best 4-5 each time which was in English.
107
+
108
+ This was a huge success and allowed me to downsize my dataset of 20 thousand conversations to around 2 thousand high quality conversations that could all contribute to fine tuning "OmarAI".
109
+
110
+ The next step was using an algorithm to comb over the new data and make sure all of it was in the format that was appropriate to fine-tune open-ai models. The algorithm fixed all the inconsistencies gpt-3.5 had created in the syntax.
111
+
112
+ After the data was ready, I put it into gpt-o4 api for fine tuning and went to sleep to see the results the next day.
113
+
114
+ I will keep you guys updated on how it turns out.`)]}),D("blog-3",{title:"OmarAi Dev Log 3",content:[k(`# OmarAi Dev Log 3
115
+ *September 14, 2024*
116
+
117
+ Hello Everybody,
118
+
119
+ Yesterday I was able to use the new model trained on the ai-picked data for the first time. It was a weird experience.
120
+
121
+ Since I hadn't made a UI for the model yet I just experimented around with it from a command prompt after writing a simple python code to communicate with my model.
122
+
123
+ The results were definitely interesting. It felt like the model had captured my conversation style and was able to sound similar to how I would text but it didn't have any memories. It would try to make up random information for the stuff it didn't know and this was a huge flaw as the REAL Omar would know about them all.
124
+
125
+ To fix this problem I explored a few things:
126
+
127
+ 1. **Text Embeddings** \u2014 I tried to turn my past conversations, resumes, essays, etc into text embeddings that I could use as a "memory" for the model. However this approach was too slow due to the large amount of information that the model had to go through each time.
128
+
129
+ 2. **Multi-Agent System** \u2014 I made a json file with all the information needed about me and tried to use OpenAI's new threads and multi agent systems to have one agent do a file search while the other would use the information from the file search in its responses. This approach also had its issues as having 2 agents instead of one used up lots of tokens as well as being extremely slow.
130
+
131
+ 3. **System Prompt with JSON Context** \u2014 Finally opting for simplicity, I used the JSON file from the previous approach and passed it through OpenAI's system messages to give my model context so it can quickly search through it and pick the right data to answer questions. I also passed on a protocol for it to not reveal any personal information.
132
+
133
+ Here was the system prompt for Omar-AI:
134
+
135
+ > "You are a friendly assistant who always maintains a fun and casual tone while ensuring sensitive information remains confidential. When discussing personal or delicate topics, gently steer the conversation in a light and engaging direction without disclosing private details."
136
+
137
+ This prompt seemed to work and for now training the model was finished. Up next is building a UI for the model.
138
+
139
+ See You guys later!`)]}),D("blog-4",{title:"OmarAi Dev Log 4",content:[k(`# OmarAi Dev Log 4
140
+ *September 18, 2024*
141
+
142
+ Creating the UI for OmarAI was definitely a journey and I am going to explain it here.
143
+
144
+ First I had to think about whether I wanted to build a separate website for Omar AI or if I wanted to use my current blog site for it. In the end I decided on using my own blog site as this website already has everything about me in one place so adding an actual Omar into the mix would be a pretty fun feature.
145
+
146
+ I first started looking for next js templates that could help me implement this and I came across a template that subframe made for ai chat bots. However, when I tried to use it within my website, I ran into compatibility issues. There were multiple libraries and dependencies in the template that were a different version to the dependencies and libraries that I had used for my own website. This clash of dependencies caused the website to not function.
147
+
148
+ My thought process next was to create a chatbot frame on my own but there were problems with that too. Creating the front-end of the chatbot was quite easy but I couldn't get it to connect directly to the OpenAI api. I tried to do the back end within the next js app using the api routes inside the project but I soon realized how much more difficult it was to code an API in javascript rather than python which I am much more experienced in.
149
+
150
+ For this reason, I ended up opening a new backend project in python where I put my ai model into and gave some instructions. After hosting that api on the cloud I made a call to it within the front end code of my website so that the frontend and back end were connected.
151
+
152
+ This way I had finally made a functional chatbot within my website.
153
+
154
+ Omar Musayev`)]}),D("blog-5",{title:"OmarAi Dev Log 5",content:[k(`# OmarAi Dev Log 5
155
+ *October 2, 2024*
156
+
157
+ Hello everyone!
158
+
159
+ I was finally able to launch my model to the public and was able to gather tons of feedback from my peers on how I should improve the model and make it more like me. This blog will explore the changes I've made on the program since the launch and my reasons for making these changes. Some changes were quite simple, like including some more information about me within the memory, but some were more complicated\u2014such as tweaking the personality of the model through additional fine-tuning to allow it to give bigger and more comprehensive responses. Additionally, I have also tried to create new models based on other large language models like Llama, MPT, and Falcon.
160
+
161
+ One of the first things I noticed after launching OmarAI was that users enjoyed its conversational tone but wanted more depth. While my initial training data gave it a strong sense of my casual style\u2014complete with slang and emojis\u2014the AI often kept its answers too short or simplistic, especially when asked more elaborate questions. To fix this, I tweaked the fine-tuning to encourage lengthier, more detailed responses. I included examples of real conversations where I wrote lengthy paragraphs, or provided more involved stories and insights. This taught the AI to deliver fuller, richer answers rather than short, surface-level replies.
162
+
163
+ Another piece of feedback I consistently received was that the AI sometimes lacked continuity when referring to personal information. For example, it would occasionally mention random facts about me that I might have briefly referenced in older messages, but it wouldn't always remember important details I'd shared in the more recent data. To address this, I expanded the "memory" section of my system prompt. This memory now includes a curated list of facts about me\u2014covering my interests, hobbies, close relationships, and notable personal anecdotes\u2014so OmarAI has a more reliable context to draw upon. However, I also updated the protocols to ensure that truly sensitive or private information remains confidential. In other words, if someone asks for something personal that isn't meant to be shared, the AI knows to politely but firmly redirect the conversation without revealing anything I'd consider private.
164
+
165
+ Speaking of protocols, I made sure to refine them for both security and personality reasons. Originally, the model's system prompt included a friendly, casual directive, but some users tried to push boundaries by asking for deeply personal details. Now, OmarAI not only refuses to reveal such information, but it does so in a playful, lighthearted way\u2014staying true to my personality while maintaining respect for personal boundaries. I also introduced a "playful fallback" mechanism, so when repeatedly pressed, OmarAI can politely deflect the conversation with a bit of humor, such as sharing a random fun fact or changing the subject in a friendly manner.
166
+
167
+ Finally, I experimented with building models based on Llama, MPT, and Falcon. While each has its strengths\u2014like Llama's efficient performance or Falcon's open-source flexibility\u2014I discovered that GPT-based models still deliver the best overall user experience in terms of coherence, creativity, and ease of deployment for my specific needs. In the future, I may consider a hybrid approach that leverages the benefits of multiple architectures, but for now, I'm happy with where OmarAI stands.
168
+
169
+ As I continue to refine and improve OmarAI, I'm grateful for everyone's feedback and support. Seeing people interact with an AI version of me has been both surreal and enlightening. There's still room to grow, but for now, I'm proud of the progress we've made and excited for what's next. Stay tuned for more updates, and feel free to keep sending feedback my way!`)]}),D("omar-ai",{title:"OmarAi",icon:">",content:[w({title:"OmarAi",body:"AI version of Omar Musayev. Ask me anything about Omar's projects, education, skills, or experience."}),P("Suggested Questions"),w({title:"What projects has Omar worked on?",action:{onPress:()=>G({"ai-prompt":"What projects has Omar worked on?"})}}),w({title:"Tell me about Omar's education",action:{onPress:()=>G({"ai-prompt":"Tell me about Omar's education"})}}),w({title:"What are Omar's AI skills?",action:{onPress:()=>G({"ai-prompt":"What are Omar's AI skills?"})}}),w({title:"What is Omar's work experience?",action:{onPress:()=>G({"ai-prompt":"What is Omar's work experience?"})}}),P("Conversation"),Pu(()=>{let u=E.get("conversation");return u?k(u):k("Press Enter on a question above, or type your own below.")}),P("Ask a Question"),Au({id:"omar-ai-form",onSubmit:G,fields:[Iu({id:"ai-prompt",label:"Your Message",placeholder:"Ask Omar anything..."}),Mu({label:"Send",style:"primary"})]})]})]});export{x5 as default};