From d22d4ac2f3862f46fdabd874b69ccee54fa3f333 Mon Sep 17 00:00:00 2001 From: d07riv Date: Sun, 18 Aug 2019 03:30:30 +0300 Subject: [PATCH] Updates --- 3d851ae1dfd110e041f9.worker.js.map | 1 - ...orker.js => 8db59cc25367e55de4a6.worker.js | 4 +-- 8db59cc25367e55de4a6.worker.js.map | 1 + asset-manifest.json | 22 ++++++++-------- index.html | 2 +- ...nifest.bb9ab754d18f896bb9c476ad8c51daa1.js | 26 +++++++++---------- service-worker.js | 2 +- ....1560967a.chunk.js => 0.c27538cc.chunk.js} | 4 +-- ...a.chunk.js.map => 0.c27538cc.chunk.js.map} | 2 +- static/js/5.658f752c.chunk.js | 2 -- static/js/5.658f752c.chunk.js.map | 1 - static/js/5.b818fed9.chunk.js | 2 ++ static/js/5.b818fed9.chunk.js.map | 1 + static/js/main.7119713d.chunk.js | 2 ++ static/js/main.7119713d.chunk.js.map | 1 + static/js/main.bdb398a3.chunk.js | 2 -- static/js/main.bdb398a3.chunk.js.map | 1 - static/js/storage.326821c9.chunk.js | 2 -- static/js/storage.326821c9.chunk.js.map | 1 - static/js/storage.92784c1c.chunk.js | 2 ++ static/js/storage.92784c1c.chunk.js.map | 1 + storage.html | 2 +- 22 files changed, 42 insertions(+), 42 deletions(-) delete mode 100644 3d851ae1dfd110e041f9.worker.js.map rename 3d851ae1dfd110e041f9.worker.js => 8db59cc25367e55de4a6.worker.js (91%) create mode 100644 8db59cc25367e55de4a6.worker.js.map rename precache-manifest.cda7f7e903fd028eb131363c62060fa6.js => precache-manifest.bb9ab754d18f896bb9c476ad8c51daa1.js (62%) rename static/js/{0.1560967a.chunk.js => 0.c27538cc.chunk.js} (98%) rename static/js/{0.1560967a.chunk.js.map => 0.c27538cc.chunk.js.map} (99%) delete mode 100644 static/js/5.658f752c.chunk.js delete mode 100644 static/js/5.658f752c.chunk.js.map create mode 100644 static/js/5.b818fed9.chunk.js create mode 100644 static/js/5.b818fed9.chunk.js.map create mode 100644 static/js/main.7119713d.chunk.js create mode 100644 static/js/main.7119713d.chunk.js.map delete mode 100644 static/js/main.bdb398a3.chunk.js delete mode 100644 static/js/main.bdb398a3.chunk.js.map delete mode 100644 static/js/storage.326821c9.chunk.js delete mode 100644 static/js/storage.326821c9.chunk.js.map create mode 100644 static/js/storage.92784c1c.chunk.js create mode 100644 static/js/storage.92784c1c.chunk.js.map diff --git a/3d851ae1dfd110e041f9.worker.js.map b/3d851ae1dfd110e041f9.worker.js.map deleted file mode 100644 index 2d472a9..0000000 --- a/3d851ae1dfd110e041f9.worker.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../webpack/bootstrap","../node_modules/axios/lib/utils.js","../node_modules/@babel/runtime/regenerator/index.js","../node_modules/process/browser.js","../node_modules/path-browserify/index.js","../node_modules/axios/lib/helpers/bind.js","../node_modules/axios/lib/helpers/buildURL.js","../node_modules/axios/lib/cancel/isCancel.js","../node_modules/axios/lib/defaults.js","../node_modules/axios/lib/adapters/xhr.js","../node_modules/axios/lib/core/createError.js","../node_modules/axios/lib/core/mergeConfig.js","../node_modules/axios/lib/cancel/Cancel.js","api/Diablo.wasm","api/Diablo.jscc","api/DiabloSpawn.wasm","api/DiabloSpawn.jscc","../node_modules/axios/index.js","../node_modules/regenerator-runtime/runtime.js","../node_modules/axios/lib/axios.js","../node_modules/axios/node_modules/is-buffer/index.js","../node_modules/axios/lib/core/Axios.js","../node_modules/axios/lib/core/InterceptorManager.js","../node_modules/axios/lib/core/dispatchRequest.js","../node_modules/axios/lib/core/transformData.js","../node_modules/axios/lib/helpers/normalizeHeaderName.js","../node_modules/axios/lib/core/settle.js","../node_modules/axios/lib/core/enhanceError.js","../node_modules/axios/lib/helpers/parseHeaders.js","../node_modules/axios/lib/helpers/isURLSameOrigin.js","../node_modules/axios/lib/helpers/cookies.js","../node_modules/axios/lib/helpers/isAbsoluteURL.js","../node_modules/axios/lib/helpers/combineURLs.js","../node_modules/axios/lib/cancel/CancelToken.js","../node_modules/axios/lib/helpers/spread.js","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","../node_modules/@babel/runtime/helpers/esm/createClass.js","api/websocket.js","api/game.worker.js","../node_modules/@babel/runtime/helpers/esm/classCallCheck.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","isBuffer","toString","isArray","val","isObject","isFunction","forEach","obj","fn","length","isArrayBuffer","isFormData","FormData","isArrayBufferView","ArrayBuffer","isView","buffer","isString","isNumber","isUndefined","isDate","isFile","isBlob","isStream","pipe","isURLSearchParams","URLSearchParams","isStandardBrowserEnv","navigator","product","window","document","merge","result","assignValue","arguments","deepMerge","extend","a","b","thisArg","trim","str","replace","cachedSetTimeout","cachedClearTimeout","process","defaultSetTimout","Error","defaultClearTimeout","runTimeout","fun","setTimeout","e","this","clearTimeout","currentQueue","queue","draining","queueIndex","cleanUpNextTick","concat","drainQueue","timeout","len","run","marker","runClearTimeout","Item","array","noop","nextTick","args","Array","push","apply","title","browser","env","argv","version","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","binding","cwd","chdir","dir","umask","normalizeArray","parts","allowAboveRoot","up","last","splice","unshift","filter","xs","f","res","resolve","resolvedPath","resolvedAbsolute","path","TypeError","charAt","split","join","normalize","isAbsolute","trailingSlash","substr","paths","slice","index","relative","from","to","arr","start","end","fromParts","toParts","Math","min","samePartsLength","outputParts","sep","delimiter","dirname","code","charCodeAt","hasRoot","matchedSlash","basename","ext","extname","startDot","startPart","preDotState","utils","encode","encodeURIComponent","url","params","paramsSerializer","serializedParams","v","toISOString","JSON","stringify","hashmarkIndex","indexOf","__CANCEL__","normalizeHeaderName","DEFAULT_CONTENT_TYPE","Content-Type","setContentTypeIfUnset","headers","defaults","adapter","XMLHttpRequest","getDefaultAdapter","transformRequest","data","transformResponse","parse","xsrfCookieName","xsrfHeaderName","maxContentLength","validateStatus","status","common","Accept","method","settle","buildURL","parseHeaders","isURLSameOrigin","createError","config","Promise","reject","requestData","requestHeaders","request","auth","username","password","Authorization","btoa","open","toUpperCase","onreadystatechange","readyState","responseURL","responseHeaders","getAllResponseHeaders","response","responseType","responseText","statusText","onabort","onerror","ontimeout","cookies","xsrfValue","withCredentials","read","undefined","toLowerCase","setRequestHeader","onDownloadProgress","addEventListener","onUploadProgress","upload","cancelToken","promise","then","cancel","abort","send","enhanceError","message","error","config1","config2","prop","Cancel","Diablo","_scriptDir","currentScript","src","Module","moduleOverrides","toThrow","ENVIRONMENT_IS_NODE","ENVIRONMENT_IS_SHELL","ENVIRONMENT_IS_WEB","ENVIRONMENT_IS_WORKER","importScripts","node","read_","readBinary","nodeFS","nodePath","scriptDirectory","__dirname","filename","binary","ret","Uint8Array","assert","ex","ExitStatus","readbuffer","scriptArgs","quit","self","location","href","lastIndexOf","xhr","onload","out","console","log","print","err","printErr","warn","asm2wasmImports","f64-rem","x","y","debugger","wasmMemory","tempRet0","setTempRet0","WebAssembly","ABORT","condition","text","UTF8Decoder","TextDecoder","UTF8ArrayToString","u8Array","idx","maxBytesToRead","endIdx","endPtr","subarray","decode","u0","u1","u2","String","fromCharCode","ch","UTF8ToString","ptr","HEAPU8","HEAP8","HEAP32","HEAPF32","alignUp","multiple","updateGlobalBufferViews","Int8Array","Int16Array","Int32Array","Uint16Array","Uint32Array","Float32Array","Float64Array","DYNAMICTOP_PTR","INITIAL_TOTAL_MEMORY","callRuntimeCallbacks","callbacks","callback","shift","func","arg","Memory","initial","byteLength","__ATPRERUN__","__ATINIT__","__ATMAIN__","__ATPOSTRUN__","addOnPostRun","cb","abs","cos","sin","tan","acos","asin","atan","atan2","exp","sqrt","ceil","floor","pow","imul","fround","round","max","clz32","trunc","runDependencies","runDependencyWatcher","dependenciesFulfilled","dataURIPrefix","isDataURI","startsWith","wasmBinaryFile","getBinary","createWasm","info","global","NaN","Infinity","global.Math","asm2wasm","receiveInstance","instance","id","clearInterval","removeRunDependency","receiveInstantiatedSource","output","instantiateArrayBuffer","receiver","fetch","credentials","catch","instantiate","reason","instantiateStreaming","instantiateAsync","providedBuffer","Table","maximum","element","ASM_CONSTS","$0","DApi","current_save_id","globalCtors","tempDoublePtr","___exception_infos","___exception_caught","___exception_addRef","refcount","___exception_deAdjust","adjusted","adj","___exception_last","___cxa_free_exception","_free","___exception_decRef","rethrown","destructor","___cxa_find_matching_catch","thrown","throwntype","type","typeArray","___cxa_is_pointer_type","___cxa_can_catch","SYSCALLS","buffers","printChar","stream","curr","varargs","getStr","get64","low","getZero","_emscripten_get_heap_size","emscripten_realloc_buffer","size","oldSize","grow","asmLibraryArg","getTempRet0","invoke_i","sp","stackSave","dynCall_i","stackRestore","_setThrew","invoke_ii","a1","dynCall_ii","invoke_iii","a2","dynCall_iii","invoke_iiii","a3","dynCall_iiii","invoke_iiiii","a4","dynCall_iiiii","invoke_iiiiii","a5","dynCall_iiiiii","invoke_ji","dynCall_ji","invoke_v","dynCall_v","invoke_vi","dynCall_vi","invoke_vii","dynCall_vii","invoke_viii","dynCall_viii","invoke_viiii","dynCall_viiii","invoke_viiiii","dynCall_viiiii","invoke_viiiiiii","a6","a7","dynCall_viiiiiii","invoke_viij","dynCall_viij","invoke_viji","dynCall_viji","___assert_fail","line","___cxa_allocate_exception","_malloc","___cxa_begin_catch","caught","__ZSt18uncaught_exceptionv","uncaught_exceptions","___cxa_end_catch","pop","___cxa_find_matching_catch_2","a0","___cxa_find_matching_catch_3","___cxa_get_exception_ptr","___cxa_pure_virtual","___cxa_throw","___cxa_uncaught_exceptions","___gxx_personality_v0","___lock","___resumeException","___setErrNo","___syscall140","which","getStreamFromFD","FS","ErrnoError","errno","___syscall146","iov","iovcnt","j","___syscall54","___syscall6","___unlock","__api_close_keyboard","close_keyboard","__api_open_keyboard","x0","y0","x1","y1","open_keyboard","_abort","_api_create_sound","create_sound","_api_create_sound_float","samples","channels","rate","create_sound_raw","_api_delete_sound","delete_sound","_api_draw_begin","draw_begin","_api_draw_belt","items","draw_belt","_api_draw_blit","w","h","draw_blit","_api_draw_clip_text","draw_clip_text","_api_draw_end","draw_end","_api_draw_text","color","draw_text","_api_duplicate_sound","srcId","duplicate_sound","_api_exit_game","exit_game","_api_play_sound","volume","pan","loop","play_sound","_api_set_cursor","set_cursor","_api_set_volume","set_volume","_api_stop_sound","stop_sound","_api_use_websocket","use","use_websocket","_api_websocket_closed","websocket_closed","_api_websocket_send","websocket_send","_emscripten_asm_const_ii","_emscripten_memcpy_big","dest","num","set","_emscripten_resize_heap","requestedSize","newSize","_exit","implicit","exit","_exit_error","exit_error","_get_file_contents","offset","get_file_contents","_get_file_size","get_file_size","_llvm_eh_typeid_for","_llvm_trap","_put_file_contents","put_file_contents","_remove_file","remove_file","_show_alert","alert","_time","Date","now","_trace_pop","WASM_TRACE","_trace_push","abortOnCannotGrowMemory","flush_NO_FILESYSTEM","fflush","asm","old","constructor","doRun","postRun","preRun","runCaller","what","DiabloSpawn","runtime","Op","hasOwn","$Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","wrap","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","context","Context","_invoke","state","GenStateSuspendedStart","GenStateExecuting","GenStateCompleted","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","sent","_sent","dispatchException","abrupt","record","tryCatch","done","GenStateSuspendedYield","makeInvokeMethod","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","AsyncIterator","previousPromise","callInvokeWithMethodAndArg","invoke","__await","unwrapped","resultName","next","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","iterable","iteratorMethod","isNaN","displayName","isGeneratorFunction","genFun","ctor","mark","setPrototypeOf","__proto__","awrap","async","iter","keys","reverse","skipTempReset","prev","stop","rootRecord","rval","exception","handle","loc","hasCatch","hasFinally","finallyEntry","complete","finish","delegateYield","regeneratorRuntime","accidentalStrictMode","Function","Axios","mergeConfig","createInstance","defaultConfig","axios","instanceConfig","CancelToken","isCancel","all","promises","spread","default","InterceptorManager","dispatchRequest","interceptors","chain","interceptor","fulfilled","rejected","getUri","handlers","eject","transformData","isAbsoluteURL","combineURLs","throwIfCancellationRequested","throwIfRequested","baseURL","fns","normalizedName","isAxiosError","toJSON","description","number","fileName","lineNumber","columnNumber","stack","ignoreDuplicateOf","parsed","originURL","msie","test","userAgent","urlParsingNode","createElement","resolveURL","setAttribute","protocol","host","search","hash","hostname","port","pathname","requestURL","write","expires","domain","secure","cookie","toGMTString","match","RegExp","decodeURIComponent","remove","relativeURL","executor","resolvePromise","token","source","_slicedToArray","_arrayWithHoles","_arr","_n","_d","_e","_s","_i","_iterableToArrayLimit","_nonIterableRest","_toConsumableArray","arr2","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","_defineProperties","target","props","descriptor","configurable","writable","_callee","handler","socket","_versionCbk","vers","clientInfo","regenerator_default","_context","WebSocket","binaryType","versionCbk","_ref","onError","removeEventListener","u8","parseInt","websocket_open","finisher","ws","batch","intr","proxy","msg","close","do_websocket_open","sock","setInterval","reduce","sum","pos","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","return","DiabloSize","SpawnSize","worker","canvas","imageData","files","renderBatch","drawBelt","is_spawn","websocket","ChunkSize","RemoteFile","Constructor","_classCallCheck","postMessage","action","getResponseHeader","chunks","protoProps","staticProps","chunk0","chunk1","missing0","missing1","header","delete","_len","_key","rect","flag","call_api","try_api","wasm","_DApi_AllocPacket","DApi_renderLegacy","images","clip","belt","transfer","map","DApi_renderOffscreen","save","font","putImageData","beginPath","g","fillStyle","fillText","restore","bitmap","transferToImageBitmap","audioBatch","audioTransfer","maxSoundId","maxBatchId","_len2","_key2","_len3","_key3","packetBatch","_len4","_key4","nested","_wasm","_DApi_SyncTextPtr","heap","_DApi_SyncText","progress","loaded","total","readFile","file","reader","FileReader","readAsArrayBuffer","initWasm","spawn","SpawnBinary","DiabloBinary","SpawnModule","DiabloModule","wasmBinary","ready","_callee2","mpq","offscreen","mpqLoaded","mpqTotal","wasmLoaded","wasmTotal","wasmWeight","updateProgress","loadWasm","loadMpq","_ref3","_ref4","_context2","OffscreenCanvas","getContext","createImageData","assign","has","_SNet_InitWebsocket","_DApi_Init","performance","_ref2","init_game","packet"],"mappings":"aACA,IAAAA,EAAA,GAGA,SAAAC,EAAAC,GAGA,GAAAF,EAAAE,GACA,OAAAF,EAAAE,GAAAC,QAGA,IAAAC,EAAAJ,EAAAE,GAAA,CACAG,EAAAH,EACAI,GAAA,EACAH,QAAA,IAUA,OANAI,EAAAL,GAAAM,KAAAJ,EAAAD,QAAAC,IAAAD,QAAAF,GAGAG,EAAAE,GAAA,EAGAF,EAAAD,QAKAF,EAAAQ,EAAAF,EAGAN,EAAAS,EAAAV,EAGAC,EAAAU,EAAA,SAAAR,EAAAS,EAAAC,GACAZ,EAAAa,EAAAX,EAAAS,IACAG,OAAAC,eAAAb,EAAAS,EAAA,CAA0CK,YAAA,EAAAC,IAAAL,KAK1CZ,EAAAkB,EAAA,SAAAhB,GACA,qBAAAiB,eAAAC,aACAN,OAAAC,eAAAb,EAAAiB,OAAAC,YAAA,CAAwDC,MAAA,WAExDP,OAAAC,eAAAb,EAAA,cAAiDmB,OAAA,KAQjDrB,EAAAsB,EAAA,SAAAD,EAAAE,GAEA,GADA,EAAAA,IAAAF,EAAArB,EAAAqB,IACA,EAAAE,EAAA,OAAAF,EACA,KAAAE,GAAA,kBAAAF,QAAAG,WAAA,OAAAH,EACA,IAAAI,EAAAX,OAAAY,OAAA,MAGA,GAFA1B,EAAAkB,EAAAO,GACAX,OAAAC,eAAAU,EAAA,WAAyCT,YAAA,EAAAK,UACzC,EAAAE,GAAA,iBAAAF,EAAA,QAAAM,KAAAN,EAAArB,EAAAU,EAAAe,EAAAE,EAAA,SAAAA,GAAgH,OAAAN,EAAAM,IAAqBC,KAAA,KAAAD,IACrI,OAAAF,GAIAzB,EAAA6B,EAAA,SAAA1B,GACA,IAAAS,EAAAT,KAAAqB,WACA,WAA2B,OAAArB,EAAA,SAC3B,WAAiC,OAAAA,GAEjC,OADAH,EAAAU,EAAAE,EAAA,IAAAA,GACAA,GAIAZ,EAAAa,EAAA,SAAAiB,EAAAC,GAAsD,OAAAjB,OAAAkB,UAAAC,eAAA1B,KAAAuB,EAAAC,IAGtD/B,EAAAkC,EAAA,cAIAlC,IAAAmC,EAAA,mCChFA,IAAAP,EAAW5B,EAAQ,GAEnBoC,EAAepC,EAAQ,IAKvBqC,EAAAvB,OAAAkB,UAAAK,SAQA,SAAAC,EAAAC,GACA,yBAAAF,EAAA9B,KAAAgC,GAoFA,SAAAC,EAAAD,GACA,cAAAA,GAAA,kBAAAA,EA2CA,SAAAE,EAAAF,GACA,4BAAAF,EAAA9B,KAAAgC,GAyEA,SAAAG,EAAAC,EAAAC,GAEA,UAAAD,GAAA,qBAAAA,EAUA,GALA,kBAAAA,IAEAA,EAAA,CAAAA,IAGAL,EAAAK,GAEA,QAAAvC,EAAA,EAAAC,EAAAsC,EAAAE,OAAmCzC,EAAAC,EAAOD,IAC1CwC,EAAArC,KAAA,KAAAoC,EAAAvC,KAAAuC,QAIA,QAAAhB,KAAAgB,EACA7B,OAAAkB,UAAAC,eAAA1B,KAAAoC,EAAAhB,IACAiB,EAAArC,KAAA,KAAAoC,EAAAhB,KAAAgB,GA+FAxC,EAAAD,QAAA,CACAoC,UACAQ,cAtTA,SAAAP,GACA,+BAAAF,EAAA9B,KAAAgC,IAsTAH,WACAW,WA7SA,SAAAR,GACA,2BAAAS,UAAAT,aAAAS,UA6SAC,kBAnSA,SAAAV,GASA,MANA,qBAAAW,yBAAAC,OACAD,YAAAC,OAAAZ,GAEAA,KAAAa,QAAAb,EAAAa,kBAAAF,aA8RAG,SAjRA,SAAAd,GACA,wBAAAA,GAiRAe,SAvQA,SAAAf,GACA,wBAAAA,GAuQAC,WACAe,YA9PA,SAAAhB,GACA,2BAAAA,GA8PAiB,OAzOA,SAAAjB,GACA,wBAAAF,EAAA9B,KAAAgC,IAyOAkB,OA/NA,SAAAlB,GACA,wBAAAF,EAAA9B,KAAAgC,IA+NAmB,OArNA,SAAAnB,GACA,wBAAAF,EAAA9B,KAAAgC,IAqNAE,aACAkB,SAjMA,SAAApB,GACA,OAAAC,EAAAD,IAAAE,EAAAF,EAAAqB,OAiMAC,kBAvLA,SAAAtB,GACA,2BAAAuB,iBAAAvB,aAAAuB,iBAuLAC,qBAzJA,WACA,4BAAAC,WAAA,gBAAAA,UAAAC,SAAA,iBAAAD,UAAAC,SAAA,OAAAD,UAAAC,UAIA,qBAAAC,QAAA,qBAAAC,UAqJAzB,UACA0B,MAzFA,SAAAA,IAGA,IAAAC,EAAA,GAEA,SAAAC,EAAA/B,EAAAZ,GACA,kBAAA0C,EAAA1C,IAAA,kBAAAY,EACA8B,EAAA1C,GAAAyC,EAAAC,EAAA1C,GAAAY,GAEA8B,EAAA1C,GAAAY,EAIA,QAAAnC,EAAA,EAAAC,EAAAkE,UAAA1B,OAAuCzC,EAAAC,EAAOD,IAC9CsC,EAAA6B,UAAAnE,GAAAkE,GAGA,OAAAD,GAyEAG,UA7DA,SAAAA,IAGA,IAAAH,EAAA,GAEA,SAAAC,EAAA/B,EAAAZ,GACA,kBAAA0C,EAAA1C,IAAA,kBAAAY,EACA8B,EAAA1C,GAAA6C,EAAAH,EAAA1C,GAAAY,GAEA8B,EAAA1C,GADK,kBAAAY,EACLiC,EAAA,GAAgCjC,GAEhCA,EAIA,QAAAnC,EAAA,EAAAC,EAAAkE,UAAA1B,OAAuCzC,EAAAC,EAAOD,IAC9CsC,EAAA6B,UAAAnE,GAAAkE,GAGA,OAAAD,GA2CAI,OA/BA,SAAAC,EAAAC,EAAAC,GAQA,OAPAlC,EAAAiC,EAAA,SAAApC,EAAAZ,GAEA+C,EAAA/C,GADAiD,GAAA,oBAAArC,EACAX,EAAAW,EAAAqC,GAEArC,IAGAmC,GAwBAG,KAlLA,SAAAC,GACA,OAAAA,EAAAC,QAAA,WAAAA,QAAA,8BCpLA5E,EAAAD,QAAiBF,EAAQ,mBCCzB,IAKAgF,EACAC,EANAC,EAAA/E,EAAAD,QAAA,GAQA,SAAAiF,IACA,UAAAC,MAAA,mCAGA,SAAAC,IACA,UAAAD,MAAA,qCAyBA,SAAAE,EAAAC,GACA,GAAAP,IAAAQ,WAEA,OAAAA,WAAAD,EAAA,GAIA,IAAAP,IAAAG,IAAAH,IAAAQ,WAEA,OADAR,EAAAQ,WACAA,WAAAD,EAAA,GAGA,IAEA,OAAAP,EAAAO,EAAA,GACG,MAAAE,GACH,IAEA,OAAAT,EAAAzE,KAAA,KAAAgF,EAAA,GACK,MAAAE,GAEL,OAAAT,EAAAzE,KAAAmF,KAAAH,EAAA,MA3CA,WACA,IAEAP,EADA,oBAAAQ,WACAA,WAEAL,EAEG,MAAAM,GACHT,EAAAG,EAGA,IAEAF,EADA,oBAAAU,aACAA,aAEAN,EAEG,MAAAI,GACHR,EAAAI,GAlBA,GA2EA,IAEAO,EAFAC,EAAA,GACAC,GAAA,EAEAC,GAAA,EAEA,SAAAC,IACAF,GAAAF,IAIAE,GAAA,EAEAF,EAAA/C,OACAgD,EAAAD,EAAAK,OAAAJ,GAEAE,GAAA,EAGAF,EAAAhD,QACAqD,KAIA,SAAAA,IACA,IAAAJ,EAAA,CAIA,IAAAK,EAAAb,EAAAU,GACAF,GAAA,EAGA,IAFA,IAAAM,EAAAP,EAAAhD,OAEAuD,GAAA,CAIA,IAHAR,EAAAC,EACAA,EAAA,KAEAE,EAAAK,GACAR,GACAA,EAAAG,GAAAM,MAIAN,GAAA,EACAK,EAAAP,EAAAhD,OAGA+C,EAAA,KACAE,GAAA,EA1EA,SAAAQ,GACA,GAAArB,IAAAU,aAEA,OAAAA,aAAAW,GAIA,IAAArB,IAAAI,IAAAJ,IAAAU,aAEA,OADAV,EAAAU,aACAA,aAAAW,GAGA,IAEArB,EAAAqB,GACG,MAAAb,GACH,IAEA,OAAAR,EAAA1E,KAAA,KAAA+F,GACK,MAAAb,GAGL,OAAAR,EAAA1E,KAAAmF,KAAAY,KAqDAC,CAAAJ,IAoBA,SAAAK,EAAAjB,EAAAkB,GACAf,KAAAH,MACAG,KAAAe,QAeA,SAAAC,KAlCAxB,EAAAyB,SAAA,SAAApB,GACA,IAAAqB,EAAA,IAAAC,MAAAtC,UAAA1B,OAAA,GAEA,GAAA0B,UAAA1B,OAAA,EACA,QAAAzC,EAAA,EAAmBA,EAAAmE,UAAA1B,OAAsBzC,IACzCwG,EAAAxG,EAAA,GAAAmE,UAAAnE,GAIAyF,EAAAiB,KAAA,IAAAN,EAAAjB,EAAAqB,IAEA,IAAAf,EAAAhD,QAAAiD,GACAR,EAAAY,IAUAM,EAAAxE,UAAAqE,IAAA,WACAX,KAAAH,IAAAwB,MAAA,KAAArB,KAAAe,QAGAvB,EAAA8B,MAAA,UACA9B,EAAA+B,SAAA,EACA/B,EAAAgC,IAAA,GACAhC,EAAAiC,KAAA,GACAjC,EAAAkC,QAAA,GAEAlC,EAAAmC,SAAA,GAIAnC,EAAAoC,GAAAZ,EACAxB,EAAAqC,YAAAb,EACAxB,EAAAsC,KAAAd,EACAxB,EAAAuC,IAAAf,EACAxB,EAAAwC,eAAAhB,EACAxB,EAAAyC,mBAAAjB,EACAxB,EAAA0C,KAAAlB,EACAxB,EAAA2C,gBAAAnB,EACAxB,EAAA4C,oBAAApB,EAEAxB,EAAA6C,UAAA,SAAApH,GACA,UAGAuE,EAAA8C,QAAA,SAAArH,GACA,UAAAyE,MAAA,qCAGAF,EAAA+C,IAAA,WACA,WAGA/C,EAAAgD,MAAA,SAAAC,GACA,UAAA/C,MAAA,mCAGAF,EAAAkD,MAAA,WACA,4CC9MA,SAAAlD,GA0BA,SAAAmD,EAAAC,EAAAC,GAIA,IAFA,IAAAC,EAAA,EAEApI,EAAAkI,EAAAzF,OAAA,EAAgCzC,GAAA,EAAQA,IAAA,CACxC,IAAAqI,EAAAH,EAAAlI,GAEA,MAAAqI,EACAH,EAAAI,OAAAtI,EAAA,GACK,OAAAqI,GACLH,EAAAI,OAAAtI,EAAA,GACAoI,KACKA,IACLF,EAAAI,OAAAtI,EAAA,GACAoI,KAKA,GAAAD,EACA,KAAUC,IAAMA,EAChBF,EAAAK,QAAA,MAIA,OAAAL,EAyPA,SAAAM,EAAAC,EAAAC,GACA,GAAAD,EAAAD,OAAA,OAAAC,EAAAD,OAAAE,GAGA,IAFA,IAAAC,EAAA,GAEA3I,EAAA,EAAiBA,EAAAyI,EAAAhG,OAAezC,IAChC0I,EAAAD,EAAAzI,KAAAyI,IAAAE,EAAAjC,KAAA+B,EAAAzI,IAGA,OAAA2I,EA5PA7I,EAAA8I,QAAA,WAIA,IAHA,IAAAC,EAAA,GACAC,GAAA,EAEA9I,EAAAmE,UAAA1B,OAAA,EAAoCzC,IAAA,IAAA8I,EAA8B9I,IAAA,CAClE,IAAA+I,EAAA/I,GAAA,EAAAmE,UAAAnE,GAAA8E,EAAA+C,MAEA,qBAAAkB,EACA,UAAAC,UAAA,6CACKD,IAILF,EAAAE,EAAA,IAAAF,EACAC,EAAA,MAAAC,EAAAE,OAAA,IASA,OAAAH,EAAA,SAHAD,EAAAZ,EAAAO,EAAAK,EAAAK,MAAA,cAAApH,GACA,QAAAA,KACGgH,GAAAK,KAAA,OACH,KAKArJ,EAAAsJ,UAAA,SAAAL,GACA,IAAAM,EAAAvJ,EAAAuJ,WAAAN,GACAO,EAAA,MAAAC,EAAAR,GAAA,GAcA,OAZAA,EAAAd,EAAAO,EAAAO,EAAAG,MAAA,cAAApH,GACA,QAAAA,KACGuH,GAAAF,KAAA,OAEHE,IACAN,EAAA,KAGAA,GAAAO,IACAP,GAAA,MAGAM,EAAA,QAAAN,GAIAjJ,EAAAuJ,WAAA,SAAAN,GACA,YAAAA,EAAAE,OAAA,IAIAnJ,EAAAqJ,KAAA,WACA,IAAAK,EAAA/C,MAAA7E,UAAA6H,MAAAtJ,KAAAgE,UAAA,GACA,OAAArE,EAAAsJ,UAAAZ,EAAAgB,EAAA,SAAA1H,EAAA4H,GACA,qBAAA5H,EACA,UAAAkH,UAAA,0CAGA,OAAAlH,IACGqH,KAAA,OAKHrJ,EAAA6J,SAAA,SAAAC,EAAAC,GAIA,SAAApF,EAAAqF,GAGA,IAFA,IAAAC,EAAA,EAEUA,EAAAD,EAAArH,QACV,KAAAqH,EAAAC,GAD8BA,KAM9B,IAFA,IAAAC,EAAAF,EAAArH,OAAA,EAEUuH,GAAA,GACV,KAAAF,EAAAE,GADoBA,KAIpB,OAAAD,EAAAC,EAAA,GACAF,EAAAL,MAAAM,EAAAC,EAAAD,EAAA,GAjBAH,EAAA9J,EAAA8I,QAAAgB,GAAAL,OAAA,GACAM,EAAA/J,EAAA8I,QAAAiB,GAAAN,OAAA,GAwBA,IALA,IAAAU,EAAAxF,EAAAmF,EAAAV,MAAA,MACAgB,EAAAzF,EAAAoF,EAAAX,MAAA,MACAzG,EAAA0H,KAAAC,IAAAH,EAAAxH,OAAAyH,EAAAzH,QACA4H,EAAA5H,EAEAzC,EAAA,EAAiBA,EAAAyC,EAAYzC,IAC7B,GAAAiK,EAAAjK,KAAAkK,EAAAlK,GAAA,CACAqK,EAAArK,EACA,MAIA,IAAAsK,EAAA,GAEA,IAAAtK,EAAAqK,EAA+BrK,EAAAiK,EAAAxH,OAAsBzC,IACrDsK,EAAA5D,KAAA,MAIA,OADA4D,IAAAzE,OAAAqE,EAAAT,MAAAY,KACAlB,KAAA,MAGArJ,EAAAyK,IAAA,IACAzK,EAAA0K,UAAA,IAEA1K,EAAA2K,QAAA,SAAA1B,GAEA,GADA,kBAAAA,OAAA,IACA,IAAAA,EAAAtG,OAAA,UAQA,IAPA,IAAAiI,EAAA3B,EAAA4B,WAAA,GACAC,EAAA,KAAAF,EAGAV,GAAA,EACAa,GAAA,EAEA7K,EAAA+I,EAAAtG,OAAA,EAA+BzC,GAAA,IAAQA,EAGvC,SAFA0K,EAAA3B,EAAA4B,WAAA3K,KAKA,IAAA6K,EAAA,CACAb,EAAAhK,EACA,YAIA6K,GAAA,EAIA,WAAAb,EAAAY,EAAA,QAEAA,GAAA,IAAAZ,EAGA,IAGAjB,EAAAU,MAAA,EAAAO,IAkCAlK,EAAAgL,SAAA,SAAA/B,EAAAgC,GACA,IAAArC,EAhCA,SAAAK,GACA,kBAAAA,OAAA,IACA,IAGA/I,EAHA+J,EAAA,EACAC,GAAA,EACAa,GAAA,EAGA,IAAA7K,EAAA+I,EAAAtG,OAAA,EAA2BzC,GAAA,IAAQA,EACnC,QAAA+I,EAAA4B,WAAA3K,IAKA,IAAA6K,EAAA,CACAd,EAAA/J,EAAA,EACA,YAEO,IAAAgK,IAGPa,GAAA,EACAb,EAAAhK,EAAA,GAIA,WAAAgK,EAAA,GACAjB,EAAAU,MAAAM,EAAAC,GAMAc,CAAA/B,GAMA,OAJAgC,GAAArC,EAAAa,QAAA,EAAAwB,EAAAtI,UAAAsI,IACArC,IAAAa,OAAA,EAAAb,EAAAjG,OAAAsI,EAAAtI,SAGAiG,GAGA5I,EAAAkL,QAAA,SAAAjC,GACA,kBAAAA,OAAA,IASA,IARA,IAAAkC,GAAA,EACAC,EAAA,EACAlB,GAAA,EACAa,GAAA,EAGAM,EAAA,EAEAnL,EAAA+I,EAAAtG,OAAA,EAA+BzC,GAAA,IAAQA,EAAA,CACvC,IAAA0K,EAAA3B,EAAA4B,WAAA3K,GAEA,QAAA0K,GAaA,IAAAV,IAGAa,GAAA,EACAb,EAAAhK,EAAA,GAGA,KAAA0K,GAIA,IAAAO,IAAAjL,EAA0C,IAAAmL,MAAA,IACnC,IAAAF,IAGPE,GAAA,QAvBA,IAAAN,EAAA,CACAK,EAAAlL,EAAA,EACA,OAyBA,WAAAiL,IAAA,IAAAjB,GACA,IAAAmB,GACA,IAAAA,GAAAF,IAAAjB,EAAA,GAAAiB,IAAAC,EAAA,EACA,GAGAnC,EAAAU,MAAAwB,EAAAjB,IAeA,IAAAT,EAAA,WAAAA,QAAA,YAAA7E,EAAAqF,EAAA/D,GACA,OAAAtB,EAAA6E,OAAAQ,EAAA/D,IACC,SAAAtB,EAAAqF,EAAA/D,GAED,OADA+D,EAAA,IAAAA,EAAArF,EAAAjC,OAAAsH,GACArF,EAAA6E,OAAAQ,EAAA/D,oDC1TAjG,EAAAD,QAAA,SAAA0C,EAAAgC,GACA,kBAGA,IAFA,IAAAgC,EAAA,IAAAC,MAAAtC,UAAA1B,QAEAzC,EAAA,EAAmBA,EAAAwG,EAAA/D,OAAiBzC,IACpCwG,EAAAxG,GAAAmE,UAAAnE,GAGA,OAAAwC,EAAAmE,MAAAnC,EAAAgC,mCCRA,IAAA4E,EAAYxL,EAAQ,GAEpB,SAAAyL,EAAAlJ,GACA,OAAAmJ,mBAAAnJ,GAAAwC,QAAA,aAAAA,QAAA,aAAAA,QAAA,YAAAA,QAAA,aAAAA,QAAA,YAAAA,QAAA,aAAAA,QAAA,aAWA5E,EAAAD,QAAA,SAAAyL,EAAAC,EAAAC,GAEA,IAAAD,EACA,OAAAD,EAGA,IAAAG,EAEA,GAAAD,EACAC,EAAAD,EAAAD,QACG,GAAAJ,EAAA3H,kBAAA+H,GACHE,EAAAF,EAAAvJ,eACG,CACH,IAAAiG,EAAA,GACAkD,EAAA9I,QAAAkJ,EAAA,SAAArJ,EAAAZ,GACA,OAAAY,GAAA,qBAAAA,IAIAiJ,EAAAlJ,QAAAC,GACAZ,GAAA,KAEAY,EAAA,CAAAA,GAGAiJ,EAAA9I,QAAAH,EAAA,SAAAwJ,GACAP,EAAAhI,OAAAuI,GACAA,IAAAC,cACSR,EAAAhJ,SAAAuJ,KACTA,EAAAE,KAAAC,UAAAH,IAGAzD,EAAAxB,KAAA2E,EAAA9J,GAAA,IAAA8J,EAAAM,SAGAD,EAAAxD,EAAAiB,KAAA,KAGA,GAAAuC,EAAA,CACA,IAAAK,EAAAR,EAAAS,QAAA,MAEA,IAAAD,IACAR,IAAA9B,MAAA,EAAAsC,IAGAR,KAAA,IAAAA,EAAAS,QAAA,cAAAN,EAGA,OAAAH,iCC9DAxL,EAAAD,QAAA,SAAAmB,GACA,SAAAA,MAAAgL,4CCHA,SAAAnH,GAEA,IAAAsG,EAAYxL,EAAQ,GAEpBsM,EAA0BtM,EAAQ,IAElCuM,EAAA,CACAC,eAAA,qCAGA,SAAAC,EAAAC,EAAArL,IACAmK,EAAAjI,YAAAmJ,IAAAlB,EAAAjI,YAAAmJ,EAAA,mBACAA,EAAA,gBAAArL,GAkBA,IAAAsL,EAAA,CACAC,QAfA,WACA,IAAAA,EAUA,MARA,qBAAA1H,GAAA,qBAAApE,OAAAkB,UAAAK,SAAA9B,KAAA2E,GAEA0H,EAAc5M,EAAQ,GACnB,qBAAA6M,iBAEHD,EAAc5M,EAAQ,IAGtB4M,EAIAE,GACAC,iBAAA,UAAAC,EAAAN,GAIA,OAHAJ,EAAAI,EAAA,UACAJ,EAAAI,EAAA,gBAEAlB,EAAAzI,WAAAiK,IAAAxB,EAAA1I,cAAAkK,IAAAxB,EAAApJ,SAAA4K,IAAAxB,EAAA7H,SAAAqJ,IAAAxB,EAAA/H,OAAAuJ,IAAAxB,EAAA9H,OAAAsJ,GACAA,EAGAxB,EAAAvI,kBAAA+J,GACAA,EAAA5J,OAGAoI,EAAA3H,kBAAAmJ,IACAP,EAAAC,EAAA,mDACAM,EAAA3K,YAGAmJ,EAAAhJ,SAAAwK,IACAP,EAAAC,EAAA,kCACAT,KAAAC,UAAAc,IAGAA,IAEAC,kBAAA,UAAAD,GAEA,qBAAAA,EACA,IACAA,EAAAf,KAAAiB,MAAAF,GACO,MAAAvH,IAKP,OAAAuH,IAOA7G,QAAA,EACAgH,eAAA,aACAC,eAAA,eACAC,kBAAA,EACAC,eAAA,SAAAC,GACA,OAAAA,GAAA,KAAAA,EAAA,KAGAb,QAAA,CACAc,OAAA,CACAC,OAAA,uCAGAjC,EAAA9I,QAAA,iCAAAgL,GACAf,EAAAD,QAAAgB,GAAA,KAEAlC,EAAA9I,QAAA,gCAAAgL,GACAf,EAAAD,QAAAgB,GAAAlC,EAAApH,MAAAmI,KAEApM,EAAAD,QAAAyM,kDC1FA,IAAAnB,EAAYxL,EAAQ,GAEpB2N,EAAa3N,EAAQ,IAErB4N,EAAe5N,EAAQ,GAEvB6N,EAAmB7N,EAAQ,IAE3B8N,EAAsB9N,EAAQ,IAE9B+N,EAAkB/N,EAAQ,IAE1BG,EAAAD,QAAA,SAAA8N,GACA,WAAAC,QAAA,SAAAjF,EAAAkF,GACA,IAAAC,EAAAH,EAAAhB,KACAoB,EAAAJ,EAAAtB,QAEAlB,EAAAzI,WAAAoL,WACAC,EAAA,gBAGA,IAAAC,EAAA,IAAAxB,eAEA,GAAAmB,EAAAM,KAAA,CACA,IAAAC,EAAAP,EAAAM,KAAAC,UAAA,GACAC,EAAAR,EAAAM,KAAAE,UAAA,GACAJ,EAAAK,cAAA,SAAAC,KAAAH,EAAA,IAAAC,GAkEA,GA/DAH,EAAAM,KAAAX,EAAAN,OAAAkB,cAAAhB,EAAAI,EAAArC,IAAAqC,EAAApC,OAAAoC,EAAAnC,mBAAA,GAEAwC,EAAAlI,QAAA6H,EAAA7H,QAEAkI,EAAAQ,mBAAA,WACA,GAAAR,GAAA,IAAAA,EAAAS,aAQA,IAAAT,EAAAd,QAAAc,EAAAU,aAAA,IAAAV,EAAAU,YAAA3C,QAAA,WAKA,IAAA4C,EAAA,0BAAAX,EAAAR,EAAAQ,EAAAY,yBAAA,KAEAC,EAAA,CACAlC,KAFAgB,EAAAmB,cAAA,SAAAnB,EAAAmB,aAAAd,EAAAa,SAAAb,EAAAe,aAGA7B,OAAAc,EAAAd,OACA8B,WAAAhB,EAAAgB,WACA3C,QAAAsC,EACAhB,SACAK,WAEAV,EAAA3E,EAAAkF,EAAAgB,GAEAb,EAAA,OAIAA,EAAAiB,QAAA,WACAjB,IAIAH,EAAAH,EAAA,kBAAAC,EAAA,eAAAK,IAEAA,EAAA,OAIAA,EAAAkB,QAAA,WAGArB,EAAAH,EAAA,gBAAAC,EAAA,KAAAK,IAEAA,EAAA,MAIAA,EAAAmB,UAAA,WACAtB,EAAAH,EAAA,cAAAC,EAAA7H,QAAA,cAAA6H,EAAA,eAAAK,IAEAA,EAAA,MAMA7C,EAAAzH,uBAAA,CACA,IAAA0L,EAAoBzP,EAAQ,IAG5B0P,GAAA1B,EAAA2B,iBAAA7B,EAAAE,EAAArC,OAAAqC,EAAAb,eAAAsC,EAAAG,KAAA5B,EAAAb,qBAAA0C,EAEAH,IACAtB,EAAAJ,EAAAZ,gBAAAsC,GAuBA,GAlBA,qBAAArB,GACA7C,EAAA9I,QAAA0L,EAAA,SAAA7L,EAAAZ,GACA,qBAAAwM,GAAA,iBAAAxM,EAAAmO,qBAEA1B,EAAAzM,GAGA0M,EAAA0B,iBAAApO,EAAAY,KAMAyL,EAAA2B,kBACAtB,EAAAsB,iBAAA,GAIA3B,EAAAmB,aACA,IACAd,EAAAc,aAAAnB,EAAAmB,aACO,MAAA1J,GAGP,YAAAuI,EAAAmB,aACA,MAAA1J,EAMA,oBAAAuI,EAAAgC,oBACA3B,EAAA4B,iBAAA,WAAAjC,EAAAgC,oBAIA,oBAAAhC,EAAAkC,kBAAA7B,EAAA8B,QACA9B,EAAA8B,OAAAF,iBAAA,WAAAjC,EAAAkC,kBAGAlC,EAAAoC,aAEApC,EAAAoC,YAAAC,QAAAC,KAAA,SAAAC,GACAlC,IAIAA,EAAAmC,QACAtC,EAAAqC,GAEAlC,EAAA,aAIAwB,IAAA1B,IACAA,EAAA,MAIAE,EAAAoC,KAAAtC,oCCnKA,IAAAuC,EAAmB1Q,EAAQ,IAa3BG,EAAAD,QAAA,SAAAyQ,EAAA3C,EAAAlD,EAAAuD,EAAAa,GACA,IAAA0B,EAAA,IAAAxL,MAAAuL,GACA,OAAAD,EAAAE,EAAA5C,EAAAlD,EAAAuD,EAAAa,kCCfA,IAAA1D,EAAYxL,EAAQ,GAWpBG,EAAAD,QAAA,SAAA2Q,EAAAC,GAEAA,KAAA,GACA,IAAA9C,EAAA,GAwBA,OAvBAxC,EAAA9I,QAAA,0CAAAqO,GACA,qBAAAD,EAAAC,KACA/C,EAAA+C,GAAAD,EAAAC,MAGAvF,EAAA9I,QAAA,oCAAAqO,GACAvF,EAAAhJ,SAAAsO,EAAAC,IACA/C,EAAA+C,GAAAvF,EAAAhH,UAAAqM,EAAAE,GAAAD,EAAAC,IACK,qBAAAD,EAAAC,GACL/C,EAAA+C,GAAAD,EAAAC,GACKvF,EAAAhJ,SAAAqO,EAAAE,IACL/C,EAAA+C,GAAAvF,EAAAhH,UAAAqM,EAAAE,IACK,qBAAAF,EAAAE,KACL/C,EAAA+C,GAAAF,EAAAE,MAGAvF,EAAA9I,QAAA,qTAAAqO,GACA,qBAAAD,EAAAC,GACA/C,EAAA+C,GAAAD,EAAAC,GACK,qBAAAF,EAAAE,KACL/C,EAAA+C,GAAAF,EAAAE,MAGA/C,iCChCA,SAAAgD,EAAAL,GACAjL,KAAAiL,UAGAK,EAAAhP,UAAAK,SAAA,WACA,gBAAAqD,KAAAiL,QAAA,KAAAjL,KAAAiL,QAAA,KAGAK,EAAAhP,UAAAqK,YAAA,EACAlM,EAAAD,QAAA8Q,mBCjBA7Q,EAAAD,QAAiBF,EAAAkC,EAAuB,oECCxC,IAAA+O,EAAA,WACA,IAAAC,EAAA,qBAAA/M,mBAAAgN,cAAAhN,SAAAgN,cAAAC,SAAAvB,EACA,gBACAoB,GAqBA,IAYAtP,EAZA0P,EAAA,qBApBAJ,KAAA,IAoBAA,EAAA,GAWAK,EAAA,GAEA,IAAA3P,KAAA0P,EACAA,EAAApP,eAAAN,KACA2P,EAAA3P,GAAA0P,EAAA1P,IAIA0P,EAAA,aACAA,EAAA,6BACAA,EAAA,cAAA9D,EAAAgE,GACA,MAAAA,GAEAF,EAAA,UACAA,EAAA,WAKA,IAEAG,EAEAC,EAJAC,GAAA,EACAC,GAAA,EAIAD,EAAA,kBAAAxN,OACAyN,EAAA,oBAAAC,cAOAJ,EADA,kBAAAtM,GAAA,kBAAAA,EAAAmC,UAAA,kBAAAnC,EAAAmC,SAAAwK,OACAH,IAAAC,EACAF,GAAAC,IAAAF,IAAAG,EAaA,IAUAG,EAEAC,EAQAC,EACAC,EArBAC,EAAA,GAeAV,GACAU,EAAAC,EAAA,IAOAL,EAAA,SAAAM,EAAAC,GACA,IAAAC,EAKA,OAJAN,MAA4BhS,EAAQ,IACpCiS,MAAgCjS,EAAQ,IACxCoS,EAAAH,EAAA,UAAAG,GACAE,EAAAN,EAAA,aAAAI,GACAC,EAAAC,IAAAjQ,YAGA0P,EAAA,SAAAK,GACA,IAAAE,EAAAR,EAAAM,GAAA,GAKA,OAJAE,EAAAlP,SACAkP,EAAA,IAAAC,WAAAD,IAEAE,EAAAF,EAAAlP,QACAkP,GAGApN,EAAA,KAAArC,OAAA,IACAwO,EAAA,YAAAnM,EAAA,QAAAH,QAAA,YAGAsM,EAAA,UAAAnM,EAAA,KAAA2E,MAAA,GAIA3E,EAAA,gCAAAuN,GAEA,KAAAA,aAAAC,IACA,MAAAD,IAKAvN,EAAA,wBAAAsL,IAEAa,EAAA,cAAA9D,GACArI,EAAA,KAAAqI,IAGA8D,EAAA,mBAAmC,qCAEnCI,GAGA,oBAAA7B,OACAkC,EAAA,SAAAhJ,GACA,OAAA8G,KAAA9G,KAIAiJ,EAAA,SAAAjJ,GACA,IAAAkE,EACA,0BAAA2F,WACA,IAAAJ,WAAAI,WAAA7J,KAGA0J,EAAA,kBADAxF,EAAA4C,KAAA9G,EAAA,YAEAkE,IAGA,oBAAA4F,WACAvB,EAAA,UAAAuB,WACG,oBAAArO,YACH8M,EAAA,UAAA9M,WAGA,oBAAAsO,OACAxB,EAAA,cAAA9D,GACAsF,KAAAtF,OAIAmE,GAAAC,KACAA,EACAO,EAAAY,KAAAC,SAAAC,KACG7O,SAAAgN,gBACHe,EAAA/N,SAAAgN,cAAAC,KAIAF,IACAgB,EAAAhB,GAOAgB,EADA,IAAAA,EAAA9F,QAAA,SACA8F,EAAAvI,OAAA,EAAAuI,EAAAe,YAAA,QAEA,GAIAnB,EAAA,SAAAnG,GACA,IAAAuH,EAAA,IAAArG,eAGA,OAFAqG,EAAAvE,KAAA,MAAAhD,GAAA,GACAuH,EAAAzC,KAAA,MACAyC,EAAA9D,cAGAuC,IACAI,EAAA,SAAApG,GACA,IAAAuH,EAAA,IAAArG,eAIA,OAHAqG,EAAAvE,KAAA,MAAAhD,GAAA,GACAuH,EAAA/D,aAAA,cACA+D,EAAAzC,KAAA,MACA,IAAA8B,WAAAW,EAAAhE,YAIA,SAAAvD,EAAAwH,EAAA5D,GACA,IAAA2D,EAAA,IAAArG,eACAqG,EAAAvE,KAAA,MAAAhD,GAAA,GACAuH,EAAA/D,aAAA,cACA+D,EAAAC,OAAA,WACA,KAAAD,EAAA3F,QAAA,GAAA2F,EAAA3F,QAAA2F,EAAAhE,SACAiE,EAAAD,EAAAhE,UAGAK,KAEA2D,EAAA3D,UACA2D,EAAAzC,KAAA,QAcA,IAAA2C,EAAA/B,EAAA,6BAAAgC,gBAAAC,IAAA1R,KAAAyR,SAAA,qBAAAE,YAAA,MACAC,EAAAnC,EAAA,gCAAAoC,kBAAA,qBAAAJ,iBAAAK,KAAA9R,KAAAyR,UAAAD,GAGA,IAAAzR,KAAA2P,EACAA,EAAArP,eAAAN,KACA0P,EAAA1P,GAAA2P,EAAA3P,IAKA2P,OAAAzB,EA+DA,IAAA8D,EAAA,CACAC,UAAA,SAAAC,EAAAC,GACA,OAAAD,EAAAC,GAEAC,SAAA,cAQA,IAAAlN,MAAA,GAsKA,IAkFAmN,EAlFAC,EAAA,EAEAC,EAAA,SAAA7S,GACA4S,EAAA5S,GAgCA,kBAAA8S,aACAX,EAAA,mCA0DA,IAAAY,GAAA,EAQA,SAAA5B,EAAA6B,EAAAC,GACAD,GACA7D,GAAA,qBAAA8D,GAsMA,IAAAC,EAAA,qBAAAC,YAAA,IAAAA,YAAA,aAAA3E,EAOA,SAAA4E,EAAAC,EAAAC,EAAAC,GAMA,IALA,IAAAC,EAAAF,EAAAC,EACAE,EAAAH,EAIAD,EAAAI,SAAAD,MAAAC,EAEA,GAAAA,EAAAH,EAAA,IAAAD,EAAAK,UAAAR,EACA,OAAAA,EAAAS,OAAAN,EAAAK,SAAAJ,EAAAG,IAIA,IAFA,IAAAhQ,EAAA,GAEA6P,EAAAG,GAAA,CAKA,IAAAG,EAAAP,EAAAC,KACA,OAAAM,EAAA,CACA,IAAAC,EAAA,GAAAR,EAAAC,KACA,aAAAM,GAAA,CACA,IAAAE,EAAA,GAAAT,EAAAC,KAOA,IALAM,EADA,UAAAA,IACA,GAAAA,IAAA,GAAAC,GAAA,EAAAC,GAEA,EAAAF,IAAA,GAAAC,GAAA,GAAAC,GAAA,KAAAT,EAAAC,MAGA,MACA7P,GAAAsQ,OAAAC,aAAAJ,OACO,CACP,IAAAK,EAAAL,EAAA,MACAnQ,GAAAsQ,OAAAC,aAAA,MAAAC,GAAA,cAAAA,SAZgCxQ,GAAAsQ,OAAAC,cAAA,GAAAJ,IAAA,EAAAC,QAFPpQ,GAAAsQ,OAAAC,aAAAJ,GAkBzB,OAAAnQ,EAkBA,SAAAyQ,EAAAC,EAAAZ,GACA,OAAAY,EAAAf,EAAAgB,EAAAD,EAAAZ,GAAA,GAqFA,qBAAAJ,aAAA,IAAAA,YAAA,YAmOA,IAaApR,EAEAsS,EAEAD,EAMAE,EAIAC,EAvBA,SAAAC,EAAAhC,EAAAiC,GAIA,OAHAjC,EAAAiC,EAAA,IACAjC,GAAAiC,EAAAjC,EAAAiC,GAEAjC,EAuBA,SAAAkC,IACA1E,EAAA,MAAAqE,EAAA,IAAAM,UAAA5S,GACAiO,EAAA,WAAA4E,WAAA7S,GACAiO,EAAA,OAAAsE,EAAA,IAAAO,WAAA9S,GACAiO,EAAA,OAAAoE,EAAA,IAAAlD,WAAAnP,GACAiO,EAAA,YAAA8E,YAAA/S,GACAiO,EAAA,YAAA+E,YAAAhT,GACAiO,EAAA,QAAAuE,EAAA,IAAAS,aAAAjT,GACAiO,EAAA,YAAAiF,aAAAlT,GAIA,IAKAmT,EAAA,QAOAC,EAAAnF,EAAA,wBAqCA,SAAAoF,EAAAC,GACA,KAAAA,EAAA7T,OAAA,IACA,IAAA8T,EAAAD,EAAAE,QACA,sBAAAD,EAAA,CAIA,IAAAE,EAAAF,EAAAE,KACA,kBAAAA,OACAhH,IAAA8G,EAAAG,IACAzF,EAAA,UAAAwF,GAEAxF,EAAA,WAAAwF,EAAAF,EAAAG,KAGAD,OAAAhH,IAAA8G,EAAAG,IAAA,KAAAH,EAAAG,UAXAH,KAxCAH,EAHA,SAGAhD,EAAA,uDAAAgD,EAAA,4BAUAxC,EADA3C,EAAA,WACAA,EAAA,WAEA,IAAA8C,YAAA4C,OAAA,CACAC,QAAAR,EApEA,WA0EApT,EAAA4Q,EAAA5Q,QAKAoT,EAAApT,EAAA6T,WACAlB,IAEAJ,EAAAY,GAAA,GApCA,QAiEA,IAAAW,EAAA,GACAC,EAAA,GACAC,EAAA,GAEAC,EAAA,GA0DA,SAAAC,EAAAC,GACAF,EAAA1O,QAAA4O,GA0BAhN,KAAAiN,IACAjN,KAAAkN,IACAlN,KAAAmN,IACAnN,KAAAoN,IACApN,KAAAqN,KACArN,KAAAsN,KACAtN,KAAAuN,KACAvN,KAAAwN,MACAxN,KAAAyN,IACAzN,KAAA+I,IACA/I,KAAA0N,KACA1N,KAAA2N,KACA3N,KAAA4N,MACA5N,KAAA6N,IACA7N,KAAA8N,KACA9N,KAAA+N,OACA/N,KAAAgO,MACAhO,KAAAC,IACAD,KAAAiO,IACAjO,KAAAkO,MACAlO,KAAAmO,MApBA,IA+BAC,EAAA,EACAC,EAAA,KACAC,EAAA,KA+BAxH,EAAA,mBACAA,EAAA,mBAGA,IAaAyH,EAAA,wCAGA,SAAAC,EAAA3G,GACA,OAAAgD,OAAApT,UAAAgX,WACA5G,EAAA4G,WAAAF,GACA,IAAA1G,EAAAhG,QAAA0M,GAMA,IAv2CA3P,EAu2CA8P,EAAA,cAKA,SAAAC,IACA,IACA,GAAA7H,EAAA,WACA,WAAAkB,WAAAlB,EAAA,YAEA,GAAAU,EACA,OAAAA,EAAAkH,GAEA,uDAGA,MAAAzF,GACAhD,GAAAgD,IA2BA,SAAA2F,EAAAjS,GAGA,IAAAkS,EAAA,CACAlS,MAEAmS,OAAA,CACAC,QACAC,cAEAC,cAAAjP,KACAkP,SAAA9F,GAKA,SAAA+F,EAAAC,EAAAxZ,GACA,IAAAD,EAAAyZ,EAAAzZ,QACAmR,EAAA,IAAAnR,EA7GA,SAAA0Z,GAKA,GAJAjB,IACAtH,EAAA,wBACAA,EAAA,uBAAAsH,GAEA,GAAAA,IACA,OAAAC,IACAiB,cAAAjB,GACAA,EAAA,MAEAC,GAAA,CACA,IAAAlC,EAAAkC,EACAA,EAAA,KACAlC,KAiGAmD,GAKA,SAAAC,EAAAC,GAKAN,EAAAM,EAAA,UAIA,SAAAC,EAAAC,GACA,OAtDA7I,EAAA,aAAAK,IAAAC,GAAA,oBAAAwI,MAWA,IAAAlM,QAAA,SAAAjF,EAAAkF,GACAlF,EAAAkQ,OAXAiB,MAAAlB,EAAA,CAAkCmB,YAAA,gBAA6B9J,KAAA,SAAApB,GAC/D,IAAAA,EAAA,GACA,4CAAA+J,EAAA,IAEA,OAAA/J,EAAA,gBACKmL,MAAA,WACL,OAAAnB,OA+CA5I,KAAA,SAAA+B,GACA,OAAA8B,YAAAmG,YAAAjI,EAAA+G,KACK9I,KAAA4J,EAAA,SAAAK,GACL/G,EAAA,0CAAA+G,GACA/J,GAAA+J,KA2BA,GAlKA5B,IACAtH,EAAA,wBACAA,EAAA,uBAAAsH,GAgKAtH,EAAA,gBACA,IAEA,OADAA,EAAA,gBAAA+H,EAAAM,GAEK,MAAAjU,GAEL,OADA+N,EAAA,sDAAA/N,IACA,EAKA,OAjCA,WACA,GAAA4L,EAAA,YACA,oBAAA8C,YAAAqG,sBACAzB,EAAAE,IACA,oBAAAkB,MAYA,OAAAF,EAAAF,GAXAI,MAAAlB,EAAA,CAA6BmB,YAAA,gBAA6B9J,KAAA,SAAApB,GAC1D,OAAAiF,YAAAqG,qBAAAtL,EAAAkK,GACA9I,KAAAyJ,EAAA,SAAAQ,GAGA/G,EAAA,kCAAA+G,GACA/G,EAAA,6CACAyG,EAAAF,OAoBAU,GACA,GAvHA1B,EAAAE,KAx2CA9P,EAy2CA8P,IAx2CA5H,EAAA,WACAA,EAAA,WAAAlI,EAAA+I,GAEAA,EAAA/I,GAk+CAkI,EAAA,aAAAgI,EAAAnS,EAAAwT,GAiBA,OAfAxT,EAAA,OAAA8M,EAGA9M,EAAA,UAAAiN,YAAAwG,MAAA,CACA3D,QAAA,KACA4D,QAAA,KACAC,QAAA,YAIA3T,EAAA,mBAEAA,EAAA,eAEAiS,EAAAjS,IAUA,IAAA4T,EAAA,UAAAC,GAAgCjI,KAAAkI,KAAAC,gBAAAF,KAqChC5D,EAAArQ,KAAA,CAA4C+P,KAAA,WAAmBqE,QAU/D,IAAAC,EAAA,QAgCA,IAAAC,GAAA,GAEAC,GAAA,GAEA,SAAAC,GAAA9F,GACAA,GACA4F,GAAA5F,GACA+F,WAGA,SAAAC,GAAAC,GACA,IAAAA,GAAAL,GAAAK,GAAA,OAAAA,EACA,QAAA9Z,KAAAyZ,GAIA,IAHA,IAAA5F,GAAA7T,EACA+Z,EAAAN,GAAA5F,GAAAiG,SACArV,EAAAsV,EAAA7Y,OACAzC,EAAA,EAAuBA,EAAAgG,EAAShG,IAChC,GAAAsb,EAAAtb,KAAAqb,EACA,OAAAjG,EAIA,OAAAiG,EAcA,IAAAE,GAAA,EAGA,SAAAC,GAAApG,GACA,IACA,OAAAqG,GAAArG,GACO,MAAA/P,KAEF,SAAAqW,GAAAtG,GACL,GAAAA,EAAA,CACA,IAAA4D,EAAAgC,GAAA5F,GACA4D,EAAAmC,WAIA,IAAAnC,EAAAmC,UAAAnC,EAAA2C,WACA3C,EAAA4C,YACA3K,EAAA,WAAA+H,EAAA4C,WAAAxG,UAEA4F,GAAA5F,GACAoG,GAAApG,KAoBK,SAAAyG,KACL,IAAAC,EAAAP,GACA,IAAAO,EAEA,UAAAhI,EAAA,MAEA,IAAAkF,EAAAgC,GAAAc,GACAC,EAAA/C,EAAAgD,KACA,IAAAD,EAEA,UAAAjI,EAAA,GAAAgI,GAEA,IAAAG,EAAAxV,MAAA7E,UAAA6H,MAAAtJ,KAAAgE,WAEA+X,GAAAH,GAGAxG,EAAA,QAAAuG,EACAA,EAFA,QAOA,QAAA9b,EAAA,EAAqBA,EAAAic,EAAAxZ,OAAsBzC,IAC3C,GAAAic,EAAAjc,IAAAmc,GAAAF,EAAAjc,GAAA+b,EAAAD,GAGA,OAFAA,EAAAvG,EAAA,MACAyD,EAAAqC,SAAA3U,KAAAoV,GACA,GAAAhI,EAAAmI,EAAAjc,IAAA8b,GAOA,OADAA,EAAAvG,EAAA,MACA,GAAAzB,EAAAiI,GAAAD,GAEA7K,EAAA,2BAAA4K,GAoDA,IAiESO,GAAA,CAAcC,QAAA,aAAAC,UAAA,SAAAC,EAAAC,GACvB,IAAAxZ,EAAAoZ,GAAAC,QAAAE,GACA,IAAAC,GAAA,KAAAA,IACA,IAAAD,EAAAvJ,EAAAI,GAAAiB,EAAArR,EAAA,IACAA,EAAAP,OAAA,GAEAO,EAAA0D,KAAA8V,IAEOC,QAAA,EAAA5b,IAAA,SAAA4b,GAGP,OAFAL,GAAAK,SAAA,EACAlH,EAAA6G,GAAA,eAEOM,OAAA,WAEP,OADAvH,EAAAiH,GAAAvb,QAEO8b,MAAA,WACP,IAAAC,EAAAR,GAAAvb,MAAAub,GAAAvb,MACA,OAAA+b,GACOC,QAAA,WACPT,GAAAvb,QAsEA,SAAAic,KACA,OAAAxH,EAAA7S,OAyCA,SAAAsa,GAAAC,GAEAA,EAAAvH,EAAAuH,EADA,OAEA,IAAAC,EAAAja,EAAA6T,WAOA,IAEA,WADAjD,EAAAsJ,MAAAF,EAAAC,GAAA,SAGAja,EAAA4Q,EAAA5Q,QACA,GAIO,MAAAqC,GACP,UAoQA,IAEA8X,GAAA,CACA/M,SACA0D,cACAsJ,YAlzDA,WACA,OAAAvJ,GAkzDAwJ,SAtLA,SAAA3T,GACA,IAAA4T,EAAAC,KACA,IACA,OAAAC,GAAA9T,GACG,MAAArE,GAEH,GADAoY,GAAAH,GACAjY,MAAA,eAAAA,EAAA,MAAAA,EACAqY,GAAA,OAgLAC,UA5KA,SAAAjU,EAAAkU,GACA,IAAAN,EAAAC,KACA,IACA,OAAAM,GAAAnU,EAAAkU,GACG,MAAAvY,GAEH,GADAoY,GAAAH,GACAjY,MAAA,eAAAA,EAAA,MAAAA,EACAqY,GAAA,OAsKAI,WAlKA,SAAApU,EAAAkU,EAAAG,GACA,IAAAT,EAAAC,KACA,IACA,OAAAS,GAAAtU,EAAAkU,EAAAG,GACG,MAAA1Y,GAEH,GADAoY,GAAAH,GACAjY,MAAA,eAAAA,EAAA,MAAAA,EACAqY,GAAA,OA4JAO,YAxJA,SAAAvU,EAAAkU,EAAAG,EAAAG,GACA,IAAAZ,EAAAC,KACA,IACA,OAAAY,GAAAzU,EAAAkU,EAAAG,EAAAG,GACG,MAAA7Y,GAEH,GADAoY,GAAAH,GACAjY,MAAA,eAAAA,EAAA,MAAAA,EACAqY,GAAA,OAkJAU,aA9IA,SAAA1U,EAAAkU,EAAAG,EAAAG,EAAAG,GACA,IAAAf,EAAAC,KACA,IACA,OAAAe,GAAA5U,EAAAkU,EAAAG,EAAAG,EAAAG,GACG,MAAAhZ,GAEH,GADAoY,GAAAH,GACAjY,MAAA,eAAAA,EAAA,MAAAA,EACAqY,GAAA,OAwIAa,cApIA,SAAA7U,EAAAkU,EAAAG,EAAAG,EAAAG,EAAAG,GACA,IAAAlB,EAAAC,KACA,IACA,OAAAkB,GAAA/U,EAAAkU,EAAAG,EAAAG,EAAAG,EAAAG,GACG,MAAAnZ,GAEH,GADAoY,GAAAH,GACAjY,MAAA,eAAAA,EAAA,MAAAA,EACAqY,GAAA,OA8HAgB,UA1HA,SAAAhV,EAAAkU,GACA,IAAAN,EAAAC,KACA,IACA,OAAAoB,GAAAjV,EAAAkU,GACG,MAAAvY,GAEH,GADAoY,GAAAH,GACAjY,MAAA,eAAAA,EAAA,MAAAA,EACAqY,GAAA,OAoHAkB,SAhHA,SAAAlV,GACA,IAAA4T,EAAAC,KACA,IACAsB,GAAAnV,GACG,MAAArE,GAEH,GADAoY,GAAAH,GACAjY,MAAA,eAAAA,EAAA,MAAAA,EACAqY,GAAA,OA0GAoB,UAtGA,SAAApV,EAAAkU,GACA,IAAAN,EAAAC,KACA,IACAwB,GAAArV,EAAAkU,GACG,MAAAvY,GAEH,GADAoY,GAAAH,GACAjY,MAAA,eAAAA,EAAA,MAAAA,EACAqY,GAAA,OAgGAsB,WA5FA,SAAAtV,EAAAkU,EAAAG,GACA,IAAAT,EAAAC,KACA,IACA0B,GAAAvV,EAAAkU,EAAAG,GACG,MAAA1Y,GAEH,GADAoY,GAAAH,GACAjY,MAAA,eAAAA,EAAA,MAAAA,EACAqY,GAAA,OAsFAwB,YAlFA,SAAAxV,EAAAkU,EAAAG,EAAAG,GACA,IAAAZ,EAAAC,KACA,IACA4B,GAAAzV,EAAAkU,EAAAG,EAAAG,GACG,MAAA7Y,GAEH,GADAoY,GAAAH,GACAjY,MAAA,eAAAA,EAAA,MAAAA,EACAqY,GAAA,OA4EA0B,aAxEA,SAAA1V,EAAAkU,EAAAG,EAAAG,EAAAG,GACA,IAAAf,EAAAC,KACA,IACA8B,GAAA3V,EAAAkU,EAAAG,EAAAG,EAAAG,GACG,MAAAhZ,GAEH,GADAoY,GAAAH,GACAjY,MAAA,eAAAA,EAAA,MAAAA,EACAqY,GAAA,OAkEA4B,cA9DA,SAAA5V,EAAAkU,EAAAG,EAAAG,EAAAG,EAAAG,GACA,IAAAlB,EAAAC,KACA,IACAgC,GAAA7V,EAAAkU,EAAAG,EAAAG,EAAAG,EAAAG,GACG,MAAAnZ,GAEH,GADAoY,GAAAH,GACAjY,MAAA,eAAAA,EAAA,MAAAA,EACAqY,GAAA,OAwDA8B,gBApDA,SAAA9V,EAAAkU,EAAAG,EAAAG,EAAAG,EAAAG,EAAAiB,EAAAC,GACA,IAAApC,EAAAC,KACA,IACAoC,GAAAjW,EAAAkU,EAAAG,EAAAG,EAAAG,EAAAG,EAAAiB,EAAAC,GACG,MAAAra,GAEH,GADAoY,GAAAH,GACAjY,MAAA,eAAAA,EAAA,MAAAA,EACAqY,GAAA,OA8CAkC,YA1CA,SAAAlW,EAAAkU,EAAAG,EAAAG,EAAAG,GACA,IAAAf,EAAAC,KACA,IACAsC,GAAAnW,EAAAkU,EAAAG,EAAAG,EAAAG,GACG,MAAAhZ,GAEH,GADAoY,GAAAH,GACAjY,MAAA,eAAAA,EAAA,MAAAA,EACAqY,GAAA,OAoCAoC,YAhCA,SAAApW,EAAAkU,EAAAG,EAAAG,EAAAG,GACA,IAAAf,EAAAC,KACA,IACAwC,GAAArW,EAAAkU,EAAAG,EAAAG,EAAAG,GACG,MAAAhZ,GAEH,GADAoY,GAAAH,GACAjY,MAAA,eAAAA,EAAA,MAAAA,EACAqY,GAAA,OA0BAsC,eA/pBA,SAAA/L,EAAAjC,EAAAiO,EAAAxJ,GACArG,GAAA,qBAAA+E,EAAAlB,GAAA,UAAAjC,EAAAmD,EAAAnD,GAAA,mBAAAiO,EAAAxJ,EAAAtB,EAAAsB,GAAA,sBA+pBAyJ,0BA5pBA,SAAAlD,GACA,OAAAmD,GAAAnD,IA4pBAoD,mBAjoBK,SAAAhL,GACL,IAAA4D,EAAAgC,GAAA5F,GAQA,OAPA4D,MAAAqH,SACArH,EAAAqH,QAAA,EACAC,GAAAC,uBAEAvH,MAAA2C,UAAA,GACAV,GAAAvU,KAAA0O,GACA8F,GAAAE,GAAAhG,IACAA,GAynBAoL,iBA7lBA,WAEA9C,GAAA,GAEA,IAAAtI,EAAA6F,GAAAwF,MACArL,IACAsG,GAAAN,GAAAhG,IACAmG,GAAA,IAulBAM,8BACA6E,6BA3iBoE,SAAAC,EAAA/C,GAEpE,OAAA/B,GAAA8E,EAAA/C,IA0iBAgD,6BAviBA,SAAAD,EAAA/C,EAAAG,GAEA,OAAAlC,GAAA8E,EAAA/C,EAAAG,IAsiBAvC,yBACAqF,yBAniBA,SAAAzL,GAEA,OAAAA,GAkiBA0L,oBA/hBA,WAEA,MADA9M,GAAA,EACA,iCA8hBA+M,aA3hBA,SAAA3L,EAAA4G,EAAAJ,GAgBA,MAfAZ,GAAA5F,GAAA,CACAA,MACAiG,SAAA,CAAAjG,GACA4G,OACAJ,aACAT,SAAA,EACAkF,QAAA,EACA1E,UAAA,GAEAJ,GAAAnG,EACA,uBAAAkL,GAGAA,GAAAC,sBAFAD,GAAAC,oBAAA,EAIAnL,GA4gBA4L,2BAzgBA,WACA,OAAAV,GAAAC,qBAygBArF,uBACAE,yBACAM,uBACAuF,sBAzgBA,aA0gBAC,QAvgBA,aAwgBAC,mBA9lBA,SAAA/L,GAEA,MADAmG,KAA+BA,GAAAnG,GAC/BA,GA6lBAgM,YA1UA,SAAAngB,GAEA,OADAgQ,EAAA,oBAAAsE,EAAAtE,EAAA,wBAAAhQ,GACAA,GAyUAogB,cAhbS,SAAAC,EAAA7E,GAAwCL,GAAAK,UACjD,IAGA,OADAL,GAAAmF,kBAAAnF,GAAAvb,MAAAub,GAAAvb,MAAAub,GAAAvb,MAAAub,GAAAvb,MACA,EACK,MAAAwE,GAEL,MADA,qBAAAmc,IAAAnc,aAAAmc,GAAAC,YAAArR,GAAA/K,IACAA,EAAAqc,QA0aAC,cA9ZK,SAAAL,EAAA7E,GAAwCL,GAAAK,UAC7C,IAKA,IAFA,IAAAF,EAAAH,GAAAvb,MAAA+gB,EAAAxF,GAAAvb,MAAAghB,EAAAzF,GAAAvb,MACAqR,EAAA,EACAlS,EAAA,EAAqBA,EAAA6hB,EAAY7hB,IAAA,CAGjC,IAFA,IAAAoV,EAAAG,EAAA,IAAAvV,GAAA,GACAgG,EAAAuP,EAAA,KAAAvV,EAAA,OACA8hB,EAAA,EAAuBA,EAAA9b,EAAS8b,IAChC1F,GAAAE,UAAAC,EAAAlH,EAAAD,EAAA0M,IAEA5P,GAAAlM,EAEA,OAAAkM,EACK,MAAA7M,GAEL,MADA,qBAAAmc,IAAAnc,aAAAmc,GAAAC,YAAArR,GAAA/K,IACAA,EAAAqc,QA8YAK,aA1YA,SAAAT,EAAA7E,GAAyCL,GAAAK,UACzC,IAEA,SACK,MAAApX,GAEL,MADA,qBAAAmc,IAAAnc,aAAAmc,GAAAC,YAAArR,GAAA/K,IACAA,EAAAqc,QAqYAM,YAjYA,SAAAV,EAAA7E,GAAwCL,GAAAK,UACxC,IAGA,OADAL,GAAAmF,kBACA,EACK,MAAAlc,GAEL,MADA,qBAAAmc,IAAAnc,aAAAmc,GAAAC,YAAArR,GAAA/K,IACAA,EAAAqc,QA2XAO,UAvXA,aAwXAC,qBAxvBA,WAAgCxP,KAAAkI,KAAAuH,kBAyvBhCC,oBAxvBA,SAAAC,EAAAC,EAAAC,EAAAC,EAAAxc,GAA8C0M,KAAAkI,KAAA6H,cAAAJ,EAAAC,EAAAC,EAAAC,EAAAxc,IAyvB9C0c,OAxXA,WACAzR,EAAA,SAwXA0R,kBAzvBA,SAAAnJ,EAAApE,EAAA4H,GAAwCtK,KAAAkI,KAAAgI,aAAApJ,EAAAnE,EAAA5L,MAAA2L,IAAA4H,KA0vBxC6F,wBAzvBA,SAAArJ,EAAApE,EAAA0N,EAAAC,EAAAC,GAA+DtQ,KAAAkI,KAAAqI,iBAAAzJ,EAAAhE,EAAA/L,MAAA2L,EAAA,EAAAA,EAAA,EAAA0N,EAAAC,GAAAD,EAAAC,EAAAC,IA0vB/DE,kBAzvBA,SAAA1J,GAA+B9G,KAAAkI,KAAAuI,aAAA3J,IA0vB/B4J,gBAzvBA,WAA2B1Q,KAAAkI,KAAAyI,cA0vB3BC,eAzvBA,SAAAC,GAA+B7Q,KAAAkI,KAAA4I,UAAAjO,EAAAZ,SAAA4O,EAAA,EAAAA,EAAA,OA0vB/BE,eAzvBA,SAAAhQ,EAAAC,EAAAgQ,EAAAC,EAAAvO,GAAqC1C,KAAAkI,KAAAgJ,UAAAnQ,EAAAC,EAAAgQ,EAAAC,EAAAtO,EAAAV,SAAAS,IAAAsO,EAAAC,EAAA,KA0vBrCE,oBAzvBA,SAAAxB,EAAAC,EAAAC,EAAAC,GAA0C9P,KAAAkI,KAAAkJ,eAAAzB,EAAAC,EAAAC,EAAAC,IA0vB1CuB,cAzvBA,WAAyBrR,KAAAkI,KAAAoJ,YA0vBzBC,eAzvBA,SAAAxQ,EAAAC,EAAA0B,EAAA8O,GAAuC,IAAAla,EAAAqL,EAAArJ,QAAA,EAAAoJ,GAAkClB,EAAAc,OAAAC,aAAAtO,MAAA,KAAA0O,EAAAV,SAAAS,EAAApL,IAAuE0I,KAAAkI,KAAAuJ,UAAA1Q,EAAAC,EAAAQ,EAAAgQ,IA0vBhJE,qBAzvBA,SAAA5K,EAAA6K,GAAwC3R,KAAAkI,KAAA0J,gBAAA9K,EAAA6K,IA0vBxCE,eAzvBA,WAA0B7R,KAAAkI,KAAA4J,aA0vB1BC,gBAzvBA,SAAAjL,EAAAkL,EAAAC,EAAAC,GAA6ClS,KAAAkI,KAAAiK,WAAArL,EAAAkL,EAAAC,EAAAC,IA0vB7CE,gBAzvBA,SAAArR,EAAAC,GAA8BhB,KAAAkI,KAAAmK,WAAAtR,EAAAC,IA0vB9BsR,gBAzvBA,SAAAxL,EAAAkL,GAAoChS,KAAAkI,KAAAqK,WAAAzL,EAAAkL,IA0vBpCQ,gBAzvBA,SAAA1L,GAA6B9G,KAAAkI,KAAAuK,WAAA3L,IA0vB7B4L,mBAzvBA,SAAAC,GAAiC3S,KAAAkI,KAAA0K,cAAAD,IA0vBjCE,sBAzvBA,WAAiC,OAAA7S,KAAAkI,KAAA4K,oBA0vBjCC,oBAzvBA,SAAArQ,EAAA4H,GAAuCtK,KAAAkI,KAAA8K,eAAArQ,EAAAV,SAAAS,IAAA4H,KA0vBvC2I,yBAhxBA,SAAAjb,EAAAiW,GACA,OAAAjG,EAAAhQ,GAAAiW,IAgxBA7D,6BACA8I,uBAlXA,SAAAC,EAAA7U,EAAA8U,GACAzQ,EAAA0Q,IAAA1Q,EAAAV,SAAA3D,IAAA8U,GAAAD,IAkXAG,wBAxUK,SAAAC,GACL,IAAAhJ,EAAAH,KAOA,GAAAmJ,EAFA,WAGA,SAOA,IAJA,IACAC,EAAA/b,KAAAiO,IAAA6E,EADA,UAIAiJ,EAAAD,GAEAC,EADAA,GAAA,UACAzQ,EAAA,EAAAyQ,EAbA,OAgBA/b,KAAAC,IAAAqL,GAAA,EAAAyQ,EAAA,cAhBA,OACA,YAuBA,QAAAnJ,GAAAmJ,KAIAvQ,KAIA,IAoSAwQ,MArYA,SAAAhZ,IA03BA,SAAAA,EAAAiZ,GAMAA,GAAAnV,EAAA,mBAAA9D,IAIA8D,EAAA,gBAGA+C,GAAA,EACA7G,GAvkDA,EA2kDA8D,EAAA,QAAAA,EAAA,OAAA9D,IAGA8D,EAAA,KAAA9D,EAAA,IAAAmF,GAAAnF,KA54BAkZ,CAAAlZ,IAmYAmZ,YA9vBA,SAAAlT,GAA0B,IAAApJ,EAAAqL,EAAArJ,QAAA,EAAAoH,GAAoCc,EAAAc,OAAAC,aAAAtO,MAAA,KAAA0O,EAAAV,SAAAvB,EAAApJ,IAAyE0I,KAAAkI,KAAA2L,WAAArS,IA+vBvIsS,mBA9vBA,SAAAzd,EAAAqM,EAAAqR,EAAAzJ,GAAkD,IAAAhT,EAAAqL,EAAArJ,QAAA,EAAAjD,GAAoCmL,EAAAc,OAAAC,aAAAtO,MAAA,KAAA0O,EAAAV,SAAA5L,EAAAiB,IAAyE0I,KAAAkI,KAAA8L,kBAAAxS,EAAAmB,EAAAV,SAAAS,IAAA4H,GAAAyJ,IA+vB/JE,eA9vBA,SAAA5d,GAA8B,IAAAiB,EAAAqL,EAAArJ,QAAA,EAAAjD,GAAoCmL,EAAAc,OAAAC,aAAAtO,MAAA,KAAA0O,EAAAV,SAAA5L,EAAAiB,IAAyE,OAAA0I,KAAAkI,KAAAgM,cAAA1S,IA+vB3I2S,oBAjYA,SAAA7K,GACA,OAAAA,GAiYA8K,WA9XA,WACA1W,GAAA,UA8XA2W,mBAhwBA,SAAAhe,EAAAqM,EAAA4H,GAA2C,IAAAhT,EAAAqL,EAAArJ,QAAA,EAAAjD,GAAoCmL,EAAAc,OAAAC,aAAAtO,MAAA,KAAA0O,EAAAV,SAAA5L,EAAAiB,IAAwE0I,KAAAkI,KAAAoM,kBAAA9S,EAAAmB,EAAA5L,MAAA2L,IAAA4H,KAiwBvJiK,aAhwBA,SAAAle,GAA4B,IAAAiB,EAAAqL,EAAArJ,QAAA,EAAAjD,GAAoCmL,EAAAc,OAAAC,aAAAtO,MAAA,KAAA0O,EAAAV,SAAA5L,EAAAiB,IAAyE0I,KAAAkI,KAAAsM,YAAAhT,IAiwBzIiT,YAhwBA,SAAA/T,GAA0B,IAAApJ,EAAAqL,EAAArJ,QAAA,EAAAoH,GAAoCc,EAAAc,OAAAC,aAAAtO,MAAA,KAAA0O,EAAAV,SAAAvB,EAAApJ,IAA2E0I,KAAA0U,MAAAlT,IAiwBzImT,MA1SA,SAAAjS,GACA,IAAAlD,EAAAoV,KAAAC,MAAA,MAIA,OAHAnS,IACAG,EAAA,MAAArD,GAEAA,GAsSAsV,WAjwBA,WAAsB9U,KAAA+U,YAAuB/U,KAAA+U,WAAAhH,OAkwB7CiH,YAjwBA,SAAAtS,GAA0B,IAAApL,EAAAqL,EAAArJ,QAAA,EAAAoJ,GAAkClB,EAAAc,OAAAC,aAAAtO,MAAA,KAAA0O,EAAAV,SAAAS,EAAApL,IAAuEiJ,QAAAC,IAAAgB,GAAmBxB,KAAA+U,WAAA/U,KAAA+U,YAAA,GAAyC/U,KAAA+U,WAAA/gB,KAAAwN,IAkwB/LyT,wBA/WA,SAAA1B,GACA7V,GAAA,QA+WA2M,6BACA6K,oBAhdA,WAEA,IAAAC,EAAA5W,EAAA,QACA4W,KAAA,GACA,IAAAxL,EAAAD,GAAAC,QACAA,EAAA,GAAA5Z,QAAA2Z,GAAAE,UAAA,MACAD,EAAA,GAAA5Z,QAAA2Z,GAAAE,UAAA,OA2cAvB,gBACA5E,kBAGA2R,GAAA7W,EAAA,IA1FA,GA2FAkM,GAAAna,GAEAiO,EAAA,IAAA6W,GACA7W,EAAA,6BACA,OAAAA,EAAA,sBAAAtK,MAAA,KAAAxC,YAGA8M,EAAA,sBACA,OAAAA,EAAA,eAAAtK,MAAA,KAAAxC,YAGA8M,EAAA,sBACA,OAAAA,EAAA,eAAAtK,MAAA,KAAAxC,YAGA8M,EAAA,qBACA,OAAAA,EAAA,cAAAtK,MAAA,KAAAxC,YAGA8M,EAAA,uBACA,OAAAA,EAAA,gBAAAtK,MAAA,KAAAxC,YAGA8M,EAAA,wBACA,OAAAA,EAAA,iBAAAtK,MAAA,KAAAxC,YAGA8M,EAAA,0BACA,OAAAA,EAAA,mBAAAtK,MAAA,KAAAxC,YAGA8M,EAAA,6BACA,OAAAA,EAAA,sBAAAtK,MAAA,KAAAxC,YAGA8M,EAAA,+BACA,OAAAA,EAAA,wBAAAtK,MAAA,KAAAxC,YAGA8M,EAAA,iCACA,OAAAA,EAAA,0BAAAtK,MAAA,KAAAxC,YArCA,IAwCAmc,GAAArP,EAAA,sCACA,OAAAA,EAAA,+BAAAtK,MAAA,KAAAxC,YAGAgY,GAAAlL,EAAA,4BACA,OAAAA,EAAA,qBAAAtK,MAAA,KAAAxC,YAGA+X,GAAAjL,EAAA,kCACA,OAAAA,EAAA,2BAAAtK,MAAA,KAAAxC,YAuHAsX,IApHAxK,EAAA,yCACA,OAAAA,EAAA,kCAAAtK,MAAA,KAAAxC,YAGA8M,EAAA,wCACA,OAAAA,EAAA,iCAAAtK,MAAA,KAAAxC,YAGA8M,EAAA,sCACA,OAAAA,EAAA,+BAAAtK,MAAA,KAAAxC,YAGA8M,EAAA,4CACA,OAAAA,EAAA,qCAAAtK,MAAA,KAAAxC,YAGA8M,EAAA,sCACA,OAAAA,EAAA,+BAAAtK,MAAA,KAAAxC,YAGA8M,EAAA,oCACA,OAAAA,EAAA,6BAAAtK,MAAA,KAAAxC,YAGA8M,EAAA,mCACA,OAAAA,EAAA,4BAAAtK,MAAA,KAAAxC,YAGA8M,EAAA,mCACA,OAAAA,EAAA,4BAAAtK,MAAA,KAAAxC,YAGA8M,EAAA,wCACA,OAAAA,EAAA,iCAAAtK,MAAA,KAAAxC,YAGA8M,EAAA,kCACA,OAAAA,EAAA,2BAAAtK,MAAA,KAAAxC,YAGA8M,EAAA,mCACA,OAAAA,EAAA,4BAAAtK,MAAA,KAAAxC,YAGA8M,EAAA,yCACA,OAAAA,EAAA,kCAAAtK,MAAA,KAAAxC,YAGA8M,EAAA,mCACA,OAAAA,EAAA,4BAAAtK,MAAA,KAAAxC,YAGA8M,EAAA,oCACA,OAAAA,EAAA,6BAAAtK,MAAA,KAAAxC,YAGA8M,EAAA,oCACA,OAAAA,EAAA,6BAAAtK,MAAA,KAAAxC,YAGA8M,EAAA,oCACA,OAAAA,EAAA,6BAAAtK,MAAA,KAAAxC,YAGA8M,EAAA,oCACA,OAAAA,EAAA,6BAAAtK,MAAA,KAAAxC,YAGA8M,EAAA,uCACA,OAAAA,EAAA,gCAAAtK,MAAA,KAAAxC,YAGA8M,EAAA,0CACA,OAAAA,EAAA,mCAAAtK,MAAA,KAAAxC,YAGA8M,EAAA,wCACA,OAAAA,EAAA,iCAAAtK,MAAA,KAAAxC,YAGA8M,EAAA,gCACA,OAAAA,EAAA,yBAAAtK,MAAA,KAAAxC,YAGA8M,EAAA,uCACA,OAAAA,EAAA,gCAAAtK,MAAA,KAAAxC,YAGA8M,EAAA,mCACA,OAAAA,EAAA,4BAAAtK,MAAA,KAAAxC,YAGA8M,EAAA,uCACA,OAAAA,EAAA,gCAAAtK,MAAA,KAAAxC,YAGA8M,EAAA,iCACA,OAAAA,EAAA,0BAAAtK,MAAA,KAAAxC,YAGA8M,EAAA,gCACA,OAAAA,EAAA,yBAAAtK,MAAA,KAAAxC,YAGA8M,EAAA,+BACA,OAAAA,EAAA,wBAAAtK,MAAA,KAAAxC,YAGA8M,EAAA,gCACA,OAAAA,EAAA,yBAAAtK,MAAA,KAAAxC,YAGA8M,EAAA,sCACA,OAAAA,EAAA,+BAAAtK,MAAA,KAAAxC,YAGA8M,EAAA,iBACA,OAAAA,EAAA,UAAAtK,MAAA,KAAAxC,aAOAgc,IAJAlP,EAAA,2BACA,OAAAA,EAAA,oBAAAtK,MAAA,KAAAxC,YAGA8M,EAAA,mBACA,OAAAA,EAAA,YAAAtK,MAAA,KAAAxC,aAmBAuZ,IAhBAzM,EAAA,mBACA,OAAAA,EAAA,YAAAtK,MAAA,KAAAxC,YAGA8M,EAAA,oBACA,OAAAA,EAAA,aAAAtK,MAAA,KAAAxC,YAGA8M,EAAA,mBACA,OAAAA,EAAA,YAAAtK,MAAA,KAAAxC,YAGA8M,EAAA,iBACA,OAAAA,EAAA,UAAAtK,MAAA,KAAAxC,YAGA8M,EAAA,qBACA,OAAAA,EAAA,cAAAtK,MAAA,KAAAxC,aAOA2W,IAJA7J,EAAA,+BACA,OAAAA,EAAA,wBAAAtK,MAAA,KAAAxC,YAGA8M,EAAA,uBACA,OAAAA,EAAA,gBAAAtK,MAAA,KAAAxC,aAOAsZ,IAJAxM,EAAA,sBACA,OAAAA,EAAA,eAAAtK,MAAA,KAAAxC,YAGA8M,EAAA,wBACA,OAAAA,EAAA,iBAAAtK,MAAA,KAAAxC,aAGAoZ,GAAAtM,EAAA,qBACA,OAAAA,EAAA,cAAAtK,MAAA,KAAAxC,YAGAqZ,GAAAvM,EAAA,qBACA,OAAAA,EAAA,cAAAtK,MAAA,KAAAxC,YAGA0Z,GAAA5M,EAAA,sBACA,OAAAA,EAAA,eAAAtK,MAAA,KAAAxC,YAOA6Z,IAJA/M,EAAA,2BACA,OAAAA,EAAA,oBAAAtK,MAAA,KAAAxC,YAGA8M,EAAA,uBACA,OAAAA,EAAA,gBAAAtK,MAAA,KAAAxC,aAGAga,GAAAlN,EAAA,wBACA,OAAAA,EAAA,iBAAAtK,MAAA,KAAAxC,YAGAma,GAAArN,EAAA,yBACA,OAAAA,EAAA,kBAAAtK,MAAA,KAAAxC,YAGAsa,GAAAxN,EAAA,0BACA,OAAAA,EAAA,mBAAAtK,MAAA,KAAAxC,YAGAwa,GAAA1N,EAAA,sBACA,OAAAA,EAAA,eAAAtK,MAAA,KAAAxC,YAOA0a,IAJA5N,EAAA,wBACA,OAAAA,EAAA,iBAAAtK,MAAA,KAAAxC,YAGA8M,EAAA,qBACA,OAAAA,EAAA,cAAAtK,MAAA,KAAAxC,aAGA4a,GAAA9N,EAAA,sBACA,OAAAA,EAAA,eAAAtK,MAAA,KAAAxC,YAGA8a,GAAAhO,EAAA,uBACA,OAAAA,EAAA,gBAAAtK,MAAA,KAAAxC,YAGAgb,GAAAlO,EAAA,wBACA,OAAAA,EAAA,iBAAAtK,MAAA,KAAAxC,YAGAkb,GAAApO,EAAA,yBACA,OAAAA,EAAA,kBAAAtK,MAAA,KAAAxC,YAGAob,GAAAtO,EAAA,0BACA,OAAAA,EAAA,mBAAAtK,MAAA,KAAAxC,YAOAwb,IAJA1O,EAAA,2BACA,OAAAA,EAAA,oBAAAtK,MAAA,KAAAxC,YAGA8M,EAAA,4BACA,OAAAA,EAAA,qBAAAtK,MAAA,KAAAxC,aAWA0b,IARA5O,EAAA,8BACA,OAAAA,EAAA,uBAAAtK,MAAA,KAAAxC,YAGA8M,EAAA,+BACA,OAAAA,EAAA,wBAAAtK,MAAA,KAAAxC,YAGA8M,EAAA,wBACA,OAAAA,EAAA,iBAAAtK,MAAA,KAAAxC,aAGA4b,GAAA9O,EAAA,wBACA,OAAAA,EAAA,iBAAAtK,MAAA,KAAAxC,YAgHA,SAAAmO,GAAAnF,GACA7H,KAAA/E,KAAA,aACA+E,KAAAiL,QAAA,gCAAApD,EAAA,IACA7H,KAAA6H,SA3GA8D,EAAA,IAAA6W,GAkFA7W,EAAA,cAAAwF,GAGA,GAAAxF,EAAA,UACAwF,EAAAxF,OACG,CAGH,IAAA8W,EAAA9W,EAAA,qBACAA,EAAA,gCACA8W,OACAtR,EAAAxF,IAGA,OAAAA,GAaAqB,GAAA1Q,UAAA,IAAAoD,MACAsN,GAAA1Q,UAAAomB,YAAA1V,GAeA,SAAArM,GAAAO,GAaA,SAAAyhB,IACAhX,EAAA,YACAA,EAAA,aAEA+C,KAziDA,EAEAqC,EAAAU,GAKAV,EAAAW,GAwiDA/F,EAAA,sBAAAA,EAAA,uBAjiDA,WAEA,GAAAA,EAAA,QAEA,IADA,mBAAAA,EAAA,UAAAA,EAAA,SAAAA,EAAA,UACAA,EAAA,QAAAxO,QACAyU,EAAAjG,EAAA,QAAAuF,SAGAH,EAAAY,GA4hDAiR,KAzBA1hB,KAAAyK,EAAA,UAEAsH,EAAA,KAviDA,WAEA,GAAAtH,EAAA,OAEA,IADA,mBAAAA,EAAA,SAAAA,EAAA,QAAAA,EAAA,SACAA,EAAA,OAAAxO,QAiCA0U,EAhCAlG,EAAA,OAAAuF,QAiCAM,EAAAvO,QAAA4O,GADA,IAAAA,EA7BAd,EAAAS,GAoiDAqR,GAEA5P,EAAA,GACAtH,EAAA,YAkBAA,EAAA,WACAA,EAAA,wBACA7L,WAAA,WACAA,WAAA,WACA6L,EAAA,eACO,GACPgX,KACK,IAELA,MAjDAxP,EAAA,SAAA2P,IAEAnX,EAAA,WAAAhL,KACAgL,EAAA,YAAAwH,EAAA2P,IAiDAnX,EAAA,IAAAhL,GA6BA,SAAAmK,GAAAiY,GAYA,MAXApX,EAAA,SACAA,EAAA,QAAAoX,GAIArV,EADAqV,GAAA,IAEAjV,EAAAiV,GAEArU,GAAA,EACA,EAEA,SAAAqU,EAAA,+CAIA,GAFApX,EAAA,MAAAb,GAEAa,EAAA,QAEA,IADA,mBAAAA,EAAA,UAAAA,EAAA,SAAAA,EAAA,UACAA,EAAA,QAAAxO,OAAA,GACAwO,EAAA,QAAAwP,KAAAxP,GA6BA,OAxBAA,EAAA,iBAEAhL,KAUAgL,EAAA,UAAApD,QAAA,SAAAjF,EAAAkF,UACAmD,EAAA,KACAA,EAAA,iBAAAoX,GACAva,EAAAua,IAEAnR,EAAA,WACAtO,EAAAqI,OAMAJ,GAv6FA,GA46FA9Q,EAAAD,QAAA+Q,yCC76FA9Q,EAAAD,QAAiBF,EAAAkC,EAAuB,yECCxC,IAAAwmB,EAAA,WACA,IAAAxX,EAAA,qBAAA/M,mBAAAgN,cAAAhN,SAAAgN,cAAAC,SAAAvB,EACA,gBACA6Y,GAqBA,IAYA/mB,EAZA0P,EAAA,qBApBAqX,KAAA,IAoBAA,EAAA,GAWApX,EAAA,GAEA,IAAA3P,KAAA0P,EACAA,EAAApP,eAAAN,KACA2P,EAAA3P,GAAA0P,EAAA1P,IAIA0P,EAAA,aACAA,EAAA,6BACAA,EAAA,cAAA9D,EAAAgE,GACA,MAAAA,GAEAF,EAAA,UACAA,EAAA,WAKA,IAEAG,EAEAC,EAJAC,GAAA,EACAC,GAAA,EAIAD,EAAA,kBAAAxN,OACAyN,EAAA,oBAAAC,cAOAJ,EADA,kBAAAtM,GAAA,kBAAAA,EAAAmC,UAAA,kBAAAnC,EAAAmC,SAAAwK,OACAH,IAAAC,EACAF,GAAAC,IAAAF,IAAAG,EAaA,IAUAG,EAEAC,EAQAC,EACAC,EArBAC,EAAA,GAeAV,GACAU,EAAAC,EAAA,IAOAL,EAAA,SAAAM,EAAAC,GACA,IAAAC,EAKA,OAJAN,MAA4BhS,EAAQ,IACpCiS,MAAgCjS,EAAQ,IACxCoS,EAAAH,EAAA,UAAAG,GACAE,EAAAN,EAAA,aAAAI,GACAC,EAAAC,IAAAjQ,YAGA0P,EAAA,SAAAK,GACA,IAAAE,EAAAR,EAAAM,GAAA,GAKA,OAJAE,EAAAlP,SACAkP,EAAA,IAAAC,WAAAD,IAEAE,EAAAF,EAAAlP,QACAkP,GAGApN,EAAA,KAAArC,OAAA,IACAwO,EAAA,YAAAnM,EAAA,QAAAH,QAAA,YAGAsM,EAAA,UAAAnM,EAAA,KAAA2E,MAAA,GAIA3E,EAAA,gCAAAuN,GAEA,KAAAA,aAAAC,IACA,MAAAD,IAKAvN,EAAA,wBAAAsL,IAEAa,EAAA,cAAA9D,GACArI,EAAA,KAAAqI,IAGA8D,EAAA,mBAAmC,qCAEnCI,GAGA,oBAAA7B,OACAkC,EAAA,SAAAhJ,GACA,OAAA8G,KAAA9G,KAIAiJ,EAAA,SAAAjJ,GACA,IAAAkE,EACA,0BAAA2F,WACA,IAAAJ,WAAAI,WAAA7J,KAGA0J,EAAA,kBADAxF,EAAA4C,KAAA9G,EAAA,YAEAkE,IAGA,oBAAA4F,WACAvB,EAAA,UAAAuB,WACG,oBAAArO,YACH8M,EAAA,UAAA9M,WAGA,oBAAAsO,OACAxB,EAAA,cAAA9D,GACAsF,KAAAtF,OAIAmE,GAAAC,KACAA,EACAO,EAAAY,KAAAC,SAAAC,KACG7O,SAAAgN,gBACHe,EAAA/N,SAAAgN,cAAAC,KAIAF,IACAgB,EAAAhB,GAOAgB,EADA,IAAAA,EAAA9F,QAAA,SACA8F,EAAAvI,OAAA,EAAAuI,EAAAe,YAAA,QAEA,GAIAnB,EAAA,SAAAnG,GACA,IAAAuH,EAAA,IAAArG,eAGA,OAFAqG,EAAAvE,KAAA,MAAAhD,GAAA,GACAuH,EAAAzC,KAAA,MACAyC,EAAA9D,cAGAuC,IACAI,EAAA,SAAApG,GACA,IAAAuH,EAAA,IAAArG,eAIA,OAHAqG,EAAAvE,KAAA,MAAAhD,GAAA,GACAuH,EAAA/D,aAAA,cACA+D,EAAAzC,KAAA,MACA,IAAA8B,WAAAW,EAAAhE,YAIA,SAAAvD,EAAAwH,EAAA5D,GACA,IAAA2D,EAAA,IAAArG,eACAqG,EAAAvE,KAAA,MAAAhD,GAAA,GACAuH,EAAA/D,aAAA,cACA+D,EAAAC,OAAA,WACA,KAAAD,EAAA3F,QAAA,GAAA2F,EAAA3F,QAAA2F,EAAAhE,SACAiE,EAAAD,EAAAhE,UAGAK,KAEA2D,EAAA3D,UACA2D,EAAAzC,KAAA,QAcA,IAAA2C,EAAA/B,EAAA,6BAAAgC,gBAAAC,IAAA1R,KAAAyR,SAAA,qBAAAE,YAAA,MACAC,EAAAnC,EAAA,gCAAAoC,kBAAA,qBAAAJ,iBAAAK,KAAA9R,KAAAyR,UAAAD,GAGA,IAAAzR,KAAA2P,EACAA,EAAArP,eAAAN,KACA0P,EAAA1P,GAAA2P,EAAA3P,IAKA2P,OAAAzB,EA+DA,IAAA8D,EAAA,CACAC,UAAA,SAAAC,EAAAC,GACA,OAAAD,EAAAC,GAEAC,SAAA,cAQA,IAAAlN,MAAA,GAsKA,IAkFAmN,EAlFAC,EAAA,EAEAC,EAAA,SAAA7S,GACA4S,EAAA5S,GAgCA,kBAAA8S,aACAX,EAAA,mCA0DA,IAAAY,GAAA,EAQA,SAAA5B,EAAA6B,EAAAC,GACAD,GACA7D,GAAA,qBAAA8D,GAsMA,IAAAC,EAAA,qBAAAC,YAAA,IAAAA,YAAA,aAAA3E,EAOA,SAAA4E,EAAAC,EAAAC,EAAAC,GAMA,IALA,IAAAC,EAAAF,EAAAC,EACAE,EAAAH,EAIAD,EAAAI,SAAAD,MAAAC,EAEA,GAAAA,EAAAH,EAAA,IAAAD,EAAAK,UAAAR,EACA,OAAAA,EAAAS,OAAAN,EAAAK,SAAAJ,EAAAG,IAIA,IAFA,IAAAhQ,EAAA,GAEA6P,EAAAG,GAAA,CAKA,IAAAG,EAAAP,EAAAC,KACA,OAAAM,EAAA,CACA,IAAAC,EAAA,GAAAR,EAAAC,KACA,aAAAM,GAAA,CACA,IAAAE,EAAA,GAAAT,EAAAC,KAOA,IALAM,EADA,UAAAA,IACA,GAAAA,IAAA,GAAAC,GAAA,EAAAC,GAEA,EAAAF,IAAA,GAAAC,GAAA,GAAAC,GAAA,KAAAT,EAAAC,MAGA,MACA7P,GAAAsQ,OAAAC,aAAAJ,OACO,CACP,IAAAK,EAAAL,EAAA,MACAnQ,GAAAsQ,OAAAC,aAAA,MAAAC,GAAA,cAAAA,SAZgCxQ,GAAAsQ,OAAAC,cAAA,GAAAJ,IAAA,EAAAC,QAFPpQ,GAAAsQ,OAAAC,aAAAJ,GAkBzB,OAAAnQ,EAkBA,SAAAyQ,EAAAC,EAAAZ,GACA,OAAAY,EAAAf,EAAAgB,EAAAD,EAAAZ,GAAA,GAqFA,qBAAAJ,aAAA,IAAAA,YAAA,YAmOA,IAaApR,EAEAsS,EAEAD,EAMAE,EAIAC,EAvBA,SAAAC,EAAAhC,EAAAiC,GAIA,OAHAjC,EAAAiC,EAAA,IACAjC,GAAAiC,EAAAjC,EAAAiC,GAEAjC,EAuBA,SAAAkC,IACA1E,EAAA,MAAAqE,EAAA,IAAAM,UAAA5S,GACAiO,EAAA,WAAA4E,WAAA7S,GACAiO,EAAA,OAAAsE,EAAA,IAAAO,WAAA9S,GACAiO,EAAA,OAAAoE,EAAA,IAAAlD,WAAAnP,GACAiO,EAAA,YAAA8E,YAAA/S,GACAiO,EAAA,YAAA+E,YAAAhT,GACAiO,EAAA,QAAAuE,EAAA,IAAAS,aAAAjT,GACAiO,EAAA,YAAAiF,aAAAlT,GAIA,IAKAmT,EAAA,QAOAC,EAAAnF,EAAA,wBAqCA,SAAAoF,EAAAC,GACA,KAAAA,EAAA7T,OAAA,IACA,IAAA8T,EAAAD,EAAAE,QACA,sBAAAD,EAAA,CAIA,IAAAE,EAAAF,EAAAE,KACA,kBAAAA,OACAhH,IAAA8G,EAAAG,IACAzF,EAAA,UAAAwF,GAEAxF,EAAA,WAAAwF,EAAAF,EAAAG,KAGAD,OAAAhH,IAAA8G,EAAAG,IAAA,KAAAH,EAAAG,UAXAH,KAxCAH,EAHA,SAGAhD,EAAA,uDAAAgD,EAAA,4BAUAxC,EADA3C,EAAA,WACAA,EAAA,WAEA,IAAA8C,YAAA4C,OAAA,CACAC,QAAAR,EApEA,WA0EApT,EAAA4Q,EAAA5Q,QAKAoT,EAAApT,EAAA6T,WACAlB,IAEAJ,EAAAY,GAAA,GApCA,QAiEA,IAAAW,EAAA,GACAC,EAAA,GACAC,EAAA,GAEAC,EAAA,GA0DA,SAAAC,EAAAC,GACAF,EAAA1O,QAAA4O,GA0BAhN,KAAAiN,IACAjN,KAAAkN,IACAlN,KAAAmN,IACAnN,KAAAoN,IACApN,KAAAqN,KACArN,KAAAsN,KACAtN,KAAAuN,KACAvN,KAAAwN,MACAxN,KAAAyN,IACAzN,KAAA+I,IACA/I,KAAA0N,KACA1N,KAAA2N,KACA3N,KAAA4N,MACA5N,KAAA6N,IACA7N,KAAA8N,KACA9N,KAAA+N,OACA/N,KAAAgO,MACAhO,KAAAC,IACAD,KAAAiO,IACAjO,KAAAkO,MACAlO,KAAAmO,MApBA,IA+BAC,EAAA,EACAC,EAAA,KACAC,EAAA,KA+BAxH,EAAA,mBACAA,EAAA,mBAGA,IAaAyH,EAAA,wCAGA,SAAAC,EAAA3G,GACA,OAAAgD,OAAApT,UAAAgX,WACA5G,EAAA4G,WAAAF,GACA,IAAA1G,EAAAhG,QAAA0M,GAMA,IAv2CA3P,EAu2CA8P,EAAA,mBAKA,SAAAC,IACA,IACA,GAAA7H,EAAA,WACA,WAAAkB,WAAAlB,EAAA,YAEA,GAAAU,EACA,OAAAA,EAAAkH,GAEA,uDAGA,MAAAzF,GACAhD,GAAAgD,IA2BA,SAAA2F,EAAAjS,GAGA,IAAAkS,EAAA,CACAlS,MAEAmS,OAAA,CACAC,QACAC,cAEAC,cAAAjP,KACAkP,SAAA9F,GAKA,SAAA+F,EAAAC,EAAAxZ,GACA,IAAAD,EAAAyZ,EAAAzZ,QACAmR,EAAA,IAAAnR,EA7GA,SAAA0Z,GAKA,GAJAjB,IACAtH,EAAA,wBACAA,EAAA,uBAAAsH,GAEA,GAAAA,IACA,OAAAC,IACAiB,cAAAjB,GACAA,EAAA,MAEAC,GAAA,CACA,IAAAlC,EAAAkC,EACAA,EAAA,KACAlC,KAiGAmD,GAKA,SAAAC,EAAAC,GAKAN,EAAAM,EAAA,UAIA,SAAAC,EAAAC,GACA,OAtDA7I,EAAA,aAAAK,IAAAC,GAAA,oBAAAwI,MAWA,IAAAlM,QAAA,SAAAjF,EAAAkF,GACAlF,EAAAkQ,OAXAiB,MAAAlB,EAAA,CAAkCmB,YAAA,gBAA6B9J,KAAA,SAAApB,GAC/D,IAAAA,EAAA,GACA,4CAAA+J,EAAA,IAEA,OAAA/J,EAAA,gBACKmL,MAAA,WACL,OAAAnB,OA+CA5I,KAAA,SAAA+B,GACA,OAAA8B,YAAAmG,YAAAjI,EAAA+G,KACK9I,KAAA4J,EAAA,SAAAK,GACL/G,EAAA,0CAAA+G,GACA/J,GAAA+J,KA2BA,GAlKA5B,IACAtH,EAAA,wBACAA,EAAA,uBAAAsH,GAgKAtH,EAAA,gBACA,IAEA,OADAA,EAAA,gBAAA+H,EAAAM,GAEK,MAAAjU,GAEL,OADA+N,EAAA,sDAAA/N,IACA,EAKA,OAjCA,WACA,GAAA4L,EAAA,YACA,oBAAA8C,YAAAqG,sBACAzB,EAAAE,IACA,oBAAAkB,MAYA,OAAAF,EAAAF,GAXAI,MAAAlB,EAAA,CAA6BmB,YAAA,gBAA6B9J,KAAA,SAAApB,GAC1D,OAAAiF,YAAAqG,qBAAAtL,EAAAkK,GACA9I,KAAAyJ,EAAA,SAAAQ,GAGA/G,EAAA,kCAAA+G,GACA/G,EAAA,6CACAyG,EAAAF,OAoBAU,GACA,GAvHA1B,EAAAE,KAx2CA9P,EAy2CA8P,IAx2CA5H,EAAA,WACAA,EAAA,WAAAlI,EAAA+I,GAEAA,EAAA/I,GAk+CAkI,EAAA,aAAAgI,EAAAnS,EAAAwT,GAiBA,OAfAxT,EAAA,OAAA8M,EAGA9M,EAAA,UAAAiN,YAAAwG,MAAA,CACA3D,QAAA,KACA4D,QAAA,KACAC,QAAA,YAIA3T,EAAA,mBAEAA,EAAA,eAEAiS,EAAAjS,IAUA,IAAA4T,EAAA,UAAAC,GAAgCjI,KAAAkI,KAAAC,gBAAAF,KAqChC5D,EAAArQ,KAAA,CAA4C+P,KAAA,WAAmBqE,QAU/D,IAAAC,EAAA,QAgCA,IAAAC,GAAA,GAEAC,GAAA,GAEA,SAAAC,GAAA9F,GACAA,GACA4F,GAAA5F,GACA+F,WAGA,SAAAC,GAAAC,GACA,IAAAA,GAAAL,GAAAK,GAAA,OAAAA,EACA,QAAA9Z,KAAAyZ,GAIA,IAHA,IAAA5F,GAAA7T,EACA+Z,EAAAN,GAAA5F,GAAAiG,SACArV,EAAAsV,EAAA7Y,OACAzC,EAAA,EAAuBA,EAAAgG,EAAShG,IAChC,GAAAsb,EAAAtb,KAAAqb,EACA,OAAAjG,EAIA,OAAAiG,EAcA,IAAAE,GAAA,EAGA,SAAAC,GAAApG,GACA,IACA,OAAAqG,GAAArG,GACO,MAAA/P,KAEF,SAAAqW,GAAAtG,GACL,GAAAA,EAAA,CACA,IAAA4D,EAAAgC,GAAA5F,GACA4D,EAAAmC,WAIA,IAAAnC,EAAAmC,UAAAnC,EAAA2C,WACA3C,EAAA4C,YACA3K,EAAA,WAAA+H,EAAA4C,WAAAxG,UAEA4F,GAAA5F,GACAoG,GAAApG,KAoBK,SAAAyG,KACL,IAAAC,EAAAP,GACA,IAAAO,EAEA,UAAAhI,EAAA,MAEA,IAAAkF,EAAAgC,GAAAc,GACAC,EAAA/C,EAAAgD,KACA,IAAAD,EAEA,UAAAjI,EAAA,GAAAgI,GAEA,IAAAG,EAAAxV,MAAA7E,UAAA6H,MAAAtJ,KAAAgE,WAEA+X,GAAAH,GAGAxG,EAAA,QAAAuG,EACAA,EAFA,QAOA,QAAA9b,EAAA,EAAqBA,EAAAic,EAAAxZ,OAAsBzC,IAC3C,GAAAic,EAAAjc,IAAAmc,GAAAF,EAAAjc,GAAA+b,EAAAD,GAGA,OAFAA,EAAAvG,EAAA,MACAyD,EAAAqC,SAAA3U,KAAAoV,GACA,GAAAhI,EAAAmI,EAAAjc,IAAA8b,GAOA,OADAA,EAAAvG,EAAA,MACA,GAAAzB,EAAAiI,GAAAD,GAEA7K,EAAA,2BAAA4K,GAoDA,IAiESO,GAAA,CAAcC,QAAA,aAAAC,UAAA,SAAAC,EAAAC,GACvB,IAAAxZ,EAAAoZ,GAAAC,QAAAE,GACA,IAAAC,GAAA,KAAAA,IACA,IAAAD,EAAAvJ,EAAAI,GAAAiB,EAAArR,EAAA,IACAA,EAAAP,OAAA,GAEAO,EAAA0D,KAAA8V,IAEOC,QAAA,EAAA5b,IAAA,SAAA4b,GAGP,OAFAL,GAAAK,SAAA,EACAlH,EAAA6G,GAAA,eAEOM,OAAA,WAEP,OADAvH,EAAAiH,GAAAvb,QAEO8b,MAAA,WACP,IAAAC,EAAAR,GAAAvb,MAAAub,GAAAvb,MACA,OAAA+b,GACOC,QAAA,WACPT,GAAAvb,QAsEA,SAAAic,KACA,OAAAxH,EAAA7S,OAyCA,SAAAsa,GAAAC,GAEAA,EAAAvH,EAAAuH,EADA,OAEA,IAAAC,EAAAja,EAAA6T,WAOA,IAEA,WADAjD,EAAAsJ,MAAAF,EAAAC,GAAA,SAGAja,EAAA4Q,EAAA5Q,QACA,GAIO,MAAAqC,GACP,UAoQA,IAEA8X,GAAA,CACA/M,SACA0D,cACAsJ,YAlzDA,WACA,OAAAvJ,GAkzDAwJ,SAtLA,SAAA3T,GACA,IAAA4T,EAAAC,KACA,IACA,OAAAC,GAAA9T,GACG,MAAArE,GAEH,GADAoY,GAAAH,GACAjY,MAAA,eAAAA,EAAA,MAAAA,EACAqY,GAAA,OAgLAC,UA5KA,SAAAjU,EAAAkU,GACA,IAAAN,EAAAC,KACA,IACA,OAAAM,GAAAnU,EAAAkU,GACG,MAAAvY,GAEH,GADAoY,GAAAH,GACAjY,MAAA,eAAAA,EAAA,MAAAA,EACAqY,GAAA,OAsKAI,WAlKA,SAAApU,EAAAkU,EAAAG,GACA,IAAAT,EAAAC,KACA,IACA,OAAAS,GAAAtU,EAAAkU,EAAAG,GACG,MAAA1Y,GAEH,GADAoY,GAAAH,GACAjY,MAAA,eAAAA,EAAA,MAAAA,EACAqY,GAAA,OA4JAO,YAxJA,SAAAvU,EAAAkU,EAAAG,EAAAG,GACA,IAAAZ,EAAAC,KACA,IACA,OAAAY,GAAAzU,EAAAkU,EAAAG,EAAAG,GACG,MAAA7Y,GAEH,GADAoY,GAAAH,GACAjY,MAAA,eAAAA,EAAA,MAAAA,EACAqY,GAAA,OAkJAU,aA9IA,SAAA1U,EAAAkU,EAAAG,EAAAG,EAAAG,GACA,IAAAf,EAAAC,KACA,IACA,OAAAe,GAAA5U,EAAAkU,EAAAG,EAAAG,EAAAG,GACG,MAAAhZ,GAEH,GADAoY,GAAAH,GACAjY,MAAA,eAAAA,EAAA,MAAAA,EACAqY,GAAA,OAwIAa,cApIA,SAAA7U,EAAAkU,EAAAG,EAAAG,EAAAG,EAAAG,GACA,IAAAlB,EAAAC,KACA,IACA,OAAAkB,GAAA/U,EAAAkU,EAAAG,EAAAG,EAAAG,EAAAG,GACG,MAAAnZ,GAEH,GADAoY,GAAAH,GACAjY,MAAA,eAAAA,EAAA,MAAAA,EACAqY,GAAA,OA8HAgB,UA1HA,SAAAhV,EAAAkU,GACA,IAAAN,EAAAC,KACA,IACA,OAAAoB,GAAAjV,EAAAkU,GACG,MAAAvY,GAEH,GADAoY,GAAAH,GACAjY,MAAA,eAAAA,EAAA,MAAAA,EACAqY,GAAA,OAoHAkB,SAhHA,SAAAlV,GACA,IAAA4T,EAAAC,KACA,IACAsB,GAAAnV,GACG,MAAArE,GAEH,GADAoY,GAAAH,GACAjY,MAAA,eAAAA,EAAA,MAAAA,EACAqY,GAAA,OA0GAoB,UAtGA,SAAApV,EAAAkU,GACA,IAAAN,EAAAC,KACA,IACAwB,GAAArV,EAAAkU,GACG,MAAAvY,GAEH,GADAoY,GAAAH,GACAjY,MAAA,eAAAA,EAAA,MAAAA,EACAqY,GAAA,OAgGAsB,WA5FA,SAAAtV,EAAAkU,EAAAG,GACA,IAAAT,EAAAC,KACA,IACA0B,GAAAvV,EAAAkU,EAAAG,GACG,MAAA1Y,GAEH,GADAoY,GAAAH,GACAjY,MAAA,eAAAA,EAAA,MAAAA,EACAqY,GAAA,OAsFAwB,YAlFA,SAAAxV,EAAAkU,EAAAG,EAAAG,GACA,IAAAZ,EAAAC,KACA,IACA4B,GAAAzV,EAAAkU,EAAAG,EAAAG,GACG,MAAA7Y,GAEH,GADAoY,GAAAH,GACAjY,MAAA,eAAAA,EAAA,MAAAA,EACAqY,GAAA,OA4EA0B,aAxEA,SAAA1V,EAAAkU,EAAAG,EAAAG,EAAAG,GACA,IAAAf,EAAAC,KACA,IACA8B,GAAA3V,EAAAkU,EAAAG,EAAAG,EAAAG,GACG,MAAAhZ,GAEH,GADAoY,GAAAH,GACAjY,MAAA,eAAAA,EAAA,MAAAA,EACAqY,GAAA,OAkEA4B,cA9DA,SAAA5V,EAAAkU,EAAAG,EAAAG,EAAAG,EAAAG,GACA,IAAAlB,EAAAC,KACA,IACAgC,GAAA7V,EAAAkU,EAAAG,EAAAG,EAAAG,EAAAG,GACG,MAAAnZ,GAEH,GADAoY,GAAAH,GACAjY,MAAA,eAAAA,EAAA,MAAAA,EACAqY,GAAA,OAwDA8B,gBApDA,SAAA9V,EAAAkU,EAAAG,EAAAG,EAAAG,EAAAG,EAAAiB,EAAAC,GACA,IAAApC,EAAAC,KACA,IACAoC,GAAAjW,EAAAkU,EAAAG,EAAAG,EAAAG,EAAAG,EAAAiB,EAAAC,GACG,MAAAra,GAEH,GADAoY,GAAAH,GACAjY,MAAA,eAAAA,EAAA,MAAAA,EACAqY,GAAA,OA8CAkC,YA1CA,SAAAlW,EAAAkU,EAAAG,EAAAG,EAAAG,GACA,IAAAf,EAAAC,KACA,IACAsC,GAAAnW,EAAAkU,EAAAG,EAAAG,EAAAG,GACG,MAAAhZ,GAEH,GADAoY,GAAAH,GACAjY,MAAA,eAAAA,EAAA,MAAAA,EACAqY,GAAA,OAoCAoC,YAhCA,SAAApW,EAAAkU,EAAAG,EAAAG,EAAAG,GACA,IAAAf,EAAAC,KACA,IACAwC,GAAArW,EAAAkU,EAAAG,EAAAG,EAAAG,GACG,MAAAhZ,GAEH,GADAoY,GAAAH,GACAjY,MAAA,eAAAA,EAAA,MAAAA,EACAqY,GAAA,OA0BAsC,eA/pBA,SAAA/L,EAAAjC,EAAAiO,EAAAxJ,GACArG,GAAA,qBAAA+E,EAAAlB,GAAA,UAAAjC,EAAAmD,EAAAnD,GAAA,mBAAAiO,EAAAxJ,EAAAtB,EAAAsB,GAAA,sBA+pBAyJ,0BA5pBA,SAAAlD,GACA,OAAAmD,GAAAnD,IA4pBAoD,mBAjoBK,SAAAhL,GACL,IAAA4D,EAAAgC,GAAA5F,GAQA,OAPA4D,MAAAqH,SACArH,EAAAqH,QAAA,EACAC,GAAAC,uBAEAvH,MAAA2C,UAAA,GACAV,GAAAvU,KAAA0O,GACA8F,GAAAE,GAAAhG,IACAA,GAynBAoL,iBA7lBA,WAEA9C,GAAA,GAEA,IAAAtI,EAAA6F,GAAAwF,MACArL,IACAsG,GAAAN,GAAAhG,IACAmG,GAAA,IAulBAM,8BACA6E,6BA3iBoE,SAAAC,EAAA/C,GAEpE,OAAA/B,GAAA8E,EAAA/C,IA0iBAgD,6BAviBA,SAAAD,EAAA/C,EAAAG,GAEA,OAAAlC,GAAA8E,EAAA/C,EAAAG,IAsiBAvC,yBACAqF,yBAniBA,SAAAzL,GAEA,OAAAA,GAkiBA0L,oBA/hBA,WAEA,MADA9M,GAAA,EACA,iCA8hBA+M,aA3hBA,SAAA3L,EAAA4G,EAAAJ,GAgBA,MAfAZ,GAAA5F,GAAA,CACAA,MACAiG,SAAA,CAAAjG,GACA4G,OACAJ,aACAT,SAAA,EACAkF,QAAA,EACA1E,UAAA,GAEAJ,GAAAnG,EACA,uBAAAkL,GAGAA,GAAAC,sBAFAD,GAAAC,oBAAA,EAIAnL,GA4gBA4L,2BAzgBA,WACA,OAAAV,GAAAC,qBAygBArF,uBACAE,yBACAM,uBACAuF,sBAzgBA,aA0gBAC,QAvgBA,aAwgBAC,mBA9lBA,SAAA/L,GAEA,MADAmG,KAA+BA,GAAAnG,GAC/BA,GA6lBAgM,YA1UA,SAAAngB,GAEA,OADAgQ,EAAA,oBAAAsE,EAAAtE,EAAA,wBAAAhQ,GACAA,GAyUAogB,cAhbS,SAAAC,EAAA7E,GAAwCL,GAAAK,UACjD,IAGA,OADAL,GAAAmF,kBAAAnF,GAAAvb,MAAAub,GAAAvb,MAAAub,GAAAvb,MAAAub,GAAAvb,MACA,EACK,MAAAwE,GAEL,MADA,qBAAAmc,IAAAnc,aAAAmc,GAAAC,YAAArR,GAAA/K,IACAA,EAAAqc,QA0aAC,cA9ZK,SAAAL,EAAA7E,GAAwCL,GAAAK,UAC7C,IAKA,IAFA,IAAAF,EAAAH,GAAAvb,MAAA+gB,EAAAxF,GAAAvb,MAAAghB,EAAAzF,GAAAvb,MACAqR,EAAA,EACAlS,EAAA,EAAqBA,EAAA6hB,EAAY7hB,IAAA,CAGjC,IAFA,IAAAoV,EAAAG,EAAA,IAAAvV,GAAA,GACAgG,EAAAuP,EAAA,KAAAvV,EAAA,OACA8hB,EAAA,EAAuBA,EAAA9b,EAAS8b,IAChC1F,GAAAE,UAAAC,EAAAlH,EAAAD,EAAA0M,IAEA5P,GAAAlM,EAEA,OAAAkM,EACK,MAAA7M,GAEL,MADA,qBAAAmc,IAAAnc,aAAAmc,GAAAC,YAAArR,GAAA/K,IACAA,EAAAqc,QA8YAK,aA1YA,SAAAT,EAAA7E,GAAyCL,GAAAK,UACzC,IAEA,SACK,MAAApX,GAEL,MADA,qBAAAmc,IAAAnc,aAAAmc,GAAAC,YAAArR,GAAA/K,IACAA,EAAAqc,QAqYAM,YAjYA,SAAAV,EAAA7E,GAAwCL,GAAAK,UACxC,IAGA,OADAL,GAAAmF,kBACA,EACK,MAAAlc,GAEL,MADA,qBAAAmc,IAAAnc,aAAAmc,GAAAC,YAAArR,GAAA/K,IACAA,EAAAqc,QA2XAO,UAvXA,aAwXAC,qBAxvBA,WAAgCxP,KAAAkI,KAAAuH,kBAyvBhCC,oBAxvBA,SAAAC,EAAAC,EAAAC,EAAAC,EAAAxc,GAA8C0M,KAAAkI,KAAA6H,cAAAJ,EAAAC,EAAAC,EAAAC,EAAAxc,IAyvB9C0c,OAxXA,WACAzR,EAAA,SAwXA0R,kBAzvBA,SAAAnJ,EAAApE,EAAA4H,GAAwCtK,KAAAkI,KAAAgI,aAAApJ,EAAAnE,EAAA5L,MAAA2L,IAAA4H,KA0vBxC6F,wBAzvBA,SAAArJ,EAAApE,EAAA0N,EAAAC,EAAAC,GAA+DtQ,KAAAkI,KAAAqI,iBAAAzJ,EAAAhE,EAAA/L,MAAA2L,EAAA,EAAAA,EAAA,EAAA0N,EAAAC,GAAAD,EAAAC,EAAAC,IA0vB/DE,kBAzvBA,SAAA1J,GAA+B9G,KAAAkI,KAAAuI,aAAA3J,IA0vB/B4J,gBAzvBA,WAA2B1Q,KAAAkI,KAAAyI,cA0vB3BC,eAzvBA,SAAAC,GAA+B7Q,KAAAkI,KAAA4I,UAAAjO,EAAAZ,SAAA4O,EAAA,EAAAA,EAAA,OA0vB/BE,eAzvBA,SAAAhQ,EAAAC,EAAAgQ,EAAAC,EAAAvO,GAAqC1C,KAAAkI,KAAAgJ,UAAAnQ,EAAAC,EAAAgQ,EAAAC,EAAAtO,EAAAV,SAAAS,IAAAsO,EAAAC,EAAA,KA0vBrCE,oBAzvBA,SAAAxB,EAAAC,EAAAC,EAAAC,GAA0C9P,KAAAkI,KAAAkJ,eAAAzB,EAAAC,EAAAC,EAAAC,IA0vB1CuB,cAzvBA,WAAyBrR,KAAAkI,KAAAoJ,YA0vBzBC,eAzvBA,SAAAxQ,EAAAC,EAAA0B,EAAA8O,GAAuC,IAAAla,EAAAqL,EAAArJ,QAAA,EAAAoJ,GAAkClB,EAAAc,OAAAC,aAAAtO,MAAA,KAAA0O,EAAAV,SAAAS,EAAApL,IAAuE0I,KAAAkI,KAAAuJ,UAAA1Q,EAAAC,EAAAQ,EAAAgQ,IA0vBhJE,qBAzvBA,SAAA5K,EAAA6K,GAAwC3R,KAAAkI,KAAA0J,gBAAA9K,EAAA6K,IA0vBxCE,eAzvBA,WAA0B7R,KAAAkI,KAAA4J,aA0vB1BC,gBAzvBA,SAAAjL,EAAAkL,EAAAC,EAAAC,GAA6ClS,KAAAkI,KAAAiK,WAAArL,EAAAkL,EAAAC,EAAAC,IA0vB7CE,gBAzvBA,SAAArR,EAAAC,GAA8BhB,KAAAkI,KAAAmK,WAAAtR,EAAAC,IA0vB9BsR,gBAzvBA,SAAAxL,EAAAkL,GAAoChS,KAAAkI,KAAAqK,WAAAzL,EAAAkL,IA0vBpCQ,gBAzvBA,SAAA1L,GAA6B9G,KAAAkI,KAAAuK,WAAA3L,IA0vB7B4L,mBAzvBA,SAAAC,GAAiC3S,KAAAkI,KAAA0K,cAAAD,IA0vBjCE,sBAzvBA,WAAiC,OAAA7S,KAAAkI,KAAA4K,oBA0vBjCC,oBAzvBA,SAAArQ,EAAA4H,GAAuCtK,KAAAkI,KAAA8K,eAAArQ,EAAAV,SAAAS,IAAA4H,KA0vBvC2I,yBAhxBA,SAAAjb,EAAAiW,GACA,OAAAjG,EAAAhQ,GAAAiW,IAgxBA7D,6BACA8I,uBAlXA,SAAAC,EAAA7U,EAAA8U,GACAzQ,EAAA0Q,IAAA1Q,EAAAV,SAAA3D,IAAA8U,GAAAD,IAkXAG,wBAxUK,SAAAC,GACL,IAAAhJ,EAAAH,KAOA,GAAAmJ,EAFA,WAGA,SAOA,IAJA,IACAC,EAAA/b,KAAAiO,IAAA6E,EADA,UAIAiJ,EAAAD,GAEAC,EADAA,GAAA,UACAzQ,EAAA,EAAAyQ,EAbA,OAgBA/b,KAAAC,IAAAqL,GAAA,EAAAyQ,EAAA,cAhBA,OACA,YAuBA,QAAAnJ,GAAAmJ,KAIAvQ,KAIA,IAoSAwQ,MArYA,SAAAhZ,IA03BA,SAAAA,EAAAiZ,GAMAA,GAAAnV,EAAA,mBAAA9D,IAIA8D,EAAA,gBAGA+C,GAAA,EACA7G,GAvkDA,EA2kDA8D,EAAA,QAAAA,EAAA,OAAA9D,IAGA8D,EAAA,KAAA9D,EAAA,IAAAmF,GAAAnF,KA54BAkZ,CAAAlZ,IAmYAmZ,YA9vBA,SAAAlT,GAA0B,IAAApJ,EAAAqL,EAAArJ,QAAA,EAAAoH,GAAoCc,EAAAc,OAAAC,aAAAtO,MAAA,KAAA0O,EAAAV,SAAAvB,EAAApJ,IAAyE0I,KAAAkI,KAAA2L,WAAArS,IA+vBvIsS,mBA9vBA,SAAAzd,EAAAqM,EAAAqR,EAAAzJ,GAAkD,IAAAhT,EAAAqL,EAAArJ,QAAA,EAAAjD,GAAoCmL,EAAAc,OAAAC,aAAAtO,MAAA,KAAA0O,EAAAV,SAAA5L,EAAAiB,IAAyE0I,KAAAkI,KAAA8L,kBAAAxS,EAAAmB,EAAAV,SAAAS,IAAA4H,GAAAyJ,IA+vB/JE,eA9vBA,SAAA5d,GAA8B,IAAAiB,EAAAqL,EAAArJ,QAAA,EAAAjD,GAAoCmL,EAAAc,OAAAC,aAAAtO,MAAA,KAAA0O,EAAAV,SAAA5L,EAAAiB,IAAyE,OAAA0I,KAAAkI,KAAAgM,cAAA1S,IA+vB3I2S,oBAjYA,SAAA7K,GACA,OAAAA,GAiYA8K,WA9XA,WACA1W,GAAA,UA8XA2W,mBAhwBA,SAAAhe,EAAAqM,EAAA4H,GAA2C,IAAAhT,EAAAqL,EAAArJ,QAAA,EAAAjD,GAAoCmL,EAAAc,OAAAC,aAAAtO,MAAA,KAAA0O,EAAAV,SAAA5L,EAAAiB,IAAwE0I,KAAAkI,KAAAoM,kBAAA9S,EAAAmB,EAAA5L,MAAA2L,IAAA4H,KAiwBvJiK,aAhwBA,SAAAle,GAA4B,IAAAiB,EAAAqL,EAAArJ,QAAA,EAAAjD,GAAoCmL,EAAAc,OAAAC,aAAAtO,MAAA,KAAA0O,EAAAV,SAAA5L,EAAAiB,IAAyE0I,KAAAkI,KAAAsM,YAAAhT,IAiwBzIiT,YAhwBA,SAAA/T,GAA0B,IAAApJ,EAAAqL,EAAArJ,QAAA,EAAAoH,GAAoCc,EAAAc,OAAAC,aAAAtO,MAAA,KAAA0O,EAAAV,SAAAvB,EAAApJ,IAA2E0I,KAAA0U,MAAAlT,IAiwBzImT,MA1SA,SAAAjS,GACA,IAAAlD,EAAAoV,KAAAC,MAAA,MAIA,OAHAnS,IACAG,EAAA,MAAArD,GAEAA,GAsSAsV,WAjwBA,WAAsB9U,KAAA+U,YAAuB/U,KAAA+U,WAAAhH,OAkwB7CiH,YAjwBA,SAAAtS,GAA0B,IAAApL,EAAAqL,EAAArJ,QAAA,EAAAoJ,GAAkClB,EAAAc,OAAAC,aAAAtO,MAAA,KAAA0O,EAAAV,SAAAS,EAAApL,IAAuEiJ,QAAAC,IAAAgB,GAAmBxB,KAAA+U,WAAA/U,KAAA+U,YAAA,GAAyC/U,KAAA+U,WAAA/gB,KAAAwN,IAkwB/LyT,wBA/WA,SAAA1B,GACA7V,GAAA,QA+WA2M,6BACA6K,oBAhdA,WAEA,IAAAC,EAAA5W,EAAA,QACA4W,KAAA,GACA,IAAAxL,EAAAD,GAAAC,QACAA,EAAA,GAAA5Z,QAAA2Z,GAAAE,UAAA,MACAD,EAAA,GAAA5Z,QAAA2Z,GAAAE,UAAA,OA2cAvB,gBACA5E,kBAGA2R,GAAA7W,EAAA,IA1FA,GA2FAkM,GAAAna,GAEAiO,EAAA,IAAA6W,GACA7W,EAAA,6BACA,OAAAA,EAAA,sBAAAtK,MAAA,KAAAxC,YAGA8M,EAAA,sBACA,OAAAA,EAAA,eAAAtK,MAAA,KAAAxC,YAGA8M,EAAA,sBACA,OAAAA,EAAA,eAAAtK,MAAA,KAAAxC,YAGA8M,EAAA,qBACA,OAAAA,EAAA,cAAAtK,MAAA,KAAAxC,YAGA8M,EAAA,uBACA,OAAAA,EAAA,gBAAAtK,MAAA,KAAAxC,YAGA8M,EAAA,wBACA,OAAAA,EAAA,iBAAAtK,MAAA,KAAAxC,YAGA8M,EAAA,0BACA,OAAAA,EAAA,mBAAAtK,MAAA,KAAAxC,YAGA8M,EAAA,6BACA,OAAAA,EAAA,sBAAAtK,MAAA,KAAAxC,YAGA8M,EAAA,+BACA,OAAAA,EAAA,wBAAAtK,MAAA,KAAAxC,YAGA8M,EAAA,iCACA,OAAAA,EAAA,0BAAAtK,MAAA,KAAAxC,YArCA,IAwCAmc,GAAArP,EAAA,sCACA,OAAAA,EAAA,+BAAAtK,MAAA,KAAAxC,YAGAgY,GAAAlL,EAAA,4BACA,OAAAA,EAAA,qBAAAtK,MAAA,KAAAxC,YAGA+X,GAAAjL,EAAA,kCACA,OAAAA,EAAA,2BAAAtK,MAAA,KAAAxC,YAuHAsX,IApHAxK,EAAA,yCACA,OAAAA,EAAA,kCAAAtK,MAAA,KAAAxC,YAGA8M,EAAA,wCACA,OAAAA,EAAA,iCAAAtK,MAAA,KAAAxC,YAGA8M,EAAA,sCACA,OAAAA,EAAA,+BAAAtK,MAAA,KAAAxC,YAGA8M,EAAA,4CACA,OAAAA,EAAA,qCAAAtK,MAAA,KAAAxC,YAGA8M,EAAA,sCACA,OAAAA,EAAA,+BAAAtK,MAAA,KAAAxC,YAGA8M,EAAA,oCACA,OAAAA,EAAA,6BAAAtK,MAAA,KAAAxC,YAGA8M,EAAA,mCACA,OAAAA,EAAA,4BAAAtK,MAAA,KAAAxC,YAGA8M,EAAA,mCACA,OAAAA,EAAA,4BAAAtK,MAAA,KAAAxC,YAGA8M,EAAA,wCACA,OAAAA,EAAA,iCAAAtK,MAAA,KAAAxC,YAGA8M,EAAA,kCACA,OAAAA,EAAA,2BAAAtK,MAAA,KAAAxC,YAGA8M,EAAA,mCACA,OAAAA,EAAA,4BAAAtK,MAAA,KAAAxC,YAGA8M,EAAA,yCACA,OAAAA,EAAA,kCAAAtK,MAAA,KAAAxC,YAGA8M,EAAA,mCACA,OAAAA,EAAA,4BAAAtK,MAAA,KAAAxC,YAGA8M,EAAA,oCACA,OAAAA,EAAA,6BAAAtK,MAAA,KAAAxC,YAGA8M,EAAA,oCACA,OAAAA,EAAA,6BAAAtK,MAAA,KAAAxC,YAGA8M,EAAA,oCACA,OAAAA,EAAA,6BAAAtK,MAAA,KAAAxC,YAGA8M,EAAA,oCACA,OAAAA,EAAA,6BAAAtK,MAAA,KAAAxC,YAGA8M,EAAA,uCACA,OAAAA,EAAA,gCAAAtK,MAAA,KAAAxC,YAGA8M,EAAA,0CACA,OAAAA,EAAA,mCAAAtK,MAAA,KAAAxC,YAGA8M,EAAA,wCACA,OAAAA,EAAA,iCAAAtK,MAAA,KAAAxC,YAGA8M,EAAA,gCACA,OAAAA,EAAA,yBAAAtK,MAAA,KAAAxC,YAGA8M,EAAA,uCACA,OAAAA,EAAA,gCAAAtK,MAAA,KAAAxC,YAGA8M,EAAA,mCACA,OAAAA,EAAA,4BAAAtK,MAAA,KAAAxC,YAGA8M,EAAA,uCACA,OAAAA,EAAA,gCAAAtK,MAAA,KAAAxC,YAGA8M,EAAA,iCACA,OAAAA,EAAA,0BAAAtK,MAAA,KAAAxC,YAGA8M,EAAA,gCACA,OAAAA,EAAA,yBAAAtK,MAAA,KAAAxC,YAGA8M,EAAA,+BACA,OAAAA,EAAA,wBAAAtK,MAAA,KAAAxC,YAGA8M,EAAA,gCACA,OAAAA,EAAA,yBAAAtK,MAAA,KAAAxC,YAGA8M,EAAA,sCACA,OAAAA,EAAA,+BAAAtK,MAAA,KAAAxC,YAGA8M,EAAA,iBACA,OAAAA,EAAA,UAAAtK,MAAA,KAAAxC,aAOAgc,IAJAlP,EAAA,2BACA,OAAAA,EAAA,oBAAAtK,MAAA,KAAAxC,YAGA8M,EAAA,mBACA,OAAAA,EAAA,YAAAtK,MAAA,KAAAxC,aAmBAuZ,IAhBAzM,EAAA,mBACA,OAAAA,EAAA,YAAAtK,MAAA,KAAAxC,YAGA8M,EAAA,oBACA,OAAAA,EAAA,aAAAtK,MAAA,KAAAxC,YAGA8M,EAAA,mBACA,OAAAA,EAAA,YAAAtK,MAAA,KAAAxC,YAGA8M,EAAA,iBACA,OAAAA,EAAA,UAAAtK,MAAA,KAAAxC,YAGA8M,EAAA,qBACA,OAAAA,EAAA,cAAAtK,MAAA,KAAAxC,aAOA2W,IAJA7J,EAAA,+BACA,OAAAA,EAAA,wBAAAtK,MAAA,KAAAxC,YAGA8M,EAAA,uBACA,OAAAA,EAAA,gBAAAtK,MAAA,KAAAxC,aAOAsZ,IAJAxM,EAAA,sBACA,OAAAA,EAAA,eAAAtK,MAAA,KAAAxC,YAGA8M,EAAA,wBACA,OAAAA,EAAA,iBAAAtK,MAAA,KAAAxC,aAGAoZ,GAAAtM,EAAA,qBACA,OAAAA,EAAA,cAAAtK,MAAA,KAAAxC,YAGAqZ,GAAAvM,EAAA,qBACA,OAAAA,EAAA,cAAAtK,MAAA,KAAAxC,YAGA0Z,GAAA5M,EAAA,sBACA,OAAAA,EAAA,eAAAtK,MAAA,KAAAxC,YAOA6Z,IAJA/M,EAAA,2BACA,OAAAA,EAAA,oBAAAtK,MAAA,KAAAxC,YAGA8M,EAAA,uBACA,OAAAA,EAAA,gBAAAtK,MAAA,KAAAxC,aAGAga,GAAAlN,EAAA,wBACA,OAAAA,EAAA,iBAAAtK,MAAA,KAAAxC,YAGAma,GAAArN,EAAA,yBACA,OAAAA,EAAA,kBAAAtK,MAAA,KAAAxC,YAGAsa,GAAAxN,EAAA,0BACA,OAAAA,EAAA,mBAAAtK,MAAA,KAAAxC,YAGAwa,GAAA1N,EAAA,sBACA,OAAAA,EAAA,eAAAtK,MAAA,KAAAxC,YAOA0a,IAJA5N,EAAA,wBACA,OAAAA,EAAA,iBAAAtK,MAAA,KAAAxC,YAGA8M,EAAA,qBACA,OAAAA,EAAA,cAAAtK,MAAA,KAAAxC,aAGA4a,GAAA9N,EAAA,sBACA,OAAAA,EAAA,eAAAtK,MAAA,KAAAxC,YAGA8a,GAAAhO,EAAA,uBACA,OAAAA,EAAA,gBAAAtK,MAAA,KAAAxC,YAGAgb,GAAAlO,EAAA,wBACA,OAAAA,EAAA,iBAAAtK,MAAA,KAAAxC,YAGAkb,GAAApO,EAAA,yBACA,OAAAA,EAAA,kBAAAtK,MAAA,KAAAxC,YAGAob,GAAAtO,EAAA,0BACA,OAAAA,EAAA,mBAAAtK,MAAA,KAAAxC,YAOAwb,IAJA1O,EAAA,2BACA,OAAAA,EAAA,oBAAAtK,MAAA,KAAAxC,YAGA8M,EAAA,4BACA,OAAAA,EAAA,qBAAAtK,MAAA,KAAAxC,aAWA0b,IARA5O,EAAA,8BACA,OAAAA,EAAA,uBAAAtK,MAAA,KAAAxC,YAGA8M,EAAA,+BACA,OAAAA,EAAA,wBAAAtK,MAAA,KAAAxC,YAGA8M,EAAA,wBACA,OAAAA,EAAA,iBAAAtK,MAAA,KAAAxC,aAGA4b,GAAA9O,EAAA,wBACA,OAAAA,EAAA,iBAAAtK,MAAA,KAAAxC,YAgHA,SAAAmO,GAAAnF,GACA7H,KAAA/E,KAAA,aACA+E,KAAAiL,QAAA,gCAAApD,EAAA,IACA7H,KAAA6H,SA3GA8D,EAAA,IAAA6W,GAkFA7W,EAAA,cAAAwF,GAGA,GAAAxF,EAAA,UACAwF,EAAAxF,OACG,CAGH,IAAA8W,EAAA9W,EAAA,qBACAA,EAAA,gCACA8W,OACAtR,EAAAxF,IAGA,OAAAA,GAaAqB,GAAA1Q,UAAA,IAAAoD,MACAsN,GAAA1Q,UAAAomB,YAAA1V,GAeA,SAAArM,GAAAO,GAaA,SAAAyhB,IACAhX,EAAA,YACAA,EAAA,aAEA+C,KAziDA,EAEAqC,EAAAU,GAKAV,EAAAW,GAwiDA/F,EAAA,sBAAAA,EAAA,uBAjiDA,WAEA,GAAAA,EAAA,QAEA,IADA,mBAAAA,EAAA,UAAAA,EAAA,SAAAA,EAAA,UACAA,EAAA,QAAAxO,QACAyU,EAAAjG,EAAA,QAAAuF,SAGAH,EAAAY,GA4hDAiR,KAzBA1hB,KAAAyK,EAAA,UAEAsH,EAAA,KAviDA,WAEA,GAAAtH,EAAA,OAEA,IADA,mBAAAA,EAAA,SAAAA,EAAA,QAAAA,EAAA,SACAA,EAAA,OAAAxO,QAiCA0U,EAhCAlG,EAAA,OAAAuF,QAiCAM,EAAAvO,QAAA4O,GADA,IAAAA,EA7BAd,EAAAS,GAoiDAqR,GAEA5P,EAAA,GACAtH,EAAA,YAkBAA,EAAA,WACAA,EAAA,wBACA7L,WAAA,WACAA,WAAA,WACA6L,EAAA,eACO,GACPgX,KACK,IAELA,MAjDAxP,EAAA,SAAA2P,IAEAnX,EAAA,WAAAhL,KACAgL,EAAA,YAAAwH,EAAA2P,IAiDAnX,EAAA,IAAAhL,GA6BA,SAAAmK,GAAAiY,GAYA,MAXApX,EAAA,SACAA,EAAA,QAAAoX,GAIArV,EADAqV,GAAA,IAEAjV,EAAAiV,GAEArU,GAAA,EACA,EAEA,SAAAqU,EAAA,+CAIA,GAFApX,EAAA,MAAAb,GAEAa,EAAA,QAEA,IADA,mBAAAA,EAAA,UAAAA,EAAA,SAAAA,EAAA,UACAA,EAAA,QAAAxO,OAAA,GACAwO,EAAA,QAAAwP,KAAAxP,GA6BA,OAxBAA,EAAA,iBAEAhL,KAUAgL,EAAA,UAAApD,QAAA,SAAAjF,EAAAkF,UACAmD,EAAA,KACAA,EAAA,iBAAAoX,GACAva,EAAAua,IAEAnR,EAAA,WACAtO,EAAAqI,OAMAqX,GAv6FA,GA46FAvoB,EAAAD,QAAAwoB,yCC76FAvoB,EAAAD,QAAiBF,EAAQ,qBCMzB,IAAA2oB,EAAA,SAAAzoB,GACA,aAEA,IAEA2P,EAFA+Y,EAAA9nB,OAAAkB,UACA6mB,EAAAD,EAAA3mB,eAGA6mB,EAAA,oBAAA3nB,cAAA,GACA4nB,EAAAD,EAAAE,UAAA,aACAC,EAAAH,EAAAI,eAAA,kBACAC,EAAAL,EAAA1nB,aAAA,gBAEA,SAAAgoB,EAAAC,EAAAC,EAAAxW,EAAAyW,GAEA,IAAAC,EAAAF,KAAAtnB,qBAAAynB,EAAAH,EAAAG,EACAC,EAAA5oB,OAAAY,OAAA8nB,EAAAxnB,WACA2nB,EAAA,IAAAC,EAAAL,GAAA,IAIA,OADAG,EAAAG,QA8LA,SAAAR,EAAAvW,EAAA6W,GACA,IAAAG,EAAAC,EACA,gBAAArc,EAAAoJ,GACA,GAAAgT,IAAAE,EACA,UAAA5kB,MAAA,gCAGA,GAAA0kB,IAAAG,EAAA,CACA,aAAAvc,EACA,MAAAoJ,EAKA,OAAAoT,IAMA,IAHAP,EAAAjc,SACAic,EAAA7S,QAEA,CACA,IAAAqT,EAAAR,EAAAQ,SAEA,GAAAA,EAAA,CACA,IAAAC,EAAAC,EAAAF,EAAAR,GAEA,GAAAS,EAAA,CACA,GAAAA,IAAAE,EAAA,SACA,OAAAF,GAIA,YAAAT,EAAAjc,OAGAic,EAAAY,KAAAZ,EAAAa,MAAAb,EAAA7S,SACS,aAAA6S,EAAAjc,OAAA,CACT,GAAAoc,IAAAC,EAEA,MADAD,EAAAG,EACAN,EAAA7S,IAGA6S,EAAAc,kBAAAd,EAAA7S,SACS,WAAA6S,EAAAjc,QACTic,EAAAe,OAAA,SAAAf,EAAA7S,KAGAgT,EAAAE,EACA,IAAAW,EAAAC,EAAAvB,EAAAvW,EAAA6W,GAEA,cAAAgB,EAAAvO,KAAA,CAKA,GAFA0N,EAAAH,EAAAkB,KAAAZ,EAAAa,EAEAH,EAAA7T,MAAAwT,EACA,SAGA,OACAjpB,MAAAspB,EAAA7T,IACA+T,KAAAlB,EAAAkB,MAES,UAAAF,EAAAvO,OACT0N,EAAAG,EAGAN,EAAAjc,OAAA,QACAic,EAAA7S,IAAA6T,EAAA7T,OAlQAiU,CAAA1B,EAAAvW,EAAA6W,GACAD,EAcA,SAAAkB,EAAAhoB,EAAAD,EAAAmU,GACA,IACA,OACAsF,KAAA,SACAtF,IAAAlU,EAAArC,KAAAoC,EAAAmU,IAEK,MAAAtD,GACL,OACA4I,KAAA,QACAtF,IAAAtD,IApBAtT,EAAAkpB,OAyBA,IAAAW,EAAA,iBACAe,EAAA,iBACAd,EAAA,YACAC,EAAA,YAGAK,EAAA,GAKA,SAAAb,KAEA,SAAAuB,KAEA,SAAAC,KAIA,IAAAC,EAAA,GAEAA,EAAAnC,GAAA,WACA,OAAArjB,MAGA,IAAAylB,EAAArqB,OAAAsqB,eACAC,EAAAF,OAAAG,EAAA,MAEAD,OAAAzC,GAAAC,EAAAtoB,KAAA8qB,EAAAtC,KAGAmC,EAAAG,GAGA,IAAAE,EAAAN,EAAAjpB,UAAAynB,EAAAznB,UAAAlB,OAAAY,OAAAwpB,GAMA,SAAAM,EAAAxpB,GACA,0BAAAU,QAAA,SAAAgL,GACA1L,EAAA0L,GAAA,SAAAoJ,GACA,OAAApR,KAAAmkB,QAAAnc,EAAAoJ,MAqCA,SAAA2U,EAAA/B,GAgCA,IAAAgC,EA4BAhmB,KAAAmkB,QA1BA,SAAAnc,EAAAoJ,GACA,SAAA6U,IACA,WAAA1d,QAAA,SAAAjF,EAAAkF,IAnCA,SAAA0d,EAAAle,EAAAoJ,EAAA9N,EAAAkF,GACA,IAAAyc,EAAAC,EAAAlB,EAAAhc,GAAAgc,EAAA5S,GAEA,aAAA6T,EAAAvO,KAEO,CACP,IAAA/X,EAAAsmB,EAAA7T,IACAzV,EAAAgD,EAAAhD,MAEA,OAAAA,GAAA,kBAAAA,GAAAwnB,EAAAtoB,KAAAc,EAAA,WACA4M,QAAAjF,QAAA3H,EAAAwqB,SAAAvb,KAAA,SAAAjP,GACAuqB,EAAA,OAAAvqB,EAAA2H,EAAAkF,IACW,SAAAsF,GACXoY,EAAA,QAAApY,EAAAxK,EAAAkF,KAIAD,QAAAjF,QAAA3H,GAAAiP,KAAA,SAAAwb,GAIAznB,EAAAhD,MAAAyqB,EACA9iB,EAAA3E,IACS,SAAAuM,GAGT,OAAAgb,EAAA,QAAAhb,EAAA5H,EAAAkF,KAtBAA,EAAAyc,EAAA7T,KAgCA8U,CAAAle,EAAAoJ,EAAA9N,EAAAkF,KAIA,OAAAwd,EAYAA,IAAApb,KAAAqb,EAEAA,QAwGA,SAAAtB,EAAAF,EAAAR,GACA,IAAAjc,EAAAyc,EAAAnB,SAAAW,EAAAjc,QAEA,GAAAA,IAAAmC,EAAA,CAKA,GAFA8Z,EAAAQ,SAAA,KAEA,UAAAR,EAAAjc,OAAA,CAEA,GAAAyc,EAAAnB,SAAA,SAGAW,EAAAjc,OAAA,SACAic,EAAA7S,IAAAjH,EACAwa,EAAAF,EAAAR,GAEA,UAAAA,EAAAjc,QAGA,OAAA4c,EAIAX,EAAAjc,OAAA,QACAic,EAAA7S,IAAA,IAAA1N,UAAA,kDAGA,OAAAkhB,EAGA,IAAAK,EAAAC,EAAAld,EAAAyc,EAAAnB,SAAAW,EAAA7S,KAEA,aAAA6T,EAAAvO,KAIA,OAHAuN,EAAAjc,OAAA,QACAic,EAAA7S,IAAA6T,EAAA7T,IACA6S,EAAAQ,SAAA,KACAG,EAGA,IAAAlR,EAAAuR,EAAA7T,IAEA,OAAAsC,EAOAA,EAAAyR,MAGAlB,EAAAQ,EAAA4B,YAAA3S,EAAA/X,MAEAsoB,EAAAqC,KAAA7B,EAAA8B,QAOA,WAAAtC,EAAAjc,SACAic,EAAAjc,OAAA,OACAic,EAAA7S,IAAAjH,GASA8Z,EAAAQ,SAAA,KACAG,GANAlR,GAxBAuQ,EAAAjc,OAAA,QACAic,EAAA7S,IAAA,IAAA1N,UAAA,oCACAugB,EAAAQ,SAAA,KACAG,GA+CA,SAAA4B,EAAAC,GACA,IAAAC,EAAA,CACAC,OAAAF,EAAA,IAGA,KAAAA,IACAC,EAAAE,SAAAH,EAAA,IAGA,KAAAA,IACAC,EAAAG,WAAAJ,EAAA,GACAC,EAAAI,SAAAL,EAAA,IAGAzmB,KAAA+mB,WAAA3lB,KAAAslB,GAGA,SAAAM,EAAAN,GACA,IAAAzB,EAAAyB,EAAAO,YAAA,GACAhC,EAAAvO,KAAA,gBACAuO,EAAA7T,IACAsV,EAAAO,WAAAhC,EAGA,SAAAf,EAAAL,GAIA7jB,KAAA+mB,WAAA,EACAJ,OAAA,SAEA9C,EAAA7mB,QAAAwpB,EAAAxmB,MACAA,KAAAknB,OAAA,GAgCA,SAAAtB,EAAAuB,GACA,GAAAA,EAAA,CACA,IAAAC,EAAAD,EAAA9D,GAEA,GAAA+D,EACA,OAAAA,EAAAvsB,KAAAssB,GAGA,uBAAAA,EAAAb,KACA,OAAAa,EAGA,IAAAE,MAAAF,EAAAhqB,QAAA,CACA,IAAAzC,GAAA,EACA4rB,EAAA,SAAAA,IACA,OAAA5rB,EAAAysB,EAAAhqB,QACA,GAAAgmB,EAAAtoB,KAAAssB,EAAAzsB,GAGA,OAFA4rB,EAAA3qB,MAAAwrB,EAAAzsB,GACA4rB,EAAAnB,MAAA,EACAmB,EAMA,OAFAA,EAAA3qB,MAAAwO,EACAmc,EAAAnB,MAAA,EACAmB,GAGA,OAAAA,UAKA,OACAA,KAAA9B,GAMA,SAAAA,IACA,OACA7oB,MAAAwO,EACAgb,MAAA,GA+LA,OAnlBAG,EAAAhpB,UAAAupB,EAAAnD,YAAA6C,EACAA,EAAA7C,YAAA4C,EACAC,EAAA9B,GAAA6B,EAAAgC,YAAA,oBAWA9sB,EAAA+sB,oBAAA,SAAAC,GACA,IAAAC,EAAA,oBAAAD,KAAA9E,YACA,QAAA+E,QAAAnC,GAEA,uBAAAmC,EAAAH,aAAAG,EAAAxsB,QAGAT,EAAAktB,KAAA,SAAAF,GAYA,OAXApsB,OAAAusB,eACAvsB,OAAAusB,eAAAH,EAAAjC,IAEAiC,EAAAI,UAAArC,EAEA9B,KAAA+D,IACAA,EAAA/D,GAAA,sBAIA+D,EAAAlrB,UAAAlB,OAAAY,OAAA6pB,GACA2B,GAOAhtB,EAAAqtB,MAAA,SAAAzW,GACA,OACA+U,QAAA/U,IAmEA0U,EAAAC,EAAAzpB,WAEAypB,EAAAzpB,UAAAinB,GAAA,WACA,OAAAvjB,MAGAxF,EAAAurB,gBAIAvrB,EAAAstB,MAAA,SAAAnE,EAAAC,EAAAxW,EAAAyW,GACA,IAAAkE,EAAA,IAAAhC,EAAArC,EAAAC,EAAAC,EAAAxW,EAAAyW,IACA,OAAArpB,EAAA+sB,oBAAA3D,GAAAmE,EACAA,EAAAzB,OAAA1b,KAAA,SAAAjM,GACA,OAAAA,EAAAwmB,KAAAxmB,EAAAhD,MAAAosB,EAAAzB,UAgKAR,EAAAD,GACAA,EAAApC,GAAA,YAMAoC,EAAAxC,GAAA,WACA,OAAArjB,MAGA6lB,EAAAlpB,SAAA,WACA,4BAsCAnC,EAAAwtB,KAAA,SAAA5rB,GACA,IAAA4rB,EAAA,GAEA,QAAA/rB,KAAAG,EACA4rB,EAAA5mB,KAAAnF,GAMA,OAHA+rB,EAAAC,UAGA,SAAA3B,IACA,KAAA0B,EAAA7qB,QAAA,CACA,IAAAlB,EAAA+rB,EAAA7M,MAEA,GAAAlf,KAAAG,EAGA,OAFAkqB,EAAA3qB,MAAAM,EACAqqB,EAAAnB,MAAA,EACAmB,EAQA,OADAA,EAAAnB,MAAA,EACAmB,IA0CA9rB,EAAAorB,SASA1B,EAAA5nB,UAAA,CACAomB,YAAAwB,EACAgD,MAAA,SAAAgB,GAYA,GAXAloB,KAAAmoB,KAAA,EACAnoB,KAAAsmB,KAAA,EAGAtmB,KAAA6kB,KAAA7kB,KAAA8kB,MAAA3a,EACAnK,KAAAmlB,MAAA,EACAnlB,KAAAykB,SAAA,KACAzkB,KAAAgI,OAAA,OACAhI,KAAAoR,IAAAjH,EACAnK,KAAA+mB,WAAA/pB,QAAAgqB,IAEAkB,EACA,QAAAjtB,KAAA+E,KAEA,MAAA/E,EAAA0I,OAAA,IAAAwf,EAAAtoB,KAAAmF,KAAA/E,KAAAosB,OAAApsB,EAAAkJ,MAAA,MACAnE,KAAA/E,GAAAkP,IAKAie,KAAA,WACApoB,KAAAmlB,MAAA,EACA,IACAkD,EADAroB,KAAA+mB,WAAA,GACAE,WAEA,aAAAoB,EAAA3R,KACA,MAAA2R,EAAAjX,IAGA,OAAApR,KAAAsoB,MAEAvD,kBAAA,SAAAwD,GACA,GAAAvoB,KAAAmlB,KACA,MAAAoD,EAGA,IAAAtE,EAAAjkB,KAEA,SAAAwoB,EAAAC,EAAA1N,GAYA,OAXAkK,EAAAvO,KAAA,QACAuO,EAAA7T,IAAAmX,EACAtE,EAAAqC,KAAAmC,EAEA1N,IAGAkJ,EAAAjc,OAAA,OACAic,EAAA7S,IAAAjH,KAGA4Q,EAGA,QAAArgB,EAAAsF,KAAA+mB,WAAA5pB,OAAA,EAA8CzC,GAAA,IAAQA,EAAA,CACtD,IAAAgsB,EAAA1mB,KAAA+mB,WAAArsB,GACAuqB,EAAAyB,EAAAO,WAEA,YAAAP,EAAAC,OAIA,OAAA6B,EAAA,OAGA,GAAA9B,EAAAC,QAAA3mB,KAAAmoB,KAAA,CACA,IAAAO,EAAAvF,EAAAtoB,KAAA6rB,EAAA,YACAiC,EAAAxF,EAAAtoB,KAAA6rB,EAAA,cAEA,GAAAgC,GAAAC,EAAA,CACA,GAAA3oB,KAAAmoB,KAAAzB,EAAAE,SACA,OAAA4B,EAAA9B,EAAAE,UAAA,GACa,GAAA5mB,KAAAmoB,KAAAzB,EAAAG,WACb,OAAA2B,EAAA9B,EAAAG,iBAEW,GAAA6B,GACX,GAAA1oB,KAAAmoB,KAAAzB,EAAAE,SACA,OAAA4B,EAAA9B,EAAAE,UAAA,OAEW,KAAA+B,EAKX,UAAAjpB,MAAA,0CAJA,GAAAM,KAAAmoB,KAAAzB,EAAAG,WACA,OAAA2B,EAAA9B,EAAAG,gBAQA7B,OAAA,SAAAtO,EAAAtF,GACA,QAAA1W,EAAAsF,KAAA+mB,WAAA5pB,OAAA,EAA8CzC,GAAA,IAAQA,EAAA,CACtD,IAAAgsB,EAAA1mB,KAAA+mB,WAAArsB,GAEA,GAAAgsB,EAAAC,QAAA3mB,KAAAmoB,MAAAhF,EAAAtoB,KAAA6rB,EAAA,eAAA1mB,KAAAmoB,KAAAzB,EAAAG,WAAA,CACA,IAAA+B,EAAAlC,EACA,OAIAkC,IAAA,UAAAlS,GAAA,aAAAA,IAAAkS,EAAAjC,QAAAvV,MAAAwX,EAAA/B,aAGA+B,EAAA,MAGA,IAAA3D,EAAA2D,IAAA3B,WAAA,GAIA,OAHAhC,EAAAvO,OACAuO,EAAA7T,MAEAwX,GACA5oB,KAAAgI,OAAA,OACAhI,KAAAsmB,KAAAsC,EAAA/B,WACAjC,GAGA5kB,KAAA6oB,SAAA5D,IAEA4D,SAAA,SAAA5D,EAAA6B,GACA,aAAA7B,EAAAvO,KACA,MAAAuO,EAAA7T,IAaA,MAVA,UAAA6T,EAAAvO,MAAA,aAAAuO,EAAAvO,KACA1W,KAAAsmB,KAAArB,EAAA7T,IACO,WAAA6T,EAAAvO,MACP1W,KAAAsoB,KAAAtoB,KAAAoR,IAAA6T,EAAA7T,IACApR,KAAAgI,OAAA,SACAhI,KAAAsmB,KAAA,OACO,WAAArB,EAAAvO,MAAAoQ,IACP9mB,KAAAsmB,KAAAQ,GAGAlC,GAEAkE,OAAA,SAAAjC,GACA,QAAAnsB,EAAAsF,KAAA+mB,WAAA5pB,OAAA,EAA8CzC,GAAA,IAAQA,EAAA,CACtD,IAAAgsB,EAAA1mB,KAAA+mB,WAAArsB,GAEA,GAAAgsB,EAAAG,eAGA,OAFA7mB,KAAA6oB,SAAAnC,EAAAO,WAAAP,EAAAI,UACAE,EAAAN,GACA9B,IAIAjQ,MAAA,SAAAgS,GACA,QAAAjsB,EAAAsF,KAAA+mB,WAAA5pB,OAAA,EAA8CzC,GAAA,IAAQA,EAAA,CACtD,IAAAgsB,EAAA1mB,KAAA+mB,WAAArsB,GAEA,GAAAgsB,EAAAC,WAAA,CACA,IAAA1B,EAAAyB,EAAAO,WAEA,aAAAhC,EAAAvO,KAAA,CACA,IAAAF,EAAAyO,EAAA7T,IACA4V,EAAAN,GAGA,OAAAlQ,GAMA,UAAA9W,MAAA,0BAEAqpB,cAAA,SAAA5B,EAAAd,EAAAE,GAaA,OAZAvmB,KAAAykB,SAAA,CACAnB,SAAAsC,EAAAuB,GACAd,aACAE,WAGA,SAAAvmB,KAAAgI,SAGAhI,KAAAoR,IAAAjH,GAGAya,IAOApqB,EAtqBA,CA2qB0BC,EAAAD,SAE1B,IACAwuB,mBAAA/F,EACC,MAAAgG,GAUDC,SAAA,6BAAAA,CAAAjG,kCC7rBA,IAAAnd,EAAYxL,EAAQ,GAEpB4B,EAAW5B,EAAQ,GAEnB6uB,EAAY7uB,EAAQ,IAEpB8uB,EAAkB9uB,EAAQ,IAW1B,SAAA+uB,EAAAC,GACA,IAAArF,EAAA,IAAAkF,EAAAG,GACArV,EAAA/X,EAAAitB,EAAA7sB,UAAAqM,QAAAsb,GAKA,OAHAne,EAAA/G,OAAAkV,EAAAkV,EAAA7sB,UAAA2nB,GAEAne,EAAA/G,OAAAkV,EAAAgQ,GACAhQ,EAIA,IAAAsV,EAAAF,EApBe/uB,EAAQ,IAsBvBivB,EAAAJ,QAEAI,EAAAvtB,OAAA,SAAAwtB,GACA,OAAAH,EAAAD,EAAAG,EAAAtiB,SAAAuiB,KAIAD,EAAAje,OAAehR,EAAQ,IACvBivB,EAAAE,YAAoBnvB,EAAQ,IAC5BivB,EAAAG,SAAiBpvB,EAAQ,GAEzBivB,EAAAI,IAAA,SAAAC,GACA,OAAArhB,QAAAohB,IAAAC,IAGAL,EAAAM,OAAevvB,EAAQ,IACvBG,EAAAD,QAAA+uB,EAEA9uB,EAAAD,QAAAsvB,QAAAP,iBC5CA9uB,EAAAD,QAAA,SAAAyC,GACA,aAAAA,GAAA,MAAAA,EAAAylB,aAAA,oBAAAzlB,EAAAylB,YAAAhmB,UAAAO,EAAAylB,YAAAhmB,SAAAO,kCCLA,IAAA6I,EAAYxL,EAAQ,GAEpB4N,EAAe5N,EAAQ,GAEvByvB,EAAyBzvB,EAAQ,IAEjC0vB,EAAsB1vB,EAAQ,IAE9B8uB,EAAkB9uB,EAAQ,IAQ1B,SAAA6uB,EAAAK,GACAxpB,KAAAiH,SAAAuiB,EACAxpB,KAAAiqB,aAAA,CACAthB,QAAA,IAAAohB,EACAvgB,SAAA,IAAAugB,GAUAZ,EAAA7sB,UAAAqM,QAAA,SAAAL,GAGA,kBAAAA,GACAA,EAAAzJ,UAAA,QACAoH,IAAApH,UAAA,GAEAyJ,KAAA,IAGAA,EAAA8gB,EAAAppB,KAAAiH,SAAAqB,IACAN,OAAAM,EAAAN,OAAAM,EAAAN,OAAAoC,cAAA,MAEA,IAAA8f,EAAA,CAAAF,OAAA7f,GACAQ,EAAApC,QAAAjF,QAAAgF,GAQA,IAPAtI,KAAAiqB,aAAAthB,QAAA3L,QAAA,SAAAmtB,GACAD,EAAAjnB,QAAAknB,EAAAC,UAAAD,EAAAE,YAEArqB,KAAAiqB,aAAAzgB,SAAAxM,QAAA,SAAAmtB,GACAD,EAAA9oB,KAAA+oB,EAAAC,UAAAD,EAAAE,YAGAH,EAAA/sB,QACAwN,IAAAC,KAAAsf,EAAAhZ,QAAAgZ,EAAAhZ,SAGA,OAAAvG,GAGAwe,EAAA7sB,UAAAguB,OAAA,SAAAhiB,GAEA,OADAA,EAAA8gB,EAAAppB,KAAAiH,SAAAqB,GACAJ,EAAAI,EAAArC,IAAAqC,EAAApC,OAAAoC,EAAAnC,kBAAA9G,QAAA,WAIAyG,EAAA9I,QAAA,2CAAAgL,GAEAmhB,EAAA7sB,UAAA0L,GAAA,SAAA/B,EAAAqC,GACA,OAAAtI,KAAA2I,QAAA7C,EAAApH,MAAA4J,GAAA,GAAgD,CAChDN,SACA/B,YAIAH,EAAA9I,QAAA,gCAAAgL,GAEAmhB,EAAA7sB,UAAA0L,GAAA,SAAA/B,EAAAqB,EAAAgB,GACA,OAAAtI,KAAA2I,QAAA7C,EAAApH,MAAA4J,GAAA,GAAgD,CAChDN,SACA/B,MACAqB,aAIA7M,EAAAD,QAAA2uB,gCCpFA,IAAArjB,EAAYxL,EAAQ,GAEpB,SAAAyvB,IACA/pB,KAAAuqB,SAAA,GAYAR,EAAAztB,UAAAyjB,IAAA,SAAAqK,EAAAC,GAKA,OAJArqB,KAAAuqB,SAAAnpB,KAAA,CACAgpB,YACAC,aAEArqB,KAAAuqB,SAAAptB,OAAA,GASA4sB,EAAAztB,UAAAkuB,MAAA,SAAAtW,GACAlU,KAAAuqB,SAAArW,KACAlU,KAAAuqB,SAAArW,GAAA,OAaA6V,EAAAztB,UAAAU,QAAA,SAAAE,GACA4I,EAAA9I,QAAAgD,KAAAuqB,SAAA,SAAAlM,GACA,OAAAA,GACAnhB,EAAAmhB,MAKA5jB,EAAAD,QAAAuvB,gCCpDA,IAAAjkB,EAAYxL,EAAQ,GAEpBmwB,EAAoBnwB,EAAQ,IAE5BovB,EAAepvB,EAAQ,GAEvB2M,EAAe3M,EAAQ,GAEvBowB,EAAoBpwB,EAAQ,IAE5BqwB,EAAkBrwB,EAAQ,IAM1B,SAAAswB,EAAAtiB,GACAA,EAAAoC,aACApC,EAAAoC,YAAAmgB,mBAWApwB,EAAAD,QAAA,SAAA8N,GAiBA,OAhBAsiB,EAAAtiB,GAEAA,EAAAwiB,UAAAJ,EAAApiB,EAAArC,OACAqC,EAAArC,IAAA0kB,EAAAriB,EAAAwiB,QAAAxiB,EAAArC,MAIAqC,EAAAtB,QAAAsB,EAAAtB,SAAA,GAEAsB,EAAAhB,KAAAmjB,EAAAniB,EAAAhB,KAAAgB,EAAAtB,QAAAsB,EAAAjB,kBAEAiB,EAAAtB,QAAAlB,EAAApH,MAAA4J,EAAAtB,QAAAc,QAAA,GAA0DQ,EAAAtB,QAAAsB,EAAAN,SAAA,GAAqCM,EAAAtB,SAAA,IAC/FlB,EAAA9I,QAAA,+DAAAgL,UACAM,EAAAtB,QAAAgB,MAEAM,EAAApB,SAAAD,EAAAC,SACAoB,GAAAsC,KAAA,SAAApB,GAIA,OAHAohB,EAAAtiB,GAEAkB,EAAAlC,KAAAmjB,EAAAjhB,EAAAlC,KAAAkC,EAAAxC,QAAAsB,EAAAf,mBACAiC,GACG,SAAAqL,GASH,OARA6U,EAAA7U,KACA+V,EAAAtiB,GAEAuM,KAAArL,WACAqL,EAAArL,SAAAlC,KAAAmjB,EAAA5V,EAAArL,SAAAlC,KAAAuN,EAAArL,SAAAxC,QAAAsB,EAAAf,qBAIAgB,QAAAC,OAAAqM,oCC5DA,IAAA/O,EAAYxL,EAAQ,GAWpBG,EAAAD,QAAA,SAAA8M,EAAAN,EAAA+jB,GAKA,OAHAjlB,EAAA9I,QAAA+tB,EAAA,SAAA7tB,GACAoK,EAAApK,EAAAoK,EAAAN,KAEAM,iCChBA,IAAAxB,EAAYxL,EAAQ,GAEpBG,EAAAD,QAAA,SAAAwM,EAAAgkB,GACAllB,EAAA9I,QAAAgK,EAAA,SAAArL,EAAAV,GACAA,IAAA+vB,GAAA/vB,EAAAiO,gBAAA8hB,EAAA9hB,gBACAlC,EAAAgkB,GAAArvB,SACAqL,EAAA/L,qCCNA,IAAAoN,EAAkB/N,EAAQ,IAU1BG,EAAAD,QAAA,SAAA8I,EAAAkF,EAAAgB,GACA,IAAA5B,EAAA4B,EAAAlB,OAAAV,gBAEAA,KAAA4B,EAAA3B,QACAvE,EAAAkG,GAEAhB,EAAAH,EAAA,mCAAAmB,EAAA3B,OAAA2B,EAAAlB,OAAA,KAAAkB,EAAAb,QAAAa,mCCNA/O,EAAAD,QAAA,SAAA0Q,EAAA5C,EAAAlD,EAAAuD,EAAAa,GA8BA,OA7BA0B,EAAA5C,SAEAlD,IACA8F,EAAA9F,QAGA8F,EAAAvC,UACAuC,EAAA1B,WACA0B,EAAA+f,cAAA,EAEA/f,EAAAggB,OAAA,WACA,OAEAjgB,QAAAjL,KAAAiL,QACAhQ,KAAA+E,KAAA/E,KAEAkwB,YAAAnrB,KAAAmrB,YACAC,OAAAprB,KAAAorB,OAEAC,SAAArrB,KAAAqrB,SACAC,WAAAtrB,KAAAsrB,WACAC,aAAAvrB,KAAAurB,aACAC,MAAAxrB,KAAAwrB,MAEAljB,OAAAtI,KAAAsI,OACAlD,KAAApF,KAAAoF,OAIA8F,iCCxCA,IAAApF,EAAYxL,EAAQ,GAIpBmxB,EAAA,sOAeAhxB,EAAAD,QAAA,SAAAwM,GACA,IACA/K,EACAY,EACAnC,EAHAgxB,EAAA,GAKA,OAAA1kB,GAIAlB,EAAA9I,QAAAgK,EAAApD,MAAA,eAAA+W,GAKA,GAJAjgB,EAAAigB,EAAAjU,QAAA,KACAzK,EAAA6J,EAAA3G,KAAAwb,EAAA1W,OAAA,EAAAvJ,IAAA0P,cACAvN,EAAAiJ,EAAA3G,KAAAwb,EAAA1W,OAAAvJ,EAAA,IAEAuB,EAAA,CACA,GAAAyvB,EAAAzvB,IAAAwvB,EAAA/kB,QAAAzK,IAAA,EACA,OAIAyvB,EAAAzvB,GADA,eAAAA,GACAyvB,EAAAzvB,GAAAyvB,EAAAzvB,GAAA,IAAAsE,OAAA,CAAA1D,IAEA6uB,EAAAzvB,GAAAyvB,EAAAzvB,GAAA,KAAAY,OAIA6uB,GApBAA,iCC1BA,IAAA5lB,EAAYxL,EAAQ,GAEpBG,EAAAD,QAAAsL,EAAAzH,uBAEA,WACA,IAEAstB,EAFAC,EAAA,kBAAAC,KAAAvtB,UAAAwtB,WACAC,EAAAttB,SAAAutB,cAAA,KASA,SAAAC,EAAAhmB,GACA,IAAAqH,EAAArH,EAUA,OARA2lB,IAEAG,EAAAG,aAAA,OAAA5e,GACAA,EAAAye,EAAAze,MAGAye,EAAAG,aAAA,OAAA5e,GAEA,CACAA,KAAAye,EAAAze,KACA6e,SAAAJ,EAAAI,SAAAJ,EAAAI,SAAA9sB,QAAA,YACA+sB,KAAAL,EAAAK,KACAC,OAAAN,EAAAM,OAAAN,EAAAM,OAAAhtB,QAAA,aACAitB,KAAAP,EAAAO,KAAAP,EAAAO,KAAAjtB,QAAA,YACAktB,SAAAR,EAAAQ,SACAC,KAAAT,EAAAS,KACAC,SAAA,MAAAV,EAAAU,SAAA9oB,OAAA,GAAAooB,EAAAU,SAAA,IAAAV,EAAAU,UAYA,OARAd,EAAAM,EAAAztB,OAAA6O,SAAAC,MAQA,SAAAof,GACA,IAAAhB,EAAA5lB,EAAAnI,SAAA+uB,GAAAT,EAAAS,KACA,OAAAhB,EAAAS,WAAAR,EAAAQ,UAAAT,EAAAU,OAAAT,EAAAS,MA5CA,GAgDA,WACA,wCCrDA,IAAAtmB,EAAYxL,EAAQ,GAEpBG,EAAAD,QAAAsL,EAAAzH,uBAEA,CACAsuB,MAAA,SAAA1xB,EAAAU,EAAAixB,EAAAnpB,EAAAopB,EAAAC,GACA,IAAAC,EAAA,GACAA,EAAA3rB,KAAAnG,EAAA,IAAA+K,mBAAArK,IAEAmK,EAAAlI,SAAAgvB,IACAG,EAAA3rB,KAAA,eAAA4gB,KAAA4K,GAAAI,eAGAlnB,EAAAnI,SAAA8F,IACAspB,EAAA3rB,KAAA,QAAAqC,GAGAqC,EAAAnI,SAAAkvB,IACAE,EAAA3rB,KAAA,UAAAyrB,IAGA,IAAAC,GACAC,EAAA3rB,KAAA,UAGA3C,SAAAsuB,SAAAlpB,KAAA,OAEAqG,KAAA,SAAAjP,GACA,IAAAgyB,EAAAxuB,SAAAsuB,OAAAE,MAAA,IAAAC,OAAA,aAAwDjyB,EAAA,cACxD,OAAAgyB,EAAAE,mBAAAF,EAAA,UAEAG,OAAA,SAAAnyB,GACA+E,KAAA2sB,MAAA1xB,EAAA,GAAA+mB,KAAAC,MAAA,SAKA,CACA0K,MAAA,aACAziB,KAAA,WACA,aAEAkjB,OAAA,4CCpCA3yB,EAAAD,QAAA,SAAAyL,GAIA,sCAAA4lB,KAAA5lB,kCCHAxL,EAAAD,QAAA,SAAAswB,EAAAuC,GACA,OAAAA,EAAAvC,EAAAzrB,QAAA,eAAAguB,EAAAhuB,QAAA,WAAAyrB,iCCRA,IAAAxf,EAAahR,EAAQ,IASrB,SAAAmvB,EAAA6D,GACA,uBAAAA,EACA,UAAA5pB,UAAA,gCAGA,IAAA6pB,EACAvtB,KAAA2K,QAAA,IAAApC,QAAA,SAAAjF,GACAiqB,EAAAjqB,IAEA,IAAAkqB,EAAAxtB,KACAstB,EAAA,SAAAriB,GACAuiB,EAAA3Y,SAKA2Y,EAAA3Y,OAAA,IAAAvJ,EAAAL,GACAsiB,EAAAC,EAAA3Y,WAQA4U,EAAAntB,UAAAuuB,iBAAA,WACA,GAAA7qB,KAAA6U,OACA,MAAA7U,KAAA6U,QASA4U,EAAAgE,OAAA,WACA,IAAA5iB,EAIA,OACA2iB,MAJA,IAAA/D,EAAA,SAAA1uB,GACA8P,EAAA9P,IAIA8P,WAIApQ,EAAAD,QAAAivB,gCCpCAhvB,EAAAD,QAAA,SAAAyW,GACA,gBAAAzM,GACA,OAAAyM,EAAA5P,MAAA,KAAAmD,mCCrBe,SAAAkpB,EAAAlpB,EAAA9J,GACf,OCJe,SAAA8J,GACf,GAAArD,MAAAvE,QAAA4H,GAAA,OAAAA,EDGSmpB,CAAcnpB,IEJR,SAAAA,EAAA9J,GACf,IAAAkzB,EAAA,GACAC,GAAA,EACAC,GAAA,EACAC,OAAA5jB,EAEA,IACA,QAAA6jB,EAAAC,EAAAzpB,EAAA/I,OAAA6nB,cAA6CuK,GAAAG,EAAAC,EAAA3H,QAAAnB,QAC7CyI,EAAAxsB,KAAA4sB,EAAAryB,QAEAjB,GAAAkzB,EAAAzwB,SAAAzC,GAH4EmzB,GAAA,IAKzE,MAAA/f,GACHggB,GAAA,EACAC,EAAAjgB,EACG,QACH,IACA+f,GAAA,MAAAI,EAAA,QAAAA,EAAA,SACK,QACL,GAAAH,EAAA,MAAAC,GAIA,OAAAH,EFnBgCM,CAAoB1pB,EAAA9J,IGJrC,WACf,UAAAgJ,UAAA,wDHGgEyqB,8BIDjD,SAAAC,EAAA5pB,GACf,OCJe,SAAAA,GACf,GAAArD,MAAAvE,QAAA4H,GAAA,CACA,QAAA9J,EAAA,EAAA2zB,EAAA,IAAAltB,MAAAqD,EAAArH,QAAiDzC,EAAA8J,EAAArH,OAAgBzC,IACjE2zB,EAAA3zB,GAAA8J,EAAA9J,GAGA,OAAA2zB,GDFSC,CAAiB9pB,IEJX,SAAAujB,GACf,GAAAtsB,OAAA6nB,YAAAloB,OAAA2sB,IAAA,uBAAA3sB,OAAAkB,UAAAK,SAAA9B,KAAAktB,GAAA,OAAA5mB,MAAAmD,KAAAyjB,GFGmCwG,CAAe/pB,IGJnC,WACf,UAAAd,UAAA,mDHG2D8qB,GIJ3D,SAAAC,EAAAC,EAAAprB,EAAAkF,EAAAmmB,EAAAC,EAAA3yB,EAAAmV,GACA,IACA,IAAAsC,EAAAgb,EAAAzyB,GAAAmV,GACAzV,EAAA+X,EAAA/X,MACG,MAAAuP,GAEH,YADA1C,EAAA0C,GAIAwI,EAAAyR,KACA7hB,EAAA3H,GAEA4M,QAAAjF,QAAA3H,GAAAiP,KAAA+jB,EAAAC,GAIe,SAAAC,EAAA3xB,GACf,kBACA,IAAAkQ,EAAApN,KACAkB,EAAArC,UACA,WAAA0J,QAAA,SAAAjF,EAAAkF,GACA,IAAAkmB,EAAAxxB,EAAAmE,MAAA+L,EAAAlM,GAEA,SAAAytB,EAAAhzB,GACA8yB,EAAAC,EAAAprB,EAAAkF,EAAAmmB,EAAAC,EAAA,OAAAjzB,GAGA,SAAAizB,EAAA9gB,GACA2gB,EAAAC,EAAAprB,EAAAkF,EAAAmmB,EAAAC,EAAA,QAAA9gB,GAGA6gB,OAAAxkB,MC/BA,SAAA2kB,EAAAC,EAAAC,GACA,QAAAt0B,EAAA,EAAiBA,EAAAs0B,EAAA7xB,OAAkBzC,IAAA,CACnC,IAAAu0B,EAAAD,EAAAt0B,GACAu0B,EAAA3zB,WAAA2zB,EAAA3zB,aAAA,EACA2zB,EAAAC,cAAA,EACA,UAAAD,MAAAE,UAAA,GACA/zB,OAAAC,eAAA0zB,EAAAE,EAAAhzB,IAAAgzB,8HCNA,SAAAG,EAAiCnpB,EAAKopB,GAAtC,IAAAC,EAAAC,EAAAC,EAAAC,EAAA,OAAAC,EAAA1wB,EAAA0kB,KAAA,SAAAiM,GAAA,cAAAA,EAAAxH,KAAAwH,EAAArJ,MAAA,cACQgJ,EAAS,IAAIM,UAAU3pB,IACtB4pB,WAAa,cAChBC,EAAa,KACjBR,EAAO/kB,iBAAiB,UAAW,SAAAwlB,GAAY,IAAVzoB,EAAUyoB,EAAVzoB,KAC/BwoB,GACFA,EAAWxoB,GAEb+nB,EAAQ/nB,KARZqoB,EAAArJ,KAAA,EAUQ,IAAI/d,QAAQ,SAACjF,EAASkF,GAC1B,IAAMwnB,EAAU,SAAAliB,GAAG,OAAItF,EAAO,IAC9B8mB,EAAO/kB,iBAAiB,QAASylB,GACjCV,EAAO/kB,iBAAiB,OAAQ,WAC9B+kB,EAAOW,oBAAoB,QAASD,GACpC1sB,QAfN,cAAAqsB,EAAArJ,KAAA,EAkBQ,IAAI/d,QAAQ,SAACjF,EAASkF,GAC1B,IAAMjE,EAAKzE,WAAW,WACpBgwB,EAAa,KACbtnB,EAAO,IACN,KACHsnB,EAAa,SAAAxoB,GACXrH,aAAasE,GACb,IAAM2rB,EAAK,IAAIrjB,WAAWvF,GACZ,KAAV4oB,EAAG,KACLJ,EAAa,KAEG,KADAI,EAAG,GAAMA,EAAG,IAAM,EAAMA,EAAG,IAAM,GAAOA,EAAG,IAAM,IAE/D5sB,IAEAkF,EAAO,OAhCjB,cAsCQgnB,EAAOhwB,SAAoBytB,MAAM,wBACjCwC,EAAa,IAAI5iB,WAAW,IACvB,GAAK,GAChB4iB,EAAW,GAAKU,SAASX,EAAK,IAC9BC,EAAW,GAAKU,SAASX,EAAK,IAC9BC,EAAW,GAAKU,SAASX,EAAK,IAC9BC,EAAW,GAAK,EAChBH,EAAOvkB,KAAK0kB,GA7CdE,EAAA3K,OAAA,SA8CSsK,GA9CT,yBAAAK,EAAAvH,SAAAgH,6BAiDe,SAASgB,EAAenqB,EAAKopB,EAASgB,GACnD,IAAIC,EAAK,KAAMC,EAAQ,GAAIC,EAAO,KAC5BC,EAAQ,CACZrnB,iBACE,OAAOknB,EAAKA,EAAGlnB,WAAa,GAE9B2B,KAJY,SAIP2lB,GACHH,EAAMnvB,KAAKsvB,EAAIvsB,UAEjBwsB,MAPY,WAQNH,IACFrc,cAAcqc,GACdA,EAAO,MAELF,EACFA,EAAGK,QAEHJ,EAAQ,OA+Bd,oDA3BAK,CAAkB3qB,EAAKopB,GAASzkB,KAAK,SAAAimB,GACnCP,EAAKO,EACDN,EACFC,EAAOM,YAAY,WACjB,GAAKP,EAAMpzB,OAAX,CAGA,IAAMua,EAAO6Y,EAAMQ,OAAO,SAACC,EAAKN,GAAN,OAAcM,EAAMN,EAAInf,YAAY,GACxD7T,EAAS,IAAImP,WAAW6K,GAC9Bha,EAAO,GAAK,EACZA,EAAO,GAAqB,IAAf6yB,EAAMpzB,OACnBO,EAAO,GAAK6yB,EAAMpzB,QAAU,EAC5B,IAAI8zB,EAAM,EATaC,GAAA,EAAAC,GAAA,EAAAC,OAAAjnB,EAAA,IAUvB,QAAAknB,EAAAC,EAAgBf,EAAhB90B,OAAA6nB,cAAA4N,GAAAG,EAAAC,EAAAhL,QAAAnB,MAAA+L,GAAA,EAAuB,KAAdR,EAAcW,EAAA11B,MACrB+B,EAAO+iB,IAAIiQ,EAAKO,GAChBA,GAAOP,EAAInf,YAZU,MAAAzD,GAAAqjB,GAAA,EAAAC,EAAAtjB,EAAA,YAAAojB,GAAA,MAAAI,EAAAC,QAAAD,EAAAC,SAAA,WAAAJ,EAAA,MAAAC,GAcvBd,EAAGvlB,KAAKrN,GACR6yB,EAAMpzB,OAAS,IACd,KAEHmzB,EAAGK,QAELN,EAAS,IACR,SAAAviB,GACDuiB,EAASviB,KAEJ2iB,ECzFT,IAAMe,EAAa,QACbC,EAAY,QAGZC,EAAStkB,KAEXukB,EAAS,KAAM1N,EAAU,KACzB2N,EAAY,KACZC,EAAQ,KACRC,EAAc,KACdC,EAAW,KACXC,GAAW,EACXC,EAAY,KAEVC,EAAY,GAAK,GACjBC,aACJ,SAAAA,EAAYlsB,ICxBC,SAAAgO,EAAAme,GACf,KAAAne,aAAAme,GACA,UAAA1uB,UAAA,qCDsBoB2uB,CAAAryB,KAAAmyB,GAChB,IAAMxpB,EAAU,IAAIxB,eACpBwB,EAAQM,KAAK,OAAQhD,GAAK,GAC1B0C,EAAQoC,QACJpC,EAAQd,OAAS,KAAOc,EAAQd,QAAU,MAC5C6pB,EAAOY,YAAY,CAACC,OAAQ,QAASrnB,MAAK,+BAE5ClL,KAAKuR,WAAa4e,SAASxnB,EAAQ6pB,kBAAkB,mBAErDxyB,KAAKiG,IAAMA,EAEXjG,KAAKtC,OAAS,IAAImP,WAAW7M,KAAKuR,YAClCvR,KAAKyyB,OAAS,IAAI5lB,WAAa7M,KAAKuR,WAAa2gB,EAAY,GAAM,GAAM,GF1B9D,IAAAE,EAAAM,EAAAC,SAAAP,KAAAM,kCE6BJjuB,EAAOC,GAId,IAHA,IAAIkuB,EAAUnuB,EAAQytB,EAAa,EAC/BW,GAAWnuB,EAAMwtB,EAAY,GAAKA,EAAa,EAC/CY,EAAWD,EAAQE,EAAWH,EACzBl4B,EAAIk4B,EAAQl4B,EAAIm4B,IAAUn4B,EAC5BsF,KAAKyyB,OAAO/3B,KACfo4B,EAAWjuB,KAAKC,IAAIguB,EAAUp4B,GAC9Bq4B,EAAWluB,KAAKiO,IAAIigB,EAAUr4B,IAGlC,GAAIo4B,GAAYC,EAAU,CACxB,IAAMpqB,EAAU,IAAIxB,eAKpB,GAJAwB,EAAQM,KAAK,MAAOjJ,KAAKiG,KAAK,GAC9B0C,EAAQ0B,iBAAiB,QAAzB,SAAA9J,OAA2CuyB,EAAWZ,EAAtD,KAAA3xB,OAAmEsE,KAAKC,IAAIiuB,EAAWb,EAAYA,EAAY,EAAGlyB,KAAKuR,WAAa,KACpI5I,EAAQc,aAAe,cACvBd,EAAQoC,OACJpC,EAAQd,OAAS,KAAOc,EAAQd,QAAU,IAC5C6pB,EAAOY,YAAY,CAACC,OAAQ,QAASrnB,MAAK,mCACrC,CACL,IACIpQ,EADEk4B,EAASrqB,EAAQ6pB,kBAAkB,iBAClC/tB,EAAQ,EACXuuB,IAAWl4B,EAAIk4B,EAAO/F,MAAM,+BAC9BxoB,EAAQ0rB,SAASr1B,EAAE,KAErBkF,KAAKtC,OAAO+iB,IAAI,IAAI5T,WAAWlE,EAAQa,UAAW/E,GAClDmuB,GAAWnuB,EAAQytB,EAAY,GAAKA,EAAa,EACjDW,GAAWpuB,EAAQkE,EAAQa,SAAS+H,WAAa2gB,EAAY,GAAKA,EAAa,EAC/E,IAAK,IAAIx3B,EAAIk4B,EAAQl4B,EAAIm4B,IAAUn4B,EACjCsF,KAAKyyB,OAAO/3B,GAAK,GAIvB,OAAOsF,KAAKtC,OAAO2R,SAAS5K,EAAOC,QF5DvCoqB,EAAAsD,EAAA91B,UAAAo2B,GACAC,GAAA7D,EAAAsD,EAAAO,QE+DMrd,EAAO,CACX2L,WADW,SACA/V,GACTwmB,EAAOY,YAAY,CAACC,OAAQ,QAASrnB,WAGvCgU,UALW,WAMTwS,EAAOY,YAAY,CAACC,OAAQ,UAE9Bhd,gBARW,SAQKrB,GACdwd,EAAOY,YAAY,CAACC,OAAQ,eAAgBt3B,KAAMiZ,GAAM,EAAK8d,EAAQ,QAAAzxB,OAAW2T,EAAX,iBAAA3T,OAA+B2T,EAA/B,OAA0C,QAGjHoN,cAZW,SAYG7d,GACZ,IAAM6D,EAAOuqB,EAAMt2B,IAAIkI,EAAK2G,eAC5B,OAAO9C,EAAOA,EAAKiK,WAAa,GAElC6P,kBAhBW,SAgBO3d,EAAM1C,EAAOogB,GAC7B,IAAM7Z,EAAOuqB,EAAMt2B,IAAIkI,EAAK2G,eACxB9C,GACFvG,EAAM0f,IAAInZ,EAAK+H,SAAS8R,EAAQA,EAASpgB,EAAMwQ,cAGnDmQ,kBAtBW,SAsBOje,EAAM1C,GACtB0C,EAAOA,EAAK2G,cAIZynB,EAAMpR,IAAIhd,EAAM1C,GAChB2wB,EAAOY,YAAY,CAACC,OAAQ,KAAMphB,KAAM,SAAUjL,OAAQ,CAACzC,EAAM1C,MAEnE6gB,YA9BW,SA8BCne,GACVA,EAAOA,EAAK2G,cACZynB,EAAMoB,OAAOxvB,GACbiuB,EAAOY,YAAY,CAACC,OAAQ,KAAMphB,KAAM,SAAUjL,OAAQ,CAACzC,MAG7Dgc,WApCW,SAoCAtR,EAAGC,GACZsjB,EAAOY,YAAY,CAACC,OAAQ,SAAUpkB,IAAGC,OAE3C+O,cAvCW,WAuCY,QAAA+V,EAAAr0B,UAAA1B,OAAN+D,EAAM,IAAAC,MAAA+xB,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAANjyB,EAAMiyB,GAAAt0B,UAAAs0B,GACrBzB,EAAOY,YAAY,CAACC,OAAQ,WAAYa,KAAI,GAAA7yB,OAAMW,MAEpD2b,eA1CW,WA2CT6U,EAAOY,YAAY,CAACC,OAAQ,WAAYa,KAAM,QAGhDpT,cA9CW,SA8CGqT,GACZ,GAAIA,EACF,GAAKpB,GAAsC,IAAzBA,EAAU7oB,WAgB1BkqB,EAAS,uBAAwB,QAfjC,IAAMzC,EAAOoB,EAAY7B,EAAe,qCAAsC,SAAA9oB,GACxE2qB,IAAcpB,GAChB0C,EAAQ,WACN,IAAMzjB,EAAM0jB,EAAKC,kBAAkBnsB,EAAKiK,YACxCiiB,EAAKzjB,OAAO0Q,IAAI,IAAI5T,WAAWvF,GAAOwI,MAGzC,SAAA1K,GACmB,kBAATA,IACTssB,EAAOY,YAAY,CAACC,OAAQ,QAASrnB,MAAO9F,EAAKzI,WAAY6uB,MAAOpmB,EAAKomB,QACzEpmB,EAAO,GAETkuB,EAAS,uBAAwBluB,UAMjC6sB,GACFA,EAAUtB,QAEZsB,EAAY,MAGhB/R,iBAzEW,WA0ET,QAAO+R,GAAqC,IAAzBA,EAAU7oB,aAejC,IAAMsqB,EAAoB,CACxB3V,WADwB,WAEtB+T,EAAc,CACZ6B,OAAQ,GACR/kB,KAAM,GACNglB,KAAM,KACNC,KAAM9B,GAERA,EAAW,MAEbzT,UAVwB,SAUdnQ,EAAGC,EAAGgQ,EAAGC,EAAG/W,GACpBwqB,EAAY6B,OAAOvyB,KAAK,CAAC+M,IAAGC,IAAGgQ,IAAGC,IAAG/W,KAAMA,EAAKnD,WAElDqa,eAbwB,SAaTzB,EAAIC,EAAIC,EAAIC,GACzB4U,EAAY8B,KAAO,CAAC7W,KAAIC,KAAIC,KAAIC,OAElC2B,UAhBwB,SAgBd1Q,EAAGC,EAAGQ,EAAMgQ,GACpBkT,EAAYljB,KAAKxN,KAAK,CAAC+M,IAAGC,IAAGQ,OAAMgQ,WAErCF,SAnBwB,WAqBtB,IAAMoV,EAAWhC,EAAY6B,OAAOI,IAAI,SAAAhE,GAAA,OAAAA,EAAEzoB,KAAe5J,SACrDo0B,EAAY+B,MACdC,EAAS1yB,KAAK0wB,EAAY+B,KAAKn2B,QAEjCg0B,EAAOY,YAAY,CAACC,OAAQ,SAAUhC,MAAOuB,GAAcgC,GAC3DhC,EAAc,MAEhB5T,UA5BwB,SA4BdD,GACR8T,EAAW9T,EAAM9Z,UAIf6vB,EAAuB,CAC3BjW,WAD2B,WAEzBkG,EAAQgQ,OACRhQ,EAAQiQ,KAAO,6BAEjB5V,UAL2B,SAKjBnQ,EAAGC,EAAGgQ,EAAGC,EAAG/W,GACpBsqB,EAAUtqB,KAAKmZ,IAAInZ,GACnB2c,EAAQkQ,aAAavC,EAAWzjB,EAAGC,IAErCoQ,eAT2B,SASZzB,EAAIC,EAAIC,EAAIC,GACzB+G,EAAQmQ,YACRnQ,EAAQmP,KAAKrW,EAAIC,EAAIC,EAAKF,EAAIG,EAAKF,GACnCiH,EAAQ2P,QAEV/U,UAd2B,SAcjB1Q,EAAGC,EAAGQ,EAAMgQ,GACpB,IAAMpjB,EAAMojB,GAAS,GAAM,IACrByV,EAAMzV,GAAS,EAAK,IACpB3f,EAAa,IAAR2f,EACXqF,EAAQqQ,UAAR,OAAA/zB,OAA2B/E,EAA3B,MAAA+E,OAAiC8zB,EAAjC,MAAA9zB,OAAuCtB,EAAvC,KACAglB,EAAQsQ,SAAS3lB,EAAMT,EAAGC,EAAI,KAEhCsQ,SArB2B,WAuBzBuF,EAAQuQ,UACR,IAAMC,EAAS9C,EAAO+C,wBAChBZ,EAAW,CAACW,GACd1C,GACF+B,EAAS1yB,KAAK2wB,EAASr0B,QAEzBg0B,EAAOY,YAAY,CAACC,OAAQ,SAAUhC,MAAO,CAACkE,SAAQZ,KAAM9B,IAAY+B,GACxE/B,EAAW,MAEb7T,UAhC2B,SAgCjBD,GACR8T,EAAW9T,EAAM9Z,UAIjBwwB,EAAa,KAAMC,EAAgB,KACnCC,EAAa,EAAGC,EAAa,EACjC,CAAC,mBAAoB,eAAgB,mBAAmB93B,QAAQ,SAAAmU,GAC9DmE,EAAKnE,GAAQ,WAAoB,QAAA4jB,EAAAl2B,UAAA1B,OAAR+I,EAAQ,IAAA/E,MAAA4zB,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAR9uB,EAAQ8uB,GAAAn2B,UAAAm2B,GAC/B,GAAIL,EACFG,EAAa5uB,EAAO,GAAK,EACzByuB,EAAWvzB,KAAK,CAAC+P,OAAMjL,WACV,oBAATiL,GACFyjB,EAAcxzB,KAAK8E,EAAO,GAAGxI,YAE1B,CACLm3B,EAAa3uB,EAAO,GAAK,EACzB,IAAM4tB,EAAW,GACJ,oBAAT3iB,GACF2iB,EAAS1yB,KAAK8E,EAAO,GAAGxI,QAE1Bg0B,EAAOY,YAAY,CAACC,OAAQ,QAASphB,OAAMjL,UAAS4tB,OAI1D,CAAC,aAAc,aAAc,aAAc,gBAAgB92B,QAAQ,SAAAmU,GACjEmE,EAAKnE,GAAQ,WAAoB,QAAA8jB,EAAAp2B,UAAA1B,OAAR+I,EAAQ,IAAA/E,MAAA8zB,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAARhvB,EAAQgvB,GAAAr2B,UAAAq2B,GAC3BP,GAAczuB,EAAO,IAAM2uB,EAC7BF,EAAWvzB,KAAK,CAAC+P,OAAMjL,WAEvBwrB,EAAOY,YAAY,CAACC,OAAQ,QAASphB,OAAMjL,cAKjD,IAAIivB,EAAc,KAClB7f,EAAK8K,eAAiB,SAAS9Y,GACzB2qB,EACFA,EAAUlnB,KAAKzD,GACN6tB,EACTA,EAAY/zB,KAAKkG,EAAKnD,QAAQzG,QAE9Bg0B,EAAOY,YAAY,CAACC,OAAQ,SAAU70B,OAAQ4J,KAIlDoqB,EAAOpc,KAAOA,EAEd,IAAIke,EAAO,KAEX,SAASD,EAAQpiB,GACf,IACEA,IACA,MAAOpR,GACP2xB,EAAOY,YAAY,CAACC,OAAQ,QAASrnB,MAAOnL,EAAEpD,WAAY6uB,MAAOzrB,EAAEyrB,SAIvE,SAAS8H,EAASniB,GAAiB,QAAAikB,EAAAv2B,UAAA1B,OAAR+I,EAAQ,IAAA/E,MAAAi0B,EAAA,EAAAA,EAAA,KAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAARnvB,EAAQmvB,EAAA,GAAAx2B,UAAAw2B,GACjC9B,EAAQ,WACN,IAAM+B,EAAwB,MAAdX,EAMhB,GALKW,IACHX,EAAa,GACbC,EAAgB,GAChBO,EAAc,IAEH,SAAThkB,EAAiB,KAAAokB,GACnBA,EAAA/B,GAAK,IAAMriB,GAAX9P,MAAAk0B,EAAoBrvB,OACf,CAKL,IAJA,IAAM4J,EAAM0jB,EAAKgC,oBACX5mB,EAAO1I,EAAO,GACd/I,EAAS0H,KAAKC,IAAI8J,EAAKzR,OAAQ,KAC/Bs4B,EAAOjC,EAAKzjB,OACTrV,EAAI,EAAGA,EAAIyC,IAAUzC,EAC5B+6B,EAAK3lB,EAAMpV,GAAKkU,EAAKvJ,WAAW3K,GAElC+6B,EAAK3lB,EAAM3S,GAAU,EACrBq2B,EAAKkC,eAAexvB,EAAO,IAExBovB,IACCX,EAAWx3B,SACb03B,EAAaC,EACbpD,EAAOY,YAAY,CAACC,OAAQ,aAAchC,MAAOoE,GAAaC,IAE5DO,EAAYh4B,QACdu0B,EAAOY,YAAY,CAACC,OAAQ,cAAehC,MAAO4E,GAAcA,GAElER,EAAa,KACbC,EAAgB,KAChBO,EAAc,QAKpB,SAASQ,EAAS/mB,EAAMgnB,EAAQC,GAC9BnE,EAAOY,YAAY,CAACC,OAAQ,WAAY3jB,OAAMgnB,SAAQC,UAGxD,IAAMC,EAAW,SAACC,EAAMJ,GAAP,OAAoB,IAAIptB,QAAQ,SAACjF,EAASkF,GACzD,IAAMwtB,EAAS,IAAIC,WACnBD,EAAOvoB,OAAS,WACVkoB,GACFA,EAAS,CAACC,OAAQG,EAAKre,OAEzBpU,EAAQ0yB,EAAOr3B,SAEjBq3B,EAAOnsB,QAAU,kBAAMrB,EAAOwtB,EAAO9qB,QACrC8qB,EAAOpsB,QAAU,kBAAMpB,KACnBmtB,GACFK,EAAOzrB,iBAAiB,WAAYorB,GAEtCK,EAAOE,kBAAkBH,eAGZI,uEAAf,SAAA/G,EAAwBgH,EAAOT,GAA/B,IAAAhpB,EAAAhO,EAAA,OAAA+wB,EAAA1wB,EAAA0kB,KAAA,SAAAiM,GAAA,cAAAA,EAAAxH,KAAAwH,EAAArJ,MAAA,cAAAqJ,EAAArJ,KAAA,EACuBiD,IAAM5gB,QAAQ,CACjC1C,IAAKmwB,EAAQC,IAAcC,IAC3B7sB,aAAc,cACda,mBAAoBqrB,IAJxB,cACQhpB,EADRgjB,EAAA9K,KAAA8K,EAAArJ,KAAA,GAMwB8P,EAAQG,IAAcC,KAAc,CAACC,WAAY9pB,EAAOrF,OAAOovB,MANvF,cAMQ/3B,EANRgxB,EAAA9K,KAOE8Q,EAAS,CAACC,OAAQ,MAPpBjG,EAAA3K,OAAA,SAQSrmB,GART,wBAAAgxB,EAAAvH,SAAAgH,8DAWA,SAAAuH,EAAyBC,EAAKR,EAAOS,GAArC,IAAA57B,EAAA67B,EAAAC,EAAAC,EAAAC,EAAAC,EAsBWC,EAtBXC,EAAAC,EAAAC,EAAAC,EAAA/H,EAAA,OAAAE,EAAA1wB,EAAA0kB,KAAA,SAAA8T,GAAA,cAAAA,EAAArP,KAAAqP,EAAAlR,MAAA,cAsBW6Q,EAtBX,WAuBIxB,EAAS,aAAcmB,EAAYE,EAAaE,EAAYH,EAAWE,EAAYC,IAtBrFlF,EAAWoE,EACPS,GACFlF,EAAS,IAAI8F,gBAAgB,IAAK,KAClCxT,EAAU0N,EAAO+F,WAAW,MAC5B9F,EAAY3N,EAAQ0T,gBAAgB,IAAK,KACzCv8B,OAAOw8B,OAAOtiB,EAAM0e,IAEpB54B,OAAOw8B,OAAOtiB,EAAMoe,GAGjBkD,IACG37B,EAAQm7B,EAAQ,YAAc,cAC/BvE,EAAMgG,IAAI58B,IAEb42B,EAAMpR,IAAIxlB,EAAM,IAAIk3B,EAAJ,GAAA5xB,OAAkBf,aAAlB,KAAAe,OAA4CtF,MAIhE06B,EAAS,cACLmB,EAAY,EAAGC,EAAYH,EAAMA,EAAIlf,KAAO,EAAIsf,EAAa,EAAGC,EAAab,EAAQ3E,EAAYD,EAC/F0F,EAAa,EAIbE,EAAWjB,EAASC,EAAO,SAAAr2B,GAC/Bi3B,EAAanyB,KAAKC,IAAI/E,EAAE61B,OAAQqB,GAChCE,MAEEE,EAAUT,EAAMd,EAASc,EAAK,SAAA72B,GAChC+2B,EAAY/2B,EAAE61B,OACduB,MACG5uB,QAAQjF,QAAQ,MAhCvBk0B,EAAAlR,KAAA,GAiCsB/d,QAAQohB,IAAI,CAACyN,EAAUC,IAjC7C,QAAAC,EAAAE,EAAA3S,KAAA0S,EAAA7J,EAAA4J,EAAA,GAiCG9D,EAjCH+D,EAAA,IAiCSX,EAjCTW,EAAA,KAoCI1F,EAAMpR,IAAI2V,EAAQ,YAAc,cAAe,IAAIvpB,WAAW+pB,IAGhEjB,EAAS,mBAEHnG,EAAOhwB,SAAoBytB,MAAM,uBAEvCuG,EAAKsE,sBACLtE,EAAKuE,WAAWlzB,KAAK4N,MAAMulB,YAAY/V,OAAQ4U,EAAY,EAAI,EAAG1G,SAASX,EAAK,IAAKW,SAASX,EAAK,IAAKW,SAASX,EAAK,KAEtHsB,YAAY,WACVwC,EAAS,cAAezuB,KAAK4N,MAAMulB,YAAY/V,SAC9C,IAhDL,yBAAAuV,EAAApP,SAAAuO,6BAmDAjF,EAAOnnB,iBAAiB,UAAW,SAAA0tB,GAAY,IAAV3wB,EAAU2wB,EAAV3wB,KACnC,OAAQA,EAAKirB,QACb,IAAK,OACHV,EAAQvqB,EAAKuqB,qDACbqG,CAAU5wB,EAAKsvB,IAAKtvB,EAAK8uB,MAAO9uB,EAAKuvB,WAAWjsB,KAC9C,kBAAM8mB,EAAOY,YAAY,CAACC,OAAQ,YAClC,SAAAxyB,GAAC,OAAI2xB,EAAOY,YAAY,CAACC,OAAQ,SAAUrnB,MAAOnL,EAAEpD,WAAY6uB,MAAOzrB,EAAEyrB,UAC3E,MACF,IAAK,QACH8H,EAAQjyB,WAAR,GAASiG,EAAK6J,MAAd5Q,OAAA6tB,EAAuB9mB,EAAKpB,UAC5B,MACF,IAAK,SACHqtB,EAAQ,WACN,IAAMzjB,EAAM0jB,EAAKC,kBAAkBnsB,EAAK5J,OAAO6T,YAC/CiiB,EAAKzjB,OAAO0Q,IAAI,IAAI5T,WAAWvF,EAAK5J,QAASoS,KAE/C,MACF,IAAK,cACHyjB,EAAQ,WAAM,IAAArC,GAAA,EAAAC,GAAA,EAAAC,OAAAjnB,EAAA,IACZ,QAAAknB,EAAAC,EAAmBhqB,EAAKipB,MAAxB90B,OAAA6nB,cAAA4N,GAAAG,EAAAC,EAAAhL,QAAAnB,MAAA+L,GAAA,EAA+B,KAAtBiH,EAAsB9G,EAAA11B,MACvBmU,EAAM0jB,EAAKC,kBAAkB0E,EAAO5mB,YAC1CiiB,EAAKzjB,OAAO0Q,IAAI,IAAI5T,WAAWsrB,GAASroB,IAH9B,MAAAhC,GAAAqjB,GAAA,EAAAC,EAAAtjB,EAAA,YAAAojB,GAAA,MAAAI,EAAAC,QAAAD,EAAAC,SAAA,WAAAJ,EAAA,MAAAC","file":"3d851ae1dfd110e041f9.worker.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/diabloweb/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 35);\n","'use strict';\n\nvar bind = require('./helpers/bind');\n\nvar isBuffer = require('is-buffer');\n/*global toString:true*/\n// utils is a library of generic helper functions non-specific to axios\n\n\nvar toString = Object.prototype.toString;\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\n\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\n\n\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\n\n\nfunction isFormData(val) {\n return typeof FormData !== 'undefined' && val instanceof FormData;\n}\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\n\n\nfunction isArrayBufferView(val) {\n var result;\n\n if (typeof ArrayBuffer !== 'undefined' && ArrayBuffer.isView) {\n result = ArrayBuffer.isView(val);\n } else {\n result = val && val.buffer && val.buffer instanceof ArrayBuffer;\n }\n\n return result;\n}\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\n\n\nfunction isString(val) {\n return typeof val === 'string';\n}\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\n\n\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\n\n\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\n\n\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\n\n\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\n\n\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\n\n\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\n\n\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\n\n\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\n\n\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\n\n\nfunction trim(str) {\n return str.replace(/^\\s*/, '').replace(/\\s*$/, '');\n}\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\n\n\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' || navigator.product === 'NativeScript' || navigator.product === 'NS')) {\n return false;\n }\n\n return typeof window !== 'undefined' && typeof document !== 'undefined';\n}\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\n\n\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n } // Force an array if not already something iterable\n\n\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\n\n\nfunction merge()\n/* obj1, obj2, obj3, ... */\n{\n var result = {};\n\n function assignValue(val, key) {\n if (typeof result[key] === 'object' && typeof val === 'object') {\n result[key] = merge(result[key], val);\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n\n return result;\n}\n/**\n * Function equal to merge with the difference being that no reference\n * to original objects is kept.\n *\n * @see merge\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\n\n\nfunction deepMerge()\n/* obj1, obj2, obj3, ... */\n{\n var result = {};\n\n function assignValue(val, key) {\n if (typeof result[key] === 'object' && typeof val === 'object') {\n result[key] = deepMerge(result[key], val);\n } else if (typeof val === 'object') {\n result[key] = deepMerge({}, val);\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n\n return result;\n}\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\n\n\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n deepMerge: deepMerge,\n extend: extend,\n trim: trim\n};","module.exports = require(\"regenerator-runtime\");\n","// shim for using process in browser\nvar process = module.exports = {}; // cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\n\nfunction defaultClearTimeout() {\n throw new Error('clearTimeout has not been defined');\n}\n\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n})();\n\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n } // if setTimeout wasn't available but was latter defined\n\n\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch (e) {\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch (e) {\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n}\n\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n } // if clearTimeout wasn't available but was latter defined\n\n\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e) {\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e) {\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n}\n\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n\n draining = false;\n\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n var len = queue.length;\n\n while (len) {\n currentQueue = queue;\n queue = [];\n\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n\n queueIndex = -1;\n len = queue.length;\n }\n\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n\n queue.push(new Item(fun, args));\n\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n}; // v8 likes predictible objects\n\n\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\n\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\n\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\n\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) {\n return [];\n};\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () {\n return '/';\n};\n\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\n\nprocess.umask = function () {\n return 0;\n};","// .dirname, .basename, and .extname methods are extracted from Node.js v8.11.1,\n// backported and transplited with Babel, with backwards-compat fixes\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// resolves . and .. elements in a path array with directory names there\n// must be no slashes, empty elements, or device names (c:\\) in the array\n// (so also no leading and trailing slashes - it does not distinguish\n// relative and absolute paths)\nfunction normalizeArray(parts, allowAboveRoot) {\n // if the path tries to go above the root, `up` ends up > 0\n var up = 0;\n\n for (var i = parts.length - 1; i >= 0; i--) {\n var last = parts[i];\n\n if (last === '.') {\n parts.splice(i, 1);\n } else if (last === '..') {\n parts.splice(i, 1);\n up++;\n } else if (up) {\n parts.splice(i, 1);\n up--;\n }\n } // if the path is allowed to go above the root, restore leading ..s\n\n\n if (allowAboveRoot) {\n for (; up--; up) {\n parts.unshift('..');\n }\n }\n\n return parts;\n} // path.resolve([from ...], to)\n// posix version\n\n\nexports.resolve = function () {\n var resolvedPath = '',\n resolvedAbsolute = false;\n\n for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n var path = i >= 0 ? arguments[i] : process.cwd(); // Skip empty and invalid entries\n\n if (typeof path !== 'string') {\n throw new TypeError('Arguments to path.resolve must be strings');\n } else if (!path) {\n continue;\n }\n\n resolvedPath = path + '/' + resolvedPath;\n resolvedAbsolute = path.charAt(0) === '/';\n } // At this point the path should be resolved to a full absolute path, but\n // handle relative paths to be safe (might happen when process.cwd() fails)\n // Normalize the path\n\n\n resolvedPath = normalizeArray(filter(resolvedPath.split('/'), function (p) {\n return !!p;\n }), !resolvedAbsolute).join('/');\n return (resolvedAbsolute ? '/' : '') + resolvedPath || '.';\n}; // path.normalize(path)\n// posix version\n\n\nexports.normalize = function (path) {\n var isAbsolute = exports.isAbsolute(path),\n trailingSlash = substr(path, -1) === '/'; // Normalize the path\n\n path = normalizeArray(filter(path.split('/'), function (p) {\n return !!p;\n }), !isAbsolute).join('/');\n\n if (!path && !isAbsolute) {\n path = '.';\n }\n\n if (path && trailingSlash) {\n path += '/';\n }\n\n return (isAbsolute ? '/' : '') + path;\n}; // posix version\n\n\nexports.isAbsolute = function (path) {\n return path.charAt(0) === '/';\n}; // posix version\n\n\nexports.join = function () {\n var paths = Array.prototype.slice.call(arguments, 0);\n return exports.normalize(filter(paths, function (p, index) {\n if (typeof p !== 'string') {\n throw new TypeError('Arguments to path.join must be strings');\n }\n\n return p;\n }).join('/'));\n}; // path.relative(from, to)\n// posix version\n\n\nexports.relative = function (from, to) {\n from = exports.resolve(from).substr(1);\n to = exports.resolve(to).substr(1);\n\n function trim(arr) {\n var start = 0;\n\n for (; start < arr.length; start++) {\n if (arr[start] !== '') break;\n }\n\n var end = arr.length - 1;\n\n for (; end >= 0; end--) {\n if (arr[end] !== '') break;\n }\n\n if (start > end) return [];\n return arr.slice(start, end - start + 1);\n }\n\n var fromParts = trim(from.split('/'));\n var toParts = trim(to.split('/'));\n var length = Math.min(fromParts.length, toParts.length);\n var samePartsLength = length;\n\n for (var i = 0; i < length; i++) {\n if (fromParts[i] !== toParts[i]) {\n samePartsLength = i;\n break;\n }\n }\n\n var outputParts = [];\n\n for (var i = samePartsLength; i < fromParts.length; i++) {\n outputParts.push('..');\n }\n\n outputParts = outputParts.concat(toParts.slice(samePartsLength));\n return outputParts.join('/');\n};\n\nexports.sep = '/';\nexports.delimiter = ':';\n\nexports.dirname = function (path) {\n if (typeof path !== 'string') path = path + '';\n if (path.length === 0) return '.';\n var code = path.charCodeAt(0);\n var hasRoot = code === 47\n /*/*/\n ;\n var end = -1;\n var matchedSlash = true;\n\n for (var i = path.length - 1; i >= 1; --i) {\n code = path.charCodeAt(i);\n\n if (code === 47\n /*/*/\n ) {\n if (!matchedSlash) {\n end = i;\n break;\n }\n } else {\n // We saw the first non-path separator\n matchedSlash = false;\n }\n }\n\n if (end === -1) return hasRoot ? '/' : '.';\n\n if (hasRoot && end === 1) {\n // return '//';\n // Backwards-compat fix:\n return '/';\n }\n\n return path.slice(0, end);\n};\n\nfunction basename(path) {\n if (typeof path !== 'string') path = path + '';\n var start = 0;\n var end = -1;\n var matchedSlash = true;\n var i;\n\n for (i = path.length - 1; i >= 0; --i) {\n if (path.charCodeAt(i) === 47\n /*/*/\n ) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n start = i + 1;\n break;\n }\n } else if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // path component\n matchedSlash = false;\n end = i + 1;\n }\n }\n\n if (end === -1) return '';\n return path.slice(start, end);\n} // Uses a mixed approach for backwards-compatibility, as ext behavior changed\n// in new Node.js versions, so only basename() above is backported here\n\n\nexports.basename = function (path, ext) {\n var f = basename(path);\n\n if (ext && f.substr(-1 * ext.length) === ext) {\n f = f.substr(0, f.length - ext.length);\n }\n\n return f;\n};\n\nexports.extname = function (path) {\n if (typeof path !== 'string') path = path + '';\n var startDot = -1;\n var startPart = 0;\n var end = -1;\n var matchedSlash = true; // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find\n\n var preDotState = 0;\n\n for (var i = path.length - 1; i >= 0; --i) {\n var code = path.charCodeAt(i);\n\n if (code === 47\n /*/*/\n ) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n startPart = i + 1;\n break;\n }\n\n continue;\n }\n\n if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // extension\n matchedSlash = false;\n end = i + 1;\n }\n\n if (code === 46\n /*.*/\n ) {\n // If this is our first dot, mark it as the start of our extension\n if (startDot === -1) startDot = i;else if (preDotState !== 1) preDotState = 1;\n } else if (startDot !== -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension\n preDotState = -1;\n }\n }\n\n if (startDot === -1 || end === -1 || // We saw a non-dot character immediately before the dot\n preDotState === 0 || // The (right-most) trimmed path component is exactly '..'\n preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {\n return '';\n }\n\n return path.slice(startDot, end);\n};\n\nfunction filter(xs, f) {\n if (xs.filter) return xs.filter(f);\n var res = [];\n\n for (var i = 0; i < xs.length; i++) {\n if (f(xs[i], i, xs)) res.push(xs[i]);\n }\n\n return res;\n} // String.prototype.substr - negative index don't work in IE8\n\n\nvar substr = 'ab'.substr(-1) === 'b' ? function (str, start, len) {\n return str.substr(start, len);\n} : function (str, start, len) {\n if (start < 0) start = str.length + start;\n return str.substr(start, len);\n};","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n\n return fn.apply(thisArg, args);\n };\n};","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).replace(/%40/gi, '@').replace(/%3A/gi, ':').replace(/%24/g, '$').replace(/%2C/gi, ',').replace(/%20/g, '+').replace(/%5B/gi, '[').replace(/%5D/gi, ']');\n}\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\n\n\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};","'use strict';\n\nvar utils = require('./utils');\n\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter; // Only Node.JS has a process variable that is of [[Class]] process\n\n if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n } else if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n }\n\n return adapter;\n}\n\nvar defaults = {\n adapter: getDefaultAdapter(),\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n\n if (utils.isFormData(data) || utils.isArrayBuffer(data) || utils.isBuffer(data) || utils.isStream(data) || utils.isFile(data) || utils.isBlob(data)) {\n return data;\n }\n\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n\n if (utils.isObject(data)) {\n setContentTypeIfUnset(headers, 'application/json;charset=utf-8');\n return JSON.stringify(data);\n }\n\n return data;\n }],\n transformResponse: [function transformResponse(data) {\n /*eslint no-param-reassign:0*/\n if (typeof data === 'string') {\n try {\n data = JSON.parse(data);\n } catch (e) {\n /* Ignore */\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n maxContentLength: -1,\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n }\n};\ndefaults.headers = {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n};\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\nmodule.exports = defaults;","'use strict';\n\nvar utils = require('./../utils');\n\nvar settle = require('./../core/settle');\n\nvar buildURL = require('./../helpers/buildURL');\n\nvar parseHeaders = require('./../helpers/parseHeaders');\n\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\n\nvar createError = require('../core/createError');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest(); // HTTP basic authentication\n\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password || '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n request.open(config.method.toUpperCase(), buildURL(config.url, config.params, config.paramsSerializer), true); // Set the request timeout in MS\n\n request.timeout = config.timeout; // Listen for ready state\n\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n } // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n\n\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n } // Prepare the response\n\n\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !config.responseType || config.responseType === 'text' ? request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n settle(resolve, reject, response); // Clean up request\n\n request = null;\n }; // Handle browser request cancellation (as opposed to a manual cancellation)\n\n\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request)); // Clean up request\n\n request = null;\n }; // Handle low level network errors\n\n\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request)); // Clean up request\n\n request = null;\n }; // Handle timeout\n\n\n request.ontimeout = function handleTimeout() {\n reject(createError('timeout of ' + config.timeout + 'ms exceeded', config, 'ECONNABORTED', request)); // Clean up request\n\n request = null;\n }; // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n\n\n if (utils.isStandardBrowserEnv()) {\n var cookies = require('./../helpers/cookies'); // Add xsrf header\n\n\n var xsrfValue = (config.withCredentials || isURLSameOrigin(config.url)) && config.xsrfCookieName ? cookies.read(config.xsrfCookieName) : undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n } // Add headers to the request\n\n\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n } // Add withCredentials to request if needed\n\n\n if (config.withCredentials) {\n request.withCredentials = true;\n } // Add responseType to request if needed\n\n\n if (config.responseType) {\n try {\n request.responseType = config.responseType;\n } catch (e) {\n // Expected DOMException thrown by browsers not compatible XMLHttpRequest Level 2.\n // But, this can be suppressed for 'json' type as it can be parsed by default 'transformResponse' function.\n if (config.responseType !== 'json') {\n throw e;\n }\n }\n } // Handle progress if needed\n\n\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n } // Not all browsers support upload events\n\n\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (!request) {\n return;\n }\n\n request.abort();\n reject(cancel); // Clean up request\n\n request = null;\n });\n }\n\n if (requestData === undefined) {\n requestData = null;\n } // Send the request\n\n\n request.send(requestData);\n });\n};","'use strict';\n\nvar enhanceError = require('./enhanceError');\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\n\n\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};","'use strict';\n\nvar utils = require('../utils');\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\n\n\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n utils.forEach(['url', 'method', 'params', 'data'], function valueFromConfig2(prop) {\n if (typeof config2[prop] !== 'undefined') {\n config[prop] = config2[prop];\n }\n });\n utils.forEach(['headers', 'auth', 'proxy'], function mergeDeepProperties(prop) {\n if (utils.isObject(config2[prop])) {\n config[prop] = utils.deepMerge(config1[prop], config2[prop]);\n } else if (typeof config2[prop] !== 'undefined') {\n config[prop] = config2[prop];\n } else if (utils.isObject(config1[prop])) {\n config[prop] = utils.deepMerge(config1[prop]);\n } else if (typeof config1[prop] !== 'undefined') {\n config[prop] = config1[prop];\n }\n });\n utils.forEach(['baseURL', 'transformRequest', 'transformResponse', 'paramsSerializer', 'timeout', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName', 'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress', 'maxContentLength', 'validateStatus', 'maxRedirects', 'httpAgent', 'httpsAgent', 'cancelToken', 'socketPath'], function defaultToConfig2(prop) {\n if (typeof config2[prop] !== 'undefined') {\n config[prop] = config2[prop];\n } else if (typeof config1[prop] !== 'undefined') {\n config[prop] = config1[prop];\n }\n });\n return config;\n};","'use strict';\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\n\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\nmodule.exports = Cancel;","module.exports = __webpack_public_path__ + \"static/media/Diablo.570bd59a.wasm\";","\r\nvar Diablo = (function() {\r\n var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;\r\n return (\r\nfunction(Diablo) {\r\n Diablo = Diablo || {};\r\n\r\n// Copyright 2010 The Emscripten Authors. All rights reserved.\r\n// Emscripten is available under two separate licenses, the MIT license and the\r\n// University of Illinois/NCSA Open Source License. Both these licenses can be\r\n// found in the LICENSE file.\r\n\r\n// The Module object: Our interface to the outside world. We import\r\n// and export values on it. There are various ways Module can be used:\r\n// 1. Not defined. We create it here\r\n// 2. A function parameter, function(Module) { ..generated code.. }\r\n// 3. pre-run appended it, var Module = {}; ..generated code..\r\n// 4. External script tag defines var Module.\r\n// We need to check if Module already exists (e.g. case 3 above).\r\n// Substitution will be replaced with actual code on later stage of the build,\r\n// this way Closure Compiler will not mangle it (e.g. case 4. above).\r\n// Note that if you want to run closure, and also to use Module\r\n// after the generated code, you will need to define var Module = {};\r\n// before the code. Then that object will be used in the code, and you\r\n// can continue to use Module afterwards as well.\r\nvar Module = typeof Diablo !== 'undefined' ? Diablo : {};\r\n\r\n// --pre-jses are emitted after the Module integration code, so that they can\r\n// refer to Module (if they choose; they can also define Module)\r\n\r\n\r\n// Sometimes an existing Module object exists with properties\r\n// meant to overwrite the default module functionality. Here\r\n// we collect those properties and reapply _after_ we configure\r\n// the current environment's defaults to avoid having to be so\r\n// defensive during initialization.\r\nvar moduleOverrides = {};\r\nvar key;\r\nfor (key in Module) {\r\n if (Module.hasOwnProperty(key)) {\r\n moduleOverrides[key] = Module[key];\r\n }\r\n}\r\n\r\nModule['arguments'] = [];\r\nModule['thisProgram'] = './this.program';\r\nModule['quit'] = function(status, toThrow) {\r\n throw toThrow;\r\n};\r\nModule['preRun'] = [];\r\nModule['postRun'] = [];\r\n\r\n// Determine the runtime environment we are in. You can customize this by\r\n// setting the ENVIRONMENT setting at compile time (see settings.js).\r\n\r\nvar ENVIRONMENT_IS_WEB = false;\r\nvar ENVIRONMENT_IS_WORKER = false;\r\nvar ENVIRONMENT_IS_NODE = false;\r\nvar ENVIRONMENT_HAS_NODE = false;\r\nvar ENVIRONMENT_IS_SHELL = false;\r\nENVIRONMENT_IS_WEB = typeof window === 'object';\r\nENVIRONMENT_IS_WORKER = typeof importScripts === 'function';\r\n// A web environment like Electron.js can have Node enabled, so we must\r\n// distinguish between Node-enabled environments and Node environments per se.\r\n// This will allow the former to do things like mount NODEFS.\r\n// Extended check using process.versions fixes issue #8816.\r\n// (Also makes redundant the original check that 'require' is a function.)\r\nENVIRONMENT_HAS_NODE = typeof process === 'object' && typeof process.versions === 'object' && typeof process.versions.node === 'string';\r\nENVIRONMENT_IS_NODE = ENVIRONMENT_HAS_NODE && !ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_WORKER;\r\nENVIRONMENT_IS_SHELL = !ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_NODE && !ENVIRONMENT_IS_WORKER;\r\n\r\n\r\n\r\n// Three configurations we can be running in:\r\n// 1) We could be the application main() thread running in the main JS UI thread. (ENVIRONMENT_IS_WORKER == false and ENVIRONMENT_IS_PTHREAD == false)\r\n// 2) We could be the application main() thread proxied to worker. (with Emscripten -s PROXY_TO_WORKER=1) (ENVIRONMENT_IS_WORKER == true, ENVIRONMENT_IS_PTHREAD == false)\r\n// 3) We could be an application pthread running in a worker. (ENVIRONMENT_IS_WORKER == true and ENVIRONMENT_IS_PTHREAD == true)\r\n\r\n\r\n\r\n\r\n// `/` should be present at the end if `scriptDirectory` is not empty\r\nvar scriptDirectory = '';\r\nfunction locateFile(path) {\r\n if (Module['locateFile']) {\r\n return Module['locateFile'](path, scriptDirectory);\r\n } else {\r\n return scriptDirectory + path;\r\n }\r\n}\r\n\r\n// Hooks that are implemented differently in different runtime environments.\r\nvar read_,\r\n readAsync,\r\n readBinary,\r\n setWindowTitle;\r\n\r\nif (ENVIRONMENT_IS_NODE) {\r\n scriptDirectory = __dirname + '/';\r\n\r\n // Expose functionality in the same simple way that the shells work\r\n // Note that we pollute the global namespace here, otherwise we break in node\r\n var nodeFS;\r\n var nodePath;\r\n\r\n read_ = function shell_read(filename, binary) {\r\n var ret;\r\n if (!nodeFS) nodeFS = require('fs');\r\n if (!nodePath) nodePath = require('path');\r\n filename = nodePath['normalize'](filename);\r\n ret = nodeFS['readFileSync'](filename);\r\n return binary ? ret : ret.toString();\r\n };\r\n\r\n readBinary = function readBinary(filename) {\r\n var ret = read_(filename, true);\r\n if (!ret.buffer) {\r\n ret = new Uint8Array(ret);\r\n }\r\n assert(ret.buffer);\r\n return ret;\r\n };\r\n\r\n if (process['argv'].length > 1) {\r\n Module['thisProgram'] = process['argv'][1].replace(/\\\\/g, '/');\r\n }\r\n\r\n Module['arguments'] = process['argv'].slice(2);\r\n\r\n // MODULARIZE will export the module in the proper place outside, we don't need to export here\r\n\r\n process['on']('uncaughtException', function(ex) {\r\n // suppress ExitStatus exceptions from showing an error\r\n if (!(ex instanceof ExitStatus)) {\r\n throw ex;\r\n }\r\n });\r\n // Currently node will swallow unhandled rejections, but this behavior is\r\n // deprecated, and in the future it will exit with error status.\r\n process['on']('unhandledRejection', abort);\r\n\r\n Module['quit'] = function(status) {\r\n process['exit'](status);\r\n };\r\n\r\n Module['inspect'] = function () { return '[Emscripten Module object]'; };\r\n} else\r\nif (ENVIRONMENT_IS_SHELL) {\r\n\r\n\r\n if (typeof read != 'undefined') {\r\n read_ = function shell_read(f) {\r\n return read(f);\r\n };\r\n }\r\n\r\n readBinary = function readBinary(f) {\r\n var data;\r\n if (typeof readbuffer === 'function') {\r\n return new Uint8Array(readbuffer(f));\r\n }\r\n data = read(f, 'binary');\r\n assert(typeof data === 'object');\r\n return data;\r\n };\r\n\r\n if (typeof scriptArgs != 'undefined') {\r\n Module['arguments'] = scriptArgs;\r\n } else if (typeof arguments != 'undefined') {\r\n Module['arguments'] = arguments;\r\n }\r\n\r\n if (typeof quit === 'function') {\r\n Module['quit'] = function(status) {\r\n quit(status);\r\n }\r\n }\r\n} else\r\nif (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) {\r\n if (ENVIRONMENT_IS_WORKER) { // Check worker, not web, since window could be polyfilled\r\n scriptDirectory = self.location.href;\r\n } else if (document.currentScript) { // web\r\n scriptDirectory = document.currentScript.src;\r\n }\r\n // When MODULARIZE (and not _INSTANCE), this JS may be executed later, after document.currentScript\r\n // is gone, so we saved it, and we use it here instead of any other info.\r\n if (_scriptDir) {\r\n scriptDirectory = _scriptDir;\r\n }\r\n // blob urls look like blob:http://site.com/etc/etc and we cannot infer anything from them.\r\n // otherwise, slice off the final part of the url to find the script directory.\r\n // if scriptDirectory does not contain a slash, lastIndexOf will return -1,\r\n // and scriptDirectory will correctly be replaced with an empty string.\r\n if (scriptDirectory.indexOf('blob:') !== 0) {\r\n scriptDirectory = scriptDirectory.substr(0, scriptDirectory.lastIndexOf('/')+1);\r\n } else {\r\n scriptDirectory = '';\r\n }\r\n\r\n\r\n read_ = function shell_read(url) {\r\n var xhr = new XMLHttpRequest();\r\n xhr.open('GET', url, false);\r\n xhr.send(null);\r\n return xhr.responseText;\r\n };\r\n\r\n if (ENVIRONMENT_IS_WORKER) {\r\n readBinary = function readBinary(url) {\r\n var xhr = new XMLHttpRequest();\r\n xhr.open('GET', url, false);\r\n xhr.responseType = 'arraybuffer';\r\n xhr.send(null);\r\n return new Uint8Array(xhr.response);\r\n };\r\n }\r\n\r\n readAsync = function readAsync(url, onload, onerror) {\r\n var xhr = new XMLHttpRequest();\r\n xhr.open('GET', url, true);\r\n xhr.responseType = 'arraybuffer';\r\n xhr.onload = function xhr_onload() {\r\n if (xhr.status == 200 || (xhr.status == 0 && xhr.response)) { // file URLs can return 0\r\n onload(xhr.response);\r\n return;\r\n }\r\n onerror();\r\n };\r\n xhr.onerror = onerror;\r\n xhr.send(null);\r\n };\r\n\r\n setWindowTitle = function(title) { document.title = title };\r\n} else\r\n{\r\n}\r\n\r\n// Set up the out() and err() hooks, which are how we can print to stdout or\r\n// stderr, respectively.\r\n// If the user provided Module.print or printErr, use that. Otherwise,\r\n// console.log is checked first, as 'print' on the web will open a print dialogue\r\n// printErr is preferable to console.warn (works better in shells)\r\n// bind(console) is necessary to fix IE/Edge closed dev tools panel behavior.\r\nvar out = Module['print'] || (typeof console !== 'undefined' ? console.log.bind(console) : (typeof print !== 'undefined' ? print : null));\r\nvar err = Module['printErr'] || (typeof printErr !== 'undefined' ? printErr : ((typeof console !== 'undefined' && console.warn.bind(console)) || out));\r\n\r\n// Merge back in the overrides\r\nfor (key in moduleOverrides) {\r\n if (moduleOverrides.hasOwnProperty(key)) {\r\n Module[key] = moduleOverrides[key];\r\n }\r\n}\r\n// Free the object hierarchy contained in the overrides, this lets the GC\r\n// reclaim data used e.g. in memoryInitializerRequest, which is a large typed array.\r\nmoduleOverrides = undefined;\r\n\r\n// perform assertions in shell.js after we set up out() and err(), as otherwise if an assertion fails it cannot print the message\r\n\r\n// TODO remove when SDL2 is fixed; also add the above assertion\r\n\r\n\r\n\r\n// Copyright 2017 The Emscripten Authors. All rights reserved.\r\n// Emscripten is available under two separate licenses, the MIT license and the\r\n// University of Illinois/NCSA Open Source License. Both these licenses can be\r\n// found in the LICENSE file.\r\n\r\n// {{PREAMBLE_ADDITIONS}}\r\n\r\nvar STACK_ALIGN = 16;\r\n\r\n\r\nfunction dynamicAlloc(size) {\r\n var ret = HEAP32[DYNAMICTOP_PTR>>2];\r\n var end = (ret + size + 15) & -16;\r\n if (end > _emscripten_get_heap_size()) {\r\n abort();\r\n }\r\n HEAP32[DYNAMICTOP_PTR>>2] = end;\r\n return ret;\r\n}\r\n\r\nfunction alignMemory(size, factor) {\r\n if (!factor) factor = STACK_ALIGN; // stack alignment (16-byte) by default\r\n return Math.ceil(size / factor) * factor;\r\n}\r\n\r\nfunction getNativeTypeSize(type) {\r\n switch (type) {\r\n case 'i1': case 'i8': return 1;\r\n case 'i16': return 2;\r\n case 'i32': return 4;\r\n case 'i64': return 8;\r\n case 'float': return 4;\r\n case 'double': return 8;\r\n default: {\r\n if (type[type.length-1] === '*') {\r\n return 4; // A pointer\r\n } else if (type[0] === 'i') {\r\n var bits = parseInt(type.substr(1));\r\n assert(bits % 8 === 0, 'getNativeTypeSize invalid bits ' + bits + ', type ' + type);\r\n return bits / 8;\r\n } else {\r\n return 0;\r\n }\r\n }\r\n }\r\n}\r\n\r\nfunction warnOnce(text) {\r\n if (!warnOnce.shown) warnOnce.shown = {};\r\n if (!warnOnce.shown[text]) {\r\n warnOnce.shown[text] = 1;\r\n err(text);\r\n }\r\n}\r\n\r\nvar asm2wasmImports = { // special asm2wasm imports\r\n \"f64-rem\": function(x, y) {\r\n return x % y;\r\n },\r\n \"debugger\": function() {\r\n debugger;\r\n }\r\n};\r\n\r\n\r\n\r\nvar jsCallStartIndex = 1;\r\nvar functionPointers = new Array(0);\r\n\r\n// Wraps a JS function as a wasm function with a given signature.\r\n// In the future, we may get a WebAssembly.Function constructor. Until then,\r\n// we create a wasm module that takes the JS function as an import with a given\r\n// signature, and re-exports that as a wasm function.\r\nfunction convertJsFunctionToWasm(func, sig) {\r\n\r\n // The module is static, with the exception of the type section, which is\r\n // generated based on the signature passed in.\r\n var typeSection = [\r\n 0x01, // id: section,\r\n 0x00, // length: 0 (placeholder)\r\n 0x01, // count: 1\r\n 0x60, // form: func\r\n ];\r\n var sigRet = sig.slice(0, 1);\r\n var sigParam = sig.slice(1);\r\n var typeCodes = {\r\n 'i': 0x7f, // i32\r\n 'j': 0x7e, // i64\r\n 'f': 0x7d, // f32\r\n 'd': 0x7c, // f64\r\n };\r\n\r\n // Parameters, length + signatures\r\n typeSection.push(sigParam.length);\r\n for (var i = 0; i < sigParam.length; ++i) {\r\n typeSection.push(typeCodes[sigParam[i]]);\r\n }\r\n\r\n // Return values, length + signatures\r\n // With no multi-return in MVP, either 0 (void) or 1 (anything else)\r\n if (sigRet == 'v') {\r\n typeSection.push(0x00);\r\n } else {\r\n typeSection = typeSection.concat([0x01, typeCodes[sigRet]]);\r\n }\r\n\r\n // Write the overall length of the type section back into the section header\r\n // (excepting the 2 bytes for the section id and length)\r\n typeSection[1] = typeSection.length - 2;\r\n\r\n // Rest of the module is static\r\n var bytes = new Uint8Array([\r\n 0x00, 0x61, 0x73, 0x6d, // magic (\"\\0asm\")\r\n 0x01, 0x00, 0x00, 0x00, // version: 1\r\n ].concat(typeSection, [\r\n 0x02, 0x07, // import section\r\n // (import \"e\" \"f\" (func 0 (type 0)))\r\n 0x01, 0x01, 0x65, 0x01, 0x66, 0x00, 0x00,\r\n 0x07, 0x05, // export section\r\n // (export \"f\" (func 0 (type 0)))\r\n 0x01, 0x01, 0x66, 0x00, 0x00,\r\n ]));\r\n\r\n // We can compile this wasm module synchronously because it is very small.\r\n // This accepts an import (at \"e.f\"), that it reroutes to an export (at \"f\")\r\n var module = new WebAssembly.Module(bytes);\r\n var instance = new WebAssembly.Instance(module, {\r\n e: {\r\n f: func\r\n }\r\n });\r\n var wrappedFunc = instance.exports.f;\r\n return wrappedFunc;\r\n}\r\n\r\n// Add a wasm function to the table.\r\nfunction addFunctionWasm(func, sig) {\r\n var table = wasmTable;\r\n var ret = table.length;\r\n\r\n // Grow the table\r\n try {\r\n table.grow(1);\r\n } catch (err) {\r\n if (!err instanceof RangeError) {\r\n throw err;\r\n }\r\n throw 'Unable to grow wasm table. Use a higher value for RESERVED_FUNCTION_POINTERS or set ALLOW_TABLE_GROWTH.';\r\n }\r\n\r\n // Insert new element\r\n try {\r\n // Attempting to call this with JS function will cause of table.set() to fail\r\n table.set(ret, func);\r\n } catch (err) {\r\n if (!err instanceof TypeError) {\r\n throw err;\r\n }\r\n assert(typeof sig !== 'undefined', 'Missing signature argument to addFunction');\r\n var wrapped = convertJsFunctionToWasm(func, sig);\r\n table.set(ret, wrapped);\r\n }\r\n\r\n return ret;\r\n}\r\n\r\nfunction removeFunctionWasm(index) {\r\n // TODO(sbc): Look into implementing this to allow re-using of table slots\r\n}\r\n\r\n// 'sig' parameter is required for the llvm backend but only when func is not\r\n// already a WebAssembly function.\r\nfunction addFunction(func, sig) {\r\n\r\n\r\n var base = 0;\r\n for (var i = base; i < base + 0; i++) {\r\n if (!functionPointers[i]) {\r\n functionPointers[i] = func;\r\n return jsCallStartIndex + i;\r\n }\r\n }\r\n throw 'Finished up all reserved function pointers. Use a higher value for RESERVED_FUNCTION_POINTERS.';\r\n\r\n}\r\n\r\nfunction removeFunction(index) {\r\n\r\n functionPointers[index-jsCallStartIndex] = null;\r\n}\r\n\r\nvar funcWrappers = {};\r\n\r\nfunction getFuncWrapper(func, sig) {\r\n if (!func) return; // on null pointer, return undefined\r\n assert(sig);\r\n if (!funcWrappers[sig]) {\r\n funcWrappers[sig] = {};\r\n }\r\n var sigCache = funcWrappers[sig];\r\n if (!sigCache[func]) {\r\n // optimize away arguments usage in common cases\r\n if (sig.length === 1) {\r\n sigCache[func] = function dynCall_wrapper() {\r\n return dynCall(sig, func);\r\n };\r\n } else if (sig.length === 2) {\r\n sigCache[func] = function dynCall_wrapper(arg) {\r\n return dynCall(sig, func, [arg]);\r\n };\r\n } else {\r\n // general case\r\n sigCache[func] = function dynCall_wrapper() {\r\n return dynCall(sig, func, Array.prototype.slice.call(arguments));\r\n };\r\n }\r\n }\r\n return sigCache[func];\r\n}\r\n\r\n\r\nfunction makeBigInt(low, high, unsigned) {\r\n return unsigned ? ((+((low>>>0)))+((+((high>>>0)))*4294967296.0)) : ((+((low>>>0)))+((+((high|0)))*4294967296.0));\r\n}\r\n\r\nfunction dynCall(sig, ptr, args) {\r\n if (args && args.length) {\r\n return Module['dynCall_' + sig].apply(null, [ptr].concat(args));\r\n } else {\r\n return Module['dynCall_' + sig].call(null, ptr);\r\n }\r\n}\r\n\r\nvar tempRet0 = 0;\r\n\r\nvar setTempRet0 = function(value) {\r\n tempRet0 = value;\r\n};\r\n\r\nvar getTempRet0 = function() {\r\n return tempRet0;\r\n};\r\n\r\n\r\nvar Runtime = {\r\n};\r\n\r\n// The address globals begin at. Very low in memory, for code size and optimization opportunities.\r\n// Above 0 is static memory, starting with globals.\r\n// Then the stack.\r\n// Then 'dynamic' memory for sbrk.\r\nvar GLOBAL_BASE = 1024;\r\n\r\n\r\n\r\n\r\n// === Preamble library stuff ===\r\n\r\n// Documentation for the public APIs defined in this file must be updated in:\r\n// site/source/docs/api_reference/preamble.js.rst\r\n// A prebuilt local version of the documentation is available at:\r\n// site/build/text/docs/api_reference/preamble.js.txt\r\n// You can also build docs locally as HTML or other formats in site/\r\n// An online HTML version (which may be of a different version of Emscripten)\r\n// is up at http://kripken.github.io/emscripten-site/docs/api_reference/preamble.js.html\r\n\r\n\r\n\r\nif (typeof WebAssembly !== 'object') {\r\n err('no native wasm support detected');\r\n}\r\n\r\n\r\n// In MINIMAL_RUNTIME, setValue() and getValue() are only available when building with safe heap enabled, for heap safety checking.\r\n// In traditional runtime, setValue() and getValue() are always available (although their use is highly discouraged due to perf penalties)\r\n\r\n/** @type {function(number, number, string, boolean=)} */\r\nfunction setValue(ptr, value, type, noSafe) {\r\n type = type || 'i8';\r\n if (type.charAt(type.length-1) === '*') type = 'i32'; // pointers are 32-bit\r\n switch(type) {\r\n case 'i1': HEAP8[((ptr)>>0)]=value; break;\r\n case 'i8': HEAP8[((ptr)>>0)]=value; break;\r\n case 'i16': HEAP16[((ptr)>>1)]=value; break;\r\n case 'i32': HEAP32[((ptr)>>2)]=value; break;\r\n case 'i64': (tempI64 = [value>>>0,(tempDouble=value,(+(Math_abs(tempDouble))) >= 1.0 ? (tempDouble > 0.0 ? ((Math_min((+(Math_floor((tempDouble)/4294967296.0))), 4294967295.0))|0)>>>0 : (~~((+(Math_ceil((tempDouble - +(((~~(tempDouble)))>>>0))/4294967296.0)))))>>>0) : 0)],HEAP32[((ptr)>>2)]=tempI64[0],HEAP32[(((ptr)+(4))>>2)]=tempI64[1]); break;\r\n case 'float': HEAPF32[((ptr)>>2)]=value; break;\r\n case 'double': HEAPF64[((ptr)>>3)]=value; break;\r\n default: abort('invalid type for setValue: ' + type);\r\n }\r\n}\r\n\r\n/** @type {function(number, string, boolean=)} */\r\nfunction getValue(ptr, type, noSafe) {\r\n type = type || 'i8';\r\n if (type.charAt(type.length-1) === '*') type = 'i32'; // pointers are 32-bit\r\n switch(type) {\r\n case 'i1': return HEAP8[((ptr)>>0)];\r\n case 'i8': return HEAP8[((ptr)>>0)];\r\n case 'i16': return HEAP16[((ptr)>>1)];\r\n case 'i32': return HEAP32[((ptr)>>2)];\r\n case 'i64': return HEAP32[((ptr)>>2)];\r\n case 'float': return HEAPF32[((ptr)>>2)];\r\n case 'double': return HEAPF64[((ptr)>>3)];\r\n default: abort('invalid type for getValue: ' + type);\r\n }\r\n return null;\r\n}\r\n\r\n\r\n\r\n\r\n\r\n// Wasm globals\r\n\r\nvar wasmMemory;\r\n\r\n// Potentially used for direct table calls.\r\nvar wasmTable;\r\n\r\n\r\n//========================================\r\n// Runtime essentials\r\n//========================================\r\n\r\n// whether we are quitting the application. no code should run after this.\r\n// set in exit() and abort()\r\nvar ABORT = false;\r\n\r\n// set by exit() and abort(). Passed to 'onExit' handler.\r\n// NOTE: This is also used as the process return code code in shell environments\r\n// but only when noExitRuntime is false.\r\nvar EXITSTATUS = 0;\r\n\r\n/** @type {function(*, string=)} */\r\nfunction assert(condition, text) {\r\n if (!condition) {\r\n abort('Assertion failed: ' + text);\r\n }\r\n}\r\n\r\n// Returns the C function with a specified identifier (for C++, you need to do manual name mangling)\r\nfunction getCFunc(ident) {\r\n var func = Module['_' + ident]; // closure exported function\r\n assert(func, 'Cannot call unknown function ' + ident + ', make sure it is exported');\r\n return func;\r\n}\r\n\r\n// C calling interface.\r\nfunction ccall(ident, returnType, argTypes, args, opts) {\r\n // For fast lookup of conversion functions\r\n var toC = {\r\n 'string': function(str) {\r\n var ret = 0;\r\n if (str !== null && str !== undefined && str !== 0) { // null string\r\n // at most 4 bytes per UTF-8 code point, +1 for the trailing '\\0'\r\n var len = (str.length << 2) + 1;\r\n ret = stackAlloc(len);\r\n stringToUTF8(str, ret, len);\r\n }\r\n return ret;\r\n },\r\n 'array': function(arr) {\r\n var ret = stackAlloc(arr.length);\r\n writeArrayToMemory(arr, ret);\r\n return ret;\r\n }\r\n };\r\n\r\n function convertReturnValue(ret) {\r\n if (returnType === 'string') return UTF8ToString(ret);\r\n if (returnType === 'boolean') return Boolean(ret);\r\n return ret;\r\n }\r\n\r\n var func = getCFunc(ident);\r\n var cArgs = [];\r\n var stack = 0;\r\n if (args) {\r\n for (var i = 0; i < args.length; i++) {\r\n var converter = toC[argTypes[i]];\r\n if (converter) {\r\n if (stack === 0) stack = stackSave();\r\n cArgs[i] = converter(args[i]);\r\n } else {\r\n cArgs[i] = args[i];\r\n }\r\n }\r\n }\r\n var ret = func.apply(null, cArgs);\r\n ret = convertReturnValue(ret);\r\n if (stack !== 0) stackRestore(stack);\r\n return ret;\r\n}\r\n\r\nfunction cwrap(ident, returnType, argTypes, opts) {\r\n argTypes = argTypes || [];\r\n // When the function takes numbers and returns a number, we can just return\r\n // the original function\r\n var numericArgs = argTypes.every(function(type){ return type === 'number'});\r\n var numericRet = returnType !== 'string';\r\n if (numericRet && numericArgs && !opts) {\r\n return getCFunc(ident);\r\n }\r\n return function() {\r\n return ccall(ident, returnType, argTypes, arguments, opts);\r\n }\r\n}\r\n\r\nvar ALLOC_NORMAL = 0; // Tries to use _malloc()\r\nvar ALLOC_STACK = 1; // Lives for the duration of the current function call\r\nvar ALLOC_DYNAMIC = 2; // Cannot be freed except through sbrk\r\nvar ALLOC_NONE = 3; // Do not allocate\r\n\r\n// allocate(): This is for internal use. You can use it yourself as well, but the interface\r\n// is a little tricky (see docs right below). The reason is that it is optimized\r\n// for multiple syntaxes to save space in generated code. So you should\r\n// normally not use allocate(), and instead allocate memory using _malloc(),\r\n// initialize it with setValue(), and so forth.\r\n// @slab: An array of data, or a number. If a number, then the size of the block to allocate,\r\n// in *bytes* (note that this is sometimes confusing: the next parameter does not\r\n// affect this!)\r\n// @types: Either an array of types, one for each byte (or 0 if no type at that position),\r\n// or a single type which is used for the entire block. This only matters if there\r\n// is initial data - if @slab is a number, then this does not matter at all and is\r\n// ignored.\r\n// @allocator: How to allocate memory, see ALLOC_*\r\n/** @type {function((TypedArray|Array|number), string, number, number=)} */\r\nfunction allocate(slab, types, allocator, ptr) {\r\n var zeroinit, size;\r\n if (typeof slab === 'number') {\r\n zeroinit = true;\r\n size = slab;\r\n } else {\r\n zeroinit = false;\r\n size = slab.length;\r\n }\r\n\r\n var singleType = typeof types === 'string' ? types : null;\r\n\r\n var ret;\r\n if (allocator == ALLOC_NONE) {\r\n ret = ptr;\r\n } else {\r\n ret = [_malloc,\r\n stackAlloc,\r\n dynamicAlloc][allocator](Math.max(size, singleType ? 1 : types.length));\r\n }\r\n\r\n if (zeroinit) {\r\n var stop;\r\n ptr = ret;\r\n assert((ret & 3) == 0);\r\n stop = ret + (size & ~3);\r\n for (; ptr < stop; ptr += 4) {\r\n HEAP32[((ptr)>>2)]=0;\r\n }\r\n stop = ret + size;\r\n while (ptr < stop) {\r\n HEAP8[((ptr++)>>0)]=0;\r\n }\r\n return ret;\r\n }\r\n\r\n if (singleType === 'i8') {\r\n if (slab.subarray || slab.slice) {\r\n HEAPU8.set(/** @type {!Uint8Array} */ (slab), ret);\r\n } else {\r\n HEAPU8.set(new Uint8Array(slab), ret);\r\n }\r\n return ret;\r\n }\r\n\r\n var i = 0, type, typeSize, previousType;\r\n while (i < size) {\r\n var curr = slab[i];\r\n\r\n type = singleType || types[i];\r\n if (type === 0) {\r\n i++;\r\n continue;\r\n }\r\n\r\n if (type == 'i64') type = 'i32'; // special case: we have one i32 here, and one i32 later\r\n\r\n setValue(ret+i, curr, type);\r\n\r\n // no need to look up size unless type changes, so cache it\r\n if (previousType !== type) {\r\n typeSize = getNativeTypeSize(type);\r\n previousType = type;\r\n }\r\n i += typeSize;\r\n }\r\n\r\n return ret;\r\n}\r\n\r\n// Allocate memory during any stage of startup - static memory early on, dynamic memory later, malloc when ready\r\nfunction getMemory(size) {\r\n if (!runtimeInitialized) return dynamicAlloc(size);\r\n return _malloc(size);\r\n}\r\n\r\n\r\n\r\n\r\n/** @type {function(number, number=)} */\r\nfunction Pointer_stringify(ptr, length) {\r\n abort(\"this function has been removed - you should use UTF8ToString(ptr, maxBytesToRead) instead!\");\r\n}\r\n\r\n// Given a pointer 'ptr' to a null-terminated ASCII-encoded string in the emscripten HEAP, returns\r\n// a copy of that string as a Javascript String object.\r\n\r\nfunction AsciiToString(ptr) {\r\n var str = '';\r\n while (1) {\r\n var ch = HEAPU8[((ptr++)>>0)];\r\n if (!ch) return str;\r\n str += String.fromCharCode(ch);\r\n }\r\n}\r\n\r\n// Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr',\r\n// null-terminated and encoded in ASCII form. The copy will require at most str.length+1 bytes of space in the HEAP.\r\n\r\nfunction stringToAscii(str, outPtr) {\r\n return writeAsciiToMemory(str, outPtr, false);\r\n}\r\n\r\n\r\n// Given a pointer 'ptr' to a null-terminated UTF8-encoded string in the given array that contains uint8 values, returns\r\n// a copy of that string as a Javascript String object.\r\n\r\nvar UTF8Decoder = typeof TextDecoder !== 'undefined' ? new TextDecoder('utf8') : undefined;\r\n\r\n/**\r\n * @param {number} idx\r\n * @param {number=} maxBytesToRead\r\n * @return {string}\r\n */\r\nfunction UTF8ArrayToString(u8Array, idx, maxBytesToRead) {\r\n var endIdx = idx + maxBytesToRead;\r\n var endPtr = idx;\r\n // TextDecoder needs to know the byte length in advance, it doesn't stop on null terminator by itself.\r\n // Also, use the length info to avoid running tiny strings through TextDecoder, since .subarray() allocates garbage.\r\n // (As a tiny code save trick, compare endPtr against endIdx using a negation, so that undefined means Infinity)\r\n while (u8Array[endPtr] && !(endPtr >= endIdx)) ++endPtr;\r\n\r\n if (endPtr - idx > 16 && u8Array.subarray && UTF8Decoder) {\r\n return UTF8Decoder.decode(u8Array.subarray(idx, endPtr));\r\n } else {\r\n var str = '';\r\n // If building with TextDecoder, we have already computed the string length above, so test loop end condition against that\r\n while (idx < endPtr) {\r\n // For UTF8 byte structure, see:\r\n // http://en.wikipedia.org/wiki/UTF-8#Description\r\n // https://www.ietf.org/rfc/rfc2279.txt\r\n // https://tools.ietf.org/html/rfc3629\r\n var u0 = u8Array[idx++];\r\n if (!(u0 & 0x80)) { str += String.fromCharCode(u0); continue; }\r\n var u1 = u8Array[idx++] & 63;\r\n if ((u0 & 0xE0) == 0xC0) { str += String.fromCharCode(((u0 & 31) << 6) | u1); continue; }\r\n var u2 = u8Array[idx++] & 63;\r\n if ((u0 & 0xF0) == 0xE0) {\r\n u0 = ((u0 & 15) << 12) | (u1 << 6) | u2;\r\n } else {\r\n u0 = ((u0 & 7) << 18) | (u1 << 12) | (u2 << 6) | (u8Array[idx++] & 63);\r\n }\r\n\r\n if (u0 < 0x10000) {\r\n str += String.fromCharCode(u0);\r\n } else {\r\n var ch = u0 - 0x10000;\r\n str += String.fromCharCode(0xD800 | (ch >> 10), 0xDC00 | (ch & 0x3FF));\r\n }\r\n }\r\n }\r\n return str;\r\n}\r\n\r\n// Given a pointer 'ptr' to a null-terminated UTF8-encoded string in the emscripten HEAP, returns a\r\n// copy of that string as a Javascript String object.\r\n// maxBytesToRead: an optional length that specifies the maximum number of bytes to read. You can omit\r\n// this parameter to scan the string until the first \\0 byte. If maxBytesToRead is\r\n// passed, and the string at [ptr, ptr+maxBytesToReadr[ contains a null byte in the\r\n// middle, then the string will cut short at that byte index (i.e. maxBytesToRead will\r\n// not produce a string of exact length [ptr, ptr+maxBytesToRead[)\r\n// N.B. mixing frequent uses of UTF8ToString() with and without maxBytesToRead may\r\n// throw JS JIT optimizations off, so it is worth to consider consistently using one\r\n// style or the other.\r\n/**\r\n * @param {number} ptr\r\n * @param {number=} maxBytesToRead\r\n * @return {string}\r\n */\r\nfunction UTF8ToString(ptr, maxBytesToRead) {\r\n return ptr ? UTF8ArrayToString(HEAPU8, ptr, maxBytesToRead) : '';\r\n}\r\n\r\n// Copies the given Javascript String object 'str' to the given byte array at address 'outIdx',\r\n// encoded in UTF8 form and null-terminated. The copy will require at most str.length*4+1 bytes of space in the HEAP.\r\n// Use the function lengthBytesUTF8 to compute the exact number of bytes (excluding null terminator) that this function will write.\r\n// Parameters:\r\n// str: the Javascript string to copy.\r\n// outU8Array: the array to copy to. Each index in this array is assumed to be one 8-byte element.\r\n// outIdx: The starting offset in the array to begin the copying.\r\n// maxBytesToWrite: The maximum number of bytes this function can write to the array.\r\n// This count should include the null terminator,\r\n// i.e. if maxBytesToWrite=1, only the null terminator will be written and nothing else.\r\n// maxBytesToWrite=0 does not write any bytes to the output, not even the null terminator.\r\n// Returns the number of bytes written, EXCLUDING the null terminator.\r\n\r\nfunction stringToUTF8Array(str, outU8Array, outIdx, maxBytesToWrite) {\r\n if (!(maxBytesToWrite > 0)) // Parameter maxBytesToWrite is not optional. Negative values, 0, null, undefined and false each don't write out any bytes.\r\n return 0;\r\n\r\n var startIdx = outIdx;\r\n var endIdx = outIdx + maxBytesToWrite - 1; // -1 for string null terminator.\r\n for (var i = 0; i < str.length; ++i) {\r\n // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! So decode UTF16->UTF32->UTF8.\r\n // See http://unicode.org/faq/utf_bom.html#utf16-3\r\n // For UTF8 byte structure, see http://en.wikipedia.org/wiki/UTF-8#Description and https://www.ietf.org/rfc/rfc2279.txt and https://tools.ietf.org/html/rfc3629\r\n var u = str.charCodeAt(i); // possibly a lead surrogate\r\n if (u >= 0xD800 && u <= 0xDFFF) {\r\n var u1 = str.charCodeAt(++i);\r\n u = 0x10000 + ((u & 0x3FF) << 10) | (u1 & 0x3FF);\r\n }\r\n if (u <= 0x7F) {\r\n if (outIdx >= endIdx) break;\r\n outU8Array[outIdx++] = u;\r\n } else if (u <= 0x7FF) {\r\n if (outIdx + 1 >= endIdx) break;\r\n outU8Array[outIdx++] = 0xC0 | (u >> 6);\r\n outU8Array[outIdx++] = 0x80 | (u & 63);\r\n } else if (u <= 0xFFFF) {\r\n if (outIdx + 2 >= endIdx) break;\r\n outU8Array[outIdx++] = 0xE0 | (u >> 12);\r\n outU8Array[outIdx++] = 0x80 | ((u >> 6) & 63);\r\n outU8Array[outIdx++] = 0x80 | (u & 63);\r\n } else {\r\n if (outIdx + 3 >= endIdx) break;\r\n outU8Array[outIdx++] = 0xF0 | (u >> 18);\r\n outU8Array[outIdx++] = 0x80 | ((u >> 12) & 63);\r\n outU8Array[outIdx++] = 0x80 | ((u >> 6) & 63);\r\n outU8Array[outIdx++] = 0x80 | (u & 63);\r\n }\r\n }\r\n // Null-terminate the pointer to the buffer.\r\n outU8Array[outIdx] = 0;\r\n return outIdx - startIdx;\r\n}\r\n\r\n// Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr',\r\n// null-terminated and encoded in UTF8 form. The copy will require at most str.length*4+1 bytes of space in the HEAP.\r\n// Use the function lengthBytesUTF8 to compute the exact number of bytes (excluding null terminator) that this function will write.\r\n// Returns the number of bytes written, EXCLUDING the null terminator.\r\n\r\nfunction stringToUTF8(str, outPtr, maxBytesToWrite) {\r\n return stringToUTF8Array(str, HEAPU8,outPtr, maxBytesToWrite);\r\n}\r\n\r\n// Returns the number of bytes the given Javascript string takes if encoded as a UTF8 byte array, EXCLUDING the null terminator byte.\r\nfunction lengthBytesUTF8(str) {\r\n var len = 0;\r\n for (var i = 0; i < str.length; ++i) {\r\n // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! So decode UTF16->UTF32->UTF8.\r\n // See http://unicode.org/faq/utf_bom.html#utf16-3\r\n var u = str.charCodeAt(i); // possibly a lead surrogate\r\n if (u >= 0xD800 && u <= 0xDFFF) u = 0x10000 + ((u & 0x3FF) << 10) | (str.charCodeAt(++i) & 0x3FF);\r\n if (u <= 0x7F) ++len;\r\n else if (u <= 0x7FF) len += 2;\r\n else if (u <= 0xFFFF) len += 3;\r\n else len += 4;\r\n }\r\n return len;\r\n}\r\n\r\n\r\n// Given a pointer 'ptr' to a null-terminated UTF16LE-encoded string in the emscripten HEAP, returns\r\n// a copy of that string as a Javascript String object.\r\n\r\nvar UTF16Decoder = typeof TextDecoder !== 'undefined' ? new TextDecoder('utf-16le') : undefined;\r\nfunction UTF16ToString(ptr) {\r\n var endPtr = ptr;\r\n // TextDecoder needs to know the byte length in advance, it doesn't stop on null terminator by itself.\r\n // Also, use the length info to avoid running tiny strings through TextDecoder, since .subarray() allocates garbage.\r\n var idx = endPtr >> 1;\r\n while (HEAP16[idx]) ++idx;\r\n endPtr = idx << 1;\r\n\r\n if (endPtr - ptr > 32 && UTF16Decoder) {\r\n return UTF16Decoder.decode(HEAPU8.subarray(ptr, endPtr));\r\n } else {\r\n var i = 0;\r\n\r\n var str = '';\r\n while (1) {\r\n var codeUnit = HEAP16[(((ptr)+(i*2))>>1)];\r\n if (codeUnit == 0) return str;\r\n ++i;\r\n // fromCharCode constructs a character from a UTF-16 code unit, so we can pass the UTF16 string right through.\r\n str += String.fromCharCode(codeUnit);\r\n }\r\n }\r\n}\r\n\r\n// Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr',\r\n// null-terminated and encoded in UTF16 form. The copy will require at most str.length*4+2 bytes of space in the HEAP.\r\n// Use the function lengthBytesUTF16() to compute the exact number of bytes (excluding null terminator) that this function will write.\r\n// Parameters:\r\n// str: the Javascript string to copy.\r\n// outPtr: Byte address in Emscripten HEAP where to write the string to.\r\n// maxBytesToWrite: The maximum number of bytes this function can write to the array. This count should include the null\r\n// terminator, i.e. if maxBytesToWrite=2, only the null terminator will be written and nothing else.\r\n// maxBytesToWrite<2 does not write any bytes to the output, not even the null terminator.\r\n// Returns the number of bytes written, EXCLUDING the null terminator.\r\n\r\nfunction stringToUTF16(str, outPtr, maxBytesToWrite) {\r\n // Backwards compatibility: if max bytes is not specified, assume unsafe unbounded write is allowed.\r\n if (maxBytesToWrite === undefined) {\r\n maxBytesToWrite = 0x7FFFFFFF;\r\n }\r\n if (maxBytesToWrite < 2) return 0;\r\n maxBytesToWrite -= 2; // Null terminator.\r\n var startPtr = outPtr;\r\n var numCharsToWrite = (maxBytesToWrite < str.length*2) ? (maxBytesToWrite / 2) : str.length;\r\n for (var i = 0; i < numCharsToWrite; ++i) {\r\n // charCodeAt returns a UTF-16 encoded code unit, so it can be directly written to the HEAP.\r\n var codeUnit = str.charCodeAt(i); // possibly a lead surrogate\r\n HEAP16[((outPtr)>>1)]=codeUnit;\r\n outPtr += 2;\r\n }\r\n // Null-terminate the pointer to the HEAP.\r\n HEAP16[((outPtr)>>1)]=0;\r\n return outPtr - startPtr;\r\n}\r\n\r\n// Returns the number of bytes the given Javascript string takes if encoded as a UTF16 byte array, EXCLUDING the null terminator byte.\r\n\r\nfunction lengthBytesUTF16(str) {\r\n return str.length*2;\r\n}\r\n\r\nfunction UTF32ToString(ptr) {\r\n var i = 0;\r\n\r\n var str = '';\r\n while (1) {\r\n var utf32 = HEAP32[(((ptr)+(i*4))>>2)];\r\n if (utf32 == 0)\r\n return str;\r\n ++i;\r\n // Gotcha: fromCharCode constructs a character from a UTF-16 encoded code (pair), not from a Unicode code point! So encode the code point to UTF-16 for constructing.\r\n // See http://unicode.org/faq/utf_bom.html#utf16-3\r\n if (utf32 >= 0x10000) {\r\n var ch = utf32 - 0x10000;\r\n str += String.fromCharCode(0xD800 | (ch >> 10), 0xDC00 | (ch & 0x3FF));\r\n } else {\r\n str += String.fromCharCode(utf32);\r\n }\r\n }\r\n}\r\n\r\n// Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr',\r\n// null-terminated and encoded in UTF32 form. The copy will require at most str.length*4+4 bytes of space in the HEAP.\r\n// Use the function lengthBytesUTF32() to compute the exact number of bytes (excluding null terminator) that this function will write.\r\n// Parameters:\r\n// str: the Javascript string to copy.\r\n// outPtr: Byte address in Emscripten HEAP where to write the string to.\r\n// maxBytesToWrite: The maximum number of bytes this function can write to the array. This count should include the null\r\n// terminator, i.e. if maxBytesToWrite=4, only the null terminator will be written and nothing else.\r\n// maxBytesToWrite<4 does not write any bytes to the output, not even the null terminator.\r\n// Returns the number of bytes written, EXCLUDING the null terminator.\r\n\r\nfunction stringToUTF32(str, outPtr, maxBytesToWrite) {\r\n // Backwards compatibility: if max bytes is not specified, assume unsafe unbounded write is allowed.\r\n if (maxBytesToWrite === undefined) {\r\n maxBytesToWrite = 0x7FFFFFFF;\r\n }\r\n if (maxBytesToWrite < 4) return 0;\r\n var startPtr = outPtr;\r\n var endPtr = startPtr + maxBytesToWrite - 4;\r\n for (var i = 0; i < str.length; ++i) {\r\n // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! We must decode the string to UTF-32 to the heap.\r\n // See http://unicode.org/faq/utf_bom.html#utf16-3\r\n var codeUnit = str.charCodeAt(i); // possibly a lead surrogate\r\n if (codeUnit >= 0xD800 && codeUnit <= 0xDFFF) {\r\n var trailSurrogate = str.charCodeAt(++i);\r\n codeUnit = 0x10000 + ((codeUnit & 0x3FF) << 10) | (trailSurrogate & 0x3FF);\r\n }\r\n HEAP32[((outPtr)>>2)]=codeUnit;\r\n outPtr += 4;\r\n if (outPtr + 4 > endPtr) break;\r\n }\r\n // Null-terminate the pointer to the HEAP.\r\n HEAP32[((outPtr)>>2)]=0;\r\n return outPtr - startPtr;\r\n}\r\n\r\n// Returns the number of bytes the given Javascript string takes if encoded as a UTF16 byte array, EXCLUDING the null terminator byte.\r\n\r\nfunction lengthBytesUTF32(str) {\r\n var len = 0;\r\n for (var i = 0; i < str.length; ++i) {\r\n // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! We must decode the string to UTF-32 to the heap.\r\n // See http://unicode.org/faq/utf_bom.html#utf16-3\r\n var codeUnit = str.charCodeAt(i);\r\n if (codeUnit >= 0xD800 && codeUnit <= 0xDFFF) ++i; // possibly a lead surrogate, so skip over the tail surrogate.\r\n len += 4;\r\n }\r\n\r\n return len;\r\n}\r\n\r\n// Allocate heap space for a JS string, and write it there.\r\n// It is the responsibility of the caller to free() that memory.\r\nfunction allocateUTF8(str) {\r\n var size = lengthBytesUTF8(str) + 1;\r\n var ret = _malloc(size);\r\n if (ret) stringToUTF8Array(str, HEAP8, ret, size);\r\n return ret;\r\n}\r\n\r\n// Allocate stack space for a JS string, and write it there.\r\nfunction allocateUTF8OnStack(str) {\r\n var size = lengthBytesUTF8(str) + 1;\r\n var ret = stackAlloc(size);\r\n stringToUTF8Array(str, HEAP8, ret, size);\r\n return ret;\r\n}\r\n\r\n// Deprecated: This function should not be called because it is unsafe and does not provide\r\n// a maximum length limit of how many bytes it is allowed to write. Prefer calling the\r\n// function stringToUTF8Array() instead, which takes in a maximum length that can be used\r\n// to be secure from out of bounds writes.\r\n/** @deprecated */\r\nfunction writeStringToMemory(string, buffer, dontAddNull) {\r\n warnOnce('writeStringToMemory is deprecated and should not be called! Use stringToUTF8() instead!');\r\n\r\n var /** @type {number} */ lastChar, /** @type {number} */ end;\r\n if (dontAddNull) {\r\n // stringToUTF8Array always appends null. If we don't want to do that, remember the\r\n // character that existed at the location where the null will be placed, and restore\r\n // that after the write (below).\r\n end = buffer + lengthBytesUTF8(string);\r\n lastChar = HEAP8[end];\r\n }\r\n stringToUTF8(string, buffer, Infinity);\r\n if (dontAddNull) HEAP8[end] = lastChar; // Restore the value under the null character.\r\n}\r\n\r\nfunction writeArrayToMemory(array, buffer) {\r\n HEAP8.set(array, buffer);\r\n}\r\n\r\nfunction writeAsciiToMemory(str, buffer, dontAddNull) {\r\n for (var i = 0; i < str.length; ++i) {\r\n HEAP8[((buffer++)>>0)]=str.charCodeAt(i);\r\n }\r\n // Null-terminate the pointer to the HEAP.\r\n if (!dontAddNull) HEAP8[((buffer)>>0)]=0;\r\n}\r\n\r\n\r\n\r\n\r\n\r\nfunction demangle(func) {\r\n return func;\r\n}\r\n\r\nfunction demangleAll(text) {\r\n var regex =\r\n /__Z[\\w\\d_]+/g;\r\n return text.replace(regex,\r\n function(x) {\r\n var y = demangle(x);\r\n return x === y ? x : (y + ' [' + x + ']');\r\n });\r\n}\r\n\r\nfunction jsStackTrace() {\r\n var err = new Error();\r\n if (!err.stack) {\r\n // IE10+ special cases: It does have callstack info, but it is only populated if an Error object is thrown,\r\n // so try that as a special-case.\r\n try {\r\n throw new Error(0);\r\n } catch(e) {\r\n err = e;\r\n }\r\n if (!err.stack) {\r\n return '(no stack trace available)';\r\n }\r\n }\r\n return err.stack.toString();\r\n}\r\n\r\nfunction stackTrace() {\r\n var js = jsStackTrace();\r\n if (Module['extraStackTrace']) js += '\\n' + Module['extraStackTrace']();\r\n return demangleAll(js);\r\n}\r\n\r\n\r\n\r\n// Memory management\r\n\r\nvar PAGE_SIZE = 16384;\r\nvar WASM_PAGE_SIZE = 65536;\r\nvar ASMJS_PAGE_SIZE = 16777216;\r\n\r\nfunction alignUp(x, multiple) {\r\n if (x % multiple > 0) {\r\n x += multiple - (x % multiple);\r\n }\r\n return x;\r\n}\r\n\r\nvar HEAP,\r\n/** @type {ArrayBuffer} */\r\n buffer,\r\n/** @type {Int8Array} */\r\n HEAP8,\r\n/** @type {Uint8Array} */\r\n HEAPU8,\r\n/** @type {Int16Array} */\r\n HEAP16,\r\n/** @type {Uint16Array} */\r\n HEAPU16,\r\n/** @type {Int32Array} */\r\n HEAP32,\r\n/** @type {Uint32Array} */\r\n HEAPU32,\r\n/** @type {Float32Array} */\r\n HEAPF32,\r\n/** @type {Float64Array} */\r\n HEAPF64;\r\n\r\nfunction updateGlobalBufferViews() {\r\n Module['HEAP8'] = HEAP8 = new Int8Array(buffer);\r\n Module['HEAP16'] = HEAP16 = new Int16Array(buffer);\r\n Module['HEAP32'] = HEAP32 = new Int32Array(buffer);\r\n Module['HEAPU8'] = HEAPU8 = new Uint8Array(buffer);\r\n Module['HEAPU16'] = HEAPU16 = new Uint16Array(buffer);\r\n Module['HEAPU32'] = HEAPU32 = new Uint32Array(buffer);\r\n Module['HEAPF32'] = HEAPF32 = new Float32Array(buffer);\r\n Module['HEAPF64'] = HEAPF64 = new Float64Array(buffer);\r\n}\r\n\r\n\r\nvar STATIC_BASE = 1024,\r\n STACK_BASE = 1875744,\r\n STACKTOP = STACK_BASE,\r\n STACK_MAX = 7118624,\r\n DYNAMIC_BASE = 7118624,\r\n DYNAMICTOP_PTR = 1875712;\r\n\r\n\r\n\r\n\r\nvar TOTAL_STACK = 5242880;\r\n\r\nvar INITIAL_TOTAL_MEMORY = Module['TOTAL_MEMORY'] || 134217728;\r\nif (INITIAL_TOTAL_MEMORY < TOTAL_STACK) err('TOTAL_MEMORY should be larger than TOTAL_STACK, was ' + INITIAL_TOTAL_MEMORY + '! (TOTAL_STACK=' + TOTAL_STACK + ')');\r\n\r\n// Initialize the runtime's memory\r\n\r\n\r\n\r\n\r\n\r\n\r\n if (Module['wasmMemory']) {\r\n wasmMemory = Module['wasmMemory'];\r\n } else {\r\n wasmMemory = new WebAssembly.Memory({\r\n 'initial': INITIAL_TOTAL_MEMORY / WASM_PAGE_SIZE\r\n });\r\n }\r\n\r\n\r\nif (wasmMemory) {\r\n buffer = wasmMemory.buffer;\r\n}\r\n\r\n// If the user provides an incorrect length, just use that length instead rather than providing the user to\r\n// specifically provide the memory length with Module['TOTAL_MEMORY'].\r\nINITIAL_TOTAL_MEMORY = buffer.byteLength;\r\nupdateGlobalBufferViews();\r\n\r\nHEAP32[DYNAMICTOP_PTR>>2] = DYNAMIC_BASE;\r\n\r\n\r\n\r\n\r\n\r\n\r\n// Endianness check (note: assumes compiler arch was little-endian)\r\n\r\nfunction callRuntimeCallbacks(callbacks) {\r\n while(callbacks.length > 0) {\r\n var callback = callbacks.shift();\r\n if (typeof callback == 'function') {\r\n callback();\r\n continue;\r\n }\r\n var func = callback.func;\r\n if (typeof func === 'number') {\r\n if (callback.arg === undefined) {\r\n Module['dynCall_v'](func);\r\n } else {\r\n Module['dynCall_vi'](func, callback.arg);\r\n }\r\n } else {\r\n func(callback.arg === undefined ? null : callback.arg);\r\n }\r\n }\r\n}\r\n\r\nvar __ATPRERUN__ = []; // functions called before the runtime is initialized\r\nvar __ATINIT__ = []; // functions called during startup\r\nvar __ATMAIN__ = []; // functions called when main() is to be run\r\nvar __ATEXIT__ = []; // functions called during shutdown\r\nvar __ATPOSTRUN__ = []; // functions called after the main() is called\r\n\r\nvar runtimeInitialized = false;\r\nvar runtimeExited = false;\r\n\r\n\r\nfunction preRun() {\r\n // compatibility - merge in anything from Module['preRun'] at this time\r\n if (Module['preRun']) {\r\n if (typeof Module['preRun'] == 'function') Module['preRun'] = [Module['preRun']];\r\n while (Module['preRun'].length) {\r\n addOnPreRun(Module['preRun'].shift());\r\n }\r\n }\r\n callRuntimeCallbacks(__ATPRERUN__);\r\n}\r\n\r\nfunction initRuntime() {\r\n runtimeInitialized = true;\r\n \r\n callRuntimeCallbacks(__ATINIT__);\r\n}\r\n\r\nfunction preMain() {\r\n \r\n callRuntimeCallbacks(__ATMAIN__);\r\n}\r\n\r\nfunction exitRuntime() {\r\n runtimeExited = true;\r\n}\r\n\r\nfunction postRun() {\r\n // compatibility - merge in anything from Module['postRun'] at this time\r\n if (Module['postRun']) {\r\n if (typeof Module['postRun'] == 'function') Module['postRun'] = [Module['postRun']];\r\n while (Module['postRun'].length) {\r\n addOnPostRun(Module['postRun'].shift());\r\n }\r\n }\r\n callRuntimeCallbacks(__ATPOSTRUN__);\r\n}\r\n\r\nfunction addOnPreRun(cb) {\r\n __ATPRERUN__.unshift(cb);\r\n}\r\n\r\nfunction addOnInit(cb) {\r\n __ATINIT__.unshift(cb);\r\n}\r\n\r\nfunction addOnPreMain(cb) {\r\n __ATMAIN__.unshift(cb);\r\n}\r\n\r\nfunction addOnExit(cb) {\r\n}\r\n\r\nfunction addOnPostRun(cb) {\r\n __ATPOSTRUN__.unshift(cb);\r\n}\r\n\r\nfunction unSign(value, bits, ignore) {\r\n if (value >= 0) {\r\n return value;\r\n }\r\n return bits <= 32 ? 2*Math.abs(1 << (bits-1)) + value // Need some trickery, since if bits == 32, we are right at the limit of the bits JS uses in bitshifts\r\n : Math.pow(2, bits) + value;\r\n}\r\nfunction reSign(value, bits, ignore) {\r\n if (value <= 0) {\r\n return value;\r\n }\r\n var half = bits <= 32 ? Math.abs(1 << (bits-1)) // abs is needed if bits == 32\r\n : Math.pow(2, bits-1);\r\n if (value >= half && (bits <= 32 || value > half)) { // for huge values, we can hit the precision limit and always get true here. so don't do that\r\n // but, in general there is no perfect solution here. With 64-bit ints, we get rounding and errors\r\n // TODO: In i64 mode 1, resign the two parts separately and safely\r\n value = -2*half + value; // Cannot bitshift half, as it may be at the limit of the bits JS uses in bitshifts\r\n }\r\n return value;\r\n}\r\n\r\n\r\n\r\nvar Math_abs = Math.abs;\r\nvar Math_cos = Math.cos;\r\nvar Math_sin = Math.sin;\r\nvar Math_tan = Math.tan;\r\nvar Math_acos = Math.acos;\r\nvar Math_asin = Math.asin;\r\nvar Math_atan = Math.atan;\r\nvar Math_atan2 = Math.atan2;\r\nvar Math_exp = Math.exp;\r\nvar Math_log = Math.log;\r\nvar Math_sqrt = Math.sqrt;\r\nvar Math_ceil = Math.ceil;\r\nvar Math_floor = Math.floor;\r\nvar Math_pow = Math.pow;\r\nvar Math_imul = Math.imul;\r\nvar Math_fround = Math.fround;\r\nvar Math_round = Math.round;\r\nvar Math_min = Math.min;\r\nvar Math_max = Math.max;\r\nvar Math_clz32 = Math.clz32;\r\nvar Math_trunc = Math.trunc;\r\n\r\n\r\n\r\n// A counter of dependencies for calling run(). If we need to\r\n// do asynchronous work before running, increment this and\r\n// decrement it. Incrementing must happen in a place like\r\n// Module.preRun (used by emcc to add file preloading).\r\n// Note that you can add dependencies in preRun, even though\r\n// it happens right before run - run will be postponed until\r\n// the dependencies are met.\r\nvar runDependencies = 0;\r\nvar runDependencyWatcher = null;\r\nvar dependenciesFulfilled = null; // overridden to take different actions when all run dependencies are fulfilled\r\n\r\nfunction getUniqueRunDependency(id) {\r\n return id;\r\n}\r\n\r\nfunction addRunDependency(id) {\r\n runDependencies++;\r\n if (Module['monitorRunDependencies']) {\r\n Module['monitorRunDependencies'](runDependencies);\r\n }\r\n}\r\n\r\nfunction removeRunDependency(id) {\r\n runDependencies--;\r\n if (Module['monitorRunDependencies']) {\r\n Module['monitorRunDependencies'](runDependencies);\r\n }\r\n if (runDependencies == 0) {\r\n if (runDependencyWatcher !== null) {\r\n clearInterval(runDependencyWatcher);\r\n runDependencyWatcher = null;\r\n }\r\n if (dependenciesFulfilled) {\r\n var callback = dependenciesFulfilled;\r\n dependenciesFulfilled = null;\r\n callback(); // can add another dependenciesFulfilled\r\n }\r\n }\r\n}\r\n\r\nModule[\"preloadedImages\"] = {}; // maps url to image data\r\nModule[\"preloadedAudios\"] = {}; // maps url to audio data\r\n\r\n\r\nvar memoryInitializer = null;\r\n\r\n\r\n\r\n\r\n\r\n\r\n// Copyright 2017 The Emscripten Authors. All rights reserved.\r\n// Emscripten is available under two separate licenses, the MIT license and the\r\n// University of Illinois/NCSA Open Source License. Both these licenses can be\r\n// found in the LICENSE file.\r\n\r\n// Prefix of data URIs emitted by SINGLE_FILE and related options.\r\nvar dataURIPrefix = 'data:application/octet-stream;base64,';\r\n\r\n// Indicates whether filename is a base64 data URI.\r\nfunction isDataURI(filename) {\r\n return String.prototype.startsWith ?\r\n filename.startsWith(dataURIPrefix) :\r\n filename.indexOf(dataURIPrefix) === 0;\r\n}\r\n\r\n\r\n\r\n\r\nvar wasmBinaryFile = 'Diablo.wasm';\r\nif (!isDataURI(wasmBinaryFile)) {\r\n wasmBinaryFile = locateFile(wasmBinaryFile);\r\n}\r\n\r\nfunction getBinary() {\r\n try {\r\n if (Module['wasmBinary']) {\r\n return new Uint8Array(Module['wasmBinary']);\r\n }\r\n if (readBinary) {\r\n return readBinary(wasmBinaryFile);\r\n } else {\r\n throw \"both async and sync fetching of the wasm failed\";\r\n }\r\n }\r\n catch (err) {\r\n abort(err);\r\n }\r\n}\r\n\r\nfunction getBinaryPromise() {\r\n // if we don't have the binary yet, and have the Fetch api, use that\r\n // in some environments, like Electron's render process, Fetch api may be present, but have a different context than expected, let's only use it on the Web\r\n if (!Module['wasmBinary'] && (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) && typeof fetch === 'function') {\r\n return fetch(wasmBinaryFile, { credentials: 'same-origin' }).then(function(response) {\r\n if (!response['ok']) {\r\n throw \"failed to load wasm binary file at '\" + wasmBinaryFile + \"'\";\r\n }\r\n return response['arrayBuffer']();\r\n }).catch(function () {\r\n return getBinary();\r\n });\r\n }\r\n // Otherwise, getBinary should be able to get it synchronously\r\n return new Promise(function(resolve, reject) {\r\n resolve(getBinary());\r\n });\r\n}\r\n\r\n\r\n\r\n// Create the wasm instance.\r\n// Receives the wasm imports, returns the exports.\r\nfunction createWasm(env) {\r\n\r\n // prepare imports\r\n var info = {\r\n 'env': env\r\n ,\r\n 'global': {\r\n 'NaN': NaN,\r\n 'Infinity': Infinity\r\n },\r\n 'global.Math': Math,\r\n 'asm2wasm': asm2wasmImports\r\n };\r\n // Load the wasm module and create an instance of using native support in the JS engine.\r\n // handle a generated wasm instance, receiving its exports and\r\n // performing other necessary setup\r\n function receiveInstance(instance, module) {\r\n var exports = instance.exports;\r\n Module['asm'] = exports;\r\n removeRunDependency('wasm-instantiate');\r\n }\r\n addRunDependency('wasm-instantiate');\r\n\r\n\r\n function receiveInstantiatedSource(output) {\r\n // 'output' is a WebAssemblyInstantiatedSource object which has both the module and instance.\r\n // receiveInstance() will swap in the exports (to Module.asm) so they can be called\r\n // TODO: Due to Closure regression https://github.com/google/closure-compiler/issues/3193, the above line no longer optimizes out down to the following line.\r\n // When the regression is fixed, can restore the above USE_PTHREADS-enabled path.\r\n receiveInstance(output['instance']);\r\n }\r\n\r\n\r\n function instantiateArrayBuffer(receiver) {\r\n return getBinaryPromise().then(function(binary) {\r\n return WebAssembly.instantiate(binary, info);\r\n }).then(receiver, function(reason) {\r\n err('failed to asynchronously prepare wasm: ' + reason);\r\n abort(reason);\r\n });\r\n }\r\n\r\n // Prefer streaming instantiation if available.\r\n function instantiateAsync() {\r\n if (!Module['wasmBinary'] &&\r\n typeof WebAssembly.instantiateStreaming === 'function' &&\r\n !isDataURI(wasmBinaryFile) &&\r\n typeof fetch === 'function') {\r\n fetch(wasmBinaryFile, { credentials: 'same-origin' }).then(function (response) {\r\n return WebAssembly.instantiateStreaming(response, info)\r\n .then(receiveInstantiatedSource, function(reason) {\r\n // We expect the most common failure cause to be a bad MIME type for the binary,\r\n // in which case falling back to ArrayBuffer instantiation should work.\r\n err('wasm streaming compile failed: ' + reason);\r\n err('falling back to ArrayBuffer instantiation');\r\n instantiateArrayBuffer(receiveInstantiatedSource);\r\n });\r\n });\r\n } else {\r\n return instantiateArrayBuffer(receiveInstantiatedSource);\r\n }\r\n }\r\n // User shell pages can write their own Module.instantiateWasm = function(imports, successCallback) callback\r\n // to manually instantiate the Wasm module themselves. This allows pages to run the instantiation parallel\r\n // to any other async startup actions they are performing.\r\n if (Module['instantiateWasm']) {\r\n try {\r\n var exports = Module['instantiateWasm'](info, receiveInstance);\r\n return exports;\r\n } catch(e) {\r\n err('Module.instantiateWasm callback failed with error: ' + e);\r\n return false;\r\n }\r\n }\r\n\r\n instantiateAsync();\r\n return {}; // no exports yet; we'll fill them in later\r\n}\r\n\r\n// Provide an \"asm.js function\" for the application, called to \"link\" the asm.js module. We instantiate\r\n// the wasm module at that time, and it receives imports and provides exports and so forth, the app\r\n// doesn't need to care that it is wasm or asm.js.\r\n\r\nModule['asm'] = function(global, env, providedBuffer) {\r\n // memory was already allocated (so js could use the buffer)\r\n env['memory'] = wasmMemory\r\n ;\r\n // import table\r\n env['table'] = wasmTable = new WebAssembly.Table({\r\n 'initial': 1116,\r\n 'maximum': 1116,\r\n 'element': 'anyfunc'\r\n });\r\n // With the wasm backend __memory_base and __table_base and only needed for\r\n // relocatable output.\r\n env['__memory_base'] = 1024; // tell the memory segments where to place themselves\r\n // table starts at 0 by default (even in dynamic linking, for the main module)\r\n env['__table_base'] = 0;\r\n\r\n var exports = createWasm(env);\r\n return exports;\r\n};\r\n\r\n// Globals used by JS i64 conversions\r\nvar tempDouble;\r\nvar tempI64;\r\n\r\n// === Body ===\r\n\r\nvar ASM_CONSTS = [function($0) { self.DApi.current_save_id($0); }];\r\n\r\nfunction _emscripten_asm_const_ii(code, a0) {\r\n return ASM_CONSTS[code](a0);\r\n}\r\nfunction __api_close_keyboard(){ self.DApi.close_keyboard(); }\r\nfunction __api_open_keyboard(x0,y0,x1,y1,len){ self.DApi.open_keyboard(x0, y0, x1, y1, len); }\r\nfunction _api_create_sound(id,ptr,size){ self.DApi.create_sound(id, HEAPU8.slice(ptr, ptr + size)); }\r\nfunction _api_create_sound_float(id,ptr,samples,channels,rate){ self.DApi.create_sound_raw(id, HEAPF32.slice(ptr / 4, ptr / 4 + samples * channels), samples, channels, rate); }\r\nfunction _api_delete_sound(id){ self.DApi.delete_sound(id); }\r\nfunction _api_draw_begin(){ self.DApi.draw_begin(); }\r\nfunction _api_draw_belt(items){ self.DApi.draw_belt(HEAP32.subarray(items / 4, items / 4 + 8)); }\r\nfunction _api_draw_blit(x,y,w,h,ptr){ self.DApi.draw_blit(x, y, w, h, HEAPU8.subarray(ptr, ptr + w * h * 4)); }\r\nfunction _api_draw_clip_text(x0,y0,x1,y1){ self.DApi.draw_clip_text(x0, y0, x1, y1); }\r\nfunction _api_draw_end(){ self.DApi.draw_end(); }\r\nfunction _api_draw_text(x,y,ptr,color){ var end = HEAPU8.indexOf(0, ptr); var text = String.fromCharCode.apply(null, HEAPU8.subarray(ptr, end)); self.DApi.draw_text(x, y, text, color); }\r\nfunction _api_duplicate_sound(id,srcId){ self.DApi.duplicate_sound(id, srcId); }\r\nfunction _api_exit_game(){ self.DApi.exit_game(); }\r\nfunction _api_play_sound(id,volume,pan,loop){ self.DApi.play_sound(id, volume, pan, loop); }\r\nfunction _api_set_cursor(x,y){ self.DApi.set_cursor(x, y); }\r\nfunction _api_set_volume(id,volume){ self.DApi.set_volume(id, volume); }\r\nfunction _api_stop_sound(id){ self.DApi.stop_sound(id); }\r\nfunction _api_use_websocket(use){ self.DApi.use_websocket(use); }\r\nfunction _api_websocket_closed(){ return self.DApi.websocket_closed(); }\r\nfunction _api_websocket_send(ptr,size){ self.DApi.websocket_send(HEAPU8.subarray(ptr, ptr + size)); }\r\nfunction _exit_error(err){ var end = HEAPU8.indexOf( 0, err ); var text = String.fromCharCode.apply(null, HEAPU8.subarray( err, end )); self.DApi.exit_error( text ); }\r\nfunction _get_file_contents(path,ptr,offset,size){ var end = HEAPU8.indexOf( 0, path); var text = String.fromCharCode.apply(null, HEAPU8.subarray(path, end )); self.DApi.get_file_contents(text, HEAPU8.subarray(ptr, ptr + size), offset); }\r\nfunction _get_file_size(path){ var end = HEAPU8.indexOf( 0, path); var text = String.fromCharCode.apply(null, HEAPU8.subarray(path, end )); return self.DApi.get_file_size(text); }\r\nfunction _put_file_contents(path,ptr,size){ var end = HEAPU8.indexOf( 0, path); var text = String.fromCharCode.apply(null, HEAPU8.subarray(path, end)); self.DApi.put_file_contents(text, HEAPU8.slice(ptr, ptr + size)); }\r\nfunction _remove_file(path){ var end = HEAPU8.indexOf( 0, path); var text = String.fromCharCode.apply(null, HEAPU8.subarray(path, end )); self.DApi.remove_file( text ); }\r\nfunction _show_alert(err){ var end = HEAPU8.indexOf( 0, err ); var text = String.fromCharCode.apply( null, HEAPU8.subarray( err, end ) ); self.alert( text ); }\r\nfunction _trace_pop(){ if (self.WASM_TRACE) { self.WASM_TRACE.pop(); } }\r\nfunction _trace_push(ptr){ var end = HEAPU8.indexOf(0, ptr); var text = String.fromCharCode.apply(null, HEAPU8.subarray(ptr, end)); console.log(text); self.WASM_TRACE = self.WASM_TRACE || []; self.WASM_TRACE.push(text); }\r\n\r\n\r\n\r\n// STATICTOP = STATIC_BASE + 1874720;\r\n/* global initializers */ __ATINIT__.push({ func: function() { globalCtors() } });\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n/* no memory initializer */\r\nvar tempDoublePtr = 1875728\r\n\r\nfunction copyTempFloat(ptr) { // functions, because inlining this code increases code size too much\r\n HEAP8[tempDoublePtr] = HEAP8[ptr];\r\n HEAP8[tempDoublePtr+1] = HEAP8[ptr+1];\r\n HEAP8[tempDoublePtr+2] = HEAP8[ptr+2];\r\n HEAP8[tempDoublePtr+3] = HEAP8[ptr+3];\r\n}\r\n\r\nfunction copyTempDouble(ptr) {\r\n HEAP8[tempDoublePtr] = HEAP8[ptr];\r\n HEAP8[tempDoublePtr+1] = HEAP8[ptr+1];\r\n HEAP8[tempDoublePtr+2] = HEAP8[ptr+2];\r\n HEAP8[tempDoublePtr+3] = HEAP8[ptr+3];\r\n HEAP8[tempDoublePtr+4] = HEAP8[ptr+4];\r\n HEAP8[tempDoublePtr+5] = HEAP8[ptr+5];\r\n HEAP8[tempDoublePtr+6] = HEAP8[ptr+6];\r\n HEAP8[tempDoublePtr+7] = HEAP8[ptr+7];\r\n}\r\n\r\n// {{PRE_LIBRARY}}\r\n\r\n\r\n function ___assert_fail(condition, filename, line, func) {\r\n abort('Assertion failed: ' + UTF8ToString(condition) + ', at: ' + [filename ? UTF8ToString(filename) : 'unknown filename', line, func ? UTF8ToString(func) : 'unknown function']);\r\n }\r\n\r\n function ___cxa_allocate_exception(size) {\r\n return _malloc(size);\r\n }\r\n\r\n \r\n var ___exception_infos={};\r\n \r\n var ___exception_caught= [];\r\n \r\n function ___exception_addRef(ptr) {\r\n if (!ptr) return;\r\n var info = ___exception_infos[ptr];\r\n info.refcount++;\r\n }\r\n \r\n function ___exception_deAdjust(adjusted) {\r\n if (!adjusted || ___exception_infos[adjusted]) return adjusted;\r\n for (var key in ___exception_infos) {\r\n var ptr = +key; // the iteration key is a string, and if we throw this, it must be an integer as that is what we look for\r\n var adj = ___exception_infos[ptr].adjusted;\r\n var len = adj.length;\r\n for (var i = 0; i < len; i++) {\r\n if (adj[i] === adjusted) {\r\n return ptr;\r\n }\r\n }\r\n }\r\n return adjusted;\r\n }function ___cxa_begin_catch(ptr) {\r\n var info = ___exception_infos[ptr];\r\n if (info && !info.caught) {\r\n info.caught = true;\r\n __ZSt18uncaught_exceptionv.uncaught_exceptions--;\r\n }\r\n if (info) info.rethrown = false;\r\n ___exception_caught.push(ptr);\r\n ___exception_addRef(___exception_deAdjust(ptr));\r\n return ptr;\r\n }\r\n\r\n \r\n var ___exception_last=0;\r\n \r\n \r\n function ___cxa_free_exception(ptr) {\r\n try {\r\n return _free(ptr);\r\n } catch(e) {\r\n }\r\n }function ___exception_decRef(ptr) {\r\n if (!ptr) return;\r\n var info = ___exception_infos[ptr];\r\n info.refcount--;\r\n // A rethrown exception can reach refcount 0; it must not be discarded\r\n // Its next handler will clear the rethrown flag and addRef it, prior to\r\n // final decRef and destruction here\r\n if (info.refcount === 0 && !info.rethrown) {\r\n if (info.destructor) {\r\n Module['dynCall_vi'](info.destructor, ptr);\r\n }\r\n delete ___exception_infos[ptr];\r\n ___cxa_free_exception(ptr);\r\n }\r\n }\r\n \r\n function ___cxa_end_catch() {\r\n // Clear state flag.\r\n _setThrew(0);\r\n // Call destructor if one is registered then clear it.\r\n var ptr = ___exception_caught.pop();\r\n if (ptr) {\r\n ___exception_decRef(___exception_deAdjust(ptr));\r\n ___exception_last = 0; // XXX in decRef?\r\n }\r\n }\r\n\r\n \r\n \r\n function ___resumeException(ptr) {\r\n if (!___exception_last) { ___exception_last = ptr; }\r\n throw ptr;\r\n }function ___cxa_find_matching_catch() {\r\n var thrown = ___exception_last;\r\n if (!thrown) {\r\n // just pass through the null ptr\r\n return ((setTempRet0(0),0)|0);\r\n }\r\n var info = ___exception_infos[thrown];\r\n var throwntype = info.type;\r\n if (!throwntype) {\r\n // just pass through the thrown ptr\r\n return ((setTempRet0(0),thrown)|0);\r\n }\r\n var typeArray = Array.prototype.slice.call(arguments);\r\n \r\n var pointer = ___cxa_is_pointer_type(throwntype);\r\n // can_catch receives a **, add indirection\r\n var buffer = 1875696;\r\n HEAP32[((buffer)>>2)]=thrown;\r\n thrown = buffer;\r\n // The different catch blocks are denoted by different types.\r\n // Due to inheritance, those types may not precisely match the\r\n // type of the thrown object. Find one which matches, and\r\n // return the type of the catch block which should be called.\r\n for (var i = 0; i < typeArray.length; i++) {\r\n if (typeArray[i] && ___cxa_can_catch(typeArray[i], throwntype, thrown)) {\r\n thrown = HEAP32[((thrown)>>2)]; // undo indirection\r\n info.adjusted.push(thrown);\r\n return ((setTempRet0(typeArray[i]),thrown)|0);\r\n }\r\n }\r\n // Shouldn't happen unless we have bogus data in typeArray\r\n // or encounter a type for which emscripten doesn't have suitable\r\n // typeinfo defined. Best-efforts match just in case.\r\n thrown = HEAP32[((thrown)>>2)]; // undo indirection\r\n return ((setTempRet0(throwntype),thrown)|0);\r\n }\r\n Module[\"___cxa_find_matching_catch\"] = ___cxa_find_matching_catch;function ___cxa_find_matching_catch_2(a0,a1\r\n /*``*/) {\r\n return ___cxa_find_matching_catch(a0,a1);\r\n }\r\n\r\n function ___cxa_find_matching_catch_3(a0,a1,a2\r\n /*``*/) {\r\n return ___cxa_find_matching_catch(a0,a1,a2);\r\n }\r\n\r\n\r\n function ___cxa_get_exception_ptr(ptr) {\r\n // TODO: use info.adjusted?\r\n return ptr;\r\n }\r\n\r\n function ___cxa_pure_virtual() {\r\n ABORT = true;\r\n throw 'Pure virtual function called!';\r\n }\r\n\r\n function ___cxa_throw(ptr, type, destructor) {\r\n ___exception_infos[ptr] = {\r\n ptr: ptr,\r\n adjusted: [ptr],\r\n type: type,\r\n destructor: destructor,\r\n refcount: 0,\r\n caught: false,\r\n rethrown: false\r\n };\r\n ___exception_last = ptr;\r\n if (!(\"uncaught_exception\" in __ZSt18uncaught_exceptionv)) {\r\n __ZSt18uncaught_exceptionv.uncaught_exceptions = 1;\r\n } else {\r\n __ZSt18uncaught_exceptionv.uncaught_exceptions++;\r\n }\r\n throw ptr;\r\n }\r\n\r\n function ___cxa_uncaught_exceptions() {\r\n return __ZSt18uncaught_exceptionv.uncaught_exceptions;\r\n }\r\n\r\n function ___gxx_personality_v0() {\r\n }\r\n\r\n function ___lock() {}\r\n\r\n\r\n \r\n \r\n var PATH={splitPath:function (filename) {\r\n var splitPathRe = /^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/;\r\n return splitPathRe.exec(filename).slice(1);\r\n },normalizeArray:function (parts, allowAboveRoot) {\r\n // if the path tries to go above the root, `up` ends up > 0\r\n var up = 0;\r\n for (var i = parts.length - 1; i >= 0; i--) {\r\n var last = parts[i];\r\n if (last === '.') {\r\n parts.splice(i, 1);\r\n } else if (last === '..') {\r\n parts.splice(i, 1);\r\n up++;\r\n } else if (up) {\r\n parts.splice(i, 1);\r\n up--;\r\n }\r\n }\r\n // if the path is allowed to go above the root, restore leading ..s\r\n if (allowAboveRoot) {\r\n for (; up; up--) {\r\n parts.unshift('..');\r\n }\r\n }\r\n return parts;\r\n },normalize:function (path) {\r\n var isAbsolute = path.charAt(0) === '/',\r\n trailingSlash = path.substr(-1) === '/';\r\n // Normalize the path\r\n path = PATH.normalizeArray(path.split('/').filter(function(p) {\r\n return !!p;\r\n }), !isAbsolute).join('/');\r\n if (!path && !isAbsolute) {\r\n path = '.';\r\n }\r\n if (path && trailingSlash) {\r\n path += '/';\r\n }\r\n return (isAbsolute ? '/' : '') + path;\r\n },dirname:function (path) {\r\n var result = PATH.splitPath(path),\r\n root = result[0],\r\n dir = result[1];\r\n if (!root && !dir) {\r\n // No dirname whatsoever\r\n return '.';\r\n }\r\n if (dir) {\r\n // It has a dirname, strip trailing slash\r\n dir = dir.substr(0, dir.length - 1);\r\n }\r\n return root + dir;\r\n },basename:function (path) {\r\n // EMSCRIPTEN return '/'' for '/', not an empty string\r\n if (path === '/') return '/';\r\n var lastSlash = path.lastIndexOf('/');\r\n if (lastSlash === -1) return path;\r\n return path.substr(lastSlash+1);\r\n },extname:function (path) {\r\n return PATH.splitPath(path)[3];\r\n },join:function () {\r\n var paths = Array.prototype.slice.call(arguments, 0);\r\n return PATH.normalize(paths.join('/'));\r\n },join2:function (l, r) {\r\n return PATH.normalize(l + '/' + r);\r\n }};var SYSCALLS={buffers:[null,[],[]],printChar:function (stream, curr) {\r\n var buffer = SYSCALLS.buffers[stream];\r\n if (curr === 0 || curr === 10) {\r\n (stream === 1 ? out : err)(UTF8ArrayToString(buffer, 0));\r\n buffer.length = 0;\r\n } else {\r\n buffer.push(curr);\r\n }\r\n },varargs:0,get:function (varargs) {\r\n SYSCALLS.varargs += 4;\r\n var ret = HEAP32[(((SYSCALLS.varargs)-(4))>>2)];\r\n return ret;\r\n },getStr:function () {\r\n var ret = UTF8ToString(SYSCALLS.get());\r\n return ret;\r\n },get64:function () {\r\n var low = SYSCALLS.get(), high = SYSCALLS.get();\r\n return low;\r\n },getZero:function () {\r\n SYSCALLS.get();\r\n }};function ___syscall140(which, varargs) {SYSCALLS.varargs = varargs;\r\n try {\r\n // llseek\r\n var stream = SYSCALLS.getStreamFromFD(), offset_high = SYSCALLS.get(), offset_low = SYSCALLS.get(), result = SYSCALLS.get(), whence = SYSCALLS.get();\r\n return 0;\r\n } catch (e) {\r\n if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e);\r\n return -e.errno;\r\n }\r\n }\r\n\r\n \r\n function flush_NO_FILESYSTEM() {\r\n // flush anything remaining in the buffers during shutdown\r\n var fflush = Module[\"_fflush\"];\r\n if (fflush) fflush(0);\r\n var buffers = SYSCALLS.buffers;\r\n if (buffers[1].length) SYSCALLS.printChar(1, 10);\r\n if (buffers[2].length) SYSCALLS.printChar(2, 10);\r\n }function ___syscall146(which, varargs) {SYSCALLS.varargs = varargs;\r\n try {\r\n // writev\r\n // hack to support printf in SYSCALLS_REQUIRE_FILESYSTEM=0\r\n var stream = SYSCALLS.get(), iov = SYSCALLS.get(), iovcnt = SYSCALLS.get();\r\n var ret = 0;\r\n for (var i = 0; i < iovcnt; i++) {\r\n var ptr = HEAP32[(((iov)+(i*8))>>2)];\r\n var len = HEAP32[(((iov)+(i*8 + 4))>>2)];\r\n for (var j = 0; j < len; j++) {\r\n SYSCALLS.printChar(stream, HEAPU8[ptr+j]);\r\n }\r\n ret += len;\r\n }\r\n return ret;\r\n } catch (e) {\r\n if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e);\r\n return -e.errno;\r\n }\r\n }\r\n\r\n function ___syscall54(which, varargs) {SYSCALLS.varargs = varargs;\r\n try {\r\n // ioctl\r\n return 0;\r\n } catch (e) {\r\n if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e);\r\n return -e.errno;\r\n }\r\n }\r\n\r\n function ___syscall6(which, varargs) {SYSCALLS.varargs = varargs;\r\n try {\r\n // close\r\n var stream = SYSCALLS.getStreamFromFD();\r\n return 0;\r\n } catch (e) {\r\n if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e);\r\n return -e.errno;\r\n }\r\n }\r\n\r\n function ___unlock() {}\r\n\r\n function _abort() {\r\n Module['abort']();\r\n }\r\n\r\n var _emscripten_asm_const_int=true;\r\n\r\n function _emscripten_get_heap_size() {\r\n return HEAP8.length;\r\n }\r\n\r\n function _exit(status) {\r\n // void _exit(int status);\r\n // http://pubs.opengroup.org/onlinepubs/000095399/functions/exit.html\r\n exit(status);\r\n }\r\n\r\n \r\n\r\n function _llvm_eh_typeid_for(type) {\r\n return type;\r\n }\r\n\r\n function _llvm_trap() {\r\n abort('trap!');\r\n }\r\n\r\n \r\n function _emscripten_memcpy_big(dest, src, num) {\r\n HEAPU8.set(HEAPU8.subarray(src, src+num), dest);\r\n }\r\n \r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n function ___setErrNo(value) {\r\n if (Module['___errno_location']) HEAP32[((Module['___errno_location']())>>2)]=value;\r\n return value;\r\n }\r\n \r\n \r\n function abortOnCannotGrowMemory(requestedSize) {\r\n abort('OOM');\r\n }\r\n \r\n function emscripten_realloc_buffer(size) {\r\n var PAGE_MULTIPLE = 65536;\r\n size = alignUp(size, PAGE_MULTIPLE); // round up to wasm page size\r\n var oldSize = buffer.byteLength;\r\n // native wasm support\r\n // note that this is *not* threadsafe. multiple threads can call .grow(), and each\r\n // presents a delta, so in theory we may over-allocate here (e.g. if two threads\r\n // ask to grow from 256MB to 512MB, we get 2 requests to add +256MB, and may end\r\n // up growing to 768MB (even though we may have been able to make do with 512MB).\r\n // TODO: consider decreasing the step sizes in emscripten_resize_heap\r\n try {\r\n var result = wasmMemory.grow((size - oldSize) / 65536); // .grow() takes a delta compared to the previous size\r\n if (result !== (-1 | 0)) {\r\n // success in native wasm memory growth, get the buffer from the memory\r\n buffer = wasmMemory.buffer;\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n } catch(e) {\r\n return false;\r\n }\r\n }function _emscripten_resize_heap(requestedSize) {\r\n var oldSize = _emscripten_get_heap_size();\r\n // With pthreads, races can happen (another thread might increase the size in between), so return a failure, and let the caller retry.\r\n \r\n \r\n var PAGE_MULTIPLE = 65536;\r\n var LIMIT = 2147483648 - PAGE_MULTIPLE; // We can do one page short of 2GB as theoretical maximum.\r\n \r\n if (requestedSize > LIMIT) {\r\n return false;\r\n }\r\n \r\n var MIN_TOTAL_MEMORY = 16777216;\r\n var newSize = Math.max(oldSize, MIN_TOTAL_MEMORY); // So the loop below will not be infinite, and minimum asm.js memory size is 16MB.\r\n \r\n // TODO: see realloc_buffer - for PTHREADS we may want to decrease these jumps\r\n while (newSize < requestedSize) { // Keep incrementing the heap size as long as it's less than what is requested.\r\n if (newSize <= 536870912) {\r\n newSize = alignUp(2 * newSize, PAGE_MULTIPLE); // Simple heuristic: double until 1GB...\r\n } else {\r\n // ..., but after that, add smaller increments towards 2GB, which we cannot reach\r\n newSize = Math.min(alignUp((3 * newSize + 2147483648) / 4, PAGE_MULTIPLE), LIMIT);\r\n }\r\n \r\n }\r\n \r\n \r\n \r\n \r\n if (!emscripten_realloc_buffer(newSize)) {\r\n return false;\r\n }\r\n \r\n updateGlobalBufferViews();\r\n \r\n \r\n \r\n return true;\r\n } \r\n\r\n function _time(ptr) {\r\n var ret = (Date.now()/1000)|0;\r\n if (ptr) {\r\n HEAP32[((ptr)>>2)]=ret;\r\n }\r\n return ret;\r\n }\r\nvar ASSERTIONS = false;\r\n\r\n// Copyright 2017 The Emscripten Authors. All rights reserved.\r\n// Emscripten is available under two separate licenses, the MIT license and the\r\n// University of Illinois/NCSA Open Source License. Both these licenses can be\r\n// found in the LICENSE file.\r\n\r\n/** @type {function(string, boolean=, number=)} */\r\nfunction intArrayFromString(stringy, dontAddNull, length) {\r\n var len = length > 0 ? length : lengthBytesUTF8(stringy)+1;\r\n var u8array = new Array(len);\r\n var numBytesWritten = stringToUTF8Array(stringy, u8array, 0, u8array.length);\r\n if (dontAddNull) u8array.length = numBytesWritten;\r\n return u8array;\r\n}\r\n\r\nfunction intArrayToString(array) {\r\n var ret = [];\r\n for (var i = 0; i < array.length; i++) {\r\n var chr = array[i];\r\n if (chr > 0xFF) {\r\n if (ASSERTIONS) {\r\n assert(false, 'Character code ' + chr + ' (' + String.fromCharCode(chr) + ') at offset ' + i + ' not in 0x00-0xFF.');\r\n }\r\n chr &= 0xFF;\r\n }\r\n ret.push(String.fromCharCode(chr));\r\n }\r\n return ret.join('');\r\n}\r\n\r\n\r\n// ASM_LIBRARY EXTERN PRIMITIVES: Int8Array,Int32Array\r\n\r\n\r\nfunction invoke_i(index) {\r\n var sp = stackSave();\r\n try {\r\n return dynCall_i(index);\r\n } catch(e) {\r\n stackRestore(sp);\r\n if (e !== e+0 && e !== 'longjmp') throw e;\r\n _setThrew(1, 0);\r\n }\r\n}\r\n\r\nfunction invoke_ii(index,a1) {\r\n var sp = stackSave();\r\n try {\r\n return dynCall_ii(index,a1);\r\n } catch(e) {\r\n stackRestore(sp);\r\n if (e !== e+0 && e !== 'longjmp') throw e;\r\n _setThrew(1, 0);\r\n }\r\n}\r\n\r\nfunction invoke_iii(index,a1,a2) {\r\n var sp = stackSave();\r\n try {\r\n return dynCall_iii(index,a1,a2);\r\n } catch(e) {\r\n stackRestore(sp);\r\n if (e !== e+0 && e !== 'longjmp') throw e;\r\n _setThrew(1, 0);\r\n }\r\n}\r\n\r\nfunction invoke_iiii(index,a1,a2,a3) {\r\n var sp = stackSave();\r\n try {\r\n return dynCall_iiii(index,a1,a2,a3);\r\n } catch(e) {\r\n stackRestore(sp);\r\n if (e !== e+0 && e !== 'longjmp') throw e;\r\n _setThrew(1, 0);\r\n }\r\n}\r\n\r\nfunction invoke_iiiii(index,a1,a2,a3,a4) {\r\n var sp = stackSave();\r\n try {\r\n return dynCall_iiiii(index,a1,a2,a3,a4);\r\n } catch(e) {\r\n stackRestore(sp);\r\n if (e !== e+0 && e !== 'longjmp') throw e;\r\n _setThrew(1, 0);\r\n }\r\n}\r\n\r\nfunction invoke_iiiiii(index,a1,a2,a3,a4,a5) {\r\n var sp = stackSave();\r\n try {\r\n return dynCall_iiiiii(index,a1,a2,a3,a4,a5);\r\n } catch(e) {\r\n stackRestore(sp);\r\n if (e !== e+0 && e !== 'longjmp') throw e;\r\n _setThrew(1, 0);\r\n }\r\n}\r\n\r\nfunction invoke_ji(index,a1) {\r\n var sp = stackSave();\r\n try {\r\n return dynCall_ji(index,a1);\r\n } catch(e) {\r\n stackRestore(sp);\r\n if (e !== e+0 && e !== 'longjmp') throw e;\r\n _setThrew(1, 0);\r\n }\r\n}\r\n\r\nfunction invoke_v(index) {\r\n var sp = stackSave();\r\n try {\r\n dynCall_v(index);\r\n } catch(e) {\r\n stackRestore(sp);\r\n if (e !== e+0 && e !== 'longjmp') throw e;\r\n _setThrew(1, 0);\r\n }\r\n}\r\n\r\nfunction invoke_vi(index,a1) {\r\n var sp = stackSave();\r\n try {\r\n dynCall_vi(index,a1);\r\n } catch(e) {\r\n stackRestore(sp);\r\n if (e !== e+0 && e !== 'longjmp') throw e;\r\n _setThrew(1, 0);\r\n }\r\n}\r\n\r\nfunction invoke_vii(index,a1,a2) {\r\n var sp = stackSave();\r\n try {\r\n dynCall_vii(index,a1,a2);\r\n } catch(e) {\r\n stackRestore(sp);\r\n if (e !== e+0 && e !== 'longjmp') throw e;\r\n _setThrew(1, 0);\r\n }\r\n}\r\n\r\nfunction invoke_viii(index,a1,a2,a3) {\r\n var sp = stackSave();\r\n try {\r\n dynCall_viii(index,a1,a2,a3);\r\n } catch(e) {\r\n stackRestore(sp);\r\n if (e !== e+0 && e !== 'longjmp') throw e;\r\n _setThrew(1, 0);\r\n }\r\n}\r\n\r\nfunction invoke_viiii(index,a1,a2,a3,a4) {\r\n var sp = stackSave();\r\n try {\r\n dynCall_viiii(index,a1,a2,a3,a4);\r\n } catch(e) {\r\n stackRestore(sp);\r\n if (e !== e+0 && e !== 'longjmp') throw e;\r\n _setThrew(1, 0);\r\n }\r\n}\r\n\r\nfunction invoke_viiiii(index,a1,a2,a3,a4,a5) {\r\n var sp = stackSave();\r\n try {\r\n dynCall_viiiii(index,a1,a2,a3,a4,a5);\r\n } catch(e) {\r\n stackRestore(sp);\r\n if (e !== e+0 && e !== 'longjmp') throw e;\r\n _setThrew(1, 0);\r\n }\r\n}\r\n\r\nfunction invoke_viiiiiii(index,a1,a2,a3,a4,a5,a6,a7) {\r\n var sp = stackSave();\r\n try {\r\n dynCall_viiiiiii(index,a1,a2,a3,a4,a5,a6,a7);\r\n } catch(e) {\r\n stackRestore(sp);\r\n if (e !== e+0 && e !== 'longjmp') throw e;\r\n _setThrew(1, 0);\r\n }\r\n}\r\n\r\nfunction invoke_viij(index,a1,a2,a3,a4) {\r\n var sp = stackSave();\r\n try {\r\n dynCall_viij(index,a1,a2,a3,a4);\r\n } catch(e) {\r\n stackRestore(sp);\r\n if (e !== e+0 && e !== 'longjmp') throw e;\r\n _setThrew(1, 0);\r\n }\r\n}\r\n\r\nfunction invoke_viji(index,a1,a2,a3,a4) {\r\n var sp = stackSave();\r\n try {\r\n dynCall_viji(index,a1,a2,a3,a4);\r\n } catch(e) {\r\n stackRestore(sp);\r\n if (e !== e+0 && e !== 'longjmp') throw e;\r\n _setThrew(1, 0);\r\n }\r\n}\r\n\r\nvar asmGlobalArg = {};\r\n\r\nvar asmLibraryArg = {\r\n \"abort\": abort,\r\n \"setTempRet0\": setTempRet0,\r\n \"getTempRet0\": getTempRet0,\r\n \"invoke_i\": invoke_i,\r\n \"invoke_ii\": invoke_ii,\r\n \"invoke_iii\": invoke_iii,\r\n \"invoke_iiii\": invoke_iiii,\r\n \"invoke_iiiii\": invoke_iiiii,\r\n \"invoke_iiiiii\": invoke_iiiiii,\r\n \"invoke_ji\": invoke_ji,\r\n \"invoke_v\": invoke_v,\r\n \"invoke_vi\": invoke_vi,\r\n \"invoke_vii\": invoke_vii,\r\n \"invoke_viii\": invoke_viii,\r\n \"invoke_viiii\": invoke_viiii,\r\n \"invoke_viiiii\": invoke_viiiii,\r\n \"invoke_viiiiiii\": invoke_viiiiiii,\r\n \"invoke_viij\": invoke_viij,\r\n \"invoke_viji\": invoke_viji,\r\n \"___assert_fail\": ___assert_fail,\r\n \"___cxa_allocate_exception\": ___cxa_allocate_exception,\r\n \"___cxa_begin_catch\": ___cxa_begin_catch,\r\n \"___cxa_end_catch\": ___cxa_end_catch,\r\n \"___cxa_find_matching_catch\": ___cxa_find_matching_catch,\r\n \"___cxa_find_matching_catch_2\": ___cxa_find_matching_catch_2,\r\n \"___cxa_find_matching_catch_3\": ___cxa_find_matching_catch_3,\r\n \"___cxa_free_exception\": ___cxa_free_exception,\r\n \"___cxa_get_exception_ptr\": ___cxa_get_exception_ptr,\r\n \"___cxa_pure_virtual\": ___cxa_pure_virtual,\r\n \"___cxa_throw\": ___cxa_throw,\r\n \"___cxa_uncaught_exceptions\": ___cxa_uncaught_exceptions,\r\n \"___exception_addRef\": ___exception_addRef,\r\n \"___exception_deAdjust\": ___exception_deAdjust,\r\n \"___exception_decRef\": ___exception_decRef,\r\n \"___gxx_personality_v0\": ___gxx_personality_v0,\r\n \"___lock\": ___lock,\r\n \"___resumeException\": ___resumeException,\r\n \"___setErrNo\": ___setErrNo,\r\n \"___syscall140\": ___syscall140,\r\n \"___syscall146\": ___syscall146,\r\n \"___syscall54\": ___syscall54,\r\n \"___syscall6\": ___syscall6,\r\n \"___unlock\": ___unlock,\r\n \"__api_close_keyboard\": __api_close_keyboard,\r\n \"__api_open_keyboard\": __api_open_keyboard,\r\n \"_abort\": _abort,\r\n \"_api_create_sound\": _api_create_sound,\r\n \"_api_create_sound_float\": _api_create_sound_float,\r\n \"_api_delete_sound\": _api_delete_sound,\r\n \"_api_draw_begin\": _api_draw_begin,\r\n \"_api_draw_belt\": _api_draw_belt,\r\n \"_api_draw_blit\": _api_draw_blit,\r\n \"_api_draw_clip_text\": _api_draw_clip_text,\r\n \"_api_draw_end\": _api_draw_end,\r\n \"_api_draw_text\": _api_draw_text,\r\n \"_api_duplicate_sound\": _api_duplicate_sound,\r\n \"_api_exit_game\": _api_exit_game,\r\n \"_api_play_sound\": _api_play_sound,\r\n \"_api_set_cursor\": _api_set_cursor,\r\n \"_api_set_volume\": _api_set_volume,\r\n \"_api_stop_sound\": _api_stop_sound,\r\n \"_api_use_websocket\": _api_use_websocket,\r\n \"_api_websocket_closed\": _api_websocket_closed,\r\n \"_api_websocket_send\": _api_websocket_send,\r\n \"_emscripten_asm_const_ii\": _emscripten_asm_const_ii,\r\n \"_emscripten_get_heap_size\": _emscripten_get_heap_size,\r\n \"_emscripten_memcpy_big\": _emscripten_memcpy_big,\r\n \"_emscripten_resize_heap\": _emscripten_resize_heap,\r\n \"_exit\": _exit,\r\n \"_exit_error\": _exit_error,\r\n \"_get_file_contents\": _get_file_contents,\r\n \"_get_file_size\": _get_file_size,\r\n \"_llvm_eh_typeid_for\": _llvm_eh_typeid_for,\r\n \"_llvm_trap\": _llvm_trap,\r\n \"_put_file_contents\": _put_file_contents,\r\n \"_remove_file\": _remove_file,\r\n \"_show_alert\": _show_alert,\r\n \"_time\": _time,\r\n \"_trace_pop\": _trace_pop,\r\n \"_trace_push\": _trace_push,\r\n \"abortOnCannotGrowMemory\": abortOnCannotGrowMemory,\r\n \"emscripten_realloc_buffer\": emscripten_realloc_buffer,\r\n \"flush_NO_FILESYSTEM\": flush_NO_FILESYSTEM,\r\n \"tempDoublePtr\": tempDoublePtr,\r\n \"DYNAMICTOP_PTR\": DYNAMICTOP_PTR\r\n};\r\n// EMSCRIPTEN_START_ASM\r\nvar asm =Module[\"asm\"]// EMSCRIPTEN_END_ASM\r\n(asmGlobalArg, asmLibraryArg, buffer);\r\n\r\nModule[\"asm\"] = asm;\r\nvar _DApi_AllocPacket = Module[\"_DApi_AllocPacket\"] = function() {\r\n return Module[\"asm\"][\"_DApi_AllocPacket\"].apply(null, arguments)\r\n};\r\n\r\nvar _DApi_Char = Module[\"_DApi_Char\"] = function() {\r\n return Module[\"asm\"][\"_DApi_Char\"].apply(null, arguments)\r\n};\r\n\r\nvar _DApi_Init = Module[\"_DApi_Init\"] = function() {\r\n return Module[\"asm\"][\"_DApi_Init\"].apply(null, arguments)\r\n};\r\n\r\nvar _DApi_Key = Module[\"_DApi_Key\"] = function() {\r\n return Module[\"asm\"][\"_DApi_Key\"].apply(null, arguments)\r\n};\r\n\r\nvar _DApi_Mouse = Module[\"_DApi_Mouse\"] = function() {\r\n return Module[\"asm\"][\"_DApi_Mouse\"].apply(null, arguments)\r\n};\r\n\r\nvar _DApi_Render = Module[\"_DApi_Render\"] = function() {\r\n return Module[\"asm\"][\"_DApi_Render\"].apply(null, arguments)\r\n};\r\n\r\nvar _DApi_SyncText = Module[\"_DApi_SyncText\"] = function() {\r\n return Module[\"asm\"][\"_DApi_SyncText\"].apply(null, arguments)\r\n};\r\n\r\nvar _DApi_SyncTextPtr = Module[\"_DApi_SyncTextPtr\"] = function() {\r\n return Module[\"asm\"][\"_DApi_SyncTextPtr\"].apply(null, arguments)\r\n};\r\n\r\nvar _SNet_InitWebsocket = Module[\"_SNet_InitWebsocket\"] = function() {\r\n return Module[\"asm\"][\"_SNet_InitWebsocket\"].apply(null, arguments)\r\n};\r\n\r\nvar _SNet_WebsocketStatus = Module[\"_SNet_WebsocketStatus\"] = function() {\r\n return Module[\"asm\"][\"_SNet_WebsocketStatus\"].apply(null, arguments)\r\n};\r\n\r\nvar __ZSt18uncaught_exceptionv = Module[\"__ZSt18uncaught_exceptionv\"] = function() {\r\n return Module[\"asm\"][\"__ZSt18uncaught_exceptionv\"].apply(null, arguments)\r\n};\r\n\r\nvar ___cxa_can_catch = Module[\"___cxa_can_catch\"] = function() {\r\n return Module[\"asm\"][\"___cxa_can_catch\"].apply(null, arguments)\r\n};\r\n\r\nvar ___cxa_is_pointer_type = Module[\"___cxa_is_pointer_type\"] = function() {\r\n return Module[\"asm\"][\"___cxa_is_pointer_type\"].apply(null, arguments)\r\n};\r\n\r\nvar ___em_js___api_close_keyboard = Module[\"___em_js___api_close_keyboard\"] = function() {\r\n return Module[\"asm\"][\"___em_js___api_close_keyboard\"].apply(null, arguments)\r\n};\r\n\r\nvar ___em_js___api_open_keyboard = Module[\"___em_js___api_open_keyboard\"] = function() {\r\n return Module[\"asm\"][\"___em_js___api_open_keyboard\"].apply(null, arguments)\r\n};\r\n\r\nvar ___em_js__api_create_sound = Module[\"___em_js__api_create_sound\"] = function() {\r\n return Module[\"asm\"][\"___em_js__api_create_sound\"].apply(null, arguments)\r\n};\r\n\r\nvar ___em_js__api_create_sound_float = Module[\"___em_js__api_create_sound_float\"] = function() {\r\n return Module[\"asm\"][\"___em_js__api_create_sound_float\"].apply(null, arguments)\r\n};\r\n\r\nvar ___em_js__api_delete_sound = Module[\"___em_js__api_delete_sound\"] = function() {\r\n return Module[\"asm\"][\"___em_js__api_delete_sound\"].apply(null, arguments)\r\n};\r\n\r\nvar ___em_js__api_draw_begin = Module[\"___em_js__api_draw_begin\"] = function() {\r\n return Module[\"asm\"][\"___em_js__api_draw_begin\"].apply(null, arguments)\r\n};\r\n\r\nvar ___em_js__api_draw_belt = Module[\"___em_js__api_draw_belt\"] = function() {\r\n return Module[\"asm\"][\"___em_js__api_draw_belt\"].apply(null, arguments)\r\n};\r\n\r\nvar ___em_js__api_draw_blit = Module[\"___em_js__api_draw_blit\"] = function() {\r\n return Module[\"asm\"][\"___em_js__api_draw_blit\"].apply(null, arguments)\r\n};\r\n\r\nvar ___em_js__api_draw_clip_text = Module[\"___em_js__api_draw_clip_text\"] = function() {\r\n return Module[\"asm\"][\"___em_js__api_draw_clip_text\"].apply(null, arguments)\r\n};\r\n\r\nvar ___em_js__api_draw_end = Module[\"___em_js__api_draw_end\"] = function() {\r\n return Module[\"asm\"][\"___em_js__api_draw_end\"].apply(null, arguments)\r\n};\r\n\r\nvar ___em_js__api_draw_text = Module[\"___em_js__api_draw_text\"] = function() {\r\n return Module[\"asm\"][\"___em_js__api_draw_text\"].apply(null, arguments)\r\n};\r\n\r\nvar ___em_js__api_duplicate_sound = Module[\"___em_js__api_duplicate_sound\"] = function() {\r\n return Module[\"asm\"][\"___em_js__api_duplicate_sound\"].apply(null, arguments)\r\n};\r\n\r\nvar ___em_js__api_exit_game = Module[\"___em_js__api_exit_game\"] = function() {\r\n return Module[\"asm\"][\"___em_js__api_exit_game\"].apply(null, arguments)\r\n};\r\n\r\nvar ___em_js__api_play_sound = Module[\"___em_js__api_play_sound\"] = function() {\r\n return Module[\"asm\"][\"___em_js__api_play_sound\"].apply(null, arguments)\r\n};\r\n\r\nvar ___em_js__api_set_cursor = Module[\"___em_js__api_set_cursor\"] = function() {\r\n return Module[\"asm\"][\"___em_js__api_set_cursor\"].apply(null, arguments)\r\n};\r\n\r\nvar ___em_js__api_set_volume = Module[\"___em_js__api_set_volume\"] = function() {\r\n return Module[\"asm\"][\"___em_js__api_set_volume\"].apply(null, arguments)\r\n};\r\n\r\nvar ___em_js__api_stop_sound = Module[\"___em_js__api_stop_sound\"] = function() {\r\n return Module[\"asm\"][\"___em_js__api_stop_sound\"].apply(null, arguments)\r\n};\r\n\r\nvar ___em_js__api_use_websocket = Module[\"___em_js__api_use_websocket\"] = function() {\r\n return Module[\"asm\"][\"___em_js__api_use_websocket\"].apply(null, arguments)\r\n};\r\n\r\nvar ___em_js__api_websocket_closed = Module[\"___em_js__api_websocket_closed\"] = function() {\r\n return Module[\"asm\"][\"___em_js__api_websocket_closed\"].apply(null, arguments)\r\n};\r\n\r\nvar ___em_js__api_websocket_send = Module[\"___em_js__api_websocket_send\"] = function() {\r\n return Module[\"asm\"][\"___em_js__api_websocket_send\"].apply(null, arguments)\r\n};\r\n\r\nvar ___em_js__exit_error = Module[\"___em_js__exit_error\"] = function() {\r\n return Module[\"asm\"][\"___em_js__exit_error\"].apply(null, arguments)\r\n};\r\n\r\nvar ___em_js__get_file_contents = Module[\"___em_js__get_file_contents\"] = function() {\r\n return Module[\"asm\"][\"___em_js__get_file_contents\"].apply(null, arguments)\r\n};\r\n\r\nvar ___em_js__get_file_size = Module[\"___em_js__get_file_size\"] = function() {\r\n return Module[\"asm\"][\"___em_js__get_file_size\"].apply(null, arguments)\r\n};\r\n\r\nvar ___em_js__put_file_contents = Module[\"___em_js__put_file_contents\"] = function() {\r\n return Module[\"asm\"][\"___em_js__put_file_contents\"].apply(null, arguments)\r\n};\r\n\r\nvar ___em_js__remove_file = Module[\"___em_js__remove_file\"] = function() {\r\n return Module[\"asm\"][\"___em_js__remove_file\"].apply(null, arguments)\r\n};\r\n\r\nvar ___em_js__show_alert = Module[\"___em_js__show_alert\"] = function() {\r\n return Module[\"asm\"][\"___em_js__show_alert\"].apply(null, arguments)\r\n};\r\n\r\nvar ___em_js__trace_pop = Module[\"___em_js__trace_pop\"] = function() {\r\n return Module[\"asm\"][\"___em_js__trace_pop\"].apply(null, arguments)\r\n};\r\n\r\nvar ___em_js__trace_push = Module[\"___em_js__trace_push\"] = function() {\r\n return Module[\"asm\"][\"___em_js__trace_push\"].apply(null, arguments)\r\n};\r\n\r\nvar _emscripten_replace_memory = Module[\"_emscripten_replace_memory\"] = function() {\r\n return Module[\"asm\"][\"_emscripten_replace_memory\"].apply(null, arguments)\r\n};\r\n\r\nvar _free = Module[\"_free\"] = function() {\r\n return Module[\"asm\"][\"_free\"].apply(null, arguments)\r\n};\r\n\r\nvar _llvm_bswap_i32 = Module[\"_llvm_bswap_i32\"] = function() {\r\n return Module[\"asm\"][\"_llvm_bswap_i32\"].apply(null, arguments)\r\n};\r\n\r\nvar _malloc = Module[\"_malloc\"] = function() {\r\n return Module[\"asm\"][\"_malloc\"].apply(null, arguments)\r\n};\r\n\r\nvar _memcpy = Module[\"_memcpy\"] = function() {\r\n return Module[\"asm\"][\"_memcpy\"].apply(null, arguments)\r\n};\r\n\r\nvar _memmove = Module[\"_memmove\"] = function() {\r\n return Module[\"asm\"][\"_memmove\"].apply(null, arguments)\r\n};\r\n\r\nvar _memset = Module[\"_memset\"] = function() {\r\n return Module[\"asm\"][\"_memset\"].apply(null, arguments)\r\n};\r\n\r\nvar _sbrk = Module[\"_sbrk\"] = function() {\r\n return Module[\"asm\"][\"_sbrk\"].apply(null, arguments)\r\n};\r\n\r\nvar _setThrew = Module[\"_setThrew\"] = function() {\r\n return Module[\"asm\"][\"_setThrew\"].apply(null, arguments)\r\n};\r\n\r\nvar establishStackSpace = Module[\"establishStackSpace\"] = function() {\r\n return Module[\"asm\"][\"establishStackSpace\"].apply(null, arguments)\r\n};\r\n\r\nvar globalCtors = Module[\"globalCtors\"] = function() {\r\n return Module[\"asm\"][\"globalCtors\"].apply(null, arguments)\r\n};\r\n\r\nvar stackAlloc = Module[\"stackAlloc\"] = function() {\r\n return Module[\"asm\"][\"stackAlloc\"].apply(null, arguments)\r\n};\r\n\r\nvar stackRestore = Module[\"stackRestore\"] = function() {\r\n return Module[\"asm\"][\"stackRestore\"].apply(null, arguments)\r\n};\r\n\r\nvar stackSave = Module[\"stackSave\"] = function() {\r\n return Module[\"asm\"][\"stackSave\"].apply(null, arguments)\r\n};\r\n\r\nvar dynCall_i = Module[\"dynCall_i\"] = function() {\r\n return Module[\"asm\"][\"dynCall_i\"].apply(null, arguments)\r\n};\r\n\r\nvar dynCall_ii = Module[\"dynCall_ii\"] = function() {\r\n return Module[\"asm\"][\"dynCall_ii\"].apply(null, arguments)\r\n};\r\n\r\nvar dynCall_iidiiii = Module[\"dynCall_iidiiii\"] = function() {\r\n return Module[\"asm\"][\"dynCall_iidiiii\"].apply(null, arguments)\r\n};\r\n\r\nvar dynCall_iii = Module[\"dynCall_iii\"] = function() {\r\n return Module[\"asm\"][\"dynCall_iii\"].apply(null, arguments)\r\n};\r\n\r\nvar dynCall_iiii = Module[\"dynCall_iiii\"] = function() {\r\n return Module[\"asm\"][\"dynCall_iiii\"].apply(null, arguments)\r\n};\r\n\r\nvar dynCall_iiiii = Module[\"dynCall_iiiii\"] = function() {\r\n return Module[\"asm\"][\"dynCall_iiiii\"].apply(null, arguments)\r\n};\r\n\r\nvar dynCall_iiiiii = Module[\"dynCall_iiiiii\"] = function() {\r\n return Module[\"asm\"][\"dynCall_iiiiii\"].apply(null, arguments)\r\n};\r\n\r\nvar dynCall_ji = Module[\"dynCall_ji\"] = function() {\r\n return Module[\"asm\"][\"dynCall_ji\"].apply(null, arguments)\r\n};\r\n\r\nvar dynCall_jiji = Module[\"dynCall_jiji\"] = function() {\r\n return Module[\"asm\"][\"dynCall_jiji\"].apply(null, arguments)\r\n};\r\n\r\nvar dynCall_v = Module[\"dynCall_v\"] = function() {\r\n return Module[\"asm\"][\"dynCall_v\"].apply(null, arguments)\r\n};\r\n\r\nvar dynCall_vi = Module[\"dynCall_vi\"] = function() {\r\n return Module[\"asm\"][\"dynCall_vi\"].apply(null, arguments)\r\n};\r\n\r\nvar dynCall_vii = Module[\"dynCall_vii\"] = function() {\r\n return Module[\"asm\"][\"dynCall_vii\"].apply(null, arguments)\r\n};\r\n\r\nvar dynCall_viii = Module[\"dynCall_viii\"] = function() {\r\n return Module[\"asm\"][\"dynCall_viii\"].apply(null, arguments)\r\n};\r\n\r\nvar dynCall_viiii = Module[\"dynCall_viiii\"] = function() {\r\n return Module[\"asm\"][\"dynCall_viiii\"].apply(null, arguments)\r\n};\r\n\r\nvar dynCall_viiiii = Module[\"dynCall_viiiii\"] = function() {\r\n return Module[\"asm\"][\"dynCall_viiiii\"].apply(null, arguments)\r\n};\r\n\r\nvar dynCall_viiiiii = Module[\"dynCall_viiiiii\"] = function() {\r\n return Module[\"asm\"][\"dynCall_viiiiii\"].apply(null, arguments)\r\n};\r\n\r\nvar dynCall_viiiiiii = Module[\"dynCall_viiiiiii\"] = function() {\r\n return Module[\"asm\"][\"dynCall_viiiiiii\"].apply(null, arguments)\r\n};\r\n\r\nvar dynCall_viiiiiiiii = Module[\"dynCall_viiiiiiiii\"] = function() {\r\n return Module[\"asm\"][\"dynCall_viiiiiiiii\"].apply(null, arguments)\r\n};\r\n\r\nvar dynCall_viiiiiiiiii = Module[\"dynCall_viiiiiiiiii\"] = function() {\r\n return Module[\"asm\"][\"dynCall_viiiiiiiiii\"].apply(null, arguments)\r\n};\r\n\r\nvar dynCall_viij = Module[\"dynCall_viij\"] = function() {\r\n return Module[\"asm\"][\"dynCall_viij\"].apply(null, arguments)\r\n};\r\n\r\nvar dynCall_viji = Module[\"dynCall_viji\"] = function() {\r\n return Module[\"asm\"][\"dynCall_viji\"].apply(null, arguments)\r\n};\r\n;\r\n\r\n\r\n\r\n// === Auto-generated postamble setup entry stuff ===\r\n\r\nModule['asm'] = asm;\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n// Modularize mode returns a function, which can be called to\r\n// create instances. The instances provide a then() method,\r\n// must like a Promise, that receives a callback. The callback\r\n// is called when the module is ready to run, with the module\r\n// as a parameter. (Like a Promise, it also returns the module\r\n// so you can use the output of .then(..)).\r\nModule['then'] = function(func) {\r\n // We may already be ready to run code at this time. if\r\n // so, just queue a call to the callback.\r\n if (Module['calledRun']) {\r\n func(Module);\r\n } else {\r\n // we are not ready to call then() yet. we must call it\r\n // at the same time we would call onRuntimeInitialized.\r\n var old = Module['onRuntimeInitialized'];\r\n Module['onRuntimeInitialized'] = function() {\r\n if (old) old();\r\n func(Module);\r\n };\r\n }\r\n return Module;\r\n};\r\n\r\n/**\r\n * @constructor\r\n * @extends {Error}\r\n * @this {ExitStatus}\r\n */\r\nfunction ExitStatus(status) {\r\n this.name = \"ExitStatus\";\r\n this.message = \"Program terminated with exit(\" + status + \")\";\r\n this.status = status;\r\n}\r\nExitStatus.prototype = new Error();\r\nExitStatus.prototype.constructor = ExitStatus;\r\n\r\nvar calledMain = false;\r\n\r\ndependenciesFulfilled = function runCaller() {\r\n // If run has never been called, and we should call run (INVOKE_RUN is true, and Module.noInitialRun is not false)\r\n if (!Module['calledRun']) run();\r\n if (!Module['calledRun']) dependenciesFulfilled = runCaller; // try this again later, after new deps are fulfilled\r\n};\r\n\r\n\r\n\r\n\r\n\r\n/** @type {function(Array=)} */\r\nfunction run(args) {\r\n args = args || Module['arguments'];\r\n\r\n if (runDependencies > 0) {\r\n return;\r\n }\r\n\r\n\r\n preRun();\r\n\r\n if (runDependencies > 0) return; // a preRun added a dependency, run will be called later\r\n if (Module['calledRun']) return; // run may have just been called through dependencies being fulfilled just in this very frame\r\n\r\n function doRun() {\r\n if (Module['calledRun']) return; // run may have just been called while the async setStatus time below was happening\r\n Module['calledRun'] = true;\r\n\r\n if (ABORT) return;\r\n\r\n initRuntime();\r\n\r\n preMain();\r\n\r\n if (Module['onRuntimeInitialized']) Module['onRuntimeInitialized']();\r\n\r\n\r\n postRun();\r\n }\r\n\r\n if (Module['setStatus']) {\r\n Module['setStatus']('Running...');\r\n setTimeout(function() {\r\n setTimeout(function() {\r\n Module['setStatus']('');\r\n }, 1);\r\n doRun();\r\n }, 1);\r\n } else {\r\n doRun();\r\n }\r\n}\r\nModule['run'] = run;\r\n\r\n\r\nfunction exit(status, implicit) {\r\n\r\n // if this is just main exit-ing implicitly, and the status is 0, then we\r\n // don't need to do anything here and can just leave. if the status is\r\n // non-zero, though, then we need to report it.\r\n // (we may have warned about this earlier, if a situation justifies doing so)\r\n if (implicit && Module['noExitRuntime'] && status === 0) {\r\n return;\r\n }\r\n\r\n if (Module['noExitRuntime']) {\r\n } else {\r\n\r\n ABORT = true;\r\n EXITSTATUS = status;\r\n\r\n exitRuntime();\r\n\r\n if (Module['onExit']) Module['onExit'](status);\r\n }\r\n\r\n Module['quit'](status, new ExitStatus(status));\r\n}\r\n\r\nvar abortDecorators = [];\r\n\r\nfunction abort(what) {\r\n if (Module['onAbort']) {\r\n Module['onAbort'](what);\r\n }\r\n\r\n what += '';\r\n out(what);\r\n err(what);\r\n\r\n ABORT = true;\r\n EXITSTATUS = 1;\r\n\r\n throw 'abort(' + what + '). Build with -s ASSERTIONS=1 for more info.';\r\n}\r\nModule['abort'] = abort;\r\n\r\nif (Module['preInit']) {\r\n if (typeof Module['preInit'] == 'function') Module['preInit'] = [Module['preInit']];\r\n while (Module['preInit'].length > 0) {\r\n Module['preInit'].pop()();\r\n }\r\n}\r\n\r\n\r\n Module[\"noExitRuntime\"] = true;\r\n\r\nrun();\r\n\r\n\r\n\r\n\r\n\r\n// {{MODULE_ADDITIONS}}\r\n\r\n\r\n\r\nModule['ready'] = new Promise(function (resolve, reject) {\r\n delete Module['then']\r\n Module['onAbort'] = function (what) {\r\n reject(what)\r\n }\r\n addOnPostRun(function () {\r\n resolve(Module)\r\n })\r\n});\r\n\r\n\r\n\r\n return Diablo\r\n}\r\n);\r\n})();\r\nif (typeof exports === 'object' && typeof module === 'object')\r\n module.exports = Diablo;\r\n else if (typeof define === 'function' && define['amd'])\r\n define([], function() { return Diablo; });\r\n else if (typeof exports === 'object')\r\n exports[\"Diablo\"] = Diablo;\r\n \n\n/*** EXPORTS FROM exports-loader ***/\n","module.exports = __webpack_public_path__ + \"static/media/DiabloSpawn.9c2373b2.wasm\";","\r\nvar DiabloSpawn = (function() {\r\n var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;\r\n return (\r\nfunction(DiabloSpawn) {\r\n DiabloSpawn = DiabloSpawn || {};\r\n\r\n// Copyright 2010 The Emscripten Authors. All rights reserved.\r\n// Emscripten is available under two separate licenses, the MIT license and the\r\n// University of Illinois/NCSA Open Source License. Both these licenses can be\r\n// found in the LICENSE file.\r\n\r\n// The Module object: Our interface to the outside world. We import\r\n// and export values on it. There are various ways Module can be used:\r\n// 1. Not defined. We create it here\r\n// 2. A function parameter, function(Module) { ..generated code.. }\r\n// 3. pre-run appended it, var Module = {}; ..generated code..\r\n// 4. External script tag defines var Module.\r\n// We need to check if Module already exists (e.g. case 3 above).\r\n// Substitution will be replaced with actual code on later stage of the build,\r\n// this way Closure Compiler will not mangle it (e.g. case 4. above).\r\n// Note that if you want to run closure, and also to use Module\r\n// after the generated code, you will need to define var Module = {};\r\n// before the code. Then that object will be used in the code, and you\r\n// can continue to use Module afterwards as well.\r\nvar Module = typeof DiabloSpawn !== 'undefined' ? DiabloSpawn : {};\r\n\r\n// --pre-jses are emitted after the Module integration code, so that they can\r\n// refer to Module (if they choose; they can also define Module)\r\n\r\n\r\n// Sometimes an existing Module object exists with properties\r\n// meant to overwrite the default module functionality. Here\r\n// we collect those properties and reapply _after_ we configure\r\n// the current environment's defaults to avoid having to be so\r\n// defensive during initialization.\r\nvar moduleOverrides = {};\r\nvar key;\r\nfor (key in Module) {\r\n if (Module.hasOwnProperty(key)) {\r\n moduleOverrides[key] = Module[key];\r\n }\r\n}\r\n\r\nModule['arguments'] = [];\r\nModule['thisProgram'] = './this.program';\r\nModule['quit'] = function(status, toThrow) {\r\n throw toThrow;\r\n};\r\nModule['preRun'] = [];\r\nModule['postRun'] = [];\r\n\r\n// Determine the runtime environment we are in. You can customize this by\r\n// setting the ENVIRONMENT setting at compile time (see settings.js).\r\n\r\nvar ENVIRONMENT_IS_WEB = false;\r\nvar ENVIRONMENT_IS_WORKER = false;\r\nvar ENVIRONMENT_IS_NODE = false;\r\nvar ENVIRONMENT_HAS_NODE = false;\r\nvar ENVIRONMENT_IS_SHELL = false;\r\nENVIRONMENT_IS_WEB = typeof window === 'object';\r\nENVIRONMENT_IS_WORKER = typeof importScripts === 'function';\r\n// A web environment like Electron.js can have Node enabled, so we must\r\n// distinguish between Node-enabled environments and Node environments per se.\r\n// This will allow the former to do things like mount NODEFS.\r\n// Extended check using process.versions fixes issue #8816.\r\n// (Also makes redundant the original check that 'require' is a function.)\r\nENVIRONMENT_HAS_NODE = typeof process === 'object' && typeof process.versions === 'object' && typeof process.versions.node === 'string';\r\nENVIRONMENT_IS_NODE = ENVIRONMENT_HAS_NODE && !ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_WORKER;\r\nENVIRONMENT_IS_SHELL = !ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_NODE && !ENVIRONMENT_IS_WORKER;\r\n\r\n\r\n\r\n// Three configurations we can be running in:\r\n// 1) We could be the application main() thread running in the main JS UI thread. (ENVIRONMENT_IS_WORKER == false and ENVIRONMENT_IS_PTHREAD == false)\r\n// 2) We could be the application main() thread proxied to worker. (with Emscripten -s PROXY_TO_WORKER=1) (ENVIRONMENT_IS_WORKER == true, ENVIRONMENT_IS_PTHREAD == false)\r\n// 3) We could be an application pthread running in a worker. (ENVIRONMENT_IS_WORKER == true and ENVIRONMENT_IS_PTHREAD == true)\r\n\r\n\r\n\r\n\r\n// `/` should be present at the end if `scriptDirectory` is not empty\r\nvar scriptDirectory = '';\r\nfunction locateFile(path) {\r\n if (Module['locateFile']) {\r\n return Module['locateFile'](path, scriptDirectory);\r\n } else {\r\n return scriptDirectory + path;\r\n }\r\n}\r\n\r\n// Hooks that are implemented differently in different runtime environments.\r\nvar read_,\r\n readAsync,\r\n readBinary,\r\n setWindowTitle;\r\n\r\nif (ENVIRONMENT_IS_NODE) {\r\n scriptDirectory = __dirname + '/';\r\n\r\n // Expose functionality in the same simple way that the shells work\r\n // Note that we pollute the global namespace here, otherwise we break in node\r\n var nodeFS;\r\n var nodePath;\r\n\r\n read_ = function shell_read(filename, binary) {\r\n var ret;\r\n if (!nodeFS) nodeFS = require('fs');\r\n if (!nodePath) nodePath = require('path');\r\n filename = nodePath['normalize'](filename);\r\n ret = nodeFS['readFileSync'](filename);\r\n return binary ? ret : ret.toString();\r\n };\r\n\r\n readBinary = function readBinary(filename) {\r\n var ret = read_(filename, true);\r\n if (!ret.buffer) {\r\n ret = new Uint8Array(ret);\r\n }\r\n assert(ret.buffer);\r\n return ret;\r\n };\r\n\r\n if (process['argv'].length > 1) {\r\n Module['thisProgram'] = process['argv'][1].replace(/\\\\/g, '/');\r\n }\r\n\r\n Module['arguments'] = process['argv'].slice(2);\r\n\r\n // MODULARIZE will export the module in the proper place outside, we don't need to export here\r\n\r\n process['on']('uncaughtException', function(ex) {\r\n // suppress ExitStatus exceptions from showing an error\r\n if (!(ex instanceof ExitStatus)) {\r\n throw ex;\r\n }\r\n });\r\n // Currently node will swallow unhandled rejections, but this behavior is\r\n // deprecated, and in the future it will exit with error status.\r\n process['on']('unhandledRejection', abort);\r\n\r\n Module['quit'] = function(status) {\r\n process['exit'](status);\r\n };\r\n\r\n Module['inspect'] = function () { return '[Emscripten Module object]'; };\r\n} else\r\nif (ENVIRONMENT_IS_SHELL) {\r\n\r\n\r\n if (typeof read != 'undefined') {\r\n read_ = function shell_read(f) {\r\n return read(f);\r\n };\r\n }\r\n\r\n readBinary = function readBinary(f) {\r\n var data;\r\n if (typeof readbuffer === 'function') {\r\n return new Uint8Array(readbuffer(f));\r\n }\r\n data = read(f, 'binary');\r\n assert(typeof data === 'object');\r\n return data;\r\n };\r\n\r\n if (typeof scriptArgs != 'undefined') {\r\n Module['arguments'] = scriptArgs;\r\n } else if (typeof arguments != 'undefined') {\r\n Module['arguments'] = arguments;\r\n }\r\n\r\n if (typeof quit === 'function') {\r\n Module['quit'] = function(status) {\r\n quit(status);\r\n }\r\n }\r\n} else\r\nif (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) {\r\n if (ENVIRONMENT_IS_WORKER) { // Check worker, not web, since window could be polyfilled\r\n scriptDirectory = self.location.href;\r\n } else if (document.currentScript) { // web\r\n scriptDirectory = document.currentScript.src;\r\n }\r\n // When MODULARIZE (and not _INSTANCE), this JS may be executed later, after document.currentScript\r\n // is gone, so we saved it, and we use it here instead of any other info.\r\n if (_scriptDir) {\r\n scriptDirectory = _scriptDir;\r\n }\r\n // blob urls look like blob:http://site.com/etc/etc and we cannot infer anything from them.\r\n // otherwise, slice off the final part of the url to find the script directory.\r\n // if scriptDirectory does not contain a slash, lastIndexOf will return -1,\r\n // and scriptDirectory will correctly be replaced with an empty string.\r\n if (scriptDirectory.indexOf('blob:') !== 0) {\r\n scriptDirectory = scriptDirectory.substr(0, scriptDirectory.lastIndexOf('/')+1);\r\n } else {\r\n scriptDirectory = '';\r\n }\r\n\r\n\r\n read_ = function shell_read(url) {\r\n var xhr = new XMLHttpRequest();\r\n xhr.open('GET', url, false);\r\n xhr.send(null);\r\n return xhr.responseText;\r\n };\r\n\r\n if (ENVIRONMENT_IS_WORKER) {\r\n readBinary = function readBinary(url) {\r\n var xhr = new XMLHttpRequest();\r\n xhr.open('GET', url, false);\r\n xhr.responseType = 'arraybuffer';\r\n xhr.send(null);\r\n return new Uint8Array(xhr.response);\r\n };\r\n }\r\n\r\n readAsync = function readAsync(url, onload, onerror) {\r\n var xhr = new XMLHttpRequest();\r\n xhr.open('GET', url, true);\r\n xhr.responseType = 'arraybuffer';\r\n xhr.onload = function xhr_onload() {\r\n if (xhr.status == 200 || (xhr.status == 0 && xhr.response)) { // file URLs can return 0\r\n onload(xhr.response);\r\n return;\r\n }\r\n onerror();\r\n };\r\n xhr.onerror = onerror;\r\n xhr.send(null);\r\n };\r\n\r\n setWindowTitle = function(title) { document.title = title };\r\n} else\r\n{\r\n}\r\n\r\n// Set up the out() and err() hooks, which are how we can print to stdout or\r\n// stderr, respectively.\r\n// If the user provided Module.print or printErr, use that. Otherwise,\r\n// console.log is checked first, as 'print' on the web will open a print dialogue\r\n// printErr is preferable to console.warn (works better in shells)\r\n// bind(console) is necessary to fix IE/Edge closed dev tools panel behavior.\r\nvar out = Module['print'] || (typeof console !== 'undefined' ? console.log.bind(console) : (typeof print !== 'undefined' ? print : null));\r\nvar err = Module['printErr'] || (typeof printErr !== 'undefined' ? printErr : ((typeof console !== 'undefined' && console.warn.bind(console)) || out));\r\n\r\n// Merge back in the overrides\r\nfor (key in moduleOverrides) {\r\n if (moduleOverrides.hasOwnProperty(key)) {\r\n Module[key] = moduleOverrides[key];\r\n }\r\n}\r\n// Free the object hierarchy contained in the overrides, this lets the GC\r\n// reclaim data used e.g. in memoryInitializerRequest, which is a large typed array.\r\nmoduleOverrides = undefined;\r\n\r\n// perform assertions in shell.js after we set up out() and err(), as otherwise if an assertion fails it cannot print the message\r\n\r\n// TODO remove when SDL2 is fixed; also add the above assertion\r\n\r\n\r\n\r\n// Copyright 2017 The Emscripten Authors. All rights reserved.\r\n// Emscripten is available under two separate licenses, the MIT license and the\r\n// University of Illinois/NCSA Open Source License. Both these licenses can be\r\n// found in the LICENSE file.\r\n\r\n// {{PREAMBLE_ADDITIONS}}\r\n\r\nvar STACK_ALIGN = 16;\r\n\r\n\r\nfunction dynamicAlloc(size) {\r\n var ret = HEAP32[DYNAMICTOP_PTR>>2];\r\n var end = (ret + size + 15) & -16;\r\n if (end > _emscripten_get_heap_size()) {\r\n abort();\r\n }\r\n HEAP32[DYNAMICTOP_PTR>>2] = end;\r\n return ret;\r\n}\r\n\r\nfunction alignMemory(size, factor) {\r\n if (!factor) factor = STACK_ALIGN; // stack alignment (16-byte) by default\r\n return Math.ceil(size / factor) * factor;\r\n}\r\n\r\nfunction getNativeTypeSize(type) {\r\n switch (type) {\r\n case 'i1': case 'i8': return 1;\r\n case 'i16': return 2;\r\n case 'i32': return 4;\r\n case 'i64': return 8;\r\n case 'float': return 4;\r\n case 'double': return 8;\r\n default: {\r\n if (type[type.length-1] === '*') {\r\n return 4; // A pointer\r\n } else if (type[0] === 'i') {\r\n var bits = parseInt(type.substr(1));\r\n assert(bits % 8 === 0, 'getNativeTypeSize invalid bits ' + bits + ', type ' + type);\r\n return bits / 8;\r\n } else {\r\n return 0;\r\n }\r\n }\r\n }\r\n}\r\n\r\nfunction warnOnce(text) {\r\n if (!warnOnce.shown) warnOnce.shown = {};\r\n if (!warnOnce.shown[text]) {\r\n warnOnce.shown[text] = 1;\r\n err(text);\r\n }\r\n}\r\n\r\nvar asm2wasmImports = { // special asm2wasm imports\r\n \"f64-rem\": function(x, y) {\r\n return x % y;\r\n },\r\n \"debugger\": function() {\r\n debugger;\r\n }\r\n};\r\n\r\n\r\n\r\nvar jsCallStartIndex = 1;\r\nvar functionPointers = new Array(0);\r\n\r\n// Wraps a JS function as a wasm function with a given signature.\r\n// In the future, we may get a WebAssembly.Function constructor. Until then,\r\n// we create a wasm module that takes the JS function as an import with a given\r\n// signature, and re-exports that as a wasm function.\r\nfunction convertJsFunctionToWasm(func, sig) {\r\n\r\n // The module is static, with the exception of the type section, which is\r\n // generated based on the signature passed in.\r\n var typeSection = [\r\n 0x01, // id: section,\r\n 0x00, // length: 0 (placeholder)\r\n 0x01, // count: 1\r\n 0x60, // form: func\r\n ];\r\n var sigRet = sig.slice(0, 1);\r\n var sigParam = sig.slice(1);\r\n var typeCodes = {\r\n 'i': 0x7f, // i32\r\n 'j': 0x7e, // i64\r\n 'f': 0x7d, // f32\r\n 'd': 0x7c, // f64\r\n };\r\n\r\n // Parameters, length + signatures\r\n typeSection.push(sigParam.length);\r\n for (var i = 0; i < sigParam.length; ++i) {\r\n typeSection.push(typeCodes[sigParam[i]]);\r\n }\r\n\r\n // Return values, length + signatures\r\n // With no multi-return in MVP, either 0 (void) or 1 (anything else)\r\n if (sigRet == 'v') {\r\n typeSection.push(0x00);\r\n } else {\r\n typeSection = typeSection.concat([0x01, typeCodes[sigRet]]);\r\n }\r\n\r\n // Write the overall length of the type section back into the section header\r\n // (excepting the 2 bytes for the section id and length)\r\n typeSection[1] = typeSection.length - 2;\r\n\r\n // Rest of the module is static\r\n var bytes = new Uint8Array([\r\n 0x00, 0x61, 0x73, 0x6d, // magic (\"\\0asm\")\r\n 0x01, 0x00, 0x00, 0x00, // version: 1\r\n ].concat(typeSection, [\r\n 0x02, 0x07, // import section\r\n // (import \"e\" \"f\" (func 0 (type 0)))\r\n 0x01, 0x01, 0x65, 0x01, 0x66, 0x00, 0x00,\r\n 0x07, 0x05, // export section\r\n // (export \"f\" (func 0 (type 0)))\r\n 0x01, 0x01, 0x66, 0x00, 0x00,\r\n ]));\r\n\r\n // We can compile this wasm module synchronously because it is very small.\r\n // This accepts an import (at \"e.f\"), that it reroutes to an export (at \"f\")\r\n var module = new WebAssembly.Module(bytes);\r\n var instance = new WebAssembly.Instance(module, {\r\n e: {\r\n f: func\r\n }\r\n });\r\n var wrappedFunc = instance.exports.f;\r\n return wrappedFunc;\r\n}\r\n\r\n// Add a wasm function to the table.\r\nfunction addFunctionWasm(func, sig) {\r\n var table = wasmTable;\r\n var ret = table.length;\r\n\r\n // Grow the table\r\n try {\r\n table.grow(1);\r\n } catch (err) {\r\n if (!err instanceof RangeError) {\r\n throw err;\r\n }\r\n throw 'Unable to grow wasm table. Use a higher value for RESERVED_FUNCTION_POINTERS or set ALLOW_TABLE_GROWTH.';\r\n }\r\n\r\n // Insert new element\r\n try {\r\n // Attempting to call this with JS function will cause of table.set() to fail\r\n table.set(ret, func);\r\n } catch (err) {\r\n if (!err instanceof TypeError) {\r\n throw err;\r\n }\r\n assert(typeof sig !== 'undefined', 'Missing signature argument to addFunction');\r\n var wrapped = convertJsFunctionToWasm(func, sig);\r\n table.set(ret, wrapped);\r\n }\r\n\r\n return ret;\r\n}\r\n\r\nfunction removeFunctionWasm(index) {\r\n // TODO(sbc): Look into implementing this to allow re-using of table slots\r\n}\r\n\r\n// 'sig' parameter is required for the llvm backend but only when func is not\r\n// already a WebAssembly function.\r\nfunction addFunction(func, sig) {\r\n\r\n\r\n var base = 0;\r\n for (var i = base; i < base + 0; i++) {\r\n if (!functionPointers[i]) {\r\n functionPointers[i] = func;\r\n return jsCallStartIndex + i;\r\n }\r\n }\r\n throw 'Finished up all reserved function pointers. Use a higher value for RESERVED_FUNCTION_POINTERS.';\r\n\r\n}\r\n\r\nfunction removeFunction(index) {\r\n\r\n functionPointers[index-jsCallStartIndex] = null;\r\n}\r\n\r\nvar funcWrappers = {};\r\n\r\nfunction getFuncWrapper(func, sig) {\r\n if (!func) return; // on null pointer, return undefined\r\n assert(sig);\r\n if (!funcWrappers[sig]) {\r\n funcWrappers[sig] = {};\r\n }\r\n var sigCache = funcWrappers[sig];\r\n if (!sigCache[func]) {\r\n // optimize away arguments usage in common cases\r\n if (sig.length === 1) {\r\n sigCache[func] = function dynCall_wrapper() {\r\n return dynCall(sig, func);\r\n };\r\n } else if (sig.length === 2) {\r\n sigCache[func] = function dynCall_wrapper(arg) {\r\n return dynCall(sig, func, [arg]);\r\n };\r\n } else {\r\n // general case\r\n sigCache[func] = function dynCall_wrapper() {\r\n return dynCall(sig, func, Array.prototype.slice.call(arguments));\r\n };\r\n }\r\n }\r\n return sigCache[func];\r\n}\r\n\r\n\r\nfunction makeBigInt(low, high, unsigned) {\r\n return unsigned ? ((+((low>>>0)))+((+((high>>>0)))*4294967296.0)) : ((+((low>>>0)))+((+((high|0)))*4294967296.0));\r\n}\r\n\r\nfunction dynCall(sig, ptr, args) {\r\n if (args && args.length) {\r\n return Module['dynCall_' + sig].apply(null, [ptr].concat(args));\r\n } else {\r\n return Module['dynCall_' + sig].call(null, ptr);\r\n }\r\n}\r\n\r\nvar tempRet0 = 0;\r\n\r\nvar setTempRet0 = function(value) {\r\n tempRet0 = value;\r\n};\r\n\r\nvar getTempRet0 = function() {\r\n return tempRet0;\r\n};\r\n\r\n\r\nvar Runtime = {\r\n};\r\n\r\n// The address globals begin at. Very low in memory, for code size and optimization opportunities.\r\n// Above 0 is static memory, starting with globals.\r\n// Then the stack.\r\n// Then 'dynamic' memory for sbrk.\r\nvar GLOBAL_BASE = 1024;\r\n\r\n\r\n\r\n\r\n// === Preamble library stuff ===\r\n\r\n// Documentation for the public APIs defined in this file must be updated in:\r\n// site/source/docs/api_reference/preamble.js.rst\r\n// A prebuilt local version of the documentation is available at:\r\n// site/build/text/docs/api_reference/preamble.js.txt\r\n// You can also build docs locally as HTML or other formats in site/\r\n// An online HTML version (which may be of a different version of Emscripten)\r\n// is up at http://kripken.github.io/emscripten-site/docs/api_reference/preamble.js.html\r\n\r\n\r\n\r\nif (typeof WebAssembly !== 'object') {\r\n err('no native wasm support detected');\r\n}\r\n\r\n\r\n// In MINIMAL_RUNTIME, setValue() and getValue() are only available when building with safe heap enabled, for heap safety checking.\r\n// In traditional runtime, setValue() and getValue() are always available (although their use is highly discouraged due to perf penalties)\r\n\r\n/** @type {function(number, number, string, boolean=)} */\r\nfunction setValue(ptr, value, type, noSafe) {\r\n type = type || 'i8';\r\n if (type.charAt(type.length-1) === '*') type = 'i32'; // pointers are 32-bit\r\n switch(type) {\r\n case 'i1': HEAP8[((ptr)>>0)]=value; break;\r\n case 'i8': HEAP8[((ptr)>>0)]=value; break;\r\n case 'i16': HEAP16[((ptr)>>1)]=value; break;\r\n case 'i32': HEAP32[((ptr)>>2)]=value; break;\r\n case 'i64': (tempI64 = [value>>>0,(tempDouble=value,(+(Math_abs(tempDouble))) >= 1.0 ? (tempDouble > 0.0 ? ((Math_min((+(Math_floor((tempDouble)/4294967296.0))), 4294967295.0))|0)>>>0 : (~~((+(Math_ceil((tempDouble - +(((~~(tempDouble)))>>>0))/4294967296.0)))))>>>0) : 0)],HEAP32[((ptr)>>2)]=tempI64[0],HEAP32[(((ptr)+(4))>>2)]=tempI64[1]); break;\r\n case 'float': HEAPF32[((ptr)>>2)]=value; break;\r\n case 'double': HEAPF64[((ptr)>>3)]=value; break;\r\n default: abort('invalid type for setValue: ' + type);\r\n }\r\n}\r\n\r\n/** @type {function(number, string, boolean=)} */\r\nfunction getValue(ptr, type, noSafe) {\r\n type = type || 'i8';\r\n if (type.charAt(type.length-1) === '*') type = 'i32'; // pointers are 32-bit\r\n switch(type) {\r\n case 'i1': return HEAP8[((ptr)>>0)];\r\n case 'i8': return HEAP8[((ptr)>>0)];\r\n case 'i16': return HEAP16[((ptr)>>1)];\r\n case 'i32': return HEAP32[((ptr)>>2)];\r\n case 'i64': return HEAP32[((ptr)>>2)];\r\n case 'float': return HEAPF32[((ptr)>>2)];\r\n case 'double': return HEAPF64[((ptr)>>3)];\r\n default: abort('invalid type for getValue: ' + type);\r\n }\r\n return null;\r\n}\r\n\r\n\r\n\r\n\r\n\r\n// Wasm globals\r\n\r\nvar wasmMemory;\r\n\r\n// Potentially used for direct table calls.\r\nvar wasmTable;\r\n\r\n\r\n//========================================\r\n// Runtime essentials\r\n//========================================\r\n\r\n// whether we are quitting the application. no code should run after this.\r\n// set in exit() and abort()\r\nvar ABORT = false;\r\n\r\n// set by exit() and abort(). Passed to 'onExit' handler.\r\n// NOTE: This is also used as the process return code code in shell environments\r\n// but only when noExitRuntime is false.\r\nvar EXITSTATUS = 0;\r\n\r\n/** @type {function(*, string=)} */\r\nfunction assert(condition, text) {\r\n if (!condition) {\r\n abort('Assertion failed: ' + text);\r\n }\r\n}\r\n\r\n// Returns the C function with a specified identifier (for C++, you need to do manual name mangling)\r\nfunction getCFunc(ident) {\r\n var func = Module['_' + ident]; // closure exported function\r\n assert(func, 'Cannot call unknown function ' + ident + ', make sure it is exported');\r\n return func;\r\n}\r\n\r\n// C calling interface.\r\nfunction ccall(ident, returnType, argTypes, args, opts) {\r\n // For fast lookup of conversion functions\r\n var toC = {\r\n 'string': function(str) {\r\n var ret = 0;\r\n if (str !== null && str !== undefined && str !== 0) { // null string\r\n // at most 4 bytes per UTF-8 code point, +1 for the trailing '\\0'\r\n var len = (str.length << 2) + 1;\r\n ret = stackAlloc(len);\r\n stringToUTF8(str, ret, len);\r\n }\r\n return ret;\r\n },\r\n 'array': function(arr) {\r\n var ret = stackAlloc(arr.length);\r\n writeArrayToMemory(arr, ret);\r\n return ret;\r\n }\r\n };\r\n\r\n function convertReturnValue(ret) {\r\n if (returnType === 'string') return UTF8ToString(ret);\r\n if (returnType === 'boolean') return Boolean(ret);\r\n return ret;\r\n }\r\n\r\n var func = getCFunc(ident);\r\n var cArgs = [];\r\n var stack = 0;\r\n if (args) {\r\n for (var i = 0; i < args.length; i++) {\r\n var converter = toC[argTypes[i]];\r\n if (converter) {\r\n if (stack === 0) stack = stackSave();\r\n cArgs[i] = converter(args[i]);\r\n } else {\r\n cArgs[i] = args[i];\r\n }\r\n }\r\n }\r\n var ret = func.apply(null, cArgs);\r\n ret = convertReturnValue(ret);\r\n if (stack !== 0) stackRestore(stack);\r\n return ret;\r\n}\r\n\r\nfunction cwrap(ident, returnType, argTypes, opts) {\r\n argTypes = argTypes || [];\r\n // When the function takes numbers and returns a number, we can just return\r\n // the original function\r\n var numericArgs = argTypes.every(function(type){ return type === 'number'});\r\n var numericRet = returnType !== 'string';\r\n if (numericRet && numericArgs && !opts) {\r\n return getCFunc(ident);\r\n }\r\n return function() {\r\n return ccall(ident, returnType, argTypes, arguments, opts);\r\n }\r\n}\r\n\r\nvar ALLOC_NORMAL = 0; // Tries to use _malloc()\r\nvar ALLOC_STACK = 1; // Lives for the duration of the current function call\r\nvar ALLOC_DYNAMIC = 2; // Cannot be freed except through sbrk\r\nvar ALLOC_NONE = 3; // Do not allocate\r\n\r\n// allocate(): This is for internal use. You can use it yourself as well, but the interface\r\n// is a little tricky (see docs right below). The reason is that it is optimized\r\n// for multiple syntaxes to save space in generated code. So you should\r\n// normally not use allocate(), and instead allocate memory using _malloc(),\r\n// initialize it with setValue(), and so forth.\r\n// @slab: An array of data, or a number. If a number, then the size of the block to allocate,\r\n// in *bytes* (note that this is sometimes confusing: the next parameter does not\r\n// affect this!)\r\n// @types: Either an array of types, one for each byte (or 0 if no type at that position),\r\n// or a single type which is used for the entire block. This only matters if there\r\n// is initial data - if @slab is a number, then this does not matter at all and is\r\n// ignored.\r\n// @allocator: How to allocate memory, see ALLOC_*\r\n/** @type {function((TypedArray|Array|number), string, number, number=)} */\r\nfunction allocate(slab, types, allocator, ptr) {\r\n var zeroinit, size;\r\n if (typeof slab === 'number') {\r\n zeroinit = true;\r\n size = slab;\r\n } else {\r\n zeroinit = false;\r\n size = slab.length;\r\n }\r\n\r\n var singleType = typeof types === 'string' ? types : null;\r\n\r\n var ret;\r\n if (allocator == ALLOC_NONE) {\r\n ret = ptr;\r\n } else {\r\n ret = [_malloc,\r\n stackAlloc,\r\n dynamicAlloc][allocator](Math.max(size, singleType ? 1 : types.length));\r\n }\r\n\r\n if (zeroinit) {\r\n var stop;\r\n ptr = ret;\r\n assert((ret & 3) == 0);\r\n stop = ret + (size & ~3);\r\n for (; ptr < stop; ptr += 4) {\r\n HEAP32[((ptr)>>2)]=0;\r\n }\r\n stop = ret + size;\r\n while (ptr < stop) {\r\n HEAP8[((ptr++)>>0)]=0;\r\n }\r\n return ret;\r\n }\r\n\r\n if (singleType === 'i8') {\r\n if (slab.subarray || slab.slice) {\r\n HEAPU8.set(/** @type {!Uint8Array} */ (slab), ret);\r\n } else {\r\n HEAPU8.set(new Uint8Array(slab), ret);\r\n }\r\n return ret;\r\n }\r\n\r\n var i = 0, type, typeSize, previousType;\r\n while (i < size) {\r\n var curr = slab[i];\r\n\r\n type = singleType || types[i];\r\n if (type === 0) {\r\n i++;\r\n continue;\r\n }\r\n\r\n if (type == 'i64') type = 'i32'; // special case: we have one i32 here, and one i32 later\r\n\r\n setValue(ret+i, curr, type);\r\n\r\n // no need to look up size unless type changes, so cache it\r\n if (previousType !== type) {\r\n typeSize = getNativeTypeSize(type);\r\n previousType = type;\r\n }\r\n i += typeSize;\r\n }\r\n\r\n return ret;\r\n}\r\n\r\n// Allocate memory during any stage of startup - static memory early on, dynamic memory later, malloc when ready\r\nfunction getMemory(size) {\r\n if (!runtimeInitialized) return dynamicAlloc(size);\r\n return _malloc(size);\r\n}\r\n\r\n\r\n\r\n\r\n/** @type {function(number, number=)} */\r\nfunction Pointer_stringify(ptr, length) {\r\n abort(\"this function has been removed - you should use UTF8ToString(ptr, maxBytesToRead) instead!\");\r\n}\r\n\r\n// Given a pointer 'ptr' to a null-terminated ASCII-encoded string in the emscripten HEAP, returns\r\n// a copy of that string as a Javascript String object.\r\n\r\nfunction AsciiToString(ptr) {\r\n var str = '';\r\n while (1) {\r\n var ch = HEAPU8[((ptr++)>>0)];\r\n if (!ch) return str;\r\n str += String.fromCharCode(ch);\r\n }\r\n}\r\n\r\n// Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr',\r\n// null-terminated and encoded in ASCII form. The copy will require at most str.length+1 bytes of space in the HEAP.\r\n\r\nfunction stringToAscii(str, outPtr) {\r\n return writeAsciiToMemory(str, outPtr, false);\r\n}\r\n\r\n\r\n// Given a pointer 'ptr' to a null-terminated UTF8-encoded string in the given array that contains uint8 values, returns\r\n// a copy of that string as a Javascript String object.\r\n\r\nvar UTF8Decoder = typeof TextDecoder !== 'undefined' ? new TextDecoder('utf8') : undefined;\r\n\r\n/**\r\n * @param {number} idx\r\n * @param {number=} maxBytesToRead\r\n * @return {string}\r\n */\r\nfunction UTF8ArrayToString(u8Array, idx, maxBytesToRead) {\r\n var endIdx = idx + maxBytesToRead;\r\n var endPtr = idx;\r\n // TextDecoder needs to know the byte length in advance, it doesn't stop on null terminator by itself.\r\n // Also, use the length info to avoid running tiny strings through TextDecoder, since .subarray() allocates garbage.\r\n // (As a tiny code save trick, compare endPtr against endIdx using a negation, so that undefined means Infinity)\r\n while (u8Array[endPtr] && !(endPtr >= endIdx)) ++endPtr;\r\n\r\n if (endPtr - idx > 16 && u8Array.subarray && UTF8Decoder) {\r\n return UTF8Decoder.decode(u8Array.subarray(idx, endPtr));\r\n } else {\r\n var str = '';\r\n // If building with TextDecoder, we have already computed the string length above, so test loop end condition against that\r\n while (idx < endPtr) {\r\n // For UTF8 byte structure, see:\r\n // http://en.wikipedia.org/wiki/UTF-8#Description\r\n // https://www.ietf.org/rfc/rfc2279.txt\r\n // https://tools.ietf.org/html/rfc3629\r\n var u0 = u8Array[idx++];\r\n if (!(u0 & 0x80)) { str += String.fromCharCode(u0); continue; }\r\n var u1 = u8Array[idx++] & 63;\r\n if ((u0 & 0xE0) == 0xC0) { str += String.fromCharCode(((u0 & 31) << 6) | u1); continue; }\r\n var u2 = u8Array[idx++] & 63;\r\n if ((u0 & 0xF0) == 0xE0) {\r\n u0 = ((u0 & 15) << 12) | (u1 << 6) | u2;\r\n } else {\r\n u0 = ((u0 & 7) << 18) | (u1 << 12) | (u2 << 6) | (u8Array[idx++] & 63);\r\n }\r\n\r\n if (u0 < 0x10000) {\r\n str += String.fromCharCode(u0);\r\n } else {\r\n var ch = u0 - 0x10000;\r\n str += String.fromCharCode(0xD800 | (ch >> 10), 0xDC00 | (ch & 0x3FF));\r\n }\r\n }\r\n }\r\n return str;\r\n}\r\n\r\n// Given a pointer 'ptr' to a null-terminated UTF8-encoded string in the emscripten HEAP, returns a\r\n// copy of that string as a Javascript String object.\r\n// maxBytesToRead: an optional length that specifies the maximum number of bytes to read. You can omit\r\n// this parameter to scan the string until the first \\0 byte. If maxBytesToRead is\r\n// passed, and the string at [ptr, ptr+maxBytesToReadr[ contains a null byte in the\r\n// middle, then the string will cut short at that byte index (i.e. maxBytesToRead will\r\n// not produce a string of exact length [ptr, ptr+maxBytesToRead[)\r\n// N.B. mixing frequent uses of UTF8ToString() with and without maxBytesToRead may\r\n// throw JS JIT optimizations off, so it is worth to consider consistently using one\r\n// style or the other.\r\n/**\r\n * @param {number} ptr\r\n * @param {number=} maxBytesToRead\r\n * @return {string}\r\n */\r\nfunction UTF8ToString(ptr, maxBytesToRead) {\r\n return ptr ? UTF8ArrayToString(HEAPU8, ptr, maxBytesToRead) : '';\r\n}\r\n\r\n// Copies the given Javascript String object 'str' to the given byte array at address 'outIdx',\r\n// encoded in UTF8 form and null-terminated. The copy will require at most str.length*4+1 bytes of space in the HEAP.\r\n// Use the function lengthBytesUTF8 to compute the exact number of bytes (excluding null terminator) that this function will write.\r\n// Parameters:\r\n// str: the Javascript string to copy.\r\n// outU8Array: the array to copy to. Each index in this array is assumed to be one 8-byte element.\r\n// outIdx: The starting offset in the array to begin the copying.\r\n// maxBytesToWrite: The maximum number of bytes this function can write to the array.\r\n// This count should include the null terminator,\r\n// i.e. if maxBytesToWrite=1, only the null terminator will be written and nothing else.\r\n// maxBytesToWrite=0 does not write any bytes to the output, not even the null terminator.\r\n// Returns the number of bytes written, EXCLUDING the null terminator.\r\n\r\nfunction stringToUTF8Array(str, outU8Array, outIdx, maxBytesToWrite) {\r\n if (!(maxBytesToWrite > 0)) // Parameter maxBytesToWrite is not optional. Negative values, 0, null, undefined and false each don't write out any bytes.\r\n return 0;\r\n\r\n var startIdx = outIdx;\r\n var endIdx = outIdx + maxBytesToWrite - 1; // -1 for string null terminator.\r\n for (var i = 0; i < str.length; ++i) {\r\n // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! So decode UTF16->UTF32->UTF8.\r\n // See http://unicode.org/faq/utf_bom.html#utf16-3\r\n // For UTF8 byte structure, see http://en.wikipedia.org/wiki/UTF-8#Description and https://www.ietf.org/rfc/rfc2279.txt and https://tools.ietf.org/html/rfc3629\r\n var u = str.charCodeAt(i); // possibly a lead surrogate\r\n if (u >= 0xD800 && u <= 0xDFFF) {\r\n var u1 = str.charCodeAt(++i);\r\n u = 0x10000 + ((u & 0x3FF) << 10) | (u1 & 0x3FF);\r\n }\r\n if (u <= 0x7F) {\r\n if (outIdx >= endIdx) break;\r\n outU8Array[outIdx++] = u;\r\n } else if (u <= 0x7FF) {\r\n if (outIdx + 1 >= endIdx) break;\r\n outU8Array[outIdx++] = 0xC0 | (u >> 6);\r\n outU8Array[outIdx++] = 0x80 | (u & 63);\r\n } else if (u <= 0xFFFF) {\r\n if (outIdx + 2 >= endIdx) break;\r\n outU8Array[outIdx++] = 0xE0 | (u >> 12);\r\n outU8Array[outIdx++] = 0x80 | ((u >> 6) & 63);\r\n outU8Array[outIdx++] = 0x80 | (u & 63);\r\n } else {\r\n if (outIdx + 3 >= endIdx) break;\r\n outU8Array[outIdx++] = 0xF0 | (u >> 18);\r\n outU8Array[outIdx++] = 0x80 | ((u >> 12) & 63);\r\n outU8Array[outIdx++] = 0x80 | ((u >> 6) & 63);\r\n outU8Array[outIdx++] = 0x80 | (u & 63);\r\n }\r\n }\r\n // Null-terminate the pointer to the buffer.\r\n outU8Array[outIdx] = 0;\r\n return outIdx - startIdx;\r\n}\r\n\r\n// Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr',\r\n// null-terminated and encoded in UTF8 form. The copy will require at most str.length*4+1 bytes of space in the HEAP.\r\n// Use the function lengthBytesUTF8 to compute the exact number of bytes (excluding null terminator) that this function will write.\r\n// Returns the number of bytes written, EXCLUDING the null terminator.\r\n\r\nfunction stringToUTF8(str, outPtr, maxBytesToWrite) {\r\n return stringToUTF8Array(str, HEAPU8,outPtr, maxBytesToWrite);\r\n}\r\n\r\n// Returns the number of bytes the given Javascript string takes if encoded as a UTF8 byte array, EXCLUDING the null terminator byte.\r\nfunction lengthBytesUTF8(str) {\r\n var len = 0;\r\n for (var i = 0; i < str.length; ++i) {\r\n // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! So decode UTF16->UTF32->UTF8.\r\n // See http://unicode.org/faq/utf_bom.html#utf16-3\r\n var u = str.charCodeAt(i); // possibly a lead surrogate\r\n if (u >= 0xD800 && u <= 0xDFFF) u = 0x10000 + ((u & 0x3FF) << 10) | (str.charCodeAt(++i) & 0x3FF);\r\n if (u <= 0x7F) ++len;\r\n else if (u <= 0x7FF) len += 2;\r\n else if (u <= 0xFFFF) len += 3;\r\n else len += 4;\r\n }\r\n return len;\r\n}\r\n\r\n\r\n// Given a pointer 'ptr' to a null-terminated UTF16LE-encoded string in the emscripten HEAP, returns\r\n// a copy of that string as a Javascript String object.\r\n\r\nvar UTF16Decoder = typeof TextDecoder !== 'undefined' ? new TextDecoder('utf-16le') : undefined;\r\nfunction UTF16ToString(ptr) {\r\n var endPtr = ptr;\r\n // TextDecoder needs to know the byte length in advance, it doesn't stop on null terminator by itself.\r\n // Also, use the length info to avoid running tiny strings through TextDecoder, since .subarray() allocates garbage.\r\n var idx = endPtr >> 1;\r\n while (HEAP16[idx]) ++idx;\r\n endPtr = idx << 1;\r\n\r\n if (endPtr - ptr > 32 && UTF16Decoder) {\r\n return UTF16Decoder.decode(HEAPU8.subarray(ptr, endPtr));\r\n } else {\r\n var i = 0;\r\n\r\n var str = '';\r\n while (1) {\r\n var codeUnit = HEAP16[(((ptr)+(i*2))>>1)];\r\n if (codeUnit == 0) return str;\r\n ++i;\r\n // fromCharCode constructs a character from a UTF-16 code unit, so we can pass the UTF16 string right through.\r\n str += String.fromCharCode(codeUnit);\r\n }\r\n }\r\n}\r\n\r\n// Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr',\r\n// null-terminated and encoded in UTF16 form. The copy will require at most str.length*4+2 bytes of space in the HEAP.\r\n// Use the function lengthBytesUTF16() to compute the exact number of bytes (excluding null terminator) that this function will write.\r\n// Parameters:\r\n// str: the Javascript string to copy.\r\n// outPtr: Byte address in Emscripten HEAP where to write the string to.\r\n// maxBytesToWrite: The maximum number of bytes this function can write to the array. This count should include the null\r\n// terminator, i.e. if maxBytesToWrite=2, only the null terminator will be written and nothing else.\r\n// maxBytesToWrite<2 does not write any bytes to the output, not even the null terminator.\r\n// Returns the number of bytes written, EXCLUDING the null terminator.\r\n\r\nfunction stringToUTF16(str, outPtr, maxBytesToWrite) {\r\n // Backwards compatibility: if max bytes is not specified, assume unsafe unbounded write is allowed.\r\n if (maxBytesToWrite === undefined) {\r\n maxBytesToWrite = 0x7FFFFFFF;\r\n }\r\n if (maxBytesToWrite < 2) return 0;\r\n maxBytesToWrite -= 2; // Null terminator.\r\n var startPtr = outPtr;\r\n var numCharsToWrite = (maxBytesToWrite < str.length*2) ? (maxBytesToWrite / 2) : str.length;\r\n for (var i = 0; i < numCharsToWrite; ++i) {\r\n // charCodeAt returns a UTF-16 encoded code unit, so it can be directly written to the HEAP.\r\n var codeUnit = str.charCodeAt(i); // possibly a lead surrogate\r\n HEAP16[((outPtr)>>1)]=codeUnit;\r\n outPtr += 2;\r\n }\r\n // Null-terminate the pointer to the HEAP.\r\n HEAP16[((outPtr)>>1)]=0;\r\n return outPtr - startPtr;\r\n}\r\n\r\n// Returns the number of bytes the given Javascript string takes if encoded as a UTF16 byte array, EXCLUDING the null terminator byte.\r\n\r\nfunction lengthBytesUTF16(str) {\r\n return str.length*2;\r\n}\r\n\r\nfunction UTF32ToString(ptr) {\r\n var i = 0;\r\n\r\n var str = '';\r\n while (1) {\r\n var utf32 = HEAP32[(((ptr)+(i*4))>>2)];\r\n if (utf32 == 0)\r\n return str;\r\n ++i;\r\n // Gotcha: fromCharCode constructs a character from a UTF-16 encoded code (pair), not from a Unicode code point! So encode the code point to UTF-16 for constructing.\r\n // See http://unicode.org/faq/utf_bom.html#utf16-3\r\n if (utf32 >= 0x10000) {\r\n var ch = utf32 - 0x10000;\r\n str += String.fromCharCode(0xD800 | (ch >> 10), 0xDC00 | (ch & 0x3FF));\r\n } else {\r\n str += String.fromCharCode(utf32);\r\n }\r\n }\r\n}\r\n\r\n// Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr',\r\n// null-terminated and encoded in UTF32 form. The copy will require at most str.length*4+4 bytes of space in the HEAP.\r\n// Use the function lengthBytesUTF32() to compute the exact number of bytes (excluding null terminator) that this function will write.\r\n// Parameters:\r\n// str: the Javascript string to copy.\r\n// outPtr: Byte address in Emscripten HEAP where to write the string to.\r\n// maxBytesToWrite: The maximum number of bytes this function can write to the array. This count should include the null\r\n// terminator, i.e. if maxBytesToWrite=4, only the null terminator will be written and nothing else.\r\n// maxBytesToWrite<4 does not write any bytes to the output, not even the null terminator.\r\n// Returns the number of bytes written, EXCLUDING the null terminator.\r\n\r\nfunction stringToUTF32(str, outPtr, maxBytesToWrite) {\r\n // Backwards compatibility: if max bytes is not specified, assume unsafe unbounded write is allowed.\r\n if (maxBytesToWrite === undefined) {\r\n maxBytesToWrite = 0x7FFFFFFF;\r\n }\r\n if (maxBytesToWrite < 4) return 0;\r\n var startPtr = outPtr;\r\n var endPtr = startPtr + maxBytesToWrite - 4;\r\n for (var i = 0; i < str.length; ++i) {\r\n // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! We must decode the string to UTF-32 to the heap.\r\n // See http://unicode.org/faq/utf_bom.html#utf16-3\r\n var codeUnit = str.charCodeAt(i); // possibly a lead surrogate\r\n if (codeUnit >= 0xD800 && codeUnit <= 0xDFFF) {\r\n var trailSurrogate = str.charCodeAt(++i);\r\n codeUnit = 0x10000 + ((codeUnit & 0x3FF) << 10) | (trailSurrogate & 0x3FF);\r\n }\r\n HEAP32[((outPtr)>>2)]=codeUnit;\r\n outPtr += 4;\r\n if (outPtr + 4 > endPtr) break;\r\n }\r\n // Null-terminate the pointer to the HEAP.\r\n HEAP32[((outPtr)>>2)]=0;\r\n return outPtr - startPtr;\r\n}\r\n\r\n// Returns the number of bytes the given Javascript string takes if encoded as a UTF16 byte array, EXCLUDING the null terminator byte.\r\n\r\nfunction lengthBytesUTF32(str) {\r\n var len = 0;\r\n for (var i = 0; i < str.length; ++i) {\r\n // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! We must decode the string to UTF-32 to the heap.\r\n // See http://unicode.org/faq/utf_bom.html#utf16-3\r\n var codeUnit = str.charCodeAt(i);\r\n if (codeUnit >= 0xD800 && codeUnit <= 0xDFFF) ++i; // possibly a lead surrogate, so skip over the tail surrogate.\r\n len += 4;\r\n }\r\n\r\n return len;\r\n}\r\n\r\n// Allocate heap space for a JS string, and write it there.\r\n// It is the responsibility of the caller to free() that memory.\r\nfunction allocateUTF8(str) {\r\n var size = lengthBytesUTF8(str) + 1;\r\n var ret = _malloc(size);\r\n if (ret) stringToUTF8Array(str, HEAP8, ret, size);\r\n return ret;\r\n}\r\n\r\n// Allocate stack space for a JS string, and write it there.\r\nfunction allocateUTF8OnStack(str) {\r\n var size = lengthBytesUTF8(str) + 1;\r\n var ret = stackAlloc(size);\r\n stringToUTF8Array(str, HEAP8, ret, size);\r\n return ret;\r\n}\r\n\r\n// Deprecated: This function should not be called because it is unsafe and does not provide\r\n// a maximum length limit of how many bytes it is allowed to write. Prefer calling the\r\n// function stringToUTF8Array() instead, which takes in a maximum length that can be used\r\n// to be secure from out of bounds writes.\r\n/** @deprecated */\r\nfunction writeStringToMemory(string, buffer, dontAddNull) {\r\n warnOnce('writeStringToMemory is deprecated and should not be called! Use stringToUTF8() instead!');\r\n\r\n var /** @type {number} */ lastChar, /** @type {number} */ end;\r\n if (dontAddNull) {\r\n // stringToUTF8Array always appends null. If we don't want to do that, remember the\r\n // character that existed at the location where the null will be placed, and restore\r\n // that after the write (below).\r\n end = buffer + lengthBytesUTF8(string);\r\n lastChar = HEAP8[end];\r\n }\r\n stringToUTF8(string, buffer, Infinity);\r\n if (dontAddNull) HEAP8[end] = lastChar; // Restore the value under the null character.\r\n}\r\n\r\nfunction writeArrayToMemory(array, buffer) {\r\n HEAP8.set(array, buffer);\r\n}\r\n\r\nfunction writeAsciiToMemory(str, buffer, dontAddNull) {\r\n for (var i = 0; i < str.length; ++i) {\r\n HEAP8[((buffer++)>>0)]=str.charCodeAt(i);\r\n }\r\n // Null-terminate the pointer to the HEAP.\r\n if (!dontAddNull) HEAP8[((buffer)>>0)]=0;\r\n}\r\n\r\n\r\n\r\n\r\n\r\nfunction demangle(func) {\r\n return func;\r\n}\r\n\r\nfunction demangleAll(text) {\r\n var regex =\r\n /__Z[\\w\\d_]+/g;\r\n return text.replace(regex,\r\n function(x) {\r\n var y = demangle(x);\r\n return x === y ? x : (y + ' [' + x + ']');\r\n });\r\n}\r\n\r\nfunction jsStackTrace() {\r\n var err = new Error();\r\n if (!err.stack) {\r\n // IE10+ special cases: It does have callstack info, but it is only populated if an Error object is thrown,\r\n // so try that as a special-case.\r\n try {\r\n throw new Error(0);\r\n } catch(e) {\r\n err = e;\r\n }\r\n if (!err.stack) {\r\n return '(no stack trace available)';\r\n }\r\n }\r\n return err.stack.toString();\r\n}\r\n\r\nfunction stackTrace() {\r\n var js = jsStackTrace();\r\n if (Module['extraStackTrace']) js += '\\n' + Module['extraStackTrace']();\r\n return demangleAll(js);\r\n}\r\n\r\n\r\n\r\n// Memory management\r\n\r\nvar PAGE_SIZE = 16384;\r\nvar WASM_PAGE_SIZE = 65536;\r\nvar ASMJS_PAGE_SIZE = 16777216;\r\n\r\nfunction alignUp(x, multiple) {\r\n if (x % multiple > 0) {\r\n x += multiple - (x % multiple);\r\n }\r\n return x;\r\n}\r\n\r\nvar HEAP,\r\n/** @type {ArrayBuffer} */\r\n buffer,\r\n/** @type {Int8Array} */\r\n HEAP8,\r\n/** @type {Uint8Array} */\r\n HEAPU8,\r\n/** @type {Int16Array} */\r\n HEAP16,\r\n/** @type {Uint16Array} */\r\n HEAPU16,\r\n/** @type {Int32Array} */\r\n HEAP32,\r\n/** @type {Uint32Array} */\r\n HEAPU32,\r\n/** @type {Float32Array} */\r\n HEAPF32,\r\n/** @type {Float64Array} */\r\n HEAPF64;\r\n\r\nfunction updateGlobalBufferViews() {\r\n Module['HEAP8'] = HEAP8 = new Int8Array(buffer);\r\n Module['HEAP16'] = HEAP16 = new Int16Array(buffer);\r\n Module['HEAP32'] = HEAP32 = new Int32Array(buffer);\r\n Module['HEAPU8'] = HEAPU8 = new Uint8Array(buffer);\r\n Module['HEAPU16'] = HEAPU16 = new Uint16Array(buffer);\r\n Module['HEAPU32'] = HEAPU32 = new Uint32Array(buffer);\r\n Module['HEAPF32'] = HEAPF32 = new Float32Array(buffer);\r\n Module['HEAPF64'] = HEAPF64 = new Float64Array(buffer);\r\n}\r\n\r\n\r\nvar STATIC_BASE = 1024,\r\n STACK_BASE = 1850928,\r\n STACKTOP = STACK_BASE,\r\n STACK_MAX = 7093808,\r\n DYNAMIC_BASE = 7093808,\r\n DYNAMICTOP_PTR = 1850896;\r\n\r\n\r\n\r\n\r\nvar TOTAL_STACK = 5242880;\r\n\r\nvar INITIAL_TOTAL_MEMORY = Module['TOTAL_MEMORY'] || 134217728;\r\nif (INITIAL_TOTAL_MEMORY < TOTAL_STACK) err('TOTAL_MEMORY should be larger than TOTAL_STACK, was ' + INITIAL_TOTAL_MEMORY + '! (TOTAL_STACK=' + TOTAL_STACK + ')');\r\n\r\n// Initialize the runtime's memory\r\n\r\n\r\n\r\n\r\n\r\n\r\n if (Module['wasmMemory']) {\r\n wasmMemory = Module['wasmMemory'];\r\n } else {\r\n wasmMemory = new WebAssembly.Memory({\r\n 'initial': INITIAL_TOTAL_MEMORY / WASM_PAGE_SIZE\r\n });\r\n }\r\n\r\n\r\nif (wasmMemory) {\r\n buffer = wasmMemory.buffer;\r\n}\r\n\r\n// If the user provides an incorrect length, just use that length instead rather than providing the user to\r\n// specifically provide the memory length with Module['TOTAL_MEMORY'].\r\nINITIAL_TOTAL_MEMORY = buffer.byteLength;\r\nupdateGlobalBufferViews();\r\n\r\nHEAP32[DYNAMICTOP_PTR>>2] = DYNAMIC_BASE;\r\n\r\n\r\n\r\n\r\n\r\n\r\n// Endianness check (note: assumes compiler arch was little-endian)\r\n\r\nfunction callRuntimeCallbacks(callbacks) {\r\n while(callbacks.length > 0) {\r\n var callback = callbacks.shift();\r\n if (typeof callback == 'function') {\r\n callback();\r\n continue;\r\n }\r\n var func = callback.func;\r\n if (typeof func === 'number') {\r\n if (callback.arg === undefined) {\r\n Module['dynCall_v'](func);\r\n } else {\r\n Module['dynCall_vi'](func, callback.arg);\r\n }\r\n } else {\r\n func(callback.arg === undefined ? null : callback.arg);\r\n }\r\n }\r\n}\r\n\r\nvar __ATPRERUN__ = []; // functions called before the runtime is initialized\r\nvar __ATINIT__ = []; // functions called during startup\r\nvar __ATMAIN__ = []; // functions called when main() is to be run\r\nvar __ATEXIT__ = []; // functions called during shutdown\r\nvar __ATPOSTRUN__ = []; // functions called after the main() is called\r\n\r\nvar runtimeInitialized = false;\r\nvar runtimeExited = false;\r\n\r\n\r\nfunction preRun() {\r\n // compatibility - merge in anything from Module['preRun'] at this time\r\n if (Module['preRun']) {\r\n if (typeof Module['preRun'] == 'function') Module['preRun'] = [Module['preRun']];\r\n while (Module['preRun'].length) {\r\n addOnPreRun(Module['preRun'].shift());\r\n }\r\n }\r\n callRuntimeCallbacks(__ATPRERUN__);\r\n}\r\n\r\nfunction initRuntime() {\r\n runtimeInitialized = true;\r\n \r\n callRuntimeCallbacks(__ATINIT__);\r\n}\r\n\r\nfunction preMain() {\r\n \r\n callRuntimeCallbacks(__ATMAIN__);\r\n}\r\n\r\nfunction exitRuntime() {\r\n runtimeExited = true;\r\n}\r\n\r\nfunction postRun() {\r\n // compatibility - merge in anything from Module['postRun'] at this time\r\n if (Module['postRun']) {\r\n if (typeof Module['postRun'] == 'function') Module['postRun'] = [Module['postRun']];\r\n while (Module['postRun'].length) {\r\n addOnPostRun(Module['postRun'].shift());\r\n }\r\n }\r\n callRuntimeCallbacks(__ATPOSTRUN__);\r\n}\r\n\r\nfunction addOnPreRun(cb) {\r\n __ATPRERUN__.unshift(cb);\r\n}\r\n\r\nfunction addOnInit(cb) {\r\n __ATINIT__.unshift(cb);\r\n}\r\n\r\nfunction addOnPreMain(cb) {\r\n __ATMAIN__.unshift(cb);\r\n}\r\n\r\nfunction addOnExit(cb) {\r\n}\r\n\r\nfunction addOnPostRun(cb) {\r\n __ATPOSTRUN__.unshift(cb);\r\n}\r\n\r\nfunction unSign(value, bits, ignore) {\r\n if (value >= 0) {\r\n return value;\r\n }\r\n return bits <= 32 ? 2*Math.abs(1 << (bits-1)) + value // Need some trickery, since if bits == 32, we are right at the limit of the bits JS uses in bitshifts\r\n : Math.pow(2, bits) + value;\r\n}\r\nfunction reSign(value, bits, ignore) {\r\n if (value <= 0) {\r\n return value;\r\n }\r\n var half = bits <= 32 ? Math.abs(1 << (bits-1)) // abs is needed if bits == 32\r\n : Math.pow(2, bits-1);\r\n if (value >= half && (bits <= 32 || value > half)) { // for huge values, we can hit the precision limit and always get true here. so don't do that\r\n // but, in general there is no perfect solution here. With 64-bit ints, we get rounding and errors\r\n // TODO: In i64 mode 1, resign the two parts separately and safely\r\n value = -2*half + value; // Cannot bitshift half, as it may be at the limit of the bits JS uses in bitshifts\r\n }\r\n return value;\r\n}\r\n\r\n\r\n\r\nvar Math_abs = Math.abs;\r\nvar Math_cos = Math.cos;\r\nvar Math_sin = Math.sin;\r\nvar Math_tan = Math.tan;\r\nvar Math_acos = Math.acos;\r\nvar Math_asin = Math.asin;\r\nvar Math_atan = Math.atan;\r\nvar Math_atan2 = Math.atan2;\r\nvar Math_exp = Math.exp;\r\nvar Math_log = Math.log;\r\nvar Math_sqrt = Math.sqrt;\r\nvar Math_ceil = Math.ceil;\r\nvar Math_floor = Math.floor;\r\nvar Math_pow = Math.pow;\r\nvar Math_imul = Math.imul;\r\nvar Math_fround = Math.fround;\r\nvar Math_round = Math.round;\r\nvar Math_min = Math.min;\r\nvar Math_max = Math.max;\r\nvar Math_clz32 = Math.clz32;\r\nvar Math_trunc = Math.trunc;\r\n\r\n\r\n\r\n// A counter of dependencies for calling run(). If we need to\r\n// do asynchronous work before running, increment this and\r\n// decrement it. Incrementing must happen in a place like\r\n// Module.preRun (used by emcc to add file preloading).\r\n// Note that you can add dependencies in preRun, even though\r\n// it happens right before run - run will be postponed until\r\n// the dependencies are met.\r\nvar runDependencies = 0;\r\nvar runDependencyWatcher = null;\r\nvar dependenciesFulfilled = null; // overridden to take different actions when all run dependencies are fulfilled\r\n\r\nfunction getUniqueRunDependency(id) {\r\n return id;\r\n}\r\n\r\nfunction addRunDependency(id) {\r\n runDependencies++;\r\n if (Module['monitorRunDependencies']) {\r\n Module['monitorRunDependencies'](runDependencies);\r\n }\r\n}\r\n\r\nfunction removeRunDependency(id) {\r\n runDependencies--;\r\n if (Module['monitorRunDependencies']) {\r\n Module['monitorRunDependencies'](runDependencies);\r\n }\r\n if (runDependencies == 0) {\r\n if (runDependencyWatcher !== null) {\r\n clearInterval(runDependencyWatcher);\r\n runDependencyWatcher = null;\r\n }\r\n if (dependenciesFulfilled) {\r\n var callback = dependenciesFulfilled;\r\n dependenciesFulfilled = null;\r\n callback(); // can add another dependenciesFulfilled\r\n }\r\n }\r\n}\r\n\r\nModule[\"preloadedImages\"] = {}; // maps url to image data\r\nModule[\"preloadedAudios\"] = {}; // maps url to audio data\r\n\r\n\r\nvar memoryInitializer = null;\r\n\r\n\r\n\r\n\r\n\r\n\r\n// Copyright 2017 The Emscripten Authors. All rights reserved.\r\n// Emscripten is available under two separate licenses, the MIT license and the\r\n// University of Illinois/NCSA Open Source License. Both these licenses can be\r\n// found in the LICENSE file.\r\n\r\n// Prefix of data URIs emitted by SINGLE_FILE and related options.\r\nvar dataURIPrefix = 'data:application/octet-stream;base64,';\r\n\r\n// Indicates whether filename is a base64 data URI.\r\nfunction isDataURI(filename) {\r\n return String.prototype.startsWith ?\r\n filename.startsWith(dataURIPrefix) :\r\n filename.indexOf(dataURIPrefix) === 0;\r\n}\r\n\r\n\r\n\r\n\r\nvar wasmBinaryFile = 'DiabloSpawn.wasm';\r\nif (!isDataURI(wasmBinaryFile)) {\r\n wasmBinaryFile = locateFile(wasmBinaryFile);\r\n}\r\n\r\nfunction getBinary() {\r\n try {\r\n if (Module['wasmBinary']) {\r\n return new Uint8Array(Module['wasmBinary']);\r\n }\r\n if (readBinary) {\r\n return readBinary(wasmBinaryFile);\r\n } else {\r\n throw \"both async and sync fetching of the wasm failed\";\r\n }\r\n }\r\n catch (err) {\r\n abort(err);\r\n }\r\n}\r\n\r\nfunction getBinaryPromise() {\r\n // if we don't have the binary yet, and have the Fetch api, use that\r\n // in some environments, like Electron's render process, Fetch api may be present, but have a different context than expected, let's only use it on the Web\r\n if (!Module['wasmBinary'] && (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) && typeof fetch === 'function') {\r\n return fetch(wasmBinaryFile, { credentials: 'same-origin' }).then(function(response) {\r\n if (!response['ok']) {\r\n throw \"failed to load wasm binary file at '\" + wasmBinaryFile + \"'\";\r\n }\r\n return response['arrayBuffer']();\r\n }).catch(function () {\r\n return getBinary();\r\n });\r\n }\r\n // Otherwise, getBinary should be able to get it synchronously\r\n return new Promise(function(resolve, reject) {\r\n resolve(getBinary());\r\n });\r\n}\r\n\r\n\r\n\r\n// Create the wasm instance.\r\n// Receives the wasm imports, returns the exports.\r\nfunction createWasm(env) {\r\n\r\n // prepare imports\r\n var info = {\r\n 'env': env\r\n ,\r\n 'global': {\r\n 'NaN': NaN,\r\n 'Infinity': Infinity\r\n },\r\n 'global.Math': Math,\r\n 'asm2wasm': asm2wasmImports\r\n };\r\n // Load the wasm module and create an instance of using native support in the JS engine.\r\n // handle a generated wasm instance, receiving its exports and\r\n // performing other necessary setup\r\n function receiveInstance(instance, module) {\r\n var exports = instance.exports;\r\n Module['asm'] = exports;\r\n removeRunDependency('wasm-instantiate');\r\n }\r\n addRunDependency('wasm-instantiate');\r\n\r\n\r\n function receiveInstantiatedSource(output) {\r\n // 'output' is a WebAssemblyInstantiatedSource object which has both the module and instance.\r\n // receiveInstance() will swap in the exports (to Module.asm) so they can be called\r\n // TODO: Due to Closure regression https://github.com/google/closure-compiler/issues/3193, the above line no longer optimizes out down to the following line.\r\n // When the regression is fixed, can restore the above USE_PTHREADS-enabled path.\r\n receiveInstance(output['instance']);\r\n }\r\n\r\n\r\n function instantiateArrayBuffer(receiver) {\r\n return getBinaryPromise().then(function(binary) {\r\n return WebAssembly.instantiate(binary, info);\r\n }).then(receiver, function(reason) {\r\n err('failed to asynchronously prepare wasm: ' + reason);\r\n abort(reason);\r\n });\r\n }\r\n\r\n // Prefer streaming instantiation if available.\r\n function instantiateAsync() {\r\n if (!Module['wasmBinary'] &&\r\n typeof WebAssembly.instantiateStreaming === 'function' &&\r\n !isDataURI(wasmBinaryFile) &&\r\n typeof fetch === 'function') {\r\n fetch(wasmBinaryFile, { credentials: 'same-origin' }).then(function (response) {\r\n return WebAssembly.instantiateStreaming(response, info)\r\n .then(receiveInstantiatedSource, function(reason) {\r\n // We expect the most common failure cause to be a bad MIME type for the binary,\r\n // in which case falling back to ArrayBuffer instantiation should work.\r\n err('wasm streaming compile failed: ' + reason);\r\n err('falling back to ArrayBuffer instantiation');\r\n instantiateArrayBuffer(receiveInstantiatedSource);\r\n });\r\n });\r\n } else {\r\n return instantiateArrayBuffer(receiveInstantiatedSource);\r\n }\r\n }\r\n // User shell pages can write their own Module.instantiateWasm = function(imports, successCallback) callback\r\n // to manually instantiate the Wasm module themselves. This allows pages to run the instantiation parallel\r\n // to any other async startup actions they are performing.\r\n if (Module['instantiateWasm']) {\r\n try {\r\n var exports = Module['instantiateWasm'](info, receiveInstance);\r\n return exports;\r\n } catch(e) {\r\n err('Module.instantiateWasm callback failed with error: ' + e);\r\n return false;\r\n }\r\n }\r\n\r\n instantiateAsync();\r\n return {}; // no exports yet; we'll fill them in later\r\n}\r\n\r\n// Provide an \"asm.js function\" for the application, called to \"link\" the asm.js module. We instantiate\r\n// the wasm module at that time, and it receives imports and provides exports and so forth, the app\r\n// doesn't need to care that it is wasm or asm.js.\r\n\r\nModule['asm'] = function(global, env, providedBuffer) {\r\n // memory was already allocated (so js could use the buffer)\r\n env['memory'] = wasmMemory\r\n ;\r\n // import table\r\n env['table'] = wasmTable = new WebAssembly.Table({\r\n 'initial': 1116,\r\n 'maximum': 1116,\r\n 'element': 'anyfunc'\r\n });\r\n // With the wasm backend __memory_base and __table_base and only needed for\r\n // relocatable output.\r\n env['__memory_base'] = 1024; // tell the memory segments where to place themselves\r\n // table starts at 0 by default (even in dynamic linking, for the main module)\r\n env['__table_base'] = 0;\r\n\r\n var exports = createWasm(env);\r\n return exports;\r\n};\r\n\r\n// Globals used by JS i64 conversions\r\nvar tempDouble;\r\nvar tempI64;\r\n\r\n// === Body ===\r\n\r\nvar ASM_CONSTS = [function($0) { self.DApi.current_save_id($0); }];\r\n\r\nfunction _emscripten_asm_const_ii(code, a0) {\r\n return ASM_CONSTS[code](a0);\r\n}\r\nfunction __api_close_keyboard(){ self.DApi.close_keyboard(); }\r\nfunction __api_open_keyboard(x0,y0,x1,y1,len){ self.DApi.open_keyboard(x0, y0, x1, y1, len); }\r\nfunction _api_create_sound(id,ptr,size){ self.DApi.create_sound(id, HEAPU8.slice(ptr, ptr + size)); }\r\nfunction _api_create_sound_float(id,ptr,samples,channels,rate){ self.DApi.create_sound_raw(id, HEAPF32.slice(ptr / 4, ptr / 4 + samples * channels), samples, channels, rate); }\r\nfunction _api_delete_sound(id){ self.DApi.delete_sound(id); }\r\nfunction _api_draw_begin(){ self.DApi.draw_begin(); }\r\nfunction _api_draw_belt(items){ self.DApi.draw_belt(HEAP32.subarray(items / 4, items / 4 + 8)); }\r\nfunction _api_draw_blit(x,y,w,h,ptr){ self.DApi.draw_blit(x, y, w, h, HEAPU8.subarray(ptr, ptr + w * h * 4)); }\r\nfunction _api_draw_clip_text(x0,y0,x1,y1){ self.DApi.draw_clip_text(x0, y0, x1, y1); }\r\nfunction _api_draw_end(){ self.DApi.draw_end(); }\r\nfunction _api_draw_text(x,y,ptr,color){ var end = HEAPU8.indexOf(0, ptr); var text = String.fromCharCode.apply(null, HEAPU8.subarray(ptr, end)); self.DApi.draw_text(x, y, text, color); }\r\nfunction _api_duplicate_sound(id,srcId){ self.DApi.duplicate_sound(id, srcId); }\r\nfunction _api_exit_game(){ self.DApi.exit_game(); }\r\nfunction _api_play_sound(id,volume,pan,loop){ self.DApi.play_sound(id, volume, pan, loop); }\r\nfunction _api_set_cursor(x,y){ self.DApi.set_cursor(x, y); }\r\nfunction _api_set_volume(id,volume){ self.DApi.set_volume(id, volume); }\r\nfunction _api_stop_sound(id){ self.DApi.stop_sound(id); }\r\nfunction _api_use_websocket(use){ self.DApi.use_websocket(use); }\r\nfunction _api_websocket_closed(){ return self.DApi.websocket_closed(); }\r\nfunction _api_websocket_send(ptr,size){ self.DApi.websocket_send(HEAPU8.subarray(ptr, ptr + size)); }\r\nfunction _exit_error(err){ var end = HEAPU8.indexOf( 0, err ); var text = String.fromCharCode.apply(null, HEAPU8.subarray( err, end )); self.DApi.exit_error( text ); }\r\nfunction _get_file_contents(path,ptr,offset,size){ var end = HEAPU8.indexOf( 0, path); var text = String.fromCharCode.apply(null, HEAPU8.subarray(path, end )); self.DApi.get_file_contents(text, HEAPU8.subarray(ptr, ptr + size), offset); }\r\nfunction _get_file_size(path){ var end = HEAPU8.indexOf( 0, path); var text = String.fromCharCode.apply(null, HEAPU8.subarray(path, end )); return self.DApi.get_file_size(text); }\r\nfunction _put_file_contents(path,ptr,size){ var end = HEAPU8.indexOf( 0, path); var text = String.fromCharCode.apply(null, HEAPU8.subarray(path, end)); self.DApi.put_file_contents(text, HEAPU8.slice(ptr, ptr + size)); }\r\nfunction _remove_file(path){ var end = HEAPU8.indexOf( 0, path); var text = String.fromCharCode.apply(null, HEAPU8.subarray(path, end )); self.DApi.remove_file( text ); }\r\nfunction _show_alert(err){ var end = HEAPU8.indexOf( 0, err ); var text = String.fromCharCode.apply( null, HEAPU8.subarray( err, end ) ); self.alert( text ); }\r\nfunction _trace_pop(){ if (self.WASM_TRACE) { self.WASM_TRACE.pop(); } }\r\nfunction _trace_push(ptr){ var end = HEAPU8.indexOf(0, ptr); var text = String.fromCharCode.apply(null, HEAPU8.subarray(ptr, end)); console.log(text); self.WASM_TRACE = self.WASM_TRACE || []; self.WASM_TRACE.push(text); }\r\n\r\n\r\n\r\n// STATICTOP = STATIC_BASE + 1849904;\r\n/* global initializers */ __ATINIT__.push({ func: function() { globalCtors() } });\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n/* no memory initializer */\r\nvar tempDoublePtr = 1850912\r\n\r\nfunction copyTempFloat(ptr) { // functions, because inlining this code increases code size too much\r\n HEAP8[tempDoublePtr] = HEAP8[ptr];\r\n HEAP8[tempDoublePtr+1] = HEAP8[ptr+1];\r\n HEAP8[tempDoublePtr+2] = HEAP8[ptr+2];\r\n HEAP8[tempDoublePtr+3] = HEAP8[ptr+3];\r\n}\r\n\r\nfunction copyTempDouble(ptr) {\r\n HEAP8[tempDoublePtr] = HEAP8[ptr];\r\n HEAP8[tempDoublePtr+1] = HEAP8[ptr+1];\r\n HEAP8[tempDoublePtr+2] = HEAP8[ptr+2];\r\n HEAP8[tempDoublePtr+3] = HEAP8[ptr+3];\r\n HEAP8[tempDoublePtr+4] = HEAP8[ptr+4];\r\n HEAP8[tempDoublePtr+5] = HEAP8[ptr+5];\r\n HEAP8[tempDoublePtr+6] = HEAP8[ptr+6];\r\n HEAP8[tempDoublePtr+7] = HEAP8[ptr+7];\r\n}\r\n\r\n// {{PRE_LIBRARY}}\r\n\r\n\r\n function ___assert_fail(condition, filename, line, func) {\r\n abort('Assertion failed: ' + UTF8ToString(condition) + ', at: ' + [filename ? UTF8ToString(filename) : 'unknown filename', line, func ? UTF8ToString(func) : 'unknown function']);\r\n }\r\n\r\n function ___cxa_allocate_exception(size) {\r\n return _malloc(size);\r\n }\r\n\r\n \r\n var ___exception_infos={};\r\n \r\n var ___exception_caught= [];\r\n \r\n function ___exception_addRef(ptr) {\r\n if (!ptr) return;\r\n var info = ___exception_infos[ptr];\r\n info.refcount++;\r\n }\r\n \r\n function ___exception_deAdjust(adjusted) {\r\n if (!adjusted || ___exception_infos[adjusted]) return adjusted;\r\n for (var key in ___exception_infos) {\r\n var ptr = +key; // the iteration key is a string, and if we throw this, it must be an integer as that is what we look for\r\n var adj = ___exception_infos[ptr].adjusted;\r\n var len = adj.length;\r\n for (var i = 0; i < len; i++) {\r\n if (adj[i] === adjusted) {\r\n return ptr;\r\n }\r\n }\r\n }\r\n return adjusted;\r\n }function ___cxa_begin_catch(ptr) {\r\n var info = ___exception_infos[ptr];\r\n if (info && !info.caught) {\r\n info.caught = true;\r\n __ZSt18uncaught_exceptionv.uncaught_exceptions--;\r\n }\r\n if (info) info.rethrown = false;\r\n ___exception_caught.push(ptr);\r\n ___exception_addRef(___exception_deAdjust(ptr));\r\n return ptr;\r\n }\r\n\r\n \r\n var ___exception_last=0;\r\n \r\n \r\n function ___cxa_free_exception(ptr) {\r\n try {\r\n return _free(ptr);\r\n } catch(e) {\r\n }\r\n }function ___exception_decRef(ptr) {\r\n if (!ptr) return;\r\n var info = ___exception_infos[ptr];\r\n info.refcount--;\r\n // A rethrown exception can reach refcount 0; it must not be discarded\r\n // Its next handler will clear the rethrown flag and addRef it, prior to\r\n // final decRef and destruction here\r\n if (info.refcount === 0 && !info.rethrown) {\r\n if (info.destructor) {\r\n Module['dynCall_vi'](info.destructor, ptr);\r\n }\r\n delete ___exception_infos[ptr];\r\n ___cxa_free_exception(ptr);\r\n }\r\n }\r\n \r\n function ___cxa_end_catch() {\r\n // Clear state flag.\r\n _setThrew(0);\r\n // Call destructor if one is registered then clear it.\r\n var ptr = ___exception_caught.pop();\r\n if (ptr) {\r\n ___exception_decRef(___exception_deAdjust(ptr));\r\n ___exception_last = 0; // XXX in decRef?\r\n }\r\n }\r\n\r\n \r\n \r\n function ___resumeException(ptr) {\r\n if (!___exception_last) { ___exception_last = ptr; }\r\n throw ptr;\r\n }function ___cxa_find_matching_catch() {\r\n var thrown = ___exception_last;\r\n if (!thrown) {\r\n // just pass through the null ptr\r\n return ((setTempRet0(0),0)|0);\r\n }\r\n var info = ___exception_infos[thrown];\r\n var throwntype = info.type;\r\n if (!throwntype) {\r\n // just pass through the thrown ptr\r\n return ((setTempRet0(0),thrown)|0);\r\n }\r\n var typeArray = Array.prototype.slice.call(arguments);\r\n \r\n var pointer = ___cxa_is_pointer_type(throwntype);\r\n // can_catch receives a **, add indirection\r\n var buffer = 1850880;\r\n HEAP32[((buffer)>>2)]=thrown;\r\n thrown = buffer;\r\n // The different catch blocks are denoted by different types.\r\n // Due to inheritance, those types may not precisely match the\r\n // type of the thrown object. Find one which matches, and\r\n // return the type of the catch block which should be called.\r\n for (var i = 0; i < typeArray.length; i++) {\r\n if (typeArray[i] && ___cxa_can_catch(typeArray[i], throwntype, thrown)) {\r\n thrown = HEAP32[((thrown)>>2)]; // undo indirection\r\n info.adjusted.push(thrown);\r\n return ((setTempRet0(typeArray[i]),thrown)|0);\r\n }\r\n }\r\n // Shouldn't happen unless we have bogus data in typeArray\r\n // or encounter a type for which emscripten doesn't have suitable\r\n // typeinfo defined. Best-efforts match just in case.\r\n thrown = HEAP32[((thrown)>>2)]; // undo indirection\r\n return ((setTempRet0(throwntype),thrown)|0);\r\n }\r\n Module[\"___cxa_find_matching_catch\"] = ___cxa_find_matching_catch;function ___cxa_find_matching_catch_2(a0,a1\r\n /*``*/) {\r\n return ___cxa_find_matching_catch(a0,a1);\r\n }\r\n\r\n function ___cxa_find_matching_catch_3(a0,a1,a2\r\n /*``*/) {\r\n return ___cxa_find_matching_catch(a0,a1,a2);\r\n }\r\n\r\n\r\n function ___cxa_get_exception_ptr(ptr) {\r\n // TODO: use info.adjusted?\r\n return ptr;\r\n }\r\n\r\n function ___cxa_pure_virtual() {\r\n ABORT = true;\r\n throw 'Pure virtual function called!';\r\n }\r\n\r\n function ___cxa_throw(ptr, type, destructor) {\r\n ___exception_infos[ptr] = {\r\n ptr: ptr,\r\n adjusted: [ptr],\r\n type: type,\r\n destructor: destructor,\r\n refcount: 0,\r\n caught: false,\r\n rethrown: false\r\n };\r\n ___exception_last = ptr;\r\n if (!(\"uncaught_exception\" in __ZSt18uncaught_exceptionv)) {\r\n __ZSt18uncaught_exceptionv.uncaught_exceptions = 1;\r\n } else {\r\n __ZSt18uncaught_exceptionv.uncaught_exceptions++;\r\n }\r\n throw ptr;\r\n }\r\n\r\n function ___cxa_uncaught_exceptions() {\r\n return __ZSt18uncaught_exceptionv.uncaught_exceptions;\r\n }\r\n\r\n function ___gxx_personality_v0() {\r\n }\r\n\r\n function ___lock() {}\r\n\r\n\r\n \r\n \r\n var PATH={splitPath:function (filename) {\r\n var splitPathRe = /^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/;\r\n return splitPathRe.exec(filename).slice(1);\r\n },normalizeArray:function (parts, allowAboveRoot) {\r\n // if the path tries to go above the root, `up` ends up > 0\r\n var up = 0;\r\n for (var i = parts.length - 1; i >= 0; i--) {\r\n var last = parts[i];\r\n if (last === '.') {\r\n parts.splice(i, 1);\r\n } else if (last === '..') {\r\n parts.splice(i, 1);\r\n up++;\r\n } else if (up) {\r\n parts.splice(i, 1);\r\n up--;\r\n }\r\n }\r\n // if the path is allowed to go above the root, restore leading ..s\r\n if (allowAboveRoot) {\r\n for (; up; up--) {\r\n parts.unshift('..');\r\n }\r\n }\r\n return parts;\r\n },normalize:function (path) {\r\n var isAbsolute = path.charAt(0) === '/',\r\n trailingSlash = path.substr(-1) === '/';\r\n // Normalize the path\r\n path = PATH.normalizeArray(path.split('/').filter(function(p) {\r\n return !!p;\r\n }), !isAbsolute).join('/');\r\n if (!path && !isAbsolute) {\r\n path = '.';\r\n }\r\n if (path && trailingSlash) {\r\n path += '/';\r\n }\r\n return (isAbsolute ? '/' : '') + path;\r\n },dirname:function (path) {\r\n var result = PATH.splitPath(path),\r\n root = result[0],\r\n dir = result[1];\r\n if (!root && !dir) {\r\n // No dirname whatsoever\r\n return '.';\r\n }\r\n if (dir) {\r\n // It has a dirname, strip trailing slash\r\n dir = dir.substr(0, dir.length - 1);\r\n }\r\n return root + dir;\r\n },basename:function (path) {\r\n // EMSCRIPTEN return '/'' for '/', not an empty string\r\n if (path === '/') return '/';\r\n var lastSlash = path.lastIndexOf('/');\r\n if (lastSlash === -1) return path;\r\n return path.substr(lastSlash+1);\r\n },extname:function (path) {\r\n return PATH.splitPath(path)[3];\r\n },join:function () {\r\n var paths = Array.prototype.slice.call(arguments, 0);\r\n return PATH.normalize(paths.join('/'));\r\n },join2:function (l, r) {\r\n return PATH.normalize(l + '/' + r);\r\n }};var SYSCALLS={buffers:[null,[],[]],printChar:function (stream, curr) {\r\n var buffer = SYSCALLS.buffers[stream];\r\n if (curr === 0 || curr === 10) {\r\n (stream === 1 ? out : err)(UTF8ArrayToString(buffer, 0));\r\n buffer.length = 0;\r\n } else {\r\n buffer.push(curr);\r\n }\r\n },varargs:0,get:function (varargs) {\r\n SYSCALLS.varargs += 4;\r\n var ret = HEAP32[(((SYSCALLS.varargs)-(4))>>2)];\r\n return ret;\r\n },getStr:function () {\r\n var ret = UTF8ToString(SYSCALLS.get());\r\n return ret;\r\n },get64:function () {\r\n var low = SYSCALLS.get(), high = SYSCALLS.get();\r\n return low;\r\n },getZero:function () {\r\n SYSCALLS.get();\r\n }};function ___syscall140(which, varargs) {SYSCALLS.varargs = varargs;\r\n try {\r\n // llseek\r\n var stream = SYSCALLS.getStreamFromFD(), offset_high = SYSCALLS.get(), offset_low = SYSCALLS.get(), result = SYSCALLS.get(), whence = SYSCALLS.get();\r\n return 0;\r\n } catch (e) {\r\n if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e);\r\n return -e.errno;\r\n }\r\n }\r\n\r\n \r\n function flush_NO_FILESYSTEM() {\r\n // flush anything remaining in the buffers during shutdown\r\n var fflush = Module[\"_fflush\"];\r\n if (fflush) fflush(0);\r\n var buffers = SYSCALLS.buffers;\r\n if (buffers[1].length) SYSCALLS.printChar(1, 10);\r\n if (buffers[2].length) SYSCALLS.printChar(2, 10);\r\n }function ___syscall146(which, varargs) {SYSCALLS.varargs = varargs;\r\n try {\r\n // writev\r\n // hack to support printf in SYSCALLS_REQUIRE_FILESYSTEM=0\r\n var stream = SYSCALLS.get(), iov = SYSCALLS.get(), iovcnt = SYSCALLS.get();\r\n var ret = 0;\r\n for (var i = 0; i < iovcnt; i++) {\r\n var ptr = HEAP32[(((iov)+(i*8))>>2)];\r\n var len = HEAP32[(((iov)+(i*8 + 4))>>2)];\r\n for (var j = 0; j < len; j++) {\r\n SYSCALLS.printChar(stream, HEAPU8[ptr+j]);\r\n }\r\n ret += len;\r\n }\r\n return ret;\r\n } catch (e) {\r\n if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e);\r\n return -e.errno;\r\n }\r\n }\r\n\r\n function ___syscall54(which, varargs) {SYSCALLS.varargs = varargs;\r\n try {\r\n // ioctl\r\n return 0;\r\n } catch (e) {\r\n if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e);\r\n return -e.errno;\r\n }\r\n }\r\n\r\n function ___syscall6(which, varargs) {SYSCALLS.varargs = varargs;\r\n try {\r\n // close\r\n var stream = SYSCALLS.getStreamFromFD();\r\n return 0;\r\n } catch (e) {\r\n if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e);\r\n return -e.errno;\r\n }\r\n }\r\n\r\n function ___unlock() {}\r\n\r\n function _abort() {\r\n Module['abort']();\r\n }\r\n\r\n var _emscripten_asm_const_int=true;\r\n\r\n function _emscripten_get_heap_size() {\r\n return HEAP8.length;\r\n }\r\n\r\n function _exit(status) {\r\n // void _exit(int status);\r\n // http://pubs.opengroup.org/onlinepubs/000095399/functions/exit.html\r\n exit(status);\r\n }\r\n\r\n \r\n\r\n function _llvm_eh_typeid_for(type) {\r\n return type;\r\n }\r\n\r\n function _llvm_trap() {\r\n abort('trap!');\r\n }\r\n\r\n \r\n function _emscripten_memcpy_big(dest, src, num) {\r\n HEAPU8.set(HEAPU8.subarray(src, src+num), dest);\r\n }\r\n \r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n function ___setErrNo(value) {\r\n if (Module['___errno_location']) HEAP32[((Module['___errno_location']())>>2)]=value;\r\n return value;\r\n }\r\n \r\n \r\n function abortOnCannotGrowMemory(requestedSize) {\r\n abort('OOM');\r\n }\r\n \r\n function emscripten_realloc_buffer(size) {\r\n var PAGE_MULTIPLE = 65536;\r\n size = alignUp(size, PAGE_MULTIPLE); // round up to wasm page size\r\n var oldSize = buffer.byteLength;\r\n // native wasm support\r\n // note that this is *not* threadsafe. multiple threads can call .grow(), and each\r\n // presents a delta, so in theory we may over-allocate here (e.g. if two threads\r\n // ask to grow from 256MB to 512MB, we get 2 requests to add +256MB, and may end\r\n // up growing to 768MB (even though we may have been able to make do with 512MB).\r\n // TODO: consider decreasing the step sizes in emscripten_resize_heap\r\n try {\r\n var result = wasmMemory.grow((size - oldSize) / 65536); // .grow() takes a delta compared to the previous size\r\n if (result !== (-1 | 0)) {\r\n // success in native wasm memory growth, get the buffer from the memory\r\n buffer = wasmMemory.buffer;\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n } catch(e) {\r\n return false;\r\n }\r\n }function _emscripten_resize_heap(requestedSize) {\r\n var oldSize = _emscripten_get_heap_size();\r\n // With pthreads, races can happen (another thread might increase the size in between), so return a failure, and let the caller retry.\r\n \r\n \r\n var PAGE_MULTIPLE = 65536;\r\n var LIMIT = 2147483648 - PAGE_MULTIPLE; // We can do one page short of 2GB as theoretical maximum.\r\n \r\n if (requestedSize > LIMIT) {\r\n return false;\r\n }\r\n \r\n var MIN_TOTAL_MEMORY = 16777216;\r\n var newSize = Math.max(oldSize, MIN_TOTAL_MEMORY); // So the loop below will not be infinite, and minimum asm.js memory size is 16MB.\r\n \r\n // TODO: see realloc_buffer - for PTHREADS we may want to decrease these jumps\r\n while (newSize < requestedSize) { // Keep incrementing the heap size as long as it's less than what is requested.\r\n if (newSize <= 536870912) {\r\n newSize = alignUp(2 * newSize, PAGE_MULTIPLE); // Simple heuristic: double until 1GB...\r\n } else {\r\n // ..., but after that, add smaller increments towards 2GB, which we cannot reach\r\n newSize = Math.min(alignUp((3 * newSize + 2147483648) / 4, PAGE_MULTIPLE), LIMIT);\r\n }\r\n \r\n }\r\n \r\n \r\n \r\n \r\n if (!emscripten_realloc_buffer(newSize)) {\r\n return false;\r\n }\r\n \r\n updateGlobalBufferViews();\r\n \r\n \r\n \r\n return true;\r\n } \r\n\r\n function _time(ptr) {\r\n var ret = (Date.now()/1000)|0;\r\n if (ptr) {\r\n HEAP32[((ptr)>>2)]=ret;\r\n }\r\n return ret;\r\n }\r\nvar ASSERTIONS = false;\r\n\r\n// Copyright 2017 The Emscripten Authors. All rights reserved.\r\n// Emscripten is available under two separate licenses, the MIT license and the\r\n// University of Illinois/NCSA Open Source License. Both these licenses can be\r\n// found in the LICENSE file.\r\n\r\n/** @type {function(string, boolean=, number=)} */\r\nfunction intArrayFromString(stringy, dontAddNull, length) {\r\n var len = length > 0 ? length : lengthBytesUTF8(stringy)+1;\r\n var u8array = new Array(len);\r\n var numBytesWritten = stringToUTF8Array(stringy, u8array, 0, u8array.length);\r\n if (dontAddNull) u8array.length = numBytesWritten;\r\n return u8array;\r\n}\r\n\r\nfunction intArrayToString(array) {\r\n var ret = [];\r\n for (var i = 0; i < array.length; i++) {\r\n var chr = array[i];\r\n if (chr > 0xFF) {\r\n if (ASSERTIONS) {\r\n assert(false, 'Character code ' + chr + ' (' + String.fromCharCode(chr) + ') at offset ' + i + ' not in 0x00-0xFF.');\r\n }\r\n chr &= 0xFF;\r\n }\r\n ret.push(String.fromCharCode(chr));\r\n }\r\n return ret.join('');\r\n}\r\n\r\n\r\n// ASM_LIBRARY EXTERN PRIMITIVES: Int8Array,Int32Array\r\n\r\n\r\nfunction invoke_i(index) {\r\n var sp = stackSave();\r\n try {\r\n return dynCall_i(index);\r\n } catch(e) {\r\n stackRestore(sp);\r\n if (e !== e+0 && e !== 'longjmp') throw e;\r\n _setThrew(1, 0);\r\n }\r\n}\r\n\r\nfunction invoke_ii(index,a1) {\r\n var sp = stackSave();\r\n try {\r\n return dynCall_ii(index,a1);\r\n } catch(e) {\r\n stackRestore(sp);\r\n if (e !== e+0 && e !== 'longjmp') throw e;\r\n _setThrew(1, 0);\r\n }\r\n}\r\n\r\nfunction invoke_iii(index,a1,a2) {\r\n var sp = stackSave();\r\n try {\r\n return dynCall_iii(index,a1,a2);\r\n } catch(e) {\r\n stackRestore(sp);\r\n if (e !== e+0 && e !== 'longjmp') throw e;\r\n _setThrew(1, 0);\r\n }\r\n}\r\n\r\nfunction invoke_iiii(index,a1,a2,a3) {\r\n var sp = stackSave();\r\n try {\r\n return dynCall_iiii(index,a1,a2,a3);\r\n } catch(e) {\r\n stackRestore(sp);\r\n if (e !== e+0 && e !== 'longjmp') throw e;\r\n _setThrew(1, 0);\r\n }\r\n}\r\n\r\nfunction invoke_iiiii(index,a1,a2,a3,a4) {\r\n var sp = stackSave();\r\n try {\r\n return dynCall_iiiii(index,a1,a2,a3,a4);\r\n } catch(e) {\r\n stackRestore(sp);\r\n if (e !== e+0 && e !== 'longjmp') throw e;\r\n _setThrew(1, 0);\r\n }\r\n}\r\n\r\nfunction invoke_iiiiii(index,a1,a2,a3,a4,a5) {\r\n var sp = stackSave();\r\n try {\r\n return dynCall_iiiiii(index,a1,a2,a3,a4,a5);\r\n } catch(e) {\r\n stackRestore(sp);\r\n if (e !== e+0 && e !== 'longjmp') throw e;\r\n _setThrew(1, 0);\r\n }\r\n}\r\n\r\nfunction invoke_ji(index,a1) {\r\n var sp = stackSave();\r\n try {\r\n return dynCall_ji(index,a1);\r\n } catch(e) {\r\n stackRestore(sp);\r\n if (e !== e+0 && e !== 'longjmp') throw e;\r\n _setThrew(1, 0);\r\n }\r\n}\r\n\r\nfunction invoke_v(index) {\r\n var sp = stackSave();\r\n try {\r\n dynCall_v(index);\r\n } catch(e) {\r\n stackRestore(sp);\r\n if (e !== e+0 && e !== 'longjmp') throw e;\r\n _setThrew(1, 0);\r\n }\r\n}\r\n\r\nfunction invoke_vi(index,a1) {\r\n var sp = stackSave();\r\n try {\r\n dynCall_vi(index,a1);\r\n } catch(e) {\r\n stackRestore(sp);\r\n if (e !== e+0 && e !== 'longjmp') throw e;\r\n _setThrew(1, 0);\r\n }\r\n}\r\n\r\nfunction invoke_vii(index,a1,a2) {\r\n var sp = stackSave();\r\n try {\r\n dynCall_vii(index,a1,a2);\r\n } catch(e) {\r\n stackRestore(sp);\r\n if (e !== e+0 && e !== 'longjmp') throw e;\r\n _setThrew(1, 0);\r\n }\r\n}\r\n\r\nfunction invoke_viii(index,a1,a2,a3) {\r\n var sp = stackSave();\r\n try {\r\n dynCall_viii(index,a1,a2,a3);\r\n } catch(e) {\r\n stackRestore(sp);\r\n if (e !== e+0 && e !== 'longjmp') throw e;\r\n _setThrew(1, 0);\r\n }\r\n}\r\n\r\nfunction invoke_viiii(index,a1,a2,a3,a4) {\r\n var sp = stackSave();\r\n try {\r\n dynCall_viiii(index,a1,a2,a3,a4);\r\n } catch(e) {\r\n stackRestore(sp);\r\n if (e !== e+0 && e !== 'longjmp') throw e;\r\n _setThrew(1, 0);\r\n }\r\n}\r\n\r\nfunction invoke_viiiii(index,a1,a2,a3,a4,a5) {\r\n var sp = stackSave();\r\n try {\r\n dynCall_viiiii(index,a1,a2,a3,a4,a5);\r\n } catch(e) {\r\n stackRestore(sp);\r\n if (e !== e+0 && e !== 'longjmp') throw e;\r\n _setThrew(1, 0);\r\n }\r\n}\r\n\r\nfunction invoke_viiiiiii(index,a1,a2,a3,a4,a5,a6,a7) {\r\n var sp = stackSave();\r\n try {\r\n dynCall_viiiiiii(index,a1,a2,a3,a4,a5,a6,a7);\r\n } catch(e) {\r\n stackRestore(sp);\r\n if (e !== e+0 && e !== 'longjmp') throw e;\r\n _setThrew(1, 0);\r\n }\r\n}\r\n\r\nfunction invoke_viij(index,a1,a2,a3,a4) {\r\n var sp = stackSave();\r\n try {\r\n dynCall_viij(index,a1,a2,a3,a4);\r\n } catch(e) {\r\n stackRestore(sp);\r\n if (e !== e+0 && e !== 'longjmp') throw e;\r\n _setThrew(1, 0);\r\n }\r\n}\r\n\r\nfunction invoke_viji(index,a1,a2,a3,a4) {\r\n var sp = stackSave();\r\n try {\r\n dynCall_viji(index,a1,a2,a3,a4);\r\n } catch(e) {\r\n stackRestore(sp);\r\n if (e !== e+0 && e !== 'longjmp') throw e;\r\n _setThrew(1, 0);\r\n }\r\n}\r\n\r\nvar asmGlobalArg = {};\r\n\r\nvar asmLibraryArg = {\r\n \"abort\": abort,\r\n \"setTempRet0\": setTempRet0,\r\n \"getTempRet0\": getTempRet0,\r\n \"invoke_i\": invoke_i,\r\n \"invoke_ii\": invoke_ii,\r\n \"invoke_iii\": invoke_iii,\r\n \"invoke_iiii\": invoke_iiii,\r\n \"invoke_iiiii\": invoke_iiiii,\r\n \"invoke_iiiiii\": invoke_iiiiii,\r\n \"invoke_ji\": invoke_ji,\r\n \"invoke_v\": invoke_v,\r\n \"invoke_vi\": invoke_vi,\r\n \"invoke_vii\": invoke_vii,\r\n \"invoke_viii\": invoke_viii,\r\n \"invoke_viiii\": invoke_viiii,\r\n \"invoke_viiiii\": invoke_viiiii,\r\n \"invoke_viiiiiii\": invoke_viiiiiii,\r\n \"invoke_viij\": invoke_viij,\r\n \"invoke_viji\": invoke_viji,\r\n \"___assert_fail\": ___assert_fail,\r\n \"___cxa_allocate_exception\": ___cxa_allocate_exception,\r\n \"___cxa_begin_catch\": ___cxa_begin_catch,\r\n \"___cxa_end_catch\": ___cxa_end_catch,\r\n \"___cxa_find_matching_catch\": ___cxa_find_matching_catch,\r\n \"___cxa_find_matching_catch_2\": ___cxa_find_matching_catch_2,\r\n \"___cxa_find_matching_catch_3\": ___cxa_find_matching_catch_3,\r\n \"___cxa_free_exception\": ___cxa_free_exception,\r\n \"___cxa_get_exception_ptr\": ___cxa_get_exception_ptr,\r\n \"___cxa_pure_virtual\": ___cxa_pure_virtual,\r\n \"___cxa_throw\": ___cxa_throw,\r\n \"___cxa_uncaught_exceptions\": ___cxa_uncaught_exceptions,\r\n \"___exception_addRef\": ___exception_addRef,\r\n \"___exception_deAdjust\": ___exception_deAdjust,\r\n \"___exception_decRef\": ___exception_decRef,\r\n \"___gxx_personality_v0\": ___gxx_personality_v0,\r\n \"___lock\": ___lock,\r\n \"___resumeException\": ___resumeException,\r\n \"___setErrNo\": ___setErrNo,\r\n \"___syscall140\": ___syscall140,\r\n \"___syscall146\": ___syscall146,\r\n \"___syscall54\": ___syscall54,\r\n \"___syscall6\": ___syscall6,\r\n \"___unlock\": ___unlock,\r\n \"__api_close_keyboard\": __api_close_keyboard,\r\n \"__api_open_keyboard\": __api_open_keyboard,\r\n \"_abort\": _abort,\r\n \"_api_create_sound\": _api_create_sound,\r\n \"_api_create_sound_float\": _api_create_sound_float,\r\n \"_api_delete_sound\": _api_delete_sound,\r\n \"_api_draw_begin\": _api_draw_begin,\r\n \"_api_draw_belt\": _api_draw_belt,\r\n \"_api_draw_blit\": _api_draw_blit,\r\n \"_api_draw_clip_text\": _api_draw_clip_text,\r\n \"_api_draw_end\": _api_draw_end,\r\n \"_api_draw_text\": _api_draw_text,\r\n \"_api_duplicate_sound\": _api_duplicate_sound,\r\n \"_api_exit_game\": _api_exit_game,\r\n \"_api_play_sound\": _api_play_sound,\r\n \"_api_set_cursor\": _api_set_cursor,\r\n \"_api_set_volume\": _api_set_volume,\r\n \"_api_stop_sound\": _api_stop_sound,\r\n \"_api_use_websocket\": _api_use_websocket,\r\n \"_api_websocket_closed\": _api_websocket_closed,\r\n \"_api_websocket_send\": _api_websocket_send,\r\n \"_emscripten_asm_const_ii\": _emscripten_asm_const_ii,\r\n \"_emscripten_get_heap_size\": _emscripten_get_heap_size,\r\n \"_emscripten_memcpy_big\": _emscripten_memcpy_big,\r\n \"_emscripten_resize_heap\": _emscripten_resize_heap,\r\n \"_exit\": _exit,\r\n \"_exit_error\": _exit_error,\r\n \"_get_file_contents\": _get_file_contents,\r\n \"_get_file_size\": _get_file_size,\r\n \"_llvm_eh_typeid_for\": _llvm_eh_typeid_for,\r\n \"_llvm_trap\": _llvm_trap,\r\n \"_put_file_contents\": _put_file_contents,\r\n \"_remove_file\": _remove_file,\r\n \"_show_alert\": _show_alert,\r\n \"_time\": _time,\r\n \"_trace_pop\": _trace_pop,\r\n \"_trace_push\": _trace_push,\r\n \"abortOnCannotGrowMemory\": abortOnCannotGrowMemory,\r\n \"emscripten_realloc_buffer\": emscripten_realloc_buffer,\r\n \"flush_NO_FILESYSTEM\": flush_NO_FILESYSTEM,\r\n \"tempDoublePtr\": tempDoublePtr,\r\n \"DYNAMICTOP_PTR\": DYNAMICTOP_PTR\r\n};\r\n// EMSCRIPTEN_START_ASM\r\nvar asm =Module[\"asm\"]// EMSCRIPTEN_END_ASM\r\n(asmGlobalArg, asmLibraryArg, buffer);\r\n\r\nModule[\"asm\"] = asm;\r\nvar _DApi_AllocPacket = Module[\"_DApi_AllocPacket\"] = function() {\r\n return Module[\"asm\"][\"_DApi_AllocPacket\"].apply(null, arguments)\r\n};\r\n\r\nvar _DApi_Char = Module[\"_DApi_Char\"] = function() {\r\n return Module[\"asm\"][\"_DApi_Char\"].apply(null, arguments)\r\n};\r\n\r\nvar _DApi_Init = Module[\"_DApi_Init\"] = function() {\r\n return Module[\"asm\"][\"_DApi_Init\"].apply(null, arguments)\r\n};\r\n\r\nvar _DApi_Key = Module[\"_DApi_Key\"] = function() {\r\n return Module[\"asm\"][\"_DApi_Key\"].apply(null, arguments)\r\n};\r\n\r\nvar _DApi_Mouse = Module[\"_DApi_Mouse\"] = function() {\r\n return Module[\"asm\"][\"_DApi_Mouse\"].apply(null, arguments)\r\n};\r\n\r\nvar _DApi_Render = Module[\"_DApi_Render\"] = function() {\r\n return Module[\"asm\"][\"_DApi_Render\"].apply(null, arguments)\r\n};\r\n\r\nvar _DApi_SyncText = Module[\"_DApi_SyncText\"] = function() {\r\n return Module[\"asm\"][\"_DApi_SyncText\"].apply(null, arguments)\r\n};\r\n\r\nvar _DApi_SyncTextPtr = Module[\"_DApi_SyncTextPtr\"] = function() {\r\n return Module[\"asm\"][\"_DApi_SyncTextPtr\"].apply(null, arguments)\r\n};\r\n\r\nvar _SNet_InitWebsocket = Module[\"_SNet_InitWebsocket\"] = function() {\r\n return Module[\"asm\"][\"_SNet_InitWebsocket\"].apply(null, arguments)\r\n};\r\n\r\nvar _SNet_WebsocketStatus = Module[\"_SNet_WebsocketStatus\"] = function() {\r\n return Module[\"asm\"][\"_SNet_WebsocketStatus\"].apply(null, arguments)\r\n};\r\n\r\nvar __ZSt18uncaught_exceptionv = Module[\"__ZSt18uncaught_exceptionv\"] = function() {\r\n return Module[\"asm\"][\"__ZSt18uncaught_exceptionv\"].apply(null, arguments)\r\n};\r\n\r\nvar ___cxa_can_catch = Module[\"___cxa_can_catch\"] = function() {\r\n return Module[\"asm\"][\"___cxa_can_catch\"].apply(null, arguments)\r\n};\r\n\r\nvar ___cxa_is_pointer_type = Module[\"___cxa_is_pointer_type\"] = function() {\r\n return Module[\"asm\"][\"___cxa_is_pointer_type\"].apply(null, arguments)\r\n};\r\n\r\nvar ___em_js___api_close_keyboard = Module[\"___em_js___api_close_keyboard\"] = function() {\r\n return Module[\"asm\"][\"___em_js___api_close_keyboard\"].apply(null, arguments)\r\n};\r\n\r\nvar ___em_js___api_open_keyboard = Module[\"___em_js___api_open_keyboard\"] = function() {\r\n return Module[\"asm\"][\"___em_js___api_open_keyboard\"].apply(null, arguments)\r\n};\r\n\r\nvar ___em_js__api_create_sound = Module[\"___em_js__api_create_sound\"] = function() {\r\n return Module[\"asm\"][\"___em_js__api_create_sound\"].apply(null, arguments)\r\n};\r\n\r\nvar ___em_js__api_create_sound_float = Module[\"___em_js__api_create_sound_float\"] = function() {\r\n return Module[\"asm\"][\"___em_js__api_create_sound_float\"].apply(null, arguments)\r\n};\r\n\r\nvar ___em_js__api_delete_sound = Module[\"___em_js__api_delete_sound\"] = function() {\r\n return Module[\"asm\"][\"___em_js__api_delete_sound\"].apply(null, arguments)\r\n};\r\n\r\nvar ___em_js__api_draw_begin = Module[\"___em_js__api_draw_begin\"] = function() {\r\n return Module[\"asm\"][\"___em_js__api_draw_begin\"].apply(null, arguments)\r\n};\r\n\r\nvar ___em_js__api_draw_belt = Module[\"___em_js__api_draw_belt\"] = function() {\r\n return Module[\"asm\"][\"___em_js__api_draw_belt\"].apply(null, arguments)\r\n};\r\n\r\nvar ___em_js__api_draw_blit = Module[\"___em_js__api_draw_blit\"] = function() {\r\n return Module[\"asm\"][\"___em_js__api_draw_blit\"].apply(null, arguments)\r\n};\r\n\r\nvar ___em_js__api_draw_clip_text = Module[\"___em_js__api_draw_clip_text\"] = function() {\r\n return Module[\"asm\"][\"___em_js__api_draw_clip_text\"].apply(null, arguments)\r\n};\r\n\r\nvar ___em_js__api_draw_end = Module[\"___em_js__api_draw_end\"] = function() {\r\n return Module[\"asm\"][\"___em_js__api_draw_end\"].apply(null, arguments)\r\n};\r\n\r\nvar ___em_js__api_draw_text = Module[\"___em_js__api_draw_text\"] = function() {\r\n return Module[\"asm\"][\"___em_js__api_draw_text\"].apply(null, arguments)\r\n};\r\n\r\nvar ___em_js__api_duplicate_sound = Module[\"___em_js__api_duplicate_sound\"] = function() {\r\n return Module[\"asm\"][\"___em_js__api_duplicate_sound\"].apply(null, arguments)\r\n};\r\n\r\nvar ___em_js__api_exit_game = Module[\"___em_js__api_exit_game\"] = function() {\r\n return Module[\"asm\"][\"___em_js__api_exit_game\"].apply(null, arguments)\r\n};\r\n\r\nvar ___em_js__api_play_sound = Module[\"___em_js__api_play_sound\"] = function() {\r\n return Module[\"asm\"][\"___em_js__api_play_sound\"].apply(null, arguments)\r\n};\r\n\r\nvar ___em_js__api_set_cursor = Module[\"___em_js__api_set_cursor\"] = function() {\r\n return Module[\"asm\"][\"___em_js__api_set_cursor\"].apply(null, arguments)\r\n};\r\n\r\nvar ___em_js__api_set_volume = Module[\"___em_js__api_set_volume\"] = function() {\r\n return Module[\"asm\"][\"___em_js__api_set_volume\"].apply(null, arguments)\r\n};\r\n\r\nvar ___em_js__api_stop_sound = Module[\"___em_js__api_stop_sound\"] = function() {\r\n return Module[\"asm\"][\"___em_js__api_stop_sound\"].apply(null, arguments)\r\n};\r\n\r\nvar ___em_js__api_use_websocket = Module[\"___em_js__api_use_websocket\"] = function() {\r\n return Module[\"asm\"][\"___em_js__api_use_websocket\"].apply(null, arguments)\r\n};\r\n\r\nvar ___em_js__api_websocket_closed = Module[\"___em_js__api_websocket_closed\"] = function() {\r\n return Module[\"asm\"][\"___em_js__api_websocket_closed\"].apply(null, arguments)\r\n};\r\n\r\nvar ___em_js__api_websocket_send = Module[\"___em_js__api_websocket_send\"] = function() {\r\n return Module[\"asm\"][\"___em_js__api_websocket_send\"].apply(null, arguments)\r\n};\r\n\r\nvar ___em_js__exit_error = Module[\"___em_js__exit_error\"] = function() {\r\n return Module[\"asm\"][\"___em_js__exit_error\"].apply(null, arguments)\r\n};\r\n\r\nvar ___em_js__get_file_contents = Module[\"___em_js__get_file_contents\"] = function() {\r\n return Module[\"asm\"][\"___em_js__get_file_contents\"].apply(null, arguments)\r\n};\r\n\r\nvar ___em_js__get_file_size = Module[\"___em_js__get_file_size\"] = function() {\r\n return Module[\"asm\"][\"___em_js__get_file_size\"].apply(null, arguments)\r\n};\r\n\r\nvar ___em_js__put_file_contents = Module[\"___em_js__put_file_contents\"] = function() {\r\n return Module[\"asm\"][\"___em_js__put_file_contents\"].apply(null, arguments)\r\n};\r\n\r\nvar ___em_js__remove_file = Module[\"___em_js__remove_file\"] = function() {\r\n return Module[\"asm\"][\"___em_js__remove_file\"].apply(null, arguments)\r\n};\r\n\r\nvar ___em_js__show_alert = Module[\"___em_js__show_alert\"] = function() {\r\n return Module[\"asm\"][\"___em_js__show_alert\"].apply(null, arguments)\r\n};\r\n\r\nvar ___em_js__trace_pop = Module[\"___em_js__trace_pop\"] = function() {\r\n return Module[\"asm\"][\"___em_js__trace_pop\"].apply(null, arguments)\r\n};\r\n\r\nvar ___em_js__trace_push = Module[\"___em_js__trace_push\"] = function() {\r\n return Module[\"asm\"][\"___em_js__trace_push\"].apply(null, arguments)\r\n};\r\n\r\nvar _emscripten_replace_memory = Module[\"_emscripten_replace_memory\"] = function() {\r\n return Module[\"asm\"][\"_emscripten_replace_memory\"].apply(null, arguments)\r\n};\r\n\r\nvar _free = Module[\"_free\"] = function() {\r\n return Module[\"asm\"][\"_free\"].apply(null, arguments)\r\n};\r\n\r\nvar _llvm_bswap_i32 = Module[\"_llvm_bswap_i32\"] = function() {\r\n return Module[\"asm\"][\"_llvm_bswap_i32\"].apply(null, arguments)\r\n};\r\n\r\nvar _malloc = Module[\"_malloc\"] = function() {\r\n return Module[\"asm\"][\"_malloc\"].apply(null, arguments)\r\n};\r\n\r\nvar _memcpy = Module[\"_memcpy\"] = function() {\r\n return Module[\"asm\"][\"_memcpy\"].apply(null, arguments)\r\n};\r\n\r\nvar _memmove = Module[\"_memmove\"] = function() {\r\n return Module[\"asm\"][\"_memmove\"].apply(null, arguments)\r\n};\r\n\r\nvar _memset = Module[\"_memset\"] = function() {\r\n return Module[\"asm\"][\"_memset\"].apply(null, arguments)\r\n};\r\n\r\nvar _sbrk = Module[\"_sbrk\"] = function() {\r\n return Module[\"asm\"][\"_sbrk\"].apply(null, arguments)\r\n};\r\n\r\nvar _setThrew = Module[\"_setThrew\"] = function() {\r\n return Module[\"asm\"][\"_setThrew\"].apply(null, arguments)\r\n};\r\n\r\nvar establishStackSpace = Module[\"establishStackSpace\"] = function() {\r\n return Module[\"asm\"][\"establishStackSpace\"].apply(null, arguments)\r\n};\r\n\r\nvar globalCtors = Module[\"globalCtors\"] = function() {\r\n return Module[\"asm\"][\"globalCtors\"].apply(null, arguments)\r\n};\r\n\r\nvar stackAlloc = Module[\"stackAlloc\"] = function() {\r\n return Module[\"asm\"][\"stackAlloc\"].apply(null, arguments)\r\n};\r\n\r\nvar stackRestore = Module[\"stackRestore\"] = function() {\r\n return Module[\"asm\"][\"stackRestore\"].apply(null, arguments)\r\n};\r\n\r\nvar stackSave = Module[\"stackSave\"] = function() {\r\n return Module[\"asm\"][\"stackSave\"].apply(null, arguments)\r\n};\r\n\r\nvar dynCall_i = Module[\"dynCall_i\"] = function() {\r\n return Module[\"asm\"][\"dynCall_i\"].apply(null, arguments)\r\n};\r\n\r\nvar dynCall_ii = Module[\"dynCall_ii\"] = function() {\r\n return Module[\"asm\"][\"dynCall_ii\"].apply(null, arguments)\r\n};\r\n\r\nvar dynCall_iidiiii = Module[\"dynCall_iidiiii\"] = function() {\r\n return Module[\"asm\"][\"dynCall_iidiiii\"].apply(null, arguments)\r\n};\r\n\r\nvar dynCall_iii = Module[\"dynCall_iii\"] = function() {\r\n return Module[\"asm\"][\"dynCall_iii\"].apply(null, arguments)\r\n};\r\n\r\nvar dynCall_iiii = Module[\"dynCall_iiii\"] = function() {\r\n return Module[\"asm\"][\"dynCall_iiii\"].apply(null, arguments)\r\n};\r\n\r\nvar dynCall_iiiii = Module[\"dynCall_iiiii\"] = function() {\r\n return Module[\"asm\"][\"dynCall_iiiii\"].apply(null, arguments)\r\n};\r\n\r\nvar dynCall_iiiiii = Module[\"dynCall_iiiiii\"] = function() {\r\n return Module[\"asm\"][\"dynCall_iiiiii\"].apply(null, arguments)\r\n};\r\n\r\nvar dynCall_ji = Module[\"dynCall_ji\"] = function() {\r\n return Module[\"asm\"][\"dynCall_ji\"].apply(null, arguments)\r\n};\r\n\r\nvar dynCall_jiji = Module[\"dynCall_jiji\"] = function() {\r\n return Module[\"asm\"][\"dynCall_jiji\"].apply(null, arguments)\r\n};\r\n\r\nvar dynCall_v = Module[\"dynCall_v\"] = function() {\r\n return Module[\"asm\"][\"dynCall_v\"].apply(null, arguments)\r\n};\r\n\r\nvar dynCall_vi = Module[\"dynCall_vi\"] = function() {\r\n return Module[\"asm\"][\"dynCall_vi\"].apply(null, arguments)\r\n};\r\n\r\nvar dynCall_vii = Module[\"dynCall_vii\"] = function() {\r\n return Module[\"asm\"][\"dynCall_vii\"].apply(null, arguments)\r\n};\r\n\r\nvar dynCall_viii = Module[\"dynCall_viii\"] = function() {\r\n return Module[\"asm\"][\"dynCall_viii\"].apply(null, arguments)\r\n};\r\n\r\nvar dynCall_viiii = Module[\"dynCall_viiii\"] = function() {\r\n return Module[\"asm\"][\"dynCall_viiii\"].apply(null, arguments)\r\n};\r\n\r\nvar dynCall_viiiii = Module[\"dynCall_viiiii\"] = function() {\r\n return Module[\"asm\"][\"dynCall_viiiii\"].apply(null, arguments)\r\n};\r\n\r\nvar dynCall_viiiiii = Module[\"dynCall_viiiiii\"] = function() {\r\n return Module[\"asm\"][\"dynCall_viiiiii\"].apply(null, arguments)\r\n};\r\n\r\nvar dynCall_viiiiiii = Module[\"dynCall_viiiiiii\"] = function() {\r\n return Module[\"asm\"][\"dynCall_viiiiiii\"].apply(null, arguments)\r\n};\r\n\r\nvar dynCall_viiiiiiiii = Module[\"dynCall_viiiiiiiii\"] = function() {\r\n return Module[\"asm\"][\"dynCall_viiiiiiiii\"].apply(null, arguments)\r\n};\r\n\r\nvar dynCall_viiiiiiiiii = Module[\"dynCall_viiiiiiiiii\"] = function() {\r\n return Module[\"asm\"][\"dynCall_viiiiiiiiii\"].apply(null, arguments)\r\n};\r\n\r\nvar dynCall_viij = Module[\"dynCall_viij\"] = function() {\r\n return Module[\"asm\"][\"dynCall_viij\"].apply(null, arguments)\r\n};\r\n\r\nvar dynCall_viji = Module[\"dynCall_viji\"] = function() {\r\n return Module[\"asm\"][\"dynCall_viji\"].apply(null, arguments)\r\n};\r\n;\r\n\r\n\r\n\r\n// === Auto-generated postamble setup entry stuff ===\r\n\r\nModule['asm'] = asm;\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n// Modularize mode returns a function, which can be called to\r\n// create instances. The instances provide a then() method,\r\n// must like a Promise, that receives a callback. The callback\r\n// is called when the module is ready to run, with the module\r\n// as a parameter. (Like a Promise, it also returns the module\r\n// so you can use the output of .then(..)).\r\nModule['then'] = function(func) {\r\n // We may already be ready to run code at this time. if\r\n // so, just queue a call to the callback.\r\n if (Module['calledRun']) {\r\n func(Module);\r\n } else {\r\n // we are not ready to call then() yet. we must call it\r\n // at the same time we would call onRuntimeInitialized.\r\n var old = Module['onRuntimeInitialized'];\r\n Module['onRuntimeInitialized'] = function() {\r\n if (old) old();\r\n func(Module);\r\n };\r\n }\r\n return Module;\r\n};\r\n\r\n/**\r\n * @constructor\r\n * @extends {Error}\r\n * @this {ExitStatus}\r\n */\r\nfunction ExitStatus(status) {\r\n this.name = \"ExitStatus\";\r\n this.message = \"Program terminated with exit(\" + status + \")\";\r\n this.status = status;\r\n}\r\nExitStatus.prototype = new Error();\r\nExitStatus.prototype.constructor = ExitStatus;\r\n\r\nvar calledMain = false;\r\n\r\ndependenciesFulfilled = function runCaller() {\r\n // If run has never been called, and we should call run (INVOKE_RUN is true, and Module.noInitialRun is not false)\r\n if (!Module['calledRun']) run();\r\n if (!Module['calledRun']) dependenciesFulfilled = runCaller; // try this again later, after new deps are fulfilled\r\n};\r\n\r\n\r\n\r\n\r\n\r\n/** @type {function(Array=)} */\r\nfunction run(args) {\r\n args = args || Module['arguments'];\r\n\r\n if (runDependencies > 0) {\r\n return;\r\n }\r\n\r\n\r\n preRun();\r\n\r\n if (runDependencies > 0) return; // a preRun added a dependency, run will be called later\r\n if (Module['calledRun']) return; // run may have just been called through dependencies being fulfilled just in this very frame\r\n\r\n function doRun() {\r\n if (Module['calledRun']) return; // run may have just been called while the async setStatus time below was happening\r\n Module['calledRun'] = true;\r\n\r\n if (ABORT) return;\r\n\r\n initRuntime();\r\n\r\n preMain();\r\n\r\n if (Module['onRuntimeInitialized']) Module['onRuntimeInitialized']();\r\n\r\n\r\n postRun();\r\n }\r\n\r\n if (Module['setStatus']) {\r\n Module['setStatus']('Running...');\r\n setTimeout(function() {\r\n setTimeout(function() {\r\n Module['setStatus']('');\r\n }, 1);\r\n doRun();\r\n }, 1);\r\n } else {\r\n doRun();\r\n }\r\n}\r\nModule['run'] = run;\r\n\r\n\r\nfunction exit(status, implicit) {\r\n\r\n // if this is just main exit-ing implicitly, and the status is 0, then we\r\n // don't need to do anything here and can just leave. if the status is\r\n // non-zero, though, then we need to report it.\r\n // (we may have warned about this earlier, if a situation justifies doing so)\r\n if (implicit && Module['noExitRuntime'] && status === 0) {\r\n return;\r\n }\r\n\r\n if (Module['noExitRuntime']) {\r\n } else {\r\n\r\n ABORT = true;\r\n EXITSTATUS = status;\r\n\r\n exitRuntime();\r\n\r\n if (Module['onExit']) Module['onExit'](status);\r\n }\r\n\r\n Module['quit'](status, new ExitStatus(status));\r\n}\r\n\r\nvar abortDecorators = [];\r\n\r\nfunction abort(what) {\r\n if (Module['onAbort']) {\r\n Module['onAbort'](what);\r\n }\r\n\r\n what += '';\r\n out(what);\r\n err(what);\r\n\r\n ABORT = true;\r\n EXITSTATUS = 1;\r\n\r\n throw 'abort(' + what + '). Build with -s ASSERTIONS=1 for more info.';\r\n}\r\nModule['abort'] = abort;\r\n\r\nif (Module['preInit']) {\r\n if (typeof Module['preInit'] == 'function') Module['preInit'] = [Module['preInit']];\r\n while (Module['preInit'].length > 0) {\r\n Module['preInit'].pop()();\r\n }\r\n}\r\n\r\n\r\n Module[\"noExitRuntime\"] = true;\r\n\r\nrun();\r\n\r\n\r\n\r\n\r\n\r\n// {{MODULE_ADDITIONS}}\r\n\r\n\r\n\r\nModule['ready'] = new Promise(function (resolve, reject) {\r\n delete Module['then']\r\n Module['onAbort'] = function (what) {\r\n reject(what)\r\n }\r\n addOnPostRun(function () {\r\n resolve(Module)\r\n })\r\n});\r\n\r\n\r\n\r\n return DiabloSpawn\r\n}\r\n);\r\n})();\r\nif (typeof exports === 'object' && typeof module === 'object')\r\n module.exports = DiabloSpawn;\r\n else if (typeof define === 'function' && define['amd'])\r\n define([], function() { return DiabloSpawn; });\r\n else if (typeof exports === 'object')\r\n exports[\"DiabloSpawn\"] = DiabloSpawn;\r\n \n\n/*** EXPORTS FROM exports-loader ***/\n","module.exports = require('./lib/axios');","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nvar runtime = function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []); // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n return generator;\n }\n\n exports.wrap = wrap; // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n\n function tryCatch(fn, obj, arg) {\n try {\n return {\n type: \"normal\",\n arg: fn.call(obj, arg)\n };\n } catch (err) {\n return {\n type: \"throw\",\n arg: err\n };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\"; // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n\n var ContinueSentinel = {}; // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n\n function Generator() {}\n\n function GeneratorFunction() {}\n\n function GeneratorFunctionPrototype() {} // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n\n\n var IteratorPrototype = {};\n\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n\n if (NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunctionPrototype[toStringTagSymbol] = GeneratorFunction.displayName = \"GeneratorFunction\"; // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function (method) {\n prototype[method] = function (arg) {\n return this._invoke(method, arg);\n };\n });\n }\n\n exports.isGeneratorFunction = function (genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor ? ctor === GeneratorFunction || // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\" : false;\n };\n\n exports.mark = function (genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n\n if (!(toStringTagSymbol in genFun)) {\n genFun[toStringTagSymbol] = \"GeneratorFunction\";\n }\n }\n\n genFun.prototype = Object.create(Gp);\n return genFun;\n }; // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n\n\n exports.awrap = function (arg) {\n return {\n __await: arg\n };\n };\n\n function AsyncIterator(generator) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n\n if (value && typeof value === \"object\" && hasOwn.call(value, \"__await\")) {\n return Promise.resolve(value.__await).then(function (value) {\n invoke(\"next\", value, resolve, reject);\n }, function (err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return Promise.resolve(value).then(function (unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function (error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new Promise(function (resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise = // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n } // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n\n\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n\n exports.AsyncIterator = AsyncIterator; // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n\n exports.async = function (innerFn, outerFn, self, tryLocsList) {\n var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList));\n return exports.isGeneratorFunction(outerFn) ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function (result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n } // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n\n\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n var record = tryCatch(innerFn, self, context);\n\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done ? GenStateCompleted : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n } else if (record.type === \"throw\") {\n state = GenStateCompleted; // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n } // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n\n\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (!info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value; // Resume execution at the desired location (see delegateYield).\n\n context.next = delegate.nextLoc; // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n } // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n\n\n context.delegate = null;\n return ContinueSentinel;\n } // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n\n\n defineIteratorMethods(Gp);\n Gp[toStringTagSymbol] = \"Generator\"; // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n\n Gp[iteratorSymbol] = function () {\n return this;\n };\n\n Gp.toString = function () {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = {\n tryLoc: locs[0]\n };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{\n tryLoc: \"root\"\n }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function (object) {\n var keys = [];\n\n for (var key in object) {\n keys.push(key);\n }\n\n keys.reverse(); // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n } // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n\n\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1,\n next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n return next;\n };\n\n return next.next = next;\n }\n } // Return an iterator with no values.\n\n\n return {\n next: doneResult\n };\n }\n\n exports.values = values;\n\n function doneResult() {\n return {\n value: undefined,\n done: true\n };\n }\n\n Context.prototype = {\n constructor: Context,\n reset: function reset(skipTempReset) {\n this.prev = 0;\n this.next = 0; // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n this.method = \"next\";\n this.arg = undefined;\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" && hasOwn.call(this, name) && !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n stop: function stop() {\n this.done = true;\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n dispatchException: function dispatchException(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !!caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n abrupt: function abrupt(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n\n if (entry.tryLoc <= this.prev && hasOwn.call(entry, \"finallyLoc\") && this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry && (type === \"break\" || type === \"continue\") && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n complete: function complete(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" || record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n finish: function finish(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n \"catch\": function _catch(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n\n return thrown;\n }\n } // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n\n\n throw new Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n }; // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n\n return exports;\n}( // If this script is executing as a CommonJS module, use module.exports\n// as the regeneratorRuntime namespace. Otherwise create a new empty\n// object. Either way, the resulting object will be used to initialize\n// the regeneratorRuntime variable at the top of this file.\ntypeof module === \"object\" ? module.exports : {});\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}","'use strict';\n\nvar utils = require('./utils');\n\nvar bind = require('./helpers/bind');\n\nvar Axios = require('./core/Axios');\n\nvar mergeConfig = require('./core/mergeConfig');\n\nvar defaults = require('./defaults');\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\n\n\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context); // Copy axios.prototype to instance\n\n utils.extend(instance, Axios.prototype, context); // Copy context to instance\n\n utils.extend(instance, context);\n return instance;\n} // Create the default instance to be exported\n\n\nvar axios = createInstance(defaults); // Expose Axios class to allow class inheritance\n\naxios.Axios = Axios; // Factory for creating new instances\n\naxios.create = function create(instanceConfig) {\n return createInstance(mergeConfig(axios.defaults, instanceConfig));\n}; // Expose Cancel & CancelToken\n\n\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel'); // Expose all/spread\n\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = require('./helpers/spread');\nmodule.exports = axios; // Allow use of default import syntax in TypeScript\n\nmodule.exports.default = axios;","/*!\n * Determine if an object is a Buffer\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\nmodule.exports = function isBuffer(obj) {\n return obj != null && obj.constructor != null && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj);\n};","'use strict';\n\nvar utils = require('./../utils');\n\nvar buildURL = require('../helpers/buildURL');\n\nvar InterceptorManager = require('./InterceptorManager');\n\nvar dispatchRequest = require('./dispatchRequest');\n\nvar mergeConfig = require('./mergeConfig');\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\n\n\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\n\n\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = arguments[1] || {};\n config.url = arguments[0];\n } else {\n config = config || {};\n }\n\n config = mergeConfig(this.defaults, config);\n config.method = config.method ? config.method.toLowerCase() : 'get'; // Hook up interceptors middleware\n\n var chain = [dispatchRequest, undefined];\n var promise = Promise.resolve(config);\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n chain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n chain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n}; // Provide aliases for supported request methods\n\n\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function (url, config) {\n return this.request(utils.merge(config || {}, {\n method: method,\n url: url\n }));\n };\n});\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function (url, data, config) {\n return this.request(utils.merge(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\nmodule.exports = Axios;","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\n\n\nInterceptorManager.prototype.use = function use(fulfilled, rejected) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected\n });\n return this.handlers.length - 1;\n};\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\n\n\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\n\n\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;","'use strict';\n\nvar utils = require('./../utils');\n\nvar transformData = require('./transformData');\n\nvar isCancel = require('../cancel/isCancel');\n\nvar defaults = require('../defaults');\n\nvar isAbsoluteURL = require('./../helpers/isAbsoluteURL');\n\nvar combineURLs = require('./../helpers/combineURLs');\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\n\n\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n}\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\n\n\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config); // Support baseURL config\n\n if (config.baseURL && !isAbsoluteURL(config.url)) {\n config.url = combineURLs(config.baseURL, config.url);\n } // Ensure headers exist\n\n\n config.headers = config.headers || {}; // Transform request data\n\n config.data = transformData(config.data, config.headers, config.transformRequest); // Flatten headers\n\n config.headers = utils.merge(config.headers.common || {}, config.headers[config.method] || {}, config.headers || {});\n utils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch', 'common'], function cleanHeaderConfig(method) {\n delete config.headers[method];\n });\n var adapter = config.adapter || defaults.adapter;\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config); // Transform response data\n\n response.data = transformData(response.data, response.headers, config.transformResponse);\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config); // Transform response data\n\n if (reason && reason.response) {\n reason.response.data = transformData(reason.response.data, reason.response.headers, config.transformResponse);\n }\n }\n\n return Promise.reject(reason);\n });\n};","'use strict';\n\nvar utils = require('./../utils');\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\n\n\nmodule.exports = function transformData(data, headers, fns) {\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn(data, headers);\n });\n return data;\n};","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};","'use strict';\n\nvar createError = require('./createError');\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\n\n\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n\n if (!validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError('Request failed with status code ' + response.status, response.config, null, response.request, response));\n }\n};","'use strict';\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\n\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.toJSON = function () {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code\n };\n };\n\n return error;\n};","'use strict';\n\nvar utils = require('./../utils'); // Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\n\n\nvar ignoreDuplicateOf = ['age', 'authorization', 'content-length', 'content-type', 'etag', 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since', 'last-modified', 'location', 'max-forwards', 'proxy-authorization', 'referer', 'retry-after', 'user-agent'];\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\n\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) {\n return parsed;\n }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n return parsed;\n};","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = utils.isStandardBrowserEnv() ? // Standard browser envs have full support of the APIs needed to test\n// whether the request URL is of the same origin as current location.\nfunction standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href); // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: urlParsingNode.pathname.charAt(0) === '/' ? urlParsingNode.pathname : '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n\n return function isURLSameOrigin(requestURL) {\n var parsed = utils.isString(requestURL) ? resolveURL(requestURL) : requestURL;\n return parsed.protocol === originURL.protocol && parsed.host === originURL.host;\n };\n}() : // Non standard browser envs (web workers, react-native) lack needed support.\nfunction nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n}();","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = utils.isStandardBrowserEnv() ? // Standard browser envs support document.cookie\nfunction standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return match ? decodeURIComponent(match[3]) : null;\n },\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n}() : // Non standard browser env (web workers, react-native) lack needed support.\nfunction nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() {\n return null;\n },\n remove: function remove() {}\n };\n}();","'use strict';\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\n\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};","'use strict';\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\n\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '') : baseURL;\n};","'use strict';\n\nvar Cancel = require('./Cancel');\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\n\n\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n var token = this;\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\n\n\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n\n\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;","'use strict';\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\n\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};","import arrayWithHoles from \"./arrayWithHoles\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit\";\nimport nonIterableRest from \"./nonIterableRest\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || nonIterableRest();\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n}","import arrayWithoutHoles from \"./arrayWithoutHoles\";\nimport iterableToArray from \"./iterableToArray\";\nimport nonIterableSpread from \"./nonIterableSpread\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || nonIterableSpread();\n}","export default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n }\n}","export default function _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}","async function do_websocket_open(url, handler) {\r\n const socket = new WebSocket(url);\r\n socket.binaryType = \"arraybuffer\";\r\n let versionCbk = null;\r\n socket.addEventListener(\"message\", ({data}) => {\r\n if (versionCbk) {\r\n versionCbk(data);\r\n }\r\n handler(data);\r\n });\r\n await new Promise((resolve, reject) => {\r\n const onError = err => reject(1);\r\n socket.addEventListener(\"error\", onError);\r\n socket.addEventListener(\"open\", () => {\r\n socket.removeEventListener(\"error\", onError);\r\n resolve();\r\n });\r\n });\r\n await new Promise((resolve, reject) => {\r\n const to = setTimeout(() => {\r\n versionCbk = null;\r\n reject(1);\r\n }, 5000);\r\n versionCbk = data => {\r\n clearTimeout(to);\r\n const u8 = new Uint8Array(data);\r\n if (u8[0] === 0x32) {\r\n versionCbk = null;\r\n const version = u8[1] | (u8[2] << 8) | (u8[3] << 16) | (u8[4] << 24);\r\n if (version === 1) {\r\n resolve();\r\n } else {\r\n reject(2);\r\n }\r\n }\r\n };\r\n });\r\n\r\n const vers = process.env.VERSION.match(/(\\d+)\\.(\\d+)\\.(\\d+)/);\r\n const clientInfo = new Uint8Array(5);\r\n clientInfo[0] = 0x31;\r\n clientInfo[1] = parseInt(vers[3]);\r\n clientInfo[2] = parseInt(vers[2]);\r\n clientInfo[3] = parseInt(vers[1]);\r\n clientInfo[4] = 0;\r\n socket.send(clientInfo);\r\n return socket;\r\n}\r\n\r\nexport default function websocket_open(url, handler, finisher) {\r\n let ws = null, batch = [], intr = null;\r\n const proxy = {\r\n get readyState() {\r\n return ws ? ws.readyState : 0;\r\n },\r\n send(msg) {\r\n batch.push(msg.slice());\r\n },\r\n close() {\r\n if (intr) {\r\n clearInterval(intr);\r\n intr = null;\r\n }\r\n if (ws) {\r\n ws.close();\r\n } else {\r\n batch = null;\r\n }\r\n },\r\n };\r\n do_websocket_open(url, handler).then(sock => {\r\n ws = sock;\r\n if (batch) {\r\n intr = setInterval(() => {\r\n if (!batch.length) {\r\n return;\r\n }\r\n const size = batch.reduce((sum, msg) => sum + msg.byteLength, 3);\r\n const buffer = new Uint8Array(size);\r\n buffer[0] = 0;\r\n buffer[1] = (batch.length & 0xFF);\r\n buffer[2] = batch.length >> 8;\r\n let pos = 3;\r\n for (let msg of batch) {\r\n buffer.set(msg, pos);\r\n pos += msg.byteLength;\r\n }\r\n ws.send(buffer);\r\n batch.length = 0;\r\n }, 100);\r\n } else {\r\n ws.close();\r\n }\r\n finisher(0);\r\n }, err => {\r\n finisher(err);\r\n });\r\n return proxy;\r\n}\r\n","import DiabloBinary from './Diablo.wasm';\r\nimport DiabloModule from './Diablo.jscc';\r\nimport SpawnBinary from './DiabloSpawn.wasm';\r\nimport SpawnModule from './DiabloSpawn.jscc';\r\nimport axios from 'axios';\r\n\r\nimport websocket_open from './websocket';\r\n\r\nconst DiabloSize = 1466809;\r\nconst SpawnSize = 1337416;\r\n\r\n/* eslint-disable-next-line no-restricted-globals */\r\nconst worker = self;\r\n\r\nlet canvas = null, context = null;\r\nlet imageData = null;\r\nlet files = null;\r\nlet renderBatch = null;\r\nlet drawBelt = null;\r\nlet is_spawn = false;\r\nlet websocket = null;\r\n\r\nconst ChunkSize = 1 << 20;\r\nclass RemoteFile {\r\n constructor(url) {\r\n const request = new XMLHttpRequest();\r\n request.open('HEAD', url, false);\r\n request.send();\r\n if (request.status < 200 || request.status >= 300) {\r\n worker.postMessage({action: \"error\", error: `Failed to load remote file`});\r\n }\r\n this.byteLength = parseInt(request.getResponseHeader('Content-Length'));\r\n\r\n this.url = url;\r\n\r\n this.buffer = new Uint8Array(this.byteLength);\r\n this.chunks = new Uint8Array(((this.byteLength + ChunkSize - 1) >> 20) | 0);\r\n }\r\n\r\n subarray(start, end) {\r\n let chunk0 = (start / ChunkSize) | 0;\r\n let chunk1 = ((end + ChunkSize - 1) / ChunkSize) | 0;\r\n let missing0 = chunk1, missing1 = chunk0;\r\n for (let i = chunk0; i < chunk1; ++i) {\r\n if (!this.chunks[i]) {\r\n missing0 = Math.min(missing0, i);\r\n missing1 = Math.max(missing1, i);\r\n }\r\n }\r\n if (missing0 <= missing1) {\r\n const request = new XMLHttpRequest();\r\n request.open('GET', this.url, false);\r\n request.setRequestHeader('Range', `bytes=${missing0 * ChunkSize}-${Math.min(missing1 * ChunkSize + ChunkSize - 1, this.byteLength - 1)}`);\r\n request.responseType = 'arraybuffer';\r\n request.send();\r\n if (request.status < 200 || request.status >= 300) {\r\n worker.postMessage({action: \"error\", error: `Failed to load remote file`});\r\n } else {\r\n const header = request.getResponseHeader('Content-Range');\r\n let m, start = 0;\r\n if (header && (m = header.match(/bytes (\\d+)-(\\d+)\\/(\\d+)/))) {\r\n start = parseInt(m[1]);\r\n }\r\n this.buffer.set(new Uint8Array(request.response), start);\r\n chunk0 = ((start + ChunkSize - 1) / ChunkSize) | 0;\r\n chunk1 = ((start + request.response.byteLength + ChunkSize - 1) / ChunkSize) | 0;\r\n for (let i = chunk0; i < chunk1; ++i) {\r\n this.chunks[i] = 1;\r\n }\r\n }\r\n }\r\n return this.buffer.subarray(start, end);\r\n }\r\n}\r\n\r\nconst DApi = {\r\n exit_error(error) {\r\n worker.postMessage({action: \"error\", error});\r\n },\r\n\r\n exit_game() {\r\n worker.postMessage({action: \"exit\"});\r\n },\r\n current_save_id(id) {\r\n worker.postMessage({action: \"current_save\", name: id >= 0 ? (is_spawn ? `spawn${id}.sv` : `single_${id}.sv`) : null});\r\n },\r\n\r\n get_file_size(path) {\r\n const data = files.get(path.toLowerCase());\r\n return data ? data.byteLength : 0;\r\n },\r\n get_file_contents(path, array, offset) {\r\n const data = files.get(path.toLowerCase());\r\n if (data) {\r\n array.set(data.subarray(offset, offset + array.byteLength));\r\n }\r\n },\r\n put_file_contents(path, array) {\r\n path = path.toLowerCase();\r\n // if (!path.match(/^(spawn\\d+\\.sv|single_\\d+\\.sv|config\\.ini)$/i)) {\r\n // alert(`Bad file name: ${path}`);\r\n // }\r\n files.set(path, array);\r\n worker.postMessage({action: \"fs\", func: \"update\", params: [path, array]});\r\n },\r\n remove_file(path) {\r\n path = path.toLowerCase();\r\n files.delete(path);\r\n worker.postMessage({action: \"fs\", func: \"delete\", params: [path]});\r\n },\r\n\r\n set_cursor(x, y) {\r\n worker.postMessage({action: \"cursor\", x, y});\r\n },\r\n open_keyboard(...args) {\r\n worker.postMessage({action: \"keyboard\", rect: [...args]});\r\n },\r\n close_keyboard() {\r\n worker.postMessage({action: \"keyboard\", rect: null});\r\n },\r\n\r\n use_websocket(flag) {\r\n if (flag) {\r\n if (!websocket || websocket.readyState !== 1) {\r\n const sock = websocket = websocket_open('wss://diablo.rivsoft.net/websocket', data => {\r\n if (websocket === sock) {\r\n try_api(() => {\r\n const ptr = wasm._DApi_AllocPacket(data.byteLength);\r\n wasm.HEAPU8.set(new Uint8Array(data), ptr);\r\n });\r\n }\r\n }, code => {\r\n if (typeof code !== \"number\") {\r\n worker.postMessage({action: \"error\", error: code.toString(), stack: code.stack});\r\n code = 3;\r\n }\r\n call_api(\"SNet_WebsocketStatus\", code);\r\n });\r\n } else {\r\n call_api(\"SNet_WebsocketStatus\", 0);\r\n }\r\n } else {\r\n if (websocket) {\r\n websocket.close();\r\n }\r\n websocket = null;\r\n }\r\n },\r\n websocket_closed() {\r\n return websocket ? websocket.readyState !== 1 : false;\r\n },\r\n};\r\n\r\nlet frameTime = 0, lastTime = 0;\r\nfunction getFPS() {\r\n const time = performance.now();\r\n if (!lastTime) {\r\n lastTime = time;\r\n }\r\n frameTime = 0.9 * frameTime + 0.1 * (time - lastTime);\r\n lastTime = time;\r\n return frameTime ? 1000.0 / frameTime : 0.0;\r\n}\r\n\r\nconst DApi_renderLegacy = {\r\n draw_begin() {\r\n renderBatch = {\r\n images: [],\r\n text: [],\r\n clip: null,\r\n belt: drawBelt,\r\n };\r\n drawBelt = null;\r\n },\r\n draw_blit(x, y, w, h, data) {\r\n renderBatch.images.push({x, y, w, h, data: data.slice()});\r\n },\r\n draw_clip_text(x0, y0, x1, y1) {\r\n renderBatch.clip = {x0, y0, x1, y1};\r\n },\r\n draw_text(x, y, text, color) {\r\n renderBatch.text.push({x, y, text, color});\r\n },\r\n draw_end() {\r\n //DApi.draw_text(10, 10, `FPS: ${getFPS().toFixed(1)} (Transfer)`, 0xFFCC00);\r\n const transfer = renderBatch.images.map(({data}) => data.buffer);\r\n if (renderBatch.belt) {\r\n transfer.push(renderBatch.belt.buffer);\r\n }\r\n worker.postMessage({action: \"render\", batch: renderBatch}, transfer);\r\n renderBatch = null;\r\n },\r\n draw_belt(items) {\r\n drawBelt = items.slice();\r\n },\r\n};\r\n\r\nconst DApi_renderOffscreen = {\r\n draw_begin() {\r\n context.save();\r\n context.font = 'bold 13px Times New Roman';\r\n },\r\n draw_blit(x, y, w, h, data) {\r\n imageData.data.set(data);\r\n context.putImageData(imageData, x, y);\r\n },\r\n draw_clip_text(x0, y0, x1, y1) {\r\n context.beginPath();\r\n context.rect(x0, y0, x1 - x0, y1 - y0);\r\n context.clip();\r\n },\r\n draw_text(x, y, text, color) {\r\n const r = ((color >> 16) & 0xFF);\r\n const g = ((color >> 8) & 0xFF);\r\n const b = (color & 0xFF);\r\n context.fillStyle = `rgb(${r}, ${g}, ${b})`;\r\n context.fillText(text, x, y + 22);\r\n },\r\n draw_end() {\r\n //DApi.draw_text(10, 10, `FPS: ${getFPS().toFixed(1)} (Offscreen)`, 0xFFCC00);\r\n context.restore();\r\n const bitmap = canvas.transferToImageBitmap();\r\n const transfer = [bitmap];\r\n if (drawBelt) {\r\n transfer.push(drawBelt.buffer);\r\n }\r\n worker.postMessage({action: \"render\", batch: {bitmap, belt: drawBelt}}, transfer);\r\n drawBelt = null;\r\n },\r\n draw_belt(items) {\r\n drawBelt = items.slice();\r\n },\r\n};\r\n\r\nlet audioBatch = null, audioTransfer = null;\r\nlet maxSoundId = 0, maxBatchId = 0;\r\n[\"create_sound_raw\", \"create_sound\", \"duplicate_sound\"].forEach(func => {\r\n DApi[func] = function(...params) {\r\n if (audioBatch) {\r\n maxBatchId = params[0] + 1;\r\n audioBatch.push({func, params});\r\n if (func !== \"duplicate_sound\") {\r\n audioTransfer.push(params[1].buffer);\r\n }\r\n } else {\r\n maxSoundId = params[0] + 1;\r\n const transfer = [];\r\n if (func !== \"duplicate_sound\") {\r\n transfer.push(params[1].buffer);\r\n }\r\n worker.postMessage({action: \"audio\", func, params}, transfer);\r\n }\r\n };\r\n});\r\n[\"play_sound\", \"set_volume\", \"stop_sound\", \"delete_sound\"].forEach(func => {\r\n DApi[func] = function(...params) {\r\n if (audioBatch && params[0] >= maxSoundId) {\r\n audioBatch.push({func, params});\r\n } else {\r\n worker.postMessage({action: \"audio\", func, params});\r\n }\r\n }\r\n});\r\n\r\nlet packetBatch = null;\r\nDApi.websocket_send = function(data) {\r\n if (websocket) {\r\n websocket.send(data);\r\n } else if (packetBatch) {\r\n packetBatch.push(data.slice().buffer);\r\n } else {\r\n worker.postMessage({action: \"packet\", buffer: data});\r\n }\r\n};\r\n\r\nworker.DApi = DApi;\r\n\r\nlet wasm = null;\r\n\r\nfunction try_api(func) {\r\n try {\r\n func();\r\n } catch (e) {\r\n worker.postMessage({action: \"error\", error: e.toString(), stack: e.stack});\r\n }\r\n}\r\n\r\nfunction call_api(func, ...params) {\r\n try_api(() => {\r\n const nested = (audioBatch != null);\r\n if (!nested) {\r\n audioBatch = [];\r\n audioTransfer = [];\r\n packetBatch = [];\r\n }\r\n if (func !== \"text\") {\r\n wasm[\"_\" + func](...params);\r\n } else {\r\n const ptr = wasm._DApi_SyncTextPtr();\r\n const text = params[0];\r\n const length = Math.min(text.length, 255);\r\n const heap = wasm.HEAPU8;\r\n for (let i = 0; i < length; ++i) {\r\n heap[ptr + i] = text.charCodeAt(i);\r\n }\r\n heap[ptr + length] = 0;\r\n wasm._DApi_SyncText(params[1]);\r\n }\r\n if (!nested) {\r\n if (audioBatch.length) {\r\n maxSoundId = maxBatchId;\r\n worker.postMessage({action: \"audioBatch\", batch: audioBatch}, audioTransfer);\r\n }\r\n if (packetBatch.length) {\r\n worker.postMessage({action: \"packetBatch\", batch: packetBatch}, packetBatch);\r\n }\r\n audioBatch = null;\r\n audioTransfer = null;\r\n packetBatch = null;\r\n }\r\n });\r\n}\r\n\r\nfunction progress(text, loaded, total) {\r\n worker.postMessage({action: \"progress\", text, loaded, total});\r\n}\r\n\r\nconst readFile = (file, progress) => new Promise((resolve, reject) => {\r\n const reader = new FileReader();\r\n reader.onload = () => {\r\n if (progress) {\r\n progress({loaded: file.size});\r\n }\r\n resolve(reader.result);\r\n };\r\n reader.onerror = () => reject(reader.error);\r\n reader.onabort = () => reject();\r\n if (progress) {\r\n reader.addEventListener(\"progress\", progress);\r\n }\r\n reader.readAsArrayBuffer(file);\r\n});\r\n\r\nasync function initWasm(spawn, progress) {\r\n const binary = await axios.request({\r\n url: spawn ? SpawnBinary : DiabloBinary,\r\n responseType: 'arraybuffer',\r\n onDownloadProgress: progress,\r\n });\r\n const result = await (spawn ? SpawnModule : DiabloModule)({wasmBinary: binary.data}).ready;\r\n progress({loaded: 2000000});\r\n return result;\r\n}\r\n\r\nasync function init_game(mpq, spawn, offscreen) {\r\n is_spawn = spawn;\r\n if (offscreen) {\r\n canvas = new OffscreenCanvas(640, 480);\r\n context = canvas.getContext(\"2d\");\r\n imageData = context.createImageData(640, 480);\r\n Object.assign(DApi, DApi_renderOffscreen);\r\n } else {\r\n Object.assign(DApi, DApi_renderLegacy);\r\n }\r\n\r\n if (!mpq) {\r\n const name = (spawn ? 'spawn.mpq' : 'diabdat.mpq');\r\n if (!files.has(name)) {\r\n // This should never happen, but we do support remote loading\r\n files.set(name, new RemoteFile(`${process.env.PUBLIC_URL}/${name}`));\r\n }\r\n }\r\n\r\n progress(\"Loading...\");\r\n let mpqLoaded = 0, mpqTotal = (mpq ? mpq.size : 0), wasmLoaded = 0, wasmTotal = (spawn ? SpawnSize : DiabloSize);\r\n const wasmWeight = 5;\r\n function updateProgress() {\r\n progress(\"Loading...\", mpqLoaded + wasmLoaded * wasmWeight, mpqTotal + wasmTotal * wasmWeight);\r\n }\r\n const loadWasm = initWasm(spawn, e => {\r\n wasmLoaded = Math.min(e.loaded, wasmTotal);\r\n updateProgress();\r\n });\r\n let loadMpq = mpq ? readFile(mpq, e => {\r\n mpqLoaded = e.loaded;\r\n updateProgress();\r\n }) : Promise.resolve(null);\r\n [wasm, mpq] = await Promise.all([loadWasm, loadMpq]);\r\n\r\n if (mpq) {\r\n files.set(spawn ? 'spawn.mpq' : 'diabdat.mpq', new Uint8Array(mpq));\r\n }\r\n\r\n progress(\"Initializing...\");\r\n\r\n const vers = process.env.VERSION.match(/(\\d+)\\.(\\d+)\\.(\\d+)/);\r\n\r\n wasm._SNet_InitWebsocket();\r\n wasm._DApi_Init(Math.floor(performance.now()), offscreen ? 1 : 0, parseInt(vers[1]), parseInt(vers[2]), parseInt(vers[3]));\r\n\r\n setInterval(() => {\r\n call_api(\"DApi_Render\", Math.floor(performance.now())); \r\n }, 50);\r\n}\r\n\r\nworker.addEventListener(\"message\", ({data}) => {\r\n switch (data.action) {\r\n case \"init\":\r\n files = data.files;\r\n init_game(data.mpq, data.spawn, data.offscreen).then(\r\n () => worker.postMessage({action: \"loaded\"}),\r\n e => worker.postMessage({action: \"failed\", error: e.toString(), stack: e.stack}));\r\n break;\r\n case \"event\":\r\n call_api(data.func, ...data.params);\r\n break;\r\n case \"packet\":\r\n try_api(() => {\r\n const ptr = wasm._DApi_AllocPacket(data.buffer.byteLength);\r\n wasm.HEAPU8.set(new Uint8Array(data.buffer), ptr);\r\n });\r\n break;\r\n case \"packetBatch\":\r\n try_api(() => {\r\n for (let packet of data.batch) {\r\n const ptr = wasm._DApi_AllocPacket(packet.byteLength);\r\n wasm.HEAPU8.set(new Uint8Array(packet), ptr);\r\n }\r\n });\r\n break;\r\n default:\r\n }\r\n});\r\n","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}"],"sourceRoot":""} \ No newline at end of file diff --git a/3d851ae1dfd110e041f9.worker.js b/8db59cc25367e55de4a6.worker.js similarity index 91% rename from 3d851ae1dfd110e041f9.worker.js rename to 8db59cc25367e55de4a6.worker.js index 084da93..0e05e10 100644 --- a/3d851ae1dfd110e041f9.worker.js +++ b/8db59cc25367e55de4a6.worker.js @@ -1,2 +1,2 @@ -!function(n){var t={};function e(r){if(t[r])return t[r].exports;var i=t[r]={i:r,l:!1,exports:{}};return n[r].call(i.exports,i,i.exports,e),i.l=!0,i.exports}e.m=n,e.c=t,e.d=function(n,t,r){e.o(n,t)||Object.defineProperty(n,t,{enumerable:!0,get:r})},e.r=function(n){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(n,"__esModule",{value:!0})},e.t=function(n,t){if(1&t&&(n=e(n)),8&t)return n;if(4&t&&"object"===typeof n&&n&&n.__esModule)return n;var r=Object.create(null);if(e.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:n}),2&t&&"string"!=typeof n)for(var i in n)e.d(r,i,function(t){return n[t]}.bind(null,i));return r},e.n=function(n){var t=n&&n.__esModule?function(){return n.default}:function(){return n};return e.d(t,"a",t),t},e.o=function(n,t){return Object.prototype.hasOwnProperty.call(n,t)},e.p="/diabloweb/",e(e.s=35)}([function(n,t,e){"use strict";var r=e(5),i=e(20),o=Object.prototype.toString;function a(n){return"[object Array]"===o.call(n)}function u(n){return null!==n&&"object"===typeof n}function s(n){return"[object Function]"===o.call(n)}function c(n,t){if(null!==n&&"undefined"!==typeof n)if("object"!==typeof n&&(n=[n]),a(n))for(var e=0,r=n.length;e1)for(var e=1;e=0;r--){var i=n[r];"."===i?n.splice(r,1):".."===i?(n.splice(r,1),e++):e&&(n.splice(r,1),e--)}if(t)for(;e--;e)n.unshift("..");return n}function r(n,t){if(n.filter)return n.filter(t);for(var e=[],r=0;r=-1&&!i;o--){var a=o>=0?arguments[o]:n.cwd();if("string"!==typeof a)throw new TypeError("Arguments to path.resolve must be strings");a&&(t=a+"/"+t,i="/"===a.charAt(0))}return(i?"/":"")+(t=e(r(t.split("/"),function(n){return!!n}),!i).join("/"))||"."},t.normalize=function(n){var o=t.isAbsolute(n),a="/"===i(n,-1);return(n=e(r(n.split("/"),function(n){return!!n}),!o).join("/"))||o||(n="."),n&&a&&(n+="/"),(o?"/":"")+n},t.isAbsolute=function(n){return"/"===n.charAt(0)},t.join=function(){var n=Array.prototype.slice.call(arguments,0);return t.normalize(r(n,function(n,t){if("string"!==typeof n)throw new TypeError("Arguments to path.join must be strings");return n}).join("/"))},t.relative=function(n,e){function r(n){for(var t=0;t=0&&""===n[e];e--);return t>e?[]:n.slice(t,e-t+1)}n=t.resolve(n).substr(1),e=t.resolve(e).substr(1);for(var i=r(n.split("/")),o=r(e.split("/")),a=Math.min(i.length,o.length),u=a,s=0;s=1;--o)if(47===(t=n.charCodeAt(o))){if(!i){r=o;break}}else i=!1;return-1===r?e?"/":".":e&&1===r?"/":n.slice(0,r)},t.basename=function(n,t){var e=function(n){"string"!==typeof n&&(n+="");var t,e=0,r=-1,i=!0;for(t=n.length-1;t>=0;--t)if(47===n.charCodeAt(t)){if(!i){e=t+1;break}}else-1===r&&(i=!1,r=t+1);return-1===r?"":n.slice(e,r)}(n);return t&&e.substr(-1*t.length)===t&&(e=e.substr(0,e.length-t.length)),e},t.extname=function(n){"string"!==typeof n&&(n+="");for(var t=-1,e=0,r=-1,i=!0,o=0,a=n.length-1;a>=0;--a){var u=n.charCodeAt(a);if(47!==u)-1===r&&(i=!1,r=a+1),46===u?-1===t?t=a:1!==o&&(o=1):-1!==t&&(o=-1);else if(!i){e=a+1;break}}return-1===t||-1===r||0===o||1===o&&t===r-1&&t===e+1?"":n.slice(t,r)};var i="b"==="ab".substr(-1)?function(n,t,e){return n.substr(t,e)}:function(n,t,e){return t<0&&(t=n.length+t),n.substr(t,e)}}).call(this,e(2))},function(n,t,e){"use strict";n.exports=function(n,t){return function(){for(var e=new Array(arguments.length),r=0;r=200&&n<300},headers:{common:{Accept:"application/json, text/plain, */*"}}};r.forEach(["delete","get","head"],function(n){u.headers[n]={}}),r.forEach(["post","put","patch"],function(n){u.headers[n]=r.merge(o)}),n.exports=u}).call(this,e(2))},function(n,t,e){"use strict";var r=e(0),i=e(26),o=e(6),a=e(28),u=e(29),s=e(10);n.exports=function(n){return new Promise(function(t,c){var l=n.data,_=n.headers;r.isFormData(l)&&delete _["Content-Type"];var f=new XMLHttpRequest;if(n.auth){var p=n.auth.username||"",d=n.auth.password||"";_.Authorization="Basic "+btoa(p+":"+d)}if(f.open(n.method.toUpperCase(),o(n.url,n.params,n.paramsSerializer),!0),f.timeout=n.timeout,f.onreadystatechange=function(){if(f&&4===f.readyState&&(0!==f.status||f.responseURL&&0===f.responseURL.indexOf("file:"))){var e="getAllResponseHeaders"in f?a(f.getAllResponseHeaders()):null,r={data:n.responseType&&"text"!==n.responseType?f.response:f.responseText,status:f.status,statusText:f.statusText,headers:e,config:n,request:f};i(t,c,r),f=null}},f.onabort=function(){f&&(c(s("Request aborted",n,"ECONNABORTED",f)),f=null)},f.onerror=function(){c(s("Network Error",n,null,f)),f=null},f.ontimeout=function(){c(s("timeout of "+n.timeout+"ms exceeded",n,"ECONNABORTED",f)),f=null},r.isStandardBrowserEnv()){var m=e(30),y=(n.withCredentials||u(n.url))&&n.xsrfCookieName?m.read(n.xsrfCookieName):void 0;y&&(_[n.xsrfHeaderName]=y)}if("setRequestHeader"in f&&r.forEach(_,function(n,t){"undefined"===typeof l&&"content-type"===t.toLowerCase()?delete _[t]:f.setRequestHeader(t,n)}),n.withCredentials&&(f.withCredentials=!0),n.responseType)try{f.responseType=n.responseType}catch(h){if("json"!==n.responseType)throw h}"function"===typeof n.onDownloadProgress&&f.addEventListener("progress",n.onDownloadProgress),"function"===typeof n.onUploadProgress&&f.upload&&f.upload.addEventListener("progress",n.onUploadProgress),n.cancelToken&&n.cancelToken.promise.then(function(n){f&&(f.abort(),c(n),f=null)}),void 0===l&&(l=null),f.send(l)})}},function(n,t,e){"use strict";var r=e(27);n.exports=function(n,t,e,i,o){var a=new Error(n);return r(a,t,e,i,o)}},function(n,t,e){"use strict";var r=e(0);n.exports=function(n,t){t=t||{};var e={};return r.forEach(["url","method","params","data"],function(n){"undefined"!==typeof t[n]&&(e[n]=t[n])}),r.forEach(["headers","auth","proxy"],function(i){r.isObject(t[i])?e[i]=r.deepMerge(n[i],t[i]):"undefined"!==typeof t[i]?e[i]=t[i]:r.isObject(n[i])?e[i]=r.deepMerge(n[i]):"undefined"!==typeof n[i]&&(e[i]=n[i])}),r.forEach(["baseURL","transformRequest","transformResponse","paramsSerializer","timeout","withCredentials","adapter","responseType","xsrfCookieName","xsrfHeaderName","onUploadProgress","onDownloadProgress","maxContentLength","validateStatus","maxRedirects","httpAgent","httpsAgent","cancelToken","socketPath"],function(r){"undefined"!==typeof t[r]?e[r]=t[r]:"undefined"!==typeof n[r]&&(e[r]=n[r])}),e}},function(n,t,e){"use strict";function r(n){this.message=n}r.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")},r.prototype.__CANCEL__=!0,n.exports=r},function(n,t,e){n.exports=e.p+"static/media/Diablo.570bd59a.wasm"},function(n,t,e){(function(t,r){var i=function(){var n="undefined"!==typeof document&&document.currentScript?document.currentScript.src:void 0;return function(i){var o,a="undefined"!==typeof(i=i||{})?i:{},u={};for(o in a)a.hasOwnProperty(o)&&(u[o]=a[o]);a.arguments=[],a.thisProgram="./this.program",a.quit=function(n,t){throw t},a.preRun=[],a.postRun=[];var s,c,l=!1,_=!1;l="object"===typeof window,_="function"===typeof importScripts,s="object"===typeof t&&"object"===typeof t.versions&&"string"===typeof t.versions.node&&!l&&!_,c=!l&&!s&&!_;var f,p,d,m,y="";s?(y=r+"/",f=function(n,t){var r;return d||(d=e(3)),m||(m=e(4)),n=m.normalize(n),r=d.readFileSync(n),t?r:r.toString()},p=function(n){var t=f(n,!0);return t.buffer||(t=new Uint8Array(t)),j(t.buffer),t},t.argv.length>1&&(a.thisProgram=t.argv[1].replace(/\\/g,"/")),a.arguments=t.argv.slice(2),t.on("uncaughtException",function(n){if(!(n instanceof Un))throw n}),t.on("unhandledRejection",Bn),a.quit=function(n){t.exit(n)},a.inspect=function(){return"[Emscripten Module object]"}):c?("undefined"!=typeof read&&(f=function(n){return read(n)}),p=function(n){var t;return"function"===typeof readbuffer?new Uint8Array(readbuffer(n)):(j("object"===typeof(t=read(n,"binary"))),t)},"undefined"!=typeof scriptArgs?a.arguments=scriptArgs:"undefined"!=typeof arguments&&(a.arguments=arguments),"function"===typeof quit&&(a.quit=function(n){quit(n)})):(l||_)&&(_?y=self.location.href:document.currentScript&&(y=document.currentScript.src),n&&(y=n),y=0!==y.indexOf("blob:")?y.substr(0,y.lastIndexOf("/")+1):"",f=function(n){var t=new XMLHttpRequest;return t.open("GET",n,!1),t.send(null),t.responseText},_&&(p=function(n){var t=new XMLHttpRequest;return t.open("GET",n,!1),t.responseType="arraybuffer",t.send(null),new Uint8Array(t.response)}),function(n,t,e){var r=new XMLHttpRequest;r.open("GET",n,!0),r.responseType="arraybuffer",r.onload=function(){200==r.status||0==r.status&&r.response?t(r.response):e()},r.onerror=e,r.send(null)});var h=a.print||("undefined"!==typeof console?console.log.bind(console):"undefined"!==typeof print?print:null),v=a.printErr||("undefined"!==typeof printErr?printErr:"undefined"!==typeof console&&console.warn.bind(console)||h);for(o in u)u.hasOwnProperty(o)&&(a[o]=u[o]);u=void 0;var g={"f64-rem":function(n,t){return n%t},debugger:function(){}};new Array(0);var b,w=0,x=function(n){w=n};"object"!==typeof WebAssembly&&v("no native wasm support detected");var A=!1;function j(n,t){n||Bn("Assertion failed: "+t)}var C="undefined"!==typeof TextDecoder?new TextDecoder("utf8"):void 0;function S(n,t,e){for(var r=t+e,i=t;n[i]&&!(i>=r);)++i;if(i-t>16&&n.subarray&&C)return C.decode(n.subarray(t,i));for(var o="";t>10,56320|1023&c)}}else o+=String.fromCharCode((31&a)<<6|u)}else o+=String.fromCharCode(a)}return o}function k(n,t){return n?S(T,n,t):""}"undefined"!==typeof TextDecoder&&new TextDecoder("utf-16le");var E,R,T,D,M;function L(n,t){return n%t>0&&(n+=t-n%t),n}function O(){a.HEAP8=R=new Int8Array(E),a.HEAP16=new Int16Array(E),a.HEAP32=D=new Int32Array(E),a.HEAPU8=T=new Uint8Array(E),a.HEAPU16=new Uint16Array(E),a.HEAPU32=new Uint32Array(E),a.HEAPF32=M=new Float32Array(E),a.HEAPF64=new Float64Array(E)}var P=1875712,I=a.TOTAL_MEMORY||134217728;function N(n){for(;n.length>0;){var t=n.shift();if("function"!=typeof t){var e=t.func;"number"===typeof e?void 0===t.arg?a.dynCall_v(e):a.dynCall_vi(e,t.arg):e(void 0===t.arg?null:t.arg)}else t()}}I<5242880&&v("TOTAL_MEMORY should be larger than TOTAL_STACK, was "+I+"! (TOTAL_STACK=5242880)"),(b=a.wasmMemory?a.wasmMemory:new WebAssembly.Memory({initial:I/65536}))&&(E=b.buffer),I=E.byteLength,O(),D[P>>2]=7118624;var F=[],U=[],q=[],B=[];function W(n){B.unshift(n)}Math.abs,Math.cos,Math.sin,Math.tan,Math.acos,Math.asin,Math.atan,Math.atan2,Math.exp,Math.log,Math.sqrt,Math.ceil,Math.floor,Math.pow,Math.imul,Math.fround,Math.round,Math.min,Math.max,Math.clz32,Math.trunc;var H=0,z=null,G=null;a.preloadedImages={},a.preloadedAudios={};var X="data:application/octet-stream;base64,";function K(n){return String.prototype.startsWith?n.startsWith(X):0===n.indexOf(X)}var Y,Z="Diablo.wasm";function J(){try{if(a.wasmBinary)return new Uint8Array(a.wasmBinary);if(p)return p(Z);throw"both async and sync fetching of the wasm failed"}catch(v){Bn(v)}}function V(n){var t={env:n,global:{NaN:NaN,Infinity:1/0},"global.Math":Math,asm2wasm:g};function e(n,t){var e=n.exports;a.asm=e,function(n){if(H--,a.monitorRunDependencies&&a.monitorRunDependencies(H),0==H&&(null!==z&&(clearInterval(z),z=null),G)){var t=G;G=null,t()}}()}function r(n){e(n.instance)}function i(n){return(a.wasmBinary||!l&&!_||"function"!==typeof fetch?new Promise(function(n,t){n(J())}):fetch(Z,{credentials:"same-origin"}).then(function(n){if(!n.ok)throw"failed to load wasm binary file at '"+Z+"'";return n.arrayBuffer()}).catch(function(){return J()})).then(function(n){return WebAssembly.instantiate(n,t)}).then(n,function(n){v("failed to asynchronously prepare wasm: "+n),Bn(n)})}if(H++,a.monitorRunDependencies&&a.monitorRunDependencies(H),a.instantiateWasm)try{return a.instantiateWasm(t,e)}catch(o){return v("Module.instantiateWasm callback failed with error: "+o),!1}return function(){if(a.wasmBinary||"function"!==typeof WebAssembly.instantiateStreaming||K(Z)||"function"!==typeof fetch)return i(r);fetch(Z,{credentials:"same-origin"}).then(function(n){return WebAssembly.instantiateStreaming(n,t).then(r,function(n){v("wasm streaming compile failed: "+n),v("falling back to ArrayBuffer instantiation"),i(r)})})}(),{}}K(Z)||(Y=Z,Z=a.locateFile?a.locateFile(Y,y):y+Y),a.asm=function(n,t,e){return t.memory=b,t.table=new WebAssembly.Table({initial:1116,maximum:1116,element:"anyfunc"}),t.__memory_base=1024,t.__table_base=0,V(t)};var $=[function(n){self.DApi.current_save_id(n)}];U.push({func:function(){bn()}});var Q=1875728;var nn={},tn=[];function en(n){n&&nn[n].refcount++}function rn(n){if(!n||nn[n])return n;for(var t in nn)for(var e=+t,r=nn[e].adjusted,i=r.length,o=0;o>2],t.adjusted.push(n),0|(x(r[i]),n);return n=D[n>>2],0|(x(e),n)}a.___cxa_find_matching_catch=sn;var cn={buffers:[null,[],[]],printChar:function(n,t){var e=cn.buffers[n];0===t||10===t?((1===n?h:v)(S(e,0)),e.length=0):e.push(t)},varargs:0,get:function(n){return cn.varargs+=4,D[cn.varargs-4>>2]},getStr:function(){return k(cn.get())},get64:function(){var n=cn.get();cn.get();return n},getZero:function(){cn.get()}};function ln(){return R.length}function _n(n){n=L(n,65536);var t=E.byteLength;try{return-1!==b.grow((n-t)/65536)&&(E=b.buffer,!0)}catch(e){return!1}}var fn={abort:Bn,setTempRet0:x,getTempRet0:function(){return w},invoke_i:function(n){var t=xn();try{return An(n)}catch(e){if(wn(t),e!==e+0&&"longjmp"!==e)throw e;gn(1,0)}},invoke_ii:function(n,t){var e=xn();try{return jn(n,t)}catch(r){if(wn(e),r!==r+0&&"longjmp"!==r)throw r;gn(1,0)}},invoke_iii:function(n,t,e){var r=xn();try{return Cn(n,t,e)}catch(i){if(wn(r),i!==i+0&&"longjmp"!==i)throw i;gn(1,0)}},invoke_iiii:function(n,t,e,r){var i=xn();try{return Sn(n,t,e,r)}catch(o){if(wn(i),o!==o+0&&"longjmp"!==o)throw o;gn(1,0)}},invoke_iiiii:function(n,t,e,r,i){var o=xn();try{return kn(n,t,e,r,i)}catch(a){if(wn(o),a!==a+0&&"longjmp"!==a)throw a;gn(1,0)}},invoke_iiiiii:function(n,t,e,r,i,o){var a=xn();try{return En(n,t,e,r,i,o)}catch(u){if(wn(a),u!==u+0&&"longjmp"!==u)throw u;gn(1,0)}},invoke_ji:function(n,t){var e=xn();try{return Rn(n,t)}catch(r){if(wn(e),r!==r+0&&"longjmp"!==r)throw r;gn(1,0)}},invoke_v:function(n){var t=xn();try{Tn(n)}catch(e){if(wn(t),e!==e+0&&"longjmp"!==e)throw e;gn(1,0)}},invoke_vi:function(n,t){var e=xn();try{Dn(n,t)}catch(r){if(wn(e),r!==r+0&&"longjmp"!==r)throw r;gn(1,0)}},invoke_vii:function(n,t,e){var r=xn();try{Mn(n,t,e)}catch(i){if(wn(r),i!==i+0&&"longjmp"!==i)throw i;gn(1,0)}},invoke_viii:function(n,t,e,r){var i=xn();try{Ln(n,t,e,r)}catch(o){if(wn(i),o!==o+0&&"longjmp"!==o)throw o;gn(1,0)}},invoke_viiii:function(n,t,e,r,i){var o=xn();try{On(n,t,e,r,i)}catch(a){if(wn(o),a!==a+0&&"longjmp"!==a)throw a;gn(1,0)}},invoke_viiiii:function(n,t,e,r,i,o){var a=xn();try{Pn(n,t,e,r,i,o)}catch(u){if(wn(a),u!==u+0&&"longjmp"!==u)throw u;gn(1,0)}},invoke_viiiiiii:function(n,t,e,r,i,o,a,u){var s=xn();try{In(n,t,e,r,i,o,a,u)}catch(c){if(wn(s),c!==c+0&&"longjmp"!==c)throw c;gn(1,0)}},invoke_viij:function(n,t,e,r,i){var o=xn();try{Nn(n,t,e,r,i)}catch(a){if(wn(o),a!==a+0&&"longjmp"!==a)throw a;gn(1,0)}},invoke_viji:function(n,t,e,r,i){var o=xn();try{Fn(n,t,e,r,i)}catch(a){if(wn(o),a!==a+0&&"longjmp"!==a)throw a;gn(1,0)}},___assert_fail:function(n,t,e,r){Bn("Assertion failed: "+k(n)+", at: "+[t?k(t):"unknown filename",e,r?k(r):"unknown function"])},___cxa_allocate_exception:function(n){return vn(n)},___cxa_begin_catch:function(n){var t=nn[n];return t&&!t.caught&&(t.caught=!0,dn.uncaught_exceptions--),t&&(t.rethrown=!1),tn.push(n),en(rn(n)),n},___cxa_end_catch:function(){gn(0);var n=tn.pop();n&&(un(rn(n)),on=0)},___cxa_find_matching_catch:sn,___cxa_find_matching_catch_2:function(n,t){return sn(n,t)},___cxa_find_matching_catch_3:function(n,t,e){return sn(n,t,e)},___cxa_free_exception:an,___cxa_get_exception_ptr:function(n){return n},___cxa_pure_virtual:function(){throw A=!0,"Pure virtual function called!"},___cxa_throw:function(n,t,e){throw nn[n]={ptr:n,adjusted:[n],type:t,destructor:e,refcount:0,caught:!1,rethrown:!1},on=n,"uncaught_exception"in dn?dn.uncaught_exceptions++:dn.uncaught_exceptions=1,n},___cxa_uncaught_exceptions:function(){return dn.uncaught_exceptions},___exception_addRef:en,___exception_deAdjust:rn,___exception_decRef:un,___gxx_personality_v0:function(){},___lock:function(){},___resumeException:function(n){throw on||(on=n),n},___setErrNo:function(n){return a.___errno_location&&(D[a.___errno_location()>>2]=n),n},___syscall140:function(n,t){cn.varargs=t;try{return cn.getStreamFromFD(),cn.get(),cn.get(),cn.get(),cn.get(),0}catch(e){return"undefined"!==typeof FS&&e instanceof FS.ErrnoError||Bn(e),-e.errno}},___syscall146:function(n,t){cn.varargs=t;try{for(var e=cn.get(),r=cn.get(),i=cn.get(),o=0,a=0;a>2],s=D[r+(8*a+4)>>2],c=0;c2147418112)return!1;for(var e=Math.max(t,16777216);e>2]=t),t},_trace_pop:function(){self.WASM_TRACE&&self.WASM_TRACE.pop()},_trace_push:function(n){var t=T.indexOf(0,n),e=String.fromCharCode.apply(null,T.subarray(n,t));console.log(e),self.WASM_TRACE=self.WASM_TRACE||[],self.WASM_TRACE.push(e)},abortOnCannotGrowMemory:function(n){Bn("OOM")},emscripten_realloc_buffer:_n,flush_NO_FILESYSTEM:function(){var n=a._fflush;n&&n(0);var t=cn.buffers;t[1].length&&cn.printChar(1,10),t[2].length&&cn.printChar(2,10)},tempDoublePtr:Q,DYNAMICTOP_PTR:P},pn=a.asm({},fn,E);a.asm=pn;a._DApi_AllocPacket=function(){return a.asm._DApi_AllocPacket.apply(null,arguments)},a._DApi_Char=function(){return a.asm._DApi_Char.apply(null,arguments)},a._DApi_Init=function(){return a.asm._DApi_Init.apply(null,arguments)},a._DApi_Key=function(){return a.asm._DApi_Key.apply(null,arguments)},a._DApi_Mouse=function(){return a.asm._DApi_Mouse.apply(null,arguments)},a._DApi_Render=function(){return a.asm._DApi_Render.apply(null,arguments)},a._DApi_SyncText=function(){return a.asm._DApi_SyncText.apply(null,arguments)},a._DApi_SyncTextPtr=function(){return a.asm._DApi_SyncTextPtr.apply(null,arguments)},a._SNet_InitWebsocket=function(){return a.asm._SNet_InitWebsocket.apply(null,arguments)},a._SNet_WebsocketStatus=function(){return a.asm._SNet_WebsocketStatus.apply(null,arguments)};var dn=a.__ZSt18uncaught_exceptionv=function(){return a.asm.__ZSt18uncaught_exceptionv.apply(null,arguments)},mn=a.___cxa_can_catch=function(){return a.asm.___cxa_can_catch.apply(null,arguments)},yn=a.___cxa_is_pointer_type=function(){return a.asm.___cxa_is_pointer_type.apply(null,arguments)},hn=(a.___em_js___api_close_keyboard=function(){return a.asm.___em_js___api_close_keyboard.apply(null,arguments)},a.___em_js___api_open_keyboard=function(){return a.asm.___em_js___api_open_keyboard.apply(null,arguments)},a.___em_js__api_create_sound=function(){return a.asm.___em_js__api_create_sound.apply(null,arguments)},a.___em_js__api_create_sound_float=function(){return a.asm.___em_js__api_create_sound_float.apply(null,arguments)},a.___em_js__api_delete_sound=function(){return a.asm.___em_js__api_delete_sound.apply(null,arguments)},a.___em_js__api_draw_begin=function(){return a.asm.___em_js__api_draw_begin.apply(null,arguments)},a.___em_js__api_draw_belt=function(){return a.asm.___em_js__api_draw_belt.apply(null,arguments)},a.___em_js__api_draw_blit=function(){return a.asm.___em_js__api_draw_blit.apply(null,arguments)},a.___em_js__api_draw_clip_text=function(){return a.asm.___em_js__api_draw_clip_text.apply(null,arguments)},a.___em_js__api_draw_end=function(){return a.asm.___em_js__api_draw_end.apply(null,arguments)},a.___em_js__api_draw_text=function(){return a.asm.___em_js__api_draw_text.apply(null,arguments)},a.___em_js__api_duplicate_sound=function(){return a.asm.___em_js__api_duplicate_sound.apply(null,arguments)},a.___em_js__api_exit_game=function(){return a.asm.___em_js__api_exit_game.apply(null,arguments)},a.___em_js__api_play_sound=function(){return a.asm.___em_js__api_play_sound.apply(null,arguments)},a.___em_js__api_set_cursor=function(){return a.asm.___em_js__api_set_cursor.apply(null,arguments)},a.___em_js__api_set_volume=function(){return a.asm.___em_js__api_set_volume.apply(null,arguments)},a.___em_js__api_stop_sound=function(){return a.asm.___em_js__api_stop_sound.apply(null,arguments)},a.___em_js__api_use_websocket=function(){return a.asm.___em_js__api_use_websocket.apply(null,arguments)},a.___em_js__api_websocket_closed=function(){return a.asm.___em_js__api_websocket_closed.apply(null,arguments)},a.___em_js__api_websocket_send=function(){return a.asm.___em_js__api_websocket_send.apply(null,arguments)},a.___em_js__exit_error=function(){return a.asm.___em_js__exit_error.apply(null,arguments)},a.___em_js__get_file_contents=function(){return a.asm.___em_js__get_file_contents.apply(null,arguments)},a.___em_js__get_file_size=function(){return a.asm.___em_js__get_file_size.apply(null,arguments)},a.___em_js__put_file_contents=function(){return a.asm.___em_js__put_file_contents.apply(null,arguments)},a.___em_js__remove_file=function(){return a.asm.___em_js__remove_file.apply(null,arguments)},a.___em_js__show_alert=function(){return a.asm.___em_js__show_alert.apply(null,arguments)},a.___em_js__trace_pop=function(){return a.asm.___em_js__trace_pop.apply(null,arguments)},a.___em_js__trace_push=function(){return a.asm.___em_js__trace_push.apply(null,arguments)},a._emscripten_replace_memory=function(){return a.asm._emscripten_replace_memory.apply(null,arguments)},a._free=function(){return a.asm._free.apply(null,arguments)}),vn=(a._llvm_bswap_i32=function(){return a.asm._llvm_bswap_i32.apply(null,arguments)},a._malloc=function(){return a.asm._malloc.apply(null,arguments)}),gn=(a._memcpy=function(){return a.asm._memcpy.apply(null,arguments)},a._memmove=function(){return a.asm._memmove.apply(null,arguments)},a._memset=function(){return a.asm._memset.apply(null,arguments)},a._sbrk=function(){return a.asm._sbrk.apply(null,arguments)},a._setThrew=function(){return a.asm._setThrew.apply(null,arguments)}),bn=(a.establishStackSpace=function(){return a.asm.establishStackSpace.apply(null,arguments)},a.globalCtors=function(){return a.asm.globalCtors.apply(null,arguments)}),wn=(a.stackAlloc=function(){return a.asm.stackAlloc.apply(null,arguments)},a.stackRestore=function(){return a.asm.stackRestore.apply(null,arguments)}),xn=a.stackSave=function(){return a.asm.stackSave.apply(null,arguments)},An=a.dynCall_i=function(){return a.asm.dynCall_i.apply(null,arguments)},jn=a.dynCall_ii=function(){return a.asm.dynCall_ii.apply(null,arguments)},Cn=(a.dynCall_iidiiii=function(){return a.asm.dynCall_iidiiii.apply(null,arguments)},a.dynCall_iii=function(){return a.asm.dynCall_iii.apply(null,arguments)}),Sn=a.dynCall_iiii=function(){return a.asm.dynCall_iiii.apply(null,arguments)},kn=a.dynCall_iiiii=function(){return a.asm.dynCall_iiiii.apply(null,arguments)},En=a.dynCall_iiiiii=function(){return a.asm.dynCall_iiiiii.apply(null,arguments)},Rn=a.dynCall_ji=function(){return a.asm.dynCall_ji.apply(null,arguments)},Tn=(a.dynCall_jiji=function(){return a.asm.dynCall_jiji.apply(null,arguments)},a.dynCall_v=function(){return a.asm.dynCall_v.apply(null,arguments)}),Dn=a.dynCall_vi=function(){return a.asm.dynCall_vi.apply(null,arguments)},Mn=a.dynCall_vii=function(){return a.asm.dynCall_vii.apply(null,arguments)},Ln=a.dynCall_viii=function(){return a.asm.dynCall_viii.apply(null,arguments)},On=a.dynCall_viiii=function(){return a.asm.dynCall_viiii.apply(null,arguments)},Pn=a.dynCall_viiiii=function(){return a.asm.dynCall_viiiii.apply(null,arguments)},In=(a.dynCall_viiiiii=function(){return a.asm.dynCall_viiiiii.apply(null,arguments)},a.dynCall_viiiiiii=function(){return a.asm.dynCall_viiiiiii.apply(null,arguments)}),Nn=(a.dynCall_viiiiiiiii=function(){return a.asm.dynCall_viiiiiiiii.apply(null,arguments)},a.dynCall_viiiiiiiiii=function(){return a.asm.dynCall_viiiiiiiiii.apply(null,arguments)},a.dynCall_viij=function(){return a.asm.dynCall_viij.apply(null,arguments)}),Fn=a.dynCall_viji=function(){return a.asm.dynCall_viji.apply(null,arguments)};function Un(n){this.name="ExitStatus",this.message="Program terminated with exit("+n+")",this.status=n}a.asm=pn,a.then=function(n){if(a.calledRun)n(a);else{var t=a.onRuntimeInitialized;a.onRuntimeInitialized=function(){t&&t(),n(a)}}return a},Un.prototype=new Error,Un.prototype.constructor=Un;function qn(n){function t(){a.calledRun||(a.calledRun=!0,A||(!0,N(U),N(q),a.onRuntimeInitialized&&a.onRuntimeInitialized(),function(){if(a.postRun)for("function"==typeof a.postRun&&(a.postRun=[a.postRun]);a.postRun.length;)W(a.postRun.shift());N(B)}()))}n=n||a.arguments,H>0||(!function(){if(a.preRun)for("function"==typeof a.preRun&&(a.preRun=[a.preRun]);a.preRun.length;)n=a.preRun.shift(),F.unshift(n);var n;N(F)}(),H>0||a.calledRun||(a.setStatus?(a.setStatus("Running..."),setTimeout(function(){setTimeout(function(){a.setStatus("")},1),t()},1)):t()))}G=function n(){a.calledRun||qn(),a.calledRun||(G=n)},a.run=qn;function Bn(n){throw a.onAbort&&a.onAbort(n),h(n+=""),v(n),A=!0,1,"abort("+n+"). Build with -s ASSERTIONS=1 for more info."}if(a.abort=Bn,a.preInit)for("function"==typeof a.preInit&&(a.preInit=[a.preInit]);a.preInit.length>0;)a.preInit.pop()();return a.noExitRuntime=!0,qn(),a.ready=new Promise(function(n,t){delete a.then,a.onAbort=function(n){t(n)},W(function(){n(a)})}),i}}();n.exports=i}).call(this,e(2),"/")},function(n,t,e){n.exports=e.p+"static/media/DiabloSpawn.9c2373b2.wasm"},function(n,t,e){(function(t,r){var i=function(){var n="undefined"!==typeof document&&document.currentScript?document.currentScript.src:void 0;return function(i){var o,a="undefined"!==typeof(i=i||{})?i:{},u={};for(o in a)a.hasOwnProperty(o)&&(u[o]=a[o]);a.arguments=[],a.thisProgram="./this.program",a.quit=function(n,t){throw t},a.preRun=[],a.postRun=[];var s,c,l=!1,_=!1;l="object"===typeof window,_="function"===typeof importScripts,s="object"===typeof t&&"object"===typeof t.versions&&"string"===typeof t.versions.node&&!l&&!_,c=!l&&!s&&!_;var f,p,d,m,y="";s?(y=r+"/",f=function(n,t){var r;return d||(d=e(3)),m||(m=e(4)),n=m.normalize(n),r=d.readFileSync(n),t?r:r.toString()},p=function(n){var t=f(n,!0);return t.buffer||(t=new Uint8Array(t)),j(t.buffer),t},t.argv.length>1&&(a.thisProgram=t.argv[1].replace(/\\/g,"/")),a.arguments=t.argv.slice(2),t.on("uncaughtException",function(n){if(!(n instanceof Un))throw n}),t.on("unhandledRejection",Bn),a.quit=function(n){t.exit(n)},a.inspect=function(){return"[Emscripten Module object]"}):c?("undefined"!=typeof read&&(f=function(n){return read(n)}),p=function(n){var t;return"function"===typeof readbuffer?new Uint8Array(readbuffer(n)):(j("object"===typeof(t=read(n,"binary"))),t)},"undefined"!=typeof scriptArgs?a.arguments=scriptArgs:"undefined"!=typeof arguments&&(a.arguments=arguments),"function"===typeof quit&&(a.quit=function(n){quit(n)})):(l||_)&&(_?y=self.location.href:document.currentScript&&(y=document.currentScript.src),n&&(y=n),y=0!==y.indexOf("blob:")?y.substr(0,y.lastIndexOf("/")+1):"",f=function(n){var t=new XMLHttpRequest;return t.open("GET",n,!1),t.send(null),t.responseText},_&&(p=function(n){var t=new XMLHttpRequest;return t.open("GET",n,!1),t.responseType="arraybuffer",t.send(null),new Uint8Array(t.response)}),function(n,t,e){var r=new XMLHttpRequest;r.open("GET",n,!0),r.responseType="arraybuffer",r.onload=function(){200==r.status||0==r.status&&r.response?t(r.response):e()},r.onerror=e,r.send(null)});var h=a.print||("undefined"!==typeof console?console.log.bind(console):"undefined"!==typeof print?print:null),v=a.printErr||("undefined"!==typeof printErr?printErr:"undefined"!==typeof console&&console.warn.bind(console)||h);for(o in u)u.hasOwnProperty(o)&&(a[o]=u[o]);u=void 0;var g={"f64-rem":function(n,t){return n%t},debugger:function(){}};new Array(0);var b,w=0,x=function(n){w=n};"object"!==typeof WebAssembly&&v("no native wasm support detected");var A=!1;function j(n,t){n||Bn("Assertion failed: "+t)}var C="undefined"!==typeof TextDecoder?new TextDecoder("utf8"):void 0;function S(n,t,e){for(var r=t+e,i=t;n[i]&&!(i>=r);)++i;if(i-t>16&&n.subarray&&C)return C.decode(n.subarray(t,i));for(var o="";t>10,56320|1023&c)}}else o+=String.fromCharCode((31&a)<<6|u)}else o+=String.fromCharCode(a)}return o}function k(n,t){return n?S(T,n,t):""}"undefined"!==typeof TextDecoder&&new TextDecoder("utf-16le");var E,R,T,D,M;function L(n,t){return n%t>0&&(n+=t-n%t),n}function O(){a.HEAP8=R=new Int8Array(E),a.HEAP16=new Int16Array(E),a.HEAP32=D=new Int32Array(E),a.HEAPU8=T=new Uint8Array(E),a.HEAPU16=new Uint16Array(E),a.HEAPU32=new Uint32Array(E),a.HEAPF32=M=new Float32Array(E),a.HEAPF64=new Float64Array(E)}var P=1850896,I=a.TOTAL_MEMORY||134217728;function N(n){for(;n.length>0;){var t=n.shift();if("function"!=typeof t){var e=t.func;"number"===typeof e?void 0===t.arg?a.dynCall_v(e):a.dynCall_vi(e,t.arg):e(void 0===t.arg?null:t.arg)}else t()}}I<5242880&&v("TOTAL_MEMORY should be larger than TOTAL_STACK, was "+I+"! (TOTAL_STACK=5242880)"),(b=a.wasmMemory?a.wasmMemory:new WebAssembly.Memory({initial:I/65536}))&&(E=b.buffer),I=E.byteLength,O(),D[P>>2]=7093808;var F=[],U=[],q=[],B=[];function W(n){B.unshift(n)}Math.abs,Math.cos,Math.sin,Math.tan,Math.acos,Math.asin,Math.atan,Math.atan2,Math.exp,Math.log,Math.sqrt,Math.ceil,Math.floor,Math.pow,Math.imul,Math.fround,Math.round,Math.min,Math.max,Math.clz32,Math.trunc;var H=0,z=null,G=null;a.preloadedImages={},a.preloadedAudios={};var X="data:application/octet-stream;base64,";function K(n){return String.prototype.startsWith?n.startsWith(X):0===n.indexOf(X)}var Y,Z="DiabloSpawn.wasm";function J(){try{if(a.wasmBinary)return new Uint8Array(a.wasmBinary);if(p)return p(Z);throw"both async and sync fetching of the wasm failed"}catch(v){Bn(v)}}function V(n){var t={env:n,global:{NaN:NaN,Infinity:1/0},"global.Math":Math,asm2wasm:g};function e(n,t){var e=n.exports;a.asm=e,function(n){if(H--,a.monitorRunDependencies&&a.monitorRunDependencies(H),0==H&&(null!==z&&(clearInterval(z),z=null),G)){var t=G;G=null,t()}}()}function r(n){e(n.instance)}function i(n){return(a.wasmBinary||!l&&!_||"function"!==typeof fetch?new Promise(function(n,t){n(J())}):fetch(Z,{credentials:"same-origin"}).then(function(n){if(!n.ok)throw"failed to load wasm binary file at '"+Z+"'";return n.arrayBuffer()}).catch(function(){return J()})).then(function(n){return WebAssembly.instantiate(n,t)}).then(n,function(n){v("failed to asynchronously prepare wasm: "+n),Bn(n)})}if(H++,a.monitorRunDependencies&&a.monitorRunDependencies(H),a.instantiateWasm)try{return a.instantiateWasm(t,e)}catch(o){return v("Module.instantiateWasm callback failed with error: "+o),!1}return function(){if(a.wasmBinary||"function"!==typeof WebAssembly.instantiateStreaming||K(Z)||"function"!==typeof fetch)return i(r);fetch(Z,{credentials:"same-origin"}).then(function(n){return WebAssembly.instantiateStreaming(n,t).then(r,function(n){v("wasm streaming compile failed: "+n),v("falling back to ArrayBuffer instantiation"),i(r)})})}(),{}}K(Z)||(Y=Z,Z=a.locateFile?a.locateFile(Y,y):y+Y),a.asm=function(n,t,e){return t.memory=b,t.table=new WebAssembly.Table({initial:1116,maximum:1116,element:"anyfunc"}),t.__memory_base=1024,t.__table_base=0,V(t)};var $=[function(n){self.DApi.current_save_id(n)}];U.push({func:function(){bn()}});var Q=1850912;var nn={},tn=[];function en(n){n&&nn[n].refcount++}function rn(n){if(!n||nn[n])return n;for(var t in nn)for(var e=+t,r=nn[e].adjusted,i=r.length,o=0;o>2],t.adjusted.push(n),0|(x(r[i]),n);return n=D[n>>2],0|(x(e),n)}a.___cxa_find_matching_catch=sn;var cn={buffers:[null,[],[]],printChar:function(n,t){var e=cn.buffers[n];0===t||10===t?((1===n?h:v)(S(e,0)),e.length=0):e.push(t)},varargs:0,get:function(n){return cn.varargs+=4,D[cn.varargs-4>>2]},getStr:function(){return k(cn.get())},get64:function(){var n=cn.get();cn.get();return n},getZero:function(){cn.get()}};function ln(){return R.length}function _n(n){n=L(n,65536);var t=E.byteLength;try{return-1!==b.grow((n-t)/65536)&&(E=b.buffer,!0)}catch(e){return!1}}var fn={abort:Bn,setTempRet0:x,getTempRet0:function(){return w},invoke_i:function(n){var t=xn();try{return An(n)}catch(e){if(wn(t),e!==e+0&&"longjmp"!==e)throw e;gn(1,0)}},invoke_ii:function(n,t){var e=xn();try{return jn(n,t)}catch(r){if(wn(e),r!==r+0&&"longjmp"!==r)throw r;gn(1,0)}},invoke_iii:function(n,t,e){var r=xn();try{return Cn(n,t,e)}catch(i){if(wn(r),i!==i+0&&"longjmp"!==i)throw i;gn(1,0)}},invoke_iiii:function(n,t,e,r){var i=xn();try{return Sn(n,t,e,r)}catch(o){if(wn(i),o!==o+0&&"longjmp"!==o)throw o;gn(1,0)}},invoke_iiiii:function(n,t,e,r,i){var o=xn();try{return kn(n,t,e,r,i)}catch(a){if(wn(o),a!==a+0&&"longjmp"!==a)throw a;gn(1,0)}},invoke_iiiiii:function(n,t,e,r,i,o){var a=xn();try{return En(n,t,e,r,i,o)}catch(u){if(wn(a),u!==u+0&&"longjmp"!==u)throw u;gn(1,0)}},invoke_ji:function(n,t){var e=xn();try{return Rn(n,t)}catch(r){if(wn(e),r!==r+0&&"longjmp"!==r)throw r;gn(1,0)}},invoke_v:function(n){var t=xn();try{Tn(n)}catch(e){if(wn(t),e!==e+0&&"longjmp"!==e)throw e;gn(1,0)}},invoke_vi:function(n,t){var e=xn();try{Dn(n,t)}catch(r){if(wn(e),r!==r+0&&"longjmp"!==r)throw r;gn(1,0)}},invoke_vii:function(n,t,e){var r=xn();try{Mn(n,t,e)}catch(i){if(wn(r),i!==i+0&&"longjmp"!==i)throw i;gn(1,0)}},invoke_viii:function(n,t,e,r){var i=xn();try{Ln(n,t,e,r)}catch(o){if(wn(i),o!==o+0&&"longjmp"!==o)throw o;gn(1,0)}},invoke_viiii:function(n,t,e,r,i){var o=xn();try{On(n,t,e,r,i)}catch(a){if(wn(o),a!==a+0&&"longjmp"!==a)throw a;gn(1,0)}},invoke_viiiii:function(n,t,e,r,i,o){var a=xn();try{Pn(n,t,e,r,i,o)}catch(u){if(wn(a),u!==u+0&&"longjmp"!==u)throw u;gn(1,0)}},invoke_viiiiiii:function(n,t,e,r,i,o,a,u){var s=xn();try{In(n,t,e,r,i,o,a,u)}catch(c){if(wn(s),c!==c+0&&"longjmp"!==c)throw c;gn(1,0)}},invoke_viij:function(n,t,e,r,i){var o=xn();try{Nn(n,t,e,r,i)}catch(a){if(wn(o),a!==a+0&&"longjmp"!==a)throw a;gn(1,0)}},invoke_viji:function(n,t,e,r,i){var o=xn();try{Fn(n,t,e,r,i)}catch(a){if(wn(o),a!==a+0&&"longjmp"!==a)throw a;gn(1,0)}},___assert_fail:function(n,t,e,r){Bn("Assertion failed: "+k(n)+", at: "+[t?k(t):"unknown filename",e,r?k(r):"unknown function"])},___cxa_allocate_exception:function(n){return vn(n)},___cxa_begin_catch:function(n){var t=nn[n];return t&&!t.caught&&(t.caught=!0,dn.uncaught_exceptions--),t&&(t.rethrown=!1),tn.push(n),en(rn(n)),n},___cxa_end_catch:function(){gn(0);var n=tn.pop();n&&(un(rn(n)),on=0)},___cxa_find_matching_catch:sn,___cxa_find_matching_catch_2:function(n,t){return sn(n,t)},___cxa_find_matching_catch_3:function(n,t,e){return sn(n,t,e)},___cxa_free_exception:an,___cxa_get_exception_ptr:function(n){return n},___cxa_pure_virtual:function(){throw A=!0,"Pure virtual function called!"},___cxa_throw:function(n,t,e){throw nn[n]={ptr:n,adjusted:[n],type:t,destructor:e,refcount:0,caught:!1,rethrown:!1},on=n,"uncaught_exception"in dn?dn.uncaught_exceptions++:dn.uncaught_exceptions=1,n},___cxa_uncaught_exceptions:function(){return dn.uncaught_exceptions},___exception_addRef:en,___exception_deAdjust:rn,___exception_decRef:un,___gxx_personality_v0:function(){},___lock:function(){},___resumeException:function(n){throw on||(on=n),n},___setErrNo:function(n){return a.___errno_location&&(D[a.___errno_location()>>2]=n),n},___syscall140:function(n,t){cn.varargs=t;try{return cn.getStreamFromFD(),cn.get(),cn.get(),cn.get(),cn.get(),0}catch(e){return"undefined"!==typeof FS&&e instanceof FS.ErrnoError||Bn(e),-e.errno}},___syscall146:function(n,t){cn.varargs=t;try{for(var e=cn.get(),r=cn.get(),i=cn.get(),o=0,a=0;a>2],s=D[r+(8*a+4)>>2],c=0;c2147418112)return!1;for(var e=Math.max(t,16777216);e>2]=t),t},_trace_pop:function(){self.WASM_TRACE&&self.WASM_TRACE.pop()},_trace_push:function(n){var t=T.indexOf(0,n),e=String.fromCharCode.apply(null,T.subarray(n,t));console.log(e),self.WASM_TRACE=self.WASM_TRACE||[],self.WASM_TRACE.push(e)},abortOnCannotGrowMemory:function(n){Bn("OOM")},emscripten_realloc_buffer:_n,flush_NO_FILESYSTEM:function(){var n=a._fflush;n&&n(0);var t=cn.buffers;t[1].length&&cn.printChar(1,10),t[2].length&&cn.printChar(2,10)},tempDoublePtr:Q,DYNAMICTOP_PTR:P},pn=a.asm({},fn,E);a.asm=pn;a._DApi_AllocPacket=function(){return a.asm._DApi_AllocPacket.apply(null,arguments)},a._DApi_Char=function(){return a.asm._DApi_Char.apply(null,arguments)},a._DApi_Init=function(){return a.asm._DApi_Init.apply(null,arguments)},a._DApi_Key=function(){return a.asm._DApi_Key.apply(null,arguments)},a._DApi_Mouse=function(){return a.asm._DApi_Mouse.apply(null,arguments)},a._DApi_Render=function(){return a.asm._DApi_Render.apply(null,arguments)},a._DApi_SyncText=function(){return a.asm._DApi_SyncText.apply(null,arguments)},a._DApi_SyncTextPtr=function(){return a.asm._DApi_SyncTextPtr.apply(null,arguments)},a._SNet_InitWebsocket=function(){return a.asm._SNet_InitWebsocket.apply(null,arguments)},a._SNet_WebsocketStatus=function(){return a.asm._SNet_WebsocketStatus.apply(null,arguments)};var dn=a.__ZSt18uncaught_exceptionv=function(){return a.asm.__ZSt18uncaught_exceptionv.apply(null,arguments)},mn=a.___cxa_can_catch=function(){return a.asm.___cxa_can_catch.apply(null,arguments)},yn=a.___cxa_is_pointer_type=function(){return a.asm.___cxa_is_pointer_type.apply(null,arguments)},hn=(a.___em_js___api_close_keyboard=function(){return a.asm.___em_js___api_close_keyboard.apply(null,arguments)},a.___em_js___api_open_keyboard=function(){return a.asm.___em_js___api_open_keyboard.apply(null,arguments)},a.___em_js__api_create_sound=function(){return a.asm.___em_js__api_create_sound.apply(null,arguments)},a.___em_js__api_create_sound_float=function(){return a.asm.___em_js__api_create_sound_float.apply(null,arguments)},a.___em_js__api_delete_sound=function(){return a.asm.___em_js__api_delete_sound.apply(null,arguments)},a.___em_js__api_draw_begin=function(){return a.asm.___em_js__api_draw_begin.apply(null,arguments)},a.___em_js__api_draw_belt=function(){return a.asm.___em_js__api_draw_belt.apply(null,arguments)},a.___em_js__api_draw_blit=function(){return a.asm.___em_js__api_draw_blit.apply(null,arguments)},a.___em_js__api_draw_clip_text=function(){return a.asm.___em_js__api_draw_clip_text.apply(null,arguments)},a.___em_js__api_draw_end=function(){return a.asm.___em_js__api_draw_end.apply(null,arguments)},a.___em_js__api_draw_text=function(){return a.asm.___em_js__api_draw_text.apply(null,arguments)},a.___em_js__api_duplicate_sound=function(){return a.asm.___em_js__api_duplicate_sound.apply(null,arguments)},a.___em_js__api_exit_game=function(){return a.asm.___em_js__api_exit_game.apply(null,arguments)},a.___em_js__api_play_sound=function(){return a.asm.___em_js__api_play_sound.apply(null,arguments)},a.___em_js__api_set_cursor=function(){return a.asm.___em_js__api_set_cursor.apply(null,arguments)},a.___em_js__api_set_volume=function(){return a.asm.___em_js__api_set_volume.apply(null,arguments)},a.___em_js__api_stop_sound=function(){return a.asm.___em_js__api_stop_sound.apply(null,arguments)},a.___em_js__api_use_websocket=function(){return a.asm.___em_js__api_use_websocket.apply(null,arguments)},a.___em_js__api_websocket_closed=function(){return a.asm.___em_js__api_websocket_closed.apply(null,arguments)},a.___em_js__api_websocket_send=function(){return a.asm.___em_js__api_websocket_send.apply(null,arguments)},a.___em_js__exit_error=function(){return a.asm.___em_js__exit_error.apply(null,arguments)},a.___em_js__get_file_contents=function(){return a.asm.___em_js__get_file_contents.apply(null,arguments)},a.___em_js__get_file_size=function(){return a.asm.___em_js__get_file_size.apply(null,arguments)},a.___em_js__put_file_contents=function(){return a.asm.___em_js__put_file_contents.apply(null,arguments)},a.___em_js__remove_file=function(){return a.asm.___em_js__remove_file.apply(null,arguments)},a.___em_js__show_alert=function(){return a.asm.___em_js__show_alert.apply(null,arguments)},a.___em_js__trace_pop=function(){return a.asm.___em_js__trace_pop.apply(null,arguments)},a.___em_js__trace_push=function(){return a.asm.___em_js__trace_push.apply(null,arguments)},a._emscripten_replace_memory=function(){return a.asm._emscripten_replace_memory.apply(null,arguments)},a._free=function(){return a.asm._free.apply(null,arguments)}),vn=(a._llvm_bswap_i32=function(){return a.asm._llvm_bswap_i32.apply(null,arguments)},a._malloc=function(){return a.asm._malloc.apply(null,arguments)}),gn=(a._memcpy=function(){return a.asm._memcpy.apply(null,arguments)},a._memmove=function(){return a.asm._memmove.apply(null,arguments)},a._memset=function(){return a.asm._memset.apply(null,arguments)},a._sbrk=function(){return a.asm._sbrk.apply(null,arguments)},a._setThrew=function(){return a.asm._setThrew.apply(null,arguments)}),bn=(a.establishStackSpace=function(){return a.asm.establishStackSpace.apply(null,arguments)},a.globalCtors=function(){return a.asm.globalCtors.apply(null,arguments)}),wn=(a.stackAlloc=function(){return a.asm.stackAlloc.apply(null,arguments)},a.stackRestore=function(){return a.asm.stackRestore.apply(null,arguments)}),xn=a.stackSave=function(){return a.asm.stackSave.apply(null,arguments)},An=a.dynCall_i=function(){return a.asm.dynCall_i.apply(null,arguments)},jn=a.dynCall_ii=function(){return a.asm.dynCall_ii.apply(null,arguments)},Cn=(a.dynCall_iidiiii=function(){return a.asm.dynCall_iidiiii.apply(null,arguments)},a.dynCall_iii=function(){return a.asm.dynCall_iii.apply(null,arguments)}),Sn=a.dynCall_iiii=function(){return a.asm.dynCall_iiii.apply(null,arguments)},kn=a.dynCall_iiiii=function(){return a.asm.dynCall_iiiii.apply(null,arguments)},En=a.dynCall_iiiiii=function(){return a.asm.dynCall_iiiiii.apply(null,arguments)},Rn=a.dynCall_ji=function(){return a.asm.dynCall_ji.apply(null,arguments)},Tn=(a.dynCall_jiji=function(){return a.asm.dynCall_jiji.apply(null,arguments)},a.dynCall_v=function(){return a.asm.dynCall_v.apply(null,arguments)}),Dn=a.dynCall_vi=function(){return a.asm.dynCall_vi.apply(null,arguments)},Mn=a.dynCall_vii=function(){return a.asm.dynCall_vii.apply(null,arguments)},Ln=a.dynCall_viii=function(){return a.asm.dynCall_viii.apply(null,arguments)},On=a.dynCall_viiii=function(){return a.asm.dynCall_viiii.apply(null,arguments)},Pn=a.dynCall_viiiii=function(){return a.asm.dynCall_viiiii.apply(null,arguments)},In=(a.dynCall_viiiiii=function(){return a.asm.dynCall_viiiiii.apply(null,arguments)},a.dynCall_viiiiiii=function(){return a.asm.dynCall_viiiiiii.apply(null,arguments)}),Nn=(a.dynCall_viiiiiiiii=function(){return a.asm.dynCall_viiiiiiiii.apply(null,arguments)},a.dynCall_viiiiiiiiii=function(){return a.asm.dynCall_viiiiiiiiii.apply(null,arguments)},a.dynCall_viij=function(){return a.asm.dynCall_viij.apply(null,arguments)}),Fn=a.dynCall_viji=function(){return a.asm.dynCall_viji.apply(null,arguments)};function Un(n){this.name="ExitStatus",this.message="Program terminated with exit("+n+")",this.status=n}a.asm=pn,a.then=function(n){if(a.calledRun)n(a);else{var t=a.onRuntimeInitialized;a.onRuntimeInitialized=function(){t&&t(),n(a)}}return a},Un.prototype=new Error,Un.prototype.constructor=Un;function qn(n){function t(){a.calledRun||(a.calledRun=!0,A||(!0,N(U),N(q),a.onRuntimeInitialized&&a.onRuntimeInitialized(),function(){if(a.postRun)for("function"==typeof a.postRun&&(a.postRun=[a.postRun]);a.postRun.length;)W(a.postRun.shift());N(B)}()))}n=n||a.arguments,H>0||(!function(){if(a.preRun)for("function"==typeof a.preRun&&(a.preRun=[a.preRun]);a.preRun.length;)n=a.preRun.shift(),F.unshift(n);var n;N(F)}(),H>0||a.calledRun||(a.setStatus?(a.setStatus("Running..."),setTimeout(function(){setTimeout(function(){a.setStatus("")},1),t()},1)):t()))}G=function n(){a.calledRun||qn(),a.calledRun||(G=n)},a.run=qn;function Bn(n){throw a.onAbort&&a.onAbort(n),h(n+=""),v(n),A=!0,1,"abort("+n+"). Build with -s ASSERTIONS=1 for more info."}if(a.abort=Bn,a.preInit)for("function"==typeof a.preInit&&(a.preInit=[a.preInit]);a.preInit.length>0;)a.preInit.pop()();return a.noExitRuntime=!0,qn(),a.ready=new Promise(function(n,t){delete a.then,a.onAbort=function(n){t(n)},W(function(){n(a)})}),i}}();n.exports=i}).call(this,e(2),"/")},function(n,t,e){n.exports=e(19)},function(n,t,e){var r=function(n){"use strict";var t,e=Object.prototype,r=e.hasOwnProperty,i="function"===typeof Symbol?Symbol:{},o=i.iterator||"@@iterator",a=i.asyncIterator||"@@asyncIterator",u=i.toStringTag||"@@toStringTag";function s(n,t,e,r){var i=t&&t.prototype instanceof m?t:m,o=Object.create(i.prototype),a=new k(r||[]);return o._invoke=function(n,t,e){var r=l;return function(i,o){if(r===f)throw new Error("Generator is already running");if(r===p){if("throw"===i)throw o;return R()}for(e.method=i,e.arg=o;;){var a=e.delegate;if(a){var u=j(a,e);if(u){if(u===d)continue;return u}}if("next"===e.method)e.sent=e._sent=e.arg;else if("throw"===e.method){if(r===l)throw r=p,e.arg;e.dispatchException(e.arg)}else"return"===e.method&&e.abrupt("return",e.arg);r=f;var s=c(n,t,e);if("normal"===s.type){if(r=e.done?p:_,s.arg===d)continue;return{value:s.arg,done:e.done}}"throw"===s.type&&(r=p,e.method="throw",e.arg=s.arg)}}}(n,e,a),o}function c(n,t,e){try{return{type:"normal",arg:n.call(t,e)}}catch(r){return{type:"throw",arg:r}}}n.wrap=s;var l="suspendedStart",_="suspendedYield",f="executing",p="completed",d={};function m(){}function y(){}function h(){}var v={};v[o]=function(){return this};var g=Object.getPrototypeOf,b=g&&g(g(E([])));b&&b!==e&&r.call(b,o)&&(v=b);var w=h.prototype=m.prototype=Object.create(v);function x(n){["next","throw","return"].forEach(function(t){n[t]=function(n){return this._invoke(t,n)}})}function A(n){var t;this._invoke=function(e,i){function o(){return new Promise(function(t,o){!function t(e,i,o,a){var u=c(n[e],n,i);if("throw"!==u.type){var s=u.arg,l=s.value;return l&&"object"===typeof l&&r.call(l,"__await")?Promise.resolve(l.__await).then(function(n){t("next",n,o,a)},function(n){t("throw",n,o,a)}):Promise.resolve(l).then(function(n){s.value=n,o(s)},function(n){return t("throw",n,o,a)})}a(u.arg)}(e,i,t,o)})}return t=t?t.then(o,o):o()}}function j(n,e){var r=n.iterator[e.method];if(r===t){if(e.delegate=null,"throw"===e.method){if(n.iterator.return&&(e.method="return",e.arg=t,j(n,e),"throw"===e.method))return d;e.method="throw",e.arg=new TypeError("The iterator does not provide a 'throw' method")}return d}var i=c(r,n.iterator,e.arg);if("throw"===i.type)return e.method="throw",e.arg=i.arg,e.delegate=null,d;var o=i.arg;return o?o.done?(e[n.resultName]=o.value,e.next=n.nextLoc,"return"!==e.method&&(e.method="next",e.arg=t),e.delegate=null,d):o:(e.method="throw",e.arg=new TypeError("iterator result is not an object"),e.delegate=null,d)}function C(n){var t={tryLoc:n[0]};1 in n&&(t.catchLoc=n[1]),2 in n&&(t.finallyLoc=n[2],t.afterLoc=n[3]),this.tryEntries.push(t)}function S(n){var t=n.completion||{};t.type="normal",delete t.arg,n.completion=t}function k(n){this.tryEntries=[{tryLoc:"root"}],n.forEach(C,this),this.reset(!0)}function E(n){if(n){var e=n[o];if(e)return e.call(n);if("function"===typeof n.next)return n;if(!isNaN(n.length)){var i=-1,a=function e(){for(;++i=0;--o){var a=this.tryEntries[o],u=a.completion;if("root"===a.tryLoc)return i("end");if(a.tryLoc<=this.prev){var s=r.call(a,"catchLoc"),c=r.call(a,"finallyLoc");if(s&&c){if(this.prev=0;--e){var i=this.tryEntries[e];if(i.tryLoc<=this.prev&&r.call(i,"finallyLoc")&&this.prev=0;--t){var e=this.tryEntries[t];if(e.finallyLoc===n)return this.complete(e.completion,e.afterLoc),S(e),d}},catch:function(n){for(var t=this.tryEntries.length-1;t>=0;--t){var e=this.tryEntries[t];if(e.tryLoc===n){var r=e.completion;if("throw"===r.type){var i=r.arg;S(e)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(n,e,r){return this.delegate={iterator:E(n),resultName:e,nextLoc:r},"next"===this.method&&(this.arg=t),d}},n}(n.exports);try{regeneratorRuntime=r}catch(i){Function("r","regeneratorRuntime = r")(r)}},function(n,t,e){"use strict";var r=e(0),i=e(5),o=e(21),a=e(11);function u(n){var t=new o(n),e=i(o.prototype.request,t);return r.extend(e,o.prototype,t),r.extend(e,t),e}var s=u(e(8));s.Axios=o,s.create=function(n){return u(a(s.defaults,n))},s.Cancel=e(12),s.CancelToken=e(33),s.isCancel=e(7),s.all=function(n){return Promise.all(n)},s.spread=e(34),n.exports=s,n.exports.default=s},function(n,t){n.exports=function(n){return null!=n&&null!=n.constructor&&"function"===typeof n.constructor.isBuffer&&n.constructor.isBuffer(n)}},function(n,t,e){"use strict";var r=e(0),i=e(6),o=e(22),a=e(23),u=e(11);function s(n){this.defaults=n,this.interceptors={request:new o,response:new o}}s.prototype.request=function(n){"string"===typeof n?(n=arguments[1]||{}).url=arguments[0]:n=n||{},(n=u(this.defaults,n)).method=n.method?n.method.toLowerCase():"get";var t=[a,void 0],e=Promise.resolve(n);for(this.interceptors.request.forEach(function(n){t.unshift(n.fulfilled,n.rejected)}),this.interceptors.response.forEach(function(n){t.push(n.fulfilled,n.rejected)});t.length;)e=e.then(t.shift(),t.shift());return e},s.prototype.getUri=function(n){return n=u(this.defaults,n),i(n.url,n.params,n.paramsSerializer).replace(/^\?/,"")},r.forEach(["delete","get","head","options"],function(n){s.prototype[n]=function(t,e){return this.request(r.merge(e||{},{method:n,url:t}))}}),r.forEach(["post","put","patch"],function(n){s.prototype[n]=function(t,e,i){return this.request(r.merge(i||{},{method:n,url:t,data:e}))}}),n.exports=s},function(n,t,e){"use strict";var r=e(0);function i(){this.handlers=[]}i.prototype.use=function(n,t){return this.handlers.push({fulfilled:n,rejected:t}),this.handlers.length-1},i.prototype.eject=function(n){this.handlers[n]&&(this.handlers[n]=null)},i.prototype.forEach=function(n){r.forEach(this.handlers,function(t){null!==t&&n(t)})},n.exports=i},function(n,t,e){"use strict";var r=e(0),i=e(24),o=e(7),a=e(8),u=e(31),s=e(32);function c(n){n.cancelToken&&n.cancelToken.throwIfRequested()}n.exports=function(n){return c(n),n.baseURL&&!u(n.url)&&(n.url=s(n.baseURL,n.url)),n.headers=n.headers||{},n.data=i(n.data,n.headers,n.transformRequest),n.headers=r.merge(n.headers.common||{},n.headers[n.method]||{},n.headers||{}),r.forEach(["delete","get","head","post","put","patch","common"],function(t){delete n.headers[t]}),(n.adapter||a.adapter)(n).then(function(t){return c(n),t.data=i(t.data,t.headers,n.transformResponse),t},function(t){return o(t)||(c(n),t&&t.response&&(t.response.data=i(t.response.data,t.response.headers,n.transformResponse))),Promise.reject(t)})}},function(n,t,e){"use strict";var r=e(0);n.exports=function(n,t,e){return r.forEach(e,function(e){n=e(n,t)}),n}},function(n,t,e){"use strict";var r=e(0);n.exports=function(n,t){r.forEach(n,function(e,r){r!==t&&r.toUpperCase()===t.toUpperCase()&&(n[t]=e,delete n[r])})}},function(n,t,e){"use strict";var r=e(10);n.exports=function(n,t,e){var i=e.config.validateStatus;!i||i(e.status)?n(e):t(r("Request failed with status code "+e.status,e.config,null,e.request,e))}},function(n,t,e){"use strict";n.exports=function(n,t,e,r,i){return n.config=t,e&&(n.code=e),n.request=r,n.response=i,n.isAxiosError=!0,n.toJSON=function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:this.config,code:this.code}},n}},function(n,t,e){"use strict";var r=e(0),i=["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"];n.exports=function(n){var t,e,o,a={};return n?(r.forEach(n.split("\n"),function(n){if(o=n.indexOf(":"),t=r.trim(n.substr(0,o)).toLowerCase(),e=r.trim(n.substr(o+1)),t){if(a[t]&&i.indexOf(t)>=0)return;a[t]="set-cookie"===t?(a[t]?a[t]:[]).concat([e]):a[t]?a[t]+", "+e:e}}),a):a}},function(n,t,e){"use strict";var r=e(0);n.exports=r.isStandardBrowserEnv()?function(){var n,t=/(msie|trident)/i.test(navigator.userAgent),e=document.createElement("a");function i(n){var r=n;return t&&(e.setAttribute("href",r),r=e.href),e.setAttribute("href",r),{href:e.href,protocol:e.protocol?e.protocol.replace(/:$/,""):"",host:e.host,search:e.search?e.search.replace(/^\?/,""):"",hash:e.hash?e.hash.replace(/^#/,""):"",hostname:e.hostname,port:e.port,pathname:"/"===e.pathname.charAt(0)?e.pathname:"/"+e.pathname}}return n=i(window.location.href),function(t){var e=r.isString(t)?i(t):t;return e.protocol===n.protocol&&e.host===n.host}}():function(){return!0}},function(n,t,e){"use strict";var r=e(0);n.exports=r.isStandardBrowserEnv()?{write:function(n,t,e,i,o,a){var u=[];u.push(n+"="+encodeURIComponent(t)),r.isNumber(e)&&u.push("expires="+new Date(e).toGMTString()),r.isString(i)&&u.push("path="+i),r.isString(o)&&u.push("domain="+o),!0===a&&u.push("secure"),document.cookie=u.join("; ")},read:function(n){var t=document.cookie.match(new RegExp("(^|;\\s*)("+n+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove:function(n){this.write(n,"",Date.now()-864e5)}}:{write:function(){},read:function(){return null},remove:function(){}}},function(n,t,e){"use strict";n.exports=function(n){return/^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(n)}},function(n,t,e){"use strict";n.exports=function(n,t){return t?n.replace(/\/+$/,"")+"/"+t.replace(/^\/+/,""):n}},function(n,t,e){"use strict";var r=e(12);function i(n){if("function"!==typeof n)throw new TypeError("executor must be a function.");var t;this.promise=new Promise(function(n){t=n});var e=this;n(function(n){e.reason||(e.reason=new r(n),t(e.reason))})}i.prototype.throwIfRequested=function(){if(this.reason)throw this.reason},i.source=function(){var n;return{token:new i(function(t){n=t}),cancel:n}},n.exports=i},function(n,t,e){"use strict";n.exports=function(n){return function(t){return n.apply(null,t)}}},function(n,t,e){"use strict";function r(n,t){return function(n){if(Array.isArray(n))return n}(n)||function(n,t){var e=[],r=!0,i=!1,o=void 0;try{for(var a,u=n[Symbol.iterator]();!(r=(a=u.next()).done)&&(e.push(a.value),!t||e.length!==t);r=!0);}catch(s){i=!0,o=s}finally{try{r||null==u.return||u.return()}finally{if(i)throw o}}return e}(n,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}e.r(t);var i=e(1),o=e.n(i);function a(n){return function(n){if(Array.isArray(n)){for(var t=0,e=new Array(n.length);t>8;var e=3,o=!0,a=!1,u=void 0;try{for(var s,c=i[Symbol.iterator]();!(o=(s=c.next()).done);o=!0){var l=s.value;t.set(l,e),e+=l.byteLength}}catch(_){a=!0,u=_}finally{try{o||null==c.return||c.return()}finally{if(a)throw u}}r.send(t),i.length=0}},100):r.close(),e(0)},function(n){e(n)}),a}var x=1466809,A=1337416,j=self,C=null,S=null,k=null,E=null,R=null,T=null,D=!1,M=null,L=1<<20,O=function(){function n(t){!function(n,t){if(!(n instanceof t))throw new TypeError("Cannot call a class as a function")}(this,n);var e=new XMLHttpRequest;e.open("HEAD",t,!1),e.send(),(e.status<200||e.status>=300)&&j.postMessage({action:"error",error:"Failed to load remote file"}),this.byteLength=parseInt(e.getResponseHeader("Content-Length")),this.url=t,this.buffer=new Uint8Array(this.byteLength),this.chunks=new Uint8Array(this.byteLength+L-1>>20|0)}var t,e,r;return t=n,(e=[{key:"subarray",value:function(n,t){for(var e=n/L|0,r=(t+L-1)/L|0,i=r,o=e,a=e;a=300)j.postMessage({action:"error",error:"Failed to load remote file"});else{var s,c=u.getResponseHeader("Content-Range"),l=0;c&&(s=c.match(/bytes (\d+)-(\d+)\/(\d+)/))&&(l=parseInt(s[1])),this.buffer.set(new Uint8Array(u.response),l),e=(l+L-1)/L|0,r=(l+u.response.byteLength+L-1)/L|0;for(var _=e;_=0?D?"spawn".concat(n,".sv"):"single_".concat(n,".sv"):null})},get_file_size:function(n){var t=E.get(n.toLowerCase());return t?t.byteLength:0},get_file_contents:function(n,t,e){var r=E.get(n.toLowerCase());r&&t.set(r.subarray(e,e+t.byteLength))},put_file_contents:function(n,t){n=n.toLowerCase(),E.set(n,t),j.postMessage({action:"fs",func:"update",params:[n,t]})},remove_file:function(n){n=n.toLowerCase(),E.delete(n),j.postMessage({action:"fs",func:"delete",params:[n]})},set_cursor:function(n,t){j.postMessage({action:"cursor",x:n,y:t})},open_keyboard:function(){for(var n=arguments.length,t=new Array(n),e=0;e>16&255,o=r>>8&255,a=255&r;S.fillStyle="rgb(".concat(i,", ").concat(o,", ").concat(a,")"),S.fillText(e,n,t+22)},draw_end:function(){S.restore();var n=C.transferToImageBitmap(),t=[n];T&&t.push(T.buffer),j.postMessage({action:"render",batch:{bitmap:n,belt:T}},t),T=null},draw_belt:function(n){T=n.slice()}},F=null,U=null,q=0,B=0;["create_sound_raw","create_sound","duplicate_sound"].forEach(function(n){P[n]=function(){for(var t=arguments.length,e=new Array(t),r=0;r=q?F.push({func:n,params:e}):j.postMessage({action:"audio",func:n,params:e})}});var W=null;P.websocket_send=function(n){M?M.send(n):W?W.push(n.slice().buffer):j.postMessage({action:"packet",buffer:n})},j.DApi=P;var H=null;function z(n){try{n()}catch(t){j.postMessage({action:"error",error:t.toString(),stack:t.stack})}}function G(n){for(var t=arguments.length,e=new Array(t>1?t-1:0),r=1;r1)for(var e=1;e=0;r--){var i=n[r];"."===i?n.splice(r,1):".."===i?(n.splice(r,1),e++):e&&(n.splice(r,1),e--)}if(t)for(;e--;e)n.unshift("..");return n}function r(n,t){if(n.filter)return n.filter(t);for(var e=[],r=0;r=-1&&!i;o--){var a=o>=0?arguments[o]:n.cwd();if("string"!==typeof a)throw new TypeError("Arguments to path.resolve must be strings");a&&(t=a+"/"+t,i="/"===a.charAt(0))}return(i?"/":"")+(t=e(r(t.split("/"),function(n){return!!n}),!i).join("/"))||"."},t.normalize=function(n){var o=t.isAbsolute(n),a="/"===i(n,-1);return(n=e(r(n.split("/"),function(n){return!!n}),!o).join("/"))||o||(n="."),n&&a&&(n+="/"),(o?"/":"")+n},t.isAbsolute=function(n){return"/"===n.charAt(0)},t.join=function(){var n=Array.prototype.slice.call(arguments,0);return t.normalize(r(n,function(n,t){if("string"!==typeof n)throw new TypeError("Arguments to path.join must be strings");return n}).join("/"))},t.relative=function(n,e){function r(n){for(var t=0;t=0&&""===n[e];e--);return t>e?[]:n.slice(t,e-t+1)}n=t.resolve(n).substr(1),e=t.resolve(e).substr(1);for(var i=r(n.split("/")),o=r(e.split("/")),a=Math.min(i.length,o.length),u=a,s=0;s=1;--o)if(47===(t=n.charCodeAt(o))){if(!i){r=o;break}}else i=!1;return-1===r?e?"/":".":e&&1===r?"/":n.slice(0,r)},t.basename=function(n,t){var e=function(n){"string"!==typeof n&&(n+="");var t,e=0,r=-1,i=!0;for(t=n.length-1;t>=0;--t)if(47===n.charCodeAt(t)){if(!i){e=t+1;break}}else-1===r&&(i=!1,r=t+1);return-1===r?"":n.slice(e,r)}(n);return t&&e.substr(-1*t.length)===t&&(e=e.substr(0,e.length-t.length)),e},t.extname=function(n){"string"!==typeof n&&(n+="");for(var t=-1,e=0,r=-1,i=!0,o=0,a=n.length-1;a>=0;--a){var u=n.charCodeAt(a);if(47!==u)-1===r&&(i=!1,r=a+1),46===u?-1===t?t=a:1!==o&&(o=1):-1!==t&&(o=-1);else if(!i){e=a+1;break}}return-1===t||-1===r||0===o||1===o&&t===r-1&&t===e+1?"":n.slice(t,r)};var i="b"==="ab".substr(-1)?function(n,t,e){return n.substr(t,e)}:function(n,t,e){return t<0&&(t=n.length+t),n.substr(t,e)}}).call(this,e(2))},function(n,t,e){"use strict";n.exports=function(n,t){return function(){for(var e=new Array(arguments.length),r=0;r=200&&n<300},headers:{common:{Accept:"application/json, text/plain, */*"}}};r.forEach(["delete","get","head"],function(n){u.headers[n]={}}),r.forEach(["post","put","patch"],function(n){u.headers[n]=r.merge(o)}),n.exports=u}).call(this,e(2))},function(n,t,e){"use strict";var r=e(0),i=e(26),o=e(6),a=e(28),u=e(29),s=e(10);n.exports=function(n){return new Promise(function(t,c){var l=n.data,_=n.headers;r.isFormData(l)&&delete _["Content-Type"];var f=new XMLHttpRequest;if(n.auth){var p=n.auth.username||"",d=n.auth.password||"";_.Authorization="Basic "+btoa(p+":"+d)}if(f.open(n.method.toUpperCase(),o(n.url,n.params,n.paramsSerializer),!0),f.timeout=n.timeout,f.onreadystatechange=function(){if(f&&4===f.readyState&&(0!==f.status||f.responseURL&&0===f.responseURL.indexOf("file:"))){var e="getAllResponseHeaders"in f?a(f.getAllResponseHeaders()):null,r={data:n.responseType&&"text"!==n.responseType?f.response:f.responseText,status:f.status,statusText:f.statusText,headers:e,config:n,request:f};i(t,c,r),f=null}},f.onabort=function(){f&&(c(s("Request aborted",n,"ECONNABORTED",f)),f=null)},f.onerror=function(){c(s("Network Error",n,null,f)),f=null},f.ontimeout=function(){c(s("timeout of "+n.timeout+"ms exceeded",n,"ECONNABORTED",f)),f=null},r.isStandardBrowserEnv()){var m=e(30),y=(n.withCredentials||u(n.url))&&n.xsrfCookieName?m.read(n.xsrfCookieName):void 0;y&&(_[n.xsrfHeaderName]=y)}if("setRequestHeader"in f&&r.forEach(_,function(n,t){"undefined"===typeof l&&"content-type"===t.toLowerCase()?delete _[t]:f.setRequestHeader(t,n)}),n.withCredentials&&(f.withCredentials=!0),n.responseType)try{f.responseType=n.responseType}catch(h){if("json"!==n.responseType)throw h}"function"===typeof n.onDownloadProgress&&f.addEventListener("progress",n.onDownloadProgress),"function"===typeof n.onUploadProgress&&f.upload&&f.upload.addEventListener("progress",n.onUploadProgress),n.cancelToken&&n.cancelToken.promise.then(function(n){f&&(f.abort(),c(n),f=null)}),void 0===l&&(l=null),f.send(l)})}},function(n,t,e){"use strict";var r=e(27);n.exports=function(n,t,e,i,o){var a=new Error(n);return r(a,t,e,i,o)}},function(n,t,e){"use strict";var r=e(0);n.exports=function(n,t){t=t||{};var e={};return r.forEach(["url","method","params","data"],function(n){"undefined"!==typeof t[n]&&(e[n]=t[n])}),r.forEach(["headers","auth","proxy"],function(i){r.isObject(t[i])?e[i]=r.deepMerge(n[i],t[i]):"undefined"!==typeof t[i]?e[i]=t[i]:r.isObject(n[i])?e[i]=r.deepMerge(n[i]):"undefined"!==typeof n[i]&&(e[i]=n[i])}),r.forEach(["baseURL","transformRequest","transformResponse","paramsSerializer","timeout","withCredentials","adapter","responseType","xsrfCookieName","xsrfHeaderName","onUploadProgress","onDownloadProgress","maxContentLength","validateStatus","maxRedirects","httpAgent","httpsAgent","cancelToken","socketPath"],function(r){"undefined"!==typeof t[r]?e[r]=t[r]:"undefined"!==typeof n[r]&&(e[r]=n[r])}),e}},function(n,t,e){"use strict";function r(n){this.message=n}r.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")},r.prototype.__CANCEL__=!0,n.exports=r},function(n,t,e){n.exports=e.p+"static/media/Diablo.570bd59a.wasm"},function(n,t,e){(function(t,r){var i=function(){var n="undefined"!==typeof document&&document.currentScript?document.currentScript.src:void 0;return function(i){var o,a="undefined"!==typeof(i=i||{})?i:{},u={};for(o in a)a.hasOwnProperty(o)&&(u[o]=a[o]);a.arguments=[],a.thisProgram="./this.program",a.quit=function(n,t){throw t},a.preRun=[],a.postRun=[];var s,c,l=!1,_=!1;l="object"===typeof window,_="function"===typeof importScripts,s="object"===typeof t&&"object"===typeof t.versions&&"string"===typeof t.versions.node&&!l&&!_,c=!l&&!s&&!_;var f,p,d,m,y="";s?(y=r+"/",f=function(n,t){var r;return d||(d=e(3)),m||(m=e(4)),n=m.normalize(n),r=d.readFileSync(n),t?r:r.toString()},p=function(n){var t=f(n,!0);return t.buffer||(t=new Uint8Array(t)),j(t.buffer),t},t.argv.length>1&&(a.thisProgram=t.argv[1].replace(/\\/g,"/")),a.arguments=t.argv.slice(2),t.on("uncaughtException",function(n){if(!(n instanceof Un))throw n}),t.on("unhandledRejection",Bn),a.quit=function(n){t.exit(n)},a.inspect=function(){return"[Emscripten Module object]"}):c?("undefined"!=typeof read&&(f=function(n){return read(n)}),p=function(n){var t;return"function"===typeof readbuffer?new Uint8Array(readbuffer(n)):(j("object"===typeof(t=read(n,"binary"))),t)},"undefined"!=typeof scriptArgs?a.arguments=scriptArgs:"undefined"!=typeof arguments&&(a.arguments=arguments),"function"===typeof quit&&(a.quit=function(n){quit(n)})):(l||_)&&(_?y=self.location.href:document.currentScript&&(y=document.currentScript.src),n&&(y=n),y=0!==y.indexOf("blob:")?y.substr(0,y.lastIndexOf("/")+1):"",f=function(n){var t=new XMLHttpRequest;return t.open("GET",n,!1),t.send(null),t.responseText},_&&(p=function(n){var t=new XMLHttpRequest;return t.open("GET",n,!1),t.responseType="arraybuffer",t.send(null),new Uint8Array(t.response)}),function(n,t,e){var r=new XMLHttpRequest;r.open("GET",n,!0),r.responseType="arraybuffer",r.onload=function(){200==r.status||0==r.status&&r.response?t(r.response):e()},r.onerror=e,r.send(null)});var h=a.print||("undefined"!==typeof console?console.log.bind(console):"undefined"!==typeof print?print:null),v=a.printErr||("undefined"!==typeof printErr?printErr:"undefined"!==typeof console&&console.warn.bind(console)||h);for(o in u)u.hasOwnProperty(o)&&(a[o]=u[o]);u=void 0;var g={"f64-rem":function(n,t){return n%t},debugger:function(){}};new Array(0);var b,w=0,x=function(n){w=n};"object"!==typeof WebAssembly&&v("no native wasm support detected");var A=!1;function j(n,t){n||Bn("Assertion failed: "+t)}var C="undefined"!==typeof TextDecoder?new TextDecoder("utf8"):void 0;function S(n,t,e){for(var r=t+e,i=t;n[i]&&!(i>=r);)++i;if(i-t>16&&n.subarray&&C)return C.decode(n.subarray(t,i));for(var o="";t>10,56320|1023&c)}}else o+=String.fromCharCode((31&a)<<6|u)}else o+=String.fromCharCode(a)}return o}function k(n,t){return n?S(T,n,t):""}"undefined"!==typeof TextDecoder&&new TextDecoder("utf-16le");var E,R,T,D,M;function L(n,t){return n%t>0&&(n+=t-n%t),n}function O(){a.HEAP8=R=new Int8Array(E),a.HEAP16=new Int16Array(E),a.HEAP32=D=new Int32Array(E),a.HEAPU8=T=new Uint8Array(E),a.HEAPU16=new Uint16Array(E),a.HEAPU32=new Uint32Array(E),a.HEAPF32=M=new Float32Array(E),a.HEAPF64=new Float64Array(E)}var P=1875712,I=a.TOTAL_MEMORY||134217728;function N(n){for(;n.length>0;){var t=n.shift();if("function"!=typeof t){var e=t.func;"number"===typeof e?void 0===t.arg?a.dynCall_v(e):a.dynCall_vi(e,t.arg):e(void 0===t.arg?null:t.arg)}else t()}}I<5242880&&v("TOTAL_MEMORY should be larger than TOTAL_STACK, was "+I+"! (TOTAL_STACK=5242880)"),(b=a.wasmMemory?a.wasmMemory:new WebAssembly.Memory({initial:I/65536}))&&(E=b.buffer),I=E.byteLength,O(),D[P>>2]=7118624;var F=[],U=[],q=[],B=[];function W(n){B.unshift(n)}Math.abs,Math.cos,Math.sin,Math.tan,Math.acos,Math.asin,Math.atan,Math.atan2,Math.exp,Math.log,Math.sqrt,Math.ceil,Math.floor,Math.pow,Math.imul,Math.fround,Math.round,Math.min,Math.max,Math.clz32,Math.trunc;var H=0,z=null,G=null;a.preloadedImages={},a.preloadedAudios={};var X="data:application/octet-stream;base64,";function K(n){return String.prototype.startsWith?n.startsWith(X):0===n.indexOf(X)}var Y,Z="Diablo.wasm";function J(){try{if(a.wasmBinary)return new Uint8Array(a.wasmBinary);if(p)return p(Z);throw"both async and sync fetching of the wasm failed"}catch(v){Bn(v)}}function V(n){var t={env:n,global:{NaN:NaN,Infinity:1/0},"global.Math":Math,asm2wasm:g};function e(n,t){var e=n.exports;a.asm=e,function(n){if(H--,a.monitorRunDependencies&&a.monitorRunDependencies(H),0==H&&(null!==z&&(clearInterval(z),z=null),G)){var t=G;G=null,t()}}()}function r(n){e(n.instance)}function i(n){return(a.wasmBinary||!l&&!_||"function"!==typeof fetch?new Promise(function(n,t){n(J())}):fetch(Z,{credentials:"same-origin"}).then(function(n){if(!n.ok)throw"failed to load wasm binary file at '"+Z+"'";return n.arrayBuffer()}).catch(function(){return J()})).then(function(n){return WebAssembly.instantiate(n,t)}).then(n,function(n){v("failed to asynchronously prepare wasm: "+n),Bn(n)})}if(H++,a.monitorRunDependencies&&a.monitorRunDependencies(H),a.instantiateWasm)try{return a.instantiateWasm(t,e)}catch(o){return v("Module.instantiateWasm callback failed with error: "+o),!1}return function(){if(a.wasmBinary||"function"!==typeof WebAssembly.instantiateStreaming||K(Z)||"function"!==typeof fetch)return i(r);fetch(Z,{credentials:"same-origin"}).then(function(n){return WebAssembly.instantiateStreaming(n,t).then(r,function(n){v("wasm streaming compile failed: "+n),v("falling back to ArrayBuffer instantiation"),i(r)})})}(),{}}K(Z)||(Y=Z,Z=a.locateFile?a.locateFile(Y,y):y+Y),a.asm=function(n,t,e){return t.memory=b,t.table=new WebAssembly.Table({initial:1116,maximum:1116,element:"anyfunc"}),t.__memory_base=1024,t.__table_base=0,V(t)};var $=[function(n){self.DApi.current_save_id(n)}];U.push({func:function(){bn()}});var Q=1875728;var nn={},tn=[];function en(n){n&&nn[n].refcount++}function rn(n){if(!n||nn[n])return n;for(var t in nn)for(var e=+t,r=nn[e].adjusted,i=r.length,o=0;o>2],t.adjusted.push(n),0|(x(r[i]),n);return n=D[n>>2],0|(x(e),n)}a.___cxa_find_matching_catch=sn;var cn={buffers:[null,[],[]],printChar:function(n,t){var e=cn.buffers[n];0===t||10===t?((1===n?h:v)(S(e,0)),e.length=0):e.push(t)},varargs:0,get:function(n){return cn.varargs+=4,D[cn.varargs-4>>2]},getStr:function(){return k(cn.get())},get64:function(){var n=cn.get();cn.get();return n},getZero:function(){cn.get()}};function ln(){return R.length}function _n(n){n=L(n,65536);var t=E.byteLength;try{return-1!==b.grow((n-t)/65536)&&(E=b.buffer,!0)}catch(e){return!1}}var fn={abort:Bn,setTempRet0:x,getTempRet0:function(){return w},invoke_i:function(n){var t=xn();try{return An(n)}catch(e){if(wn(t),e!==e+0&&"longjmp"!==e)throw e;gn(1,0)}},invoke_ii:function(n,t){var e=xn();try{return jn(n,t)}catch(r){if(wn(e),r!==r+0&&"longjmp"!==r)throw r;gn(1,0)}},invoke_iii:function(n,t,e){var r=xn();try{return Cn(n,t,e)}catch(i){if(wn(r),i!==i+0&&"longjmp"!==i)throw i;gn(1,0)}},invoke_iiii:function(n,t,e,r){var i=xn();try{return Sn(n,t,e,r)}catch(o){if(wn(i),o!==o+0&&"longjmp"!==o)throw o;gn(1,0)}},invoke_iiiii:function(n,t,e,r,i){var o=xn();try{return kn(n,t,e,r,i)}catch(a){if(wn(o),a!==a+0&&"longjmp"!==a)throw a;gn(1,0)}},invoke_iiiiii:function(n,t,e,r,i,o){var a=xn();try{return En(n,t,e,r,i,o)}catch(u){if(wn(a),u!==u+0&&"longjmp"!==u)throw u;gn(1,0)}},invoke_ji:function(n,t){var e=xn();try{return Rn(n,t)}catch(r){if(wn(e),r!==r+0&&"longjmp"!==r)throw r;gn(1,0)}},invoke_v:function(n){var t=xn();try{Tn(n)}catch(e){if(wn(t),e!==e+0&&"longjmp"!==e)throw e;gn(1,0)}},invoke_vi:function(n,t){var e=xn();try{Dn(n,t)}catch(r){if(wn(e),r!==r+0&&"longjmp"!==r)throw r;gn(1,0)}},invoke_vii:function(n,t,e){var r=xn();try{Mn(n,t,e)}catch(i){if(wn(r),i!==i+0&&"longjmp"!==i)throw i;gn(1,0)}},invoke_viii:function(n,t,e,r){var i=xn();try{Ln(n,t,e,r)}catch(o){if(wn(i),o!==o+0&&"longjmp"!==o)throw o;gn(1,0)}},invoke_viiii:function(n,t,e,r,i){var o=xn();try{On(n,t,e,r,i)}catch(a){if(wn(o),a!==a+0&&"longjmp"!==a)throw a;gn(1,0)}},invoke_viiiii:function(n,t,e,r,i,o){var a=xn();try{Pn(n,t,e,r,i,o)}catch(u){if(wn(a),u!==u+0&&"longjmp"!==u)throw u;gn(1,0)}},invoke_viiiiiii:function(n,t,e,r,i,o,a,u){var s=xn();try{In(n,t,e,r,i,o,a,u)}catch(c){if(wn(s),c!==c+0&&"longjmp"!==c)throw c;gn(1,0)}},invoke_viij:function(n,t,e,r,i){var o=xn();try{Nn(n,t,e,r,i)}catch(a){if(wn(o),a!==a+0&&"longjmp"!==a)throw a;gn(1,0)}},invoke_viji:function(n,t,e,r,i){var o=xn();try{Fn(n,t,e,r,i)}catch(a){if(wn(o),a!==a+0&&"longjmp"!==a)throw a;gn(1,0)}},___assert_fail:function(n,t,e,r){Bn("Assertion failed: "+k(n)+", at: "+[t?k(t):"unknown filename",e,r?k(r):"unknown function"])},___cxa_allocate_exception:function(n){return vn(n)},___cxa_begin_catch:function(n){var t=nn[n];return t&&!t.caught&&(t.caught=!0,dn.uncaught_exceptions--),t&&(t.rethrown=!1),tn.push(n),en(rn(n)),n},___cxa_end_catch:function(){gn(0);var n=tn.pop();n&&(un(rn(n)),on=0)},___cxa_find_matching_catch:sn,___cxa_find_matching_catch_2:function(n,t){return sn(n,t)},___cxa_find_matching_catch_3:function(n,t,e){return sn(n,t,e)},___cxa_free_exception:an,___cxa_get_exception_ptr:function(n){return n},___cxa_pure_virtual:function(){throw A=!0,"Pure virtual function called!"},___cxa_throw:function(n,t,e){throw nn[n]={ptr:n,adjusted:[n],type:t,destructor:e,refcount:0,caught:!1,rethrown:!1},on=n,"uncaught_exception"in dn?dn.uncaught_exceptions++:dn.uncaught_exceptions=1,n},___cxa_uncaught_exceptions:function(){return dn.uncaught_exceptions},___exception_addRef:en,___exception_deAdjust:rn,___exception_decRef:un,___gxx_personality_v0:function(){},___lock:function(){},___resumeException:function(n){throw on||(on=n),n},___setErrNo:function(n){return a.___errno_location&&(D[a.___errno_location()>>2]=n),n},___syscall140:function(n,t){cn.varargs=t;try{return cn.getStreamFromFD(),cn.get(),cn.get(),cn.get(),cn.get(),0}catch(e){return"undefined"!==typeof FS&&e instanceof FS.ErrnoError||Bn(e),-e.errno}},___syscall146:function(n,t){cn.varargs=t;try{for(var e=cn.get(),r=cn.get(),i=cn.get(),o=0,a=0;a>2],s=D[r+(8*a+4)>>2],c=0;c2147418112)return!1;for(var e=Math.max(t,16777216);e>2]=t),t},_trace_pop:function(){self.WASM_TRACE&&self.WASM_TRACE.pop()},_trace_push:function(n){var t=T.indexOf(0,n),e=String.fromCharCode.apply(null,T.subarray(n,t));console.log(e),self.WASM_TRACE=self.WASM_TRACE||[],self.WASM_TRACE.push(e)},abortOnCannotGrowMemory:function(n){Bn("OOM")},emscripten_realloc_buffer:_n,flush_NO_FILESYSTEM:function(){var n=a._fflush;n&&n(0);var t=cn.buffers;t[1].length&&cn.printChar(1,10),t[2].length&&cn.printChar(2,10)},tempDoublePtr:Q,DYNAMICTOP_PTR:P},pn=a.asm({},fn,E);a.asm=pn;a._DApi_AllocPacket=function(){return a.asm._DApi_AllocPacket.apply(null,arguments)},a._DApi_Char=function(){return a.asm._DApi_Char.apply(null,arguments)},a._DApi_Init=function(){return a.asm._DApi_Init.apply(null,arguments)},a._DApi_Key=function(){return a.asm._DApi_Key.apply(null,arguments)},a._DApi_Mouse=function(){return a.asm._DApi_Mouse.apply(null,arguments)},a._DApi_Render=function(){return a.asm._DApi_Render.apply(null,arguments)},a._DApi_SyncText=function(){return a.asm._DApi_SyncText.apply(null,arguments)},a._DApi_SyncTextPtr=function(){return a.asm._DApi_SyncTextPtr.apply(null,arguments)},a._SNet_InitWebsocket=function(){return a.asm._SNet_InitWebsocket.apply(null,arguments)},a._SNet_WebsocketStatus=function(){return a.asm._SNet_WebsocketStatus.apply(null,arguments)};var dn=a.__ZSt18uncaught_exceptionv=function(){return a.asm.__ZSt18uncaught_exceptionv.apply(null,arguments)},mn=a.___cxa_can_catch=function(){return a.asm.___cxa_can_catch.apply(null,arguments)},yn=a.___cxa_is_pointer_type=function(){return a.asm.___cxa_is_pointer_type.apply(null,arguments)},hn=(a.___em_js___api_close_keyboard=function(){return a.asm.___em_js___api_close_keyboard.apply(null,arguments)},a.___em_js___api_open_keyboard=function(){return a.asm.___em_js___api_open_keyboard.apply(null,arguments)},a.___em_js__api_create_sound=function(){return a.asm.___em_js__api_create_sound.apply(null,arguments)},a.___em_js__api_create_sound_float=function(){return a.asm.___em_js__api_create_sound_float.apply(null,arguments)},a.___em_js__api_delete_sound=function(){return a.asm.___em_js__api_delete_sound.apply(null,arguments)},a.___em_js__api_draw_begin=function(){return a.asm.___em_js__api_draw_begin.apply(null,arguments)},a.___em_js__api_draw_belt=function(){return a.asm.___em_js__api_draw_belt.apply(null,arguments)},a.___em_js__api_draw_blit=function(){return a.asm.___em_js__api_draw_blit.apply(null,arguments)},a.___em_js__api_draw_clip_text=function(){return a.asm.___em_js__api_draw_clip_text.apply(null,arguments)},a.___em_js__api_draw_end=function(){return a.asm.___em_js__api_draw_end.apply(null,arguments)},a.___em_js__api_draw_text=function(){return a.asm.___em_js__api_draw_text.apply(null,arguments)},a.___em_js__api_duplicate_sound=function(){return a.asm.___em_js__api_duplicate_sound.apply(null,arguments)},a.___em_js__api_exit_game=function(){return a.asm.___em_js__api_exit_game.apply(null,arguments)},a.___em_js__api_play_sound=function(){return a.asm.___em_js__api_play_sound.apply(null,arguments)},a.___em_js__api_set_cursor=function(){return a.asm.___em_js__api_set_cursor.apply(null,arguments)},a.___em_js__api_set_volume=function(){return a.asm.___em_js__api_set_volume.apply(null,arguments)},a.___em_js__api_stop_sound=function(){return a.asm.___em_js__api_stop_sound.apply(null,arguments)},a.___em_js__api_use_websocket=function(){return a.asm.___em_js__api_use_websocket.apply(null,arguments)},a.___em_js__api_websocket_closed=function(){return a.asm.___em_js__api_websocket_closed.apply(null,arguments)},a.___em_js__api_websocket_send=function(){return a.asm.___em_js__api_websocket_send.apply(null,arguments)},a.___em_js__exit_error=function(){return a.asm.___em_js__exit_error.apply(null,arguments)},a.___em_js__get_file_contents=function(){return a.asm.___em_js__get_file_contents.apply(null,arguments)},a.___em_js__get_file_size=function(){return a.asm.___em_js__get_file_size.apply(null,arguments)},a.___em_js__put_file_contents=function(){return a.asm.___em_js__put_file_contents.apply(null,arguments)},a.___em_js__remove_file=function(){return a.asm.___em_js__remove_file.apply(null,arguments)},a.___em_js__show_alert=function(){return a.asm.___em_js__show_alert.apply(null,arguments)},a.___em_js__trace_pop=function(){return a.asm.___em_js__trace_pop.apply(null,arguments)},a.___em_js__trace_push=function(){return a.asm.___em_js__trace_push.apply(null,arguments)},a._emscripten_replace_memory=function(){return a.asm._emscripten_replace_memory.apply(null,arguments)},a._free=function(){return a.asm._free.apply(null,arguments)}),vn=(a._llvm_bswap_i32=function(){return a.asm._llvm_bswap_i32.apply(null,arguments)},a._malloc=function(){return a.asm._malloc.apply(null,arguments)}),gn=(a._memcpy=function(){return a.asm._memcpy.apply(null,arguments)},a._memmove=function(){return a.asm._memmove.apply(null,arguments)},a._memset=function(){return a.asm._memset.apply(null,arguments)},a._sbrk=function(){return a.asm._sbrk.apply(null,arguments)},a._setThrew=function(){return a.asm._setThrew.apply(null,arguments)}),bn=(a.establishStackSpace=function(){return a.asm.establishStackSpace.apply(null,arguments)},a.globalCtors=function(){return a.asm.globalCtors.apply(null,arguments)}),wn=(a.stackAlloc=function(){return a.asm.stackAlloc.apply(null,arguments)},a.stackRestore=function(){return a.asm.stackRestore.apply(null,arguments)}),xn=a.stackSave=function(){return a.asm.stackSave.apply(null,arguments)},An=a.dynCall_i=function(){return a.asm.dynCall_i.apply(null,arguments)},jn=a.dynCall_ii=function(){return a.asm.dynCall_ii.apply(null,arguments)},Cn=(a.dynCall_iidiiii=function(){return a.asm.dynCall_iidiiii.apply(null,arguments)},a.dynCall_iii=function(){return a.asm.dynCall_iii.apply(null,arguments)}),Sn=a.dynCall_iiii=function(){return a.asm.dynCall_iiii.apply(null,arguments)},kn=a.dynCall_iiiii=function(){return a.asm.dynCall_iiiii.apply(null,arguments)},En=a.dynCall_iiiiii=function(){return a.asm.dynCall_iiiiii.apply(null,arguments)},Rn=a.dynCall_ji=function(){return a.asm.dynCall_ji.apply(null,arguments)},Tn=(a.dynCall_jiji=function(){return a.asm.dynCall_jiji.apply(null,arguments)},a.dynCall_v=function(){return a.asm.dynCall_v.apply(null,arguments)}),Dn=a.dynCall_vi=function(){return a.asm.dynCall_vi.apply(null,arguments)},Mn=a.dynCall_vii=function(){return a.asm.dynCall_vii.apply(null,arguments)},Ln=a.dynCall_viii=function(){return a.asm.dynCall_viii.apply(null,arguments)},On=a.dynCall_viiii=function(){return a.asm.dynCall_viiii.apply(null,arguments)},Pn=a.dynCall_viiiii=function(){return a.asm.dynCall_viiiii.apply(null,arguments)},In=(a.dynCall_viiiiii=function(){return a.asm.dynCall_viiiiii.apply(null,arguments)},a.dynCall_viiiiiii=function(){return a.asm.dynCall_viiiiiii.apply(null,arguments)}),Nn=(a.dynCall_viiiiiiiii=function(){return a.asm.dynCall_viiiiiiiii.apply(null,arguments)},a.dynCall_viiiiiiiiii=function(){return a.asm.dynCall_viiiiiiiiii.apply(null,arguments)},a.dynCall_viij=function(){return a.asm.dynCall_viij.apply(null,arguments)}),Fn=a.dynCall_viji=function(){return a.asm.dynCall_viji.apply(null,arguments)};function Un(n){this.name="ExitStatus",this.message="Program terminated with exit("+n+")",this.status=n}a.asm=pn,a.then=function(n){if(a.calledRun)n(a);else{var t=a.onRuntimeInitialized;a.onRuntimeInitialized=function(){t&&t(),n(a)}}return a},Un.prototype=new Error,Un.prototype.constructor=Un;function qn(n){function t(){a.calledRun||(a.calledRun=!0,A||(!0,N(U),N(q),a.onRuntimeInitialized&&a.onRuntimeInitialized(),function(){if(a.postRun)for("function"==typeof a.postRun&&(a.postRun=[a.postRun]);a.postRun.length;)W(a.postRun.shift());N(B)}()))}n=n||a.arguments,H>0||(!function(){if(a.preRun)for("function"==typeof a.preRun&&(a.preRun=[a.preRun]);a.preRun.length;)n=a.preRun.shift(),F.unshift(n);var n;N(F)}(),H>0||a.calledRun||(a.setStatus?(a.setStatus("Running..."),setTimeout(function(){setTimeout(function(){a.setStatus("")},1),t()},1)):t()))}G=function n(){a.calledRun||qn(),a.calledRun||(G=n)},a.run=qn;function Bn(n){throw a.onAbort&&a.onAbort(n),h(n+=""),v(n),A=!0,1,"abort("+n+"). Build with -s ASSERTIONS=1 for more info."}if(a.abort=Bn,a.preInit)for("function"==typeof a.preInit&&(a.preInit=[a.preInit]);a.preInit.length>0;)a.preInit.pop()();return a.noExitRuntime=!0,qn(),a.ready=new Promise(function(n,t){delete a.then,a.onAbort=function(n){t(n)},W(function(){n(a)})}),i}}();n.exports=i}).call(this,e(2),"/")},function(n,t,e){n.exports=e.p+"static/media/DiabloSpawn.9c2373b2.wasm"},function(n,t,e){(function(t,r){var i=function(){var n="undefined"!==typeof document&&document.currentScript?document.currentScript.src:void 0;return function(i){var o,a="undefined"!==typeof(i=i||{})?i:{},u={};for(o in a)a.hasOwnProperty(o)&&(u[o]=a[o]);a.arguments=[],a.thisProgram="./this.program",a.quit=function(n,t){throw t},a.preRun=[],a.postRun=[];var s,c,l=!1,_=!1;l="object"===typeof window,_="function"===typeof importScripts,s="object"===typeof t&&"object"===typeof t.versions&&"string"===typeof t.versions.node&&!l&&!_,c=!l&&!s&&!_;var f,p,d,m,y="";s?(y=r+"/",f=function(n,t){var r;return d||(d=e(3)),m||(m=e(4)),n=m.normalize(n),r=d.readFileSync(n),t?r:r.toString()},p=function(n){var t=f(n,!0);return t.buffer||(t=new Uint8Array(t)),j(t.buffer),t},t.argv.length>1&&(a.thisProgram=t.argv[1].replace(/\\/g,"/")),a.arguments=t.argv.slice(2),t.on("uncaughtException",function(n){if(!(n instanceof Un))throw n}),t.on("unhandledRejection",Bn),a.quit=function(n){t.exit(n)},a.inspect=function(){return"[Emscripten Module object]"}):c?("undefined"!=typeof read&&(f=function(n){return read(n)}),p=function(n){var t;return"function"===typeof readbuffer?new Uint8Array(readbuffer(n)):(j("object"===typeof(t=read(n,"binary"))),t)},"undefined"!=typeof scriptArgs?a.arguments=scriptArgs:"undefined"!=typeof arguments&&(a.arguments=arguments),"function"===typeof quit&&(a.quit=function(n){quit(n)})):(l||_)&&(_?y=self.location.href:document.currentScript&&(y=document.currentScript.src),n&&(y=n),y=0!==y.indexOf("blob:")?y.substr(0,y.lastIndexOf("/")+1):"",f=function(n){var t=new XMLHttpRequest;return t.open("GET",n,!1),t.send(null),t.responseText},_&&(p=function(n){var t=new XMLHttpRequest;return t.open("GET",n,!1),t.responseType="arraybuffer",t.send(null),new Uint8Array(t.response)}),function(n,t,e){var r=new XMLHttpRequest;r.open("GET",n,!0),r.responseType="arraybuffer",r.onload=function(){200==r.status||0==r.status&&r.response?t(r.response):e()},r.onerror=e,r.send(null)});var h=a.print||("undefined"!==typeof console?console.log.bind(console):"undefined"!==typeof print?print:null),v=a.printErr||("undefined"!==typeof printErr?printErr:"undefined"!==typeof console&&console.warn.bind(console)||h);for(o in u)u.hasOwnProperty(o)&&(a[o]=u[o]);u=void 0;var g={"f64-rem":function(n,t){return n%t},debugger:function(){}};new Array(0);var b,w=0,x=function(n){w=n};"object"!==typeof WebAssembly&&v("no native wasm support detected");var A=!1;function j(n,t){n||Bn("Assertion failed: "+t)}var C="undefined"!==typeof TextDecoder?new TextDecoder("utf8"):void 0;function S(n,t,e){for(var r=t+e,i=t;n[i]&&!(i>=r);)++i;if(i-t>16&&n.subarray&&C)return C.decode(n.subarray(t,i));for(var o="";t>10,56320|1023&c)}}else o+=String.fromCharCode((31&a)<<6|u)}else o+=String.fromCharCode(a)}return o}function k(n,t){return n?S(T,n,t):""}"undefined"!==typeof TextDecoder&&new TextDecoder("utf-16le");var E,R,T,D,M;function L(n,t){return n%t>0&&(n+=t-n%t),n}function O(){a.HEAP8=R=new Int8Array(E),a.HEAP16=new Int16Array(E),a.HEAP32=D=new Int32Array(E),a.HEAPU8=T=new Uint8Array(E),a.HEAPU16=new Uint16Array(E),a.HEAPU32=new Uint32Array(E),a.HEAPF32=M=new Float32Array(E),a.HEAPF64=new Float64Array(E)}var P=1850896,I=a.TOTAL_MEMORY||134217728;function N(n){for(;n.length>0;){var t=n.shift();if("function"!=typeof t){var e=t.func;"number"===typeof e?void 0===t.arg?a.dynCall_v(e):a.dynCall_vi(e,t.arg):e(void 0===t.arg?null:t.arg)}else t()}}I<5242880&&v("TOTAL_MEMORY should be larger than TOTAL_STACK, was "+I+"! (TOTAL_STACK=5242880)"),(b=a.wasmMemory?a.wasmMemory:new WebAssembly.Memory({initial:I/65536}))&&(E=b.buffer),I=E.byteLength,O(),D[P>>2]=7093808;var F=[],U=[],q=[],B=[];function W(n){B.unshift(n)}Math.abs,Math.cos,Math.sin,Math.tan,Math.acos,Math.asin,Math.atan,Math.atan2,Math.exp,Math.log,Math.sqrt,Math.ceil,Math.floor,Math.pow,Math.imul,Math.fround,Math.round,Math.min,Math.max,Math.clz32,Math.trunc;var H=0,z=null,G=null;a.preloadedImages={},a.preloadedAudios={};var X="data:application/octet-stream;base64,";function K(n){return String.prototype.startsWith?n.startsWith(X):0===n.indexOf(X)}var Y,Z="DiabloSpawn.wasm";function J(){try{if(a.wasmBinary)return new Uint8Array(a.wasmBinary);if(p)return p(Z);throw"both async and sync fetching of the wasm failed"}catch(v){Bn(v)}}function V(n){var t={env:n,global:{NaN:NaN,Infinity:1/0},"global.Math":Math,asm2wasm:g};function e(n,t){var e=n.exports;a.asm=e,function(n){if(H--,a.monitorRunDependencies&&a.monitorRunDependencies(H),0==H&&(null!==z&&(clearInterval(z),z=null),G)){var t=G;G=null,t()}}()}function r(n){e(n.instance)}function i(n){return(a.wasmBinary||!l&&!_||"function"!==typeof fetch?new Promise(function(n,t){n(J())}):fetch(Z,{credentials:"same-origin"}).then(function(n){if(!n.ok)throw"failed to load wasm binary file at '"+Z+"'";return n.arrayBuffer()}).catch(function(){return J()})).then(function(n){return WebAssembly.instantiate(n,t)}).then(n,function(n){v("failed to asynchronously prepare wasm: "+n),Bn(n)})}if(H++,a.monitorRunDependencies&&a.monitorRunDependencies(H),a.instantiateWasm)try{return a.instantiateWasm(t,e)}catch(o){return v("Module.instantiateWasm callback failed with error: "+o),!1}return function(){if(a.wasmBinary||"function"!==typeof WebAssembly.instantiateStreaming||K(Z)||"function"!==typeof fetch)return i(r);fetch(Z,{credentials:"same-origin"}).then(function(n){return WebAssembly.instantiateStreaming(n,t).then(r,function(n){v("wasm streaming compile failed: "+n),v("falling back to ArrayBuffer instantiation"),i(r)})})}(),{}}K(Z)||(Y=Z,Z=a.locateFile?a.locateFile(Y,y):y+Y),a.asm=function(n,t,e){return t.memory=b,t.table=new WebAssembly.Table({initial:1116,maximum:1116,element:"anyfunc"}),t.__memory_base=1024,t.__table_base=0,V(t)};var $=[function(n){self.DApi.current_save_id(n)}];U.push({func:function(){bn()}});var Q=1850912;var nn={},tn=[];function en(n){n&&nn[n].refcount++}function rn(n){if(!n||nn[n])return n;for(var t in nn)for(var e=+t,r=nn[e].adjusted,i=r.length,o=0;o>2],t.adjusted.push(n),0|(x(r[i]),n);return n=D[n>>2],0|(x(e),n)}a.___cxa_find_matching_catch=sn;var cn={buffers:[null,[],[]],printChar:function(n,t){var e=cn.buffers[n];0===t||10===t?((1===n?h:v)(S(e,0)),e.length=0):e.push(t)},varargs:0,get:function(n){return cn.varargs+=4,D[cn.varargs-4>>2]},getStr:function(){return k(cn.get())},get64:function(){var n=cn.get();cn.get();return n},getZero:function(){cn.get()}};function ln(){return R.length}function _n(n){n=L(n,65536);var t=E.byteLength;try{return-1!==b.grow((n-t)/65536)&&(E=b.buffer,!0)}catch(e){return!1}}var fn={abort:Bn,setTempRet0:x,getTempRet0:function(){return w},invoke_i:function(n){var t=xn();try{return An(n)}catch(e){if(wn(t),e!==e+0&&"longjmp"!==e)throw e;gn(1,0)}},invoke_ii:function(n,t){var e=xn();try{return jn(n,t)}catch(r){if(wn(e),r!==r+0&&"longjmp"!==r)throw r;gn(1,0)}},invoke_iii:function(n,t,e){var r=xn();try{return Cn(n,t,e)}catch(i){if(wn(r),i!==i+0&&"longjmp"!==i)throw i;gn(1,0)}},invoke_iiii:function(n,t,e,r){var i=xn();try{return Sn(n,t,e,r)}catch(o){if(wn(i),o!==o+0&&"longjmp"!==o)throw o;gn(1,0)}},invoke_iiiii:function(n,t,e,r,i){var o=xn();try{return kn(n,t,e,r,i)}catch(a){if(wn(o),a!==a+0&&"longjmp"!==a)throw a;gn(1,0)}},invoke_iiiiii:function(n,t,e,r,i,o){var a=xn();try{return En(n,t,e,r,i,o)}catch(u){if(wn(a),u!==u+0&&"longjmp"!==u)throw u;gn(1,0)}},invoke_ji:function(n,t){var e=xn();try{return Rn(n,t)}catch(r){if(wn(e),r!==r+0&&"longjmp"!==r)throw r;gn(1,0)}},invoke_v:function(n){var t=xn();try{Tn(n)}catch(e){if(wn(t),e!==e+0&&"longjmp"!==e)throw e;gn(1,0)}},invoke_vi:function(n,t){var e=xn();try{Dn(n,t)}catch(r){if(wn(e),r!==r+0&&"longjmp"!==r)throw r;gn(1,0)}},invoke_vii:function(n,t,e){var r=xn();try{Mn(n,t,e)}catch(i){if(wn(r),i!==i+0&&"longjmp"!==i)throw i;gn(1,0)}},invoke_viii:function(n,t,e,r){var i=xn();try{Ln(n,t,e,r)}catch(o){if(wn(i),o!==o+0&&"longjmp"!==o)throw o;gn(1,0)}},invoke_viiii:function(n,t,e,r,i){var o=xn();try{On(n,t,e,r,i)}catch(a){if(wn(o),a!==a+0&&"longjmp"!==a)throw a;gn(1,0)}},invoke_viiiii:function(n,t,e,r,i,o){var a=xn();try{Pn(n,t,e,r,i,o)}catch(u){if(wn(a),u!==u+0&&"longjmp"!==u)throw u;gn(1,0)}},invoke_viiiiiii:function(n,t,e,r,i,o,a,u){var s=xn();try{In(n,t,e,r,i,o,a,u)}catch(c){if(wn(s),c!==c+0&&"longjmp"!==c)throw c;gn(1,0)}},invoke_viij:function(n,t,e,r,i){var o=xn();try{Nn(n,t,e,r,i)}catch(a){if(wn(o),a!==a+0&&"longjmp"!==a)throw a;gn(1,0)}},invoke_viji:function(n,t,e,r,i){var o=xn();try{Fn(n,t,e,r,i)}catch(a){if(wn(o),a!==a+0&&"longjmp"!==a)throw a;gn(1,0)}},___assert_fail:function(n,t,e,r){Bn("Assertion failed: "+k(n)+", at: "+[t?k(t):"unknown filename",e,r?k(r):"unknown function"])},___cxa_allocate_exception:function(n){return vn(n)},___cxa_begin_catch:function(n){var t=nn[n];return t&&!t.caught&&(t.caught=!0,dn.uncaught_exceptions--),t&&(t.rethrown=!1),tn.push(n),en(rn(n)),n},___cxa_end_catch:function(){gn(0);var n=tn.pop();n&&(un(rn(n)),on=0)},___cxa_find_matching_catch:sn,___cxa_find_matching_catch_2:function(n,t){return sn(n,t)},___cxa_find_matching_catch_3:function(n,t,e){return sn(n,t,e)},___cxa_free_exception:an,___cxa_get_exception_ptr:function(n){return n},___cxa_pure_virtual:function(){throw A=!0,"Pure virtual function called!"},___cxa_throw:function(n,t,e){throw nn[n]={ptr:n,adjusted:[n],type:t,destructor:e,refcount:0,caught:!1,rethrown:!1},on=n,"uncaught_exception"in dn?dn.uncaught_exceptions++:dn.uncaught_exceptions=1,n},___cxa_uncaught_exceptions:function(){return dn.uncaught_exceptions},___exception_addRef:en,___exception_deAdjust:rn,___exception_decRef:un,___gxx_personality_v0:function(){},___lock:function(){},___resumeException:function(n){throw on||(on=n),n},___setErrNo:function(n){return a.___errno_location&&(D[a.___errno_location()>>2]=n),n},___syscall140:function(n,t){cn.varargs=t;try{return cn.getStreamFromFD(),cn.get(),cn.get(),cn.get(),cn.get(),0}catch(e){return"undefined"!==typeof FS&&e instanceof FS.ErrnoError||Bn(e),-e.errno}},___syscall146:function(n,t){cn.varargs=t;try{for(var e=cn.get(),r=cn.get(),i=cn.get(),o=0,a=0;a>2],s=D[r+(8*a+4)>>2],c=0;c2147418112)return!1;for(var e=Math.max(t,16777216);e>2]=t),t},_trace_pop:function(){self.WASM_TRACE&&self.WASM_TRACE.pop()},_trace_push:function(n){var t=T.indexOf(0,n),e=String.fromCharCode.apply(null,T.subarray(n,t));console.log(e),self.WASM_TRACE=self.WASM_TRACE||[],self.WASM_TRACE.push(e)},abortOnCannotGrowMemory:function(n){Bn("OOM")},emscripten_realloc_buffer:_n,flush_NO_FILESYSTEM:function(){var n=a._fflush;n&&n(0);var t=cn.buffers;t[1].length&&cn.printChar(1,10),t[2].length&&cn.printChar(2,10)},tempDoublePtr:Q,DYNAMICTOP_PTR:P},pn=a.asm({},fn,E);a.asm=pn;a._DApi_AllocPacket=function(){return a.asm._DApi_AllocPacket.apply(null,arguments)},a._DApi_Char=function(){return a.asm._DApi_Char.apply(null,arguments)},a._DApi_Init=function(){return a.asm._DApi_Init.apply(null,arguments)},a._DApi_Key=function(){return a.asm._DApi_Key.apply(null,arguments)},a._DApi_Mouse=function(){return a.asm._DApi_Mouse.apply(null,arguments)},a._DApi_Render=function(){return a.asm._DApi_Render.apply(null,arguments)},a._DApi_SyncText=function(){return a.asm._DApi_SyncText.apply(null,arguments)},a._DApi_SyncTextPtr=function(){return a.asm._DApi_SyncTextPtr.apply(null,arguments)},a._SNet_InitWebsocket=function(){return a.asm._SNet_InitWebsocket.apply(null,arguments)},a._SNet_WebsocketStatus=function(){return a.asm._SNet_WebsocketStatus.apply(null,arguments)};var dn=a.__ZSt18uncaught_exceptionv=function(){return a.asm.__ZSt18uncaught_exceptionv.apply(null,arguments)},mn=a.___cxa_can_catch=function(){return a.asm.___cxa_can_catch.apply(null,arguments)},yn=a.___cxa_is_pointer_type=function(){return a.asm.___cxa_is_pointer_type.apply(null,arguments)},hn=(a.___em_js___api_close_keyboard=function(){return a.asm.___em_js___api_close_keyboard.apply(null,arguments)},a.___em_js___api_open_keyboard=function(){return a.asm.___em_js___api_open_keyboard.apply(null,arguments)},a.___em_js__api_create_sound=function(){return a.asm.___em_js__api_create_sound.apply(null,arguments)},a.___em_js__api_create_sound_float=function(){return a.asm.___em_js__api_create_sound_float.apply(null,arguments)},a.___em_js__api_delete_sound=function(){return a.asm.___em_js__api_delete_sound.apply(null,arguments)},a.___em_js__api_draw_begin=function(){return a.asm.___em_js__api_draw_begin.apply(null,arguments)},a.___em_js__api_draw_belt=function(){return a.asm.___em_js__api_draw_belt.apply(null,arguments)},a.___em_js__api_draw_blit=function(){return a.asm.___em_js__api_draw_blit.apply(null,arguments)},a.___em_js__api_draw_clip_text=function(){return a.asm.___em_js__api_draw_clip_text.apply(null,arguments)},a.___em_js__api_draw_end=function(){return a.asm.___em_js__api_draw_end.apply(null,arguments)},a.___em_js__api_draw_text=function(){return a.asm.___em_js__api_draw_text.apply(null,arguments)},a.___em_js__api_duplicate_sound=function(){return a.asm.___em_js__api_duplicate_sound.apply(null,arguments)},a.___em_js__api_exit_game=function(){return a.asm.___em_js__api_exit_game.apply(null,arguments)},a.___em_js__api_play_sound=function(){return a.asm.___em_js__api_play_sound.apply(null,arguments)},a.___em_js__api_set_cursor=function(){return a.asm.___em_js__api_set_cursor.apply(null,arguments)},a.___em_js__api_set_volume=function(){return a.asm.___em_js__api_set_volume.apply(null,arguments)},a.___em_js__api_stop_sound=function(){return a.asm.___em_js__api_stop_sound.apply(null,arguments)},a.___em_js__api_use_websocket=function(){return a.asm.___em_js__api_use_websocket.apply(null,arguments)},a.___em_js__api_websocket_closed=function(){return a.asm.___em_js__api_websocket_closed.apply(null,arguments)},a.___em_js__api_websocket_send=function(){return a.asm.___em_js__api_websocket_send.apply(null,arguments)},a.___em_js__exit_error=function(){return a.asm.___em_js__exit_error.apply(null,arguments)},a.___em_js__get_file_contents=function(){return a.asm.___em_js__get_file_contents.apply(null,arguments)},a.___em_js__get_file_size=function(){return a.asm.___em_js__get_file_size.apply(null,arguments)},a.___em_js__put_file_contents=function(){return a.asm.___em_js__put_file_contents.apply(null,arguments)},a.___em_js__remove_file=function(){return a.asm.___em_js__remove_file.apply(null,arguments)},a.___em_js__show_alert=function(){return a.asm.___em_js__show_alert.apply(null,arguments)},a.___em_js__trace_pop=function(){return a.asm.___em_js__trace_pop.apply(null,arguments)},a.___em_js__trace_push=function(){return a.asm.___em_js__trace_push.apply(null,arguments)},a._emscripten_replace_memory=function(){return a.asm._emscripten_replace_memory.apply(null,arguments)},a._free=function(){return a.asm._free.apply(null,arguments)}),vn=(a._llvm_bswap_i32=function(){return a.asm._llvm_bswap_i32.apply(null,arguments)},a._malloc=function(){return a.asm._malloc.apply(null,arguments)}),gn=(a._memcpy=function(){return a.asm._memcpy.apply(null,arguments)},a._memmove=function(){return a.asm._memmove.apply(null,arguments)},a._memset=function(){return a.asm._memset.apply(null,arguments)},a._sbrk=function(){return a.asm._sbrk.apply(null,arguments)},a._setThrew=function(){return a.asm._setThrew.apply(null,arguments)}),bn=(a.establishStackSpace=function(){return a.asm.establishStackSpace.apply(null,arguments)},a.globalCtors=function(){return a.asm.globalCtors.apply(null,arguments)}),wn=(a.stackAlloc=function(){return a.asm.stackAlloc.apply(null,arguments)},a.stackRestore=function(){return a.asm.stackRestore.apply(null,arguments)}),xn=a.stackSave=function(){return a.asm.stackSave.apply(null,arguments)},An=a.dynCall_i=function(){return a.asm.dynCall_i.apply(null,arguments)},jn=a.dynCall_ii=function(){return a.asm.dynCall_ii.apply(null,arguments)},Cn=(a.dynCall_iidiiii=function(){return a.asm.dynCall_iidiiii.apply(null,arguments)},a.dynCall_iii=function(){return a.asm.dynCall_iii.apply(null,arguments)}),Sn=a.dynCall_iiii=function(){return a.asm.dynCall_iiii.apply(null,arguments)},kn=a.dynCall_iiiii=function(){return a.asm.dynCall_iiiii.apply(null,arguments)},En=a.dynCall_iiiiii=function(){return a.asm.dynCall_iiiiii.apply(null,arguments)},Rn=a.dynCall_ji=function(){return a.asm.dynCall_ji.apply(null,arguments)},Tn=(a.dynCall_jiji=function(){return a.asm.dynCall_jiji.apply(null,arguments)},a.dynCall_v=function(){return a.asm.dynCall_v.apply(null,arguments)}),Dn=a.dynCall_vi=function(){return a.asm.dynCall_vi.apply(null,arguments)},Mn=a.dynCall_vii=function(){return a.asm.dynCall_vii.apply(null,arguments)},Ln=a.dynCall_viii=function(){return a.asm.dynCall_viii.apply(null,arguments)},On=a.dynCall_viiii=function(){return a.asm.dynCall_viiii.apply(null,arguments)},Pn=a.dynCall_viiiii=function(){return a.asm.dynCall_viiiii.apply(null,arguments)},In=(a.dynCall_viiiiii=function(){return a.asm.dynCall_viiiiii.apply(null,arguments)},a.dynCall_viiiiiii=function(){return a.asm.dynCall_viiiiiii.apply(null,arguments)}),Nn=(a.dynCall_viiiiiiiii=function(){return a.asm.dynCall_viiiiiiiii.apply(null,arguments)},a.dynCall_viiiiiiiiii=function(){return a.asm.dynCall_viiiiiiiiii.apply(null,arguments)},a.dynCall_viij=function(){return a.asm.dynCall_viij.apply(null,arguments)}),Fn=a.dynCall_viji=function(){return a.asm.dynCall_viji.apply(null,arguments)};function Un(n){this.name="ExitStatus",this.message="Program terminated with exit("+n+")",this.status=n}a.asm=pn,a.then=function(n){if(a.calledRun)n(a);else{var t=a.onRuntimeInitialized;a.onRuntimeInitialized=function(){t&&t(),n(a)}}return a},Un.prototype=new Error,Un.prototype.constructor=Un;function qn(n){function t(){a.calledRun||(a.calledRun=!0,A||(!0,N(U),N(q),a.onRuntimeInitialized&&a.onRuntimeInitialized(),function(){if(a.postRun)for("function"==typeof a.postRun&&(a.postRun=[a.postRun]);a.postRun.length;)W(a.postRun.shift());N(B)}()))}n=n||a.arguments,H>0||(!function(){if(a.preRun)for("function"==typeof a.preRun&&(a.preRun=[a.preRun]);a.preRun.length;)n=a.preRun.shift(),F.unshift(n);var n;N(F)}(),H>0||a.calledRun||(a.setStatus?(a.setStatus("Running..."),setTimeout(function(){setTimeout(function(){a.setStatus("")},1),t()},1)):t()))}G=function n(){a.calledRun||qn(),a.calledRun||(G=n)},a.run=qn;function Bn(n){throw a.onAbort&&a.onAbort(n),h(n+=""),v(n),A=!0,1,"abort("+n+"). Build with -s ASSERTIONS=1 for more info."}if(a.abort=Bn,a.preInit)for("function"==typeof a.preInit&&(a.preInit=[a.preInit]);a.preInit.length>0;)a.preInit.pop()();return a.noExitRuntime=!0,qn(),a.ready=new Promise(function(n,t){delete a.then,a.onAbort=function(n){t(n)},W(function(){n(a)})}),i}}();n.exports=i}).call(this,e(2),"/")},function(n,t,e){n.exports=e(19)},function(n,t,e){var r=function(n){"use strict";var t,e=Object.prototype,r=e.hasOwnProperty,i="function"===typeof Symbol?Symbol:{},o=i.iterator||"@@iterator",a=i.asyncIterator||"@@asyncIterator",u=i.toStringTag||"@@toStringTag";function s(n,t,e,r){var i=t&&t.prototype instanceof m?t:m,o=Object.create(i.prototype),a=new k(r||[]);return o._invoke=function(n,t,e){var r=l;return function(i,o){if(r===f)throw new Error("Generator is already running");if(r===p){if("throw"===i)throw o;return R()}for(e.method=i,e.arg=o;;){var a=e.delegate;if(a){var u=j(a,e);if(u){if(u===d)continue;return u}}if("next"===e.method)e.sent=e._sent=e.arg;else if("throw"===e.method){if(r===l)throw r=p,e.arg;e.dispatchException(e.arg)}else"return"===e.method&&e.abrupt("return",e.arg);r=f;var s=c(n,t,e);if("normal"===s.type){if(r=e.done?p:_,s.arg===d)continue;return{value:s.arg,done:e.done}}"throw"===s.type&&(r=p,e.method="throw",e.arg=s.arg)}}}(n,e,a),o}function c(n,t,e){try{return{type:"normal",arg:n.call(t,e)}}catch(r){return{type:"throw",arg:r}}}n.wrap=s;var l="suspendedStart",_="suspendedYield",f="executing",p="completed",d={};function m(){}function y(){}function h(){}var v={};v[o]=function(){return this};var g=Object.getPrototypeOf,b=g&&g(g(E([])));b&&b!==e&&r.call(b,o)&&(v=b);var w=h.prototype=m.prototype=Object.create(v);function x(n){["next","throw","return"].forEach(function(t){n[t]=function(n){return this._invoke(t,n)}})}function A(n){var t;this._invoke=function(e,i){function o(){return new Promise(function(t,o){!function t(e,i,o,a){var u=c(n[e],n,i);if("throw"!==u.type){var s=u.arg,l=s.value;return l&&"object"===typeof l&&r.call(l,"__await")?Promise.resolve(l.__await).then(function(n){t("next",n,o,a)},function(n){t("throw",n,o,a)}):Promise.resolve(l).then(function(n){s.value=n,o(s)},function(n){return t("throw",n,o,a)})}a(u.arg)}(e,i,t,o)})}return t=t?t.then(o,o):o()}}function j(n,e){var r=n.iterator[e.method];if(r===t){if(e.delegate=null,"throw"===e.method){if(n.iterator.return&&(e.method="return",e.arg=t,j(n,e),"throw"===e.method))return d;e.method="throw",e.arg=new TypeError("The iterator does not provide a 'throw' method")}return d}var i=c(r,n.iterator,e.arg);if("throw"===i.type)return e.method="throw",e.arg=i.arg,e.delegate=null,d;var o=i.arg;return o?o.done?(e[n.resultName]=o.value,e.next=n.nextLoc,"return"!==e.method&&(e.method="next",e.arg=t),e.delegate=null,d):o:(e.method="throw",e.arg=new TypeError("iterator result is not an object"),e.delegate=null,d)}function C(n){var t={tryLoc:n[0]};1 in n&&(t.catchLoc=n[1]),2 in n&&(t.finallyLoc=n[2],t.afterLoc=n[3]),this.tryEntries.push(t)}function S(n){var t=n.completion||{};t.type="normal",delete t.arg,n.completion=t}function k(n){this.tryEntries=[{tryLoc:"root"}],n.forEach(C,this),this.reset(!0)}function E(n){if(n){var e=n[o];if(e)return e.call(n);if("function"===typeof n.next)return n;if(!isNaN(n.length)){var i=-1,a=function e(){for(;++i=0;--o){var a=this.tryEntries[o],u=a.completion;if("root"===a.tryLoc)return i("end");if(a.tryLoc<=this.prev){var s=r.call(a,"catchLoc"),c=r.call(a,"finallyLoc");if(s&&c){if(this.prev=0;--e){var i=this.tryEntries[e];if(i.tryLoc<=this.prev&&r.call(i,"finallyLoc")&&this.prev=0;--t){var e=this.tryEntries[t];if(e.finallyLoc===n)return this.complete(e.completion,e.afterLoc),S(e),d}},catch:function(n){for(var t=this.tryEntries.length-1;t>=0;--t){var e=this.tryEntries[t];if(e.tryLoc===n){var r=e.completion;if("throw"===r.type){var i=r.arg;S(e)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(n,e,r){return this.delegate={iterator:E(n),resultName:e,nextLoc:r},"next"===this.method&&(this.arg=t),d}},n}(n.exports);try{regeneratorRuntime=r}catch(i){Function("r","regeneratorRuntime = r")(r)}},function(n,t,e){"use strict";var r=e(0),i=e(5),o=e(21),a=e(11);function u(n){var t=new o(n),e=i(o.prototype.request,t);return r.extend(e,o.prototype,t),r.extend(e,t),e}var s=u(e(8));s.Axios=o,s.create=function(n){return u(a(s.defaults,n))},s.Cancel=e(12),s.CancelToken=e(33),s.isCancel=e(7),s.all=function(n){return Promise.all(n)},s.spread=e(34),n.exports=s,n.exports.default=s},function(n,t){n.exports=function(n){return null!=n&&null!=n.constructor&&"function"===typeof n.constructor.isBuffer&&n.constructor.isBuffer(n)}},function(n,t,e){"use strict";var r=e(0),i=e(6),o=e(22),a=e(23),u=e(11);function s(n){this.defaults=n,this.interceptors={request:new o,response:new o}}s.prototype.request=function(n){"string"===typeof n?(n=arguments[1]||{}).url=arguments[0]:n=n||{},(n=u(this.defaults,n)).method=n.method?n.method.toLowerCase():"get";var t=[a,void 0],e=Promise.resolve(n);for(this.interceptors.request.forEach(function(n){t.unshift(n.fulfilled,n.rejected)}),this.interceptors.response.forEach(function(n){t.push(n.fulfilled,n.rejected)});t.length;)e=e.then(t.shift(),t.shift());return e},s.prototype.getUri=function(n){return n=u(this.defaults,n),i(n.url,n.params,n.paramsSerializer).replace(/^\?/,"")},r.forEach(["delete","get","head","options"],function(n){s.prototype[n]=function(t,e){return this.request(r.merge(e||{},{method:n,url:t}))}}),r.forEach(["post","put","patch"],function(n){s.prototype[n]=function(t,e,i){return this.request(r.merge(i||{},{method:n,url:t,data:e}))}}),n.exports=s},function(n,t,e){"use strict";var r=e(0);function i(){this.handlers=[]}i.prototype.use=function(n,t){return this.handlers.push({fulfilled:n,rejected:t}),this.handlers.length-1},i.prototype.eject=function(n){this.handlers[n]&&(this.handlers[n]=null)},i.prototype.forEach=function(n){r.forEach(this.handlers,function(t){null!==t&&n(t)})},n.exports=i},function(n,t,e){"use strict";var r=e(0),i=e(24),o=e(7),a=e(8),u=e(31),s=e(32);function c(n){n.cancelToken&&n.cancelToken.throwIfRequested()}n.exports=function(n){return c(n),n.baseURL&&!u(n.url)&&(n.url=s(n.baseURL,n.url)),n.headers=n.headers||{},n.data=i(n.data,n.headers,n.transformRequest),n.headers=r.merge(n.headers.common||{},n.headers[n.method]||{},n.headers||{}),r.forEach(["delete","get","head","post","put","patch","common"],function(t){delete n.headers[t]}),(n.adapter||a.adapter)(n).then(function(t){return c(n),t.data=i(t.data,t.headers,n.transformResponse),t},function(t){return o(t)||(c(n),t&&t.response&&(t.response.data=i(t.response.data,t.response.headers,n.transformResponse))),Promise.reject(t)})}},function(n,t,e){"use strict";var r=e(0);n.exports=function(n,t,e){return r.forEach(e,function(e){n=e(n,t)}),n}},function(n,t,e){"use strict";var r=e(0);n.exports=function(n,t){r.forEach(n,function(e,r){r!==t&&r.toUpperCase()===t.toUpperCase()&&(n[t]=e,delete n[r])})}},function(n,t,e){"use strict";var r=e(10);n.exports=function(n,t,e){var i=e.config.validateStatus;!i||i(e.status)?n(e):t(r("Request failed with status code "+e.status,e.config,null,e.request,e))}},function(n,t,e){"use strict";n.exports=function(n,t,e,r,i){return n.config=t,e&&(n.code=e),n.request=r,n.response=i,n.isAxiosError=!0,n.toJSON=function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:this.config,code:this.code}},n}},function(n,t,e){"use strict";var r=e(0),i=["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"];n.exports=function(n){var t,e,o,a={};return n?(r.forEach(n.split("\n"),function(n){if(o=n.indexOf(":"),t=r.trim(n.substr(0,o)).toLowerCase(),e=r.trim(n.substr(o+1)),t){if(a[t]&&i.indexOf(t)>=0)return;a[t]="set-cookie"===t?(a[t]?a[t]:[]).concat([e]):a[t]?a[t]+", "+e:e}}),a):a}},function(n,t,e){"use strict";var r=e(0);n.exports=r.isStandardBrowserEnv()?function(){var n,t=/(msie|trident)/i.test(navigator.userAgent),e=document.createElement("a");function i(n){var r=n;return t&&(e.setAttribute("href",r),r=e.href),e.setAttribute("href",r),{href:e.href,protocol:e.protocol?e.protocol.replace(/:$/,""):"",host:e.host,search:e.search?e.search.replace(/^\?/,""):"",hash:e.hash?e.hash.replace(/^#/,""):"",hostname:e.hostname,port:e.port,pathname:"/"===e.pathname.charAt(0)?e.pathname:"/"+e.pathname}}return n=i(window.location.href),function(t){var e=r.isString(t)?i(t):t;return e.protocol===n.protocol&&e.host===n.host}}():function(){return!0}},function(n,t,e){"use strict";var r=e(0);n.exports=r.isStandardBrowserEnv()?{write:function(n,t,e,i,o,a){var u=[];u.push(n+"="+encodeURIComponent(t)),r.isNumber(e)&&u.push("expires="+new Date(e).toGMTString()),r.isString(i)&&u.push("path="+i),r.isString(o)&&u.push("domain="+o),!0===a&&u.push("secure"),document.cookie=u.join("; ")},read:function(n){var t=document.cookie.match(new RegExp("(^|;\\s*)("+n+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove:function(n){this.write(n,"",Date.now()-864e5)}}:{write:function(){},read:function(){return null},remove:function(){}}},function(n,t,e){"use strict";n.exports=function(n){return/^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(n)}},function(n,t,e){"use strict";n.exports=function(n,t){return t?n.replace(/\/+$/,"")+"/"+t.replace(/^\/+/,""):n}},function(n,t,e){"use strict";var r=e(12);function i(n){if("function"!==typeof n)throw new TypeError("executor must be a function.");var t;this.promise=new Promise(function(n){t=n});var e=this;n(function(n){e.reason||(e.reason=new r(n),t(e.reason))})}i.prototype.throwIfRequested=function(){if(this.reason)throw this.reason},i.source=function(){var n;return{token:new i(function(t){n=t}),cancel:n}},n.exports=i},function(n,t,e){"use strict";n.exports=function(n){return function(t){return n.apply(null,t)}}},function(n,t,e){"use strict";function r(n,t){return function(n){if(Array.isArray(n))return n}(n)||function(n,t){var e=[],r=!0,i=!1,o=void 0;try{for(var a,u=n[Symbol.iterator]();!(r=(a=u.next()).done)&&(e.push(a.value),!t||e.length!==t);r=!0);}catch(s){i=!0,o=s}finally{try{r||null==u.return||u.return()}finally{if(i)throw o}}return e}(n,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}e.r(t);var i=e(1),o=e.n(i);function a(n){return function(n){if(Array.isArray(n)){for(var t=0,e=new Array(n.length);t>8;var e=3,o=!0,a=!1,u=void 0;try{for(var s,c=i[Symbol.iterator]();!(o=(s=c.next()).done);o=!0){var l=s.value;t.set(l,e),e+=l.byteLength}}catch(_){a=!0,u=_}finally{try{o||null==c.return||c.return()}finally{if(a)throw u}}r.send(t),i.length=0}},100):r.close(),e(0)},function(n){e(n)}),a}var x=1466809,A=1337416,j=self,C=null,S=null,k=null,E=null,R=null,T=null,D=!1,M=null;function L(n){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"error";n instanceof Error?j.postMessage({action:t,error:n.toString(),stack:n.stack}):j.postMessage({action:t,error:n.toString()})}var O=1<<20,P=function(){function n(t){!function(n,t){if(!(n instanceof t))throw new TypeError("Cannot call a class as a function")}(this,n);var e=new XMLHttpRequest;if(e.open("HEAD",t,!1),e.send(),e.status<200||e.status>=300)throw Error("Failed to load remote file");this.byteLength=parseInt(e.getResponseHeader("Content-Length")),this.url=t,this.buffer=new Uint8Array(this.byteLength),this.chunks=new Uint8Array(this.byteLength+O-1>>20|0)}var t,e,r;return t=n,(e=[{key:"subarray",value:function(n,t){for(var e=n/O|0,r=(t+O-1)/O|0,i=r,o=e,a=e;a=300)throw Error("Failed to load remote file");var s,c=u.getResponseHeader("Content-Range"),l=0;c&&(s=c.match(/bytes (\d+)-(\d+)\/(\d+)/))&&(l=parseInt(s[1])),this.buffer.set(new Uint8Array(u.response),l),e=(l+O-1)/O|0,r=(l+u.response.byteLength+O-1)/O|0;for(var _=e;_=0?D?"spawn".concat(n,".sv"):"single_".concat(n,".sv"):null})},get_file_size:function(n){var t=E.get(n.toLowerCase());return t?t.byteLength:0},get_file_contents:function(n,t,e){var r=E.get(n.toLowerCase());r&&t.set(r.subarray(e,e+t.byteLength))},put_file_contents:function(n,t){n=n.toLowerCase(),E.set(n,t),j.postMessage({action:"fs",func:"update",params:[n,t]})},remove_file:function(n){n=n.toLowerCase(),E.delete(n),j.postMessage({action:"fs",func:"delete",params:[n]})},set_cursor:function(n,t){j.postMessage({action:"cursor",x:n,y:t})},open_keyboard:function(){for(var n=arguments.length,t=new Array(n),e=0;e>16&255,o=r>>8&255,a=255&r;S.fillStyle="rgb(".concat(i,", ").concat(o,", ").concat(a,")"),S.fillText(e,n,t+22)},draw_end:function(){S.restore();var n=C.transferToImageBitmap(),t=[n];T&&t.push(T.buffer),j.postMessage({action:"render",batch:{bitmap:n,belt:T}},t),T=null},draw_belt:function(n){T=n.slice()}},U=null,q=null,B=0,W=0;["create_sound_raw","create_sound","duplicate_sound"].forEach(function(n){I[n]=function(){for(var t=arguments.length,e=new Array(t),r=0;r=B?U.push({func:n,params:e}):j.postMessage({action:"audio",func:n,params:e})}});var H=null;I.websocket_send=function(n){M?M.send(n):H?H.push(n.slice().buffer):j.postMessage({action:"packet",buffer:n})},j.DApi=I;var z=null;function G(n){try{n()}catch(t){L(t)}}function X(n){for(var t=arguments.length,e=new Array(t>1?t-1:0),r=1;r undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\n\n\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' || navigator.product === 'NativeScript' || navigator.product === 'NS')) {\n return false;\n }\n\n return typeof window !== 'undefined' && typeof document !== 'undefined';\n}\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\n\n\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n } // Force an array if not already something iterable\n\n\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\n\n\nfunction merge()\n/* obj1, obj2, obj3, ... */\n{\n var result = {};\n\n function assignValue(val, key) {\n if (typeof result[key] === 'object' && typeof val === 'object') {\n result[key] = merge(result[key], val);\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n\n return result;\n}\n/**\n * Function equal to merge with the difference being that no reference\n * to original objects is kept.\n *\n * @see merge\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\n\n\nfunction deepMerge()\n/* obj1, obj2, obj3, ... */\n{\n var result = {};\n\n function assignValue(val, key) {\n if (typeof result[key] === 'object' && typeof val === 'object') {\n result[key] = deepMerge(result[key], val);\n } else if (typeof val === 'object') {\n result[key] = deepMerge({}, val);\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n\n return result;\n}\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\n\n\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n deepMerge: deepMerge,\n extend: extend,\n trim: trim\n};","module.exports = require(\"regenerator-runtime\");\n","// shim for using process in browser\nvar process = module.exports = {}; // cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\n\nfunction defaultClearTimeout() {\n throw new Error('clearTimeout has not been defined');\n}\n\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n})();\n\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n } // if setTimeout wasn't available but was latter defined\n\n\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch (e) {\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch (e) {\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n}\n\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n } // if clearTimeout wasn't available but was latter defined\n\n\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e) {\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e) {\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n}\n\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n\n draining = false;\n\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n var len = queue.length;\n\n while (len) {\n currentQueue = queue;\n queue = [];\n\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n\n queueIndex = -1;\n len = queue.length;\n }\n\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n\n queue.push(new Item(fun, args));\n\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n}; // v8 likes predictible objects\n\n\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\n\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\n\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\n\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) {\n return [];\n};\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () {\n return '/';\n};\n\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\n\nprocess.umask = function () {\n return 0;\n};","// .dirname, .basename, and .extname methods are extracted from Node.js v8.11.1,\n// backported and transplited with Babel, with backwards-compat fixes\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// resolves . and .. elements in a path array with directory names there\n// must be no slashes, empty elements, or device names (c:\\) in the array\n// (so also no leading and trailing slashes - it does not distinguish\n// relative and absolute paths)\nfunction normalizeArray(parts, allowAboveRoot) {\n // if the path tries to go above the root, `up` ends up > 0\n var up = 0;\n\n for (var i = parts.length - 1; i >= 0; i--) {\n var last = parts[i];\n\n if (last === '.') {\n parts.splice(i, 1);\n } else if (last === '..') {\n parts.splice(i, 1);\n up++;\n } else if (up) {\n parts.splice(i, 1);\n up--;\n }\n } // if the path is allowed to go above the root, restore leading ..s\n\n\n if (allowAboveRoot) {\n for (; up--; up) {\n parts.unshift('..');\n }\n }\n\n return parts;\n} // path.resolve([from ...], to)\n// posix version\n\n\nexports.resolve = function () {\n var resolvedPath = '',\n resolvedAbsolute = false;\n\n for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n var path = i >= 0 ? arguments[i] : process.cwd(); // Skip empty and invalid entries\n\n if (typeof path !== 'string') {\n throw new TypeError('Arguments to path.resolve must be strings');\n } else if (!path) {\n continue;\n }\n\n resolvedPath = path + '/' + resolvedPath;\n resolvedAbsolute = path.charAt(0) === '/';\n } // At this point the path should be resolved to a full absolute path, but\n // handle relative paths to be safe (might happen when process.cwd() fails)\n // Normalize the path\n\n\n resolvedPath = normalizeArray(filter(resolvedPath.split('/'), function (p) {\n return !!p;\n }), !resolvedAbsolute).join('/');\n return (resolvedAbsolute ? '/' : '') + resolvedPath || '.';\n}; // path.normalize(path)\n// posix version\n\n\nexports.normalize = function (path) {\n var isAbsolute = exports.isAbsolute(path),\n trailingSlash = substr(path, -1) === '/'; // Normalize the path\n\n path = normalizeArray(filter(path.split('/'), function (p) {\n return !!p;\n }), !isAbsolute).join('/');\n\n if (!path && !isAbsolute) {\n path = '.';\n }\n\n if (path && trailingSlash) {\n path += '/';\n }\n\n return (isAbsolute ? '/' : '') + path;\n}; // posix version\n\n\nexports.isAbsolute = function (path) {\n return path.charAt(0) === '/';\n}; // posix version\n\n\nexports.join = function () {\n var paths = Array.prototype.slice.call(arguments, 0);\n return exports.normalize(filter(paths, function (p, index) {\n if (typeof p !== 'string') {\n throw new TypeError('Arguments to path.join must be strings');\n }\n\n return p;\n }).join('/'));\n}; // path.relative(from, to)\n// posix version\n\n\nexports.relative = function (from, to) {\n from = exports.resolve(from).substr(1);\n to = exports.resolve(to).substr(1);\n\n function trim(arr) {\n var start = 0;\n\n for (; start < arr.length; start++) {\n if (arr[start] !== '') break;\n }\n\n var end = arr.length - 1;\n\n for (; end >= 0; end--) {\n if (arr[end] !== '') break;\n }\n\n if (start > end) return [];\n return arr.slice(start, end - start + 1);\n }\n\n var fromParts = trim(from.split('/'));\n var toParts = trim(to.split('/'));\n var length = Math.min(fromParts.length, toParts.length);\n var samePartsLength = length;\n\n for (var i = 0; i < length; i++) {\n if (fromParts[i] !== toParts[i]) {\n samePartsLength = i;\n break;\n }\n }\n\n var outputParts = [];\n\n for (var i = samePartsLength; i < fromParts.length; i++) {\n outputParts.push('..');\n }\n\n outputParts = outputParts.concat(toParts.slice(samePartsLength));\n return outputParts.join('/');\n};\n\nexports.sep = '/';\nexports.delimiter = ':';\n\nexports.dirname = function (path) {\n if (typeof path !== 'string') path = path + '';\n if (path.length === 0) return '.';\n var code = path.charCodeAt(0);\n var hasRoot = code === 47\n /*/*/\n ;\n var end = -1;\n var matchedSlash = true;\n\n for (var i = path.length - 1; i >= 1; --i) {\n code = path.charCodeAt(i);\n\n if (code === 47\n /*/*/\n ) {\n if (!matchedSlash) {\n end = i;\n break;\n }\n } else {\n // We saw the first non-path separator\n matchedSlash = false;\n }\n }\n\n if (end === -1) return hasRoot ? '/' : '.';\n\n if (hasRoot && end === 1) {\n // return '//';\n // Backwards-compat fix:\n return '/';\n }\n\n return path.slice(0, end);\n};\n\nfunction basename(path) {\n if (typeof path !== 'string') path = path + '';\n var start = 0;\n var end = -1;\n var matchedSlash = true;\n var i;\n\n for (i = path.length - 1; i >= 0; --i) {\n if (path.charCodeAt(i) === 47\n /*/*/\n ) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n start = i + 1;\n break;\n }\n } else if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // path component\n matchedSlash = false;\n end = i + 1;\n }\n }\n\n if (end === -1) return '';\n return path.slice(start, end);\n} // Uses a mixed approach for backwards-compatibility, as ext behavior changed\n// in new Node.js versions, so only basename() above is backported here\n\n\nexports.basename = function (path, ext) {\n var f = basename(path);\n\n if (ext && f.substr(-1 * ext.length) === ext) {\n f = f.substr(0, f.length - ext.length);\n }\n\n return f;\n};\n\nexports.extname = function (path) {\n if (typeof path !== 'string') path = path + '';\n var startDot = -1;\n var startPart = 0;\n var end = -1;\n var matchedSlash = true; // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find\n\n var preDotState = 0;\n\n for (var i = path.length - 1; i >= 0; --i) {\n var code = path.charCodeAt(i);\n\n if (code === 47\n /*/*/\n ) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n startPart = i + 1;\n break;\n }\n\n continue;\n }\n\n if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // extension\n matchedSlash = false;\n end = i + 1;\n }\n\n if (code === 46\n /*.*/\n ) {\n // If this is our first dot, mark it as the start of our extension\n if (startDot === -1) startDot = i;else if (preDotState !== 1) preDotState = 1;\n } else if (startDot !== -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension\n preDotState = -1;\n }\n }\n\n if (startDot === -1 || end === -1 || // We saw a non-dot character immediately before the dot\n preDotState === 0 || // The (right-most) trimmed path component is exactly '..'\n preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {\n return '';\n }\n\n return path.slice(startDot, end);\n};\n\nfunction filter(xs, f) {\n if (xs.filter) return xs.filter(f);\n var res = [];\n\n for (var i = 0; i < xs.length; i++) {\n if (f(xs[i], i, xs)) res.push(xs[i]);\n }\n\n return res;\n} // String.prototype.substr - negative index don't work in IE8\n\n\nvar substr = 'ab'.substr(-1) === 'b' ? function (str, start, len) {\n return str.substr(start, len);\n} : function (str, start, len) {\n if (start < 0) start = str.length + start;\n return str.substr(start, len);\n};","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n\n return fn.apply(thisArg, args);\n };\n};","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).replace(/%40/gi, '@').replace(/%3A/gi, ':').replace(/%24/g, '$').replace(/%2C/gi, ',').replace(/%20/g, '+').replace(/%5B/gi, '[').replace(/%5D/gi, ']');\n}\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\n\n\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};","'use strict';\n\nvar utils = require('./utils');\n\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter; // Only Node.JS has a process variable that is of [[Class]] process\n\n if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n } else if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n }\n\n return adapter;\n}\n\nvar defaults = {\n adapter: getDefaultAdapter(),\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n\n if (utils.isFormData(data) || utils.isArrayBuffer(data) || utils.isBuffer(data) || utils.isStream(data) || utils.isFile(data) || utils.isBlob(data)) {\n return data;\n }\n\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n\n if (utils.isObject(data)) {\n setContentTypeIfUnset(headers, 'application/json;charset=utf-8');\n return JSON.stringify(data);\n }\n\n return data;\n }],\n transformResponse: [function transformResponse(data) {\n /*eslint no-param-reassign:0*/\n if (typeof data === 'string') {\n try {\n data = JSON.parse(data);\n } catch (e) {\n /* Ignore */\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n maxContentLength: -1,\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n }\n};\ndefaults.headers = {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n};\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\nmodule.exports = defaults;","'use strict';\n\nvar utils = require('./../utils');\n\nvar settle = require('./../core/settle');\n\nvar buildURL = require('./../helpers/buildURL');\n\nvar parseHeaders = require('./../helpers/parseHeaders');\n\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\n\nvar createError = require('../core/createError');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest(); // HTTP basic authentication\n\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password || '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n request.open(config.method.toUpperCase(), buildURL(config.url, config.params, config.paramsSerializer), true); // Set the request timeout in MS\n\n request.timeout = config.timeout; // Listen for ready state\n\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n } // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n\n\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n } // Prepare the response\n\n\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !config.responseType || config.responseType === 'text' ? request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n settle(resolve, reject, response); // Clean up request\n\n request = null;\n }; // Handle browser request cancellation (as opposed to a manual cancellation)\n\n\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request)); // Clean up request\n\n request = null;\n }; // Handle low level network errors\n\n\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request)); // Clean up request\n\n request = null;\n }; // Handle timeout\n\n\n request.ontimeout = function handleTimeout() {\n reject(createError('timeout of ' + config.timeout + 'ms exceeded', config, 'ECONNABORTED', request)); // Clean up request\n\n request = null;\n }; // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n\n\n if (utils.isStandardBrowserEnv()) {\n var cookies = require('./../helpers/cookies'); // Add xsrf header\n\n\n var xsrfValue = (config.withCredentials || isURLSameOrigin(config.url)) && config.xsrfCookieName ? cookies.read(config.xsrfCookieName) : undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n } // Add headers to the request\n\n\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n } // Add withCredentials to request if needed\n\n\n if (config.withCredentials) {\n request.withCredentials = true;\n } // Add responseType to request if needed\n\n\n if (config.responseType) {\n try {\n request.responseType = config.responseType;\n } catch (e) {\n // Expected DOMException thrown by browsers not compatible XMLHttpRequest Level 2.\n // But, this can be suppressed for 'json' type as it can be parsed by default 'transformResponse' function.\n if (config.responseType !== 'json') {\n throw e;\n }\n }\n } // Handle progress if needed\n\n\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n } // Not all browsers support upload events\n\n\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (!request) {\n return;\n }\n\n request.abort();\n reject(cancel); // Clean up request\n\n request = null;\n });\n }\n\n if (requestData === undefined) {\n requestData = null;\n } // Send the request\n\n\n request.send(requestData);\n });\n};","'use strict';\n\nvar enhanceError = require('./enhanceError');\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\n\n\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};","'use strict';\n\nvar utils = require('../utils');\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\n\n\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n utils.forEach(['url', 'method', 'params', 'data'], function valueFromConfig2(prop) {\n if (typeof config2[prop] !== 'undefined') {\n config[prop] = config2[prop];\n }\n });\n utils.forEach(['headers', 'auth', 'proxy'], function mergeDeepProperties(prop) {\n if (utils.isObject(config2[prop])) {\n config[prop] = utils.deepMerge(config1[prop], config2[prop]);\n } else if (typeof config2[prop] !== 'undefined') {\n config[prop] = config2[prop];\n } else if (utils.isObject(config1[prop])) {\n config[prop] = utils.deepMerge(config1[prop]);\n } else if (typeof config1[prop] !== 'undefined') {\n config[prop] = config1[prop];\n }\n });\n utils.forEach(['baseURL', 'transformRequest', 'transformResponse', 'paramsSerializer', 'timeout', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName', 'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress', 'maxContentLength', 'validateStatus', 'maxRedirects', 'httpAgent', 'httpsAgent', 'cancelToken', 'socketPath'], function defaultToConfig2(prop) {\n if (typeof config2[prop] !== 'undefined') {\n config[prop] = config2[prop];\n } else if (typeof config1[prop] !== 'undefined') {\n config[prop] = config1[prop];\n }\n });\n return config;\n};","'use strict';\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\n\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\nmodule.exports = Cancel;","module.exports = __webpack_public_path__ + \"static/media/Diablo.570bd59a.wasm\";","\r\nvar Diablo = (function() {\r\n var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;\r\n return (\r\nfunction(Diablo) {\r\n Diablo = Diablo || {};\r\n\r\n// Copyright 2010 The Emscripten Authors. All rights reserved.\r\n// Emscripten is available under two separate licenses, the MIT license and the\r\n// University of Illinois/NCSA Open Source License. Both these licenses can be\r\n// found in the LICENSE file.\r\n\r\n// The Module object: Our interface to the outside world. We import\r\n// and export values on it. There are various ways Module can be used:\r\n// 1. Not defined. We create it here\r\n// 2. A function parameter, function(Module) { ..generated code.. }\r\n// 3. pre-run appended it, var Module = {}; ..generated code..\r\n// 4. External script tag defines var Module.\r\n// We need to check if Module already exists (e.g. case 3 above).\r\n// Substitution will be replaced with actual code on later stage of the build,\r\n// this way Closure Compiler will not mangle it (e.g. case 4. above).\r\n// Note that if you want to run closure, and also to use Module\r\n// after the generated code, you will need to define var Module = {};\r\n// before the code. Then that object will be used in the code, and you\r\n// can continue to use Module afterwards as well.\r\nvar Module = typeof Diablo !== 'undefined' ? Diablo : {};\r\n\r\n// --pre-jses are emitted after the Module integration code, so that they can\r\n// refer to Module (if they choose; they can also define Module)\r\n\r\n\r\n// Sometimes an existing Module object exists with properties\r\n// meant to overwrite the default module functionality. Here\r\n// we collect those properties and reapply _after_ we configure\r\n// the current environment's defaults to avoid having to be so\r\n// defensive during initialization.\r\nvar moduleOverrides = {};\r\nvar key;\r\nfor (key in Module) {\r\n if (Module.hasOwnProperty(key)) {\r\n moduleOverrides[key] = Module[key];\r\n }\r\n}\r\n\r\nModule['arguments'] = [];\r\nModule['thisProgram'] = './this.program';\r\nModule['quit'] = function(status, toThrow) {\r\n throw toThrow;\r\n};\r\nModule['preRun'] = [];\r\nModule['postRun'] = [];\r\n\r\n// Determine the runtime environment we are in. You can customize this by\r\n// setting the ENVIRONMENT setting at compile time (see settings.js).\r\n\r\nvar ENVIRONMENT_IS_WEB = false;\r\nvar ENVIRONMENT_IS_WORKER = false;\r\nvar ENVIRONMENT_IS_NODE = false;\r\nvar ENVIRONMENT_HAS_NODE = false;\r\nvar ENVIRONMENT_IS_SHELL = false;\r\nENVIRONMENT_IS_WEB = typeof window === 'object';\r\nENVIRONMENT_IS_WORKER = typeof importScripts === 'function';\r\n// A web environment like Electron.js can have Node enabled, so we must\r\n// distinguish between Node-enabled environments and Node environments per se.\r\n// This will allow the former to do things like mount NODEFS.\r\n// Extended check using process.versions fixes issue #8816.\r\n// (Also makes redundant the original check that 'require' is a function.)\r\nENVIRONMENT_HAS_NODE = typeof process === 'object' && typeof process.versions === 'object' && typeof process.versions.node === 'string';\r\nENVIRONMENT_IS_NODE = ENVIRONMENT_HAS_NODE && !ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_WORKER;\r\nENVIRONMENT_IS_SHELL = !ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_NODE && !ENVIRONMENT_IS_WORKER;\r\n\r\n\r\n\r\n// Three configurations we can be running in:\r\n// 1) We could be the application main() thread running in the main JS UI thread. (ENVIRONMENT_IS_WORKER == false and ENVIRONMENT_IS_PTHREAD == false)\r\n// 2) We could be the application main() thread proxied to worker. (with Emscripten -s PROXY_TO_WORKER=1) (ENVIRONMENT_IS_WORKER == true, ENVIRONMENT_IS_PTHREAD == false)\r\n// 3) We could be an application pthread running in a worker. (ENVIRONMENT_IS_WORKER == true and ENVIRONMENT_IS_PTHREAD == true)\r\n\r\n\r\n\r\n\r\n// `/` should be present at the end if `scriptDirectory` is not empty\r\nvar scriptDirectory = '';\r\nfunction locateFile(path) {\r\n if (Module['locateFile']) {\r\n return Module['locateFile'](path, scriptDirectory);\r\n } else {\r\n return scriptDirectory + path;\r\n }\r\n}\r\n\r\n// Hooks that are implemented differently in different runtime environments.\r\nvar read_,\r\n readAsync,\r\n readBinary,\r\n setWindowTitle;\r\n\r\nif (ENVIRONMENT_IS_NODE) {\r\n scriptDirectory = __dirname + '/';\r\n\r\n // Expose functionality in the same simple way that the shells work\r\n // Note that we pollute the global namespace here, otherwise we break in node\r\n var nodeFS;\r\n var nodePath;\r\n\r\n read_ = function shell_read(filename, binary) {\r\n var ret;\r\n if (!nodeFS) nodeFS = require('fs');\r\n if (!nodePath) nodePath = require('path');\r\n filename = nodePath['normalize'](filename);\r\n ret = nodeFS['readFileSync'](filename);\r\n return binary ? ret : ret.toString();\r\n };\r\n\r\n readBinary = function readBinary(filename) {\r\n var ret = read_(filename, true);\r\n if (!ret.buffer) {\r\n ret = new Uint8Array(ret);\r\n }\r\n assert(ret.buffer);\r\n return ret;\r\n };\r\n\r\n if (process['argv'].length > 1) {\r\n Module['thisProgram'] = process['argv'][1].replace(/\\\\/g, '/');\r\n }\r\n\r\n Module['arguments'] = process['argv'].slice(2);\r\n\r\n // MODULARIZE will export the module in the proper place outside, we don't need to export here\r\n\r\n process['on']('uncaughtException', function(ex) {\r\n // suppress ExitStatus exceptions from showing an error\r\n if (!(ex instanceof ExitStatus)) {\r\n throw ex;\r\n }\r\n });\r\n // Currently node will swallow unhandled rejections, but this behavior is\r\n // deprecated, and in the future it will exit with error status.\r\n process['on']('unhandledRejection', abort);\r\n\r\n Module['quit'] = function(status) {\r\n process['exit'](status);\r\n };\r\n\r\n Module['inspect'] = function () { return '[Emscripten Module object]'; };\r\n} else\r\nif (ENVIRONMENT_IS_SHELL) {\r\n\r\n\r\n if (typeof read != 'undefined') {\r\n read_ = function shell_read(f) {\r\n return read(f);\r\n };\r\n }\r\n\r\n readBinary = function readBinary(f) {\r\n var data;\r\n if (typeof readbuffer === 'function') {\r\n return new Uint8Array(readbuffer(f));\r\n }\r\n data = read(f, 'binary');\r\n assert(typeof data === 'object');\r\n return data;\r\n };\r\n\r\n if (typeof scriptArgs != 'undefined') {\r\n Module['arguments'] = scriptArgs;\r\n } else if (typeof arguments != 'undefined') {\r\n Module['arguments'] = arguments;\r\n }\r\n\r\n if (typeof quit === 'function') {\r\n Module['quit'] = function(status) {\r\n quit(status);\r\n }\r\n }\r\n} else\r\nif (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) {\r\n if (ENVIRONMENT_IS_WORKER) { // Check worker, not web, since window could be polyfilled\r\n scriptDirectory = self.location.href;\r\n } else if (document.currentScript) { // web\r\n scriptDirectory = document.currentScript.src;\r\n }\r\n // When MODULARIZE (and not _INSTANCE), this JS may be executed later, after document.currentScript\r\n // is gone, so we saved it, and we use it here instead of any other info.\r\n if (_scriptDir) {\r\n scriptDirectory = _scriptDir;\r\n }\r\n // blob urls look like blob:http://site.com/etc/etc and we cannot infer anything from them.\r\n // otherwise, slice off the final part of the url to find the script directory.\r\n // if scriptDirectory does not contain a slash, lastIndexOf will return -1,\r\n // and scriptDirectory will correctly be replaced with an empty string.\r\n if (scriptDirectory.indexOf('blob:') !== 0) {\r\n scriptDirectory = scriptDirectory.substr(0, scriptDirectory.lastIndexOf('/')+1);\r\n } else {\r\n scriptDirectory = '';\r\n }\r\n\r\n\r\n read_ = function shell_read(url) {\r\n var xhr = new XMLHttpRequest();\r\n xhr.open('GET', url, false);\r\n xhr.send(null);\r\n return xhr.responseText;\r\n };\r\n\r\n if (ENVIRONMENT_IS_WORKER) {\r\n readBinary = function readBinary(url) {\r\n var xhr = new XMLHttpRequest();\r\n xhr.open('GET', url, false);\r\n xhr.responseType = 'arraybuffer';\r\n xhr.send(null);\r\n return new Uint8Array(xhr.response);\r\n };\r\n }\r\n\r\n readAsync = function readAsync(url, onload, onerror) {\r\n var xhr = new XMLHttpRequest();\r\n xhr.open('GET', url, true);\r\n xhr.responseType = 'arraybuffer';\r\n xhr.onload = function xhr_onload() {\r\n if (xhr.status == 200 || (xhr.status == 0 && xhr.response)) { // file URLs can return 0\r\n onload(xhr.response);\r\n return;\r\n }\r\n onerror();\r\n };\r\n xhr.onerror = onerror;\r\n xhr.send(null);\r\n };\r\n\r\n setWindowTitle = function(title) { document.title = title };\r\n} else\r\n{\r\n}\r\n\r\n// Set up the out() and err() hooks, which are how we can print to stdout or\r\n// stderr, respectively.\r\n// If the user provided Module.print or printErr, use that. Otherwise,\r\n// console.log is checked first, as 'print' on the web will open a print dialogue\r\n// printErr is preferable to console.warn (works better in shells)\r\n// bind(console) is necessary to fix IE/Edge closed dev tools panel behavior.\r\nvar out = Module['print'] || (typeof console !== 'undefined' ? console.log.bind(console) : (typeof print !== 'undefined' ? print : null));\r\nvar err = Module['printErr'] || (typeof printErr !== 'undefined' ? printErr : ((typeof console !== 'undefined' && console.warn.bind(console)) || out));\r\n\r\n// Merge back in the overrides\r\nfor (key in moduleOverrides) {\r\n if (moduleOverrides.hasOwnProperty(key)) {\r\n Module[key] = moduleOverrides[key];\r\n }\r\n}\r\n// Free the object hierarchy contained in the overrides, this lets the GC\r\n// reclaim data used e.g. in memoryInitializerRequest, which is a large typed array.\r\nmoduleOverrides = undefined;\r\n\r\n// perform assertions in shell.js after we set up out() and err(), as otherwise if an assertion fails it cannot print the message\r\n\r\n// TODO remove when SDL2 is fixed; also add the above assertion\r\n\r\n\r\n\r\n// Copyright 2017 The Emscripten Authors. All rights reserved.\r\n// Emscripten is available under two separate licenses, the MIT license and the\r\n// University of Illinois/NCSA Open Source License. Both these licenses can be\r\n// found in the LICENSE file.\r\n\r\n// {{PREAMBLE_ADDITIONS}}\r\n\r\nvar STACK_ALIGN = 16;\r\n\r\n\r\nfunction dynamicAlloc(size) {\r\n var ret = HEAP32[DYNAMICTOP_PTR>>2];\r\n var end = (ret + size + 15) & -16;\r\n if (end > _emscripten_get_heap_size()) {\r\n abort();\r\n }\r\n HEAP32[DYNAMICTOP_PTR>>2] = end;\r\n return ret;\r\n}\r\n\r\nfunction alignMemory(size, factor) {\r\n if (!factor) factor = STACK_ALIGN; // stack alignment (16-byte) by default\r\n return Math.ceil(size / factor) * factor;\r\n}\r\n\r\nfunction getNativeTypeSize(type) {\r\n switch (type) {\r\n case 'i1': case 'i8': return 1;\r\n case 'i16': return 2;\r\n case 'i32': return 4;\r\n case 'i64': return 8;\r\n case 'float': return 4;\r\n case 'double': return 8;\r\n default: {\r\n if (type[type.length-1] === '*') {\r\n return 4; // A pointer\r\n } else if (type[0] === 'i') {\r\n var bits = parseInt(type.substr(1));\r\n assert(bits % 8 === 0, 'getNativeTypeSize invalid bits ' + bits + ', type ' + type);\r\n return bits / 8;\r\n } else {\r\n return 0;\r\n }\r\n }\r\n }\r\n}\r\n\r\nfunction warnOnce(text) {\r\n if (!warnOnce.shown) warnOnce.shown = {};\r\n if (!warnOnce.shown[text]) {\r\n warnOnce.shown[text] = 1;\r\n err(text);\r\n }\r\n}\r\n\r\nvar asm2wasmImports = { // special asm2wasm imports\r\n \"f64-rem\": function(x, y) {\r\n return x % y;\r\n },\r\n \"debugger\": function() {\r\n debugger;\r\n }\r\n};\r\n\r\n\r\n\r\nvar jsCallStartIndex = 1;\r\nvar functionPointers = new Array(0);\r\n\r\n// Wraps a JS function as a wasm function with a given signature.\r\n// In the future, we may get a WebAssembly.Function constructor. Until then,\r\n// we create a wasm module that takes the JS function as an import with a given\r\n// signature, and re-exports that as a wasm function.\r\nfunction convertJsFunctionToWasm(func, sig) {\r\n\r\n // The module is static, with the exception of the type section, which is\r\n // generated based on the signature passed in.\r\n var typeSection = [\r\n 0x01, // id: section,\r\n 0x00, // length: 0 (placeholder)\r\n 0x01, // count: 1\r\n 0x60, // form: func\r\n ];\r\n var sigRet = sig.slice(0, 1);\r\n var sigParam = sig.slice(1);\r\n var typeCodes = {\r\n 'i': 0x7f, // i32\r\n 'j': 0x7e, // i64\r\n 'f': 0x7d, // f32\r\n 'd': 0x7c, // f64\r\n };\r\n\r\n // Parameters, length + signatures\r\n typeSection.push(sigParam.length);\r\n for (var i = 0; i < sigParam.length; ++i) {\r\n typeSection.push(typeCodes[sigParam[i]]);\r\n }\r\n\r\n // Return values, length + signatures\r\n // With no multi-return in MVP, either 0 (void) or 1 (anything else)\r\n if (sigRet == 'v') {\r\n typeSection.push(0x00);\r\n } else {\r\n typeSection = typeSection.concat([0x01, typeCodes[sigRet]]);\r\n }\r\n\r\n // Write the overall length of the type section back into the section header\r\n // (excepting the 2 bytes for the section id and length)\r\n typeSection[1] = typeSection.length - 2;\r\n\r\n // Rest of the module is static\r\n var bytes = new Uint8Array([\r\n 0x00, 0x61, 0x73, 0x6d, // magic (\"\\0asm\")\r\n 0x01, 0x00, 0x00, 0x00, // version: 1\r\n ].concat(typeSection, [\r\n 0x02, 0x07, // import section\r\n // (import \"e\" \"f\" (func 0 (type 0)))\r\n 0x01, 0x01, 0x65, 0x01, 0x66, 0x00, 0x00,\r\n 0x07, 0x05, // export section\r\n // (export \"f\" (func 0 (type 0)))\r\n 0x01, 0x01, 0x66, 0x00, 0x00,\r\n ]));\r\n\r\n // We can compile this wasm module synchronously because it is very small.\r\n // This accepts an import (at \"e.f\"), that it reroutes to an export (at \"f\")\r\n var module = new WebAssembly.Module(bytes);\r\n var instance = new WebAssembly.Instance(module, {\r\n e: {\r\n f: func\r\n }\r\n });\r\n var wrappedFunc = instance.exports.f;\r\n return wrappedFunc;\r\n}\r\n\r\n// Add a wasm function to the table.\r\nfunction addFunctionWasm(func, sig) {\r\n var table = wasmTable;\r\n var ret = table.length;\r\n\r\n // Grow the table\r\n try {\r\n table.grow(1);\r\n } catch (err) {\r\n if (!err instanceof RangeError) {\r\n throw err;\r\n }\r\n throw 'Unable to grow wasm table. Use a higher value for RESERVED_FUNCTION_POINTERS or set ALLOW_TABLE_GROWTH.';\r\n }\r\n\r\n // Insert new element\r\n try {\r\n // Attempting to call this with JS function will cause of table.set() to fail\r\n table.set(ret, func);\r\n } catch (err) {\r\n if (!err instanceof TypeError) {\r\n throw err;\r\n }\r\n assert(typeof sig !== 'undefined', 'Missing signature argument to addFunction');\r\n var wrapped = convertJsFunctionToWasm(func, sig);\r\n table.set(ret, wrapped);\r\n }\r\n\r\n return ret;\r\n}\r\n\r\nfunction removeFunctionWasm(index) {\r\n // TODO(sbc): Look into implementing this to allow re-using of table slots\r\n}\r\n\r\n// 'sig' parameter is required for the llvm backend but only when func is not\r\n// already a WebAssembly function.\r\nfunction addFunction(func, sig) {\r\n\r\n\r\n var base = 0;\r\n for (var i = base; i < base + 0; i++) {\r\n if (!functionPointers[i]) {\r\n functionPointers[i] = func;\r\n return jsCallStartIndex + i;\r\n }\r\n }\r\n throw 'Finished up all reserved function pointers. Use a higher value for RESERVED_FUNCTION_POINTERS.';\r\n\r\n}\r\n\r\nfunction removeFunction(index) {\r\n\r\n functionPointers[index-jsCallStartIndex] = null;\r\n}\r\n\r\nvar funcWrappers = {};\r\n\r\nfunction getFuncWrapper(func, sig) {\r\n if (!func) return; // on null pointer, return undefined\r\n assert(sig);\r\n if (!funcWrappers[sig]) {\r\n funcWrappers[sig] = {};\r\n }\r\n var sigCache = funcWrappers[sig];\r\n if (!sigCache[func]) {\r\n // optimize away arguments usage in common cases\r\n if (sig.length === 1) {\r\n sigCache[func] = function dynCall_wrapper() {\r\n return dynCall(sig, func);\r\n };\r\n } else if (sig.length === 2) {\r\n sigCache[func] = function dynCall_wrapper(arg) {\r\n return dynCall(sig, func, [arg]);\r\n };\r\n } else {\r\n // general case\r\n sigCache[func] = function dynCall_wrapper() {\r\n return dynCall(sig, func, Array.prototype.slice.call(arguments));\r\n };\r\n }\r\n }\r\n return sigCache[func];\r\n}\r\n\r\n\r\nfunction makeBigInt(low, high, unsigned) {\r\n return unsigned ? ((+((low>>>0)))+((+((high>>>0)))*4294967296.0)) : ((+((low>>>0)))+((+((high|0)))*4294967296.0));\r\n}\r\n\r\nfunction dynCall(sig, ptr, args) {\r\n if (args && args.length) {\r\n return Module['dynCall_' + sig].apply(null, [ptr].concat(args));\r\n } else {\r\n return Module['dynCall_' + sig].call(null, ptr);\r\n }\r\n}\r\n\r\nvar tempRet0 = 0;\r\n\r\nvar setTempRet0 = function(value) {\r\n tempRet0 = value;\r\n};\r\n\r\nvar getTempRet0 = function() {\r\n return tempRet0;\r\n};\r\n\r\n\r\nvar Runtime = {\r\n};\r\n\r\n// The address globals begin at. Very low in memory, for code size and optimization opportunities.\r\n// Above 0 is static memory, starting with globals.\r\n// Then the stack.\r\n// Then 'dynamic' memory for sbrk.\r\nvar GLOBAL_BASE = 1024;\r\n\r\n\r\n\r\n\r\n// === Preamble library stuff ===\r\n\r\n// Documentation for the public APIs defined in this file must be updated in:\r\n// site/source/docs/api_reference/preamble.js.rst\r\n// A prebuilt local version of the documentation is available at:\r\n// site/build/text/docs/api_reference/preamble.js.txt\r\n// You can also build docs locally as HTML or other formats in site/\r\n// An online HTML version (which may be of a different version of Emscripten)\r\n// is up at http://kripken.github.io/emscripten-site/docs/api_reference/preamble.js.html\r\n\r\n\r\n\r\nif (typeof WebAssembly !== 'object') {\r\n err('no native wasm support detected');\r\n}\r\n\r\n\r\n// In MINIMAL_RUNTIME, setValue() and getValue() are only available when building with safe heap enabled, for heap safety checking.\r\n// In traditional runtime, setValue() and getValue() are always available (although their use is highly discouraged due to perf penalties)\r\n\r\n/** @type {function(number, number, string, boolean=)} */\r\nfunction setValue(ptr, value, type, noSafe) {\r\n type = type || 'i8';\r\n if (type.charAt(type.length-1) === '*') type = 'i32'; // pointers are 32-bit\r\n switch(type) {\r\n case 'i1': HEAP8[((ptr)>>0)]=value; break;\r\n case 'i8': HEAP8[((ptr)>>0)]=value; break;\r\n case 'i16': HEAP16[((ptr)>>1)]=value; break;\r\n case 'i32': HEAP32[((ptr)>>2)]=value; break;\r\n case 'i64': (tempI64 = [value>>>0,(tempDouble=value,(+(Math_abs(tempDouble))) >= 1.0 ? (tempDouble > 0.0 ? ((Math_min((+(Math_floor((tempDouble)/4294967296.0))), 4294967295.0))|0)>>>0 : (~~((+(Math_ceil((tempDouble - +(((~~(tempDouble)))>>>0))/4294967296.0)))))>>>0) : 0)],HEAP32[((ptr)>>2)]=tempI64[0],HEAP32[(((ptr)+(4))>>2)]=tempI64[1]); break;\r\n case 'float': HEAPF32[((ptr)>>2)]=value; break;\r\n case 'double': HEAPF64[((ptr)>>3)]=value; break;\r\n default: abort('invalid type for setValue: ' + type);\r\n }\r\n}\r\n\r\n/** @type {function(number, string, boolean=)} */\r\nfunction getValue(ptr, type, noSafe) {\r\n type = type || 'i8';\r\n if (type.charAt(type.length-1) === '*') type = 'i32'; // pointers are 32-bit\r\n switch(type) {\r\n case 'i1': return HEAP8[((ptr)>>0)];\r\n case 'i8': return HEAP8[((ptr)>>0)];\r\n case 'i16': return HEAP16[((ptr)>>1)];\r\n case 'i32': return HEAP32[((ptr)>>2)];\r\n case 'i64': return HEAP32[((ptr)>>2)];\r\n case 'float': return HEAPF32[((ptr)>>2)];\r\n case 'double': return HEAPF64[((ptr)>>3)];\r\n default: abort('invalid type for getValue: ' + type);\r\n }\r\n return null;\r\n}\r\n\r\n\r\n\r\n\r\n\r\n// Wasm globals\r\n\r\nvar wasmMemory;\r\n\r\n// Potentially used for direct table calls.\r\nvar wasmTable;\r\n\r\n\r\n//========================================\r\n// Runtime essentials\r\n//========================================\r\n\r\n// whether we are quitting the application. no code should run after this.\r\n// set in exit() and abort()\r\nvar ABORT = false;\r\n\r\n// set by exit() and abort(). Passed to 'onExit' handler.\r\n// NOTE: This is also used as the process return code code in shell environments\r\n// but only when noExitRuntime is false.\r\nvar EXITSTATUS = 0;\r\n\r\n/** @type {function(*, string=)} */\r\nfunction assert(condition, text) {\r\n if (!condition) {\r\n abort('Assertion failed: ' + text);\r\n }\r\n}\r\n\r\n// Returns the C function with a specified identifier (for C++, you need to do manual name mangling)\r\nfunction getCFunc(ident) {\r\n var func = Module['_' + ident]; // closure exported function\r\n assert(func, 'Cannot call unknown function ' + ident + ', make sure it is exported');\r\n return func;\r\n}\r\n\r\n// C calling interface.\r\nfunction ccall(ident, returnType, argTypes, args, opts) {\r\n // For fast lookup of conversion functions\r\n var toC = {\r\n 'string': function(str) {\r\n var ret = 0;\r\n if (str !== null && str !== undefined && str !== 0) { // null string\r\n // at most 4 bytes per UTF-8 code point, +1 for the trailing '\\0'\r\n var len = (str.length << 2) + 1;\r\n ret = stackAlloc(len);\r\n stringToUTF8(str, ret, len);\r\n }\r\n return ret;\r\n },\r\n 'array': function(arr) {\r\n var ret = stackAlloc(arr.length);\r\n writeArrayToMemory(arr, ret);\r\n return ret;\r\n }\r\n };\r\n\r\n function convertReturnValue(ret) {\r\n if (returnType === 'string') return UTF8ToString(ret);\r\n if (returnType === 'boolean') return Boolean(ret);\r\n return ret;\r\n }\r\n\r\n var func = getCFunc(ident);\r\n var cArgs = [];\r\n var stack = 0;\r\n if (args) {\r\n for (var i = 0; i < args.length; i++) {\r\n var converter = toC[argTypes[i]];\r\n if (converter) {\r\n if (stack === 0) stack = stackSave();\r\n cArgs[i] = converter(args[i]);\r\n } else {\r\n cArgs[i] = args[i];\r\n }\r\n }\r\n }\r\n var ret = func.apply(null, cArgs);\r\n ret = convertReturnValue(ret);\r\n if (stack !== 0) stackRestore(stack);\r\n return ret;\r\n}\r\n\r\nfunction cwrap(ident, returnType, argTypes, opts) {\r\n argTypes = argTypes || [];\r\n // When the function takes numbers and returns a number, we can just return\r\n // the original function\r\n var numericArgs = argTypes.every(function(type){ return type === 'number'});\r\n var numericRet = returnType !== 'string';\r\n if (numericRet && numericArgs && !opts) {\r\n return getCFunc(ident);\r\n }\r\n return function() {\r\n return ccall(ident, returnType, argTypes, arguments, opts);\r\n }\r\n}\r\n\r\nvar ALLOC_NORMAL = 0; // Tries to use _malloc()\r\nvar ALLOC_STACK = 1; // Lives for the duration of the current function call\r\nvar ALLOC_DYNAMIC = 2; // Cannot be freed except through sbrk\r\nvar ALLOC_NONE = 3; // Do not allocate\r\n\r\n// allocate(): This is for internal use. You can use it yourself as well, but the interface\r\n// is a little tricky (see docs right below). The reason is that it is optimized\r\n// for multiple syntaxes to save space in generated code. So you should\r\n// normally not use allocate(), and instead allocate memory using _malloc(),\r\n// initialize it with setValue(), and so forth.\r\n// @slab: An array of data, or a number. If a number, then the size of the block to allocate,\r\n// in *bytes* (note that this is sometimes confusing: the next parameter does not\r\n// affect this!)\r\n// @types: Either an array of types, one for each byte (or 0 if no type at that position),\r\n// or a single type which is used for the entire block. This only matters if there\r\n// is initial data - if @slab is a number, then this does not matter at all and is\r\n// ignored.\r\n// @allocator: How to allocate memory, see ALLOC_*\r\n/** @type {function((TypedArray|Array|number), string, number, number=)} */\r\nfunction allocate(slab, types, allocator, ptr) {\r\n var zeroinit, size;\r\n if (typeof slab === 'number') {\r\n zeroinit = true;\r\n size = slab;\r\n } else {\r\n zeroinit = false;\r\n size = slab.length;\r\n }\r\n\r\n var singleType = typeof types === 'string' ? types : null;\r\n\r\n var ret;\r\n if (allocator == ALLOC_NONE) {\r\n ret = ptr;\r\n } else {\r\n ret = [_malloc,\r\n stackAlloc,\r\n dynamicAlloc][allocator](Math.max(size, singleType ? 1 : types.length));\r\n }\r\n\r\n if (zeroinit) {\r\n var stop;\r\n ptr = ret;\r\n assert((ret & 3) == 0);\r\n stop = ret + (size & ~3);\r\n for (; ptr < stop; ptr += 4) {\r\n HEAP32[((ptr)>>2)]=0;\r\n }\r\n stop = ret + size;\r\n while (ptr < stop) {\r\n HEAP8[((ptr++)>>0)]=0;\r\n }\r\n return ret;\r\n }\r\n\r\n if (singleType === 'i8') {\r\n if (slab.subarray || slab.slice) {\r\n HEAPU8.set(/** @type {!Uint8Array} */ (slab), ret);\r\n } else {\r\n HEAPU8.set(new Uint8Array(slab), ret);\r\n }\r\n return ret;\r\n }\r\n\r\n var i = 0, type, typeSize, previousType;\r\n while (i < size) {\r\n var curr = slab[i];\r\n\r\n type = singleType || types[i];\r\n if (type === 0) {\r\n i++;\r\n continue;\r\n }\r\n\r\n if (type == 'i64') type = 'i32'; // special case: we have one i32 here, and one i32 later\r\n\r\n setValue(ret+i, curr, type);\r\n\r\n // no need to look up size unless type changes, so cache it\r\n if (previousType !== type) {\r\n typeSize = getNativeTypeSize(type);\r\n previousType = type;\r\n }\r\n i += typeSize;\r\n }\r\n\r\n return ret;\r\n}\r\n\r\n// Allocate memory during any stage of startup - static memory early on, dynamic memory later, malloc when ready\r\nfunction getMemory(size) {\r\n if (!runtimeInitialized) return dynamicAlloc(size);\r\n return _malloc(size);\r\n}\r\n\r\n\r\n\r\n\r\n/** @type {function(number, number=)} */\r\nfunction Pointer_stringify(ptr, length) {\r\n abort(\"this function has been removed - you should use UTF8ToString(ptr, maxBytesToRead) instead!\");\r\n}\r\n\r\n// Given a pointer 'ptr' to a null-terminated ASCII-encoded string in the emscripten HEAP, returns\r\n// a copy of that string as a Javascript String object.\r\n\r\nfunction AsciiToString(ptr) {\r\n var str = '';\r\n while (1) {\r\n var ch = HEAPU8[((ptr++)>>0)];\r\n if (!ch) return str;\r\n str += String.fromCharCode(ch);\r\n }\r\n}\r\n\r\n// Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr',\r\n// null-terminated and encoded in ASCII form. The copy will require at most str.length+1 bytes of space in the HEAP.\r\n\r\nfunction stringToAscii(str, outPtr) {\r\n return writeAsciiToMemory(str, outPtr, false);\r\n}\r\n\r\n\r\n// Given a pointer 'ptr' to a null-terminated UTF8-encoded string in the given array that contains uint8 values, returns\r\n// a copy of that string as a Javascript String object.\r\n\r\nvar UTF8Decoder = typeof TextDecoder !== 'undefined' ? new TextDecoder('utf8') : undefined;\r\n\r\n/**\r\n * @param {number} idx\r\n * @param {number=} maxBytesToRead\r\n * @return {string}\r\n */\r\nfunction UTF8ArrayToString(u8Array, idx, maxBytesToRead) {\r\n var endIdx = idx + maxBytesToRead;\r\n var endPtr = idx;\r\n // TextDecoder needs to know the byte length in advance, it doesn't stop on null terminator by itself.\r\n // Also, use the length info to avoid running tiny strings through TextDecoder, since .subarray() allocates garbage.\r\n // (As a tiny code save trick, compare endPtr against endIdx using a negation, so that undefined means Infinity)\r\n while (u8Array[endPtr] && !(endPtr >= endIdx)) ++endPtr;\r\n\r\n if (endPtr - idx > 16 && u8Array.subarray && UTF8Decoder) {\r\n return UTF8Decoder.decode(u8Array.subarray(idx, endPtr));\r\n } else {\r\n var str = '';\r\n // If building with TextDecoder, we have already computed the string length above, so test loop end condition against that\r\n while (idx < endPtr) {\r\n // For UTF8 byte structure, see:\r\n // http://en.wikipedia.org/wiki/UTF-8#Description\r\n // https://www.ietf.org/rfc/rfc2279.txt\r\n // https://tools.ietf.org/html/rfc3629\r\n var u0 = u8Array[idx++];\r\n if (!(u0 & 0x80)) { str += String.fromCharCode(u0); continue; }\r\n var u1 = u8Array[idx++] & 63;\r\n if ((u0 & 0xE0) == 0xC0) { str += String.fromCharCode(((u0 & 31) << 6) | u1); continue; }\r\n var u2 = u8Array[idx++] & 63;\r\n if ((u0 & 0xF0) == 0xE0) {\r\n u0 = ((u0 & 15) << 12) | (u1 << 6) | u2;\r\n } else {\r\n u0 = ((u0 & 7) << 18) | (u1 << 12) | (u2 << 6) | (u8Array[idx++] & 63);\r\n }\r\n\r\n if (u0 < 0x10000) {\r\n str += String.fromCharCode(u0);\r\n } else {\r\n var ch = u0 - 0x10000;\r\n str += String.fromCharCode(0xD800 | (ch >> 10), 0xDC00 | (ch & 0x3FF));\r\n }\r\n }\r\n }\r\n return str;\r\n}\r\n\r\n// Given a pointer 'ptr' to a null-terminated UTF8-encoded string in the emscripten HEAP, returns a\r\n// copy of that string as a Javascript String object.\r\n// maxBytesToRead: an optional length that specifies the maximum number of bytes to read. You can omit\r\n// this parameter to scan the string until the first \\0 byte. If maxBytesToRead is\r\n// passed, and the string at [ptr, ptr+maxBytesToReadr[ contains a null byte in the\r\n// middle, then the string will cut short at that byte index (i.e. maxBytesToRead will\r\n// not produce a string of exact length [ptr, ptr+maxBytesToRead[)\r\n// N.B. mixing frequent uses of UTF8ToString() with and without maxBytesToRead may\r\n// throw JS JIT optimizations off, so it is worth to consider consistently using one\r\n// style or the other.\r\n/**\r\n * @param {number} ptr\r\n * @param {number=} maxBytesToRead\r\n * @return {string}\r\n */\r\nfunction UTF8ToString(ptr, maxBytesToRead) {\r\n return ptr ? UTF8ArrayToString(HEAPU8, ptr, maxBytesToRead) : '';\r\n}\r\n\r\n// Copies the given Javascript String object 'str' to the given byte array at address 'outIdx',\r\n// encoded in UTF8 form and null-terminated. The copy will require at most str.length*4+1 bytes of space in the HEAP.\r\n// Use the function lengthBytesUTF8 to compute the exact number of bytes (excluding null terminator) that this function will write.\r\n// Parameters:\r\n// str: the Javascript string to copy.\r\n// outU8Array: the array to copy to. Each index in this array is assumed to be one 8-byte element.\r\n// outIdx: The starting offset in the array to begin the copying.\r\n// maxBytesToWrite: The maximum number of bytes this function can write to the array.\r\n// This count should include the null terminator,\r\n// i.e. if maxBytesToWrite=1, only the null terminator will be written and nothing else.\r\n// maxBytesToWrite=0 does not write any bytes to the output, not even the null terminator.\r\n// Returns the number of bytes written, EXCLUDING the null terminator.\r\n\r\nfunction stringToUTF8Array(str, outU8Array, outIdx, maxBytesToWrite) {\r\n if (!(maxBytesToWrite > 0)) // Parameter maxBytesToWrite is not optional. Negative values, 0, null, undefined and false each don't write out any bytes.\r\n return 0;\r\n\r\n var startIdx = outIdx;\r\n var endIdx = outIdx + maxBytesToWrite - 1; // -1 for string null terminator.\r\n for (var i = 0; i < str.length; ++i) {\r\n // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! So decode UTF16->UTF32->UTF8.\r\n // See http://unicode.org/faq/utf_bom.html#utf16-3\r\n // For UTF8 byte structure, see http://en.wikipedia.org/wiki/UTF-8#Description and https://www.ietf.org/rfc/rfc2279.txt and https://tools.ietf.org/html/rfc3629\r\n var u = str.charCodeAt(i); // possibly a lead surrogate\r\n if (u >= 0xD800 && u <= 0xDFFF) {\r\n var u1 = str.charCodeAt(++i);\r\n u = 0x10000 + ((u & 0x3FF) << 10) | (u1 & 0x3FF);\r\n }\r\n if (u <= 0x7F) {\r\n if (outIdx >= endIdx) break;\r\n outU8Array[outIdx++] = u;\r\n } else if (u <= 0x7FF) {\r\n if (outIdx + 1 >= endIdx) break;\r\n outU8Array[outIdx++] = 0xC0 | (u >> 6);\r\n outU8Array[outIdx++] = 0x80 | (u & 63);\r\n } else if (u <= 0xFFFF) {\r\n if (outIdx + 2 >= endIdx) break;\r\n outU8Array[outIdx++] = 0xE0 | (u >> 12);\r\n outU8Array[outIdx++] = 0x80 | ((u >> 6) & 63);\r\n outU8Array[outIdx++] = 0x80 | (u & 63);\r\n } else {\r\n if (outIdx + 3 >= endIdx) break;\r\n outU8Array[outIdx++] = 0xF0 | (u >> 18);\r\n outU8Array[outIdx++] = 0x80 | ((u >> 12) & 63);\r\n outU8Array[outIdx++] = 0x80 | ((u >> 6) & 63);\r\n outU8Array[outIdx++] = 0x80 | (u & 63);\r\n }\r\n }\r\n // Null-terminate the pointer to the buffer.\r\n outU8Array[outIdx] = 0;\r\n return outIdx - startIdx;\r\n}\r\n\r\n// Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr',\r\n// null-terminated and encoded in UTF8 form. The copy will require at most str.length*4+1 bytes of space in the HEAP.\r\n// Use the function lengthBytesUTF8 to compute the exact number of bytes (excluding null terminator) that this function will write.\r\n// Returns the number of bytes written, EXCLUDING the null terminator.\r\n\r\nfunction stringToUTF8(str, outPtr, maxBytesToWrite) {\r\n return stringToUTF8Array(str, HEAPU8,outPtr, maxBytesToWrite);\r\n}\r\n\r\n// Returns the number of bytes the given Javascript string takes if encoded as a UTF8 byte array, EXCLUDING the null terminator byte.\r\nfunction lengthBytesUTF8(str) {\r\n var len = 0;\r\n for (var i = 0; i < str.length; ++i) {\r\n // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! So decode UTF16->UTF32->UTF8.\r\n // See http://unicode.org/faq/utf_bom.html#utf16-3\r\n var u = str.charCodeAt(i); // possibly a lead surrogate\r\n if (u >= 0xD800 && u <= 0xDFFF) u = 0x10000 + ((u & 0x3FF) << 10) | (str.charCodeAt(++i) & 0x3FF);\r\n if (u <= 0x7F) ++len;\r\n else if (u <= 0x7FF) len += 2;\r\n else if (u <= 0xFFFF) len += 3;\r\n else len += 4;\r\n }\r\n return len;\r\n}\r\n\r\n\r\n// Given a pointer 'ptr' to a null-terminated UTF16LE-encoded string in the emscripten HEAP, returns\r\n// a copy of that string as a Javascript String object.\r\n\r\nvar UTF16Decoder = typeof TextDecoder !== 'undefined' ? new TextDecoder('utf-16le') : undefined;\r\nfunction UTF16ToString(ptr) {\r\n var endPtr = ptr;\r\n // TextDecoder needs to know the byte length in advance, it doesn't stop on null terminator by itself.\r\n // Also, use the length info to avoid running tiny strings through TextDecoder, since .subarray() allocates garbage.\r\n var idx = endPtr >> 1;\r\n while (HEAP16[idx]) ++idx;\r\n endPtr = idx << 1;\r\n\r\n if (endPtr - ptr > 32 && UTF16Decoder) {\r\n return UTF16Decoder.decode(HEAPU8.subarray(ptr, endPtr));\r\n } else {\r\n var i = 0;\r\n\r\n var str = '';\r\n while (1) {\r\n var codeUnit = HEAP16[(((ptr)+(i*2))>>1)];\r\n if (codeUnit == 0) return str;\r\n ++i;\r\n // fromCharCode constructs a character from a UTF-16 code unit, so we can pass the UTF16 string right through.\r\n str += String.fromCharCode(codeUnit);\r\n }\r\n }\r\n}\r\n\r\n// Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr',\r\n// null-terminated and encoded in UTF16 form. The copy will require at most str.length*4+2 bytes of space in the HEAP.\r\n// Use the function lengthBytesUTF16() to compute the exact number of bytes (excluding null terminator) that this function will write.\r\n// Parameters:\r\n// str: the Javascript string to copy.\r\n// outPtr: Byte address in Emscripten HEAP where to write the string to.\r\n// maxBytesToWrite: The maximum number of bytes this function can write to the array. This count should include the null\r\n// terminator, i.e. if maxBytesToWrite=2, only the null terminator will be written and nothing else.\r\n// maxBytesToWrite<2 does not write any bytes to the output, not even the null terminator.\r\n// Returns the number of bytes written, EXCLUDING the null terminator.\r\n\r\nfunction stringToUTF16(str, outPtr, maxBytesToWrite) {\r\n // Backwards compatibility: if max bytes is not specified, assume unsafe unbounded write is allowed.\r\n if (maxBytesToWrite === undefined) {\r\n maxBytesToWrite = 0x7FFFFFFF;\r\n }\r\n if (maxBytesToWrite < 2) return 0;\r\n maxBytesToWrite -= 2; // Null terminator.\r\n var startPtr = outPtr;\r\n var numCharsToWrite = (maxBytesToWrite < str.length*2) ? (maxBytesToWrite / 2) : str.length;\r\n for (var i = 0; i < numCharsToWrite; ++i) {\r\n // charCodeAt returns a UTF-16 encoded code unit, so it can be directly written to the HEAP.\r\n var codeUnit = str.charCodeAt(i); // possibly a lead surrogate\r\n HEAP16[((outPtr)>>1)]=codeUnit;\r\n outPtr += 2;\r\n }\r\n // Null-terminate the pointer to the HEAP.\r\n HEAP16[((outPtr)>>1)]=0;\r\n return outPtr - startPtr;\r\n}\r\n\r\n// Returns the number of bytes the given Javascript string takes if encoded as a UTF16 byte array, EXCLUDING the null terminator byte.\r\n\r\nfunction lengthBytesUTF16(str) {\r\n return str.length*2;\r\n}\r\n\r\nfunction UTF32ToString(ptr) {\r\n var i = 0;\r\n\r\n var str = '';\r\n while (1) {\r\n var utf32 = HEAP32[(((ptr)+(i*4))>>2)];\r\n if (utf32 == 0)\r\n return str;\r\n ++i;\r\n // Gotcha: fromCharCode constructs a character from a UTF-16 encoded code (pair), not from a Unicode code point! So encode the code point to UTF-16 for constructing.\r\n // See http://unicode.org/faq/utf_bom.html#utf16-3\r\n if (utf32 >= 0x10000) {\r\n var ch = utf32 - 0x10000;\r\n str += String.fromCharCode(0xD800 | (ch >> 10), 0xDC00 | (ch & 0x3FF));\r\n } else {\r\n str += String.fromCharCode(utf32);\r\n }\r\n }\r\n}\r\n\r\n// Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr',\r\n// null-terminated and encoded in UTF32 form. The copy will require at most str.length*4+4 bytes of space in the HEAP.\r\n// Use the function lengthBytesUTF32() to compute the exact number of bytes (excluding null terminator) that this function will write.\r\n// Parameters:\r\n// str: the Javascript string to copy.\r\n// outPtr: Byte address in Emscripten HEAP where to write the string to.\r\n// maxBytesToWrite: The maximum number of bytes this function can write to the array. This count should include the null\r\n// terminator, i.e. if maxBytesToWrite=4, only the null terminator will be written and nothing else.\r\n// maxBytesToWrite<4 does not write any bytes to the output, not even the null terminator.\r\n// Returns the number of bytes written, EXCLUDING the null terminator.\r\n\r\nfunction stringToUTF32(str, outPtr, maxBytesToWrite) {\r\n // Backwards compatibility: if max bytes is not specified, assume unsafe unbounded write is allowed.\r\n if (maxBytesToWrite === undefined) {\r\n maxBytesToWrite = 0x7FFFFFFF;\r\n }\r\n if (maxBytesToWrite < 4) return 0;\r\n var startPtr = outPtr;\r\n var endPtr = startPtr + maxBytesToWrite - 4;\r\n for (var i = 0; i < str.length; ++i) {\r\n // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! We must decode the string to UTF-32 to the heap.\r\n // See http://unicode.org/faq/utf_bom.html#utf16-3\r\n var codeUnit = str.charCodeAt(i); // possibly a lead surrogate\r\n if (codeUnit >= 0xD800 && codeUnit <= 0xDFFF) {\r\n var trailSurrogate = str.charCodeAt(++i);\r\n codeUnit = 0x10000 + ((codeUnit & 0x3FF) << 10) | (trailSurrogate & 0x3FF);\r\n }\r\n HEAP32[((outPtr)>>2)]=codeUnit;\r\n outPtr += 4;\r\n if (outPtr + 4 > endPtr) break;\r\n }\r\n // Null-terminate the pointer to the HEAP.\r\n HEAP32[((outPtr)>>2)]=0;\r\n return outPtr - startPtr;\r\n}\r\n\r\n// Returns the number of bytes the given Javascript string takes if encoded as a UTF16 byte array, EXCLUDING the null terminator byte.\r\n\r\nfunction lengthBytesUTF32(str) {\r\n var len = 0;\r\n for (var i = 0; i < str.length; ++i) {\r\n // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! We must decode the string to UTF-32 to the heap.\r\n // See http://unicode.org/faq/utf_bom.html#utf16-3\r\n var codeUnit = str.charCodeAt(i);\r\n if (codeUnit >= 0xD800 && codeUnit <= 0xDFFF) ++i; // possibly a lead surrogate, so skip over the tail surrogate.\r\n len += 4;\r\n }\r\n\r\n return len;\r\n}\r\n\r\n// Allocate heap space for a JS string, and write it there.\r\n// It is the responsibility of the caller to free() that memory.\r\nfunction allocateUTF8(str) {\r\n var size = lengthBytesUTF8(str) + 1;\r\n var ret = _malloc(size);\r\n if (ret) stringToUTF8Array(str, HEAP8, ret, size);\r\n return ret;\r\n}\r\n\r\n// Allocate stack space for a JS string, and write it there.\r\nfunction allocateUTF8OnStack(str) {\r\n var size = lengthBytesUTF8(str) + 1;\r\n var ret = stackAlloc(size);\r\n stringToUTF8Array(str, HEAP8, ret, size);\r\n return ret;\r\n}\r\n\r\n// Deprecated: This function should not be called because it is unsafe and does not provide\r\n// a maximum length limit of how many bytes it is allowed to write. Prefer calling the\r\n// function stringToUTF8Array() instead, which takes in a maximum length that can be used\r\n// to be secure from out of bounds writes.\r\n/** @deprecated */\r\nfunction writeStringToMemory(string, buffer, dontAddNull) {\r\n warnOnce('writeStringToMemory is deprecated and should not be called! Use stringToUTF8() instead!');\r\n\r\n var /** @type {number} */ lastChar, /** @type {number} */ end;\r\n if (dontAddNull) {\r\n // stringToUTF8Array always appends null. If we don't want to do that, remember the\r\n // character that existed at the location where the null will be placed, and restore\r\n // that after the write (below).\r\n end = buffer + lengthBytesUTF8(string);\r\n lastChar = HEAP8[end];\r\n }\r\n stringToUTF8(string, buffer, Infinity);\r\n if (dontAddNull) HEAP8[end] = lastChar; // Restore the value under the null character.\r\n}\r\n\r\nfunction writeArrayToMemory(array, buffer) {\r\n HEAP8.set(array, buffer);\r\n}\r\n\r\nfunction writeAsciiToMemory(str, buffer, dontAddNull) {\r\n for (var i = 0; i < str.length; ++i) {\r\n HEAP8[((buffer++)>>0)]=str.charCodeAt(i);\r\n }\r\n // Null-terminate the pointer to the HEAP.\r\n if (!dontAddNull) HEAP8[((buffer)>>0)]=0;\r\n}\r\n\r\n\r\n\r\n\r\n\r\nfunction demangle(func) {\r\n return func;\r\n}\r\n\r\nfunction demangleAll(text) {\r\n var regex =\r\n /__Z[\\w\\d_]+/g;\r\n return text.replace(regex,\r\n function(x) {\r\n var y = demangle(x);\r\n return x === y ? x : (y + ' [' + x + ']');\r\n });\r\n}\r\n\r\nfunction jsStackTrace() {\r\n var err = new Error();\r\n if (!err.stack) {\r\n // IE10+ special cases: It does have callstack info, but it is only populated if an Error object is thrown,\r\n // so try that as a special-case.\r\n try {\r\n throw new Error(0);\r\n } catch(e) {\r\n err = e;\r\n }\r\n if (!err.stack) {\r\n return '(no stack trace available)';\r\n }\r\n }\r\n return err.stack.toString();\r\n}\r\n\r\nfunction stackTrace() {\r\n var js = jsStackTrace();\r\n if (Module['extraStackTrace']) js += '\\n' + Module['extraStackTrace']();\r\n return demangleAll(js);\r\n}\r\n\r\n\r\n\r\n// Memory management\r\n\r\nvar PAGE_SIZE = 16384;\r\nvar WASM_PAGE_SIZE = 65536;\r\nvar ASMJS_PAGE_SIZE = 16777216;\r\n\r\nfunction alignUp(x, multiple) {\r\n if (x % multiple > 0) {\r\n x += multiple - (x % multiple);\r\n }\r\n return x;\r\n}\r\n\r\nvar HEAP,\r\n/** @type {ArrayBuffer} */\r\n buffer,\r\n/** @type {Int8Array} */\r\n HEAP8,\r\n/** @type {Uint8Array} */\r\n HEAPU8,\r\n/** @type {Int16Array} */\r\n HEAP16,\r\n/** @type {Uint16Array} */\r\n HEAPU16,\r\n/** @type {Int32Array} */\r\n HEAP32,\r\n/** @type {Uint32Array} */\r\n HEAPU32,\r\n/** @type {Float32Array} */\r\n HEAPF32,\r\n/** @type {Float64Array} */\r\n HEAPF64;\r\n\r\nfunction updateGlobalBufferViews() {\r\n Module['HEAP8'] = HEAP8 = new Int8Array(buffer);\r\n Module['HEAP16'] = HEAP16 = new Int16Array(buffer);\r\n Module['HEAP32'] = HEAP32 = new Int32Array(buffer);\r\n Module['HEAPU8'] = HEAPU8 = new Uint8Array(buffer);\r\n Module['HEAPU16'] = HEAPU16 = new Uint16Array(buffer);\r\n Module['HEAPU32'] = HEAPU32 = new Uint32Array(buffer);\r\n Module['HEAPF32'] = HEAPF32 = new Float32Array(buffer);\r\n Module['HEAPF64'] = HEAPF64 = new Float64Array(buffer);\r\n}\r\n\r\n\r\nvar STATIC_BASE = 1024,\r\n STACK_BASE = 1875744,\r\n STACKTOP = STACK_BASE,\r\n STACK_MAX = 7118624,\r\n DYNAMIC_BASE = 7118624,\r\n DYNAMICTOP_PTR = 1875712;\r\n\r\n\r\n\r\n\r\nvar TOTAL_STACK = 5242880;\r\n\r\nvar INITIAL_TOTAL_MEMORY = Module['TOTAL_MEMORY'] || 134217728;\r\nif (INITIAL_TOTAL_MEMORY < TOTAL_STACK) err('TOTAL_MEMORY should be larger than TOTAL_STACK, was ' + INITIAL_TOTAL_MEMORY + '! (TOTAL_STACK=' + TOTAL_STACK + ')');\r\n\r\n// Initialize the runtime's memory\r\n\r\n\r\n\r\n\r\n\r\n\r\n if (Module['wasmMemory']) {\r\n wasmMemory = Module['wasmMemory'];\r\n } else {\r\n wasmMemory = new WebAssembly.Memory({\r\n 'initial': INITIAL_TOTAL_MEMORY / WASM_PAGE_SIZE\r\n });\r\n }\r\n\r\n\r\nif (wasmMemory) {\r\n buffer = wasmMemory.buffer;\r\n}\r\n\r\n// If the user provides an incorrect length, just use that length instead rather than providing the user to\r\n// specifically provide the memory length with Module['TOTAL_MEMORY'].\r\nINITIAL_TOTAL_MEMORY = buffer.byteLength;\r\nupdateGlobalBufferViews();\r\n\r\nHEAP32[DYNAMICTOP_PTR>>2] = DYNAMIC_BASE;\r\n\r\n\r\n\r\n\r\n\r\n\r\n// Endianness check (note: assumes compiler arch was little-endian)\r\n\r\nfunction callRuntimeCallbacks(callbacks) {\r\n while(callbacks.length > 0) {\r\n var callback = callbacks.shift();\r\n if (typeof callback == 'function') {\r\n callback();\r\n continue;\r\n }\r\n var func = callback.func;\r\n if (typeof func === 'number') {\r\n if (callback.arg === undefined) {\r\n Module['dynCall_v'](func);\r\n } else {\r\n Module['dynCall_vi'](func, callback.arg);\r\n }\r\n } else {\r\n func(callback.arg === undefined ? null : callback.arg);\r\n }\r\n }\r\n}\r\n\r\nvar __ATPRERUN__ = []; // functions called before the runtime is initialized\r\nvar __ATINIT__ = []; // functions called during startup\r\nvar __ATMAIN__ = []; // functions called when main() is to be run\r\nvar __ATEXIT__ = []; // functions called during shutdown\r\nvar __ATPOSTRUN__ = []; // functions called after the main() is called\r\n\r\nvar runtimeInitialized = false;\r\nvar runtimeExited = false;\r\n\r\n\r\nfunction preRun() {\r\n // compatibility - merge in anything from Module['preRun'] at this time\r\n if (Module['preRun']) {\r\n if (typeof Module['preRun'] == 'function') Module['preRun'] = [Module['preRun']];\r\n while (Module['preRun'].length) {\r\n addOnPreRun(Module['preRun'].shift());\r\n }\r\n }\r\n callRuntimeCallbacks(__ATPRERUN__);\r\n}\r\n\r\nfunction initRuntime() {\r\n runtimeInitialized = true;\r\n \r\n callRuntimeCallbacks(__ATINIT__);\r\n}\r\n\r\nfunction preMain() {\r\n \r\n callRuntimeCallbacks(__ATMAIN__);\r\n}\r\n\r\nfunction exitRuntime() {\r\n runtimeExited = true;\r\n}\r\n\r\nfunction postRun() {\r\n // compatibility - merge in anything from Module['postRun'] at this time\r\n if (Module['postRun']) {\r\n if (typeof Module['postRun'] == 'function') Module['postRun'] = [Module['postRun']];\r\n while (Module['postRun'].length) {\r\n addOnPostRun(Module['postRun'].shift());\r\n }\r\n }\r\n callRuntimeCallbacks(__ATPOSTRUN__);\r\n}\r\n\r\nfunction addOnPreRun(cb) {\r\n __ATPRERUN__.unshift(cb);\r\n}\r\n\r\nfunction addOnInit(cb) {\r\n __ATINIT__.unshift(cb);\r\n}\r\n\r\nfunction addOnPreMain(cb) {\r\n __ATMAIN__.unshift(cb);\r\n}\r\n\r\nfunction addOnExit(cb) {\r\n}\r\n\r\nfunction addOnPostRun(cb) {\r\n __ATPOSTRUN__.unshift(cb);\r\n}\r\n\r\nfunction unSign(value, bits, ignore) {\r\n if (value >= 0) {\r\n return value;\r\n }\r\n return bits <= 32 ? 2*Math.abs(1 << (bits-1)) + value // Need some trickery, since if bits == 32, we are right at the limit of the bits JS uses in bitshifts\r\n : Math.pow(2, bits) + value;\r\n}\r\nfunction reSign(value, bits, ignore) {\r\n if (value <= 0) {\r\n return value;\r\n }\r\n var half = bits <= 32 ? Math.abs(1 << (bits-1)) // abs is needed if bits == 32\r\n : Math.pow(2, bits-1);\r\n if (value >= half && (bits <= 32 || value > half)) { // for huge values, we can hit the precision limit and always get true here. so don't do that\r\n // but, in general there is no perfect solution here. With 64-bit ints, we get rounding and errors\r\n // TODO: In i64 mode 1, resign the two parts separately and safely\r\n value = -2*half + value; // Cannot bitshift half, as it may be at the limit of the bits JS uses in bitshifts\r\n }\r\n return value;\r\n}\r\n\r\n\r\n\r\nvar Math_abs = Math.abs;\r\nvar Math_cos = Math.cos;\r\nvar Math_sin = Math.sin;\r\nvar Math_tan = Math.tan;\r\nvar Math_acos = Math.acos;\r\nvar Math_asin = Math.asin;\r\nvar Math_atan = Math.atan;\r\nvar Math_atan2 = Math.atan2;\r\nvar Math_exp = Math.exp;\r\nvar Math_log = Math.log;\r\nvar Math_sqrt = Math.sqrt;\r\nvar Math_ceil = Math.ceil;\r\nvar Math_floor = Math.floor;\r\nvar Math_pow = Math.pow;\r\nvar Math_imul = Math.imul;\r\nvar Math_fround = Math.fround;\r\nvar Math_round = Math.round;\r\nvar Math_min = Math.min;\r\nvar Math_max = Math.max;\r\nvar Math_clz32 = Math.clz32;\r\nvar Math_trunc = Math.trunc;\r\n\r\n\r\n\r\n// A counter of dependencies for calling run(). If we need to\r\n// do asynchronous work before running, increment this and\r\n// decrement it. Incrementing must happen in a place like\r\n// Module.preRun (used by emcc to add file preloading).\r\n// Note that you can add dependencies in preRun, even though\r\n// it happens right before run - run will be postponed until\r\n// the dependencies are met.\r\nvar runDependencies = 0;\r\nvar runDependencyWatcher = null;\r\nvar dependenciesFulfilled = null; // overridden to take different actions when all run dependencies are fulfilled\r\n\r\nfunction getUniqueRunDependency(id) {\r\n return id;\r\n}\r\n\r\nfunction addRunDependency(id) {\r\n runDependencies++;\r\n if (Module['monitorRunDependencies']) {\r\n Module['monitorRunDependencies'](runDependencies);\r\n }\r\n}\r\n\r\nfunction removeRunDependency(id) {\r\n runDependencies--;\r\n if (Module['monitorRunDependencies']) {\r\n Module['monitorRunDependencies'](runDependencies);\r\n }\r\n if (runDependencies == 0) {\r\n if (runDependencyWatcher !== null) {\r\n clearInterval(runDependencyWatcher);\r\n runDependencyWatcher = null;\r\n }\r\n if (dependenciesFulfilled) {\r\n var callback = dependenciesFulfilled;\r\n dependenciesFulfilled = null;\r\n callback(); // can add another dependenciesFulfilled\r\n }\r\n }\r\n}\r\n\r\nModule[\"preloadedImages\"] = {}; // maps url to image data\r\nModule[\"preloadedAudios\"] = {}; // maps url to audio data\r\n\r\n\r\nvar memoryInitializer = null;\r\n\r\n\r\n\r\n\r\n\r\n\r\n// Copyright 2017 The Emscripten Authors. All rights reserved.\r\n// Emscripten is available under two separate licenses, the MIT license and the\r\n// University of Illinois/NCSA Open Source License. Both these licenses can be\r\n// found in the LICENSE file.\r\n\r\n// Prefix of data URIs emitted by SINGLE_FILE and related options.\r\nvar dataURIPrefix = 'data:application/octet-stream;base64,';\r\n\r\n// Indicates whether filename is a base64 data URI.\r\nfunction isDataURI(filename) {\r\n return String.prototype.startsWith ?\r\n filename.startsWith(dataURIPrefix) :\r\n filename.indexOf(dataURIPrefix) === 0;\r\n}\r\n\r\n\r\n\r\n\r\nvar wasmBinaryFile = 'Diablo.wasm';\r\nif (!isDataURI(wasmBinaryFile)) {\r\n wasmBinaryFile = locateFile(wasmBinaryFile);\r\n}\r\n\r\nfunction getBinary() {\r\n try {\r\n if (Module['wasmBinary']) {\r\n return new Uint8Array(Module['wasmBinary']);\r\n }\r\n if (readBinary) {\r\n return readBinary(wasmBinaryFile);\r\n } else {\r\n throw \"both async and sync fetching of the wasm failed\";\r\n }\r\n }\r\n catch (err) {\r\n abort(err);\r\n }\r\n}\r\n\r\nfunction getBinaryPromise() {\r\n // if we don't have the binary yet, and have the Fetch api, use that\r\n // in some environments, like Electron's render process, Fetch api may be present, but have a different context than expected, let's only use it on the Web\r\n if (!Module['wasmBinary'] && (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) && typeof fetch === 'function') {\r\n return fetch(wasmBinaryFile, { credentials: 'same-origin' }).then(function(response) {\r\n if (!response['ok']) {\r\n throw \"failed to load wasm binary file at '\" + wasmBinaryFile + \"'\";\r\n }\r\n return response['arrayBuffer']();\r\n }).catch(function () {\r\n return getBinary();\r\n });\r\n }\r\n // Otherwise, getBinary should be able to get it synchronously\r\n return new Promise(function(resolve, reject) {\r\n resolve(getBinary());\r\n });\r\n}\r\n\r\n\r\n\r\n// Create the wasm instance.\r\n// Receives the wasm imports, returns the exports.\r\nfunction createWasm(env) {\r\n\r\n // prepare imports\r\n var info = {\r\n 'env': env\r\n ,\r\n 'global': {\r\n 'NaN': NaN,\r\n 'Infinity': Infinity\r\n },\r\n 'global.Math': Math,\r\n 'asm2wasm': asm2wasmImports\r\n };\r\n // Load the wasm module and create an instance of using native support in the JS engine.\r\n // handle a generated wasm instance, receiving its exports and\r\n // performing other necessary setup\r\n function receiveInstance(instance, module) {\r\n var exports = instance.exports;\r\n Module['asm'] = exports;\r\n removeRunDependency('wasm-instantiate');\r\n }\r\n addRunDependency('wasm-instantiate');\r\n\r\n\r\n function receiveInstantiatedSource(output) {\r\n // 'output' is a WebAssemblyInstantiatedSource object which has both the module and instance.\r\n // receiveInstance() will swap in the exports (to Module.asm) so they can be called\r\n // TODO: Due to Closure regression https://github.com/google/closure-compiler/issues/3193, the above line no longer optimizes out down to the following line.\r\n // When the regression is fixed, can restore the above USE_PTHREADS-enabled path.\r\n receiveInstance(output['instance']);\r\n }\r\n\r\n\r\n function instantiateArrayBuffer(receiver) {\r\n return getBinaryPromise().then(function(binary) {\r\n return WebAssembly.instantiate(binary, info);\r\n }).then(receiver, function(reason) {\r\n err('failed to asynchronously prepare wasm: ' + reason);\r\n abort(reason);\r\n });\r\n }\r\n\r\n // Prefer streaming instantiation if available.\r\n function instantiateAsync() {\r\n if (!Module['wasmBinary'] &&\r\n typeof WebAssembly.instantiateStreaming === 'function' &&\r\n !isDataURI(wasmBinaryFile) &&\r\n typeof fetch === 'function') {\r\n fetch(wasmBinaryFile, { credentials: 'same-origin' }).then(function (response) {\r\n return WebAssembly.instantiateStreaming(response, info)\r\n .then(receiveInstantiatedSource, function(reason) {\r\n // We expect the most common failure cause to be a bad MIME type for the binary,\r\n // in which case falling back to ArrayBuffer instantiation should work.\r\n err('wasm streaming compile failed: ' + reason);\r\n err('falling back to ArrayBuffer instantiation');\r\n instantiateArrayBuffer(receiveInstantiatedSource);\r\n });\r\n });\r\n } else {\r\n return instantiateArrayBuffer(receiveInstantiatedSource);\r\n }\r\n }\r\n // User shell pages can write their own Module.instantiateWasm = function(imports, successCallback) callback\r\n // to manually instantiate the Wasm module themselves. This allows pages to run the instantiation parallel\r\n // to any other async startup actions they are performing.\r\n if (Module['instantiateWasm']) {\r\n try {\r\n var exports = Module['instantiateWasm'](info, receiveInstance);\r\n return exports;\r\n } catch(e) {\r\n err('Module.instantiateWasm callback failed with error: ' + e);\r\n return false;\r\n }\r\n }\r\n\r\n instantiateAsync();\r\n return {}; // no exports yet; we'll fill them in later\r\n}\r\n\r\n// Provide an \"asm.js function\" for the application, called to \"link\" the asm.js module. We instantiate\r\n// the wasm module at that time, and it receives imports and provides exports and so forth, the app\r\n// doesn't need to care that it is wasm or asm.js.\r\n\r\nModule['asm'] = function(global, env, providedBuffer) {\r\n // memory was already allocated (so js could use the buffer)\r\n env['memory'] = wasmMemory\r\n ;\r\n // import table\r\n env['table'] = wasmTable = new WebAssembly.Table({\r\n 'initial': 1116,\r\n 'maximum': 1116,\r\n 'element': 'anyfunc'\r\n });\r\n // With the wasm backend __memory_base and __table_base and only needed for\r\n // relocatable output.\r\n env['__memory_base'] = 1024; // tell the memory segments where to place themselves\r\n // table starts at 0 by default (even in dynamic linking, for the main module)\r\n env['__table_base'] = 0;\r\n\r\n var exports = createWasm(env);\r\n return exports;\r\n};\r\n\r\n// Globals used by JS i64 conversions\r\nvar tempDouble;\r\nvar tempI64;\r\n\r\n// === Body ===\r\n\r\nvar ASM_CONSTS = [function($0) { self.DApi.current_save_id($0); }];\r\n\r\nfunction _emscripten_asm_const_ii(code, a0) {\r\n return ASM_CONSTS[code](a0);\r\n}\r\nfunction __api_close_keyboard(){ self.DApi.close_keyboard(); }\r\nfunction __api_open_keyboard(x0,y0,x1,y1,len){ self.DApi.open_keyboard(x0, y0, x1, y1, len); }\r\nfunction _api_create_sound(id,ptr,size){ self.DApi.create_sound(id, HEAPU8.slice(ptr, ptr + size)); }\r\nfunction _api_create_sound_float(id,ptr,samples,channels,rate){ self.DApi.create_sound_raw(id, HEAPF32.slice(ptr / 4, ptr / 4 + samples * channels), samples, channels, rate); }\r\nfunction _api_delete_sound(id){ self.DApi.delete_sound(id); }\r\nfunction _api_draw_begin(){ self.DApi.draw_begin(); }\r\nfunction _api_draw_belt(items){ self.DApi.draw_belt(HEAP32.subarray(items / 4, items / 4 + 8)); }\r\nfunction _api_draw_blit(x,y,w,h,ptr){ self.DApi.draw_blit(x, y, w, h, HEAPU8.subarray(ptr, ptr + w * h * 4)); }\r\nfunction _api_draw_clip_text(x0,y0,x1,y1){ self.DApi.draw_clip_text(x0, y0, x1, y1); }\r\nfunction _api_draw_end(){ self.DApi.draw_end(); }\r\nfunction _api_draw_text(x,y,ptr,color){ var end = HEAPU8.indexOf(0, ptr); var text = String.fromCharCode.apply(null, HEAPU8.subarray(ptr, end)); self.DApi.draw_text(x, y, text, color); }\r\nfunction _api_duplicate_sound(id,srcId){ self.DApi.duplicate_sound(id, srcId); }\r\nfunction _api_exit_game(){ self.DApi.exit_game(); }\r\nfunction _api_play_sound(id,volume,pan,loop){ self.DApi.play_sound(id, volume, pan, loop); }\r\nfunction _api_set_cursor(x,y){ self.DApi.set_cursor(x, y); }\r\nfunction _api_set_volume(id,volume){ self.DApi.set_volume(id, volume); }\r\nfunction _api_stop_sound(id){ self.DApi.stop_sound(id); }\r\nfunction _api_use_websocket(use){ self.DApi.use_websocket(use); }\r\nfunction _api_websocket_closed(){ return self.DApi.websocket_closed(); }\r\nfunction _api_websocket_send(ptr,size){ self.DApi.websocket_send(HEAPU8.subarray(ptr, ptr + size)); }\r\nfunction _exit_error(err){ var end = HEAPU8.indexOf( 0, err ); var text = String.fromCharCode.apply(null, HEAPU8.subarray( err, end )); self.DApi.exit_error( text ); }\r\nfunction _get_file_contents(path,ptr,offset,size){ var end = HEAPU8.indexOf( 0, path); var text = String.fromCharCode.apply(null, HEAPU8.subarray(path, end )); self.DApi.get_file_contents(text, HEAPU8.subarray(ptr, ptr + size), offset); }\r\nfunction _get_file_size(path){ var end = HEAPU8.indexOf( 0, path); var text = String.fromCharCode.apply(null, HEAPU8.subarray(path, end )); return self.DApi.get_file_size(text); }\r\nfunction _put_file_contents(path,ptr,size){ var end = HEAPU8.indexOf( 0, path); var text = String.fromCharCode.apply(null, HEAPU8.subarray(path, end)); self.DApi.put_file_contents(text, HEAPU8.slice(ptr, ptr + size)); }\r\nfunction _remove_file(path){ var end = HEAPU8.indexOf( 0, path); var text = String.fromCharCode.apply(null, HEAPU8.subarray(path, end )); self.DApi.remove_file( text ); }\r\nfunction _show_alert(err){ var end = HEAPU8.indexOf( 0, err ); var text = String.fromCharCode.apply( null, HEAPU8.subarray( err, end ) ); self.alert( text ); }\r\nfunction _trace_pop(){ if (self.WASM_TRACE) { self.WASM_TRACE.pop(); } }\r\nfunction _trace_push(ptr){ var end = HEAPU8.indexOf(0, ptr); var text = String.fromCharCode.apply(null, HEAPU8.subarray(ptr, end)); console.log(text); self.WASM_TRACE = self.WASM_TRACE || []; self.WASM_TRACE.push(text); }\r\n\r\n\r\n\r\n// STATICTOP = STATIC_BASE + 1874720;\r\n/* global initializers */ __ATINIT__.push({ func: function() { globalCtors() } });\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n/* no memory initializer */\r\nvar tempDoublePtr = 1875728\r\n\r\nfunction copyTempFloat(ptr) { // functions, because inlining this code increases code size too much\r\n HEAP8[tempDoublePtr] = HEAP8[ptr];\r\n HEAP8[tempDoublePtr+1] = HEAP8[ptr+1];\r\n HEAP8[tempDoublePtr+2] = HEAP8[ptr+2];\r\n HEAP8[tempDoublePtr+3] = HEAP8[ptr+3];\r\n}\r\n\r\nfunction copyTempDouble(ptr) {\r\n HEAP8[tempDoublePtr] = HEAP8[ptr];\r\n HEAP8[tempDoublePtr+1] = HEAP8[ptr+1];\r\n HEAP8[tempDoublePtr+2] = HEAP8[ptr+2];\r\n HEAP8[tempDoublePtr+3] = HEAP8[ptr+3];\r\n HEAP8[tempDoublePtr+4] = HEAP8[ptr+4];\r\n HEAP8[tempDoublePtr+5] = HEAP8[ptr+5];\r\n HEAP8[tempDoublePtr+6] = HEAP8[ptr+6];\r\n HEAP8[tempDoublePtr+7] = HEAP8[ptr+7];\r\n}\r\n\r\n// {{PRE_LIBRARY}}\r\n\r\n\r\n function ___assert_fail(condition, filename, line, func) {\r\n abort('Assertion failed: ' + UTF8ToString(condition) + ', at: ' + [filename ? UTF8ToString(filename) : 'unknown filename', line, func ? UTF8ToString(func) : 'unknown function']);\r\n }\r\n\r\n function ___cxa_allocate_exception(size) {\r\n return _malloc(size);\r\n }\r\n\r\n \r\n var ___exception_infos={};\r\n \r\n var ___exception_caught= [];\r\n \r\n function ___exception_addRef(ptr) {\r\n if (!ptr) return;\r\n var info = ___exception_infos[ptr];\r\n info.refcount++;\r\n }\r\n \r\n function ___exception_deAdjust(adjusted) {\r\n if (!adjusted || ___exception_infos[adjusted]) return adjusted;\r\n for (var key in ___exception_infos) {\r\n var ptr = +key; // the iteration key is a string, and if we throw this, it must be an integer as that is what we look for\r\n var adj = ___exception_infos[ptr].adjusted;\r\n var len = adj.length;\r\n for (var i = 0; i < len; i++) {\r\n if (adj[i] === adjusted) {\r\n return ptr;\r\n }\r\n }\r\n }\r\n return adjusted;\r\n }function ___cxa_begin_catch(ptr) {\r\n var info = ___exception_infos[ptr];\r\n if (info && !info.caught) {\r\n info.caught = true;\r\n __ZSt18uncaught_exceptionv.uncaught_exceptions--;\r\n }\r\n if (info) info.rethrown = false;\r\n ___exception_caught.push(ptr);\r\n ___exception_addRef(___exception_deAdjust(ptr));\r\n return ptr;\r\n }\r\n\r\n \r\n var ___exception_last=0;\r\n \r\n \r\n function ___cxa_free_exception(ptr) {\r\n try {\r\n return _free(ptr);\r\n } catch(e) {\r\n }\r\n }function ___exception_decRef(ptr) {\r\n if (!ptr) return;\r\n var info = ___exception_infos[ptr];\r\n info.refcount--;\r\n // A rethrown exception can reach refcount 0; it must not be discarded\r\n // Its next handler will clear the rethrown flag and addRef it, prior to\r\n // final decRef and destruction here\r\n if (info.refcount === 0 && !info.rethrown) {\r\n if (info.destructor) {\r\n Module['dynCall_vi'](info.destructor, ptr);\r\n }\r\n delete ___exception_infos[ptr];\r\n ___cxa_free_exception(ptr);\r\n }\r\n }\r\n \r\n function ___cxa_end_catch() {\r\n // Clear state flag.\r\n _setThrew(0);\r\n // Call destructor if one is registered then clear it.\r\n var ptr = ___exception_caught.pop();\r\n if (ptr) {\r\n ___exception_decRef(___exception_deAdjust(ptr));\r\n ___exception_last = 0; // XXX in decRef?\r\n }\r\n }\r\n\r\n \r\n \r\n function ___resumeException(ptr) {\r\n if (!___exception_last) { ___exception_last = ptr; }\r\n throw ptr;\r\n }function ___cxa_find_matching_catch() {\r\n var thrown = ___exception_last;\r\n if (!thrown) {\r\n // just pass through the null ptr\r\n return ((setTempRet0(0),0)|0);\r\n }\r\n var info = ___exception_infos[thrown];\r\n var throwntype = info.type;\r\n if (!throwntype) {\r\n // just pass through the thrown ptr\r\n return ((setTempRet0(0),thrown)|0);\r\n }\r\n var typeArray = Array.prototype.slice.call(arguments);\r\n \r\n var pointer = ___cxa_is_pointer_type(throwntype);\r\n // can_catch receives a **, add indirection\r\n var buffer = 1875696;\r\n HEAP32[((buffer)>>2)]=thrown;\r\n thrown = buffer;\r\n // The different catch blocks are denoted by different types.\r\n // Due to inheritance, those types may not precisely match the\r\n // type of the thrown object. Find one which matches, and\r\n // return the type of the catch block which should be called.\r\n for (var i = 0; i < typeArray.length; i++) {\r\n if (typeArray[i] && ___cxa_can_catch(typeArray[i], throwntype, thrown)) {\r\n thrown = HEAP32[((thrown)>>2)]; // undo indirection\r\n info.adjusted.push(thrown);\r\n return ((setTempRet0(typeArray[i]),thrown)|0);\r\n }\r\n }\r\n // Shouldn't happen unless we have bogus data in typeArray\r\n // or encounter a type for which emscripten doesn't have suitable\r\n // typeinfo defined. Best-efforts match just in case.\r\n thrown = HEAP32[((thrown)>>2)]; // undo indirection\r\n return ((setTempRet0(throwntype),thrown)|0);\r\n }\r\n Module[\"___cxa_find_matching_catch\"] = ___cxa_find_matching_catch;function ___cxa_find_matching_catch_2(a0,a1\r\n /*``*/) {\r\n return ___cxa_find_matching_catch(a0,a1);\r\n }\r\n\r\n function ___cxa_find_matching_catch_3(a0,a1,a2\r\n /*``*/) {\r\n return ___cxa_find_matching_catch(a0,a1,a2);\r\n }\r\n\r\n\r\n function ___cxa_get_exception_ptr(ptr) {\r\n // TODO: use info.adjusted?\r\n return ptr;\r\n }\r\n\r\n function ___cxa_pure_virtual() {\r\n ABORT = true;\r\n throw 'Pure virtual function called!';\r\n }\r\n\r\n function ___cxa_throw(ptr, type, destructor) {\r\n ___exception_infos[ptr] = {\r\n ptr: ptr,\r\n adjusted: [ptr],\r\n type: type,\r\n destructor: destructor,\r\n refcount: 0,\r\n caught: false,\r\n rethrown: false\r\n };\r\n ___exception_last = ptr;\r\n if (!(\"uncaught_exception\" in __ZSt18uncaught_exceptionv)) {\r\n __ZSt18uncaught_exceptionv.uncaught_exceptions = 1;\r\n } else {\r\n __ZSt18uncaught_exceptionv.uncaught_exceptions++;\r\n }\r\n throw ptr;\r\n }\r\n\r\n function ___cxa_uncaught_exceptions() {\r\n return __ZSt18uncaught_exceptionv.uncaught_exceptions;\r\n }\r\n\r\n function ___gxx_personality_v0() {\r\n }\r\n\r\n function ___lock() {}\r\n\r\n\r\n \r\n \r\n var PATH={splitPath:function (filename) {\r\n var splitPathRe = /^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/;\r\n return splitPathRe.exec(filename).slice(1);\r\n },normalizeArray:function (parts, allowAboveRoot) {\r\n // if the path tries to go above the root, `up` ends up > 0\r\n var up = 0;\r\n for (var i = parts.length - 1; i >= 0; i--) {\r\n var last = parts[i];\r\n if (last === '.') {\r\n parts.splice(i, 1);\r\n } else if (last === '..') {\r\n parts.splice(i, 1);\r\n up++;\r\n } else if (up) {\r\n parts.splice(i, 1);\r\n up--;\r\n }\r\n }\r\n // if the path is allowed to go above the root, restore leading ..s\r\n if (allowAboveRoot) {\r\n for (; up; up--) {\r\n parts.unshift('..');\r\n }\r\n }\r\n return parts;\r\n },normalize:function (path) {\r\n var isAbsolute = path.charAt(0) === '/',\r\n trailingSlash = path.substr(-1) === '/';\r\n // Normalize the path\r\n path = PATH.normalizeArray(path.split('/').filter(function(p) {\r\n return !!p;\r\n }), !isAbsolute).join('/');\r\n if (!path && !isAbsolute) {\r\n path = '.';\r\n }\r\n if (path && trailingSlash) {\r\n path += '/';\r\n }\r\n return (isAbsolute ? '/' : '') + path;\r\n },dirname:function (path) {\r\n var result = PATH.splitPath(path),\r\n root = result[0],\r\n dir = result[1];\r\n if (!root && !dir) {\r\n // No dirname whatsoever\r\n return '.';\r\n }\r\n if (dir) {\r\n // It has a dirname, strip trailing slash\r\n dir = dir.substr(0, dir.length - 1);\r\n }\r\n return root + dir;\r\n },basename:function (path) {\r\n // EMSCRIPTEN return '/'' for '/', not an empty string\r\n if (path === '/') return '/';\r\n var lastSlash = path.lastIndexOf('/');\r\n if (lastSlash === -1) return path;\r\n return path.substr(lastSlash+1);\r\n },extname:function (path) {\r\n return PATH.splitPath(path)[3];\r\n },join:function () {\r\n var paths = Array.prototype.slice.call(arguments, 0);\r\n return PATH.normalize(paths.join('/'));\r\n },join2:function (l, r) {\r\n return PATH.normalize(l + '/' + r);\r\n }};var SYSCALLS={buffers:[null,[],[]],printChar:function (stream, curr) {\r\n var buffer = SYSCALLS.buffers[stream];\r\n if (curr === 0 || curr === 10) {\r\n (stream === 1 ? out : err)(UTF8ArrayToString(buffer, 0));\r\n buffer.length = 0;\r\n } else {\r\n buffer.push(curr);\r\n }\r\n },varargs:0,get:function (varargs) {\r\n SYSCALLS.varargs += 4;\r\n var ret = HEAP32[(((SYSCALLS.varargs)-(4))>>2)];\r\n return ret;\r\n },getStr:function () {\r\n var ret = UTF8ToString(SYSCALLS.get());\r\n return ret;\r\n },get64:function () {\r\n var low = SYSCALLS.get(), high = SYSCALLS.get();\r\n return low;\r\n },getZero:function () {\r\n SYSCALLS.get();\r\n }};function ___syscall140(which, varargs) {SYSCALLS.varargs = varargs;\r\n try {\r\n // llseek\r\n var stream = SYSCALLS.getStreamFromFD(), offset_high = SYSCALLS.get(), offset_low = SYSCALLS.get(), result = SYSCALLS.get(), whence = SYSCALLS.get();\r\n return 0;\r\n } catch (e) {\r\n if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e);\r\n return -e.errno;\r\n }\r\n }\r\n\r\n \r\n function flush_NO_FILESYSTEM() {\r\n // flush anything remaining in the buffers during shutdown\r\n var fflush = Module[\"_fflush\"];\r\n if (fflush) fflush(0);\r\n var buffers = SYSCALLS.buffers;\r\n if (buffers[1].length) SYSCALLS.printChar(1, 10);\r\n if (buffers[2].length) SYSCALLS.printChar(2, 10);\r\n }function ___syscall146(which, varargs) {SYSCALLS.varargs = varargs;\r\n try {\r\n // writev\r\n // hack to support printf in SYSCALLS_REQUIRE_FILESYSTEM=0\r\n var stream = SYSCALLS.get(), iov = SYSCALLS.get(), iovcnt = SYSCALLS.get();\r\n var ret = 0;\r\n for (var i = 0; i < iovcnt; i++) {\r\n var ptr = HEAP32[(((iov)+(i*8))>>2)];\r\n var len = HEAP32[(((iov)+(i*8 + 4))>>2)];\r\n for (var j = 0; j < len; j++) {\r\n SYSCALLS.printChar(stream, HEAPU8[ptr+j]);\r\n }\r\n ret += len;\r\n }\r\n return ret;\r\n } catch (e) {\r\n if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e);\r\n return -e.errno;\r\n }\r\n }\r\n\r\n function ___syscall54(which, varargs) {SYSCALLS.varargs = varargs;\r\n try {\r\n // ioctl\r\n return 0;\r\n } catch (e) {\r\n if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e);\r\n return -e.errno;\r\n }\r\n }\r\n\r\n function ___syscall6(which, varargs) {SYSCALLS.varargs = varargs;\r\n try {\r\n // close\r\n var stream = SYSCALLS.getStreamFromFD();\r\n return 0;\r\n } catch (e) {\r\n if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e);\r\n return -e.errno;\r\n }\r\n }\r\n\r\n function ___unlock() {}\r\n\r\n function _abort() {\r\n Module['abort']();\r\n }\r\n\r\n var _emscripten_asm_const_int=true;\r\n\r\n function _emscripten_get_heap_size() {\r\n return HEAP8.length;\r\n }\r\n\r\n function _exit(status) {\r\n // void _exit(int status);\r\n // http://pubs.opengroup.org/onlinepubs/000095399/functions/exit.html\r\n exit(status);\r\n }\r\n\r\n \r\n\r\n function _llvm_eh_typeid_for(type) {\r\n return type;\r\n }\r\n\r\n function _llvm_trap() {\r\n abort('trap!');\r\n }\r\n\r\n \r\n function _emscripten_memcpy_big(dest, src, num) {\r\n HEAPU8.set(HEAPU8.subarray(src, src+num), dest);\r\n }\r\n \r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n function ___setErrNo(value) {\r\n if (Module['___errno_location']) HEAP32[((Module['___errno_location']())>>2)]=value;\r\n return value;\r\n }\r\n \r\n \r\n function abortOnCannotGrowMemory(requestedSize) {\r\n abort('OOM');\r\n }\r\n \r\n function emscripten_realloc_buffer(size) {\r\n var PAGE_MULTIPLE = 65536;\r\n size = alignUp(size, PAGE_MULTIPLE); // round up to wasm page size\r\n var oldSize = buffer.byteLength;\r\n // native wasm support\r\n // note that this is *not* threadsafe. multiple threads can call .grow(), and each\r\n // presents a delta, so in theory we may over-allocate here (e.g. if two threads\r\n // ask to grow from 256MB to 512MB, we get 2 requests to add +256MB, and may end\r\n // up growing to 768MB (even though we may have been able to make do with 512MB).\r\n // TODO: consider decreasing the step sizes in emscripten_resize_heap\r\n try {\r\n var result = wasmMemory.grow((size - oldSize) / 65536); // .grow() takes a delta compared to the previous size\r\n if (result !== (-1 | 0)) {\r\n // success in native wasm memory growth, get the buffer from the memory\r\n buffer = wasmMemory.buffer;\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n } catch(e) {\r\n return false;\r\n }\r\n }function _emscripten_resize_heap(requestedSize) {\r\n var oldSize = _emscripten_get_heap_size();\r\n // With pthreads, races can happen (another thread might increase the size in between), so return a failure, and let the caller retry.\r\n \r\n \r\n var PAGE_MULTIPLE = 65536;\r\n var LIMIT = 2147483648 - PAGE_MULTIPLE; // We can do one page short of 2GB as theoretical maximum.\r\n \r\n if (requestedSize > LIMIT) {\r\n return false;\r\n }\r\n \r\n var MIN_TOTAL_MEMORY = 16777216;\r\n var newSize = Math.max(oldSize, MIN_TOTAL_MEMORY); // So the loop below will not be infinite, and minimum asm.js memory size is 16MB.\r\n \r\n // TODO: see realloc_buffer - for PTHREADS we may want to decrease these jumps\r\n while (newSize < requestedSize) { // Keep incrementing the heap size as long as it's less than what is requested.\r\n if (newSize <= 536870912) {\r\n newSize = alignUp(2 * newSize, PAGE_MULTIPLE); // Simple heuristic: double until 1GB...\r\n } else {\r\n // ..., but after that, add smaller increments towards 2GB, which we cannot reach\r\n newSize = Math.min(alignUp((3 * newSize + 2147483648) / 4, PAGE_MULTIPLE), LIMIT);\r\n }\r\n \r\n }\r\n \r\n \r\n \r\n \r\n if (!emscripten_realloc_buffer(newSize)) {\r\n return false;\r\n }\r\n \r\n updateGlobalBufferViews();\r\n \r\n \r\n \r\n return true;\r\n } \r\n\r\n function _time(ptr) {\r\n var ret = (Date.now()/1000)|0;\r\n if (ptr) {\r\n HEAP32[((ptr)>>2)]=ret;\r\n }\r\n return ret;\r\n }\r\nvar ASSERTIONS = false;\r\n\r\n// Copyright 2017 The Emscripten Authors. All rights reserved.\r\n// Emscripten is available under two separate licenses, the MIT license and the\r\n// University of Illinois/NCSA Open Source License. Both these licenses can be\r\n// found in the LICENSE file.\r\n\r\n/** @type {function(string, boolean=, number=)} */\r\nfunction intArrayFromString(stringy, dontAddNull, length) {\r\n var len = length > 0 ? length : lengthBytesUTF8(stringy)+1;\r\n var u8array = new Array(len);\r\n var numBytesWritten = stringToUTF8Array(stringy, u8array, 0, u8array.length);\r\n if (dontAddNull) u8array.length = numBytesWritten;\r\n return u8array;\r\n}\r\n\r\nfunction intArrayToString(array) {\r\n var ret = [];\r\n for (var i = 0; i < array.length; i++) {\r\n var chr = array[i];\r\n if (chr > 0xFF) {\r\n if (ASSERTIONS) {\r\n assert(false, 'Character code ' + chr + ' (' + String.fromCharCode(chr) + ') at offset ' + i + ' not in 0x00-0xFF.');\r\n }\r\n chr &= 0xFF;\r\n }\r\n ret.push(String.fromCharCode(chr));\r\n }\r\n return ret.join('');\r\n}\r\n\r\n\r\n// ASM_LIBRARY EXTERN PRIMITIVES: Int8Array,Int32Array\r\n\r\n\r\nfunction invoke_i(index) {\r\n var sp = stackSave();\r\n try {\r\n return dynCall_i(index);\r\n } catch(e) {\r\n stackRestore(sp);\r\n if (e !== e+0 && e !== 'longjmp') throw e;\r\n _setThrew(1, 0);\r\n }\r\n}\r\n\r\nfunction invoke_ii(index,a1) {\r\n var sp = stackSave();\r\n try {\r\n return dynCall_ii(index,a1);\r\n } catch(e) {\r\n stackRestore(sp);\r\n if (e !== e+0 && e !== 'longjmp') throw e;\r\n _setThrew(1, 0);\r\n }\r\n}\r\n\r\nfunction invoke_iii(index,a1,a2) {\r\n var sp = stackSave();\r\n try {\r\n return dynCall_iii(index,a1,a2);\r\n } catch(e) {\r\n stackRestore(sp);\r\n if (e !== e+0 && e !== 'longjmp') throw e;\r\n _setThrew(1, 0);\r\n }\r\n}\r\n\r\nfunction invoke_iiii(index,a1,a2,a3) {\r\n var sp = stackSave();\r\n try {\r\n return dynCall_iiii(index,a1,a2,a3);\r\n } catch(e) {\r\n stackRestore(sp);\r\n if (e !== e+0 && e !== 'longjmp') throw e;\r\n _setThrew(1, 0);\r\n }\r\n}\r\n\r\nfunction invoke_iiiii(index,a1,a2,a3,a4) {\r\n var sp = stackSave();\r\n try {\r\n return dynCall_iiiii(index,a1,a2,a3,a4);\r\n } catch(e) {\r\n stackRestore(sp);\r\n if (e !== e+0 && e !== 'longjmp') throw e;\r\n _setThrew(1, 0);\r\n }\r\n}\r\n\r\nfunction invoke_iiiiii(index,a1,a2,a3,a4,a5) {\r\n var sp = stackSave();\r\n try {\r\n return dynCall_iiiiii(index,a1,a2,a3,a4,a5);\r\n } catch(e) {\r\n stackRestore(sp);\r\n if (e !== e+0 && e !== 'longjmp') throw e;\r\n _setThrew(1, 0);\r\n }\r\n}\r\n\r\nfunction invoke_ji(index,a1) {\r\n var sp = stackSave();\r\n try {\r\n return dynCall_ji(index,a1);\r\n } catch(e) {\r\n stackRestore(sp);\r\n if (e !== e+0 && e !== 'longjmp') throw e;\r\n _setThrew(1, 0);\r\n }\r\n}\r\n\r\nfunction invoke_v(index) {\r\n var sp = stackSave();\r\n try {\r\n dynCall_v(index);\r\n } catch(e) {\r\n stackRestore(sp);\r\n if (e !== e+0 && e !== 'longjmp') throw e;\r\n _setThrew(1, 0);\r\n }\r\n}\r\n\r\nfunction invoke_vi(index,a1) {\r\n var sp = stackSave();\r\n try {\r\n dynCall_vi(index,a1);\r\n } catch(e) {\r\n stackRestore(sp);\r\n if (e !== e+0 && e !== 'longjmp') throw e;\r\n _setThrew(1, 0);\r\n }\r\n}\r\n\r\nfunction invoke_vii(index,a1,a2) {\r\n var sp = stackSave();\r\n try {\r\n dynCall_vii(index,a1,a2);\r\n } catch(e) {\r\n stackRestore(sp);\r\n if (e !== e+0 && e !== 'longjmp') throw e;\r\n _setThrew(1, 0);\r\n }\r\n}\r\n\r\nfunction invoke_viii(index,a1,a2,a3) {\r\n var sp = stackSave();\r\n try {\r\n dynCall_viii(index,a1,a2,a3);\r\n } catch(e) {\r\n stackRestore(sp);\r\n if (e !== e+0 && e !== 'longjmp') throw e;\r\n _setThrew(1, 0);\r\n }\r\n}\r\n\r\nfunction invoke_viiii(index,a1,a2,a3,a4) {\r\n var sp = stackSave();\r\n try {\r\n dynCall_viiii(index,a1,a2,a3,a4);\r\n } catch(e) {\r\n stackRestore(sp);\r\n if (e !== e+0 && e !== 'longjmp') throw e;\r\n _setThrew(1, 0);\r\n }\r\n}\r\n\r\nfunction invoke_viiiii(index,a1,a2,a3,a4,a5) {\r\n var sp = stackSave();\r\n try {\r\n dynCall_viiiii(index,a1,a2,a3,a4,a5);\r\n } catch(e) {\r\n stackRestore(sp);\r\n if (e !== e+0 && e !== 'longjmp') throw e;\r\n _setThrew(1, 0);\r\n }\r\n}\r\n\r\nfunction invoke_viiiiiii(index,a1,a2,a3,a4,a5,a6,a7) {\r\n var sp = stackSave();\r\n try {\r\n dynCall_viiiiiii(index,a1,a2,a3,a4,a5,a6,a7);\r\n } catch(e) {\r\n stackRestore(sp);\r\n if (e !== e+0 && e !== 'longjmp') throw e;\r\n _setThrew(1, 0);\r\n }\r\n}\r\n\r\nfunction invoke_viij(index,a1,a2,a3,a4) {\r\n var sp = stackSave();\r\n try {\r\n dynCall_viij(index,a1,a2,a3,a4);\r\n } catch(e) {\r\n stackRestore(sp);\r\n if (e !== e+0 && e !== 'longjmp') throw e;\r\n _setThrew(1, 0);\r\n }\r\n}\r\n\r\nfunction invoke_viji(index,a1,a2,a3,a4) {\r\n var sp = stackSave();\r\n try {\r\n dynCall_viji(index,a1,a2,a3,a4);\r\n } catch(e) {\r\n stackRestore(sp);\r\n if (e !== e+0 && e !== 'longjmp') throw e;\r\n _setThrew(1, 0);\r\n }\r\n}\r\n\r\nvar asmGlobalArg = {};\r\n\r\nvar asmLibraryArg = {\r\n \"abort\": abort,\r\n \"setTempRet0\": setTempRet0,\r\n \"getTempRet0\": getTempRet0,\r\n \"invoke_i\": invoke_i,\r\n \"invoke_ii\": invoke_ii,\r\n \"invoke_iii\": invoke_iii,\r\n \"invoke_iiii\": invoke_iiii,\r\n \"invoke_iiiii\": invoke_iiiii,\r\n \"invoke_iiiiii\": invoke_iiiiii,\r\n \"invoke_ji\": invoke_ji,\r\n \"invoke_v\": invoke_v,\r\n \"invoke_vi\": invoke_vi,\r\n \"invoke_vii\": invoke_vii,\r\n \"invoke_viii\": invoke_viii,\r\n \"invoke_viiii\": invoke_viiii,\r\n \"invoke_viiiii\": invoke_viiiii,\r\n \"invoke_viiiiiii\": invoke_viiiiiii,\r\n \"invoke_viij\": invoke_viij,\r\n \"invoke_viji\": invoke_viji,\r\n \"___assert_fail\": ___assert_fail,\r\n \"___cxa_allocate_exception\": ___cxa_allocate_exception,\r\n \"___cxa_begin_catch\": ___cxa_begin_catch,\r\n \"___cxa_end_catch\": ___cxa_end_catch,\r\n \"___cxa_find_matching_catch\": ___cxa_find_matching_catch,\r\n \"___cxa_find_matching_catch_2\": ___cxa_find_matching_catch_2,\r\n \"___cxa_find_matching_catch_3\": ___cxa_find_matching_catch_3,\r\n \"___cxa_free_exception\": ___cxa_free_exception,\r\n \"___cxa_get_exception_ptr\": ___cxa_get_exception_ptr,\r\n \"___cxa_pure_virtual\": ___cxa_pure_virtual,\r\n \"___cxa_throw\": ___cxa_throw,\r\n \"___cxa_uncaught_exceptions\": ___cxa_uncaught_exceptions,\r\n \"___exception_addRef\": ___exception_addRef,\r\n \"___exception_deAdjust\": ___exception_deAdjust,\r\n \"___exception_decRef\": ___exception_decRef,\r\n \"___gxx_personality_v0\": ___gxx_personality_v0,\r\n \"___lock\": ___lock,\r\n \"___resumeException\": ___resumeException,\r\n \"___setErrNo\": ___setErrNo,\r\n \"___syscall140\": ___syscall140,\r\n \"___syscall146\": ___syscall146,\r\n \"___syscall54\": ___syscall54,\r\n \"___syscall6\": ___syscall6,\r\n \"___unlock\": ___unlock,\r\n \"__api_close_keyboard\": __api_close_keyboard,\r\n \"__api_open_keyboard\": __api_open_keyboard,\r\n \"_abort\": _abort,\r\n \"_api_create_sound\": _api_create_sound,\r\n \"_api_create_sound_float\": _api_create_sound_float,\r\n \"_api_delete_sound\": _api_delete_sound,\r\n \"_api_draw_begin\": _api_draw_begin,\r\n \"_api_draw_belt\": _api_draw_belt,\r\n \"_api_draw_blit\": _api_draw_blit,\r\n \"_api_draw_clip_text\": _api_draw_clip_text,\r\n \"_api_draw_end\": _api_draw_end,\r\n \"_api_draw_text\": _api_draw_text,\r\n \"_api_duplicate_sound\": _api_duplicate_sound,\r\n \"_api_exit_game\": _api_exit_game,\r\n \"_api_play_sound\": _api_play_sound,\r\n \"_api_set_cursor\": _api_set_cursor,\r\n \"_api_set_volume\": _api_set_volume,\r\n \"_api_stop_sound\": _api_stop_sound,\r\n \"_api_use_websocket\": _api_use_websocket,\r\n \"_api_websocket_closed\": _api_websocket_closed,\r\n \"_api_websocket_send\": _api_websocket_send,\r\n \"_emscripten_asm_const_ii\": _emscripten_asm_const_ii,\r\n \"_emscripten_get_heap_size\": _emscripten_get_heap_size,\r\n \"_emscripten_memcpy_big\": _emscripten_memcpy_big,\r\n \"_emscripten_resize_heap\": _emscripten_resize_heap,\r\n \"_exit\": _exit,\r\n \"_exit_error\": _exit_error,\r\n \"_get_file_contents\": _get_file_contents,\r\n \"_get_file_size\": _get_file_size,\r\n \"_llvm_eh_typeid_for\": _llvm_eh_typeid_for,\r\n \"_llvm_trap\": _llvm_trap,\r\n \"_put_file_contents\": _put_file_contents,\r\n \"_remove_file\": _remove_file,\r\n \"_show_alert\": _show_alert,\r\n \"_time\": _time,\r\n \"_trace_pop\": _trace_pop,\r\n \"_trace_push\": _trace_push,\r\n \"abortOnCannotGrowMemory\": abortOnCannotGrowMemory,\r\n \"emscripten_realloc_buffer\": emscripten_realloc_buffer,\r\n \"flush_NO_FILESYSTEM\": flush_NO_FILESYSTEM,\r\n \"tempDoublePtr\": tempDoublePtr,\r\n \"DYNAMICTOP_PTR\": DYNAMICTOP_PTR\r\n};\r\n// EMSCRIPTEN_START_ASM\r\nvar asm =Module[\"asm\"]// EMSCRIPTEN_END_ASM\r\n(asmGlobalArg, asmLibraryArg, buffer);\r\n\r\nModule[\"asm\"] = asm;\r\nvar _DApi_AllocPacket = Module[\"_DApi_AllocPacket\"] = function() {\r\n return Module[\"asm\"][\"_DApi_AllocPacket\"].apply(null, arguments)\r\n};\r\n\r\nvar _DApi_Char = Module[\"_DApi_Char\"] = function() {\r\n return Module[\"asm\"][\"_DApi_Char\"].apply(null, arguments)\r\n};\r\n\r\nvar _DApi_Init = Module[\"_DApi_Init\"] = function() {\r\n return Module[\"asm\"][\"_DApi_Init\"].apply(null, arguments)\r\n};\r\n\r\nvar _DApi_Key = Module[\"_DApi_Key\"] = function() {\r\n return Module[\"asm\"][\"_DApi_Key\"].apply(null, arguments)\r\n};\r\n\r\nvar _DApi_Mouse = Module[\"_DApi_Mouse\"] = function() {\r\n return Module[\"asm\"][\"_DApi_Mouse\"].apply(null, arguments)\r\n};\r\n\r\nvar _DApi_Render = Module[\"_DApi_Render\"] = function() {\r\n return Module[\"asm\"][\"_DApi_Render\"].apply(null, arguments)\r\n};\r\n\r\nvar _DApi_SyncText = Module[\"_DApi_SyncText\"] = function() {\r\n return Module[\"asm\"][\"_DApi_SyncText\"].apply(null, arguments)\r\n};\r\n\r\nvar _DApi_SyncTextPtr = Module[\"_DApi_SyncTextPtr\"] = function() {\r\n return Module[\"asm\"][\"_DApi_SyncTextPtr\"].apply(null, arguments)\r\n};\r\n\r\nvar _SNet_InitWebsocket = Module[\"_SNet_InitWebsocket\"] = function() {\r\n return Module[\"asm\"][\"_SNet_InitWebsocket\"].apply(null, arguments)\r\n};\r\n\r\nvar _SNet_WebsocketStatus = Module[\"_SNet_WebsocketStatus\"] = function() {\r\n return Module[\"asm\"][\"_SNet_WebsocketStatus\"].apply(null, arguments)\r\n};\r\n\r\nvar __ZSt18uncaught_exceptionv = Module[\"__ZSt18uncaught_exceptionv\"] = function() {\r\n return Module[\"asm\"][\"__ZSt18uncaught_exceptionv\"].apply(null, arguments)\r\n};\r\n\r\nvar ___cxa_can_catch = Module[\"___cxa_can_catch\"] = function() {\r\n return Module[\"asm\"][\"___cxa_can_catch\"].apply(null, arguments)\r\n};\r\n\r\nvar ___cxa_is_pointer_type = Module[\"___cxa_is_pointer_type\"] = function() {\r\n return Module[\"asm\"][\"___cxa_is_pointer_type\"].apply(null, arguments)\r\n};\r\n\r\nvar ___em_js___api_close_keyboard = Module[\"___em_js___api_close_keyboard\"] = function() {\r\n return Module[\"asm\"][\"___em_js___api_close_keyboard\"].apply(null, arguments)\r\n};\r\n\r\nvar ___em_js___api_open_keyboard = Module[\"___em_js___api_open_keyboard\"] = function() {\r\n return Module[\"asm\"][\"___em_js___api_open_keyboard\"].apply(null, arguments)\r\n};\r\n\r\nvar ___em_js__api_create_sound = Module[\"___em_js__api_create_sound\"] = function() {\r\n return Module[\"asm\"][\"___em_js__api_create_sound\"].apply(null, arguments)\r\n};\r\n\r\nvar ___em_js__api_create_sound_float = Module[\"___em_js__api_create_sound_float\"] = function() {\r\n return Module[\"asm\"][\"___em_js__api_create_sound_float\"].apply(null, arguments)\r\n};\r\n\r\nvar ___em_js__api_delete_sound = Module[\"___em_js__api_delete_sound\"] = function() {\r\n return Module[\"asm\"][\"___em_js__api_delete_sound\"].apply(null, arguments)\r\n};\r\n\r\nvar ___em_js__api_draw_begin = Module[\"___em_js__api_draw_begin\"] = function() {\r\n return Module[\"asm\"][\"___em_js__api_draw_begin\"].apply(null, arguments)\r\n};\r\n\r\nvar ___em_js__api_draw_belt = Module[\"___em_js__api_draw_belt\"] = function() {\r\n return Module[\"asm\"][\"___em_js__api_draw_belt\"].apply(null, arguments)\r\n};\r\n\r\nvar ___em_js__api_draw_blit = Module[\"___em_js__api_draw_blit\"] = function() {\r\n return Module[\"asm\"][\"___em_js__api_draw_blit\"].apply(null, arguments)\r\n};\r\n\r\nvar ___em_js__api_draw_clip_text = Module[\"___em_js__api_draw_clip_text\"] = function() {\r\n return Module[\"asm\"][\"___em_js__api_draw_clip_text\"].apply(null, arguments)\r\n};\r\n\r\nvar ___em_js__api_draw_end = Module[\"___em_js__api_draw_end\"] = function() {\r\n return Module[\"asm\"][\"___em_js__api_draw_end\"].apply(null, arguments)\r\n};\r\n\r\nvar ___em_js__api_draw_text = Module[\"___em_js__api_draw_text\"] = function() {\r\n return Module[\"asm\"][\"___em_js__api_draw_text\"].apply(null, arguments)\r\n};\r\n\r\nvar ___em_js__api_duplicate_sound = Module[\"___em_js__api_duplicate_sound\"] = function() {\r\n return Module[\"asm\"][\"___em_js__api_duplicate_sound\"].apply(null, arguments)\r\n};\r\n\r\nvar ___em_js__api_exit_game = Module[\"___em_js__api_exit_game\"] = function() {\r\n return Module[\"asm\"][\"___em_js__api_exit_game\"].apply(null, arguments)\r\n};\r\n\r\nvar ___em_js__api_play_sound = Module[\"___em_js__api_play_sound\"] = function() {\r\n return Module[\"asm\"][\"___em_js__api_play_sound\"].apply(null, arguments)\r\n};\r\n\r\nvar ___em_js__api_set_cursor = Module[\"___em_js__api_set_cursor\"] = function() {\r\n return Module[\"asm\"][\"___em_js__api_set_cursor\"].apply(null, arguments)\r\n};\r\n\r\nvar ___em_js__api_set_volume = Module[\"___em_js__api_set_volume\"] = function() {\r\n return Module[\"asm\"][\"___em_js__api_set_volume\"].apply(null, arguments)\r\n};\r\n\r\nvar ___em_js__api_stop_sound = Module[\"___em_js__api_stop_sound\"] = function() {\r\n return Module[\"asm\"][\"___em_js__api_stop_sound\"].apply(null, arguments)\r\n};\r\n\r\nvar ___em_js__api_use_websocket = Module[\"___em_js__api_use_websocket\"] = function() {\r\n return Module[\"asm\"][\"___em_js__api_use_websocket\"].apply(null, arguments)\r\n};\r\n\r\nvar ___em_js__api_websocket_closed = Module[\"___em_js__api_websocket_closed\"] = function() {\r\n return Module[\"asm\"][\"___em_js__api_websocket_closed\"].apply(null, arguments)\r\n};\r\n\r\nvar ___em_js__api_websocket_send = Module[\"___em_js__api_websocket_send\"] = function() {\r\n return Module[\"asm\"][\"___em_js__api_websocket_send\"].apply(null, arguments)\r\n};\r\n\r\nvar ___em_js__exit_error = Module[\"___em_js__exit_error\"] = function() {\r\n return Module[\"asm\"][\"___em_js__exit_error\"].apply(null, arguments)\r\n};\r\n\r\nvar ___em_js__get_file_contents = Module[\"___em_js__get_file_contents\"] = function() {\r\n return Module[\"asm\"][\"___em_js__get_file_contents\"].apply(null, arguments)\r\n};\r\n\r\nvar ___em_js__get_file_size = Module[\"___em_js__get_file_size\"] = function() {\r\n return Module[\"asm\"][\"___em_js__get_file_size\"].apply(null, arguments)\r\n};\r\n\r\nvar ___em_js__put_file_contents = Module[\"___em_js__put_file_contents\"] = function() {\r\n return Module[\"asm\"][\"___em_js__put_file_contents\"].apply(null, arguments)\r\n};\r\n\r\nvar ___em_js__remove_file = Module[\"___em_js__remove_file\"] = function() {\r\n return Module[\"asm\"][\"___em_js__remove_file\"].apply(null, arguments)\r\n};\r\n\r\nvar ___em_js__show_alert = Module[\"___em_js__show_alert\"] = function() {\r\n return Module[\"asm\"][\"___em_js__show_alert\"].apply(null, arguments)\r\n};\r\n\r\nvar ___em_js__trace_pop = Module[\"___em_js__trace_pop\"] = function() {\r\n return Module[\"asm\"][\"___em_js__trace_pop\"].apply(null, arguments)\r\n};\r\n\r\nvar ___em_js__trace_push = Module[\"___em_js__trace_push\"] = function() {\r\n return Module[\"asm\"][\"___em_js__trace_push\"].apply(null, arguments)\r\n};\r\n\r\nvar _emscripten_replace_memory = Module[\"_emscripten_replace_memory\"] = function() {\r\n return Module[\"asm\"][\"_emscripten_replace_memory\"].apply(null, arguments)\r\n};\r\n\r\nvar _free = Module[\"_free\"] = function() {\r\n return Module[\"asm\"][\"_free\"].apply(null, arguments)\r\n};\r\n\r\nvar _llvm_bswap_i32 = Module[\"_llvm_bswap_i32\"] = function() {\r\n return Module[\"asm\"][\"_llvm_bswap_i32\"].apply(null, arguments)\r\n};\r\n\r\nvar _malloc = Module[\"_malloc\"] = function() {\r\n return Module[\"asm\"][\"_malloc\"].apply(null, arguments)\r\n};\r\n\r\nvar _memcpy = Module[\"_memcpy\"] = function() {\r\n return Module[\"asm\"][\"_memcpy\"].apply(null, arguments)\r\n};\r\n\r\nvar _memmove = Module[\"_memmove\"] = function() {\r\n return Module[\"asm\"][\"_memmove\"].apply(null, arguments)\r\n};\r\n\r\nvar _memset = Module[\"_memset\"] = function() {\r\n return Module[\"asm\"][\"_memset\"].apply(null, arguments)\r\n};\r\n\r\nvar _sbrk = Module[\"_sbrk\"] = function() {\r\n return Module[\"asm\"][\"_sbrk\"].apply(null, arguments)\r\n};\r\n\r\nvar _setThrew = Module[\"_setThrew\"] = function() {\r\n return Module[\"asm\"][\"_setThrew\"].apply(null, arguments)\r\n};\r\n\r\nvar establishStackSpace = Module[\"establishStackSpace\"] = function() {\r\n return Module[\"asm\"][\"establishStackSpace\"].apply(null, arguments)\r\n};\r\n\r\nvar globalCtors = Module[\"globalCtors\"] = function() {\r\n return Module[\"asm\"][\"globalCtors\"].apply(null, arguments)\r\n};\r\n\r\nvar stackAlloc = Module[\"stackAlloc\"] = function() {\r\n return Module[\"asm\"][\"stackAlloc\"].apply(null, arguments)\r\n};\r\n\r\nvar stackRestore = Module[\"stackRestore\"] = function() {\r\n return Module[\"asm\"][\"stackRestore\"].apply(null, arguments)\r\n};\r\n\r\nvar stackSave = Module[\"stackSave\"] = function() {\r\n return Module[\"asm\"][\"stackSave\"].apply(null, arguments)\r\n};\r\n\r\nvar dynCall_i = Module[\"dynCall_i\"] = function() {\r\n return Module[\"asm\"][\"dynCall_i\"].apply(null, arguments)\r\n};\r\n\r\nvar dynCall_ii = Module[\"dynCall_ii\"] = function() {\r\n return Module[\"asm\"][\"dynCall_ii\"].apply(null, arguments)\r\n};\r\n\r\nvar dynCall_iidiiii = Module[\"dynCall_iidiiii\"] = function() {\r\n return Module[\"asm\"][\"dynCall_iidiiii\"].apply(null, arguments)\r\n};\r\n\r\nvar dynCall_iii = Module[\"dynCall_iii\"] = function() {\r\n return Module[\"asm\"][\"dynCall_iii\"].apply(null, arguments)\r\n};\r\n\r\nvar dynCall_iiii = Module[\"dynCall_iiii\"] = function() {\r\n return Module[\"asm\"][\"dynCall_iiii\"].apply(null, arguments)\r\n};\r\n\r\nvar dynCall_iiiii = Module[\"dynCall_iiiii\"] = function() {\r\n return Module[\"asm\"][\"dynCall_iiiii\"].apply(null, arguments)\r\n};\r\n\r\nvar dynCall_iiiiii = Module[\"dynCall_iiiiii\"] = function() {\r\n return Module[\"asm\"][\"dynCall_iiiiii\"].apply(null, arguments)\r\n};\r\n\r\nvar dynCall_ji = Module[\"dynCall_ji\"] = function() {\r\n return Module[\"asm\"][\"dynCall_ji\"].apply(null, arguments)\r\n};\r\n\r\nvar dynCall_jiji = Module[\"dynCall_jiji\"] = function() {\r\n return Module[\"asm\"][\"dynCall_jiji\"].apply(null, arguments)\r\n};\r\n\r\nvar dynCall_v = Module[\"dynCall_v\"] = function() {\r\n return Module[\"asm\"][\"dynCall_v\"].apply(null, arguments)\r\n};\r\n\r\nvar dynCall_vi = Module[\"dynCall_vi\"] = function() {\r\n return Module[\"asm\"][\"dynCall_vi\"].apply(null, arguments)\r\n};\r\n\r\nvar dynCall_vii = Module[\"dynCall_vii\"] = function() {\r\n return Module[\"asm\"][\"dynCall_vii\"].apply(null, arguments)\r\n};\r\n\r\nvar dynCall_viii = Module[\"dynCall_viii\"] = function() {\r\n return Module[\"asm\"][\"dynCall_viii\"].apply(null, arguments)\r\n};\r\n\r\nvar dynCall_viiii = Module[\"dynCall_viiii\"] = function() {\r\n return Module[\"asm\"][\"dynCall_viiii\"].apply(null, arguments)\r\n};\r\n\r\nvar dynCall_viiiii = Module[\"dynCall_viiiii\"] = function() {\r\n return Module[\"asm\"][\"dynCall_viiiii\"].apply(null, arguments)\r\n};\r\n\r\nvar dynCall_viiiiii = Module[\"dynCall_viiiiii\"] = function() {\r\n return Module[\"asm\"][\"dynCall_viiiiii\"].apply(null, arguments)\r\n};\r\n\r\nvar dynCall_viiiiiii = Module[\"dynCall_viiiiiii\"] = function() {\r\n return Module[\"asm\"][\"dynCall_viiiiiii\"].apply(null, arguments)\r\n};\r\n\r\nvar dynCall_viiiiiiiii = Module[\"dynCall_viiiiiiiii\"] = function() {\r\n return Module[\"asm\"][\"dynCall_viiiiiiiii\"].apply(null, arguments)\r\n};\r\n\r\nvar dynCall_viiiiiiiiii = Module[\"dynCall_viiiiiiiiii\"] = function() {\r\n return Module[\"asm\"][\"dynCall_viiiiiiiiii\"].apply(null, arguments)\r\n};\r\n\r\nvar dynCall_viij = Module[\"dynCall_viij\"] = function() {\r\n return Module[\"asm\"][\"dynCall_viij\"].apply(null, arguments)\r\n};\r\n\r\nvar dynCall_viji = Module[\"dynCall_viji\"] = function() {\r\n return Module[\"asm\"][\"dynCall_viji\"].apply(null, arguments)\r\n};\r\n;\r\n\r\n\r\n\r\n// === Auto-generated postamble setup entry stuff ===\r\n\r\nModule['asm'] = asm;\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n// Modularize mode returns a function, which can be called to\r\n// create instances. The instances provide a then() method,\r\n// must like a Promise, that receives a callback. The callback\r\n// is called when the module is ready to run, with the module\r\n// as a parameter. (Like a Promise, it also returns the module\r\n// so you can use the output of .then(..)).\r\nModule['then'] = function(func) {\r\n // We may already be ready to run code at this time. if\r\n // so, just queue a call to the callback.\r\n if (Module['calledRun']) {\r\n func(Module);\r\n } else {\r\n // we are not ready to call then() yet. we must call it\r\n // at the same time we would call onRuntimeInitialized.\r\n var old = Module['onRuntimeInitialized'];\r\n Module['onRuntimeInitialized'] = function() {\r\n if (old) old();\r\n func(Module);\r\n };\r\n }\r\n return Module;\r\n};\r\n\r\n/**\r\n * @constructor\r\n * @extends {Error}\r\n * @this {ExitStatus}\r\n */\r\nfunction ExitStatus(status) {\r\n this.name = \"ExitStatus\";\r\n this.message = \"Program terminated with exit(\" + status + \")\";\r\n this.status = status;\r\n}\r\nExitStatus.prototype = new Error();\r\nExitStatus.prototype.constructor = ExitStatus;\r\n\r\nvar calledMain = false;\r\n\r\ndependenciesFulfilled = function runCaller() {\r\n // If run has never been called, and we should call run (INVOKE_RUN is true, and Module.noInitialRun is not false)\r\n if (!Module['calledRun']) run();\r\n if (!Module['calledRun']) dependenciesFulfilled = runCaller; // try this again later, after new deps are fulfilled\r\n};\r\n\r\n\r\n\r\n\r\n\r\n/** @type {function(Array=)} */\r\nfunction run(args) {\r\n args = args || Module['arguments'];\r\n\r\n if (runDependencies > 0) {\r\n return;\r\n }\r\n\r\n\r\n preRun();\r\n\r\n if (runDependencies > 0) return; // a preRun added a dependency, run will be called later\r\n if (Module['calledRun']) return; // run may have just been called through dependencies being fulfilled just in this very frame\r\n\r\n function doRun() {\r\n if (Module['calledRun']) return; // run may have just been called while the async setStatus time below was happening\r\n Module['calledRun'] = true;\r\n\r\n if (ABORT) return;\r\n\r\n initRuntime();\r\n\r\n preMain();\r\n\r\n if (Module['onRuntimeInitialized']) Module['onRuntimeInitialized']();\r\n\r\n\r\n postRun();\r\n }\r\n\r\n if (Module['setStatus']) {\r\n Module['setStatus']('Running...');\r\n setTimeout(function() {\r\n setTimeout(function() {\r\n Module['setStatus']('');\r\n }, 1);\r\n doRun();\r\n }, 1);\r\n } else {\r\n doRun();\r\n }\r\n}\r\nModule['run'] = run;\r\n\r\n\r\nfunction exit(status, implicit) {\r\n\r\n // if this is just main exit-ing implicitly, and the status is 0, then we\r\n // don't need to do anything here and can just leave. if the status is\r\n // non-zero, though, then we need to report it.\r\n // (we may have warned about this earlier, if a situation justifies doing so)\r\n if (implicit && Module['noExitRuntime'] && status === 0) {\r\n return;\r\n }\r\n\r\n if (Module['noExitRuntime']) {\r\n } else {\r\n\r\n ABORT = true;\r\n EXITSTATUS = status;\r\n\r\n exitRuntime();\r\n\r\n if (Module['onExit']) Module['onExit'](status);\r\n }\r\n\r\n Module['quit'](status, new ExitStatus(status));\r\n}\r\n\r\nvar abortDecorators = [];\r\n\r\nfunction abort(what) {\r\n if (Module['onAbort']) {\r\n Module['onAbort'](what);\r\n }\r\n\r\n what += '';\r\n out(what);\r\n err(what);\r\n\r\n ABORT = true;\r\n EXITSTATUS = 1;\r\n\r\n throw 'abort(' + what + '). Build with -s ASSERTIONS=1 for more info.';\r\n}\r\nModule['abort'] = abort;\r\n\r\nif (Module['preInit']) {\r\n if (typeof Module['preInit'] == 'function') Module['preInit'] = [Module['preInit']];\r\n while (Module['preInit'].length > 0) {\r\n Module['preInit'].pop()();\r\n }\r\n}\r\n\r\n\r\n Module[\"noExitRuntime\"] = true;\r\n\r\nrun();\r\n\r\n\r\n\r\n\r\n\r\n// {{MODULE_ADDITIONS}}\r\n\r\n\r\n\r\nModule['ready'] = new Promise(function (resolve, reject) {\r\n delete Module['then']\r\n Module['onAbort'] = function (what) {\r\n reject(what)\r\n }\r\n addOnPostRun(function () {\r\n resolve(Module)\r\n })\r\n});\r\n\r\n\r\n\r\n return Diablo\r\n}\r\n);\r\n})();\r\nif (typeof exports === 'object' && typeof module === 'object')\r\n module.exports = Diablo;\r\n else if (typeof define === 'function' && define['amd'])\r\n define([], function() { return Diablo; });\r\n else if (typeof exports === 'object')\r\n exports[\"Diablo\"] = Diablo;\r\n \n\n/*** EXPORTS FROM exports-loader ***/\n","module.exports = __webpack_public_path__ + \"static/media/DiabloSpawn.9c2373b2.wasm\";","\r\nvar DiabloSpawn = (function() {\r\n var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;\r\n return (\r\nfunction(DiabloSpawn) {\r\n DiabloSpawn = DiabloSpawn || {};\r\n\r\n// Copyright 2010 The Emscripten Authors. All rights reserved.\r\n// Emscripten is available under two separate licenses, the MIT license and the\r\n// University of Illinois/NCSA Open Source License. Both these licenses can be\r\n// found in the LICENSE file.\r\n\r\n// The Module object: Our interface to the outside world. We import\r\n// and export values on it. There are various ways Module can be used:\r\n// 1. Not defined. We create it here\r\n// 2. A function parameter, function(Module) { ..generated code.. }\r\n// 3. pre-run appended it, var Module = {}; ..generated code..\r\n// 4. External script tag defines var Module.\r\n// We need to check if Module already exists (e.g. case 3 above).\r\n// Substitution will be replaced with actual code on later stage of the build,\r\n// this way Closure Compiler will not mangle it (e.g. case 4. above).\r\n// Note that if you want to run closure, and also to use Module\r\n// after the generated code, you will need to define var Module = {};\r\n// before the code. Then that object will be used in the code, and you\r\n// can continue to use Module afterwards as well.\r\nvar Module = typeof DiabloSpawn !== 'undefined' ? DiabloSpawn : {};\r\n\r\n// --pre-jses are emitted after the Module integration code, so that they can\r\n// refer to Module (if they choose; they can also define Module)\r\n\r\n\r\n// Sometimes an existing Module object exists with properties\r\n// meant to overwrite the default module functionality. Here\r\n// we collect those properties and reapply _after_ we configure\r\n// the current environment's defaults to avoid having to be so\r\n// defensive during initialization.\r\nvar moduleOverrides = {};\r\nvar key;\r\nfor (key in Module) {\r\n if (Module.hasOwnProperty(key)) {\r\n moduleOverrides[key] = Module[key];\r\n }\r\n}\r\n\r\nModule['arguments'] = [];\r\nModule['thisProgram'] = './this.program';\r\nModule['quit'] = function(status, toThrow) {\r\n throw toThrow;\r\n};\r\nModule['preRun'] = [];\r\nModule['postRun'] = [];\r\n\r\n// Determine the runtime environment we are in. You can customize this by\r\n// setting the ENVIRONMENT setting at compile time (see settings.js).\r\n\r\nvar ENVIRONMENT_IS_WEB = false;\r\nvar ENVIRONMENT_IS_WORKER = false;\r\nvar ENVIRONMENT_IS_NODE = false;\r\nvar ENVIRONMENT_HAS_NODE = false;\r\nvar ENVIRONMENT_IS_SHELL = false;\r\nENVIRONMENT_IS_WEB = typeof window === 'object';\r\nENVIRONMENT_IS_WORKER = typeof importScripts === 'function';\r\n// A web environment like Electron.js can have Node enabled, so we must\r\n// distinguish between Node-enabled environments and Node environments per se.\r\n// This will allow the former to do things like mount NODEFS.\r\n// Extended check using process.versions fixes issue #8816.\r\n// (Also makes redundant the original check that 'require' is a function.)\r\nENVIRONMENT_HAS_NODE = typeof process === 'object' && typeof process.versions === 'object' && typeof process.versions.node === 'string';\r\nENVIRONMENT_IS_NODE = ENVIRONMENT_HAS_NODE && !ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_WORKER;\r\nENVIRONMENT_IS_SHELL = !ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_NODE && !ENVIRONMENT_IS_WORKER;\r\n\r\n\r\n\r\n// Three configurations we can be running in:\r\n// 1) We could be the application main() thread running in the main JS UI thread. (ENVIRONMENT_IS_WORKER == false and ENVIRONMENT_IS_PTHREAD == false)\r\n// 2) We could be the application main() thread proxied to worker. (with Emscripten -s PROXY_TO_WORKER=1) (ENVIRONMENT_IS_WORKER == true, ENVIRONMENT_IS_PTHREAD == false)\r\n// 3) We could be an application pthread running in a worker. (ENVIRONMENT_IS_WORKER == true and ENVIRONMENT_IS_PTHREAD == true)\r\n\r\n\r\n\r\n\r\n// `/` should be present at the end if `scriptDirectory` is not empty\r\nvar scriptDirectory = '';\r\nfunction locateFile(path) {\r\n if (Module['locateFile']) {\r\n return Module['locateFile'](path, scriptDirectory);\r\n } else {\r\n return scriptDirectory + path;\r\n }\r\n}\r\n\r\n// Hooks that are implemented differently in different runtime environments.\r\nvar read_,\r\n readAsync,\r\n readBinary,\r\n setWindowTitle;\r\n\r\nif (ENVIRONMENT_IS_NODE) {\r\n scriptDirectory = __dirname + '/';\r\n\r\n // Expose functionality in the same simple way that the shells work\r\n // Note that we pollute the global namespace here, otherwise we break in node\r\n var nodeFS;\r\n var nodePath;\r\n\r\n read_ = function shell_read(filename, binary) {\r\n var ret;\r\n if (!nodeFS) nodeFS = require('fs');\r\n if (!nodePath) nodePath = require('path');\r\n filename = nodePath['normalize'](filename);\r\n ret = nodeFS['readFileSync'](filename);\r\n return binary ? ret : ret.toString();\r\n };\r\n\r\n readBinary = function readBinary(filename) {\r\n var ret = read_(filename, true);\r\n if (!ret.buffer) {\r\n ret = new Uint8Array(ret);\r\n }\r\n assert(ret.buffer);\r\n return ret;\r\n };\r\n\r\n if (process['argv'].length > 1) {\r\n Module['thisProgram'] = process['argv'][1].replace(/\\\\/g, '/');\r\n }\r\n\r\n Module['arguments'] = process['argv'].slice(2);\r\n\r\n // MODULARIZE will export the module in the proper place outside, we don't need to export here\r\n\r\n process['on']('uncaughtException', function(ex) {\r\n // suppress ExitStatus exceptions from showing an error\r\n if (!(ex instanceof ExitStatus)) {\r\n throw ex;\r\n }\r\n });\r\n // Currently node will swallow unhandled rejections, but this behavior is\r\n // deprecated, and in the future it will exit with error status.\r\n process['on']('unhandledRejection', abort);\r\n\r\n Module['quit'] = function(status) {\r\n process['exit'](status);\r\n };\r\n\r\n Module['inspect'] = function () { return '[Emscripten Module object]'; };\r\n} else\r\nif (ENVIRONMENT_IS_SHELL) {\r\n\r\n\r\n if (typeof read != 'undefined') {\r\n read_ = function shell_read(f) {\r\n return read(f);\r\n };\r\n }\r\n\r\n readBinary = function readBinary(f) {\r\n var data;\r\n if (typeof readbuffer === 'function') {\r\n return new Uint8Array(readbuffer(f));\r\n }\r\n data = read(f, 'binary');\r\n assert(typeof data === 'object');\r\n return data;\r\n };\r\n\r\n if (typeof scriptArgs != 'undefined') {\r\n Module['arguments'] = scriptArgs;\r\n } else if (typeof arguments != 'undefined') {\r\n Module['arguments'] = arguments;\r\n }\r\n\r\n if (typeof quit === 'function') {\r\n Module['quit'] = function(status) {\r\n quit(status);\r\n }\r\n }\r\n} else\r\nif (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) {\r\n if (ENVIRONMENT_IS_WORKER) { // Check worker, not web, since window could be polyfilled\r\n scriptDirectory = self.location.href;\r\n } else if (document.currentScript) { // web\r\n scriptDirectory = document.currentScript.src;\r\n }\r\n // When MODULARIZE (and not _INSTANCE), this JS may be executed later, after document.currentScript\r\n // is gone, so we saved it, and we use it here instead of any other info.\r\n if (_scriptDir) {\r\n scriptDirectory = _scriptDir;\r\n }\r\n // blob urls look like blob:http://site.com/etc/etc and we cannot infer anything from them.\r\n // otherwise, slice off the final part of the url to find the script directory.\r\n // if scriptDirectory does not contain a slash, lastIndexOf will return -1,\r\n // and scriptDirectory will correctly be replaced with an empty string.\r\n if (scriptDirectory.indexOf('blob:') !== 0) {\r\n scriptDirectory = scriptDirectory.substr(0, scriptDirectory.lastIndexOf('/')+1);\r\n } else {\r\n scriptDirectory = '';\r\n }\r\n\r\n\r\n read_ = function shell_read(url) {\r\n var xhr = new XMLHttpRequest();\r\n xhr.open('GET', url, false);\r\n xhr.send(null);\r\n return xhr.responseText;\r\n };\r\n\r\n if (ENVIRONMENT_IS_WORKER) {\r\n readBinary = function readBinary(url) {\r\n var xhr = new XMLHttpRequest();\r\n xhr.open('GET', url, false);\r\n xhr.responseType = 'arraybuffer';\r\n xhr.send(null);\r\n return new Uint8Array(xhr.response);\r\n };\r\n }\r\n\r\n readAsync = function readAsync(url, onload, onerror) {\r\n var xhr = new XMLHttpRequest();\r\n xhr.open('GET', url, true);\r\n xhr.responseType = 'arraybuffer';\r\n xhr.onload = function xhr_onload() {\r\n if (xhr.status == 200 || (xhr.status == 0 && xhr.response)) { // file URLs can return 0\r\n onload(xhr.response);\r\n return;\r\n }\r\n onerror();\r\n };\r\n xhr.onerror = onerror;\r\n xhr.send(null);\r\n };\r\n\r\n setWindowTitle = function(title) { document.title = title };\r\n} else\r\n{\r\n}\r\n\r\n// Set up the out() and err() hooks, which are how we can print to stdout or\r\n// stderr, respectively.\r\n// If the user provided Module.print or printErr, use that. Otherwise,\r\n// console.log is checked first, as 'print' on the web will open a print dialogue\r\n// printErr is preferable to console.warn (works better in shells)\r\n// bind(console) is necessary to fix IE/Edge closed dev tools panel behavior.\r\nvar out = Module['print'] || (typeof console !== 'undefined' ? console.log.bind(console) : (typeof print !== 'undefined' ? print : null));\r\nvar err = Module['printErr'] || (typeof printErr !== 'undefined' ? printErr : ((typeof console !== 'undefined' && console.warn.bind(console)) || out));\r\n\r\n// Merge back in the overrides\r\nfor (key in moduleOverrides) {\r\n if (moduleOverrides.hasOwnProperty(key)) {\r\n Module[key] = moduleOverrides[key];\r\n }\r\n}\r\n// Free the object hierarchy contained in the overrides, this lets the GC\r\n// reclaim data used e.g. in memoryInitializerRequest, which is a large typed array.\r\nmoduleOverrides = undefined;\r\n\r\n// perform assertions in shell.js after we set up out() and err(), as otherwise if an assertion fails it cannot print the message\r\n\r\n// TODO remove when SDL2 is fixed; also add the above assertion\r\n\r\n\r\n\r\n// Copyright 2017 The Emscripten Authors. All rights reserved.\r\n// Emscripten is available under two separate licenses, the MIT license and the\r\n// University of Illinois/NCSA Open Source License. Both these licenses can be\r\n// found in the LICENSE file.\r\n\r\n// {{PREAMBLE_ADDITIONS}}\r\n\r\nvar STACK_ALIGN = 16;\r\n\r\n\r\nfunction dynamicAlloc(size) {\r\n var ret = HEAP32[DYNAMICTOP_PTR>>2];\r\n var end = (ret + size + 15) & -16;\r\n if (end > _emscripten_get_heap_size()) {\r\n abort();\r\n }\r\n HEAP32[DYNAMICTOP_PTR>>2] = end;\r\n return ret;\r\n}\r\n\r\nfunction alignMemory(size, factor) {\r\n if (!factor) factor = STACK_ALIGN; // stack alignment (16-byte) by default\r\n return Math.ceil(size / factor) * factor;\r\n}\r\n\r\nfunction getNativeTypeSize(type) {\r\n switch (type) {\r\n case 'i1': case 'i8': return 1;\r\n case 'i16': return 2;\r\n case 'i32': return 4;\r\n case 'i64': return 8;\r\n case 'float': return 4;\r\n case 'double': return 8;\r\n default: {\r\n if (type[type.length-1] === '*') {\r\n return 4; // A pointer\r\n } else if (type[0] === 'i') {\r\n var bits = parseInt(type.substr(1));\r\n assert(bits % 8 === 0, 'getNativeTypeSize invalid bits ' + bits + ', type ' + type);\r\n return bits / 8;\r\n } else {\r\n return 0;\r\n }\r\n }\r\n }\r\n}\r\n\r\nfunction warnOnce(text) {\r\n if (!warnOnce.shown) warnOnce.shown = {};\r\n if (!warnOnce.shown[text]) {\r\n warnOnce.shown[text] = 1;\r\n err(text);\r\n }\r\n}\r\n\r\nvar asm2wasmImports = { // special asm2wasm imports\r\n \"f64-rem\": function(x, y) {\r\n return x % y;\r\n },\r\n \"debugger\": function() {\r\n debugger;\r\n }\r\n};\r\n\r\n\r\n\r\nvar jsCallStartIndex = 1;\r\nvar functionPointers = new Array(0);\r\n\r\n// Wraps a JS function as a wasm function with a given signature.\r\n// In the future, we may get a WebAssembly.Function constructor. Until then,\r\n// we create a wasm module that takes the JS function as an import with a given\r\n// signature, and re-exports that as a wasm function.\r\nfunction convertJsFunctionToWasm(func, sig) {\r\n\r\n // The module is static, with the exception of the type section, which is\r\n // generated based on the signature passed in.\r\n var typeSection = [\r\n 0x01, // id: section,\r\n 0x00, // length: 0 (placeholder)\r\n 0x01, // count: 1\r\n 0x60, // form: func\r\n ];\r\n var sigRet = sig.slice(0, 1);\r\n var sigParam = sig.slice(1);\r\n var typeCodes = {\r\n 'i': 0x7f, // i32\r\n 'j': 0x7e, // i64\r\n 'f': 0x7d, // f32\r\n 'd': 0x7c, // f64\r\n };\r\n\r\n // Parameters, length + signatures\r\n typeSection.push(sigParam.length);\r\n for (var i = 0; i < sigParam.length; ++i) {\r\n typeSection.push(typeCodes[sigParam[i]]);\r\n }\r\n\r\n // Return values, length + signatures\r\n // With no multi-return in MVP, either 0 (void) or 1 (anything else)\r\n if (sigRet == 'v') {\r\n typeSection.push(0x00);\r\n } else {\r\n typeSection = typeSection.concat([0x01, typeCodes[sigRet]]);\r\n }\r\n\r\n // Write the overall length of the type section back into the section header\r\n // (excepting the 2 bytes for the section id and length)\r\n typeSection[1] = typeSection.length - 2;\r\n\r\n // Rest of the module is static\r\n var bytes = new Uint8Array([\r\n 0x00, 0x61, 0x73, 0x6d, // magic (\"\\0asm\")\r\n 0x01, 0x00, 0x00, 0x00, // version: 1\r\n ].concat(typeSection, [\r\n 0x02, 0x07, // import section\r\n // (import \"e\" \"f\" (func 0 (type 0)))\r\n 0x01, 0x01, 0x65, 0x01, 0x66, 0x00, 0x00,\r\n 0x07, 0x05, // export section\r\n // (export \"f\" (func 0 (type 0)))\r\n 0x01, 0x01, 0x66, 0x00, 0x00,\r\n ]));\r\n\r\n // We can compile this wasm module synchronously because it is very small.\r\n // This accepts an import (at \"e.f\"), that it reroutes to an export (at \"f\")\r\n var module = new WebAssembly.Module(bytes);\r\n var instance = new WebAssembly.Instance(module, {\r\n e: {\r\n f: func\r\n }\r\n });\r\n var wrappedFunc = instance.exports.f;\r\n return wrappedFunc;\r\n}\r\n\r\n// Add a wasm function to the table.\r\nfunction addFunctionWasm(func, sig) {\r\n var table = wasmTable;\r\n var ret = table.length;\r\n\r\n // Grow the table\r\n try {\r\n table.grow(1);\r\n } catch (err) {\r\n if (!err instanceof RangeError) {\r\n throw err;\r\n }\r\n throw 'Unable to grow wasm table. Use a higher value for RESERVED_FUNCTION_POINTERS or set ALLOW_TABLE_GROWTH.';\r\n }\r\n\r\n // Insert new element\r\n try {\r\n // Attempting to call this with JS function will cause of table.set() to fail\r\n table.set(ret, func);\r\n } catch (err) {\r\n if (!err instanceof TypeError) {\r\n throw err;\r\n }\r\n assert(typeof sig !== 'undefined', 'Missing signature argument to addFunction');\r\n var wrapped = convertJsFunctionToWasm(func, sig);\r\n table.set(ret, wrapped);\r\n }\r\n\r\n return ret;\r\n}\r\n\r\nfunction removeFunctionWasm(index) {\r\n // TODO(sbc): Look into implementing this to allow re-using of table slots\r\n}\r\n\r\n// 'sig' parameter is required for the llvm backend but only when func is not\r\n// already a WebAssembly function.\r\nfunction addFunction(func, sig) {\r\n\r\n\r\n var base = 0;\r\n for (var i = base; i < base + 0; i++) {\r\n if (!functionPointers[i]) {\r\n functionPointers[i] = func;\r\n return jsCallStartIndex + i;\r\n }\r\n }\r\n throw 'Finished up all reserved function pointers. Use a higher value for RESERVED_FUNCTION_POINTERS.';\r\n\r\n}\r\n\r\nfunction removeFunction(index) {\r\n\r\n functionPointers[index-jsCallStartIndex] = null;\r\n}\r\n\r\nvar funcWrappers = {};\r\n\r\nfunction getFuncWrapper(func, sig) {\r\n if (!func) return; // on null pointer, return undefined\r\n assert(sig);\r\n if (!funcWrappers[sig]) {\r\n funcWrappers[sig] = {};\r\n }\r\n var sigCache = funcWrappers[sig];\r\n if (!sigCache[func]) {\r\n // optimize away arguments usage in common cases\r\n if (sig.length === 1) {\r\n sigCache[func] = function dynCall_wrapper() {\r\n return dynCall(sig, func);\r\n };\r\n } else if (sig.length === 2) {\r\n sigCache[func] = function dynCall_wrapper(arg) {\r\n return dynCall(sig, func, [arg]);\r\n };\r\n } else {\r\n // general case\r\n sigCache[func] = function dynCall_wrapper() {\r\n return dynCall(sig, func, Array.prototype.slice.call(arguments));\r\n };\r\n }\r\n }\r\n return sigCache[func];\r\n}\r\n\r\n\r\nfunction makeBigInt(low, high, unsigned) {\r\n return unsigned ? ((+((low>>>0)))+((+((high>>>0)))*4294967296.0)) : ((+((low>>>0)))+((+((high|0)))*4294967296.0));\r\n}\r\n\r\nfunction dynCall(sig, ptr, args) {\r\n if (args && args.length) {\r\n return Module['dynCall_' + sig].apply(null, [ptr].concat(args));\r\n } else {\r\n return Module['dynCall_' + sig].call(null, ptr);\r\n }\r\n}\r\n\r\nvar tempRet0 = 0;\r\n\r\nvar setTempRet0 = function(value) {\r\n tempRet0 = value;\r\n};\r\n\r\nvar getTempRet0 = function() {\r\n return tempRet0;\r\n};\r\n\r\n\r\nvar Runtime = {\r\n};\r\n\r\n// The address globals begin at. Very low in memory, for code size and optimization opportunities.\r\n// Above 0 is static memory, starting with globals.\r\n// Then the stack.\r\n// Then 'dynamic' memory for sbrk.\r\nvar GLOBAL_BASE = 1024;\r\n\r\n\r\n\r\n\r\n// === Preamble library stuff ===\r\n\r\n// Documentation for the public APIs defined in this file must be updated in:\r\n// site/source/docs/api_reference/preamble.js.rst\r\n// A prebuilt local version of the documentation is available at:\r\n// site/build/text/docs/api_reference/preamble.js.txt\r\n// You can also build docs locally as HTML or other formats in site/\r\n// An online HTML version (which may be of a different version of Emscripten)\r\n// is up at http://kripken.github.io/emscripten-site/docs/api_reference/preamble.js.html\r\n\r\n\r\n\r\nif (typeof WebAssembly !== 'object') {\r\n err('no native wasm support detected');\r\n}\r\n\r\n\r\n// In MINIMAL_RUNTIME, setValue() and getValue() are only available when building with safe heap enabled, for heap safety checking.\r\n// In traditional runtime, setValue() and getValue() are always available (although their use is highly discouraged due to perf penalties)\r\n\r\n/** @type {function(number, number, string, boolean=)} */\r\nfunction setValue(ptr, value, type, noSafe) {\r\n type = type || 'i8';\r\n if (type.charAt(type.length-1) === '*') type = 'i32'; // pointers are 32-bit\r\n switch(type) {\r\n case 'i1': HEAP8[((ptr)>>0)]=value; break;\r\n case 'i8': HEAP8[((ptr)>>0)]=value; break;\r\n case 'i16': HEAP16[((ptr)>>1)]=value; break;\r\n case 'i32': HEAP32[((ptr)>>2)]=value; break;\r\n case 'i64': (tempI64 = [value>>>0,(tempDouble=value,(+(Math_abs(tempDouble))) >= 1.0 ? (tempDouble > 0.0 ? ((Math_min((+(Math_floor((tempDouble)/4294967296.0))), 4294967295.0))|0)>>>0 : (~~((+(Math_ceil((tempDouble - +(((~~(tempDouble)))>>>0))/4294967296.0)))))>>>0) : 0)],HEAP32[((ptr)>>2)]=tempI64[0],HEAP32[(((ptr)+(4))>>2)]=tempI64[1]); break;\r\n case 'float': HEAPF32[((ptr)>>2)]=value; break;\r\n case 'double': HEAPF64[((ptr)>>3)]=value; break;\r\n default: abort('invalid type for setValue: ' + type);\r\n }\r\n}\r\n\r\n/** @type {function(number, string, boolean=)} */\r\nfunction getValue(ptr, type, noSafe) {\r\n type = type || 'i8';\r\n if (type.charAt(type.length-1) === '*') type = 'i32'; // pointers are 32-bit\r\n switch(type) {\r\n case 'i1': return HEAP8[((ptr)>>0)];\r\n case 'i8': return HEAP8[((ptr)>>0)];\r\n case 'i16': return HEAP16[((ptr)>>1)];\r\n case 'i32': return HEAP32[((ptr)>>2)];\r\n case 'i64': return HEAP32[((ptr)>>2)];\r\n case 'float': return HEAPF32[((ptr)>>2)];\r\n case 'double': return HEAPF64[((ptr)>>3)];\r\n default: abort('invalid type for getValue: ' + type);\r\n }\r\n return null;\r\n}\r\n\r\n\r\n\r\n\r\n\r\n// Wasm globals\r\n\r\nvar wasmMemory;\r\n\r\n// Potentially used for direct table calls.\r\nvar wasmTable;\r\n\r\n\r\n//========================================\r\n// Runtime essentials\r\n//========================================\r\n\r\n// whether we are quitting the application. no code should run after this.\r\n// set in exit() and abort()\r\nvar ABORT = false;\r\n\r\n// set by exit() and abort(). Passed to 'onExit' handler.\r\n// NOTE: This is also used as the process return code code in shell environments\r\n// but only when noExitRuntime is false.\r\nvar EXITSTATUS = 0;\r\n\r\n/** @type {function(*, string=)} */\r\nfunction assert(condition, text) {\r\n if (!condition) {\r\n abort('Assertion failed: ' + text);\r\n }\r\n}\r\n\r\n// Returns the C function with a specified identifier (for C++, you need to do manual name mangling)\r\nfunction getCFunc(ident) {\r\n var func = Module['_' + ident]; // closure exported function\r\n assert(func, 'Cannot call unknown function ' + ident + ', make sure it is exported');\r\n return func;\r\n}\r\n\r\n// C calling interface.\r\nfunction ccall(ident, returnType, argTypes, args, opts) {\r\n // For fast lookup of conversion functions\r\n var toC = {\r\n 'string': function(str) {\r\n var ret = 0;\r\n if (str !== null && str !== undefined && str !== 0) { // null string\r\n // at most 4 bytes per UTF-8 code point, +1 for the trailing '\\0'\r\n var len = (str.length << 2) + 1;\r\n ret = stackAlloc(len);\r\n stringToUTF8(str, ret, len);\r\n }\r\n return ret;\r\n },\r\n 'array': function(arr) {\r\n var ret = stackAlloc(arr.length);\r\n writeArrayToMemory(arr, ret);\r\n return ret;\r\n }\r\n };\r\n\r\n function convertReturnValue(ret) {\r\n if (returnType === 'string') return UTF8ToString(ret);\r\n if (returnType === 'boolean') return Boolean(ret);\r\n return ret;\r\n }\r\n\r\n var func = getCFunc(ident);\r\n var cArgs = [];\r\n var stack = 0;\r\n if (args) {\r\n for (var i = 0; i < args.length; i++) {\r\n var converter = toC[argTypes[i]];\r\n if (converter) {\r\n if (stack === 0) stack = stackSave();\r\n cArgs[i] = converter(args[i]);\r\n } else {\r\n cArgs[i] = args[i];\r\n }\r\n }\r\n }\r\n var ret = func.apply(null, cArgs);\r\n ret = convertReturnValue(ret);\r\n if (stack !== 0) stackRestore(stack);\r\n return ret;\r\n}\r\n\r\nfunction cwrap(ident, returnType, argTypes, opts) {\r\n argTypes = argTypes || [];\r\n // When the function takes numbers and returns a number, we can just return\r\n // the original function\r\n var numericArgs = argTypes.every(function(type){ return type === 'number'});\r\n var numericRet = returnType !== 'string';\r\n if (numericRet && numericArgs && !opts) {\r\n return getCFunc(ident);\r\n }\r\n return function() {\r\n return ccall(ident, returnType, argTypes, arguments, opts);\r\n }\r\n}\r\n\r\nvar ALLOC_NORMAL = 0; // Tries to use _malloc()\r\nvar ALLOC_STACK = 1; // Lives for the duration of the current function call\r\nvar ALLOC_DYNAMIC = 2; // Cannot be freed except through sbrk\r\nvar ALLOC_NONE = 3; // Do not allocate\r\n\r\n// allocate(): This is for internal use. You can use it yourself as well, but the interface\r\n// is a little tricky (see docs right below). The reason is that it is optimized\r\n// for multiple syntaxes to save space in generated code. So you should\r\n// normally not use allocate(), and instead allocate memory using _malloc(),\r\n// initialize it with setValue(), and so forth.\r\n// @slab: An array of data, or a number. If a number, then the size of the block to allocate,\r\n// in *bytes* (note that this is sometimes confusing: the next parameter does not\r\n// affect this!)\r\n// @types: Either an array of types, one for each byte (or 0 if no type at that position),\r\n// or a single type which is used for the entire block. This only matters if there\r\n// is initial data - if @slab is a number, then this does not matter at all and is\r\n// ignored.\r\n// @allocator: How to allocate memory, see ALLOC_*\r\n/** @type {function((TypedArray|Array|number), string, number, number=)} */\r\nfunction allocate(slab, types, allocator, ptr) {\r\n var zeroinit, size;\r\n if (typeof slab === 'number') {\r\n zeroinit = true;\r\n size = slab;\r\n } else {\r\n zeroinit = false;\r\n size = slab.length;\r\n }\r\n\r\n var singleType = typeof types === 'string' ? types : null;\r\n\r\n var ret;\r\n if (allocator == ALLOC_NONE) {\r\n ret = ptr;\r\n } else {\r\n ret = [_malloc,\r\n stackAlloc,\r\n dynamicAlloc][allocator](Math.max(size, singleType ? 1 : types.length));\r\n }\r\n\r\n if (zeroinit) {\r\n var stop;\r\n ptr = ret;\r\n assert((ret & 3) == 0);\r\n stop = ret + (size & ~3);\r\n for (; ptr < stop; ptr += 4) {\r\n HEAP32[((ptr)>>2)]=0;\r\n }\r\n stop = ret + size;\r\n while (ptr < stop) {\r\n HEAP8[((ptr++)>>0)]=0;\r\n }\r\n return ret;\r\n }\r\n\r\n if (singleType === 'i8') {\r\n if (slab.subarray || slab.slice) {\r\n HEAPU8.set(/** @type {!Uint8Array} */ (slab), ret);\r\n } else {\r\n HEAPU8.set(new Uint8Array(slab), ret);\r\n }\r\n return ret;\r\n }\r\n\r\n var i = 0, type, typeSize, previousType;\r\n while (i < size) {\r\n var curr = slab[i];\r\n\r\n type = singleType || types[i];\r\n if (type === 0) {\r\n i++;\r\n continue;\r\n }\r\n\r\n if (type == 'i64') type = 'i32'; // special case: we have one i32 here, and one i32 later\r\n\r\n setValue(ret+i, curr, type);\r\n\r\n // no need to look up size unless type changes, so cache it\r\n if (previousType !== type) {\r\n typeSize = getNativeTypeSize(type);\r\n previousType = type;\r\n }\r\n i += typeSize;\r\n }\r\n\r\n return ret;\r\n}\r\n\r\n// Allocate memory during any stage of startup - static memory early on, dynamic memory later, malloc when ready\r\nfunction getMemory(size) {\r\n if (!runtimeInitialized) return dynamicAlloc(size);\r\n return _malloc(size);\r\n}\r\n\r\n\r\n\r\n\r\n/** @type {function(number, number=)} */\r\nfunction Pointer_stringify(ptr, length) {\r\n abort(\"this function has been removed - you should use UTF8ToString(ptr, maxBytesToRead) instead!\");\r\n}\r\n\r\n// Given a pointer 'ptr' to a null-terminated ASCII-encoded string in the emscripten HEAP, returns\r\n// a copy of that string as a Javascript String object.\r\n\r\nfunction AsciiToString(ptr) {\r\n var str = '';\r\n while (1) {\r\n var ch = HEAPU8[((ptr++)>>0)];\r\n if (!ch) return str;\r\n str += String.fromCharCode(ch);\r\n }\r\n}\r\n\r\n// Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr',\r\n// null-terminated and encoded in ASCII form. The copy will require at most str.length+1 bytes of space in the HEAP.\r\n\r\nfunction stringToAscii(str, outPtr) {\r\n return writeAsciiToMemory(str, outPtr, false);\r\n}\r\n\r\n\r\n// Given a pointer 'ptr' to a null-terminated UTF8-encoded string in the given array that contains uint8 values, returns\r\n// a copy of that string as a Javascript String object.\r\n\r\nvar UTF8Decoder = typeof TextDecoder !== 'undefined' ? new TextDecoder('utf8') : undefined;\r\n\r\n/**\r\n * @param {number} idx\r\n * @param {number=} maxBytesToRead\r\n * @return {string}\r\n */\r\nfunction UTF8ArrayToString(u8Array, idx, maxBytesToRead) {\r\n var endIdx = idx + maxBytesToRead;\r\n var endPtr = idx;\r\n // TextDecoder needs to know the byte length in advance, it doesn't stop on null terminator by itself.\r\n // Also, use the length info to avoid running tiny strings through TextDecoder, since .subarray() allocates garbage.\r\n // (As a tiny code save trick, compare endPtr against endIdx using a negation, so that undefined means Infinity)\r\n while (u8Array[endPtr] && !(endPtr >= endIdx)) ++endPtr;\r\n\r\n if (endPtr - idx > 16 && u8Array.subarray && UTF8Decoder) {\r\n return UTF8Decoder.decode(u8Array.subarray(idx, endPtr));\r\n } else {\r\n var str = '';\r\n // If building with TextDecoder, we have already computed the string length above, so test loop end condition against that\r\n while (idx < endPtr) {\r\n // For UTF8 byte structure, see:\r\n // http://en.wikipedia.org/wiki/UTF-8#Description\r\n // https://www.ietf.org/rfc/rfc2279.txt\r\n // https://tools.ietf.org/html/rfc3629\r\n var u0 = u8Array[idx++];\r\n if (!(u0 & 0x80)) { str += String.fromCharCode(u0); continue; }\r\n var u1 = u8Array[idx++] & 63;\r\n if ((u0 & 0xE0) == 0xC0) { str += String.fromCharCode(((u0 & 31) << 6) | u1); continue; }\r\n var u2 = u8Array[idx++] & 63;\r\n if ((u0 & 0xF0) == 0xE0) {\r\n u0 = ((u0 & 15) << 12) | (u1 << 6) | u2;\r\n } else {\r\n u0 = ((u0 & 7) << 18) | (u1 << 12) | (u2 << 6) | (u8Array[idx++] & 63);\r\n }\r\n\r\n if (u0 < 0x10000) {\r\n str += String.fromCharCode(u0);\r\n } else {\r\n var ch = u0 - 0x10000;\r\n str += String.fromCharCode(0xD800 | (ch >> 10), 0xDC00 | (ch & 0x3FF));\r\n }\r\n }\r\n }\r\n return str;\r\n}\r\n\r\n// Given a pointer 'ptr' to a null-terminated UTF8-encoded string in the emscripten HEAP, returns a\r\n// copy of that string as a Javascript String object.\r\n// maxBytesToRead: an optional length that specifies the maximum number of bytes to read. You can omit\r\n// this parameter to scan the string until the first \\0 byte. If maxBytesToRead is\r\n// passed, and the string at [ptr, ptr+maxBytesToReadr[ contains a null byte in the\r\n// middle, then the string will cut short at that byte index (i.e. maxBytesToRead will\r\n// not produce a string of exact length [ptr, ptr+maxBytesToRead[)\r\n// N.B. mixing frequent uses of UTF8ToString() with and without maxBytesToRead may\r\n// throw JS JIT optimizations off, so it is worth to consider consistently using one\r\n// style or the other.\r\n/**\r\n * @param {number} ptr\r\n * @param {number=} maxBytesToRead\r\n * @return {string}\r\n */\r\nfunction UTF8ToString(ptr, maxBytesToRead) {\r\n return ptr ? UTF8ArrayToString(HEAPU8, ptr, maxBytesToRead) : '';\r\n}\r\n\r\n// Copies the given Javascript String object 'str' to the given byte array at address 'outIdx',\r\n// encoded in UTF8 form and null-terminated. The copy will require at most str.length*4+1 bytes of space in the HEAP.\r\n// Use the function lengthBytesUTF8 to compute the exact number of bytes (excluding null terminator) that this function will write.\r\n// Parameters:\r\n// str: the Javascript string to copy.\r\n// outU8Array: the array to copy to. Each index in this array is assumed to be one 8-byte element.\r\n// outIdx: The starting offset in the array to begin the copying.\r\n// maxBytesToWrite: The maximum number of bytes this function can write to the array.\r\n// This count should include the null terminator,\r\n// i.e. if maxBytesToWrite=1, only the null terminator will be written and nothing else.\r\n// maxBytesToWrite=0 does not write any bytes to the output, not even the null terminator.\r\n// Returns the number of bytes written, EXCLUDING the null terminator.\r\n\r\nfunction stringToUTF8Array(str, outU8Array, outIdx, maxBytesToWrite) {\r\n if (!(maxBytesToWrite > 0)) // Parameter maxBytesToWrite is not optional. Negative values, 0, null, undefined and false each don't write out any bytes.\r\n return 0;\r\n\r\n var startIdx = outIdx;\r\n var endIdx = outIdx + maxBytesToWrite - 1; // -1 for string null terminator.\r\n for (var i = 0; i < str.length; ++i) {\r\n // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! So decode UTF16->UTF32->UTF8.\r\n // See http://unicode.org/faq/utf_bom.html#utf16-3\r\n // For UTF8 byte structure, see http://en.wikipedia.org/wiki/UTF-8#Description and https://www.ietf.org/rfc/rfc2279.txt and https://tools.ietf.org/html/rfc3629\r\n var u = str.charCodeAt(i); // possibly a lead surrogate\r\n if (u >= 0xD800 && u <= 0xDFFF) {\r\n var u1 = str.charCodeAt(++i);\r\n u = 0x10000 + ((u & 0x3FF) << 10) | (u1 & 0x3FF);\r\n }\r\n if (u <= 0x7F) {\r\n if (outIdx >= endIdx) break;\r\n outU8Array[outIdx++] = u;\r\n } else if (u <= 0x7FF) {\r\n if (outIdx + 1 >= endIdx) break;\r\n outU8Array[outIdx++] = 0xC0 | (u >> 6);\r\n outU8Array[outIdx++] = 0x80 | (u & 63);\r\n } else if (u <= 0xFFFF) {\r\n if (outIdx + 2 >= endIdx) break;\r\n outU8Array[outIdx++] = 0xE0 | (u >> 12);\r\n outU8Array[outIdx++] = 0x80 | ((u >> 6) & 63);\r\n outU8Array[outIdx++] = 0x80 | (u & 63);\r\n } else {\r\n if (outIdx + 3 >= endIdx) break;\r\n outU8Array[outIdx++] = 0xF0 | (u >> 18);\r\n outU8Array[outIdx++] = 0x80 | ((u >> 12) & 63);\r\n outU8Array[outIdx++] = 0x80 | ((u >> 6) & 63);\r\n outU8Array[outIdx++] = 0x80 | (u & 63);\r\n }\r\n }\r\n // Null-terminate the pointer to the buffer.\r\n outU8Array[outIdx] = 0;\r\n return outIdx - startIdx;\r\n}\r\n\r\n// Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr',\r\n// null-terminated and encoded in UTF8 form. The copy will require at most str.length*4+1 bytes of space in the HEAP.\r\n// Use the function lengthBytesUTF8 to compute the exact number of bytes (excluding null terminator) that this function will write.\r\n// Returns the number of bytes written, EXCLUDING the null terminator.\r\n\r\nfunction stringToUTF8(str, outPtr, maxBytesToWrite) {\r\n return stringToUTF8Array(str, HEAPU8,outPtr, maxBytesToWrite);\r\n}\r\n\r\n// Returns the number of bytes the given Javascript string takes if encoded as a UTF8 byte array, EXCLUDING the null terminator byte.\r\nfunction lengthBytesUTF8(str) {\r\n var len = 0;\r\n for (var i = 0; i < str.length; ++i) {\r\n // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! So decode UTF16->UTF32->UTF8.\r\n // See http://unicode.org/faq/utf_bom.html#utf16-3\r\n var u = str.charCodeAt(i); // possibly a lead surrogate\r\n if (u >= 0xD800 && u <= 0xDFFF) u = 0x10000 + ((u & 0x3FF) << 10) | (str.charCodeAt(++i) & 0x3FF);\r\n if (u <= 0x7F) ++len;\r\n else if (u <= 0x7FF) len += 2;\r\n else if (u <= 0xFFFF) len += 3;\r\n else len += 4;\r\n }\r\n return len;\r\n}\r\n\r\n\r\n// Given a pointer 'ptr' to a null-terminated UTF16LE-encoded string in the emscripten HEAP, returns\r\n// a copy of that string as a Javascript String object.\r\n\r\nvar UTF16Decoder = typeof TextDecoder !== 'undefined' ? new TextDecoder('utf-16le') : undefined;\r\nfunction UTF16ToString(ptr) {\r\n var endPtr = ptr;\r\n // TextDecoder needs to know the byte length in advance, it doesn't stop on null terminator by itself.\r\n // Also, use the length info to avoid running tiny strings through TextDecoder, since .subarray() allocates garbage.\r\n var idx = endPtr >> 1;\r\n while (HEAP16[idx]) ++idx;\r\n endPtr = idx << 1;\r\n\r\n if (endPtr - ptr > 32 && UTF16Decoder) {\r\n return UTF16Decoder.decode(HEAPU8.subarray(ptr, endPtr));\r\n } else {\r\n var i = 0;\r\n\r\n var str = '';\r\n while (1) {\r\n var codeUnit = HEAP16[(((ptr)+(i*2))>>1)];\r\n if (codeUnit == 0) return str;\r\n ++i;\r\n // fromCharCode constructs a character from a UTF-16 code unit, so we can pass the UTF16 string right through.\r\n str += String.fromCharCode(codeUnit);\r\n }\r\n }\r\n}\r\n\r\n// Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr',\r\n// null-terminated and encoded in UTF16 form. The copy will require at most str.length*4+2 bytes of space in the HEAP.\r\n// Use the function lengthBytesUTF16() to compute the exact number of bytes (excluding null terminator) that this function will write.\r\n// Parameters:\r\n// str: the Javascript string to copy.\r\n// outPtr: Byte address in Emscripten HEAP where to write the string to.\r\n// maxBytesToWrite: The maximum number of bytes this function can write to the array. This count should include the null\r\n// terminator, i.e. if maxBytesToWrite=2, only the null terminator will be written and nothing else.\r\n// maxBytesToWrite<2 does not write any bytes to the output, not even the null terminator.\r\n// Returns the number of bytes written, EXCLUDING the null terminator.\r\n\r\nfunction stringToUTF16(str, outPtr, maxBytesToWrite) {\r\n // Backwards compatibility: if max bytes is not specified, assume unsafe unbounded write is allowed.\r\n if (maxBytesToWrite === undefined) {\r\n maxBytesToWrite = 0x7FFFFFFF;\r\n }\r\n if (maxBytesToWrite < 2) return 0;\r\n maxBytesToWrite -= 2; // Null terminator.\r\n var startPtr = outPtr;\r\n var numCharsToWrite = (maxBytesToWrite < str.length*2) ? (maxBytesToWrite / 2) : str.length;\r\n for (var i = 0; i < numCharsToWrite; ++i) {\r\n // charCodeAt returns a UTF-16 encoded code unit, so it can be directly written to the HEAP.\r\n var codeUnit = str.charCodeAt(i); // possibly a lead surrogate\r\n HEAP16[((outPtr)>>1)]=codeUnit;\r\n outPtr += 2;\r\n }\r\n // Null-terminate the pointer to the HEAP.\r\n HEAP16[((outPtr)>>1)]=0;\r\n return outPtr - startPtr;\r\n}\r\n\r\n// Returns the number of bytes the given Javascript string takes if encoded as a UTF16 byte array, EXCLUDING the null terminator byte.\r\n\r\nfunction lengthBytesUTF16(str) {\r\n return str.length*2;\r\n}\r\n\r\nfunction UTF32ToString(ptr) {\r\n var i = 0;\r\n\r\n var str = '';\r\n while (1) {\r\n var utf32 = HEAP32[(((ptr)+(i*4))>>2)];\r\n if (utf32 == 0)\r\n return str;\r\n ++i;\r\n // Gotcha: fromCharCode constructs a character from a UTF-16 encoded code (pair), not from a Unicode code point! So encode the code point to UTF-16 for constructing.\r\n // See http://unicode.org/faq/utf_bom.html#utf16-3\r\n if (utf32 >= 0x10000) {\r\n var ch = utf32 - 0x10000;\r\n str += String.fromCharCode(0xD800 | (ch >> 10), 0xDC00 | (ch & 0x3FF));\r\n } else {\r\n str += String.fromCharCode(utf32);\r\n }\r\n }\r\n}\r\n\r\n// Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr',\r\n// null-terminated and encoded in UTF32 form. The copy will require at most str.length*4+4 bytes of space in the HEAP.\r\n// Use the function lengthBytesUTF32() to compute the exact number of bytes (excluding null terminator) that this function will write.\r\n// Parameters:\r\n// str: the Javascript string to copy.\r\n// outPtr: Byte address in Emscripten HEAP where to write the string to.\r\n// maxBytesToWrite: The maximum number of bytes this function can write to the array. This count should include the null\r\n// terminator, i.e. if maxBytesToWrite=4, only the null terminator will be written and nothing else.\r\n// maxBytesToWrite<4 does not write any bytes to the output, not even the null terminator.\r\n// Returns the number of bytes written, EXCLUDING the null terminator.\r\n\r\nfunction stringToUTF32(str, outPtr, maxBytesToWrite) {\r\n // Backwards compatibility: if max bytes is not specified, assume unsafe unbounded write is allowed.\r\n if (maxBytesToWrite === undefined) {\r\n maxBytesToWrite = 0x7FFFFFFF;\r\n }\r\n if (maxBytesToWrite < 4) return 0;\r\n var startPtr = outPtr;\r\n var endPtr = startPtr + maxBytesToWrite - 4;\r\n for (var i = 0; i < str.length; ++i) {\r\n // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! We must decode the string to UTF-32 to the heap.\r\n // See http://unicode.org/faq/utf_bom.html#utf16-3\r\n var codeUnit = str.charCodeAt(i); // possibly a lead surrogate\r\n if (codeUnit >= 0xD800 && codeUnit <= 0xDFFF) {\r\n var trailSurrogate = str.charCodeAt(++i);\r\n codeUnit = 0x10000 + ((codeUnit & 0x3FF) << 10) | (trailSurrogate & 0x3FF);\r\n }\r\n HEAP32[((outPtr)>>2)]=codeUnit;\r\n outPtr += 4;\r\n if (outPtr + 4 > endPtr) break;\r\n }\r\n // Null-terminate the pointer to the HEAP.\r\n HEAP32[((outPtr)>>2)]=0;\r\n return outPtr - startPtr;\r\n}\r\n\r\n// Returns the number of bytes the given Javascript string takes if encoded as a UTF16 byte array, EXCLUDING the null terminator byte.\r\n\r\nfunction lengthBytesUTF32(str) {\r\n var len = 0;\r\n for (var i = 0; i < str.length; ++i) {\r\n // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! We must decode the string to UTF-32 to the heap.\r\n // See http://unicode.org/faq/utf_bom.html#utf16-3\r\n var codeUnit = str.charCodeAt(i);\r\n if (codeUnit >= 0xD800 && codeUnit <= 0xDFFF) ++i; // possibly a lead surrogate, so skip over the tail surrogate.\r\n len += 4;\r\n }\r\n\r\n return len;\r\n}\r\n\r\n// Allocate heap space for a JS string, and write it there.\r\n// It is the responsibility of the caller to free() that memory.\r\nfunction allocateUTF8(str) {\r\n var size = lengthBytesUTF8(str) + 1;\r\n var ret = _malloc(size);\r\n if (ret) stringToUTF8Array(str, HEAP8, ret, size);\r\n return ret;\r\n}\r\n\r\n// Allocate stack space for a JS string, and write it there.\r\nfunction allocateUTF8OnStack(str) {\r\n var size = lengthBytesUTF8(str) + 1;\r\n var ret = stackAlloc(size);\r\n stringToUTF8Array(str, HEAP8, ret, size);\r\n return ret;\r\n}\r\n\r\n// Deprecated: This function should not be called because it is unsafe and does not provide\r\n// a maximum length limit of how many bytes it is allowed to write. Prefer calling the\r\n// function stringToUTF8Array() instead, which takes in a maximum length that can be used\r\n// to be secure from out of bounds writes.\r\n/** @deprecated */\r\nfunction writeStringToMemory(string, buffer, dontAddNull) {\r\n warnOnce('writeStringToMemory is deprecated and should not be called! Use stringToUTF8() instead!');\r\n\r\n var /** @type {number} */ lastChar, /** @type {number} */ end;\r\n if (dontAddNull) {\r\n // stringToUTF8Array always appends null. If we don't want to do that, remember the\r\n // character that existed at the location where the null will be placed, and restore\r\n // that after the write (below).\r\n end = buffer + lengthBytesUTF8(string);\r\n lastChar = HEAP8[end];\r\n }\r\n stringToUTF8(string, buffer, Infinity);\r\n if (dontAddNull) HEAP8[end] = lastChar; // Restore the value under the null character.\r\n}\r\n\r\nfunction writeArrayToMemory(array, buffer) {\r\n HEAP8.set(array, buffer);\r\n}\r\n\r\nfunction writeAsciiToMemory(str, buffer, dontAddNull) {\r\n for (var i = 0; i < str.length; ++i) {\r\n HEAP8[((buffer++)>>0)]=str.charCodeAt(i);\r\n }\r\n // Null-terminate the pointer to the HEAP.\r\n if (!dontAddNull) HEAP8[((buffer)>>0)]=0;\r\n}\r\n\r\n\r\n\r\n\r\n\r\nfunction demangle(func) {\r\n return func;\r\n}\r\n\r\nfunction demangleAll(text) {\r\n var regex =\r\n /__Z[\\w\\d_]+/g;\r\n return text.replace(regex,\r\n function(x) {\r\n var y = demangle(x);\r\n return x === y ? x : (y + ' [' + x + ']');\r\n });\r\n}\r\n\r\nfunction jsStackTrace() {\r\n var err = new Error();\r\n if (!err.stack) {\r\n // IE10+ special cases: It does have callstack info, but it is only populated if an Error object is thrown,\r\n // so try that as a special-case.\r\n try {\r\n throw new Error(0);\r\n } catch(e) {\r\n err = e;\r\n }\r\n if (!err.stack) {\r\n return '(no stack trace available)';\r\n }\r\n }\r\n return err.stack.toString();\r\n}\r\n\r\nfunction stackTrace() {\r\n var js = jsStackTrace();\r\n if (Module['extraStackTrace']) js += '\\n' + Module['extraStackTrace']();\r\n return demangleAll(js);\r\n}\r\n\r\n\r\n\r\n// Memory management\r\n\r\nvar PAGE_SIZE = 16384;\r\nvar WASM_PAGE_SIZE = 65536;\r\nvar ASMJS_PAGE_SIZE = 16777216;\r\n\r\nfunction alignUp(x, multiple) {\r\n if (x % multiple > 0) {\r\n x += multiple - (x % multiple);\r\n }\r\n return x;\r\n}\r\n\r\nvar HEAP,\r\n/** @type {ArrayBuffer} */\r\n buffer,\r\n/** @type {Int8Array} */\r\n HEAP8,\r\n/** @type {Uint8Array} */\r\n HEAPU8,\r\n/** @type {Int16Array} */\r\n HEAP16,\r\n/** @type {Uint16Array} */\r\n HEAPU16,\r\n/** @type {Int32Array} */\r\n HEAP32,\r\n/** @type {Uint32Array} */\r\n HEAPU32,\r\n/** @type {Float32Array} */\r\n HEAPF32,\r\n/** @type {Float64Array} */\r\n HEAPF64;\r\n\r\nfunction updateGlobalBufferViews() {\r\n Module['HEAP8'] = HEAP8 = new Int8Array(buffer);\r\n Module['HEAP16'] = HEAP16 = new Int16Array(buffer);\r\n Module['HEAP32'] = HEAP32 = new Int32Array(buffer);\r\n Module['HEAPU8'] = HEAPU8 = new Uint8Array(buffer);\r\n Module['HEAPU16'] = HEAPU16 = new Uint16Array(buffer);\r\n Module['HEAPU32'] = HEAPU32 = new Uint32Array(buffer);\r\n Module['HEAPF32'] = HEAPF32 = new Float32Array(buffer);\r\n Module['HEAPF64'] = HEAPF64 = new Float64Array(buffer);\r\n}\r\n\r\n\r\nvar STATIC_BASE = 1024,\r\n STACK_BASE = 1850928,\r\n STACKTOP = STACK_BASE,\r\n STACK_MAX = 7093808,\r\n DYNAMIC_BASE = 7093808,\r\n DYNAMICTOP_PTR = 1850896;\r\n\r\n\r\n\r\n\r\nvar TOTAL_STACK = 5242880;\r\n\r\nvar INITIAL_TOTAL_MEMORY = Module['TOTAL_MEMORY'] || 134217728;\r\nif (INITIAL_TOTAL_MEMORY < TOTAL_STACK) err('TOTAL_MEMORY should be larger than TOTAL_STACK, was ' + INITIAL_TOTAL_MEMORY + '! (TOTAL_STACK=' + TOTAL_STACK + ')');\r\n\r\n// Initialize the runtime's memory\r\n\r\n\r\n\r\n\r\n\r\n\r\n if (Module['wasmMemory']) {\r\n wasmMemory = Module['wasmMemory'];\r\n } else {\r\n wasmMemory = new WebAssembly.Memory({\r\n 'initial': INITIAL_TOTAL_MEMORY / WASM_PAGE_SIZE\r\n });\r\n }\r\n\r\n\r\nif (wasmMemory) {\r\n buffer = wasmMemory.buffer;\r\n}\r\n\r\n// If the user provides an incorrect length, just use that length instead rather than providing the user to\r\n// specifically provide the memory length with Module['TOTAL_MEMORY'].\r\nINITIAL_TOTAL_MEMORY = buffer.byteLength;\r\nupdateGlobalBufferViews();\r\n\r\nHEAP32[DYNAMICTOP_PTR>>2] = DYNAMIC_BASE;\r\n\r\n\r\n\r\n\r\n\r\n\r\n// Endianness check (note: assumes compiler arch was little-endian)\r\n\r\nfunction callRuntimeCallbacks(callbacks) {\r\n while(callbacks.length > 0) {\r\n var callback = callbacks.shift();\r\n if (typeof callback == 'function') {\r\n callback();\r\n continue;\r\n }\r\n var func = callback.func;\r\n if (typeof func === 'number') {\r\n if (callback.arg === undefined) {\r\n Module['dynCall_v'](func);\r\n } else {\r\n Module['dynCall_vi'](func, callback.arg);\r\n }\r\n } else {\r\n func(callback.arg === undefined ? null : callback.arg);\r\n }\r\n }\r\n}\r\n\r\nvar __ATPRERUN__ = []; // functions called before the runtime is initialized\r\nvar __ATINIT__ = []; // functions called during startup\r\nvar __ATMAIN__ = []; // functions called when main() is to be run\r\nvar __ATEXIT__ = []; // functions called during shutdown\r\nvar __ATPOSTRUN__ = []; // functions called after the main() is called\r\n\r\nvar runtimeInitialized = false;\r\nvar runtimeExited = false;\r\n\r\n\r\nfunction preRun() {\r\n // compatibility - merge in anything from Module['preRun'] at this time\r\n if (Module['preRun']) {\r\n if (typeof Module['preRun'] == 'function') Module['preRun'] = [Module['preRun']];\r\n while (Module['preRun'].length) {\r\n addOnPreRun(Module['preRun'].shift());\r\n }\r\n }\r\n callRuntimeCallbacks(__ATPRERUN__);\r\n}\r\n\r\nfunction initRuntime() {\r\n runtimeInitialized = true;\r\n \r\n callRuntimeCallbacks(__ATINIT__);\r\n}\r\n\r\nfunction preMain() {\r\n \r\n callRuntimeCallbacks(__ATMAIN__);\r\n}\r\n\r\nfunction exitRuntime() {\r\n runtimeExited = true;\r\n}\r\n\r\nfunction postRun() {\r\n // compatibility - merge in anything from Module['postRun'] at this time\r\n if (Module['postRun']) {\r\n if (typeof Module['postRun'] == 'function') Module['postRun'] = [Module['postRun']];\r\n while (Module['postRun'].length) {\r\n addOnPostRun(Module['postRun'].shift());\r\n }\r\n }\r\n callRuntimeCallbacks(__ATPOSTRUN__);\r\n}\r\n\r\nfunction addOnPreRun(cb) {\r\n __ATPRERUN__.unshift(cb);\r\n}\r\n\r\nfunction addOnInit(cb) {\r\n __ATINIT__.unshift(cb);\r\n}\r\n\r\nfunction addOnPreMain(cb) {\r\n __ATMAIN__.unshift(cb);\r\n}\r\n\r\nfunction addOnExit(cb) {\r\n}\r\n\r\nfunction addOnPostRun(cb) {\r\n __ATPOSTRUN__.unshift(cb);\r\n}\r\n\r\nfunction unSign(value, bits, ignore) {\r\n if (value >= 0) {\r\n return value;\r\n }\r\n return bits <= 32 ? 2*Math.abs(1 << (bits-1)) + value // Need some trickery, since if bits == 32, we are right at the limit of the bits JS uses in bitshifts\r\n : Math.pow(2, bits) + value;\r\n}\r\nfunction reSign(value, bits, ignore) {\r\n if (value <= 0) {\r\n return value;\r\n }\r\n var half = bits <= 32 ? Math.abs(1 << (bits-1)) // abs is needed if bits == 32\r\n : Math.pow(2, bits-1);\r\n if (value >= half && (bits <= 32 || value > half)) { // for huge values, we can hit the precision limit and always get true here. so don't do that\r\n // but, in general there is no perfect solution here. With 64-bit ints, we get rounding and errors\r\n // TODO: In i64 mode 1, resign the two parts separately and safely\r\n value = -2*half + value; // Cannot bitshift half, as it may be at the limit of the bits JS uses in bitshifts\r\n }\r\n return value;\r\n}\r\n\r\n\r\n\r\nvar Math_abs = Math.abs;\r\nvar Math_cos = Math.cos;\r\nvar Math_sin = Math.sin;\r\nvar Math_tan = Math.tan;\r\nvar Math_acos = Math.acos;\r\nvar Math_asin = Math.asin;\r\nvar Math_atan = Math.atan;\r\nvar Math_atan2 = Math.atan2;\r\nvar Math_exp = Math.exp;\r\nvar Math_log = Math.log;\r\nvar Math_sqrt = Math.sqrt;\r\nvar Math_ceil = Math.ceil;\r\nvar Math_floor = Math.floor;\r\nvar Math_pow = Math.pow;\r\nvar Math_imul = Math.imul;\r\nvar Math_fround = Math.fround;\r\nvar Math_round = Math.round;\r\nvar Math_min = Math.min;\r\nvar Math_max = Math.max;\r\nvar Math_clz32 = Math.clz32;\r\nvar Math_trunc = Math.trunc;\r\n\r\n\r\n\r\n// A counter of dependencies for calling run(). If we need to\r\n// do asynchronous work before running, increment this and\r\n// decrement it. Incrementing must happen in a place like\r\n// Module.preRun (used by emcc to add file preloading).\r\n// Note that you can add dependencies in preRun, even though\r\n// it happens right before run - run will be postponed until\r\n// the dependencies are met.\r\nvar runDependencies = 0;\r\nvar runDependencyWatcher = null;\r\nvar dependenciesFulfilled = null; // overridden to take different actions when all run dependencies are fulfilled\r\n\r\nfunction getUniqueRunDependency(id) {\r\n return id;\r\n}\r\n\r\nfunction addRunDependency(id) {\r\n runDependencies++;\r\n if (Module['monitorRunDependencies']) {\r\n Module['monitorRunDependencies'](runDependencies);\r\n }\r\n}\r\n\r\nfunction removeRunDependency(id) {\r\n runDependencies--;\r\n if (Module['monitorRunDependencies']) {\r\n Module['monitorRunDependencies'](runDependencies);\r\n }\r\n if (runDependencies == 0) {\r\n if (runDependencyWatcher !== null) {\r\n clearInterval(runDependencyWatcher);\r\n runDependencyWatcher = null;\r\n }\r\n if (dependenciesFulfilled) {\r\n var callback = dependenciesFulfilled;\r\n dependenciesFulfilled = null;\r\n callback(); // can add another dependenciesFulfilled\r\n }\r\n }\r\n}\r\n\r\nModule[\"preloadedImages\"] = {}; // maps url to image data\r\nModule[\"preloadedAudios\"] = {}; // maps url to audio data\r\n\r\n\r\nvar memoryInitializer = null;\r\n\r\n\r\n\r\n\r\n\r\n\r\n// Copyright 2017 The Emscripten Authors. All rights reserved.\r\n// Emscripten is available under two separate licenses, the MIT license and the\r\n// University of Illinois/NCSA Open Source License. Both these licenses can be\r\n// found in the LICENSE file.\r\n\r\n// Prefix of data URIs emitted by SINGLE_FILE and related options.\r\nvar dataURIPrefix = 'data:application/octet-stream;base64,';\r\n\r\n// Indicates whether filename is a base64 data URI.\r\nfunction isDataURI(filename) {\r\n return String.prototype.startsWith ?\r\n filename.startsWith(dataURIPrefix) :\r\n filename.indexOf(dataURIPrefix) === 0;\r\n}\r\n\r\n\r\n\r\n\r\nvar wasmBinaryFile = 'DiabloSpawn.wasm';\r\nif (!isDataURI(wasmBinaryFile)) {\r\n wasmBinaryFile = locateFile(wasmBinaryFile);\r\n}\r\n\r\nfunction getBinary() {\r\n try {\r\n if (Module['wasmBinary']) {\r\n return new Uint8Array(Module['wasmBinary']);\r\n }\r\n if (readBinary) {\r\n return readBinary(wasmBinaryFile);\r\n } else {\r\n throw \"both async and sync fetching of the wasm failed\";\r\n }\r\n }\r\n catch (err) {\r\n abort(err);\r\n }\r\n}\r\n\r\nfunction getBinaryPromise() {\r\n // if we don't have the binary yet, and have the Fetch api, use that\r\n // in some environments, like Electron's render process, Fetch api may be present, but have a different context than expected, let's only use it on the Web\r\n if (!Module['wasmBinary'] && (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) && typeof fetch === 'function') {\r\n return fetch(wasmBinaryFile, { credentials: 'same-origin' }).then(function(response) {\r\n if (!response['ok']) {\r\n throw \"failed to load wasm binary file at '\" + wasmBinaryFile + \"'\";\r\n }\r\n return response['arrayBuffer']();\r\n }).catch(function () {\r\n return getBinary();\r\n });\r\n }\r\n // Otherwise, getBinary should be able to get it synchronously\r\n return new Promise(function(resolve, reject) {\r\n resolve(getBinary());\r\n });\r\n}\r\n\r\n\r\n\r\n// Create the wasm instance.\r\n// Receives the wasm imports, returns the exports.\r\nfunction createWasm(env) {\r\n\r\n // prepare imports\r\n var info = {\r\n 'env': env\r\n ,\r\n 'global': {\r\n 'NaN': NaN,\r\n 'Infinity': Infinity\r\n },\r\n 'global.Math': Math,\r\n 'asm2wasm': asm2wasmImports\r\n };\r\n // Load the wasm module and create an instance of using native support in the JS engine.\r\n // handle a generated wasm instance, receiving its exports and\r\n // performing other necessary setup\r\n function receiveInstance(instance, module) {\r\n var exports = instance.exports;\r\n Module['asm'] = exports;\r\n removeRunDependency('wasm-instantiate');\r\n }\r\n addRunDependency('wasm-instantiate');\r\n\r\n\r\n function receiveInstantiatedSource(output) {\r\n // 'output' is a WebAssemblyInstantiatedSource object which has both the module and instance.\r\n // receiveInstance() will swap in the exports (to Module.asm) so they can be called\r\n // TODO: Due to Closure regression https://github.com/google/closure-compiler/issues/3193, the above line no longer optimizes out down to the following line.\r\n // When the regression is fixed, can restore the above USE_PTHREADS-enabled path.\r\n receiveInstance(output['instance']);\r\n }\r\n\r\n\r\n function instantiateArrayBuffer(receiver) {\r\n return getBinaryPromise().then(function(binary) {\r\n return WebAssembly.instantiate(binary, info);\r\n }).then(receiver, function(reason) {\r\n err('failed to asynchronously prepare wasm: ' + reason);\r\n abort(reason);\r\n });\r\n }\r\n\r\n // Prefer streaming instantiation if available.\r\n function instantiateAsync() {\r\n if (!Module['wasmBinary'] &&\r\n typeof WebAssembly.instantiateStreaming === 'function' &&\r\n !isDataURI(wasmBinaryFile) &&\r\n typeof fetch === 'function') {\r\n fetch(wasmBinaryFile, { credentials: 'same-origin' }).then(function (response) {\r\n return WebAssembly.instantiateStreaming(response, info)\r\n .then(receiveInstantiatedSource, function(reason) {\r\n // We expect the most common failure cause to be a bad MIME type for the binary,\r\n // in which case falling back to ArrayBuffer instantiation should work.\r\n err('wasm streaming compile failed: ' + reason);\r\n err('falling back to ArrayBuffer instantiation');\r\n instantiateArrayBuffer(receiveInstantiatedSource);\r\n });\r\n });\r\n } else {\r\n return instantiateArrayBuffer(receiveInstantiatedSource);\r\n }\r\n }\r\n // User shell pages can write their own Module.instantiateWasm = function(imports, successCallback) callback\r\n // to manually instantiate the Wasm module themselves. This allows pages to run the instantiation parallel\r\n // to any other async startup actions they are performing.\r\n if (Module['instantiateWasm']) {\r\n try {\r\n var exports = Module['instantiateWasm'](info, receiveInstance);\r\n return exports;\r\n } catch(e) {\r\n err('Module.instantiateWasm callback failed with error: ' + e);\r\n return false;\r\n }\r\n }\r\n\r\n instantiateAsync();\r\n return {}; // no exports yet; we'll fill them in later\r\n}\r\n\r\n// Provide an \"asm.js function\" for the application, called to \"link\" the asm.js module. We instantiate\r\n// the wasm module at that time, and it receives imports and provides exports and so forth, the app\r\n// doesn't need to care that it is wasm or asm.js.\r\n\r\nModule['asm'] = function(global, env, providedBuffer) {\r\n // memory was already allocated (so js could use the buffer)\r\n env['memory'] = wasmMemory\r\n ;\r\n // import table\r\n env['table'] = wasmTable = new WebAssembly.Table({\r\n 'initial': 1116,\r\n 'maximum': 1116,\r\n 'element': 'anyfunc'\r\n });\r\n // With the wasm backend __memory_base and __table_base and only needed for\r\n // relocatable output.\r\n env['__memory_base'] = 1024; // tell the memory segments where to place themselves\r\n // table starts at 0 by default (even in dynamic linking, for the main module)\r\n env['__table_base'] = 0;\r\n\r\n var exports = createWasm(env);\r\n return exports;\r\n};\r\n\r\n// Globals used by JS i64 conversions\r\nvar tempDouble;\r\nvar tempI64;\r\n\r\n// === Body ===\r\n\r\nvar ASM_CONSTS = [function($0) { self.DApi.current_save_id($0); }];\r\n\r\nfunction _emscripten_asm_const_ii(code, a0) {\r\n return ASM_CONSTS[code](a0);\r\n}\r\nfunction __api_close_keyboard(){ self.DApi.close_keyboard(); }\r\nfunction __api_open_keyboard(x0,y0,x1,y1,len){ self.DApi.open_keyboard(x0, y0, x1, y1, len); }\r\nfunction _api_create_sound(id,ptr,size){ self.DApi.create_sound(id, HEAPU8.slice(ptr, ptr + size)); }\r\nfunction _api_create_sound_float(id,ptr,samples,channels,rate){ self.DApi.create_sound_raw(id, HEAPF32.slice(ptr / 4, ptr / 4 + samples * channels), samples, channels, rate); }\r\nfunction _api_delete_sound(id){ self.DApi.delete_sound(id); }\r\nfunction _api_draw_begin(){ self.DApi.draw_begin(); }\r\nfunction _api_draw_belt(items){ self.DApi.draw_belt(HEAP32.subarray(items / 4, items / 4 + 8)); }\r\nfunction _api_draw_blit(x,y,w,h,ptr){ self.DApi.draw_blit(x, y, w, h, HEAPU8.subarray(ptr, ptr + w * h * 4)); }\r\nfunction _api_draw_clip_text(x0,y0,x1,y1){ self.DApi.draw_clip_text(x0, y0, x1, y1); }\r\nfunction _api_draw_end(){ self.DApi.draw_end(); }\r\nfunction _api_draw_text(x,y,ptr,color){ var end = HEAPU8.indexOf(0, ptr); var text = String.fromCharCode.apply(null, HEAPU8.subarray(ptr, end)); self.DApi.draw_text(x, y, text, color); }\r\nfunction _api_duplicate_sound(id,srcId){ self.DApi.duplicate_sound(id, srcId); }\r\nfunction _api_exit_game(){ self.DApi.exit_game(); }\r\nfunction _api_play_sound(id,volume,pan,loop){ self.DApi.play_sound(id, volume, pan, loop); }\r\nfunction _api_set_cursor(x,y){ self.DApi.set_cursor(x, y); }\r\nfunction _api_set_volume(id,volume){ self.DApi.set_volume(id, volume); }\r\nfunction _api_stop_sound(id){ self.DApi.stop_sound(id); }\r\nfunction _api_use_websocket(use){ self.DApi.use_websocket(use); }\r\nfunction _api_websocket_closed(){ return self.DApi.websocket_closed(); }\r\nfunction _api_websocket_send(ptr,size){ self.DApi.websocket_send(HEAPU8.subarray(ptr, ptr + size)); }\r\nfunction _exit_error(err){ var end = HEAPU8.indexOf( 0, err ); var text = String.fromCharCode.apply(null, HEAPU8.subarray( err, end )); self.DApi.exit_error( text ); }\r\nfunction _get_file_contents(path,ptr,offset,size){ var end = HEAPU8.indexOf( 0, path); var text = String.fromCharCode.apply(null, HEAPU8.subarray(path, end )); self.DApi.get_file_contents(text, HEAPU8.subarray(ptr, ptr + size), offset); }\r\nfunction _get_file_size(path){ var end = HEAPU8.indexOf( 0, path); var text = String.fromCharCode.apply(null, HEAPU8.subarray(path, end )); return self.DApi.get_file_size(text); }\r\nfunction _put_file_contents(path,ptr,size){ var end = HEAPU8.indexOf( 0, path); var text = String.fromCharCode.apply(null, HEAPU8.subarray(path, end)); self.DApi.put_file_contents(text, HEAPU8.slice(ptr, ptr + size)); }\r\nfunction _remove_file(path){ var end = HEAPU8.indexOf( 0, path); var text = String.fromCharCode.apply(null, HEAPU8.subarray(path, end )); self.DApi.remove_file( text ); }\r\nfunction _show_alert(err){ var end = HEAPU8.indexOf( 0, err ); var text = String.fromCharCode.apply( null, HEAPU8.subarray( err, end ) ); self.alert( text ); }\r\nfunction _trace_pop(){ if (self.WASM_TRACE) { self.WASM_TRACE.pop(); } }\r\nfunction _trace_push(ptr){ var end = HEAPU8.indexOf(0, ptr); var text = String.fromCharCode.apply(null, HEAPU8.subarray(ptr, end)); console.log(text); self.WASM_TRACE = self.WASM_TRACE || []; self.WASM_TRACE.push(text); }\r\n\r\n\r\n\r\n// STATICTOP = STATIC_BASE + 1849904;\r\n/* global initializers */ __ATINIT__.push({ func: function() { globalCtors() } });\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n/* no memory initializer */\r\nvar tempDoublePtr = 1850912\r\n\r\nfunction copyTempFloat(ptr) { // functions, because inlining this code increases code size too much\r\n HEAP8[tempDoublePtr] = HEAP8[ptr];\r\n HEAP8[tempDoublePtr+1] = HEAP8[ptr+1];\r\n HEAP8[tempDoublePtr+2] = HEAP8[ptr+2];\r\n HEAP8[tempDoublePtr+3] = HEAP8[ptr+3];\r\n}\r\n\r\nfunction copyTempDouble(ptr) {\r\n HEAP8[tempDoublePtr] = HEAP8[ptr];\r\n HEAP8[tempDoublePtr+1] = HEAP8[ptr+1];\r\n HEAP8[tempDoublePtr+2] = HEAP8[ptr+2];\r\n HEAP8[tempDoublePtr+3] = HEAP8[ptr+3];\r\n HEAP8[tempDoublePtr+4] = HEAP8[ptr+4];\r\n HEAP8[tempDoublePtr+5] = HEAP8[ptr+5];\r\n HEAP8[tempDoublePtr+6] = HEAP8[ptr+6];\r\n HEAP8[tempDoublePtr+7] = HEAP8[ptr+7];\r\n}\r\n\r\n// {{PRE_LIBRARY}}\r\n\r\n\r\n function ___assert_fail(condition, filename, line, func) {\r\n abort('Assertion failed: ' + UTF8ToString(condition) + ', at: ' + [filename ? UTF8ToString(filename) : 'unknown filename', line, func ? UTF8ToString(func) : 'unknown function']);\r\n }\r\n\r\n function ___cxa_allocate_exception(size) {\r\n return _malloc(size);\r\n }\r\n\r\n \r\n var ___exception_infos={};\r\n \r\n var ___exception_caught= [];\r\n \r\n function ___exception_addRef(ptr) {\r\n if (!ptr) return;\r\n var info = ___exception_infos[ptr];\r\n info.refcount++;\r\n }\r\n \r\n function ___exception_deAdjust(adjusted) {\r\n if (!adjusted || ___exception_infos[adjusted]) return adjusted;\r\n for (var key in ___exception_infos) {\r\n var ptr = +key; // the iteration key is a string, and if we throw this, it must be an integer as that is what we look for\r\n var adj = ___exception_infos[ptr].adjusted;\r\n var len = adj.length;\r\n for (var i = 0; i < len; i++) {\r\n if (adj[i] === adjusted) {\r\n return ptr;\r\n }\r\n }\r\n }\r\n return adjusted;\r\n }function ___cxa_begin_catch(ptr) {\r\n var info = ___exception_infos[ptr];\r\n if (info && !info.caught) {\r\n info.caught = true;\r\n __ZSt18uncaught_exceptionv.uncaught_exceptions--;\r\n }\r\n if (info) info.rethrown = false;\r\n ___exception_caught.push(ptr);\r\n ___exception_addRef(___exception_deAdjust(ptr));\r\n return ptr;\r\n }\r\n\r\n \r\n var ___exception_last=0;\r\n \r\n \r\n function ___cxa_free_exception(ptr) {\r\n try {\r\n return _free(ptr);\r\n } catch(e) {\r\n }\r\n }function ___exception_decRef(ptr) {\r\n if (!ptr) return;\r\n var info = ___exception_infos[ptr];\r\n info.refcount--;\r\n // A rethrown exception can reach refcount 0; it must not be discarded\r\n // Its next handler will clear the rethrown flag and addRef it, prior to\r\n // final decRef and destruction here\r\n if (info.refcount === 0 && !info.rethrown) {\r\n if (info.destructor) {\r\n Module['dynCall_vi'](info.destructor, ptr);\r\n }\r\n delete ___exception_infos[ptr];\r\n ___cxa_free_exception(ptr);\r\n }\r\n }\r\n \r\n function ___cxa_end_catch() {\r\n // Clear state flag.\r\n _setThrew(0);\r\n // Call destructor if one is registered then clear it.\r\n var ptr = ___exception_caught.pop();\r\n if (ptr) {\r\n ___exception_decRef(___exception_deAdjust(ptr));\r\n ___exception_last = 0; // XXX in decRef?\r\n }\r\n }\r\n\r\n \r\n \r\n function ___resumeException(ptr) {\r\n if (!___exception_last) { ___exception_last = ptr; }\r\n throw ptr;\r\n }function ___cxa_find_matching_catch() {\r\n var thrown = ___exception_last;\r\n if (!thrown) {\r\n // just pass through the null ptr\r\n return ((setTempRet0(0),0)|0);\r\n }\r\n var info = ___exception_infos[thrown];\r\n var throwntype = info.type;\r\n if (!throwntype) {\r\n // just pass through the thrown ptr\r\n return ((setTempRet0(0),thrown)|0);\r\n }\r\n var typeArray = Array.prototype.slice.call(arguments);\r\n \r\n var pointer = ___cxa_is_pointer_type(throwntype);\r\n // can_catch receives a **, add indirection\r\n var buffer = 1850880;\r\n HEAP32[((buffer)>>2)]=thrown;\r\n thrown = buffer;\r\n // The different catch blocks are denoted by different types.\r\n // Due to inheritance, those types may not precisely match the\r\n // type of the thrown object. Find one which matches, and\r\n // return the type of the catch block which should be called.\r\n for (var i = 0; i < typeArray.length; i++) {\r\n if (typeArray[i] && ___cxa_can_catch(typeArray[i], throwntype, thrown)) {\r\n thrown = HEAP32[((thrown)>>2)]; // undo indirection\r\n info.adjusted.push(thrown);\r\n return ((setTempRet0(typeArray[i]),thrown)|0);\r\n }\r\n }\r\n // Shouldn't happen unless we have bogus data in typeArray\r\n // or encounter a type for which emscripten doesn't have suitable\r\n // typeinfo defined. Best-efforts match just in case.\r\n thrown = HEAP32[((thrown)>>2)]; // undo indirection\r\n return ((setTempRet0(throwntype),thrown)|0);\r\n }\r\n Module[\"___cxa_find_matching_catch\"] = ___cxa_find_matching_catch;function ___cxa_find_matching_catch_2(a0,a1\r\n /*``*/) {\r\n return ___cxa_find_matching_catch(a0,a1);\r\n }\r\n\r\n function ___cxa_find_matching_catch_3(a0,a1,a2\r\n /*``*/) {\r\n return ___cxa_find_matching_catch(a0,a1,a2);\r\n }\r\n\r\n\r\n function ___cxa_get_exception_ptr(ptr) {\r\n // TODO: use info.adjusted?\r\n return ptr;\r\n }\r\n\r\n function ___cxa_pure_virtual() {\r\n ABORT = true;\r\n throw 'Pure virtual function called!';\r\n }\r\n\r\n function ___cxa_throw(ptr, type, destructor) {\r\n ___exception_infos[ptr] = {\r\n ptr: ptr,\r\n adjusted: [ptr],\r\n type: type,\r\n destructor: destructor,\r\n refcount: 0,\r\n caught: false,\r\n rethrown: false\r\n };\r\n ___exception_last = ptr;\r\n if (!(\"uncaught_exception\" in __ZSt18uncaught_exceptionv)) {\r\n __ZSt18uncaught_exceptionv.uncaught_exceptions = 1;\r\n } else {\r\n __ZSt18uncaught_exceptionv.uncaught_exceptions++;\r\n }\r\n throw ptr;\r\n }\r\n\r\n function ___cxa_uncaught_exceptions() {\r\n return __ZSt18uncaught_exceptionv.uncaught_exceptions;\r\n }\r\n\r\n function ___gxx_personality_v0() {\r\n }\r\n\r\n function ___lock() {}\r\n\r\n\r\n \r\n \r\n var PATH={splitPath:function (filename) {\r\n var splitPathRe = /^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/;\r\n return splitPathRe.exec(filename).slice(1);\r\n },normalizeArray:function (parts, allowAboveRoot) {\r\n // if the path tries to go above the root, `up` ends up > 0\r\n var up = 0;\r\n for (var i = parts.length - 1; i >= 0; i--) {\r\n var last = parts[i];\r\n if (last === '.') {\r\n parts.splice(i, 1);\r\n } else if (last === '..') {\r\n parts.splice(i, 1);\r\n up++;\r\n } else if (up) {\r\n parts.splice(i, 1);\r\n up--;\r\n }\r\n }\r\n // if the path is allowed to go above the root, restore leading ..s\r\n if (allowAboveRoot) {\r\n for (; up; up--) {\r\n parts.unshift('..');\r\n }\r\n }\r\n return parts;\r\n },normalize:function (path) {\r\n var isAbsolute = path.charAt(0) === '/',\r\n trailingSlash = path.substr(-1) === '/';\r\n // Normalize the path\r\n path = PATH.normalizeArray(path.split('/').filter(function(p) {\r\n return !!p;\r\n }), !isAbsolute).join('/');\r\n if (!path && !isAbsolute) {\r\n path = '.';\r\n }\r\n if (path && trailingSlash) {\r\n path += '/';\r\n }\r\n return (isAbsolute ? '/' : '') + path;\r\n },dirname:function (path) {\r\n var result = PATH.splitPath(path),\r\n root = result[0],\r\n dir = result[1];\r\n if (!root && !dir) {\r\n // No dirname whatsoever\r\n return '.';\r\n }\r\n if (dir) {\r\n // It has a dirname, strip trailing slash\r\n dir = dir.substr(0, dir.length - 1);\r\n }\r\n return root + dir;\r\n },basename:function (path) {\r\n // EMSCRIPTEN return '/'' for '/', not an empty string\r\n if (path === '/') return '/';\r\n var lastSlash = path.lastIndexOf('/');\r\n if (lastSlash === -1) return path;\r\n return path.substr(lastSlash+1);\r\n },extname:function (path) {\r\n return PATH.splitPath(path)[3];\r\n },join:function () {\r\n var paths = Array.prototype.slice.call(arguments, 0);\r\n return PATH.normalize(paths.join('/'));\r\n },join2:function (l, r) {\r\n return PATH.normalize(l + '/' + r);\r\n }};var SYSCALLS={buffers:[null,[],[]],printChar:function (stream, curr) {\r\n var buffer = SYSCALLS.buffers[stream];\r\n if (curr === 0 || curr === 10) {\r\n (stream === 1 ? out : err)(UTF8ArrayToString(buffer, 0));\r\n buffer.length = 0;\r\n } else {\r\n buffer.push(curr);\r\n }\r\n },varargs:0,get:function (varargs) {\r\n SYSCALLS.varargs += 4;\r\n var ret = HEAP32[(((SYSCALLS.varargs)-(4))>>2)];\r\n return ret;\r\n },getStr:function () {\r\n var ret = UTF8ToString(SYSCALLS.get());\r\n return ret;\r\n },get64:function () {\r\n var low = SYSCALLS.get(), high = SYSCALLS.get();\r\n return low;\r\n },getZero:function () {\r\n SYSCALLS.get();\r\n }};function ___syscall140(which, varargs) {SYSCALLS.varargs = varargs;\r\n try {\r\n // llseek\r\n var stream = SYSCALLS.getStreamFromFD(), offset_high = SYSCALLS.get(), offset_low = SYSCALLS.get(), result = SYSCALLS.get(), whence = SYSCALLS.get();\r\n return 0;\r\n } catch (e) {\r\n if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e);\r\n return -e.errno;\r\n }\r\n }\r\n\r\n \r\n function flush_NO_FILESYSTEM() {\r\n // flush anything remaining in the buffers during shutdown\r\n var fflush = Module[\"_fflush\"];\r\n if (fflush) fflush(0);\r\n var buffers = SYSCALLS.buffers;\r\n if (buffers[1].length) SYSCALLS.printChar(1, 10);\r\n if (buffers[2].length) SYSCALLS.printChar(2, 10);\r\n }function ___syscall146(which, varargs) {SYSCALLS.varargs = varargs;\r\n try {\r\n // writev\r\n // hack to support printf in SYSCALLS_REQUIRE_FILESYSTEM=0\r\n var stream = SYSCALLS.get(), iov = SYSCALLS.get(), iovcnt = SYSCALLS.get();\r\n var ret = 0;\r\n for (var i = 0; i < iovcnt; i++) {\r\n var ptr = HEAP32[(((iov)+(i*8))>>2)];\r\n var len = HEAP32[(((iov)+(i*8 + 4))>>2)];\r\n for (var j = 0; j < len; j++) {\r\n SYSCALLS.printChar(stream, HEAPU8[ptr+j]);\r\n }\r\n ret += len;\r\n }\r\n return ret;\r\n } catch (e) {\r\n if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e);\r\n return -e.errno;\r\n }\r\n }\r\n\r\n function ___syscall54(which, varargs) {SYSCALLS.varargs = varargs;\r\n try {\r\n // ioctl\r\n return 0;\r\n } catch (e) {\r\n if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e);\r\n return -e.errno;\r\n }\r\n }\r\n\r\n function ___syscall6(which, varargs) {SYSCALLS.varargs = varargs;\r\n try {\r\n // close\r\n var stream = SYSCALLS.getStreamFromFD();\r\n return 0;\r\n } catch (e) {\r\n if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e);\r\n return -e.errno;\r\n }\r\n }\r\n\r\n function ___unlock() {}\r\n\r\n function _abort() {\r\n Module['abort']();\r\n }\r\n\r\n var _emscripten_asm_const_int=true;\r\n\r\n function _emscripten_get_heap_size() {\r\n return HEAP8.length;\r\n }\r\n\r\n function _exit(status) {\r\n // void _exit(int status);\r\n // http://pubs.opengroup.org/onlinepubs/000095399/functions/exit.html\r\n exit(status);\r\n }\r\n\r\n \r\n\r\n function _llvm_eh_typeid_for(type) {\r\n return type;\r\n }\r\n\r\n function _llvm_trap() {\r\n abort('trap!');\r\n }\r\n\r\n \r\n function _emscripten_memcpy_big(dest, src, num) {\r\n HEAPU8.set(HEAPU8.subarray(src, src+num), dest);\r\n }\r\n \r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n function ___setErrNo(value) {\r\n if (Module['___errno_location']) HEAP32[((Module['___errno_location']())>>2)]=value;\r\n return value;\r\n }\r\n \r\n \r\n function abortOnCannotGrowMemory(requestedSize) {\r\n abort('OOM');\r\n }\r\n \r\n function emscripten_realloc_buffer(size) {\r\n var PAGE_MULTIPLE = 65536;\r\n size = alignUp(size, PAGE_MULTIPLE); // round up to wasm page size\r\n var oldSize = buffer.byteLength;\r\n // native wasm support\r\n // note that this is *not* threadsafe. multiple threads can call .grow(), and each\r\n // presents a delta, so in theory we may over-allocate here (e.g. if two threads\r\n // ask to grow from 256MB to 512MB, we get 2 requests to add +256MB, and may end\r\n // up growing to 768MB (even though we may have been able to make do with 512MB).\r\n // TODO: consider decreasing the step sizes in emscripten_resize_heap\r\n try {\r\n var result = wasmMemory.grow((size - oldSize) / 65536); // .grow() takes a delta compared to the previous size\r\n if (result !== (-1 | 0)) {\r\n // success in native wasm memory growth, get the buffer from the memory\r\n buffer = wasmMemory.buffer;\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n } catch(e) {\r\n return false;\r\n }\r\n }function _emscripten_resize_heap(requestedSize) {\r\n var oldSize = _emscripten_get_heap_size();\r\n // With pthreads, races can happen (another thread might increase the size in between), so return a failure, and let the caller retry.\r\n \r\n \r\n var PAGE_MULTIPLE = 65536;\r\n var LIMIT = 2147483648 - PAGE_MULTIPLE; // We can do one page short of 2GB as theoretical maximum.\r\n \r\n if (requestedSize > LIMIT) {\r\n return false;\r\n }\r\n \r\n var MIN_TOTAL_MEMORY = 16777216;\r\n var newSize = Math.max(oldSize, MIN_TOTAL_MEMORY); // So the loop below will not be infinite, and minimum asm.js memory size is 16MB.\r\n \r\n // TODO: see realloc_buffer - for PTHREADS we may want to decrease these jumps\r\n while (newSize < requestedSize) { // Keep incrementing the heap size as long as it's less than what is requested.\r\n if (newSize <= 536870912) {\r\n newSize = alignUp(2 * newSize, PAGE_MULTIPLE); // Simple heuristic: double until 1GB...\r\n } else {\r\n // ..., but after that, add smaller increments towards 2GB, which we cannot reach\r\n newSize = Math.min(alignUp((3 * newSize + 2147483648) / 4, PAGE_MULTIPLE), LIMIT);\r\n }\r\n \r\n }\r\n \r\n \r\n \r\n \r\n if (!emscripten_realloc_buffer(newSize)) {\r\n return false;\r\n }\r\n \r\n updateGlobalBufferViews();\r\n \r\n \r\n \r\n return true;\r\n } \r\n\r\n function _time(ptr) {\r\n var ret = (Date.now()/1000)|0;\r\n if (ptr) {\r\n HEAP32[((ptr)>>2)]=ret;\r\n }\r\n return ret;\r\n }\r\nvar ASSERTIONS = false;\r\n\r\n// Copyright 2017 The Emscripten Authors. All rights reserved.\r\n// Emscripten is available under two separate licenses, the MIT license and the\r\n// University of Illinois/NCSA Open Source License. Both these licenses can be\r\n// found in the LICENSE file.\r\n\r\n/** @type {function(string, boolean=, number=)} */\r\nfunction intArrayFromString(stringy, dontAddNull, length) {\r\n var len = length > 0 ? length : lengthBytesUTF8(stringy)+1;\r\n var u8array = new Array(len);\r\n var numBytesWritten = stringToUTF8Array(stringy, u8array, 0, u8array.length);\r\n if (dontAddNull) u8array.length = numBytesWritten;\r\n return u8array;\r\n}\r\n\r\nfunction intArrayToString(array) {\r\n var ret = [];\r\n for (var i = 0; i < array.length; i++) {\r\n var chr = array[i];\r\n if (chr > 0xFF) {\r\n if (ASSERTIONS) {\r\n assert(false, 'Character code ' + chr + ' (' + String.fromCharCode(chr) + ') at offset ' + i + ' not in 0x00-0xFF.');\r\n }\r\n chr &= 0xFF;\r\n }\r\n ret.push(String.fromCharCode(chr));\r\n }\r\n return ret.join('');\r\n}\r\n\r\n\r\n// ASM_LIBRARY EXTERN PRIMITIVES: Int8Array,Int32Array\r\n\r\n\r\nfunction invoke_i(index) {\r\n var sp = stackSave();\r\n try {\r\n return dynCall_i(index);\r\n } catch(e) {\r\n stackRestore(sp);\r\n if (e !== e+0 && e !== 'longjmp') throw e;\r\n _setThrew(1, 0);\r\n }\r\n}\r\n\r\nfunction invoke_ii(index,a1) {\r\n var sp = stackSave();\r\n try {\r\n return dynCall_ii(index,a1);\r\n } catch(e) {\r\n stackRestore(sp);\r\n if (e !== e+0 && e !== 'longjmp') throw e;\r\n _setThrew(1, 0);\r\n }\r\n}\r\n\r\nfunction invoke_iii(index,a1,a2) {\r\n var sp = stackSave();\r\n try {\r\n return dynCall_iii(index,a1,a2);\r\n } catch(e) {\r\n stackRestore(sp);\r\n if (e !== e+0 && e !== 'longjmp') throw e;\r\n _setThrew(1, 0);\r\n }\r\n}\r\n\r\nfunction invoke_iiii(index,a1,a2,a3) {\r\n var sp = stackSave();\r\n try {\r\n return dynCall_iiii(index,a1,a2,a3);\r\n } catch(e) {\r\n stackRestore(sp);\r\n if (e !== e+0 && e !== 'longjmp') throw e;\r\n _setThrew(1, 0);\r\n }\r\n}\r\n\r\nfunction invoke_iiiii(index,a1,a2,a3,a4) {\r\n var sp = stackSave();\r\n try {\r\n return dynCall_iiiii(index,a1,a2,a3,a4);\r\n } catch(e) {\r\n stackRestore(sp);\r\n if (e !== e+0 && e !== 'longjmp') throw e;\r\n _setThrew(1, 0);\r\n }\r\n}\r\n\r\nfunction invoke_iiiiii(index,a1,a2,a3,a4,a5) {\r\n var sp = stackSave();\r\n try {\r\n return dynCall_iiiiii(index,a1,a2,a3,a4,a5);\r\n } catch(e) {\r\n stackRestore(sp);\r\n if (e !== e+0 && e !== 'longjmp') throw e;\r\n _setThrew(1, 0);\r\n }\r\n}\r\n\r\nfunction invoke_ji(index,a1) {\r\n var sp = stackSave();\r\n try {\r\n return dynCall_ji(index,a1);\r\n } catch(e) {\r\n stackRestore(sp);\r\n if (e !== e+0 && e !== 'longjmp') throw e;\r\n _setThrew(1, 0);\r\n }\r\n}\r\n\r\nfunction invoke_v(index) {\r\n var sp = stackSave();\r\n try {\r\n dynCall_v(index);\r\n } catch(e) {\r\n stackRestore(sp);\r\n if (e !== e+0 && e !== 'longjmp') throw e;\r\n _setThrew(1, 0);\r\n }\r\n}\r\n\r\nfunction invoke_vi(index,a1) {\r\n var sp = stackSave();\r\n try {\r\n dynCall_vi(index,a1);\r\n } catch(e) {\r\n stackRestore(sp);\r\n if (e !== e+0 && e !== 'longjmp') throw e;\r\n _setThrew(1, 0);\r\n }\r\n}\r\n\r\nfunction invoke_vii(index,a1,a2) {\r\n var sp = stackSave();\r\n try {\r\n dynCall_vii(index,a1,a2);\r\n } catch(e) {\r\n stackRestore(sp);\r\n if (e !== e+0 && e !== 'longjmp') throw e;\r\n _setThrew(1, 0);\r\n }\r\n}\r\n\r\nfunction invoke_viii(index,a1,a2,a3) {\r\n var sp = stackSave();\r\n try {\r\n dynCall_viii(index,a1,a2,a3);\r\n } catch(e) {\r\n stackRestore(sp);\r\n if (e !== e+0 && e !== 'longjmp') throw e;\r\n _setThrew(1, 0);\r\n }\r\n}\r\n\r\nfunction invoke_viiii(index,a1,a2,a3,a4) {\r\n var sp = stackSave();\r\n try {\r\n dynCall_viiii(index,a1,a2,a3,a4);\r\n } catch(e) {\r\n stackRestore(sp);\r\n if (e !== e+0 && e !== 'longjmp') throw e;\r\n _setThrew(1, 0);\r\n }\r\n}\r\n\r\nfunction invoke_viiiii(index,a1,a2,a3,a4,a5) {\r\n var sp = stackSave();\r\n try {\r\n dynCall_viiiii(index,a1,a2,a3,a4,a5);\r\n } catch(e) {\r\n stackRestore(sp);\r\n if (e !== e+0 && e !== 'longjmp') throw e;\r\n _setThrew(1, 0);\r\n }\r\n}\r\n\r\nfunction invoke_viiiiiii(index,a1,a2,a3,a4,a5,a6,a7) {\r\n var sp = stackSave();\r\n try {\r\n dynCall_viiiiiii(index,a1,a2,a3,a4,a5,a6,a7);\r\n } catch(e) {\r\n stackRestore(sp);\r\n if (e !== e+0 && e !== 'longjmp') throw e;\r\n _setThrew(1, 0);\r\n }\r\n}\r\n\r\nfunction invoke_viij(index,a1,a2,a3,a4) {\r\n var sp = stackSave();\r\n try {\r\n dynCall_viij(index,a1,a2,a3,a4);\r\n } catch(e) {\r\n stackRestore(sp);\r\n if (e !== e+0 && e !== 'longjmp') throw e;\r\n _setThrew(1, 0);\r\n }\r\n}\r\n\r\nfunction invoke_viji(index,a1,a2,a3,a4) {\r\n var sp = stackSave();\r\n try {\r\n dynCall_viji(index,a1,a2,a3,a4);\r\n } catch(e) {\r\n stackRestore(sp);\r\n if (e !== e+0 && e !== 'longjmp') throw e;\r\n _setThrew(1, 0);\r\n }\r\n}\r\n\r\nvar asmGlobalArg = {};\r\n\r\nvar asmLibraryArg = {\r\n \"abort\": abort,\r\n \"setTempRet0\": setTempRet0,\r\n \"getTempRet0\": getTempRet0,\r\n \"invoke_i\": invoke_i,\r\n \"invoke_ii\": invoke_ii,\r\n \"invoke_iii\": invoke_iii,\r\n \"invoke_iiii\": invoke_iiii,\r\n \"invoke_iiiii\": invoke_iiiii,\r\n \"invoke_iiiiii\": invoke_iiiiii,\r\n \"invoke_ji\": invoke_ji,\r\n \"invoke_v\": invoke_v,\r\n \"invoke_vi\": invoke_vi,\r\n \"invoke_vii\": invoke_vii,\r\n \"invoke_viii\": invoke_viii,\r\n \"invoke_viiii\": invoke_viiii,\r\n \"invoke_viiiii\": invoke_viiiii,\r\n \"invoke_viiiiiii\": invoke_viiiiiii,\r\n \"invoke_viij\": invoke_viij,\r\n \"invoke_viji\": invoke_viji,\r\n \"___assert_fail\": ___assert_fail,\r\n \"___cxa_allocate_exception\": ___cxa_allocate_exception,\r\n \"___cxa_begin_catch\": ___cxa_begin_catch,\r\n \"___cxa_end_catch\": ___cxa_end_catch,\r\n \"___cxa_find_matching_catch\": ___cxa_find_matching_catch,\r\n \"___cxa_find_matching_catch_2\": ___cxa_find_matching_catch_2,\r\n \"___cxa_find_matching_catch_3\": ___cxa_find_matching_catch_3,\r\n \"___cxa_free_exception\": ___cxa_free_exception,\r\n \"___cxa_get_exception_ptr\": ___cxa_get_exception_ptr,\r\n \"___cxa_pure_virtual\": ___cxa_pure_virtual,\r\n \"___cxa_throw\": ___cxa_throw,\r\n \"___cxa_uncaught_exceptions\": ___cxa_uncaught_exceptions,\r\n \"___exception_addRef\": ___exception_addRef,\r\n \"___exception_deAdjust\": ___exception_deAdjust,\r\n \"___exception_decRef\": ___exception_decRef,\r\n \"___gxx_personality_v0\": ___gxx_personality_v0,\r\n \"___lock\": ___lock,\r\n \"___resumeException\": ___resumeException,\r\n \"___setErrNo\": ___setErrNo,\r\n \"___syscall140\": ___syscall140,\r\n \"___syscall146\": ___syscall146,\r\n \"___syscall54\": ___syscall54,\r\n \"___syscall6\": ___syscall6,\r\n \"___unlock\": ___unlock,\r\n \"__api_close_keyboard\": __api_close_keyboard,\r\n \"__api_open_keyboard\": __api_open_keyboard,\r\n \"_abort\": _abort,\r\n \"_api_create_sound\": _api_create_sound,\r\n \"_api_create_sound_float\": _api_create_sound_float,\r\n \"_api_delete_sound\": _api_delete_sound,\r\n \"_api_draw_begin\": _api_draw_begin,\r\n \"_api_draw_belt\": _api_draw_belt,\r\n \"_api_draw_blit\": _api_draw_blit,\r\n \"_api_draw_clip_text\": _api_draw_clip_text,\r\n \"_api_draw_end\": _api_draw_end,\r\n \"_api_draw_text\": _api_draw_text,\r\n \"_api_duplicate_sound\": _api_duplicate_sound,\r\n \"_api_exit_game\": _api_exit_game,\r\n \"_api_play_sound\": _api_play_sound,\r\n \"_api_set_cursor\": _api_set_cursor,\r\n \"_api_set_volume\": _api_set_volume,\r\n \"_api_stop_sound\": _api_stop_sound,\r\n \"_api_use_websocket\": _api_use_websocket,\r\n \"_api_websocket_closed\": _api_websocket_closed,\r\n \"_api_websocket_send\": _api_websocket_send,\r\n \"_emscripten_asm_const_ii\": _emscripten_asm_const_ii,\r\n \"_emscripten_get_heap_size\": _emscripten_get_heap_size,\r\n \"_emscripten_memcpy_big\": _emscripten_memcpy_big,\r\n \"_emscripten_resize_heap\": _emscripten_resize_heap,\r\n \"_exit\": _exit,\r\n \"_exit_error\": _exit_error,\r\n \"_get_file_contents\": _get_file_contents,\r\n \"_get_file_size\": _get_file_size,\r\n \"_llvm_eh_typeid_for\": _llvm_eh_typeid_for,\r\n \"_llvm_trap\": _llvm_trap,\r\n \"_put_file_contents\": _put_file_contents,\r\n \"_remove_file\": _remove_file,\r\n \"_show_alert\": _show_alert,\r\n \"_time\": _time,\r\n \"_trace_pop\": _trace_pop,\r\n \"_trace_push\": _trace_push,\r\n \"abortOnCannotGrowMemory\": abortOnCannotGrowMemory,\r\n \"emscripten_realloc_buffer\": emscripten_realloc_buffer,\r\n \"flush_NO_FILESYSTEM\": flush_NO_FILESYSTEM,\r\n \"tempDoublePtr\": tempDoublePtr,\r\n \"DYNAMICTOP_PTR\": DYNAMICTOP_PTR\r\n};\r\n// EMSCRIPTEN_START_ASM\r\nvar asm =Module[\"asm\"]// EMSCRIPTEN_END_ASM\r\n(asmGlobalArg, asmLibraryArg, buffer);\r\n\r\nModule[\"asm\"] = asm;\r\nvar _DApi_AllocPacket = Module[\"_DApi_AllocPacket\"] = function() {\r\n return Module[\"asm\"][\"_DApi_AllocPacket\"].apply(null, arguments)\r\n};\r\n\r\nvar _DApi_Char = Module[\"_DApi_Char\"] = function() {\r\n return Module[\"asm\"][\"_DApi_Char\"].apply(null, arguments)\r\n};\r\n\r\nvar _DApi_Init = Module[\"_DApi_Init\"] = function() {\r\n return Module[\"asm\"][\"_DApi_Init\"].apply(null, arguments)\r\n};\r\n\r\nvar _DApi_Key = Module[\"_DApi_Key\"] = function() {\r\n return Module[\"asm\"][\"_DApi_Key\"].apply(null, arguments)\r\n};\r\n\r\nvar _DApi_Mouse = Module[\"_DApi_Mouse\"] = function() {\r\n return Module[\"asm\"][\"_DApi_Mouse\"].apply(null, arguments)\r\n};\r\n\r\nvar _DApi_Render = Module[\"_DApi_Render\"] = function() {\r\n return Module[\"asm\"][\"_DApi_Render\"].apply(null, arguments)\r\n};\r\n\r\nvar _DApi_SyncText = Module[\"_DApi_SyncText\"] = function() {\r\n return Module[\"asm\"][\"_DApi_SyncText\"].apply(null, arguments)\r\n};\r\n\r\nvar _DApi_SyncTextPtr = Module[\"_DApi_SyncTextPtr\"] = function() {\r\n return Module[\"asm\"][\"_DApi_SyncTextPtr\"].apply(null, arguments)\r\n};\r\n\r\nvar _SNet_InitWebsocket = Module[\"_SNet_InitWebsocket\"] = function() {\r\n return Module[\"asm\"][\"_SNet_InitWebsocket\"].apply(null, arguments)\r\n};\r\n\r\nvar _SNet_WebsocketStatus = Module[\"_SNet_WebsocketStatus\"] = function() {\r\n return Module[\"asm\"][\"_SNet_WebsocketStatus\"].apply(null, arguments)\r\n};\r\n\r\nvar __ZSt18uncaught_exceptionv = Module[\"__ZSt18uncaught_exceptionv\"] = function() {\r\n return Module[\"asm\"][\"__ZSt18uncaught_exceptionv\"].apply(null, arguments)\r\n};\r\n\r\nvar ___cxa_can_catch = Module[\"___cxa_can_catch\"] = function() {\r\n return Module[\"asm\"][\"___cxa_can_catch\"].apply(null, arguments)\r\n};\r\n\r\nvar ___cxa_is_pointer_type = Module[\"___cxa_is_pointer_type\"] = function() {\r\n return Module[\"asm\"][\"___cxa_is_pointer_type\"].apply(null, arguments)\r\n};\r\n\r\nvar ___em_js___api_close_keyboard = Module[\"___em_js___api_close_keyboard\"] = function() {\r\n return Module[\"asm\"][\"___em_js___api_close_keyboard\"].apply(null, arguments)\r\n};\r\n\r\nvar ___em_js___api_open_keyboard = Module[\"___em_js___api_open_keyboard\"] = function() {\r\n return Module[\"asm\"][\"___em_js___api_open_keyboard\"].apply(null, arguments)\r\n};\r\n\r\nvar ___em_js__api_create_sound = Module[\"___em_js__api_create_sound\"] = function() {\r\n return Module[\"asm\"][\"___em_js__api_create_sound\"].apply(null, arguments)\r\n};\r\n\r\nvar ___em_js__api_create_sound_float = Module[\"___em_js__api_create_sound_float\"] = function() {\r\n return Module[\"asm\"][\"___em_js__api_create_sound_float\"].apply(null, arguments)\r\n};\r\n\r\nvar ___em_js__api_delete_sound = Module[\"___em_js__api_delete_sound\"] = function() {\r\n return Module[\"asm\"][\"___em_js__api_delete_sound\"].apply(null, arguments)\r\n};\r\n\r\nvar ___em_js__api_draw_begin = Module[\"___em_js__api_draw_begin\"] = function() {\r\n return Module[\"asm\"][\"___em_js__api_draw_begin\"].apply(null, arguments)\r\n};\r\n\r\nvar ___em_js__api_draw_belt = Module[\"___em_js__api_draw_belt\"] = function() {\r\n return Module[\"asm\"][\"___em_js__api_draw_belt\"].apply(null, arguments)\r\n};\r\n\r\nvar ___em_js__api_draw_blit = Module[\"___em_js__api_draw_blit\"] = function() {\r\n return Module[\"asm\"][\"___em_js__api_draw_blit\"].apply(null, arguments)\r\n};\r\n\r\nvar ___em_js__api_draw_clip_text = Module[\"___em_js__api_draw_clip_text\"] = function() {\r\n return Module[\"asm\"][\"___em_js__api_draw_clip_text\"].apply(null, arguments)\r\n};\r\n\r\nvar ___em_js__api_draw_end = Module[\"___em_js__api_draw_end\"] = function() {\r\n return Module[\"asm\"][\"___em_js__api_draw_end\"].apply(null, arguments)\r\n};\r\n\r\nvar ___em_js__api_draw_text = Module[\"___em_js__api_draw_text\"] = function() {\r\n return Module[\"asm\"][\"___em_js__api_draw_text\"].apply(null, arguments)\r\n};\r\n\r\nvar ___em_js__api_duplicate_sound = Module[\"___em_js__api_duplicate_sound\"] = function() {\r\n return Module[\"asm\"][\"___em_js__api_duplicate_sound\"].apply(null, arguments)\r\n};\r\n\r\nvar ___em_js__api_exit_game = Module[\"___em_js__api_exit_game\"] = function() {\r\n return Module[\"asm\"][\"___em_js__api_exit_game\"].apply(null, arguments)\r\n};\r\n\r\nvar ___em_js__api_play_sound = Module[\"___em_js__api_play_sound\"] = function() {\r\n return Module[\"asm\"][\"___em_js__api_play_sound\"].apply(null, arguments)\r\n};\r\n\r\nvar ___em_js__api_set_cursor = Module[\"___em_js__api_set_cursor\"] = function() {\r\n return Module[\"asm\"][\"___em_js__api_set_cursor\"].apply(null, arguments)\r\n};\r\n\r\nvar ___em_js__api_set_volume = Module[\"___em_js__api_set_volume\"] = function() {\r\n return Module[\"asm\"][\"___em_js__api_set_volume\"].apply(null, arguments)\r\n};\r\n\r\nvar ___em_js__api_stop_sound = Module[\"___em_js__api_stop_sound\"] = function() {\r\n return Module[\"asm\"][\"___em_js__api_stop_sound\"].apply(null, arguments)\r\n};\r\n\r\nvar ___em_js__api_use_websocket = Module[\"___em_js__api_use_websocket\"] = function() {\r\n return Module[\"asm\"][\"___em_js__api_use_websocket\"].apply(null, arguments)\r\n};\r\n\r\nvar ___em_js__api_websocket_closed = Module[\"___em_js__api_websocket_closed\"] = function() {\r\n return Module[\"asm\"][\"___em_js__api_websocket_closed\"].apply(null, arguments)\r\n};\r\n\r\nvar ___em_js__api_websocket_send = Module[\"___em_js__api_websocket_send\"] = function() {\r\n return Module[\"asm\"][\"___em_js__api_websocket_send\"].apply(null, arguments)\r\n};\r\n\r\nvar ___em_js__exit_error = Module[\"___em_js__exit_error\"] = function() {\r\n return Module[\"asm\"][\"___em_js__exit_error\"].apply(null, arguments)\r\n};\r\n\r\nvar ___em_js__get_file_contents = Module[\"___em_js__get_file_contents\"] = function() {\r\n return Module[\"asm\"][\"___em_js__get_file_contents\"].apply(null, arguments)\r\n};\r\n\r\nvar ___em_js__get_file_size = Module[\"___em_js__get_file_size\"] = function() {\r\n return Module[\"asm\"][\"___em_js__get_file_size\"].apply(null, arguments)\r\n};\r\n\r\nvar ___em_js__put_file_contents = Module[\"___em_js__put_file_contents\"] = function() {\r\n return Module[\"asm\"][\"___em_js__put_file_contents\"].apply(null, arguments)\r\n};\r\n\r\nvar ___em_js__remove_file = Module[\"___em_js__remove_file\"] = function() {\r\n return Module[\"asm\"][\"___em_js__remove_file\"].apply(null, arguments)\r\n};\r\n\r\nvar ___em_js__show_alert = Module[\"___em_js__show_alert\"] = function() {\r\n return Module[\"asm\"][\"___em_js__show_alert\"].apply(null, arguments)\r\n};\r\n\r\nvar ___em_js__trace_pop = Module[\"___em_js__trace_pop\"] = function() {\r\n return Module[\"asm\"][\"___em_js__trace_pop\"].apply(null, arguments)\r\n};\r\n\r\nvar ___em_js__trace_push = Module[\"___em_js__trace_push\"] = function() {\r\n return Module[\"asm\"][\"___em_js__trace_push\"].apply(null, arguments)\r\n};\r\n\r\nvar _emscripten_replace_memory = Module[\"_emscripten_replace_memory\"] = function() {\r\n return Module[\"asm\"][\"_emscripten_replace_memory\"].apply(null, arguments)\r\n};\r\n\r\nvar _free = Module[\"_free\"] = function() {\r\n return Module[\"asm\"][\"_free\"].apply(null, arguments)\r\n};\r\n\r\nvar _llvm_bswap_i32 = Module[\"_llvm_bswap_i32\"] = function() {\r\n return Module[\"asm\"][\"_llvm_bswap_i32\"].apply(null, arguments)\r\n};\r\n\r\nvar _malloc = Module[\"_malloc\"] = function() {\r\n return Module[\"asm\"][\"_malloc\"].apply(null, arguments)\r\n};\r\n\r\nvar _memcpy = Module[\"_memcpy\"] = function() {\r\n return Module[\"asm\"][\"_memcpy\"].apply(null, arguments)\r\n};\r\n\r\nvar _memmove = Module[\"_memmove\"] = function() {\r\n return Module[\"asm\"][\"_memmove\"].apply(null, arguments)\r\n};\r\n\r\nvar _memset = Module[\"_memset\"] = function() {\r\n return Module[\"asm\"][\"_memset\"].apply(null, arguments)\r\n};\r\n\r\nvar _sbrk = Module[\"_sbrk\"] = function() {\r\n return Module[\"asm\"][\"_sbrk\"].apply(null, arguments)\r\n};\r\n\r\nvar _setThrew = Module[\"_setThrew\"] = function() {\r\n return Module[\"asm\"][\"_setThrew\"].apply(null, arguments)\r\n};\r\n\r\nvar establishStackSpace = Module[\"establishStackSpace\"] = function() {\r\n return Module[\"asm\"][\"establishStackSpace\"].apply(null, arguments)\r\n};\r\n\r\nvar globalCtors = Module[\"globalCtors\"] = function() {\r\n return Module[\"asm\"][\"globalCtors\"].apply(null, arguments)\r\n};\r\n\r\nvar stackAlloc = Module[\"stackAlloc\"] = function() {\r\n return Module[\"asm\"][\"stackAlloc\"].apply(null, arguments)\r\n};\r\n\r\nvar stackRestore = Module[\"stackRestore\"] = function() {\r\n return Module[\"asm\"][\"stackRestore\"].apply(null, arguments)\r\n};\r\n\r\nvar stackSave = Module[\"stackSave\"] = function() {\r\n return Module[\"asm\"][\"stackSave\"].apply(null, arguments)\r\n};\r\n\r\nvar dynCall_i = Module[\"dynCall_i\"] = function() {\r\n return Module[\"asm\"][\"dynCall_i\"].apply(null, arguments)\r\n};\r\n\r\nvar dynCall_ii = Module[\"dynCall_ii\"] = function() {\r\n return Module[\"asm\"][\"dynCall_ii\"].apply(null, arguments)\r\n};\r\n\r\nvar dynCall_iidiiii = Module[\"dynCall_iidiiii\"] = function() {\r\n return Module[\"asm\"][\"dynCall_iidiiii\"].apply(null, arguments)\r\n};\r\n\r\nvar dynCall_iii = Module[\"dynCall_iii\"] = function() {\r\n return Module[\"asm\"][\"dynCall_iii\"].apply(null, arguments)\r\n};\r\n\r\nvar dynCall_iiii = Module[\"dynCall_iiii\"] = function() {\r\n return Module[\"asm\"][\"dynCall_iiii\"].apply(null, arguments)\r\n};\r\n\r\nvar dynCall_iiiii = Module[\"dynCall_iiiii\"] = function() {\r\n return Module[\"asm\"][\"dynCall_iiiii\"].apply(null, arguments)\r\n};\r\n\r\nvar dynCall_iiiiii = Module[\"dynCall_iiiiii\"] = function() {\r\n return Module[\"asm\"][\"dynCall_iiiiii\"].apply(null, arguments)\r\n};\r\n\r\nvar dynCall_ji = Module[\"dynCall_ji\"] = function() {\r\n return Module[\"asm\"][\"dynCall_ji\"].apply(null, arguments)\r\n};\r\n\r\nvar dynCall_jiji = Module[\"dynCall_jiji\"] = function() {\r\n return Module[\"asm\"][\"dynCall_jiji\"].apply(null, arguments)\r\n};\r\n\r\nvar dynCall_v = Module[\"dynCall_v\"] = function() {\r\n return Module[\"asm\"][\"dynCall_v\"].apply(null, arguments)\r\n};\r\n\r\nvar dynCall_vi = Module[\"dynCall_vi\"] = function() {\r\n return Module[\"asm\"][\"dynCall_vi\"].apply(null, arguments)\r\n};\r\n\r\nvar dynCall_vii = Module[\"dynCall_vii\"] = function() {\r\n return Module[\"asm\"][\"dynCall_vii\"].apply(null, arguments)\r\n};\r\n\r\nvar dynCall_viii = Module[\"dynCall_viii\"] = function() {\r\n return Module[\"asm\"][\"dynCall_viii\"].apply(null, arguments)\r\n};\r\n\r\nvar dynCall_viiii = Module[\"dynCall_viiii\"] = function() {\r\n return Module[\"asm\"][\"dynCall_viiii\"].apply(null, arguments)\r\n};\r\n\r\nvar dynCall_viiiii = Module[\"dynCall_viiiii\"] = function() {\r\n return Module[\"asm\"][\"dynCall_viiiii\"].apply(null, arguments)\r\n};\r\n\r\nvar dynCall_viiiiii = Module[\"dynCall_viiiiii\"] = function() {\r\n return Module[\"asm\"][\"dynCall_viiiiii\"].apply(null, arguments)\r\n};\r\n\r\nvar dynCall_viiiiiii = Module[\"dynCall_viiiiiii\"] = function() {\r\n return Module[\"asm\"][\"dynCall_viiiiiii\"].apply(null, arguments)\r\n};\r\n\r\nvar dynCall_viiiiiiiii = Module[\"dynCall_viiiiiiiii\"] = function() {\r\n return Module[\"asm\"][\"dynCall_viiiiiiiii\"].apply(null, arguments)\r\n};\r\n\r\nvar dynCall_viiiiiiiiii = Module[\"dynCall_viiiiiiiiii\"] = function() {\r\n return Module[\"asm\"][\"dynCall_viiiiiiiiii\"].apply(null, arguments)\r\n};\r\n\r\nvar dynCall_viij = Module[\"dynCall_viij\"] = function() {\r\n return Module[\"asm\"][\"dynCall_viij\"].apply(null, arguments)\r\n};\r\n\r\nvar dynCall_viji = Module[\"dynCall_viji\"] = function() {\r\n return Module[\"asm\"][\"dynCall_viji\"].apply(null, arguments)\r\n};\r\n;\r\n\r\n\r\n\r\n// === Auto-generated postamble setup entry stuff ===\r\n\r\nModule['asm'] = asm;\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n// Modularize mode returns a function, which can be called to\r\n// create instances. The instances provide a then() method,\r\n// must like a Promise, that receives a callback. The callback\r\n// is called when the module is ready to run, with the module\r\n// as a parameter. (Like a Promise, it also returns the module\r\n// so you can use the output of .then(..)).\r\nModule['then'] = function(func) {\r\n // We may already be ready to run code at this time. if\r\n // so, just queue a call to the callback.\r\n if (Module['calledRun']) {\r\n func(Module);\r\n } else {\r\n // we are not ready to call then() yet. we must call it\r\n // at the same time we would call onRuntimeInitialized.\r\n var old = Module['onRuntimeInitialized'];\r\n Module['onRuntimeInitialized'] = function() {\r\n if (old) old();\r\n func(Module);\r\n };\r\n }\r\n return Module;\r\n};\r\n\r\n/**\r\n * @constructor\r\n * @extends {Error}\r\n * @this {ExitStatus}\r\n */\r\nfunction ExitStatus(status) {\r\n this.name = \"ExitStatus\";\r\n this.message = \"Program terminated with exit(\" + status + \")\";\r\n this.status = status;\r\n}\r\nExitStatus.prototype = new Error();\r\nExitStatus.prototype.constructor = ExitStatus;\r\n\r\nvar calledMain = false;\r\n\r\ndependenciesFulfilled = function runCaller() {\r\n // If run has never been called, and we should call run (INVOKE_RUN is true, and Module.noInitialRun is not false)\r\n if (!Module['calledRun']) run();\r\n if (!Module['calledRun']) dependenciesFulfilled = runCaller; // try this again later, after new deps are fulfilled\r\n};\r\n\r\n\r\n\r\n\r\n\r\n/** @type {function(Array=)} */\r\nfunction run(args) {\r\n args = args || Module['arguments'];\r\n\r\n if (runDependencies > 0) {\r\n return;\r\n }\r\n\r\n\r\n preRun();\r\n\r\n if (runDependencies > 0) return; // a preRun added a dependency, run will be called later\r\n if (Module['calledRun']) return; // run may have just been called through dependencies being fulfilled just in this very frame\r\n\r\n function doRun() {\r\n if (Module['calledRun']) return; // run may have just been called while the async setStatus time below was happening\r\n Module['calledRun'] = true;\r\n\r\n if (ABORT) return;\r\n\r\n initRuntime();\r\n\r\n preMain();\r\n\r\n if (Module['onRuntimeInitialized']) Module['onRuntimeInitialized']();\r\n\r\n\r\n postRun();\r\n }\r\n\r\n if (Module['setStatus']) {\r\n Module['setStatus']('Running...');\r\n setTimeout(function() {\r\n setTimeout(function() {\r\n Module['setStatus']('');\r\n }, 1);\r\n doRun();\r\n }, 1);\r\n } else {\r\n doRun();\r\n }\r\n}\r\nModule['run'] = run;\r\n\r\n\r\nfunction exit(status, implicit) {\r\n\r\n // if this is just main exit-ing implicitly, and the status is 0, then we\r\n // don't need to do anything here and can just leave. if the status is\r\n // non-zero, though, then we need to report it.\r\n // (we may have warned about this earlier, if a situation justifies doing so)\r\n if (implicit && Module['noExitRuntime'] && status === 0) {\r\n return;\r\n }\r\n\r\n if (Module['noExitRuntime']) {\r\n } else {\r\n\r\n ABORT = true;\r\n EXITSTATUS = status;\r\n\r\n exitRuntime();\r\n\r\n if (Module['onExit']) Module['onExit'](status);\r\n }\r\n\r\n Module['quit'](status, new ExitStatus(status));\r\n}\r\n\r\nvar abortDecorators = [];\r\n\r\nfunction abort(what) {\r\n if (Module['onAbort']) {\r\n Module['onAbort'](what);\r\n }\r\n\r\n what += '';\r\n out(what);\r\n err(what);\r\n\r\n ABORT = true;\r\n EXITSTATUS = 1;\r\n\r\n throw 'abort(' + what + '). Build with -s ASSERTIONS=1 for more info.';\r\n}\r\nModule['abort'] = abort;\r\n\r\nif (Module['preInit']) {\r\n if (typeof Module['preInit'] == 'function') Module['preInit'] = [Module['preInit']];\r\n while (Module['preInit'].length > 0) {\r\n Module['preInit'].pop()();\r\n }\r\n}\r\n\r\n\r\n Module[\"noExitRuntime\"] = true;\r\n\r\nrun();\r\n\r\n\r\n\r\n\r\n\r\n// {{MODULE_ADDITIONS}}\r\n\r\n\r\n\r\nModule['ready'] = new Promise(function (resolve, reject) {\r\n delete Module['then']\r\n Module['onAbort'] = function (what) {\r\n reject(what)\r\n }\r\n addOnPostRun(function () {\r\n resolve(Module)\r\n })\r\n});\r\n\r\n\r\n\r\n return DiabloSpawn\r\n}\r\n);\r\n})();\r\nif (typeof exports === 'object' && typeof module === 'object')\r\n module.exports = DiabloSpawn;\r\n else if (typeof define === 'function' && define['amd'])\r\n define([], function() { return DiabloSpawn; });\r\n else if (typeof exports === 'object')\r\n exports[\"DiabloSpawn\"] = DiabloSpawn;\r\n \n\n/*** EXPORTS FROM exports-loader ***/\n","module.exports = require('./lib/axios');","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nvar runtime = function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []); // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n return generator;\n }\n\n exports.wrap = wrap; // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n\n function tryCatch(fn, obj, arg) {\n try {\n return {\n type: \"normal\",\n arg: fn.call(obj, arg)\n };\n } catch (err) {\n return {\n type: \"throw\",\n arg: err\n };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\"; // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n\n var ContinueSentinel = {}; // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n\n function Generator() {}\n\n function GeneratorFunction() {}\n\n function GeneratorFunctionPrototype() {} // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n\n\n var IteratorPrototype = {};\n\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n\n if (NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunctionPrototype[toStringTagSymbol] = GeneratorFunction.displayName = \"GeneratorFunction\"; // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function (method) {\n prototype[method] = function (arg) {\n return this._invoke(method, arg);\n };\n });\n }\n\n exports.isGeneratorFunction = function (genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor ? ctor === GeneratorFunction || // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\" : false;\n };\n\n exports.mark = function (genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n\n if (!(toStringTagSymbol in genFun)) {\n genFun[toStringTagSymbol] = \"GeneratorFunction\";\n }\n }\n\n genFun.prototype = Object.create(Gp);\n return genFun;\n }; // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n\n\n exports.awrap = function (arg) {\n return {\n __await: arg\n };\n };\n\n function AsyncIterator(generator) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n\n if (value && typeof value === \"object\" && hasOwn.call(value, \"__await\")) {\n return Promise.resolve(value.__await).then(function (value) {\n invoke(\"next\", value, resolve, reject);\n }, function (err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return Promise.resolve(value).then(function (unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function (error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new Promise(function (resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise = // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n } // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n\n\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n\n exports.AsyncIterator = AsyncIterator; // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n\n exports.async = function (innerFn, outerFn, self, tryLocsList) {\n var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList));\n return exports.isGeneratorFunction(outerFn) ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function (result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n } // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n\n\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n var record = tryCatch(innerFn, self, context);\n\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done ? GenStateCompleted : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n } else if (record.type === \"throw\") {\n state = GenStateCompleted; // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n } // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n\n\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (!info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value; // Resume execution at the desired location (see delegateYield).\n\n context.next = delegate.nextLoc; // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n } // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n\n\n context.delegate = null;\n return ContinueSentinel;\n } // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n\n\n defineIteratorMethods(Gp);\n Gp[toStringTagSymbol] = \"Generator\"; // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n\n Gp[iteratorSymbol] = function () {\n return this;\n };\n\n Gp.toString = function () {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = {\n tryLoc: locs[0]\n };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{\n tryLoc: \"root\"\n }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function (object) {\n var keys = [];\n\n for (var key in object) {\n keys.push(key);\n }\n\n keys.reverse(); // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n } // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n\n\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1,\n next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n return next;\n };\n\n return next.next = next;\n }\n } // Return an iterator with no values.\n\n\n return {\n next: doneResult\n };\n }\n\n exports.values = values;\n\n function doneResult() {\n return {\n value: undefined,\n done: true\n };\n }\n\n Context.prototype = {\n constructor: Context,\n reset: function reset(skipTempReset) {\n this.prev = 0;\n this.next = 0; // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n this.method = \"next\";\n this.arg = undefined;\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" && hasOwn.call(this, name) && !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n stop: function stop() {\n this.done = true;\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n dispatchException: function dispatchException(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !!caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n abrupt: function abrupt(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n\n if (entry.tryLoc <= this.prev && hasOwn.call(entry, \"finallyLoc\") && this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry && (type === \"break\" || type === \"continue\") && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n complete: function complete(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" || record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n finish: function finish(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n \"catch\": function _catch(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n\n return thrown;\n }\n } // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n\n\n throw new Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n }; // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n\n return exports;\n}( // If this script is executing as a CommonJS module, use module.exports\n// as the regeneratorRuntime namespace. Otherwise create a new empty\n// object. Either way, the resulting object will be used to initialize\n// the regeneratorRuntime variable at the top of this file.\ntypeof module === \"object\" ? module.exports : {});\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}","'use strict';\n\nvar utils = require('./utils');\n\nvar bind = require('./helpers/bind');\n\nvar Axios = require('./core/Axios');\n\nvar mergeConfig = require('./core/mergeConfig');\n\nvar defaults = require('./defaults');\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\n\n\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context); // Copy axios.prototype to instance\n\n utils.extend(instance, Axios.prototype, context); // Copy context to instance\n\n utils.extend(instance, context);\n return instance;\n} // Create the default instance to be exported\n\n\nvar axios = createInstance(defaults); // Expose Axios class to allow class inheritance\n\naxios.Axios = Axios; // Factory for creating new instances\n\naxios.create = function create(instanceConfig) {\n return createInstance(mergeConfig(axios.defaults, instanceConfig));\n}; // Expose Cancel & CancelToken\n\n\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel'); // Expose all/spread\n\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = require('./helpers/spread');\nmodule.exports = axios; // Allow use of default import syntax in TypeScript\n\nmodule.exports.default = axios;","/*!\n * Determine if an object is a Buffer\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\nmodule.exports = function isBuffer(obj) {\n return obj != null && obj.constructor != null && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj);\n};","'use strict';\n\nvar utils = require('./../utils');\n\nvar buildURL = require('../helpers/buildURL');\n\nvar InterceptorManager = require('./InterceptorManager');\n\nvar dispatchRequest = require('./dispatchRequest');\n\nvar mergeConfig = require('./mergeConfig');\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\n\n\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\n\n\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = arguments[1] || {};\n config.url = arguments[0];\n } else {\n config = config || {};\n }\n\n config = mergeConfig(this.defaults, config);\n config.method = config.method ? config.method.toLowerCase() : 'get'; // Hook up interceptors middleware\n\n var chain = [dispatchRequest, undefined];\n var promise = Promise.resolve(config);\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n chain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n chain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n}; // Provide aliases for supported request methods\n\n\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function (url, config) {\n return this.request(utils.merge(config || {}, {\n method: method,\n url: url\n }));\n };\n});\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function (url, data, config) {\n return this.request(utils.merge(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\nmodule.exports = Axios;","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\n\n\nInterceptorManager.prototype.use = function use(fulfilled, rejected) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected\n });\n return this.handlers.length - 1;\n};\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\n\n\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\n\n\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;","'use strict';\n\nvar utils = require('./../utils');\n\nvar transformData = require('./transformData');\n\nvar isCancel = require('../cancel/isCancel');\n\nvar defaults = require('../defaults');\n\nvar isAbsoluteURL = require('./../helpers/isAbsoluteURL');\n\nvar combineURLs = require('./../helpers/combineURLs');\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\n\n\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n}\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\n\n\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config); // Support baseURL config\n\n if (config.baseURL && !isAbsoluteURL(config.url)) {\n config.url = combineURLs(config.baseURL, config.url);\n } // Ensure headers exist\n\n\n config.headers = config.headers || {}; // Transform request data\n\n config.data = transformData(config.data, config.headers, config.transformRequest); // Flatten headers\n\n config.headers = utils.merge(config.headers.common || {}, config.headers[config.method] || {}, config.headers || {});\n utils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch', 'common'], function cleanHeaderConfig(method) {\n delete config.headers[method];\n });\n var adapter = config.adapter || defaults.adapter;\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config); // Transform response data\n\n response.data = transformData(response.data, response.headers, config.transformResponse);\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config); // Transform response data\n\n if (reason && reason.response) {\n reason.response.data = transformData(reason.response.data, reason.response.headers, config.transformResponse);\n }\n }\n\n return Promise.reject(reason);\n });\n};","'use strict';\n\nvar utils = require('./../utils');\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\n\n\nmodule.exports = function transformData(data, headers, fns) {\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn(data, headers);\n });\n return data;\n};","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};","'use strict';\n\nvar createError = require('./createError');\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\n\n\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n\n if (!validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError('Request failed with status code ' + response.status, response.config, null, response.request, response));\n }\n};","'use strict';\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\n\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.toJSON = function () {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code\n };\n };\n\n return error;\n};","'use strict';\n\nvar utils = require('./../utils'); // Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\n\n\nvar ignoreDuplicateOf = ['age', 'authorization', 'content-length', 'content-type', 'etag', 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since', 'last-modified', 'location', 'max-forwards', 'proxy-authorization', 'referer', 'retry-after', 'user-agent'];\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\n\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) {\n return parsed;\n }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n return parsed;\n};","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = utils.isStandardBrowserEnv() ? // Standard browser envs have full support of the APIs needed to test\n// whether the request URL is of the same origin as current location.\nfunction standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href); // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: urlParsingNode.pathname.charAt(0) === '/' ? urlParsingNode.pathname : '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n\n return function isURLSameOrigin(requestURL) {\n var parsed = utils.isString(requestURL) ? resolveURL(requestURL) : requestURL;\n return parsed.protocol === originURL.protocol && parsed.host === originURL.host;\n };\n}() : // Non standard browser envs (web workers, react-native) lack needed support.\nfunction nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n}();","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = utils.isStandardBrowserEnv() ? // Standard browser envs support document.cookie\nfunction standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return match ? decodeURIComponent(match[3]) : null;\n },\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n}() : // Non standard browser env (web workers, react-native) lack needed support.\nfunction nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() {\n return null;\n },\n remove: function remove() {}\n };\n}();","'use strict';\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\n\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};","'use strict';\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\n\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '') : baseURL;\n};","'use strict';\n\nvar Cancel = require('./Cancel');\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\n\n\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n var token = this;\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\n\n\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n\n\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;","'use strict';\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\n\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};","import arrayWithHoles from \"./arrayWithHoles\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit\";\nimport nonIterableRest from \"./nonIterableRest\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || nonIterableRest();\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n}","import arrayWithoutHoles from \"./arrayWithoutHoles\";\nimport iterableToArray from \"./iterableToArray\";\nimport nonIterableSpread from \"./nonIterableSpread\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || nonIterableSpread();\n}","export default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n }\n}","export default function _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}","async function do_websocket_open(url, handler) {\r\n const socket = new WebSocket(url);\r\n socket.binaryType = \"arraybuffer\";\r\n let versionCbk = null;\r\n socket.addEventListener(\"message\", ({data}) => {\r\n if (versionCbk) {\r\n versionCbk(data);\r\n }\r\n handler(data);\r\n });\r\n await new Promise((resolve, reject) => {\r\n const onError = err => reject(1);\r\n socket.addEventListener(\"error\", onError);\r\n socket.addEventListener(\"open\", () => {\r\n socket.removeEventListener(\"error\", onError);\r\n resolve();\r\n });\r\n });\r\n await new Promise((resolve, reject) => {\r\n const to = setTimeout(() => {\r\n versionCbk = null;\r\n reject(1);\r\n }, 5000);\r\n versionCbk = data => {\r\n clearTimeout(to);\r\n const u8 = new Uint8Array(data);\r\n if (u8[0] === 0x32) {\r\n versionCbk = null;\r\n const version = u8[1] | (u8[2] << 8) | (u8[3] << 16) | (u8[4] << 24);\r\n if (version === 1) {\r\n resolve();\r\n } else {\r\n reject(2);\r\n }\r\n }\r\n };\r\n });\r\n\r\n const vers = process.env.VERSION.match(/(\\d+)\\.(\\d+)\\.(\\d+)/);\r\n const clientInfo = new Uint8Array(5);\r\n clientInfo[0] = 0x31;\r\n clientInfo[1] = parseInt(vers[3]);\r\n clientInfo[2] = parseInt(vers[2]);\r\n clientInfo[3] = parseInt(vers[1]);\r\n clientInfo[4] = 0;\r\n socket.send(clientInfo);\r\n return socket;\r\n}\r\n\r\nexport default function websocket_open(url, handler, finisher) {\r\n let ws = null, batch = [], intr = null;\r\n const proxy = {\r\n get readyState() {\r\n return ws ? ws.readyState : 0;\r\n },\r\n send(msg) {\r\n batch.push(msg.slice());\r\n },\r\n close() {\r\n if (intr) {\r\n clearInterval(intr);\r\n intr = null;\r\n }\r\n if (ws) {\r\n ws.close();\r\n } else {\r\n batch = null;\r\n }\r\n },\r\n };\r\n do_websocket_open(url, handler).then(sock => {\r\n ws = sock;\r\n if (batch) {\r\n intr = setInterval(() => {\r\n if (!batch.length) {\r\n return;\r\n }\r\n const size = batch.reduce((sum, msg) => sum + msg.byteLength, 3);\r\n const buffer = new Uint8Array(size);\r\n buffer[0] = 0;\r\n buffer[1] = (batch.length & 0xFF);\r\n buffer[2] = batch.length >> 8;\r\n let pos = 3;\r\n for (let msg of batch) {\r\n buffer.set(msg, pos);\r\n pos += msg.byteLength;\r\n }\r\n ws.send(buffer);\r\n batch.length = 0;\r\n }, 100);\r\n } else {\r\n ws.close();\r\n }\r\n finisher(0);\r\n }, err => {\r\n finisher(err);\r\n });\r\n return proxy;\r\n}\r\n","import DiabloBinary from './Diablo.wasm';\r\nimport DiabloModule from './Diablo.jscc';\r\nimport SpawnBinary from './DiabloSpawn.wasm';\r\nimport SpawnModule from './DiabloSpawn.jscc';\r\nimport axios from 'axios';\r\n\r\nimport websocket_open from './websocket';\r\n\r\nconst DiabloSize = 1466809;\r\nconst SpawnSize = 1337416;\r\n\r\n/* eslint-disable-next-line no-restricted-globals */\r\nconst worker = self;\r\n\r\nlet canvas = null, context = null;\r\nlet imageData = null;\r\nlet files = null;\r\nlet renderBatch = null;\r\nlet drawBelt = null;\r\nlet is_spawn = false;\r\nlet websocket = null;\r\n\r\nfunction onError(err, action=\"error\") {\r\n if (err instanceof Error) {\r\n worker.postMessage({action, error: err.toString(), stack: err.stack});\r\n } else {\r\n worker.postMessage({action, error: err.toString()});\r\n }\r\n}\r\n\r\nconst ChunkSize = 1 << 20;\r\nclass RemoteFile {\r\n constructor(url) {\r\n const request = new XMLHttpRequest();\r\n request.open('HEAD', url, false);\r\n request.send();\r\n if (request.status < 200 || request.status >= 300) {\r\n throw Error('Failed to load remote file');\r\n }\r\n this.byteLength = parseInt(request.getResponseHeader('Content-Length'));\r\n\r\n this.url = url;\r\n\r\n this.buffer = new Uint8Array(this.byteLength);\r\n this.chunks = new Uint8Array(((this.byteLength + ChunkSize - 1) >> 20) | 0);\r\n }\r\n\r\n subarray(start, end) {\r\n let chunk0 = (start / ChunkSize) | 0;\r\n let chunk1 = ((end + ChunkSize - 1) / ChunkSize) | 0;\r\n let missing0 = chunk1, missing1 = chunk0;\r\n for (let i = chunk0; i < chunk1; ++i) {\r\n if (!this.chunks[i]) {\r\n missing0 = Math.min(missing0, i);\r\n missing1 = Math.max(missing1, i);\r\n }\r\n }\r\n if (missing0 <= missing1) {\r\n const request = new XMLHttpRequest();\r\n request.open('GET', this.url, false);\r\n request.setRequestHeader('Range', `bytes=${missing0 * ChunkSize}-${Math.min(missing1 * ChunkSize + ChunkSize - 1, this.byteLength - 1)}`);\r\n request.responseType = 'arraybuffer';\r\n request.send();\r\n if (request.status < 200 || request.status >= 300) {\r\n throw Error('Failed to load remote file');\r\n } else {\r\n const header = request.getResponseHeader('Content-Range');\r\n let m, start = 0;\r\n if (header && (m = header.match(/bytes (\\d+)-(\\d+)\\/(\\d+)/))) {\r\n start = parseInt(m[1]);\r\n }\r\n this.buffer.set(new Uint8Array(request.response), start);\r\n chunk0 = ((start + ChunkSize - 1) / ChunkSize) | 0;\r\n chunk1 = ((start + request.response.byteLength + ChunkSize - 1) / ChunkSize) | 0;\r\n for (let i = chunk0; i < chunk1; ++i) {\r\n this.chunks[i] = 1;\r\n }\r\n }\r\n }\r\n return this.buffer.subarray(start, end);\r\n }\r\n}\r\n\r\nconst DApi = {\r\n exit_error(error) {\r\n throw Error(error);\r\n },\r\n\r\n exit_game() {\r\n worker.postMessage({action: \"exit\"});\r\n },\r\n current_save_id(id) {\r\n worker.postMessage({action: \"current_save\", name: id >= 0 ? (is_spawn ? `spawn${id}.sv` : `single_${id}.sv`) : null});\r\n },\r\n\r\n get_file_size(path) {\r\n const data = files.get(path.toLowerCase());\r\n return data ? data.byteLength : 0;\r\n },\r\n get_file_contents(path, array, offset) {\r\n const data = files.get(path.toLowerCase());\r\n if (data) {\r\n array.set(data.subarray(offset, offset + array.byteLength));\r\n }\r\n },\r\n put_file_contents(path, array) {\r\n path = path.toLowerCase();\r\n // if (!path.match(/^(spawn\\d+\\.sv|single_\\d+\\.sv|config\\.ini)$/i)) {\r\n // alert(`Bad file name: ${path}`);\r\n // }\r\n files.set(path, array);\r\n worker.postMessage({action: \"fs\", func: \"update\", params: [path, array]});\r\n },\r\n remove_file(path) {\r\n path = path.toLowerCase();\r\n files.delete(path);\r\n worker.postMessage({action: \"fs\", func: \"delete\", params: [path]});\r\n },\r\n\r\n set_cursor(x, y) {\r\n worker.postMessage({action: \"cursor\", x, y});\r\n },\r\n open_keyboard(...args) {\r\n worker.postMessage({action: \"keyboard\", rect: [...args]});\r\n },\r\n close_keyboard() {\r\n worker.postMessage({action: \"keyboard\", rect: null});\r\n },\r\n\r\n use_websocket(flag) {\r\n if (flag) {\r\n if (!websocket || websocket.readyState !== 1) {\r\n const sock = websocket = websocket_open('wss://diablo.rivsoft.net/websocket', data => {\r\n if (websocket === sock) {\r\n try_api(() => {\r\n const ptr = wasm._DApi_AllocPacket(data.byteLength);\r\n wasm.HEAPU8.set(new Uint8Array(data), ptr);\r\n });\r\n }\r\n }, code => {\r\n if (typeof code !== \"number\") {\r\n throw code;\r\n } else {\r\n call_api(\"SNet_WebsocketStatus\", code);\r\n }\r\n });\r\n } else {\r\n call_api(\"SNet_WebsocketStatus\", 0);\r\n }\r\n } else {\r\n if (websocket) {\r\n websocket.close();\r\n }\r\n websocket = null;\r\n }\r\n },\r\n websocket_closed() {\r\n return websocket ? websocket.readyState !== 1 : false;\r\n },\r\n};\r\n/*\r\nlet frameTime = 0, lastTime = 0;\r\nfunction getFPS() {\r\n const time = performance.now();\r\n if (!lastTime) {\r\n lastTime = time;\r\n }\r\n frameTime = 0.9 * frameTime + 0.1 * (time - lastTime);\r\n lastTime = time;\r\n return frameTime ? 1000.0 / frameTime : 0.0;\r\n}\r\n*/\r\nconst DApi_renderLegacy = {\r\n draw_begin() {\r\n renderBatch = {\r\n images: [],\r\n text: [],\r\n clip: null,\r\n belt: drawBelt,\r\n };\r\n drawBelt = null;\r\n },\r\n draw_blit(x, y, w, h, data) {\r\n renderBatch.images.push({x, y, w, h, data: data.slice()});\r\n },\r\n draw_clip_text(x0, y0, x1, y1) {\r\n renderBatch.clip = {x0, y0, x1, y1};\r\n },\r\n draw_text(x, y, text, color) {\r\n renderBatch.text.push({x, y, text, color});\r\n },\r\n draw_end() {\r\n //DApi.draw_text(10, 10, `FPS: ${getFPS().toFixed(1)} (Transfer)`, 0xFFCC00);\r\n const transfer = renderBatch.images.map(({data}) => data.buffer);\r\n if (renderBatch.belt) {\r\n transfer.push(renderBatch.belt.buffer);\r\n }\r\n worker.postMessage({action: \"render\", batch: renderBatch}, transfer);\r\n renderBatch = null;\r\n },\r\n draw_belt(items) {\r\n drawBelt = items.slice();\r\n },\r\n};\r\n\r\nconst DApi_renderOffscreen = {\r\n draw_begin() {\r\n context.save();\r\n context.font = 'bold 13px Times New Roman';\r\n },\r\n draw_blit(x, y, w, h, data) {\r\n imageData.data.set(data);\r\n context.putImageData(imageData, x, y);\r\n },\r\n draw_clip_text(x0, y0, x1, y1) {\r\n context.beginPath();\r\n context.rect(x0, y0, x1 - x0, y1 - y0);\r\n context.clip();\r\n },\r\n draw_text(x, y, text, color) {\r\n const r = ((color >> 16) & 0xFF);\r\n const g = ((color >> 8) & 0xFF);\r\n const b = (color & 0xFF);\r\n context.fillStyle = `rgb(${r}, ${g}, ${b})`;\r\n context.fillText(text, x, y + 22);\r\n },\r\n draw_end() {\r\n //DApi.draw_text(10, 10, `FPS: ${getFPS().toFixed(1)} (Offscreen)`, 0xFFCC00);\r\n context.restore();\r\n const bitmap = canvas.transferToImageBitmap();\r\n const transfer = [bitmap];\r\n if (drawBelt) {\r\n transfer.push(drawBelt.buffer);\r\n }\r\n worker.postMessage({action: \"render\", batch: {bitmap, belt: drawBelt}}, transfer);\r\n drawBelt = null;\r\n },\r\n draw_belt(items) {\r\n drawBelt = items.slice();\r\n },\r\n};\r\n\r\nlet audioBatch = null, audioTransfer = null;\r\nlet maxSoundId = 0, maxBatchId = 0;\r\n[\"create_sound_raw\", \"create_sound\", \"duplicate_sound\"].forEach(func => {\r\n DApi[func] = function(...params) {\r\n if (audioBatch) {\r\n maxBatchId = params[0] + 1;\r\n audioBatch.push({func, params});\r\n if (func !== \"duplicate_sound\") {\r\n audioTransfer.push(params[1].buffer);\r\n }\r\n } else {\r\n maxSoundId = params[0] + 1;\r\n const transfer = [];\r\n if (func !== \"duplicate_sound\") {\r\n transfer.push(params[1].buffer);\r\n }\r\n worker.postMessage({action: \"audio\", func, params}, transfer);\r\n }\r\n };\r\n});\r\n[\"play_sound\", \"set_volume\", \"stop_sound\", \"delete_sound\"].forEach(func => {\r\n DApi[func] = function(...params) {\r\n if (audioBatch && params[0] >= maxSoundId) {\r\n audioBatch.push({func, params});\r\n } else {\r\n worker.postMessage({action: \"audio\", func, params});\r\n }\r\n }\r\n});\r\n\r\nlet packetBatch = null;\r\nDApi.websocket_send = function(data) {\r\n if (websocket) {\r\n websocket.send(data);\r\n } else if (packetBatch) {\r\n packetBatch.push(data.slice().buffer);\r\n } else {\r\n worker.postMessage({action: \"packet\", buffer: data});\r\n }\r\n};\r\n\r\nworker.DApi = DApi;\r\n\r\nlet wasm = null;\r\n\r\nfunction try_api(func) {\r\n try {\r\n func();\r\n } catch (e) {\r\n onError(e);\r\n }\r\n}\r\n\r\nfunction call_api(func, ...params) {\r\n try_api(() => {\r\n const nested = (audioBatch != null);\r\n if (!nested) {\r\n audioBatch = [];\r\n audioTransfer = [];\r\n packetBatch = [];\r\n }\r\n if (func !== \"text\") {\r\n wasm[\"_\" + func](...params);\r\n } else {\r\n const ptr = wasm._DApi_SyncTextPtr();\r\n const text = params[0];\r\n const length = Math.min(text.length, 255);\r\n const heap = wasm.HEAPU8;\r\n for (let i = 0; i < length; ++i) {\r\n heap[ptr + i] = text.charCodeAt(i);\r\n }\r\n heap[ptr + length] = 0;\r\n wasm._DApi_SyncText(params[1]);\r\n }\r\n if (!nested) {\r\n if (audioBatch.length) {\r\n maxSoundId = maxBatchId;\r\n worker.postMessage({action: \"audioBatch\", batch: audioBatch}, audioTransfer);\r\n }\r\n if (packetBatch.length) {\r\n worker.postMessage({action: \"packetBatch\", batch: packetBatch}, packetBatch);\r\n }\r\n audioBatch = null;\r\n audioTransfer = null;\r\n packetBatch = null;\r\n }\r\n });\r\n}\r\n\r\nfunction progress(text, loaded, total) {\r\n worker.postMessage({action: \"progress\", text, loaded, total});\r\n}\r\n\r\nconst readFile = (file, progress) => new Promise((resolve, reject) => {\r\n const reader = new FileReader();\r\n reader.onload = () => {\r\n if (progress) {\r\n progress({loaded: file.size});\r\n }\r\n resolve(reader.result);\r\n };\r\n reader.onerror = () => reject(reader.error);\r\n reader.onabort = () => reject();\r\n if (progress) {\r\n reader.addEventListener(\"progress\", progress);\r\n }\r\n reader.readAsArrayBuffer(file);\r\n});\r\n\r\nasync function initWasm(spawn, progress) {\r\n const binary = await axios.request({\r\n url: spawn ? SpawnBinary : DiabloBinary,\r\n responseType: 'arraybuffer',\r\n onDownloadProgress: progress,\r\n });\r\n const result = await (spawn ? SpawnModule : DiabloModule)({wasmBinary: binary.data}).ready;\r\n progress({loaded: 2000000});\r\n return result;\r\n}\r\n\r\nasync function init_game(mpq, spawn, offscreen) {\r\n is_spawn = spawn;\r\n if (offscreen) {\r\n canvas = new OffscreenCanvas(640, 480);\r\n context = canvas.getContext(\"2d\");\r\n imageData = context.createImageData(640, 480);\r\n Object.assign(DApi, DApi_renderOffscreen);\r\n } else {\r\n Object.assign(DApi, DApi_renderLegacy);\r\n }\r\n\r\n if (!mpq) {\r\n const name = (spawn ? 'spawn.mpq' : 'diabdat.mpq');\r\n if (!files.has(name)) {\r\n // This should never happen, but we do support remote loading\r\n files.set(name, new RemoteFile(`${process.env.PUBLIC_URL}/${name}`));\r\n }\r\n }\r\n\r\n progress(\"Loading...\");\r\n let mpqLoaded = 0, mpqTotal = (mpq ? mpq.size : 0), wasmLoaded = 0, wasmTotal = (spawn ? SpawnSize : DiabloSize);\r\n const wasmWeight = 5;\r\n function updateProgress() {\r\n progress(\"Loading...\", mpqLoaded + wasmLoaded * wasmWeight, mpqTotal + wasmTotal * wasmWeight);\r\n }\r\n const loadWasm = initWasm(spawn, e => {\r\n wasmLoaded = Math.min(e.loaded, wasmTotal);\r\n updateProgress();\r\n });\r\n let loadMpq = mpq ? readFile(mpq, e => {\r\n mpqLoaded = e.loaded;\r\n updateProgress();\r\n }) : Promise.resolve(null);\r\n [wasm, mpq] = await Promise.all([loadWasm, loadMpq]);\r\n\r\n if (mpq) {\r\n files.set(spawn ? 'spawn.mpq' : 'diabdat.mpq', new Uint8Array(mpq));\r\n }\r\n\r\n progress(\"Initializing...\");\r\n\r\n const vers = process.env.VERSION.match(/(\\d+)\\.(\\d+)\\.(\\d+)/);\r\n\r\n wasm._SNet_InitWebsocket();\r\n wasm._DApi_Init(Math.floor(performance.now()), offscreen ? 1 : 0, parseInt(vers[1]), parseInt(vers[2]), parseInt(vers[3]));\r\n\r\n setInterval(() => {\r\n call_api(\"DApi_Render\", Math.floor(performance.now())); \r\n }, 50);\r\n}\r\n\r\nworker.addEventListener(\"message\", ({data}) => {\r\n switch (data.action) {\r\n case \"init\":\r\n files = data.files;\r\n init_game(data.mpq, data.spawn, data.offscreen).then(\r\n () => worker.postMessage({action: \"loaded\"}),\r\n e => onError(e, \"failed\"));\r\n break;\r\n case \"event\":\r\n call_api(data.func, ...data.params);\r\n break;\r\n case \"packet\":\r\n try_api(() => {\r\n const ptr = wasm._DApi_AllocPacket(data.buffer.byteLength);\r\n wasm.HEAPU8.set(new Uint8Array(data.buffer), ptr);\r\n });\r\n break;\r\n case \"packetBatch\":\r\n try_api(() => {\r\n for (let packet of data.batch) {\r\n const ptr = wasm._DApi_AllocPacket(packet.byteLength);\r\n wasm.HEAPU8.set(new Uint8Array(packet), ptr);\r\n }\r\n });\r\n break;\r\n default:\r\n }\r\n});\r\n","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}"],"sourceRoot":""} \ No newline at end of file diff --git a/asset-manifest.json b/asset-manifest.json index 306beb7..9ff1f2a 100644 --- a/asset-manifest.json +++ b/asset-manifest.json @@ -1,22 +1,22 @@ { "files": { - "static/js/0.1560967a.chunk.js": "/diabloweb/static/js/0.1560967a.chunk.js", - "static/js/0.1560967a.chunk.js.map": "/diabloweb/static/js/0.1560967a.chunk.js.map", + "static/js/0.c27538cc.chunk.js": "/diabloweb/static/js/0.c27538cc.chunk.js", + "static/js/0.c27538cc.chunk.js.map": "/diabloweb/static/js/0.c27538cc.chunk.js.map", "main.css": "/diabloweb/static/css/main.23365a12.chunk.css", - "main.js": "/diabloweb/static/js/main.bdb398a3.chunk.js", - "main.js.map": "/diabloweb/static/js/main.bdb398a3.chunk.js.map", + "main.js": "/diabloweb/static/js/main.7119713d.chunk.js", + "main.js.map": "/diabloweb/static/js/main.7119713d.chunk.js.map", "runtime~main.js": "/diabloweb/static/js/runtime~main.bf17ce54.js", "runtime~main.js.map": "/diabloweb/static/js/runtime~main.bf17ce54.js.map", "runtime~storage.js": "/diabloweb/static/js/runtime~storage.83a78cef.js", "runtime~storage.js.map": "/diabloweb/static/js/runtime~storage.83a78cef.js.map", - "storage.js": "/diabloweb/static/js/storage.326821c9.chunk.js", - "storage.js.map": "/diabloweb/static/js/storage.326821c9.chunk.js.map", - "static/js/5.658f752c.chunk.js": "/diabloweb/static/js/5.658f752c.chunk.js", - "static/js/5.658f752c.chunk.js.map": "/diabloweb/static/js/5.658f752c.chunk.js.map", - "3d851ae1dfd110e041f9.worker.js": "/diabloweb/3d851ae1dfd110e041f9.worker.js", - "3d851ae1dfd110e041f9.worker.js.map": "/diabloweb/3d851ae1dfd110e041f9.worker.js.map", + "storage.js": "/diabloweb/static/js/storage.92784c1c.chunk.js", + "storage.js.map": "/diabloweb/static/js/storage.92784c1c.chunk.js.map", + "static/js/5.b818fed9.chunk.js": "/diabloweb/static/js/5.b818fed9.chunk.js", + "static/js/5.b818fed9.chunk.js.map": "/diabloweb/static/js/5.b818fed9.chunk.js.map", + "8db59cc25367e55de4a6.worker.js": "/diabloweb/8db59cc25367e55de4a6.worker.js", + "8db59cc25367e55de4a6.worker.js.map": "/diabloweb/8db59cc25367e55de4a6.worker.js.map", "index.html": "/diabloweb/index.html", - "precache-manifest.cda7f7e903fd028eb131363c62060fa6.js": "/diabloweb/precache-manifest.cda7f7e903fd028eb131363c62060fa6.js", + "precache-manifest.bb9ab754d18f896bb9c476ad8c51daa1.js": "/diabloweb/precache-manifest.bb9ab754d18f896bb9c476ad8c51daa1.js", "service-worker.js": "/diabloweb/service-worker.js", "static/css/main.23365a12.chunk.css.map": "/diabloweb/static/css/main.23365a12.chunk.css.map", "static/media/Diablo.wasm": "/diabloweb/static/media/Diablo.570bd59a.wasm", diff --git a/index.html b/index.html index 01f0c86..10f1476 100644 --- a/index.html +++ b/index.html @@ -1 +1 @@ -DIABLO
\ No newline at end of file +DIABLO
\ No newline at end of file diff --git a/precache-manifest.cda7f7e903fd028eb131363c62060fa6.js b/precache-manifest.bb9ab754d18f896bb9c476ad8c51daa1.js similarity index 62% rename from precache-manifest.cda7f7e903fd028eb131363c62060fa6.js rename to precache-manifest.bb9ab754d18f896bb9c476ad8c51daa1.js index 1f82055..813818e 100644 --- a/precache-manifest.cda7f7e903fd028eb131363c62060fa6.js +++ b/precache-manifest.bb9ab754d18f896bb9c476ad8c51daa1.js @@ -1,27 +1,27 @@ self.__precacheManifest = (self.__precacheManifest || []).concat([ { - "revision": "c783644fa63bbbb584f642478373e004", - "url": "/diabloweb/3d851ae1dfd110e041f9.worker.js" + "revision": "e9ee8956311ad33c9681fb510e3fae5f", + "url": "/diabloweb/8db59cc25367e55de4a6.worker.js" }, { - "revision": "8cdb233fe72e3419cce29268de30b12f", + "revision": "6f7aa6432f3bceb8a8bff7f7f0b6c674", "url": "/diabloweb/index.html" }, { - "revision": "f7efb31f4db8b8649ad5", + "revision": "98a920f95f9b821ebcb3", "url": "/diabloweb/static/css/main.23365a12.chunk.css" }, { - "revision": "b854ae255ac6a8d35e79", - "url": "/diabloweb/static/js/0.1560967a.chunk.js" + "revision": "48c0e26cf04479a53c4e", + "url": "/diabloweb/static/js/0.c27538cc.chunk.js" }, { - "revision": "ff142f33a9837ea7c521", - "url": "/diabloweb/static/js/5.658f752c.chunk.js" + "revision": "c132768a8725d00237c0", + "url": "/diabloweb/static/js/5.b818fed9.chunk.js" }, { - "revision": "f7efb31f4db8b8649ad5", - "url": "/diabloweb/static/js/main.bdb398a3.chunk.js" + "revision": "98a920f95f9b821ebcb3", + "url": "/diabloweb/static/js/main.7119713d.chunk.js" }, { "revision": "077fe45e700d7971de0b", @@ -32,8 +32,8 @@ self.__precacheManifest = (self.__precacheManifest || []).concat([ "url": "/diabloweb/static/js/runtime~storage.83a78cef.js" }, { - "revision": "c9074421eabb92c9e796", - "url": "/diabloweb/static/js/storage.326821c9.chunk.js" + "revision": "a6903fb2efe3495b5eb7", + "url": "/diabloweb/static/js/storage.92784c1c.chunk.js" }, { "revision": "570bd59ab481c6418fcd26ed12f9da86", @@ -56,7 +56,7 @@ self.__precacheManifest = (self.__precacheManifest || []).concat([ "url": "/diabloweb/static/media/shift.b40e4a63.svg" }, { - "revision": "1fea3d05d688e6e36209c921419119a6", + "revision": "e0cf6c1150c3238356b8723781909946", "url": "/diabloweb/storage.html" } ]); \ No newline at end of file diff --git a/service-worker.js b/service-worker.js index 4891b08..b191e72 100644 --- a/service-worker.js +++ b/service-worker.js @@ -14,7 +14,7 @@ importScripts("https://storage.googleapis.com/workbox-cdn/releases/4.3.1/workbox-sw.js"); importScripts( - "/diabloweb/precache-manifest.cda7f7e903fd028eb131363c62060fa6.js" + "/diabloweb/precache-manifest.bb9ab754d18f896bb9c476ad8c51daa1.js" ); self.addEventListener('message', (event) => { diff --git a/static/js/0.1560967a.chunk.js b/static/js/0.c27538cc.chunk.js similarity index 98% rename from static/js/0.1560967a.chunk.js rename to static/js/0.c27538cc.chunk.js index 393d7f1..f87e403 100644 --- a/static/js/0.1560967a.chunk.js +++ b/static/js/0.c27538cc.chunk.js @@ -1,2 +1,2 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[0],{1:function(t,e,r){t.exports=r(42)},13:function(t,e,r){t.exports=a;var n=r(43).EventEmitter,o=r(44),i=r(45),s="undefined"===typeof window?self:window,u=s.indexedDB||s.mozIndexedDB||s.webkitIndexedDB||s.msIndexedDB;function a(t,e,r){var o=this;if("string"!==typeof t)throw new Error("A name must be supplied of type string");if(!u)throw new Error("IndexedDB not supported");if("function"===typeof e)return new a(t,null,e);if(!(o instanceof a))return new a(t,e,r);e||(e={}),n.call(o),o._db=null,o._closed=!1,o._channel=null,o._waiters=[];var i=e.channel||s.BroadcastChannel;i&&(o._channel=new i(t),o._channel.onmessage=function(t){"add"===t.data.method?o.emit("add",t.data):"set"===t.data.method?o.emit("set",t.data):"remove"===t.data.method&&o.emit("remove",t.data)});var c=u.open(t);function l(t){f(t),o._close(t.target.error)}function h(){o._close()}c.onerror=function(t){f(t),o._close(t.target.error),r&&r(t.target.error)},c.onsuccess=function(t){if(o._closed)t.target.result.close();else{for(var e in o._db=t.target.result,o._db.onclose=h,o._db.onerror=l,o._waiters)o._waiters[e]._init(null);o._waiters=null,r&&r(null),o.emit("open")}},c.onupgradeneeded=function(t){t.target.result.createObjectStore("kv",{autoIncrement:!0})},o.on("newListener",function(t){if("add"!==t&&"set"!==t&&"remove"!==t)return;if(!o._channel)return o.emit("error",new Error("No BroadcastChannel support"))})}function c(t,e,r){if("function"===typeof e)return new c(t,null,e);if(this._kvStore=t,this._mode=e||"readwrite",this._objectStore=null,this._waiters=null,this.finished=!1,this.onfinish=i(r),this.done=this.onfinish.promise,"readonly"!==this._mode&&"readwrite"!==this._mode)throw new Error('mode must be either "readonly" or "readwrite"')}function f(t,e){if(null==e)return f(null,t);e.preventDefault(),e.stopPropagation(),t&&t(e.target.error)}a.INDEXEDDB_SUPPORT=null!=u,a.BROADCAST_SUPPORT=null!=s.BroadcastChannel,o(a,n),a.prototype.get=function(t,e){return this.transaction("readonly").get(t,e)},a.prototype.getMultiple=function(t,e){return this.transaction("readonly").getMultiple(t,e)},a.prototype.set=function(t,e,r){r=i(r);var n=null;return this.transaction("readwrite",function(t){r(n=n||t)}).set(t,e,function(t){n=t}),r.promise},a.prototype.json=function(t,e){return this.transaction("readonly").json(t,e)},a.prototype.keys=function(t,e){return this.transaction("readonly").keys(t,e)},a.prototype.values=function(t,e){return this.transaction("readonly").values(t,e)},a.prototype.remove=function(t,e){e=i(e);var r=null;return this.transaction("readwrite",function(t){e(r=r||t)}).remove(t,function(t){r=t}),e.promise},a.prototype.clear=function(t){t=i(t);var e=null;return this.transaction("readwrite",function(r){t(e=e||r)}).clear(function(t){e=t}),t.promise},a.prototype.count=function(t,e){return this.transaction("readonly").count(t,e)},a.prototype.add=function(t,e,r){r=i(r);var n=null;return this.transaction("readwrite",function(t){r(n=n||t)}).add(t,e,function(t){n=t}),r.promise},a.prototype.iterator=function(t,e){return this.transaction("readonly").iterator(t,e)},a.prototype.transaction=function(t,e){if(this._closed)throw new Error("Database is closed");var r=new c(this,t,e);return this._db?r._init(null):this._waiters.push(r),r},a.prototype.close=function(){this._close()},a.prototype._close=function(t){if(!this._closed){for(var e in this._closed=!0,this._db&&this._db.close(),this._channel&&this._channel.close(),this._db=null,this._channel=null,t&&this.emit("error",t),this.emit("close"),this._waiters)this._waiters[e]._init(t||new Error("Database is closed"));this._waiters=null,this.removeAllListeners()}},c.prototype._init=function(t){var e=this;if(!e.finished){if(t)return e._close(t);var r=e._kvStore._db.transaction("kv",e._mode);for(var n in r.oncomplete=function(){e._close(null)},r.onerror=o,r.onabort=o,e._objectStore=r.objectStore("kv"),e._waiters)e._waiters[n](null,e._objectStore);e._waiters=null}function o(t){f(t),e._close(t.target.error)}},c.prototype._getObjectStore=function(t){if(this.finished)throw new Error("Transaction is finished");if(this._objectStore)return t(null,this._objectStore);this._waiters=this._waiters||[],this._waiters.push(t)},c.prototype.set=function(t,e,r){var n=this;if(null==t||null==e)throw new Error("A key and value must be given");return r=i(r),n._getObjectStore(function(o,i){if(o)return r(o);try{var s=i.put(e,t)}catch(u){return r(u)}s.onerror=f.bind(this,r),s.onsuccess=function(){n._kvStore._channel&&n._kvStore._channel.postMessage({method:"set",key:t,value:e}),r(null)}}),r.promise},c.prototype.add=function(t,e,r){var n=this;if(null==e&&null!=t)return n.add(void 0,t,r);if("function"===typeof e||null==e&&null==r)return n.add(void 0,t,e);if(null==e)throw new Error("A value must be provided as an argument");return r=i(r),n._getObjectStore(function(o,i){if(o)return r(o);try{var s=null==t?i.add(e):i.add(e,t)}catch(u){return r(u)}s.onerror=f.bind(this,r),s.onsuccess=function(){n._kvStore._channel&&n._kvStore._channel.postMessage({method:"add",key:t,value:e}),r(null)}}),r.promise},c.prototype.get=function(t,e){if(null==t)throw new Error("A key must be given as an argument");return e=i(e),this._getObjectStore(function(r,n){if(r)return e(r);try{var o=n.get(t)}catch(i){return e(i)}o.onerror=f.bind(this,e),o.onsuccess=function(t){e(null,t.target.result)}}),e.promise},c.prototype.getMultiple=function(t,e){if(null==t)throw new Error("An array of keys must be given as an argument");return e=i(e),0===t.length?(e(null,[]),e.promise):(this._getObjectStore(function(r,n){if(r)return e(r);var o=t.slice().sort(),i=0,s={},u=function(){return t.map(function(t){return s[t]})},a=n.openCursor();a.onerror=f.bind(this,e),a.onsuccess=function(t){var r=t.target.result;if(r){for(var n=r.key;n>o[i];)if(++i===o.length)return void e(null,u());n===o[i]?(s[n]=r.value,r.continue()):r.continue(o[i])}else e(null,u())}}),e.promise)},c.prototype.json=function(t,e){if("function"===typeof t)return this.json(null,t);e=i(e);var r={};return this.iterator(t,function(t,n){if(t)return e(t);n?(r[n.key]=n.value,n.continue()):e(null,r)}),e.promise},c.prototype.keys=function(t,e){if("function"===typeof t)return this.keys(null,t);e=i(e);var r=[];return this.iterator(t,function(t,n){if(t)return e(t);n?(r.push(n.key),n.continue()):e(null,r)}),e.promise},c.prototype.values=function(t,e){if("function"===typeof t)return this.values(null,t);e=i(e);var r=[];return this.iterator(t,function(t,n){if(t)return e(t);n?(r.push(n.value),n.continue()):e(null,r)}),e.promise},c.prototype.remove=function(t,e){var r=this;if(null==t)throw new Error("A key must be given as an argument");return e=i(e),r._getObjectStore(function(n,o){if(n)return e(n);try{var i=o.delete(t)}catch(s){return e(s)}i.onerror=f.bind(this,e),i.onsuccess=function(){r._kvStore._channel&&r._kvStore._channel.postMessage({method:"remove",key:t}),e(null)}}),e.promise},c.prototype.clear=function(t){return t=i(t),this._getObjectStore(function(e,r){if(e)return t(e);try{var n=r.clear()}catch(o){return t(o)}n.onerror=f.bind(this,t),n.onsuccess=function(){t(null)}}),t.promise},c.prototype.count=function(t,e){return"function"===typeof t?this.count(null,t):(e=i(e),this._getObjectStore(function(r,n){if(r)return e(r);try{var o=null==t?n.count():n.count(t)}catch(i){return e(i)}o.onerror=f.bind(this,e),o.onsuccess=function(t){e(null,t.target.result)}}),e.promise)},c.prototype.iterator=function(t,e){if("function"===typeof t)return this.iterator(null,t);if("function"!==typeof e)throw new Error("A function must be given");this._getObjectStore(function(r,n){if(r)return e(r);try{var o=null==t?n.openCursor():n.openCursor(t)}catch(i){return e(i)}o.onerror=f.bind(this,e),o.onsuccess=function(t){var r=t.target.result;e(null,r)}})},c.prototype.abort=function(){if(this.finished)throw new Error("Transaction is finished");this._objectStore&&this._objectStore.transaction.abort(),this._close(new Error("Transaction aborted"))},c.prototype._close=function(t){if(!this.finished){for(var e in this.finished=!0,this._kvStore=null,this._objectStore=null,this._waiters)this._waiters[e](t||new Error("Transaction is finished"));this._waiters=null,this.onfinish&&this.onfinish(t),this.onfinish=null}}},2:function(t,e,r){"use strict";function n(t,e,r,n,o,i,s){try{var u=t[i](s),a=u.value}catch(c){return void r(c)}u.done?e(a):Promise.resolve(a).then(n,o)}function o(t){return function(){var e=this,r=arguments;return new Promise(function(o,i){var s=t.apply(e,r);function u(t){n(s,o,i,u,a,"next",t)}function a(t){n(s,o,i,u,a,"throw",t)}u(void 0)})}}r.d(e,"a",function(){return o})},42:function(t,e,r){var n=function(t){"use strict";var e,r=Object.prototype,n=r.hasOwnProperty,o="function"===typeof Symbol?Symbol:{},i=o.iterator||"@@iterator",s=o.asyncIterator||"@@asyncIterator",u=o.toStringTag||"@@toStringTag";function a(t,e,r,n){var o=e&&e.prototype instanceof d?e:d,i=Object.create(o.prototype),s=new S(n||[]);return i._invoke=function(t,e,r){var n=f;return function(o,i){if(n===h)throw new Error("Generator is already running");if(n===p){if("throw"===o)throw i;return P()}for(r.method=o,r.arg=i;;){var s=r.delegate;if(s){var u=x(s,r);if(u){if(u===v)continue;return u}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if(n===f)throw n=p,r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);n=h;var a=c(t,e,r);if("normal"===a.type){if(n=r.done?p:l,a.arg===v)continue;return{value:a.arg,done:r.done}}"throw"===a.type&&(n=p,r.method="throw",r.arg=a.arg)}}}(t,r,s),i}function c(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(n){return{type:"throw",arg:n}}}t.wrap=a;var f="suspendedStart",l="suspendedYield",h="executing",p="completed",v={};function d(){}function y(){}function m(){}var w={};w[i]=function(){return this};var g=Object.getPrototypeOf,_=g&&g(g(k([])));_&&_!==r&&n.call(_,i)&&(w=_);var b=m.prototype=d.prototype=Object.create(w);function L(t){["next","throw","return"].forEach(function(e){t[e]=function(t){return this._invoke(e,t)}})}function E(t){var e;this._invoke=function(r,o){function i(){return new Promise(function(e,i){!function e(r,o,i,s){var u=c(t[r],t,o);if("throw"!==u.type){var a=u.arg,f=a.value;return f&&"object"===typeof f&&n.call(f,"__await")?Promise.resolve(f.__await).then(function(t){e("next",t,i,s)},function(t){e("throw",t,i,s)}):Promise.resolve(f).then(function(t){a.value=t,i(a)},function(t){return e("throw",t,i,s)})}s(u.arg)}(r,o,e,i)})}return e=e?e.then(i,i):i()}}function x(t,r){var n=t.iterator[r.method];if(n===e){if(r.delegate=null,"throw"===r.method){if(t.iterator.return&&(r.method="return",r.arg=e,x(t,r),"throw"===r.method))return v;r.method="throw",r.arg=new TypeError("The iterator does not provide a 'throw' method")}return v}var o=c(n,t.iterator,r.arg);if("throw"===o.type)return r.method="throw",r.arg=o.arg,r.delegate=null,v;var i=o.arg;return i?i.done?(r[t.resultName]=i.value,r.next=t.nextLoc,"return"!==r.method&&(r.method="next",r.arg=e),r.delegate=null,v):i:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,v)}function j(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function O(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function S(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(j,this),this.reset(!0)}function k(t){if(t){var r=t[i];if(r)return r.call(t);if("function"===typeof t.next)return t;if(!isNaN(t.length)){var o=-1,s=function r(){for(;++o=0;--i){var s=this.tryEntries[i],u=s.completion;if("root"===s.tryLoc)return o("end");if(s.tryLoc<=this.prev){var a=n.call(s,"catchLoc"),c=n.call(s,"finallyLoc");if(a&&c){if(this.prev=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),O(r),v}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;O(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,r,n){return this.delegate={iterator:k(t),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=e),v}},t}(t.exports);try{regeneratorRuntime=n}catch(o){Function("r","regeneratorRuntime = r")(n)}},43:function(t,e,r){"use strict";var n,o="object"===typeof Reflect?Reflect:null,i=o&&"function"===typeof o.apply?o.apply:function(t,e,r){return Function.prototype.apply.call(t,e,r)};n=o&&"function"===typeof o.ownKeys?o.ownKeys:Object.getOwnPropertySymbols?function(t){return Object.getOwnPropertyNames(t).concat(Object.getOwnPropertySymbols(t))}:function(t){return Object.getOwnPropertyNames(t)};var s=Number.isNaN||function(t){return t!==t};function u(){u.init.call(this)}t.exports=u,u.EventEmitter=u,u.prototype._events=void 0,u.prototype._eventsCount=0,u.prototype._maxListeners=void 0;var a=10;function c(t){return void 0===t._maxListeners?u.defaultMaxListeners:t._maxListeners}function f(t,e,r,n){var o,i,s,u;if("function"!==typeof r)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof r);if(void 0===(i=t._events)?(i=t._events=Object.create(null),t._eventsCount=0):(void 0!==i.newListener&&(t.emit("newListener",e,r.listener?r.listener:r),i=t._events),s=i[e]),void 0===s)s=i[e]=r,++t._eventsCount;else if("function"===typeof s?s=i[e]=n?[r,s]:[s,r]:n?s.unshift(r):s.push(r),(o=c(t))>0&&s.length>o&&!s.warned){s.warned=!0;var a=new Error("Possible EventEmitter memory leak detected. "+s.length+" "+String(e)+" listeners added. Use emitter.setMaxListeners() to increase limit");a.name="MaxListenersExceededWarning",a.emitter=t,a.type=e,a.count=s.length,u=a,console&&console.warn&&console.warn(u)}return t}function l(t,e,r){var n={fired:!1,wrapFn:void 0,target:t,type:e,listener:r},o=function(){for(var t=[],e=0;e0&&(s=e[0]),s instanceof Error)throw s;var u=new Error("Unhandled error."+(s?" ("+s.message+")":""));throw u.context=s,u}var a=o[t];if(void 0===a)return!1;if("function"===typeof a)i(a,this,e);else{var c=a.length,f=v(a,c);for(r=0;r=0;i--)if(r[i]===e||r[i].listener===e){s=r[i].listener,o=i;break}if(o<0)return this;0===o?r.shift():function(t,e){for(;e+1=0;n--)this.removeListener(t,e[n]);return this},u.prototype.listeners=function(t){return h(this,t,!0)},u.prototype.rawListeners=function(t){return h(this,t,!1)},u.listenerCount=function(t,e){return"function"===typeof t.listenerCount?t.listenerCount(e):p.call(t,e)},u.prototype.listenerCount=p,u.prototype.eventNames=function(){return this._eventsCount>0?n(this._events):[]}},44:function(t,e){"function"===typeof Object.create?t.exports=function(t,e){e&&(t.super_=e,t.prototype=Object.create(e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}))}:t.exports=function(t,e){if(e){t.super_=e;var r=function(){};r.prototype=e.prototype,t.prototype=new r,t.prototype.constructor=t}}},45:function(t,e){t.exports=function(t){var e,r,n;if(null!=t&&"function"!==typeof t)throw new Error("cb must be a function");null==t&&"undefined"!==typeof Promise&&(e=new Promise(function(t,e){r=t,n=e}));function o(o,i){if(e)o?n(o):r(i);else if(t)t(o,i);else if(o)throw o}return o.promise=e,o}},6:function(t,e,r){"use strict";function n(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var r=[],n=!0,o=!1,i=void 0;try{for(var s,u=t[Symbol.iterator]();!(n=(s=u.next()).done)&&(r.push(s.value),!e||r.length!==e);n=!0);}catch(a){o=!0,i=a}finally{try{n||null==u.return||u.return()}finally{if(o)throw i}}return r}(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}r.d(e,"a",function(){return n})}}]); -//# sourceMappingURL=0.1560967a.chunk.js.map \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[0],{1:function(t,e,r){t.exports=r(40)},13:function(t,e,r){t.exports=a;var n=r(44).EventEmitter,o=r(45),i=r(46),s="undefined"===typeof window?self:window,u=s.indexedDB||s.mozIndexedDB||s.webkitIndexedDB||s.msIndexedDB;function a(t,e,r){var o=this;if("string"!==typeof t)throw new Error("A name must be supplied of type string");if(!u)throw new Error("IndexedDB not supported");if("function"===typeof e)return new a(t,null,e);if(!(o instanceof a))return new a(t,e,r);e||(e={}),n.call(o),o._db=null,o._closed=!1,o._channel=null,o._waiters=[];var i=e.channel||s.BroadcastChannel;i&&(o._channel=new i(t),o._channel.onmessage=function(t){"add"===t.data.method?o.emit("add",t.data):"set"===t.data.method?o.emit("set",t.data):"remove"===t.data.method&&o.emit("remove",t.data)});var c=u.open(t);function l(t){f(t),o._close(t.target.error)}function h(){o._close()}c.onerror=function(t){f(t),o._close(t.target.error),r&&r(t.target.error)},c.onsuccess=function(t){if(o._closed)t.target.result.close();else{for(var e in o._db=t.target.result,o._db.onclose=h,o._db.onerror=l,o._waiters)o._waiters[e]._init(null);o._waiters=null,r&&r(null),o.emit("open")}},c.onupgradeneeded=function(t){t.target.result.createObjectStore("kv",{autoIncrement:!0})},o.on("newListener",function(t){if("add"!==t&&"set"!==t&&"remove"!==t)return;if(!o._channel)return o.emit("error",new Error("No BroadcastChannel support"))})}function c(t,e,r){if("function"===typeof e)return new c(t,null,e);if(this._kvStore=t,this._mode=e||"readwrite",this._objectStore=null,this._waiters=null,this.finished=!1,this.onfinish=i(r),this.done=this.onfinish.promise,"readonly"!==this._mode&&"readwrite"!==this._mode)throw new Error('mode must be either "readonly" or "readwrite"')}function f(t,e){if(null==e)return f(null,t);e.preventDefault(),e.stopPropagation(),t&&t(e.target.error)}a.INDEXEDDB_SUPPORT=null!=u,a.BROADCAST_SUPPORT=null!=s.BroadcastChannel,o(a,n),a.prototype.get=function(t,e){return this.transaction("readonly").get(t,e)},a.prototype.getMultiple=function(t,e){return this.transaction("readonly").getMultiple(t,e)},a.prototype.set=function(t,e,r){r=i(r);var n=null;return this.transaction("readwrite",function(t){r(n=n||t)}).set(t,e,function(t){n=t}),r.promise},a.prototype.json=function(t,e){return this.transaction("readonly").json(t,e)},a.prototype.keys=function(t,e){return this.transaction("readonly").keys(t,e)},a.prototype.values=function(t,e){return this.transaction("readonly").values(t,e)},a.prototype.remove=function(t,e){e=i(e);var r=null;return this.transaction("readwrite",function(t){e(r=r||t)}).remove(t,function(t){r=t}),e.promise},a.prototype.clear=function(t){t=i(t);var e=null;return this.transaction("readwrite",function(r){t(e=e||r)}).clear(function(t){e=t}),t.promise},a.prototype.count=function(t,e){return this.transaction("readonly").count(t,e)},a.prototype.add=function(t,e,r){r=i(r);var n=null;return this.transaction("readwrite",function(t){r(n=n||t)}).add(t,e,function(t){n=t}),r.promise},a.prototype.iterator=function(t,e){return this.transaction("readonly").iterator(t,e)},a.prototype.transaction=function(t,e){if(this._closed)throw new Error("Database is closed");var r=new c(this,t,e);return this._db?r._init(null):this._waiters.push(r),r},a.prototype.close=function(){this._close()},a.prototype._close=function(t){if(!this._closed){for(var e in this._closed=!0,this._db&&this._db.close(),this._channel&&this._channel.close(),this._db=null,this._channel=null,t&&this.emit("error",t),this.emit("close"),this._waiters)this._waiters[e]._init(t||new Error("Database is closed"));this._waiters=null,this.removeAllListeners()}},c.prototype._init=function(t){var e=this;if(!e.finished){if(t)return e._close(t);var r=e._kvStore._db.transaction("kv",e._mode);for(var n in r.oncomplete=function(){e._close(null)},r.onerror=o,r.onabort=o,e._objectStore=r.objectStore("kv"),e._waiters)e._waiters[n](null,e._objectStore);e._waiters=null}function o(t){f(t),e._close(t.target.error)}},c.prototype._getObjectStore=function(t){if(this.finished)throw new Error("Transaction is finished");if(this._objectStore)return t(null,this._objectStore);this._waiters=this._waiters||[],this._waiters.push(t)},c.prototype.set=function(t,e,r){var n=this;if(null==t||null==e)throw new Error("A key and value must be given");return r=i(r),n._getObjectStore(function(o,i){if(o)return r(o);try{var s=i.put(e,t)}catch(u){return r(u)}s.onerror=f.bind(this,r),s.onsuccess=function(){n._kvStore._channel&&n._kvStore._channel.postMessage({method:"set",key:t,value:e}),r(null)}}),r.promise},c.prototype.add=function(t,e,r){var n=this;if(null==e&&null!=t)return n.add(void 0,t,r);if("function"===typeof e||null==e&&null==r)return n.add(void 0,t,e);if(null==e)throw new Error("A value must be provided as an argument");return r=i(r),n._getObjectStore(function(o,i){if(o)return r(o);try{var s=null==t?i.add(e):i.add(e,t)}catch(u){return r(u)}s.onerror=f.bind(this,r),s.onsuccess=function(){n._kvStore._channel&&n._kvStore._channel.postMessage({method:"add",key:t,value:e}),r(null)}}),r.promise},c.prototype.get=function(t,e){if(null==t)throw new Error("A key must be given as an argument");return e=i(e),this._getObjectStore(function(r,n){if(r)return e(r);try{var o=n.get(t)}catch(i){return e(i)}o.onerror=f.bind(this,e),o.onsuccess=function(t){e(null,t.target.result)}}),e.promise},c.prototype.getMultiple=function(t,e){if(null==t)throw new Error("An array of keys must be given as an argument");return e=i(e),0===t.length?(e(null,[]),e.promise):(this._getObjectStore(function(r,n){if(r)return e(r);var o=t.slice().sort(),i=0,s={},u=function(){return t.map(function(t){return s[t]})},a=n.openCursor();a.onerror=f.bind(this,e),a.onsuccess=function(t){var r=t.target.result;if(r){for(var n=r.key;n>o[i];)if(++i===o.length)return void e(null,u());n===o[i]?(s[n]=r.value,r.continue()):r.continue(o[i])}else e(null,u())}}),e.promise)},c.prototype.json=function(t,e){if("function"===typeof t)return this.json(null,t);e=i(e);var r={};return this.iterator(t,function(t,n){if(t)return e(t);n?(r[n.key]=n.value,n.continue()):e(null,r)}),e.promise},c.prototype.keys=function(t,e){if("function"===typeof t)return this.keys(null,t);e=i(e);var r=[];return this.iterator(t,function(t,n){if(t)return e(t);n?(r.push(n.key),n.continue()):e(null,r)}),e.promise},c.prototype.values=function(t,e){if("function"===typeof t)return this.values(null,t);e=i(e);var r=[];return this.iterator(t,function(t,n){if(t)return e(t);n?(r.push(n.value),n.continue()):e(null,r)}),e.promise},c.prototype.remove=function(t,e){var r=this;if(null==t)throw new Error("A key must be given as an argument");return e=i(e),r._getObjectStore(function(n,o){if(n)return e(n);try{var i=o.delete(t)}catch(s){return e(s)}i.onerror=f.bind(this,e),i.onsuccess=function(){r._kvStore._channel&&r._kvStore._channel.postMessage({method:"remove",key:t}),e(null)}}),e.promise},c.prototype.clear=function(t){return t=i(t),this._getObjectStore(function(e,r){if(e)return t(e);try{var n=r.clear()}catch(o){return t(o)}n.onerror=f.bind(this,t),n.onsuccess=function(){t(null)}}),t.promise},c.prototype.count=function(t,e){return"function"===typeof t?this.count(null,t):(e=i(e),this._getObjectStore(function(r,n){if(r)return e(r);try{var o=null==t?n.count():n.count(t)}catch(i){return e(i)}o.onerror=f.bind(this,e),o.onsuccess=function(t){e(null,t.target.result)}}),e.promise)},c.prototype.iterator=function(t,e){if("function"===typeof t)return this.iterator(null,t);if("function"!==typeof e)throw new Error("A function must be given");this._getObjectStore(function(r,n){if(r)return e(r);try{var o=null==t?n.openCursor():n.openCursor(t)}catch(i){return e(i)}o.onerror=f.bind(this,e),o.onsuccess=function(t){var r=t.target.result;e(null,r)}})},c.prototype.abort=function(){if(this.finished)throw new Error("Transaction is finished");this._objectStore&&this._objectStore.transaction.abort(),this._close(new Error("Transaction aborted"))},c.prototype._close=function(t){if(!this.finished){for(var e in this.finished=!0,this._kvStore=null,this._objectStore=null,this._waiters)this._waiters[e](t||new Error("Transaction is finished"));this._waiters=null,this.onfinish&&this.onfinish(t),this.onfinish=null}}},2:function(t,e,r){"use strict";function n(t,e,r,n,o,i,s){try{var u=t[i](s),a=u.value}catch(c){return void r(c)}u.done?e(a):Promise.resolve(a).then(n,o)}function o(t){return function(){var e=this,r=arguments;return new Promise(function(o,i){var s=t.apply(e,r);function u(t){n(s,o,i,u,a,"next",t)}function a(t){n(s,o,i,u,a,"throw",t)}u(void 0)})}}r.d(e,"a",function(){return o})},40:function(t,e,r){var n=function(t){"use strict";var e,r=Object.prototype,n=r.hasOwnProperty,o="function"===typeof Symbol?Symbol:{},i=o.iterator||"@@iterator",s=o.asyncIterator||"@@asyncIterator",u=o.toStringTag||"@@toStringTag";function a(t,e,r,n){var o=e&&e.prototype instanceof d?e:d,i=Object.create(o.prototype),s=new S(n||[]);return i._invoke=function(t,e,r){var n=f;return function(o,i){if(n===h)throw new Error("Generator is already running");if(n===p){if("throw"===o)throw i;return P()}for(r.method=o,r.arg=i;;){var s=r.delegate;if(s){var u=x(s,r);if(u){if(u===v)continue;return u}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if(n===f)throw n=p,r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);n=h;var a=c(t,e,r);if("normal"===a.type){if(n=r.done?p:l,a.arg===v)continue;return{value:a.arg,done:r.done}}"throw"===a.type&&(n=p,r.method="throw",r.arg=a.arg)}}}(t,r,s),i}function c(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(n){return{type:"throw",arg:n}}}t.wrap=a;var f="suspendedStart",l="suspendedYield",h="executing",p="completed",v={};function d(){}function y(){}function m(){}var w={};w[i]=function(){return this};var g=Object.getPrototypeOf,_=g&&g(g(k([])));_&&_!==r&&n.call(_,i)&&(w=_);var b=m.prototype=d.prototype=Object.create(w);function L(t){["next","throw","return"].forEach(function(e){t[e]=function(t){return this._invoke(e,t)}})}function E(t){var e;this._invoke=function(r,o){function i(){return new Promise(function(e,i){!function e(r,o,i,s){var u=c(t[r],t,o);if("throw"!==u.type){var a=u.arg,f=a.value;return f&&"object"===typeof f&&n.call(f,"__await")?Promise.resolve(f.__await).then(function(t){e("next",t,i,s)},function(t){e("throw",t,i,s)}):Promise.resolve(f).then(function(t){a.value=t,i(a)},function(t){return e("throw",t,i,s)})}s(u.arg)}(r,o,e,i)})}return e=e?e.then(i,i):i()}}function x(t,r){var n=t.iterator[r.method];if(n===e){if(r.delegate=null,"throw"===r.method){if(t.iterator.return&&(r.method="return",r.arg=e,x(t,r),"throw"===r.method))return v;r.method="throw",r.arg=new TypeError("The iterator does not provide a 'throw' method")}return v}var o=c(n,t.iterator,r.arg);if("throw"===o.type)return r.method="throw",r.arg=o.arg,r.delegate=null,v;var i=o.arg;return i?i.done?(r[t.resultName]=i.value,r.next=t.nextLoc,"return"!==r.method&&(r.method="next",r.arg=e),r.delegate=null,v):i:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,v)}function j(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function O(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function S(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(j,this),this.reset(!0)}function k(t){if(t){var r=t[i];if(r)return r.call(t);if("function"===typeof t.next)return t;if(!isNaN(t.length)){var o=-1,s=function r(){for(;++o=0;--i){var s=this.tryEntries[i],u=s.completion;if("root"===s.tryLoc)return o("end");if(s.tryLoc<=this.prev){var a=n.call(s,"catchLoc"),c=n.call(s,"finallyLoc");if(a&&c){if(this.prev=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),O(r),v}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;O(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,r,n){return this.delegate={iterator:k(t),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=e),v}},t}(t.exports);try{regeneratorRuntime=n}catch(o){Function("r","regeneratorRuntime = r")(n)}},44:function(t,e,r){"use strict";var n,o="object"===typeof Reflect?Reflect:null,i=o&&"function"===typeof o.apply?o.apply:function(t,e,r){return Function.prototype.apply.call(t,e,r)};n=o&&"function"===typeof o.ownKeys?o.ownKeys:Object.getOwnPropertySymbols?function(t){return Object.getOwnPropertyNames(t).concat(Object.getOwnPropertySymbols(t))}:function(t){return Object.getOwnPropertyNames(t)};var s=Number.isNaN||function(t){return t!==t};function u(){u.init.call(this)}t.exports=u,u.EventEmitter=u,u.prototype._events=void 0,u.prototype._eventsCount=0,u.prototype._maxListeners=void 0;var a=10;function c(t){return void 0===t._maxListeners?u.defaultMaxListeners:t._maxListeners}function f(t,e,r,n){var o,i,s,u;if("function"!==typeof r)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof r);if(void 0===(i=t._events)?(i=t._events=Object.create(null),t._eventsCount=0):(void 0!==i.newListener&&(t.emit("newListener",e,r.listener?r.listener:r),i=t._events),s=i[e]),void 0===s)s=i[e]=r,++t._eventsCount;else if("function"===typeof s?s=i[e]=n?[r,s]:[s,r]:n?s.unshift(r):s.push(r),(o=c(t))>0&&s.length>o&&!s.warned){s.warned=!0;var a=new Error("Possible EventEmitter memory leak detected. "+s.length+" "+String(e)+" listeners added. Use emitter.setMaxListeners() to increase limit");a.name="MaxListenersExceededWarning",a.emitter=t,a.type=e,a.count=s.length,u=a,console&&console.warn&&console.warn(u)}return t}function l(t,e,r){var n={fired:!1,wrapFn:void 0,target:t,type:e,listener:r},o=function(){for(var t=[],e=0;e0&&(s=e[0]),s instanceof Error)throw s;var u=new Error("Unhandled error."+(s?" ("+s.message+")":""));throw u.context=s,u}var a=o[t];if(void 0===a)return!1;if("function"===typeof a)i(a,this,e);else{var c=a.length,f=v(a,c);for(r=0;r=0;i--)if(r[i]===e||r[i].listener===e){s=r[i].listener,o=i;break}if(o<0)return this;0===o?r.shift():function(t,e){for(;e+1=0;n--)this.removeListener(t,e[n]);return this},u.prototype.listeners=function(t){return h(this,t,!0)},u.prototype.rawListeners=function(t){return h(this,t,!1)},u.listenerCount=function(t,e){return"function"===typeof t.listenerCount?t.listenerCount(e):p.call(t,e)},u.prototype.listenerCount=p,u.prototype.eventNames=function(){return this._eventsCount>0?n(this._events):[]}},45:function(t,e){"function"===typeof Object.create?t.exports=function(t,e){e&&(t.super_=e,t.prototype=Object.create(e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}))}:t.exports=function(t,e){if(e){t.super_=e;var r=function(){};r.prototype=e.prototype,t.prototype=new r,t.prototype.constructor=t}}},46:function(t,e){t.exports=function(t){var e,r,n;if(null!=t&&"function"!==typeof t)throw new Error("cb must be a function");null==t&&"undefined"!==typeof Promise&&(e=new Promise(function(t,e){r=t,n=e}));function o(o,i){if(e)o?n(o):r(i);else if(t)t(o,i);else if(o)throw o}return o.promise=e,o}},6:function(t,e,r){"use strict";function n(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var r=[],n=!0,o=!1,i=void 0;try{for(var s,u=t[Symbol.iterator]();!(n=(s=u.next()).done)&&(r.push(s.value),!e||r.length!==e);n=!0);}catch(a){o=!0,i=a}finally{try{n||null==u.return||u.return()}finally{if(o)throw i}}return r}(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}r.d(e,"a",function(){return n})}}]); +//# sourceMappingURL=0.c27538cc.chunk.js.map \ No newline at end of file diff --git a/static/js/0.1560967a.chunk.js.map b/static/js/0.c27538cc.chunk.js.map similarity index 99% rename from static/js/0.1560967a.chunk.js.map rename to static/js/0.c27538cc.chunk.js.map index 4989f86..3716a0b 100644 --- a/static/js/0.1560967a.chunk.js.map +++ b/static/js/0.c27538cc.chunk.js.map @@ -1 +1 @@ -{"version":3,"sources":["../node_modules/@babel/runtime/regenerator/index.js","../node_modules/idb-kv-store/index.js","../node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","../node_modules/regenerator-runtime/runtime.js","../node_modules/events/events.js","../node_modules/inherits/inherits_browser.js","../node_modules/promisize/index.js","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js"],"names":["module","exports","__webpack_require__","IdbKvStore","EventEmitter","inherits","promisize","global","window","self","IDB","indexedDB","mozIndexedDB","webkitIndexedDB","msIndexedDB","name","opts","cb","this","Error","call","_db","_closed","_channel","_waiters","Channel","channel","BroadcastChannel","onmessage","event","data","method","emit","request","open","onDbError","handleError","_close","target","error","onclose","onerror","onsuccess","result","close","i","_init","onupgradeneeded","createObjectStore","autoIncrement","on","Transaction","kvStore","mode","_kvStore","_mode","_objectStore","finished","onfinish","done","promise","preventDefault","stopPropagation","INDEXEDDB_SUPPORT","BROADCAST_SUPPORT","prototype","get","key","transaction","getMultiple","keys","set","value","err","json","range","values","remove","clear","count","add","iterator","next","push","removeAllListeners","oncomplete","onabort","objectStore","_getObjectStore","put","e","bind","postMessage","undefined","length","sortedKeys","slice","sort","resultsMap","getReturnValue","map","cursorReq","openCursor","cursor","continue","delete","abort","asyncGeneratorStep","gen","resolve","reject","_next","_throw","arg","info","Promise","then","_asyncToGenerator","fn","args","arguments","apply","d","__webpack_exports__","runtime","Op","Object","hasOwn","hasOwnProperty","$Symbol","Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","wrap","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","create","context","Context","_invoke","state","GenStateSuspendedStart","GenStateExecuting","GenStateCompleted","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","sent","_sent","dispatchException","abrupt","record","tryCatch","type","GenStateSuspendedYield","makeInvokeMethod","obj","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","Gp","defineIteratorMethods","forEach","AsyncIterator","previousPromise","callInvokeWithMethodAndArg","invoke","__await","unwrapped","TypeError","resultName","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","iterable","iteratorMethod","isNaN","constructor","displayName","isGeneratorFunction","genFun","ctor","mark","setPrototypeOf","__proto__","awrap","async","iter","toString","object","reverse","pop","skipTempReset","prev","charAt","stop","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","catch","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","Function","ReflectOwnKeys","R","Reflect","ReflectApply","receiver","ownKeys","getOwnPropertySymbols","getOwnPropertyNames","concat","NumberIsNaN","Number","init","_events","_eventsCount","_maxListeners","defaultMaxListeners","$getMaxListeners","that","_addListener","listener","prepend","m","events","existing","warning","newListener","unshift","warned","w","String","emitter","console","warn","_onceWrap","fired","wrapFn","wrapped","removeListener","_listeners","unwrap","evlistener","arr","ret","Array","unwrapListeners","arrayClone","listenerCount","n","copy","defineProperty","enumerable","RangeError","setMaxListeners","getMaxListeners","doError","er","message","handler","len","listeners","addListener","prependListener","once","prependOnceListener","list","position","originalListener","shift","index","spliceOne","off","rawListeners","eventNames","superCtor","super_","writable","configurable","TempCtor","res","rej","intercept","_slicedToArray","isArray","_arrayWithHoles","_arr","_n","_d","_e","_s","_i","_iterableToArrayLimit","_nonIterableRest"],"mappings":"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","file":"static/js/0.1560967a.chunk.js","sourcesContent":["module.exports = require(\"regenerator-runtime\");\n","/* eslint-env browser */\nmodule.exports = IdbKvStore;\n\nvar EventEmitter = require('events').EventEmitter;\n\nvar inherits = require('inherits');\n\nvar promisize = require('promisize');\n\nvar global = typeof window === 'undefined' ? self : window;\nvar IDB = global.indexedDB || global.mozIndexedDB || global.webkitIndexedDB || global.msIndexedDB;\nIdbKvStore.INDEXEDDB_SUPPORT = IDB != null;\nIdbKvStore.BROADCAST_SUPPORT = global.BroadcastChannel != null;\ninherits(IdbKvStore, EventEmitter);\n\nfunction IdbKvStore(name, opts, cb) {\n var self = this;\n if (typeof name !== 'string') throw new Error('A name must be supplied of type string');\n if (!IDB) throw new Error('IndexedDB not supported');\n if (typeof opts === 'function') return new IdbKvStore(name, null, opts);\n if (!(self instanceof IdbKvStore)) return new IdbKvStore(name, opts, cb);\n if (!opts) opts = {};\n EventEmitter.call(self);\n self._db = null;\n self._closed = false;\n self._channel = null;\n self._waiters = [];\n var Channel = opts.channel || global.BroadcastChannel;\n\n if (Channel) {\n self._channel = new Channel(name);\n self._channel.onmessage = onChange;\n }\n\n var request = IDB.open(name);\n request.onerror = onerror;\n request.onsuccess = onsuccess;\n request.onupgradeneeded = onupgradeneeded;\n self.on('newListener', onNewListener);\n\n function onerror(event) {\n handleError(event);\n\n self._close(event.target.error);\n\n if (cb) cb(event.target.error);\n }\n\n function onDbError(event) {\n handleError(event);\n\n self._close(event.target.error);\n }\n\n function onsuccess(event) {\n if (self._closed) {\n event.target.result.close();\n } else {\n self._db = event.target.result;\n self._db.onclose = onclose;\n self._db.onerror = onDbError;\n\n for (var i in self._waiters) {\n self._waiters[i]._init(null);\n }\n\n self._waiters = null;\n if (cb) cb(null);\n self.emit('open');\n }\n }\n\n function onupgradeneeded(event) {\n var db = event.target.result;\n db.createObjectStore('kv', {\n autoIncrement: true\n });\n }\n\n function onclose() {\n self._close();\n }\n\n function onNewListener(event) {\n if (event !== 'add' && event !== 'set' && event !== 'remove') return;\n if (!self._channel) return self.emit('error', new Error('No BroadcastChannel support'));\n }\n\n function onChange(event) {\n if (event.data.method === 'add') self.emit('add', event.data);else if (event.data.method === 'set') self.emit('set', event.data);else if (event.data.method === 'remove') self.emit('remove', event.data);\n }\n}\n\nIdbKvStore.prototype.get = function (key, cb) {\n return this.transaction('readonly').get(key, cb);\n};\n\nIdbKvStore.prototype.getMultiple = function (keys, cb) {\n return this.transaction('readonly').getMultiple(keys, cb);\n};\n\nIdbKvStore.prototype.set = function (key, value, cb) {\n cb = promisize(cb);\n var error = null;\n var t = this.transaction('readwrite', function (err) {\n error = error || err;\n cb(error);\n });\n t.set(key, value, function (err) {\n error = err;\n });\n return cb.promise;\n};\n\nIdbKvStore.prototype.json = function (range, cb) {\n return this.transaction('readonly').json(range, cb);\n};\n\nIdbKvStore.prototype.keys = function (range, cb) {\n return this.transaction('readonly').keys(range, cb);\n};\n\nIdbKvStore.prototype.values = function (range, cb) {\n return this.transaction('readonly').values(range, cb);\n};\n\nIdbKvStore.prototype.remove = function (key, cb) {\n cb = promisize(cb);\n var error = null;\n var t = this.transaction('readwrite', function (err) {\n error = error || err;\n cb(error);\n });\n t.remove(key, function (err) {\n error = err;\n });\n return cb.promise;\n};\n\nIdbKvStore.prototype.clear = function (cb) {\n cb = promisize(cb);\n var error = null;\n var t = this.transaction('readwrite', function (err) {\n error = error || err;\n cb(error);\n });\n t.clear(function (err) {\n error = err;\n });\n return cb.promise;\n};\n\nIdbKvStore.prototype.count = function (range, cb) {\n return this.transaction('readonly').count(range, cb);\n};\n\nIdbKvStore.prototype.add = function (key, value, cb) {\n cb = promisize(cb);\n var error = null;\n var t = this.transaction('readwrite', function (err) {\n error = error || err;\n cb(error);\n });\n t.add(key, value, function (err) {\n error = err;\n });\n return cb.promise;\n};\n\nIdbKvStore.prototype.iterator = function (range, next) {\n return this.transaction('readonly').iterator(range, next);\n};\n\nIdbKvStore.prototype.transaction = function (mode, onfinish) {\n if (this._closed) throw new Error('Database is closed');\n var transaction = new Transaction(this, mode, onfinish);\n if (this._db) transaction._init(null);else this._waiters.push(transaction);\n return transaction;\n};\n\nIdbKvStore.prototype.close = function () {\n this._close();\n};\n\nIdbKvStore.prototype._close = function (err) {\n if (this._closed) return;\n this._closed = true;\n if (this._db) this._db.close();\n if (this._channel) this._channel.close();\n this._db = null;\n this._channel = null;\n if (err) this.emit('error', err);\n this.emit('close');\n\n for (var i in this._waiters) {\n this._waiters[i]._init(err || new Error('Database is closed'));\n }\n\n this._waiters = null;\n this.removeAllListeners();\n};\n\nfunction Transaction(kvStore, mode, cb) {\n if (typeof mode === 'function') return new Transaction(kvStore, null, mode);\n this._kvStore = kvStore;\n this._mode = mode || 'readwrite';\n this._objectStore = null;\n this._waiters = null;\n this.finished = false;\n this.onfinish = promisize(cb); // `onfinish` public variable for backwards compatibility with v4.3.1\n\n this.done = this.onfinish.promise;\n\n if (this._mode !== 'readonly' && this._mode !== 'readwrite') {\n throw new Error('mode must be either \"readonly\" or \"readwrite\"');\n }\n}\n\nTransaction.prototype._init = function (err) {\n var self = this;\n if (self.finished) return;\n if (err) return self._close(err);\n\n var transaction = self._kvStore._db.transaction('kv', self._mode);\n\n transaction.oncomplete = oncomplete;\n transaction.onerror = onerror;\n transaction.onabort = onerror;\n self._objectStore = transaction.objectStore('kv');\n\n for (var i in self._waiters) {\n self._waiters[i](null, self._objectStore);\n }\n\n self._waiters = null;\n\n function oncomplete() {\n self._close(null);\n }\n\n function onerror(event) {\n handleError(event);\n\n self._close(event.target.error);\n }\n};\n\nTransaction.prototype._getObjectStore = function (cb) {\n if (this.finished) throw new Error('Transaction is finished');\n if (this._objectStore) return cb(null, this._objectStore);\n this._waiters = this._waiters || [];\n\n this._waiters.push(cb);\n};\n\nTransaction.prototype.set = function (key, value, cb) {\n var self = this;\n if (key == null || value == null) throw new Error('A key and value must be given');\n cb = promisize(cb);\n\n self._getObjectStore(function (err, objectStore) {\n if (err) return cb(err);\n\n try {\n var request = objectStore.put(value, key);\n } catch (e) {\n return cb(e);\n }\n\n request.onerror = handleError.bind(this, cb);\n\n request.onsuccess = function () {\n if (self._kvStore._channel) {\n self._kvStore._channel.postMessage({\n method: 'set',\n key: key,\n value: value\n });\n }\n\n cb(null);\n };\n });\n\n return cb.promise;\n};\n\nTransaction.prototype.add = function (key, value, cb) {\n var self = this;\n if (value == null && key != null) return self.add(undefined, key, cb);\n if (typeof value === 'function' || value == null && cb == null) return self.add(undefined, key, value);\n if (value == null) throw new Error('A value must be provided as an argument');\n cb = promisize(cb);\n\n self._getObjectStore(function (err, objectStore) {\n if (err) return cb(err);\n\n try {\n var request = key == null ? objectStore.add(value) : objectStore.add(value, key);\n } catch (e) {\n return cb(e);\n }\n\n request.onerror = handleError.bind(this, cb);\n\n request.onsuccess = function () {\n if (self._kvStore._channel) {\n self._kvStore._channel.postMessage({\n method: 'add',\n key: key,\n value: value\n });\n }\n\n cb(null);\n };\n });\n\n return cb.promise;\n};\n\nTransaction.prototype.get = function (key, cb) {\n var self = this;\n if (key == null) throw new Error('A key must be given as an argument');\n cb = promisize(cb);\n\n self._getObjectStore(function (err, objectStore) {\n if (err) return cb(err);\n\n try {\n var request = objectStore.get(key);\n } catch (e) {\n return cb(e);\n }\n\n request.onerror = handleError.bind(this, cb);\n\n request.onsuccess = function (event) {\n cb(null, event.target.result);\n };\n });\n\n return cb.promise;\n};\n\nTransaction.prototype.getMultiple = function (keys, cb) {\n var self = this;\n if (keys == null) throw new Error('An array of keys must be given as an argument');\n cb = promisize(cb);\n\n if (keys.length === 0) {\n cb(null, []);\n return cb.promise;\n }\n\n self._getObjectStore(function (err, objectStore) {\n if (err) return cb(err); // Implementation mostly taken from https://www.codeproject.com/Articles/744986/How-to-do-some-magic-with-indexedDB\n\n var sortedKeys = keys.slice().sort();\n var i = 0;\n var resultsMap = {};\n\n var getReturnValue = function getReturnValue() {\n return keys.map(function (key) {\n return resultsMap[key];\n });\n };\n\n var cursorReq = objectStore.openCursor();\n cursorReq.onerror = handleError.bind(this, cb);\n\n cursorReq.onsuccess = function (event) {\n var cursor = event.target.result;\n\n if (!cursor) {\n cb(null, getReturnValue());\n return;\n }\n\n var key = cursor.key;\n\n while (key > sortedKeys[i]) {\n // The cursor has passed beyond this key. Check next.\n ++i;\n\n if (i === sortedKeys.length) {\n // There is no next. Stop searching.\n cb(null, getReturnValue());\n return;\n }\n }\n\n if (key === sortedKeys[i]) {\n resultsMap[key] = cursor.value; // The current cursor value should be included and we should continue\n // a single step in case next item has the same key or possibly our\n // next key in sortedKeys.\n\n cursor.continue();\n } else {\n // cursor.key not yet at sortedKeys[i]. Forward cursor to the next key to hunt for.\n cursor.continue(sortedKeys[i]);\n }\n };\n });\n\n return cb.promise;\n};\n\nTransaction.prototype.json = function (range, cb) {\n var self = this;\n if (typeof range === 'function') return self.json(null, range);\n cb = promisize(cb);\n var json = {};\n self.iterator(range, function (err, cursor) {\n if (err) return cb(err);\n\n if (cursor) {\n json[cursor.key] = cursor.value;\n cursor.continue();\n } else {\n cb(null, json);\n }\n });\n return cb.promise;\n};\n\nTransaction.prototype.keys = function (range, cb) {\n var self = this;\n if (typeof range === 'function') return self.keys(null, range);\n cb = promisize(cb);\n var keys = [];\n self.iterator(range, function (err, cursor) {\n if (err) return cb(err);\n\n if (cursor) {\n keys.push(cursor.key);\n cursor.continue();\n } else {\n cb(null, keys);\n }\n });\n return cb.promise;\n};\n\nTransaction.prototype.values = function (range, cb) {\n var self = this;\n if (typeof range === 'function') return self.values(null, range);\n cb = promisize(cb);\n var values = [];\n self.iterator(range, function (err, cursor) {\n if (err) return cb(err);\n\n if (cursor) {\n values.push(cursor.value);\n cursor.continue();\n } else {\n cb(null, values);\n }\n });\n return cb.promise;\n};\n\nTransaction.prototype.remove = function (key, cb) {\n var self = this;\n if (key == null) throw new Error('A key must be given as an argument');\n cb = promisize(cb);\n\n self._getObjectStore(function (err, objectStore) {\n if (err) return cb(err);\n\n try {\n var request = objectStore.delete(key);\n } catch (e) {\n return cb(e);\n }\n\n request.onerror = handleError.bind(this, cb);\n\n request.onsuccess = function () {\n if (self._kvStore._channel) {\n self._kvStore._channel.postMessage({\n method: 'remove',\n key: key\n });\n }\n\n cb(null);\n };\n });\n\n return cb.promise;\n};\n\nTransaction.prototype.clear = function (cb) {\n var self = this;\n cb = promisize(cb);\n\n self._getObjectStore(function (err, objectStore) {\n if (err) return cb(err);\n\n try {\n var request = objectStore.clear();\n } catch (e) {\n return cb(e);\n }\n\n request.onerror = handleError.bind(this, cb);\n\n request.onsuccess = function () {\n cb(null);\n };\n });\n\n return cb.promise;\n};\n\nTransaction.prototype.count = function (range, cb) {\n var self = this;\n if (typeof range === 'function') return self.count(null, range);\n cb = promisize(cb);\n\n self._getObjectStore(function (err, objectStore) {\n if (err) return cb(err);\n\n try {\n var request = range == null ? objectStore.count() : objectStore.count(range);\n } catch (e) {\n return cb(e);\n }\n\n request.onerror = handleError.bind(this, cb);\n\n request.onsuccess = function (event) {\n cb(null, event.target.result);\n };\n });\n\n return cb.promise;\n};\n\nTransaction.prototype.iterator = function (range, next) {\n var self = this;\n if (typeof range === 'function') return self.iterator(null, range);\n if (typeof next !== 'function') throw new Error('A function must be given');\n\n self._getObjectStore(function (err, objectStore) {\n if (err) return next(err);\n\n try {\n var request = range == null ? objectStore.openCursor() : objectStore.openCursor(range);\n } catch (e) {\n return next(e);\n }\n\n request.onerror = handleError.bind(this, next);\n\n request.onsuccess = function (event) {\n var cursor = event.target.result;\n next(null, cursor);\n };\n });\n};\n\nTransaction.prototype.abort = function () {\n if (this.finished) throw new Error('Transaction is finished');\n if (this._objectStore) this._objectStore.transaction.abort();\n\n this._close(new Error('Transaction aborted'));\n};\n\nTransaction.prototype._close = function (err) {\n if (this.finished) return;\n this.finished = true;\n this._kvStore = null;\n this._objectStore = null;\n\n for (var i in this._waiters) {\n this._waiters[i](err || new Error('Transaction is finished'));\n }\n\n this._waiters = null;\n if (this.onfinish) this.onfinish(err);\n this.onfinish = null;\n};\n\nfunction handleError(cb, event) {\n if (event == null) return handleError(null, cb);\n event.preventDefault();\n event.stopPropagation();\n if (cb) cb(event.target.error);\n}","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nvar runtime = function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []); // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n return generator;\n }\n\n exports.wrap = wrap; // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n\n function tryCatch(fn, obj, arg) {\n try {\n return {\n type: \"normal\",\n arg: fn.call(obj, arg)\n };\n } catch (err) {\n return {\n type: \"throw\",\n arg: err\n };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\"; // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n\n var ContinueSentinel = {}; // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n\n function Generator() {}\n\n function GeneratorFunction() {}\n\n function GeneratorFunctionPrototype() {} // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n\n\n var IteratorPrototype = {};\n\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n\n if (NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunctionPrototype[toStringTagSymbol] = GeneratorFunction.displayName = \"GeneratorFunction\"; // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function (method) {\n prototype[method] = function (arg) {\n return this._invoke(method, arg);\n };\n });\n }\n\n exports.isGeneratorFunction = function (genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor ? ctor === GeneratorFunction || // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\" : false;\n };\n\n exports.mark = function (genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n\n if (!(toStringTagSymbol in genFun)) {\n genFun[toStringTagSymbol] = \"GeneratorFunction\";\n }\n }\n\n genFun.prototype = Object.create(Gp);\n return genFun;\n }; // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n\n\n exports.awrap = function (arg) {\n return {\n __await: arg\n };\n };\n\n function AsyncIterator(generator) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n\n if (value && typeof value === \"object\" && hasOwn.call(value, \"__await\")) {\n return Promise.resolve(value.__await).then(function (value) {\n invoke(\"next\", value, resolve, reject);\n }, function (err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return Promise.resolve(value).then(function (unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function (error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new Promise(function (resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise = // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n } // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n\n\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n\n exports.AsyncIterator = AsyncIterator; // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n\n exports.async = function (innerFn, outerFn, self, tryLocsList) {\n var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList));\n return exports.isGeneratorFunction(outerFn) ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function (result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n } // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n\n\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n var record = tryCatch(innerFn, self, context);\n\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done ? GenStateCompleted : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n } else if (record.type === \"throw\") {\n state = GenStateCompleted; // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n } // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n\n\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (!info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value; // Resume execution at the desired location (see delegateYield).\n\n context.next = delegate.nextLoc; // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n } // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n\n\n context.delegate = null;\n return ContinueSentinel;\n } // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n\n\n defineIteratorMethods(Gp);\n Gp[toStringTagSymbol] = \"Generator\"; // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n\n Gp[iteratorSymbol] = function () {\n return this;\n };\n\n Gp.toString = function () {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = {\n tryLoc: locs[0]\n };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{\n tryLoc: \"root\"\n }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function (object) {\n var keys = [];\n\n for (var key in object) {\n keys.push(key);\n }\n\n keys.reverse(); // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n } // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n\n\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1,\n next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n return next;\n };\n\n return next.next = next;\n }\n } // Return an iterator with no values.\n\n\n return {\n next: doneResult\n };\n }\n\n exports.values = values;\n\n function doneResult() {\n return {\n value: undefined,\n done: true\n };\n }\n\n Context.prototype = {\n constructor: Context,\n reset: function reset(skipTempReset) {\n this.prev = 0;\n this.next = 0; // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n this.method = \"next\";\n this.arg = undefined;\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" && hasOwn.call(this, name) && !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n stop: function stop() {\n this.done = true;\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n dispatchException: function dispatchException(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !!caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n abrupt: function abrupt(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n\n if (entry.tryLoc <= this.prev && hasOwn.call(entry, \"finallyLoc\") && this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry && (type === \"break\" || type === \"continue\") && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n complete: function complete(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" || record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n finish: function finish(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n \"catch\": function _catch(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n\n return thrown;\n }\n } // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n\n\n throw new Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n }; // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n\n return exports;\n}( // If this script is executing as a CommonJS module, use module.exports\n// as the regeneratorRuntime namespace. Otherwise create a new empty\n// object. Either way, the resulting object will be used to initialize\n// the regeneratorRuntime variable at the top of this file.\ntypeof module === \"object\" ? module.exports : {});\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null;\nvar ReflectApply = R && typeof R.apply === 'function' ? R.apply : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n};\nvar ReflectOwnKeys;\n\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys;\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target).concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n};\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\n\nmodule.exports = EventEmitter; // Backwards-compat with node 0.10.x\n\nEventEmitter.EventEmitter = EventEmitter;\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined; // By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\n\nvar defaultMaxListeners = 10;\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function get() {\n return defaultMaxListeners;\n },\n set: function set(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function () {\n if (this._events === undefined || this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n}; // Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\n\n\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n\n this._maxListeners = n;\n return this;\n};\n\nfunction $getMaxListeners(that) {\n if (that._maxListeners === undefined) return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return $getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n\n for (var i = 1; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n\n var doError = type === 'error';\n var events = this._events;\n if (events !== undefined) doError = doError && events.error === undefined;else if (!doError) return false; // If there is no 'error' event listener then throw.\n\n if (doError) {\n var er;\n if (args.length > 0) er = args[0];\n\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n } // At least give some kind of context to the user\n\n\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n if (handler === undefined) return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n\n for (var i = 0; i < len; ++i) {\n ReflectApply(listeners[i], this, args);\n }\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n\n events = target._events;\n\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type, listener.listener ? listener.listener : listener); // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n\n events = target._events;\n }\n\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] = prepend ? [listener, existing] : [existing, listener]; // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n } // Check for listener leak\n\n\n m = $getMaxListeners(target);\n\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true; // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n\n var w = new Error('Possible EventEmitter memory leak detected. ' + existing.length + ' ' + String(type) + ' listeners ' + 'added. Use emitter.setMaxListeners() to ' + 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener = function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n};\n\nfunction onceWrapper() {\n var args = [];\n\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n ReflectApply(this.listener, this.target, args);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = {\n fired: false,\n wrapFn: undefined,\n target: target,\n type: type,\n listener: listener\n };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener = function prependOnceListener(type, listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n}; // Emits a 'removeListener' event if and only if the listener was removed.\n\n\nEventEmitter.prototype.removeListener = function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n\n events = this._events;\n if (events === undefined) return this;\n list = events[type];\n if (list === undefined) return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0) this._events = Object.create(null);else {\n delete events[type];\n if (events.removeListener) this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0) return this;\n if (position === 0) list.shift();else {\n spliceOne(list, position);\n }\n if (list.length === 1) events[type] = list[0];\n if (events.removeListener !== undefined) this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n};\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(type) {\n var listeners, events, i;\n events = this._events;\n if (events === undefined) return this; // not listening for removeListener, no need to emit\n\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0) this._events = Object.create(null);else delete events[type];\n }\n\n return this;\n } // emit removeListener for all listeners on all events\n\n\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n};\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n if (events === undefined) return [];\n var evlistener = events[type];\n if (evlistener === undefined) return [];\n if (typeof evlistener === 'function') return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n return unwrap ? unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function (emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\n\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n\n for (var i = 0; i < n; ++i) {\n copy[i] = arr[i];\n }\n\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++) {\n list[index] = list[index + 1];\n }\n\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n\n return ret;\n}","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor;\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor;\n\n var TempCtor = function TempCtor() {};\n\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n };\n}","module.exports = promisize;\n\nfunction promisize(cb) {\n var promise;\n var res;\n var rej;\n if (cb != null && typeof cb !== 'function') throw new Error('cb must be a function');\n\n if (cb == null && typeof Promise !== 'undefined') {\n promise = new Promise(function (resolve, reject) {\n res = resolve;\n rej = reject;\n });\n }\n\n function intercept(err, result) {\n if (promise) {\n if (err) rej(err);else res(result);\n } else {\n if (cb) cb(err, result);else if (err) throw err;\n }\n }\n\n intercept.promise = promise;\n return intercept;\n}","import arrayWithHoles from \"./arrayWithHoles\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit\";\nimport nonIterableRest from \"./nonIterableRest\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || nonIterableRest();\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n}"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["../node_modules/@babel/runtime/regenerator/index.js","../node_modules/idb-kv-store/index.js","../node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","../node_modules/regenerator-runtime/runtime.js","../node_modules/events/events.js","../node_modules/inherits/inherits_browser.js","../node_modules/promisize/index.js","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js"],"names":["module","exports","__webpack_require__","IdbKvStore","EventEmitter","inherits","promisize","global","window","self","IDB","indexedDB","mozIndexedDB","webkitIndexedDB","msIndexedDB","name","opts","cb","this","Error","call","_db","_closed","_channel","_waiters","Channel","channel","BroadcastChannel","onmessage","event","data","method","emit","request","open","onDbError","handleError","_close","target","error","onclose","onerror","onsuccess","result","close","i","_init","onupgradeneeded","createObjectStore","autoIncrement","on","Transaction","kvStore","mode","_kvStore","_mode","_objectStore","finished","onfinish","done","promise","preventDefault","stopPropagation","INDEXEDDB_SUPPORT","BROADCAST_SUPPORT","prototype","get","key","transaction","getMultiple","keys","set","value","err","json","range","values","remove","clear","count","add","iterator","next","push","removeAllListeners","oncomplete","onabort","objectStore","_getObjectStore","put","e","bind","postMessage","undefined","length","sortedKeys","slice","sort","resultsMap","getReturnValue","map","cursorReq","openCursor","cursor","continue","delete","abort","asyncGeneratorStep","gen","resolve","reject","_next","_throw","arg","info","Promise","then","_asyncToGenerator","fn","args","arguments","apply","d","__webpack_exports__","runtime","Op","Object","hasOwn","hasOwnProperty","$Symbol","Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","wrap","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","create","context","Context","_invoke","state","GenStateSuspendedStart","GenStateExecuting","GenStateCompleted","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","sent","_sent","dispatchException","abrupt","record","tryCatch","type","GenStateSuspendedYield","makeInvokeMethod","obj","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","Gp","defineIteratorMethods","forEach","AsyncIterator","previousPromise","callInvokeWithMethodAndArg","invoke","__await","unwrapped","TypeError","resultName","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","iterable","iteratorMethod","isNaN","constructor","displayName","isGeneratorFunction","genFun","ctor","mark","setPrototypeOf","__proto__","awrap","async","iter","toString","object","reverse","pop","skipTempReset","prev","charAt","stop","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","catch","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","Function","ReflectOwnKeys","R","Reflect","ReflectApply","receiver","ownKeys","getOwnPropertySymbols","getOwnPropertyNames","concat","NumberIsNaN","Number","init","_events","_eventsCount","_maxListeners","defaultMaxListeners","$getMaxListeners","that","_addListener","listener","prepend","m","events","existing","warning","newListener","unshift","warned","w","String","emitter","console","warn","_onceWrap","fired","wrapFn","wrapped","removeListener","_listeners","unwrap","evlistener","arr","ret","Array","unwrapListeners","arrayClone","listenerCount","n","copy","defineProperty","enumerable","RangeError","setMaxListeners","getMaxListeners","doError","er","message","handler","len","listeners","addListener","prependListener","once","prependOnceListener","list","position","originalListener","shift","index","spliceOne","off","rawListeners","eventNames","superCtor","super_","writable","configurable","TempCtor","res","rej","intercept","_slicedToArray","isArray","_arrayWithHoles","_arr","_n","_d","_e","_s","_i","_iterableToArrayLimit","_nonIterableRest"],"mappings":"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","file":"static/js/0.c27538cc.chunk.js","sourcesContent":["module.exports = require(\"regenerator-runtime\");\n","/* eslint-env browser */\nmodule.exports = IdbKvStore;\n\nvar EventEmitter = require('events').EventEmitter;\n\nvar inherits = require('inherits');\n\nvar promisize = require('promisize');\n\nvar global = typeof window === 'undefined' ? self : window;\nvar IDB = global.indexedDB || global.mozIndexedDB || global.webkitIndexedDB || global.msIndexedDB;\nIdbKvStore.INDEXEDDB_SUPPORT = IDB != null;\nIdbKvStore.BROADCAST_SUPPORT = global.BroadcastChannel != null;\ninherits(IdbKvStore, EventEmitter);\n\nfunction IdbKvStore(name, opts, cb) {\n var self = this;\n if (typeof name !== 'string') throw new Error('A name must be supplied of type string');\n if (!IDB) throw new Error('IndexedDB not supported');\n if (typeof opts === 'function') return new IdbKvStore(name, null, opts);\n if (!(self instanceof IdbKvStore)) return new IdbKvStore(name, opts, cb);\n if (!opts) opts = {};\n EventEmitter.call(self);\n self._db = null;\n self._closed = false;\n self._channel = null;\n self._waiters = [];\n var Channel = opts.channel || global.BroadcastChannel;\n\n if (Channel) {\n self._channel = new Channel(name);\n self._channel.onmessage = onChange;\n }\n\n var request = IDB.open(name);\n request.onerror = onerror;\n request.onsuccess = onsuccess;\n request.onupgradeneeded = onupgradeneeded;\n self.on('newListener', onNewListener);\n\n function onerror(event) {\n handleError(event);\n\n self._close(event.target.error);\n\n if (cb) cb(event.target.error);\n }\n\n function onDbError(event) {\n handleError(event);\n\n self._close(event.target.error);\n }\n\n function onsuccess(event) {\n if (self._closed) {\n event.target.result.close();\n } else {\n self._db = event.target.result;\n self._db.onclose = onclose;\n self._db.onerror = onDbError;\n\n for (var i in self._waiters) {\n self._waiters[i]._init(null);\n }\n\n self._waiters = null;\n if (cb) cb(null);\n self.emit('open');\n }\n }\n\n function onupgradeneeded(event) {\n var db = event.target.result;\n db.createObjectStore('kv', {\n autoIncrement: true\n });\n }\n\n function onclose() {\n self._close();\n }\n\n function onNewListener(event) {\n if (event !== 'add' && event !== 'set' && event !== 'remove') return;\n if (!self._channel) return self.emit('error', new Error('No BroadcastChannel support'));\n }\n\n function onChange(event) {\n if (event.data.method === 'add') self.emit('add', event.data);else if (event.data.method === 'set') self.emit('set', event.data);else if (event.data.method === 'remove') self.emit('remove', event.data);\n }\n}\n\nIdbKvStore.prototype.get = function (key, cb) {\n return this.transaction('readonly').get(key, cb);\n};\n\nIdbKvStore.prototype.getMultiple = function (keys, cb) {\n return this.transaction('readonly').getMultiple(keys, cb);\n};\n\nIdbKvStore.prototype.set = function (key, value, cb) {\n cb = promisize(cb);\n var error = null;\n var t = this.transaction('readwrite', function (err) {\n error = error || err;\n cb(error);\n });\n t.set(key, value, function (err) {\n error = err;\n });\n return cb.promise;\n};\n\nIdbKvStore.prototype.json = function (range, cb) {\n return this.transaction('readonly').json(range, cb);\n};\n\nIdbKvStore.prototype.keys = function (range, cb) {\n return this.transaction('readonly').keys(range, cb);\n};\n\nIdbKvStore.prototype.values = function (range, cb) {\n return this.transaction('readonly').values(range, cb);\n};\n\nIdbKvStore.prototype.remove = function (key, cb) {\n cb = promisize(cb);\n var error = null;\n var t = this.transaction('readwrite', function (err) {\n error = error || err;\n cb(error);\n });\n t.remove(key, function (err) {\n error = err;\n });\n return cb.promise;\n};\n\nIdbKvStore.prototype.clear = function (cb) {\n cb = promisize(cb);\n var error = null;\n var t = this.transaction('readwrite', function (err) {\n error = error || err;\n cb(error);\n });\n t.clear(function (err) {\n error = err;\n });\n return cb.promise;\n};\n\nIdbKvStore.prototype.count = function (range, cb) {\n return this.transaction('readonly').count(range, cb);\n};\n\nIdbKvStore.prototype.add = function (key, value, cb) {\n cb = promisize(cb);\n var error = null;\n var t = this.transaction('readwrite', function (err) {\n error = error || err;\n cb(error);\n });\n t.add(key, value, function (err) {\n error = err;\n });\n return cb.promise;\n};\n\nIdbKvStore.prototype.iterator = function (range, next) {\n return this.transaction('readonly').iterator(range, next);\n};\n\nIdbKvStore.prototype.transaction = function (mode, onfinish) {\n if (this._closed) throw new Error('Database is closed');\n var transaction = new Transaction(this, mode, onfinish);\n if (this._db) transaction._init(null);else this._waiters.push(transaction);\n return transaction;\n};\n\nIdbKvStore.prototype.close = function () {\n this._close();\n};\n\nIdbKvStore.prototype._close = function (err) {\n if (this._closed) return;\n this._closed = true;\n if (this._db) this._db.close();\n if (this._channel) this._channel.close();\n this._db = null;\n this._channel = null;\n if (err) this.emit('error', err);\n this.emit('close');\n\n for (var i in this._waiters) {\n this._waiters[i]._init(err || new Error('Database is closed'));\n }\n\n this._waiters = null;\n this.removeAllListeners();\n};\n\nfunction Transaction(kvStore, mode, cb) {\n if (typeof mode === 'function') return new Transaction(kvStore, null, mode);\n this._kvStore = kvStore;\n this._mode = mode || 'readwrite';\n this._objectStore = null;\n this._waiters = null;\n this.finished = false;\n this.onfinish = promisize(cb); // `onfinish` public variable for backwards compatibility with v4.3.1\n\n this.done = this.onfinish.promise;\n\n if (this._mode !== 'readonly' && this._mode !== 'readwrite') {\n throw new Error('mode must be either \"readonly\" or \"readwrite\"');\n }\n}\n\nTransaction.prototype._init = function (err) {\n var self = this;\n if (self.finished) return;\n if (err) return self._close(err);\n\n var transaction = self._kvStore._db.transaction('kv', self._mode);\n\n transaction.oncomplete = oncomplete;\n transaction.onerror = onerror;\n transaction.onabort = onerror;\n self._objectStore = transaction.objectStore('kv');\n\n for (var i in self._waiters) {\n self._waiters[i](null, self._objectStore);\n }\n\n self._waiters = null;\n\n function oncomplete() {\n self._close(null);\n }\n\n function onerror(event) {\n handleError(event);\n\n self._close(event.target.error);\n }\n};\n\nTransaction.prototype._getObjectStore = function (cb) {\n if (this.finished) throw new Error('Transaction is finished');\n if (this._objectStore) return cb(null, this._objectStore);\n this._waiters = this._waiters || [];\n\n this._waiters.push(cb);\n};\n\nTransaction.prototype.set = function (key, value, cb) {\n var self = this;\n if (key == null || value == null) throw new Error('A key and value must be given');\n cb = promisize(cb);\n\n self._getObjectStore(function (err, objectStore) {\n if (err) return cb(err);\n\n try {\n var request = objectStore.put(value, key);\n } catch (e) {\n return cb(e);\n }\n\n request.onerror = handleError.bind(this, cb);\n\n request.onsuccess = function () {\n if (self._kvStore._channel) {\n self._kvStore._channel.postMessage({\n method: 'set',\n key: key,\n value: value\n });\n }\n\n cb(null);\n };\n });\n\n return cb.promise;\n};\n\nTransaction.prototype.add = function (key, value, cb) {\n var self = this;\n if (value == null && key != null) return self.add(undefined, key, cb);\n if (typeof value === 'function' || value == null && cb == null) return self.add(undefined, key, value);\n if (value == null) throw new Error('A value must be provided as an argument');\n cb = promisize(cb);\n\n self._getObjectStore(function (err, objectStore) {\n if (err) return cb(err);\n\n try {\n var request = key == null ? objectStore.add(value) : objectStore.add(value, key);\n } catch (e) {\n return cb(e);\n }\n\n request.onerror = handleError.bind(this, cb);\n\n request.onsuccess = function () {\n if (self._kvStore._channel) {\n self._kvStore._channel.postMessage({\n method: 'add',\n key: key,\n value: value\n });\n }\n\n cb(null);\n };\n });\n\n return cb.promise;\n};\n\nTransaction.prototype.get = function (key, cb) {\n var self = this;\n if (key == null) throw new Error('A key must be given as an argument');\n cb = promisize(cb);\n\n self._getObjectStore(function (err, objectStore) {\n if (err) return cb(err);\n\n try {\n var request = objectStore.get(key);\n } catch (e) {\n return cb(e);\n }\n\n request.onerror = handleError.bind(this, cb);\n\n request.onsuccess = function (event) {\n cb(null, event.target.result);\n };\n });\n\n return cb.promise;\n};\n\nTransaction.prototype.getMultiple = function (keys, cb) {\n var self = this;\n if (keys == null) throw new Error('An array of keys must be given as an argument');\n cb = promisize(cb);\n\n if (keys.length === 0) {\n cb(null, []);\n return cb.promise;\n }\n\n self._getObjectStore(function (err, objectStore) {\n if (err) return cb(err); // Implementation mostly taken from https://www.codeproject.com/Articles/744986/How-to-do-some-magic-with-indexedDB\n\n var sortedKeys = keys.slice().sort();\n var i = 0;\n var resultsMap = {};\n\n var getReturnValue = function getReturnValue() {\n return keys.map(function (key) {\n return resultsMap[key];\n });\n };\n\n var cursorReq = objectStore.openCursor();\n cursorReq.onerror = handleError.bind(this, cb);\n\n cursorReq.onsuccess = function (event) {\n var cursor = event.target.result;\n\n if (!cursor) {\n cb(null, getReturnValue());\n return;\n }\n\n var key = cursor.key;\n\n while (key > sortedKeys[i]) {\n // The cursor has passed beyond this key. Check next.\n ++i;\n\n if (i === sortedKeys.length) {\n // There is no next. Stop searching.\n cb(null, getReturnValue());\n return;\n }\n }\n\n if (key === sortedKeys[i]) {\n resultsMap[key] = cursor.value; // The current cursor value should be included and we should continue\n // a single step in case next item has the same key or possibly our\n // next key in sortedKeys.\n\n cursor.continue();\n } else {\n // cursor.key not yet at sortedKeys[i]. Forward cursor to the next key to hunt for.\n cursor.continue(sortedKeys[i]);\n }\n };\n });\n\n return cb.promise;\n};\n\nTransaction.prototype.json = function (range, cb) {\n var self = this;\n if (typeof range === 'function') return self.json(null, range);\n cb = promisize(cb);\n var json = {};\n self.iterator(range, function (err, cursor) {\n if (err) return cb(err);\n\n if (cursor) {\n json[cursor.key] = cursor.value;\n cursor.continue();\n } else {\n cb(null, json);\n }\n });\n return cb.promise;\n};\n\nTransaction.prototype.keys = function (range, cb) {\n var self = this;\n if (typeof range === 'function') return self.keys(null, range);\n cb = promisize(cb);\n var keys = [];\n self.iterator(range, function (err, cursor) {\n if (err) return cb(err);\n\n if (cursor) {\n keys.push(cursor.key);\n cursor.continue();\n } else {\n cb(null, keys);\n }\n });\n return cb.promise;\n};\n\nTransaction.prototype.values = function (range, cb) {\n var self = this;\n if (typeof range === 'function') return self.values(null, range);\n cb = promisize(cb);\n var values = [];\n self.iterator(range, function (err, cursor) {\n if (err) return cb(err);\n\n if (cursor) {\n values.push(cursor.value);\n cursor.continue();\n } else {\n cb(null, values);\n }\n });\n return cb.promise;\n};\n\nTransaction.prototype.remove = function (key, cb) {\n var self = this;\n if (key == null) throw new Error('A key must be given as an argument');\n cb = promisize(cb);\n\n self._getObjectStore(function (err, objectStore) {\n if (err) return cb(err);\n\n try {\n var request = objectStore.delete(key);\n } catch (e) {\n return cb(e);\n }\n\n request.onerror = handleError.bind(this, cb);\n\n request.onsuccess = function () {\n if (self._kvStore._channel) {\n self._kvStore._channel.postMessage({\n method: 'remove',\n key: key\n });\n }\n\n cb(null);\n };\n });\n\n return cb.promise;\n};\n\nTransaction.prototype.clear = function (cb) {\n var self = this;\n cb = promisize(cb);\n\n self._getObjectStore(function (err, objectStore) {\n if (err) return cb(err);\n\n try {\n var request = objectStore.clear();\n } catch (e) {\n return cb(e);\n }\n\n request.onerror = handleError.bind(this, cb);\n\n request.onsuccess = function () {\n cb(null);\n };\n });\n\n return cb.promise;\n};\n\nTransaction.prototype.count = function (range, cb) {\n var self = this;\n if (typeof range === 'function') return self.count(null, range);\n cb = promisize(cb);\n\n self._getObjectStore(function (err, objectStore) {\n if (err) return cb(err);\n\n try {\n var request = range == null ? objectStore.count() : objectStore.count(range);\n } catch (e) {\n return cb(e);\n }\n\n request.onerror = handleError.bind(this, cb);\n\n request.onsuccess = function (event) {\n cb(null, event.target.result);\n };\n });\n\n return cb.promise;\n};\n\nTransaction.prototype.iterator = function (range, next) {\n var self = this;\n if (typeof range === 'function') return self.iterator(null, range);\n if (typeof next !== 'function') throw new Error('A function must be given');\n\n self._getObjectStore(function (err, objectStore) {\n if (err) return next(err);\n\n try {\n var request = range == null ? objectStore.openCursor() : objectStore.openCursor(range);\n } catch (e) {\n return next(e);\n }\n\n request.onerror = handleError.bind(this, next);\n\n request.onsuccess = function (event) {\n var cursor = event.target.result;\n next(null, cursor);\n };\n });\n};\n\nTransaction.prototype.abort = function () {\n if (this.finished) throw new Error('Transaction is finished');\n if (this._objectStore) this._objectStore.transaction.abort();\n\n this._close(new Error('Transaction aborted'));\n};\n\nTransaction.prototype._close = function (err) {\n if (this.finished) return;\n this.finished = true;\n this._kvStore = null;\n this._objectStore = null;\n\n for (var i in this._waiters) {\n this._waiters[i](err || new Error('Transaction is finished'));\n }\n\n this._waiters = null;\n if (this.onfinish) this.onfinish(err);\n this.onfinish = null;\n};\n\nfunction handleError(cb, event) {\n if (event == null) return handleError(null, cb);\n event.preventDefault();\n event.stopPropagation();\n if (cb) cb(event.target.error);\n}","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nvar runtime = function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []); // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n return generator;\n }\n\n exports.wrap = wrap; // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n\n function tryCatch(fn, obj, arg) {\n try {\n return {\n type: \"normal\",\n arg: fn.call(obj, arg)\n };\n } catch (err) {\n return {\n type: \"throw\",\n arg: err\n };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\"; // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n\n var ContinueSentinel = {}; // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n\n function Generator() {}\n\n function GeneratorFunction() {}\n\n function GeneratorFunctionPrototype() {} // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n\n\n var IteratorPrototype = {};\n\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n\n if (NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunctionPrototype[toStringTagSymbol] = GeneratorFunction.displayName = \"GeneratorFunction\"; // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function (method) {\n prototype[method] = function (arg) {\n return this._invoke(method, arg);\n };\n });\n }\n\n exports.isGeneratorFunction = function (genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor ? ctor === GeneratorFunction || // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\" : false;\n };\n\n exports.mark = function (genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n\n if (!(toStringTagSymbol in genFun)) {\n genFun[toStringTagSymbol] = \"GeneratorFunction\";\n }\n }\n\n genFun.prototype = Object.create(Gp);\n return genFun;\n }; // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n\n\n exports.awrap = function (arg) {\n return {\n __await: arg\n };\n };\n\n function AsyncIterator(generator) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n\n if (value && typeof value === \"object\" && hasOwn.call(value, \"__await\")) {\n return Promise.resolve(value.__await).then(function (value) {\n invoke(\"next\", value, resolve, reject);\n }, function (err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return Promise.resolve(value).then(function (unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function (error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new Promise(function (resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise = // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n } // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n\n\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n\n exports.AsyncIterator = AsyncIterator; // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n\n exports.async = function (innerFn, outerFn, self, tryLocsList) {\n var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList));\n return exports.isGeneratorFunction(outerFn) ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function (result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n } // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n\n\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n var record = tryCatch(innerFn, self, context);\n\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done ? GenStateCompleted : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n } else if (record.type === \"throw\") {\n state = GenStateCompleted; // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n } // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n\n\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (!info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value; // Resume execution at the desired location (see delegateYield).\n\n context.next = delegate.nextLoc; // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n } // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n\n\n context.delegate = null;\n return ContinueSentinel;\n } // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n\n\n defineIteratorMethods(Gp);\n Gp[toStringTagSymbol] = \"Generator\"; // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n\n Gp[iteratorSymbol] = function () {\n return this;\n };\n\n Gp.toString = function () {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = {\n tryLoc: locs[0]\n };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{\n tryLoc: \"root\"\n }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function (object) {\n var keys = [];\n\n for (var key in object) {\n keys.push(key);\n }\n\n keys.reverse(); // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n } // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n\n\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1,\n next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n return next;\n };\n\n return next.next = next;\n }\n } // Return an iterator with no values.\n\n\n return {\n next: doneResult\n };\n }\n\n exports.values = values;\n\n function doneResult() {\n return {\n value: undefined,\n done: true\n };\n }\n\n Context.prototype = {\n constructor: Context,\n reset: function reset(skipTempReset) {\n this.prev = 0;\n this.next = 0; // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n this.method = \"next\";\n this.arg = undefined;\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" && hasOwn.call(this, name) && !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n stop: function stop() {\n this.done = true;\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n dispatchException: function dispatchException(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !!caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n abrupt: function abrupt(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n\n if (entry.tryLoc <= this.prev && hasOwn.call(entry, \"finallyLoc\") && this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry && (type === \"break\" || type === \"continue\") && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n complete: function complete(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" || record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n finish: function finish(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n \"catch\": function _catch(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n\n return thrown;\n }\n } // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n\n\n throw new Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n }; // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n\n return exports;\n}( // If this script is executing as a CommonJS module, use module.exports\n// as the regeneratorRuntime namespace. Otherwise create a new empty\n// object. Either way, the resulting object will be used to initialize\n// the regeneratorRuntime variable at the top of this file.\ntypeof module === \"object\" ? module.exports : {});\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null;\nvar ReflectApply = R && typeof R.apply === 'function' ? R.apply : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n};\nvar ReflectOwnKeys;\n\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys;\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target).concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n};\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\n\nmodule.exports = EventEmitter; // Backwards-compat with node 0.10.x\n\nEventEmitter.EventEmitter = EventEmitter;\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined; // By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\n\nvar defaultMaxListeners = 10;\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function get() {\n return defaultMaxListeners;\n },\n set: function set(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function () {\n if (this._events === undefined || this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n}; // Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\n\n\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n\n this._maxListeners = n;\n return this;\n};\n\nfunction $getMaxListeners(that) {\n if (that._maxListeners === undefined) return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return $getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n\n for (var i = 1; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n\n var doError = type === 'error';\n var events = this._events;\n if (events !== undefined) doError = doError && events.error === undefined;else if (!doError) return false; // If there is no 'error' event listener then throw.\n\n if (doError) {\n var er;\n if (args.length > 0) er = args[0];\n\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n } // At least give some kind of context to the user\n\n\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n if (handler === undefined) return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n\n for (var i = 0; i < len; ++i) {\n ReflectApply(listeners[i], this, args);\n }\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n\n events = target._events;\n\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type, listener.listener ? listener.listener : listener); // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n\n events = target._events;\n }\n\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] = prepend ? [listener, existing] : [existing, listener]; // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n } // Check for listener leak\n\n\n m = $getMaxListeners(target);\n\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true; // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n\n var w = new Error('Possible EventEmitter memory leak detected. ' + existing.length + ' ' + String(type) + ' listeners ' + 'added. Use emitter.setMaxListeners() to ' + 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener = function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n};\n\nfunction onceWrapper() {\n var args = [];\n\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n ReflectApply(this.listener, this.target, args);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = {\n fired: false,\n wrapFn: undefined,\n target: target,\n type: type,\n listener: listener\n };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener = function prependOnceListener(type, listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n}; // Emits a 'removeListener' event if and only if the listener was removed.\n\n\nEventEmitter.prototype.removeListener = function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n\n events = this._events;\n if (events === undefined) return this;\n list = events[type];\n if (list === undefined) return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0) this._events = Object.create(null);else {\n delete events[type];\n if (events.removeListener) this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0) return this;\n if (position === 0) list.shift();else {\n spliceOne(list, position);\n }\n if (list.length === 1) events[type] = list[0];\n if (events.removeListener !== undefined) this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n};\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(type) {\n var listeners, events, i;\n events = this._events;\n if (events === undefined) return this; // not listening for removeListener, no need to emit\n\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0) this._events = Object.create(null);else delete events[type];\n }\n\n return this;\n } // emit removeListener for all listeners on all events\n\n\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n};\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n if (events === undefined) return [];\n var evlistener = events[type];\n if (evlistener === undefined) return [];\n if (typeof evlistener === 'function') return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n return unwrap ? unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function (emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\n\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n\n for (var i = 0; i < n; ++i) {\n copy[i] = arr[i];\n }\n\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++) {\n list[index] = list[index + 1];\n }\n\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n\n return ret;\n}","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor;\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor;\n\n var TempCtor = function TempCtor() {};\n\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n };\n}","module.exports = promisize;\n\nfunction promisize(cb) {\n var promise;\n var res;\n var rej;\n if (cb != null && typeof cb !== 'function') throw new Error('cb must be a function');\n\n if (cb == null && typeof Promise !== 'undefined') {\n promise = new Promise(function (resolve, reject) {\n res = resolve;\n rej = reject;\n });\n }\n\n function intercept(err, result) {\n if (promise) {\n if (err) rej(err);else res(result);\n } else {\n if (cb) cb(err, result);else if (err) throw err;\n }\n }\n\n intercept.promise = promise;\n return intercept;\n}","import arrayWithHoles from \"./arrayWithHoles\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit\";\nimport nonIterableRest from \"./nonIterableRest\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || nonIterableRest();\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n}"],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/5.658f752c.chunk.js b/static/js/5.658f752c.chunk.js deleted file mode 100644 index ab7f037..0000000 --- a/static/js/5.658f752c.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[5],[function(e,t,n){"use strict";e.exports=n(33)},,,function(e,t,n){"use strict";var r=n(16),o=n(47),i=Object.prototype.toString;function a(e){return"[object Array]"===i.call(e)}function u(e){return null!==e&&"object"===typeof e}function l(e){return"[object Function]"===i.call(e)}function s(e,t){if(null!==e&&"undefined"!==typeof e)if("object"!==typeof e&&(e=[e]),a(e))for(var n=0,r=e.length;n0){var e=new Uint8Array(this._pieces);r.useArrayBufferView||(e=e.buffer),this._parts.push(e),this._pieces=[]}},i.prototype.getBuffer=function(){if(this.flush(),r.useBlobBuilder){for(var e=new o,t=0,n=this._parts.length;t>23&255)-127;return(0==e>>31?1:-1)*(8388607&e|8388608)*Math.pow(2,t-23)},a.prototype.unpack_double=function(){var e=this.unpack_uint32(),t=this.unpack_uint32(),n=(e>>20&2047)-1023;return(0==e>>31?1:-1)*((1048575&e|1048576)*Math.pow(2,n-20)+t*Math.pow(2,n-52))},a.prototype.read=function(e){var t=this.index;if(t+e<=this.length)return this.dataView.subarray(t,t+e);throw new Error("BinaryPackFailure: read index out of range")},u.prototype.getBuffer=function(){return this.bufferBuilder.getBuffer()},u.prototype.pack=function(e){var t=typeof e;if("string"==t)this.pack_string(e);else if("number"==t)Math.floor(e)===e?this.pack_integer(e):this.pack_double(e);else if("boolean"==t)!0===e?this.bufferBuilder.append(195):!1===e&&this.bufferBuilder.append(194);else if("undefined"==t)this.bufferBuilder.append(192);else{if("object"!=t)throw new Error('Type "'+t+'" not yet supported');if(null===e)this.bufferBuilder.append(192);else{var n=e.constructor;if(n==Array)this.pack_array(e);else if(n==Blob||n==File)this.pack_bin(e);else if(n==ArrayBuffer)o.useArrayBufferView?this.pack_bin(new Uint8Array(e)):this.pack_bin(e);else if("BYTES_PER_ELEMENT"in e)o.useArrayBufferView?this.pack_bin(new Uint8Array(e.buffer)):this.pack_bin(e.buffer);else if(n==Object)this.pack_object(e);else if(n==Date)this.pack_string(e.toString());else{if("function"!=typeof e.toBinaryPack)throw new Error('Type "'+n.toString()+'" not yet supported');this.bufferBuilder.append(e.toBinaryPack())}}}this.bufferBuilder.flush()},u.prototype.pack_bin=function(e){var t=e.length||e.byteLength||e.size;if(t<=15)this.pack_uint8(160+t);else if(t<=65535)this.bufferBuilder.append(218),this.pack_uint16(t);else{if(!(t<=4294967295))throw new Error("Invalid length");this.bufferBuilder.append(219),this.pack_uint32(t)}this.bufferBuilder.append(e)},u.prototype.pack_string=function(e){var t=function(e){return e.length>600?new Blob([e]).size:e.replace(/[^\u0000-\u007F]/g,l).length}(e);if(t<=15)this.pack_uint8(176+t);else if(t<=65535)this.bufferBuilder.append(216),this.pack_uint16(t);else{if(!(t<=4294967295))throw new Error("Invalid length");this.bufferBuilder.append(217),this.pack_uint32(t)}this.bufferBuilder.append(e)},u.prototype.pack_array=function(e){var t=e.length;if(t<=15)this.pack_uint8(144+t);else if(t<=65535)this.bufferBuilder.append(220),this.pack_uint16(t);else{if(!(t<=4294967295))throw new Error("Invalid length");this.bufferBuilder.append(221),this.pack_uint32(t)}for(var n=0;n>8),this.bufferBuilder.append(255&e)},u.prototype.pack_uint32=function(e){var t=4294967295&e;this.bufferBuilder.append((4278190080&t)>>>24),this.bufferBuilder.append((16711680&t)>>>16),this.bufferBuilder.append((65280&t)>>>8),this.bufferBuilder.append(255&t)},u.prototype.pack_uint64=function(e){var t=e/Math.pow(2,32),n=e%Math.pow(2,32);this.bufferBuilder.append((4278190080&t)>>>24),this.bufferBuilder.append((16711680&t)>>>16),this.bufferBuilder.append((65280&t)>>>8),this.bufferBuilder.append(255&t),this.bufferBuilder.append((4278190080&n)>>>24),this.bufferBuilder.append((16711680&n)>>>16),this.bufferBuilder.append((65280&n)>>>8),this.bufferBuilder.append(255&n)},u.prototype.pack_int8=function(e){this.bufferBuilder.append(255&e)},u.prototype.pack_int16=function(e){this.bufferBuilder.append((65280&e)>>8),this.bufferBuilder.append(255&e)},u.prototype.pack_int32=function(e){this.bufferBuilder.append(e>>>24&255),this.bufferBuilder.append((16711680&e)>>>16),this.bufferBuilder.append((65280&e)>>>8),this.bufferBuilder.append(255&e)},u.prototype.pack_int64=function(e){var t=Math.floor(e/Math.pow(2,32)),n=e%Math.pow(2,32);this.bufferBuilder.append((4278190080&t)>>>24),this.bufferBuilder.append((16711680&t)>>>16),this.bufferBuilder.append((65280&t)>>>8),this.bufferBuilder.append(255&t),this.bufferBuilder.append((4278190080&n)>>>24),this.bufferBuilder.append((16711680&n)>>>16),this.bufferBuilder.append((65280&n)>>>8),this.bufferBuilder.append(255&n)}},{"./bufferbuilder":"vHo1"}],sXtV:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.RTCSessionDescription=window.RTCSessionDescription||window.mozRTCSessionDescription,n.RTCPeerConnection=window.RTCPeerConnection||window.mozRTCPeerConnection||window.webkitRTCPeerConnection,n.RTCIceCandidate=window.RTCIceCandidate||window.mozRTCIceCandidate},{}],BHXf:[function(e,t,n){arguments[3],arguments[3];var r=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t};Object.defineProperty(n,"__esModule",{value:!0});var o=r(e("js-binarypack")),i=e("./adapter"),a={iceServers:[{urls:"stun:stun.l.google.com:19302"}],sdpSemantics:"unified-plan"},u=function(){function e(){}var t;return e.noop=function(){},e.validateId=function(e){return!e||/^[A-Za-z0-9]+(?:[ _-][A-Za-z0-9]+)*$/.test(e)},e.chunk=function(t){for(var n,r=[],o=t.size,i=Math.ceil(o/e.chunkedMTU),a=n=0;a0)&&!(r=i.next()).done;)a.push(r.value)}catch(u){o={error:u}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(o)throw o.error}}return a},o=this&&this.__spread||function(){for(var e=[],t=0;t=i.All&&this._print.apply(this,o([i.All],e))},e.prototype.warn=function(){for(var e=[],t=0;t=i.Warnings&&this._print.apply(this,o([i.Warnings],e))},e.prototype.error=function(){for(var e=[],t=0;t=i.Errors&&this._print.apply(this,o([i.Errors],e))},e.prototype.setLogFunction=function(e){this._print=e},e.prototype._print=function(e){for(var t=[],n=1;n=i.All?console.log.apply(console,o(r)):e>=i.Warnings?console.warn.apply(console,o(["WARNING"],r)):e>=i.Errors&&console.error.apply(console,o(["ERROR"],r))},e}();n.default=new a},{}],"9ZRY":[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),function(e){e.Open="open",e.Stream="stream",e.Data="data",e.Close="close",e.Error="error",e.IceStateChanged="iceStateChanged"}(n.ConnectionEventType||(n.ConnectionEventType={})),function(e){e.Data="data",e.Media="media"}(n.ConnectionType||(n.ConnectionType={})),function(e){e.Open="open",e.Close="close",e.Connection="connection",e.Call="call",e.Disconnected="disconnected",e.Error="error"}(n.PeerEventType||(n.PeerEventType={})),function(e){e.BrowserIncompatible="browser-incompatible",e.Disconnected="disconnected",e.InvalidID="invalid-id",e.InvalidKey="invalid-key",e.Network="network",e.PeerUnavailable="peer-unavailable",e.SslUnavailable="ssl-unavailable",e.ServerError="server-error",e.SocketError="socket-error",e.SocketClosed="socket-closed",e.UnavailableID="unavailable-id",e.WebRTC="webrtc"}(n.PeerErrorType||(n.PeerErrorType={})),function(e){e.Binary="binary",e.BinaryUTF8="binary-utf8",e.JSON="json"}(n.SerializationType||(n.SerializationType={})),function(e){e.Message="message",e.Disconnected="disconnected",e.Error="error",e.Close="close"}(n.SocketEventType||(n.SocketEventType={})),function(e){e.Heartbeat="HEARTBEAT",e.Candidate="CANDIDATE",e.Offer="OFFER",e.Answer="ANSWER",e.Open="OPEN",e.Error="ERROR",e.IdTaken="ID-TAKEN",e.InvalidKey="INVALID-KEY",e.Leave="LEAVE",e.Expire="EXPIRE"}(n.ServerMessageType||(n.ServerMessageType={}))},{}],wJlv:[function(e,t,n){"use strict";var r=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),o=this&&this.__read||function(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,o,i=n.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(r=i.next()).done;)a.push(r.value)}catch(c){o={error:c}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(o)throw o.error}}return a},i=this&&this.__spread||function(){for(var e=[],t=0;t=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}}},u=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(n,"__esModule",{value:!0});var l=e("eventemitter3"),s=u(e("./logger")),c=e("./enums"),f=function(e){function t(t,n,r,o,i){var a=e.call(this)||this;a.WEB_SOCKET_PING_INTERVAL=2e4,a._disconnected=!1,a._messagesQueue=[];var u=t?"wss://":"ws://";return a._wsUrl=u+n+":"+r+o+"peerjs?key="+i,a}return r(t,e),t.prototype.start=function(e,t){this._id=e,this._wsUrl+="&id="+e+"&token="+t,this._startWebSocket()},t.prototype._startWebSocket=function(){var e=this;this._socket||(this._socket=new WebSocket(this._wsUrl),this._socket.onmessage=function(t){var n;try{n=JSON.parse(t.data)}catch(a){return void s.default.log("Invalid server message",t.data)}e.emit(c.SocketEventType.Message,n)},this._socket.onclose=function(t){s.default.log("Socket closed.",t),e._disconnected=!0,clearTimeout(e._wsPingTimer),e.emit(c.SocketEventType.Disconnected)},this._socket.onopen=function(){e._disconnected||(e._sendQueuedMessages(),s.default.log("Socket open"),e._scheduleHeartbeat())})},t.prototype._scheduleHeartbeat=function(){var e=this;this._wsPingTimer=setTimeout(function(){e._sendHeartbeat()},this.WEB_SOCKET_PING_INTERVAL)},t.prototype._sendHeartbeat=function(){if(this._wsOpen()){var e=JSON.stringify({type:c.ServerMessageType.Heartbeat});this._socket.send(e),this._scheduleHeartbeat()}else s.default.log("Cannot send heartbeat, because socket closed")},t.prototype._wsOpen=function(){return!!this._socket&&1==this._socket.readyState},t.prototype._sendQueuedMessages=function(){var e,t,n=i(this._messagesQueue);this._messagesQueue=[];try{for(var r=a(n),o=r.next();!o.done;o=r.next()){var u=o.value;this.send(u)}}catch(f){e={error:f}}finally{try{o&&!o.done&&(t=r.return)&&t.call(r)}finally{if(e)throw e.error}}},t.prototype.send=function(e){if(!this._disconnected)if(this._id)if(e.type){if(this._wsOpen()){var t=JSON.stringify(e);this._socket.send(t)}}else this.emit(c.SocketEventType.Error,"Invalid message");else this._messagesQueue.push(e)},t.prototype.close=function(){!this._disconnected&&this._socket&&(this._socket.close(),this._disconnected=!0,clearTimeout(this._wsPingTimer))},t}(l.EventEmitter);n.Socket=f},{eventemitter3:"2JJl","./logger":"8WOs","./enums":"9ZRY"}],T9kO:[function(e,t,n){arguments[3],arguments[3];var r=e("js-binarypack"),o={debug:!1,inherits:function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})},extend:function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);return e},pack:r.pack,unpack:r.unpack,log:function(){if(o.debug){for(var e=[],t=0;t=t.chunks.length?(r.log("Time: ",new Date-t.timer),delete this._outgoing[n]):this._processAcks()}break;case"chunk":if(!(t=o)){if(!0===this._received[n])break;t={ack:["ack",n,0],chunks:[]},this._incoming[n]=t}var l=e[2],s=e[3];t.chunks[l]=new Uint8Array(s),l===t.ack[2]&&this._calculateNextAck(n),this._ack(n);break;default:this._handleSend(e)}},o.prototype._chunk=function(e){for(var t=[],n=e.size,o=0;o=n.length&&o.push(["end",e,n.length]),o._multiple=!0,this._handleSend(o)},o.prototype._complete=function(e){r.log("Completed called for",e);var t=this,n=this._incoming[e].chunks,o=new Blob(n);r.blobToArrayBuffer(o,function(e){t.onmessage(r.unpack(e))}),delete this._incoming[e]},o.higherBandwidthSDP=function(e){var t=navigator.appVersion.match(/Chrome\/(.*?) /);if(t&&(t=parseInt(t[1].split(".").shift()))<31){var n=e.split("b=AS:30");if(n.length>1)return n[0]+"b=AS:102400"+n[1]}return e},o.prototype.onmessage=function(e){},t.exports=o},{"./util":"T9kO"}],HCdX:[function(e,t,n){"use strict";var r=this&&this.__assign||function(){return(r=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&o[o.length-1])&&(6===i[0]||2===i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}}},a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(n,"__esModule",{value:!0});var u=e("./util"),l=a(e("./logger")),s=e("./negotiator"),c=e("./enums"),f=function(e){function t(n,r,o){var i=e.call(this,n,r,o)||this;return i._localStream=i.options._stream,i.connectionId=i.options.connectionId||t.ID_PREFIX+u.util.randomToken(),i._negotiator=new s.Negotiator(i),i._localStream&&i._negotiator.startConnection({_stream:i._localStream,originator:!0}),i}return r(t,e),Object.defineProperty(t.prototype,"type",{get:function(){return c.ConnectionType.Media},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"localStream",{get:function(){return this._localStream},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"remoteStream",{get:function(){return this._remoteStream},enumerable:!0,configurable:!0}),t.prototype.addStream=function(t){l.default.log("Receiving stream",t),this._remoteStream=t,e.prototype.emit.call(this,c.ConnectionEventType.Stream,t)},t.prototype.handleMessage=function(e){var t=e.type,n=e.payload;switch(e.type){case c.ServerMessageType.Answer:this._negotiator.handleSDP(t,n.sdp),this._open=!0;break;case c.ServerMessageType.Candidate:this._negotiator.handleCandidate(n.candidate);break;default:l.default.warn("Unrecognized message type:"+t+" from peer:"+this.peer)}},t.prototype.answer=function(e,t){var n,r;if(void 0===t&&(t={}),this._localStream)l.default.warn("Local stream already exists on this MediaConnection. Are you answering a call twice?");else{this._localStream=e,t&&t.sdpTransform&&(this.options.sdpTransform=t.sdpTransform),this._negotiator.startConnection(o({},this.options._payload,{_stream:e}));var a=this.provider._getMessages(this.connectionId);try{for(var u=i(a),s=u.next();!s.done;s=u.next()){var c=s.value;this.handleMessage(c)}}catch(f){n={error:f}}finally{try{s&&!s.done&&(r=u.return)&&r.call(u)}finally{if(n)throw n.error}}this._open=!0}},t.prototype.close=function(){this._negotiator&&(this._negotiator.cleanup(),this._negotiator=null),this._localStream=null,this._remoteStream=null,this.provider&&(this.provider._removeConnection(this),this.provider=null),this.options&&this.options._stream&&(this.options._stream=null),this.open&&(this._open=!1,e.prototype.emit.call(this,c.ConnectionEventType.Close))},t.ID_PREFIX="mc_",t}(e("./baseconnection").BaseConnection);n.MediaConnection=f},{"./util":"BHXf","./logger":"8WOs","./negotiator":"HCdX","./enums":"9ZRY","./baseconnection":"tQFK"}],GBTQ:[function(e,t,n){"use strict";var r=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),o=this&&this.__values||function(e){var t="function"==typeof Symbol&&e[Symbol.iterator],n=0;return t?t.call(e):{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}}},i=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t};Object.defineProperty(n,"__esModule",{value:!0});var a=e("reliable"),u=e("./util"),l=i(e("./logger")),s=e("./negotiator"),c=e("./enums"),f=function(e){function t(n,r,o){var i=e.call(this,n,r,o)||this;return i._buffer=[],i._bufferSize=0,i._buffering=!1,i._chunkedData={},i.connectionId=i.options.connectionId||t.ID_PREFIX+u.util.randomToken(),i.label=i.options.label||i.connectionId,i.serialization=i.options.serialization||c.SerializationType.Binary,i.reliable=i.options.reliable,i.options._payload&&(i._peerBrowser=i.options._payload.browser),i._negotiator=new s.Negotiator(i),i._negotiator.startConnection(i.options._payload||{originator:!0}),i}return r(t,e),Object.defineProperty(t.prototype,"type",{get:function(){return c.ConnectionType.Data},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"dataChannel",{get:function(){return this._dc},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"bufferSize",{get:function(){return this._bufferSize},enumerable:!0,configurable:!0}),t.prototype.initialize=function(e){this._dc=e,this._configureDataChannel()},t.prototype._configureDataChannel=function(){var e=this;if(u.util.supports.sctp&&(this.dataChannel.binaryType="arraybuffer"),this.dataChannel.onopen=function(){l.default.log("Data channel connection success"),e._open=!0,e.emit(c.ConnectionEventType.Open)},!u.util.supports.sctp&&this.reliable){var t=l.default.logLevel>l.LogLevel.Disabled;this._reliable=new a.Reliable(this.dataChannel,t)}this._reliable?this._reliable.onmessage=function(t){e.emit(c.ConnectionEventType.Data,t)}:this.dataChannel.onmessage=function(t){e._handleDataMessage(t)},this.dataChannel.onclose=function(){l.default.log("DataChannel closed for:",e.peer),e.close()}},t.prototype._handleDataMessage=function(t){var n=this,r=t.data,o=r.constructor,i=r;if(this.serialization===c.SerializationType.Binary||this.serialization===c.SerializationType.BinaryUTF8){if(o===Blob)return void u.util.blobToArrayBuffer(r,function(e){var t=u.util.unpack(e);n.emit(c.ConnectionEventType.Data,t)});if(o===ArrayBuffer)i=u.util.unpack(r);else if(o===String){var a=u.util.binaryStringToArrayBuffer(r);i=u.util.unpack(a)}}else this.serialization===c.SerializationType.JSON&&(i=JSON.parse(r));i.__peerData?this._handleChunk(i):e.prototype.emit.call(this,c.ConnectionEventType.Data,i)},t.prototype._handleChunk=function(e){var t=e.__peerData,n=this._chunkedData[t]||{data:[],count:0,total:e.total};if(n.data[e.n]=e.data,n.count++,this._chunkedData[t]=n,n.total===n.count){delete this._chunkedData[t];var r=new Blob(n.data);this._handleDataMessage({data:r})}},t.prototype.close=function(){this._buffer=[],this._bufferSize=0,this._chunkedData={},this._negotiator&&(this._negotiator.cleanup(),this._negotiator=null),this.provider&&(this.provider._removeConnection(this),this.provider=null),this.open&&(this._open=!1,e.prototype.emit.call(this,c.ConnectionEventType.Close))},t.prototype.send=function(t,n){var r=this;if(this.open)if(this._reliable)this._reliable.send(t);else if(this.serialization===c.SerializationType.JSON)this._bufferedSend(JSON.stringify(t));else if(this.serialization===c.SerializationType.Binary||this.serialization===c.SerializationType.BinaryUTF8){var o=u.util.pack(t);if((u.util.chunkedBrowsers[this._peerBrowser]||u.util.chunkedBrowsers[u.util.browser])&&!n&&o.size>u.util.chunkedMTU)return void this._sendChunks(o);u.util.supports.sctp?u.util.supports.binaryBlob?this._bufferedSend(o):u.util.blobToArrayBuffer(o,function(e){r._bufferedSend(e)}):u.util.blobToBinaryString(o,function(e){r._bufferedSend(e)})}else this._bufferedSend(t);else e.prototype.emit.call(this,c.ConnectionEventType.Error,new Error("Connection is not open. You should listen for the `open` event before sending messages."))},t.prototype._bufferedSend=function(e){!this._buffering&&this._trySend(e)||(this._buffer.push(e),this._bufferSize=this._buffer.length)},t.prototype._trySend=function(t){var n=this;if(!this.open)return!1;try{this.dataChannel.send(t)}catch(e){return this._buffering=!0,setTimeout(function(){n._buffering=!1,n._tryBuffer()},100),!1}return!0},t.prototype._tryBuffer=function(){if(this.open&&0!==this._buffer.length){var e=this._buffer[0];this._trySend(e)&&(this._buffer.shift(),this._bufferSize=this._buffer.length,this._tryBuffer())}},t.prototype._sendChunks=function(e){var t,n,r=u.util.chunk(e);try{for(var i=o(r),a=i.next();!a.done;a=i.next()){var l=a.value;this.send(l,!0)}}catch(f){t={error:f}}finally{try{a&&!a.done&&(n=i.return)&&n.call(i)}finally{if(t)throw t.error}}},t.prototype.handleMessage=function(e){var t=e.payload;switch(e.type){case c.ServerMessageType.Answer:this._peerBrowser=t.browser,this._negotiator.handleSDP(e.type,t.sdp);break;case c.ServerMessageType.Candidate:this._negotiator.handleCandidate(t.candidate);break;default:l.default.warn("Unrecognized message type:",e.type,"from peer:",this.peer)}},t.ID_PREFIX="dc_",t}(e("./baseconnection").BaseConnection);n.DataConnection=f},{reliable:"aYFJ","./util":"BHXf","./logger":"8WOs","./negotiator":"HCdX","./enums":"9ZRY","./baseconnection":"tQFK"}],in7L:[function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(o,i){function a(e){try{l(r.next(e))}catch(t){i(t)}}function u(e){try{l(r.throw(e))}catch(t){i(t)}}function l(e){e.done?o(e.value):new n(function(t){t(e.value)}).then(a,u)}l((r=r.apply(e,t||[])).next())})},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:u(0),throw:u(1),return:u(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function u(i){return function(u){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=(o=a.trys).length>0&&o[o.length-1])&&(6===i[0]||2===i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}}},a=this&&this.__read||function(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,o,i=n.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(r=i.next()).done;)a.push(r.value)}catch(c){o={error:c}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(o)throw o.error}}return a},u=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(n,"__esModule",{value:!0});var l=e("eventemitter3"),s=e("./util"),c=u(e("./logger")),f=e("./socket"),p=e("./mediaconnection"),d=e("./dataconnection"),h=e("./enums"),m=e("./api"),y=function(e){function t(n,r){var i=e.call(this)||this;return i._destroyed=!1,i._disconnected=!1,i._open=!1,i._connections=new Map,i._lostMessages=new Map,n&&n.constructor==Object?(r=n,n=void 0):n&&(n=n.toString()),r=o({debug:0,host:s.util.CLOUD_HOST,port:s.util.CLOUD_PORT,path:"/",key:t.DEFAULT_KEY,token:s.util.randomToken(),config:s.util.defaultConfig},r),i._options=r,"/"===r.host&&(r.host=window.location.hostname),"/"!==r.path[0]&&(r.path="/"+r.path),"/"!==r.path[r.path.length-1]&&(r.path+="/"),void 0===r.secure&&r.host!==s.util.CLOUD_HOST?r.secure=s.util.isSecure():r.host==s.util.CLOUD_HOST&&(r.secure=!0),r.logFunction&&c.default.setLogFunction(r.logFunction),c.default.logLevel=r.debug,s.util.supports.audioVideo||s.util.supports.data?s.util.validateId(n)?(i._api=new m.API(r),i._initializeServerConnection(),n?i._initialize(n):i._api.retrieveId().then(function(e){return i._initialize(e)}).catch(function(e){return i._abort(h.PeerErrorType.ServerError,e)}),i):(i._delayedAbort(h.PeerErrorType.InvalidID,'ID "'+n+'" is invalid'),i):(i._delayedAbort(h.PeerErrorType.BrowserIncompatible,"The current browser does not support WebRTC"),i)}return r(t,e),Object.defineProperty(t.prototype,"id",{get:function(){return this._id},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"options",{get:function(){return this._options},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"open",{get:function(){return this._open},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"socket",{get:function(){return this._socket},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"connections",{get:function(){var e,t,n=Object.create(null);try{for(var r=i(this._connections),o=r.next();!o.done;o=r.next()){var u=a(o.value,2),l=u[0],s=u[1];n[l]=s}}catch(d){e={error:d}}finally{try{o&&!o.done&&(t=r.return)&&t.call(r)}finally{if(e)throw e.error}}return n},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"destroyed",{get:function(){return this._destroyed},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"disconnected",{get:function(){return this._disconnected},enumerable:!0,configurable:!0}),t.prototype._initializeServerConnection=function(){var e=this;this._socket=new f.Socket(this._options.secure,this._options.host,this._options.port,this._options.path,this._options.key),this.socket.on(h.SocketEventType.Message,function(t){e._handleMessage(t)}),this.socket.on(h.SocketEventType.Error,function(t){e._abort(h.PeerErrorType.SocketError,t)}),this.socket.on(h.SocketEventType.Disconnected,function(){e.disconnected||(e.emitError(h.PeerErrorType.Network,"Lost connection to server."),e.disconnect())}),this.socket.on(h.SocketEventType.Close,function(){e.disconnected||e._abort(h.PeerErrorType.SocketClosed,"Underlying socket is already closed.")})},t.prototype._initialize=function(e){this._id=e,this.socket.start(this.id,this._options.token)},t.prototype._handleMessage=function(e){var t,n,r=e.type,o=e.payload,a=e.src;switch(r){case h.ServerMessageType.Open:this.emit(h.PeerEventType.Open,this.id),this._open=!0;break;case h.ServerMessageType.Error:this._abort(h.PeerErrorType.ServerError,o.msg);break;case h.ServerMessageType.IdTaken:this._abort(h.PeerErrorType.UnavailableID,'ID "'+this.id+'" is taken');break;case h.ServerMessageType.InvalidKey:this._abort(h.PeerErrorType.InvalidKey,'API KEY "'+this._options.key+'" is invalid');break;case h.ServerMessageType.Leave:c.default.log("Received leave message from",a),this._cleanupPeer(a),this._connections.delete(a);break;case h.ServerMessageType.Expire:this.emitError(h.PeerErrorType.PeerUnavailable,"Could not connect to peer "+a);break;case h.ServerMessageType.Offer:var u=o.connectionId;if((y=this.getConnection(a,u))&&(y.close(),c.default.warn("Offer received for existing Connection ID:",u)),o.type===h.ConnectionType.Media)y=new p.MediaConnection(a,this,{connectionId:u,_payload:o,metadata:o.metadata}),this._addConnection(a,y),this.emit(h.PeerEventType.Call,y);else{if(o.type!==h.ConnectionType.Data)return void c.default.warn("Received malformed connection type:",o.type);y=new d.DataConnection(a,this,{connectionId:u,_payload:o,metadata:o.metadata,label:o.label,serialization:o.serialization,reliable:o.reliable}),this._addConnection(a,y),this.emit(h.PeerEventType.Connection,y)}var l=this._getMessages(u);try{for(var s=i(l),f=s.next();!f.done;f=s.next()){var m=f.value;y.handleMessage(m)}}catch(g){t={error:g}}finally{try{f&&!f.done&&(n=s.return)&&n.call(s)}finally{if(t)throw t.error}}break;default:if(!o)return void c.default.warn("You received a malformed message from "+a+" of type "+r);var y;u=o.connectionId,(y=this.getConnection(a,u))&&y.peerConnection?y.handleMessage(e):u?this._storeMessage(u,e):c.default.warn("You received an unrecognized message:",e)}},t.prototype._storeMessage=function(e,t){this._lostMessages.has(e)||this._lostMessages.set(e,[]),this._lostMessages.get(e).push(t)},t.prototype._getMessages=function(e){var t=this._lostMessages.get(e);return t?(this._lostMessages.delete(e),t):[]},t.prototype.connect=function(e,t){if(void 0===t&&(t={}),this.disconnected)return c.default.warn("You cannot connect to a new Peer because you called .disconnect() on this Peer and ended your connection with the server. You can create a new Peer to reconnect, or call reconnect on this peer if you believe its ID to still be available."),void this.emitError(h.PeerErrorType.Disconnected,"Cannot connect to new Peer after disconnecting from server.");var n=new d.DataConnection(e,this,t);return this._addConnection(e,n),n},t.prototype.call=function(e,t,n){if(void 0===n&&(n={}),this.disconnected)return c.default.warn("You cannot connect to a new Peer because you called .disconnect() on this Peer and ended your connection with the server. You can create a new Peer to reconnect."),void this.emitError(h.PeerErrorType.Disconnected,"Cannot connect to new Peer after disconnecting from server.");if(t){n._stream=t;var r=new p.MediaConnection(e,this,n);return this._addConnection(e,r),r}c.default.error("To call a peer, you must provide a stream from your browser's `getUserMedia`.")},t.prototype._addConnection=function(e,t){c.default.log("add connection "+t.type+":"+t.connectionId+"\n to peerId:"+e),this._connections.has(e)||this._connections.set(e,[]),this._connections.get(e).push(t)},t.prototype._removeConnection=function(e){var t=this._connections.get(e.peer);if(t){var n=t.indexOf(e);-1!==n&&t.splice(n,1)}this._lostMessages.delete(e.connectionId)},t.prototype.getConnection=function(e,t){var n,r,o=this._connections.get(e);if(!o)return null;try{for(var a=i(o),u=a.next();!u.done;u=a.next()){var l=u.value;if(l.connectionId===t)return l}}catch(p){n={error:p}}finally{try{u&&!u.done&&(r=a.return)&&r.call(a)}finally{if(n)throw n.error}}return null},t.prototype._delayedAbort=function(e,t){var n=this;setTimeout(function(){n._abort(e,t)},0)},t.prototype._abort=function(e,t){c.default.error("Aborting!"),this._lastServerId?this.disconnect():this.destroy(),this.emitError(e,t)},t.prototype.emitError=function(e,t){c.default.error("Error:",t),"string"==typeof t&&(t=new Error(t)),t.type=e,this.emit(h.PeerEventType.Error,t)},t.prototype.destroy=function(){this.destroyed||(this._cleanup(),this.disconnect(),this._destroyed=!0)},t.prototype._cleanup=function(){var e,t;try{for(var n=i(this._connections.keys()),r=n.next();!r.done;r=n.next()){var o=r.value;this._cleanupPeer(o),this._connections.delete(o)}}catch(s){e={error:s}}finally{try{r&&!r.done&&(t=n.return)&&t.call(n)}finally{if(e)throw e.error}}this.emit(h.PeerEventType.Close)},t.prototype._cleanupPeer=function(e){var t,n,r=this._connections.get(e);if(r)try{for(var o=i(r),a=o.next();!a.done;a=o.next())a.value.close()}catch(c){t={error:c}}finally{try{a&&!a.done&&(n=o.return)&&n.call(o)}finally{if(t)throw t.error}}},t.prototype.disconnect=function(){var e=this;setTimeout(function(){e.disconnected||(e._disconnected=!0,e._open=!1,e.socket&&e.socket.close(),e.emit(h.PeerEventType.Disconnected,e.id),e._lastServerId=e.id,e._id=null)},0)},t.prototype.reconnect=function(){if(this.disconnected&&!this.destroyed)c.default.log("Attempting reconnection to server with ID "+this._lastServerId),this._disconnected=!1,this._initializeServerConnection(),this._initialize(this._lastServerId);else{if(this.destroyed)throw new Error("This peer cannot reconnect to the server. It has already been destroyed.");if(this.disconnected||this.open)throw new Error("Peer "+this.id+" cannot reconnect because it is not disconnected from the server!");c.default.error("In a hurry? We're still trying to make the initial connection!")}},t.prototype.listAllPeers=function(e){var t=this;void 0===e&&(e=function(e){}),this._api.listAllPeers().then(function(t){return e(t)}).catch(function(e){return t._abort(h.PeerErrorType.ServerError,e)})},t.DEFAULT_KEY="peerjs",t}(l.EventEmitter);n.Peer=y},{eventemitter3:"2JJl","./util":"BHXf","./logger":"8WOs","./socket":"wJlv","./mediaconnection":"dbHP","./dataconnection":"GBTQ","./enums":"9ZRY","./api":"in7L"}],iTK6:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r=e("./util"),o=e("./peer");n.peerjs={Peer:o.Peer,util:r.util},n.default=o.Peer,window.peerjs=n.peerjs,window.Peer=o.Peer},{"./util":"BHXf","./peer":"Hxpd"}]},{},["iTK6"])},,function(e,t,n){"use strict";var r={};n.r(r),n.d(r,"initialize",function(){return z}),n.d(r,"ga",function(){return F}),n.d(r,"set",function(){return W}),n.d(r,"send",function(){return H}),n.d(r,"pageview",function(){return V}),n.d(r,"modalview",function(){return q}),n.d(r,"timing",function(){return $}),n.d(r,"event",function(){return Q}),n.d(r,"exception",function(){return K}),n.d(r,"plugin",function(){return X}),n.d(r,"outboundLink",function(){return Y}),n.d(r,"testModeAPI",function(){return G}),n.d(r,"default",function(){return J});var o=n(0),i=n.n(o),a=n(10),u=n.n(a);function l(e){console.warn("[react-ga]",e)}function s(e){return(s="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function c(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function f(e,t){for(var n=0;n0&&t+e.length!==n.length&&e.search(_)>-1&&":"!==n.charAt(t-2)&&("-"!==n.charAt(t+e.length)||"-"===n.charAt(t-1))&&n.charAt(t-1).search(/[^\s-]/)<0?e.toLowerCase():e.substr(1).search(/[A-Z]|\../)>-1?e:e.charAt(0).toUpperCase()+e.substr(1)}):e}var T=function(e){var t,n,r,o,i,a,u,l="https://www.google-analytics.com/analytics.js";e&&e.gaAddress?l=e.gaAddress:e&&e.debug&&(l="https://www.google-analytics.com/analytics_debug.js"),t=window,n=document,r="script",o=l,i="ga",t.GoogleAnalyticsObject=i,t.ga=t.ga||function(){(t.ga.q=t.ga.q||[]).push(arguments)},t.ga.l=1*new Date,a=n.createElement(r),u=n.getElementsByTagName(r)[0],a.async=1,a.src=o,u.parentNode.insertBefore(a,u)};function C(e){console.info("[react-ga]",e)}var S=[],x={calls:S,ga:function(){for(var e=arguments.length,t=new Array(e),n=0;n=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function P(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function O(e){return(O="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function A(e){return function(e){if(Array.isArray(e)){for(var t=0,n=new Array(e.length);t1?t-1:0),r=1;r0&&(j.apply(void 0,t),R&&(C("called ga('arguments');"),C("with arguments: ".concat(JSON.stringify(t))))),window.ga}function W(e,t){e?"object"===O(e)?(0===Object.keys(e).length&&l("empty `fieldsObject` given to .set()"),B(t,"set",e),R&&(C("called ga('set', fieldsObject);"),C("with fieldsObject: ".concat(JSON.stringify(e))))):l("Expected `fieldsObject` arg to be an Object"):l("`fieldsObject` is required in .set()")}function H(e,t){B(t,"send",e),R&&(C("called ga('send', fieldObject);"),C("with fieldObject: ".concat(JSON.stringify(e))),C("with trackers: ".concat(JSON.stringify(t))))}function V(e,t,n){if(e){var r=b(e);if(""!==r){var o={};if(n&&(o.title=n),B(t,"send",function(e){for(var t=1;t0&&void 0!==arguments[0]?arguments[0]:{},t=e.category,n=e.variable,r=e.value,o=e.label,i=arguments.length>1?arguments[1]:void 0;if(t&&n&&r&&"number"===typeof r){var a={hitType:"timing",timingCategory:I(t),timingVar:I(n),timingValue:r};o&&(a.timingLabel=I(o)),H(a,i)}else l("args.category, args.variable AND args.value are required in timing() AND args.value has to be a number")}function Q(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.category,n=e.action,r=e.label,o=e.value,i=e.nonInteraction,a=e.transport,u=E(e,["category","action","label","value","nonInteraction","transport"]),s=arguments.length>1?arguments[1]:void 0;if(t&&n){var c={hitType:"event",eventCategory:I(t),eventAction:I(n)};r&&(c.eventLabel=I(r)),"undefined"!==typeof o&&("number"!==typeof o?l("Expected `args.value` arg to be a Number."):c.eventValue=o),"undefined"!==typeof i&&("boolean"!==typeof i?l("`args.nonInteraction` must be a boolean."):c.nonInteraction=i),"undefined"!==typeof a&&("string"!==typeof a?l("`args.transport` must be a string."):(-1===["beacon","xhr","image"].indexOf(a)&&l("`args.transport` must be either one of these values: `beacon`, `xhr` or `image`"),c.transport=a)),Object.keys(u).filter(function(e){return"dimension"===e.substr(0,"dimension".length)}).forEach(function(e){c[e]=u[e]}),Object.keys(u).filter(function(e){return"metric"===e.substr(0,"metric".length)}).forEach(function(e){c[e]=u[e]}),H(c,s)}else l("args.category AND args.action are required in event()")}function K(e,t){var n=e.description,r=e.fatal,o={hitType:"exception"};n&&(o.exDescription=I(n)),"undefined"!==typeof r&&("boolean"!==typeof r?l("`args.fatal` must be a boolean."):o.exFatal=r),H(o,t)}var X={require:function(e,t){if(e){var n=b(e);if(""!==n)if(t){if("object"!==O(t))return void l("Expected `options` arg to be an Object");0===Object.keys(t).length&&l("Empty `options` given to .require()"),F("require",n,t),R&&C("called ga('require', '".concat(n,"', ").concat(JSON.stringify(t)))}else F("require",n),R&&C("called ga('require', '".concat(n,"');"));else l("`name` cannot be an empty string in .require()")}else l("`name` is required in .require()")},execute:function(e,t){var n,r;if(1===(arguments.length<=2?0:arguments.length-2)?n=arguments.length<=2?void 0:arguments[2]:(r=arguments.length<=2?void 0:arguments[2],n=arguments.length<=3?void 0:arguments[3]),"string"!==typeof e)l("Expected `pluginName` arg to be a String.");else if("string"!==typeof t)l("Expected `action` arg to be a String.");else{var o="".concat(e,":").concat(t);n=n||null,r&&n?(F(o,r,n),R&&(C("called ga('".concat(o,"');")),C('actionType: "'.concat(r,'" with payload: ').concat(JSON.stringify(n))))):n?(F(o,n),R&&(C("called ga('".concat(o,"');")),C("with payload: ".concat(JSON.stringify(n))))):(F(o),R&&C("called ga('".concat(o,"');")))}}};function Y(e,t,n){if("function"===typeof t)if(e&&e.label){var r={hitType:"event",eventCategory:"Outbound",eventAction:"Click",eventLabel:I(e.label)},o=!1,i=setTimeout(function(){o=!0,t()},250);r.hitCallback=function(){clearTimeout(i),o||t()},H(r,n)}else l("args.label is required in outboundLink()");else l("hitCallback function is required")}var G=x,J={initialize:z,ga:F,set:W,send:H,pageview:V,modalview:q,timing:$,event:Q,exception:K,plugin:X,outboundLink:Y,testModeAPI:x};function Z(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}v.origTrackLink=v.trackLink,v.trackLink=Y;var ee=v;t.a=function(e){for(var t=1;t=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*"}}};r.forEach(["delete","get","head"],function(e){u.headers[e]={}}),r.forEach(["post","put","patch"],function(e){u.headers[e]=r.merge(i)}),e.exports=u}).call(this,n(52))},function(e,t,n){"use strict";var r=n(3),o=n(54),i=n(17),a=n(56),u=n(57),l=n(21);e.exports=function(e){return new Promise(function(t,s){var c=e.data,f=e.headers;r.isFormData(c)&&delete f["Content-Type"];var p=new XMLHttpRequest;if(e.auth){var d=e.auth.username||"",h=e.auth.password||"";f.Authorization="Basic "+btoa(d+":"+h)}if(p.open(e.method.toUpperCase(),i(e.url,e.params,e.paramsSerializer),!0),p.timeout=e.timeout,p.onreadystatechange=function(){if(p&&4===p.readyState&&(0!==p.status||p.responseURL&&0===p.responseURL.indexOf("file:"))){var n="getAllResponseHeaders"in p?a(p.getAllResponseHeaders()):null,r={data:e.responseType&&"text"!==e.responseType?p.response:p.responseText,status:p.status,statusText:p.statusText,headers:n,config:e,request:p};o(t,s,r),p=null}},p.onabort=function(){p&&(s(l("Request aborted",e,"ECONNABORTED",p)),p=null)},p.onerror=function(){s(l("Network Error",e,null,p)),p=null},p.ontimeout=function(){s(l("timeout of "+e.timeout+"ms exceeded",e,"ECONNABORTED",p)),p=null},r.isStandardBrowserEnv()){var m=n(58),y=(e.withCredentials||u(e.url))&&e.xsrfCookieName?m.read(e.xsrfCookieName):void 0;y&&(f[e.xsrfHeaderName]=y)}if("setRequestHeader"in p&&r.forEach(f,function(e,t){"undefined"===typeof c&&"content-type"===t.toLowerCase()?delete f[t]:p.setRequestHeader(t,e)}),e.withCredentials&&(p.withCredentials=!0),e.responseType)try{p.responseType=e.responseType}catch(g){if("json"!==e.responseType)throw g}"function"===typeof e.onDownloadProgress&&p.addEventListener("progress",e.onDownloadProgress),"function"===typeof e.onUploadProgress&&p.upload&&p.upload.addEventListener("progress",e.onUploadProgress),e.cancelToken&&e.cancelToken.promise.then(function(e){p&&(p.abort(),s(e),p=null)}),void 0===c&&(c=null),p.send(c)})}},function(e,t,n){"use strict";var r=n(55);e.exports=function(e,t,n,o,i){var a=new Error(e);return r(a,t,n,o,i)}},function(e,t,n){"use strict";var r=n(3);e.exports=function(e,t){t=t||{};var n={};return r.forEach(["url","method","params","data"],function(e){"undefined"!==typeof t[e]&&(n[e]=t[e])}),r.forEach(["headers","auth","proxy"],function(o){r.isObject(t[o])?n[o]=r.deepMerge(e[o],t[o]):"undefined"!==typeof t[o]?n[o]=t[o]:r.isObject(e[o])?n[o]=r.deepMerge(e[o]):"undefined"!==typeof e[o]&&(n[o]=e[o])}),r.forEach(["baseURL","transformRequest","transformResponse","paramsSerializer","timeout","withCredentials","adapter","responseType","xsrfCookieName","xsrfHeaderName","onUploadProgress","onDownloadProgress","maxContentLength","validateStatus","maxRedirects","httpAgent","httpsAgent","cancelToken","socketPath"],function(r){"undefined"!==typeof t[r]?n[r]=t[r]:"undefined"!==typeof e[r]&&(n[r]=e[r])}),n}},function(e,t,n){"use strict";function r(e){this.message=e}r.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")},r.prototype.__CANCEL__=!0,e.exports=r},function(e,t,n){"use strict";!function e(){if("undefined"!==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"===typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}(),e.exports=n(34)},function(e,t,n){"use strict";function r(e){return(r=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}n.d(t,"a",function(){return r})},function(e,t,n){var r;r=function(){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={exports:{},id:r,loaded:!1};return e[r].call(o.exports,o,o.exports,n),o.loaded=!0,o.exports}return n.m=e,n.c=t,n.p="",n(0)}([function(e,t,n){var r,o;r=[n(1)],void 0===(o=function(e){var t={},n=function(){return navigator.userAgent.toLowerCase().indexOf("chrome")>-1},r=function(){return navigator.userAgent.toLowerCase().indexOf("firefox")>-1},o=function(){return navigator.userAgent.toLowerCase().indexOf("safari")>-1},i=function(){return document.documentMode&&document.documentMode>=11},a=function(){this.count=0,this.pending=[]};a.prototype.incr=function(){this.count++},a.prototype.decr=function(){this.count--,this.flush()},a.prototype.whenReady=function(e){this.pending.push(e),this.flush()},a.prototype.flush=function(){0===this.count&&(this.pending.forEach(function(e){e()}),this.pending=[])};var u=function(e){this.sem=new a,this.sync=e&&e.sync,this.mapForUri=e&&e.cacheGlobally?t:{}};u.prototype.ajax=function(e,t){var n=function(){for(var e=!1,t=0;t/)||g.fetchScript(p));g.sem.whenReady(function(){var e=s(l,y,g.mapForUri);t(e)})}}}.apply(t,r))||(e.exports=o)},function(e,t,n){var r=n(2),o=n(3),i=n(4).ArraySet,a=n(5),u=n(7).quickSort;function l(e){var t=e;return"string"===typeof e&&(t=JSON.parse(e.replace(/^\)\]\}'/,""))),null!=t.sections?new f(t):new s(t)}function s(e){var t=e;"string"===typeof e&&(t=JSON.parse(e.replace(/^\)\]\}'/,"")));var n=r.getArg(t,"version"),o=r.getArg(t,"sources"),a=r.getArg(t,"names",[]),u=r.getArg(t,"sourceRoot",null),l=r.getArg(t,"sourcesContent",null),s=r.getArg(t,"mappings"),c=r.getArg(t,"file",null);if(n!=this._version)throw new Error("Unsupported version: "+n);o=o.map(String).map(r.normalize).map(function(e){return u&&r.isAbsolute(u)&&r.isAbsolute(e)?r.relative(u,e):e}),this._names=i.fromArray(a.map(String),!0),this._sources=i.fromArray(o,!0),this.sourceRoot=u,this.sourcesContent=l,this._mappings=s,this.file=c}function c(){this.generatedLine=0,this.generatedColumn=0,this.source=null,this.originalLine=null,this.originalColumn=null,this.name=null}function f(e){var t=e;"string"===typeof e&&(t=JSON.parse(e.replace(/^\)\]\}'/,"")));var n=r.getArg(t,"version"),o=r.getArg(t,"sections");if(n!=this._version)throw new Error("Unsupported version: "+n);this._sources=new i,this._names=new i;var a={line:-1,column:0};this._sections=o.map(function(e){if(e.url)throw new Error("Support for url field in sections not implemented.");var t=r.getArg(e,"offset"),n=r.getArg(t,"line"),o=r.getArg(t,"column");if(n=0){var u=this._originalMappings[a];if(void 0===e.column)for(var l=u.originalLine;u&&u.originalLine===l;)i.push({line:r.getArg(u,"generatedLine",null),column:r.getArg(u,"generatedColumn",null),lastColumn:r.getArg(u,"lastGeneratedColumn",null)}),u=this._originalMappings[++a];else for(var s=u.originalColumn;u&&u.originalLine===t&&u.originalColumn==s;)i.push({line:r.getArg(u,"generatedLine",null),column:r.getArg(u,"generatedColumn",null),lastColumn:r.getArg(u,"lastGeneratedColumn",null)}),u=this._originalMappings[++a]}return i},t.SourceMapConsumer=l,s.prototype=Object.create(l.prototype),s.prototype.consumer=l,s.fromSourceMap=function(e){var t=Object.create(s.prototype),n=t._names=i.fromArray(e._names.toArray(),!0),o=t._sources=i.fromArray(e._sources.toArray(),!0);t.sourceRoot=e._sourceRoot,t.sourcesContent=e._generateSourcesContent(t._sources.toArray(),t.sourceRoot),t.file=e._file;for(var a=e._mappings.toArray().slice(),l=t.__generatedMappings=[],f=t.__originalMappings=[],p=0,d=a.length;p1&&(n.source=m+i[1],m+=i[1],n.originalLine=d+i[2],d=n.originalLine,n.originalLine+=1,n.originalColumn=h+i[3],h=n.originalColumn,i.length>4&&(n.name=y+i[4],y+=i[4])),k.push(n),"number"===typeof n.originalLine&&w.push(n)}u(k,r.compareByGeneratedPositionsDeflated),this.__generatedMappings=k,u(w,r.compareByOriginalPositions),this.__originalMappings=w},s.prototype._findMapping=function(e,t,n,r,i,a){if(e[n]<=0)throw new TypeError("Line must be greater than or equal to 1, got "+e[n]);if(e[r]<0)throw new TypeError("Column must be greater than or equal to 0, got "+e[r]);return o.search(e,t,i,a)},s.prototype.computeColumnSpans=function(){for(var e=0;e=0){var o=this._generatedMappings[n];if(o.generatedLine===t.generatedLine){var i=r.getArg(o,"source",null);null!==i&&(i=this._sources.at(i),null!=this.sourceRoot&&(i=r.join(this.sourceRoot,i)));var a=r.getArg(o,"name",null);return null!==a&&(a=this._names.at(a)),{source:i,line:r.getArg(o,"originalLine",null),column:r.getArg(o,"originalColumn",null),name:a}}}return{source:null,line:null,column:null,name:null}},s.prototype.hasContentsOfAllSources=function(){return!!this.sourcesContent&&(this.sourcesContent.length>=this._sources.size()&&!this.sourcesContent.some(function(e){return null==e}))},s.prototype.sourceContentFor=function(e,t){if(!this.sourcesContent)return null;if(null!=this.sourceRoot&&(e=r.relative(this.sourceRoot,e)),this._sources.has(e))return this.sourcesContent[this._sources.indexOf(e)];var n;if(null!=this.sourceRoot&&(n=r.urlParse(this.sourceRoot))){var o=e.replace(/^file:\/\//,"");if("file"==n.scheme&&this._sources.has(o))return this.sourcesContent[this._sources.indexOf(o)];if((!n.path||"/"==n.path)&&this._sources.has("/"+e))return this.sourcesContent[this._sources.indexOf("/"+e)]}if(t)return null;throw new Error('"'+e+'" is not in the SourceMap.')},s.prototype.generatedPositionFor=function(e){var t=r.getArg(e,"source");if(null!=this.sourceRoot&&(t=r.relative(this.sourceRoot,t)),!this._sources.has(t))return{line:null,column:null,lastColumn:null};var n={source:t=this._sources.indexOf(t),originalLine:r.getArg(e,"line"),originalColumn:r.getArg(e,"column")},o=this._findMapping(n,this._originalMappings,"originalLine","originalColumn",r.compareByOriginalPositions,r.getArg(e,"bias",l.GREATEST_LOWER_BOUND));if(o>=0){var i=this._originalMappings[o];if(i.source===n.source)return{line:r.getArg(i,"generatedLine",null),column:r.getArg(i,"generatedColumn",null),lastColumn:r.getArg(i,"lastGeneratedColumn",null)}}return{line:null,column:null,lastColumn:null}},t.BasicSourceMapConsumer=s,f.prototype=Object.create(l.prototype),f.prototype.constructor=l,f.prototype._version=3,Object.defineProperty(f.prototype,"sources",{get:function(){for(var e=[],t=0;t=0;c--)"."===(a=l[c])?l.splice(c,1):".."===a?s++:s>0&&(""===a?(l.splice(c+1,s),s=0):(l.splice(c,2),s--));return""===(n=l.join("/"))&&(n=u?"/":"."),r?(r.path=n,i(r)):n}t.urlParse=o,t.urlGenerate=i,t.normalize=a,t.join=function(e,t){""===e&&(e="."),""===t&&(t=".");var n=o(t),u=o(e);if(u&&(e=u.path||"/"),n&&!n.scheme)return u&&(n.scheme=u.scheme),i(n);if(n||t.match(r))return t;if(u&&!u.host&&!u.path)return u.host=t,i(u);var l="/"===t.charAt(0)?t:a(e.replace(/\/+$/,"")+"/"+t);return u?(u.path=l,i(u)):l},t.isAbsolute=function(e){return"/"===e.charAt(0)||!!e.match(n)},t.relative=function(e,t){""===e&&(e="."),e=e.replace(/\/$/,"");for(var n=0;0!==t.indexOf(e+"/");){var r=e.lastIndexOf("/");if(r<0)return t;if((e=e.slice(0,r)).match(/^([^\/]+:\/)?\/*$/))return t;++n}return Array(n+1).join("../")+t.substr(e.length+1)};var u=!("__proto__"in Object.create(null));function l(e){return e}function s(e){if(!e)return!1;var t=e.length;if(t<9)return!1;if(95!==e.charCodeAt(t-1)||95!==e.charCodeAt(t-2)||111!==e.charCodeAt(t-3)||116!==e.charCodeAt(t-4)||111!==e.charCodeAt(t-5)||114!==e.charCodeAt(t-6)||112!==e.charCodeAt(t-7)||95!==e.charCodeAt(t-8)||95!==e.charCodeAt(t-9))return!1;for(var n=t-10;n>=0;n--)if(36!==e.charCodeAt(n))return!1;return!0}function c(e,t){return e===t?0:e>t?1:-1}t.toSetString=u?l:function(e){return s(e)?"$"+e:e},t.fromSetString=u?l:function(e){return s(e)?e.slice(1):e},t.compareByOriginalPositions=function(e,t,n){var r=e.source-t.source;return 0!==r?r:0!==(r=e.originalLine-t.originalLine)?r:0!==(r=e.originalColumn-t.originalColumn)||n?r:0!==(r=e.generatedColumn-t.generatedColumn)?r:0!==(r=e.generatedLine-t.generatedLine)?r:e.name-t.name},t.compareByGeneratedPositionsDeflated=function(e,t,n){var r=e.generatedLine-t.generatedLine;return 0!==r?r:0!==(r=e.generatedColumn-t.generatedColumn)||n?r:0!==(r=e.source-t.source)?r:0!==(r=e.originalLine-t.originalLine)?r:0!==(r=e.originalColumn-t.originalColumn)?r:e.name-t.name},t.compareByGeneratedPositionsInflated=function(e,t){var n=e.generatedLine-t.generatedLine;return 0!==n?n:0!==(n=e.generatedColumn-t.generatedColumn)?n:0!==(n=c(e.source,t.source))?n:0!==(n=e.originalLine-t.originalLine)?n:0!==(n=e.originalColumn-t.originalColumn)?n:c(e.name,t.name)}},function(e,t){t.GREATEST_LOWER_BOUND=1,t.LEAST_UPPER_BOUND=2,t.search=function(e,n,r,o){if(0===n.length)return-1;var i=function e(n,r,o,i,a,u){var l=Math.floor((r-n)/2)+n,s=a(o,i[l],!0);return 0===s?l:s>0?r-l>1?e(l,r,o,i,a,u):u==t.LEAST_UPPER_BOUND?r1?e(n,l,o,i,a,u):u==t.LEAST_UPPER_BOUND?l:n<0?-1:n}(-1,n.length,e,n,r,o||t.GREATEST_LOWER_BOUND);if(i<0)return-1;for(;i-1>=0&&0===r(n[i],n[i-1],!0);)--i;return i}},function(e,t,n){var r=n(2),o=Object.prototype.hasOwnProperty;function i(){this._array=[],this._set=Object.create(null)}i.fromArray=function(e,t){for(var n=new i,r=0,o=e.length;r=0&&e>>=5)>0&&(t|=32),n+=r.encode(t)}while(o>0);return n},t.decode=function(e,t,n){var o,i,a=e.length,u=0,l=0;do{if(t>=a)throw new Error("Expected more digits in base 64 VLQ value.");if(-1===(i=r.decode(e.charCodeAt(t++))))throw new Error("Invalid base64 digit: "+e.charAt(t-1));o=!!(32&i),u+=(i&=31)<>1;return 1===(1&e)?-t:t}(u),n.rest=t}},function(e,t){var n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split("");t.encode=function(e){if(0<=e&&e=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}n.d(t,"a",function(){return r})},,function(e,t,n){"use strict";var r=n(15),o="function"===typeof Symbol&&Symbol.for,i=o?Symbol.for("react.element"):60103,a=o?Symbol.for("react.portal"):60106,u=o?Symbol.for("react.fragment"):60107,l=o?Symbol.for("react.strict_mode"):60108,s=o?Symbol.for("react.profiler"):60114,c=o?Symbol.for("react.provider"):60109,f=o?Symbol.for("react.context"):60110,p=o?Symbol.for("react.concurrent_mode"):60111,d=o?Symbol.for("react.forward_ref"):60112,h=o?Symbol.for("react.suspense"):60113,m=o?Symbol.for("react.memo"):60115,y=o?Symbol.for("react.lazy"):60116,g="function"===typeof Symbol&&Symbol.iterator;function v(e){for(var t=arguments.length-1,n="https://reactjs.org/docs/error-decoder.html?invariant="+e,r=0;rR.length&&R.push(e)}function D(e,t,n){return null==e?0:function e(t,n,r,o){var u=typeof t;"undefined"!==u&&"boolean"!==u||(t=null);var l=!1;if(null===t)l=!0;else switch(u){case"string":case"number":l=!0;break;case"object":switch(t.$$typeof){case i:case a:l=!0}}if(l)return r(o,t,""===n?"."+j(t,0):n),1;if(l=0,n=""===n?".":n+":",Array.isArray(t))for(var s=0;sthis.eventPool.length&&this.eventPool.push(e)}function fe(e){e.eventPool=[],e.getPooled=se,e.release=ce}o(le.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():"unknown"!==typeof e.returnValue&&(e.returnValue=!1),this.isDefaultPrevented=ae)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():"unknown"!==typeof e.cancelBubble&&(e.cancelBubble=!0),this.isPropagationStopped=ae)},persist:function(){this.isPersistent=ae},isPersistent:ue,destructor:function(){var e,t=this.constructor.Interface;for(e in t)this[e]=null;this.nativeEvent=this._targetInst=this.dispatchConfig=null,this.isPropagationStopped=this.isDefaultPrevented=ue,this._dispatchInstances=this._dispatchListeners=null}}),le.Interface={type:null,target:null,currentTarget:function(){return null},eventPhase:null,bubbles:null,cancelable:null,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:null,isTrusted:null},le.extend=function(e){function t(){}function n(){return r.apply(this,arguments)}var r=this;t.prototype=r.prototype;var i=new t;return o(i,n.prototype),n.prototype=i,n.prototype.constructor=n,n.Interface=o({},r.Interface,e),n.extend=r.extend,fe(n),n},fe(le);var pe=le.extend({data:null}),de=le.extend({data:null}),he=[9,13,27,32],me=q&&"CompositionEvent"in window,ye=null;q&&"documentMode"in document&&(ye=document.documentMode);var ge=q&&"TextEvent"in window&&!ye,ve=q&&(!me||ye&&8=ye),be=String.fromCharCode(32),_e={beforeInput:{phasedRegistrationNames:{bubbled:"onBeforeInput",captured:"onBeforeInputCapture"},dependencies:["compositionend","keypress","textInput","paste"]},compositionEnd:{phasedRegistrationNames:{bubbled:"onCompositionEnd",captured:"onCompositionEndCapture"},dependencies:"blur compositionend keydown keypress keyup mousedown".split(" ")},compositionStart:{phasedRegistrationNames:{bubbled:"onCompositionStart",captured:"onCompositionStartCapture"},dependencies:"blur compositionstart keydown keypress keyup mousedown".split(" ")},compositionUpdate:{phasedRegistrationNames:{bubbled:"onCompositionUpdate",captured:"onCompositionUpdateCapture"},dependencies:"blur compositionupdate keydown keypress keyup mousedown".split(" ")}},we=!1;function ke(e,t){switch(e){case"keyup":return-1!==he.indexOf(t.keyCode);case"keydown":return 229!==t.keyCode;case"keypress":case"mousedown":case"blur":return!0;default:return!1}}function Te(e){return"object"===typeof(e=e.detail)&&"data"in e?e.data:null}var Ce=!1;var Se={eventTypes:_e,extractEvents:function(e,t,n,r){var o=void 0,i=void 0;if(me)e:{switch(e){case"compositionstart":o=_e.compositionStart;break e;case"compositionend":o=_e.compositionEnd;break e;case"compositionupdate":o=_e.compositionUpdate;break e}o=void 0}else Ce?ke(e,n)&&(o=_e.compositionEnd):"keydown"===e&&229===n.keyCode&&(o=_e.compositionStart);return o?(ve&&"ko"!==n.locale&&(Ce||o!==_e.compositionStart?o===_e.compositionEnd&&Ce&&(i=ie()):(re="value"in(ne=r)?ne.value:ne.textContent,Ce=!0)),o=pe.getPooled(o,t,n,r),i?o.data=i:null!==(i=Te(n))&&(o.data=i),V(o),i=o):i=null,(e=ge?function(e,t){switch(e){case"compositionend":return Te(t);case"keypress":return 32!==t.which?null:(we=!0,be);case"textInput":return(e=t.data)===be&&we?null:e;default:return null}}(e,n):function(e,t){if(Ce)return"compositionend"===e||!me&&ke(e,t)?(e=ie(),oe=re=ne=null,Ce=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1