hakuban 0.7.0 → 0.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/hakuban-with-wasm.js +122 -122
- package/hakuban-with-wasm.js.map +1 -1
- package/hakuban-with-wasm.min.js +1 -1
- package/hakuban-with-wasm.min.js.map +1 -1
- package/hakuban.js +121 -121
- package/hakuban.js.map +1 -1
- package/hakuban.min.js +1 -1
- package/hakuban.min.js.map +1 -1
- package/hakuban.wasm +0 -0
- package/package.json +7 -1
package/hakuban-with-wasm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hakuban-with-wasm.js","sources":["pkg/hakuban.js","coffee/ffi.coffee","coffee/logger.coffee","coffee/ffi-object.coffee","coffee/descriptor.coffee","coffee/object-state.coffee","coffee/stream.coffee","coffee/object-state-stream.coffee","coffee/object-state-sink.coffee","coffee/contract.coffee","coffee/exchange.coffee","coffee/remote-exchange.coffee","coffee/websocket-connector.coffee","coffee/hakuban-with-wasm.coffee"],"sourcesContent":["\nlet wasm;\n\nconst cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });\n\ncachedTextDecoder.decode();\n\nlet cachedUint8Memory0 = new Uint8Array();\n\nfunction getUint8Memory0() {\n if (cachedUint8Memory0.byteLength === 0) {\n cachedUint8Memory0 = new Uint8Array(wasm.memory.buffer);\n }\n return cachedUint8Memory0;\n}\n\nfunction getStringFromWasm0(ptr, len) {\n return cachedTextDecoder.decode(getUint8Memory0().subarray(ptr, ptr + len));\n}\n\nconst heap = new Array(32).fill(undefined);\n\nheap.push(undefined, null, true, false);\n\nlet heap_next = heap.length;\n\nfunction addHeapObject(obj) {\n if (heap_next === heap.length) heap.push(heap.length + 1);\n const idx = heap_next;\n heap_next = heap[idx];\n\n heap[idx] = obj;\n return idx;\n}\n\nfunction getObject(idx) { return heap[idx]; }\n\nfunction dropObject(idx) {\n if (idx < 36) return;\n heap[idx] = heap_next;\n heap_next = idx;\n}\n\nfunction takeObject(idx) {\n const ret = getObject(idx);\n dropObject(idx);\n return ret;\n}\n\nlet WASM_VECTOR_LEN = 0;\n\nconst cachedTextEncoder = new TextEncoder('utf-8');\n\nconst encodeString = (typeof cachedTextEncoder.encodeInto === 'function'\n ? function (arg, view) {\n return cachedTextEncoder.encodeInto(arg, view);\n}\n : function (arg, view) {\n const buf = cachedTextEncoder.encode(arg);\n view.set(buf);\n return {\n read: arg.length,\n written: buf.length\n };\n});\n\nfunction passStringToWasm0(arg, malloc, realloc) {\n\n if (realloc === undefined) {\n const buf = cachedTextEncoder.encode(arg);\n const ptr = malloc(buf.length);\n getUint8Memory0().subarray(ptr, ptr + buf.length).set(buf);\n WASM_VECTOR_LEN = buf.length;\n return ptr;\n }\n\n let len = arg.length;\n let ptr = malloc(len);\n\n const mem = getUint8Memory0();\n\n let offset = 0;\n\n for (; offset < len; offset++) {\n const code = arg.charCodeAt(offset);\n if (code > 0x7F) break;\n mem[ptr + offset] = code;\n }\n\n if (offset !== len) {\n if (offset !== 0) {\n arg = arg.slice(offset);\n }\n ptr = realloc(ptr, len, len = offset + arg.length * 3);\n const view = getUint8Memory0().subarray(ptr + offset, ptr + len);\n const ret = encodeString(arg, view);\n\n offset += ret.written;\n }\n\n WASM_VECTOR_LEN = offset;\n return ptr;\n}\n\nfunction isLikeNone(x) {\n return x === undefined || x === null;\n}\n\nlet cachedInt32Memory0 = new Int32Array();\n\nfunction getInt32Memory0() {\n if (cachedInt32Memory0.byteLength === 0) {\n cachedInt32Memory0 = new Int32Array(wasm.memory.buffer);\n }\n return cachedInt32Memory0;\n}\n\nfunction debugString(val) {\n // primitive types\n const type = typeof val;\n if (type == 'number' || type == 'boolean' || val == null) {\n return `${val}`;\n }\n if (type == 'string') {\n return `\"${val}\"`;\n }\n if (type == 'symbol') {\n const description = val.description;\n if (description == null) {\n return 'Symbol';\n } else {\n return `Symbol(${description})`;\n }\n }\n if (type == 'function') {\n const name = val.name;\n if (typeof name == 'string' && name.length > 0) {\n return `Function(${name})`;\n } else {\n return 'Function';\n }\n }\n // objects\n if (Array.isArray(val)) {\n const length = val.length;\n let debug = '[';\n if (length > 0) {\n debug += debugString(val[0]);\n }\n for(let i = 1; i < length; i++) {\n debug += ', ' + debugString(val[i]);\n }\n debug += ']';\n return debug;\n }\n // Test for built-in\n const builtInMatches = /\\[object ([^\\]]+)\\]/.exec(toString.call(val));\n let className;\n if (builtInMatches.length > 1) {\n className = builtInMatches[1];\n } else {\n // Failed to match the standard '[object ClassName]'\n return toString.call(val);\n }\n if (className == 'Object') {\n // we're a user defined class or Object\n // JSON.stringify avoids problems with cycles, and is generally much\n // easier than looping through ownProperties of `val`.\n try {\n return 'Object(' + JSON.stringify(val) + ')';\n } catch (_) {\n return 'Object';\n }\n }\n // errors\n if (val instanceof Error) {\n return `${val.name}: ${val.message}\\n${val.stack}`;\n }\n // TODO we could test for more things here, like `Set`s and `Map`s.\n return className;\n}\n/**\n* @param {number} local_exchange\n* @param {number} descriptor\n* @returns {number}\n*/\nexport function hakuban_object_observe_contract_new(local_exchange, descriptor) {\n const ret = wasm.hakuban_object_observe_contract_new(local_exchange, descriptor);\n return ret;\n}\n\n/**\n* @param {number} object_ptr\n*/\nexport function hakuban_object_observe_contract_drop(object_ptr) {\n wasm.hakuban_object_observe_contract_drop(object_ptr);\n}\n\n/**\n* @param {number} object_observe_pointer\n*/\nexport function hakuban_object_observe_contract_terminate(object_observe_pointer) {\n wasm.hakuban_object_observe_contract_terminate(object_observe_pointer);\n}\n\n/**\n* @param {number} object_observe_pointer\n* @returns {number}\n*/\nexport function hakuban_object_observe_contract_next(object_observe_pointer) {\n const ret = wasm.hakuban_object_observe_contract_next(object_observe_pointer);\n return ret;\n}\n\n/**\n* @param {number} object_observe_pointer\n* @returns {WasmResultWithPointer}\n*/\nexport function hakuban_object_observe_contract_ready(object_observe_pointer) {\n const ret = wasm.hakuban_object_observe_contract_ready(object_observe_pointer);\n return WasmResultWithPointer.__wrap(ret);\n}\n\n/**\n* @param {number} local_exchange\n* @param {number} descriptor\n* @returns {number}\n*/\nexport function hakuban_tag_observe_contract_new(local_exchange, descriptor) {\n const ret = wasm.hakuban_tag_observe_contract_new(local_exchange, descriptor);\n return ret;\n}\n\n/**\n* @param {number} tag_pointer\n*/\nexport function hakuban_tag_observe_contract_drop(tag_pointer) {\n wasm.hakuban_tag_observe_contract_drop(tag_pointer);\n}\n\n/**\n* @param {number} tag_observe_pointer\n*/\nexport function hakuban_tag_observe_contract_terminate(tag_observe_pointer) {\n wasm.hakuban_tag_observe_contract_terminate(tag_observe_pointer);\n}\n\n/**\n* @param {number} tag_observe_pointer\n* @returns {number}\n*/\nexport function hakuban_tag_observe_contract_next(tag_observe_pointer) {\n const ret = wasm.hakuban_tag_observe_contract_next(tag_observe_pointer);\n return ret;\n}\n\nlet cachedUint32Memory0 = new Uint32Array();\n\nfunction getUint32Memory0() {\n if (cachedUint32Memory0.byteLength === 0) {\n cachedUint32Memory0 = new Uint32Array(wasm.memory.buffer);\n }\n return cachedUint32Memory0;\n}\n\nfunction getArrayU32FromWasm0(ptr, len) {\n return getUint32Memory0().subarray(ptr / 4, ptr / 4 + len);\n}\n/**\n* @param {number} tag_observe_pointer\n* @returns {Uint32Array}\n*/\nexport function hakuban_tag_observe_contract_ready(tag_observe_pointer) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n wasm.hakuban_tag_observe_contract_ready(retptr, tag_observe_pointer);\n var r0 = getInt32Memory0()[retptr / 4 + 0];\n var r1 = getInt32Memory0()[retptr / 4 + 1];\n var v0 = getArrayU32FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 4);\n return v0;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n}\n\n/**\n* @param {string} json_string\n* @returns {WasmResultWithPointer}\n*/\nexport function hakuban_tag_descriptor_new(json_string) {\n const ptr0 = passStringToWasm0(json_string, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.hakuban_tag_descriptor_new(ptr0, len0);\n return WasmResultWithPointer.__wrap(ret);\n}\n\n/**\n* @param {number} descriptor_pointer\n*/\nexport function hakuban_tag_descriptor_drop(descriptor_pointer) {\n wasm.hakuban_tag_descriptor_drop(descriptor_pointer);\n}\n\n/**\n* @param {number} descriptor_pointer\n* @returns {string}\n*/\nexport function hakuban_tag_descriptor_json(descriptor_pointer) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n wasm.hakuban_tag_descriptor_json(retptr, descriptor_pointer);\n var r0 = getInt32Memory0()[retptr / 4 + 0];\n var r1 = getInt32Memory0()[retptr / 4 + 1];\n return getStringFromWasm0(r0, r1);\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n wasm.__wbindgen_free(r0, r1);\n }\n}\n\nfunction passArray32ToWasm0(arg, malloc) {\n const ptr = malloc(arg.length * 4);\n getUint32Memory0().set(arg, ptr / 4);\n WASM_VECTOR_LEN = arg.length;\n return ptr;\n}\n/**\n* @param {string} json_string\n* @param {Uint32Array} tag_pointers\n* @returns {WasmResultWithPointer}\n*/\nexport function hakuban_object_descriptor_new(json_string, tag_pointers) {\n const ptr0 = passStringToWasm0(json_string, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passArray32ToWasm0(tag_pointers, wasm.__wbindgen_malloc);\n const len1 = WASM_VECTOR_LEN;\n const ret = wasm.hakuban_object_descriptor_new(ptr0, len0, ptr1, len1);\n return WasmResultWithPointer.__wrap(ret);\n}\n\n/**\n* @param {number} descriptor_pointer\n*/\nexport function hakuban_object_descriptor_drop(descriptor_pointer) {\n wasm.hakuban_object_descriptor_drop(descriptor_pointer);\n}\n\n/**\n* @param {number} descriptor_pointer\n* @returns {string}\n*/\nexport function hakuban_object_descriptor_json(descriptor_pointer) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n wasm.hakuban_object_descriptor_json(retptr, descriptor_pointer);\n var r0 = getInt32Memory0()[retptr / 4 + 0];\n var r1 = getInt32Memory0()[retptr / 4 + 1];\n return getStringFromWasm0(r0, r1);\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n wasm.__wbindgen_free(r0, r1);\n }\n}\n\n/**\n* @param {number} descriptor_pointer\n* @returns {Uint32Array}\n*/\nexport function hakuban_object_descriptor_tags(descriptor_pointer) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n wasm.hakuban_object_descriptor_tags(retptr, descriptor_pointer);\n var r0 = getInt32Memory0()[retptr / 4 + 0];\n var r1 = getInt32Memory0()[retptr / 4 + 1];\n var v0 = getArrayU32FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 4);\n return v0;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n}\n\n/**\n* @param {number} local_exchange\n* @param {number} descriptor\n* @returns {number}\n*/\nexport function hakuban_tag_expose_contract_new(local_exchange, descriptor) {\n const ret = wasm.hakuban_tag_expose_contract_new(local_exchange, descriptor);\n return ret;\n}\n\n/**\n* @param {number} tag_expose_contract_pointer\n*/\nexport function hakuban_tag_expose_contract_drop(tag_expose_contract_pointer) {\n wasm.hakuban_tag_expose_contract_drop(tag_expose_contract_pointer);\n}\n\n/**\n* @param {number} tag_expose_pointer\n*/\nexport function hakuban_tag_expose_contract_terminate(tag_expose_pointer) {\n wasm.hakuban_tag_expose_contract_terminate(tag_expose_pointer);\n}\n\n/**\n* @param {number} tag_expose_pointer\n* @returns {number}\n*/\nexport function hakuban_tag_expose_contract_next(tag_expose_pointer) {\n const ret = wasm.hakuban_tag_expose_contract_next(tag_expose_pointer);\n return ret;\n}\n\n/**\n* @param {number} tag_expose_pointer\n* @returns {Uint32Array}\n*/\nexport function hakuban_tag_expose_contract_ready(tag_expose_pointer) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n wasm.hakuban_tag_expose_contract_ready(retptr, tag_expose_pointer);\n var r0 = getInt32Memory0()[retptr / 4 + 0];\n var r1 = getInt32Memory0()[retptr / 4 + 1];\n var v0 = getArrayU32FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 4);\n return v0;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n}\n\nlet cachedBigUint64Memory0 = new BigUint64Array();\n\nfunction getBigUint64Memory0() {\n if (cachedBigUint64Memory0.byteLength === 0) {\n cachedBigUint64Memory0 = new BigUint64Array(wasm.memory.buffer);\n }\n return cachedBigUint64Memory0;\n}\n\nfunction passArray64ToWasm0(arg, malloc) {\n const ptr = malloc(arg.length * 8);\n getBigUint64Memory0().set(arg, ptr / 8);\n WASM_VECTOR_LEN = arg.length;\n return ptr;\n}\n\nfunction passArrayJsValueToWasm0(array, malloc) {\n const ptr = malloc(array.length * 4);\n const mem = getUint32Memory0();\n for (let i = 0; i < array.length; i++) {\n mem[ptr / 4 + i] = addHeapObject(array[i]);\n }\n WASM_VECTOR_LEN = array.length;\n return ptr;\n}\n\nfunction passArray8ToWasm0(arg, malloc) {\n const ptr = malloc(arg.length * 1);\n getUint8Memory0().set(arg, ptr / 1);\n WASM_VECTOR_LEN = arg.length;\n return ptr;\n}\n/**\n* @param {BigInt64Array} version\n* @param {any[]} format_jsvalues\n* @param {Uint8Array} data\n* @param {bigint} synchronized_us_ago\n* @returns {WasmResultWithPointer}\n*/\nexport function hakuban_object_state_new(version, format_jsvalues, data, synchronized_us_ago) {\n const ptr0 = passArray64ToWasm0(version, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passArrayJsValueToWasm0(format_jsvalues, wasm.__wbindgen_malloc);\n const len1 = WASM_VECTOR_LEN;\n const ptr2 = passArray8ToWasm0(data, wasm.__wbindgen_malloc);\n const len2 = WASM_VECTOR_LEN;\n const ret = wasm.hakuban_object_state_new(ptr0, len0, ptr1, len1, ptr2, len2, synchronized_us_ago);\n return WasmResultWithPointer.__wrap(ret);\n}\n\n/**\n* @param {number} object_state_pointer\n*/\nexport function hakuban_object_state_drop(object_state_pointer) {\n wasm.hakuban_object_state_drop(object_state_pointer);\n}\n\nlet cachedBigInt64Memory0 = new BigInt64Array();\n\nfunction getBigInt64Memory0() {\n if (cachedBigInt64Memory0.byteLength === 0) {\n cachedBigInt64Memory0 = new BigInt64Array(wasm.memory.buffer);\n }\n return cachedBigInt64Memory0;\n}\n\nfunction getArrayI64FromWasm0(ptr, len) {\n return getBigInt64Memory0().subarray(ptr / 8, ptr / 8 + len);\n}\n/**\n* @param {number} object_state_pointer\n* @returns {BigInt64Array}\n*/\nexport function hakuban_object_state_version(object_state_pointer) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n wasm.hakuban_object_state_version(retptr, object_state_pointer);\n var r0 = getInt32Memory0()[retptr / 4 + 0];\n var r1 = getInt32Memory0()[retptr / 4 + 1];\n var v0 = getArrayI64FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 8);\n return v0;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n}\n\n/**\n* @param {number} object_state_pointer\n* @returns {bigint}\n*/\nexport function hakuban_object_state_synchronized_ago(object_state_pointer) {\n const ret = wasm.hakuban_object_state_synchronized_ago(object_state_pointer);\n return BigInt.asUintN(64, ret);\n}\n\nfunction getArrayJsValueFromWasm0(ptr, len) {\n const mem = getUint32Memory0();\n const slice = mem.subarray(ptr / 4, ptr / 4 + len);\n const result = [];\n for (let i = 0; i < slice.length; i++) {\n result.push(takeObject(slice[i]));\n }\n return result;\n}\n/**\n* @param {number} object_state_pointer\n* @returns {any[]}\n*/\nexport function hakuban_object_state_format(object_state_pointer) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n wasm.hakuban_object_state_format(retptr, object_state_pointer);\n var r0 = getInt32Memory0()[retptr / 4 + 0];\n var r1 = getInt32Memory0()[retptr / 4 + 1];\n var v0 = getArrayJsValueFromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 4);\n return v0;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n}\n\nfunction getArrayU8FromWasm0(ptr, len) {\n return getUint8Memory0().subarray(ptr / 1, ptr / 1 + len);\n}\n/**\n* @param {number} object_state_pointer\n* @returns {Uint8Array}\n*/\nexport function hakuban_object_state_data(object_state_pointer) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n wasm.hakuban_object_state_data(retptr, object_state_pointer);\n var r0 = getInt32Memory0()[retptr / 4 + 0];\n var r1 = getInt32Memory0()[retptr / 4 + 1];\n var v0 = getArrayU8FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 1);\n return v0;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n}\n\n/**\n* @param {number} object_state_stream_pointer\n*/\nexport function hakuban_object_state_stream_drop(object_state_stream_pointer) {\n wasm.hakuban_object_state_stream_drop(object_state_stream_pointer);\n}\n\n/**\n* @param {number} object_state_stream_pointer\n* @returns {number}\n*/\nexport function hakuban_object_state_stream_next(object_state_stream_pointer) {\n const ret = wasm.hakuban_object_state_stream_next(object_state_stream_pointer);\n return ret;\n}\n\n/**\n* @param {number} object_state_stream_pointer\n* @returns {WasmResultWithPointer}\n*/\nexport function hakuban_object_state_stream_current(object_state_stream_pointer) {\n const ret = wasm.hakuban_object_state_stream_current(object_state_stream_pointer);\n return WasmResultWithPointer.__wrap(ret);\n}\n\n/**\n* @param {number} object_state_stream_pointer\n* @returns {number}\n*/\nexport function hakuban_object_state_stream_descriptor(object_state_stream_pointer) {\n const ret = wasm.hakuban_object_state_stream_descriptor(object_state_stream_pointer);\n return ret;\n}\n\n/**\n* @param {number} local_exchange_pointer\n* @param {boolean} upstream\n* @param {boolean} diff_produce\n* @param {boolean} diff_request\n* @returns {number}\n*/\nexport function hakuban_remote_exchange_new(local_exchange_pointer, upstream, diff_produce, diff_request) {\n const ret = wasm.hakuban_remote_exchange_new(local_exchange_pointer, upstream, diff_produce, diff_request);\n return ret;\n}\n\n/**\n* @param {number} remote_exchange_pointer\n*/\nexport function hakuban_remote_exchange_drop(remote_exchange_pointer) {\n wasm.hakuban_remote_exchange_drop(remote_exchange_pointer);\n}\n\n/**\n* @param {number} remote_exchange_pointer\n* @returns {number}\n*/\nexport function hakuban_remote_exchange_next_message_to_network(remote_exchange_pointer) {\n const ret = wasm.hakuban_remote_exchange_next_message_to_network(remote_exchange_pointer);\n return ret;\n}\n\n/**\n* @param {number} message_pointer\n* @returns {Uint8Array}\n*/\nexport function hakuban_message_take(message_pointer) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n wasm.hakuban_message_take(retptr, message_pointer);\n var r0 = getInt32Memory0()[retptr / 4 + 0];\n var r1 = getInt32Memory0()[retptr / 4 + 1];\n var v0 = getArrayU8FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 1);\n return v0;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n}\n\n/**\n* @param {number} remote_exchange_pointer\n* @param {Uint8Array} message_data\n* @returns {number}\n*/\nexport function hakuban_remote_exchange_send_message_from_network(remote_exchange_pointer, message_data) {\n const ptr0 = passArray8ToWasm0(message_data, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.hakuban_remote_exchange_send_message_from_network(remote_exchange_pointer, ptr0, len0);\n return ret;\n}\n\n/**\n* @param {number} local_exchange_pointer\n* @param {number} future_pointer\n* @param {bigint} waker_id\n* @returns {WasmResultWithPointer}\n*/\nexport function hakuban_future_returning_pointer_poll(local_exchange_pointer, future_pointer, waker_id) {\n const ret = wasm.hakuban_future_returning_pointer_poll(local_exchange_pointer, future_pointer, waker_id);\n return WasmResultWithPointer.__wrap(ret);\n}\n\n/**\n* @param {number} future\n*/\nexport function hakuban_future_returning_pointer_drop(future) {\n wasm.hakuban_future_returning_nothing_drop(future);\n}\n\n/**\n* @param {number} local_exchange_pointer\n* @param {number} future_pointer\n* @param {bigint} waker_id\n* @returns {WasmResultWithNothing}\n*/\nexport function hakuban_future_returning_nothing_poll(local_exchange_pointer, future_pointer, waker_id) {\n const ret = wasm.hakuban_future_returning_nothing_poll(local_exchange_pointer, future_pointer, waker_id);\n return WasmResultWithNothing.__wrap(ret);\n}\n\n/**\n* @param {number} future\n*/\nexport function hakuban_future_returning_nothing_drop(future) {\n wasm.hakuban_future_returning_nothing_drop(future);\n}\n\n/**\n* @param {string} default_log_level\n* @returns {number}\n*/\nexport function hakuban_logger_initialize(default_log_level) {\n const ptr0 = passStringToWasm0(default_log_level, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.hakuban_logger_initialize(ptr0, len0);\n return ret >>> 0;\n}\n\n/**\n* @param {number} object_state_sink_pointer\n* @returns {number}\n*/\nexport function hakuban_object_state_sink_descriptor(object_state_sink_pointer) {\n const ret = wasm.hakuban_object_state_sink_descriptor(object_state_sink_pointer);\n return ret;\n}\n\n/**\n* @param {number} object_state_sink_pointer\n*/\nexport function hakuban_object_state_sink_drop(object_state_sink_pointer) {\n wasm.hakuban_object_state_sink_drop(object_state_sink_pointer);\n}\n\n/**\n* @param {number} object_state_sink_pointer\n* @returns {number}\n*/\nexport function hakuban_object_state_sink_next(object_state_sink_pointer) {\n const ret = wasm.hakuban_object_state_sink_next(object_state_sink_pointer);\n return ret;\n}\n\n/**\n* @param {number} object_state_sink_pointer\n* @returns {WasmResultWithPointer}\n*/\nexport function hakuban_object_state_sink_current(object_state_sink_pointer) {\n const ret = wasm.hakuban_object_state_sink_current(object_state_sink_pointer);\n return WasmResultWithPointer.__wrap(ret);\n}\n\n/**\n* @param {number} object_state_sink_pointer\n* @param {number} object_state_pointer\n* @returns {number}\n*/\nexport function hakuban_object_state_sink_push(object_state_sink_pointer, object_state_pointer) {\n const ret = wasm.hakuban_object_state_sink_push(object_state_sink_pointer, object_state_pointer);\n return ret;\n}\n\n/**\n* @param {number} object_state_sink_params_pointer\n*/\nexport function hakuban_object_state_sink_params_drop(object_state_sink_params_pointer) {\n wasm.hakuban_object_state_sink_params_drop(object_state_sink_params_pointer);\n}\n\n/**\n* @param {number} object_state_sink_pointer\n*/\nexport function hakuban_object_state_sink_desynchronize(object_state_sink_pointer) {\n wasm.hakuban_object_state_sink_desynchronize(object_state_sink_pointer);\n}\n\n/**\n* @param {string} name_str\n* @returns {WasmResultWithPointer}\n*/\nexport function hakuban_local_exchange_new(name_str) {\n const ptr0 = passStringToWasm0(name_str, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.hakuban_local_exchange_new(ptr0, len0);\n return WasmResultWithPointer.__wrap(ret);\n}\n\n/**\n* @param {number} local_exchange\n*/\nexport function hakuban_local_exchange_drop(local_exchange) {\n wasm.hakuban_local_exchange_drop(local_exchange);\n}\n\nfunction getArrayU64FromWasm0(ptr, len) {\n return getBigUint64Memory0().subarray(ptr / 8, ptr / 8 + len);\n}\n/**\n* @param {number} local_exchange\n* @returns {BigUint64Array}\n*/\nexport function hakuban_local_exchange_notified(local_exchange) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n wasm.hakuban_local_exchange_notified(retptr, local_exchange);\n var r0 = getInt32Memory0()[retptr / 4 + 0];\n var r1 = getInt32Memory0()[retptr / 4 + 1];\n var v0 = getArrayU64FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 8);\n return v0;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n}\n\n/**\n* @param {number} local_exchange\n* @param {number} descriptor\n* @returns {number}\n*/\nexport function hakuban_object_expose_contract_new(local_exchange, descriptor) {\n const ret = wasm.hakuban_object_expose_contract_new(local_exchange, descriptor);\n return ret;\n}\n\n/**\n* @param {number} object_ptr\n*/\nexport function hakuban_object_expose_contract_drop(object_ptr) {\n wasm.hakuban_object_expose_contract_drop(object_ptr);\n}\n\n/**\n* @param {number} object_expose_pointer\n*/\nexport function hakuban_object_expose_contract_terminate(object_expose_pointer) {\n wasm.hakuban_object_expose_contract_terminate(object_expose_pointer);\n}\n\n/**\n* @param {number} object_expose_pointer\n* @returns {number}\n*/\nexport function hakuban_object_expose_contract_next(object_expose_pointer) {\n const ret = wasm.hakuban_object_expose_contract_next(object_expose_pointer);\n return ret;\n}\n\n/**\n* @param {number} object_expose_pointer\n* @returns {WasmResultWithPointer}\n*/\nexport function hakuban_object_expose_contract_ready(object_expose_pointer) {\n const ret = wasm.hakuban_object_expose_contract_ready(object_expose_pointer);\n return WasmResultWithPointer.__wrap(ret);\n}\n\nfunction handleError(f, args) {\n try {\n return f.apply(this, args);\n } catch (e) {\n wasm.__wbindgen_exn_store(addHeapObject(e));\n }\n}\n/**\n*/\nexport const WasmResultStatus = Object.freeze({ Ok:0,\"0\":\"Ok\",Pending:1,\"1\":\"Pending\",NotAvailable:2,\"2\":\"NotAvailable\",InvalidString:3,\"3\":\"InvalidString\",InvalidJSON:4,\"4\":\"InvalidJSON\",InvalidURL:5,\"5\":\"InvalidURL\",InvalidLogLevel:6,\"6\":\"InvalidLogLevel\",UnknownError:7,\"7\":\"UnknownError\", });\n/**\n*/\nexport class WasmResultWithNothing {\n\n static __wrap(ptr) {\n const obj = Object.create(WasmResultWithNothing.prototype);\n obj.ptr = ptr;\n\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.ptr;\n this.ptr = 0;\n\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_wasmresultwithnothing_free(ptr);\n }\n /**\n * @returns {number}\n */\n get status() {\n const ret = wasm.__wbg_get_wasmresultwithnothing_status(this.ptr);\n return ret >>> 0;\n }\n /**\n * @param {number} arg0\n */\n set status(arg0) {\n wasm.__wbg_set_wasmresultwithnothing_status(this.ptr, arg0);\n }\n}\n/**\n*/\nexport class WasmResultWithPointer {\n\n static __wrap(ptr) {\n const obj = Object.create(WasmResultWithPointer.prototype);\n obj.ptr = ptr;\n\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.ptr;\n this.ptr = 0;\n\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_wasmresultwithpointer_free(ptr);\n }\n /**\n * @returns {number}\n */\n get status() {\n const ret = wasm.__wbg_get_wasmresultwithpointer_status(this.ptr);\n return ret >>> 0;\n }\n /**\n * @param {number} arg0\n */\n set status(arg0) {\n wasm.__wbg_set_wasmresultwithpointer_status(this.ptr, arg0);\n }\n /**\n * @returns {number}\n */\n get value() {\n const ret = wasm.__wbg_get_wasmresultwithpointer_value(this.ptr);\n return ret;\n }\n /**\n * @param {number} arg0\n */\n set value(arg0) {\n wasm.__wbg_set_wasmresultwithpointer_value(this.ptr, arg0);\n }\n}\n\nasync function load(module, imports) {\n if (typeof Response === 'function' && module instanceof Response) {\n if (typeof WebAssembly.instantiateStreaming === 'function') {\n try {\n return await WebAssembly.instantiateStreaming(module, imports);\n\n } catch (e) {\n if (module.headers.get('Content-Type') != 'application/wasm') {\n console.warn(\"`WebAssembly.instantiateStreaming` failed because your server does not serve wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\\n\", e);\n\n } else {\n throw e;\n }\n }\n }\n\n const bytes = await module.arrayBuffer();\n return await WebAssembly.instantiate(bytes, imports);\n\n } else {\n const instance = await WebAssembly.instantiate(module, imports);\n\n if (instance instanceof WebAssembly.Instance) {\n return { instance, module };\n\n } else {\n return instance;\n }\n }\n}\n\nfunction getImports() {\n const imports = {};\n imports.wbg = {};\n imports.wbg.__wbindgen_string_new = function(arg0, arg1) {\n const ret = getStringFromWasm0(arg0, arg1);\n return addHeapObject(ret);\n };\n imports.wbg.__wbindgen_object_drop_ref = function(arg0) {\n takeObject(arg0);\n };\n imports.wbg.__wbindgen_string_get = function(arg0, arg1) {\n const obj = getObject(arg1);\n const ret = typeof(obj) === 'string' ? obj : undefined;\n var ptr0 = isLikeNone(ret) ? 0 : passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len0 = WASM_VECTOR_LEN;\n getInt32Memory0()[arg0 / 4 + 1] = len0;\n getInt32Memory0()[arg0 / 4 + 0] = ptr0;\n };\n imports.wbg.__wbg_debug_f15cb542ea509609 = function(arg0) {\n console.debug(getObject(arg0));\n };\n imports.wbg.__wbg_error_ef9a0be47931175f = function(arg0) {\n console.error(getObject(arg0));\n };\n imports.wbg.__wbg_info_2874fdd5393f35ce = function(arg0) {\n console.info(getObject(arg0));\n };\n imports.wbg.__wbg_log_4b5638ad60bdc54a = function(arg0) {\n console.log(getObject(arg0));\n };\n imports.wbg.__wbg_warn_58110c4a199df084 = function(arg0) {\n console.warn(getObject(arg0));\n };\n imports.wbg.__wbg_now_8172cd917e5eda6b = function(arg0) {\n const ret = getObject(arg0).now();\n return ret;\n };\n imports.wbg.__wbg_newnoargs_b5b063fc6c2f0376 = function(arg0, arg1) {\n const ret = new Function(getStringFromWasm0(arg0, arg1));\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_get_765201544a2b6869 = function() { return handleError(function (arg0, arg1) {\n const ret = Reflect.get(getObject(arg0), getObject(arg1));\n return addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbg_call_97ae9d8645dc388b = function() { return handleError(function (arg0, arg1) {\n const ret = getObject(arg0).call(getObject(arg1));\n return addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbg_self_6d479506f72c6a71 = function() { return handleError(function () {\n const ret = self.self;\n return addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbg_window_f2557cc78490aceb = function() { return handleError(function () {\n const ret = window.window;\n return addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbg_globalThis_7f206bda628d5286 = function() { return handleError(function () {\n const ret = globalThis.globalThis;\n return addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbg_global_ba75c50d1cf384f4 = function() { return handleError(function () {\n const ret = global.global;\n return addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbindgen_is_undefined = function(arg0) {\n const ret = getObject(arg0) === undefined;\n return ret;\n };\n imports.wbg.__wbindgen_object_clone_ref = function(arg0) {\n const ret = getObject(arg0);\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_new_abda76e883ba8a5f = function() {\n const ret = new Error();\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_stack_658279fe44541cf6 = function(arg0, arg1) {\n const ret = getObject(arg1).stack;\n const ptr0 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n getInt32Memory0()[arg0 / 4 + 1] = len0;\n getInt32Memory0()[arg0 / 4 + 0] = ptr0;\n };\n imports.wbg.__wbg_error_f851667af71bcfc6 = function(arg0, arg1) {\n try {\n console.error(getStringFromWasm0(arg0, arg1));\n } finally {\n wasm.__wbindgen_free(arg0, arg1);\n }\n };\n imports.wbg.__wbindgen_debug_string = function(arg0, arg1) {\n const ret = debugString(getObject(arg1));\n const ptr0 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n getInt32Memory0()[arg0 / 4 + 1] = len0;\n getInt32Memory0()[arg0 / 4 + 0] = ptr0;\n };\n imports.wbg.__wbindgen_throw = function(arg0, arg1) {\n throw new Error(getStringFromWasm0(arg0, arg1));\n };\n\n return imports;\n}\n\nfunction initMemory(imports, maybe_memory) {\n\n}\n\nfunction finalizeInit(instance, module) {\n wasm = instance.exports;\n init.__wbindgen_wasm_module = module;\n cachedBigInt64Memory0 = new BigInt64Array();\n cachedBigUint64Memory0 = new BigUint64Array();\n cachedInt32Memory0 = new Int32Array();\n cachedUint32Memory0 = new Uint32Array();\n cachedUint8Memory0 = new Uint8Array();\n\n\n return wasm;\n}\n\nfunction initSync(module) {\n const imports = getImports();\n\n initMemory(imports);\n\n if (!(module instanceof WebAssembly.Module)) {\n module = new WebAssembly.Module(module);\n }\n\n const instance = new WebAssembly.Instance(module, imports);\n\n return finalizeInit(instance, module);\n}\n\nasync function init(input) {\n if (typeof input === 'undefined') {\n input = new URL('hakuban_bg.wasm', import.meta.url);\n }\n const imports = getImports();\n\n if (typeof input === 'string' || (typeof Request === 'function' && input instanceof Request) || (typeof URL === 'function' && input instanceof URL)) {\n input = fetch(input);\n }\n\n initMemory(imports);\n\n const { instance, module } = await load(await input, imports);\n\n return finalizeInit(instance, module);\n}\n\nexport { initSync }\nexport default init;\n","export * from \"../pkg/hakuban.js\"\n\n\nexport unwrap_pointer = (result)->\n\tif result.status == 0\n\t\tresult.value\n\telse\n\t\tthrow \"hakuban wasm call failed: \"+result.status\n\nexport unwrap_pointer_or_null = (result)->\n\tif result.status == 0\n\t\tresult.value\n\telse if result.status == 2 #unavailable\n\t\tnull\n\telse\n\t\tthrow \"hakuban wasm call failed: \"+result.status\n\n\nexport class Future\n\n\tconstructor: (@local_exchange, @future_owner, @poll_function, @drop_function, @_pointer)->\n\n\tawait_and_drop: (aborted=null)->\n\t\ttry\n\t\t\tabout_to_drop_notification_received = new Promise (about_to_drop_notification)=>\n\t\t\t\t@lock_id = @future_owner.drop_lock(about_to_drop_notification)\n\t\t\twhile true\n\t\t\t\tnotified = @local_exchange.notified()\n\t\t\t\tresult = @local_exchange.with_pointer (local_exchange_pointer)=> @poll_function(local_exchange_pointer, @_pointer, notified.id)\n\t\t\t\tswitch result.status\n\t\t\t\t\twhen 0 #ok\n\t\t\t\t\t\treturn result.value\n\t\t\t\t\twhen 1 #pending\n\t\t\t\t\t\tto_listen = [notified, about_to_drop_notification_received]\n\t\t\t\t\t\tto_listen.push(aborted) if aborted?\n\t\t\t\t\t\tswitch await Promise.race(to_listen)\n\t\t\t\t\t\t\twhen \"ABORT\" then return false\n\t\t\t\t\t\t\twhen \"DROP\" then return null\n\t\t\t\t\twhen 2 #unavailable, channel closed\n\t\t\t\t\t\treturn null\n\t\t\t\t\telse\n\t\t\t\t\t\tthrow result.status #TODO: convert that to specific error\n\t\tfinally\n\t\t\t@drop_function(@_pointer)\n\t\t\t@future_owner.drop_release(@lock_id)\n\t\t\t@local_exchange.return_notified(notified) if notified?\n\n","import * as FFI from \"./ffi.coffee\"\n\n\nexport logger_initialize = (log_level, skip_if_already_initialized=false) ->\n\t\tif 0 == (error = FFI.hakuban_logger_initialize(log_level))\n\t\t\tlogger_initialized = true\n\t\telse\n\t\t\tconsole.error \"Failed to initialize logger, error \" + error \n\t\t\tfalse\n","\nfinalization_registry = new FinalizationRegistry (function_and_arg)-> function_and_arg[0](function_and_arg[1])\n\n\ndo_and_drop = (object_or_objects, block)->\n\t\ttry\n\t\t\tblock_returned_promise = false\n\t\t\tret = block(object_or_objects)\n\t\t\tif ret? and typeof ret.then == 'function'\n\t\t\t\tblock_returned_promise = true\n\t\t\t\tret.finally ()=>\n\t\t\t\t\tfor object in [object_or_objects].flat()\n\t\t\t\t\t\tobject.drop()\n\t\t\telse\n\t\t\t\tret\n\t\tfinally\n\t\t\tif not block_returned_promise\n\t\t\t\tfor object in [object_or_objects].flat()\n\t\t\t\t\tobject.drop()\n\n\nexport do_and_drop_or_return = (object_or_objects, block)->\n\t\tif block?\n\t\t\tdo_and_drop(object_or_objects, block)\n\t\telse\n\t\t\tobject_or_objects\n\n\nexport class PointerAlreadyDropped\n\tconstructor: ()->@message=\"PointerAlreadyDropped\"\n\n\nexport class FFIObject\n\n\n\tinitialize_pointer: (@_local_exchange, @_pointer, @_drop_function)->\n\t\t@_was_dropped = null\n\t\t@_drop_locks_sequence = 0\n\t\t@_drop_locks = {}\n\t\tfinalization_registry.register(@, [@_drop_function, @_pointer], @)\n\t\n\tdropped: ()->\n\t\t@_was_dropped?\n\n\tdrop: ()-> \n\t\tif not @_was_dropped?\n\t\t\t@_was_dropped = new Promise (resolve)=>\n\t\t\t\tif @_pointer?\n\t\t\t\t\tif Object.keys(@_drop_locks).length > 0\n\t\t\t\t\t\tall_locks_dropped = new Promise (@_all_locks_dropped_set)=>\n\t\t\t\t\t\tfor about_to_drop_notification in Object.values(@_drop_locks)\n\t\t\t\t\t\t\tabout_to_drop_notification(\"DROP\")\n\t\t\t\t\t\tawait all_locks_dropped\n\t\t\t\t\tthrow \"Hakuban internal error: drop was attempted with existing drop locks\" if Object.keys(@_drop_locks).length > 0\n\t\t\t\t\tfinalization_registry.unregister(@)\n\t\t\t\t\t@_drop_function(@_pointer)\n\t\t\t\t\t@_local_exchange.notify() if @_local_exchange?\n\t\t\t\t@_pointer = false\n\t\t\t\tresolve()\n\t\t@_was_dropped\n\n\twith_pointer: (block)->\n\t\tthrow new PointerAlreadyDropped() if @dropped()\n\t\tblock(@_pointer)\n\n\tdo_and_drop_or_return: (block)->\n\t\tdo_and_drop_or_return(@, block)\n\n\tdrop_lock: (about_to_drop_notification)->\n\t\traise FFIObject::PointerAlreadyDropped if @_was_dropped?\n\t\tlock_id = @_drop_locks_sequence++\n\t\t@_drop_locks[lock_id] = about_to_drop_notification\n\t\tlock_id\n\t\n\tdrop_release: (lock_id)->\n\t\tdelete @_drop_locks[lock_id]\n\t\tif @_was_dropped? and Object.keys(@_drop_locks).length == 0\n\t\t\t@_all_locks_dropped_set()\n","import * as FFI from \"./ffi.coffee\"\nimport { FFIObject } from \"./ffi-object.coffee\"\n\n\nexport class ObjectDescriptor extends FFIObject\n\n\tconstructor: (tags, json, pointer=null) -> \n\t\tsuper()\n\t\tif pointer?\n\t\t\t@json = JSON.parse(FFI.hakuban_object_descriptor_json(pointer))\n\t\t\t@tags = (new TagDescriptor(null, null, tag_pointer) for tag_pointer in FFI.hakuban_object_descriptor_tags(pointer))\n\t\telse\n\t\t\t@json = json\n\t\t\t@tags = ((if tag instanceof TagDescriptor then tag else new TagDescriptor(tag)) for tag in tags)\n\t\t\tpointer = FFI.unwrap_pointer(FFI.hakuban_object_descriptor_new(JSON.stringify(@json), (tag._pointer for tag in @tags)))\n\t\t@initialize_pointer(null, pointer, FFI.hakuban_object_descriptor_drop)\n\n\nexport class TagDescriptor extends FFIObject\n\n\tconstructor: (json) -> \n\t\tsuper()\n\t\t@json = json\n\t\tpointer = FFI.unwrap_pointer(FFI.hakuban_tag_descriptor_new(JSON.stringify(@json)))\n\t\t@initialize_pointer(null, pointer, FFI.hakuban_tag_descriptor_drop)\n\n","import * as FFI from \"./ffi.coffee\"\nimport { FFIObject } from \"./ffi-object.coffee\"\n\n\nObjectState_last_generated_version = [0,0,0]\n\n#TODO: make this immutable for the users somehow\nexport class ObjectState extends FFIObject\n\n\tconstructor: (data=null, version=null, format=null, synchronized_us_ago=0, pointer=null)->\n\t\tsuper()\n\t\tif pointer?\n\t\t\t@initialize_pointer(null, pointer, FFI.hakuban_object_state_drop)\n\t\t\t@version = (x for x in FFI.hakuban_object_state_version(pointer))\n\t\t\t@synchronized_us_ago = FFI.hakuban_object_state_synchronized_ago(pointer)\n\t\t\t@format = FFI.hakuban_object_state_format(pointer)\n\t\t\t@data = new TextDecoder().decode(FFI.hakuban_object_state_data(pointer))\n\t\telse\n\t\t\tif !version?\n\t\t\t\ttimestamp = new Date().getTime()\n\t\t\t\tversion = [0, Math.floor(timestamp/1000), (timestamp % 1000) * 1000]\n\t\t\t\tversion[2]++ while version[1] == ObjectState_last_generated_version[1] and version[2] <= ObjectState_last_generated_version[2]\n\t\t\t\tObjectState_last_generated_version = version\n\t\t\t@version = (BigInt(version_element) for version_element in version)\n\t\t\tif !format?\n\t\t\t\tformat = []\n\t\t\t@format = [format].flat(Infinity)\n\t\t\t@synchronized_us_ago = BigInt(synchronized_us_ago)\n\t\t\t@data = data\n\t\t\n\twith_pointer: (block)->\n\t\tthrow new PointerAlreadyDropped() if @dropped()\n\t\tif @_pointer?\n\t\t\tblock(@_pointer)\n\t\telse\n\t\t\tpointer = FFI.unwrap_pointer(FFI.hakuban_object_state_new(@version, @format, new TextEncoder().encode(@data), @synchronized_us_ago))\n\t\t\t@initialize_pointer(null, pointer, FFI.hakuban_object_state_drop)\n\t\t\tblock(@_pointer)\n\n\twith_data: (data)->\n\t\tnew ObjectState(data, @version, @format, @synchronized_us_ago)\n\n\twith_version: (version)->\n\t\tnew ObjectState(@data, version, @format, @synchronized_us_ago)\n\n\twith_format: (format)->\n\t\tnew ObjectState(@data, @version, format, @synchronized_us_ago)\n\n\twith_synchronized_us_ago: (synchronized_us_ago)->\n\t\tnew ObjectState(@data, @version, @format, synchronized_us_ago)\n\n\tjson_deserialize: ()->\n\t\tthrow \"Invalid data format\" if @format[@format.length - 1] != \"JSON\"\n\t\tnew ObjectState(JSON.parse(@data), @version, @format.slice(0, -1), @synchronized_us_ago)\n\n\tjson_serialize: ()->\n\t\tnew ObjectState(JSON.stringify(@data), @version, @format.concat(\"JSON\"), @synchronized_us_ago)\n","export class StreamEnumerator\n\n\tconstructor: (@_stream, @_without_implicit_drop=false, @_async=false)->\n\n\tasync: (block)->\n\t\tnew StreamEnumerator(@_stream, @_without_implicit_drop, true).call_or_return(block)\n\n\twithout_implicit_drop: (block)->\n\t\tnew StreamEnumerator(@_stream, true, @_async).call_or_return(block)\n\n\tcall_or_return: (block)->\n\t\tif block?\n\t\t\t@call(block)\n\t\telse\n\t\t\t@\n\n\tcall: (block)->\n\t\twhile (new_item = await @_stream.next())?\n\t\t\tif @_async\n\t\t\t\t#TODO: will GC eat it before it fullfils?\n\t\t\t\t_promise = new Promise (_resolve)=>\n\t\t\t\t\titem = new_item # :(\n\t\t\t\t\tif @_without_implicit_drop\n\t\t\t\t\t\tawait block(item)\n\t\t\t\t\telse\n\t\t\t\t\t\ttry\n\t\t\t\t\t\t\tawait block(item)\n\t\t\t\t\t\tfinally\n\t\t\t\t\t\t\tawait item.drop()\n\t\t\telse\n\t\t\t\tif @_without_implicit_drop\n\t\t\t\t\tawait block(new_item)\n\t\t\t\telse\n\t\t\t\t\ttry\n\t\t\t\t\t\tawait block(new_item)\n\t\t\t\t\tfinally\n\t\t\t\t\t\tawait new_item.drop()\n","import * as FFI from \"./ffi.coffee\"\nimport { FFIObject, PointerAlreadyDropped } from \"./ffi-object.coffee\"\nimport { ObjectDescriptor } from \"./descriptor.coffee\"\nimport { ObjectState } from \"./object-state.coffee\"\nimport { StreamEnumerator } from \"./stream.coffee\"\n\n\nexport class ObjectStateStream extends FFIObject\n\n\tconstructor: (local_exchange, pointer)->\n\t\tsuper()\n\t\t@local_exchange = local_exchange\n\t\t@initialize_pointer(@local_exchange, pointer, FFI.hakuban_object_state_stream_drop)\n\n\tdescriptor: ()->\n\t\t@with_pointer (pointer)->new ObjectDescriptor(null, null, FFI.hakuban_object_state_stream_descriptor(pointer))\n\n\tnext: (block)->\n\t\ttry\n\t\t\tfuture_pointer = @with_pointer (pointer)=>FFI.hakuban_object_state_stream_next(pointer)\n\t\t\tpointer = await new FFI.Future(@local_exchange, @, FFI.hakuban_future_returning_pointer_poll, FFI.hakuban_future_returning_pointer_drop, future_pointer).await_and_drop()\n\t\t\tif pointer? then new ObjectState(null, null, null, null, pointer).do_and_drop_or_return(block) else null\n\t\tcatch error\n\t\t\treturn null if error instanceof PointerAlreadyDropped\n\t\t\tthrow error\n\n\n\teach: (block)->\n\t\tnew StreamEnumerator(@).call_or_return(block)\n\n\tcurrent: (block)->\n\t\ttry\n\t\t\tpointer = @with_pointer (pointer)=> FFI.unwrap_pointer_or_null(FFI.hakuban_object_state_stream_current(pointer))\n\t\t\tif pointer? then new ObjectState(null, null, null, null, pointer).do_and_drop_or_return(block) else null\n\t\tcatch error\n\t\t\treturn null if error instanceof PointerAlreadyDropped\n\t\t\tthrow error\n","import * as FFI from \"./ffi.coffee\"\nimport { FFIObject } from \"./ffi-object.coffee\"\nimport { ObjectDescriptor } from \"./descriptor.coffee\"\nimport { StreamEnumerator } from \"./stream.coffee\"\n\n\nexport class ObjectStateSinkParams extends FFIObject\n\n\tconstructor: (pointer)->\n\t\tsuper()\n\t\t@initialize_pointer(null, pointer, FFI.hakuban_object_state_sink_params_drop)\n\n\nexport class ObjectStateSink extends FFIObject\n\n\tconstructor: (local_exchange, pointer)->\n\t\tsuper()\n\t\t@local_exchange = local_exchange\n\t\t@initialize_pointer(@local_exchange, pointer, FFI.hakuban_object_state_sink_drop)\n\n\tdescriptor: ()->\n\t\t@with_pointer (pointer)->new ObjectDescriptor(null, null, FFI.hakuban_object_state_sink_descriptor(pointer))\n\n\tsend: (object_state)->\n\t\ttry\n\t\t\tfuture_pointer = @with_pointer (sink_pointer)=>\n\t\t\t\tobject_state.with_pointer (object_state_pointer)=>\n\t\t\t\t\tFFI.hakuban_object_state_sink_push(sink_pointer, object_state_pointer)\n\t\t\tawait new FFI.Future(@local_exchange, @, FFI.hakuban_future_returning_nothing_poll, FFI.hakuban_future_returning_nothing_drop, future_pointer).await_and_drop()\n\t\t\t@local_exchange.notify()\n\t\t\ttrue\n\t\tcatch error\n\t\t\treturn null if error instanceof PointerAlreadyDropped\n\t\t\tthrow error\n\n\tnext: (block)->\n\t\ttry\n\t\t\tfuture_pointer = @with_pointer (pointer)=>FFI.hakuban_object_state_sink_next(pointer)\n\t\t\tpointer = await new FFI.Future(@local_exchange, @, FFI.hakuban_future_returning_pointer_poll, FFI.hakuban_future_returning_pointer_drop, future_pointer).await_and_drop()\n\t\t\tif pointer? then new ObjectStateSinkParams(pointer).do_and_drop_or_return(block) else null\n\t\tcatch error\n\t\t\treturn null if error instanceof PointerAlreadyDropped\n\t\t\tthrow error\n\n\teach: (block)->\n\t\tnew StreamEnumerator(@).call_or_return(block)\n\n\tcurrent: (block)->\n\t\ttry\n\t\t\tpointer = @with_pointer (pointer)=>FFI.unwrap_pointer_or_null(FFI.hakuban_object_state_sink_current(pointer))\n\t\t\tif pointer? then new ObjectStateSinkParams(pointer).do_and_drop_or_return(block) else null\n\t\tcatch error\n\t\t\treturn null if error instanceof PointerAlreadyDropped\n\t\t\tthrow error\n\n\tdesynchronize: ()->\n\t\ttry\n\t\t\t@with_pointer (pointer)=>FFI.hakuban_object_state_sink_desynchronize(pointer)\n\t\t\t@local_exchange.notify()\n\t\t\ttrue\n\t\tcatch error\n\t\t\treturn null if error instanceof PointerAlreadyDropped\n\t\t\tthrow error\n","import * as FFI from \"./ffi.coffee\"\nimport { FFIObject, PointerAlreadyDropped, do_and_drop_or_return } from \"./ffi-object.coffee\"\nimport { ObjectDescriptor, TagDescriptor } from \"./descriptor.coffee\"\nimport { ObjectStateStream } from \"./object-state-stream.coffee\"\nimport { ObjectStateSink } from \"./object-state-sink.coffee\"\nimport { StreamEnumerator } from \"./stream.coffee\"\n\n\nclass Contract extends FFIObject\n\n\teach: (block)->\n\t\tnew StreamEnumerator(@).call_or_return(block)\n\n\nexport class ObjectObserveContract extends Contract\n\n\tconstructor: (local_exchange, descriptor) ->\n\t\tsuper()\n\t\t@local_exchange = local_exchange\n\t\t@descriptor = if descriptor[0] instanceof ObjectDescriptor\n\t\t\tdescriptor[0]\n\t\telse\n\t\t\tnew ObjectDescriptor(descriptor...) \n\t\t@local_exchange.with_pointer (local_exchange_pointer)=>\n\t\t\t@descriptor.with_pointer (descriptor_pointer)=>\t\n\t\t\t\t@initialize_pointer(@local_exchange, FFI.hakuban_object_observe_contract_new(local_exchange_pointer, descriptor_pointer), FFI.hakuban_object_observe_contract_drop)\n\t\t@local_exchange.notify()\n\t\n\tterminate: ()->\n\t\ttry\n\t\t\t@with_pointer (pointer)=>FFI.hakuban_object_observe_contract_terminate(pointer)\n\t\t\t@local_exchange.notify()\n\t\tcatch error\n\t\t\treturn null if error instanceof PointerAlreadyDropped\n\t\t\tthrow error\n\t\n\tnext: (block)->\n\t\ttry\n\t\t\tfuture_pointer = @with_pointer (pointer)=>FFI.hakuban_object_observe_contract_next(pointer)\n\t\t\tpointer = await new FFI.Future(@local_exchange, @, FFI.hakuban_future_returning_pointer_poll, FFI.hakuban_future_returning_pointer_drop, future_pointer).await_and_drop()\n\t\t\t@local_exchange.notify()\n\t\t\tif pointer? then await new ObjectStateStream(@local_exchange, pointer).do_and_drop_or_return(block) else null\n\t\tcatch error\n\t\t\treturn null if error instanceof PointerAlreadyDropped\n\t\t\tthrow error\n\n\tready: (block)->\n\t\ttry\n\t\t\tpointer = @with_pointer (pointer)=>FFI.unwrap_pointer_or_null(FFI.hakuban_object_observe_contract_ready(pointer))\n\t\t\t@local_exchange.notify()\n\t\t\tif pointer? then new ObjectStateStream(@local_exchange, pointer).do_and_drop_or_return(block) else null\n\t\tcatch error\n\t\t\treturn null if error instanceof PointerAlreadyDropped\n\t\t\tthrow error\n\n\nexport class ObjectExposeContract extends Contract\n\n\tconstructor: (local_exchange, descriptor)->\n\t\tsuper()\n\t\t@local_exchange = local_exchange\n\t\t@descriptor = if descriptor[0] instanceof ObjectDescriptor\n\t\t\tdescriptor[0]\n\t\telse\n\t\t\tnew ObjectDescriptor(descriptor...)\n\t\t@local_exchange.with_pointer (local_exchange_pointer)=>\n\t\t\t@descriptor.with_pointer (descriptor_pointer)=>\n\t\t\t\t@initialize_pointer(@local_exchange, FFI.hakuban_object_expose_contract_new(local_exchange_pointer, descriptor_pointer), FFI.hakuban_object_expose_contract_drop)\n\t\t@local_exchange.notify()\n\n\tterminate: ()->\n\t\ttry\n\t\t\t@with_pointer (pointer)=>FFI.hakuban_object_expose_contract_terminate(pointer)\n\t\t\t@local_exchange.notify()\n\t\tcatch error\n\t\t\treturn null if error instanceof PointerAlreadyDropped\n\t\t\tthrow error\n\n\tnext: (block)->\n\t\ttry\n\t\t\tfuture_pointer = @with_pointer (pointer)=>FFI.hakuban_object_expose_contract_next(pointer)\n\t\t\tpointer = await new FFI.Future(@local_exchange, @, FFI.hakuban_future_returning_pointer_poll, FFI.hakuban_future_returning_pointer_drop, future_pointer).await_and_drop()\n\t\t\t@local_exchange.notify()\n\t\t\tif pointer? then await new ObjectStateSink(@local_exchange, pointer).do_and_drop_or_return(block) else null\n\t\tcatch error\n\t\t\treturn null if error instanceof PointerAlreadyDropped\n\t\t\tthrow error\n\n\tready: (block)->\n\t\ttry\n\t\t\tpointer = @with_pointer (pointer)=>FFI.unwrap_pointer_or_null(FFI.hakuban_object_expose_contract_ready(pointer))\n\t\t\t@local_exchange.notify()\n\t\t\tif pointer? then new ObjectStateSink(@local_exchange, pointer).do_and_drop_or_return(block) else null\n\t\tcatch error\n\t\t\treturn null if error instanceof PointerAlreadyDropped\n\t\t\tthrow error\n\n\nexport class TagObserveContract extends Contract\n\n\tconstructor: (local_exchange, descriptor) ->\n\t\tsuper()\n\t\t@local_exchange = local_exchange\n\t\t@descriptor = descriptor\n\t\t@descriptor = new TagDescriptor(@descriptor) if not (@descriptor instanceof TagDescriptor)\n\t\t@local_exchange.with_pointer (local_exchange_pointer)=>\n\t\t\t@descriptor.with_pointer (descriptor_pointer)=>\n\t\t\t\t@initialize_pointer(@local_exchange, FFI.hakuban_tag_observe_contract_new(local_exchange_pointer, descriptor_pointer), FFI.hakuban_tag_observe_contract_drop)\n\t\t@local_exchange.notify()\n\n\tterminate: ()->\n\t\ttry\n\t\t\t@with_pointer (pointer)=>FFI.hakuban_tag_observe_contract_terminate(pointer)\n\t\t\t@local_exchange.notify()\n\t\tcatch error\n\t\t\treturn null if error instanceof PointerAlreadyDropped\n\t\t\tthrow error\t\n\n\tnext: (block)->\n\t\ttry\n\t\t\tfuture_pointer = @with_pointer (pointer)=>FFI.hakuban_tag_observe_contract_next(pointer)\n\t\t\tpointer = await new FFI.Future(@local_exchange, @, FFI.hakuban_future_returning_pointer_poll, FFI.hakuban_future_returning_pointer_drop, future_pointer).await_and_drop()\n\t\t\t@local_exchange.notify()\n\t\t\tif pointer? then new ObjectStateStream(@local_exchange, pointer).do_and_drop_or_return(block) else null\n\t\tcatch error\n\t\t\treturn null if error instanceof PointerAlreadyDropped\n\t\t\tthrow error\n\n\tready: (block)->\n\t\ttry\n\t\t\tpointers = @with_pointer (pointer)=>FFI.hakuban_tag_observe_contract_ready(pointer)\n\t\t\t@local_exchange.notify()\n\t\t\tdo_and_drop_or_return(new ObjectStateStream(@local_exchange, pointer) for pointer in pointers, block)\n\t\tcatch error\n\t\t\treturn null if error instanceof PointerAlreadyDropped\n\t\t\tthrow error\n\n\nexport class TagExposeContract extends Contract\n\n\tconstructor: (local_exchange, descriptor) ->\n\t\tsuper()\n\t\t@local_exchange = local_exchange\n\t\t@descriptor = descriptor\n\t\t@descriptor = new TagDescriptor(@descriptor) if not (@descriptor instanceof TagDescriptor)\n\t\t@local_exchange.with_pointer (local_exchange_pointer)=>\n\t\t\t@descriptor.with_pointer (descriptor_pointer)=>\n\t\t\t\t@initialize_pointer(@local_exchange, FFI.hakuban_tag_expose_contract_new(local_exchange_pointer, descriptor_pointer), FFI.hakuban_tag_expose_contract_drop)\n\t\t@local_exchange.notify()\n\n\tterminate: ()->\n\t\ttry\n\t\t\t@with_pointer (pointer)=>FFI.hakuban_tag_expose_contract_terminate(pointer)\n\t\t\t@local_exchange.notify()\n\t\tcatch error\n\t\t\treturn null if error instanceof PointerAlreadyDropped\n\t\t\tthrow error\n\n\tnext: (block)->\n\t\ttry\n\t\t\tfuture_pointer = @with_pointer (pointer)=>FFI.hakuban_tag_expose_contract_next(pointer)\n\t\t\tpointer = await new FFI.Future(@local_exchange, @, FFI.hakuban_future_returning_pointer_poll, FFI.hakuban_future_returning_pointer_drop, future_pointer).await_and_drop()\n\t\t\t@local_exchange.notify()\n\t\t\tif pointer? then new ObjectStateSink(@local_exchange, pointer).do_and_drop_or_return(block) else null\n\t\tcatch error\n\t\t\treturn null if error instanceof PointerAlreadyDropped\n\t\t\tthrow error\n\n\tready: (block)->\n\t\ttry\n\t\t\tpointers = @with_pointer (pointer)=>FFI.hakuban_tag_expose_contract_ready(pointer)\n\t\t\t@local_exchange.notify()\n\t\t\tdo_and_drop_or_return(new ObjectStateSink(@local_exchange, pointer) for pointer in pointers, block)\n\t\tcatch error\n\t\t\treturn null if error instanceof PointerAlreadyDropped\n\t\t\tthrow error\n\n","import * as FFI from \"./ffi.coffee\"\nimport { FFIObject } from \"./ffi-object.coffee\"\nimport { ObjectObserveContract, ObjectExposeContract, TagObserveContract, TagExposeContract } from \"./contract.coffee\"\n\n\nexport class LocalExchange extends FFIObject\n\n\tconstructor: (name=\"wasm\") ->\n\t\tsuper()\n\t\t@name = name\n\t\t@_notification_sequence = BigInt(0)\n\t\t@_notification_resolve = {}\n\t\t@initialize_pointer(null, FFI.unwrap_pointer(FFI.hakuban_local_exchange_new(@name)),FFI.hakuban_local_exchange_drop)\n\n\tobject: (descriptor_or_tags, json_or_nothing) ->\n\t\tnew ObjectContractBuilder(@, [descriptor_or_tags, json_or_nothing])\n\n\ttag: (descriptor) ->\n\t\tnew TagContractBuilder(@, descriptor)\n\n\tnotified: ()->\n\t\tid = ++@_notification_sequence\n\t\tpromise = new Promise((resolve)=>@_notification_resolve[id]=resolve)\n\t\tpromise.id = id\n\t\tpromise\n\n\tnotify: ()->\n\t\tfor id in @with_pointer (pointer)->FFI.hakuban_local_exchange_notified(pointer)\n\t\t\t# if you want to put console.log here, you forgot to await\n\t\t\tif @_notification_resolve[id]?\n\t\t\t\t@_notification_resolve[id](true)\n\t\t\t\tdelete @_notification_resolve[id]\n\t\n\treturn_notified: (notification_promise)->\n\t\tdelete @_notification_resolve[notification_promise.id]\n\n\nclass ObjectContractBuilder\n\tconstructor: (@local_exchange, @descriptor) -> null\n\tobserve: (block) -> new ObjectObserveContract(@local_exchange, @descriptor).do_and_drop_or_return(block)\n\texpose: (block) -> new ObjectExposeContract(@local_exchange, @descriptor).do_and_drop_or_return(block)\n\n\nclass TagContractBuilder\n\tconstructor: (@local_exchange, @descriptor) -> null\n\tobserve: (block) -> new TagObserveContract(@local_exchange, @descriptor).do_and_drop_or_return(block)\n\texpose: (block) -> new TagExposeContract(@local_exchange, @descriptor).do_and_drop_or_return(block)\n","import * as FFI from \"./ffi.coffee\"\nimport { FFIObject, PointerAlreadyDropped } from \"./ffi-object.coffee\"\n\n\nexport class RemoteExchange extends FFIObject\n\n\tconstructor: (local_exchange, upstream, diff_produce, diff_request)->\n\t\tsuper()\n\t\t@local_exchange = local_exchange\n\t\t@local_exchange.with_pointer (local_exchange_pointer)=>\n\t\t\t@initialize_pointer(@local_exchange, FFI.hakuban_remote_exchange_new(local_exchange_pointer, upstream, diff_produce, diff_request), FFI.hakuban_remote_exchange_drop)\n\t\t\n\tnext: ()->\n\t\ttry\n\t\t\tfuture_pointer = @with_pointer (pointer)=>FFI.hakuban_remote_exchange_next_message_to_network(pointer)\n\t\t\tpointer = await new FFI.Future(@local_exchange, @, FFI.hakuban_future_returning_pointer_poll, FFI.hakuban_future_returning_pointer_drop, future_pointer).await_and_drop()\n\t\t\t@local_exchange.notify()\n\t\t\tpointer\n\t\tcatch error\n\t\t\treturn null if error instanceof PointerAlreadyDropped\n\t\t\tthrow error\n\n\tsend: (data)->\n\t\ttry\n\t\t\tfuture_pointer = @with_pointer (pointer)=>FFI.hakuban_remote_exchange_send_message_from_network(pointer, new Uint8Array(data))\n\t\t\tawait new FFI.Future(@local_exchange, @, FFI.hakuban_future_returning_nothing_poll, FFI.hakuban_future_returning_nothing_drop, future_pointer).await_and_drop()\n\t\t\t@local_exchange.notify()\n\t\tcatch error\n\t\t\treturn null if error instanceof PointerAlreadyDropped\n\t\t\tthrow error\n","import * as FFI from \"./ffi.coffee\"\nimport { RemoteExchange } from \"./remote-exchange.coffee\"\n\n\n#TODO: hide private methods\nexport class WebsocketConnector\n\n\tconstructor: (@local_exchange, @uri, @options={})->\n\t\t@_status_change({ connected: false })\n\t\t@socket = undefined\n\t\t@reconnection_timer = undefined\n\t\t@reconnect_on_close = true\n\t\t@connect()\n\n\tstatus: ()->\n\t\tPromise.resolve([ @status, @next_status_promise ])\n\n\t_status_change: (new_status)->\n\t\t@status = new_status\n\t\told_next_status_promise_resolve = @next_status_promise_resolve\n\t\t@next_status_promise = new Promise (@next_status_promise_resolve)=>\n\t\told_next_status_promise_resolve([@status, @next_status_promise]) if old_next_status_promise_resolve?\n\n\tdisconnect: () ->\n\t\t@reconnect_on_close = false\n\t\t@socket.close() if @socket?\n\t\t\n\tconnect: ()=>\n\t\tclearTimeout(@reconnection_timer) if @reconnection_timer?\n\t\t@reconnection_timer = undefined\n\n\t\ttry\n\t\t\t@socket = new WebSocket(@uri)\n\t\tcatch error\n\t\t\tconsole.error('Error connecting to hakuban remote exchange:', error) \n\t\t\t@_status_change({ connected: false, error: error })\n\t\t\treturn false\n\n\t\t@socket.binaryType = \"arraybuffer\"\n\n\t\t@socket.onopen = ()=>\n\t\t\tconsole.debug('Connected to hakuban remote exchange') if @options.debug\n\t\t\t@remote_exchange = new RemoteExchange(@local_exchange, true, true, true)\n\t\t\t@forwarding_to_network_stopped = new Promise (resolve)=>\n\t\t\t\ttry \n\t\t\t\t\twhile @remote_exchange? and (message_pointer = await @remote_exchange.next())?\n\t\t\t\t\t\t@send(FFI.hakuban_message_take(message_pointer))\n\t\t\t\tcatch error\n\t\t\t\t\tconsole.error('Error processing hakuban connection:', error)\n\t\t\t\t\t@socket.close() if @socket?\n\t\t\t\tresolve()\n\t\t\t@_status_change({ connected: true })\n\n\t\t# this may fire even if onopen never did\n\t\t@socket.onclose = (event)=>\n\t\t\tconsole.debug('Disconnected from hakuban remote exchange') if @options.debug and @remote_exchange?\n\t\t\tconsole.debug('Failed to connect to hakuban remote exchange') if @options.debug and !@remote_exchange?\n\t\t\t@_status_change({ connected: false, disconnect_reason: event.reason, clean_disconnect: event.wasClean })\n\t\t\t@socket = undefined\n\t\t\tif @keep_alive_interval?\n\t\t\t\tclearInterval(@keep_alive_interval) \n\t\t\t\t@keep_alive_interval = null\n\t\t\tif @reconnection_timer?\n\t\t\t\tclearTimeout(@reconnection_timer) \n\t\t\t\t@reconnection_timer = null\n\t\t\tif @remote_exchange?\n\t\t\t\tawait @remote_exchange.drop()\n\t\t\t\tawait @forwarding_to_network_stopped\n\t\t\t\t@forwarding_to_network_stopped = null\n\t\t\t\t@remote_exchange = null\n\t\t\tif @reconnect_on_close\n\t\t\t\t@reconnection_timer = setTimeout(@connect, 1000)\n\n\t\t@socket.onmessage = (event) =>\n\t\t\treturn if not @remote_exchange?\n\t\t\ttry\n\t\t\t\tawait @remote_exchange.send(event.data)\n\t\t\tcatch error\n\t\t\t\tconsole.error('Error processing hakuban connection:', error)\n\t\t\t\t@socket.close() if @socket?\n\n\tping: ()=>\n\t\t@socket.send(new Uint8Array()) if @socket\n\n\tsend: (bytes_to_send)=>\n\t\tif bytes_to_send.length > 0\n\t\t\t@socket.send(bytes_to_send)\n\t\t\tclearInterval(@keep_alive_interval) if @keep_alive_interval\n\t\t\t@keep_alive_interval = setInterval(@ping, 10000)\n","import * as hakuban_js from \"../pkg/hakuban.js\"\nimport hakuban_wasm_base64 from \"../pkg/hakuban_bg.wasm\"\nimport { logger_initialize } from \"./logger.coffee\"\n\nexport initialize = (log_level)->\n\t# wow, this is disgusting\n\twasm_string = atob(hakuban_wasm_base64)\n\twasm_array = new Uint8Array(wasm_string.length)\n\tfor i in [0..wasm_string.length]\n\t\twasm_array[i] = wasm_string.charCodeAt(i) \n\tresult = await hakuban_js.default(wasm_array)\n\tlogger_initialize(log_level)\n\tresult\n\nexport { ObjectObserveContract, ObjectExposeContract, TagObserveContract, TagExposeContract } from \"./contract.coffee\"\nexport { ObjectDescriptor, TagDescriptor } from \"./descriptor.coffee\"\nexport { LocalExchange } from \"./exchange.coffee\"\nexport { ObjectState } from \"./object-state.coffee\"\nexport { WebsocketConnector } from \"./websocket-connector.coffee\"\n\n\n"],"names":["FFI.hakuban_logger_initialize","PointerAlreadyDropped","FFI.hakuban_object_descriptor_json","FFI.hakuban_object_descriptor_tags","FFI.unwrap_pointer","FFI.hakuban_object_descriptor_new","FFI.hakuban_object_descriptor_drop","FFI.hakuban_tag_descriptor_new","FFI.hakuban_tag_descriptor_drop","FFI.hakuban_object_state_drop","FFI.hakuban_object_state_version","FFI.hakuban_object_state_synchronized_ago","FFI.hakuban_object_state_format","FFI.hakuban_object_state_data","FFI.hakuban_object_state_new","FFI.hakuban_object_state_stream_drop","FFI.hakuban_object_state_stream_descriptor","FFI.hakuban_object_state_stream_next","FFI.Future","FFI.hakuban_future_returning_pointer_poll","FFI.hakuban_future_returning_pointer_drop","FFI.unwrap_pointer_or_null","FFI.hakuban_object_state_stream_current","FFI.hakuban_object_state_sink_params_drop","FFI.hakuban_object_state_sink_drop","FFI.hakuban_object_state_sink_descriptor","FFI.hakuban_object_state_sink_push","FFI.hakuban_future_returning_nothing_poll","FFI.hakuban_future_returning_nothing_drop","FFI.hakuban_object_state_sink_next","FFI.hakuban_object_state_sink_current","FFI.hakuban_object_state_sink_desynchronize","FFI.hakuban_object_observe_contract_new","FFI.hakuban_object_observe_contract_drop","FFI.hakuban_object_observe_contract_terminate","FFI.hakuban_object_observe_contract_next","FFI.hakuban_object_observe_contract_ready","FFI.hakuban_object_expose_contract_new","FFI.hakuban_object_expose_contract_drop","FFI.hakuban_object_expose_contract_terminate","FFI.hakuban_object_expose_contract_next","FFI.hakuban_object_expose_contract_ready","FFI.hakuban_tag_observe_contract_new","FFI.hakuban_tag_observe_contract_drop","FFI.hakuban_tag_observe_contract_terminate","FFI.hakuban_tag_observe_contract_next","FFI.hakuban_tag_observe_contract_ready","FFI.hakuban_tag_expose_contract_new","FFI.hakuban_tag_expose_contract_drop","FFI.hakuban_tag_expose_contract_terminate","FFI.hakuban_tag_expose_contract_next","FFI.hakuban_tag_expose_contract_ready","FFI.hakuban_local_exchange_new","FFI.hakuban_local_exchange_drop","FFI.hakuban_remote_exchange_new","FFI.hakuban_remote_exchange_drop","FFI.hakuban_remote_exchange_next_message_to_network","FFI.hakuban_remote_exchange_send_message_from_network","FFI.hakuban_message_take","hakuban_js.default"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"hakuban-with-wasm.js","sources":["pkg/hakuban.js","coffee/ffi.coffee","coffee/logger.coffee","coffee/ffi-object.coffee","coffee/descriptor.coffee","coffee/object-state.coffee","coffee/stream.coffee","coffee/object-state-stream.coffee","coffee/object-state-sink.coffee","coffee/contract.coffee","coffee/exchange.coffee","coffee/remote-exchange.coffee","coffee/websocket-connector.coffee","coffee/hakuban-with-wasm.coffee"],"sourcesContent":["\nlet wasm;\n\nconst heap = new Array(32).fill(undefined);\n\nheap.push(undefined, null, true, false);\n\nfunction getObject(idx) { return heap[idx]; }\n\nlet heap_next = heap.length;\n\nfunction dropObject(idx) {\n if (idx < 36) return;\n heap[idx] = heap_next;\n heap_next = idx;\n}\n\nfunction takeObject(idx) {\n const ret = getObject(idx);\n dropObject(idx);\n return ret;\n}\n\nlet WASM_VECTOR_LEN = 0;\n\nlet cachedUint8Memory0 = new Uint8Array();\n\nfunction getUint8Memory0() {\n if (cachedUint8Memory0.byteLength === 0) {\n cachedUint8Memory0 = new Uint8Array(wasm.memory.buffer);\n }\n return cachedUint8Memory0;\n}\n\nconst cachedTextEncoder = new TextEncoder('utf-8');\n\nconst encodeString = (typeof cachedTextEncoder.encodeInto === 'function'\n ? function (arg, view) {\n return cachedTextEncoder.encodeInto(arg, view);\n}\n : function (arg, view) {\n const buf = cachedTextEncoder.encode(arg);\n view.set(buf);\n return {\n read: arg.length,\n written: buf.length\n };\n});\n\nfunction passStringToWasm0(arg, malloc, realloc) {\n\n if (realloc === undefined) {\n const buf = cachedTextEncoder.encode(arg);\n const ptr = malloc(buf.length);\n getUint8Memory0().subarray(ptr, ptr + buf.length).set(buf);\n WASM_VECTOR_LEN = buf.length;\n return ptr;\n }\n\n let len = arg.length;\n let ptr = malloc(len);\n\n const mem = getUint8Memory0();\n\n let offset = 0;\n\n for (; offset < len; offset++) {\n const code = arg.charCodeAt(offset);\n if (code > 0x7F) break;\n mem[ptr + offset] = code;\n }\n\n if (offset !== len) {\n if (offset !== 0) {\n arg = arg.slice(offset);\n }\n ptr = realloc(ptr, len, len = offset + arg.length * 3);\n const view = getUint8Memory0().subarray(ptr + offset, ptr + len);\n const ret = encodeString(arg, view);\n\n offset += ret.written;\n }\n\n WASM_VECTOR_LEN = offset;\n return ptr;\n}\n\nfunction isLikeNone(x) {\n return x === undefined || x === null;\n}\n\nlet cachedInt32Memory0 = new Int32Array();\n\nfunction getInt32Memory0() {\n if (cachedInt32Memory0.byteLength === 0) {\n cachedInt32Memory0 = new Int32Array(wasm.memory.buffer);\n }\n return cachedInt32Memory0;\n}\n\nconst cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });\n\ncachedTextDecoder.decode();\n\nfunction getStringFromWasm0(ptr, len) {\n return cachedTextDecoder.decode(getUint8Memory0().subarray(ptr, ptr + len));\n}\n\nfunction addHeapObject(obj) {\n if (heap_next === heap.length) heap.push(heap.length + 1);\n const idx = heap_next;\n heap_next = heap[idx];\n\n heap[idx] = obj;\n return idx;\n}\n\nfunction debugString(val) {\n // primitive types\n const type = typeof val;\n if (type == 'number' || type == 'boolean' || val == null) {\n return `${val}`;\n }\n if (type == 'string') {\n return `\"${val}\"`;\n }\n if (type == 'symbol') {\n const description = val.description;\n if (description == null) {\n return 'Symbol';\n } else {\n return `Symbol(${description})`;\n }\n }\n if (type == 'function') {\n const name = val.name;\n if (typeof name == 'string' && name.length > 0) {\n return `Function(${name})`;\n } else {\n return 'Function';\n }\n }\n // objects\n if (Array.isArray(val)) {\n const length = val.length;\n let debug = '[';\n if (length > 0) {\n debug += debugString(val[0]);\n }\n for(let i = 1; i < length; i++) {\n debug += ', ' + debugString(val[i]);\n }\n debug += ']';\n return debug;\n }\n // Test for built-in\n const builtInMatches = /\\[object ([^\\]]+)\\]/.exec(toString.call(val));\n let className;\n if (builtInMatches.length > 1) {\n className = builtInMatches[1];\n } else {\n // Failed to match the standard '[object ClassName]'\n return toString.call(val);\n }\n if (className == 'Object') {\n // we're a user defined class or Object\n // JSON.stringify avoids problems with cycles, and is generally much\n // easier than looping through ownProperties of `val`.\n try {\n return 'Object(' + JSON.stringify(val) + ')';\n } catch (_) {\n return 'Object';\n }\n }\n // errors\n if (val instanceof Error) {\n return `${val.name}: ${val.message}\\n${val.stack}`;\n }\n // TODO we could test for more things here, like `Set`s and `Map`s.\n return className;\n}\n/**\n* @param {number} local_exchange\n* @param {number} descriptor\n* @returns {number}\n*/\nexport function hakuban_tag_expose_contract_new(local_exchange, descriptor) {\n const ret = wasm.hakuban_tag_expose_contract_new(local_exchange, descriptor);\n return ret;\n}\n\n/**\n* @param {number} tag_expose_contract_pointer\n*/\nexport function hakuban_tag_expose_contract_drop(tag_expose_contract_pointer) {\n wasm.hakuban_tag_expose_contract_drop(tag_expose_contract_pointer);\n}\n\n/**\n* @param {number} tag_expose_pointer\n*/\nexport function hakuban_tag_expose_contract_terminate(tag_expose_pointer) {\n wasm.hakuban_tag_expose_contract_terminate(tag_expose_pointer);\n}\n\n/**\n* @param {number} tag_expose_pointer\n* @returns {number}\n*/\nexport function hakuban_tag_expose_contract_next(tag_expose_pointer) {\n const ret = wasm.hakuban_tag_expose_contract_next(tag_expose_pointer);\n return ret;\n}\n\nlet cachedUint32Memory0 = new Uint32Array();\n\nfunction getUint32Memory0() {\n if (cachedUint32Memory0.byteLength === 0) {\n cachedUint32Memory0 = new Uint32Array(wasm.memory.buffer);\n }\n return cachedUint32Memory0;\n}\n\nfunction getArrayU32FromWasm0(ptr, len) {\n return getUint32Memory0().subarray(ptr / 4, ptr / 4 + len);\n}\n/**\n* @param {number} tag_expose_pointer\n* @returns {Uint32Array}\n*/\nexport function hakuban_tag_expose_contract_ready(tag_expose_pointer) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n wasm.hakuban_tag_expose_contract_ready(retptr, tag_expose_pointer);\n var r0 = getInt32Memory0()[retptr / 4 + 0];\n var r1 = getInt32Memory0()[retptr / 4 + 1];\n var v0 = getArrayU32FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 4);\n return v0;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n}\n\n/**\n* @param {number} local_exchange\n* @param {number} descriptor\n* @returns {number}\n*/\nexport function hakuban_tag_observe_contract_new(local_exchange, descriptor) {\n const ret = wasm.hakuban_tag_observe_contract_new(local_exchange, descriptor);\n return ret;\n}\n\n/**\n* @param {number} tag_pointer\n*/\nexport function hakuban_tag_observe_contract_drop(tag_pointer) {\n wasm.hakuban_tag_observe_contract_drop(tag_pointer);\n}\n\n/**\n* @param {number} tag_observe_pointer\n*/\nexport function hakuban_tag_observe_contract_terminate(tag_observe_pointer) {\n wasm.hakuban_tag_observe_contract_terminate(tag_observe_pointer);\n}\n\n/**\n* @param {number} tag_observe_pointer\n* @returns {number}\n*/\nexport function hakuban_tag_observe_contract_next(tag_observe_pointer) {\n const ret = wasm.hakuban_tag_observe_contract_next(tag_observe_pointer);\n return ret;\n}\n\n/**\n* @param {number} tag_observe_pointer\n* @returns {Uint32Array}\n*/\nexport function hakuban_tag_observe_contract_ready(tag_observe_pointer) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n wasm.hakuban_tag_observe_contract_ready(retptr, tag_observe_pointer);\n var r0 = getInt32Memory0()[retptr / 4 + 0];\n var r1 = getInt32Memory0()[retptr / 4 + 1];\n var v0 = getArrayU32FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 4);\n return v0;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n}\n\n/**\n* @param {string} json_string\n* @returns {WasmResultWithPointer}\n*/\nexport function hakuban_tag_descriptor_new(json_string) {\n const ptr0 = passStringToWasm0(json_string, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.hakuban_tag_descriptor_new(ptr0, len0);\n return WasmResultWithPointer.__wrap(ret);\n}\n\n/**\n* @param {number} descriptor_pointer\n*/\nexport function hakuban_tag_descriptor_drop(descriptor_pointer) {\n wasm.hakuban_tag_descriptor_drop(descriptor_pointer);\n}\n\n/**\n* @param {number} descriptor_pointer\n* @returns {string}\n*/\nexport function hakuban_tag_descriptor_json(descriptor_pointer) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n wasm.hakuban_tag_descriptor_json(retptr, descriptor_pointer);\n var r0 = getInt32Memory0()[retptr / 4 + 0];\n var r1 = getInt32Memory0()[retptr / 4 + 1];\n return getStringFromWasm0(r0, r1);\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n wasm.__wbindgen_free(r0, r1);\n }\n}\n\nfunction passArray32ToWasm0(arg, malloc) {\n const ptr = malloc(arg.length * 4);\n getUint32Memory0().set(arg, ptr / 4);\n WASM_VECTOR_LEN = arg.length;\n return ptr;\n}\n/**\n* @param {string} json_string\n* @param {Uint32Array} tag_pointers\n* @returns {WasmResultWithPointer}\n*/\nexport function hakuban_object_descriptor_new(json_string, tag_pointers) {\n const ptr0 = passStringToWasm0(json_string, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passArray32ToWasm0(tag_pointers, wasm.__wbindgen_malloc);\n const len1 = WASM_VECTOR_LEN;\n const ret = wasm.hakuban_object_descriptor_new(ptr0, len0, ptr1, len1);\n return WasmResultWithPointer.__wrap(ret);\n}\n\n/**\n* @param {number} descriptor_pointer\n*/\nexport function hakuban_object_descriptor_drop(descriptor_pointer) {\n wasm.hakuban_object_descriptor_drop(descriptor_pointer);\n}\n\n/**\n* @param {number} descriptor_pointer\n* @returns {string}\n*/\nexport function hakuban_object_descriptor_json(descriptor_pointer) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n wasm.hakuban_object_descriptor_json(retptr, descriptor_pointer);\n var r0 = getInt32Memory0()[retptr / 4 + 0];\n var r1 = getInt32Memory0()[retptr / 4 + 1];\n return getStringFromWasm0(r0, r1);\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n wasm.__wbindgen_free(r0, r1);\n }\n}\n\n/**\n* @param {number} descriptor_pointer\n* @returns {Uint32Array}\n*/\nexport function hakuban_object_descriptor_tags(descriptor_pointer) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n wasm.hakuban_object_descriptor_tags(retptr, descriptor_pointer);\n var r0 = getInt32Memory0()[retptr / 4 + 0];\n var r1 = getInt32Memory0()[retptr / 4 + 1];\n var v0 = getArrayU32FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 4);\n return v0;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n}\n\n/**\n* @param {string} default_log_level\n* @returns {number}\n*/\nexport function hakuban_logger_initialize(default_log_level) {\n const ptr0 = passStringToWasm0(default_log_level, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.hakuban_logger_initialize(ptr0, len0);\n return ret >>> 0;\n}\n\nlet cachedBigUint64Memory0 = new BigUint64Array();\n\nfunction getBigUint64Memory0() {\n if (cachedBigUint64Memory0.byteLength === 0) {\n cachedBigUint64Memory0 = new BigUint64Array(wasm.memory.buffer);\n }\n return cachedBigUint64Memory0;\n}\n\nfunction passArray64ToWasm0(arg, malloc) {\n const ptr = malloc(arg.length * 8);\n getBigUint64Memory0().set(arg, ptr / 8);\n WASM_VECTOR_LEN = arg.length;\n return ptr;\n}\n\nfunction passArrayJsValueToWasm0(array, malloc) {\n const ptr = malloc(array.length * 4);\n const mem = getUint32Memory0();\n for (let i = 0; i < array.length; i++) {\n mem[ptr / 4 + i] = addHeapObject(array[i]);\n }\n WASM_VECTOR_LEN = array.length;\n return ptr;\n}\n\nfunction passArray8ToWasm0(arg, malloc) {\n const ptr = malloc(arg.length * 1);\n getUint8Memory0().set(arg, ptr / 1);\n WASM_VECTOR_LEN = arg.length;\n return ptr;\n}\n/**\n* @param {BigInt64Array} version\n* @param {any[]} format_jsvalues\n* @param {Uint8Array} data\n* @param {bigint} synchronized_us_ago\n* @returns {WasmResultWithPointer}\n*/\nexport function hakuban_object_state_new(version, format_jsvalues, data, synchronized_us_ago) {\n const ptr0 = passArray64ToWasm0(version, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passArrayJsValueToWasm0(format_jsvalues, wasm.__wbindgen_malloc);\n const len1 = WASM_VECTOR_LEN;\n const ptr2 = passArray8ToWasm0(data, wasm.__wbindgen_malloc);\n const len2 = WASM_VECTOR_LEN;\n const ret = wasm.hakuban_object_state_new(ptr0, len0, ptr1, len1, ptr2, len2, synchronized_us_ago);\n return WasmResultWithPointer.__wrap(ret);\n}\n\n/**\n* @param {number} object_state_pointer\n*/\nexport function hakuban_object_state_drop(object_state_pointer) {\n wasm.hakuban_object_state_drop(object_state_pointer);\n}\n\nlet cachedBigInt64Memory0 = new BigInt64Array();\n\nfunction getBigInt64Memory0() {\n if (cachedBigInt64Memory0.byteLength === 0) {\n cachedBigInt64Memory0 = new BigInt64Array(wasm.memory.buffer);\n }\n return cachedBigInt64Memory0;\n}\n\nfunction getArrayI64FromWasm0(ptr, len) {\n return getBigInt64Memory0().subarray(ptr / 8, ptr / 8 + len);\n}\n/**\n* @param {number} object_state_pointer\n* @returns {BigInt64Array}\n*/\nexport function hakuban_object_state_version(object_state_pointer) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n wasm.hakuban_object_state_version(retptr, object_state_pointer);\n var r0 = getInt32Memory0()[retptr / 4 + 0];\n var r1 = getInt32Memory0()[retptr / 4 + 1];\n var v0 = getArrayI64FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 8);\n return v0;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n}\n\n/**\n* @param {number} object_state_pointer\n* @returns {bigint}\n*/\nexport function hakuban_object_state_synchronized_ago(object_state_pointer) {\n const ret = wasm.hakuban_object_state_synchronized_ago(object_state_pointer);\n return BigInt.asUintN(64, ret);\n}\n\nfunction getArrayJsValueFromWasm0(ptr, len) {\n const mem = getUint32Memory0();\n const slice = mem.subarray(ptr / 4, ptr / 4 + len);\n const result = [];\n for (let i = 0; i < slice.length; i++) {\n result.push(takeObject(slice[i]));\n }\n return result;\n}\n/**\n* @param {number} object_state_pointer\n* @returns {any[]}\n*/\nexport function hakuban_object_state_format(object_state_pointer) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n wasm.hakuban_object_state_format(retptr, object_state_pointer);\n var r0 = getInt32Memory0()[retptr / 4 + 0];\n var r1 = getInt32Memory0()[retptr / 4 + 1];\n var v0 = getArrayJsValueFromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 4);\n return v0;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n}\n\nfunction getArrayU8FromWasm0(ptr, len) {\n return getUint8Memory0().subarray(ptr / 1, ptr / 1 + len);\n}\n/**\n* @param {number} object_state_pointer\n* @returns {Uint8Array}\n*/\nexport function hakuban_object_state_data(object_state_pointer) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n wasm.hakuban_object_state_data(retptr, object_state_pointer);\n var r0 = getInt32Memory0()[retptr / 4 + 0];\n var r1 = getInt32Memory0()[retptr / 4 + 1];\n var v0 = getArrayU8FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 1);\n return v0;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n}\n\n/**\n* @param {number} object_state_stream_pointer\n*/\nexport function hakuban_object_state_stream_drop(object_state_stream_pointer) {\n wasm.hakuban_object_state_stream_drop(object_state_stream_pointer);\n}\n\n/**\n* @param {number} object_state_stream_pointer\n* @returns {number}\n*/\nexport function hakuban_object_state_stream_next(object_state_stream_pointer) {\n const ret = wasm.hakuban_object_state_stream_next(object_state_stream_pointer);\n return ret;\n}\n\n/**\n* @param {number} object_state_stream_pointer\n* @returns {WasmResultWithPointer}\n*/\nexport function hakuban_object_state_stream_current(object_state_stream_pointer) {\n const ret = wasm.hakuban_object_state_stream_current(object_state_stream_pointer);\n return WasmResultWithPointer.__wrap(ret);\n}\n\n/**\n* @param {number} object_state_stream_pointer\n* @returns {number}\n*/\nexport function hakuban_object_state_stream_descriptor(object_state_stream_pointer) {\n const ret = wasm.hakuban_object_state_stream_descriptor(object_state_stream_pointer);\n return ret;\n}\n\n/**\n* @param {number} local_exchange_pointer\n* @param {boolean} upstream\n* @param {boolean} diff_produce\n* @param {boolean} diff_request\n* @returns {number}\n*/\nexport function hakuban_remote_exchange_new(local_exchange_pointer, upstream, diff_produce, diff_request) {\n const ret = wasm.hakuban_remote_exchange_new(local_exchange_pointer, upstream, diff_produce, diff_request);\n return ret;\n}\n\n/**\n* @param {number} remote_exchange_pointer\n*/\nexport function hakuban_remote_exchange_drop(remote_exchange_pointer) {\n wasm.hakuban_remote_exchange_drop(remote_exchange_pointer);\n}\n\n/**\n* @param {number} remote_exchange_pointer\n* @returns {number}\n*/\nexport function hakuban_remote_exchange_next_message_to_network(remote_exchange_pointer) {\n const ret = wasm.hakuban_remote_exchange_next_message_to_network(remote_exchange_pointer);\n return ret;\n}\n\n/**\n* @param {number} message_pointer\n* @returns {Uint8Array}\n*/\nexport function hakuban_message_take(message_pointer) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n wasm.hakuban_message_take(retptr, message_pointer);\n var r0 = getInt32Memory0()[retptr / 4 + 0];\n var r1 = getInt32Memory0()[retptr / 4 + 1];\n var v0 = getArrayU8FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 1);\n return v0;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n}\n\n/**\n* @param {number} remote_exchange_pointer\n* @param {Uint8Array} message_data\n* @returns {number}\n*/\nexport function hakuban_remote_exchange_send_message_from_network(remote_exchange_pointer, message_data) {\n const ptr0 = passArray8ToWasm0(message_data, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.hakuban_remote_exchange_send_message_from_network(remote_exchange_pointer, ptr0, len0);\n return ret;\n}\n\n/**\n* @param {number} local_exchange_pointer\n* @param {number} future_pointer\n* @param {bigint} waker_id\n* @returns {WasmResultWithPointer}\n*/\nexport function hakuban_future_returning_pointer_poll(local_exchange_pointer, future_pointer, waker_id) {\n const ret = wasm.hakuban_future_returning_pointer_poll(local_exchange_pointer, future_pointer, waker_id);\n return WasmResultWithPointer.__wrap(ret);\n}\n\n/**\n* @param {number} future\n*/\nexport function hakuban_future_returning_pointer_drop(future) {\n wasm.hakuban_future_returning_nothing_drop(future);\n}\n\n/**\n* @param {number} local_exchange_pointer\n* @param {number} future_pointer\n* @param {bigint} waker_id\n* @returns {WasmResultWithNothing}\n*/\nexport function hakuban_future_returning_nothing_poll(local_exchange_pointer, future_pointer, waker_id) {\n const ret = wasm.hakuban_future_returning_nothing_poll(local_exchange_pointer, future_pointer, waker_id);\n return WasmResultWithNothing.__wrap(ret);\n}\n\n/**\n* @param {number} future\n*/\nexport function hakuban_future_returning_nothing_drop(future) {\n wasm.hakuban_future_returning_nothing_drop(future);\n}\n\n/**\n* @param {number} object_state_sink_pointer\n* @returns {number}\n*/\nexport function hakuban_object_state_sink_descriptor(object_state_sink_pointer) {\n const ret = wasm.hakuban_object_state_sink_descriptor(object_state_sink_pointer);\n return ret;\n}\n\n/**\n* @param {number} object_state_sink_pointer\n*/\nexport function hakuban_object_state_sink_drop(object_state_sink_pointer) {\n wasm.hakuban_object_state_sink_drop(object_state_sink_pointer);\n}\n\n/**\n* @param {number} object_state_sink_pointer\n* @returns {number}\n*/\nexport function hakuban_object_state_sink_next(object_state_sink_pointer) {\n const ret = wasm.hakuban_object_state_sink_next(object_state_sink_pointer);\n return ret;\n}\n\n/**\n* @param {number} object_state_sink_pointer\n* @returns {WasmResultWithPointer}\n*/\nexport function hakuban_object_state_sink_current(object_state_sink_pointer) {\n const ret = wasm.hakuban_object_state_sink_current(object_state_sink_pointer);\n return WasmResultWithPointer.__wrap(ret);\n}\n\n/**\n* @param {number} object_state_sink_pointer\n* @param {number} object_state_pointer\n* @returns {number}\n*/\nexport function hakuban_object_state_sink_push(object_state_sink_pointer, object_state_pointer) {\n const ret = wasm.hakuban_object_state_sink_push(object_state_sink_pointer, object_state_pointer);\n return ret;\n}\n\n/**\n* @param {number} object_state_sink_params_pointer\n*/\nexport function hakuban_object_state_sink_params_drop(object_state_sink_params_pointer) {\n wasm.hakuban_object_state_sink_params_drop(object_state_sink_params_pointer);\n}\n\n/**\n* @param {number} object_state_sink_pointer\n*/\nexport function hakuban_object_state_sink_desynchronize(object_state_sink_pointer) {\n wasm.hakuban_object_state_sink_desynchronize(object_state_sink_pointer);\n}\n\n/**\n* @param {string} name_str\n* @returns {WasmResultWithPointer}\n*/\nexport function hakuban_local_exchange_new(name_str) {\n const ptr0 = passStringToWasm0(name_str, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.hakuban_local_exchange_new(ptr0, len0);\n return WasmResultWithPointer.__wrap(ret);\n}\n\n/**\n* @param {number} local_exchange\n*/\nexport function hakuban_local_exchange_drop(local_exchange) {\n wasm.hakuban_local_exchange_drop(local_exchange);\n}\n\nfunction getArrayU64FromWasm0(ptr, len) {\n return getBigUint64Memory0().subarray(ptr / 8, ptr / 8 + len);\n}\n/**\n* @param {number} local_exchange\n* @returns {BigUint64Array}\n*/\nexport function hakuban_local_exchange_notified(local_exchange) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n wasm.hakuban_local_exchange_notified(retptr, local_exchange);\n var r0 = getInt32Memory0()[retptr / 4 + 0];\n var r1 = getInt32Memory0()[retptr / 4 + 1];\n var v0 = getArrayU64FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 8);\n return v0;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n}\n\n/**\n* @param {number} local_exchange\n* @param {number} descriptor\n* @returns {number}\n*/\nexport function hakuban_object_expose_contract_new(local_exchange, descriptor) {\n const ret = wasm.hakuban_object_expose_contract_new(local_exchange, descriptor);\n return ret;\n}\n\n/**\n* @param {number} object_ptr\n*/\nexport function hakuban_object_expose_contract_drop(object_ptr) {\n wasm.hakuban_object_expose_contract_drop(object_ptr);\n}\n\n/**\n* @param {number} object_expose_pointer\n*/\nexport function hakuban_object_expose_contract_terminate(object_expose_pointer) {\n wasm.hakuban_object_expose_contract_terminate(object_expose_pointer);\n}\n\n/**\n* @param {number} object_expose_pointer\n* @returns {number}\n*/\nexport function hakuban_object_expose_contract_next(object_expose_pointer) {\n const ret = wasm.hakuban_object_expose_contract_next(object_expose_pointer);\n return ret;\n}\n\n/**\n* @param {number} object_expose_pointer\n* @returns {WasmResultWithPointer}\n*/\nexport function hakuban_object_expose_contract_ready(object_expose_pointer) {\n const ret = wasm.hakuban_object_expose_contract_ready(object_expose_pointer);\n return WasmResultWithPointer.__wrap(ret);\n}\n\n/**\n* @param {number} local_exchange\n* @param {number} descriptor\n* @returns {number}\n*/\nexport function hakuban_object_observe_contract_new(local_exchange, descriptor) {\n const ret = wasm.hakuban_object_observe_contract_new(local_exchange, descriptor);\n return ret;\n}\n\n/**\n* @param {number} object_ptr\n*/\nexport function hakuban_object_observe_contract_drop(object_ptr) {\n wasm.hakuban_object_observe_contract_drop(object_ptr);\n}\n\n/**\n* @param {number} object_observe_pointer\n*/\nexport function hakuban_object_observe_contract_terminate(object_observe_pointer) {\n wasm.hakuban_object_observe_contract_terminate(object_observe_pointer);\n}\n\n/**\n* @param {number} object_observe_pointer\n* @returns {number}\n*/\nexport function hakuban_object_observe_contract_next(object_observe_pointer) {\n const ret = wasm.hakuban_object_observe_contract_next(object_observe_pointer);\n return ret;\n}\n\n/**\n* @param {number} object_observe_pointer\n* @returns {WasmResultWithPointer}\n*/\nexport function hakuban_object_observe_contract_ready(object_observe_pointer) {\n const ret = wasm.hakuban_object_observe_contract_ready(object_observe_pointer);\n return WasmResultWithPointer.__wrap(ret);\n}\n\nfunction handleError(f, args) {\n try {\n return f.apply(this, args);\n } catch (e) {\n wasm.__wbindgen_exn_store(addHeapObject(e));\n }\n}\n/**\n*/\nexport const WasmResultStatus = Object.freeze({ Ok:0,\"0\":\"Ok\",Pending:1,\"1\":\"Pending\",NotAvailable:2,\"2\":\"NotAvailable\",InvalidString:3,\"3\":\"InvalidString\",InvalidJSON:4,\"4\":\"InvalidJSON\",InvalidURL:5,\"5\":\"InvalidURL\",InvalidLogLevel:6,\"6\":\"InvalidLogLevel\",UnknownError:7,\"7\":\"UnknownError\", });\n/**\n*/\nexport class WasmResultWithNothing {\n\n static __wrap(ptr) {\n const obj = Object.create(WasmResultWithNothing.prototype);\n obj.ptr = ptr;\n\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.ptr;\n this.ptr = 0;\n\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_wasmresultwithnothing_free(ptr);\n }\n /**\n * @returns {number}\n */\n get status() {\n const ret = wasm.__wbg_get_wasmresultwithnothing_status(this.ptr);\n return ret >>> 0;\n }\n /**\n * @param {number} arg0\n */\n set status(arg0) {\n wasm.__wbg_set_wasmresultwithnothing_status(this.ptr, arg0);\n }\n}\n/**\n*/\nexport class WasmResultWithPointer {\n\n static __wrap(ptr) {\n const obj = Object.create(WasmResultWithPointer.prototype);\n obj.ptr = ptr;\n\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.ptr;\n this.ptr = 0;\n\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_wasmresultwithpointer_free(ptr);\n }\n /**\n * @returns {number}\n */\n get status() {\n const ret = wasm.__wbg_get_wasmresultwithpointer_status(this.ptr);\n return ret >>> 0;\n }\n /**\n * @param {number} arg0\n */\n set status(arg0) {\n wasm.__wbg_set_wasmresultwithpointer_status(this.ptr, arg0);\n }\n /**\n * @returns {number}\n */\n get value() {\n const ret = wasm.__wbg_get_wasmresultwithpointer_value(this.ptr);\n return ret;\n }\n /**\n * @param {number} arg0\n */\n set value(arg0) {\n wasm.__wbg_set_wasmresultwithpointer_value(this.ptr, arg0);\n }\n}\n\nasync function load(module, imports) {\n if (typeof Response === 'function' && module instanceof Response) {\n if (typeof WebAssembly.instantiateStreaming === 'function') {\n try {\n return await WebAssembly.instantiateStreaming(module, imports);\n\n } catch (e) {\n if (module.headers.get('Content-Type') != 'application/wasm') {\n console.warn(\"`WebAssembly.instantiateStreaming` failed because your server does not serve wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\\n\", e);\n\n } else {\n throw e;\n }\n }\n }\n\n const bytes = await module.arrayBuffer();\n return await WebAssembly.instantiate(bytes, imports);\n\n } else {\n const instance = await WebAssembly.instantiate(module, imports);\n\n if (instance instanceof WebAssembly.Instance) {\n return { instance, module };\n\n } else {\n return instance;\n }\n }\n}\n\nfunction getImports() {\n const imports = {};\n imports.wbg = {};\n imports.wbg.__wbindgen_object_drop_ref = function(arg0) {\n takeObject(arg0);\n };\n imports.wbg.__wbindgen_string_get = function(arg0, arg1) {\n const obj = getObject(arg1);\n const ret = typeof(obj) === 'string' ? obj : undefined;\n var ptr0 = isLikeNone(ret) ? 0 : passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len0 = WASM_VECTOR_LEN;\n getInt32Memory0()[arg0 / 4 + 1] = len0;\n getInt32Memory0()[arg0 / 4 + 0] = ptr0;\n };\n imports.wbg.__wbindgen_string_new = function(arg0, arg1) {\n const ret = getStringFromWasm0(arg0, arg1);\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_now_8172cd917e5eda6b = function(arg0) {\n const ret = getObject(arg0).now();\n return ret;\n };\n imports.wbg.__wbg_debug_f15cb542ea509609 = function(arg0) {\n console.debug(getObject(arg0));\n };\n imports.wbg.__wbg_error_ef9a0be47931175f = function(arg0) {\n console.error(getObject(arg0));\n };\n imports.wbg.__wbg_info_2874fdd5393f35ce = function(arg0) {\n console.info(getObject(arg0));\n };\n imports.wbg.__wbg_log_4b5638ad60bdc54a = function(arg0) {\n console.log(getObject(arg0));\n };\n imports.wbg.__wbg_warn_58110c4a199df084 = function(arg0) {\n console.warn(getObject(arg0));\n };\n imports.wbg.__wbg_newnoargs_b5b063fc6c2f0376 = function(arg0, arg1) {\n const ret = new Function(getStringFromWasm0(arg0, arg1));\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_get_765201544a2b6869 = function() { return handleError(function (arg0, arg1) {\n const ret = Reflect.get(getObject(arg0), getObject(arg1));\n return addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbg_call_97ae9d8645dc388b = function() { return handleError(function (arg0, arg1) {\n const ret = getObject(arg0).call(getObject(arg1));\n return addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbg_self_6d479506f72c6a71 = function() { return handleError(function () {\n const ret = self.self;\n return addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbg_window_f2557cc78490aceb = function() { return handleError(function () {\n const ret = window.window;\n return addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbg_globalThis_7f206bda628d5286 = function() { return handleError(function () {\n const ret = globalThis.globalThis;\n return addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbg_global_ba75c50d1cf384f4 = function() { return handleError(function () {\n const ret = global.global;\n return addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbindgen_is_undefined = function(arg0) {\n const ret = getObject(arg0) === undefined;\n return ret;\n };\n imports.wbg.__wbindgen_object_clone_ref = function(arg0) {\n const ret = getObject(arg0);\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_new_abda76e883ba8a5f = function() {\n const ret = new Error();\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_stack_658279fe44541cf6 = function(arg0, arg1) {\n const ret = getObject(arg1).stack;\n const ptr0 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n getInt32Memory0()[arg0 / 4 + 1] = len0;\n getInt32Memory0()[arg0 / 4 + 0] = ptr0;\n };\n imports.wbg.__wbg_error_f851667af71bcfc6 = function(arg0, arg1) {\n try {\n console.error(getStringFromWasm0(arg0, arg1));\n } finally {\n wasm.__wbindgen_free(arg0, arg1);\n }\n };\n imports.wbg.__wbindgen_debug_string = function(arg0, arg1) {\n const ret = debugString(getObject(arg1));\n const ptr0 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n getInt32Memory0()[arg0 / 4 + 1] = len0;\n getInt32Memory0()[arg0 / 4 + 0] = ptr0;\n };\n imports.wbg.__wbindgen_throw = function(arg0, arg1) {\n throw new Error(getStringFromWasm0(arg0, arg1));\n };\n\n return imports;\n}\n\nfunction initMemory(imports, maybe_memory) {\n\n}\n\nfunction finalizeInit(instance, module) {\n wasm = instance.exports;\n init.__wbindgen_wasm_module = module;\n cachedBigInt64Memory0 = new BigInt64Array();\n cachedBigUint64Memory0 = new BigUint64Array();\n cachedInt32Memory0 = new Int32Array();\n cachedUint32Memory0 = new Uint32Array();\n cachedUint8Memory0 = new Uint8Array();\n\n\n return wasm;\n}\n\nfunction initSync(module) {\n const imports = getImports();\n\n initMemory(imports);\n\n if (!(module instanceof WebAssembly.Module)) {\n module = new WebAssembly.Module(module);\n }\n\n const instance = new WebAssembly.Instance(module, imports);\n\n return finalizeInit(instance, module);\n}\n\nasync function init(input) {\n if (typeof input === 'undefined') {\n input = new URL('hakuban_bg.wasm', import.meta.url);\n }\n const imports = getImports();\n\n if (typeof input === 'string' || (typeof Request === 'function' && input instanceof Request) || (typeof URL === 'function' && input instanceof URL)) {\n input = fetch(input);\n }\n\n initMemory(imports);\n\n const { instance, module } = await load(await input, imports);\n\n return finalizeInit(instance, module);\n}\n\nexport { initSync }\nexport default init;\n","export * from \"../pkg/hakuban.js\"\n\n\nexport unwrap_pointer = (result)->\n\tif result.status == 0\n\t\tresult.value\n\telse\n\t\tthrow \"hakuban wasm call failed: \"+result.status\n\nexport unwrap_pointer_or_null = (result)->\n\tif result.status == 0\n\t\tresult.value\n\telse if result.status == 2 #unavailable\n\t\tnull\n\telse\n\t\tthrow \"hakuban wasm call failed: \"+result.status\n\n\nexport class Future\n\n\tconstructor: (@local_exchange, @future_owner, @poll_function, @drop_function, @_pointer)->\n\n\tawait_and_drop: (aborted=null)->\n\t\ttry\n\t\t\tabout_to_drop_notification_received = new Promise (about_to_drop_notification)=>\n\t\t\t\t@lock_id = @future_owner.drop_lock(about_to_drop_notification)\n\t\t\twhile true\n\t\t\t\tnotified = @local_exchange.notified()\n\t\t\t\tresult = @local_exchange.with_pointer (local_exchange_pointer)=> @poll_function(local_exchange_pointer, @_pointer, notified.id)\n\t\t\t\tswitch result.status\n\t\t\t\t\twhen 0 #ok\n\t\t\t\t\t\treturn result.value\n\t\t\t\t\twhen 1 #pending\n\t\t\t\t\t\tto_listen = [notified, about_to_drop_notification_received]\n\t\t\t\t\t\tto_listen.push(aborted) if aborted?\n\t\t\t\t\t\tswitch await Promise.race(to_listen)\n\t\t\t\t\t\t\twhen \"ABORT\" then return false\n\t\t\t\t\t\t\twhen \"DROP\" then return null\n\t\t\t\t\twhen 2 #unavailable, channel closed\n\t\t\t\t\t\treturn null\n\t\t\t\t\telse\n\t\t\t\t\t\tthrow result.status #TODO: convert that to specific error\n\t\tfinally\n\t\t\t@drop_function(@_pointer)\n\t\t\t@future_owner.drop_release(@lock_id)\n\t\t\t@local_exchange.return_notified(notified) if notified?\n\n","import * as FFI from \"./ffi.coffee\"\n\n\nexport logger_initialize = (log_level, skip_if_already_initialized=false) ->\n\t\tif 0 == (error = FFI.hakuban_logger_initialize(log_level))\n\t\t\tlogger_initialized = true\n\t\telse\n\t\t\tconsole.error \"Failed to initialize logger, error \" + error \n\t\t\tfalse\n","\nfinalization_registry = new FinalizationRegistry (function_and_arg)-> function_and_arg[0](function_and_arg[1])\n\n\ndo_and_drop = (object_or_objects, block)->\n\t\ttry\n\t\t\tblock_returned_promise = false\n\t\t\tret = block(object_or_objects)\n\t\t\tif ret? and typeof ret.then == 'function'\n\t\t\t\tblock_returned_promise = true\n\t\t\t\tret.finally ()=>\n\t\t\t\t\tfor object in [object_or_objects].flat()\n\t\t\t\t\t\tobject.drop()\n\t\t\telse\n\t\t\t\tret\n\t\tfinally\n\t\t\tif not block_returned_promise\n\t\t\t\tfor object in [object_or_objects].flat()\n\t\t\t\t\tobject.drop()\n\n\nexport do_and_drop_or_return = (object_or_objects, block)->\n\t\tif block?\n\t\t\tdo_and_drop(object_or_objects, block)\n\t\telse\n\t\t\tobject_or_objects\n\n\nexport class PointerAlreadyDropped\n\tconstructor: ()->@message=\"PointerAlreadyDropped\"\n\n\nexport class FFIObject\n\n\n\tinitialize_pointer: (@_local_exchange, @_pointer, @_drop_function)->\n\t\t@_was_dropped = null\n\t\t@_drop_locks_sequence = 0\n\t\t@_drop_locks = {}\n\t\tfinalization_registry.register(@, [@_drop_function, @_pointer], @)\n\t\n\tdropped: ()->\n\t\t@_was_dropped?\n\n\tdrop: ()-> \n\t\tif not @_was_dropped?\n\t\t\t@_was_dropped = new Promise (resolve)=>\n\t\t\t\tif @_pointer?\n\t\t\t\t\tif Object.keys(@_drop_locks).length > 0\n\t\t\t\t\t\tall_locks_dropped = new Promise (@_all_locks_dropped_set)=>\n\t\t\t\t\t\tfor about_to_drop_notification in Object.values(@_drop_locks)\n\t\t\t\t\t\t\tabout_to_drop_notification(\"DROP\")\n\t\t\t\t\t\tawait all_locks_dropped\n\t\t\t\t\tthrow \"Hakuban internal error: drop was attempted with existing drop locks\" if Object.keys(@_drop_locks).length > 0\n\t\t\t\t\tfinalization_registry.unregister(@)\n\t\t\t\t\t@_drop_function(@_pointer)\n\t\t\t\t\t@_local_exchange.notify() if @_local_exchange?\n\t\t\t\t@_pointer = false\n\t\t\t\tresolve()\n\t\t@_was_dropped\n\n\twith_pointer: (block)->\n\t\tthrow new PointerAlreadyDropped() if @dropped()\n\t\tblock(@_pointer)\n\n\tdo_and_drop_or_return: (block)->\n\t\tdo_and_drop_or_return(@, block)\n\n\tdrop_lock: (about_to_drop_notification)->\n\t\traise FFIObject::PointerAlreadyDropped if @_was_dropped?\n\t\tlock_id = @_drop_locks_sequence++\n\t\t@_drop_locks[lock_id] = about_to_drop_notification\n\t\tlock_id\n\t\n\tdrop_release: (lock_id)->\n\t\tdelete @_drop_locks[lock_id]\n\t\tif @_was_dropped? and Object.keys(@_drop_locks).length == 0\n\t\t\t@_all_locks_dropped_set()\n","import * as FFI from \"./ffi.coffee\"\nimport { FFIObject } from \"./ffi-object.coffee\"\n\n\nexport class ObjectDescriptor extends FFIObject\n\n\tconstructor: (tags, json, pointer=null) -> \n\t\tsuper()\n\t\tif pointer?\n\t\t\t@json = JSON.parse(FFI.hakuban_object_descriptor_json(pointer))\n\t\t\t@tags = (new TagDescriptor(null, null, tag_pointer) for tag_pointer in FFI.hakuban_object_descriptor_tags(pointer))\n\t\telse\n\t\t\t@json = json\n\t\t\t@tags = ((if tag instanceof TagDescriptor then tag else new TagDescriptor(tag)) for tag in tags)\n\t\t\tpointer = FFI.unwrap_pointer(FFI.hakuban_object_descriptor_new(JSON.stringify(@json), (tag._pointer for tag in @tags)))\n\t\t@initialize_pointer(null, pointer, FFI.hakuban_object_descriptor_drop)\n\n\nexport class TagDescriptor extends FFIObject\n\n\tconstructor: (json) -> \n\t\tsuper()\n\t\t@json = json\n\t\tpointer = FFI.unwrap_pointer(FFI.hakuban_tag_descriptor_new(JSON.stringify(@json)))\n\t\t@initialize_pointer(null, pointer, FFI.hakuban_tag_descriptor_drop)\n\n","import * as FFI from \"./ffi.coffee\"\nimport { FFIObject } from \"./ffi-object.coffee\"\n\n\nObjectState_last_generated_version = [0,0,0]\n\n#TODO: make this immutable for the users somehow\nexport class ObjectState extends FFIObject\n\n\tconstructor: (data=null, version=null, format=null, synchronized_us_ago=0, pointer=null)->\n\t\tsuper()\n\t\tif pointer?\n\t\t\t@initialize_pointer(null, pointer, FFI.hakuban_object_state_drop)\n\t\t\t@version = (x for x in FFI.hakuban_object_state_version(pointer))\n\t\t\t@synchronized_us_ago = FFI.hakuban_object_state_synchronized_ago(pointer)\n\t\t\t@format = FFI.hakuban_object_state_format(pointer)\n\t\t\t@data = new TextDecoder().decode(FFI.hakuban_object_state_data(pointer))\n\t\telse\n\t\t\tif !version?\n\t\t\t\ttimestamp = new Date().getTime()\n\t\t\t\tversion = [0, Math.floor(timestamp/1000), (timestamp % 1000) * 1000]\n\t\t\t\tversion[2]++ while version[1] == ObjectState_last_generated_version[1] and version[2] <= ObjectState_last_generated_version[2]\n\t\t\t\tObjectState_last_generated_version = version\n\t\t\t@version = (BigInt(version_element) for version_element in version)\n\t\t\tif !format?\n\t\t\t\tformat = []\n\t\t\t@format = [format].flat(Infinity)\n\t\t\t@synchronized_us_ago = BigInt(synchronized_us_ago)\n\t\t\t@data = data\n\t\t\n\twith_pointer: (block)->\n\t\tthrow new PointerAlreadyDropped() if @dropped()\n\t\tif @_pointer?\n\t\t\tblock(@_pointer)\n\t\telse\n\t\t\tpointer = FFI.unwrap_pointer(FFI.hakuban_object_state_new(@version, @format, new TextEncoder().encode(@data), @synchronized_us_ago))\n\t\t\t@initialize_pointer(null, pointer, FFI.hakuban_object_state_drop)\n\t\t\tblock(@_pointer)\n\n\twith_data: (data)->\n\t\tnew ObjectState(data, @version, @format, @synchronized_us_ago)\n\n\twith_version: (version)->\n\t\tnew ObjectState(@data, version, @format, @synchronized_us_ago)\n\n\twith_format: (format)->\n\t\tnew ObjectState(@data, @version, format, @synchronized_us_ago)\n\n\twith_synchronized_us_ago: (synchronized_us_ago)->\n\t\tnew ObjectState(@data, @version, @format, synchronized_us_ago)\n\n\tjson_deserialize: ()->\n\t\tthrow \"Invalid data format\" if @format[@format.length - 1] != \"JSON\"\n\t\tnew ObjectState(JSON.parse(@data), @version, @format.slice(0, -1), @synchronized_us_ago)\n\n\tjson_serialize: ()->\n\t\tnew ObjectState(JSON.stringify(@data), @version, @format.concat(\"JSON\"), @synchronized_us_ago)\n","export class StreamEnumerator\n\n\tconstructor: (@_stream, @_without_implicit_drop=false, @_async=false)->\n\n\tasync: (block)->\n\t\tnew StreamEnumerator(@_stream, @_without_implicit_drop, true).call_or_return(block)\n\n\twithout_implicit_drop: (block)->\n\t\tnew StreamEnumerator(@_stream, true, @_async).call_or_return(block)\n\n\tcall_or_return: (block)->\n\t\tif block?\n\t\t\t@call(block)\n\t\telse\n\t\t\t@\n\n\tcall: (block)->\n\t\twhile (new_item = await @_stream.next())?\n\t\t\tif @_async\n\t\t\t\t#TODO: will GC eat it before it fullfils?\n\t\t\t\t_promise = new Promise (_resolve)=>\n\t\t\t\t\titem = new_item # :(\n\t\t\t\t\tif @_without_implicit_drop\n\t\t\t\t\t\tawait block(item)\n\t\t\t\t\telse\n\t\t\t\t\t\ttry\n\t\t\t\t\t\t\tawait block(item)\n\t\t\t\t\t\tfinally\n\t\t\t\t\t\t\tawait item.drop()\n\t\t\telse\n\t\t\t\tif @_without_implicit_drop\n\t\t\t\t\tawait block(new_item)\n\t\t\t\telse\n\t\t\t\t\ttry\n\t\t\t\t\t\tawait block(new_item)\n\t\t\t\t\tfinally\n\t\t\t\t\t\tawait new_item.drop()\n","import * as FFI from \"./ffi.coffee\"\nimport { FFIObject, PointerAlreadyDropped } from \"./ffi-object.coffee\"\nimport { ObjectDescriptor } from \"./descriptor.coffee\"\nimport { ObjectState } from \"./object-state.coffee\"\nimport { StreamEnumerator } from \"./stream.coffee\"\n\n\nexport class ObjectStateStream extends FFIObject\n\n\tconstructor: (local_exchange, pointer)->\n\t\tsuper()\n\t\t@local_exchange = local_exchange\n\t\t@initialize_pointer(@local_exchange, pointer, FFI.hakuban_object_state_stream_drop)\n\n\tdescriptor: ()->\n\t\t@with_pointer (pointer)->new ObjectDescriptor(null, null, FFI.hakuban_object_state_stream_descriptor(pointer))\n\n\tnext: (block)->\n\t\ttry\n\t\t\tfuture_pointer = @with_pointer (pointer)=>FFI.hakuban_object_state_stream_next(pointer)\n\t\t\tpointer = await new FFI.Future(@local_exchange, @, FFI.hakuban_future_returning_pointer_poll, FFI.hakuban_future_returning_pointer_drop, future_pointer).await_and_drop()\n\t\t\tif pointer? then new ObjectState(null, null, null, null, pointer).do_and_drop_or_return(block) else null\n\t\tcatch error\n\t\t\treturn null if error instanceof PointerAlreadyDropped\n\t\t\tthrow error\n\n\n\teach: (block)->\n\t\tnew StreamEnumerator(@).call_or_return(block)\n\n\tcurrent: (block)->\n\t\ttry\n\t\t\tpointer = @with_pointer (pointer)=> FFI.unwrap_pointer_or_null(FFI.hakuban_object_state_stream_current(pointer))\n\t\t\tif pointer? then new ObjectState(null, null, null, null, pointer).do_and_drop_or_return(block) else null\n\t\tcatch error\n\t\t\treturn null if error instanceof PointerAlreadyDropped\n\t\t\tthrow error\n","import * as FFI from \"./ffi.coffee\"\nimport { FFIObject } from \"./ffi-object.coffee\"\nimport { ObjectDescriptor } from \"./descriptor.coffee\"\nimport { StreamEnumerator } from \"./stream.coffee\"\n\n\nexport class ObjectStateSinkParams extends FFIObject\n\n\tconstructor: (pointer)->\n\t\tsuper()\n\t\t@initialize_pointer(null, pointer, FFI.hakuban_object_state_sink_params_drop)\n\n\nexport class ObjectStateSink extends FFIObject\n\n\tconstructor: (local_exchange, pointer)->\n\t\tsuper()\n\t\t@local_exchange = local_exchange\n\t\t@initialize_pointer(@local_exchange, pointer, FFI.hakuban_object_state_sink_drop)\n\n\tdescriptor: ()->\n\t\t@with_pointer (pointer)->new ObjectDescriptor(null, null, FFI.hakuban_object_state_sink_descriptor(pointer))\n\n\tsend: (object_state)->\n\t\ttry\n\t\t\tfuture_pointer = @with_pointer (sink_pointer)=>\n\t\t\t\tobject_state.with_pointer (object_state_pointer)=>\n\t\t\t\t\tFFI.hakuban_object_state_sink_push(sink_pointer, object_state_pointer)\n\t\t\tawait new FFI.Future(@local_exchange, @, FFI.hakuban_future_returning_nothing_poll, FFI.hakuban_future_returning_nothing_drop, future_pointer).await_and_drop()\n\t\t\t@local_exchange.notify()\n\t\t\ttrue\n\t\tcatch error\n\t\t\treturn null if error instanceof PointerAlreadyDropped\n\t\t\tthrow error\n\n\tnext: (block)->\n\t\ttry\n\t\t\tfuture_pointer = @with_pointer (pointer)=>FFI.hakuban_object_state_sink_next(pointer)\n\t\t\tpointer = await new FFI.Future(@local_exchange, @, FFI.hakuban_future_returning_pointer_poll, FFI.hakuban_future_returning_pointer_drop, future_pointer).await_and_drop()\n\t\t\tif pointer? then new ObjectStateSinkParams(pointer).do_and_drop_or_return(block) else null\n\t\tcatch error\n\t\t\treturn null if error instanceof PointerAlreadyDropped\n\t\t\tthrow error\n\n\teach: (block)->\n\t\tnew StreamEnumerator(@).call_or_return(block)\n\n\tcurrent: (block)->\n\t\ttry\n\t\t\tpointer = @with_pointer (pointer)=>FFI.unwrap_pointer_or_null(FFI.hakuban_object_state_sink_current(pointer))\n\t\t\tif pointer? then new ObjectStateSinkParams(pointer).do_and_drop_or_return(block) else null\n\t\tcatch error\n\t\t\treturn null if error instanceof PointerAlreadyDropped\n\t\t\tthrow error\n\n\tdesynchronize: ()->\n\t\ttry\n\t\t\t@with_pointer (pointer)=>FFI.hakuban_object_state_sink_desynchronize(pointer)\n\t\t\t@local_exchange.notify()\n\t\t\ttrue\n\t\tcatch error\n\t\t\treturn null if error instanceof PointerAlreadyDropped\n\t\t\tthrow error\n","import * as FFI from \"./ffi.coffee\"\nimport { FFIObject, PointerAlreadyDropped, do_and_drop_or_return } from \"./ffi-object.coffee\"\nimport { ObjectDescriptor, TagDescriptor } from \"./descriptor.coffee\"\nimport { ObjectStateStream } from \"./object-state-stream.coffee\"\nimport { ObjectStateSink } from \"./object-state-sink.coffee\"\nimport { StreamEnumerator } from \"./stream.coffee\"\n\n\nclass Contract extends FFIObject\n\n\teach: (block)->\n\t\tnew StreamEnumerator(@).call_or_return(block)\n\n\nexport class ObjectObserveContract extends Contract\n\n\tconstructor: (local_exchange, descriptor) ->\n\t\tsuper()\n\t\t@local_exchange = local_exchange\n\t\t@descriptor = if descriptor[0] instanceof ObjectDescriptor\n\t\t\tdescriptor[0]\n\t\telse\n\t\t\tnew ObjectDescriptor(descriptor...) \n\t\t@local_exchange.with_pointer (local_exchange_pointer)=>\n\t\t\t@descriptor.with_pointer (descriptor_pointer)=>\t\n\t\t\t\t@initialize_pointer(@local_exchange, FFI.hakuban_object_observe_contract_new(local_exchange_pointer, descriptor_pointer), FFI.hakuban_object_observe_contract_drop)\n\t\t@local_exchange.notify()\n\t\n\tterminate: ()->\n\t\ttry\n\t\t\t@with_pointer (pointer)=>FFI.hakuban_object_observe_contract_terminate(pointer)\n\t\t\t@local_exchange.notify()\n\t\tcatch error\n\t\t\treturn null if error instanceof PointerAlreadyDropped\n\t\t\tthrow error\n\t\n\tnext: (block)->\n\t\ttry\n\t\t\tfuture_pointer = @with_pointer (pointer)=>FFI.hakuban_object_observe_contract_next(pointer)\n\t\t\tpointer = await new FFI.Future(@local_exchange, @, FFI.hakuban_future_returning_pointer_poll, FFI.hakuban_future_returning_pointer_drop, future_pointer).await_and_drop()\n\t\t\t@local_exchange.notify()\n\t\t\tif pointer? then await new ObjectStateStream(@local_exchange, pointer).do_and_drop_or_return(block) else null\n\t\tcatch error\n\t\t\treturn null if error instanceof PointerAlreadyDropped\n\t\t\tthrow error\n\n\tready: (block)->\n\t\ttry\n\t\t\tpointer = @with_pointer (pointer)=>FFI.unwrap_pointer_or_null(FFI.hakuban_object_observe_contract_ready(pointer))\n\t\t\t@local_exchange.notify()\n\t\t\tif pointer? then new ObjectStateStream(@local_exchange, pointer).do_and_drop_or_return(block) else null\n\t\tcatch error\n\t\t\treturn null if error instanceof PointerAlreadyDropped\n\t\t\tthrow error\n\n\nexport class ObjectExposeContract extends Contract\n\n\tconstructor: (local_exchange, descriptor)->\n\t\tsuper()\n\t\t@local_exchange = local_exchange\n\t\t@descriptor = if descriptor[0] instanceof ObjectDescriptor\n\t\t\tdescriptor[0]\n\t\telse\n\t\t\tnew ObjectDescriptor(descriptor...)\n\t\t@local_exchange.with_pointer (local_exchange_pointer)=>\n\t\t\t@descriptor.with_pointer (descriptor_pointer)=>\n\t\t\t\t@initialize_pointer(@local_exchange, FFI.hakuban_object_expose_contract_new(local_exchange_pointer, descriptor_pointer), FFI.hakuban_object_expose_contract_drop)\n\t\t@local_exchange.notify()\n\n\tterminate: ()->\n\t\ttry\n\t\t\t@with_pointer (pointer)=>FFI.hakuban_object_expose_contract_terminate(pointer)\n\t\t\t@local_exchange.notify()\n\t\tcatch error\n\t\t\treturn null if error instanceof PointerAlreadyDropped\n\t\t\tthrow error\n\n\tnext: (block)->\n\t\ttry\n\t\t\tfuture_pointer = @with_pointer (pointer)=>FFI.hakuban_object_expose_contract_next(pointer)\n\t\t\tpointer = await new FFI.Future(@local_exchange, @, FFI.hakuban_future_returning_pointer_poll, FFI.hakuban_future_returning_pointer_drop, future_pointer).await_and_drop()\n\t\t\t@local_exchange.notify()\n\t\t\tif pointer? then await new ObjectStateSink(@local_exchange, pointer).do_and_drop_or_return(block) else null\n\t\tcatch error\n\t\t\treturn null if error instanceof PointerAlreadyDropped\n\t\t\tthrow error\n\n\tready: (block)->\n\t\ttry\n\t\t\tpointer = @with_pointer (pointer)=>FFI.unwrap_pointer_or_null(FFI.hakuban_object_expose_contract_ready(pointer))\n\t\t\t@local_exchange.notify()\n\t\t\tif pointer? then new ObjectStateSink(@local_exchange, pointer).do_and_drop_or_return(block) else null\n\t\tcatch error\n\t\t\treturn null if error instanceof PointerAlreadyDropped\n\t\t\tthrow error\n\n\nexport class TagObserveContract extends Contract\n\n\tconstructor: (local_exchange, descriptor) ->\n\t\tsuper()\n\t\t@local_exchange = local_exchange\n\t\t@descriptor = descriptor\n\t\t@descriptor = new TagDescriptor(@descriptor) if not (@descriptor instanceof TagDescriptor)\n\t\t@local_exchange.with_pointer (local_exchange_pointer)=>\n\t\t\t@descriptor.with_pointer (descriptor_pointer)=>\n\t\t\t\t@initialize_pointer(@local_exchange, FFI.hakuban_tag_observe_contract_new(local_exchange_pointer, descriptor_pointer), FFI.hakuban_tag_observe_contract_drop)\n\t\t@local_exchange.notify()\n\n\tterminate: ()->\n\t\ttry\n\t\t\t@with_pointer (pointer)=>FFI.hakuban_tag_observe_contract_terminate(pointer)\n\t\t\t@local_exchange.notify()\n\t\tcatch error\n\t\t\treturn null if error instanceof PointerAlreadyDropped\n\t\t\tthrow error\t\n\n\tnext: (block)->\n\t\ttry\n\t\t\tfuture_pointer = @with_pointer (pointer)=>FFI.hakuban_tag_observe_contract_next(pointer)\n\t\t\tpointer = await new FFI.Future(@local_exchange, @, FFI.hakuban_future_returning_pointer_poll, FFI.hakuban_future_returning_pointer_drop, future_pointer).await_and_drop()\n\t\t\t@local_exchange.notify()\n\t\t\tif pointer? then new ObjectStateStream(@local_exchange, pointer).do_and_drop_or_return(block) else null\n\t\tcatch error\n\t\t\treturn null if error instanceof PointerAlreadyDropped\n\t\t\tthrow error\n\n\tready: (block)->\n\t\ttry\n\t\t\tpointers = @with_pointer (pointer)=>FFI.hakuban_tag_observe_contract_ready(pointer)\n\t\t\t@local_exchange.notify()\n\t\t\tdo_and_drop_or_return(new ObjectStateStream(@local_exchange, pointer) for pointer in pointers, block)\n\t\tcatch error\n\t\t\treturn null if error instanceof PointerAlreadyDropped\n\t\t\tthrow error\n\n\nexport class TagExposeContract extends Contract\n\n\tconstructor: (local_exchange, descriptor) ->\n\t\tsuper()\n\t\t@local_exchange = local_exchange\n\t\t@descriptor = descriptor\n\t\t@descriptor = new TagDescriptor(@descriptor) if not (@descriptor instanceof TagDescriptor)\n\t\t@local_exchange.with_pointer (local_exchange_pointer)=>\n\t\t\t@descriptor.with_pointer (descriptor_pointer)=>\n\t\t\t\t@initialize_pointer(@local_exchange, FFI.hakuban_tag_expose_contract_new(local_exchange_pointer, descriptor_pointer), FFI.hakuban_tag_expose_contract_drop)\n\t\t@local_exchange.notify()\n\n\tterminate: ()->\n\t\ttry\n\t\t\t@with_pointer (pointer)=>FFI.hakuban_tag_expose_contract_terminate(pointer)\n\t\t\t@local_exchange.notify()\n\t\tcatch error\n\t\t\treturn null if error instanceof PointerAlreadyDropped\n\t\t\tthrow error\n\n\tnext: (block)->\n\t\ttry\n\t\t\tfuture_pointer = @with_pointer (pointer)=>FFI.hakuban_tag_expose_contract_next(pointer)\n\t\t\tpointer = await new FFI.Future(@local_exchange, @, FFI.hakuban_future_returning_pointer_poll, FFI.hakuban_future_returning_pointer_drop, future_pointer).await_and_drop()\n\t\t\t@local_exchange.notify()\n\t\t\tif pointer? then new ObjectStateSink(@local_exchange, pointer).do_and_drop_or_return(block) else null\n\t\tcatch error\n\t\t\treturn null if error instanceof PointerAlreadyDropped\n\t\t\tthrow error\n\n\tready: (block)->\n\t\ttry\n\t\t\tpointers = @with_pointer (pointer)=>FFI.hakuban_tag_expose_contract_ready(pointer)\n\t\t\t@local_exchange.notify()\n\t\t\tdo_and_drop_or_return(new ObjectStateSink(@local_exchange, pointer) for pointer in pointers, block)\n\t\tcatch error\n\t\t\treturn null if error instanceof PointerAlreadyDropped\n\t\t\tthrow error\n\n","import * as FFI from \"./ffi.coffee\"\nimport { FFIObject } from \"./ffi-object.coffee\"\nimport { ObjectObserveContract, ObjectExposeContract, TagObserveContract, TagExposeContract } from \"./contract.coffee\"\n\n\nexport class LocalExchange extends FFIObject\n\n\tconstructor: (name=\"wasm\") ->\n\t\tsuper()\n\t\t@name = name\n\t\t@_notification_sequence = BigInt(0)\n\t\t@_notification_resolve = {}\n\t\t@initialize_pointer(null, FFI.unwrap_pointer(FFI.hakuban_local_exchange_new(@name)),FFI.hakuban_local_exchange_drop)\n\n\tobject: (descriptor_or_tags, json_or_nothing) ->\n\t\tnew ObjectContractBuilder(@, [descriptor_or_tags, json_or_nothing])\n\n\ttag: (descriptor) ->\n\t\tnew TagContractBuilder(@, descriptor)\n\n\tnotified: ()->\n\t\tid = ++@_notification_sequence\n\t\tpromise = new Promise((resolve)=>@_notification_resolve[id]=resolve)\n\t\tpromise.id = id\n\t\tpromise\n\n\tnotify: ()->\n\t\tfor id in @with_pointer (pointer)->FFI.hakuban_local_exchange_notified(pointer)\n\t\t\t# if you want to put console.log here, you forgot to await\n\t\t\tif @_notification_resolve[id]?\n\t\t\t\t@_notification_resolve[id](true)\n\t\t\t\tdelete @_notification_resolve[id]\n\t\n\treturn_notified: (notification_promise)->\n\t\tdelete @_notification_resolve[notification_promise.id]\n\n\nclass ObjectContractBuilder\n\tconstructor: (@local_exchange, @descriptor) -> null\n\tobserve: (block) -> new ObjectObserveContract(@local_exchange, @descriptor).do_and_drop_or_return(block)\n\texpose: (block) -> new ObjectExposeContract(@local_exchange, @descriptor).do_and_drop_or_return(block)\n\n\nclass TagContractBuilder\n\tconstructor: (@local_exchange, @descriptor) -> null\n\tobserve: (block) -> new TagObserveContract(@local_exchange, @descriptor).do_and_drop_or_return(block)\n\texpose: (block) -> new TagExposeContract(@local_exchange, @descriptor).do_and_drop_or_return(block)\n","import * as FFI from \"./ffi.coffee\"\nimport { FFIObject, PointerAlreadyDropped } from \"./ffi-object.coffee\"\n\n\nexport class RemoteExchange extends FFIObject\n\n\tconstructor: (local_exchange, upstream, diff_produce, diff_request)->\n\t\tsuper()\n\t\t@local_exchange = local_exchange\n\t\t@local_exchange.with_pointer (local_exchange_pointer)=>\n\t\t\t@initialize_pointer(@local_exchange, FFI.hakuban_remote_exchange_new(local_exchange_pointer, upstream, diff_produce, diff_request), FFI.hakuban_remote_exchange_drop)\n\t\t\n\tnext: ()->\n\t\ttry\n\t\t\tfuture_pointer = @with_pointer (pointer)=>FFI.hakuban_remote_exchange_next_message_to_network(pointer)\n\t\t\tpointer = await new FFI.Future(@local_exchange, @, FFI.hakuban_future_returning_pointer_poll, FFI.hakuban_future_returning_pointer_drop, future_pointer).await_and_drop()\n\t\t\t@local_exchange.notify()\n\t\t\tpointer\n\t\tcatch error\n\t\t\treturn null if error instanceof PointerAlreadyDropped\n\t\t\tthrow error\n\n\tsend: (data)->\n\t\ttry\n\t\t\tfuture_pointer = @with_pointer (pointer)=>FFI.hakuban_remote_exchange_send_message_from_network(pointer, new Uint8Array(data))\n\t\t\tawait new FFI.Future(@local_exchange, @, FFI.hakuban_future_returning_nothing_poll, FFI.hakuban_future_returning_nothing_drop, future_pointer).await_and_drop()\n\t\t\t@local_exchange.notify()\n\t\tcatch error\n\t\t\treturn null if error instanceof PointerAlreadyDropped\n\t\t\tthrow error\n","import * as FFI from \"./ffi.coffee\"\nimport { RemoteExchange } from \"./remote-exchange.coffee\"\n\n\n#TODO: hide private methods\nexport class WebsocketConnector\n\n\tconstructor: (@local_exchange, @uri, @options={})->\n\t\t@_status_change({ connected: false })\n\t\t@socket = undefined\n\t\t@reconnection_timer = undefined\n\t\t@reconnect_on_close = true\n\t\t@connect()\n\n\tstatus: ()->\n\t\tPromise.resolve([ @status, @next_status_promise ])\n\n\t_status_change: (new_status)->\n\t\t@status = new_status\n\t\told_next_status_promise_resolve = @next_status_promise_resolve\n\t\t@next_status_promise = new Promise (@next_status_promise_resolve)=>\n\t\told_next_status_promise_resolve([@status, @next_status_promise]) if old_next_status_promise_resolve?\n\n\tdisconnect: () ->\n\t\t@reconnect_on_close = false\n\t\t@socket.close() if @socket?\n\t\t\n\tconnect: ()=>\n\t\tclearTimeout(@reconnection_timer) if @reconnection_timer?\n\t\t@reconnection_timer = undefined\n\n\t\ttry\n\t\t\t@socket = new WebSocket(@uri)\n\t\tcatch error\n\t\t\tconsole.error('Error connecting to hakuban remote exchange:', error) \n\t\t\t@_status_change({ connected: false, error: error })\n\t\t\treturn false\n\n\t\t@socket.binaryType = \"arraybuffer\"\n\n\t\t@socket.onopen = ()=>\n\t\t\tconsole.debug('Connected to hakuban remote exchange') if @options.debug\n\t\t\t@remote_exchange = new RemoteExchange(@local_exchange, true, true, true)\n\t\t\t@forwarding_to_network_stopped = new Promise (resolve)=>\n\t\t\t\ttry \n\t\t\t\t\twhile @remote_exchange? and (message_pointer = await @remote_exchange.next())?\n\t\t\t\t\t\t@send(FFI.hakuban_message_take(message_pointer))\n\t\t\t\tcatch error\n\t\t\t\t\tconsole.error('Error processing hakuban connection:', error)\n\t\t\t\t\t@socket.close() if @socket?\n\t\t\t\tresolve()\n\t\t\t@_status_change({ connected: true })\n\n\t\t# this may fire even if onopen never did\n\t\t@socket.onclose = (event)=>\n\t\t\tconsole.debug('Disconnected from hakuban remote exchange') if @options.debug and @remote_exchange?\n\t\t\tconsole.debug('Failed to connect to hakuban remote exchange') if @options.debug and !@remote_exchange?\n\t\t\t@_status_change({ connected: false, disconnect_reason: event.reason, clean_disconnect: event.wasClean })\n\t\t\t@socket = undefined\n\t\t\tif @keep_alive_interval?\n\t\t\t\tclearInterval(@keep_alive_interval) \n\t\t\t\t@keep_alive_interval = null\n\t\t\tif @reconnection_timer?\n\t\t\t\tclearTimeout(@reconnection_timer) \n\t\t\t\t@reconnection_timer = null\n\t\t\tif @remote_exchange?\n\t\t\t\tawait @remote_exchange.drop()\n\t\t\t\tawait @forwarding_to_network_stopped\n\t\t\t\t@forwarding_to_network_stopped = null\n\t\t\t\t@remote_exchange = null\n\t\t\tif @reconnect_on_close\n\t\t\t\t@reconnection_timer = setTimeout(@connect, 1000)\n\n\t\t@socket.onmessage = (event) =>\n\t\t\treturn if not @remote_exchange?\n\t\t\ttry\n\t\t\t\tawait @remote_exchange.send(event.data)\n\t\t\tcatch error\n\t\t\t\tconsole.error('Error processing hakuban connection:', error)\n\t\t\t\t@socket.close() if @socket?\n\n\tping: ()=>\n\t\t@socket.send(new Uint8Array()) if @socket\n\n\tsend: (bytes_to_send)=>\n\t\tif bytes_to_send.length > 0\n\t\t\t@socket.send(bytes_to_send)\n\t\t\tclearInterval(@keep_alive_interval) if @keep_alive_interval\n\t\t\t@keep_alive_interval = setInterval(@ping, 10000)\n","import * as hakuban_js from \"../pkg/hakuban.js\"\nimport hakuban_wasm_base64 from \"../pkg/hakuban_bg.wasm\"\nimport { logger_initialize } from \"./logger.coffee\"\n\nexport initialize = (log_level)->\n\t# wow, this is disgusting\n\twasm_string = atob(hakuban_wasm_base64)\n\twasm_array = new Uint8Array(wasm_string.length)\n\tfor i in [0..wasm_string.length]\n\t\twasm_array[i] = wasm_string.charCodeAt(i) \n\tresult = await hakuban_js.default(wasm_array)\n\tlogger_initialize(log_level)\n\tresult\n\nexport { ObjectObserveContract, ObjectExposeContract, TagObserveContract, TagExposeContract } from \"./contract.coffee\"\nexport { ObjectDescriptor, TagDescriptor } from \"./descriptor.coffee\"\nexport { LocalExchange } from \"./exchange.coffee\"\nexport { ObjectState } from \"./object-state.coffee\"\nexport { WebsocketConnector } from \"./websocket-connector.coffee\"\n\n\n"],"names":["FFI.hakuban_logger_initialize","PointerAlreadyDropped","FFI.hakuban_object_descriptor_json","FFI.hakuban_object_descriptor_tags","FFI.unwrap_pointer","FFI.hakuban_object_descriptor_new","FFI.hakuban_object_descriptor_drop","FFI.hakuban_tag_descriptor_new","FFI.hakuban_tag_descriptor_drop","FFI.hakuban_object_state_drop","FFI.hakuban_object_state_version","FFI.hakuban_object_state_synchronized_ago","FFI.hakuban_object_state_format","FFI.hakuban_object_state_data","FFI.hakuban_object_state_new","FFI.hakuban_object_state_stream_drop","FFI.hakuban_object_state_stream_descriptor","FFI.hakuban_object_state_stream_next","FFI.Future","FFI.hakuban_future_returning_pointer_poll","FFI.hakuban_future_returning_pointer_drop","FFI.unwrap_pointer_or_null","FFI.hakuban_object_state_stream_current","FFI.hakuban_object_state_sink_params_drop","FFI.hakuban_object_state_sink_drop","FFI.hakuban_object_state_sink_descriptor","FFI.hakuban_object_state_sink_push","FFI.hakuban_future_returning_nothing_poll","FFI.hakuban_future_returning_nothing_drop","FFI.hakuban_object_state_sink_next","FFI.hakuban_object_state_sink_current","FFI.hakuban_object_state_sink_desynchronize","FFI.hakuban_object_observe_contract_new","FFI.hakuban_object_observe_contract_drop","FFI.hakuban_object_observe_contract_terminate","FFI.hakuban_object_observe_contract_next","FFI.hakuban_object_observe_contract_ready","FFI.hakuban_object_expose_contract_new","FFI.hakuban_object_expose_contract_drop","FFI.hakuban_object_expose_contract_terminate","FFI.hakuban_object_expose_contract_next","FFI.hakuban_object_expose_contract_ready","FFI.hakuban_tag_observe_contract_new","FFI.hakuban_tag_observe_contract_drop","FFI.hakuban_tag_observe_contract_terminate","FFI.hakuban_tag_observe_contract_next","FFI.hakuban_tag_observe_contract_ready","FFI.hakuban_tag_expose_contract_new","FFI.hakuban_tag_expose_contract_drop","FFI.hakuban_tag_expose_contract_terminate","FFI.hakuban_tag_expose_contract_next","FFI.hakuban_tag_expose_contract_ready","FFI.hakuban_local_exchange_new","FFI.hakuban_local_exchange_drop","FFI.hakuban_remote_exchange_new","FFI.hakuban_remote_exchange_drop","FFI.hakuban_remote_exchange_next_message_to_network","FFI.hakuban_remote_exchange_send_message_from_network","FFI.hakuban_message_take","hakuban_js.default"],"mappings":"AACA,IAAI,IAAI,CAAC;AACT;AACA,MAAM,IAAI,GAAG,IAAI,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAC3C;AACA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;AACxC;AACA,SAAS,SAAS,CAAC,GAAG,EAAE,EAAE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE;AAC7C;AACA,IAAI,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC;AAC5B;AACA,SAAS,UAAU,CAAC,GAAG,EAAE;AACzB,IAAI,IAAI,GAAG,GAAG,EAAE,EAAE,OAAO;AACzB,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;AAC1B,IAAI,SAAS,GAAG,GAAG,CAAC;AACpB,CAAC;AACD;AACA,SAAS,UAAU,CAAC,GAAG,EAAE;AACzB,IAAI,MAAM,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;AAC/B,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC;AACpB,IAAI,OAAO,GAAG,CAAC;AACf,CAAC;AACD;AACA,IAAI,eAAe,GAAG,CAAC,CAAC;AACxB;AACA,IAAI,kBAAkB,GAAG,IAAI,UAAU,EAAE,CAAC;AAC1C;AACA,SAAS,eAAe,GAAG;AAC3B,IAAI,IAAI,kBAAkB,CAAC,UAAU,KAAK,CAAC,EAAE;AAC7C,QAAQ,kBAAkB,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAChE,KAAK;AACL,IAAI,OAAO,kBAAkB,CAAC;AAC9B,CAAC;AACD;AACA,MAAM,iBAAiB,GAAG,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC;AACnD;AACA,MAAM,YAAY,IAAI,OAAO,iBAAiB,CAAC,UAAU,KAAK,UAAU;AACxE,MAAM,UAAU,GAAG,EAAE,IAAI,EAAE;AAC3B,IAAI,OAAO,iBAAiB,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AACnD,CAAC;AACD,MAAM,UAAU,GAAG,EAAE,IAAI,EAAE;AAC3B,IAAI,MAAM,GAAG,GAAG,iBAAiB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC9C,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAClB,IAAI,OAAO;AACX,QAAQ,IAAI,EAAE,GAAG,CAAC,MAAM;AACxB,QAAQ,OAAO,EAAE,GAAG,CAAC,MAAM;AAC3B,KAAK,CAAC;AACN,CAAC,CAAC,CAAC;AACH;AACA,SAAS,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE;AACjD;AACA,IAAI,IAAI,OAAO,KAAK,SAAS,EAAE;AAC/B,QAAQ,MAAM,GAAG,GAAG,iBAAiB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAClD,QAAQ,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACvC,QAAQ,eAAe,EAAE,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACnE,QAAQ,eAAe,GAAG,GAAG,CAAC,MAAM,CAAC;AACrC,QAAQ,OAAO,GAAG,CAAC;AACnB,KAAK;AACL;AACA,IAAI,IAAI,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC;AACzB,IAAI,IAAI,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;AAC1B;AACA,IAAI,MAAM,GAAG,GAAG,eAAe,EAAE,CAAC;AAClC;AACA,IAAI,IAAI,MAAM,GAAG,CAAC,CAAC;AACnB;AACA,IAAI,OAAO,MAAM,GAAG,GAAG,EAAE,MAAM,EAAE,EAAE;AACnC,QAAQ,MAAM,IAAI,GAAG,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;AAC5C,QAAQ,IAAI,IAAI,GAAG,IAAI,EAAE,MAAM;AAC/B,QAAQ,GAAG,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,IAAI,CAAC;AACjC,KAAK;AACL;AACA,IAAI,IAAI,MAAM,KAAK,GAAG,EAAE;AACxB,QAAQ,IAAI,MAAM,KAAK,CAAC,EAAE;AAC1B,YAAY,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AACpC,SAAS;AACT,QAAQ,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,MAAM,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAC/D,QAAQ,MAAM,IAAI,GAAG,eAAe,EAAE,CAAC,QAAQ,CAAC,GAAG,GAAG,MAAM,EAAE,GAAG,GAAG,GAAG,CAAC,CAAC;AACzE,QAAQ,MAAM,GAAG,GAAG,YAAY,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AAC5C;AACA,QAAQ,MAAM,IAAI,GAAG,CAAC,OAAO,CAAC;AAC9B,KAAK;AACL;AACA,IAAI,eAAe,GAAG,MAAM,CAAC;AAC7B,IAAI,OAAO,GAAG,CAAC;AACf,CAAC;AACD;AACA,SAAS,UAAU,CAAC,CAAC,EAAE;AACvB,IAAI,OAAO,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI,CAAC;AACzC,CAAC;AACD;AACA,IAAI,kBAAkB,GAAG,IAAI,UAAU,EAAE,CAAC;AAC1C;AACA,SAAS,eAAe,GAAG;AAC3B,IAAI,IAAI,kBAAkB,CAAC,UAAU,KAAK,CAAC,EAAE;AAC7C,QAAQ,kBAAkB,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAChE,KAAK;AACL,IAAI,OAAO,kBAAkB,CAAC;AAC9B,CAAC;AACD;AACA,MAAM,iBAAiB,GAAG,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AACrF;AACA,iBAAiB,CAAC,MAAM,EAAE,CAAC;AAC3B;AACA,SAAS,kBAAkB,CAAC,GAAG,EAAE,GAAG,EAAE;AACtC,IAAI,OAAO,iBAAiB,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC;AAChF,CAAC;AACD;AACA,SAAS,aAAa,CAAC,GAAG,EAAE;AAC5B,IAAI,IAAI,SAAS,KAAK,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAC9D,IAAI,MAAM,GAAG,GAAG,SAAS,CAAC;AAC1B,IAAI,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;AAC1B;AACA,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;AACpB,IAAI,OAAO,GAAG,CAAC;AACf,CAAC;AACD;AACA,SAAS,WAAW,CAAC,GAAG,EAAE;AAC1B;AACA,IAAI,MAAM,IAAI,GAAG,OAAO,GAAG,CAAC;AAC5B,IAAI,IAAI,IAAI,IAAI,QAAQ,IAAI,IAAI,IAAI,SAAS,IAAI,GAAG,IAAI,IAAI,EAAE;AAC9D,QAAQ,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;AACzB,KAAK;AACL,IAAI,IAAI,IAAI,IAAI,QAAQ,EAAE;AAC1B,QAAQ,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AAC1B,KAAK;AACL,IAAI,IAAI,IAAI,IAAI,QAAQ,EAAE;AAC1B,QAAQ,MAAM,WAAW,GAAG,GAAG,CAAC,WAAW,CAAC;AAC5C,QAAQ,IAAI,WAAW,IAAI,IAAI,EAAE;AACjC,YAAY,OAAO,QAAQ,CAAC;AAC5B,SAAS,MAAM;AACf,YAAY,OAAO,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;AAC5C,SAAS;AACT,KAAK;AACL,IAAI,IAAI,IAAI,IAAI,UAAU,EAAE;AAC5B,QAAQ,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;AAC9B,QAAQ,IAAI,OAAO,IAAI,IAAI,QAAQ,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;AACxD,YAAY,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;AACvC,SAAS,MAAM;AACf,YAAY,OAAO,UAAU,CAAC;AAC9B,SAAS;AACT,KAAK;AACL;AACA,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;AAC5B,QAAQ,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;AAClC,QAAQ,IAAI,KAAK,GAAG,GAAG,CAAC;AACxB,QAAQ,IAAI,MAAM,GAAG,CAAC,EAAE;AACxB,YAAY,KAAK,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACzC,SAAS;AACT,QAAQ,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;AACxC,YAAY,KAAK,IAAI,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAChD,SAAS;AACT,QAAQ,KAAK,IAAI,GAAG,CAAC;AACrB,QAAQ,OAAO,KAAK,CAAC;AACrB,KAAK;AACL;AACA,IAAI,MAAM,cAAc,GAAG,qBAAqB,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC1E,IAAI,IAAI,SAAS,CAAC;AAClB,IAAI,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;AACnC,QAAQ,SAAS,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;AACtC,KAAK,MAAM;AACX;AACA,QAAQ,OAAO,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClC,KAAK;AACL,IAAI,IAAI,SAAS,IAAI,QAAQ,EAAE;AAC/B;AACA;AACA;AACA,QAAQ,IAAI;AACZ,YAAY,OAAO,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;AACzD,SAAS,CAAC,OAAO,CAAC,EAAE;AACpB,YAAY,OAAO,QAAQ,CAAC;AAC5B,SAAS;AACT,KAAK;AACL;AACA,IAAI,IAAI,GAAG,YAAY,KAAK,EAAE;AAC9B,QAAQ,OAAO,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;AAC3D,KAAK;AACL;AACA,IAAI,OAAO,SAAS,CAAC;AACrB,CAAC;AACD;AACA;AACA;AACA;AACA;AACO,SAAS,+BAA+B,CAAC,cAAc,EAAE,UAAU,EAAE;AAC5E,IAAI,MAAM,GAAG,GAAG,IAAI,CAAC,+BAA+B,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;AACjF,IAAI,OAAO,GAAG,CAAC;AACf,CAAC;AACD;AACA;AACA;AACA;AACO,SAAS,gCAAgC,CAAC,2BAA2B,EAAE;AAC9E,IAAI,IAAI,CAAC,gCAAgC,CAAC,2BAA2B,CAAC,CAAC;AACvE,CAAC;AACD;AACA;AACA;AACA;AACO,SAAS,qCAAqC,CAAC,kBAAkB,EAAE;AAC1E,IAAI,IAAI,CAAC,qCAAqC,CAAC,kBAAkB,CAAC,CAAC;AACnE,CAAC;AACD;AACA;AACA;AACA;AACA;AACO,SAAS,gCAAgC,CAAC,kBAAkB,EAAE;AACrE,IAAI,MAAM,GAAG,GAAG,IAAI,CAAC,gCAAgC,CAAC,kBAAkB,CAAC,CAAC;AAC1E,IAAI,OAAO,GAAG,CAAC;AACf,CAAC;AACD;AACA,IAAI,mBAAmB,GAAG,IAAI,WAAW,EAAE,CAAC;AAC5C;AACA,SAAS,gBAAgB,GAAG;AAC5B,IAAI,IAAI,mBAAmB,CAAC,UAAU,KAAK,CAAC,EAAE;AAC9C,QAAQ,mBAAmB,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAClE,KAAK;AACL,IAAI,OAAO,mBAAmB,CAAC;AAC/B,CAAC;AACD;AACA,SAAS,oBAAoB,CAAC,GAAG,EAAE,GAAG,EAAE;AACxC,IAAI,OAAO,gBAAgB,EAAE,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;AAC/D,CAAC;AACD;AACA;AACA;AACA;AACO,SAAS,iCAAiC,CAAC,kBAAkB,EAAE;AACtE,IAAI,IAAI;AACR,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,+BAA+B,CAAC,CAAC,EAAE,CAAC,CAAC;AACjE,QAAQ,IAAI,CAAC,iCAAiC,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;AAC3E,QAAQ,IAAI,EAAE,GAAG,eAAe,EAAE,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AACnD,QAAQ,IAAI,EAAE,GAAG,eAAe,EAAE,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AACnD,QAAQ,IAAI,EAAE,GAAG,oBAAoB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;AACtD,QAAQ,IAAI,CAAC,eAAe,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC;AACzC,QAAQ,OAAO,EAAE,CAAC;AAClB,KAAK,SAAS;AACd,QAAQ,IAAI,CAAC,+BAA+B,CAAC,EAAE,CAAC,CAAC;AACjD,KAAK;AACL,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,gCAAgC,CAAC,cAAc,EAAE,UAAU,EAAE;AAC7E,IAAI,MAAM,GAAG,GAAG,IAAI,CAAC,gCAAgC,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;AAClF,IAAI,OAAO,GAAG,CAAC;AACf,CAAC;AACD;AACA;AACA;AACA;AACO,SAAS,iCAAiC,CAAC,WAAW,EAAE;AAC/D,IAAI,IAAI,CAAC,iCAAiC,CAAC,WAAW,CAAC,CAAC;AACxD,CAAC;AACD;AACA;AACA;AACA;AACO,SAAS,sCAAsC,CAAC,mBAAmB,EAAE;AAC5E,IAAI,IAAI,CAAC,sCAAsC,CAAC,mBAAmB,CAAC,CAAC;AACrE,CAAC;AACD;AACA;AACA;AACA;AACA;AACO,SAAS,iCAAiC,CAAC,mBAAmB,EAAE;AACvE,IAAI,MAAM,GAAG,GAAG,IAAI,CAAC,iCAAiC,CAAC,mBAAmB,CAAC,CAAC;AAC5E,IAAI,OAAO,GAAG,CAAC;AACf,CAAC;AACD;AACA;AACA;AACA;AACA;AACO,SAAS,kCAAkC,CAAC,mBAAmB,EAAE;AACxE,IAAI,IAAI;AACR,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,+BAA+B,CAAC,CAAC,EAAE,CAAC,CAAC;AACjE,QAAQ,IAAI,CAAC,kCAAkC,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;AAC7E,QAAQ,IAAI,EAAE,GAAG,eAAe,EAAE,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AACnD,QAAQ,IAAI,EAAE,GAAG,eAAe,EAAE,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AACnD,QAAQ,IAAI,EAAE,GAAG,oBAAoB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;AACtD,QAAQ,IAAI,CAAC,eAAe,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC;AACzC,QAAQ,OAAO,EAAE,CAAC;AAClB,KAAK,SAAS;AACd,QAAQ,IAAI,CAAC,+BAA+B,CAAC,EAAE,CAAC,CAAC;AACjD,KAAK;AACL,CAAC;AACD;AACA;AACA;AACA;AACA;AACO,SAAS,0BAA0B,CAAC,WAAW,EAAE;AACxD,IAAI,MAAM,IAAI,GAAG,iBAAiB,CAAC,WAAW,EAAE,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;AACjG,IAAI,MAAM,IAAI,GAAG,eAAe,CAAC;AACjC,IAAI,MAAM,GAAG,GAAG,IAAI,CAAC,0BAA0B,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAC5D,IAAI,OAAO,qBAAqB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC7C,CAAC;AACD;AACA;AACA;AACA;AACO,SAAS,2BAA2B,CAAC,kBAAkB,EAAE;AAChE,IAAI,IAAI,CAAC,2BAA2B,CAAC,kBAAkB,CAAC,CAAC;AACzD,CAAC;AAkBD;AACA,SAAS,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE;AACzC,IAAI,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACvC,IAAI,gBAAgB,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC;AACzC,IAAI,eAAe,GAAG,GAAG,CAAC,MAAM,CAAC;AACjC,IAAI,OAAO,GAAG,CAAC;AACf,CAAC;AACD;AACA;AACA;AACA;AACA;AACO,SAAS,6BAA6B,CAAC,WAAW,EAAE,YAAY,EAAE;AACzE,IAAI,MAAM,IAAI,GAAG,iBAAiB,CAAC,WAAW,EAAE,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;AACjG,IAAI,MAAM,IAAI,GAAG,eAAe,CAAC;AACjC,IAAI,MAAM,IAAI,GAAG,kBAAkB,CAAC,YAAY,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;AAC1E,IAAI,MAAM,IAAI,GAAG,eAAe,CAAC;AACjC,IAAI,MAAM,GAAG,GAAG,IAAI,CAAC,6BAA6B,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAC3E,IAAI,OAAO,qBAAqB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC7C,CAAC;AACD;AACA;AACA;AACA;AACO,SAAS,8BAA8B,CAAC,kBAAkB,EAAE;AACnE,IAAI,IAAI,CAAC,8BAA8B,CAAC,kBAAkB,CAAC,CAAC;AAC5D,CAAC;AACD;AACA;AACA;AACA;AACA;AACO,SAAS,8BAA8B,CAAC,kBAAkB,EAAE;AACnE,IAAI,IAAI;AACR,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,+BAA+B,CAAC,CAAC,EAAE,CAAC,CAAC;AACjE,QAAQ,IAAI,CAAC,8BAA8B,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;AACxE,QAAQ,IAAI,EAAE,GAAG,eAAe,EAAE,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AACnD,QAAQ,IAAI,EAAE,GAAG,eAAe,EAAE,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AACnD,QAAQ,OAAO,kBAAkB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;AAC1C,KAAK,SAAS;AACd,QAAQ,IAAI,CAAC,+BAA+B,CAAC,EAAE,CAAC,CAAC;AACjD,QAAQ,IAAI,CAAC,eAAe,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;AACrC,KAAK;AACL,CAAC;AACD;AACA;AACA;AACA;AACA;AACO,SAAS,8BAA8B,CAAC,kBAAkB,EAAE;AACnE,IAAI,IAAI;AACR,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,+BAA+B,CAAC,CAAC,EAAE,CAAC,CAAC;AACjE,QAAQ,IAAI,CAAC,8BAA8B,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;AACxE,QAAQ,IAAI,EAAE,GAAG,eAAe,EAAE,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AACnD,QAAQ,IAAI,EAAE,GAAG,eAAe,EAAE,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AACnD,QAAQ,IAAI,EAAE,GAAG,oBAAoB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;AACtD,QAAQ,IAAI,CAAC,eAAe,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC;AACzC,QAAQ,OAAO,EAAE,CAAC;AAClB,KAAK,SAAS;AACd,QAAQ,IAAI,CAAC,+BAA+B,CAAC,EAAE,CAAC,CAAC;AACjD,KAAK;AACL,CAAC;AACD;AACA;AACA;AACA;AACA;AACO,SAAS,yBAAyB,CAAC,iBAAiB,EAAE;AAC7D,IAAI,MAAM,IAAI,GAAG,iBAAiB,CAAC,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;AACvG,IAAI,MAAM,IAAI,GAAG,eAAe,CAAC;AACjC,IAAI,MAAM,GAAG,GAAG,IAAI,CAAC,yBAAyB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAC3D,IAAI,OAAO,GAAG,KAAK,CAAC,CAAC;AACrB,CAAC;AACD;AACA,IAAI,sBAAsB,GAAG,IAAI,cAAc,EAAE,CAAC;AAClD;AACA,SAAS,mBAAmB,GAAG;AAC/B,IAAI,IAAI,sBAAsB,CAAC,UAAU,KAAK,CAAC,EAAE;AACjD,QAAQ,sBAAsB,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AACxE,KAAK;AACL,IAAI,OAAO,sBAAsB,CAAC;AAClC,CAAC;AACD;AACA,SAAS,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE;AACzC,IAAI,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACvC,IAAI,mBAAmB,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC;AAC5C,IAAI,eAAe,GAAG,GAAG,CAAC,MAAM,CAAC;AACjC,IAAI,OAAO,GAAG,CAAC;AACf,CAAC;AACD;AACA,SAAS,uBAAuB,CAAC,KAAK,EAAE,MAAM,EAAE;AAChD,IAAI,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACzC,IAAI,MAAM,GAAG,GAAG,gBAAgB,EAAE,CAAC;AACnC,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC3C,QAAQ,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACnD,KAAK;AACL,IAAI,eAAe,GAAG,KAAK,CAAC,MAAM,CAAC;AACnC,IAAI,OAAO,GAAG,CAAC;AACf,CAAC;AACD;AACA,SAAS,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE;AACxC,IAAI,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACvC,IAAI,eAAe,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC;AACxC,IAAI,eAAe,GAAG,GAAG,CAAC,MAAM,CAAC;AACjC,IAAI,OAAO,GAAG,CAAC;AACf,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,wBAAwB,CAAC,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,mBAAmB,EAAE;AAC9F,IAAI,MAAM,IAAI,GAAG,kBAAkB,CAAC,OAAO,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;AACrE,IAAI,MAAM,IAAI,GAAG,eAAe,CAAC;AACjC,IAAI,MAAM,IAAI,GAAG,uBAAuB,CAAC,eAAe,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;AAClF,IAAI,MAAM,IAAI,GAAG,eAAe,CAAC;AACjC,IAAI,MAAM,IAAI,GAAG,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;AACjE,IAAI,MAAM,IAAI,GAAG,eAAe,CAAC;AACjC,IAAI,MAAM,GAAG,GAAG,IAAI,CAAC,wBAAwB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,mBAAmB,CAAC,CAAC;AACvG,IAAI,OAAO,qBAAqB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC7C,CAAC;AACD;AACA;AACA;AACA;AACO,SAAS,yBAAyB,CAAC,oBAAoB,EAAE;AAChE,IAAI,IAAI,CAAC,yBAAyB,CAAC,oBAAoB,CAAC,CAAC;AACzD,CAAC;AACD;AACA,IAAI,qBAAqB,GAAG,IAAI,aAAa,EAAE,CAAC;AAChD;AACA,SAAS,kBAAkB,GAAG;AAC9B,IAAI,IAAI,qBAAqB,CAAC,UAAU,KAAK,CAAC,EAAE;AAChD,QAAQ,qBAAqB,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AACtE,KAAK;AACL,IAAI,OAAO,qBAAqB,CAAC;AACjC,CAAC;AACD;AACA,SAAS,oBAAoB,CAAC,GAAG,EAAE,GAAG,EAAE;AACxC,IAAI,OAAO,kBAAkB,EAAE,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;AACjE,CAAC;AACD;AACA;AACA;AACA;AACO,SAAS,4BAA4B,CAAC,oBAAoB,EAAE;AACnE,IAAI,IAAI;AACR,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,+BAA+B,CAAC,CAAC,EAAE,CAAC,CAAC;AACjE,QAAQ,IAAI,CAAC,4BAA4B,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;AACxE,QAAQ,IAAI,EAAE,GAAG,eAAe,EAAE,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AACnD,QAAQ,IAAI,EAAE,GAAG,eAAe,EAAE,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AACnD,QAAQ,IAAI,EAAE,GAAG,oBAAoB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;AACtD,QAAQ,IAAI,CAAC,eAAe,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC;AACzC,QAAQ,OAAO,EAAE,CAAC;AAClB,KAAK,SAAS;AACd,QAAQ,IAAI,CAAC,+BAA+B,CAAC,EAAE,CAAC,CAAC;AACjD,KAAK;AACL,CAAC;AACD;AACA;AACA;AACA;AACA;AACO,SAAS,qCAAqC,CAAC,oBAAoB,EAAE;AAC5E,IAAI,MAAM,GAAG,GAAG,IAAI,CAAC,qCAAqC,CAAC,oBAAoB,CAAC,CAAC;AACjF,IAAI,OAAO,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;AACnC,CAAC;AACD;AACA,SAAS,wBAAwB,CAAC,GAAG,EAAE,GAAG,EAAE;AAC5C,IAAI,MAAM,GAAG,GAAG,gBAAgB,EAAE,CAAC;AACnC,IAAI,MAAM,KAAK,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;AACvD,IAAI,MAAM,MAAM,GAAG,EAAE,CAAC;AACtB,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC3C,QAAQ,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1C,KAAK;AACL,IAAI,OAAO,MAAM,CAAC;AAClB,CAAC;AACD;AACA;AACA;AACA;AACO,SAAS,2BAA2B,CAAC,oBAAoB,EAAE;AAClE,IAAI,IAAI;AACR,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,+BAA+B,CAAC,CAAC,EAAE,CAAC,CAAC;AACjE,QAAQ,IAAI,CAAC,2BAA2B,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;AACvE,QAAQ,IAAI,EAAE,GAAG,eAAe,EAAE,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AACnD,QAAQ,IAAI,EAAE,GAAG,eAAe,EAAE,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AACnD,QAAQ,IAAI,EAAE,GAAG,wBAAwB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;AAC1D,QAAQ,IAAI,CAAC,eAAe,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC;AACzC,QAAQ,OAAO,EAAE,CAAC;AAClB,KAAK,SAAS;AACd,QAAQ,IAAI,CAAC,+BAA+B,CAAC,EAAE,CAAC,CAAC;AACjD,KAAK;AACL,CAAC;AACD;AACA,SAAS,mBAAmB,CAAC,GAAG,EAAE,GAAG,EAAE;AACvC,IAAI,OAAO,eAAe,EAAE,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;AAC9D,CAAC;AACD;AACA;AACA;AACA;AACO,SAAS,yBAAyB,CAAC,oBAAoB,EAAE;AAChE,IAAI,IAAI;AACR,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,+BAA+B,CAAC,CAAC,EAAE,CAAC,CAAC;AACjE,QAAQ,IAAI,CAAC,yBAAyB,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;AACrE,QAAQ,IAAI,EAAE,GAAG,eAAe,EAAE,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AACnD,QAAQ,IAAI,EAAE,GAAG,eAAe,EAAE,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AACnD,QAAQ,IAAI,EAAE,GAAG,mBAAmB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;AACrD,QAAQ,IAAI,CAAC,eAAe,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC;AACzC,QAAQ,OAAO,EAAE,CAAC;AAClB,KAAK,SAAS;AACd,QAAQ,IAAI,CAAC,+BAA+B,CAAC,EAAE,CAAC,CAAC;AACjD,KAAK;AACL,CAAC;AACD;AACA;AACA;AACA;AACO,SAAS,gCAAgC,CAAC,2BAA2B,EAAE;AAC9E,IAAI,IAAI,CAAC,gCAAgC,CAAC,2BAA2B,CAAC,CAAC;AACvE,CAAC;AACD;AACA;AACA;AACA;AACA;AACO,SAAS,gCAAgC,CAAC,2BAA2B,EAAE;AAC9E,IAAI,MAAM,GAAG,GAAG,IAAI,CAAC,gCAAgC,CAAC,2BAA2B,CAAC,CAAC;AACnF,IAAI,OAAO,GAAG,CAAC;AACf,CAAC;AACD;AACA;AACA;AACA;AACA;AACO,SAAS,mCAAmC,CAAC,2BAA2B,EAAE;AACjF,IAAI,MAAM,GAAG,GAAG,IAAI,CAAC,mCAAmC,CAAC,2BAA2B,CAAC,CAAC;AACtF,IAAI,OAAO,qBAAqB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC7C,CAAC;AACD;AACA;AACA;AACA;AACA;AACO,SAAS,sCAAsC,CAAC,2BAA2B,EAAE;AACpF,IAAI,MAAM,GAAG,GAAG,IAAI,CAAC,sCAAsC,CAAC,2BAA2B,CAAC,CAAC;AACzF,IAAI,OAAO,GAAG,CAAC;AACf,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,2BAA2B,CAAC,sBAAsB,EAAE,QAAQ,EAAE,YAAY,EAAE,YAAY,EAAE;AAC1G,IAAI,MAAM,GAAG,GAAG,IAAI,CAAC,2BAA2B,CAAC,sBAAsB,EAAE,QAAQ,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC;AAC/G,IAAI,OAAO,GAAG,CAAC;AACf,CAAC;AACD;AACA;AACA;AACA;AACO,SAAS,4BAA4B,CAAC,uBAAuB,EAAE;AACtE,IAAI,IAAI,CAAC,4BAA4B,CAAC,uBAAuB,CAAC,CAAC;AAC/D,CAAC;AACD;AACA;AACA;AACA;AACA;AACO,SAAS,+CAA+C,CAAC,uBAAuB,EAAE;AACzF,IAAI,MAAM,GAAG,GAAG,IAAI,CAAC,+CAA+C,CAAC,uBAAuB,CAAC,CAAC;AAC9F,IAAI,OAAO,GAAG,CAAC;AACf,CAAC;AACD;AACA;AACA;AACA;AACA;AACO,SAAS,oBAAoB,CAAC,eAAe,EAAE;AACtD,IAAI,IAAI;AACR,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,+BAA+B,CAAC,CAAC,EAAE,CAAC,CAAC;AACjE,QAAQ,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;AAC3D,QAAQ,IAAI,EAAE,GAAG,eAAe,EAAE,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AACnD,QAAQ,IAAI,EAAE,GAAG,eAAe,EAAE,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AACnD,QAAQ,IAAI,EAAE,GAAG,mBAAmB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;AACrD,QAAQ,IAAI,CAAC,eAAe,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC;AACzC,QAAQ,OAAO,EAAE,CAAC;AAClB,KAAK,SAAS;AACd,QAAQ,IAAI,CAAC,+BAA+B,CAAC,EAAE,CAAC,CAAC;AACjD,KAAK;AACL,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,iDAAiD,CAAC,uBAAuB,EAAE,YAAY,EAAE;AACzG,IAAI,MAAM,IAAI,GAAG,iBAAiB,CAAC,YAAY,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;AACzE,IAAI,MAAM,IAAI,GAAG,eAAe,CAAC;AACjC,IAAI,MAAM,GAAG,GAAG,IAAI,CAAC,iDAAiD,CAAC,uBAAuB,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAC5G,IAAI,OAAO,GAAG,CAAC;AACf,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,qCAAqC,CAAC,sBAAsB,EAAE,cAAc,EAAE,QAAQ,EAAE;AACxG,IAAI,MAAM,GAAG,GAAG,IAAI,CAAC,qCAAqC,CAAC,sBAAsB,EAAE,cAAc,EAAE,QAAQ,CAAC,CAAC;AAC7G,IAAI,OAAO,qBAAqB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC7C,CAAC;AACD;AACA;AACA;AACA;AACO,SAAS,qCAAqC,CAAC,MAAM,EAAE;AAC9D,IAAI,IAAI,CAAC,qCAAqC,CAAC,MAAM,CAAC,CAAC;AACvD,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,qCAAqC,CAAC,sBAAsB,EAAE,cAAc,EAAE,QAAQ,EAAE;AACxG,IAAI,MAAM,GAAG,GAAG,IAAI,CAAC,qCAAqC,CAAC,sBAAsB,EAAE,cAAc,EAAE,QAAQ,CAAC,CAAC;AAC7G,IAAI,OAAO,qBAAqB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC7C,CAAC;AACD;AACA;AACA;AACA;AACO,SAAS,qCAAqC,CAAC,MAAM,EAAE;AAC9D,IAAI,IAAI,CAAC,qCAAqC,CAAC,MAAM,CAAC,CAAC;AACvD,CAAC;AACD;AACA;AACA;AACA;AACA;AACO,SAAS,oCAAoC,CAAC,yBAAyB,EAAE;AAChF,IAAI,MAAM,GAAG,GAAG,IAAI,CAAC,oCAAoC,CAAC,yBAAyB,CAAC,CAAC;AACrF,IAAI,OAAO,GAAG,CAAC;AACf,CAAC;AACD;AACA;AACA;AACA;AACO,SAAS,8BAA8B,CAAC,yBAAyB,EAAE;AAC1E,IAAI,IAAI,CAAC,8BAA8B,CAAC,yBAAyB,CAAC,CAAC;AACnE,CAAC;AACD;AACA;AACA;AACA;AACA;AACO,SAAS,8BAA8B,CAAC,yBAAyB,EAAE;AAC1E,IAAI,MAAM,GAAG,GAAG,IAAI,CAAC,8BAA8B,CAAC,yBAAyB,CAAC,CAAC;AAC/E,IAAI,OAAO,GAAG,CAAC;AACf,CAAC;AACD;AACA;AACA;AACA;AACA;AACO,SAAS,iCAAiC,CAAC,yBAAyB,EAAE;AAC7E,IAAI,MAAM,GAAG,GAAG,IAAI,CAAC,iCAAiC,CAAC,yBAAyB,CAAC,CAAC;AAClF,IAAI,OAAO,qBAAqB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC7C,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,8BAA8B,CAAC,yBAAyB,EAAE,oBAAoB,EAAE;AAChG,IAAI,MAAM,GAAG,GAAG,IAAI,CAAC,8BAA8B,CAAC,yBAAyB,EAAE,oBAAoB,CAAC,CAAC;AACrG,IAAI,OAAO,GAAG,CAAC;AACf,CAAC;AACD;AACA;AACA;AACA;AACO,SAAS,qCAAqC,CAAC,gCAAgC,EAAE;AACxF,IAAI,IAAI,CAAC,qCAAqC,CAAC,gCAAgC,CAAC,CAAC;AACjF,CAAC;AACD;AACA;AACA;AACA;AACO,SAAS,uCAAuC,CAAC,yBAAyB,EAAE;AACnF,IAAI,IAAI,CAAC,uCAAuC,CAAC,yBAAyB,CAAC,CAAC;AAC5E,CAAC;AACD;AACA;AACA;AACA;AACA;AACO,SAAS,0BAA0B,CAAC,QAAQ,EAAE;AACrD,IAAI,MAAM,IAAI,GAAG,iBAAiB,CAAC,QAAQ,EAAE,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;AAC9F,IAAI,MAAM,IAAI,GAAG,eAAe,CAAC;AACjC,IAAI,MAAM,GAAG,GAAG,IAAI,CAAC,0BAA0B,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAC5D,IAAI,OAAO,qBAAqB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC7C,CAAC;AACD;AACA;AACA;AACA;AACO,SAAS,2BAA2B,CAAC,cAAc,EAAE;AAC5D,IAAI,IAAI,CAAC,2BAA2B,CAAC,cAAc,CAAC,CAAC;AACrD,CAAC;AACD;AACA,SAAS,oBAAoB,CAAC,GAAG,EAAE,GAAG,EAAE;AACxC,IAAI,OAAO,mBAAmB,EAAE,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;AAClE,CAAC;AACD;AACA;AACA;AACA;AACO,SAAS,+BAA+B,CAAC,cAAc,EAAE;AAChE,IAAI,IAAI;AACR,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,+BAA+B,CAAC,CAAC,EAAE,CAAC,CAAC;AACjE,QAAQ,IAAI,CAAC,+BAA+B,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;AACrE,QAAQ,IAAI,EAAE,GAAG,eAAe,EAAE,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AACnD,QAAQ,IAAI,EAAE,GAAG,eAAe,EAAE,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AACnD,QAAQ,IAAI,EAAE,GAAG,oBAAoB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;AACtD,QAAQ,IAAI,CAAC,eAAe,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC;AACzC,QAAQ,OAAO,EAAE,CAAC;AAClB,KAAK,SAAS;AACd,QAAQ,IAAI,CAAC,+BAA+B,CAAC,EAAE,CAAC,CAAC;AACjD,KAAK;AACL,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,kCAAkC,CAAC,cAAc,EAAE,UAAU,EAAE;AAC/E,IAAI,MAAM,GAAG,GAAG,IAAI,CAAC,kCAAkC,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;AACpF,IAAI,OAAO,GAAG,CAAC;AACf,CAAC;AACD;AACA;AACA;AACA;AACO,SAAS,mCAAmC,CAAC,UAAU,EAAE;AAChE,IAAI,IAAI,CAAC,mCAAmC,CAAC,UAAU,CAAC,CAAC;AACzD,CAAC;AACD;AACA;AACA;AACA;AACO,SAAS,wCAAwC,CAAC,qBAAqB,EAAE;AAChF,IAAI,IAAI,CAAC,wCAAwC,CAAC,qBAAqB,CAAC,CAAC;AACzE,CAAC;AACD;AACA;AACA;AACA;AACA;AACO,SAAS,mCAAmC,CAAC,qBAAqB,EAAE;AAC3E,IAAI,MAAM,GAAG,GAAG,IAAI,CAAC,mCAAmC,CAAC,qBAAqB,CAAC,CAAC;AAChF,IAAI,OAAO,GAAG,CAAC;AACf,CAAC;AACD;AACA;AACA;AACA;AACA;AACO,SAAS,oCAAoC,CAAC,qBAAqB,EAAE;AAC5E,IAAI,MAAM,GAAG,GAAG,IAAI,CAAC,oCAAoC,CAAC,qBAAqB,CAAC,CAAC;AACjF,IAAI,OAAO,qBAAqB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC7C,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,mCAAmC,CAAC,cAAc,EAAE,UAAU,EAAE;AAChF,IAAI,MAAM,GAAG,GAAG,IAAI,CAAC,mCAAmC,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;AACrF,IAAI,OAAO,GAAG,CAAC;AACf,CAAC;AACD;AACA;AACA;AACA;AACO,SAAS,oCAAoC,CAAC,UAAU,EAAE;AACjE,IAAI,IAAI,CAAC,oCAAoC,CAAC,UAAU,CAAC,CAAC;AAC1D,CAAC;AACD;AACA;AACA;AACA;AACO,SAAS,yCAAyC,CAAC,sBAAsB,EAAE;AAClF,IAAI,IAAI,CAAC,yCAAyC,CAAC,sBAAsB,CAAC,CAAC;AAC3E,CAAC;AACD;AACA;AACA;AACA;AACA;AACO,SAAS,oCAAoC,CAAC,sBAAsB,EAAE;AAC7E,IAAI,MAAM,GAAG,GAAG,IAAI,CAAC,oCAAoC,CAAC,sBAAsB,CAAC,CAAC;AAClF,IAAI,OAAO,GAAG,CAAC;AACf,CAAC;AACD;AACA;AACA;AACA;AACA;AACO,SAAS,qCAAqC,CAAC,sBAAsB,EAAE;AAC9E,IAAI,MAAM,GAAG,GAAG,IAAI,CAAC,qCAAqC,CAAC,sBAAsB,CAAC,CAAC;AACnF,IAAI,OAAO,qBAAqB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC7C,CAAC;AACD;AACA,SAAS,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE;AAC9B,IAAI,IAAI;AACR,QAAQ,OAAO,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACnC,KAAK,CAAC,OAAO,CAAC,EAAE;AAChB,QAAQ,IAAI,CAAC,oBAAoB,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;AACpD,KAAK;AACL,CAAC;AACD;AACA;AACgC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,cAAc,GAAG,EAAE;AACxS;AACA;AACO,MAAM,qBAAqB,CAAC;AACnC;AACA,IAAI,OAAO,MAAM,CAAC,GAAG,EAAE;AACvB,QAAQ,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC;AACnE,QAAQ,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC;AACtB;AACA,QAAQ,OAAO,GAAG,CAAC;AACnB,KAAK;AACL;AACA,IAAI,kBAAkB,GAAG;AACzB,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;AAC7B,QAAQ,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;AACrB;AACA,QAAQ,OAAO,GAAG,CAAC;AACnB,KAAK;AACL;AACA,IAAI,IAAI,GAAG;AACX,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;AAC9C,QAAQ,IAAI,CAAC,gCAAgC,CAAC,GAAG,CAAC,CAAC;AACnD,KAAK;AACL;AACA;AACA;AACA,IAAI,IAAI,MAAM,GAAG;AACjB,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,sCAAsC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC1E,QAAQ,OAAO,GAAG,KAAK,CAAC,CAAC;AACzB,KAAK;AACL;AACA;AACA;AACA,IAAI,IAAI,MAAM,CAAC,IAAI,EAAE;AACrB,QAAQ,IAAI,CAAC,sCAAsC,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AACpE,KAAK;AACL,CAAC;AACD;AACA;AACO,MAAM,qBAAqB,CAAC;AACnC;AACA,IAAI,OAAO,MAAM,CAAC,GAAG,EAAE;AACvB,QAAQ,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC;AACnE,QAAQ,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC;AACtB;AACA,QAAQ,OAAO,GAAG,CAAC;AACnB,KAAK;AACL;AACA,IAAI,kBAAkB,GAAG;AACzB,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;AAC7B,QAAQ,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;AACrB;AACA,QAAQ,OAAO,GAAG,CAAC;AACnB,KAAK;AACL;AACA,IAAI,IAAI,GAAG;AACX,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;AAC9C,QAAQ,IAAI,CAAC,gCAAgC,CAAC,GAAG,CAAC,CAAC;AACnD,KAAK;AACL;AACA;AACA;AACA,IAAI,IAAI,MAAM,GAAG;AACjB,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,sCAAsC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC1E,QAAQ,OAAO,GAAG,KAAK,CAAC,CAAC;AACzB,KAAK;AACL;AACA;AACA;AACA,IAAI,IAAI,MAAM,CAAC,IAAI,EAAE;AACrB,QAAQ,IAAI,CAAC,sCAAsC,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AACpE,KAAK;AACL;AACA;AACA;AACA,IAAI,IAAI,KAAK,GAAG;AAChB,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,qCAAqC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzE,QAAQ,OAAO,GAAG,CAAC;AACnB,KAAK;AACL;AACA;AACA;AACA,IAAI,IAAI,KAAK,CAAC,IAAI,EAAE;AACpB,QAAQ,IAAI,CAAC,qCAAqC,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AACnE,KAAK;AACL,CAAC;AACD;AACA,eAAe,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE;AACrC,IAAI,IAAI,OAAO,QAAQ,KAAK,UAAU,IAAI,MAAM,YAAY,QAAQ,EAAE;AACtE,QAAQ,IAAI,OAAO,WAAW,CAAC,oBAAoB,KAAK,UAAU,EAAE;AACpE,YAAY,IAAI;AAChB,gBAAgB,OAAO,MAAM,WAAW,CAAC,oBAAoB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAC/E;AACA,aAAa,CAAC,OAAO,CAAC,EAAE;AACxB,gBAAgB,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,kBAAkB,EAAE;AAC9E,oBAAoB,OAAO,CAAC,IAAI,CAAC,mMAAmM,EAAE,CAAC,CAAC,CAAC;AACzO;AACA,iBAAiB,MAAM;AACvB,oBAAoB,MAAM,CAAC,CAAC;AAC5B,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT;AACA,QAAQ,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,WAAW,EAAE,CAAC;AACjD,QAAQ,OAAO,MAAM,WAAW,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AAC7D;AACA,KAAK,MAAM;AACX,QAAQ,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AACxE;AACA,QAAQ,IAAI,QAAQ,YAAY,WAAW,CAAC,QAAQ,EAAE;AACtD,YAAY,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;AACxC;AACA,SAAS,MAAM;AACf,YAAY,OAAO,QAAQ,CAAC;AAC5B,SAAS;AACT,KAAK;AACL,CAAC;AACD;AACA,SAAS,UAAU,GAAG;AACtB,IAAI,MAAM,OAAO,GAAG,EAAE,CAAC;AACvB,IAAI,OAAO,CAAC,GAAG,GAAG,EAAE,CAAC;AACrB,IAAI,OAAO,CAAC,GAAG,CAAC,0BAA0B,GAAG,SAAS,IAAI,EAAE;AAC5D,QAAQ,UAAU,CAAC,IAAI,CAAC,CAAC;AACzB,KAAK,CAAC;AACN,IAAI,OAAO,CAAC,GAAG,CAAC,qBAAqB,GAAG,SAAS,IAAI,EAAE,IAAI,EAAE;AAC7D,QAAQ,MAAM,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;AACpC,QAAQ,MAAM,GAAG,GAAG,OAAO,GAAG,CAAC,KAAK,QAAQ,GAAG,GAAG,GAAG,SAAS,CAAC;AAC/D,QAAQ,IAAI,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,iBAAiB,CAAC,GAAG,EAAE,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;AACjH,QAAQ,IAAI,IAAI,GAAG,eAAe,CAAC;AACnC,QAAQ,eAAe,EAAE,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;AAC/C,QAAQ,eAAe,EAAE,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;AAC/C,KAAK,CAAC;AACN,IAAI,OAAO,CAAC,GAAG,CAAC,qBAAqB,GAAG,SAAS,IAAI,EAAE,IAAI,EAAE;AAC7D,QAAQ,MAAM,GAAG,GAAG,kBAAkB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACnD,QAAQ,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC;AAClC,KAAK,CAAC;AACN,IAAI,OAAO,CAAC,GAAG,CAAC,0BAA0B,GAAG,SAAS,IAAI,EAAE;AAC5D,QAAQ,MAAM,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC;AAC1C,QAAQ,OAAO,GAAG,CAAC;AACnB,KAAK,CAAC;AACN,IAAI,OAAO,CAAC,GAAG,CAAC,4BAA4B,GAAG,SAAS,IAAI,EAAE;AAC9D,QAAQ,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;AACvC,KAAK,CAAC;AACN,IAAI,OAAO,CAAC,GAAG,CAAC,4BAA4B,GAAG,SAAS,IAAI,EAAE;AAC9D,QAAQ,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;AACvC,KAAK,CAAC;AACN,IAAI,OAAO,CAAC,GAAG,CAAC,2BAA2B,GAAG,SAAS,IAAI,EAAE;AAC7D,QAAQ,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;AACtC,KAAK,CAAC;AACN,IAAI,OAAO,CAAC,GAAG,CAAC,0BAA0B,GAAG,SAAS,IAAI,EAAE;AAC5D,QAAQ,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;AACrC,KAAK,CAAC;AACN,IAAI,OAAO,CAAC,GAAG,CAAC,2BAA2B,GAAG,SAAS,IAAI,EAAE;AAC7D,QAAQ,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;AACtC,KAAK,CAAC;AACN,IAAI,OAAO,CAAC,GAAG,CAAC,gCAAgC,GAAG,SAAS,IAAI,EAAE,IAAI,EAAE;AACxE,QAAQ,MAAM,GAAG,GAAG,IAAI,QAAQ,CAAC,kBAAkB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;AACjE,QAAQ,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC;AAClC,KAAK,CAAC;AACN,IAAI,OAAO,CAAC,GAAG,CAAC,0BAA0B,GAAG,WAAW,EAAE,OAAO,WAAW,CAAC,UAAU,IAAI,EAAE,IAAI,EAAE;AACnG,QAAQ,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;AAClE,QAAQ,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC;AAClC,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC;AACpB,IAAI,OAAO,CAAC,GAAG,CAAC,2BAA2B,GAAG,WAAW,EAAE,OAAO,WAAW,CAAC,UAAU,IAAI,EAAE,IAAI,EAAE;AACpG,QAAQ,MAAM,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;AAC1D,QAAQ,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC;AAClC,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC;AACpB,IAAI,OAAO,CAAC,GAAG,CAAC,2BAA2B,GAAG,WAAW,EAAE,OAAO,WAAW,CAAC,YAAY;AAC1F,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC;AAC9B,QAAQ,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC;AAClC,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC;AACpB,IAAI,OAAO,CAAC,GAAG,CAAC,6BAA6B,GAAG,WAAW,EAAE,OAAO,WAAW,CAAC,YAAY;AAC5F,QAAQ,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC;AAClC,QAAQ,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC;AAClC,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC;AACpB,IAAI,OAAO,CAAC,GAAG,CAAC,iCAAiC,GAAG,WAAW,EAAE,OAAO,WAAW,CAAC,YAAY;AAChG,QAAQ,MAAM,GAAG,GAAG,UAAU,CAAC,UAAU,CAAC;AAC1C,QAAQ,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC;AAClC,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC;AACpB,IAAI,OAAO,CAAC,GAAG,CAAC,6BAA6B,GAAG,WAAW,EAAE,OAAO,WAAW,CAAC,YAAY;AAC5F,QAAQ,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC;AAClC,QAAQ,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC;AAClC,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC;AACpB,IAAI,OAAO,CAAC,GAAG,CAAC,uBAAuB,GAAG,SAAS,IAAI,EAAE;AACzD,QAAQ,MAAM,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,SAAS,CAAC;AAClD,QAAQ,OAAO,GAAG,CAAC;AACnB,KAAK,CAAC;AACN,IAAI,OAAO,CAAC,GAAG,CAAC,2BAA2B,GAAG,SAAS,IAAI,EAAE;AAC7D,QAAQ,MAAM,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;AACpC,QAAQ,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC;AAClC,KAAK,CAAC;AACN,IAAI,OAAO,CAAC,GAAG,CAAC,0BAA0B,GAAG,WAAW;AACxD,QAAQ,MAAM,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC;AAChC,QAAQ,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC;AAClC,KAAK,CAAC;AACN,IAAI,OAAO,CAAC,GAAG,CAAC,4BAA4B,GAAG,SAAS,IAAI,EAAE,IAAI,EAAE;AACpE,QAAQ,MAAM,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC;AAC1C,QAAQ,MAAM,IAAI,GAAG,iBAAiB,CAAC,GAAG,EAAE,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;AAC7F,QAAQ,MAAM,IAAI,GAAG,eAAe,CAAC;AACrC,QAAQ,eAAe,EAAE,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;AAC/C,QAAQ,eAAe,EAAE,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;AAC/C,KAAK,CAAC;AACN,IAAI,OAAO,CAAC,GAAG,CAAC,4BAA4B,GAAG,SAAS,IAAI,EAAE,IAAI,EAAE;AACpE,QAAQ,IAAI;AACZ,YAAY,OAAO,CAAC,KAAK,CAAC,kBAAkB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;AAC1D,SAAS,SAAS;AAClB,YAAY,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAC7C,SAAS;AACT,KAAK,CAAC;AACN,IAAI,OAAO,CAAC,GAAG,CAAC,uBAAuB,GAAG,SAAS,IAAI,EAAE,IAAI,EAAE;AAC/D,QAAQ,MAAM,GAAG,GAAG,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;AACjD,QAAQ,MAAM,IAAI,GAAG,iBAAiB,CAAC,GAAG,EAAE,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;AAC7F,QAAQ,MAAM,IAAI,GAAG,eAAe,CAAC;AACrC,QAAQ,eAAe,EAAE,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;AAC/C,QAAQ,eAAe,EAAE,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;AAC/C,KAAK,CAAC;AACN,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,GAAG,SAAS,IAAI,EAAE,IAAI,EAAE;AACxD,QAAQ,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;AACxD,KAAK,CAAC;AACN;AACA,IAAI,OAAO,OAAO,CAAC;AACnB,CAAC;AAKD;AACA,SAAS,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE;AACxC,IAAI,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC;AAC5B,IAAI,IAAI,CAAC,sBAAsB,GAAG,MAAM,CAAC;AACzC,IAAI,qBAAqB,GAAG,IAAI,aAAa,EAAE,CAAC;AAChD,IAAI,sBAAsB,GAAG,IAAI,cAAc,EAAE,CAAC;AAClD,IAAI,kBAAkB,GAAG,IAAI,UAAU,EAAE,CAAC;AAC1C,IAAI,mBAAmB,GAAG,IAAI,WAAW,EAAE,CAAC;AAC5C,IAAI,kBAAkB,GAAG,IAAI,UAAU,EAAE,CAAC;AAC1C;AACA;AACA,IAAI,OAAO,IAAI,CAAC;AAChB,CAAC;AAeD;AACA,eAAe,IAAI,CAAC,KAAK,EAAE;AAC3B,IAAI,IAAI,OAAO,KAAK,KAAK,WAAW,EAAE;AACtC,QAAQ,KAAK,GAAG,IAAI,GAAG,CAAC,iBAAiB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC5D,KAAK;AACL,IAAI,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;AACjC;AACA,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,KAAK,OAAO,OAAO,KAAK,UAAU,IAAI,KAAK,YAAY,OAAO,CAAC,KAAK,OAAO,GAAG,KAAK,UAAU,IAAI,KAAK,YAAY,GAAG,CAAC,EAAE;AACzJ,QAAQ,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;AAC7B,KAAK;AAGL;AACA,IAAI,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,KAAK,EAAE,OAAO,CAAC,CAAC;AAClE;AACA,IAAI,OAAO,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AAC1C;;;;AC3mCA,IAAO,cAAA,GAAiB,SAAC,MAAD,EAAA;AACvB,EAAA,IAAG,MAAM,CAAC,MAAP,KAAiB,CAApB,EAAA;AACC,IAAA,OAAA,MAAM,CAAC,KADR,CAAA;GAAA,MAAA;AAGC,IAAA,MAAM,4BAAA,GAA6B,MAAM,CAAC,MAH3C,CAAA;;AADuB,CAAA,CAAA;;AAMxB,IAAO,sBAAA,GAAyB,SAAC,MAAD,EAAA;AAC/B,EAAA,IAAG,MAAM,CAAC,MAAP,KAAiB,CAApB,EAAA;AACC,IAAA,OAAA,MAAM,CAAC,KADR,CAAA;AAAA,GAAA,MAEK,IAAG,MAAM,CAAC,MAAP,KAAiB,CAApB,EAAA;WACJ,IADI,CAAA;GAAA,MAAA;AAGJ,IAAA,MAAM,4BAAA,GAA6B,MAAM,CAAC,MAHtC,CAAA;;AAH0B,CAAA,CAAA;;AAShC,IAAa,MAAN,GAAA,MAAA,MAAA,CAAA;AAEN,EAAA,WAAa,CAAA,cAAA,EAAA,YAAA,EAAA,aAAA,EAAA,aAAA,UAAA,EAAA;AAAC,IAAA,IAAC,CAAA,cAAA,GAAA,cAAA,CAAA;AAAgB,IAAA,IAAC,CAAA,YAAA,GAAA,YAAA,CAAA;AAAc,IAAA,IAAC,CAAA,aAAA,GAAA,aAAA,CAAA;AAAe,IAAA,IAAC,CAAA,aAAA,GAAA,aAAA,CAAA;AAAe,IAAA,IAAC,CAAA,QAAA,GAAA,QAAA,CAAA;AAAlE,GAAA;;AAEG,EAAA,MAAhB,cAAgB,CAAC,OAAQ,GAAA,IAAT,EAAA;AACjB,IAAA,IAAA,mCAAA,EAAA,QAAA,EAAA,MAAA,EAAA,SAAA,CAAA;AAAE,IAAA,IAAA;AACC,MAAA,mCAAA,GAAsC,IAAI,OAAJ,CAAY,CAAC,0BAAD,KAAA;eACjD,IAAC,CAAA,OAAD,GAAW,IAAC,CAAA,YAAY,CAAC,SAAd,CAAwB,0BAAxB,CAAA,CAAA;OAD0B,CAAA,CAAA;AAEtC,MAAA,OAAM,IAAN,EAAA;AACC,QAAA,QAAA,GAAW,IAAC,CAAA,cAAc,CAAC,QAAhB,EAAA,CAAA;QACX,MAAA,GAAS,IAAC,CAAA,cAAc,CAAC,YAAhB,CAA6B,CAAC,sBAAD,KAAA;iBAA2B,IAAC,CAAA,aAAD,CAAe,sBAAf,EAAuC,IAAC,CAAA,QAAxC,EAAkD,QAAQ,CAAC,EAA3D,CAAA,CAAA;SAAxD,CAAA,CAAA;AACT,QAAO,QAAA,MAAM,CAAC,MAAd;AAAA,UAAA,KACM,CADN;AAEE,YAAA,OAAO,MAAM,CAAC,KAAA,CAAA;AAFhB,UAAA,KAGM,CAHN;AAIE,YAAA,SAAA,GAAY,CAAC,QAAD,EAAW,mCAAX,CAAA,CAAA;AACZ,YAAA,IAA4B,OAA5B,IAAA,IAAA,EAAA;AAAA,cAAA,SAAS,CAAC,IAAV,CAAe,OAAf,CAAA,CAAA;;AACA,YAAO,SAAA,MAAM,OAAO,CAAC,IAAR,CAAa,SAAb,CAAN;AAAP,cAAA,KACM,OADN;AACmB,gBAAO,OAAA,KAAA,CAAA;AAD1B,cAAA,KAEM,MAFN;AAEkB,gBAAO,OAAA,IAAA,CAAA;AAFzB,aAAA;AAHI,YAAA,MAAA;AAHN,UAAA,KASM,CATN;AAUE,YAAO,OAAA,IAAA,CAAA;AAVT,UAAA;YAYE,MAAM,MAAM,CAAC,MAZf,CAAA;AAAA,SAAA;OANF;AAAA,KAAA,SAAA;AAoBC,MAAA,IAAC,CAAA,aAAD,CAAe,IAAC,CAAA,QAAhB,CAAA,CAAA;AACA,MAAA,IAAC,CAAA,YAAY,CAAC,YAAd,CAA2B,IAAC,CAAA,OAA5B,CAAA,CAAA;AACA,MAAA,IAA8C,QAA9C,IAAA,IAAA,EAAA;AAAA,QAAA,IAAC,CAAA,cAAc,CAAC,eAAhB,CAAgC,QAAhC,CAAA,CAAA;AAtBD,OAAA;;AADe,GAAA;;AAJV,CAAA;;ACfP,IAAO,iBAAA,GAAoB,SAAC,SAAD,EAAY,2BAA4B,GAAA,KAAxC,EAAA;AAC3B,EAAA,IAAA,KAAA,CAAA;EAAE,IAAG,CAAA,MAAM,KAAA,GAAQA,yBAAA,CAA8B,SAA9B,CAAT,CAAR,EAAA;AACC,IAAA,OAAqB,IADtB,CAAA;GAAA,MAAA;AAGC,IAAA,OAAO,CAAC,KAAR,CAAc,qCAAA,GAAwC,KAAtD,CAAA,CAAA;WACA,KAJD,CAAA;;AADyB,CAAA;;ACF3B,IAAA,WAAA,EAAA,qBAAA,CAAA;;AAAA,qBAAA,GAAwB,IAAI,oBAAJ,CAAyB,SAAC,gBAAD,EAAA;AAAqB,EAAA,OAAA,gBAAgB,CAAC,CAAD,CAAhB,CAAoB,gBAAgB,CAAC,CAAD,CAApC,CAAA,CAAA;AAArB,CAAzB,CAAA,CAAA;;AAGxB,WAAA,GAAc,SAAC,iBAAD,EAAoB,KAApB,EAAA;AACd,EAAA,IAAA,sBAAA,EAAA,CAAA,EAAA,GAAA,EAAA,MAAA,EAAA,GAAA,EAAA,GAAA,CAAA;AAAE,EAAA,IAAA;AACC,IAAA,sBAAA,GAAyB,KAAA,CAAA;IACzB,GAAA,GAAM,KAAA,CAAM,iBAAN,CAAA,CAAA;AACN,IAAA,IAAG,iBAAS,OAAO,GAAG,CAAC,IAAX,KAAmB,UAA/B,EAAA;AACC,MAAA,sBAAA,GAAyB,IAAA,CAAA;AACzB,MAAA,OAAA,GAAG,CAAC,OAAJ,CAAY,MAAA;AAChB,QAAA,IAAA,CAAA,EAAA,GAAA,EAAA,MAAA,EAAA,GAAA,EAAA,OAAA,CAAA;AAAK,QAAA,GAAA,GAAA,CAAA,iBAAA,CAAA,CAAA,IAAA,EAAA,CAAA;AAAA,QAAA,OAAA,GAAA,EAAA,CAAA;AAAA,QAAA,KAAA,CAAA,GAAA,CAAA,EAAA,GAAA,GAAA,GAAA,CAAA,MAAA,EAAA,CAAA,GAAA,GAAA,EAAA,CAAA,EAAA,EAAA;;uBACC,MAAM,CAAC,IAAP,EAAA,CAAA,CAAA;SADD;;AADW,OAAZ,CAFD,CAAA;KAAA,MAAA;aAMC,GAND,CAAA;AAHD,KAAA;AAAA,GAAA,SAAA;AAWC,IAAA,IAAG,CAAI,sBAAP,EAAA;AACC,MAAA,GAAA,GAAA,CAAA,iBAAA,CAAA,CAAA,IAAA,EAAA,CAAA;AAAA,MAAA,KAAA,CAAA,GAAA,CAAA,EAAA,GAAA,GAAA,GAAA,CAAA,MAAA,EAAA,CAAA,GAAA,GAAA,EAAA,CAAA,EAAA,EAAA;;QACC,MAAM,CAAC,IAAP,EAAA,CAAA;OAFF;AAXD,KAAA;;AADY,CAAA,CAAA;;AAiBd,IAAO,qBAAA,GAAwB,SAAC,iBAAD,EAAoB,KAApB,EAAA;AAC7B,EAAA,IAAG,KAAH,IAAA,IAAA,EAAA;AACC,IAAA,OAAA,WAAA,CAAY,iBAAZ,EAA+B,KAA/B,CADD,CAAA;GAAA,MAAA;WAGC,iBAHD,CAAA;;AAD6B,CAAA,CAAA;;AAO/B,IAAaC,uBAAN,GAAA,MAAA,qBAAA,CAAA;AACN,EAAA,WAAa,GAAA;IAAI,IAAC,CAAA,OAAD,GAAS,uBAAA,CAAA;AAAb,GAAA;;AADP,CAAA,CAAA;;AAIP,IAAa,SAAN,GAAA,MAAA,SAAA,CAAA;EAGN,kBAAoB,CAAA,eAAA,EAAA,QAAA,EAAA,cAAA,EAAA;AAAC,IAAA,IAAC,CAAA,eAAA,GAAA,eAAA,CAAA;AAAiB,IAAA,IAAC,CAAA,QAAA,GAAA,QAAA,CAAA;AAAU,IAAA,IAAC,CAAA,cAAA,GAAA,cAAA,CAAA;IAClD,IAAC,CAAA,YAAD,GAAgB,IAAA,CAAA;IAChB,IAAC,CAAA,oBAAD,GAAwB,CAAA,CAAA;IACxB,IAAC,CAAA,WAAD,GAAe,EAAA,CAAA;AACf,IAAA,OAAA,qBAAqB,CAAC,QAAtB,CAA+B,IAA/B,EAAkC,CAAC,IAAC,CAAA,cAAF,EAAkB,IAAC,CAAA,QAAnB,CAAlC,EAAgE,IAAhE,CAAA,CAAA;AAJmB,GAAA;;AAMpB,EAAA,OAAS,GAAA;AACR,IAAA,OAAA,IAAA,CAAA,YAAA,IAAA,IAAA,CAAA;AADQ,GAAA;;AAGT,EAAA,IAAM,GAAA;AACL,IAAA,IAAO,IAAP,CAAA,YAAA,IAAA,IAAA,EAAA;MACC,IAAC,CAAA,YAAD,GAAgB,IAAI,OAAJ,CAAY,MAAC,OAAD,KAAA;AAC/B,QAAA,IAAA,0BAAA,EAAA,iBAAA,EAAA,CAAA,EAAA,GAAA,EAAA,GAAA,CAAA;AAAI,QAAA,IAAG,IAAH,CAAA,QAAA,IAAA,IAAA,EAAA;UACC,IAAG,MAAM,CAAC,IAAP,CAAY,IAAC,CAAA,WAAb,CAAyB,CAAC,MAA1B,GAAmC,CAAtC,EAAA;AACC,YAAA,iBAAA,GAAoB,IAAI,OAAJ,CAAY,CAAA,sBAAA,KAAA;AAAC,cAAA,IAAC,CAAA,sBAAA,GAAA,sBAAA,CAAA;aAAd,CAAA,CAAA;AACpB,YAAA,GAAA,GAAA,MAAA,CAAA,MAAA,CAAA,IAAA,CAAA,WAAA,CAAA,CAAA;AAAA,YAAA,KAAA,CAAA,GAAA,CAAA,EAAA,GAAA,GAAA,GAAA,CAAA,MAAA,EAAA,CAAA,GAAA,GAAA,EAAA,CAAA,EAAA,EAAA;;AACC,cAAA,0BAAA,CAA2B,MAA3B,CAAA,CAAA;AADD,aAAA;AAEA,YAAA,MAAM,iBAJP,CAAA;;UAKA,IAAgF,MAAM,CAAC,IAAP,CAAY,IAAC,CAAA,WAAb,CAAyB,CAAC,MAA1B,GAAmC,CAAnH,EAAA;AAAA,YAAA,MAAM,qEAAN,CAAA;;UACA,qBAAqB,CAAC,UAAtB,CAAiC,IAAjC,CAAA,CAAA;AACA,UAAA,IAAC,CAAA,cAAD,CAAgB,IAAC,CAAA,QAAjB,CAAA,CAAA;AACA,UAAA,IAA8B,IAA9B,CAAA,eAAA,IAAA,IAAA,EAAA;AAAA,YAAA,IAAC,CAAA,eAAe,CAAC,MAAjB,EAAA,CAAA;AATD,WAAA;;QAUA,IAAC,CAAA,QAAD,GAAY,KAAA,CAAA;AACZ,QAAA,OAAA,OAAA,EAAA,CAAA;AAZ2B,OAAZ,CADjB,CAAA;;AAcA,IAAA,OAAA,IAAC,CAAA,YAAA,CAAA;AAfI,GAAA;;EAiBN,YAAc,CAAC,KAAD,EAAA;AACb,IAAA,IAAsC,IAAC,CAAA,OAAD,EAAtC,EAAA;MAAA,MAAM,IAAIA,uBAAJ,EAAN,CAAA;;WACA,KAAA,CAAM,IAAC,CAAA,QAAP,CAAA,CAAA;AAFa,GAAA;;EAId,qBAAuB,CAAC,KAAD,EAAA;WACtB,qBAAA,CAAsB,IAAtB,EAAyB,KAAzB,CAAA,CAAA;AADsB,GAAA;;EAGvB,SAAW,CAAC,0BAAD,EAAA;AACZ,IAAA,IAAA,OAAA,CAAA;AAAE,IAAA,IAA2C,IAA3C,CAAA,YAAA,IAAA,IAAA,EAAA;AAAA,MAAA,KAAA,CAAM,SAAS,CAAA,SAAE,CAAA,qBAAjB,CAAA,CAAA;;IACA,OAAA,GAAU,IAAC,CAAA,oBAAD,EAAA,CAAA;AACV,IAAA,IAAC,CAAA,WAAW,CAAC,OAAD,CAAZ,GAAwB,0BAAA,CAAA;AACxB,IAAA,OAAA,OAAA,CAAA;AAJU,GAAA;;EAMX,YAAc,CAAC,OAAD,EAAA;AACb,IAAA,OAAO,IAAC,CAAA,WAAW,CAAC,OAAD,CAAA,CAAA;AACnB,IAAA,IAAG,CAAA,IAAA,CAAA,YAAA,IAAA,IAAA,KAAmB,MAAM,CAAC,IAAP,CAAY,IAAC,CAAA,WAAb,CAAyB,CAAC,MAA1B,KAAoC,CAA1D,EAAA;aACC,IAAC,CAAA,sBAAD,EADD,CAAA;;AAFa,GAAA;;AA1CR,CAAA;;AC5BM,IAAA,gBAAA,GAAN,MAAA,gBAAA,SAA+B,SAA/B,CAAA;AAEN,EAAA,WAAa,CAAC,IAAD,EAAO,IAAP,EAAa,OAAA,GAAQ,IAArB,EAAA;AACd,IAAA,IAAA,GAAA,EAAA,WAAA,CAAA;SAAE,EAAA,CAAA;AACA,IAAA,IAAG,OAAH,IAAA,IAAA,EAAA;AACC,MAAA,IAAC,CAAA,IAAD,GAAQ,IAAI,CAAC,KAAL,CAAWC,8BAAA,CAAmC,OAAnC,CAAX,CAAA,CAAA;AACR,MAAA,IAAC,CAAA,IAAD,GAAA,CAAA,WAAA;;AAAS,QAAA,GAAA,GAAAC,8BAAA,CAAA,OAAA,CAAA,CAAA;AAAA,QAAA,OAAA,GAAA,EAAA,CAAA;AAAA,QAAA,KAAA,CAAA,GAAA,CAAA,EAAA,GAAA,GAAA,GAAA,CAAA,MAAA,EAAA,CAAA,GAAA,GAAA,EAAA,CAAA,EAAA,EAAA;;AAAA,UAAA,OAAA,CAAA,IAAA,CAAA,IAAI,aAAJ,CAAkB,IAAlB,EAAwB,IAAxB,EAA8B,WAA9B,CAAA,CAAA,CAAA;SAAA;;AAFV,OAAA,GAAA,CAAA;KAAA,MAAA;MAIC,IAAC,CAAA,IAAD,GAAQ,IAAA,CAAA;AACR,MAAA,IAAC,CAAA,IAAD,GAAA,CAAA,WAAA;;AAAS,QAAA,OAAA,GAAA,EAAA,CAAA;AAAA,QAAA,KAAA,CAAA,GAAA,CAAA,EAAA,GAAA,GAAA,IAAA,CAAA,MAAA,EAAA,CAAA,GAAA,GAAA,EAAA,CAAA,EAAA,EAAA;;uBAAI,GAAA,YAAe,aAAlB,GAAqC,GAArC,GAA8C,IAAI,aAAJ,CAAkB,GAAlB,CAAA,CAAA,CAAA;SAA/C;;;AACT,MAAA,OAAA,GAAUC,cAAA,CAAmBC,6BAAA,CAAkC,IAAI,CAAC,SAAL,CAAe,IAAC,CAAA,IAAhB,CAAlC,EAAA,CAAA,WAAA;;AAA0D,QAAA,GAAA,GAAA,IAAA,CAAA,IAAA,CAAA;AAAA,QAAA,OAAA,GAAA,EAAA,CAAA;AAAA,QAAA,KAAA,CAAA,GAAA,CAAA,EAAA,GAAA,GAAA,GAAA,CAAA,MAAA,EAAA,CAAA,GAAA,GAAA,EAAA,CAAA,EAAA,EAAA;;AAAA,UAAA,OAAA,CAAA,IAAA,CAAA,GAAG,CAAC,QAAA,CAAA,CAAA;SAAJ;;AAA1D,OAAA,EAAA,IAAA,CAAA,IAAA,CAAA,CAAnB,CANX,CAAA;;IAOA,IAAC,CAAA,kBAAD,CAAoB,IAApB,EAA0B,OAA1B,EAAmCC,8BAAnC,CAAA,CAAA;AATY,GAAA;;AAFP,EAAA;;AAcM,IAAA,aAAA,GAAN,MAAA,aAAA,SAA4B,SAA5B,CAAA;EAEN,WAAa,CAAC,IAAD,EAAA;AACd,IAAA,IAAA,OAAA,CAAA;SAAE,EAAA,CAAA;IACA,IAAC,CAAA,IAAD,GAAQ,IAAA,CAAA;AACR,IAAA,OAAA,GAAUF,cAAA,CAAmBG,0BAAA,CAA+B,IAAI,CAAC,SAAL,CAAe,IAAC,CAAA,IAAhB,CAA/B,CAAnB,CAAA,CAAA;IACV,IAAC,CAAA,kBAAD,CAAoB,IAApB,EAA0B,OAA1B,EAAmCC,2BAAnC,CAAA,CAAA;AAJY,GAAA;;AAFP;;AClBP,IAAA,kCAAA,CAAA;;AAIA,kCAAA,GAAqC,CAAC,CAAD,EAAG,CAAH,EAAK,CAAL,CAJrC,CAAA;;;AAOa,IAAA,WAAA,GAAN,MAAA,WAAA,SAA0B,SAA1B,CAAA;AAEN,EAAA,WAAa,CAAC,IAAA,GAAK,IAAN,EAAY,UAAQ,IAApB,EAA0B,MAAO,GAAA,IAAjC,EAAuC,mBAAoB,GAAA,CAA3D,EAA8D,OAAA,GAAQ,IAAtE,EAAA;AACd,IAAA,IAAA,SAAA,EAAA,eAAA,EAAA,CAAA,CAAA;SAAE,EAAA,CAAA;AACA,IAAA,IAAG,OAAH,IAAA,IAAA,EAAA;MACC,IAAC,CAAA,kBAAD,CAAoB,IAApB,EAA0B,OAA1B,EAAmCC,yBAAnC,CAAA,CAAA;AACA,MAAA,IAAC,CAAA,OAAD,GAAA,CAAA,WAAA;;AAAY,QAAA,GAAA,GAAAC,4BAAA,CAAA,OAAA,CAAA,CAAA;AAAA,QAAA,OAAA,GAAA,EAAA,CAAA;AAAA,QAAA,KAAA,CAAA,GAAA,CAAA,EAAA,GAAA,GAAA,GAAA,CAAA,MAAA,EAAA,CAAA,GAAA,GAAA,EAAA,CAAA,EAAA,EAAA;;AAAA,UAAA,OAAA,CAAA,IAAA,CAAA,CAAA,CAAA,CAAA;SAAA;;;AACZ,MAAA,IAAC,CAAA,mBAAD,GAAuBC,qCAAA,CAA0C,OAA1C,CAAA,CAAA;AACvB,MAAA,IAAC,CAAA,MAAD,GAAUC,2BAAA,CAAgC,OAAhC,CAAA,CAAA;AACV,MAAA,IAAC,CAAA,IAAD,GAAQ,IAAI,WAAJ,EAAiB,CAAC,MAAlB,CAAyBC,yBAAA,CAA8B,OAA9B,CAAzB,CALT,CAAA;KAAA,MAAA;AAOC,MAAA,IAAI,OAAJ,IAAA,IAAA,EAAA;AACC,QAAA,SAAA,GAAY,IAAI,IAAJ,EAAU,CAAC,OAAX,EAAA,CAAA;AACZ,QAAA,OAAA,GAAU,CAAC,CAAD,EAAI,IAAI,CAAC,KAAL,CAAW,SAAA,GAAU,IAArB,CAAJ,EAAgC,CAAC,SAAA,GAAY,IAAb,IAAqB,IAArD,CAAA,CAAA;AACV,QAAA,OAAoB,OAAO,CAAC,CAAD,CAAP,KAAc,kCAAkC,CAAC,CAAD,CAAhD,IAAwD,OAAO,CAAC,CAAD,CAAP,IAAc,kCAAkC,CAAC,CAAD,CAA5H,EAAA;UAAA,OAAO,CAAC,CAAD,CAAP,EAAA,CAAA;AAAA,SAAA;AACA,QAAA,kCAAA,GAAqC,OAJtC,CAAA;;AAKA,MAAA,IAAC,CAAA,OAAD,GAAA,CAAA,WAAA;;AAAY,QAAA,OAAA,GAAA,EAAA,CAAA;AAAA,QAAA,KAAA,CAAA,GAAA,CAAA,EAAA,GAAA,GAAA,OAAA,CAAA,MAAA,EAAA,CAAA,GAAA,GAAA,EAAA,CAAA,EAAA,EAAA;;AAAA,UAAA,OAAA,CAAA,IAAA,CAAA,MAAA,CAAO,eAAP,CAAA,CAAA,CAAA;SAAA;;;AACZ,MAAA,IAAI,MAAJ,IAAA,IAAA,EAAA;AACC,QAAA,MAAA,GAAS,EADV,CAAA;;MAEA,IAAC,CAAA,MAAD,GAAU,CAAC,MAAD,CAAQ,CAAC,IAAT,CAAc,KAAd,CAAA,CAAA;AACV,MAAA,IAAC,CAAA,mBAAD,GAAuB,MAAA,CAAO,mBAAP,CAAA,CAAA;MACvB,IAAC,CAAA,IAAD,GAAQ,IAjBT,CAAA;;AAFY,GAAA;;EAqBb,YAAc,CAAC,KAAD,EAAA;AACf,IAAA,IAAA,OAAA,CAAA;AAAE,IAAA,IAAsC,IAAC,CAAA,OAAD,EAAtC,EAAA;MAAA,MAAM,IAAI,qBAAJ,EAAN,CAAA;;AACA,IAAA,IAAG,IAAH,CAAA,QAAA,IAAA,IAAA,EAAA;AACC,MAAA,OAAA,KAAA,CAAM,IAAC,CAAA,QAAP,CADD,CAAA;KAAA,MAAA;AAGC,MAAA,OAAA,GAAUT,cAAA,CAAmBU,wBAAA,CAA6B,IAAC,CAAA,OAA9B,EAAuC,IAAC,CAAA,MAAxC,EAAgD,IAAI,WAAJ,EAAiB,CAAC,MAAlB,CAAyB,IAAC,CAAA,IAA1B,CAAhD,EAAiF,IAAC,CAAA,mBAAlF,CAAnB,CAAA,CAAA;MACV,IAAC,CAAA,kBAAD,CAAoB,IAApB,EAA0B,OAA1B,EAAmCL,yBAAnC,CAAA,CAAA;AACA,MAAA,OAAA,KAAA,CAAM,IAAC,CAAA,QAAP,CALD,CAAA;;AAFa,GAAA;;EASd,SAAW,CAAC,IAAD,EAAA;AACV,IAAA,OAAA,IAAI,WAAJ,CAAgB,IAAhB,EAAsB,IAAC,CAAA,OAAvB,EAAgC,IAAC,CAAA,MAAjC,EAAyC,IAAC,CAAA,mBAA1C,CAAA,CAAA;AADU,GAAA;;EAGX,YAAc,CAAC,OAAD,EAAA;AACb,IAAA,OAAA,IAAI,WAAJ,CAAgB,IAAC,CAAA,IAAjB,EAAuB,OAAvB,EAAgC,IAAC,CAAA,MAAjC,EAAyC,IAAC,CAAA,mBAA1C,CAAA,CAAA;AADa,GAAA;;EAGd,WAAa,CAAC,MAAD,EAAA;AACZ,IAAA,OAAA,IAAI,WAAJ,CAAgB,IAAC,CAAA,IAAjB,EAAuB,IAAC,CAAA,OAAxB,EAAiC,MAAjC,EAAyC,IAAC,CAAA,mBAA1C,CAAA,CAAA;AADY,GAAA;;EAGb,wBAA0B,CAAC,mBAAD,EAAA;AACzB,IAAA,OAAA,IAAI,WAAJ,CAAgB,IAAC,CAAA,IAAjB,EAAuB,IAAC,CAAA,OAAxB,EAAiC,IAAC,CAAA,MAAlC,EAA0C,mBAA1C,CAAA,CAAA;AADyB,GAAA;;AAG1B,EAAA,gBAAkB,GAAA;AACjB,IAAA,IAAgC,IAAC,CAAA,MAAM,CAAC,IAAC,CAAA,MAAM,CAAC,MAAR,GAAiB,CAAlB,CAAP,KAA+B,MAA/D,EAAA;AAAA,MAAA,MAAM,qBAAN,CAAA;;AACA,IAAA,OAAA,IAAI,WAAJ,CAAgB,IAAI,CAAC,KAAL,CAAW,IAAC,CAAA,IAAZ,CAAhB,EAAmC,IAAC,CAAA,OAApC,EAA6C,IAAC,CAAA,MAAM,CAAC,KAAR,CAAc,CAAd,EAAiB,CAAC,CAAlB,CAA7C,EAAmE,IAAC,CAAA,mBAApE,CAAA,CAAA;AAFiB,GAAA;;AAIlB,EAAA,cAAgB,GAAA;WACf,IAAI,WAAJ,CAAgB,IAAI,CAAC,SAAL,CAAe,IAAC,CAAA,IAAhB,CAAhB,EAAuC,IAAC,CAAA,OAAxC,EAAiD,IAAC,CAAA,MAAM,CAAC,MAAR,CAAe,MAAf,CAAjD,EAAyE,IAAC,CAAA,mBAA1E,CAAA,CAAA;AADe,GAAA;;AAhDV;;ACPP,IAAa,gBAAN,GAAA,MAAA,gBAAA,CAAA;AAEN,EAAA,WAAa,CAAA,OAAA,EAAA,sBAAA,GAAmC,KAAnC,EAAA,MAAA,GAAkD,KAAlD,EAAA;AAAC,IAAA,IAAC,CAAA,OAAA,GAAA,OAAA,CAAA;AAAS,IAAA,IAAC,CAAA,sBAAA,GAAA,sBAAA,CAAA;AAA8B,IAAA,IAAC,CAAA,MAAA,GAAA,MAAA,CAAA;AAA3C,GAAA;;EAEb,KAAO,CAAC,KAAD,EAAA;AACN,IAAA,OAAA,IAAI,gBAAJ,CAAqB,IAAC,CAAA,OAAtB,EAA+B,IAAC,CAAA,sBAAhC,EAAwD,IAAxD,CAA6D,CAAC,cAA9D,CAA6E,KAA7E,CAAA,CAAA;AADM,GAAA;;EAGP,qBAAuB,CAAC,KAAD,EAAA;AACtB,IAAA,OAAA,IAAI,gBAAJ,CAAqB,IAAC,CAAA,OAAtB,EAA+B,IAA/B,EAAqC,IAAC,CAAA,MAAtC,CAA6C,CAAC,cAA9C,CAA6D,KAA7D,CAAA,CAAA;AADsB,GAAA;;EAGvB,cAAgB,CAAC,KAAD,EAAA;AACf,IAAA,IAAG,KAAH,IAAA,IAAA,EAAA;AACC,MAAA,OAAA,IAAC,CAAA,IAAD,CAAM,KAAN,CADD,CAAA;KAAA,MAAA;aAGC,IAHD,CAAA;;AADe,GAAA;;EAMV,MAAN,IAAM,CAAC,KAAD,EAAA;AACP,IAAA,IAAA,QAAA,CAAA,CAAA,QAAA;AAAE,IAAA,OAAA,GAAA,EAAA,CAAA;WAAM,CAAN,QAAA,IAAA,MAAA,IAAA,CAAA,OAAA,CAAA,IAAA,EAAA,CAAA,KAAA,IAAA,EAAA;MACC,IAAG,IAAC,CAAA,MAAJ,EAAA;;qBAEY,IAAI,OAAJ,CAAY,MAAC,QAAD,KAAA;AAC3B,UAAA,IAAA,IAAA,CAAA;AAAK,UAAA,IAAA,GAAO,QAAZ,CAAA;UACK,IAAG,IAAC,CAAA,sBAAJ,EAAA;AACC,YAAA,QAAA,MAAM,KAAA,CAAM,IAAN,CAAN,EADD;WAAA,MAAA;AAGC,YAAA,IAAA;AACC,cAAA,QAAA,MAAM,KAAA,CAAM,IAAN,CAAN,EADD;AAAA,aAAA,SAAA;AAGC,cAAA,MAAM,IAAI,CAAC,IAAL,EAHP,CAAA;AAHD,aAAA;;AAFsB,SAAZ,CAFZ,CAAA,CAAA;OAAA,MAAA;QAYC,IAAG,IAAC,CAAA,sBAAJ,EAAA;AACC,UAAA,OAAA,CAAA,IAAA,EAAA,MAAM,KAAA,CAAM,QAAN,CAAN,EADD,CAAA;SAAA,MAAA;AAGC,UAAA,IAAA;AACC,YAAA,OAAA,CAAA,IAAA,EAAA,MAAM,KAAA,CAAM,QAAN,CAAN,EADD,CAAA;AAAA,WAAA,SAAA;AAGC,YAAA,MAAM,QAAQ,CAAC,IAAT,EAHP,CAAA;AAHD,WAAA;AAZD,SAAA;;KADD;;AADK,GAAA;;AAhBA,CAAA;;ACOP,IAAa,iBAAA,GAAN,MAAA,iBAAA,SAAgC,SAAhC,CAAA;AAEN,EAAA,WAAa,CAAC,cAAD,EAAiB,OAAjB,EAAA;SACZ,EAAA,CAAA;IACA,IAAC,CAAA,cAAD,GAAkB,cAAA,CAAA;IAClB,IAAC,CAAA,kBAAD,CAAoB,IAAC,CAAA,cAArB,EAAqC,OAArC,EAA8CM,gCAA9C,CAAA,CAAA;AAHY,GAAA;;AAKb,EAAA,UAAY,GAAA;AACX,IAAA,OAAA,IAAC,CAAA,YAAD,CAAc,SAAC,OAAD,EAAA;aAAW,IAAI,gBAAJ,CAAqB,IAArB,EAA2B,IAA3B,EAAiCC,sCAAA,CAA2C,OAA3C,CAAjC,CAAA,CAAA;KAAzB,CAAA,CAAA;AADW,GAAA;;EAGN,MAAN,IAAM,CAAC,KAAD,EAAA;AACP,IAAA,IAAA,KAAA,EAAA,cAAA,EAAA,OAAA,CAAA;AAAE,IAAA,IAAA;MACC,cAAA,GAAiB,IAAC,CAAA,YAAD,CAAc,CAAC,OAAD,KAAA;eAAWC,gCAAA,CAAqC,OAArC,CAAA,CAAA;OAAzB,CAAA,CAAA;MACjB,OAAA,IAAU,MAAM,IAAIC,MAAJ,CAAe,IAAC,CAAA,cAAhB,EAAgC,IAAhC,EAAmCC,qCAAnC,EAA8EC,qCAA9E,EAAyH,cAAzH,CAAwI,CAAC,cAAzI,EAAN,CAAA,CAAA;AACV,MAAA,IAAG,OAAH,IAAA,IAAA,EAAA;AAAiB,QAAA,OAAA,IAAI,WAAJ,CAAgB,IAAhB,EAAsB,IAAtB,EAA4B,IAA5B,EAAkC,IAAlC,EAAwC,OAAxC,CAAgD,CAAC,qBAAjD,CAAuE,KAAvE,CAAjB,CAAA;OAAA,MAAA;eAAoG,IAApG,CAAA;AAHD,OAAA;KAIA,CAAA,OAAA,MAAA,EAAA;AAAM,MAAA,KAAA,GAAA,MAAA,CAAA;MACL,IAAgB,KAAA,YAAiBnB,uBAAjC,EAAA;AAAA,QAAA,OAAO,IAAP,CAAA;;AACA,MAAA,MAAM,KAFP,CAAA;;AALK,GAAA;;EAUN,IAAM,CAAC,KAAD,EAAA;AACL,IAAA,OAAA,IAAI,gBAAJ,CAAqB,IAArB,CAAuB,CAAC,cAAxB,CAAuC,KAAvC,CAAA,CAAA;AADK,GAAA;;EAGN,OAAS,CAAC,KAAD,EAAA;AACV,IAAA,IAAA,KAAA,EAAA,OAAA,CAAA;AAAE,IAAA,IAAA;MACC,OAAA,GAAU,IAAC,CAAA,YAAD,CAAc,CAAC,OAAD,KAAA;eAAYoB,sBAAA,CAA2BC,mCAAA,CAAwC,OAAxC,CAA3B,CAAA,CAAA;OAA1B,CAAA,CAAA;AACV,MAAA,IAAG,OAAH,IAAA,IAAA,EAAA;AAAiB,QAAA,OAAA,IAAI,WAAJ,CAAgB,IAAhB,EAAsB,IAAtB,EAA4B,IAA5B,EAAkC,IAAlC,EAAwC,OAAxC,CAAgD,CAAC,qBAAjD,CAAuE,KAAvE,CAAjB,CAAA;OAAA,MAAA;eAAoG,IAApG,CAAA;AAFD,OAAA;KAGA,CAAA,OAAA,MAAA,EAAA;AAAM,MAAA,KAAA,GAAA,MAAA,CAAA;MACL,IAAgB,KAAA,YAAiBrB,uBAAjC,EAAA;AAAA,QAAA,OAAO,IAAP,CAAA;;AACA,MAAA,MAAM,KAFP,CAAA;;AAJQ,GAAA;;AAvBH,CAAA;;ACDP,IAAa,qBAAA,GAAN,MAAA,qBAAA,SAAoC,SAApC,CAAA;EAEN,WAAa,CAAC,OAAD,EAAA;SACZ,EAAA,CAAA;IACA,IAAC,CAAA,kBAAD,CAAoB,IAApB,EAA0B,OAA1B,EAAmCsB,qCAAnC,CAAA,CAAA;AAFY,GAAA;;AAFP,CAAA,CAAA;;AAOP,IAAa,eAAA,GAAN,MAAA,eAAA,SAA8B,SAA9B,CAAA;AAEN,EAAA,WAAa,CAAC,cAAD,EAAiB,OAAjB,EAAA;SACZ,EAAA,CAAA;IACA,IAAC,CAAA,cAAD,GAAkB,cAAA,CAAA;IAClB,IAAC,CAAA,kBAAD,CAAoB,IAAC,CAAA,cAArB,EAAqC,OAArC,EAA8CC,8BAA9C,CAAA,CAAA;AAHY,GAAA;;AAKb,EAAA,UAAY,GAAA;AACX,IAAA,OAAA,IAAC,CAAA,YAAD,CAAc,SAAC,OAAD,EAAA;aAAW,IAAI,gBAAJ,CAAqB,IAArB,EAA2B,IAA3B,EAAiCC,oCAAA,CAAyC,OAAzC,CAAjC,CAAA,CAAA;KAAzB,CAAA,CAAA;AADW,GAAA;;EAGN,MAAN,IAAM,CAAC,YAAD,EAAA;AACP,IAAA,IAAA,KAAA,EAAA,cAAA,CAAA;AAAE,IAAA,IAAA;MACC,cAAA,GAAiB,IAAC,CAAA,YAAD,CAAc,CAAC,YAAD,KAAA;AAC9B,QAAA,OAAA,YAAY,CAAC,YAAb,CAA0B,CAAC,oBAAD,KAAA;AACzB,UAAA,OAAAC,8BAAA,CAAmC,YAAnC,EAAiD,oBAAjD,CAAA,CAAA;SADD,CAAA,CAAA;OADgB,CAAA,CAAA;MAGjB,MAAM,IAAIR,MAAJ,CAAe,IAAC,CAAA,cAAhB,EAAgC,IAAhC,EAAmCS,qCAAnC,EAA8EC,qCAA9E,EAAyH,cAAzH,CAAwI,CAAC,cAAzI,EAAA,CAAA;AACN,MAAA,IAAC,CAAA,cAAc,CAAC,MAAhB,EAAA,CAAA;aACA,IAND,CAAA;KAOA,CAAA,OAAA,MAAA,EAAA;AAAM,MAAA,KAAA,GAAA,MAAA,CAAA;MACL,IAAgB,KAAA,YAAiB,qBAAjC,EAAA;AAAA,QAAA,OAAO,IAAP,CAAA;;AACA,MAAA,MAAM,KAFP,CAAA;;AARK,GAAA;;EAYA,MAAN,IAAM,CAAC,KAAD,EAAA;AACP,IAAA,IAAA,KAAA,EAAA,cAAA,EAAA,OAAA,CAAA;AAAE,IAAA,IAAA;MACC,cAAA,GAAiB,IAAC,CAAA,YAAD,CAAc,CAAC,OAAD,KAAA;eAAWC,8BAAA,CAAmC,OAAnC,CAAA,CAAA;OAAzB,CAAA,CAAA;MACjB,OAAA,IAAU,MAAM,IAAIX,MAAJ,CAAe,IAAC,CAAA,cAAhB,EAAgC,IAAhC,EAAmCC,qCAAnC,EAA8EC,qCAA9E,EAAyH,cAAzH,CAAwI,CAAC,cAAzI,EAAN,CAAA,CAAA;AACV,MAAA,IAAG,OAAH,IAAA,IAAA,EAAA;eAAiB,IAAI,qBAAJ,CAA0B,OAA1B,CAAkC,CAAC,qBAAnC,CAAyD,KAAzD,CAAjB,CAAA;OAAA,MAAA;eAAsF,IAAtF,CAAA;AAHD,OAAA;KAIA,CAAA,OAAA,MAAA,EAAA;AAAM,MAAA,KAAA,GAAA,MAAA,CAAA;MACL,IAAgB,KAAA,YAAiB,qBAAjC,EAAA;AAAA,QAAA,OAAO,IAAP,CAAA;;AACA,MAAA,MAAM,KAFP,CAAA;;AALK,GAAA;;EASN,IAAM,CAAC,KAAD,EAAA;AACL,IAAA,OAAA,IAAI,gBAAJ,CAAqB,IAArB,CAAuB,CAAC,cAAxB,CAAuC,KAAvC,CAAA,CAAA;AADK,GAAA;;EAGN,OAAS,CAAC,KAAD,EAAA;AACV,IAAA,IAAA,KAAA,EAAA,OAAA,CAAA;AAAE,IAAA,IAAA;MACC,OAAA,GAAU,IAAC,CAAA,YAAD,CAAc,CAAC,OAAD,KAAA;eAAWC,sBAAA,CAA2BS,iCAAA,CAAsC,OAAtC,CAA3B,CAAA,CAAA;OAAzB,CAAA,CAAA;AACV,MAAA,IAAG,OAAH,IAAA,IAAA,EAAA;eAAiB,IAAI,qBAAJ,CAA0B,OAA1B,CAAkC,CAAC,qBAAnC,CAAyD,KAAzD,CAAjB,CAAA;OAAA,MAAA;eAAsF,IAAtF,CAAA;AAFD,OAAA;KAGA,CAAA,OAAA,MAAA,EAAA;AAAM,MAAA,KAAA,GAAA,MAAA,CAAA;MACL,IAAgB,KAAA,YAAiB,qBAAjC,EAAA;AAAA,QAAA,OAAO,IAAP,CAAA;;AACA,MAAA,MAAM,KAFP,CAAA;;AAJQ,GAAA;;AAQT,EAAA,aAAe,GAAA;AAChB,IAAA,IAAA,KAAA,CAAA;AAAE,IAAA,IAAA;AACC,MAAA,IAAC,CAAA,YAAD,CAAc,CAAC,OAAD,KAAA;eAAWC,uCAAA,CAA4C,OAA5C,CAAA,CAAA;OAAzB,CAAA,CAAA;AACA,MAAA,IAAC,CAAA,cAAc,CAAC,MAAhB,EAAA,CAAA;aACA,IAHD,CAAA;KAIA,CAAA,OAAA,MAAA,EAAA;AAAM,MAAA,KAAA,GAAA,MAAA,CAAA;MACL,IAAgB,KAAA,YAAiB,qBAAjC,EAAA;AAAA,QAAA,OAAO,IAAP,CAAA;;AACA,MAAA,MAAM,KAFP,CAAA;;AALc,GAAA;;AA1CT,CAAA;;ACbP,IAAA,QAAA,CAAA;;AAQM,QAAN,GAAA,MAAA,QAAA,SAAuB,SAAvB,CAAA;EAEC,IAAM,CAAC,KAAD,EAAA;AACL,IAAA,OAAA,IAAI,gBAAJ,CAAqB,IAArB,CAAuB,CAAC,cAAxB,CAAuC,KAAvC,CAAA,CAAA;AADK,GAAA;;AAFP,CAAA,CAAA;;AAMa,IAAA,qBAAA,GAAN,MAAA,qBAAA,SAAoC,QAApC,CAAA;AAEN,EAAA,WAAa,CAAC,cAAD,EAAiB,UAAjB,EAAA;SACZ,EAAA,CAAA;IACA,IAAC,CAAA,cAAD,GAAkB,cAAA,CAAA;AAClB,IAAA,IAAC,CAAA,UAAD,GAAiB,UAAU,CAAC,CAAD,CAAV,YAAyB,gBAA5B,GACb,UAAU,CAAC,CAAD,CADG,GAGb,IAAI,gBAAJ,CAAqB,GAAA,UAArB,CAAA,CAAA;IACD,IAAC,CAAA,cAAc,CAAC,YAAhB,CAA6B,CAAC,sBAAD,KAAA;aAC5B,IAAC,CAAA,UAAU,CAAC,YAAZ,CAAyB,CAAC,kBAAD,KAAA;AACxB,QAAA,OAAA,IAAC,CAAA,kBAAD,CAAoB,IAAC,CAAA,cAArB,EAAqCC,mCAAA,CAAwC,sBAAxC,EAAgE,kBAAhE,CAArC,EAA0HC,oCAA1H,CAAA,CAAA;OADD,CAAA,CAAA;KADD,CAAA,CAAA;AAGA,IAAA,IAAC,CAAA,cAAc,CAAC,MAAhB,EAAA,CAAA;AAVY,GAAA;;AAYb,EAAA,SAAW,GAAA;AACZ,IAAA,IAAA,KAAA,CAAA;AAAE,IAAA,IAAA;AACC,MAAA,IAAC,CAAA,YAAD,CAAc,CAAC,OAAD,KAAA;eAAWC,yCAAA,CAA8C,OAA9C,CAAA,CAAA;OAAzB,CAAA,CAAA;AACA,MAAA,OAAA,IAAC,CAAA,cAAc,CAAC,MAAhB,EAFD,CAAA;KAGA,CAAA,OAAA,MAAA,EAAA;AAAM,MAAA,KAAA,GAAA,MAAA,CAAA;MACL,IAAgB,KAAA,YAAiBjC,uBAAjC,EAAA;AAAA,QAAA,OAAO,IAAP,CAAA;;AACA,MAAA,MAAM,KAFP,CAAA;;AAJU,GAAA;;EAQL,MAAN,IAAM,CAAC,KAAD,EAAA;AACP,IAAA,IAAA,KAAA,EAAA,cAAA,EAAA,OAAA,CAAA;AAAE,IAAA,IAAA;MACC,cAAA,GAAiB,IAAC,CAAA,YAAD,CAAc,CAAC,OAAD,KAAA;eAAWkC,oCAAA,CAAyC,OAAzC,CAAA,CAAA;OAAzB,CAAA,CAAA;MACjB,OAAA,IAAU,MAAM,IAAIjB,MAAJ,CAAe,IAAC,CAAA,cAAhB,EAAgC,IAAhC,EAAmCC,qCAAnC,EAA8EC,qCAA9E,EAAyH,cAAzH,CAAwI,CAAC,cAAzI,EAAN,CAAA,CAAA;AACV,MAAA,IAAC,CAAA,cAAc,CAAC,MAAhB,EAAA,CAAA;AACA,MAAA,IAAG,OAAH,IAAA,IAAA,EAAA;AAAiB,QAAA,QAAA,MAAM,IAAI,iBAAJ,CAAsB,IAAC,CAAA,cAAvB,EAAuC,OAAvC,CAA+C,CAAC,qBAAhD,CAAsE,KAAtE,CAAN,EAAjB;OAAA,MAAA;eAAyG,IAAzG,CAAA;AAJD,OAAA;KAKA,CAAA,OAAA,MAAA,EAAA;AAAM,MAAA,KAAA,GAAA,MAAA,CAAA;MACL,IAAgB,KAAA,YAAiBnB,uBAAjC,EAAA;AAAA,QAAA,OAAO,IAAP,CAAA;;AACA,MAAA,MAAM,KAFP,CAAA;;AANK,GAAA;;EAUN,KAAO,CAAC,KAAD,EAAA;AACR,IAAA,IAAA,KAAA,EAAA,OAAA,CAAA;AAAE,IAAA,IAAA;MACC,OAAA,GAAU,IAAC,CAAA,YAAD,CAAc,CAAC,OAAD,KAAA;eAAWoB,sBAAA,CAA2Be,qCAAA,CAA0C,OAA1C,CAA3B,CAAA,CAAA;OAAzB,CAAA,CAAA;AACV,MAAA,IAAC,CAAA,cAAc,CAAC,MAAhB,EAAA,CAAA;AACA,MAAA,IAAG,OAAH,IAAA,IAAA,EAAA;AAAiB,QAAA,OAAA,IAAI,iBAAJ,CAAsB,IAAC,CAAA,cAAvB,EAAuC,OAAvC,CAA+C,CAAC,qBAAhD,CAAsE,KAAtE,CAAjB,CAAA;OAAA,MAAA;eAAmG,IAAnG,CAAA;AAHD,OAAA;KAIA,CAAA,OAAA,MAAA,EAAA;AAAM,MAAA,KAAA,GAAA,MAAA,CAAA;MACL,IAAgB,KAAA,YAAiBnC,uBAAjC,EAAA;AAAA,QAAA,OAAO,IAAP,CAAA;;AACA,MAAA,MAAM,KAFP,CAAA;;AALM,GAAA;;AAhCD,EAAA;;AA0CM,IAAA,oBAAA,GAAN,MAAA,oBAAA,SAAmC,QAAnC,CAAA;AAEN,EAAA,WAAa,CAAC,cAAD,EAAiB,UAAjB,EAAA;SACZ,EAAA,CAAA;IACA,IAAC,CAAA,cAAD,GAAkB,cAAA,CAAA;AAClB,IAAA,IAAC,CAAA,UAAD,GAAiB,UAAU,CAAC,CAAD,CAAV,YAAyB,gBAA5B,GACb,UAAU,CAAC,CAAD,CADG,GAGb,IAAI,gBAAJ,CAAqB,GAAA,UAArB,CAAA,CAAA;IACD,IAAC,CAAA,cAAc,CAAC,YAAhB,CAA6B,CAAC,sBAAD,KAAA;aAC5B,IAAC,CAAA,UAAU,CAAC,YAAZ,CAAyB,CAAC,kBAAD,KAAA;AACxB,QAAA,OAAA,IAAC,CAAA,kBAAD,CAAoB,IAAC,CAAA,cAArB,EAAqCoC,kCAAA,CAAuC,sBAAvC,EAA+D,kBAA/D,CAArC,EAAyHC,mCAAzH,CAAA,CAAA;OADD,CAAA,CAAA;KADD,CAAA,CAAA;AAGA,IAAA,IAAC,CAAA,cAAc,CAAC,MAAhB,EAAA,CAAA;AAVY,GAAA;;AAYb,EAAA,SAAW,GAAA;AACZ,IAAA,IAAA,KAAA,CAAA;AAAE,IAAA,IAAA;AACC,MAAA,IAAC,CAAA,YAAD,CAAc,CAAC,OAAD,KAAA;eAAWC,wCAAA,CAA6C,OAA7C,CAAA,CAAA;OAAzB,CAAA,CAAA;AACA,MAAA,OAAA,IAAC,CAAA,cAAc,CAAC,MAAhB,EAFD,CAAA;KAGA,CAAA,OAAA,MAAA,EAAA;AAAM,MAAA,KAAA,GAAA,MAAA,CAAA;MACL,IAAgB,KAAA,YAAiBtC,uBAAjC,EAAA;AAAA,QAAA,OAAO,IAAP,CAAA;;AACA,MAAA,MAAM,KAFP,CAAA;;AAJU,GAAA;;EAQL,MAAN,IAAM,CAAC,KAAD,EAAA;AACP,IAAA,IAAA,KAAA,EAAA,cAAA,EAAA,OAAA,CAAA;AAAE,IAAA,IAAA;MACC,cAAA,GAAiB,IAAC,CAAA,YAAD,CAAc,CAAC,OAAD,KAAA;eAAWuC,mCAAA,CAAwC,OAAxC,CAAA,CAAA;OAAzB,CAAA,CAAA;MACjB,OAAA,IAAU,MAAM,IAAItB,MAAJ,CAAe,IAAC,CAAA,cAAhB,EAAgC,IAAhC,EAAmCC,qCAAnC,EAA8EC,qCAA9E,EAAyH,cAAzH,CAAwI,CAAC,cAAzI,EAAN,CAAA,CAAA;AACV,MAAA,IAAC,CAAA,cAAc,CAAC,MAAhB,EAAA,CAAA;AACA,MAAA,IAAG,OAAH,IAAA,IAAA,EAAA;AAAiB,QAAA,QAAA,MAAM,IAAI,eAAJ,CAAoB,IAAC,CAAA,cAArB,EAAqC,OAArC,CAA6C,CAAC,qBAA9C,CAAoE,KAApE,CAAN,EAAjB;OAAA,MAAA;eAAuG,IAAvG,CAAA;AAJD,OAAA;KAKA,CAAA,OAAA,MAAA,EAAA;AAAM,MAAA,KAAA,GAAA,MAAA,CAAA;MACL,IAAgB,KAAA,YAAiBnB,uBAAjC,EAAA;AAAA,QAAA,OAAO,IAAP,CAAA;;AACA,MAAA,MAAM,KAFP,CAAA;;AANK,GAAA;;EAUN,KAAO,CAAC,KAAD,EAAA;AACR,IAAA,IAAA,KAAA,EAAA,OAAA,CAAA;AAAE,IAAA,IAAA;MACC,OAAA,GAAU,IAAC,CAAA,YAAD,CAAc,CAAC,OAAD,KAAA;eAAWoB,sBAAA,CAA2BoB,oCAAA,CAAyC,OAAzC,CAA3B,CAAA,CAAA;OAAzB,CAAA,CAAA;AACV,MAAA,IAAC,CAAA,cAAc,CAAC,MAAhB,EAAA,CAAA;AACA,MAAA,IAAG,OAAH,IAAA,IAAA,EAAA;AAAiB,QAAA,OAAA,IAAI,eAAJ,CAAoB,IAAC,CAAA,cAArB,EAAqC,OAArC,CAA6C,CAAC,qBAA9C,CAAoE,KAApE,CAAjB,CAAA;OAAA,MAAA;eAAiG,IAAjG,CAAA;AAHD,OAAA;KAIA,CAAA,OAAA,MAAA,EAAA;AAAM,MAAA,KAAA,GAAA,MAAA,CAAA;MACL,IAAgB,KAAA,YAAiBxC,uBAAjC,EAAA;AAAA,QAAA,OAAO,IAAP,CAAA;;AACA,MAAA,MAAM,KAFP,CAAA;;AALM,GAAA;;AAhCD,EAAA;;AA0CM,IAAA,kBAAA,GAAN,MAAA,kBAAA,SAAiC,QAAjC,CAAA;AAEN,EAAA,WAAa,CAAC,cAAD,EAAiB,UAAjB,EAAA;SACZ,EAAA,CAAA;IACA,IAAC,CAAA,cAAD,GAAkB,cAAA,CAAA;IAClB,IAAC,CAAA,UAAD,GAAc,UAAA,CAAA;AACd,IAAA,IAAiD,EAAK,IAAC,CAAA,UAAD,YAAuB,aAAxB,CAArD,EAAA;MAAA,IAAC,CAAA,UAAD,GAAc,IAAI,aAAJ,CAAkB,IAAC,CAAA,UAAnB,CAAd,CAAA;;IACA,IAAC,CAAA,cAAc,CAAC,YAAhB,CAA6B,CAAC,sBAAD,KAAA;aAC5B,IAAC,CAAA,UAAU,CAAC,YAAZ,CAAyB,CAAC,kBAAD,KAAA;AACxB,QAAA,OAAA,IAAC,CAAA,kBAAD,CAAoB,IAAC,CAAA,cAArB,EAAqCyC,gCAAA,CAAqC,sBAArC,EAA6D,kBAA7D,CAArC,EAAuHC,iCAAvH,CAAA,CAAA;OADD,CAAA,CAAA;KADD,CAAA,CAAA;AAGA,IAAA,IAAC,CAAA,cAAc,CAAC,MAAhB,EAAA,CAAA;AARY,GAAA;;AAUb,EAAA,SAAW,GAAA;AACZ,IAAA,IAAA,KAAA,CAAA;AAAE,IAAA,IAAA;AACC,MAAA,IAAC,CAAA,YAAD,CAAc,CAAC,OAAD,KAAA;eAAWC,sCAAA,CAA2C,OAA3C,CAAA,CAAA;OAAzB,CAAA,CAAA;AACA,MAAA,OAAA,IAAC,CAAA,cAAc,CAAC,MAAhB,EAFD,CAAA;KAGA,CAAA,OAAA,MAAA,EAAA;AAAM,MAAA,KAAA,GAAA,MAAA,CAAA;MACL,IAAgB,KAAA,YAAiB3C,uBAAjC,EAAA;AAAA,QAAA,OAAO,IAAP,CAAA;;AACA,MAAA,MAAM,KAFP,CAAA;;AAJU,GAAA;;EAQL,MAAN,IAAM,CAAC,KAAD,EAAA;AACP,IAAA,IAAA,KAAA,EAAA,cAAA,EAAA,OAAA,CAAA;AAAE,IAAA,IAAA;MACC,cAAA,GAAiB,IAAC,CAAA,YAAD,CAAc,CAAC,OAAD,KAAA;eAAW4C,iCAAA,CAAsC,OAAtC,CAAA,CAAA;OAAzB,CAAA,CAAA;MACjB,OAAA,IAAU,MAAM,IAAI3B,MAAJ,CAAe,IAAC,CAAA,cAAhB,EAAgC,IAAhC,EAAmCC,qCAAnC,EAA8EC,qCAA9E,EAAyH,cAAzH,CAAwI,CAAC,cAAzI,EAAN,CAAA,CAAA;AACV,MAAA,IAAC,CAAA,cAAc,CAAC,MAAhB,EAAA,CAAA;AACA,MAAA,IAAG,OAAH,IAAA,IAAA,EAAA;AAAiB,QAAA,OAAA,IAAI,iBAAJ,CAAsB,IAAC,CAAA,cAAvB,EAAuC,OAAvC,CAA+C,CAAC,qBAAhD,CAAsE,KAAtE,CAAjB,CAAA;OAAA,MAAA;eAAmG,IAAnG,CAAA;AAJD,OAAA;KAKA,CAAA,OAAA,MAAA,EAAA;AAAM,MAAA,KAAA,GAAA,MAAA,CAAA;MACL,IAAgB,KAAA,YAAiBnB,uBAAjC,EAAA;AAAA,QAAA,OAAO,IAAP,CAAA;;AACA,MAAA,MAAM,KAFP,CAAA;;AANK,GAAA;;EAUN,KAAO,CAAC,KAAD,EAAA;AACR,IAAA,IAAA,KAAA,EAAA,OAAA,EAAA,QAAA,CAAA;AAAE,IAAA,IAAA;MACC,QAAA,GAAW,IAAC,CAAA,YAAD,CAAc,CAAC,OAAD,KAAA;eAAW6C,kCAAA,CAAuC,OAAvC,CAAA,CAAA;OAAzB,CAAA,CAAA;AACX,MAAA,IAAC,CAAA,cAAc,CAAC,MAAhB,EAAA,CAAA;aACA,qBAAA,CAAA,CAAA,WAAA;;AAAsB,QAAA,OAAA,GAAA,EAAA,CAAA;AAAA,QAAA,KAAA,CAAA,GAAA,CAAA,EAAA,GAAA,GAAA,QAAA,CAAA,MAAA,EAAA,CAAA,GAAA,GAAA,EAAA,CAAA,EAAA,EAAA;;AAAA,UAAA,OAAA,CAAA,IAAA,CAAA,IAAI,iBAAJ,CAAsB,IAAC,CAAA,cAAvB,EAAuC,OAAvC,CAAA,CAAA,CAAA;SAAA;;AAAtB,OAAA,EAAA,IAAA,CAAA,IAAA,CAAA,EAA+F,KAA/F,CAHD,CAAA;KAIA,CAAA,OAAA,MAAA,EAAA;AAAM,MAAA,KAAA,GAAA,MAAA,CAAA;MACL,IAAgB,KAAA,YAAiB7C,uBAAjC,EAAA;AAAA,QAAA,OAAO,IAAP,CAAA;;AACA,MAAA,MAAM,KAFP,CAAA;;AALM,GAAA;;AA9BD,EAAA;;AAwCM,IAAA,iBAAA,GAAN,MAAA,iBAAA,SAAgC,QAAhC,CAAA;AAEN,EAAA,WAAa,CAAC,cAAD,EAAiB,UAAjB,EAAA;SACZ,EAAA,CAAA;IACA,IAAC,CAAA,cAAD,GAAkB,cAAA,CAAA;IAClB,IAAC,CAAA,UAAD,GAAc,UAAA,CAAA;AACd,IAAA,IAAiD,EAAK,IAAC,CAAA,UAAD,YAAuB,aAAxB,CAArD,EAAA;MAAA,IAAC,CAAA,UAAD,GAAc,IAAI,aAAJ,CAAkB,IAAC,CAAA,UAAnB,CAAd,CAAA;;IACA,IAAC,CAAA,cAAc,CAAC,YAAhB,CAA6B,CAAC,sBAAD,KAAA;aAC5B,IAAC,CAAA,UAAU,CAAC,YAAZ,CAAyB,CAAC,kBAAD,KAAA;AACxB,QAAA,OAAA,IAAC,CAAA,kBAAD,CAAoB,IAAC,CAAA,cAArB,EAAqC8C,+BAAA,CAAoC,sBAApC,EAA4D,kBAA5D,CAArC,EAAsHC,gCAAtH,CAAA,CAAA;OADD,CAAA,CAAA;KADD,CAAA,CAAA;AAGA,IAAA,IAAC,CAAA,cAAc,CAAC,MAAhB,EAAA,CAAA;AARY,GAAA;;AAUb,EAAA,SAAW,GAAA;AACZ,IAAA,IAAA,KAAA,CAAA;AAAE,IAAA,IAAA;AACC,MAAA,IAAC,CAAA,YAAD,CAAc,CAAC,OAAD,KAAA;eAAWC,qCAAA,CAA0C,OAA1C,CAAA,CAAA;OAAzB,CAAA,CAAA;AACA,MAAA,OAAA,IAAC,CAAA,cAAc,CAAC,MAAhB,EAFD,CAAA;KAGA,CAAA,OAAA,MAAA,EAAA;AAAM,MAAA,KAAA,GAAA,MAAA,CAAA;MACL,IAAgB,KAAA,YAAiBhD,uBAAjC,EAAA;AAAA,QAAA,OAAO,IAAP,CAAA;;AACA,MAAA,MAAM,KAFP,CAAA;;AAJU,GAAA;;EAQL,MAAN,IAAM,CAAC,KAAD,EAAA;AACP,IAAA,IAAA,KAAA,EAAA,cAAA,EAAA,OAAA,CAAA;AAAE,IAAA,IAAA;MACC,cAAA,GAAiB,IAAC,CAAA,YAAD,CAAc,CAAC,OAAD,KAAA;eAAWiD,gCAAA,CAAqC,OAArC,CAAA,CAAA;OAAzB,CAAA,CAAA;MACjB,OAAA,IAAU,MAAM,IAAIhC,MAAJ,CAAe,IAAC,CAAA,cAAhB,EAAgC,IAAhC,EAAmCC,qCAAnC,EAA8EC,qCAA9E,EAAyH,cAAzH,CAAwI,CAAC,cAAzI,EAAN,CAAA,CAAA;AACV,MAAA,IAAC,CAAA,cAAc,CAAC,MAAhB,EAAA,CAAA;AACA,MAAA,IAAG,OAAH,IAAA,IAAA,EAAA;AAAiB,QAAA,OAAA,IAAI,eAAJ,CAAoB,IAAC,CAAA,cAArB,EAAqC,OAArC,CAA6C,CAAC,qBAA9C,CAAoE,KAApE,CAAjB,CAAA;OAAA,MAAA;eAAiG,IAAjG,CAAA;AAJD,OAAA;KAKA,CAAA,OAAA,MAAA,EAAA;AAAM,MAAA,KAAA,GAAA,MAAA,CAAA;MACL,IAAgB,KAAA,YAAiBnB,uBAAjC,EAAA;AAAA,QAAA,OAAO,IAAP,CAAA;;AACA,MAAA,MAAM,KAFP,CAAA;;AANK,GAAA;;EAUN,KAAO,CAAC,KAAD,EAAA;AACR,IAAA,IAAA,KAAA,EAAA,OAAA,EAAA,QAAA,CAAA;AAAE,IAAA,IAAA;MACC,QAAA,GAAW,IAAC,CAAA,YAAD,CAAc,CAAC,OAAD,KAAA;eAAWkD,iCAAA,CAAsC,OAAtC,CAAA,CAAA;OAAzB,CAAA,CAAA;AACX,MAAA,IAAC,CAAA,cAAc,CAAC,MAAhB,EAAA,CAAA;aACA,qBAAA,CAAA,CAAA,WAAA;;AAAsB,QAAA,OAAA,GAAA,EAAA,CAAA;AAAA,QAAA,KAAA,CAAA,GAAA,CAAA,EAAA,GAAA,GAAA,QAAA,CAAA,MAAA,EAAA,CAAA,GAAA,GAAA,EAAA,CAAA,EAAA,EAAA;;AAAA,UAAA,OAAA,CAAA,IAAA,CAAA,IAAI,eAAJ,CAAoB,IAAC,CAAA,cAArB,EAAqC,OAArC,CAAA,CAAA,CAAA;SAAA;;AAAtB,OAAA,EAAA,IAAA,CAAA,IAAA,CAAA,EAA6F,KAA7F,CAHD,CAAA;KAIA,CAAA,OAAA,MAAA,EAAA;AAAM,MAAA,KAAA,GAAA,MAAA,CAAA;MACL,IAAgB,KAAA,YAAiBlD,uBAAjC,EAAA;AAAA,QAAA,OAAO,IAAP,CAAA;;AACA,MAAA,MAAM,KAFP,CAAA;;AALM,GAAA;;AA9BD;;AC1IP,IAAA,qBAAA,EAAA,kBAAA,CAAA;;AAKa,IAAA,aAAA,GAAN,MAAA,aAAA,SAA4B,SAA5B,CAAA;EAEN,WAAa,CAAC,IAAK,GAAA,MAAN,EAAA;SACZ,EAAA,CAAA;IACA,IAAC,CAAA,IAAD,GAAQ,IAAA,CAAA;AACR,IAAA,IAAC,CAAA,sBAAD,GAA0B,MAAA,CAAO,CAAP,CAAA,CAAA;IAC1B,IAAC,CAAA,qBAAD,GAAyB,EAAA,CAAA;IACzB,IAAC,CAAA,kBAAD,CAAoB,IAApB,EAA0BG,cAAA,CAAmBgD,0BAAA,CAA+B,IAAC,CAAA,IAAhC,CAAnB,CAA1B,EAAoFC,2BAApF,CAAA,CAAA;AALY,GAAA;;AAOb,EAAA,MAAQ,CAAC,kBAAD,EAAqB,eAArB,EAAA;WACP,IAAI,qBAAJ,CAA0B,IAA1B,EAA6B,CAAC,kBAAD,EAAqB,eAArB,CAA7B,CAAA,CAAA;AADO,GAAA;;EAGR,GAAK,CAAC,UAAD,EAAA;AACJ,IAAA,OAAA,IAAI,kBAAJ,CAAuB,IAAvB,EAA0B,UAA1B,CAAA,CAAA;AADI,GAAA;;AAGL,EAAA,QAAU,GAAA;AACX,IAAA,IAAA,EAAA,EAAA,OAAA,CAAA;IAAE,EAAA,GAAK,EAAE,IAAC,CAAA,sBAAA,CAAA;AACR,IAAA,OAAA,GAAU,IAAI,OAAJ,CAAY,CAAC,OAAD,KAAA;AAAW,MAAA,OAAA,IAAC,CAAA,qBAAqB,CAAC,EAAD,CAAtB,GAA2B,OAAA,CAAA;KAAlD,CAAA,CAAA;IACV,OAAO,CAAC,EAAR,GAAa,EAAA,CAAA;AACb,IAAA,OAAA,OAAA,CAAA;AAJS,GAAA;;AAMV,EAAA,MAAQ,GAAA;AACT,IAAA,IAAA,CAAA,EAAA,EAAA,EAAA,GAAA,EAAA,GAAA,EAAA,OAAA,CAAA;AAAE,IAAA,GAAA,GAAA,IAAA,CAAA,YAAA,CAAA,SAAA,OAAA,EAAA;;;AAAA,IAAA,OAAA,GAAA,EAAA,CAAA;AAAA,IAAA,KAAA,CAAA,GAAA,CAAA,EAAA,GAAA,GAAA,GAAA,CAAA,MAAA,EAAA,CAAA,GAAA,GAAA,EAAA,CAAA,EAAA,EAAA;AAAA,MAAA,EAAA,GAAA,GAAA,CAAA,CAAA,CAAA,CAAA;;AAEC,MAAA,IAAG,IAAH,CAAA,qBAAA,CAAA,EAAA,CAAA,IAAA,IAAA,EAAA;AACC,QAAA,IAAC,CAAA,qBAAqB,CAAC,EAAD,CAAtB,CAA2B,IAA3B,CAAA,CAAA;AACA,QAAA,OAAA,CAAA,IAAA,CAAA,OAAO,IAAC,CAAA,qBAAqB,CAAC,EAAD,CAF9B,CAAA,CAAA;OAAA,MAAA;AAAA,QAAA,OAAA,CAAA,IAAA,CAAA,KAAA,CAAA,CAAA,CAAA;;KAFD;;AADO,GAAA;;EAOR,eAAiB,CAAC,oBAAD,EAAA;AAChB,IAAA,OAAA,OAAO,IAAC,CAAA,qBAAqB,CAAC,oBAAoB,CAAC,EAAtB,CAAA,CAAA;AADb,GAAA;;AA5BX,EAAA;;AAgCD,qBAAA,GAAN,MAAA,qBAAA,CAAA;EACC,WAAa,CAAA,cAAA,aAAA,EAAA;AAAC,IAAA,IAAC,CAAA,cAAA,GAAA,cAAA,CAAA;AAAgB,IAAA,IAAC,CAAA,UAAA,GAAA,WAAA,CAAA;AAAnB,GAAA;;EACb,OAAS,CAAC,KAAD,EAAA;AAAW,IAAA,OAAA,IAAI,qBAAJ,CAA0B,IAAC,CAAA,cAA3B,EAA2C,IAAC,CAAA,UAA5C,CAAuD,CAAC,qBAAxD,CAA8E,KAA9E,CAAA,CAAA;AAAX,GAAA;;EACT,MAAQ,CAAC,KAAD,EAAA;AAAW,IAAA,OAAA,IAAI,oBAAJ,CAAyB,IAAC,CAAA,cAA1B,EAA0C,IAAC,CAAA,UAA3C,CAAsD,CAAC,qBAAvD,CAA6E,KAA7E,CAAA,CAAA;AAAX,GAAA;;AAHT,CAAA,CAAA;;AAMM,kBAAA,GAAN,MAAA,kBAAA,CAAA;EACC,WAAa,CAAA,cAAA,aAAA,EAAA;AAAC,IAAA,IAAC,CAAA,cAAA,GAAA,cAAA,CAAA;AAAgB,IAAA,IAAC,CAAA,UAAA,GAAA,WAAA,CAAA;AAAnB,GAAA;;EACb,OAAS,CAAC,KAAD,EAAA;AAAW,IAAA,OAAA,IAAI,kBAAJ,CAAuB,IAAC,CAAA,cAAxB,EAAwC,IAAC,CAAA,UAAzC,CAAoD,CAAC,qBAArD,CAA2E,KAA3E,CAAA,CAAA;AAAX,GAAA;;EACT,MAAQ,CAAC,KAAD,EAAA;AAAW,IAAA,OAAA,IAAI,iBAAJ,CAAsB,IAAC,CAAA,cAAvB,EAAuC,IAAC,CAAA,UAAxC,CAAmD,CAAC,qBAApD,CAA0E,KAA1E,CAAA,CAAA;AAAX,GAAA;;AAHT,CAAA;;ACvCA,IAAa,cAAA,GAAN,MAAA,cAAA,SAA6B,SAA7B,CAAA;EAEN,WAAa,CAAC,cAAD,EAAiB,QAAjB,EAA2B,YAA3B,EAAyC,YAAzC,EAAA;SACZ,EAAA,CAAA;IACA,IAAC,CAAA,cAAD,GAAkB,cAAA,CAAA;IAClB,IAAC,CAAA,cAAc,CAAC,YAAhB,CAA6B,CAAC,sBAAD,KAAA;aAC5B,IAAC,CAAA,kBAAD,CAAoB,IAAC,CAAA,cAArB,EAAqCC,2BAAA,CAAgC,sBAAhC,EAAwD,QAAxD,EAAkE,YAAlE,EAAgF,YAAhF,CAArC,EAAoIC,4BAApI,CAAA,CAAA;KADD,CAAA,CAAA;AAHY,GAAA;;EAMP,MAAN,IAAM,GAAA;AACP,IAAA,IAAA,KAAA,EAAA,cAAA,EAAA,OAAA,CAAA;AAAE,IAAA,IAAA;MACC,cAAA,GAAiB,IAAC,CAAA,YAAD,CAAc,CAAC,OAAD,KAAA;eAAWC,+CAAA,CAAoD,OAApD,CAAA,CAAA;OAAzB,CAAA,CAAA;MACjB,OAAA,IAAU,MAAM,IAAItC,MAAJ,CAAe,IAAC,CAAA,cAAhB,EAAgC,IAAhC,EAAmCC,qCAAnC,EAA8EC,qCAA9E,EAAyH,cAAzH,CAAwI,CAAC,cAAzI,EAAN,CAAA,CAAA;AACV,MAAA,IAAC,CAAA,cAAc,CAAC,MAAhB,EAAA,CAAA;aACA,OAJD,CAAA;KAKA,CAAA,OAAA,MAAA,EAAA;AAAM,MAAA,KAAA,GAAA,MAAA,CAAA;MACL,IAAgB,KAAA,YAAiBnB,uBAAjC,EAAA;AAAA,QAAA,OAAO,IAAP,CAAA;;AACA,MAAA,MAAM,KAFP,CAAA;;AANK,GAAA;;EAUA,MAAN,IAAM,CAAC,IAAD,EAAA;AACP,IAAA,IAAA,KAAA,EAAA,cAAA,CAAA;AAAE,IAAA,IAAA;MACC,cAAA,GAAiB,IAAC,CAAA,YAAD,CAAc,CAAC,OAAD,KAAA;eAAWwD,iDAAA,CAAsD,OAAtD,EAA+D,IAAI,UAAJ,CAAe,IAAf,CAA/D,CAAA,CAAA;OAAzB,CAAA,CAAA;MACjB,MAAM,IAAIvC,MAAJ,CAAe,IAAC,CAAA,cAAhB,EAAgC,IAAhC,EAAmCS,qCAAnC,EAA8EC,qCAA9E,EAAyH,cAAzH,CAAwI,CAAC,cAAzI,EAAA,CAAA;AACN,MAAA,OAAA,IAAC,CAAA,cAAc,CAAC,MAAhB,EAHD,CAAA;KAIA,CAAA,OAAA,MAAA,EAAA;AAAM,MAAA,KAAA,GAAA,MAAA,CAAA;MACL,IAAgB,KAAA,YAAiB3B,uBAAjC,EAAA;AAAA,QAAA,OAAO,IAAP,CAAA;;AACA,MAAA,MAAM,KAFP,CAAA;;AALK,GAAA;;AAlBA,CAAA;;;ACCP,IAAa,kBAAN,GAAA,MAAA,kBAAA,CAAA;AAEN,EAAA,WAAa,CAAA,cAAA,EAAA,GAAA,EAAiC,OAAA,GAAA,EAAjC,EAAA;AAoBb,IAAA,IAAA,CAAA,cAAA,CAAA,OAAA,CAAA,IAAA,CAAA,IAAA,CAAA,CAAA;AAsDA,IAAA,IAAA,CAAA,WAAA,CAAA,IAAA,CAAA,IAAA,CAAA,IAAA,CAAA,CAAA;AAGA,IAAA,IAAA,CAAA,WAAA,CAAA,IAAA,CAAA,IAAA,CAAA,IAAA,CAAA,CAAA;AA7Ec,IAAA,IAAC,CAAA,cAAA,GAAA,cAAA,CAAA;AAAgB,IAAA,IAAC,CAAA,GAAA,GAAA,GAAA,CAAA;AAAK,IAAA,IAAC,CAAA,OAAA,GAAA,OAAA,CAAA;IACrC,IAAC,CAAA,cAAD,CAAgB;AAAE,MAAA,SAAA,EAAW,KAAA;KAA7B,CAAA,CAAA;IACA,IAAC,CAAA,MAAD,GAAU,KAAA,CAAA,CAAA;IACV,IAAC,CAAA,kBAAD,GAAsB,KAAA,CAAA,CAAA;IACtB,IAAC,CAAA,kBAAD,GAAsB,IAAA,CAAA;IACtB,IAAC,CAAA,OAAD,EAAA,CAAA;AALY,GAAA;;AAOb,EAAA,MAAQ,GAAA;WACP,OAAO,CAAC,OAAR,CAAgB,CAAE,IAAC,CAAA,MAAH,EAAW,IAAC,CAAA,mBAAZ,CAAhB,CAAA,CAAA;AADO,GAAA;;EAGR,cAAgB,CAAC,UAAD,EAAA;AACjB,IAAA,IAAA,+BAAA,CAAA;IAAE,IAAC,CAAA,MAAD,GAAU,UAAA,CAAA;IACV,+BAAA,GAAkC,IAAC,CAAA,2BAAA,CAAA;IACnC,IAAC,CAAA,mBAAD,GAAuB,IAAI,OAAJ,CAAY,CAAA,2BAAA,KAAA;AAAC,MAAA,IAAC,CAAA,2BAAA,GAAA,2BAAA,CAAA;KAAd,CAAA,CAAA;AACvB,IAAA,IAAqE,+BAArE,IAAA,IAAA,EAAA;aAAA,+BAAA,CAAgC,CAAC,IAAC,CAAA,MAAF,EAAU,IAAC,CAAA,mBAAX,CAAhC,CAAA,CAAA;;AAJe,GAAA;;AAMhB,EAAA,UAAY,GAAA;IACX,IAAC,CAAA,kBAAD,GAAsB,KAAA,CAAA;AACtB,IAAA,IAAoB,IAApB,CAAA,MAAA,IAAA,IAAA,EAAA;AAAA,MAAA,OAAA,IAAC,CAAA,MAAM,CAAC,KAAR,EAAA,CAAA;;AAFW,GAAA;;AAIZ,EAAA,OAAS,GAAA;AACV,IAAA,IAAA,KAAA,CAAA;AAAE,IAAA,IAAsC,IAAtC,CAAA,kBAAA,IAAA,IAAA,EAAA;AAAA,MAAA,YAAA,CAAa,IAAC,CAAA,kBAAd,CAAA,CAAA;;IACA,IAAC,CAAA,kBAAD,GAAsB,KAAA,CAAA,CAAA;AAEtB,IAAA,IAAA;MACC,IAAC,CAAA,MAAD,GAAU,IAAI,SAAJ,CAAc,IAAC,CAAA,GAAf,CADX,CAAA;KAEA,CAAA,OAAA,MAAA,EAAA;AAAM,MAAA,KAAA,GAAA,MAAA,CAAA;AACL,MAAA,OAAO,CAAC,KAAR,CAAc,8CAAd,EAA8D,KAA9D,CAAA,CAAA;MACA,IAAC,CAAA,cAAD,CAAgB;AAAE,QAAA,SAAA,EAAW,KAAb;AAAoB,QAAA,KAAA,EAAO,KAAA;OAA3C,CAAA,CAAA;AACA,MAAA,OAAO,KAHR,CAAA;;AAKA,IAAA,IAAC,CAAA,MAAM,CAAC,UAAR,GAAqB,aAAA,CAAA;AAErB,IAAA,IAAC,CAAA,MAAM,CAAC,MAAR,GAAiB,MAAA;AAChB,MAAA,IAA0D,IAAC,CAAA,OAAO,CAAC,KAAnE,EAAA;AAAA,QAAA,OAAO,CAAC,KAAR,CAAc,sCAAd,CAAA,CAAA;;AACA,MAAA,IAAC,CAAA,eAAD,GAAmB,IAAI,cAAJ,CAAmB,IAAC,CAAA,cAApB,EAAoC,IAApC,EAA0C,IAA1C,EAAgD,IAAhD,CAAA,CAAA;MACnB,IAAC,CAAA,6BAAD,GAAiC,IAAI,OAAJ,CAAY,MAAC,OAAD,KAAA;AAChD,QAAA,IAAA,eAAA,CAAA;AAAI,QAAA,IAAA;AACC,UAAM,OAAA,CAAA,IAAA,CAAA,eAAA,IAAA,IAAA,MAAN,CAAA,eAAA,IAAA,MAAA,IAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,KAAA,IAAA,CAAA,EAAA;YACC,IAAC,CAAA,IAAD,CAAMyD,oBAAA,CAAyB,eAAzB,CAAN,CAAA,CAAA;WAFF;SAGA,CAAA,OAAA,MAAA,EAAA;AAAM,UAAA,KAAA,GAAA,MAAA,CAAA;AACL,UAAA,OAAO,CAAC,KAAR,CAAc,sCAAd,EAAsD,KAAtD,CAAA,CAAA;AACA,UAAA,IAAoB,IAApB,CAAA,MAAA,IAAA,IAAA,EAAA;AAAA,YAAA,IAAC,CAAA,MAAM,CAAC,KAAR,EAAA,CAAA;AAFD,WAAA;;AAGA,QAAA,OAAA,OAAA,EAAA,CAAA;OAPgC,CAAA,CAAA;aAQjC,IAAC,CAAA,cAAD,CAAgB;AAAE,QAAA,SAAA,EAAW,IAAA;OAA7B,CAAA,CAAA;KAvBH,CAAA;;IA0BE,IAAC,CAAA,MAAM,CAAC,OAAR,GAAkB,MAAC,KAAD,KAAA;AACjB,MAAA,IAA+D,IAAC,CAAA,OAAO,CAAC,KAAT,KAA/D,IAAA,CAAA,eAAA,IAAA,IAAA,CAAA,EAAA;AAAA,QAAA,OAAO,CAAC,KAAR,CAAc,2CAAd,CAAA,CAAA;;AACA,MAAA,IAAkE,IAAC,CAAA,OAAO,CAAC,KAAT,KAAlE,IAAA,CAAA,eAAA,IAAA,IAAA,CAAA,EAAA;AAAA,QAAA,OAAO,CAAC,KAAR,CAAc,8CAAd,CAAA,CAAA;;MACA,IAAC,CAAA,cAAD,CAAgB;AAAE,QAAA,SAAA,EAAW,KAAb;QAAoB,iBAAA,EAAmB,KAAK,CAAC,MAA7C;QAAqD,gBAAA,EAAkB,KAAK,CAAC,QAAA;OAA7F,CAAA,CAAA;MACA,IAAC,CAAA,MAAD,GAAU,KAAA,CAAA,CAAA;AACV,MAAA,IAAG,IAAH,CAAA,mBAAA,IAAA,IAAA,EAAA;QACC,aAAA,CAAc,IAAC,CAAA,mBAAf,CAAA,CAAA;QACA,IAAC,CAAA,mBAAD,GAAuB,IAFxB,CAAA;;AAGA,MAAA,IAAG,IAAH,CAAA,kBAAA,IAAA,IAAA,EAAA;QACC,YAAA,CAAa,IAAC,CAAA,kBAAd,CAAA,CAAA;QACA,IAAC,CAAA,kBAAD,GAAsB,IAFvB,CAAA;;AAGA,MAAA,IAAG,IAAH,CAAA,eAAA,IAAA,IAAA,EAAA;AACC,QAAA,MAAM,IAAC,CAAA,eAAe,CAAC,IAAjB,EAAA,CAAA;AACN,QAAA,MAAM,IAAC,CAAA,6BAAA,CAAA;QACP,IAAC,CAAA,6BAAD,GAAiC,IAAA,CAAA;QACjC,IAAC,CAAA,eAAD,GAAmB,IAJpB,CAAA;;MAKA,IAAG,IAAC,CAAA,kBAAJ,EAAA;eACC,IAAC,CAAA,kBAAD,GAAsB,UAAA,CAAW,IAAC,CAAA,OAAZ,EAAqB,IAArB,CADvB,CAAA;;AAhBiB,KAAA,CAAA;WAmBlB,IAAC,CAAA,MAAM,CAAC,SAAR,GAAoB,MAAC,KAAD,KAAA;AACnB,MAAA,IAAe,IAAf,CAAA,eAAA,IAAA,IAAA,EAAA;AAAA,QAAA,OAAA;;AACA,MAAA,IAAA;gBACC,MAAM,IAAC,CAAA,eAAe,CAAC,IAAjB,CAAsB,KAAK,CAAC,IAA5B,CAAN,EADD;OAEA,CAAA,OAAA,MAAA,EAAA;AAAM,QAAA,KAAA,GAAA,MAAA,CAAA;AACL,QAAA,OAAO,CAAC,KAAR,CAAc,sCAAd,EAAsD,KAAtD,CAAA,CAAA;AACA,QAAA,IAAoB,IAApB,CAAA,MAAA,IAAA,IAAA,EAAA;AAAA,UAAA,OAAA,IAAC,CAAA,MAAM,CAAC,KAAR,EAAA,CAAA;AAFD,SAAA;;AAJmB,KAAA,CAAA;AA9CZ,GAAA;;AAsDT,EAAA,IAAM,GAAA;IACL,IAAmC,IAAC,CAAA,MAApC,EAAA;aAAA,IAAC,CAAA,MAAM,CAAC,IAAR,CAAa,IAAI,UAAJ,EAAb,CAAA,CAAA;;AADK,GAAA;;EAGN,IAAM,CAAC,aAAD,EAAA;AACL,IAAA,IAAG,aAAa,CAAC,MAAd,GAAuB,CAA1B,EAAA;AACC,MAAA,IAAC,CAAA,MAAM,CAAC,IAAR,CAAa,aAAb,CAAA,CAAA;MACA,IAAwC,IAAC,CAAA,mBAAzC,EAAA;AAAA,QAAA,aAAA,CAAc,IAAC,CAAA,mBAAf,CAAA,CAAA;;aACA,IAAC,CAAA,mBAAD,GAAuB,WAAA,CAAY,IAAC,CAAA,IAAb,EAAmB,KAAnB,CAHxB,CAAA;;AADK,GAAA;;AA/EA;;ICDA,UAAA,GAAa,eAAC,SAAD,EAAA;AACpB,EAAA,IAAA,CAAA,EAAA,CAAA,EAAA,GAAA,EAAA,MAAA,EAAA,UAAA,EAAA,WAAA,CAAA;;EACC,WAAA,GAAc,IAAA,CAAK,mBAAL,CAAA,CAAA;AACd,EAAA,UAAA,GAAa,IAAI,UAAJ,CAAe,WAAW,CAAC,MAA3B,CAAA,CAAA;AACb,EAAA,KAAS,CAAT,GAAA,CAAA,GAAA,CAAA,EAAA,GAAA,GAAA,WAAA,CAAA,MAAA,GAAA,CAAA,IAAA,GAAA,GAAA,CAAA,IAAA,GAAA,GAAA,CAAA,IAAA,GAAA,GAAA,CAAA,GAAA,CAAA,IAAA,GAAA,GAAA,EAAA,CAAA,GAAA,EAAA,CAAA,EAAA;IACC,UAAU,CAAC,CAAD,CAAV,GAAgB,WAAW,CAAC,UAAZ,CAAuB,CAAvB,CAAA,CAAA;AADjB,GAAA;EAEA,MAAA,IAAS,MAAMC,IAAA,CAAmB,UAAnB,CAAN,CAAA,CAAA;AACT,EAAA,iBAAA,CAAkB,SAAlB,CAAA,CAAA;AACA,EAAA,OAAA,MAAA,CAAA;AARmB;;;;"}
|