{"version":3,"sources":["../wasm/build/swisseph.js","../wasm/src/swisseph.ts","../src/astrology/swisseph.ts","../src/astrology/index.ts","../src/core/index.ts","../src/kaabalah/index.ts","../src/numerology/index.ts","../src/tarot/index.ts"],"sourcesContent":["var SwissEphemerisModule = (() => {\n  var _scriptName = typeof document != 'undefined' ? document.currentScript?.src : undefined;\n  if (typeof __filename != 'undefined') _scriptName = _scriptName || __filename;\n  return (\nasync function(moduleArg = {}) {\n  var moduleRtn;\n\nvar Module=moduleArg;var readyPromiseResolve,readyPromiseReject;var readyPromise=new Promise((resolve,reject)=>{readyPromiseResolve=resolve;readyPromiseReject=reject});var ENVIRONMENT_IS_WEB=typeof window==\"object\";var ENVIRONMENT_IS_WORKER=typeof WorkerGlobalScope!=\"undefined\";var ENVIRONMENT_IS_NODE=typeof process==\"object\"&&typeof process.versions==\"object\"&&typeof process.versions.node==\"string\"&&process.type!=\"renderer\";var ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;if(ENVIRONMENT_IS_NODE){}var moduleOverrides={...Module};var arguments_=[];var thisProgram=\"./this.program\";var quit_=(status,toThrow)=>{throw toThrow};var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}return scriptDirectory+path}var readAsync,readBinary;if(ENVIRONMENT_IS_NODE){if(typeof process==\"undefined\"||!process.release||process.release.name!==\"node\")throw new Error(\"not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)\");var nodeVersion=process.versions.node;var numericVersion=nodeVersion.split(\".\").slice(0,3);numericVersion=numericVersion[0]*1e4+numericVersion[1]*100+numericVersion[2].split(\"-\")[0]*1;if(numericVersion<16e4){throw new Error(\"This emscripten-generated code requires node v16.0.0 (detected v\"+nodeVersion+\")\")}var fs=require(\"fs\");var nodePath=require(\"path\");scriptDirectory=__dirname+\"/\";readBinary=filename=>{filename=isFileURI(filename)?new URL(filename):filename;var ret=fs.readFileSync(filename);assert(Buffer.isBuffer(ret));return ret};readAsync=async(filename,binary=true)=>{filename=isFileURI(filename)?new URL(filename):filename;var ret=fs.readFileSync(filename,binary?undefined:\"utf8\");assert(binary?Buffer.isBuffer(ret):typeof ret==\"string\");return ret};if(!Module[\"thisProgram\"]&&process.argv.length>1){thisProgram=process.argv[1].replace(/\\\\/g,\"/\")}arguments_=process.argv.slice(2);quit_=(status,toThrow)=>{process.exitCode=status;throw toThrow}}else if(ENVIRONMENT_IS_SHELL){if(typeof process==\"object\"&&typeof require===\"function\"||typeof window==\"object\"||typeof WorkerGlobalScope!=\"undefined\")throw new Error(\"not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)\")}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=\"undefined\"&&document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptName){scriptDirectory=_scriptName}if(scriptDirectory.startsWith(\"blob:\")){scriptDirectory=\"\"}else{scriptDirectory=scriptDirectory.slice(0,scriptDirectory.replace(/[?#].*/,\"\").lastIndexOf(\"/\")+1)}if(!(typeof window==\"object\"||typeof WorkerGlobalScope!=\"undefined\"))throw new Error(\"not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)\");{readAsync=async url=>{assert(!isFileURI(url),\"readAsync does not work with file:// URLs\");var response=await fetch(url,{credentials:\"same-origin\"});if(response.ok){return response.arrayBuffer()}throw new Error(response.status+\" : \"+response.url)}}}else{throw new Error(\"environment detection error\")}var out=Module[\"print\"]||console.log.bind(console);var err=Module[\"printErr\"]||console.error.bind(console);Object.assign(Module,moduleOverrides);moduleOverrides=null;checkIncomingModuleAPI();if(Module[\"arguments\"])arguments_=Module[\"arguments\"];legacyModuleProp(\"arguments\",\"arguments_\");if(Module[\"thisProgram\"])thisProgram=Module[\"thisProgram\"];legacyModuleProp(\"thisProgram\",\"thisProgram\");assert(typeof Module[\"memoryInitializerPrefixURL\"]==\"undefined\",\"Module.memoryInitializerPrefixURL option was removed, use Module.locateFile instead\");assert(typeof Module[\"pthreadMainPrefixURL\"]==\"undefined\",\"Module.pthreadMainPrefixURL option was removed, use Module.locateFile instead\");assert(typeof Module[\"cdInitializerPrefixURL\"]==\"undefined\",\"Module.cdInitializerPrefixURL option was removed, use Module.locateFile instead\");assert(typeof Module[\"filePackagePrefixURL\"]==\"undefined\",\"Module.filePackagePrefixURL option was removed, use Module.locateFile instead\");assert(typeof Module[\"read\"]==\"undefined\",\"Module.read option was removed\");assert(typeof Module[\"readAsync\"]==\"undefined\",\"Module.readAsync option was removed (modify readAsync in JS)\");assert(typeof Module[\"readBinary\"]==\"undefined\",\"Module.readBinary option was removed (modify readBinary in JS)\");assert(typeof Module[\"setWindowTitle\"]==\"undefined\",\"Module.setWindowTitle option was removed (modify emscripten_set_window_title in JS)\");assert(typeof Module[\"TOTAL_MEMORY\"]==\"undefined\",\"Module.TOTAL_MEMORY has been renamed Module.INITIAL_MEMORY\");legacyModuleProp(\"asm\",\"wasmExports\");legacyModuleProp(\"readAsync\",\"readAsync\");legacyModuleProp(\"readBinary\",\"readBinary\");legacyModuleProp(\"setWindowTitle\",\"setWindowTitle\");assert(!ENVIRONMENT_IS_WORKER,\"worker environment detected but not enabled at build time.  Add `worker` to `-sENVIRONMENT` to enable.\");assert(!ENVIRONMENT_IS_SHELL,\"shell environment detected but not enabled at build time.  Add `shell` to `-sENVIRONMENT` to enable.\");var wasmBinary=Module[\"wasmBinary\"];legacyModuleProp(\"wasmBinary\",\"wasmBinary\");if(typeof WebAssembly!=\"object\"){err(\"no native wasm support detected\")}var wasmMemory;var ABORT=false;function assert(condition,text){if(!condition){abort(\"Assertion failed\"+(text?\": \"+text:\"\"))}}var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAP64,HEAPU64,HEAPF64;var runtimeInitialized=false;var isFileURI=filename=>filename.startsWith(\"file://\");function writeStackCookie(){var max=_emscripten_stack_get_end();assert((max&3)==0);if(max==0){max+=4}SAFE_HEAP_STORE((max>>2)*4,34821223,4);SAFE_HEAP_STORE((max+4>>2)*4,2310721022,4)}function checkStackCookie(){if(ABORT)return;var max=_emscripten_stack_get_end();if(max==0){max+=4}var cookie1=SAFE_HEAP_LOAD((max>>2)*4,4,1);var cookie2=SAFE_HEAP_LOAD((max+4>>2)*4,4,1);if(cookie1!=34821223||cookie2!=2310721022){abort(`Stack overflow! Stack cookie has been overwritten at ${ptrToString(max)}, expected hex dwords 0x89BACDFE and 0x2135467, but received ${ptrToString(cookie2)} ${ptrToString(cookie1)}`)}}(()=>{var h16=new Int16Array(1);var h8=new Int8Array(h16.buffer);h16[0]=25459;if(h8[0]!==115||h8[1]!==99)throw\"Runtime error: expected the system to be little-endian! (Run with -sSUPPORT_BIG_ENDIAN to bypass)\"})();if(Module[\"ENVIRONMENT\"]){throw new Error(\"Module.ENVIRONMENT has been deprecated. To force the environment, use the ENVIRONMENT compile-time option (for example, -sENVIRONMENT=web or -sENVIRONMENT=node)\")}function legacyModuleProp(prop,newName,incoming=true){if(!Object.getOwnPropertyDescriptor(Module,prop)){Object.defineProperty(Module,prop,{configurable:true,get(){let extra=incoming?\" (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)\":\"\";abort(`\\`Module.${prop}\\` has been replaced by \\`${newName}\\``+extra)}})}}function consumedModuleProp(prop){if(!Object.getOwnPropertyDescriptor(Module,prop)){Object.defineProperty(Module,prop,{configurable:true,set(){abort(`Attempt to set \\`Module.${prop}\\` after it has already been processed.  This can happen, for example, when code is injected via '--post-js' rather than '--pre-js'`)}})}}function ignoredModuleProp(prop){if(Object.getOwnPropertyDescriptor(Module,prop)){abort(`\\`Module.${prop}\\` was supplied but \\`${prop}\\` not included in INCOMING_MODULE_JS_API`)}}function isExportedByForceFilesystem(name){return name===\"FS_createPath\"||name===\"FS_createDataFile\"||name===\"FS_createPreloadedFile\"||name===\"FS_unlink\"||name===\"addRunDependency\"||name===\"FS_createLazyFile\"||name===\"FS_createDevice\"||name===\"removeRunDependency\"}function hookGlobalSymbolAccess(sym,func){}function missingGlobal(sym,msg){hookGlobalSymbolAccess(sym,()=>{warnOnce(`\\`${sym}\\` is not longer defined by emscripten. ${msg}`)})}missingGlobal(\"buffer\",\"Please use HEAP8.buffer or wasmMemory.buffer\");missingGlobal(\"asm\",\"Please use wasmExports instead\");function missingLibrarySymbol(sym){hookGlobalSymbolAccess(sym,()=>{var msg=`\\`${sym}\\` is a library symbol and not included by default; add it to your library.js __deps or to DEFAULT_LIBRARY_FUNCS_TO_INCLUDE on the command line`;var librarySymbol=sym;if(!librarySymbol.startsWith(\"_\")){librarySymbol=\"$\"+sym}msg+=` (e.g. -sDEFAULT_LIBRARY_FUNCS_TO_INCLUDE='${librarySymbol}')`;if(isExportedByForceFilesystem(sym)){msg+=\". Alternatively, forcing filesystem support (-sFORCE_FILESYSTEM) can export this for you\"}warnOnce(msg)});unexportedRuntimeSymbol(sym)}function unexportedRuntimeSymbol(sym){if(!Object.getOwnPropertyDescriptor(Module,sym)){Object.defineProperty(Module,sym,{configurable:true,get(){var msg=`'${sym}' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the Emscripten FAQ)`;if(isExportedByForceFilesystem(sym)){msg+=\". Alternatively, forcing filesystem support (-sFORCE_FILESYSTEM) can export this for you\"}abort(msg)}})}}var runtimeDebug=true;function getSafeHeapType(bytes,isFloat){switch(bytes){case 1:return\"i8\";case 2:return\"i16\";case 4:return isFloat?\"float\":\"i32\";case 8:return isFloat?\"double\":\"i64\";default:abort(`getSafeHeapType() invalid bytes=${bytes}`)}}function SAFE_HEAP_STORE(dest,value,bytes,isFloat){if(dest<=0)abort(`segmentation fault storing ${bytes} bytes to address ${dest}`);if(dest%bytes!==0)abort(`alignment error storing to address ${dest}, which was expected to be aligned to a multiple of ${bytes}`);if(runtimeInitialized){var brk=_sbrk(0);if(dest+bytes>brk)abort(`segmentation fault, exceeded the top of the available dynamic heap when storing ${bytes} bytes to address ${dest}. DYNAMICTOP=${brk}`);if(brk<_emscripten_stack_get_base())abort(`brk >= _emscripten_stack_get_base() (brk=${brk}, _emscripten_stack_get_base()=${_emscripten_stack_get_base()})`);if(brk>wasmMemory.buffer.byteLength)abort(`brk <= wasmMemory.buffer.byteLength (brk=${brk}, wasmMemory.buffer.byteLength=${wasmMemory.buffer.byteLength})`)}setValue_safe(dest,value,getSafeHeapType(bytes,isFloat));return value}function SAFE_HEAP_STORE_D(dest,value,bytes){return SAFE_HEAP_STORE(dest,value,bytes,true)}function SAFE_HEAP_LOAD(dest,bytes,unsigned,isFloat){if(dest<=0)abort(`segmentation fault loading ${bytes} bytes from address ${dest}`);if(dest%bytes!==0)abort(`alignment error loading from address ${dest}, which was expected to be aligned to a multiple of ${bytes}`);if(runtimeInitialized){var brk=_sbrk(0);if(dest+bytes>brk)abort(`segmentation fault, exceeded the top of the available dynamic heap when loading ${bytes} bytes from address ${dest}. DYNAMICTOP=${brk}`);if(brk<_emscripten_stack_get_base())abort(`brk >= _emscripten_stack_get_base() (brk=${brk}, _emscripten_stack_get_base()=${_emscripten_stack_get_base()})`);if(brk>wasmMemory.buffer.byteLength)abort(`brk <= wasmMemory.buffer.byteLength (brk=${brk}, wasmMemory.buffer.byteLength=${wasmMemory.buffer.byteLength})`)}var type=getSafeHeapType(bytes,isFloat);var ret=getValue_safe(dest,type);if(unsigned)ret=unSign(ret,parseInt(type.slice(1),10));return ret}function SAFE_HEAP_LOAD_D(dest,bytes,unsigned){return SAFE_HEAP_LOAD(dest,bytes,unsigned,true)}function segfault(){abort(\"segmentation fault\")}function alignfault(){abort(\"alignment fault\")}function updateMemoryViews(){var b=wasmMemory.buffer;Module[\"HEAP8\"]=HEAP8=new Int8Array(b);Module[\"HEAP16\"]=HEAP16=new Int16Array(b);Module[\"HEAPU8\"]=HEAPU8=new Uint8Array(b);Module[\"HEAPU16\"]=HEAPU16=new Uint16Array(b);Module[\"HEAP32\"]=HEAP32=new Int32Array(b);Module[\"HEAPU32\"]=HEAPU32=new Uint32Array(b);Module[\"HEAPF32\"]=HEAPF32=new Float32Array(b);Module[\"HEAPF64\"]=HEAPF64=new Float64Array(b);Module[\"HEAP64\"]=HEAP64=new BigInt64Array(b);Module[\"HEAPU64\"]=HEAPU64=new BigUint64Array(b)}assert(!Module[\"STACK_SIZE\"],\"STACK_SIZE can no longer be set at runtime.  Use -sSTACK_SIZE at link time\");assert(typeof Int32Array!=\"undefined\"&&typeof Float64Array!==\"undefined\"&&Int32Array.prototype.subarray!=undefined&&Int32Array.prototype.set!=undefined,\"JS engine does not provide full typed array support\");assert(!Module[\"wasmMemory\"],\"Use of `wasmMemory` detected.  Use -sIMPORTED_MEMORY to define wasmMemory externally\");assert(!Module[\"INITIAL_MEMORY\"],\"Detected runtime INITIAL_MEMORY setting.  Use -sIMPORTED_MEMORY to define wasmMemory dynamically\");function preRun(){if(Module[\"preRun\"]){if(typeof Module[\"preRun\"]==\"function\")Module[\"preRun\"]=[Module[\"preRun\"]];while(Module[\"preRun\"].length){addOnPreRun(Module[\"preRun\"].shift())}}consumedModuleProp(\"preRun\");callRuntimeCallbacks(onPreRuns)}function initRuntime(){assert(!runtimeInitialized);runtimeInitialized=true;checkStackCookie();if(!Module[\"noFSInit\"]&&!FS.initialized)FS.init();TTY.init();wasmExports[\"__wasm_call_ctors\"]();FS.ignorePermissions=false}function postRun(){checkStackCookie();if(Module[\"postRun\"]){if(typeof Module[\"postRun\"]==\"function\")Module[\"postRun\"]=[Module[\"postRun\"]];while(Module[\"postRun\"].length){addOnPostRun(Module[\"postRun\"].shift())}}consumedModuleProp(\"postRun\");callRuntimeCallbacks(onPostRuns)}var runDependencies=0;var dependenciesFulfilled=null;var runDependencyTracking={};var runDependencyWatcher=null;function getUniqueRunDependency(id){var orig=id;while(1){if(!runDependencyTracking[id])return id;id=orig+Math.random()}}function addRunDependency(id){runDependencies++;Module[\"monitorRunDependencies\"]?.(runDependencies);if(id){assert(!runDependencyTracking[id]);runDependencyTracking[id]=1;if(runDependencyWatcher===null&&typeof setInterval!=\"undefined\"){runDependencyWatcher=setInterval(()=>{if(ABORT){clearInterval(runDependencyWatcher);runDependencyWatcher=null;return}var shown=false;for(var dep in runDependencyTracking){if(!shown){shown=true;err(\"still waiting on run dependencies:\")}err(`dependency: ${dep}`)}if(shown){err(\"(end of list)\")}},1e4)}}else{err(\"warning: run dependency added without ID\")}}function removeRunDependency(id){runDependencies--;Module[\"monitorRunDependencies\"]?.(runDependencies);if(id){assert(runDependencyTracking[id]);delete runDependencyTracking[id]}else{err(\"warning: run dependency removed without ID\")}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}function abort(what){Module[\"onAbort\"]?.(what);what=\"Aborted(\"+what+\")\";err(what);ABORT=true;var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}function createExportWrapper(name,nargs){return(...args)=>{assert(runtimeInitialized,`native function \\`${name}\\` called before runtime initialization`);var f=wasmExports[name];assert(f,`exported native function \\`${name}\\` not found`);assert(args.length<=nargs,`native function \\`${name}\\` called with ${args.length} args but expects ${nargs}`);return f(...args)}}var wasmBinaryFile;function findWasmBinary(){return locateFile(\"swisseph.wasm\")}function getBinarySync(file){if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}throw\"both async and sync fetching of the wasm failed\"}async function getWasmBinary(binaryFile){if(!wasmBinary){try{var response=await readAsync(binaryFile);return new Uint8Array(response)}catch{}}return getBinarySync(binaryFile)}async function instantiateArrayBuffer(binaryFile,imports){try{var binary=await getWasmBinary(binaryFile);var instance=await WebAssembly.instantiate(binary,imports);return instance}catch(reason){err(`failed to asynchronously prepare wasm: ${reason}`);if(isFileURI(wasmBinaryFile)){err(`warning: Loading from a file URI (${wasmBinaryFile}) is not supported in most browsers. See https://emscripten.org/docs/getting_started/FAQ.html#how-do-i-run-a-local-webserver-for-testing-why-does-my-program-stall-in-downloading-or-preparing`)}abort(reason)}}async function instantiateAsync(binary,binaryFile,imports){if(!binary&&typeof WebAssembly.instantiateStreaming==\"function\"&&!ENVIRONMENT_IS_NODE){try{var response=fetch(binaryFile,{credentials:\"same-origin\"});var instantiationResult=await WebAssembly.instantiateStreaming(response,imports);return instantiationResult}catch(reason){err(`wasm streaming compile failed: ${reason}`);err(\"falling back to ArrayBuffer instantiation\")}}return instantiateArrayBuffer(binaryFile,imports)}function getWasmImports(){return{env:wasmImports,wasi_snapshot_preview1:wasmImports}}async function createWasm(){function receiveInstance(instance,module){wasmExports=instance.exports;wasmMemory=wasmExports[\"memory\"];assert(wasmMemory,\"memory not found in wasm exports\");updateMemoryViews();removeRunDependency(\"wasm-instantiate\");return wasmExports}addRunDependency(\"wasm-instantiate\");var trueModule=Module;function receiveInstantiationResult(result){assert(Module===trueModule,\"the Module object should not be replaced during async compilation - perhaps the order of HTML elements is wrong?\");trueModule=null;return receiveInstance(result[\"instance\"])}var info=getWasmImports();if(Module[\"instantiateWasm\"]){return new Promise((resolve,reject)=>{try{Module[\"instantiateWasm\"](info,(mod,inst)=>{receiveInstance(mod,inst);resolve(mod.exports)})}catch(e){err(`Module.instantiateWasm callback failed with error: ${e}`);reject(e)}})}wasmBinaryFile??=findWasmBinary();try{var result=await instantiateAsync(wasmBinary,wasmBinaryFile,info);var exports=receiveInstantiationResult(result);return exports}catch(e){readyPromiseReject(e);return Promise.reject(e)}}class ExitStatus{name=\"ExitStatus\";constructor(status){this.message=`Program terminated with exit(${status})`;this.status=status}}var callRuntimeCallbacks=callbacks=>{while(callbacks.length>0){callbacks.shift()(Module)}};var onPostRuns=[];var addOnPostRun=cb=>onPostRuns.unshift(cb);var onPreRuns=[];var addOnPreRun=cb=>onPreRuns.unshift(cb);function getValue(ptr,type=\"i8\"){if(type.endsWith(\"*\"))type=\"*\";switch(type){case\"i1\":return SAFE_HEAP_LOAD(ptr,1,0);case\"i8\":return SAFE_HEAP_LOAD(ptr,1,0);case\"i16\":return SAFE_HEAP_LOAD((ptr>>1)*2,2,0);case\"i32\":return SAFE_HEAP_LOAD((ptr>>2)*4,4,0);case\"i64\":return HEAP64[ptr>>3];case\"float\":return SAFE_HEAP_LOAD_D((ptr>>2)*4,4,0);case\"double\":return SAFE_HEAP_LOAD_D((ptr>>3)*8,8,0);case\"*\":return SAFE_HEAP_LOAD((ptr>>2)*4,4,1);default:abort(`invalid type for getValue: ${type}`)}}function getValue_safe(ptr,type=\"i8\"){if(type.endsWith(\"*\"))type=\"*\";switch(type){case\"i1\":return HEAP8[ptr];case\"i8\":return HEAP8[ptr];case\"i16\":return HEAP16[ptr>>1];case\"i32\":return HEAP32[ptr>>2];case\"i64\":return HEAP64[ptr>>3];case\"float\":return HEAPF32[ptr>>2];case\"double\":return HEAPF64[ptr>>3];case\"*\":return HEAPU32[ptr>>2];default:abort(`invalid type for getValue: ${type}`)}}var noExitRuntime=Module[\"noExitRuntime\"]||true;var ptrToString=ptr=>{assert(typeof ptr===\"number\");ptr>>>=0;return\"0x\"+ptr.toString(16).padStart(8,\"0\")};function setValue(ptr,value,type=\"i8\"){if(type.endsWith(\"*\"))type=\"*\";switch(type){case\"i1\":SAFE_HEAP_STORE(ptr,value,1);break;case\"i8\":SAFE_HEAP_STORE(ptr,value,1);break;case\"i16\":SAFE_HEAP_STORE((ptr>>1)*2,value,2);break;case\"i32\":SAFE_HEAP_STORE((ptr>>2)*4,value,4);break;case\"i64\":HEAP64[ptr>>3]=BigInt(value);break;case\"float\":SAFE_HEAP_STORE_D((ptr>>2)*4,value,4);break;case\"double\":SAFE_HEAP_STORE_D((ptr>>3)*8,value,8);break;case\"*\":SAFE_HEAP_STORE((ptr>>2)*4,value,4);break;default:abort(`invalid type for setValue: ${type}`)}}function setValue_safe(ptr,value,type=\"i8\"){if(type.endsWith(\"*\"))type=\"*\";switch(type){case\"i1\":HEAP8[ptr]=value;break;case\"i8\":HEAP8[ptr]=value;break;case\"i16\":HEAP16[ptr>>1]=value;break;case\"i32\":HEAP32[ptr>>2]=value;break;case\"i64\":HEAP64[ptr>>3]=BigInt(value);break;case\"float\":HEAPF32[ptr>>2]=value;break;case\"double\":HEAPF64[ptr>>3]=value;break;case\"*\":HEAPU32[ptr>>2]=value;break;default:abort(`invalid type for setValue: ${type}`)}}var stackRestore=val=>__emscripten_stack_restore(val);var stackSave=()=>_emscripten_stack_get_current();var unSign=(value,bits)=>{if(value>=0){return value}return bits<=32?2*Math.abs(1<<bits-1)+value:Math.pow(2,bits)+value};var warnOnce=text=>{warnOnce.shown||={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;if(ENVIRONMENT_IS_NODE)text=\"warning: \"+text;err(text)}};var syscallGetVarargI=()=>{assert(SYSCALLS.varargs!=undefined);var ret=SAFE_HEAP_LOAD((+SYSCALLS.varargs>>2)*4,4,0);SYSCALLS.varargs+=4;return ret};var syscallGetVarargP=syscallGetVarargI;var PATH={isAbs:path=>path.charAt(0)===\"/\",splitPath:filename=>{var splitPathRe=/^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:(parts,allowAboveRoot)=>{var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last===\".\"){parts.splice(i,1)}else if(last===\"..\"){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift(\"..\")}}return parts},normalize:path=>{var isAbsolute=PATH.isAbs(path),trailingSlash=path.slice(-1)===\"/\";path=PATH.normalizeArray(path.split(\"/\").filter(p=>!!p),!isAbsolute).join(\"/\");if(!path&&!isAbsolute){path=\".\"}if(path&&trailingSlash){path+=\"/\"}return(isAbsolute?\"/\":\"\")+path},dirname:path=>{var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return\".\"}if(dir){dir=dir.slice(0,-1)}return root+dir},basename:path=>path&&path.match(/([^\\/]+|\\/)\\/*$/)[1],join:(...paths)=>PATH.normalize(paths.join(\"/\")),join2:(l,r)=>PATH.normalize(l+\"/\"+r)};var initRandomFill=()=>{if(ENVIRONMENT_IS_NODE){var nodeCrypto=require(\"crypto\");return view=>nodeCrypto.randomFillSync(view)}return view=>crypto.getRandomValues(view)};var randomFill=view=>{(randomFill=initRandomFill())(view)};var PATH_FS={resolve:(...args)=>{var resolvedPath=\"\",resolvedAbsolute=false;for(var i=args.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?args[i]:FS.cwd();if(typeof path!=\"string\"){throw new TypeError(\"Arguments to path.resolve must be strings\")}else if(!path){return\"\"}resolvedPath=path+\"/\"+resolvedPath;resolvedAbsolute=PATH.isAbs(path)}resolvedPath=PATH.normalizeArray(resolvedPath.split(\"/\").filter(p=>!!p),!resolvedAbsolute).join(\"/\");return(resolvedAbsolute?\"/\":\"\")+resolvedPath||\".\"},relative:(from,to)=>{from=PATH_FS.resolve(from).slice(1);to=PATH_FS.resolve(to).slice(1);function trim(arr){var start=0;for(;start<arr.length;start++){if(arr[start]!==\"\")break}var end=arr.length-1;for(;end>=0;end--){if(arr[end]!==\"\")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split(\"/\"));var toParts=trim(to.split(\"/\"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i<length;i++){if(fromParts[i]!==toParts[i]){samePartsLength=i;break}}var outputParts=[];for(var i=samePartsLength;i<fromParts.length;i++){outputParts.push(\"..\")}outputParts=outputParts.concat(toParts.slice(samePartsLength));return outputParts.join(\"/\")}};var UTF8Decoder=typeof TextDecoder!=\"undefined\"?new TextDecoder:undefined;var UTF8ArrayToString=(heapOrArray,idx=0,maxBytesToRead=NaN)=>{var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heapOrArray[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.subarray(idx,endPtr))}var str=\"\";while(idx<endPtr){var u0=heapOrArray[idx++];if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heapOrArray[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heapOrArray[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{if((u0&248)!=240)warnOnce(\"Invalid UTF-8 leading byte \"+ptrToString(u0)+\" encountered when deserializing a UTF-8 string in wasm memory to a JS string!\");u0=(u0&7)<<18|u1<<12|u2<<6|heapOrArray[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str};var FS_stdin_getChar_buffer=[];var lengthBytesUTF8=str=>{var len=0;for(var i=0;i<str.length;++i){var c=str.charCodeAt(i);if(c<=127){len++}else if(c<=2047){len+=2}else if(c>=55296&&c<=57343){len+=4;++i}else{len+=3}}return len};var stringToUTF8Array=(str,heap,outIdx,maxBytesToWrite)=>{assert(typeof str===\"string\",`stringToUTF8Array expects a string (got ${typeof str})`);if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i<str.length;++i){var u=str.charCodeAt(i);if(u>=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;if(u>1114111)warnOnce(\"Invalid Unicode code point \"+ptrToString(u)+\" encountered when serializing a JS string to a UTF-8 string in wasm memory! (Valid unicode code points should be in range 0-0x10FFFF).\");heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx};var intArrayFromString=(stringy,dontAddNull,length)=>{var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array};var FS_stdin_getChar=()=>{if(!FS_stdin_getChar_buffer.length){var result=null;if(ENVIRONMENT_IS_NODE){var BUFSIZE=256;var buf=Buffer.alloc(BUFSIZE);var bytesRead=0;var fd=process.stdin.fd;try{bytesRead=fs.readSync(fd,buf,0,BUFSIZE)}catch(e){if(e.toString().includes(\"EOF\"))bytesRead=0;else throw e}if(bytesRead>0){result=buf.slice(0,bytesRead).toString(\"utf-8\")}}else if(typeof window!=\"undefined\"&&typeof window.prompt==\"function\"){result=window.prompt(\"Input: \");if(result!==null){result+=\"\\n\"}}else{}if(!result){return null}FS_stdin_getChar_buffer=intArrayFromString(result,true)}return FS_stdin_getChar_buffer.shift()};var TTY={ttys:[],init(){},shutdown(){},register(dev,ops){TTY.ttys[dev]={input:[],output:[],ops};FS.registerDevice(dev,TTY.stream_ops)},stream_ops:{open(stream){var tty=TTY.ttys[stream.node.rdev];if(!tty){throw new FS.ErrnoError(43)}stream.tty=tty;stream.seekable=false},close(stream){stream.tty.ops.fsync(stream.tty)},fsync(stream){stream.tty.ops.fsync(stream.tty)},read(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.get_char){throw new FS.ErrnoError(60)}var bytesRead=0;for(var i=0;i<length;i++){var result;try{result=stream.tty.ops.get_char(stream.tty)}catch(e){throw new FS.ErrnoError(29)}if(result===undefined&&bytesRead===0){throw new FS.ErrnoError(6)}if(result===null||result===undefined)break;bytesRead++;buffer[offset+i]=result}if(bytesRead){stream.node.atime=Date.now()}return bytesRead},write(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.put_char){throw new FS.ErrnoError(60)}try{for(var i=0;i<length;i++){stream.tty.ops.put_char(stream.tty,buffer[offset+i])}}catch(e){throw new FS.ErrnoError(29)}if(length){stream.node.mtime=stream.node.ctime=Date.now()}return i}},default_tty_ops:{get_char(tty){return FS_stdin_getChar()},put_char(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output));tty.output=[]}else{if(val!=0)tty.output.push(val)}},fsync(tty){if(tty.output?.length>0){out(UTF8ArrayToString(tty.output));tty.output=[]}},ioctl_tcgets(tty){return{c_iflag:25856,c_oflag:5,c_cflag:191,c_lflag:35387,c_cc:[3,28,127,21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},ioctl_tcsets(tty,optional_actions,data){return 0},ioctl_tiocgwinsz(tty){return[24,80]}},default_tty1_ops:{put_char(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output));tty.output=[]}else{if(val!=0)tty.output.push(val)}},fsync(tty){if(tty.output?.length>0){err(UTF8ArrayToString(tty.output));tty.output=[]}}}};var alignMemory=(size,alignment)=>{assert(alignment,\"alignment argument is required\");return Math.ceil(size/alignment)*alignment};var mmapAlloc=size=>{abort(\"internal error: mmapAlloc called but `emscripten_builtin_memalign` native symbol not exported\")};var MEMFS={ops_table:null,mount(mount){return MEMFS.createNode(null,\"/\",16895,0)},createNode(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(63)}MEMFS.ops_table||={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}};var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.atime=node.mtime=node.ctime=Date.now();if(parent){parent.contents[name]=node;parent.atime=parent.mtime=parent.ctime=node.atime}return node},getFileDataAsTypedArray(node){if(!node.contents)return new Uint8Array(0);if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents)},expandFileStorage(node,newCapacity){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity<CAPACITY_DOUBLING_MAX?2:1.125)>>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.atime);attr.mtime=new Date(node.mtime);attr.ctime=new Date(node.ctime);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr(node,attr){for(const key of[\"mode\",\"atime\",\"mtime\",\"ctime\"]){if(attr[key]!=null){node[key]=attr[key]}}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup(parent,name){throw new FS.ErrnoError(44)},mknod(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename(old_node,new_dir,new_name){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){if(FS.isDir(old_node.mode)){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}FS.hashRemoveNode(new_node)}delete old_node.parent.contents[old_node.name];new_dir.contents[new_name]=old_node;old_node.name=new_name;new_dir.ctime=new_dir.mtime=old_node.parent.ctime=old_node.parent.mtime=Date.now()},unlink(parent,name){delete parent.contents[name];parent.ctime=parent.mtime=Date.now()},rmdir(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.ctime=parent.mtime=Date.now()},readdir(node){return[\".\",\"..\",...Object.keys(node.contents)]},symlink(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);assert(size>=0);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i<size;i++)buffer[offset+i]=contents[position+i]}return size},write(stream,buffer,offset,length,position,canOwn){assert(!(buffer instanceof ArrayBuffer));if(buffer.buffer===HEAP8.buffer){canOwn=false}if(!length)return 0;var node=stream.node;node.mtime=node.ctime=Date.now();if(buffer.subarray&&(!node.contents||node.contents.subarray)){if(canOwn){assert(position===0,\"canOwn must imply no weird position inside the file\");node.contents=buffer.subarray(offset,offset+length);node.usedBytes=length;return length}else if(node.usedBytes===0&&position===0){node.contents=buffer.slice(offset,offset+length);node.usedBytes=length;return length}else if(position+length<=node.usedBytes){node.contents.set(buffer.subarray(offset,offset+length),position);return length}}MEMFS.expandFileStorage(node,position+length);if(node.contents.subarray&&buffer.subarray){node.contents.set(buffer.subarray(offset,offset+length),position)}else{for(var i=0;i<length;i++){node.contents[position+i]=buffer[offset+i]}}node.usedBytes=Math.max(node.usedBytes,position+length);return length},llseek(stream,offset,whence){var position=offset;if(whence===1){position+=stream.position}else if(whence===2){if(FS.isFile(stream.node.mode)){position+=stream.node.usedBytes}}if(position<0){throw new FS.ErrnoError(28)}return position},mmap(stream,length,position,prot,flags){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(43)}var ptr;var allocated;var contents=stream.node.contents;if(!(flags&2)&&contents&&contents.buffer===HEAP8.buffer){allocated=false;ptr=contents.byteOffset}else{allocated=true;ptr=mmapAlloc(length);if(!ptr){throw new FS.ErrnoError(48)}if(contents){if(position>0||position+length<contents.length){if(contents.subarray){contents=contents.subarray(position,position+length)}else{contents=Array.prototype.slice.call(contents,position,position+length)}}HEAP8.set(contents,ptr)}}return{ptr,allocated}},msync(stream,buffer,offset,length,mmapFlags){MEMFS.stream_ops.write(stream,buffer,0,length,offset,false);return 0}}};var asyncLoad=async url=>{var arrayBuffer=await readAsync(url);assert(arrayBuffer,`Loading data file \"${url}\" failed (no arrayBuffer).`);return new Uint8Array(arrayBuffer)};var FS_createDataFile=(parent,name,fileData,canRead,canWrite,canOwn)=>{FS.createDataFile(parent,name,fileData,canRead,canWrite,canOwn)};var preloadPlugins=Module[\"preloadPlugins\"]||[];var FS_handledByPreloadPlugin=(byteArray,fullname,finish,onerror)=>{if(typeof Browser!=\"undefined\")Browser.init();var handled=false;preloadPlugins.forEach(plugin=>{if(handled)return;if(plugin[\"canHandle\"](fullname)){plugin[\"handle\"](byteArray,fullname,finish,onerror);handled=true}});return handled};var FS_createPreloadedFile=(parent,name,url,canRead,canWrite,onload,onerror,dontCreateFile,canOwn,preFinish)=>{var fullname=name?PATH_FS.resolve(PATH.join2(parent,name)):parent;var dep=getUniqueRunDependency(`cp ${fullname}`);function processData(byteArray){function finish(byteArray){preFinish?.();if(!dontCreateFile){FS_createDataFile(parent,name,byteArray,canRead,canWrite,canOwn)}onload?.();removeRunDependency(dep)}if(FS_handledByPreloadPlugin(byteArray,fullname,finish,()=>{onerror?.();removeRunDependency(dep)})){return}finish(byteArray)}addRunDependency(dep);if(typeof url==\"string\"){asyncLoad(url).then(processData,onerror)}else{processData(url)}};var FS_modeStringToFlags=str=>{var flagModes={r:0,\"r+\":2,w:512|64|1,\"w+\":512|64|2,a:1024|64|1,\"a+\":1024|64|2};var flags=flagModes[str];if(typeof flags==\"undefined\"){throw new Error(`Unknown file open mode: ${str}`)}return flags};var FS_getMode=(canRead,canWrite)=>{var mode=0;if(canRead)mode|=292|73;if(canWrite)mode|=146;return mode};var UTF8ToString=(ptr,maxBytesToRead)=>{assert(typeof ptr==\"number\",`UTF8ToString expects a number (got ${typeof ptr})`);return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):\"\"};var strError=errno=>UTF8ToString(_strerror(errno));var ERRNO_CODES={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135};var FS={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:\"/\",initialized:false,ignorePermissions:true,filesystems:null,syncFSRequests:0,readFiles:{},ErrnoError:class extends Error{name=\"ErrnoError\";constructor(errno){super(runtimeInitialized?strError(errno):\"\");this.errno=errno;for(var key in ERRNO_CODES){if(ERRNO_CODES[key]===errno){this.code=key;break}}}},FSStream:class{shared={};get object(){return this.node}set object(val){this.node=val}get isRead(){return(this.flags&2097155)!==1}get isWrite(){return(this.flags&2097155)!==0}get isAppend(){return this.flags&1024}get flags(){return this.shared.flags}set flags(val){this.shared.flags=val}get position(){return this.shared.position}set position(val){this.shared.position=val}},FSNode:class{node_ops={};stream_ops={};readMode=292|73;writeMode=146;mounted=null;constructor(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.rdev=rdev;this.atime=this.mtime=this.ctime=Date.now()}get read(){return(this.mode&this.readMode)===this.readMode}set read(val){val?this.mode|=this.readMode:this.mode&=~this.readMode}get write(){return(this.mode&this.writeMode)===this.writeMode}set write(val){val?this.mode|=this.writeMode:this.mode&=~this.writeMode}get isFolder(){return FS.isDir(this.mode)}get isDevice(){return FS.isChrdev(this.mode)}},lookupPath(path,opts={}){if(!path){throw new FS.ErrnoError(44)}opts.follow_mount??=true;if(!PATH.isAbs(path)){path=FS.cwd()+\"/\"+path}linkloop:for(var nlinks=0;nlinks<40;nlinks++){var parts=path.split(\"/\").filter(p=>!!p);var current=FS.root;var current_path=\"/\";for(var i=0;i<parts.length;i++){var islast=i===parts.length-1;if(islast&&opts.parent){break}if(parts[i]===\".\"){continue}if(parts[i]===\"..\"){current_path=PATH.dirname(current_path);current=current.parent;continue}current_path=PATH.join2(current_path,parts[i]);try{current=FS.lookupNode(current,parts[i])}catch(e){if(e?.errno===44&&islast&&opts.noent_okay){return{path:current_path}}throw e}if(FS.isMountpoint(current)&&(!islast||opts.follow_mount)){current=current.mounted.root}if(FS.isLink(current.mode)&&(!islast||opts.follow)){if(!current.node_ops.readlink){throw new FS.ErrnoError(52)}var link=current.node_ops.readlink(current);if(!PATH.isAbs(link)){link=PATH.dirname(current_path)+\"/\"+link}path=link+\"/\"+parts.slice(i+1).join(\"/\");continue linkloop}}return{path:current_path,node:current}}throw new FS.ErrnoError(32)},getPath(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!==\"/\"?`${mount}/${path}`:mount+path}path=path?`${node.name}/${path}`:node.name;node=node.parent}},hashName(parentid,name){var hash=0;for(var i=0;i<name.length;i++){hash=(hash<<5)-hash+name.charCodeAt(i)|0}return(parentid+hash>>>0)%FS.nameTable.length},hashAddNode(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode(parent,name,mode,rdev){assert(typeof parent==\"object\");var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode(node){FS.hashRemoveNode(node)},isRoot(node){return node===node.parent},isMountpoint(node){return!!node.mounted},isFile(mode){return(mode&61440)===32768},isDir(mode){return(mode&61440)===16384},isLink(mode){return(mode&61440)===40960},isChrdev(mode){return(mode&61440)===8192},isBlkdev(mode){return(mode&61440)===24576},isFIFO(mode){return(mode&61440)===4096},isSocket(mode){return(mode&49152)===49152},flagsToPermissionString(flag){var perms=[\"r\",\"w\",\"rw\"][flag&3];if(flag&512){perms+=\"w\"}return perms},nodePermissions(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes(\"r\")&&!(node.mode&292)){return 2}else if(perms.includes(\"w\")&&!(node.mode&146)){return 2}else if(perms.includes(\"x\")&&!(node.mode&73)){return 2}return 0},mayLookup(dir){if(!FS.isDir(dir.mode))return 54;var errCode=FS.nodePermissions(dir,\"x\");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate(dir,name){if(!FS.isDir(dir.mode)){return 54}try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,\"wx\")},mayDelete(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,\"wx\");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!==\"r\"||flags&(512|64)){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},checkOpExists(op,err){if(!op){throw new FS.ErrnoError(err)}return op},MAX_OPEN_FDS:4096,nextfd(){for(var fd=0;fd<=FS.MAX_OPEN_FDS;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStreamChecked(fd){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}return stream},getStream:fd=>FS.streams[fd],createStream(stream,fd=-1){assert(fd>=-1);stream=Object.assign(new FS.FSStream,stream);if(fd==-1){fd=FS.nextfd()}stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream(fd){FS.streams[fd]=null},dupStream(origStream,fd=-1){var stream=FS.createStream(origStream,fd);stream.stream_ops?.dup?.(stream);return stream},doSetAttr(stream,node,attr){var setattr=stream?.stream_ops.setattr;var arg=setattr?stream:node;setattr??=node.node_ops.setattr;FS.checkOpExists(setattr,63);setattr(arg,attr)},chrdev_stream_ops:{open(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;stream.stream_ops.open?.(stream)},llseek(){throw new FS.ErrnoError(70)}},major:dev=>dev>>8,minor:dev=>dev&255,makedev:(ma,mi)=>ma<<8|mi,registerDevice(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:dev=>FS.devices[dev],getMounts(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push(...m.mounts)}return mounts},syncfs(populate,callback){if(typeof populate==\"function\"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err(`warning: ${FS.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`)}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){assert(FS.syncFSRequests>0);FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(mount=>{if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount(type,opts,mountpoint){if(typeof type==\"string\"){throw type}var root=mountpoint===\"/\";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type,opts,mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(hash=>{var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);assert(idx!==-1);node.mount.mounts.splice(idx,1)},lookup(parent,name){return parent.node_ops.lookup(parent,name)},mknod(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name){throw new FS.ErrnoError(28)}if(name===\".\"||name===\"..\"){throw new FS.ErrnoError(20)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},statfs(path){return FS.statfsNode(FS.lookupPath(path,{follow:true}).node)},statfsStream(stream){return FS.statfsNode(stream.node)},statfsNode(node){var rtn={bsize:4096,frsize:4096,blocks:1e6,bfree:5e5,bavail:5e5,files:FS.nextInode,ffree:FS.nextInode-1,fsid:42,flags:2,namelen:255};if(node.node_ops.statfs){Object.assign(rtn,node.node_ops.statfs(node.mount.opts.root))}return rtn},create(path,mode=438){mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir(path,mode=511){mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree(path,mode){var dirs=path.split(\"/\");var d=\"\";for(var dir of dirs){if(!dir)continue;d+=\"/\"+dir;try{FS.mkdir(d,mode)}catch(e){if(e.errno!=20)throw e}}},mkdev(path,mode,dev){if(typeof dev==\"undefined\"){dev=mode;mode=438}mode|=8192;return FS.mknod(path,mode,dev)},symlink(oldpath,newpath){if(!PATH_FS.resolve(oldpath)){throw new FS.ErrnoError(44)}var lookup=FS.lookupPath(newpath,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(44)}var newname=PATH.basename(newpath);var errCode=FS.mayCreate(parent,newname);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.symlink){throw new FS.ErrnoError(63)}return parent.node_ops.symlink(parent,newname,oldpath)},rename(old_path,new_path){var old_dirname=PATH.dirname(old_path);var new_dirname=PATH.dirname(new_path);var old_name=PATH.basename(old_path);var new_name=PATH.basename(new_path);var lookup,old_dir,new_dir;lookup=FS.lookupPath(old_path,{parent:true});old_dir=lookup.node;lookup=FS.lookupPath(new_path,{parent:true});new_dir=lookup.node;if(!old_dir||!new_dir)throw new FS.ErrnoError(44);if(old_dir.mount!==new_dir.mount){throw new FS.ErrnoError(75)}var old_node=FS.lookupNode(old_dir,old_name);var relative=PATH_FS.relative(old_path,new_dirname);if(relative.charAt(0)!==\".\"){throw new FS.ErrnoError(28)}relative=PATH_FS.relative(new_path,old_dirname);if(relative.charAt(0)!==\".\"){throw new FS.ErrnoError(55)}var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(old_node===new_node){return}var isdir=FS.isDir(old_node.mode);var errCode=FS.mayDelete(old_dir,old_name,isdir);if(errCode){throw new FS.ErrnoError(errCode)}errCode=new_node?FS.mayDelete(new_dir,new_name,isdir):FS.mayCreate(new_dir,new_name);if(errCode){throw new FS.ErrnoError(errCode)}if(!old_dir.node_ops.rename){throw new FS.ErrnoError(63)}if(FS.isMountpoint(old_node)||new_node&&FS.isMountpoint(new_node)){throw new FS.ErrnoError(10)}if(new_dir!==old_dir){errCode=FS.nodePermissions(old_dir,\"w\");if(errCode){throw new FS.ErrnoError(errCode)}}FS.hashRemoveNode(old_node);try{old_dir.node_ops.rename(old_node,new_dir,new_name);old_node.parent=new_dir}catch(e){throw e}finally{FS.hashAddNode(old_node)}},rmdir(path){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,true);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.rmdir){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}parent.node_ops.rmdir(parent,name);FS.destroyNode(node)},readdir(path){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;var readdir=FS.checkOpExists(node.node_ops.readdir,54);return readdir(node)},unlink(path){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(44)}var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,false);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.unlink){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}parent.node_ops.unlink(parent,name);FS.destroyNode(node)},readlink(path){var lookup=FS.lookupPath(path);var link=lookup.node;if(!link){throw new FS.ErrnoError(44)}if(!link.node_ops.readlink){throw new FS.ErrnoError(28)}return link.node_ops.readlink(link)},stat(path,dontFollow){var lookup=FS.lookupPath(path,{follow:!dontFollow});var node=lookup.node;var getattr=FS.checkOpExists(node.node_ops.getattr,63);return getattr(node)},fstat(fd){var stream=FS.getStreamChecked(fd);var node=stream.node;var getattr=stream.stream_ops.getattr;var arg=getattr?stream:node;getattr??=node.node_ops.getattr;FS.checkOpExists(getattr,63);return getattr(arg)},lstat(path){return FS.stat(path,true)},doChmod(stream,node,mode,dontFollow){FS.doSetAttr(stream,node,{mode:mode&4095|node.mode&~4095,ctime:Date.now(),dontFollow})},chmod(path,mode,dontFollow){var node;if(typeof path==\"string\"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}FS.doChmod(null,node,mode,dontFollow)},lchmod(path,mode){FS.chmod(path,mode,true)},fchmod(fd,mode){var stream=FS.getStreamChecked(fd);FS.doChmod(stream,stream.node,mode,false)},doChown(stream,node,dontFollow){FS.doSetAttr(stream,node,{timestamp:Date.now(),dontFollow})},chown(path,uid,gid,dontFollow){var node;if(typeof path==\"string\"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}FS.doChown(null,node,dontFollow)},lchown(path,uid,gid){FS.chown(path,uid,gid,true)},fchown(fd,uid,gid){var stream=FS.getStreamChecked(fd);FS.doChown(stream,stream.node,false)},doTruncate(stream,node,len){if(FS.isDir(node.mode)){throw new FS.ErrnoError(31)}if(!FS.isFile(node.mode)){throw new FS.ErrnoError(28)}var errCode=FS.nodePermissions(node,\"w\");if(errCode){throw new FS.ErrnoError(errCode)}FS.doSetAttr(stream,node,{size:len,timestamp:Date.now()})},truncate(path,len){if(len<0){throw new FS.ErrnoError(28)}var node;if(typeof path==\"string\"){var lookup=FS.lookupPath(path,{follow:true});node=lookup.node}else{node=path}FS.doTruncate(null,node,len)},ftruncate(fd,len){var stream=FS.getStreamChecked(fd);if(len<0||(stream.flags&2097155)===0){throw new FS.ErrnoError(28)}FS.doTruncate(stream,stream.node,len)},utime(path,atime,mtime){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;var setattr=FS.checkOpExists(node.node_ops.setattr,63);setattr(node,{atime,mtime})},open(path,flags,mode=438){if(path===\"\"){throw new FS.ErrnoError(44)}flags=typeof flags==\"string\"?FS_modeStringToFlags(flags):flags;if(flags&64){mode=mode&4095|32768}else{mode=0}var node;var isDirPath;if(typeof path==\"object\"){node=path}else{isDirPath=path.endsWith(\"/\");var lookup=FS.lookupPath(path,{follow:!(flags&131072),noent_okay:true});node=lookup.node;path=lookup.path}var created=false;if(flags&64){if(node){if(flags&128){throw new FS.ErrnoError(20)}}else if(isDirPath){throw new FS.ErrnoError(31)}else{node=FS.mknod(path,mode|511,0);created=true}}if(!node){throw new FS.ErrnoError(44)}if(FS.isChrdev(node.mode)){flags&=~512}if(flags&65536&&!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}if(!created){var errCode=FS.mayOpen(node,flags);if(errCode){throw new FS.ErrnoError(errCode)}}if(flags&512&&!created){FS.truncate(node,0)}flags&=~(128|512|131072);var stream=FS.createStream({node,path:FS.getPath(node),flags,seekable:true,position:0,stream_ops:node.stream_ops,ungotten:[],error:false});if(stream.stream_ops.open){stream.stream_ops.open(stream)}if(created){FS.chmod(node,mode&511)}if(Module[\"logReadFiles\"]&&!(flags&1)){if(!(path in FS.readFiles)){FS.readFiles[path]=1}}return stream},close(stream){if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(stream.getdents)stream.getdents=null;try{if(stream.stream_ops.close){stream.stream_ops.close(stream)}}catch(e){throw e}finally{FS.closeStream(stream.fd)}stream.fd=null},isClosed(stream){return stream.fd===null},llseek(stream,offset,whence){if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(!stream.seekable||!stream.stream_ops.llseek){throw new FS.ErrnoError(70)}if(whence!=0&&whence!=1&&whence!=2){throw new FS.ErrnoError(28)}stream.position=stream.stream_ops.llseek(stream,offset,whence);stream.ungotten=[];return stream.position},read(stream,buffer,offset,length,position){assert(offset>=0);if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.read){throw new FS.ErrnoError(28)}var seeking=typeof position!=\"undefined\";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesRead=stream.stream_ops.read(stream,buffer,offset,length,position);if(!seeking)stream.position+=bytesRead;return bytesRead},write(stream,buffer,offset,length,position,canOwn){assert(offset>=0);if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.write){throw new FS.ErrnoError(28)}if(stream.seekable&&stream.flags&1024){FS.llseek(stream,0,2)}var seeking=typeof position!=\"undefined\";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesWritten=stream.stream_ops.write(stream,buffer,offset,length,position,canOwn);if(!seeking)stream.position+=bytesWritten;return bytesWritten},mmap(stream,length,position,prot,flags){if((prot&2)!==0&&(flags&2)===0&&(stream.flags&2097155)!==2){throw new FS.ErrnoError(2)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(2)}if(!stream.stream_ops.mmap){throw new FS.ErrnoError(43)}if(!length){throw new FS.ErrnoError(28)}return stream.stream_ops.mmap(stream,length,position,prot,flags)},msync(stream,buffer,offset,length,mmapFlags){assert(offset>=0);if(!stream.stream_ops.msync){return 0}return stream.stream_ops.msync(stream,buffer,offset,length,mmapFlags)},ioctl(stream,cmd,arg){if(!stream.stream_ops.ioctl){throw new FS.ErrnoError(59)}return stream.stream_ops.ioctl(stream,cmd,arg)},readFile(path,opts={}){opts.flags=opts.flags||0;opts.encoding=opts.encoding||\"binary\";if(opts.encoding!==\"utf8\"&&opts.encoding!==\"binary\"){throw new Error(`Invalid encoding type \"${opts.encoding}\"`)}var ret;var stream=FS.open(path,opts.flags);var stat=FS.stat(path);var length=stat.size;var buf=new Uint8Array(length);FS.read(stream,buf,0,length,0);if(opts.encoding===\"utf8\"){ret=UTF8ArrayToString(buf)}else if(opts.encoding===\"binary\"){ret=buf}FS.close(stream);return ret},writeFile(path,data,opts={}){opts.flags=opts.flags||577;var stream=FS.open(path,opts.flags,opts.mode);if(typeof data==\"string\"){var buf=new Uint8Array(lengthBytesUTF8(data)+1);var actualNumBytes=stringToUTF8Array(data,buf,0,buf.length);FS.write(stream,buf,0,actualNumBytes,undefined,opts.canOwn)}else if(ArrayBuffer.isView(data)){FS.write(stream,data,0,data.byteLength,undefined,opts.canOwn)}else{throw new Error(\"Unsupported data type\")}FS.close(stream)},cwd:()=>FS.currentPath,chdir(path){var lookup=FS.lookupPath(path,{follow:true});if(lookup.node===null){throw new FS.ErrnoError(44)}if(!FS.isDir(lookup.node.mode)){throw new FS.ErrnoError(54)}var errCode=FS.nodePermissions(lookup.node,\"x\");if(errCode){throw new FS.ErrnoError(errCode)}FS.currentPath=lookup.path},createDefaultDirectories(){FS.mkdir(\"/tmp\");FS.mkdir(\"/home\");FS.mkdir(\"/home/web_user\")},createDefaultDevices(){FS.mkdir(\"/dev\");FS.registerDevice(FS.makedev(1,3),{read:()=>0,write:(stream,buffer,offset,length,pos)=>length,llseek:()=>0});FS.mkdev(\"/dev/null\",FS.makedev(1,3));TTY.register(FS.makedev(5,0),TTY.default_tty_ops);TTY.register(FS.makedev(6,0),TTY.default_tty1_ops);FS.mkdev(\"/dev/tty\",FS.makedev(5,0));FS.mkdev(\"/dev/tty1\",FS.makedev(6,0));var randomBuffer=new Uint8Array(1024),randomLeft=0;var randomByte=()=>{if(randomLeft===0){randomFill(randomBuffer);randomLeft=randomBuffer.byteLength}return randomBuffer[--randomLeft]};FS.createDevice(\"/dev\",\"random\",randomByte);FS.createDevice(\"/dev\",\"urandom\",randomByte);FS.mkdir(\"/dev/shm\");FS.mkdir(\"/dev/shm/tmp\")},createSpecialDirectories(){FS.mkdir(\"/proc\");var proc_self=FS.mkdir(\"/proc/self\");FS.mkdir(\"/proc/self/fd\");FS.mount({mount(){var node=FS.createNode(proc_self,\"fd\",16895,73);node.stream_ops={llseek:MEMFS.stream_ops.llseek};node.node_ops={lookup(parent,name){var fd=+name;var stream=FS.getStreamChecked(fd);var ret={parent:null,mount:{mountpoint:\"fake\"},node_ops:{readlink:()=>stream.path},id:fd+1};ret.parent=ret;return ret},readdir(){return Array.from(FS.streams.entries()).filter(([k,v])=>v).map(([k,v])=>k.toString())}};return node}},{},\"/proc/self/fd\")},createStandardStreams(input,output,error){if(input){FS.createDevice(\"/dev\",\"stdin\",input)}else{FS.symlink(\"/dev/tty\",\"/dev/stdin\")}if(output){FS.createDevice(\"/dev\",\"stdout\",null,output)}else{FS.symlink(\"/dev/tty\",\"/dev/stdout\")}if(error){FS.createDevice(\"/dev\",\"stderr\",null,error)}else{FS.symlink(\"/dev/tty1\",\"/dev/stderr\")}var stdin=FS.open(\"/dev/stdin\",0);var stdout=FS.open(\"/dev/stdout\",1);var stderr=FS.open(\"/dev/stderr\",1);assert(stdin.fd===0,`invalid handle for stdin (${stdin.fd})`);assert(stdout.fd===1,`invalid handle for stdout (${stdout.fd})`);assert(stderr.fd===2,`invalid handle for stderr (${stderr.fd})`)},staticInit(){FS.nameTable=new Array(4096);FS.mount(MEMFS,{},\"/\");FS.createDefaultDirectories();FS.createDefaultDevices();FS.createSpecialDirectories();FS.filesystems={MEMFS}},init(input,output,error){assert(!FS.initialized,\"FS.init was previously called. If you want to initialize later with custom parameters, remove any earlier calls (note that one is automatically added to the generated code)\");FS.initialized=true;input??=Module[\"stdin\"];output??=Module[\"stdout\"];error??=Module[\"stderr\"];FS.createStandardStreams(input,output,error)},quit(){FS.initialized=false;_fflush(0);for(var stream of FS.streams){if(stream){FS.close(stream)}}},findObject(path,dontResolveLastLink){var ret=FS.analyzePath(path,dontResolveLastLink);if(!ret.exists){return null}return ret.object},analyzePath(path,dontResolveLastLink){try{var lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});path=lookup.path}catch(e){}var ret={isRoot:false,exists:false,error:0,name:null,path:null,object:null,parentExists:false,parentPath:null,parentObject:null};try{var lookup=FS.lookupPath(path,{parent:true});ret.parentExists=true;ret.parentPath=lookup.path;ret.parentObject=lookup.node;ret.name=PATH.basename(path);lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});ret.exists=true;ret.path=lookup.path;ret.object=lookup.node;ret.name=lookup.node.name;ret.isRoot=lookup.path===\"/\"}catch(e){ret.error=e.errno}return ret},createPath(parent,path,canRead,canWrite){parent=typeof parent==\"string\"?parent:FS.getPath(parent);var parts=path.split(\"/\").reverse();while(parts.length){var part=parts.pop();if(!part)continue;var current=PATH.join2(parent,part);try{FS.mkdir(current)}catch(e){if(e.errno!=20)throw e}parent=current}return current},createFile(parent,name,properties,canRead,canWrite){var path=PATH.join2(typeof parent==\"string\"?parent:FS.getPath(parent),name);var mode=FS_getMode(canRead,canWrite);return FS.create(path,mode)},createDataFile(parent,name,data,canRead,canWrite,canOwn){var path=name;if(parent){parent=typeof parent==\"string\"?parent:FS.getPath(parent);path=name?PATH.join2(parent,name):parent}var mode=FS_getMode(canRead,canWrite);var node=FS.create(path,mode);if(data){if(typeof data==\"string\"){var arr=new Array(data.length);for(var i=0,len=data.length;i<len;++i)arr[i]=data.charCodeAt(i);data=arr}FS.chmod(node,mode|146);var stream=FS.open(node,577);FS.write(stream,data,0,data.length,0,canOwn);FS.close(stream);FS.chmod(node,mode)}},createDevice(parent,name,input,output){var path=PATH.join2(typeof parent==\"string\"?parent:FS.getPath(parent),name);var mode=FS_getMode(!!input,!!output);FS.createDevice.major??=64;var dev=FS.makedev(FS.createDevice.major++,0);FS.registerDevice(dev,{open(stream){stream.seekable=false},close(stream){if(output?.buffer?.length){output(10)}},read(stream,buffer,offset,length,pos){var bytesRead=0;for(var i=0;i<length;i++){var result;try{result=input()}catch(e){throw new FS.ErrnoError(29)}if(result===undefined&&bytesRead===0){throw new FS.ErrnoError(6)}if(result===null||result===undefined)break;bytesRead++;buffer[offset+i]=result}if(bytesRead){stream.node.atime=Date.now()}return bytesRead},write(stream,buffer,offset,length,pos){for(var i=0;i<length;i++){try{output(buffer[offset+i])}catch(e){throw new FS.ErrnoError(29)}}if(length){stream.node.mtime=stream.node.ctime=Date.now()}return i}});return FS.mkdev(path,mode,dev)},forceLoadFile(obj){if(obj.isDevice||obj.isFolder||obj.link||obj.contents)return true;if(typeof XMLHttpRequest!=\"undefined\"){throw new Error(\"Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.\")}else{try{obj.contents=readBinary(obj.url);obj.usedBytes=obj.contents.length}catch(e){throw new FS.ErrnoError(29)}}},createLazyFile(parent,name,url,canRead,canWrite){class LazyUint8Array{lengthKnown=false;chunks=[];get(idx){if(idx>this.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]}setDataGetter(getter){this.getter=getter}cacheLength(){var xhr=new XMLHttpRequest;xhr.open(\"HEAD\",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error(\"Couldn't load \"+url+\". Status: \"+xhr.status);var datalength=Number(xhr.getResponseHeader(\"Content-length\"));var header;var hasByteServing=(header=xhr.getResponseHeader(\"Accept-Ranges\"))&&header===\"bytes\";var usesGzip=(header=xhr.getResponseHeader(\"Content-Encoding\"))&&header===\"gzip\";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=(from,to)=>{if(from>to)throw new Error(\"invalid range (\"+from+\", \"+to+\") or no bytes requested!\");if(to>datalength-1)throw new Error(\"only \"+datalength+\" bytes available! programmer error!\");var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);if(datalength!==chunkSize)xhr.setRequestHeader(\"Range\",\"bytes=\"+from+\"-\"+to);xhr.responseType=\"arraybuffer\";if(xhr.overrideMimeType){xhr.overrideMimeType(\"text/plain; charset=x-user-defined\")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error(\"Couldn't load \"+url+\". Status: \"+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}return intArrayFromString(xhr.responseText||\"\",true)};var lazyArray=this;lazyArray.setDataGetter(chunkNum=>{var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==\"undefined\"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==\"undefined\")throw new Error(\"doXHR failed!\");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out(\"LazyFiles on gzip forces download of the whole file when length is accessed\")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true}get length(){if(!this.lengthKnown){this.cacheLength()}return this._length}get chunkSize(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}if(typeof XMLHttpRequest!=\"undefined\"){if(!ENVIRONMENT_IS_WORKER)throw\"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc\";var lazyArray=new LazyUint8Array;var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(key=>{var fn=node.stream_ops[key];stream_ops[key]=(...args)=>{FS.forceLoadFile(node);return fn(...args)}});function writeChunks(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);assert(size>=0);if(contents.slice){for(var i=0;i<size;i++){buffer[offset+i]=contents[position+i]}}else{for(var i=0;i<size;i++){buffer[offset+i]=contents.get(position+i)}}return size}stream_ops.read=(stream,buffer,offset,length,position)=>{FS.forceLoadFile(node);return writeChunks(stream,buffer,offset,length,position)};stream_ops.mmap=(stream,length,position,prot,flags)=>{FS.forceLoadFile(node);var ptr=mmapAlloc(length);if(!ptr){throw new FS.ErrnoError(48)}writeChunks(stream,HEAP8,ptr,length,position);return{ptr,allocated:true}};node.stream_ops=stream_ops;return node},absolutePath(){abort(\"FS.absolutePath has been removed; use PATH_FS.resolve instead\")},createFolder(){abort(\"FS.createFolder has been removed; use FS.mkdir instead\")},createLink(){abort(\"FS.createLink has been removed; use FS.symlink instead\")},joinPath(){abort(\"FS.joinPath has been removed; use PATH.join instead\")},mmapAlloc(){abort(\"FS.mmapAlloc has been replaced by the top level function mmapAlloc\")},standardizePath(){abort(\"FS.standardizePath has been removed; use PATH.normalize instead\")}};var SYSCALLS={DEFAULT_POLLMASK:5,calculateAt(dirfd,path,allowEmpty){if(PATH.isAbs(path)){return path}var dir;if(dirfd===-100){dir=FS.cwd()}else{var dirstream=SYSCALLS.getStreamFromFD(dirfd);dir=dirstream.path}if(path.length==0){if(!allowEmpty){throw new FS.ErrnoError(44)}return dir}return dir+\"/\"+path},writeStat(buf,stat){SAFE_HEAP_STORE((buf>>2)*4,stat.dev,4);SAFE_HEAP_STORE((buf+4>>2)*4,stat.mode,4);SAFE_HEAP_STORE((buf+8>>2)*4,stat.nlink,4);SAFE_HEAP_STORE((buf+12>>2)*4,stat.uid,4);SAFE_HEAP_STORE((buf+16>>2)*4,stat.gid,4);SAFE_HEAP_STORE((buf+20>>2)*4,stat.rdev,4);HEAP64[buf+24>>3]=BigInt(stat.size);SAFE_HEAP_STORE((buf+32>>2)*4,4096,4);SAFE_HEAP_STORE((buf+36>>2)*4,stat.blocks,4);var atime=stat.atime.getTime();var mtime=stat.mtime.getTime();var ctime=stat.ctime.getTime();HEAP64[buf+40>>3]=BigInt(Math.floor(atime/1e3));SAFE_HEAP_STORE((buf+48>>2)*4,atime%1e3*1e3*1e3,4);HEAP64[buf+56>>3]=BigInt(Math.floor(mtime/1e3));SAFE_HEAP_STORE((buf+64>>2)*4,mtime%1e3*1e3*1e3,4);HEAP64[buf+72>>3]=BigInt(Math.floor(ctime/1e3));SAFE_HEAP_STORE((buf+80>>2)*4,ctime%1e3*1e3*1e3,4);HEAP64[buf+88>>3]=BigInt(stat.ino);return 0},writeStatFs(buf,stats){SAFE_HEAP_STORE((buf+4>>2)*4,stats.bsize,4);SAFE_HEAP_STORE((buf+40>>2)*4,stats.bsize,4);SAFE_HEAP_STORE((buf+8>>2)*4,stats.blocks,4);SAFE_HEAP_STORE((buf+12>>2)*4,stats.bfree,4);SAFE_HEAP_STORE((buf+16>>2)*4,stats.bavail,4);SAFE_HEAP_STORE((buf+20>>2)*4,stats.files,4);SAFE_HEAP_STORE((buf+24>>2)*4,stats.ffree,4);SAFE_HEAP_STORE((buf+28>>2)*4,stats.fsid,4);SAFE_HEAP_STORE((buf+44>>2)*4,stats.flags,4);SAFE_HEAP_STORE((buf+36>>2)*4,stats.namelen,4)},doMsync(addr,stream,len,flags,offset){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(43)}if(flags&2){return 0}var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},getStreamFromFD(fd){var stream=FS.getStreamChecked(fd);return stream},varargs:undefined,getStr(ptr){var ret=UTF8ToString(ptr);return ret}};function ___syscall_fcntl64(fd,cmd,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(cmd){case 0:{var arg=syscallGetVarargI();if(arg<0){return-28}while(FS.streams[arg]){arg++}var newStream;newStream=FS.dupStream(stream,arg);return newStream.fd}case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=syscallGetVarargI();stream.flags|=arg;return 0}case 12:{var arg=syscallGetVarargP();var offset=0;SAFE_HEAP_STORE((arg+offset>>1)*2,2,2);return 0}case 13:case 14:return 0}return-28}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}function ___syscall_ioctl(fd,op,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(op){case 21509:{if(!stream.tty)return-59;return 0}case 21505:{if(!stream.tty)return-59;if(stream.tty.ops.ioctl_tcgets){var termios=stream.tty.ops.ioctl_tcgets(stream);var argp=syscallGetVarargP();SAFE_HEAP_STORE((argp>>2)*4,termios.c_iflag||0,4);SAFE_HEAP_STORE((argp+4>>2)*4,termios.c_oflag||0,4);SAFE_HEAP_STORE((argp+8>>2)*4,termios.c_cflag||0,4);SAFE_HEAP_STORE((argp+12>>2)*4,termios.c_lflag||0,4);for(var i=0;i<32;i++){SAFE_HEAP_STORE(argp+i+17,termios.c_cc[i]||0,1)}return 0}return 0}case 21510:case 21511:case 21512:{if(!stream.tty)return-59;return 0}case 21506:case 21507:case 21508:{if(!stream.tty)return-59;if(stream.tty.ops.ioctl_tcsets){var argp=syscallGetVarargP();var c_iflag=SAFE_HEAP_LOAD((argp>>2)*4,4,0);var c_oflag=SAFE_HEAP_LOAD((argp+4>>2)*4,4,0);var c_cflag=SAFE_HEAP_LOAD((argp+8>>2)*4,4,0);var c_lflag=SAFE_HEAP_LOAD((argp+12>>2)*4,4,0);var c_cc=[];for(var i=0;i<32;i++){c_cc.push(SAFE_HEAP_LOAD(argp+i+17,1,0))}return stream.tty.ops.ioctl_tcsets(stream.tty,op,{c_iflag,c_oflag,c_cflag,c_lflag,c_cc})}return 0}case 21519:{if(!stream.tty)return-59;var argp=syscallGetVarargP();SAFE_HEAP_STORE((argp>>2)*4,0,4);return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=syscallGetVarargP();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;if(stream.tty.ops.ioctl_tiocgwinsz){var winsize=stream.tty.ops.ioctl_tiocgwinsz(stream.tty);var argp=syscallGetVarargP();SAFE_HEAP_STORE((argp>>1)*2,winsize[0],2);SAFE_HEAP_STORE((argp+2>>1)*2,winsize[1],2)}return 0}case 21524:{if(!stream.tty)return-59;return 0}case 21515:{if(!stream.tty)return-59;return 0}default:return-28}}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}function ___syscall_openat(dirfd,path,flags,varargs){SYSCALLS.varargs=varargs;try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);var mode=varargs?syscallGetVarargI():0;return FS.open(path,flags,mode).fd}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}var __abort_js=()=>abort(\"native code called abort()\");var getHeapMax=()=>134217728;var growMemory=size=>{var b=wasmMemory.buffer;var pages=(size-b.byteLength+65535)/65536|0;try{wasmMemory.grow(pages);updateMemoryViews();return 1}catch(e){err(`growMemory: Attempted to grow heap from ${b.byteLength} bytes to ${size} bytes, but got error: ${e}`)}};var _emscripten_resize_heap=requestedSize=>{var oldSize=HEAPU8.length;requestedSize>>>=0;assert(requestedSize>oldSize);var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){err(`Cannot enlarge memory, requested ${requestedSize} bytes, but the limit is ${maxHeapSize} bytes!`);return false}for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignMemory(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=growMemory(newSize);if(replacement){return true}}err(`Failed to grow the heap from ${oldSize} bytes to ${newSize} bytes, not enough memory!`);return false};var ENV={};var getExecutableName=()=>thisProgram||\"./this.program\";var getEnvStrings=()=>{if(!getEnvStrings.strings){var lang=(typeof navigator==\"object\"&&navigator.languages&&navigator.languages[0]||\"C\").replace(\"-\",\"_\")+\".UTF-8\";var env={USER:\"web_user\",LOGNAME:\"web_user\",PATH:\"/\",PWD:\"/\",HOME:\"/home/web_user\",LANG:lang,_:getExecutableName()};for(var x in ENV){if(ENV[x]===undefined)delete env[x];else env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(`${x}=${env[x]}`)}getEnvStrings.strings=strings}return getEnvStrings.strings};var stringToAscii=(str,buffer)=>{for(var i=0;i<str.length;++i){assert(str.charCodeAt(i)===(str.charCodeAt(i)&255));SAFE_HEAP_STORE(buffer++,str.charCodeAt(i),1)}SAFE_HEAP_STORE(buffer,0,1)};var _environ_get=(__environ,environ_buf)=>{var bufSize=0;getEnvStrings().forEach((string,i)=>{var ptr=environ_buf+bufSize;SAFE_HEAP_STORE((__environ+i*4>>2)*4,ptr,4);stringToAscii(string,ptr);bufSize+=string.length+1});return 0};var _environ_sizes_get=(penviron_count,penviron_buf_size)=>{var strings=getEnvStrings();SAFE_HEAP_STORE((penviron_count>>2)*4,strings.length,4);var bufSize=0;strings.forEach(string=>bufSize+=string.length+1);SAFE_HEAP_STORE((penviron_buf_size>>2)*4,bufSize,4);return 0};function _fd_close(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return e.errno}}var doReadv=(stream,iov,iovcnt,offset)=>{var ret=0;for(var i=0;i<iovcnt;i++){var ptr=SAFE_HEAP_LOAD((iov>>2)*4,4,1);var len=SAFE_HEAP_LOAD((iov+4>>2)*4,4,1);iov+=8;var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr<len)break;if(typeof offset!=\"undefined\"){offset+=curr}}return ret};function _fd_read(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=doReadv(stream,iov,iovcnt);SAFE_HEAP_STORE((pnum>>2)*4,num,4);return 0}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return e.errno}}var INT53_MAX=9007199254740992;var INT53_MIN=-9007199254740992;var bigintToI53Checked=num=>num<INT53_MIN||num>INT53_MAX?NaN:Number(num);function _fd_seek(fd,offset,whence,newOffset){offset=bigintToI53Checked(offset);try{if(isNaN(offset))return 61;var stream=SYSCALLS.getStreamFromFD(fd);FS.llseek(stream,offset,whence);HEAP64[newOffset>>3]=BigInt(stream.position);if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return e.errno}}var doWritev=(stream,iov,iovcnt,offset)=>{var ret=0;for(var i=0;i<iovcnt;i++){var ptr=SAFE_HEAP_LOAD((iov>>2)*4,4,1);var len=SAFE_HEAP_LOAD((iov+4>>2)*4,4,1);iov+=8;var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr<len){break}if(typeof offset!=\"undefined\"){offset+=curr}}return ret};function _fd_write(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=doWritev(stream,iov,iovcnt);SAFE_HEAP_STORE((pnum>>2)*4,num,4);return 0}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return e.errno}}var getCFunc=ident=>{var func=Module[\"_\"+ident];assert(func,\"Cannot call unknown function \"+ident+\", make sure it is exported\");return func};var writeArrayToMemory=(array,buffer)=>{assert(array.length>=0,\"writeArrayToMemory array must have a length (should be an array or typed array)\");HEAP8.set(array,buffer)};var stringToUTF8=(str,outPtr,maxBytesToWrite)=>{assert(typeof maxBytesToWrite==\"number\",\"stringToUTF8(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!\");return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)};var stackAlloc=sz=>__emscripten_stack_alloc(sz);var stringToUTF8OnStack=str=>{var size=lengthBytesUTF8(str)+1;var ret=stackAlloc(size);stringToUTF8(str,ret,size);return ret};var ccall=(ident,returnType,argTypes,args,opts)=>{var toC={string:str=>{var ret=0;if(str!==null&&str!==undefined&&str!==0){ret=stringToUTF8OnStack(str)}return ret},array:arr=>{var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType===\"string\"){return UTF8ToString(ret)}if(returnType===\"boolean\")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;assert(returnType!==\"array\",'Return type should not be \"array\".');if(args){for(var i=0;i<args.length;i++){var converter=toC[argTypes[i]];if(converter){if(stack===0)stack=stackSave();cArgs[i]=converter(args[i])}else{cArgs[i]=args[i]}}}var ret=func(...cArgs);function onDone(ret){if(stack!==0)stackRestore(stack);return convertReturnValue(ret)}ret=onDone(ret);return ret};var cwrap=(ident,returnType,argTypes,opts)=>(...args)=>ccall(ident,returnType,argTypes,args,opts);FS.createPreloadedFile=FS_createPreloadedFile;FS.staticInit();function checkIncomingModuleAPI(){ignoredModuleProp(\"fetchSettings\")}var wasmImports={__syscall_fcntl64:___syscall_fcntl64,__syscall_ioctl:___syscall_ioctl,__syscall_openat:___syscall_openat,_abort_js:__abort_js,alignfault,emscripten_resize_heap:_emscripten_resize_heap,environ_get:_environ_get,environ_sizes_get:_environ_sizes_get,fd_close:_fd_close,fd_read:_fd_read,fd_seek:_fd_seek,fd_write:_fd_write,segfault};var wasmExports=await createWasm();var ___wasm_call_ctors=createExportWrapper(\"__wasm_call_ctors\",0);var _swe_calc=Module[\"_swe_calc\"]=createExportWrapper(\"swe_calc\",5);var _free=Module[\"_free\"]=createExportWrapper(\"free\",1);var _swe_set_ephe_path=Module[\"_swe_set_ephe_path\"]=createExportWrapper(\"swe_set_ephe_path\",1);var _swe_set_sid_mode=Module[\"_swe_set_sid_mode\"]=createExportWrapper(\"swe_set_sid_mode\",3);var _swe_calc_ut=Module[\"_swe_calc_ut\"]=createExportWrapper(\"swe_calc_ut\",5);var _swe_close=Module[\"_swe_close\"]=createExportWrapper(\"swe_close\",0);var _swe_set_jpl_file=Module[\"_swe_set_jpl_file\"]=createExportWrapper(\"swe_set_jpl_file\",1);var _swe_fixstar=Module[\"_swe_fixstar\"]=createExportWrapper(\"swe_fixstar\",5);var _swe_get_planet_name=Module[\"_swe_get_planet_name\"]=createExportWrapper(\"swe_get_planet_name\",2);var _malloc=Module[\"_malloc\"]=createExportWrapper(\"malloc\",1);var _swe_set_topo=Module[\"_swe_set_topo\"]=createExportWrapper(\"swe_set_topo\",3);var _swe_julday=Module[\"_swe_julday\"]=createExportWrapper(\"swe_julday\",5);var _swe_houses=Module[\"_swe_houses\"]=createExportWrapper(\"swe_houses\",6);var _swe_house_pos=Module[\"_swe_house_pos\"]=createExportWrapper(\"swe_house_pos\",6);var _swe_azalt=Module[\"_swe_azalt\"]=createExportWrapper(\"swe_azalt\",7);var _fflush=createExportWrapper(\"fflush\",1);var _strerror=createExportWrapper(\"strerror\",1);var _sbrk=createExportWrapper(\"sbrk\",1);var _emscripten_get_sbrk_ptr=createExportWrapper(\"emscripten_get_sbrk_ptr\",0);var _emscripten_stack_init=wasmExports[\"emscripten_stack_init\"];var _emscripten_stack_get_free=wasmExports[\"emscripten_stack_get_free\"];var _emscripten_stack_get_base=wasmExports[\"emscripten_stack_get_base\"];var _emscripten_stack_get_end=wasmExports[\"emscripten_stack_get_end\"];var __emscripten_stack_restore=wasmExports[\"_emscripten_stack_restore\"];var __emscripten_stack_alloc=wasmExports[\"_emscripten_stack_alloc\"];var _emscripten_stack_get_current=wasmExports[\"emscripten_stack_get_current\"];Module[\"ccall\"]=ccall;Module[\"cwrap\"]=cwrap;Module[\"setValue\"]=setValue;Module[\"getValue\"]=getValue;Module[\"UTF8ToString\"]=UTF8ToString;Module[\"stringToUTF8\"]=stringToUTF8;Module[\"lengthBytesUTF8\"]=lengthBytesUTF8;var missingLibrarySymbols=[\"writeI53ToI64\",\"writeI53ToI64Clamped\",\"writeI53ToI64Signaling\",\"writeI53ToU64Clamped\",\"writeI53ToU64Signaling\",\"readI53FromI64\",\"readI53FromU64\",\"convertI32PairToI53\",\"convertI32PairToI53Checked\",\"convertU32PairToI53\",\"getTempRet0\",\"setTempRet0\",\"exitJS\",\"inetPton4\",\"inetNtop4\",\"inetPton6\",\"inetNtop6\",\"readSockaddr\",\"writeSockaddr\",\"emscriptenLog\",\"readEmAsmArgs\",\"jstoi_q\",\"listenOnce\",\"autoResumeAudioContext\",\"getDynCaller\",\"dynCall\",\"handleException\",\"keepRuntimeAlive\",\"runtimeKeepalivePush\",\"runtimeKeepalivePop\",\"callUserCallback\",\"maybeExit\",\"asmjsMangle\",\"HandleAllocator\",\"getNativeTypeSize\",\"addOnInit\",\"addOnPostCtor\",\"addOnPreMain\",\"addOnExit\",\"STACK_SIZE\",\"STACK_ALIGN\",\"POINTER_SIZE\",\"ASSERTIONS\",\"uleb128Encode\",\"sigToWasmTypes\",\"generateFuncType\",\"convertJsFunctionToWasm\",\"getEmptyTableSlot\",\"updateTableMap\",\"getFunctionAddress\",\"addFunction\",\"removeFunction\",\"reallyNegative\",\"strLen\",\"reSign\",\"formatString\",\"intArrayToString\",\"AsciiToString\",\"UTF16ToString\",\"stringToUTF16\",\"lengthBytesUTF16\",\"UTF32ToString\",\"stringToUTF32\",\"lengthBytesUTF32\",\"stringToNewUTF8\",\"registerKeyEventCallback\",\"maybeCStringToJsString\",\"findEventTarget\",\"getBoundingClientRect\",\"fillMouseEventData\",\"registerMouseEventCallback\",\"registerWheelEventCallback\",\"registerUiEventCallback\",\"registerFocusEventCallback\",\"fillDeviceOrientationEventData\",\"registerDeviceOrientationEventCallback\",\"fillDeviceMotionEventData\",\"registerDeviceMotionEventCallback\",\"screenOrientation\",\"fillOrientationChangeEventData\",\"registerOrientationChangeEventCallback\",\"fillFullscreenChangeEventData\",\"registerFullscreenChangeEventCallback\",\"JSEvents_requestFullscreen\",\"JSEvents_resizeCanvasForFullscreen\",\"registerRestoreOldStyle\",\"hideEverythingExceptGivenElement\",\"restoreHiddenElements\",\"setLetterbox\",\"softFullscreenResizeWebGLRenderTarget\",\"doRequestFullscreen\",\"fillPointerlockChangeEventData\",\"registerPointerlockChangeEventCallback\",\"registerPointerlockErrorEventCallback\",\"requestPointerLock\",\"fillVisibilityChangeEventData\",\"registerVisibilityChangeEventCallback\",\"registerTouchEventCallback\",\"fillGamepadEventData\",\"registerGamepadEventCallback\",\"registerBeforeUnloadEventCallback\",\"fillBatteryEventData\",\"battery\",\"registerBatteryEventCallback\",\"setCanvasElementSize\",\"getCanvasElementSize\",\"jsStackTrace\",\"getCallstack\",\"convertPCtoSourceLocation\",\"checkWasiClock\",\"wasiRightsToMuslOFlags\",\"wasiOFlagsToMuslOFlags\",\"safeSetTimeout\",\"setImmediateWrapped\",\"safeRequestAnimationFrame\",\"clearImmediateWrapped\",\"registerPostMainLoop\",\"registerPreMainLoop\",\"getPromise\",\"makePromise\",\"idsToPromises\",\"makePromiseCallback\",\"ExceptionInfo\",\"findMatchingCatch\",\"Browser_asyncPrepareDataCounter\",\"isLeapYear\",\"ydayFromDate\",\"arraySum\",\"addDays\",\"getSocketFromFD\",\"getSocketAddress\",\"FS_unlink\",\"FS_mkdirTree\",\"_setNetworkCallback\",\"heapObjectForWebGLType\",\"toTypedArrayIndex\",\"webgl_enable_ANGLE_instanced_arrays\",\"webgl_enable_OES_vertex_array_object\",\"webgl_enable_WEBGL_draw_buffers\",\"webgl_enable_WEBGL_multi_draw\",\"webgl_enable_EXT_polygon_offset_clamp\",\"webgl_enable_EXT_clip_control\",\"webgl_enable_WEBGL_polygon_mode\",\"emscriptenWebGLGet\",\"computeUnpackAlignedImageSize\",\"colorChannelsInGlTextureFormat\",\"emscriptenWebGLGetTexPixelData\",\"emscriptenWebGLGetUniform\",\"webglGetUniformLocation\",\"webglPrepareUniformLocationsBeforeFirstUse\",\"webglGetLeftBracePos\",\"emscriptenWebGLGetVertexAttrib\",\"__glGetActiveAttribOrUniform\",\"writeGLArray\",\"registerWebGlEventCallback\",\"runAndAbortIfError\",\"ALLOC_NORMAL\",\"ALLOC_STACK\",\"allocate\",\"writeStringToMemory\",\"writeAsciiToMemory\",\"setErrNo\",\"demangle\",\"stackTrace\"];missingLibrarySymbols.forEach(missingLibrarySymbol);var unexportedSymbols=[\"run\",\"addRunDependency\",\"removeRunDependency\",\"out\",\"err\",\"callMain\",\"abort\",\"wasmMemory\",\"wasmExports\",\"writeStackCookie\",\"checkStackCookie\",\"INT53_MAX\",\"INT53_MIN\",\"bigintToI53Checked\",\"stackSave\",\"stackRestore\",\"stackAlloc\",\"ptrToString\",\"zeroMemory\",\"getHeapMax\",\"growMemory\",\"ENV\",\"ERRNO_CODES\",\"strError\",\"DNS\",\"Protocols\",\"Sockets\",\"timers\",\"warnOnce\",\"readEmAsmArgsArray\",\"jstoi_s\",\"getExecutableName\",\"asyncLoad\",\"alignMemory\",\"mmapAlloc\",\"wasmTable\",\"noExitRuntime\",\"addOnPreRun\",\"addOnPostRun\",\"getCFunc\",\"freeTableIndexes\",\"functionsInTableMap\",\"unSign\",\"PATH\",\"PATH_FS\",\"UTF8Decoder\",\"UTF8ArrayToString\",\"stringToUTF8Array\",\"intArrayFromString\",\"stringToAscii\",\"UTF16Decoder\",\"stringToUTF8OnStack\",\"writeArrayToMemory\",\"JSEvents\",\"specialHTMLTargets\",\"findCanvasEventTarget\",\"currentFullscreenStrategy\",\"restoreOldWindowedStyle\",\"UNWIND_CACHE\",\"ExitStatus\",\"getEnvStrings\",\"doReadv\",\"doWritev\",\"initRandomFill\",\"randomFill\",\"emSetImmediate\",\"emClearImmediate_deps\",\"emClearImmediate\",\"promiseMap\",\"uncaughtExceptionCount\",\"exceptionLast\",\"exceptionCaught\",\"Browser\",\"getPreloadedImageData__data\",\"wget\",\"MONTH_DAYS_REGULAR\",\"MONTH_DAYS_LEAP\",\"MONTH_DAYS_REGULAR_CUMULATIVE\",\"MONTH_DAYS_LEAP_CUMULATIVE\",\"SYSCALLS\",\"preloadPlugins\",\"FS_createPreloadedFile\",\"FS_modeStringToFlags\",\"FS_getMode\",\"FS_stdin_getChar_buffer\",\"FS_stdin_getChar\",\"FS_createPath\",\"FS_createDevice\",\"FS_readFile\",\"FS\",\"FS_createDataFile\",\"FS_createLazyFile\",\"MEMFS\",\"TTY\",\"PIPEFS\",\"SOCKFS\",\"tempFixedLengthArray\",\"miniTempWebGLFloatBuffers\",\"miniTempWebGLIntBuffers\",\"GL\",\"AL\",\"GLUT\",\"EGL\",\"GLEW\",\"IDBStore\",\"SDL\",\"SDL_gfx\",\"allocateUTF8\",\"allocateUTF8OnStack\",\"print\",\"printErr\"];unexportedSymbols.forEach(unexportedRuntimeSymbol);var calledRun;function stackCheckInit(){_emscripten_stack_init();writeStackCookie()}function run(){if(runDependencies>0){dependenciesFulfilled=run;return}stackCheckInit();preRun();if(runDependencies>0){dependenciesFulfilled=run;return}function doRun(){assert(!calledRun);calledRun=true;Module[\"calledRun\"]=true;if(ABORT)return;initRuntime();readyPromiseResolve(Module);Module[\"onRuntimeInitialized\"]?.();consumedModuleProp(\"onRuntimeInitialized\");assert(!Module[\"_main\"],'compiled without a main, but one is present. if you added it from JS, use Module[\"onRuntimeInitialized\"]');postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout(()=>{setTimeout(()=>Module[\"setStatus\"](\"\"),1);doRun()},1)}else{doRun()}checkStackCookie()}if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].pop()()}}consumedModuleProp(\"preInit\");run();moduleRtn=readyPromise;for(const prop of Object.keys(Module)){if(!(prop in moduleArg)){Object.defineProperty(moduleArg,prop,{configurable:true,get(){abort(`Access to module property ('${prop}') is no longer possible via the module constructor argument; Instead, use the result of the module constructor.`)}})}}\n\n\n  return moduleRtn;\n}\n);\n})();\n(() => {\n  // Create a small, never-async wrapper around SwissEphemerisModule which\n  // checks for callers incorrectly using it with `new`.\n  var real_SwissEphemerisModule = SwissEphemerisModule;\n  SwissEphemerisModule = function(arg) {\n    if (new.target) throw new Error(\"SwissEphemerisModule() should not be called with `new SwissEphemerisModule()`\");\n    return real_SwissEphemerisModule(arg);\n  }\n})();\nif (typeof exports === 'object' && typeof module === 'object') {\n  module.exports = SwissEphemerisModule;\n  // This default export looks redundant, but it allows TS to import this\n  // commonjs style module.\n  module.exports.default = SwissEphemerisModule;\n} else if (typeof define === 'function' && define['amd'])\n  define([], () => SwissEphemerisModule);\n","/**\n * TypeScript wrapper for Swiss Ephemeris WebAssembly module\n */\n\nimport type {\n  SweCalcUt,\n  SweClose,\n  SweHousePos,\n  SweHouses,\n  SweJulDay,\n  SweSetEphePath,\n  SwissEphModule,\n  SwissEphModuleFactory\n} from './types';\n\n// Exported planet constants\nexport enum Planet {\n  SUN = 0,\n  MOON = 1,\n  MERCURY = 2,\n  VENUS = 3,\n  MARS = 4,\n  JUPITER = 5,\n  SATURN = 6,\n  URANUS = 7,\n  NEPTUNE = 8,\n  PLUTO = 9,\n  MEAN_NODE = 10,\n  TRUE_NODE = 11,\n  CHIRON = 15\n}\n\n// House systems\nexport enum HouseSystem {\n  PLACIDUS = 'P',\n  KOCH = 'K',\n  PORPHYRIUS = 'O',\n  REGIOMONTANUS = 'R',\n  CAMPANUS = 'C',\n  EQUAL = 'E',\n  WHOLE_SIGN = 'W',\n  MERIDIAN = 'X',\n  MORINUS = 'M',\n  KRUSINSKI = 'U',\n  ALCABITIUS = 'B'\n}\n\n// Calculation flag constants\nexport enum CalcFlag {\n  SWISS_EPH = 2,\n  MOSHIER = 4,\n  HELIOCENTRIC = 8,\n  TRUE_POS = 16,\n  SPEED = 32\n}\n\n// Planet position result\nexport interface PlanetPosition {\n  longitude: number;\n  latitude: number;\n  distance: number;\n  longitudeSpeed?: number;\n  latitudeSpeed?: number;\n  distanceSpeed?: number;\n}\n\n// Houses calculation result\nexport interface Houses {\n  ascendant: number;\n  mc: number;\n  houses: number[];\n}\n\n// Swiss Ephemeris class\nexport class SwissEph {\n  private module: SwissEphModule | null = null;\n  private swe_julday: SweJulDay | null = null;\n  private swe_calc_ut: SweCalcUt | null = null;\n  private swe_houses: SweHouses | null = null;\n  private swe_house_pos: SweHousePos | null = null;\n  private swe_set_ephe_path: SweSetEphePath | null = null;\n  private swe_close: SweClose | null = null;\n  private ephePath: string;\n  private initialized = false;\n  \n  /**\n   * Constructor that takes an optional path to ephemeris files\n   */\n  constructor(ephePath = '') {\n    this.ephePath = ephePath;\n  }\n  \n  private checkInitialized(): void {\n    if (!this.initialized || !this.module) {\n      throw new Error('Swiss Ephemeris module not initialized. Call init() first.');\n    }\n  }\n  \n  /**\n   * Initialize the Swiss Ephemeris module\n   */\n  async init(): Promise<void> {\n    if (this.initialized) {\n      return;\n    }\n    \n    try {\n      // Dynamic import to ensure compatibility with both Node.js and browsers\n      let moduleFactory: SwissEphModuleFactory;\n      if (typeof window !== 'undefined') {\n        const mod = await import(/* webpackIgnore: true */ '../build/swisseph.js');\n        moduleFactory = mod.default;\n      } else {\n        // eslint-disable-next-line @typescript-eslint/no-var-requires\n        moduleFactory = require('../build/swisseph.js');\n      }\n      \n      const module = await moduleFactory();\n      \n      if (!module) {\n        throw new Error('Failed to initialize Swiss Ephemeris module');\n      }\n      \n      this.module = module;\n      \n      // Create wrapped functions with specific types\n      this.swe_julday = module.cwrap<SweJulDay>('swe_julday', 'number', ['number', 'number', 'number', 'number', 'number']);\n      this.swe_calc_ut = module.cwrap<SweCalcUt>('swe_calc_ut', 'number', ['number', 'number', 'number', 'number']);\n      this.swe_houses = module.cwrap<SweHouses>('swe_houses', 'number', ['number', 'number', 'number', 'string', 'number', 'number']);\n      this.swe_house_pos = module.cwrap<SweHousePos>('swe_house_pos', 'number', ['number', 'number', 'number', 'string', 'number', 'number']);\n      this.swe_set_ephe_path = module.cwrap<SweSetEphePath>('swe_set_ephe_path', null, ['number']);\n      this.swe_close = module.cwrap<SweClose>('swe_close', null, []);\n      \n      // Set ephemeris path if provided\n      if (this.ephePath) {\n        const pathPtr = module._malloc(this.ephePath.length + 1);\n        if (!pathPtr) {\n          throw new Error('Failed to allocate memory for ephemeris path');\n        }\n        module.stringToUTF8(this.ephePath, pathPtr, this.ephePath.length + 1);\n        if (this.swe_set_ephe_path) {\n          this.swe_set_ephe_path(pathPtr);\n        }\n        module._free(pathPtr);\n      }\n      \n      this.initialized = true;\n    } catch (error) {\n      console.error('Failed to initialize Swiss Ephemeris module:', error);\n      throw error;\n    }\n  }\n  \n  /**\n   * Calculate Julian day number for a given date and time\n   */\n  getJulianDay(date: Date): number {\n    this.checkInitialized();\n    if (!this.swe_julday) {\n      throw new Error('Julian day calculation function not available');\n    }\n    \n    // Get UTC components\n    const year = date.getUTCFullYear();\n    const month = date.getUTCMonth() + 1; // JavaScript months are 0-based\n    const day = date.getUTCDate();\n    const hour = date.getUTCHours() + date.getUTCMinutes() / 60 + date.getUTCSeconds() / 3600;\n    \n    // Use Gregorian calendar (flag = 1)\n    return this.swe_julday(year, month, day, hour, 1);\n  }\n  \n  /**\n   * Calculate planet position at a given Julian day\n   */\n  calculatePlanetPosition(julday: number, planet: Planet, flags = CalcFlag.SWISS_EPH): PlanetPosition {\n    this.checkInitialized();\n    if (!this.swe_calc_ut || !this.module) {\n      throw new Error('Planet calculation function not available');\n    }\n    \n    const resultPtr = this.module._malloc(6 * 8);\n    if (!resultPtr) {\n      throw new Error('Failed to allocate memory for planet position');\n    }\n    \n    try {\n      const ret = this.swe_calc_ut(julday, planet, flags, resultPtr);\n      \n      if (ret < 0) {\n        throw new Error(`Swiss Ephemeris calculation failed with error code ${ret}`);\n      }\n      \n      const position: PlanetPosition = {\n        longitude: this.module.getValue(resultPtr, 'double'),\n        latitude: this.module.getValue(resultPtr + 8, 'double'),\n        distance: this.module.getValue(resultPtr + 16, 'double')\n      };\n      \n      if (flags & CalcFlag.SPEED) {\n        position.longitudeSpeed = this.module.getValue(resultPtr + 24, 'double');\n        position.latitudeSpeed = this.module.getValue(resultPtr + 32, 'double');\n        position.distanceSpeed = this.module.getValue(resultPtr + 40, 'double');\n      }\n      \n      return position;\n    } finally {\n      this.module._free(resultPtr);\n    }\n  }\n  \n  /**\n   * Calculate houses for a given date, location, and house system\n   */\n  calculateHouses(julday: number, latitude: number, longitude: number, hsys: HouseSystem = HouseSystem.PLACIDUS): Houses {\n    this.checkInitialized();\n    if (!this.swe_houses || !this.module) {\n      throw new Error('Houses calculation function not available');\n    }\n    \n    // Validate input parameters\n    if (latitude < -90 || latitude > 90) {\n      throw new Error('Latitude must be between -90 and 90 degrees');\n    }\n    if (longitude < -180 || longitude > 180) {\n      throw new Error('Longitude must be between -180 and 180 degrees');\n    }\n    \n    // Create a single contiguous memory block for both houses and ascmc\n    const totalBytes = (12 + 10) * 8; // 12 houses + 10 ascmc values, each 8 bytes (double)\n    const memoryPtr = this.module._malloc(totalBytes);\n    \n    if (!memoryPtr) {\n      throw new Error('Memory allocation failed');\n    }\n    \n    // Calculate offsets\n    const housesPtr = memoryPtr;\n    const ascmcPtr = memoryPtr + (12 * 8);\n    \n    try {\n      // Calculate houses\n      const ret = this.swe_houses(julday, latitude, longitude, hsys.toString(), housesPtr, ascmcPtr);\n      \n      if (ret < 0) {\n        throw new Error(`Houses calculation failed with error code ${ret}`);\n      }\n      \n      // Extract all data before any memory operations\n      const houses: number[] = [];\n      for (let i = 0; i < 12; i++) {\n        const value = this.module.getValue(housesPtr + i * 8, 'double');\n        houses.push(value);\n      }\n      \n      const ascendant = this.module.getValue(ascmcPtr, 'double');\n      const mc = this.module.getValue(ascmcPtr + 8, 'double');\n      \n      return { ascendant, mc, houses };\n    } finally {\n      // Always free memory\n      this.module._free(memoryPtr);\n    }\n  }\n  \n  /**\n   * Clean up and close the Swiss Ephemeris\n   */\n  close(): void {\n    if (this.initialized && this.swe_close) {\n      this.swe_close();\n      this.initialized = false;\n      this.module = null;\n    }\n  }\n} ","/**\n * Integration with the Swiss Ephemeris WebAssembly module\n */\n\n// Note: In the production code, you'll need to include the compiled WASM files\n// and update the import path. This is a placeholder that would work once the\n// compilation is complete.\n\n// Import from the actual WASM wrapper\nimport { CalcFlag, Houses, HouseSystem, Planet, PlanetPosition, SwissEph } from '../../wasm/src/swisseph';\n\n// We'll use this singleton pattern to manage the Swiss Ephemeris instance\nlet swissEph: SwissEph | null = null;\n\n/**\n * Get the Swiss Ephemeris instance, initializing it if needed\n */\nexport async function getSwissEph(ephePath?: string): Promise<void> {\n  try {\n    if (swissEph) {\n      return;\n    }\n\n    swissEph = new SwissEph(ephePath || '');\n    await swissEph.init();\n  } catch (error) {\n    console.error('Error initializing Swiss Ephemeris:', error);\n    throw error;\n  }\n}\n\n/**\n * Calculate planetary positions for a given date\n */\nexport async function calculatePlanetaryPositions(date: Date): Promise<Record<string, PlanetPosition>> {\n  try {\n    checkInitialization();\n\n    const julday = swissEph!.getJulianDay(date);\n    const planets = {\n      sun: Planet.SUN,\n      moon: Planet.MOON,\n      mercury: Planet.MERCURY,\n      venus: Planet.VENUS,\n      mars: Planet.MARS,\n      jupiter: Planet.JUPITER,\n      saturn: Planet.SATURN\n    };\n\n    const positions: Record<string, PlanetPosition> = {};\n    for (const [name, id] of Object.entries(planets)) {\n      try {\n        positions[name] = swissEph!.calculatePlanetPosition(julday, id);\n      } catch (error) {\n        throw new Error(`Failed to calculate position for ${name}: ${error}`);\n      }\n    }\n\n    return positions;\n  } catch (error) {\n    console.error('Error calculating planetary positions:', error);\n    throw error;\n  }\n}\n\n/**\n * Calculate houses for a given date and location\n */\nexport async function calculateHouses(\n  date: Date,\n  latitude: number,\n  longitude: number,\n  houseSystem: HouseSystem\n): Promise<Houses> {\n  try {\n    checkInitialization();\n\n    const julday = swissEph!.getJulianDay(date);\n    return swissEph!.calculateHouses(julday, latitude, longitude, houseSystem);\n  } catch (error) {\n    console.error('Error calculating houses:', error);\n    throw error;\n  }\n}\n\n/**\n * Clean up Swiss Ephemeris resources\n */\nexport function closeSwissEph(): void {\n  if (swissEph) {\n    try {\n      swissEph.close();\n      swissEph = null;\n    } catch (error) {\n      console.error('Error closing Swiss Ephemeris:', error);\n      throw error;\n    }\n  }\n}\n\nfunction checkInitialization(): void {\n  if (!swissEph) {\n    throw new Error('Swiss Ephemeris not initialized. Call getSwissEph() first.');\n  }\n}\n\n// Re-export types and enums for convenience\nexport { CalcFlag, HouseSystem, Planet };\n\n","/**\n * Astrological calculations using Swiss Ephemeris\n */\n\nimport {\n  CalcFlag,\n  calculateHouses,\n  calculatePlanetaryPositions,\n  closeSwissEph,\n  getSwissEph,\n  HouseSystem,\n  Planet\n} from './swisseph';\n\nexport { CalcFlag, closeSwissEph, getSwissEph, HouseSystem, Planet };\n\nexport interface BirthChartOptions {\n  date: Date;\n  latitude: number;\n  longitude: number;\n  timezone: number;\n  houseSystem?: HouseSystem;\n}\n\nexport interface BirthChart {\n  dateUtc: Date;\n  planets: Record<string, { longitude: number; latitude: number; distance: number }>;\n  houses: {\n    houses: number[];\n    ascendant: number;\n    mc: number;\n  };\n}\n\nfunction validateInputs(options: BirthChartOptions): void {\n  if (!(options.date instanceof Date) || isNaN(options.date.getTime())) {\n    throw new Error('Invalid date provided');\n  }\n\n  if (typeof options.latitude !== 'number' || options.latitude < -90 || options.latitude > 90) {\n    throw new Error('Invalid latitude: must be between -90 and 90 degrees');\n  }\n\n  if (typeof options.longitude !== 'number' || options.longitude < -180 || options.longitude > 180) {\n    throw new Error('Invalid longitude: must be between -180 and 180 degrees');\n  }\n\n  if (typeof options.timezone !== 'number' || options.timezone < -12 || options.timezone > 14) {\n    throw new Error('Invalid timezone: must be between -12 and +14');\n  }\n}\n\n/**\n * Calculate a birth chart using Swiss Ephemeris\n * \n * @param options Chart calculation options\n * @returns Birth chart data\n */\nexport async function getBirthChart(options: BirthChartOptions): Promise<BirthChart> {\n  try {\n    // Validate inputs\n    validateInputs(options);\n\n    // Convert local time to UTC\n    const localDate = new Date(options.date);\n    const utcDate = new Date(localDate.getTime() - (options.timezone * 60 * 60 * 1000));\n\n    // Calculate planetary positions\n    const planets = await calculatePlanetaryPositions(utcDate);\n    if (!planets) {\n      throw new Error('Failed to calculate planetary positions');\n    }\n\n    // Calculate houses\n    const houses = await calculateHouses(\n      utcDate,\n      options.latitude,\n      options.longitude,\n      options.houseSystem || HouseSystem.PLACIDUS\n    );\n    if (!houses) {\n      throw new Error('Failed to calculate houses');\n    }\n\n    return {\n      dateUtc: utcDate,\n      planets,\n      houses\n    };\n  } catch (error) {\n    console.error('Error calculating birth chart:', error);\n    throw error;\n  }\n}\n\n/**\n * Convert decimal degrees to degrees and minutes format\n * \n * @param decimalDegrees Decimal degrees (e.g., 9.8)\n * @returns Formatted string (e.g., \"9°48'\")\n */\nexport function formatDegreeMinutes(decimalDegrees: number): string {\n  const degrees = Math.floor(decimalDegrees);\n  const minutes = Math.round((decimalDegrees - degrees) * 60);\n  return `${degrees}°${minutes.toString().padStart(2, '0')}'`;\n}\n\n/**\n * Convert decimal degrees to zodiac position (sign and degrees)\n * \n * @param longitude Longitude in decimal degrees (0-360)\n * @returns Formatted zodiac position with both decimal and traditional format\n */\nexport function getZodiacPosition(longitude: number): { \n  sign: string;\n  decimalDegrees: number;\n  traditionalFormat: string;\n  decimal: string;\n} {\n  const signs = [\n    'Aries', 'Taurus', 'Gemini', 'Cancer',\n    'Leo', 'Virgo', 'Libra', 'Scorpio',\n    'Sagittarius', 'Capricorn', 'Aquarius', 'Pisces'\n  ];\n  \n  const signIndex = Math.floor(longitude / 30) % 12;\n  const degrees = longitude % 30;\n  \n  return {\n    sign: signs[signIndex],\n    decimalDegrees: degrees,\n    traditionalFormat: formatDegreeMinutes(degrees),\n    decimal: degrees.toFixed(2) + '°'\n  };\n} ","/**\n * Core utilities and shared code for the Kaabalah library\n */\n\nexport const VERSION = '0.1.0';\n\n// Example utility function\nexport function isValidDate(date: Date): boolean {\n  return !isNaN(date.getTime());\n} ","/**\n * Kaabalah-related functions\n */\n\nconst hebrewLetterMapping = new Map([\n  [\n    \"A\",\n    {\n      letter: \"A\",\n      hebrewName: \"Aleph\",\n      hebrewCharacter: \"א\",\n      numericValue: 1,\n      majorArcana: 1\n    }\n  ],\n  [\n    \"B\",\n    {\n      letter: \"B\",\n      hebrewName: \"Beth\",\n      hebrewCharacter: \"ב\",\n      numericValue: 2,\n      majorArcana: 2\n    }\n  ],\n  [\n    \"G\",\n    {\n      letter: \"G\",\n      hebrewName: \"Gimel\",\n      hebrewCharacter: \"ג\",\n      numericValue: 3,\n      majorArcana: 3\n    }\n  ],\n  [\n    \"D\",\n    {\n      letter: \"D\",\n      hebrewName: \"Daleth\",\n      hebrewCharacter: \"ד\",\n      numericValue: 4,\n      majorArcana: 4\n    }\n  ],\n  [\n    \"E\",\n    {\n      letter: \"E\",\n      hebrewName: \"He\",\n      hebrewCharacter: \"ה\",\n      numericValue: 5,\n      majorArcana: 5\n    }\n  ],\n  [\n    \"V\",\n    {\n      letter: \"V\",\n      hebrewName: \"Vav\",\n      hebrewCharacter: \"ו\",\n      numericValue: 6,\n      majorArcana: 6\n    }\n  ],\n  [\n    \"U\",\n    {\n      letter: \"U\",\n      hebrewName: \"Vav\",\n      hebrewCharacter: \"ו\",\n      numericValue: 6,\n      majorArcana: 6\n    }\n  ],\n  [\n    \"W\",\n    {\n      letter: \"W\",\n      hebrewName: \"Vav\",\n      hebrewCharacter: \"ו\",\n      numericValue: 6,\n      majorArcana: 6\n    }\n  ],\n  [\n    \"Z\",\n    {\n      letter: \"Z\",\n      hebrewName: \"Zayin\",\n      hebrewCharacter: \"ז\",\n      numericValue: 7,\n      majorArcana: 7\n    }\n  ],\n  [\n    \"H\",\n    {\n      letter: \"H\",\n      hebrewName: \"Cheth\",\n      hebrewCharacter: \"ח\",\n      numericValue: 8,\n      majorArcana: 8\n    }\n  ],\n  [\n    \"T\",\n    {\n      letter: \"T\",\n      hebrewName: \"Teth\",\n      hebrewCharacter: \"ט\",\n      numericValue: 9,\n      majorArcana: 9\n    }\n  ],\n  [\n    \"TH\",\n    {\n      letter: \"Th\",\n      hebrewName: \"Tav\",\n      hebrewCharacter: \"ת\",\n      numericValue: 400,\n      majorArcana: 22\n    }\n  ],\n  [\n    \"TZ\",\n    {\n      letter: \"Tz\",\n      hebrewName: \"Tzaddi\",\n      hebrewCharacter: \"צ\",\n      numericValue: 90,\n      numericValueWhenEnding: 900,\n      majorArcana: 18\n    }\n  ],\n  [\n    \"I\",\n    {\n      letter: \"I\",\n      hebrewName: \"Yod\",\n      hebrewCharacter: \"י\",\n      numericValue: 10,\n      majorArcana: 10\n    }\n  ],\n  [\n    \"J\",\n    {\n      letter: \"J\",\n      hebrewName: \"Yod\",\n      hebrewCharacter: \"י\",\n      numericValue: 10,\n      majorArcana: 10\n    }\n  ],\n  [\n    \"Y\",\n    {\n      letter: \"Y\",\n      hebrewName: \"Yod\",\n      hebrewCharacter: \"י\",\n      numericValue: 10,\n      majorArcana: 10\n    }\n  ],\n  [\n    \"C\",\n    {\n      letter: \"C\",\n      hebrewName: \"Kaph\",\n      hebrewCharacter: \"כ\",\n      numericValue: 20,\n      numericValueWhenEnding: 500,\n      majorArcana: 11\n    }\n  ],\n  [\n    \"L\",\n    {\n      letter: \"L\",\n      hebrewName: \"Lamed\",\n      hebrewCharacter: \"ל\",\n      numericValue: 30,\n      majorArcana: 12\n    }\n  ],\n  [\n    \"M\",\n    {\n      letter: \"M\",\n      hebrewName: \"Mem\",\n      hebrewCharacter: \"מ\",\n      numericValue: 40,\n      numericValueWhenEnding: 600,\n      majorArcana: 13\n    }\n  ],\n  [\n    \"N\",\n    {\n      letter: \"N\",\n      hebrewName: \"Nun\",\n      hebrewCharacter: \"נ\",\n      numericValue: 50,\n      numericValueWhenEnding: 700,\n      majorArcana: 14\n    }\n  ],\n  [\n    \"S\",\n    {\n      letter: \"S\",\n      hebrewName: \"Samekh\",\n      hebrewCharacter: \"ס\",\n      numericValue: 60,\n      majorArcana: 15\n    }\n  ],\n  [\n    \"SH\",\n    {\n      letter: \"Sh\",\n      hebrewName: \"Shin\",\n      hebrewCharacter: \"ש\",\n      numericValue: 300,\n      majorArcana: 21\n    }\n  ],\n  [\n    \"\\u00C7\",\n    {\n      letter: \"\\u00C7\",\n      hebrewName: \"Samekh\",\n      hebrewCharacter: \"ס\",\n      numericValue: 60,\n      majorArcana: 15\n    }\n  ],\n  [\n    \"O\",\n    {\n      letter: \"O\",\n      hebrewName: \"Ayin\",\n      hebrewCharacter: \"ע\",\n      numericValue: 6,\n      numericValueWhenStarting: 70,\n      majorArcana: 16\n    }\n  ],\n  [\n    \"P\",\n    {\n      letter: \"P\",\n      hebrewName: \"Pe\",\n      hebrewCharacter: \"פ\",\n      numericValue: 80,\n      numericValueWhenEnding: 800,\n      majorArcana: 17\n    }\n  ],\n  [\n    \"PH\",\n    {\n      letter: \"Ph\",\n      hebrewName: \"Pe\",\n      hebrewCharacter: \"פ\",\n      numericValue: 80,\n      majorArcana: 17\n    }\n  ],\n  [\n    \"K\",\n    {\n      letter: \"K\",\n      hebrewName: \"Qoph\",\n      hebrewCharacter: \"ק\",\n      numericValue: 100,\n      majorArcana: 19\n    }\n  ],\n  [\n    \"KH\",\n    {\n      letter: \"Kh\",\n      hebrewName: \"Qoph\",\n      hebrewCharacter: \"ק\",\n      numericValue: 100,\n      majorArcana: 19\n    }\n  ],\n  [\n    \"Q\",\n    {\n      letter: \"Q\",\n      hebrewName: \"Qoph\",\n      hebrewCharacter: \"ק\",\n      numericValue: 100,\n      majorArcana: 19\n    }\n  ],\n  [\n    \"R\",\n    {\n      letter: \"R\",\n      hebrewName: \"Resh\",\n      hebrewCharacter: \"ר\",\n      numericValue: 200,\n      majorArcana: 20\n    }\n  ],\n  [\n    \"X\",\n    {\n      letter: \"X\",\n      hebrewName: \"Shin\",\n      hebrewCharacter: \"ש\",\n      numericValue: 300,\n      majorArcana: 21\n    }\n  ]\n])\n\nconst reduceToSingleDigitWithSteps = (num: number) => {\n  const steps = [num]\n  let currentNum = num\n\n  while (currentNum > 9) {\n    currentNum = String(currentNum)\n      .split(\"\")\n      .reduce((acc, digit) => acc + parseInt(digit), 0)\n    steps.push(currentNum)\n  }\n\n  return {\n    steps,\n    finalValue: currentNum\n  }\n}\n\nconst isVowel = (letter: string) => {\n  return [\"A\", \"E\", \"I\", \"O\", \"U\", \"Y\"].includes(letter)\n}\n\nexport const calculateGematria = (word: string) => {\n  const letters = word.toUpperCase().split(\"\")\n  let vowelsSum = 0\n  let consonantsSum = 0\n\n  for (let i = 0; i < letters.length; i++) {\n    const letter = letters[i]\n    const nextLetter = letters[i + 1] || \"\"\n    const isStarting = i === 0\n    const isEnding = i > 0 && i === letters.length - 1\n\n    if ([\"P\", \"T\", \"K\", \"S\"].includes(letter) && nextLetter) {\n      const combinedLetter = (letter + nextLetter).toUpperCase()\n\n      if (hebrewLetterMapping.has(combinedLetter)) {\n        const value = hebrewLetterMapping.get(combinedLetter)!.numericValue\n        consonantsSum += value\n        i++\n        continue\n      }\n    }\n\n    const mapping = hebrewLetterMapping.get(letter)\n\n    if (mapping) {\n      let value = mapping.numericValue\n      if (isStarting && mapping.numericValueWhenStarting !== undefined) {\n        value = mapping.numericValueWhenStarting\n      } else if (isEnding && mapping.numericValueWhenEnding !== undefined) {\n        value = mapping.numericValueWhenEnding\n      }\n      if (isVowel(letter)) {\n        vowelsSum += value\n      } else {\n        consonantsSum += value\n      }\n    }\n  }\n\n  const vowelsReduction = reduceToSingleDigitWithSteps(vowelsSum)\n  const consonantsReduction = reduceToSingleDigitWithSteps(consonantsSum)\n  const synthesisReduction = reduceToSingleDigitWithSteps(\n    vowelsReduction.finalValue + consonantsReduction.finalValue\n  )\n\n  return {\n    vowels: {\n      originalSum: vowelsSum,\n      reductionSteps: vowelsReduction.steps,\n      finalValue: vowelsReduction.finalValue\n    },\n    consonants: {\n      originalSum: consonantsSum,\n      reductionSteps: consonantsReduction.steps,\n      finalValue: consonantsReduction.finalValue\n    },\n    synthesis: {\n      originalSum: vowelsReduction.finalValue + consonantsReduction.finalValue,\n      reductionSteps: synthesisReduction.steps,\n      finalValue: synthesisReduction.finalValue\n    }\n  }\n}","/**\n * Numerology calculations\n */\n\n/**\n * Calculate the life path number based on a birth date\n * @param birthDate - Birth date as a Date object\n * @returns Life path number (1-9, 11, 22, or 33)\n */\nexport function calculateLifePath(birthDate: Date): number {\n  const dateString = birthDate.toISOString().split('T')[0]; // YYYY-MM-DD\n  const dateWithoutDashes = dateString.replace(/-/g, '');\n  \n  // Initial sum of all digits\n  let sum = dateWithoutDashes.split('').reduce((total, digit) => {\n    return total + parseInt(digit, 10);\n  }, 0);\n  \n  // Reduce to a single digit or master number\n  while (sum > 9 && sum !== 11 && sum !== 22 && sum !== 33) {\n    sum = sum.toString().split('').reduce((total, digit) => {\n      return total + parseInt(digit, 10);\n    }, 0);\n  }\n  \n  return sum;\n}\n\n\nexport const CYCLE_MEANINGS = [\n  {\n    \"title\": \"Learning\",\n    \"shortDescription\": \"A period for assertive action and learning through direct experience.\",\n    \"personalDescription\": \"This period emphasizes assertive action and learning through direct experience. Utilize personal influence to seek favors, loans, or recognition from influential individuals such as government officials or community leaders. Ideal for enhancing personal reputation and prestige, keeping in mind that all actions carry consequences.\",\n    \"businessDescription\": \"Ideal for promotional activities aimed at building goodwill, public recognition, and securing endorsements from prominent individuals. Prioritize the company's image and reputation over immediate profits.\",\n    \"astrologySign\": \"Aries (Actions Have Consequences)\"\n  },\n  {\n    \"title\": \"Hard Work\",\n    \"shortDescription\": \"A time for diligent effort and adaptability to temporary changes.\",\n    \"personalDescription\": \"A period where diligent effort and adaptability are crucial. Suitable for temporary changes such as moving homes, short trips, or career shifts. Avoid long-term commitments or significant investments unless carefully formalized.\",\n    \"businessDescription\": \"Ideal for short-term experiments, temporary staffing adjustments, and forming beneficial business connections. Steer clear of verbal agreements or long-term commitments unless formally documented. Flexibility leads to progress.\",\n    \"astrologySign\": \"Taurus (Stop Being Stubborn)\"\n  },\n  {\n    \"title\": \"Friendship\",\n    \"shortDescription\": \"A dynamic phase for ambitious projects and strengthening relationships.\",\n    \"personalDescription\": \"A dynamic and energetic phase ideal for initiating ambitious projects requiring persistence and physical strength. Effective communication strengthens relationships, but impulsiveness should be avoided to prevent conflicts.\",\n    \"businessDescription\": \"Ideal for expansion, energetic ventures, and assertive promotional activities. Excellent for debt collection but avoid legal conflicts. Maintain vigilance against accidents and disputes while leveraging strong communication.\",\n    \"astrologySign\": \"Gemini (Communication is Power)\"\n  },\n  {\n    \"title\": \"Opportunities\",\n    \"shortDescription\": \"An intellectually fertile time for creativity and quick decision-making.\",\n    \"personalDescription\": \"An intellectually fertile phase ideal for creative projects, innovation, and quick decision-making. Beware of deception, especially concerning documents or agreements. Foster mental growth and create valuable connections, but remain cautious.\",\n    \"businessDescription\": \"Perfect for launching impactful marketing campaigns and securing new agreements. Excellent for promotional activities and intellectual creativity, but carefully scrutinize documents to avoid fraud.\",\n    \"astrologySign\": \"Cancer (Nurture Mental Growth)\"\n  },\n  {\n    \"title\": \"Tears/Decision\",\n    \"shortDescription\": \"The most prosperous phase for financial resolution and spiritual advancement.\",\n    \"personalDescription\": \"The most prosperous phase of the year, suitable for resolving financial issues, starting long journeys, and advancing spiritually. Interact with influential figures, manage debts, and engage in expansive social activities. Keep ego and selfishness balanced for optimal outcomes.\",\n    \"businessDescription\": \"A prime time for investments, financial growth, global promotion, debt collection, and favorable legal outcomes. Emphasize fairness and generosity to enhance business success.\",\n    \"astrologySign\": \"Leo (Balance Ego and Generosity)\"\n  },\n  {\n    \"title\": \"Triple Blessing\",\n    \"shortDescription\": \"Perfect for pleasures, social activities, and creative pursuits.\",\n    \"personalDescription\": \"Ideal for enjoying pleasures, social activities, artistic endeavors, and short travels. Favorable for romantic interactions, relaxation, and creative pursuits. Organize personal life to balance enjoyment and refinement effectively.\",\n    \"businessDescription\": \"Excellent time for promoting luxury products, arts, entertainment, and speculative investments. Ideal for forming friendly business alliances and strategic partnerships.\",\n    \"astrologySign\": \"Virgo (Organize Your Pleasures)\"\n  },\n  {\n    \"title\": \"Rest\",\n    \"shortDescription\": \"A period of rest, introspection, and preparation for renewal.\",\n    \"personalDescription\": \"A critical period of rest, introspection, and cautious preparation for renewal. Avoid initiating new ventures and instead focus on completing pending matters, managing legal affairs carefully, and protecting existing resources. Balance and patience are essential.\",\n    \"businessDescription\": \"Period to conserve resources, avoid major expansions, and carefully manage internal restructuring. Postpone significant new ventures until the next cycle. Act diplomatically and cautiously to ensure stability.\",\n    \"astrologySign\": \"Libra (Seek Balance and Reconstruction)\"\n  }\n];\n\nexport interface Cycle {\n  number: number;\n  description: {\n    title: string;\n    shortDescription: string;\n    personalDescription: string;\n    businessDescription: string;\n    astrologySign: string;\n  };\n  isActive?: boolean;\n  cycleStart?: Date;\n}\n\nexport interface CycleInfo {\n  yearlyCycles: Cycle[];\n  ageCycles: Cycle[];\n  monthlyCycles: Cycle[];\n  currentYearlyCycle: number | null;\n  currentAgeCycle: number | null;\n  currentMonthlyCycle: number | null;\n  daysInMonthlyCycle: number;\n  totalDays: number;\n}\n\n// Add days to a date\nconst addDays = (date: Date, days: number) => {\n  const result = new Date(date);\n  result.setDate(result.getDate() + days);\n  return result;\n};\n\n// Find the most recent anniversary of the start date\nconst getMostRecentStartDate = (startDate: Date, today: Date) => {\n  const startMonth = startDate.getMonth();\n  const startDay = startDate.getDate();\n  let recentStart = new Date(today.getFullYear(), startMonth, startDay);\n  if (recentStart > today) {\n    recentStart = new Date(today.getFullYear() - 1, startMonth, startDay);\n  }\n  return recentStart;\n};\n\n// Calculate cycles (annual and monthly)\nexport const calculateCycles = (startDate: Date, today: Date): CycleInfo => {\n  const mostRecentStart = getMostRecentStartDate(startDate, today);\n  const cycleLength = 52; // Fixed cycle length for monthly cycles\n\n  // Skip annual cycle calculation if start date is in the future\n  const isFutureDate = startDate > today;\n  let currentYearlyCycle = null;\n  let currentAgeCycle = null;\n  const ageCycles: Cycle[] = [];\n  const yearlyCycles: Cycle[] = [];\n  if (!isFutureDate) {\n    const birthYear = startDate.getFullYear();\n    const currentYear = today.getFullYear();\n    const ageInYears = currentYear - birthYear;\n    currentAgeCycle = (Math.floor(ageInYears / 7) % 7) + 1;\n    for (let i = 0; i < 7; i++) {\n      // cycle start for year is which year it started\n      const cycleStart = new Date(birthYear + (i * 7), startDate.getMonth(), startDate.getDate());\n\n      const cycle = i + 1;\n      const isCurrentCycle = cycle === currentAgeCycle;\n\n      if (isCurrentCycle) {\n        // Calculate yearly cycles within the current age cycle\n        // The yearly cycle is based on the person's exact age in years\n        // For example, if someone is 6 years old, they're in the 1st age cycle (0-7 years) and the 6th yearly cycle\n        const yearsSinceBirth = ageInYears;\n        const yearWithinAgeCycle = yearsSinceBirth % 7; // 0-6 representing which year within the current age cycle\n        currentYearlyCycle = yearWithinAgeCycle + 1; // Convert to 1-7 range\n        \n        for (let j = 0; j < 7; j++) {\n          // Calculate the start date for each yearly cycle within the current age cycle\n          const ageCycleStartYear = birthYear + (Math.floor(ageInYears / 7) * 7); // Start year of current age cycle\n          const yearlyCycleStart = new Date(ageCycleStartYear + j, startDate.getMonth(), startDate.getDate());\n          const yearlyCycle = j + 1;\n          \n          const isCurrentYearlyCycle = yearlyCycle === currentYearlyCycle;\n          \n          yearlyCycles.push({\n            number: yearlyCycle,\n            description: CYCLE_MEANINGS[j],\n            isActive: isCurrentYearlyCycle,\n            cycleStart: yearlyCycleStart\n          });\n        }\n      }\n\n      ageCycles.push({\n        number: cycle,\n        description: CYCLE_MEANINGS[i],\n        isActive: isCurrentCycle,\n        cycleStart,\n      });\n    }\n  }\n\n  // Monthly cycles (relative to start date)\n  const monthlyCycles: Cycle[] = [];\n  for (let i = 0; i < 7; i++) {\n    const cycleStart = addDays(mostRecentStart, i * cycleLength);\n  \n    monthlyCycles.push({\n      number: i + 1,\n      description: CYCLE_MEANINGS[i],\n      isActive: false,\n      cycleStart: cycleStart\n    });\n  }\n\n  // Find current monthly cycle\n  let currentMonthlyCycle = null;\n  let daysInMonthlyCycle = 0;\n  for (let i = 0; i < 7; i++) {\n    const cycleStart = addDays(mostRecentStart, i * cycleLength);\n    const nextCycleStart = i < 6 ? addDays(mostRecentStart, (i + 1) * cycleLength) : addDays(mostRecentStart, 366);\n    if (today >= cycleStart && today < nextCycleStart) {\n      currentMonthlyCycle = i + 1;\n      daysInMonthlyCycle = Math.floor((today.getTime() - cycleStart.getTime()) / (1000 * 60 * 60 * 24)) + 1;\n      monthlyCycles[i].isActive = true;\n      break;\n    }\n  }\n\n  const totalDays = Math.floor((today.getTime() - mostRecentStart.getTime()) / (1000 * 60 * 60 * 24)) + 1;\n\n  return {\n    yearlyCycles,\n    ageCycles,\n    monthlyCycles,\n    currentYearlyCycle,\n    currentAgeCycle,\n    currentMonthlyCycle,\n    daysInMonthlyCycle,\n    totalDays\n  };\n};","/**\n * Tarot interpretation functions\n */\n\nexport type Deck = \"papus_pt\" | \"papus\" | \"mythic\" | \"egyptian\" | \"rider-waite\"\n\nexport type MajorArcana =\n  | \"01_the_magician\"\n  | \"02_the_high_priestess\"\n  | \"03_the_empress\"\n  | \"04_the_emperor\"\n  | \"05_the_hierophant\"\n  | \"06_the_lover\"\n  | \"07_the_chariot\"\n  | \"08_justice\"\n  | \"09_the_hermit\"\n  | \"10_the_wheel_of_fortune\"\n  | \"11_strength\"\n  | \"12_the_hanged_man\"\n  | \"13_death\"\n  | \"14_temperance\"\n  | \"15_the_devil\"\n  | \"16_the_house_of_god\"\n  | \"17_the_star\"\n  | \"18_the_moon\"\n  | \"19_the_sun\"\n  | \"20_judgement\"\n  | \"21_the_fool\"\n  | \"22_the_world\"\n\nexport type TarotCard = {\n  number: number\n  tarotCard: string\n  tarotCardFilename: string\n  egyptianCardName?: string\n  meaning: string\n  type: \"major\" | \"minor\" | \"daat+royalship\"\n  deck: string\n  suit?: string\n  isInverted?: boolean\n}\n\nexport const majorArcana: MajorArcana[] = [\n  \"01_the_magician\",\n  \"02_the_high_priestess\",\n  \"03_the_empress\",\n  \"04_the_emperor\",\n  \"05_the_hierophant\",\n  \"06_the_lover\",\n  \"07_the_chariot\",\n  \"08_justice\",\n  \"09_the_hermit\",\n  \"10_the_wheel_of_fortune\",\n  \"11_strength\",\n  \"12_the_hanged_man\",\n  \"13_death\",\n  \"14_temperance\",\n  \"15_the_devil\",\n  \"16_the_house_of_god\",\n  \"17_the_star\",\n  \"18_the_moon\",\n  \"19_the_sun\",\n  \"20_judgement\",\n  \"21_the_fool\",\n  \"22_the_world\"\n]\n\nexport const ARKANNUS: TarotCard[] = [\n  // Major Arcana (1-22)\n  {\n    number: 1,\n    tarotCard: \"The Magician\",\n    tarotCardFilename: \"01_the_magician\",\n    meaning: \"Abracadabra, the power to create reality through voice\",\n    type: \"major\",\n    deck: \"mythic\"\n  },\n  {\n    number: 2,\n    tarotCard: \"The High Priestess\",\n    tarotCardFilename: \"02_the_high_priestess\",\n    meaning:\n      \"Intuition, the power to rewrite your book of life improving your life every instant\",\n    type: \"major\",\n    deck: \"mythic\"\n  },\n  {\n    number: 3,\n    tarotCard: \"The Empress\",\n    tarotCardFilename: \"03_the_empress\",\n    meaning: \"Adaptation, the power to geometrize through emotions\",\n    type: \"major\",\n    deck: \"mythic\"\n  },\n  {\n    number: 4,\n    tarotCard: \"The Emperor\",\n    tarotCardFilename: \"04_the_emperor\",\n    meaning: \"Authority, the power to mark your territory with the sacred fire\",\n    type: \"major\",\n    deck: \"mythic\"\n  },\n  {\n    number: 5,\n    tarotCard: \"The Hierophant\",\n    tarotCardFilename: \"05_the_hierophant\",\n    meaning:\n      \"Magnetism, the power to ritualize life and circulate the quintessence\",\n    type: \"major\",\n    deck: \"mythic\"\n  },\n  {\n    number: 6,\n    tarotCard: \"The Lover\",\n    tarotCardFilename: \"06_the_lover\",\n    meaning:\n      \"Dichotomy, stay on the middle path by being neither a victim nor a villain\",\n    type: \"major\",\n    deck: \"mythic\"\n  },\n  {\n    number: 7,\n    tarotCard: \"The Chariot\",\n    tarotCardFilename: \"07_the_chariot\",\n    meaning: \"Merkaabah, take control and build your merkaabah (mind vehicle)\",\n    type: \"major\",\n    deck: \"mythic\"\n  },\n  {\n    number: 8,\n    tarotCard: \"Justice\",\n    tarotCardFilename: \"08_justice\",\n    meaning: \"Justice, be just with yourself to be just with others\",\n    type: \"major\",\n    deck: \"mythic\"\n  },\n  {\n    number: 9,\n    tarotCard: \"The Hermit\",\n    tarotCardFilename: \"09_the_hermit\",\n    meaning: \"Introspection, seek within, retreat\",\n    type: \"major\",\n    deck: \"mythic\"\n  },\n  {\n    number: 10,\n    tarotCard: \"The Wheel of Fortune\",\n    tarotCardFilename: \"10_the_wheel_of_fortune\",\n    meaning:\n      \"Loops, extroversion, break the great wheel and ascend, seek externally\",\n    type: \"major\",\n    deck: \"mythic\"\n  },\n  {\n    number: 11,\n    tarotCard: \"Strength\",\n    tarotCardFilename: \"11_strength\",\n    meaning: \"The strength of your subconscious, unity brings strength\",\n    type: \"major\",\n    deck: \"mythic\"\n  },\n  {\n    number: 12,\n    tarotCard: \"The Hanged Man\",\n    tarotCardFilename: \"12_the_hanged_man\",\n    meaning: \"Make valid sacrifices, adopt a new perspective\",\n    type: \"major\",\n    deck: \"mythic\"\n  },\n  {\n    number: 13,\n    tarotCard: \"Death\",\n    tarotCardFilename: \"13_death\",\n    meaning: \"Death, renovation, kill that which kills your soul\",\n    type: \"major\",\n    deck: \"mythic\"\n  },\n  {\n    number: 14,\n    tarotCard: \"Temperance\",\n    tarotCardFilename: \"14_temperance\",\n    meaning: \"Balance, harmonize differences\",\n    type: \"major\",\n    deck: \"mythic\"\n  },\n  {\n    number: 15,\n    tarotCard: \"The Devil\",\n    tarotCardFilename: \"15_the_devil\",\n    meaning:\n      \"Indecision between vice and virtue, transmute weakness and passions into strengths\",\n    type: \"major\",\n    deck: \"mythic\"\n  },\n  {\n    number: 16,\n    tarotCard: \"The Tower\",\n    tarotCardFilename: \"16_the_house_of_god\",\n    meaning:\n      \"Separation, destruction, separate from what's harmful and connect with what's helpful, make room for the new\",\n    type: \"major\",\n    deck: \"mythic\"\n  },\n  {\n    number: 17,\n    tarotCard: \"The Star\",\n    tarotCardFilename: \"17_the_star\",\n    meaning:\n      \"Fecundation, ecology, ecstasy, hope, renew yourself to maintain help, act according to your spiritual purpose\",\n    type: \"major\",\n    deck: \"mythic\"\n  },\n  {\n    number: 18,\n    tarotCard: \"The Moon\",\n    tarotCardFilename: \"18_the_moon\",\n    meaning:\n      \"Hidden enemies, be vigilant, recognize where you're self sabotaging\",\n    type: \"major\",\n    deck: \"mythic\"\n  },\n  {\n    number: 19,\n    tarotCard: \"The Sun\",\n    tarotCardFilename: \"19_the_sun\",\n    meaning:\n      \"Be conscious of your alchemical band, transmute money into knowledge and vice versa\",\n    type: \"major\",\n    deck: \"mythic\"\n  },\n  {\n    number: 20,\n    tarotCard: \"Judgment\",\n    tarotCardFilename: \"20_judgement\",\n    meaning: \"Make retrospectives and learn from mistakes and successes\",\n    type: \"major\",\n    deck: \"mythic\"\n  },\n  {\n    number: 21,\n    tarotCard: \"The Fool\",\n    tarotCardFilename: \"21_the_fool\",\n    meaning: \"Stop walking in circles, create connections of knowledge\",\n    type: \"major\",\n    deck: \"mythic\"\n  },\n  {\n    number: 22,\n    tarotCard: \"The World\",\n    tarotCardFilename: \"22_the_world\",\n    meaning: \"Win the world, start acting on the world of causes\",\n    type: \"major\",\n    deck: \"mythic\"\n  },\n\n  // Da'at Royalship - Wands (23-26)\n  {\n    number: 23,\n    tarotCard: \"King of Wands\",\n    tarotCardFilename: \"king_wands\",\n    egyptianCardName: \"The Laborer\",\n    meaning: \"Get's the best out of every one, Idealism, Magnanimity\",\n    type: \"daat+royalship\",\n    deck: \"egyptian\",\n    suit: \"wands\"\n  },\n  {\n    number: 24,\n    tarotCard: \"Queen of Wands\",\n    tarotCardFilename: \"queen_wands\",\n    egyptianCardName: \"The Weaver\",\n    meaning:\n      \"Hold the line while the king goes to work, Preserve what was conquered\",\n    type: \"daat+royalship\",\n    deck: \"egyptian\",\n    suit: \"wands\"\n  },\n  {\n    number: 25,\n    tarotCard: \"Knight of Wands\",\n    tarotCardFilename: \"knight_wands\",\n    egyptianCardName: \"The Argonaut\",\n    meaning: \"Dreams that become reality\",\n    type: \"daat+royalship\",\n    deck: \"egyptian\",\n    suit: \"wands\"\n  },\n  {\n    number: 26,\n    tarotCard: \"Page of Wands\",\n    tarotCardFilename: \"page_wands\",\n    egyptianCardName: \"The Prodigy\",\n    meaning: \"Don't rush, the precipitations are the doors to failure\",\n    type: \"daat+royalship\",\n    deck: \"egyptian\",\n    suit: \"wands\"\n  },\n\n  // Minor Arcana - Wands (27-36)\n  {\n    number: 27,\n    tarotCard: \"Ace of Wands\",\n    tarotCardFilename: \"ace_wands\",\n    egyptianCardName: \"The Unexpected\",\n    meaning: \"Ignite the flames of ideals, Trust in your inner divinity\",\n    type: \"minor\",\n    deck: \"egyptian\",\n    suit: \"wands\"\n  },\n  {\n    number: 28,\n    tarotCard: \"Two of Wands\",\n    tarotCardFilename: \"2_wands\",\n    egyptianCardName: \"Uncertainty\",\n    meaning: \"Formulate a strategy to use your own talents\",\n    type: \"minor\",\n    deck: \"egyptian\",\n    suit: \"wands\"\n  },\n  {\n    number: 29,\n    tarotCard: \"Three of Wands\",\n    tarotCardFilename: \"3_wands\",\n    egyptianCardName: \"Domesticity\",\n    meaning: \"Keep going despite losing something apparently important\",\n    type: \"minor\",\n    deck: \"egyptian\",\n    suit: \"wands\"\n  },\n  {\n    number: 30,\n    tarotCard: \"Four of Wands\",\n    tarotCardFilename: \"4_wands\",\n    egyptianCardName: \"Exchange\",\n    meaning: \"Work in teams\",\n    type: \"minor\",\n    deck: \"egyptian\",\n    suit: \"wands\"\n  },\n  {\n    number: 31,\n    tarotCard: \"Five of Wands\",\n    tarotCardFilename: \"5_wands\",\n    egyptianCardName: \"Impediment\",\n    meaning: \"Strengthen the root chakra, overcome internal fears\",\n    type: \"minor\",\n    deck: \"egyptian\",\n    suit: \"wands\"\n  },\n  {\n    number: 32,\n    tarotCard: \"Six of Wands\",\n    tarotCardFilename: \"6_wands\",\n    egyptianCardName: \"Magnificence\",\n    meaning: \"External victory, internal lack of internal self realization\",\n    type: \"minor\",\n    deck: \"egyptian\",\n    suit: \"wands\"\n  },\n  {\n    number: 33,\n    tarotCard: \"Seven of Wands\",\n    tarotCardFilename: \"7_wands\",\n    egyptianCardName: \"Alliance\",\n    meaning: \"Face competitors in an ethical and loyal way\",\n    type: \"minor\",\n    deck: \"egyptian\",\n    suit: \"wands\"\n  },\n  {\n    number: 34,\n    tarotCard: \"Eight of Wands\",\n    tarotCardFilename: \"8_wands\",\n    egyptianCardName: \"Innovation\",\n    meaning: \"Travel to the center of peace and intelligence\",\n    type: \"minor\",\n    deck: \"egyptian\",\n    suit: \"wands\"\n  },\n  {\n    number: 35,\n    tarotCard: \"Nine of Wands\",\n    tarotCardFilename: \"9_wands\",\n    egyptianCardName: \"Desolation\",\n    meaning: \"Obstacle that precedes total victory, gather hidden forces\",\n    type: \"minor\",\n    deck: \"egyptian\",\n    suit: \"wands\"\n  },\n  {\n    number: 36,\n    tarotCard: \"Ten of Wands\",\n    tarotCardFilename: \"10_wands\",\n    egyptianCardName: \"Initiation\",\n    meaning:\n      \"Get out of apathy, create a new tree of life using the Lightning Path\",\n    type: \"minor\",\n    deck: \"egyptian\",\n    suit: \"wands\"\n  },\n\n  // Da'at Royalship - Cups (37-40)\n  {\n    number: 37,\n    tarotCard: \"King of Cups\",\n    tarotCardFilename: \"king_cups\",\n    egyptianCardName: \"Art and Science\",\n    meaning:\n      \"Stop hurting yourself (related to The Lover), heals everyone and forgets about yourself, balm for your own wound\",\n    type: \"daat+royalship\",\n    deck: \"egyptian\",\n    suit: \"cups\"\n  },\n  {\n    number: 38,\n    tarotCard: \"Queen of Cups\",\n    tarotCardFilename: \"queen_cups\",\n    egyptianCardName: \"Duplicity\",\n    meaning: \"Work with subtlety, positive challenges\",\n    type: \"daat+royalship\",\n    deck: \"egyptian\",\n    suit: \"cups\"\n  },\n  {\n    number: 39,\n    tarotCard: \"Knight of Cups\",\n    tarotCardFilename: \"knight_cups\",\n    egyptianCardName: \"Testimony\",\n    meaning: \"Alternative healing\",\n    type: \"daat+royalship\",\n    deck: \"egyptian\",\n    suit: \"cups\"\n  },\n  {\n    number: 40,\n    tarotCard: \"Page of Cups\",\n    tarotCardFilename: \"page_cups\",\n    egyptianCardName: \"Premonition\",\n    meaning: \"Increase of self-esteem, emotional courage\",\n    type: \"daat+royalship\",\n    deck: \"egyptian\",\n    suit: \"cups\"\n  },\n\n  // Minor Arcana - Cups (41-50)\n  {\n    number: 41,\n    tarotCard: \"Ace of Cups\",\n    tarotCardFilename: \"ace_cups\",\n    egyptianCardName: \"Dissension\",\n    meaning: \"Renewal or new affection, alternative treatment for health\",\n    type: \"minor\",\n    deck: \"egyptian\",\n    suit: \"cups\"\n  },\n  {\n    number: 42,\n    tarotCard: \"Two of Cups\",\n    tarotCardFilename: \"2_cups\",\n    egyptianCardName: \"Preeminence\",\n    meaning: \"Do not poison yourself or the other person\",\n    type: \"minor\",\n    deck: \"egyptian\",\n    suit: \"cups\"\n  },\n  {\n    number: 43,\n    tarotCard: \"Three of Cups\",\n    tarotCardFilename: \"3_cups\",\n    egyptianCardName: \"Delusion\",\n    meaning: \"Harmony between instinct and emotion, Be discreet\",\n    type: \"minor\",\n    deck: \"egyptian\",\n    suit: \"cups\"\n  },\n  {\n    number: 44,\n    tarotCard: \"Four of Cups\",\n    tarotCardFilename: \"4_cups\",\n    egyptianCardName: \"Expressiveness\",\n    meaning: \"Abundance in emotional life, do not listen to slander\",\n    type: \"minor\",\n    deck: \"egyptian\",\n    suit: \"cups\"\n  },\n  {\n    number: 45,\n    tarotCard: \"Five of Cups\",\n    tarotCardFilename: \"5_cups\",\n    egyptianCardName: \"Regeneration\",\n    meaning: \"Do not break your spiritual commitment (your purpose)\",\n    type: \"minor\",\n    deck: \"egyptian\",\n    suit: \"cups\"\n  },\n  {\n    number: 46,\n    tarotCard: \"Six of Cups\",\n    tarotCardFilename: \"6_cups\",\n    egyptianCardName: \"Patrimony\",\n    meaning: \"Do not have self-pity\",\n    type: \"minor\",\n    deck: \"egyptian\",\n    suit: \"cups\"\n  },\n  {\n    number: 47,\n    tarotCard: \"Seven of Cups\",\n    tarotCardFilename: \"7_cups\",\n    egyptianCardName: \"Conjecture\",\n    meaning: \"Gestations, related to The Star\",\n    type: \"minor\",\n    deck: \"egyptian\",\n    suit: \"cups\"\n  },\n  {\n    number: 48,\n    tarotCard: \"Eight of Cups\",\n    tarotCardFilename: \"8_cups\",\n    egyptianCardName: \"Consummation\",\n    meaning: \"Reflect on your emotional life after 18 hours\",\n    type: \"minor\",\n    deck: \"egyptian\",\n    suit: \"cups\"\n  },\n  {\n    number: 49,\n    tarotCard: \"Nine of Cups\",\n    tarotCardFilename: \"9_cups\",\n    egyptianCardName: \"Versatility\",\n    meaning: \"Reconciliations and forgiveness\",\n    type: \"minor\",\n    deck: \"egyptian\",\n    suit: \"cups\"\n  },\n  {\n    number: 50,\n    tarotCard: \"Ten of Cups\",\n    tarotCardFilename: \"10_cups\",\n    egyptianCardName: \"Attraction\",\n    meaning: \"Marriage of the spirit with the soul, Alchemical Weddings\",\n    type: \"minor\",\n    deck: \"egyptian\",\n    suit: \"cups\"\n  },\n\n  // Da'at Royalship - Swords (51-54)\n  {\n    number: 51,\n    tarotCard: \"King of Swords\",\n    tarotCardFilename: \"king_swords\",\n    egyptianCardName: \"Advice\",\n    meaning: \"Actions of victorious strategies\",\n    type: \"daat+royalship\",\n    deck: \"egyptian\",\n    suit: \"swords\"\n  },\n  {\n    number: 52,\n    tarotCard: \"Queen of Swords\",\n    tarotCardFilename: \"queen_swords\",\n    egyptianCardName: \"Premeditation\",\n    meaning: \"Supremacy of the feminine, related to Justice\",\n    type: \"daat+royalship\",\n    deck: \"egyptian\",\n    suit: \"swords\"\n  },\n  {\n    number: 53,\n    tarotCard: \"Knight of Swords\",\n    tarotCardFilename: \"knight_swords\",\n    egyptianCardName: \"Hostility\",\n    meaning: \"Joint victorious actions\",\n    type: \"daat+royalship\",\n    deck: \"egyptian\",\n    suit: \"swords\"\n  },\n  {\n    number: 54,\n    tarotCard: \"Page of Swords\",\n    tarotCardFilename: \"page_swords\",\n    egyptianCardName: \"Examination\",\n    meaning: \"Follow your intuition\",\n    type: \"daat+royalship\",\n    deck: \"egyptian\",\n    suit: \"swords\"\n  },\n\n  // Minor Arcana - Swords (55-64)\n  {\n    number: 55,\n    tarotCard: \"Ace of Swords\",\n    tarotCardFilename: \"ace_swords\",\n    egyptianCardName: \"Contrition\",\n    meaning: \"Conflicts before victory\",\n    type: \"minor\",\n    deck: \"egyptian\",\n    suit: \"swords\"\n  },\n  {\n    number: 56,\n    tarotCard: \"Two of Swords\",\n    tarotCardFilename: \"2_swords\",\n    egyptianCardName: \"Pilgrimage\",\n    meaning: \"Traumas and conflicts to be overcome\",\n    type: \"minor\",\n    deck: \"egyptian\",\n    suit: \"swords\"\n  },\n  {\n    number: 57,\n    tarotCard: \"Three of Swords\",\n    tarotCardFilename: \"3_swords\",\n    egyptianCardName: \"Rivalry\",\n    meaning: \"Death of yang, Fire, tendencies to depression\",\n    type: \"minor\",\n    deck: \"egyptian\",\n    suit: \"swords\"\n  },\n  {\n    number: 58,\n    tarotCard: \"Four of Swords\",\n    tarotCardFilename: \"4_swords\",\n    egyptianCardName: \"Meditation\",\n    meaning: \"Reflection, related to The Hermit\",\n    type: \"minor\",\n    deck: \"egyptian\",\n    suit: \"swords\"\n  },\n  {\n    number: 59,\n    tarotCard: \"Five of Swords\",\n    tarotCardFilename: \"5_swords\",\n    egyptianCardName: \"Revelation\",\n    meaning: \"Healthy self-challenge, Self-demands\",\n    type: \"minor\",\n    deck: \"egyptian\",\n    suit: \"swords\"\n  },\n  {\n    number: 60,\n    tarotCard: \"Six of Swords\",\n    tarotCardFilename: \"6_swords\",\n    egyptianCardName: \"Evolution\",\n    meaning: \"External daily strategies, Future perspectives\",\n    type: \"minor\",\n    deck: \"egyptian\",\n    suit: \"swords\"\n  },\n  {\n    number: 61,\n    tarotCard: \"Seven of Swords\",\n    tarotCardFilename: \"7_swords\",\n    egyptianCardName: \"Solitude\",\n    meaning: \"Internal nocturnal strategies, related to The Hermit\",\n    type: \"minor\",\n    deck: \"egyptian\",\n    suit: \"swords\"\n  },\n  {\n    number: 62,\n    tarotCard: \"Eight of Swords\",\n    tarotCardFilename: \"8_swords\",\n    egyptianCardName: \"Proscription\",\n    meaning: \"Appeal to superior forces, Internal and external conflicts\",\n    type: \"minor\",\n    deck: \"egyptian\",\n    suit: \"swords\"\n  },\n  {\n    number: 63,\n    tarotCard: \"Nine of Swords\",\n    tarotCardFilename: \"9_swords\",\n    egyptianCardName: \"Communion\",\n    meaning: \"The problems being imagined will never happen\",\n    type: \"minor\",\n    deck: \"egyptian\",\n    suit: \"swords\"\n  },\n  {\n    number: 64,\n    tarotCard: \"Ten of Swords\",\n    tarotCardFilename: \"10_swords\",\n    egyptianCardName: \"Vehemence\",\n    meaning: \"Death and rebirth, related to Death and The Tower\",\n    type: \"minor\",\n    deck: \"egyptian\",\n    suit: \"swords\"\n  },\n\n  // Da'at Royalship - Pentacles (65-68)\n  {\n    number: 65,\n    tarotCard: \"King of Pentacles\",\n    tarotCardFilename: \"king_pentacles\",\n    egyptianCardName: \"Apprenticeship\",\n    meaning: \"Turns everything into gold\",\n    type: \"daat+royalship\",\n    deck: \"egyptian\",\n    suit: \"pentacles\"\n  },\n  {\n    number: 66,\n    tarotCard: \"Queen of Pentacles\",\n    tarotCardFilename: \"queen_pentacles\",\n    egyptianCardName: \"Perplexity\",\n    meaning: \"Act with diplomacy\",\n    type: \"daat+royalship\",\n    deck: \"egyptian\",\n    suit: \"pentacles\"\n  },\n  {\n    number: 67,\n    tarotCard: \"Knight of Pentacles\",\n    tarotCardFilename: \"knight_pentacles\",\n    egyptianCardName: \"Veneration\",\n    meaning: \"Invest into new things\",\n    type: \"daat+royalship\",\n    deck: \"egyptian\",\n    suit: \"pentacles\"\n  },\n  {\n    number: 68,\n    tarotCard: \"Page of Pentacles\",\n    tarotCardFilename: \"page_pentacles\",\n    egyptianCardName: \"Speculation\",\n    meaning: \"Prudence in the material life\",\n    type: \"daat+royalship\",\n    deck: \"egyptian\",\n    suit: \"pentacles\"\n  },\n\n  // Minor Arcana - Pentacles (69-78)\n  {\n    number: 69,\n    tarotCard: \"Ace of Pentacles\",\n    tarotCardFilename: \"ace_pentacles\",\n    egyptianCardName: \"The Unforeseen\",\n    meaning:\n      \"Rebirth through a single material goal, Form clear material goals\",\n    type: \"minor\",\n    deck: \"egyptian\",\n    suit: \"pentacles\"\n  },\n  {\n    number: 70,\n    tarotCard: \"Two of Pentacles\",\n    tarotCardFilename: \"2_pentacles\",\n    egyptianCardName: \"Cooperation\",\n    meaning:\n      \"Light forming shadows, Duality asking for synthesis in the trinity, Don't put all the eggs in the same basket\",\n    type: \"minor\",\n    deck: \"egyptian\",\n    suit: \"pentacles\"\n  },\n  {\n    number: 71,\n    tarotCard: \"Three of Pentacles\",\n    tarotCardFilename: \"3_pentacles\",\n    egyptianCardName: \"Avarice\",\n    meaning:\n      \"Light forming sound, Establish balance through the trinity becoming a great dispenser, Verbalize what should be done, Do not settle for the first results\",\n    type: \"minor\",\n    deck: \"egyptian\",\n    suit: \"pentacles\"\n  },\n  {\n    number: 72,\n    tarotCard: \"Four of Pentacles\",\n    tarotCardFilename: \"4_pentacles\",\n    egyptianCardName: \"Purification\",\n    meaning: \"Avoid avarice / greed\",\n    type: \"minor\",\n    deck: \"egyptian\",\n    suit: \"pentacles\"\n  },\n  {\n    number: 73,\n    tarotCard: \"Five of Pentacles\",\n    tarotCardFilename: \"5_pentacles\",\n    egyptianCardName: \"Love and Desire\",\n    meaning:\n      \"Only order will bring progress, Do not kick the barn without having something concrete in front of you\",\n    type: \"minor\",\n    deck: \"egyptian\",\n    suit: \"pentacles\"\n  },\n  {\n    number: 74,\n    tarotCard: \"Six of Pentacles\",\n    tarotCardFilename: \"6_pentacles\",\n    egyptianCardName: \"Offering\",\n    meaning: \"Act with prudence\",\n    type: \"minor\",\n    deck: \"egyptian\",\n    suit: \"pentacles\"\n  },\n  {\n    number: 75,\n    tarotCard: \"Seven of Pentacles\",\n    tarotCardFilename: \"7_pentacles\",\n    egyptianCardName: \"Generosity\",\n    meaning: \"Don't boast about your proposal or project\",\n    type: \"minor\",\n    deck: \"egyptian\",\n    suit: \"pentacles\"\n  },\n  {\n    number: 76,\n    tarotCard: \"Eight of Pentacles\",\n    tarotCardFilename: \"8_pentacles\",\n    egyptianCardName: \"The Provider\",\n    meaning: \"Keep doing what you always did\",\n    type: \"minor\",\n    deck: \"egyptian\",\n    suit: \"pentacles\"\n  },\n  {\n    number: 77,\n    tarotCard: \"Nine of Pentacles\",\n    tarotCardFilename: \"9_pentacles\",\n    egyptianCardName: \"Confusion\",\n    meaning: \"Work with what you like and earn something with it\",\n    type: \"minor\",\n    deck: \"egyptian\",\n    suit: \"pentacles\"\n  },\n  {\n    number: 78,\n    tarotCard: \"Ten of Pentacles\",\n    tarotCardFilename: \"10_pentacles\",\n    egyptianCardName: \"Rebirth\",\n    meaning: \"Prosperity, Prosperous inheritance\",\n    type: \"minor\",\n    deck: \"egyptian\",\n    suit: \"pentacles\"\n  }\n]\n\n\nconst sleep = (ms: number) => new Promise(resolve => setTimeout(resolve, ms))\n\nconst shuffleArray = <T,>(array: T[]): T[] => {\n  const newArray = [...array]\n  for (let i = newArray.length - 1; i > 0; i--) {\n    const j = Math.floor(Math.random() * (i + 1))\n    ;[newArray[i], newArray[j]] = [newArray[j], newArray[i]]\n  }\n  return newArray\n}\n\n/**\n * Shuffles a deck of tarot cards and optionally includes inverted cards\n * @param cards - Array of tarot cards to shuffle\n * @param includeInvertedCards - Whether to include inverted cards in the shuffle\n * @param shuffleCount - Number of times to shuffle the deck (default: 6)\n * @param shuffleDelay - Delay between shuffles in milliseconds (default: 300)\n * @returns Promise that resolves to the shuffled deck\n */\nexport async function shuffleTarotDeck(\n  cards: TarotCard[],\n  includeInvertedCards: boolean = false,\n  shuffleCount: number = 6,\n  shuffleDelay: number = 300\n): Promise<TarotCard[]> {\n  let shuffledCards = shuffleArray([...cards]);\n\n  if (includeInvertedCards) {\n    const halfIndex = Math.floor(shuffledCards.length / 2);\n    shuffledCards = [\n      ...shuffledCards\n        .slice(0, halfIndex)\n        .map(card => ({ ...card, isInverted: true })),\n      ...shuffledCards.slice(halfIndex)\n    ];\n  }\n\n  for (let i = 0; i < shuffleCount; i++) {\n    shuffledCards = shuffleArray(shuffledCards);\n    await sleep(shuffleDelay);\n  }\n\n  return shuffledCards;\n}\n"],"mappings":"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","names":["module","result","exports","byteArray","err","xhr","lazyArray","ret","Planet","HouseSystem","CalcFlag"]}