-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathscene.js
More file actions
665 lines (508 loc) · 279 KB
/
Copy pathscene.js
File metadata and controls
665 lines (508 loc) · 279 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
(function(e, a) { for(var i in a) e[i] = a[i]; }(this, /******/ (function(modules) { // webpackBootstrap
/******/ // The module cache
/******/ var installedModules = {};
/******/
/******/ // The require function
/******/ function __webpack_require__(moduleId) {
/******/
/******/ // Check if module is in cache
/******/ if(installedModules[moduleId]) {
/******/ return installedModules[moduleId].exports;
/******/ }
/******/ // Create a new module (and put it into the cache)
/******/ var module = installedModules[moduleId] = {
/******/ i: moduleId,
/******/ l: false,
/******/ exports: {}
/******/ };
/******/
/******/ // Execute the module function
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/
/******/ // Flag the module as loaded
/******/ module.l = true;
/******/
/******/ // Return the exports of the module
/******/ return module.exports;
/******/ }
/******/
/******/
/******/ // expose the modules object (__webpack_modules__)
/******/ __webpack_require__.m = modules;
/******/
/******/ // expose the module cache
/******/ __webpack_require__.c = installedModules;
/******/
/******/ // define getter function for harmony exports
/******/ __webpack_require__.d = function(exports, name, getter) {
/******/ if(!__webpack_require__.o(exports, name)) {
/******/ Object.defineProperty(exports, name, {
/******/ configurable: false,
/******/ enumerable: true,
/******/ get: getter
/******/ });
/******/ }
/******/ };
/******/
/******/ // define __esModule on exports
/******/ __webpack_require__.r = function(exports) {
/******/ Object.defineProperty(exports, '__esModule', { value: true });
/******/ };
/******/
/******/ // getDefaultExport function for compatibility with non-harmony modules
/******/ __webpack_require__.n = function(module) {
/******/ var getter = module && module.__esModule ?
/******/ function getDefault() { return module['default']; } :
/******/ function getModuleExports() { return module; };
/******/ __webpack_require__.d(getter, 'a', getter);
/******/ return getter;
/******/ };
/******/
/******/ // Object.prototype.hasOwnProperty.call
/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
/******/
/******/ // __webpack_public_path__
/******/ __webpack_require__.p = "";
/******/
/******/
/******/ // Load entry module and return exports
/******/ return __webpack_require__(__webpack_require__.s = "../../../../private/var/folders/0_/kr62m4c52cd8yt590wm2qkb00000gn/T/0.7937663625771079.WebWorker.js");
/******/ })
/************************************************************************/
/******/ ({
/***/ "../../../../private/var/folders/0_/kr62m4c52cd8yt590wm2qkb00000gn/T/0.7937663625771079.WebWorker.js":
/*!************************************************************************************************!*\
!*** /private/var/folders/0_/kr62m4c52cd8yt590wm2qkb00000gn/T/0.7937663625771079.WebWorker.js ***!
\************************************************************************************************/
/*! no exports provided */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Users_dani_Code_arcade_node_modules_metaverse_rpc_lib_common_transports_WebWorker__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./node_modules/metaverse-rpc/lib/common/transports/WebWorker */ \"./node_modules/metaverse-rpc/lib/common/transports/WebWorker.js\");\n\n\nconst imported = __webpack_require__(/*! ./scene.tsx */ \"./scene.tsx\")\n\nif (imported && imported.__esModule && imported['default']) {\n new imported['default'](Object(_Users_dani_Code_arcade_node_modules_metaverse_rpc_lib_common_transports_WebWorker__WEBPACK_IMPORTED_MODULE_0__[\"WebWorkerTransport\"])(self))\n}\n\n\n//# sourceURL=webpack:////private/var/folders/0_/kr62m4c52cd8yt590wm2qkb00000gn/T/0.7937663625771079.WebWorker.js?");
/***/ }),
/***/ "./node_modules/base64-js/index.js":
/*!*****************************************!*\
!*** ./node_modules/base64-js/index.js ***!
\*****************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n for (var i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(\n uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)\n ))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n\n\n//# sourceURL=webpack:///./node_modules/base64-js/index.js?");
/***/ }),
/***/ "./node_modules/buffer/index.js":
/*!**************************************!*\
!*** ./node_modules/buffer/index.js ***!
\**************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("/* WEBPACK VAR INJECTION */(function(global) {/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh <feross@feross.org> <http://feross.org>\n * @license MIT\n */\n/* eslint-disable no-proto */\n\n\n\nvar base64 = __webpack_require__(/*! base64-js */ \"./node_modules/base64-js/index.js\")\nvar ieee754 = __webpack_require__(/*! ieee754 */ \"./node_modules/ieee754/index.js\")\nvar isArray = __webpack_require__(/*! isarray */ \"./node_modules/isarray/index.js\")\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n ? global.TYPED_ARRAY_SUPPORT\n : typedArraySupport()\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nexports.kMaxLength = kMaxLength()\n\nfunction typedArraySupport () {\n try {\n var arr = new Uint8Array(1)\n arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}\n return arr.foo() === 42 && // typed array instances can be augmented\n typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`\n } catch (e) {\n return false\n }\n}\n\nfunction kMaxLength () {\n return Buffer.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length')\n }\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length)\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length)\n }\n that.length = length\n }\n\n return that\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length)\n }\n\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error(\n 'If encoding is specified then the first argument must be a string'\n )\n }\n return allocUnsafe(this, arg)\n }\n return from(this, arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype\n return arr\n}\n\nfunction from (that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset)\n }\n\n return fromObject(that, value)\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length)\n}\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype\n Buffer.__proto__ = Uint8Array\n if (typeof Symbol !== 'undefined' && Symbol.species &&\n Buffer[Symbol.species] === Buffer) {\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true\n })\n }\n}\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n}\n\nfunction alloc (that, size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(that, size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(that, size).fill(fill, encoding)\n : createBuffer(that, size).fill(fill)\n }\n return createBuffer(that, size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding)\n}\n\nfunction allocUnsafe (that, size) {\n assertSize(size)\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0\n }\n }\n return that\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(null, size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size)\n}\n\nfunction fromString (that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n var length = byteLength(string, encoding) | 0\n that = createBuffer(that, length)\n\n var actual = that.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n that = that.slice(0, actual)\n }\n\n return that\n}\n\nfunction fromArrayLike (that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n that = createBuffer(that, length)\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255\n }\n return that\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n array.byteLength // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds')\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array)\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset)\n } else {\n array = new Uint8Array(array, byteOffset, length)\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array)\n }\n return that\n}\n\nfunction fromObject (that, obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n that = createBuffer(that, len)\n\n if (that.length === 0) {\n return that\n }\n\n obj.copy(that, 0, 0, len)\n return that\n }\n\n if (obj) {\n if ((typeof ArrayBuffer !== 'undefined' &&\n obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0)\n }\n return fromArrayLike(that, obj)\n }\n\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data)\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction checked (length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + kMaxLength().toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return !!(b != null && b._isBuffer)\n}\n\nBuffer.compare = function compare (a, b) {\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError('Arguments must be Buffers')\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos)\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string\n }\n\n var len = string.length\n if (len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) return utf8ToBytes(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length | 0\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')\n if (this.length > max) str += ' ... '\n }\n return '<Buffer ' + str + '>'\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (!Buffer.isBuffer(target)) {\n throw new TypeError('Argument must be a Buffer')\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (Buffer.TYPED_ARRAY_SUPPORT &&\n typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n // must be an even number of digits\n var strLen = string.length\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (isNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0\n if (isFinite(length)) {\n length = length | 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i])\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end)\n newBuf.__proto__ = Buffer.prototype\n } else {\n var sliceLen = end - start\n newBuf = new Buffer(sliceLen, undefined)\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start]\n }\n }\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n (littleEndian ? i : 1 - i) * 8\n }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff\n }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n var i\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start]\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start]\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if (code < 256) {\n val = code\n }\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n } else if (typeof val === 'number') {\n val = val & 255\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : utf8ToBytes(new Buffer(val, encoding).toString())\n var len = bytes.length\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction stringtrim (str) {\n if (str.trim) return str.trim()\n return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\nfunction isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\n}\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../webpack/buildin/global.js */ \"./node_modules/webpack/buildin/global.js\")))\n\n//# sourceURL=webpack:///./node_modules/buffer/index.js?");
/***/ }),
/***/ "./node_modules/event-lite/event-lite.js":
/*!***********************************************!*\
!*** ./node_modules/event-lite/event-lite.js ***!
\***********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("/**\n * event-lite.js - Light-weight EventEmitter (less than 1KB when gzipped)\n *\n * @copyright Yusuke Kawasaki\n * @license MIT\n * @constructor\n * @see https://github.com/kawanet/event-lite\n * @see http://kawanet.github.io/event-lite/EventLite.html\n * @example\n * var EventLite = require(\"event-lite\");\n *\n * function MyClass() {...} // your class\n *\n * EventLite.mixin(MyClass.prototype); // import event methods\n *\n * var obj = new MyClass();\n * obj.on(\"foo\", function() {...}); // add event listener\n * obj.once(\"bar\", function() {...}); // add one-time event listener\n * obj.emit(\"foo\"); // dispatch event\n * obj.emit(\"bar\"); // dispatch another event\n * obj.off(\"foo\"); // remove event listener\n */\n\nfunction EventLite() {\n if (!(this instanceof EventLite)) return new EventLite();\n}\n\n(function(EventLite) {\n // export the class for node.js\n if (true) module.exports = EventLite;\n\n // property name to hold listeners\n var LISTENERS = \"listeners\";\n\n // methods to export\n var methods = {\n on: on,\n once: once,\n off: off,\n emit: emit\n };\n\n // mixin to self\n mixin(EventLite.prototype);\n\n // export mixin function\n EventLite.mixin = mixin;\n\n /**\n * Import on(), once(), off() and emit() methods into target object.\n *\n * @function EventLite.mixin\n * @param target {Prototype}\n */\n\n function mixin(target) {\n for (var key in methods) {\n target[key] = methods[key];\n }\n return target;\n }\n\n /**\n * Add an event listener.\n *\n * @function EventLite.prototype.on\n * @param type {string}\n * @param func {Function}\n * @returns {EventLite} Self for method chaining\n */\n\n function on(type, func) {\n getListeners(this, type).push(func);\n return this;\n }\n\n /**\n * Add one-time event listener.\n *\n * @function EventLite.prototype.once\n * @param type {string}\n * @param func {Function}\n * @returns {EventLite} Self for method chaining\n */\n\n function once(type, func) {\n var that = this;\n wrap.originalListener = func;\n getListeners(that, type).push(wrap);\n return that;\n\n function wrap() {\n off.call(that, type, wrap);\n func.apply(this, arguments);\n }\n }\n\n /**\n * Remove an event listener.\n *\n * @function EventLite.prototype.off\n * @param [type] {string}\n * @param [func] {Function}\n * @returns {EventLite} Self for method chaining\n */\n\n function off(type, func) {\n var that = this;\n var listners;\n if (!arguments.length) {\n delete that[LISTENERS];\n } else if (!func) {\n listners = that[LISTENERS];\n if (listners) {\n delete listners[type];\n if (!Object.keys(listners).length) return off.call(that);\n }\n } else {\n listners = getListeners(that, type, true);\n if (listners) {\n listners = listners.filter(ne);\n if (!listners.length) return off.call(that, type);\n that[LISTENERS][type] = listners;\n }\n }\n return that;\n\n function ne(test) {\n return test !== func && test.originalListener !== func;\n }\n }\n\n /**\n * Dispatch (trigger) an event.\n *\n * @function EventLite.prototype.emit\n * @param type {string}\n * @param [value] {*}\n * @returns {boolean} True when a listener received the event\n */\n\n function emit(type, value) {\n var that = this;\n var listeners = getListeners(that, type, true);\n if (!listeners) return false;\n var arglen = arguments.length;\n if (arglen === 1) {\n listeners.forEach(zeroarg);\n } else if (arglen === 2) {\n listeners.forEach(onearg);\n } else {\n var args = Array.prototype.slice.call(arguments, 1);\n listeners.forEach(moreargs);\n }\n return !!listeners.length;\n\n function zeroarg(func) {\n func.call(that);\n }\n\n function onearg(func) {\n func.call(that, value);\n }\n\n function moreargs(func) {\n func.apply(that, args);\n }\n }\n\n /**\n * @ignore\n */\n\n function getListeners(that, type, readonly) {\n if (readonly && !that[LISTENERS]) return;\n var listeners = that[LISTENERS] || (that[LISTENERS] = {});\n return listeners[type] || (listeners[type] = []);\n }\n\n})(EventLite);\n\n\n//# sourceURL=webpack:///./node_modules/event-lite/event-lite.js?");
/***/ }),
/***/ "./node_modules/ieee754/index.js":
/*!***************************************!*\
!*** ./node_modules/ieee754/index.js ***!
\***************************************/
/*! no static exports found */
/***/ (function(module, exports) {
eval("exports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n\n\n//# sourceURL=webpack:///./node_modules/ieee754/index.js?");
/***/ }),
/***/ "./node_modules/int64-buffer/int64-buffer.js":
/*!***************************************************!*\
!*** ./node_modules/int64-buffer/int64-buffer.js ***!
\***************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("/* WEBPACK VAR INJECTION */(function(Buffer) {// int64-buffer.js\n\n/*jshint -W018 */ // Confusing use of '!'.\n/*jshint -W030 */ // Expected an assignment or function call and instead saw an expression.\n/*jshint -W093 */ // Did you mean to return a conditional instead of an assignment?\n\nvar Uint64BE, Int64BE, Uint64LE, Int64LE;\n\n!function(exports) {\n // constants\n\n var UNDEFINED = \"undefined\";\n var BUFFER = (UNDEFINED !== typeof Buffer) && Buffer;\n var UINT8ARRAY = (UNDEFINED !== typeof Uint8Array) && Uint8Array;\n var ARRAYBUFFER = (UNDEFINED !== typeof ArrayBuffer) && ArrayBuffer;\n var ZERO = [0, 0, 0, 0, 0, 0, 0, 0];\n var isArray = Array.isArray || _isArray;\n var BIT32 = 4294967296;\n var BIT24 = 16777216;\n\n // storage class\n\n var storage; // Array;\n\n // generate classes\n\n Uint64BE = factory(\"Uint64BE\", true, true);\n Int64BE = factory(\"Int64BE\", true, false);\n Uint64LE = factory(\"Uint64LE\", false, true);\n Int64LE = factory(\"Int64LE\", false, false);\n\n // class factory\n\n function factory(name, bigendian, unsigned) {\n var posH = bigendian ? 0 : 4;\n var posL = bigendian ? 4 : 0;\n var pos0 = bigendian ? 0 : 3;\n var pos1 = bigendian ? 1 : 2;\n var pos2 = bigendian ? 2 : 1;\n var pos3 = bigendian ? 3 : 0;\n var fromPositive = bigendian ? fromPositiveBE : fromPositiveLE;\n var fromNegative = bigendian ? fromNegativeBE : fromNegativeLE;\n var proto = Int64.prototype;\n var isName = \"is\" + name;\n var _isInt64 = \"_\" + isName;\n\n // properties\n proto.buffer = void 0;\n proto.offset = 0;\n proto[_isInt64] = true;\n\n // methods\n proto.toNumber = toNumber;\n proto.toString = toString;\n proto.toJSON = toNumber;\n proto.toArray = toArray;\n\n // add .toBuffer() method only when Buffer available\n if (BUFFER) proto.toBuffer = toBuffer;\n\n // add .toArrayBuffer() method only when Uint8Array available\n if (UINT8ARRAY) proto.toArrayBuffer = toArrayBuffer;\n\n // isUint64BE, isInt64BE\n Int64[isName] = isInt64;\n\n // CommonJS\n exports[name] = Int64;\n\n return Int64;\n\n // constructor\n function Int64(buffer, offset, value, raddix) {\n if (!(this instanceof Int64)) return new Int64(buffer, offset, value, raddix);\n return init(this, buffer, offset, value, raddix);\n }\n\n // isUint64BE, isInt64BE\n function isInt64(b) {\n return !!(b && b[_isInt64]);\n }\n\n // initializer\n function init(that, buffer, offset, value, raddix) {\n if (UINT8ARRAY && ARRAYBUFFER) {\n if (buffer instanceof ARRAYBUFFER) buffer = new UINT8ARRAY(buffer);\n if (value instanceof ARRAYBUFFER) value = new UINT8ARRAY(value);\n }\n\n // Int64BE() style\n if (!buffer && !offset && !value && !storage) {\n // shortcut to initialize with zero\n that.buffer = newArray(ZERO, 0);\n return;\n }\n\n // Int64BE(value, raddix) style\n if (!isValidBuffer(buffer, offset)) {\n var _storage = storage || Array;\n raddix = offset;\n value = buffer;\n offset = 0;\n buffer = new _storage(8);\n }\n\n that.buffer = buffer;\n that.offset = offset |= 0;\n\n // Int64BE(buffer, offset) style\n if (UNDEFINED === typeof value) return;\n\n // Int64BE(buffer, offset, value, raddix) style\n if (\"string\" === typeof value) {\n fromString(buffer, offset, value, raddix || 10);\n } else if (isValidBuffer(value, raddix)) {\n fromArray(buffer, offset, value, raddix);\n } else if (\"number\" === typeof raddix) {\n writeInt32(buffer, offset + posH, value); // high\n writeInt32(buffer, offset + posL, raddix); // low\n } else if (value > 0) {\n fromPositive(buffer, offset, value); // positive\n } else if (value < 0) {\n fromNegative(buffer, offset, value); // negative\n } else {\n fromArray(buffer, offset, ZERO, 0); // zero, NaN and others\n }\n }\n\n function fromString(buffer, offset, str, raddix) {\n var pos = 0;\n var len = str.length;\n var high = 0;\n var low = 0;\n if (str[0] === \"-\") pos++;\n var sign = pos;\n while (pos < len) {\n var chr = parseInt(str[pos++], raddix);\n if (!(chr >= 0)) break; // NaN\n low = low * raddix + chr;\n high = high * raddix + Math.floor(low / BIT32);\n low %= BIT32;\n }\n if (sign) {\n high = ~high;\n if (low) {\n low = BIT32 - low;\n } else {\n high++;\n }\n }\n writeInt32(buffer, offset + posH, high);\n writeInt32(buffer, offset + posL, low);\n }\n\n function toNumber() {\n var buffer = this.buffer;\n var offset = this.offset;\n var high = readInt32(buffer, offset + posH);\n var low = readInt32(buffer, offset + posL);\n if (!unsigned) high |= 0; // a trick to get signed\n return high ? (high * BIT32 + low) : low;\n }\n\n function toString(radix) {\n var buffer = this.buffer;\n var offset = this.offset;\n var high = readInt32(buffer, offset + posH);\n var low = readInt32(buffer, offset + posL);\n var str = \"\";\n var sign = !unsigned && (high & 0x80000000);\n if (sign) {\n high = ~high;\n low = BIT32 - low;\n }\n radix = radix || 10;\n while (1) {\n var mod = (high % radix) * BIT32 + low;\n high = Math.floor(high / radix);\n low = Math.floor(mod / radix);\n str = (mod % radix).toString(radix) + str;\n if (!high && !low) break;\n }\n if (sign) {\n str = \"-\" + str;\n }\n return str;\n }\n\n function writeInt32(buffer, offset, value) {\n buffer[offset + pos3] = value & 255;\n value = value >> 8;\n buffer[offset + pos2] = value & 255;\n value = value >> 8;\n buffer[offset + pos1] = value & 255;\n value = value >> 8;\n buffer[offset + pos0] = value & 255;\n }\n\n function readInt32(buffer, offset) {\n return (buffer[offset + pos0] * BIT24) +\n (buffer[offset + pos1] << 16) +\n (buffer[offset + pos2] << 8) +\n buffer[offset + pos3];\n }\n }\n\n function toArray(raw) {\n var buffer = this.buffer;\n var offset = this.offset;\n storage = null; // Array\n if (raw !== false && offset === 0 && buffer.length === 8 && isArray(buffer)) return buffer;\n return newArray(buffer, offset);\n }\n\n function toBuffer(raw) {\n var buffer = this.buffer;\n var offset = this.offset;\n storage = BUFFER;\n if (raw !== false && offset === 0 && buffer.length === 8 && Buffer.isBuffer(buffer)) return buffer;\n var dest = new BUFFER(8);\n fromArray(dest, 0, buffer, offset);\n return dest;\n }\n\n function toArrayBuffer(raw) {\n var buffer = this.buffer;\n var offset = this.offset;\n var arrbuf = buffer.buffer;\n storage = UINT8ARRAY;\n if (raw !== false && offset === 0 && (arrbuf instanceof ARRAYBUFFER) && arrbuf.byteLength === 8) return arrbuf;\n var dest = new UINT8ARRAY(8);\n fromArray(dest, 0, buffer, offset);\n return dest.buffer;\n }\n\n function isValidBuffer(buffer, offset) {\n var len = buffer && buffer.length;\n offset |= 0;\n return len && (offset + 8 <= len) && (\"string\" !== typeof buffer[offset]);\n }\n\n function fromArray(destbuf, destoff, srcbuf, srcoff) {\n destoff |= 0;\n srcoff |= 0;\n for (var i = 0; i < 8; i++) {\n destbuf[destoff++] = srcbuf[srcoff++] & 255;\n }\n }\n\n function newArray(buffer, offset) {\n return Array.prototype.slice.call(buffer, offset, offset + 8);\n }\n\n function fromPositiveBE(buffer, offset, value) {\n var pos = offset + 8;\n while (pos > offset) {\n buffer[--pos] = value & 255;\n value /= 256;\n }\n }\n\n function fromNegativeBE(buffer, offset, value) {\n var pos = offset + 8;\n value++;\n while (pos > offset) {\n buffer[--pos] = ((-value) & 255) ^ 255;\n value /= 256;\n }\n }\n\n function fromPositiveLE(buffer, offset, value) {\n var end = offset + 8;\n while (offset < end) {\n buffer[offset++] = value & 255;\n value /= 256;\n }\n }\n\n function fromNegativeLE(buffer, offset, value) {\n var end = offset + 8;\n value++;\n while (offset < end) {\n buffer[offset++] = ((-value) & 255) ^ 255;\n value /= 256;\n }\n }\n\n // https://github.com/retrofox/is-array\n function _isArray(val) {\n return !!val && \"[object Array]\" == Object.prototype.toString.call(val);\n }\n\n}(typeof exports === 'object' && typeof exports.nodeName !== 'string' ? exports : (this || {}));\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../buffer/index.js */ \"./node_modules/buffer/index.js\").Buffer))\n\n//# sourceURL=webpack:///./node_modules/int64-buffer/int64-buffer.js?");
/***/ }),
/***/ "./node_modules/isarray/index.js":
/*!***************************************!*\
!*** ./node_modules/isarray/index.js ***!
\***************************************/
/*! no static exports found */
/***/ (function(module, exports) {
eval("var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n\n\n//# sourceURL=webpack:///./node_modules/isarray/index.js?");
/***/ }),
/***/ "./node_modules/metaverse-api/lib/ScriptableScene.js":
/*!***********************************************************!*\
!*** ./node_modules/metaverse-api/lib/ScriptableScene.js ***!
\***********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst _1 = __webpack_require__(/*! . */ \"./node_modules/metaverse-api/lib/index.js\");\nconst future_1 = __webpack_require__(/*! ./utils/future */ \"./node_modules/metaverse-api/lib/utils/future.js\");\nexports.defer = Promise.resolve().then.bind(Promise.resolve());\n/** Managed queue of dirty components to be re-rendered */\nlet items = [];\nfunction enqueueRender(scene) {\n if (!scene._dirty) {\n scene._dirty = true;\n if (items.push(scene) === 1) {\n exports.defer(rerender);\n }\n }\n}\nfunction rerender() {\n let p;\n const list = items;\n items = [];\n // tslint:disable-next-line:no-conditional-assignment\n while ((p = list.pop())) {\n if (p._dirty)\n renderScriptableScene(p);\n }\n}\nfunction recursiveRender(tree) {\n if (typeof tree.tag === 'function') {\n const hoc = tree.tag;\n if (hoc.constructor && hoc.prototype) {\n throw new Error('Only pure functions are allowed');\n }\n return hoc(Object.assign({}, tree.attrs, { children: tree.children }));\n }\n return {\n tag: tree.tag,\n attrs: tree.attrs,\n children: tree.children.map(recursiveRender)\n };\n}\nexports.recursiveRender = recursiveRender;\n/**\n * Render a ScriptableScene, triggering necessary lifecycle events and taking High-Order ScriptableScenes into account.\n * @param {ScriptableScene} scene\n * @internal\n */\nfunction renderScriptableScene(scene, force) {\n let props = scene.props;\n let state = scene.state;\n let previousProps = scene.prevProps || props;\n let previousState = scene.prevState || state;\n let skip = false;\n const isUpdate = !!scene._component;\n // if updating\n if (isUpdate) {\n scene.props = previousProps;\n scene.state = previousState;\n if (!force && scene.shouldSceneUpdate && scene.shouldSceneUpdate(props, state) === false) {\n skip = true;\n }\n scene.props = props;\n scene.state = state;\n }\n scene.prevProps = scene.prevState = null;\n scene._dirty = false;\n if (!skip) {\n let rendererResult = scene.render(props, state);\n if (!('then' in rendererResult && 'catch' in rendererResult)) {\n rendererResult = Promise.resolve(rendererResult);\n }\n rendererResult\n .then(recursiveRender)\n .then(async (rendered) => {\n scene._component = rendered;\n if (scene.sceneDidUpdate) {\n scene.sceneDidUpdate(previousProps, previousState);\n }\n await scene.connectionFuture;\n try {\n // TODO(agus): diff/patch\n await scene.entityController.render(rendered);\n }\n catch (e) {\n if (e.message === _1.EventNames.ReplaceWholeTreeException) {\n await scene.entityController.render(rendered);\n }\n else {\n throw e;\n }\n }\n })\n .catch(err => {\n // tslint:disable-next-line:no-console\n console.error(err);\n });\n }\n}\nexports.renderScriptableScene = renderScriptableScene;\n/**\n * Base Scene class.\n * Provides `setState()` and `forceUpdate()`, which trigger rendering.\n * @public\n *\n * @example\n * class MyFoo extends ScriptableScene {\n * async render() {\n * return <sphere />;\n * }\n * }\n */\nclass ScriptableScene extends _1.Script {\n constructor() {\n super(...arguments);\n this._dirty = true;\n this.prevProps = null;\n this.prevState = null;\n this._component = null;\n this.state = {};\n this.connectionFuture = future_1.future();\n }\n /**\n * Update scene state by copying properties from `state` to `this.state`.\n * @param {object} state A hash of state properties to update with new values\n */\n setState(state) {\n let s = this.state;\n if (!this.prevState)\n this.prevState = Object.assign({}, s);\n Object.assign(s, typeof state === 'function' ? state(s, this.props) : state);\n enqueueRender(this);\n }\n /**\n * Immediately perform a synchronous re-render of the component.\n */\n forceUpdate() {\n renderScriptableScene(this, true);\n }\n async systemDidEnable() {\n this.props = (await this.entityController.getOwnAttributes());\n // we create an event subscriber\n this.eventSubscriber = new _1.EventSubscriber(this.entityController);\n this.on('SIGKILL', () => {\n if (this.sceneWillUnmount) {\n this.sceneWillUnmount();\n }\n });\n this.eventSubscriber.on(_1.EventNames.setAttributes, (newProps) => {\n this.prevProps = this.props;\n this.props = newProps.data.detail;\n enqueueRender(this);\n });\n this.connectionFuture.resolve(this);\n renderScriptableScene(this, true);\n if (this.sceneDidMount) {\n this.sceneDidMount();\n }\n }\n}\n__decorate([\n _1.inject('EntityController'),\n __metadata(\"design:type\", Object)\n], ScriptableScene.prototype, \"entityController\", void 0);\nexports.ScriptableScene = ScriptableScene;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2NyaXB0YWJsZVNjZW5lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL1NjcmlwdGFibGVTY2VuZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBLHdCQUFrRztBQUNsRywyQ0FBdUM7QUFFMUIsUUFBQSxLQUFLLEdBQUcsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUE7QUFFbkUsMERBQTBEO0FBRTFELElBQUksS0FBSyxHQUFnQyxFQUFFLENBQUE7QUFFM0MsdUJBQTZCLEtBQTRCO0lBQ3ZELElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFO1FBQ2pCLEtBQUssQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFBO1FBQ25CLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDM0IsYUFBSyxDQUFDLFFBQVEsQ0FBQyxDQUFBO1NBQ2hCO0tBQ0Y7QUFDSCxDQUFDO0FBRUQ7SUFDRSxJQUFJLENBQThCLENBQUE7SUFDbEMsTUFBTSxJQUFJLEdBQXNCLEtBQUssQ0FBQTtJQUNyQyxLQUFLLEdBQUcsRUFBRSxDQUFBO0lBQ1YscURBQXFEO0lBQ3JELE9BQU8sQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUU7UUFDdkIsSUFBSSxDQUFDLENBQUMsTUFBTTtZQUFFLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxDQUFBO0tBQ3ZDO0FBQ0gsQ0FBQztBQUVELHlCQUFnQyxJQUFxQjtJQUNuRCxJQUFJLE9BQU8sSUFBSSxDQUFDLEdBQUcsS0FBSyxVQUFVLEVBQUU7UUFDbEMsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQWUsQ0FBQTtRQUNoQyxJQUFJLEdBQUcsQ0FBQyxXQUFXLElBQUksR0FBRyxDQUFDLFNBQVMsRUFBRTtZQUNwQyxNQUFNLElBQUksS0FBSyxD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RSxDQUFDLFNBQVMsRUFBRSxHQUFHLEVBQUU7WUFDdEIsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7Z0JBQ3pCLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFBO2FBQ3hCO1FBQ0gsQ0FBQyxDQUFDLENBQUE7UUFFRixJQUFJLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxhQUFVLENBQUMsYUFBYSxFQUFFLENBQUMsUUFBcUMsRUFBRSxFQUFFO1lBQzFGLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQTtZQUMzQixJQUFJLENBQUMsS0FBSyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFBO1lBQ2pDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUNyQixDQUFDLENBQUMsQ0FBQTtRQUVGLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUE7UUFFbkMscUJBQXFCLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFBO1FBRWpDLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUN0QixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUE7U0FDckI7SUFDSCxDQUFDO0NBQ0Y7QUFwRTZCO0lBQTNCLFNBQU0sQ0FBQyxrQkFBa0IsQ0FBQzs7eURBQW9DO0FBRGpFLDBDQXFFQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNjcmlwdCwgaW5qZWN0LCBFbnRpdHlDb250cm9sbGVyLCBJU2ltcGxpZmllZE5vZGUsIEV2ZW50U3Vic2NyaWJlciwgRXZlbnROYW1lcyB9IGZyb20gJy4nXG5pbXBvcnQgeyBmdXR1cmUgfSBmcm9tICcuL3V0aWxzL2Z1dHVyZSdcblxuZXhwb3J0IGNvbnN0IGRlZmVyID0gUHJvbWlzZS5yZXNvbHZlKCkudGhlbi5iaW5kKFByb21pc2UucmVzb2x2ZSgpKVxuXG4vKiogTWFuYWdlZCBxdWV1ZSBvZiBkaXJ0eSBjb21wb25lbnRzIHRvIGJlIHJlLXJlbmRlcmVkICovXG5cbmxldCBpdGVtczogU2NyaXB0YWJsZVNjZW5lPGFueSwgYW55PltdID0gW11cblxuZnVuY3Rpb24gZW5xdWV1ZVJlbmRlcjxELCBUPihzY2VuZTogU2NyaXB0YWJsZVNjZW5lPEQsIFQ+KSB7XG4gIGlmICghc2NlbmUuX2RpcnR5KSB7XG4gICAgc2NlbmUuX2RpcnR5ID0gdHJ1ZVxuICAgIGlmIChpdGVtcy5wdXNoKHNjZW5lKSA9PT0gMSkge1xuICAgICAgZGVmZXIocmVyZW5kZXIpXG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIHJlcmVuZGVyKCkge1xuICBsZXQgcDogU2NyaXB0YWJsZVNjZW5lIHwgdW5kZWZpbmVkXG4gIGNvbnN0IGxpc3Q6IFNjcmlwdGFibGVTY2VuZVtdID0gaXRlbXNcbiAgaXRlbXMgPSBbXVxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tY29uZGl0aW9uYWwtYXNzaWdubWVudFxuICB3aGlsZSAoKHAgPSBsaXN0LnBvcCgpKSkge1xuICAgIGlmIChwLl9kaXJ0eSkgcmVuZGVyU2NyaXB0YWJsZVNjZW5lKHApXG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlY3Vyc2l2ZVJlbmRlcih0cmVlOiBJU2ltcGxpZmllZE5vZGUpOiBJU2ltcGxpZmllZE5vZGUge1xuICBpZiAodHlwZW9mIHRyZWUudGFnID09PSAnZnVuY3Rpb24nKSB7XG4gICAgY29uc3QgaG9jID0gdHJlZS50YWcgYXMgRnVuY3Rpb25cbiAgICBpZiAoaG9jLmNvbnN0cnVjdG9yICYmIGhvYy5wcm90b3R5cGUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignT25seSBwdXJlIGZ1bmN0aW9ucyBhcmUgYWxsb3dlZCcpXG4gICAgfVxuICAgIHJldHVybiBob2MoeyAuLi50cmVlLmF0dHJzLCBjaGlsZHJlbjogdHJlZS5jaGlsZHJlbiB9KVxuICB9XG4gIHJldHVybiB7XG4gICAgdGFnOiB0cmVlLnRhZyxcbiAgICBhdHRyczogdHJlZS5hdHRycyxcbiAgICBjaGlsZHJlbjogdHJlZS5jaGlsZHJlbi5tYXAocmVjdXJzaXZlUmVuZGVyKVxuICB9XG59XG5cbi8qKlxuICogUmVuZGVyIGEgU2NyaXB0YWJsZVNjZW5lLCB0cmlnZ2VyaW5nIG5lY2Vzc2FyeSBsaWZlY3ljbGUgZXZlbnRzIGFuZCB0YWtpbmcgSGlnaC1PcmRlciBTY3JpcHRhYmxlU2NlbmVzIGludG8gYWNjb3VudC5cbiAqIEBwYXJhbSB7U2NyaXB0YWJsZVNjZW5lfSBzY2VuZVxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZW5kZXJTY3JpcHRhYmxlU2NlbmU8UHJvcHMsIFN0YXRlPihzY2VuZTogU2NyaXB0YWJsZVNjZW5lPFByb3BzLCBTdGF0ZT4sIGZvcmNlPzogYm9vbGVhbikge1xuICBsZXQgcHJvcHMgPSBzY2VuZS5wcm9wc1xuICBsZXQgc3RhdGUgPSBzY2VuZS5zdGF0ZVxuICBsZXQgcHJldmlvdXNQcm9wcyA9IHNjZW5lLnByZXZQcm9wcyB8fCBwcm9wc1xuICBsZXQgcHJldmlvdXNTdGF0ZSA9IHNjZW5lLnByZXZTdGF0ZSB8fCBzdGF0ZVxuICBsZXQgc2tpcCA9IGZhbHNlXG4gIGNvbnN0IGlzVXBkYXRlID0gISFzY2VuZS5fY29tcG9uZW50XG5cbiAgLy8gaWYgdXBkYXRpbmdcbiAgaWYgKGlzVXBkYXRlKSB7XG4gICAgc2NlbmUucHJvcHMgPSBwcmV2aW91c1Byb3BzXG4gICAgc2NlbmUuc3RhdGUgPSBwcmV2aW91c1N0YXRlXG4gICAgaWYgKCFmb3JjZSAmJiBzY2VuZS5zaG91bGRTY2VuZVVwZGF0ZSAmJiBzY2VuZS5zaG91bGRTY2VuZVVwZGF0ZShwcm9wcywgc3RhdGUpID09PSBmYWxzZSkge1xuICAgICAgc2tpcCA9IHRydWVcbiAgICB9XG4gICAgc2NlbmUucHJvcHMgPSBwcm9wc1xuICAgIHNjZW5lLnN0YXRlID0gc3RhdGVcbiAgfVxuXG4gIHNjZW5lLnByZXZQcm9wcyA9IHNjZW5lLnByZXZTdGF0ZSA9IG51bGxcbiAgc2NlbmUuX2RpcnR5ID0gZmFsc2VcblxuICBpZiAoIXNraXApIHtcbiAgICBsZXQgcmVuZGVyZXJSZXN1bHQgPSBzY2VuZS5yZW5kZXIocHJvcHMsIHN0YXRlKVxuXG4gICAgaWYgKCEoJ3RoZW4nIGluIHJlbmRlcmVyUmVzdWx0ICYmICdjYXRjaCcgaW4gcmVuZGVyZXJSZXN1bHQpKSB7XG4gICAgICByZW5kZXJlclJlc3VsdCA9IFByb21pc2UucmVzb2x2ZShyZW5kZXJlclJlc3VsdClcbiAgICB9XG5cbiAgICByZW5kZXJlclJlc3VsdFxuICAgICAgLnRoZW4ocmVjdXJzaXZlUmVuZGVyKVxuICAgICAgLnRoZW4oYXN5bmMgcmVuZGVyZWQgPT4ge1xuICAgICAgICBzY2VuZS5fY29tcG9uZW50ID0gcmVuZGVyZWRcblxuICAgICAgICBpZiAoc2NlbmUuc2NlbmVEaWRVcGRhdGUpIHtcbiAgICAgICAgICBzY2VuZS5zY2VuZURpZFVwZGF0ZShwcmV2aW91c1Byb3BzLCBwcmV2aW91c1N0YXRlKVxuICAgICAgICB9XG5cbiAgICAgICAgYXdhaXQgc2NlbmUuY29ubmVjdGlvbkZ1dHVyZVxuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgLy8gVE9ETyhhZ3VzKTogZGlmZi9wYXRjaFxuICAgICAgICAgIGF3YWl0IHNjZW5lLmVudGl0eUNvbnRyb2xsZXIucmVuZGVyKHJlbmRlcmVkKVxuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgaWYgKGUubWVzc2FnZSA9PT0gRXZlbnROYW1lcy5SZXBsYWNlV2hvbGVUcmVlRXhjZXB0aW9uKSB7XG4gICAgICAgICAgICBhd2FpdCBzY2VuZS5lbnRpdHlDb250cm9sbGVyLnJlbmRlcihyZW5kZXJlZClcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhyb3cgZVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSlcbiAgICAgIC5jYXRjaChlcnIgPT4ge1xuICAgICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tY29uc29sZVxuICAgICAgICBjb25zb2xlLmVycm9yKGVycilcbiAgICAgIH0pXG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBTY3JpcHRhYmxlU2NlbmU8UHJvcHMsIFN0YXRlPiB7XG4gIHByb3BzOiBQcm9wc1xuICBzdGF0ZTogU3RhdGVcblxuICAvKipcbiAgICogQ2FsbGVkIHRvIGRldGVybWluZSB3aGV0aGVyIHRoZSBjaGFuZ2UgaW4gcHJvcHMgYW5kIHN0YXRlIHNob3VsZCB0cmlnZ2VyIGEgcmUtcmVuZGVyLlxuICAgKlxuICAgKiBJZiBmYWxzZSBpcyByZXR1cm5lZCwgYFNjcmlwdGFibGVTY2VuZSNyZW5kZXJgLCBhbmQgYHNjZW5lRGlkVXBkYXRlYCB3aWxsIG5vdCBiZSBjYWxsZWQuXG4gICAqL1xuICBzaG91bGRTY2VuZVVwZGF0ZT8obmV4dFByb3BzOiBQcm9wcywgbmV4dFN0YXRlOiBTdGF0ZSk6IGJvb2xlYW5cblxuICAvKipcbiAgICogQ2FsbGVkIGltbWVkaWF0ZWx5IGJlZm9yZSBhIHNjZW5lIGlzIGRlc3Ryb3llZC4gUGVyZm9ybSBhbnkgbmVjZXNzYXJ5IGNsZWFudXAgaW4gdGhpcyBtZXRob2QsIHN1Y2ggYXNcbiAgICogY2FuY2VsbGVkIG5ldHdvcmsgcmVxdWVzdHMsIG9yIGNsZWFuaW5nIHVwIGFueSBlbGVtZW50cyBjcmVhdGVkIGluIGBzY2VuZURpZE1vdW50YC5cbiAgICovXG4gIHNjZW5lV2lsbFVubW91bnQ/KCk6IHZvaWRcblxuICAvKipcbiAgICogQ2FsbGVkIGltbWVkaWF0ZWx5IGFmdGVyIGEgY29tcG9tZW50IGlzIG1vdW50ZWQuIFNldHRpbmcgc3RhdGUgaGVyZSB3aWxsIHRyaWdnZXIgcmUtcmVuZGVyaW5nLlxuICAgKi9cbiAgc2NlbmVEaWRNb3VudD8oKTogdm9pZFxuXG4gIC8qKlxuICAgKiBDYWxsZWQgaW1tZWRpYXRlbHkgYWZ0ZXIgdXBkYXRpbmcgb2NjdXJzLiBOb3QgY2FsbGVkIGZvciB0aGUgaW5pdGlhbCByZW5kZXIuXG4gICAqL1xuICBzY2VuZURpZFVwZGF0ZT8ocHJldlByb3BzOiBSZWFkb25seTxQcm9wcz4sIHByZXZTdGF0ZTogUmVhZG9ubHk8U3RhdGU+KTogdm9pZFxufVxuXG4vKipcbiAqIEJhc2UgU2NlbmUgY2xhc3MuXG4gKiBQcm92aWRlcyBgc2V0U3RhdGUoKWAgYW5kIGBmb3JjZVVwZGF0ZSgpYCwgd2hpY2ggdHJpZ2dlciByZW5kZXJpbmcuXG4gKiBAcHVibGljXG4gKlxuICogQGV4YW1wbGVcbiAqIGNsYXNzIE15Rm9vIGV4dGVuZHMgU2NyaXB0YWJsZVNjZW5lIHtcbiAqICAgYXN5bmMgcmVuZGVyKCkge1xuICogICAgIHJldHVybiA8c3BoZXJlIC8+O1xuICogICB9XG4gKiB9XG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBTY3JpcHRhYmxlU2NlbmU8UHJvcHMgPSB7fSwgU3RhdGUgPSB7fT4gZXh0ZW5kcyBTY3JpcHQge1xuICBAaW5qZWN0KCdFbnRpdHlDb250cm9sbGVyJykgZW50aXR5Q29udHJvbGxlciE6IEVudGl0eUNvbnRyb2xsZXJcblxuICBldmVudFN1YnNjcmliZXIhOiBFdmVudFN1YnNjcmliZXJcblxuICBfZGlydHkgPSB0cnVlXG5cbiAgcHJldlByb3BzOiBQcm9wcyB8IG51bGwgPSBudWxsXG4gIHByZXZTdGF0ZTogU3RhdGUgfCBudWxsID0gbnVsbFxuICBfY29tcG9uZW50OiBJU2ltcGxpZmllZE5vZGUgfCBudWxsID0gbnVsbFxuXG4gIHN0YXRlOiBTdGF0ZSA9IHt9IGFzIFN0YXRlXG5cbiAgY29ubmVjdGlvbkZ1dHVyZSA9IGZ1dHVyZTxTY3JpcHQ+KClcblxuICBwcm9wcyE6IFByb3BzXG5cbiAgLyoqXG4gICAqIFVwZGF0ZSBzY2VuZSBzdGF0ZSBieSBjb3B5aW5nIHByb3BlcnRpZXMgZnJvbSBgc3RhdGVgIHRvIGB0aGlzLnN0YXRlYC5cbiAgICogQHBhcmFtIHtvYmplY3R9IHN0YXRlIEEgaGFzaCBvZiBzdGF0ZSBwcm9wZXJ0aWVzIHRvIHVwZGF0ZSB3aXRoIG5ldyB2YWx1ZXNcbiAgICovXG4gIHNldFN0YXRlKHN0YXRlOiBQYXJ0aWFsPFN0YXRlPiB8ICgoc3RhdGU6IFN0YXRlLCBwcm9wczogUHJvcHMpID0+IFBhcnRpYWw8U3RhdGU+KSk6IHZvaWQge1xuICAgIGxldCBzID0gdGhpcy5zdGF0ZVxuICAgIGlmICghdGhpcy5wcmV2U3RhdGUpIHRoaXMucHJldlN0YXRlID0gT2JqZWN0LmFzc2lnbih7fSwgcylcbiAgICBPYmplY3QuYXNzaWduKHMsIHR5cGVvZiBzdGF0ZSA9PT0gJ2Z1bmN0aW9uJyA/IHN0YXRlKHMsIHRoaXMucHJvcHMpIDogc3RhdGUpXG4gICAgZW5xdWV1ZVJlbmRlcih0aGlzKVxuICB9XG5cbiAgLyoqXG4gICAqIEltbWVkaWF0ZWx5IHBlcmZvcm0gYSBzeW5jaHJvbm91cyByZS1yZW5kZXIgb2YgdGhlIGNvbXBvbmVudC5cbiAgICovXG4gIGZvcmNlVXBkYXRlKCkge1xuICAgIHJlbmRlclNjcmlwdGFibGVTY2VuZSh0aGlzLCB0cnVlKVxuICB9XG5cbiAgLyoqXG4gICAqIEFjY2VwdHMgYHByb3BzYCBhbmQgYHN0YXRlYCwgYW5kIHJldHVybnMgYSBuZXcgVmlydHVhbCBET00gdHJlZSB0byBidWlsZC5cbiAgICogVmlydHVhbCBET00gaXMgZ2VuZXJhbGx5IGNvbnN0cnVjdGVkIHZpYSBbSlNYXShodHRwOi8vamFzb25mb3JtYXQuY29tL3d0Zi1pcy1qc3gpLlxuICAgKiBAcGFyYW0ge29iamVjdH0gcHJvcHMgICAgUHJvcHMgKGVnOiBKU1ggYXR0cmlidXRlcykgcmVjZWl2ZWQgZnJvbSBwYXJlbnQgZWxlbWVudC9jb21wb25lbnRcbiAgICogQHBhcmFtIHtvYmplY3R9IHN0YXRlICAgIFRoZSBjb21wb25lbnQncyBjdXJyZW50IHN0YXRlXG4gICAqL1xuICBhYnN0cmFjdCBhc3luYyByZW5kZXIocHJvcHM6IFByb3BzLCBzdGF0ZTogU3RhdGUpOiBQcm9taXNlPElTaW1wbGlmaWVkTm9kZT5cblxuICBhc3luYyBzeXN0ZW1EaWRFbmFibGUoKSB7XG4gICAgdGhpcy5wcm9wcyA9IChhd2FpdCB0aGlzLmVudGl0eUNvbnRyb2xsZXIuZ2V0T3duQXR0cmlidXRlcygpKSBhcyBQcm9wc1xuXG4gICAgLy8gd2UgY3JlYXRlIGFuIGV2ZW50IHN1YnNjcmliZXJcbiAgICB0aGlzLmV2ZW50U3Vic2NyaWJlciA9IG5ldyBFdmVudFN1YnNjcmliZXIodGhpcy5lbnRpdHlDb250cm9sbGVyKVxuXG4gICAgdGhpcy5vbignU0lHS0lMTCcsICgpID0+IHtcbiAgICAgIGlmICh0aGlzLnNjZW5lV2lsbFVubW91bnQpIHtcbiAgICAgICAgdGhpcy5zY2VuZVdpbGxVbm1vdW50KClcbiAgICAgIH1cbiAgICB9KVxuXG4gICAgdGhpcy5ldmVudFN1YnNjcmliZXIub24oRXZlbnROYW1lcy5zZXRBdHRyaWJ1dGVzLCAobmV3UHJvcHM6IHsgZGF0YTogeyBkZXRhaWw6IFByb3BzIH0gfSkgPT4ge1xuICAgICAgdGhpcy5wcmV2UHJvcHMgPSB0aGlzLnByb3BzXG4gICAgICB0aGlzLnByb3BzID0gbmV3UHJvcHMuZGF0YS5kZXRhaWxcbiAgICAgIGVucXVldWVSZW5kZXIodGhpcylcbiAgICB9KVxuXG4gICAgdGhpcy5jb25uZWN0aW9uRnV0dXJlLnJlc29sdmUodGhpcylcblxuICAgIHJlbmRlclNjcmlwdGFibGVTY2VuZSh0aGlzLCB0cnVlKVxuXG4gICAgaWYgKHRoaXMuc2NlbmVEaWRNb3VudCkge1xuICAgICAgdGhpcy5zY2VuZURpZE1vdW50KClcbiAgICB9XG4gIH1cbn1cbiJdfQ==\n\n//# sourceURL=webpack:///./node_modules/metaverse-api/lib/ScriptableScene.js?");
/***/ }),
/***/ "./node_modules/metaverse-api/lib/index.js":
/*!*************************************************!*\
!*** ./node_modules/metaverse-api/lib/index.js ***!
\*************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("/* WEBPACK VAR INJECTION */(function(global) {\nfunction __export(m) {\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__export(__webpack_require__(/*! metaverse-rpc */ \"./node_modules/metaverse-rpc/lib/client/index.js\"));\n__export(__webpack_require__(/*! metaverse-rpc/lib/common/transports/WebWorker */ \"./node_modules/metaverse-rpc/lib/common/transports/WebWorker.js\"));\n__export(__webpack_require__(/*! metaverse-rpc/lib/common/transports/WebSocket */ \"./node_modules/metaverse-rpc/lib/common/transports/WebSocket.js\"));\n__export(__webpack_require__(/*! metaverse-rpc/lib/common/core/EventDispatcher */ \"./node_modules/metaverse-rpc/lib/common/core/EventDispatcher.js\"));\n__export(__webpack_require__(/*! ./interfaces */ \"./node_modules/metaverse-api/lib/interfaces.js\"));\nconst ScriptableScene_1 = __webpack_require__(/*! ./ScriptableScene */ \"./node_modules/metaverse-api/lib/ScriptableScene.js\");\nexports.ScriptableScene = ScriptableScene_1.ScriptableScene;\nconst createElement_1 = __webpack_require__(/*! ./internal/createElement */ \"./node_modules/metaverse-api/lib/internal/createElement.js\");\nexports.createElement = createElement_1.createElement;\nif (typeof global !== 'undefined') {\n global['createElement'] = global['createElement'] || createElement_1.createElement;\n}\nelse if (typeof window !== 'undefined') {\n // tslint:disable-next-line:semicolon\n ;\n window['createElement'] = window['createElement'] || createElement_1.createElement;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxtQ0FBNkI7QUFDN0IsbUVBQTZEO0FBQzdELG1FQUE2RDtBQUM3RCxtRUFBNkQ7QUFDN0Qsa0NBQTRCO0FBRzVCLHVEQUFtRDtBQUczQiwwQkFIZixpQ0FBZSxDQUdlO0FBRnZDLDREQUF3RDtBQUUvQyx3QkFGQSw2QkFBYSxDQUVBO0FBR3RCLElBQUksT0FBTyxNQUFNLEtBQUssV0FBVyxFQUFFO0lBQ2pDLE1BQU0sQ0FBQyxlQUFlLENBQUMsR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDLElBQUksNkJBQWEsQ0FBQTtDQUNuRTtLQUFNLElBQUksT0FBTyxNQUFNLEtBQUssV0FBVyxFQUFFO0lBQ3hDLHFDQUFxQztJQUNyQyxDQUFDO0lBQUMsTUFBYyxDQUFDLGVBQWUsQ0FBQyxHQUFJLE1BQWMsQ0FBQyxlQUFlLENBQUMsSUFBSSw2QkFBYSxDQUFBO0NBQ3RGIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnbWV0YXZlcnNlLXJwYydcbmV4cG9ydCAqIGZyb20gJ21ldGF2ZXJzZS1ycGMvbGliL2NvbW1vbi90cmFuc3BvcnRzL1dlYldvcmtlcidcbmV4cG9ydCAqIGZyb20gJ21ldGF2ZXJzZS1ycGMvbGliL2NvbW1vbi90cmFuc3BvcnRzL1dlYlNvY2tldCdcbmV4cG9ydCAqIGZyb20gJ21ldGF2ZXJzZS1ycGMvbGliL2NvbW1vbi9jb3JlL0V2ZW50RGlzcGF0Y2hlcidcbmV4cG9ydCAqIGZyb20gJy4vaW50ZXJmYWNlcydcbmV4cG9ydCAqIGZyb20gJy4vSlNYJ1xuXG5pbXBvcnQgeyBTY3JpcHRhYmxlU2NlbmUgfSBmcm9tICcuL1NjcmlwdGFibGVTY2VuZSdcbmltcG9ydCB7IGNyZWF0ZUVsZW1lbnQgfSBmcm9tICcuL2ludGVybmFsL2NyZWF0ZUVsZW1lbnQnXG5cbmV4cG9ydCB7IGNyZWF0ZUVsZW1lbnQsIFNjcmlwdGFibGVTY2VuZSB9XG5cbmRlY2xhcmUgdmFyIGdsb2JhbDogYW55XG5pZiAodHlwZW9mIGdsb2JhbCAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgZ2xvYmFsWydjcmVhdGVFbGVtZW50J10gPSBnbG9iYWxbJ2NyZWF0ZUVsZW1lbnQnXSB8fCBjcmVhdGVFbGVtZW50XG59IGVsc2UgaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnKSB7XG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpzZW1pY29sb25cbiAgOyh3aW5kb3cgYXMgYW55KVsnY3JlYXRlRWxlbWVudCddID0gKHdpbmRvdyBhcyBhbnkpWydjcmVhdGVFbGVtZW50J10gfHwgY3JlYXRlRWxlbWVudFxufVxuIl19\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../webpack/buildin/global.js */ \"./node_modules/webpack/buildin/global.js\")))\n\n//# sourceURL=webpack:///./node_modules/metaverse-api/lib/index.js?");
/***/ }),
/***/ "./node_modules/metaverse-api/lib/interfaces.js":
/*!******************************************************!*\
!*** ./node_modules/metaverse-api/lib/interfaces.js ***!
\******************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar EventNames;\n(function (EventNames) {\n // DO NOT EVER CHANGE THESE VALUES\n EventNames.ReplaceWholeTreeException = 'ReplaceWholeTreeException';\n EventNames.setAttributes = 'setAttributes';\n})(EventNames = exports.EventNames || (exports.EventNames = {}));\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9pbnRlcmZhY2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBNkZBLElBQWlCLFVBQVUsQ0FLMUI7QUFMRCxXQUFpQixVQUFVO0lBQ3pCLGtDQUFrQztJQUVyQixvQ0FBeUIsR0FBRywyQkFBMkIsQ0FBQTtJQUN2RCx3QkFBYSxHQUFHLGVBQWUsQ0FBQTtBQUM5QyxDQUFDLEVBTGdCLFVBQVUsR0FBVixrQkFBVSxLQUFWLGtCQUFVLFFBSzFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlmZlBhY2tldCB9IGZyb20gJy4vaW50ZXJuYWwvdHlwZXMnXG5leHBvcnQgeyBJRW50aXR5IH0gZnJvbSAnLi9pbnRlcm5hbC9hcHBseVBhdGNoJ1xuXG5leHBvcnQgaW50ZXJmYWNlIElTaW1wbGlmaWVkTm9kZSB7XG4gIHRhZzogc3RyaW5nXG4gIGNoaWxkcmVuOiBJU2ltcGxpZmllZE5vZGVbXVxuICBhdHRyczogeyBbbmFtZTogc3RyaW5nXTogc3RyaW5nIHwgbnVtYmVyW10gfCBvYmplY3QgfCBib29sZWFuIHwgbnVtYmVyIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBJZGVudGl0eSB7XG4gIGdldFVzZXJQdWJsaWNLZXkoKTogUHJvbWlzZTxzdHJpbmc+XG59XG5cbmV4cG9ydCB0eXBlIExhbmREYXRhVmVyc2lvbjAgPSB7XG4gIHZlcnNpb246IDBcbiAgbmFtZTogc3RyaW5nXG4gIGRlc2NyaXB0aW9uOiBzdHJpbmdcbiAgaXBuczogc3RyaW5nXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUxhbmQge1xuICB4OiBudW1iZXJcbiAgeTogbnVtYmVyXG4gIGhhc2g6IHN0cmluZ1xuICBvd25lcjogc3RyaW5nXG4gIGxhbmREYXRhOiBMYW5kRGF0YVZlcnNpb24wXG4gIHNjZW5lPzogYW55XG4gIGJhc2VVcmw6IHN0cmluZ1xuICBodG1sPzogc3RyaW5nXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGFyY2VsSWRlbnRpdHkge1xuICBnZXRQYXJjZWwoKTogUHJvbWlzZTx7IHg6IG51bWJlcjsgeTogbnVtYmVyOyBsYW5kOiBJTGFuZCB9PlxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEVudGl0eUNvbnRyb2xsZXIge1xuICBnZXRPd25BdHRyaWJ1dGVzKCk6IFByb21pc2U8eyBba2V5OiBzdHJpbmddOiBhbnkgfT5cbiAgcmVuZGVyKGVsZW1lbnQ6IElTaW1wbGlmaWVkTm9kZSB8IERpZmZQYWNrZXQpOiBQcm9taXNlPHZvaWQ+XG4gIHN1YnNjcmliZShldmVudDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPlxuICB1bnN1YnNjcmliZShldmVudDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPlxuICBvblN1YnNjcmliZWRFdmVudChmbjogYW55KTogdm9pZFxuICBzZXRFbnRpdHlBdHRyaWJ1dGVzKGVudGl0eUlkOiBzdHJpbmcsIGF0dHJpYnV0ZXM6IHsgW2tleTogc3RyaW5nXTogYW55IH0pOiBQcm9taXNlPHZvaWQ+XG4gIGdldEVudGl0eUF0dHJpYnV0ZShlbnRpdHlJZDogc3RyaW5nLCBhdHRyaWJ1dGU6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPlxuICBnZXRPd25BdHRyaWJ1dGVzKCk6IFByb21pc2U8eyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfT5cbn1cblxuZXhwb3J0IGludGVyZmFjZSBFdGhlcmV1bUNvbnRyb2xsZXIge1xuICAvKipcbiAgICogVXNlIFNlcnZpY2VMb2NhdG9yIGNvbnRyYWN0IHRvIHJlc29sdmUgYW4gY29udHJhY3QgbmFtZXNwYWNlXG4gICAqIEBwYXJhbSAge3N0cmluZ30gW25hbWVzcGFjZV0gLSBuYW1lc3BhY2UgdG8gcmVzb2x2ZVxuICAgKiBAcmV0dXJuIHtzdHJpbmd9IC0gQWRkcmVzcyBvZiB0aGUgY29udHJhY3RcbiAgICovXG4gIHJlc29sdmVBZGRyZXNzKG5hbWVzcGFjZTogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+XG5cbiAgLyoqXG4gICAqIENoZWNrIGEgRVJDNzIxIGNvbnRyYWN0IGZvciBvd25lcnNoaXAgc3RhdHVzXG4gICAqIEBwYXJhbSAge3N0cmluZ30gW293bmVyQWRkcmVzc10gLSBuYW1lc3BhY2UgdG8gcmVzb2x2ZVxuICAgKiBAcGFyYW0gIHtzdHJpbmd9IFt0b2tlbklkXSAtIHRva2VuSWQgaW4gdGhlIHJlZ2lzdHJ5IGNvbnRyYWN0XG4gICAqIEBwYXJhbSAge3N0cmluZ30gW3JlZ2lzdHJ5QWRkcmVzc10gLSBhZGRyZXNzIG9mIHRoZSBFUkM3MjEgREFSLlxuICAgKiBAcmV0dXJuIHtzdHJpbmd9IC0gdHJ1ZSBpZiBwcm92aWRlZCBhZGRyZXNzIGlzIHRoZSBvd25lciBvZiB0aGUgYXNzZXQuXG4gICAqL1xuICBpc093bmVyT2ZDb2xsZWN0aWJsZShvd25lckFkZHJlc3M6IHN0cmluZywgdG9rZW5JZDogc3RyaW5nLCByZWdpc3RyeUFkZHJlc3M6IHN0cmluZyk6IFByb21pc2U8Ym9vbGVhbj5cblxuICAvKipcbiAgICogRXhlY3V0ZXMgYSBvcmRlciBmcm9tIHRoZSBtYXJrZXRwbGFjZSBjb250cmFjdFxuICAgKiBAcGFyYW0gIHtzdHJpbmd9IFthc3NldElkXSAtIE5GVCBhc3NldCBpZC5cbiAgICogQHBhcmFtICB7c3RyaW5nfSBbYW1vdW50XSAtIEV4YWN0IGFtb3VudCBvZiB0aGUgb3JkZXIuXG4gICAqIEBwYXJhbSAge3N0cmluZ30gW21hcmtldHBsYWNlQWRkcmVzc10gLSBNYXJrZXRwbGFjZSBjb250cmFjdCBhZGRyZXNzLlxuICAgKi9cbiAgYnV5Q29sbGVjdGlibGUoYXNzZXRJZDogc3RyaW5nLCBhbW91bnQ6IHN0cmluZywgbWFya2V0cGxhY2VBZGRyZXNzOiBzdHJpbmcpOiBQcm9taXNlPGFueT5cblxuICAvKipcbiAgICogUmVxdWlyZXMgYSBnZW5lcmljIHBheW1lbnQgaW4gRVRIIG9yIEVSQzIwLlxuICAgKiBAcGFyYW0gIHtzdHJpbmd9IFt0b0FkZHJlc3NdIC0gTkZUIGFzc2V0IGlkLlxuICAgKiBAcGFyYW0gIHtzdHJpbmd9IFthbW91bnRdIC0gRXhhY3QgYW1vdW50IG9mIHRoZSBvcmRlci5cbiAgICogQHBhcmFtICB7c3RyaW5nfSBbY3VycmVuY3ldIC0gRVRIIG9yIEVSQzIwIHN1cHBvcnRlZCB0b2tlbiBzeW1ib2xcbiAgICovXG4gIHJlcXVpcmVQYXltZW50KHRvQWRkcmVzczogc3RyaW5nLCBhbW91bnQ6IHN0cmluZywgY3VycmVuY3k6IHN0cmluZyk6IFByb21pc2U8YW55PlxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNvdW5kT3B0aW9ucyB7XG4gIHZvbHVtZTogbnVtYmVyXG4gIGxvb3A6IGJvb2xlYW5cbn1cblxuZXhwb3J0IGludGVyZmFjZSBDaGFyYWN0ZXJzSWRlbnRpdHkge1xuICBnZXRNeVBvc2l0aW9uSW5QYXJjZWwoKTogUHJvbWlzZTx7IHBvc2l0aW9uOiB7IHg6IG51bWJlcjsgeTogbnVtYmVyOyB6OiBudW1iZXIgfSB9PlxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNvdW5kQ29udHJvbGxlciB7XG4gIHBsYXlTb3VuZChzcmM6IHN0cmluZywgb3B0aW9ucz86IHsgdm9sdW1lPzogbnVtYmVyOyBlbnRpdHk/OiBzdHJpbmc7IGxvb3A/OiBib29sZWFuIH0pOiBQcm9taXNlPHZvaWQ+XG59XG5cbmV4cG9ydCBuYW1lc3BhY2UgRXZlbnROYW1lcyB7XG4gIC8vIERPIE5PVCBFVkVSIENIQU5HRSBUSEVTRSBWQUxVRVNcblxuICBleHBvcnQgY29uc3QgUmVwbGFjZVdob2xlVHJlZUV4Y2VwdGlvbiA9ICdSZXBsYWNlV2hvbGVUcmVlRXhjZXB0aW9uJ1xuICBleHBvcnQgY29uc3Qgc2V0QXR0cmlidXRlcyA9ICdzZXRBdHRyaWJ1dGVzJ1xufVxuXG5leHBvcnQgdHlwZSBWZWN0b3IzQ29tcG9uZW50ID0ge1xuICB4OiBudW1iZXJcbiAgeTogbnVtYmVyXG4gIHo6IG51bWJlclxufVxuXG5leHBvcnQgdHlwZSBWZWN0b3IyQ29tcG9uZW50ID0ge1xuICB4OiBudW1iZXJcbiAgeTogbnVtYmVyXG59XG5cbmV4cG9ydCB0eXBlIE1hdGVyaWFsQ29tcG9uZW50ID0ge1xuICBjb2xvcj86IHN0cmluZ1xuICBhbHBoYVRlc3Q/OiBudW1iZXJcbiAgZGVwdGhUZXN0PzogYm9vbGVhblxuICBvcGFjaXR5PzogbnVtYmVyXG4gIHNpZGU/OiAnYmFjaycgfCAnZnJvbnQnIHwgJ2RvdWJsZSdcbiAgdHJhbnNwYXJlbnQ/OiBib29sZWFuXG4gIHZlcnRleENvbG9ycz86IGJvb2xlYW5cbiAgdmlzaWJsZT86IGJvb2xlYW5cbiAgYW1iaWVudE9jY2x1c2lvbk1hcD86IHN0cmluZ1xuICBhbWJpZW50T2NjbHVzaW9uSW50ZW5zaXR5PzogbnVtYmVyXG4gIG1ldGFsbmVzcz86IG51bWJlclxuICByb3VnaG5lc3M/OiBudW1iZXJcbiAgc3JjPzogc3RyaW5nXG4gIHJlcGVhdD86IFZlY3RvcjJDb21wb25lbnRcbiAgb2Zmc2V0PzogVmVjdG9yMkNvbXBvbmVudFxuICB3aXJlZnJhbWU/OiBib29sZWFuXG59XG5cbmV4cG9ydCB0eXBlIFNvdW5kQ29tcG9uZW50ID0ge1xuICBhdXRvcGxheT86IGJvb2xlYW5cbiAgZGlzdGFuY2VNb2RlbD86ICdsaW5lYXInIHwgJ2ludmVyc2UnIHwgJ2V4cG9uZW50aWFsJ1xuICBsb29wPzogYm9vbGVhblxuICBtYXhEaXN0YW5jZT86IG51bWJlclxuICBvbj86IHN0cmluZ1xuICBwb29sU2l6ZT86IG51bWJlclxuICBwb3NpdGlvbmFsPzogYm9vbGVhblxuICByZWZEaXN0YW5jZT86IG51bWJlclxuICByb2xsb2ZmRmFjdG9yPzogbnVtYmVyXG4gIHNyYzogc3RyaW5nXG4gIHZvbHVtZT86IG51bWJlclxufVxuXG5leHBvcnQgdHlwZSBUcmFuc2l0aW9uVmFsdWUgPSB7XG4gIGR1cmF0aW9uOiBudW1iZXJcbiAgdGltaW5nPzogc3RyaW5nXG4gIGRlbGF5PzogbnVtYmVyXG59XG5cbmV4cG9ydCB0eXBlIFRyYW5zaXRpb25Db21wb25lbnQgPSB7XG4gIHBvc2l0aW9uPzogVHJhbnNpdGlvblZhbHVlXG4gIHJvdGF0aW9uPzogVHJhbnNpdGlvblZhbHVlXG4gIGNvbG9yPzogVHJhbnNpdGlvblZhbHVlXG59XG5cbmV4cG9ydCB0eXBlIFNrZWxldGFsQW5pbWF0aW9uVmFsdWUgPSB7XG4gIGNsaXA6IHN0cmluZyB8IG51bWJlclxuICBsb29wPzogYm9vbGVhblxuICB3ZWlnaHQ/OiBudW1iZXJcbiAgcGxheWluZz86IGJvb2xlYW5cbn1cblxuZXhwb3J0IHR5cGUgU2tlbGV0YWxBbmltYXRpb25Db21wb25lbnQgPSBTa2VsZXRhbEFuaW1hdGlvblZhbHVlW11cbiJdfQ==\n\n//# sourceURL=webpack:///./node_modules/metaverse-api/lib/interfaces.js?");
/***/ }),
/***/ "./node_modules/metaverse-api/lib/internal/createElement.js":
/*!******************************************************************!*\
!*** ./node_modules/metaverse-api/lib/internal/createElement.js ***!
\******************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst stack = [];\nfunction createElement(nodeName, attributes, ...rest) {\n let children = [];\n let lastSimple = false;\n let child;\n let simple = false;\n let i;\n // tslint:disable-next-line:space-within-parens\n for (i = arguments.length; i-- > 2;) {\n stack.push(arguments[i]);\n }\n if (attributes && attributes.children != null) {\n if (!stack.length)\n stack.push(attributes.children);\n delete attributes.children;\n }\n while (stack.length) {\n // tslint:disable-next-line:no-conditional-assignment\n if ((child = stack.pop()) && child.pop !== undefined) {\n // tslint:disable-next-line:space-within-parens\n for (i = child.length; i--;)\n stack.push(child[i]);\n }\n else {\n if (typeof child === 'boolean')\n child = null;\n // tslint:disable-next-line:no-conditional-assignment\n if ((simple = typeof nodeName !== 'function')) {\n if (child == null)\n child = null;\n else if (typeof child !== 'string')\n simple = false;\n }\n if (simple && lastSimple) {\n children[children.length - 1] += child;\n }\n else if (child) {\n children.push(child);\n }\n lastSimple = simple;\n }\n }\n return {\n tag: nodeName,\n attrs: attributes || {},\n children: children || []\n };\n}\nexports.createElement = createElement;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlRWxlbWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbnRlcm5hbC9jcmVhdGVFbGVtZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBR0EsTUFBTSxLQUFLLEdBQVUsRUFBRSxDQUFBO0FBMER2Qix1QkFBOEIsUUFBMkIsRUFBRSxVQUFlLEVBQUUsR0FBRyxJQUFXO0lBQ3hGLElBQUksUUFBUSxHQUFzQixFQUFFLENBQUE7SUFDcEMsSUFBSSxVQUFVLEdBQVksS0FBSyxDQUFBO0lBQy9CLElBQUksS0FBSyxDQUFBO0lBQ1QsSUFBSSxNQUFNLEdBQVksS0FBSyxDQUFBO0lBQzNCLElBQUksQ0FBQyxDQUFBO0lBQ0wsK0NBQStDO0lBQy9DLEtBQUssQ0FBQyxHQUFHLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxHQUFJO1FBQ3BDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7S0FDekI7SUFDRCxJQUFJLFVBQVUsSUFBSSxVQUFVLENBQUMsUUFBUSxJQUFJLElBQUksRUFBRTtRQUM3QyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU07WUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQTtRQUNsRCxPQUFPLFVBQVUsQ0FBQyxRQUFRLENBQUE7S0FDM0I7SUFDRCxPQUFPLEtBQUssQ0FBQyxNQUFNLEVBQUU7UUFDbkIscURBQXFEO1FBQ3JELElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksS0FBSyxDQUFDLEdBQUcsS0FBSyxTQUFTLEVBQUU7WUFDcEQsK0NBQStDO1lBQy9DLEtBQUssQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFO2dCQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7U0FDbkQ7YUFBTTtZQUNMLElBQUksT0FBTyxLQUFLLEtBQUssU0FBUztnQkFBRSxLQUFLLEdBQUcsSUFBSSxDQUFBO1lBRTVDLHFEQUFxRDtZQUNyRCxJQUFJLENBQUMsTUFBTSxHQUFHLE9BQU8sUUFBUSxLQUFLLFVBQVUsQ0FBQyxFQUFFO2dCQUM3QyxJQUFJLEtBQUssSUFBSSxJQUFJO29CQUFFLEtBQUssR0FBRyxJQUFJLENBQUE7cUJBQzFCLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUTtvQkFBRSxNQUFNLEdBQUcsS0FBSyxDQUFBO2FBQ25EO1lBRUQsSUFBSSxNQUFNLElBQUksVUFBVSxFQUFFO2dCQUN4QixRQUFRLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUE7YUFDdkM7aUJBQU0sSUFBSSxLQUFLLEVBQUU7Z0JBQ2hCLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7YUFDckI7WUFFRCxVQUFVLEdBQUcsTUFBTSxDQUFBO1NBQ3BCO0tBQ0Y7SUFFRCxPQUFPO1FBQ0wsR0FBRyxFQUFFLFFBQVE7UUFDYixLQUFLLEVBQUUsVUFBVSxJQUFJLEVBQUU7UUFDdkIsUUFBUSxFQUFFLFFBQVEsSUFBSSxFQUFFO0tBQ3pCLENBQUE7QUFDSCxDQUFDO0FBM0NELHNDQTJDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNjcmlwdGFibGVTY2VuZSB9IGZyb20gJy4uL1NjcmlwdGFibGVTY2VuZSdcbmltcG9ydCB7IElTaW1wbGlmaWVkTm9kZSB9IGZyb20gJy4uL2ludGVyZmFjZXMnXG5cbmNvbnN0IHN0YWNrOiBhbnlbXSA9IFtdXG5cbmV4cG9ydCB0eXBlIENvbXBvbmVudENoaWxkID0gSlNYLkVsZW1lbnRcbmV4cG9ydCB0eXBlIENvbXBvbmVudENoaWxkcmVuID0gQ29tcG9uZW50Q2hpbGRbXVxuXG5leHBvcnQgdHlwZSBDb21wb25lbnRGYWN0b3J5PFA+ID0gQ29tcG9uZW50Q29uc3RydWN0b3I8UD4gfCBGdW5jdGlvbmFsQ29tcG9uZW50PFA+XG5cbmV4cG9ydCB0eXBlIFJlbmRlcmFibGVQcm9wczxQPiA9IFJlYWRvbmx5PFA+ICYgUmVhZG9ubHk8eyBjaGlsZHJlbj86IENvbXBvbmVudENoaWxkcmVuIH0+XG5cbmV4cG9ydCBpbnRlcmZhY2UgRnVuY3Rpb25hbENvbXBvbmVudDxQcm9wcyA9IHt9PiB7XG4gIChwcm9wczogUmVuZGVyYWJsZVByb3BzPFByb3BzPiwgY29udGV4dD86IGFueSk6IElTaW1wbGlmaWVkTm9kZSB8IG51bGxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb21wb25lbnRDb25zdHJ1Y3RvcjxQcm9wcyA9IHt9LCBTdGF0ZSA9IHt9PiB7XG4gIG5ldyAocHJvcHM6IFByb3BzLCBjb250ZXh0PzogYW55KTogU2NyaXB0YWJsZVNjZW5lPFByb3BzLCBTdGF0ZT5cbn1cblxuLyoqXG4gKiBKU1gvaHlwZXJzY3JpcHQgcmV2aXZlci5cbiAqIEBzZWUgaHR0cDovL2phc29uZm9ybWF0LmNvbS93dGYtaXMtanN4XG4gKlxuICogQ3JlYXRlcyBhIElTaW1wbGlmaWVkTm9kZSAodmlydHVhbCBlbnRpdHkpLiBBIHRyZWUgb2YgSVNpbXBsaWZpZWROb2RlIGNhbiBiZSB1c2VkIGFzIGEgbGlnaHR3ZWlnaHQgcmVwcmVzZW50YXRpb25cbiAqIG9mIHRoZSBzdHJ1Y3R1cmUgb2YgYSBlbnRpdHkgdHJlZS4gVGhpcyBzdHJ1Y3R1cmUgY2FuIGJlIHJlYWxpemVkIGJ5IHJlY3Vyc2l2ZWx5IGNvbXBhcmluZyBpdCBhZ2FpbnN0XG4gKiB0aGUgY3VycmVudCBfYWN0dWFsXyBlbnRpdHkgc3RydWN0dXJlLCBhbmQgYXBwbHlpbmcgb25seSB0aGUgZGlmZmVyZW5jZXMuXG4gKlxuICogYGNyZWF0ZUVsZW1lbnQoKWAgYWNjZXB0cyBhbiBlbGVtZW50IG5hbWUsIGEgbGlzdCBvZiBhdHRyaWJ1dGVzL3Byb3BzLFxuICogYW5kIG9wdGlvbmFsbHkgY2hpbGRyZW4gdG8gYXBwZW5kIHRvIHRoZSBlbGVtZW50LlxuICpcbiAqIEBleGFtcGxlIFRoZSBmb2xsb3dpbmcgZW50aXR5IHRyZWVcbiAqXG4gKiBgPGJveCBwb3NpdGlvbj17e3g6IDEsIHk6IDIsIHo6IDN9fSAvPmBcbiAqXG4gKiBjYW4gYmUgY29uc3RydWN0ZWQgdXNpbmcgdGhpcyBmdW5jdGlvbiBhczpcbiAqXG4gKiBgY3JlYXRlRWxlbWVudCgnYm94JywgeyBwb3NpdGlvbjoge3g6IDEsIHk6IDIsIHo6IDN9IH0pO2BcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gbm9kZU5hbWVcdEFuIGVudGl0eSBuYW1lLiBFeDogYHNjZW5lYCwgYGJveGAsIGBnbHRmLW1vZGVsYCwgZXRjLlxuICogQHBhcmFtIHtPYmplY3R9IGF0dHJpYnV0ZXNcdEFueSBhdHRyaWJ1dGVzL3Byb3BzIHRvIHNldCBvbiB0aGUgY3JlYXRlZCBlbnRpdHkuXG4gKiBAcGFyYW0gcmVzdCBBZGRpdGlvbmFsIGFyZ3VtZW50cyBhcmUgdGFrZW4gdG8gYmUgY2hpbGRyZW4gdG8gYXBwZW5kLiBDYW4gYmUgaW5maW5pdGVseSBuZXN0ZWQgQXJyYXlzLlxuICpcbiAqIEBwdWJsaWNcbiAqL1xuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRWxlbWVudDxQPihcbiAgbm9kZTogQ29tcG9uZW50RmFjdG9yeTxQPixcbiAgcGFyYW1zOiBKU1guQmFzZUVudGl0eSAmIFAgfCBudWxsLFxuICAuLi5jaGlsZHJlbjogKENvbXBvbmVudENoaWxkIHwgQ29tcG9uZW50Q2hpbGRyZW4pW11cbik6IElTaW1wbGlmaWVkTm9kZVxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUVsZW1lbnQ8SyBleHRlbmRzIGtleW9mIEpTWC5JbnRyaW5zaWNFbGVtZW50cz4oXG4gIG5vZGU6IEssXG4gIHBhcmFtczogSlNYLkludHJpbnNpY0VsZW1lbnRzW0tdLFxuICAuLi5jaGlsZHJlbjogKENvbXBvbmVudENoaWxkIHwgQ29tcG9uZW50Q2hpbGRyZW4pW11cbik6IElTaW1wbGlmaWVkTm9kZVxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUVsZW1lbnQoXG4gIG5vZGU6IHN0cmluZyxcbiAgcGFyYW1zOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHwgbnVsbCxcbiAgLi4uY2hpbGRyZW46IChDb21wb25lbnRDaGlsZCB8IENvbXBvbmVudENoaWxkcmVuKVtdXG4pOiBJU2ltcGxpZmllZE5vZGVcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVFbGVtZW50KG5vZGVOYW1lOiBzdHJpbmcgfCBGdW5jdGlvbiwgYXR0cmlidXRlczogYW55LCAuLi5yZXN0OiBhbnlbXSkge1xuICBsZXQgY2hpbGRyZW46IElTaW1wbGlmaWVkTm9kZVtdID0gW11cbiAgbGV0IGxhc3RTaW1wbGU6IGJvb2xlYW4gPSBmYWxzZVxuICBsZXQgY2hpbGRcbiAgbGV0IHNpbXBsZTogYm9vbGVhbiA9IGZhbHNlXG4gIGxldCBpXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpzcGFjZS13aXRoaW4tcGFyZW5zXG4gIGZvciAoaSA9IGFyZ3VtZW50cy5sZW5ndGg7IGktLSA+IDI7ICkge1xuICAgIHN0YWNrLnB1c2goYXJndW1lbnRzW2ldKVxuICB9XG4gIGlmIChhdHRyaWJ1dGVzICYmIGF0dHJpYnV0ZXMuY2hpbGRyZW4gIT0gbnVsbCkge1xuICAgIGlmICghc3RhY2subGVuZ3RoKSBzdGFjay5wdXNoKGF0dHJpYnV0ZXMuY2hpbGRyZW4pXG4gICAgZGVsZXRlIGF0dHJpYnV0ZXMuY2hpbGRyZW5cbiAgfVxuICB3aGlsZSAoc3RhY2subGVuZ3RoKSB7XG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWNvbmRpdGlvbmFsLWFzc2lnbm1lbnRcbiAgICBpZiAoKGNoaWxkID0gc3RhY2sucG9wKCkpICYmIGNoaWxkLnBvcCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6c3BhY2Utd2l0aGluLXBhcmVuc1xuICAgICAgZm9yIChpID0gY2hpbGQubGVuZ3RoOyBpLS07ICkgc3RhY2sucHVzaChjaGlsZFtpXSlcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHR5cGVvZiBjaGlsZCA9PT0gJ2Jvb2xlYW4nKSBjaGlsZCA9IG51bGxcblxuICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWNvbmRpdGlvbmFsLWFzc2lnbm1lbnRcbiAgICAgIGlmICgoc2ltcGxlID0gdHlwZW9mIG5vZGVOYW1lICE9PSAnZnVuY3Rpb24nKSkge1xuICAgICAgICBpZiAoY2hpbGQgPT0gbnVsbCkgY2hpbGQgPSBudWxsXG4gICAgICAgIGVsc2UgaWYgKHR5cGVvZiBjaGlsZCAhPT0gJ3N0cmluZycpIHNpbXBsZSA9IGZhbHNlXG4gICAgICB9XG5cbiAgICAgIGlmIChzaW1wbGUgJiYgbGFzdFNpbXBsZSkge1xuICAgICAgICBjaGlsZHJlbltjaGlsZHJlbi5sZW5ndGggLSAxXSArPSBjaGlsZFxuICAgICAgfSBlbHNlIGlmIChjaGlsZCkge1xuICAgICAgICBjaGlsZHJlbi5wdXNoKGNoaWxkKVxuICAgICAgfVxuXG4gICAgICBsYXN0U2ltcGxlID0gc2ltcGxlXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICB0YWc6IG5vZGVOYW1lLFxuICAgIGF0dHJzOiBhdHRyaWJ1dGVzIHx8IHt9LFxuICAgIGNoaWxkcmVuOiBjaGlsZHJlbiB8fCBbXVxuICB9XG59XG4iXX0=\n\n//# sourceURL=webpack:///./node_modules/metaverse-api/lib/internal/createElement.js?");
/***/ }),
/***/ "./node_modules/metaverse-api/lib/utils/future.js":
/*!********************************************************!*\
!*** ./node_modules/metaverse-api/lib/utils/future.js ***!
\********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction future() {\n let resolver = (x) => {\n throw new Error('Error initilizing mutex');\n };\n let rejecter = (x) => {\n throw x;\n };\n const promise = new Promise((ok, err) => {\n resolver = ok;\n rejecter = err;\n });\n promise.then(() => (promise.isPending = false));\n promise.catch(() => (promise.isPending = false));\n promise.resolve = resolver;\n promise.reject = rejecter;\n promise.isPending = true;\n return promise;\n}\nexports.future = future;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnV0dXJlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL2Z1dHVyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQU1BO0lBQ0UsSUFBSSxRQUFRLEdBQW1CLENBQUMsQ0FBSSxFQUFFLEVBQUU7UUFDdEMsTUFBTSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFBO0lBQzVDLENBQUMsQ0FBQTtJQUNELElBQUksUUFBUSxHQUF1QixDQUFDLENBQVEsRUFBRSxFQUFFO1FBQzlDLE1BQU0sQ0FBQyxDQUFBO0lBQ1QsQ0FBQyxDQUFBO0lBRUQsTUFBTSxPQUFPLEdBQVEsSUFBSSxPQUFPLENBQUMsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUU7UUFDM0MsUUFBUSxHQUFHLEVBQUUsQ0FBQTtRQUNiLFFBQVEsR0FBRyxHQUFHLENBQUE7SUFDaEIsQ0FBQyxDQUFDLENBQUE7SUFFRixPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFBO0lBQy9DLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUE7SUFFaEQsT0FBTyxDQUFDLE9BQU8sR0FBRyxRQUFRLENBQUE7SUFDMUIsT0FBTyxDQUFDLE1BQU0sR0FBRyxRQUFRLENBQUE7SUFFekIsT0FBTyxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUE7SUFFeEIsT0FBTyxPQUFxQixDQUFBO0FBQzlCLENBQUM7QUF0QkQsd0JBc0JDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgSUZ1dHVyZTxUPiA9IFByb21pc2U8VD4gJiB7XG4gIHJlc29sdmU6ICh4OiBUKSA9PiB2b2lkXG4gIHJlamVjdDogKHg6IEVycm9yKSA9PiB2b2lkXG4gIGlzUGVuZGluZzogYm9vbGVhblxufVxuXG5leHBvcnQgZnVuY3Rpb24gZnV0dXJlPFQgPSBhbnk+KCk6IElGdXR1cmU8VD4ge1xuICBsZXQgcmVzb2x2ZXI6ICh4OiBUKSA9PiB2b2lkID0gKHg6IFQpID0+IHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0Vycm9yIGluaXRpbGl6aW5nIG11dGV4JylcbiAgfVxuICBsZXQgcmVqZWN0ZXI6ICh4OiBFcnJvcikgPT4gdm9pZCA9ICh4OiBFcnJvcikgPT4ge1xuICAgIHRocm93IHhcbiAgfVxuXG4gIGNvbnN0IHByb21pc2U6IGFueSA9IG5ldyBQcm9taXNlKChvaywgZXJyKSA9PiB7XG4gICAgcmVzb2x2ZXIgPSBva1xuICAgIHJlamVjdGVyID0gZXJyXG4gIH0pXG5cbiAgcHJvbWlzZS50aGVuKCgpID0+IChwcm9taXNlLmlzUGVuZGluZyA9IGZhbHNlKSlcbiAgcHJvbWlzZS5jYXRjaCgoKSA9PiAocHJvbWlzZS5pc1BlbmRpbmcgPSBmYWxzZSkpXG5cbiAgcHJvbWlzZS5yZXNvbHZlID0gcmVzb2x2ZXJcbiAgcHJvbWlzZS5yZWplY3QgPSByZWplY3RlclxuXG4gIHByb21pc2UuaXNQZW5kaW5nID0gdHJ1ZVxuXG4gIHJldHVybiBwcm9taXNlIGFzIElGdXR1cmU8VD5cbn1cbiJdfQ==\n\n//# sourceURL=webpack:///./node_modules/metaverse-api/lib/utils/future.js?");
/***/ }),
/***/ "./node_modules/metaverse-rpc/lib/client/EventSubscriber.js":
/*!******************************************************************!*\
!*** ./node_modules/metaverse-rpc/lib/client/EventSubscriber.js ***!
\******************************************************************/
/*! exports provided: EventSubscriber */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"EventSubscriber\", function() { return EventSubscriber; });\n/* harmony import */ var _common_core_EventDispatcher__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../common/core/EventDispatcher */ \"./node_modules/metaverse-rpc/lib/common/core/EventDispatcher.js\");\n\nclass EventSubscriber extends _common_core_EventDispatcher__WEBPACK_IMPORTED_MODULE_0__[\"EventDispatcher\"] {\n constructor(component) {\n super();\n this.component = component;\n component.onSubscribedEvent((data) => {\n super.emit(data.event, data);\n });\n }\n on(event, handler) {\n if (this.getEventBindings(event).length === 0) {\n this.component.subscribe(event).catch(e => this.emit('error', e));\n }\n return super.on.apply(this, arguments);\n }\n off(event) {\n let theEventToValidate = null;\n const offResult = super.off.apply(this, arguments);\n if (typeof event === 'string') {\n theEventToValidate = event;\n }\n else if (event instanceof _common_core_EventDispatcher__WEBPACK_IMPORTED_MODULE_0__[\"EventDispatcherBinding\"]) {\n event = event.event;\n }\n if (theEventToValidate !== null) {\n if (this.getEventBindings(theEventToValidate).length === 0) {\n this.component.unsubscribe(theEventToValidate).catch(e => this.emit('error', e));\n }\n }\n return offResult;\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXZlbnRTdWJzY3JpYmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NsaWVudC9FdmVudFN1YnNjcmliZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFBO0FBR3hGLE1BQU0sc0JBQXVCLFNBQVEsZUFBZTtJQUNsRCxZQUFvQixTQUEyQjtRQUM3QyxLQUFLLEVBQUUsQ0FBQTtRQURXLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBRzdDLFNBQVMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFO1lBQ3hDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQTtRQUM5QixDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFTRCxFQUFFLENBQUMsS0FBYSxFQUFFLE9BQVk7UUFDNUIsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUM3QyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFBO1NBQ2xFO1FBQ0QsT0FBTyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUE7SUFDeEMsQ0FBQztJQU9ELEdBQUcsQ0FBQyxLQUFpRDtRQUNuRCxJQUFJLGtCQUFrQixHQUFrQixJQUFJLENBQUE7UUFDNUMsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFBO1FBRWxELElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFO1lBQzdCLGtCQUFrQixHQUFHLEtBQUssQ0FBQTtTQUMzQjthQUFNLElBQUksS0FBSyxZQUFZLHNCQUFzQixFQUFFO1lBQ2xELEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFBO1NBQ3BCO1FBRUQsSUFBSSxrQkFBa0IsS0FBSyxJQUFJLEVBQUU7WUFDL0IsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO2dCQUkxRCxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUE7YUFDakY7U0FDRjtRQUVELE9BQU8sU0FBUyxDQUFBO0lBQ2xCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEV2ZW50RGlzcGF0Y2hlciwgRXZlbnREaXNwYXRjaGVyQmluZGluZyB9IGZyb20gJy4uL2NvbW1vbi9jb3JlL0V2ZW50RGlzcGF0Y2hlcidcbmltcG9ydCB7IElTdWJzY3JpYmFibGVBUEkgfSBmcm9tICcuLi9ob3N0L0FQSSdcblxuZXhwb3J0IGNsYXNzIEV2ZW50U3Vic2NyaWJlciBleHRlbmRzIEV2ZW50RGlzcGF0Y2hlciB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY29tcG9uZW50OiBJU3Vic2NyaWJhYmxlQVBJKSB7XG4gICAgc3VwZXIoKVxuXG4gICAgY29tcG9uZW50Lm9uU3Vic2NyaWJlZEV2ZW50KChkYXRhOiBhbnkpID0+IHtcbiAgICAgIHN1cGVyLmVtaXQoZGF0YS5ldmVudCwgZGF0YSlcbiAgICB9KVxuICB9XG5cbiAgLyoqXG4gICAqIFJlZ2lzdGVycyBhIG5ldyBsaXN0ZW5lciBmb3IgYW4gc3BlY2lmaWMgZXZlbnQuXG4gICAqIEBwYXJhbSBldmVudCBUaGUgbmFtZSBvZiB0aGUgZXZlbnRcbiAgICogQHBhcmFtIGhhbmRsZXIgQSBoYW5kbGVyIHdoaWNoIGJlIGNhbGxlZCBlYWNoIHRpbWUgdGhlIGV2ZW50IGlzIHJlY2VpdmVkXG4gICAqL1xuICBvbihldmVudDogc3RyaW5nLCBjYWxsYmFjazogKC4uLmFyZ3M6IGFueVtdKSA9PiB2b2lkLCBvbmNlPzogYm9vbGVhbik6IEV2ZW50RGlzcGF0Y2hlckJpbmRpbmdcbiAgb24oZXZlbnQ6IHN0cmluZywgY2FsbGJhY2s6IGFueSwgb25jZT86IGJvb2xlYW4pOiBFdmVudERpc3BhdGNoZXJCaW5kaW5nXG4gIG9uKGV2ZW50OiBzdHJpbmcsIGhhbmRsZXI6IGFueSkge1xuICAgIGlmICh0aGlzLmdldEV2ZW50QmluZGluZ3MoZXZlbnQpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhpcy5jb21wb25lbnQuc3Vic2NyaWJlKGV2ZW50KS5jYXRjaChlID0+IHRoaXMuZW1pdCgnZXJyb3InLCBlKSlcbiAgICB9XG4gICAgcmV0dXJuIHN1cGVyLm9uLmFwcGx5KHRoaXMsIGFyZ3VtZW50cylcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmVzIGEgbGlzdGVuZXIgZm9yIGFuIHNwZWNpZmljIGV2ZW50XG4gICAqIEBwYXJhbSBldmVudCBUaGUgbmFtZSBvZiB0aGUgZXZlbnRcbiAgICogQHBhcmFtIGJpbmRpbmcgQSByZWZlcmVuY2UgdG8gYSBiaW5kaW5nIHJldHVybmVkIGJ5IGEgcHJldmlvdXMgYGFkZEV2ZW50TGlzdGVuZXJgIGNhbGxcbiAgICovXG4gIG9mZihldmVudDogc3RyaW5nIHwgRXZlbnREaXNwYXRjaGVyQmluZGluZyB8IEZ1bmN0aW9uKSB7XG4gICAgbGV0IHRoZUV2ZW50VG9WYWxpZGF0ZTogc3RyaW5nIHwgbnVsbCA9IG51bGxcbiAgICBjb25zdCBvZmZSZXN1bHQgPSBzdXBlci5vZmYuYXBwbHkodGhpcywgYXJndW1lbnRzKVxuXG4gICAgaWYgKHR5cGVvZiBldmVudCA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHRoZUV2ZW50VG9WYWxpZGF0ZSA9IGV2ZW50XG4gICAgfSBlbHNlIGlmIChldmVudCBpbnN0YW5jZW9mIEV2ZW50RGlzcGF0Y2hlckJpbmRpbmcpIHtcbiAgICAgIGV2ZW50ID0gZXZlbnQuZXZlbnRcbiAgICB9XG5cbiAgICBpZiAodGhlRXZlbnRUb1ZhbGlkYXRlICE9PSBudWxsKSB7XG4gICAgICBpZiAodGhpcy5nZXRFdmVudEJpbmRpbmdzKHRoZUV2ZW50VG9WYWxpZGF0ZSkubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIC8vIElmIHdlIGFyZSByZW1vdmluZyB0aGUgbGFzdCBldmVudCBsaXN0ZW5lciwgcmVtb3ZlIGl0IGFsc28gZnJvbSB0aGUgY29tcG9uZW50XG4gICAgICAgIC8vIHRoaXMgd2lsbCBrZWVwIGxpc3RlbmVycyB1bnJlbGF0ZWQgdG8gdGhlIGNvbXBvbmVudCBpbnRhY3RcblxuICAgICAgICB0aGlzLmNvbXBvbmVudC51bnN1YnNjcmliZSh0aGVFdmVudFRvVmFsaWRhdGUpLmNhdGNoKGUgPT4gdGhpcy5lbWl0KCdlcnJvcicsIGUpKVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBvZmZSZXN1bHRcbiAgfVxufVxuIl19\n\n//# sourceURL=webpack:///./node_modules/metaverse-rpc/lib/client/EventSubscriber.js?");
/***/ }),
/***/ "./node_modules/metaverse-rpc/lib/client/Script.js":
/*!*********************************************************!*\
!*** ./node_modules/metaverse-rpc/lib/client/Script.js ***!
\*********************************************************/
/*! exports provided: inject, getInjectedAPIs, Script */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"inject\", function() { return inject; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getInjectedAPIs\", function() { return getInjectedAPIs; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Script\", function() { return Script; });\n/* harmony import */ var _common_json_rpc_Client__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../common/json-rpc/Client */ \"./node_modules/metaverse-rpc/lib/common/json-rpc/Client.js\");\n/* harmony import */ var _common_json_rpc_API__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../common/json-rpc/API */ \"./node_modules/metaverse-rpc/lib/common/json-rpc/API.js\");\n/* harmony import */ var _common_core_isPromiseLike__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../common/core/isPromiseLike */ \"./node_modules/metaverse-rpc/lib/common/core/isPromiseLike.js\");\n\n\n\nconst loadAPIsNotificationName = 'LoadComponents';\nconst hasSymbol = typeof Symbol === 'function' && Symbol.for;\nconst injectedAPISymbol = hasSymbol ? Symbol('injectedAPIs') : 0xfea0;\nfunction inject(apiName) {\n if (apiName !== undefined && !apiName) {\n throw new TypeError('API name cannot be null / empty');\n }\n return function (target, propertyKey) {\n getInjectedAPIs(target).set(propertyKey, apiName || propertyKey);\n };\n}\nfunction getInjectedAPIs(instance) {\n const instanceAny = instance;\n instanceAny[injectedAPISymbol] = instanceAny[injectedAPISymbol] || new Map();\n return instanceAny[injectedAPISymbol];\n}\nasync function _injectAPIs(target) {\n const injectedMap = getInjectedAPIs(target);\n if (injectedMap.size === 0)\n return;\n await target.loadAPIs(Array.from(injectedMap.values()));\n injectedMap.forEach(function (apiName, property) {\n target[property] = target.loadedAPIs[apiName];\n });\n}\nclass Script extends _common_json_rpc_Client__WEBPACK_IMPORTED_MODULE_0__[\"Client\"] {\n constructor(transport, opt) {\n super(opt);\n this.transport = transport;\n this.loadedAPIs = {};\n this.started = false;\n if (transport.onError) {\n transport.onError(e => {\n this.emit('error', e);\n });\n }\n if (transport.onClose) {\n transport.onClose(() => {\n this.emit('transportClosed');\n });\n }\n transport.onMessage(message => {\n this.processMessage(message);\n });\n if (transport.onConnect) {\n transport.onConnect(() => {\n this.didConnect();\n });\n }\n else {\n this.didConnect();\n }\n }\n sendMessage(message) {\n this.transport.sendMessage(message);\n }\n async loadAPIs(apiName) {\n const loadedKeys = Object.keys(this.loadedAPIs);\n const keysToRequest = apiName.filter(function ($) {\n return !loadedKeys.includes($);\n });\n if (keysToRequest.length) {\n await this.call(loadAPIsNotificationName, [keysToRequest]);\n keysToRequest.forEach(async (apiName) => {\n this.loadedAPIs[apiName] = Object(_common_json_rpc_API__WEBPACK_IMPORTED_MODULE_1__[\"getApi\"])(this, apiName);\n });\n }\n return this.loadedAPIs;\n }\n didConnect() {\n const injection = _injectAPIs(this);\n super.didConnect();\n injection\n .then(() => {\n if (this.systemDidEnable && !this.started) {\n this.started = true;\n try {\n const r = this.systemDidEnable();\n if (r && Object(_common_core_isPromiseLike__WEBPACK_IMPORTED_MODULE_2__[\"isPromiseLike\"])(r)) {\n r.catch(e => this.emit('error', e));\n }\n }\n catch (e) {\n this.emit('error', e);\n }\n }\n })\n .catch(e => this.emit('error', e));\n }\n}\nScript.inject = inject;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2NyaXB0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NsaWVudC9TY3JpcHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLDJCQUEyQixDQUFBO0FBQ2xELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQTtBQUUvQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sOEJBQThCLENBQUE7QUFHNUQsTUFBTSx3QkFBd0IsR0FBRyxnQkFBZ0IsQ0FBQTtBQU1qRCxNQUFNLFNBQVMsR0FBRyxPQUFPLE1BQU0sS0FBSyxVQUFVLElBQUksTUFBTSxDQUFDLEdBQUcsQ0FBQTtBQUU1RCxNQUFNLGlCQUFpQixHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUE7QUFZckUsTUFBTSxpQkFBaUIsT0FBZ0I7SUFDckMsSUFBSSxPQUFPLEtBQUssU0FBUyxJQUFJLENBQUMsT0FBTyxFQUFFO1FBQ3JDLE1BQU0sSUFBSSxTQUFTLENBQUMsaUNBQWlDLENBQUMsQ0FBQTtLQUN2RDtJQUNELE9BQU8sVUFBMkIsTUFBUyxFQUFFLFdBQW9CO1FBQy9ELGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLE9BQU8sSUFBSSxXQUFXLENBQUMsQ0FBQTtJQUNsRSxDQUFDLENBQUE7QUFDSCxDQUFDO0FBTUQsTUFBTSwwQkFBNEMsUUFBVztJQUMzRCxNQUFNLFdBQVcsR0FBUSxRQUFRLENBQUE7SUFDakMsV0FBVyxDQUFDLGlCQUFpQixDQUFDLEdBQUcsV0FBVyxDQUFDLGlCQUFpQixDQUFDLElBQUksSUFBSSxHQUFHLEVBQUUsQ0FBQTtJQUM1RSxPQUFPLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFBO0FBQ3ZDLENBQUM7QUFFRCxLQUFLLHNCQUFzQixNQUFjO0lBQ3ZDLE1BQU0sV0FB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LEVBQUU7Z0JBQ3pDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFBO2dCQUNuQixJQUFJO29CQUNGLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQTtvQkFDaEMsSUFBSSxDQUFDLElBQUksYUFBYSxDQUFDLENBQUMsQ0FBQyxFQUFFO3dCQUN6QixDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQTtxQkFDcEM7aUJBQ0Y7Z0JBQUMsT0FBTyxDQUFDLEVBQUU7b0JBQ1YsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUE7aUJBQ3RCO2FBQ0Y7UUFDSCxDQUFDLENBQUM7YUFDRCxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ3RDLENBQUM7O0FBcEZNLGFBQU0sR0FBRyxNQUFNLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDbGllbnQgfSBmcm9tICcuLi9jb21tb24vanNvbi1ycGMvQ2xpZW50J1xuaW1wb3J0IHsgZ2V0QXBpIH0gZnJvbSAnLi4vY29tbW9uL2pzb24tcnBjL0FQSSdcbmltcG9ydCB7IElMb2dPcHRzLCBTY3JpcHRpbmdUcmFuc3BvcnQgfSBmcm9tICcuLi9jb21tb24vanNvbi1ycGMvdHlwZXMnXG5pbXBvcnQgeyBpc1Byb21pc2VMaWtlIH0gZnJvbSAnLi4vY29tbW9uL2NvcmUvaXNQcm9taXNlTGlrZSdcblxuLyoqIHRoaXMgaXMgZGVmaW5lZCBpbiB0aGUgY29uc3RydWN0b3IgU2NyaXB0aW5nSG9zdCgpICovXG5jb25zdCBsb2FkQVBJc05vdGlmaWNhdGlvbk5hbWUgPSAnTG9hZENvbXBvbmVudHMnXG5cbi8vIElmIHRoZXJlIGlzIG5vIG5hdGl2ZSBTeW1ib2xcbi8vIG5vciBwb2x5ZmlsbCwgdGhlbiBhIHBsYWluIG51bWJlciBpcyB1c2VkIGZvciBwZXJmb3JtYW5jZS5cblxuLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lXG5jb25zdCBoYXNTeW1ib2wgPSB0eXBlb2YgU3ltYm9sID09PSAnZnVuY3Rpb24nICYmIFN5bWJvbC5mb3JcblxuY29uc3QgaW5qZWN0ZWRBUElTeW1ib2wgPSBoYXNTeW1ib2wgPyBTeW1ib2woJ2luamVjdGVkQVBJcycpIDogMHhmZWEwXG5cbmV4cG9ydCBpbnRlcmZhY2UgU2NyaXB0IHtcbiAgc3lzdGVtRGlkRW5hYmxlPygpOiBQcm9taXNlPHZvaWQ+IHwgdm9pZFxufVxuXG5leHBvcnQgdHlwZSBBUEkgPSBhbnlcblxuLyoqXG4gKiBUaGlzIGZ1bmN0aW9uIGRlY29yYXRlcyBwYXJhbWV0ZXJzIHRvIGxvYWQgQVBJc1xuICogQHBhcmFtIGFwaU5hbWUgbmFtZSBvZiB0aGUgQVBJIHRvIGxvYWRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGluamVjdChhcGlOYW1lPzogc3RyaW5nKSB7XG4gIGlmIChhcGlOYW1lICE9PSB1bmRlZmluZWQgJiYgIWFwaU5hbWUpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdBUEkgbmFtZSBjYW5ub3QgYmUgbnVsbCAvIGVtcHR5JylcbiAgfVxuICByZXR1cm4gZnVuY3Rpb248VCBleHRlbmRzIFNjcmlwdD4odGFyZ2V0OiBULCBwcm9wZXJ0eUtleToga2V5b2YgVCkge1xuICAgIGdldEluamVjdGVkQVBJcyh0YXJnZXQpLnNldChwcm9wZXJ0eUtleSwgYXBpTmFtZSB8fCBwcm9wZXJ0eUtleSlcbiAgfVxufVxuXG4vKipcbiAqIEdldHMgYWxsIHRoZSBpbmplY3RlZCBBUElzIG9mIGEgc2NyaXB0XG4gKiBAcGFyYW0gaW5zdGFuY2UgQSBzY3JpcHQgdG8gZ2V0IHRoZSBBUElzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRJbmplY3RlZEFQSXM8VCBleHRlbmRzIFNjcmlwdD4oaW5zdGFuY2U6IFQpOiBNYXA8a2V5b2YgVCwgc3RyaW5nPiB7XG4gIGNvbnN0IGluc3RhbmNlQW55OiBhbnkgPSBpbnN0YW5jZVxuICBpbnN0YW5jZUFueVtpbmplY3RlZEFQSVN5bWJvbF0gPSBpbnN0YW5jZUFueVtpbmplY3RlZEFQSVN5bWJvbF0gfHwgbmV3IE1hcCgpXG4gIHJldHVybiBpbnN0YW5jZUFueVtpbmplY3RlZEFQSVN5bWJvbF1cbn1cblxuYXN5bmMgZnVuY3Rpb24gX2luamVjdEFQSXModGFyZ2V0OiBTY3JpcHQpIHtcbiAgY29uc3QgaW5qZWN0ZWRNYXAgPSBnZXRJbmplY3RlZEFQSXModGFyZ2V0KVxuXG4gIGlmIChpbmplY3RlZE1hcC5zaXplID09PSAwKSByZXR1cm5cblxuICBhd2FpdCB0YXJnZXQubG9hZEFQSXMoQXJyYXkuZnJvbShpbmplY3RlZE1hcC52YWx1ZXMoKSkpXG5cbiAgaW5qZWN0ZWRNYXAuZm9yRWFjaChmdW5jdGlvbihhcGlOYW1lOiBzdHJpbmcsIHByb3BlcnR5KSB7XG4gICAgdGFyZ2V0W3Byb3BlcnR5XSA9IHRhcmdldC5sb2FkZWRBUElzW2FwaU5hbWVdXG4gIH0pXG59XG5cbmV4cG9ydCBjbGFzcyBTY3JpcHQgZXh0ZW5kcyBDbGllbnQge1xuICBzdGF0aWMgaW5qZWN0ID0gaW5qZWN0XG5cbiAgbG9hZGVkQVBJczogeyBba2V5OiBzdHJpbmddOiBBUEkgfSA9IHt9XG5cbiAgcHJvdGVjdGVkIHN0YXJ0ZWQgPSBmYWxzZVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdHJhbnNwb3J0OiBTY3JpcHRpbmdUcmFuc3BvcnQsIG9wdD86IElMb2dPcHRzKSB7XG4gICAgc3VwZXIob3B0KVxuXG4gICAgaWYgKHRyYW5zcG9ydC5vbkVycm9yKSB7XG4gICAgICB0cmFuc3BvcnQub25FcnJvcihlID0+IHtcbiAgICAgICAgdGhpcy5lbWl0KCdlcnJvcicsIGUpXG4gICAgICB9KVxuICAgIH1cblxuICAgIGlmICh0cmFuc3BvcnQub25DbG9zZSkge1xuICAgICAgdHJhbnNwb3J0Lm9uQ2xvc2UoKCkgPT4ge1xuICAgICAgICB0aGlzLmVtaXQoJ3RyYW5zcG9ydENsb3NlZCcpXG4gICAgICB9KVxuICAgIH1cblxuICAgIHRyYW5zcG9ydC5vbk1lc3NhZ2UobWVzc2FnZSA9PiB7XG4gICAgICB0aGlzLnByb2Nlc3NNZXNzYWdlKG1lc3NhZ2UpXG4gICAgfSlcblxuICAgIGlmICh0cmFuc3BvcnQub25Db25uZWN0KSB7XG4gICAgICB0cmFuc3BvcnQub25Db25uZWN0KCgpID0+IHtcbiAgICAgICAgdGhpcy5kaWRDb25uZWN0KClcbiAgICAgIH0pXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZGlkQ29ubmVjdCgpXG4gICAgfVxuICB9XG5cbiAgc2VuZE1lc3NhZ2UobWVzc2FnZTogc3RyaW5nKSB7XG4gICAgdGhpcy50cmFuc3BvcnQuc2VuZE1lc3NhZ2UobWVzc2FnZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBQcm92aWRlIGEgZ2xvYmFsIHBvaW50IG9mIGFjY2VzcyB0byBhIHNlcnZpY2Ugd2l0aG91dFxuICAgKiBjb3VwbGluZyB1c2VycyB0byB0aGUgY29uY3JldGUgY2xhc3MgdGhhdCBpbXBsZW1lbnRzIGl0LlxuICAgKlxuICAgKiBAcGFyYW0gYXBpTmFtZSBOYW1lIG9mIHRoZSBwbHVnaW4gd2UgYXJlIHRyeWluZyB0byBvYnRhaW5cbiAgICogQHJldHVybnMge29iamVjdH0gbG9hZGVkQVBJc1xuICAgKi9cbiAgYXN5bmMgbG9hZEFQSXMoYXBpTmFtZTogc3RyaW5nW10pOiBQcm9taXNlPHsgW2tleTogc3RyaW5nXTogYW55IH0+IHtcbiAgICBjb25zdCBsb2FkZWRLZXlzID0gT2JqZWN0LmtleXModGhpcy5sb2FkZWRBUElzKVxuXG4gICAgY29uc3Qga2V5c1RvUmVxdWVzdCA9IGFwaU5hbWUuZmlsdGVyKGZ1bmN0aW9uKCQpIHtcbiAgICAgIHJldHVybiAhbG9hZGVkS2V5cy5pbmNsdWRlcygkKVxuICAgIH0pXG5cbiAgICBpZiAoa2V5c1RvUmVxdWVzdC5sZW5ndGgpIHtcbiAgICAgIGF3YWl0IHRoaXMuY2FsbChsb2FkQVBJc05vdGlmaWNhdGlvbk5hbWUsIFtrZXlzVG9SZXF1ZXN0XSlcblxuICAgICAgLy8gTG9hZCAvIHJlcXVlc3QgdGhlIEFQSVxuICAgICAga2V5c1RvUmVxdWVzdC5mb3JFYWNoKGFzeW5jIGFwaU5hbWUgPT4ge1xuICAgICAgICB0aGlzLmxvYWRlZEFQSXNbYXBpTmFtZV0gPSBnZXRBcGkodGhpcywgYXBpTmFtZSlcbiAgICAgIH0pXG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMubG9hZGVkQVBJc1xuICB9XG5cbiAgcHJvdGVjdGVkIGRpZENvbm5lY3QoKSB7XG4gICAgY29uc3QgaW5qZWN0aW9uID0gX2luamVjdEFQSXModGhpcylcblxuICAgIHN1cGVyLmRpZENvbm5lY3QoKVxuXG4gICAgaW5qZWN0aW9uXG4gICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLnN5c3RlbURpZEVuYWJsZSAmJiAhdGhpcy5zdGFydGVkKSB7XG4gICAgICAgICAgdGhpcy5zdGFydGVkID0gdHJ1ZVxuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCByID0gdGhpcy5zeXN0ZW1EaWRFbmFibGUoKVxuICAgICAgICAgICAgaWYgKHIgJiYgaXNQcm9taXNlTGlrZShyKSkge1xuICAgICAgICAgICAgICByLmNhdGNoKGUgPT4gdGhpcy5lbWl0KCdlcnJvcicsIGUpKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIHRoaXMuZW1pdCgnZXJyb3InLCBlKVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSlcbiAgICAgIC5jYXRjaChlID0+IHRoaXMuZW1pdCgnZXJyb3InLCBlKSlcbiAgfVxufVxuIl19\n\n//# sourceURL=webpack:///./node_modules/metaverse-rpc/lib/client/Script.js?");
/***/ }),
/***/ "./node_modules/metaverse-rpc/lib/client/index.js":
/*!********************************************************!*\
!*** ./node_modules/metaverse-rpc/lib/client/index.js ***!
\********************************************************/
/*! exports provided: WebWorkerTransport, WebSocketTransport, MemoryTransport, inject, getInjectedAPIs, Script, EventSubscriber */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Script__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Script */ \"./node_modules/metaverse-rpc/lib/client/Script.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"inject\", function() { return _Script__WEBPACK_IMPORTED_MODULE_0__[\"inject\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getInjectedAPIs\", function() { return _Script__WEBPACK_IMPORTED_MODULE_0__[\"getInjectedAPIs\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Script\", function() { return _Script__WEBPACK_IMPORTED_MODULE_0__[\"Script\"]; });\n\n/* harmony import */ var _EventSubscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./EventSubscriber */ \"./node_modules/metaverse-rpc/lib/client/EventSubscriber.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"EventSubscriber\", function() { return _EventSubscriber__WEBPACK_IMPORTED_MODULE_1__[\"EventSubscriber\"]; });\n\n/* harmony import */ var _common_transports_WebWorker__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../common/transports/WebWorker */ \"./node_modules/metaverse-rpc/lib/common/transports/WebWorker.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"WebWorkerTransport\", function() { return _common_transports_WebWorker__WEBPACK_IMPORTED_MODULE_2__[\"WebWorkerTransport\"]; });\n\n/* harmony import */ var _common_transports_WebSocket__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../common/transports/WebSocket */ \"./node_modules/metaverse-rpc/lib/common/transports/WebSocket.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"WebSocketTransport\", function() { return _common_transports_WebSocket__WEBPACK_IMPORTED_MODULE_3__[\"WebSocketTransport\"]; });\n\n/* harmony import */ var _common_transports_Memory__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../common/transports/Memory */ \"./node_modules/metaverse-rpc/lib/common/transports/Memory.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"MemoryTransport\", function() { return _common_transports_Memory__WEBPACK_IMPORTED_MODULE_4__[\"MemoryTransport\"]; });\n\n\n\n\n\n\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY2xpZW50L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLGNBQWMsVUFBVSxDQUFBO0FBQ3hCLGNBQWMsbUJBQW1CLENBQUE7QUFFakMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0NBQWdDLENBQUE7QUFDbkUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0NBQWdDLENBQUE7QUFDbkUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDZCQUE2QixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiLy8gRXhwb3J0c1xuXG5leHBvcnQgKiBmcm9tICcuL1NjcmlwdCdcbmV4cG9ydCAqIGZyb20gJy4vRXZlbnRTdWJzY3JpYmVyJ1xuXG5leHBvcnQgeyBXZWJXb3JrZXJUcmFuc3BvcnQgfSBmcm9tICcuLi9jb21tb24vdHJhbnNwb3J0cy9XZWJXb3JrZXInXG5leHBvcnQgeyBXZWJTb2NrZXRUcmFuc3BvcnQgfSBmcm9tICcuLi9jb21tb24vdHJhbnNwb3J0cy9XZWJTb2NrZXQnXG5leHBvcnQgeyBNZW1vcnlUcmFuc3BvcnQgfSBmcm9tICcuLi9jb21tb24vdHJhbnNwb3J0cy9NZW1vcnknXG4iXX0=\n\n//# sourceURL=webpack:///./node_modules/metaverse-rpc/lib/client/index.js?");
/***/ }),
/***/ "./node_modules/metaverse-rpc/lib/common/core/EventDispatcher.js":
/*!***********************************************************************!*\
!*** ./node_modules/metaverse-rpc/lib/common/core/EventDispatcher.js ***!
\***********************************************************************/
/*! exports provided: EventDispatcherBinding, EventDispatcher */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"EventDispatcherBinding\", function() { return EventDispatcherBinding; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"EventDispatcher\", function() { return EventDispatcher; });\nconst eventSplitter = /\\s+/g;\nclass EventDispatcherBinding {\n constructor(id, cb, event, sharedList, object) {\n this.id = id;\n this.cb = cb;\n this.event = event;\n this.sharedList = sharedList;\n this.object = object;\n this.enabled = true;\n }\n off() {\n if (this.object) {\n this.cb && this.object.off(this);\n this.cb = null;\n this.object = null;\n if (this.sharedList) {\n delete this.sharedList;\n }\n }\n }\n enable() {\n if (this.sharedList) {\n for (let i = 0; i < this.sharedList.length; i++) {\n this.sharedList[i].enabled = true;\n }\n }\n else\n this.enabled = true;\n }\n disable() {\n if (this.sharedList) {\n for (let i = 0; i < this.sharedList.length; i++) {\n this.sharedList[i].enabled = false;\n }\n }\n else {\n this.enabled = false;\n }\n }\n}\nfunction turnOffCallback(f) {\n delete f.cb;\n}\nclass EventDispatcher {\n constructor() {\n this.edBindings = {};\n this.edBindCount = 0;\n }\n on(event, callback, once) {\n this.edBindCount++;\n let events = event.split(eventSplitter);\n let bindList = [];\n let latest = null;\n for (let evt of events) {\n let tmp = new EventDispatcherBinding(this.edBindCount, null, evt, bindList, this);\n bindList && bindList.push(tmp);\n if (once) {\n tmp.cb = function () {\n callback.apply(this, arguments);\n tmp.cb = null;\n }.bind(this);\n }\n else {\n tmp.cb = callback.bind(this);\n }\n this.edBindings[evt] = this.edBindings[evt] || [];\n this.edBindings[evt].push(tmp);\n latest = tmp;\n }\n return latest;\n }\n once(event, callback) {\n return this.on(event, callback, true);\n }\n off(arg0, arg1) {\n if (arguments.length === 0) {\n for (let i in this.edBindings) {\n for (let e in this.edBindings[i]) {\n delete this.edBindings[i][e].cb;\n }\n this.edBindings[i].length = 0;\n }\n }\n else if (arg0 instanceof EventDispatcherBinding) {\n arg0.cb = null;\n arg0.sharedList && arg0.sharedList.length && arg0.sharedList.forEach(turnOffCallback);\n }\n else if (typeof arg0 === 'string') {\n if (typeof arg1 === 'function') {\n for (let i in this.edBindings[arg0]) {\n if (this.edBindings[arg0][i].cb === arg1) {\n this.edBindings[arg0][i].cb = null;\n }\n }\n }\n else if (typeof arg0 === 'string') {\n this.edBindings[arg0] = [];\n }\n }\n else if (typeof arg0 === 'function') {\n for (let evt in this.edBindings) {\n for (let i in this.edBindings[evt]) {\n if (this.edBindings[evt][i].cb === arg0) {\n this.edBindings[evt][i].cb = null;\n }\n }\n }\n }\n }\n emit(event) {\n if (event in this.edBindings) {\n if (arguments.length === 1) {\n for (let i = 0; i < this.edBindings[event].length; i++) {\n let e = this.edBindings[event][i];\n e && e.cb && e.enabled && e.cb();\n }\n }\n else if (arguments.length === 2) {\n for (let i = 0; i < this.edBindings[event].length; i++) {\n let e = this.edBindings[event][i];\n e && e.cb && e.enabled && e.cb(arguments[1]);\n }\n }\n else if (arguments.length === 3) {\n for (let i = 0; i < this.edBindings[event].length; i++) {\n let e = this.edBindings[event][i];\n e && e.cb && e.enabled && e.cb(arguments[1], arguments[2]);\n }\n }\n else if (arguments.length === 4) {\n for (let i = 0; i < this.edBindings[event].length; i++) {\n let e = this.edBindings[event][i];\n e && e.cb && e.enabled && e.cb(arguments[1], arguments[2], arguments[3]);\n }\n }\n else if (arguments.length === 5) {\n for (let i = 0; i < this.edBindings[event].length; i++) {\n let e = this.edBindings[event][i];\n e && e.cb && e.enabled && e.cb(arguments[1], arguments[2], arguments[3], arguments[4]);\n }\n }\n else if (arguments.length > 4) {\n let args = Array.prototype.slice.call(arguments, 1);\n for (let i = 0; i < this.edBindings[event].length; i++) {\n let e = this.edBindings[event][i];\n e && e.cb && e.enabled && e.cb.apply(this, args);\n }\n }\n }\n else if (event === 'error') {\n const firstArgument = arguments[1];\n let error = null;\n if (firstArgument instanceof Error) {\n error = firstArgument;\n }\n else {\n error = Object.assign(new Error('EventDispatcher: Unhandled \"error\" event'), { data: arguments });\n }\n console.error(error);\n console.trace(arguments);\n throw error;\n }\n }\n getEventBindings(event) {\n return (this.edBindings[event] || []).filter($ => $ && $.enabled);\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXZlbnREaXNwYXRjaGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1vbi9jb3JlL0V2ZW50RGlzcGF0Y2hlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxNQUFNLGFBQWEsR0FBRyxNQUFNLENBQUE7QUFFNUIsTUFBTTtJQUVKLFlBQ1MsRUFBVSxFQUNWLEVBQW1CLEVBQ25CLEtBQWEsRUFDYixVQUFvQyxFQUNwQyxNQUFtQztRQUpuQyxPQUFFLEdBQUYsRUFBRSxDQUFRO1FBQ1YsT0FBRSxHQUFGLEVBQUUsQ0FBaUI7UUFDbkIsVUFBSyxHQUFMLEtBQUssQ0FBUTtRQUNiLGVBQVUsR0FBVixVQUFVLENBQTBCO1FBQ3BDLFdBQU0sR0FBTixNQUFNLENBQTZCO1FBTjVDLFlBQU8sR0FBWSxJQUFJLENBQUE7SUFPcEIsQ0FBQztJQUVKLEdBQUc7UUFDRCxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDZixJQUFJLENBQUMsRUFBRSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFBO1lBQ2hDLElBQUksQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFBO1lBQ2QsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUE7WUFDbEIsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO2dCQUNuQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUE7YUFDdkI7U0FDRjtJQUNILENBQUM7SUFFRCxNQUFNO1FBQ0osSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ25CLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtnQkFDL0MsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFBO2FBQ2xDO1NBQ0Y7O1lBQU0sSUFBSSxDQUFDLE9BQU8sR0FB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SUFBSSxTQUFTLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtnQkFDMUIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO29CQUN0RCxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO29CQUNqQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQTtpQkFDakM7YUFDRjtpQkFBTSxJQUFJLFNBQVMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO2dCQUNqQyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7b0JBQ3RELElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7b0JBQ2pDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtpQkFDN0M7YUFDRjtpQkFBTSxJQUFJLFNBQVMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO2dCQUNqQyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7b0JBQ3RELElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7b0JBQ2pDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxJ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QyxVQUFVLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQTtJQUNuRSxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIERpY3Rpb25hcnk8VCA9IGFueT4ge1xuICBba2V5OiBzdHJpbmddOiBUXG59XG5cbmNvbnN0IGV2ZW50U3BsaXR0ZXIgPSAvXFxzKy9nXG5cbmV4cG9ydCBjbGFzcyBFdmVudERpc3BhdGNoZXJCaW5kaW5nIHtcbiAgZW5hYmxlZDogYm9vbGVhbiA9IHRydWVcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGlkOiBudW1iZXIsXG4gICAgcHVibGljIGNiOiBGdW5jdGlvbiB8IG51bGwsXG4gICAgcHVibGljIGV2ZW50OiBzdHJpbmcsXG4gICAgcHVibGljIHNoYXJlZExpc3Q6IEV2ZW50RGlzcGF0Y2hlckJpbmRpbmdbXSxcbiAgICBwdWJsaWMgb2JqZWN0OiBFdmVudERpc3BhdGNoZXI8YW55PiB8IG51bGxcbiAgKSB7fVxuXG4gIG9mZigpIHtcbiAgICBpZiAodGhpcy5vYmplY3QpIHtcbiAgICAgIHRoaXMuY2IgJiYgdGhpcy5vYmplY3Qub2ZmKHRoaXMpXG4gICAgICB0aGlzLmNiID0gbnVsbFxuICAgICAgdGhpcy5vYmplY3QgPSBudWxsXG4gICAgICBpZiAodGhpcy5zaGFyZWRMaXN0KSB7XG4gICAgICAgIGRlbGV0ZSB0aGlzLnNoYXJlZExpc3RcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBlbmFibGUoKSB7XG4gICAgaWYgKHRoaXMuc2hhcmVkTGlzdCkge1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnNoYXJlZExpc3QubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgdGhpcy5zaGFyZWRMaXN0W2ldLmVuYWJsZWQgPSB0cnVlXG4gICAgICB9XG4gICAgfSBlbHNlIHRoaXMuZW5hYmxlZCA9IHRydWVcbiAgfVxuXG4gIGRpc2FibGUoKSB7XG4gICAgaWYgKHRoaXMuc2hhcmVkTGlzdCkge1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnNoYXJlZExpc3QubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgdGhpcy5zaGFyZWRMaXN0W2ldLmVuYWJsZWQgPSBmYWxzZVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmVuYWJsZWQgPSBmYWxzZVxuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiB0dXJuT2ZmQ2FsbGJhY2soZjogRXZlbnREaXNwYXRjaGVyQmluZGluZykge1xuICBkZWxldGUgZi5jYlxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEV2ZW50RGlzcGF0Y2hlckV2ZW50c0Jhc2Uge1xuICBba2V5OiBzdHJpbmddOiBGdW5jdGlvblxufVxuXG5leHBvcnQgY2xhc3MgRXZlbnREaXNwYXRjaGVyPFQgPSBFdmVudERpc3BhdGNoZXJFdmVudHNCYXNlPiB7XG4gIHByaXZhdGUgZWRCaW5kaW5nczogRGljdGlvbmFyeTxFdmVudERpc3BhdGNoZXJCaW5kaW5nW10+ID0ge31cbiAgcHJpdmF0ZSBlZEJpbmRDb3VudCA9IDBcblxuICBvbjxLIGV4dGVuZHMga2V5b2YgVD4oZXZlbnQ6IEssIGNhbGxiYWNrOiBUW0tdLCBvbmNlPzogYm9vbGVhbik6IEV2ZW50RGlzcGF0Y2hlckJpbmRpbmdcbiAgb24oZXZlbnQ6IHN0cmluZywgY2FsbGJhY2s6ICguLi5hcmdzOiBhbnlbXSkgPT4gdm9pZCwgb25jZT86IGJvb2xlYW4pOiBFdmVudERpc3BhdGNoZXJCaW5kaW5nXG4gIG9uKGV2ZW50OiBzdHJpbmcsIGNhbGxiYWNrOiBhbnksIG9uY2U/OiBib29sZWFuKTogRXZlbnREaXNwYXRjaGVyQmluZGluZyB7XG4gICAgdGhpcy5lZEJpbmRDb3VudCsrXG5cbiAgICBsZXQgZXZlbnRzID0gZXZlbnQuc3BsaXQoZXZlbnRTcGxpdHRlcilcblxuICAgIGxldCBiaW5kTGlzdDogRXZlbnREaXNwYXRjaGVyQmluZGluZ1tdID0gW11cbiAgICBsZXQgbGF0ZXN0OiBFdmVudERpc3BhdGNoZXJCaW5kaW5nIHwgbnVsbCA9IG51bGxcblxuICAgIGZvciAobGV0IGV2dCBvZiBldmVudHMpIHtcbiAgICAgIGxldCB0bXAgPSBuZXcgRXZlbnREaXNwYXRjaGVyQmluZGluZyh0aGlzLmVkQmluZENvdW50LCBudWxsLCBldnQsIGJpbmRMaXN0LCB0aGlzKVxuXG4gICAgICBiaW5kTGlzdCAmJiBiaW5kTGlzdC5wdXNoKHRtcClcblxuICAgICAgaWYgKG9uY2UpIHtcbiAgICAgICAgdG1wLmNiID0gZnVuY3Rpb24odGhpczogRXZlbnREaXNwYXRjaGVyPFQ+KSB7XG4gICAgICAgICAgY2FsbGJhY2suYXBwbHkodGhpcywgYXJndW1lbnRzKVxuICAgICAgICAgIHRtcC5jYiA9IG51bGxcbiAgICAgICAgfS5iaW5kKHRoaXMpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0bXAuY2IgPSBjYWxsYmFjay5iaW5kKHRoaXMpXG4gICAgICB9XG5cbiAgICAgIHRoaXMuZWRCaW5kaW5nc1tldnRdID0gdGhpcy5lZEJpbmRpbmdzW2V2dF0gfHwgW11cbiAgICAgIHRoaXMuZWRCaW5kaW5nc1tldnRdLnB1c2godG1wKVxuXG4gICAgICBsYXRlc3QgPSB0bXBcbiAgICB9XG5cbiAgICByZXR1cm4gbGF0ZXN0IGFzIEV2ZW50RGlzcGF0Y2hlckJpbmRpbmdcbiAgfVxuXG4gIG9uY2U8SyBleHRlbmRzIGtleW9mIFQ+KGV2ZW50OiBLLCBjYWxsYmFjazogVFtLXSk6IEV2ZW50RGlzcGF0Y2hlckJpbmRpbmdcbiAgb25jZShldmVudDogc3RyaW5nLCBjYWxsYmFjazogRnVuY3Rpb24pOiBFdmVudERpc3BhdGNoZXJCaW5kaW5nXG4gIG9uY2UoZXZlbnQ6IHN0cmluZywgY2FsbGJhY2s6IGFueSkge1xuICAgIHJldHVybiB0aGlzLm9uKGV2ZW50LCBjYWxsYmFjaywgdHJ1ZSlcbiAgfVxuXG4gIG9mZihiaW5kaW5nOiBFdmVudERpc3BhdGNoZXJCaW5kaW5nKTogdm9pZFxuICBvZmYoZXZlbnROYW1lOiBzdHJpbmcsIGJvdW5kQ2FsbGJhY2s/OiBGdW5jdGlvbik6IHZvaWRcbiAgb2ZmKGJvdW5kQ2FsbGJhY2s6IEZ1bmN0aW9uKTogdm9pZFxuICBvZmYoYXJnMD86IHN0cmluZyB8IEZ1bmN0aW9uIHwgRXZlbnREaXNwYXRjaGVyQmluZGluZywgYXJnMT86IEZ1bmN0aW9uKTogdm9pZCB7XG4gICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDApIHtcbiAgICAgIGZvciAobGV0IGkgaW4gdGhpcy5lZEJpbmRpbmdzKSB7XG4gICAgICAgIGZvciAobGV0IGUgaW4gdGhpcy5lZEJpbmRpbmdzW2ldKSB7XG4gICAgICAgICAgZGVsZXRlIHRoaXMuZWRCaW5kaW5nc1tpXVtlXS5jYlxuICAgICAgICB9XG4gICAgICAgIHRoaXMuZWRCaW5kaW5nc1tpXS5sZW5ndGggPSAwXG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChhcmcwIGluc3RhbmNlb2YgRXZlbnREaXNwYXRjaGVyQmluZGluZykge1xuICAgICAgYXJnMC5jYiA9IG51bGxcbiAgICAgIGFyZzAuc2hhcmVkTGlzdCAmJiBhcmcwLnNoYXJlZExpc3QubGVuZ3RoICYmIGFyZzAuc2hhcmVkTGlzdC5mb3JFYWNoKHR1cm5PZmZDYWxsYmFjaylcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBhcmcwID09PSAnc3RyaW5nJykge1xuICAgICAgaWYgKHR5cGVvZiBhcmcxID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIGZvciAobGV0IGkgaW4gdGhpcy5lZEJpbmRpbmdzW2FyZzBdKSB7XG4gICAgICAgICAgaWYgKHRoaXMuZWRCaW5kaW5nc1thcmcwXVtpXS5jYiA9PT0gYXJnMSkge1xuICAgICAgICAgICAgdGhpcy5lZEJpbmRpbmdzW2FyZzBdW2ldLmNiID0gbnVsbFxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmICh0eXBlb2YgKGFyZzAgYXMgYW55KSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgdGhpcy5lZEJpbmRpbmdzW2FyZzBdID0gW11cbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBhcmcwID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBmb3IgKGxldCBldnQgaW4gdGhpcy5lZEJpbmRpbmdzKSB7XG4gICAgICAgIGZvciAobGV0IGkgaW4gdGhpcy5lZEJpbmRpbmdzW2V2dF0pIHtcbiAgICAgICAgICBpZiAodGhpcy5lZEJpbmRpbmdzW2V2dF1baV0uY2IgPT09IGFyZzApIHtcbiAgICAgICAgICAgIHRoaXMuZWRCaW5kaW5nc1tldnRdW2ldLmNiID0gbnVsbFxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGVtaXQoZXZlbnQ6ICdlcnJvcicsIGVycm9yOiBhbnkpOiB2b2lkXG4gIGVtaXQ8SyBleHRlbmRzIGtleW9mIFQ+KGV2ZW50OiBLLCAuLi5wYXJhbXM6IGFueVtdKTogdm9pZFxuICBlbWl0KGV2ZW50OiBzdHJpbmcsIC4uLnBhcmFtczogYW55W10pOiB2b2lkXG4gIGVtaXQoZXZlbnQ6IHN0cmluZykge1xuICAgIGlmIChldmVudCBpbiB0aGlzLmVkQmluZGluZ3MpIHtcbiAgICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAxKSB7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5lZEJpbmRpbmdzW2V2ZW50XS5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIGxldCBlID0gdGhpcy5lZEJpbmRpbmdzW2V2ZW50XVtpXVxuICAgICAgICAgIGUgJiYgZS5jYiAmJiBlLmVuYWJsZWQgJiYgZS5jYigpXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMikge1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuZWRCaW5kaW5nc1tldmVudF0ubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICBsZXQgZSA9IHRoaXMuZWRCaW5kaW5nc1tldmVudF1baV1cbiAgICAgICAgICBlICYmIGUuY2IgJiYgZS5lbmFibGVkICYmIGUuY2IoYXJndW1lbnRzWzFdKVxuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDMpIHtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmVkQmluZGluZ3NbZXZlbnRdLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgbGV0IGUgPSB0aGlzLmVkQmluZGluZ3NbZXZlbnRdW2ldXG4gICAgICAgICAgZSAmJiBlLmNiICYmIGUuZW5hYmxlZCAmJiBlLmNiKGFyZ3VtZW50c1sxXSwgYXJndW1lbnRzWzJdKVxuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDQpIHtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmVkQmluZGluZ3NbZXZlbnRdLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgbGV0IGUgPSB0aGlzLmVkQmluZGluZ3NbZXZlbnRdW2ldXG4gICAgICAgICAgZSAmJiBlLmNiICYmIGUuZW5hYmxlZCAmJiBlLmNiKGFyZ3VtZW50c1sxXSwgYXJndW1lbnRzWzJdLCBhcmd1bWVudHNbM10pXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gNSkge1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuZWRCaW5kaW5nc1tldmVudF0ubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICBsZXQgZSA9IHRoaXMuZWRCaW5kaW5nc1tldmVudF1baV1cbiAgICAgICAgICBlICYmIGUuY2IgJiYgZS5lbmFibGVkICYmIGUuY2IoYXJndW1lbnRzWzFdLCBhcmd1bWVudHNbMl0sIGFyZ3VtZW50c1szXSwgYXJndW1lbnRzWzRdKVxuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGFyZ3VtZW50cy5sZW5ndGggPiA0KSB7XG4gICAgICAgIGxldCBhcmdzID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLCAxKVxuXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5lZEJpbmRpbmdzW2V2ZW50XS5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIGxldCBlID0gdGhpcy5lZEJpbmRpbmdzW2V2ZW50XVtpXVxuICAgICAgICAgIGUgJiYgZS5jYiAmJiBlLmVuYWJsZWQgJiYgZS5jYi5hcHBseSh0aGlzLCBhcmdzKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChldmVudCA9PT0gJ2Vycm9yJykge1xuICAgICAgY29uc3QgZmlyc3RBcmd1bWVudDogYW55ID0gYXJndW1lbnRzWzFdXG4gICAgICBsZXQgZXJyb3I6IEVycm9yIHwgbnVsbCA9IG51bGxcblxuICAgICAgaWYgKGZpcnN0QXJndW1lbnQgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgICBlcnJvciA9IGZpcnN0QXJndW1lbnRcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGVycm9yID0gT2JqZWN0LmFzc2lnbihuZXcgRXJyb3IoJ0V2ZW50RGlzcGF0Y2hlcjogVW5oYW5kbGVkIFwiZXJyb3JcIiBldmVudCcpLCB7IGRhdGE6IGFyZ3VtZW50cyB9KVxuICAgICAgfVxuXG4gICAgICBjb25zb2xlLmVycm9yKGVycm9yKVxuICAgICAgY29uc29sZS50cmFjZShhcmd1bWVudHMpXG5cbiAgICAgIHRocm93IGVycm9yXG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGdldEV2ZW50QmluZGluZ3MoZXZlbnQ6IHN0cmluZykge1xuICAgIHJldHVybiAodGhpcy5lZEJpbmRpbmdzW2V2ZW50XSB8fCBbXSkuZmlsdGVyKCQgPT4gJCAmJiAkLmVuYWJsZWQpXG4gIH1cbn1cbiJdfQ==\n\n//# sourceURL=webpack:///./node_modules/metaverse-rpc/lib/common/core/EventDispatcher.js?");
/***/ }),
/***/ "./node_modules/metaverse-rpc/lib/common/core/isPromiseLike.js":
/*!*********************************************************************!*\
!*** ./node_modules/metaverse-rpc/lib/common/core/isPromiseLike.js ***!
\*********************************************************************/
/*! exports provided: isPromiseLike */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isPromiseLike\", function() { return isPromiseLike; });\nfunction isPromiseLike(thing) {\n return (thing &&\n typeof thing === 'object' &&\n typeof thing['then'] === 'function' &&\n typeof thing['catch'] === 'function');\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXNQcm9taXNlTGlrZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tb24vY29yZS9pc1Byb21pc2VMaWtlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE1BQU0sd0JBQXdCLEtBQVU7SUFDdEMsT0FBTyxDQUNMLEtBQUs7UUFFTCxPQUFPLEtBQUssS0FBSyxRQUFRO1FBRXpCLE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLFVBQVU7UUFFbkMsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssVUFBVSxDQUNyQyxDQUFBO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBpc1Byb21pc2VMaWtlKHRoaW5nOiBQcm9taXNlPGFueT4pOiB0cnVlXG5leHBvcnQgZnVuY3Rpb24gaXNQcm9taXNlTGlrZSh0aGluZzogdm9pZCk6IGZhbHNlXG5leHBvcnQgZnVuY3Rpb24gaXNQcm9taXNlTGlrZSh0aGluZzogYW55KTogZmFsc2VcbmV4cG9ydCBmdW5jdGlvbiBpc1Byb21pc2VMaWtlKHRoaW5nOiBhbnkpOiBib29sZWFuIHtcbiAgcmV0dXJuIChcbiAgICB0aGluZyAmJlxuICAgIC8vIGl0IGlzIGFuIG9iamVjdFxuICAgIHR5cGVvZiB0aGluZyA9PT0gJ29iamVjdCcgJiZcbiAgICAvLyBpdCBoYXMgdGhlblxuICAgIHR5cGVvZiB0aGluZ1sndGhlbiddID09PSAnZnVuY3Rpb24nICYmXG4gICAgLy8gaXQgaGFzIGNhdGNoXG4gICAgdHlwZW9mIHRoaW5nWydjYXRjaCddID09PSAnZnVuY3Rpb24nXG4gIClcbn1cbiJdfQ==\n\n//# sourceURL=webpack:///./node_modules/metaverse-rpc/lib/common/core/isPromiseLike.js?");
/***/ }),
/***/ "./node_modules/metaverse-rpc/lib/common/json-rpc/API.js":
/*!***************************************************************!*\
!*** ./node_modules/metaverse-rpc/lib/common/json-rpc/API.js ***!
\***************************************************************/
/*! exports provided: getApi */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getApi\", function() { return getApi; });\nconst blacklistedMethods = ['then', 'catch'];\nfunction getApi(rpcClient, _prefix = '') {\n if (!Proxy) {\n throw new Error('getApi() requires ES6 Proxy. Please use an ES6 compatible engine');\n }\n const prefix = _prefix === '' ? '' : `${_prefix}.`;\n return new Proxy({}, {\n get: (target, prop) => {\n if (target[prop]) {\n return target[prop];\n }\n if (prop === '__proto__' || prop === 'prototype') {\n return Object.prototype;\n }\n else if (prop.substr(0, 2) === 'on' && prop.length > 3) {\n const method = prop.substr(2);\n target[prop] = (handler) => rpcClient.on(`${prefix}${method}`, (params) => {\n try {\n if (params && params instanceof Array) {\n handler.apply(null, params);\n }\n else {\n handler.call(null, params);\n }\n }\n catch (e) {\n rpcClient.emit('error', e);\n }\n });\n }\n else if (prop.substr(0, 4) === 'emit' && prop.length > 5) {\n const method = prop.substr(4);\n target[prop] = (...args) => rpcClient.notify(`${prefix}${method}`, args);\n }\n else if (blacklistedMethods.indexOf(prop) !== -1) {\n return undefined;\n }\n else {\n const method = prop;\n target[prop] = (...args) => rpcClient.call(`${prefix}${method}`, args);\n }\n return target[prop];\n }\n });\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQVBJLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1vbi9qc29uLXJwYy9BUEkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQTtBQVU1QyxNQUFNLGlCQUF5QyxTQUFpQixFQUFFLFVBQWtCLEVBQUU7SUFDcEYsSUFBSSxDQUFDLEtBQUssRUFBRTtRQUNWLE1BQU0sSUFBSSxLQUFLLENBQUMsa0VBQWtFLENBQUMsQ0FBQTtLQUNwRjtJQUVELE1BQU0sTUFBTSxHQUFHLE9BQU8sS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxPQUFPLEdBQUcsQ0FBQTtJQUVsRCxPQUFPLElBQUksS0FBSyxDQUFDLEVBQU8sRUFBRTtRQUN4QixHQUFHLEVBQUUsQ0FBQyxNQUFXLEVBQUUsSUFBWSxFQUFFLEVBQUU7WUFDakMsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ2hCLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFBO2FBQ3BCO1lBRUQsSUFBSSxJQUFJLEtBQUssV0FBVyxJQUFJLElBQUksS0FBSyxXQUFXLEVBQUU7Z0JBQ2hELE9BQU8sTUFBTSxDQUFDLFNBQVMsQ0FBQTthQUN4QjtpQkFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLElBQUksSUFBSSxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtnQkFDeEQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQTtnQkFDN0IsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBaUIsRUFBRSxFQUFFLENBQ25DLFNBQVMsQ0FBQyxFQUFFLENBQUMsR0FBRyxNQUFNLEdBQUcsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFXLEVBQUUsRUFBRTtvQkFDakQsSUFBSTt3QkFDRixJQUFJLE1BQU0sSUFBSSxNQUFNLFlBQVksS0FBSyxFQUFFOzRCQUNyQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQTt5QkFDNUI7NkJBQU07NEJBQ0wsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUE7eUJBQzNCO3FCQUNGO29CQUFDLE9BQU8sQ0FBQyxFQUFFO3dCQUNWLFNBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFBO3FCQUMzQjtnQkFDSCxDQUFDLENBQUMsQ0FBQTthQUNMO2lCQUFNLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssTUFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO2dCQUMxRCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFBO2dCQUM3QixNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQVcsRUFBRSxFQUFFLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxHQUFHLE1BQU0sR0FBRyxNQUFNLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQTthQUNoRjtpQkFBTSxJQUFJLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRTtnQkFDbEQsT0FBTyxTQUFTLENBQUE7YUFDakI7aUJBQU07Z0JBQ0wsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFBO2dCQUNuQixNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQVcsRUFBRSxFQUFFLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLE1BQU0sR0FBRyxNQUFNLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQTthQUM5RTtZQUVELE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQ3JCLENBQUM7S0FDRixDQUFDLENBQUE7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2xpZW50IH0gZnJvbSAnLi9DbGllbnQnXG5cbmNvbnN0IGJsYWNrbGlzdGVkTWV0aG9kcyA9IFsndGhlbicsICdjYXRjaCddXG5cbi8qKlxuICogQnVpbGRzIGFuIEVTNiBQcm94eSB3aGVyZSBhcGkuZG9tYWluLm1ldGhvZChwYXJhbXMpIHRyYW5zYXRlcyBpbnRvIGNsaWVudC5zZW5kKCd7ZG9tYWlufS57bWV0aG9kfScsIHBhcmFtcykgY2FsbHNcbiAqIGFwaS5kb21haW4ub257bWV0aG9kfSB3aWxsIGFkZCBldmVudCBoYW5kbGVycyBmb3Ige21ldGhvZH0gZXZlbnRzXG4gKiBhcGkuZG9tYWluLmVtaXR7bWV0aG9kfSB3aWxsIHNlbmQge21ldGhvZH0gbm90aWZpY2F0aW9ucyB0byB0aGUgc2VydmVyXG4gKiBUaGUgYXBpIG9iamVjdCBsZWFkcyBpdHNlbGYgdG8gYSB2ZXJ5IGNsZWFuIGludGVyZmFjZSBpLmUgYGF3YWl0IGFwaS5Eb21haW4uZnVuYyhwYXJhbXMpYCBjYWxsc1xuICogVGhpcyBhbGxvd3MgdGhlIGNvbnN1bWVyIHRvIGFic3RyYWN0IGFsbCB0aGUgaW50ZXJuYWwgZGV0YWlscyBvZiBtYXJzaGFsbGluZyB0aGUgbWVzc2FnZSBmcm9tIGZ1bmN0aW9uIGNhbGwgdG8gYSBzdHJpbmdcbiAqIENhbGxpbmcgY2xpZW50LmFwaSgnJykgd2lsbCByZXR1cm4gYW4gdW5wcmVmaXhlZCBjbGllbnQuIGUuZyBhcGkuaGVsbG8oKSBpcyBlcXVpdmFsaWVudCB0byBjbGllbnQuc2VuZCgnaGVsbG8nKVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0QXBpPFQgZXh0ZW5kcyBvYmplY3QgPSBhbnk+KHJwY0NsaWVudDogQ2xpZW50LCBfcHJlZml4OiBzdHJpbmcgPSAnJyk6IFQge1xuICBpZiAoIVByb3h5KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdnZXRBcGkoKSByZXF1aXJlcyBFUzYgUHJveHkuIFBsZWFzZSB1c2UgYW4gRVM2IGNvbXBhdGlibGUgZW5naW5lJylcbiAgfVxuXG4gIGNvbnN0IHByZWZpeCA9IF9wcmVmaXggPT09ICcnID8gJycgOiBgJHtfcHJlZml4fS5gXG5cbiAgcmV0dXJuIG5ldyBQcm94eSh7fSBhcyBULCB7XG4gICAgZ2V0OiAodGFyZ2V0OiBhbnksIHByb3A6IHN0cmluZykgPT4ge1xuICAgICAgaWYgKHRhcmdldFtwcm9wXSkge1xuICAgICAgICByZXR1cm4gdGFyZ2V0W3Byb3BdXG4gICAgICB9XG4gICAgICAvLyBTcGVjaWFsIGhhbmRsaW5nIGZvciBwcm90b3R5cGUgc28gY29uc29sZSBpbnRlbGxpc2Vuc2Ugd29ya3Mgb24gb2JqZWN0c1xuICAgICAgaWYgKHByb3AgPT09ICdfX3Byb3RvX18nIHx8IHByb3AgPT09ICdwcm90b3R5cGUnKSB7XG4gICAgICAgIHJldHVybiBPYmplY3QucHJvdG90eXBlXG4gICAgICB9IGVsc2UgaWYgKHByb3Auc3Vic3RyKDAsIDIpID09PSAnb24nICYmIHByb3AubGVuZ3RoID4gMykge1xuICAgICAgICBjb25zdCBtZXRob2QgPSBwcm9wLnN1YnN0cigyKVxuICAgICAgICB0YXJnZXRbcHJvcF0gPSAoaGFuZGxlcjogRnVuY3Rpb24pID0+XG4gICAgICAgICAgcnBjQ2xpZW50Lm9uKGAke3ByZWZpeH0ke21ldGhvZH1gLCAocGFyYW1zOiBhbnkpID0+IHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIGlmIChwYXJhbXMgJiYgcGFyYW1zIGluc3RhbmNlb2YgQXJyYXkpIHtcbiAgICAgICAgICAgICAgICBoYW5kbGVyLmFwcGx5KG51bGwsIHBhcmFtcylcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBoYW5kbGVyLmNhbGwobnVsbCwgcGFyYW1zKVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgIHJwY0NsaWVudC5lbWl0KCdlcnJvcicsIGUpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSlcbiAgICAgIH0gZWxzZSBpZiAocHJvcC5zdWJzdHIoMCwgNCkgPT09ICdlbWl0JyAmJiBwcm9wLmxlbmd0aCA+IDUpIHtcbiAgICAgICAgY29uc3QgbWV0aG9kID0gcHJvcC5zdWJzdHIoNClcbiAgICAgICAgdGFyZ2V0W3Byb3BdID0gKC4uLmFyZ3M6IGFueVtdKSA9PiBycGNDbGllbnQubm90aWZ5KGAke3ByZWZpeH0ke21ldGhvZH1gLCBhcmdzKVxuICAgICAgfSBlbHNlIGlmIChibGFja2xpc3RlZE1ldGhvZHMuaW5kZXhPZihwcm9wKSAhPT0gLTEpIHtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgbWV0aG9kID0gcHJvcFxuICAgICAgICB0YXJnZXRbcHJvcF0gPSAoLi4uYXJnczogYW55W10pID0+IHJwY0NsaWVudC5jYWxsKGAke3ByZWZpeH0ke21ldGhvZH1gLCBhcmdzKVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gdGFyZ2V0W3Byb3BdXG4gICAgfVxuICB9KVxufVxuIl19\n\n//# sourceURL=webpack:///./node_modules/metaverse-rpc/lib/common/json-rpc/API.js?");
/***/ }),
/***/ "./node_modules/metaverse-rpc/lib/common/json-rpc/Client.js":
/*!******************************************************************!*\
!*** ./node_modules/metaverse-rpc/lib/common/json-rpc/Client.js ***!
\******************************************************************/
/*! exports provided: Client */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* WEBPACK VAR INJECTION */(function(Buffer) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Client\", function() { return Client; });\n/* harmony import */ var _core_EventDispatcher__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../core/EventDispatcher */ \"./node_modules/metaverse-rpc/lib/common/core/EventDispatcher.js\");\n/* harmony import */ var msgpack_lite__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! msgpack-lite */ \"./node_modules/msgpack-lite/lib/browser.js\");\n/* harmony import */ var msgpack_lite__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(msgpack_lite__WEBPACK_IMPORTED_MODULE_1__);\n\n\nconst codec = Object(msgpack_lite__WEBPACK_IMPORTED_MODULE_1__[\"createCodec\"])();\nclass Client extends _core_EventDispatcher__WEBPACK_IMPORTED_MODULE_0__[\"EventDispatcher\"] {\n constructor(opts) {\n super();\n this.sendEncoding = 'JSON';\n this._responsePromiseMap = new Map();\n this._nextMessageId = 0;\n this._consoleLog = false;\n this._requestQueue = [];\n this._connected = false;\n this.setLogging(opts);\n }\n processMessage(messageStr) {\n let message;\n if (typeof messageStr === 'string' && messageStr.charAt(0) === '{') {\n this._logMessage(messageStr, 'receive');\n try {\n message = JSON.parse(messageStr);\n }\n catch (e) {\n return this.emit('error', e);\n }\n }\n else if (typeof messageStr === 'string' ||\n messageStr instanceof Uint8Array ||\n (typeof Buffer !== 'undefined' && messageStr instanceof Buffer) ||\n messageStr instanceof Array) {\n message = Object(msgpack_lite__WEBPACK_IMPORTED_MODULE_1__[\"decode\"])(messageStr, { codec });\n }\n else {\n message = messageStr;\n }\n if (!message) {\n this.emit('error', new Error(`Message cannot be null, empty or undefined`));\n }\n else if (message.id) {\n if (this._responsePromiseMap.has(message.id)) {\n const promise = this._responsePromiseMap.get(message.id);\n this._responsePromiseMap.delete(message.id);\n if ('result' in message) {\n promise.resolve(message.result);\n }\n else if ('error' in message) {\n const error = Object.assign(new Error('Remote error'), message.error, (message.error && message.error.data) || {});\n promise.reject(error);\n }\n else {\n promise.reject(Object.assign(new Error(`Response must have result or error: ${messageStr}`), {\n code: -32700\n }));\n }\n }\n else {\n this.emit('error', new Error(`Response with id:${message.id} has no pending request`));\n }\n }\n else if (message.method) {\n this.emit(message.method, message.params);\n }\n else {\n this.emit('error', new Error(`Invalid message: ${messageStr}`));\n }\n }\n setLogging({ logConsole } = {}) {\n this._consoleLog = !!logConsole;\n }\n call(method, params) {\n if (typeof params !== 'undefined' && typeof params !== 'object') {\n throw new Error(`Client#call Params must be structured data (Array | Object) got ${JSON.stringify(params)}`);\n }\n const id = ++this._nextMessageId;\n const message = { id, method, params, jsonrpc: '2.0' };\n return new Promise((resolve, reject) => {\n try {\n this._responsePromiseMap.set(id, { resolve, reject });\n this._send(message);\n }\n catch (error) {\n return reject(error);\n }\n });\n }\n notify(method, params) {\n if (typeof params !== 'undefined' && typeof params !== 'object') {\n throw new Error(`Client#notify Params must be structured data (Array | Object) got ${JSON.stringify(params)}`);\n }\n this._send({ method, params, jsonrpc: '2.0' });\n }\n didConnect() {\n if (this._connected === false) {\n this._connected = true;\n this._sendQueuedRequests();\n }\n }\n _send(message) {\n if (this.sendEncoding === 'msgpack') {\n this._requestQueue.push(Object(msgpack_lite__WEBPACK_IMPORTED_MODULE_1__[\"encode\"])(message, { codec }));\n }\n else {\n this._requestQueue.push(JSON.stringify(message));\n }\n this._sendQueuedRequests();\n }\n _sendQueuedRequests() {\n if (this._connected) {\n const queue = this._requestQueue.splice(0, this._requestQueue.length);\n for (let messageStr of queue) {\n this._logMessage(messageStr, 'send');\n this.sendMessage(messageStr);\n }\n }\n }\n _logMessage(message, direction) {\n if (this._consoleLog) {\n console.log(`Client ${direction === 'send' ? '>' : '<'}`, message.toString());\n }\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1vbi9qc29uLXJwYy9DbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHlCQUF5QixDQUFBO0FBRXpELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUUxRCxNQUFNLEtBQUssR0FBRyxXQUFXLEVBQUUsQ0FBQTtBQU0zQixNQUFNLGFBQXVCLFNBQVEsZUFBZTtJQVNsRCxZQUFZLElBQTJCO1FBQ3JDLEtBQUssRUFBRSxDQUFBO1FBVFQsaUJBQVksR0FBdUIsTUFBTSxDQUFBO1FBRWpDLHdCQUFtQixHQUFxQyxJQUFJLEdBQUcsRUFBRSxDQUFBO1FBQ2pFLG1CQUFjLEdBQVcsQ0FBQyxDQUFBO1FBQzFCLGdCQUFXLEdBQVksS0FBSyxDQUFBO1FBQzVCLGtCQUFhLEdBQXdCLEVBQUUsQ0FBQTtRQUN2QyxlQUFVLEdBQUcsS0FBSyxDQUFBO1FBSXhCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDdkIsQ0FBQztJQUlNLGNBQWMsQ0FDbkIsVUFBbUc7UUFFbkcsSUFBSSxPQUFvRCxDQUFBO1FBRXhELElBQUksT0FBTyxVQUFVLEtBQUssUUFBUSxJQUFJLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxFQUFFO1lBQ2xFLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxFQUFFLFNBQVMsQ0FBQyxDQUFBO1lBR3ZDLElBQUk7Z0JBQ0YsT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUE7YUFDakM7WUFBQyxPQUFPLENBQUMsRUFBRTtnQkFDVixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFBO2FBQzdCO1NBQ0Y7YUFBTSxJQUNMLE9BQU8sVUFBVSxLQUFLLFFBQVE7WUFDOUIsVUFBVSxZQUFZLFVBQVU7WUFDaEMsQ0FBQyxPQUFPLE1BQU0sS0FBSyxXQUFXLElBQUksVUFBVSxZQUFZLE1BQU0sQ0FBQztZQUMvRCxVQUFVLFlBQVksS0FBSyxFQUMzQjtZQUNBLE9BQU8sR0FBRyxNQUFNLENBQUMsVUFBaUIsRUFBRSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUE7U0FDL0M7YUFBTTtZQUNMLE9BQU8sR0FBRyxVQUFVLENBQUE7U0FDckI7UUFHRCxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ1osSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxLQUFLLENBQUMsNENBQTRDLENBQUMsQ0FBQyxDQUFBO1NBQzVFO2FBQU0sSUFBSSxPQUFPLENBQUMsRUFBRSxFQUFFO1lBQ3JCLElBQUksSUFBSSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUU7Z0JBRTVDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBd0IsQ0FBQTtnQkFDL0UsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUE7Z0JBRTNDLElBQUksUUFBUSxJQUFJLE9BQU8sRUFBRTtvQkFDdkIsT0FBTyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUE7aUJBQ2hDO3FCQUFNLElBQUksT0FBTyxJQUFJLE9BQU8sRUFBRTtvQkFDN0IsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FDekIsSUFBSSxLQUFLLENBQUMsY0FBYyxDQUFDLEVBQ3pCLE9BQU8sQ0FBQyxLQUFLLEVBQ2IsQ0FBQyxPQUFPLENBQUMsS0FBSyxJQUFJLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUM1QyxDQUFBO29CQUNELE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUE7aUJBQ3RCO3FCQUFNO29CQUNMLE9BQU8sQ0FBQyxNQUFNLENBQ1osTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssQ0FBQyx1Q0FBdUMsVUFBVSxFQUFFLENBQUMsRUFBRTt3QkFDNUUsSUFBSSxRQUErQjtxQkFDcEMsQ0FBQyxDQUNILENBQUE7aUJBQ0Y7YUFDRjtpQkFBTTtnQkFDTCxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLEtBQUssQ0FBQyxvQkFBb0IsT0FBTyxDQUFDLEVBQUUseUJBQXlCLENBQUMsQ0FBQyxDQUFBO2FBQ3ZGO1NBQ0Y7YUFBTSxJQUFJLE9BQU8sQ0FBQyxNQUFNLEVBQUU7WUFFekIsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQTtTQUMxQzthQUFNO1lBQ0wsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxLQUFLLENBQUMsb0JBQW9CLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQTtTQUNoRTtJQUNILENBQUM7SUFLTSxVQUFVLENBQUMsRUFBRSxVQUFVLEtBQXdCLEVBQUU7UUFDdEQsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUMsVUFBVSxDQUFBO0lBQ2pDLENBQUM7SUFTRCxJQUFJLENBQUMsTUFBYyxFQUFFLE1BQVk7UUFDL0IsSUFBSSxPQUFPLE1BQU0sS0FBSyxXQUFXLElBQUksT0FBTyxNQUFNLEtBQUssUUFBUSxFQUFFO1lBQy9ELE1BQU0sSUFBSSxLQUFLLENBQUMsbUVBQW1FLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFBO1NBQzdHO1FBRUQsTUFBTSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFBO1FBQ2hDLE1BQU0sT0FBTyxHQUFzQixFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsQ0FBQTtRQUV6RSxPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQ3JDLElBQUk7Z0JBQ0YsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQTtnQkFDckQsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQTthQUNwQjtZQUFDLE9BQU8sS0FBSyxFQUFFO2dCQUNkLE9BQU8sTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFBO2FBQ3JCO1FBQ0gsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDO0lBU0QsTUFBTSxDQUFDLE1BQWMsRUFBRSxNQUFZO1FBQ2pDLElBQUksT0FBTyxNQUFNLEtBQUssV0FBVyxJQUFJLE9BQU8sTUFBTSxLQUFLLFFBQVEsRUFBRTtZQUMvRCxNQUFNLElBQUksS0FBSyxDQUFDLHFFQUFxRSxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQTtTQUMvRztRQUVELElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFBO0lBQ2hELENBQUM7SUFFUyxVQUFVO1FBQ2xCLElBQUksSUFBSSxDQUFDLFVBQVUsS0FBSyxLQUFLLEVBQUU7WUFDN0IsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUE7WUFDdEIsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUE7U0FDM0I7SUFDSCxDQUFDO0lBRU8sS0FBSyxDQUFDLE9BQW1EO1FBQy9ELElBQUksSUFBSSxDQUFDLFlBQVksS0FBSyxTQUFTLEVBQUU7WUFDbkMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQTtTQUNwRDthQUFNO1lBQ0wsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFBO1NBQ2pEO1FBQ0QsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUE7SUFDNUIsQ0FBQztJQUVPLG1CQUFtQjtRQUN6QixJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDbkIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUE7WUFDckUsS0FBSyxJQUFJLFVBQVUsSUFBSSxLQUFLLEVBQUU7Z0JBQzVCLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxDQUFBO2dCQUNwQyxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxDQUFBO2FBQzdCO1NBQ0Y7SUFDSCxDQUFDO0lBRU8sV0FBVyxDQUFDLE9BQXdCLEVBQUUsU0FBNkI7UUFDekUsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ3BCLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxTQUFTLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFBO1NBQzlFO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXZlbnREaXNwYXRjaGVyIH0gZnJvbSAnLi4vY29yZS9FdmVudERpc3BhdGNoZXInXG5pbXBvcnQgKiBhcyBKc29uUnBjMiBmcm9tICcuL3R5cGVzJ1xuaW1wb3J0IHsgY3JlYXRlQ29kZWMsIGVuY29kZSwgZGVjb2RlIH0gZnJvbSAnbXNncGFjay1saXRlJ1xuXG5jb25zdCBjb2RlYyA9IGNyZWF0ZUNvZGVjKClcblxuLyoqXG4gKiBDcmVhdGVzIGEgUlBDIENsaWVudC5cbiAqIEl0IGlzIGludGVudGlvbmFsIHRoYXQgQ2xpZW50IGRvZXMgbm90IGNyZWF0ZSBhIFdlYlNvY2tldCBvYmplY3Qgc2luY2Ugd2UgcHJlZmVyIGNvbXBvc2FiaWxpdHlcbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIENsaWVudCBleHRlbmRzIEV2ZW50RGlzcGF0Y2hlciBpbXBsZW1lbnRzIEpzb25ScGMyLklDbGllbnQge1xuICBzZW5kRW5jb2Rpbmc6ICdKU09OJyB8ICdtc2dwYWNrJyA9ICdKU09OJ1xuXG4gIHByaXZhdGUgX3Jlc3BvbnNlUHJvbWlzZU1hcDogTWFwPG51bWJlciwgSnNvblJwYzIuUmVzb2x2YWJsZT4gPSBuZXcgTWFwKClcbiAgcHJpdmF0ZSBfbmV4dE1lc3NhZ2VJZDogbnVtYmVyID0gMFxuICBwcml2YXRlIF9jb25zb2xlTG9nOiBib29sZWFuID0gZmFsc2VcbiAgcHJpdmF0ZSBfcmVxdWVzdFF1ZXVlOiAoc3RyaW5nIHwgQnVmZmVyKVtdID0gW11cbiAgcHJpdmF0ZSBfY29ubmVjdGVkID0gZmFsc2VcblxuICBjb25zdHJ1Y3RvcihvcHRzPzogSnNvblJwYzIuSUNsaWVudE9wdHMpIHtcbiAgICBzdXBlcigpXG4gICAgdGhpcy5zZXRMb2dnaW5nKG9wdHMpXG4gIH1cblxuICBhYnN0cmFjdCBzZW5kTWVzc2FnZShtZXNzYWdlOiBzdHJpbmcgfCBCdWZmZXIpOiB2b2lkXG5cbiAgcHVibGljIHByb2Nlc3NNZXNzYWdlKFxuICAgIG1lc3NhZ2VTdHI6IHN0cmluZyB8IChKc29uUnBjMi5JUmVzcG9uc2UgJiBKc29uUnBjMi5JTm90aWZpY2F0aW9uKSB8IEJ1ZmZlciB8IFVpbnQ4QXJyYXkgfCBudW1iZXJbXVxuICApIHtcbiAgICBsZXQgbWVzc2FnZTogSnNvblJwYzIuSVJlc3BvbnNlICYgSnNvblJwYzIuSU5vdGlmaWNhdGlvblxuXG4gICAgaWYgKHR5cGVvZiBtZXNzYWdlU3RyID09PSAnc3RyaW5nJyAmJiBtZXNzYWdlU3RyLmNoYXJBdCgwKSA9PT0gJ3snKSB7XG4gICAgICB0aGlzLl9sb2dNZXNzYWdlKG1lc3NhZ2VTdHIsICdyZWNlaXZlJylcblxuICAgICAgLy8gRW5zdXJlIEpTT04gaXMgbm90IG1hbGZvcm1lZFxuICAgICAgdHJ5IHtcbiAgICAgICAgbWVzc2FnZSA9IEpTT04ucGFyc2UobWVzc2FnZVN0cilcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZW1pdCgnZXJyb3InLCBlKVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoXG4gICAgICB0eXBlb2YgbWVzc2FnZVN0ciA9PT0gJ3N0cmluZycgfHxcbiAgICAgIG1lc3NhZ2VTdHIgaW5zdGFuY2VvZiBVaW50OEFycmF5IC8qIHRzbGludDpkaXNhYmxlLW5leHQtbGluZSAqLyB8fFxuICAgICAgKHR5cGVvZiBCdWZmZXIgIT09ICd1bmRlZmluZWQnICYmIG1lc3NhZ2VTdHIgaW5zdGFuY2VvZiBCdWZmZXIpIHx8XG4gICAgICBtZXNzYWdlU3RyIGluc3RhbmNlb2YgQXJyYXlcbiAgICApIHtcbiAgICAgIG1lc3NhZ2UgPSBkZWNvZGUobWVzc2FnZVN0ciBhcyBhbnksIHsgY29kZWMgfSlcbiAgICB9IGVsc2Uge1xuICAgICAgbWVzc2FnZSA9IG1lc3NhZ2VTdHJcbiAgICB9XG5cbiAgICAvLyBDaGVjayB0aGF0IG1lc3NhZ2VzIGlzIHdlbGwgZm9ybWVkXG4gICAgaWYgKCFtZXNzYWdlKSB7XG4gICAgICB0aGlzLmVtaXQoJ2Vycm9yJywgbmV3IEVycm9yKGBNZXNzYWdlIGNhbm5vdCBiZSBudWxsLCBlbXB0eSBvciB1bmRlZmluZWRgKSlcbiAgICB9IGVsc2UgaWYgKG1lc3NhZ2UuaWQpIHtcbiAgICAgIGlmICh0aGlzLl9yZXNwb25zZVByb21pc2VNYXAuaGFzKG1lc3NhZ2UuaWQpKSB7XG4gICAgICAgIC8vIFJlc29sdmUgcHJvbWlzZSBmcm9tIHBlbmRpbmcgbWVzc2FnZVxuICAgICAgICBjb25zdCBwcm9taXNlID0gdGhpcy5fcmVzcG9uc2VQcm9taXNlTWFwLmdldChtZXNzYWdlLmlkKSBhcyBKc29uUnBjMi5SZXNvbHZhYmxlXG4gICAgICAgIHRoaXMuX3Jlc3BvbnNlUHJvbWlzZU1hcC5kZWxldGUobWVzc2FnZS5pZClcblxuICAgICAgICBpZiAoJ3Jlc3VsdCcgaW4gbWVzc2FnZSkge1xuICAgICAgICAgIHByb21pc2UucmVzb2x2ZShtZXNzYWdlLnJlc3VsdClcbiAgICAgICAgfSBlbHNlIGlmICgnZXJyb3InIGluIG1lc3NhZ2UpIHtcbiAgICAgICAgICBjb25zdCBlcnJvciA9IE9iamVjdC5hc3NpZ24oXG4gICAgICAgICAgICBuZXcgRXJyb3IoJ1JlbW90ZSBlcnJvcicpLFxuICAgICAgICAgICAgbWVzc2FnZS5lcnJvcixcbiAgICAgICAgICAgIChtZXNzYWdlLmVycm9yICYmIG1lc3NhZ2UuZXJyb3IuZGF0YSkgfHwge31cbiAgICAgICAgICApXG4gICAgICAgICAgcHJvbWlzZS5yZWplY3QoZXJyb3IpXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcHJvbWlzZS5yZWplY3QoXG4gICAgICAgICAgICBPYmplY3QuYXNzaWduKG5ldyBFcnJvcihgUmVzcG9uc2UgbXVzdCBoYXZlIHJlc3VsdCBvciBlcnJvcjogJHttZXNzYWdlU3RyfWApLCB7XG4gICAgICAgICAgICAgIGNvZGU6IEpzb25ScGMyLkVycm9yQ29kZS5QYXJzZUVycm9yXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIClcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5lbWl0KCdlcnJvcicsIG5ldyBFcnJvcihgUmVzcG9uc2Ugd2l0aCBpZDoke21lc3NhZ2UuaWR9IGhhcyBubyBwZW5kaW5nIHJlcXVlc3RgKSlcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKG1lc3NhZ2UubWV0aG9kKSB7XG4gICAgICAvLyBTZXJ2ZXIgaGFzIHNlbnQgYSBub3RpZmljYXRpb25cbiAgICAgIHRoaXMuZW1pdChtZXNzYWdlLm1ldGhvZCwgbWVzc2FnZS5wYXJhbXMpXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZW1pdCgnZXJyb3InLCBuZXcgRXJyb3IoYEludmFsaWQgbWVzc2FnZTogJHttZXNzYWdlU3RyfWApKVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgbG9nZ2luZyBmb3IgYWxsIHJlY2VpdmVkIGFuZCBzZW50IG1lc3NhZ2VzXG4gICAqL1xuICBwdWJsaWMgc2V0TG9nZ2luZyh7IGxvZ0NvbnNvbGUgfTogSnNvblJwYzIuSUxvZ09wdHMgPSB7fSkge1xuICAgIHRoaXMuX2NvbnNvbGVMb2cgPSAhIWxvZ0NvbnNvbGVcbiAgfVxuXG4gIGNhbGwobWV0aG9kOiBzdHJpbmcpOiBQcm9taXNlPGFueT5cbiAgY2FsbChtZXRob2Q6IHN0cmluZywgcGFyYW1zOiBzdHJpbmcpOiBuZXZlclxuICBjYWxsKG1ldGhvZDogc3RyaW5nLCBwYXJhbXM6IG51bWJlcik6IG5ldmVyXG4gIGNhbGwobWV0aG9kOiBzdHJpbmcsIHBhcmFtczogYm9vbGVhbik6IG5ldmVyXG4gIGNhbGwobWV0aG9kOiBzdHJpbmcsIHBhcmFtczogbnVsbCk6IG5ldmVyXG4gIGNhbGw8VD4obWV0aG9kOiBzdHJpbmcsIHBhcmFtczogSXRlcmFibGU8VD4pOiBQcm9taXNlPGFueT5cbiAgY2FsbChtZXRob2Q6IHN0cmluZywgcGFyYW1zOiB7IFtrZXk6IHN0cmluZ106IGFueSB9KTogUHJvbWlzZTxhbnk+XG4gIGNhbGwobWV0aG9kOiBzdHJpbmcsIHBhcmFtcz86IGFueSkge1xuICAgIGlmICh0eXBlb2YgcGFyYW1zICE9PSAndW5kZWZpbmVkJyAmJiB0eXBlb2YgcGFyYW1zICE9PSAnb2JqZWN0Jykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBDbGllbnQjY2FsbCBQYXJhbXMgbXVzdCBiZSBzdHJ1Y3R1cmVkIGRhdGEgKEFycmF5IHwgT2JqZWN0KSBnb3QgJHtKU09OLnN0cmluZ2lmeShwYXJhbXMpfWApXG4gICAgfVxuXG4gICAgY29uc3QgaWQgPSArK3RoaXMuX25leHRNZXNzYWdlSWRcbiAgICBjb25zdCBtZXNzYWdlOiBKc29uUnBjMi5JUmVxdWVzdCA9IHsgaWQsIG1ldGhvZCwgcGFyYW1zLCBqc29ucnBjOiAnMi4wJyB9XG5cbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgdGhpcy5fcmVzcG9uc2VQcm9taXNlTWFwLnNldChpZCwgeyByZXNvbHZlLCByZWplY3QgfSlcbiAgICAgICAgdGhpcy5fc2VuZChtZXNzYWdlKVxuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgcmV0dXJuIHJlamVjdChlcnJvcilcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgbm90aWZ5KG1ldGhvZDogc3RyaW5nKTogdm9pZFxuICBub3RpZnkobWV0aG9kOiBzdHJpbmcsIHBhcmFtczogc3RyaW5nKTogbmV2ZXJcbiAgbm90aWZ5KG1ldGhvZDogc3RyaW5nLCBwYXJhbXM6IG51bWJlcik6IG5ldmVyXG4gIG5vdGlmeShtZXRob2Q6IHN0cmluZywgcGFyYW1zOiBib29sZWFuKTogbmV2ZXJcbiAgbm90aWZ5KG1ldGhvZDogc3RyaW5nLCBwYXJhbXM6IG51bGwpOiBuZXZlclxuICBub3RpZnk8VD4obWV0aG9kOiBzdHJpbmcsIHBhcmFtczogSXRlcmFibGU8VD4pOiB2b2lkXG4gIG5vdGlmeShtZXRob2Q6IHN0cmluZywgcGFyYW1zOiB7IFtrZXk6IHN0cmluZ106IGFueSB9KTogdm9pZFxuICBub3RpZnkobWV0aG9kOiBzdHJpbmcsIHBhcmFtcz86IGFueSk6IHZvaWQge1xuICAgIGlmICh0eXBlb2YgcGFyYW1zICE9PSAndW5kZWZpbmVkJyAmJiB0eXBlb2YgcGFyYW1zICE9PSAnb2JqZWN0Jykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBDbGllbnQjbm90aWZ5IFBhcmFtcyBtdXN0IGJlIHN0cnVjdHVyZWQgZGF0YSAoQXJyYXkgfCBPYmplY3QpIGdvdCAke0pTT04uc3RyaW5naWZ5KHBhcmFtcyl9YClcbiAgICB9XG5cbiAgICB0aGlzLl9zZW5kKHsgbWV0aG9kLCBwYXJhbXMsIGpzb25ycGM6ICcyLjAnIH0pXG4gIH1cblxuICBwcm90ZWN0ZWQgZGlkQ29ubmVjdCgpIHtcbiAgICBpZiAodGhpcy5fY29ubmVjdGVkID09PSBmYWxzZSkge1xuICAgICAgdGhpcy5fY29ubmVjdGVkID0gdHJ1ZVxuICAgICAgdGhpcy5fc2VuZFF1ZXVlZFJlcXVlc3RzKClcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9zZW5kKG1lc3NhZ2U6IEpzb25ScGMyLklOb3RpZmljYXRpb24gfCBKc29uUnBjMi5JUmVxdWVzdCkge1xuICAgIGlmICh0aGlzLnNlbmRFbmNvZGluZyA9PT0gJ21zZ3BhY2snKSB7XG4gICAgICB0aGlzLl9yZXF1ZXN0UXVldWUucHVzaChlbmNvZGUobWVzc2FnZSwgeyBjb2RlYyB9KSlcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fcmVxdWVzdFF1ZXVlLnB1c2goSlNPTi5zdHJpbmdpZnkobWVzc2FnZSkpXG4gICAgfVxuICAgIHRoaXMuX3NlbmRRdWV1ZWRSZXF1ZXN0cygpXG4gIH1cblxuICBwcml2YXRlIF9zZW5kUXVldWVkUmVxdWVzdHMoKSB7XG4gICAgaWYgKHRoaXMuX2Nvbm5lY3RlZCkge1xuICAgICAgY29uc3QgcXVldWUgPSB0aGlzLl9yZXF1ZXN0UXVldWUuc3BsaWNlKDAsIHRoaXMuX3JlcXVlc3RRdWV1ZS5sZW5ndGgpXG4gICAgICBmb3IgKGxldCBtZXNzYWdlU3RyIG9mIHF1ZXVlKSB7XG4gICAgICAgIHRoaXMuX2xvZ01lc3NhZ2UobWVzc2FnZVN0ciwgJ3NlbmQnKVxuICAgICAgICB0aGlzLnNlbmRNZXNzYWdlKG1lc3NhZ2VTdHIpXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfbG9nTWVzc2FnZShtZXNzYWdlOiBzdHJpbmcgfCBCdWZmZXIsIGRpcmVjdGlvbjogJ3NlbmQnIHwgJ3JlY2VpdmUnKSB7XG4gICAgaWYgKHRoaXMuX2NvbnNvbGVMb2cpIHtcbiAgICAgIGNvbnNvbGUubG9nKGBDbGllbnQgJHtkaXJlY3Rpb24gPT09ICdzZW5kJyA/ICc+JyA6ICc8J31gLCBtZXNzYWdlLnRvU3RyaW5nKCkpXG4gICAgfVxuICB9XG59XG4iXX0=\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../buffer/index.js */ \"./node_modules/buffer/index.js\").Buffer))\n\n//# sourceURL=webpack:///./node_modules/metaverse-rpc/lib/common/json-rpc/Client.js?");
/***/ }),
/***/ "./node_modules/metaverse-rpc/lib/common/transports/Memory.js":
/*!********************************************************************!*\
!*** ./node_modules/metaverse-rpc/lib/common/transports/Memory.js ***!
\********************************************************************/
/*! exports provided: MemoryTransport */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"MemoryTransport\", function() { return MemoryTransport; });\n/* harmony import */ var _core_EventDispatcher__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../core/EventDispatcher */ \"./node_modules/metaverse-rpc/lib/common/core/EventDispatcher.js\");\n\nfunction MemoryTransport() {\n const clientEd = new _core_EventDispatcher__WEBPACK_IMPORTED_MODULE_0__[\"EventDispatcher\"]();\n const serverEd = new _core_EventDispatcher__WEBPACK_IMPORTED_MODULE_0__[\"EventDispatcher\"]();\n function configureMemoryTransport(receiver, sender) {\n return {\n sendMessage(message) {\n sender.emit('message', message);\n },\n close() {\n sender.emit('close');\n },\n onMessage(handler) {\n receiver.on('message', handler);\n },\n onClose(handler) {\n receiver.on('close', handler);\n },\n onError(handler) {\n receiver.on('error', handler);\n },\n onConnect(handler) {\n setInterval(handler, 16);\n }\n };\n }\n const client = configureMemoryTransport(clientEd, serverEd);\n const server = configureMemoryTransport(serverEd, clientEd);\n return {\n client,\n server\n };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWVtb3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1vbi90cmFuc3BvcnRzL01lbW9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUE7QUFFekQsTUFBTTtJQUNKLE1BQU0sUUFBUSxHQUFHLElBQUksZUFBZSxFQUFFLENBQUE7SUFDdEMsTUFBTSxRQUFRLEdBQUcsSUFBSSxlQUFlLEVBQUUsQ0FBQTtJQUV0QyxrQ0FBa0MsUUFBeUIsRUFBRSxNQUF1QjtRQUNsRixPQUFPO1lBQ0wsV0FBVyxDQUFDLE9BQU87Z0JBQ2pCLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFBO1lBQ2pDLENBQUM7WUFFRCxLQUFLO2dCQUNILE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUE7WUFDdEIsQ0FBQztZQUVELFNBQVMsQ0FBQyxPQUFPO2dCQUNmLFFBQVEsQ0FBQyxFQUFFLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFBO1lBQ2pDLENBQUM7WUFFRCxPQUFPLENBQUMsT0FBTztnQkFDYixRQUFRLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQTtZQUMvQixDQUFDO1lBRUQsT0FBTyxDQUFDLE9BQU87Z0JBQ2IsUUFBUSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUE7WUFDL0IsQ0FBQztZQUVELFNBQVMsQ0FBQyxPQUFPO2dCQUNmLFdBQVcsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUE7WUFDMUIsQ0FBQztTQUNGLENBQUE7SUFDSCxDQUFDO0lBRUQsTUFBTSxNQUFNLEdBQUcsd0JBQXdCLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFBO0lBQzNELE1BQU0sTUFBTSxHQUFHLHdCQUF3QixDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQTtJQUUzRCxPQUFPO1FBQ0wsTUFBTTtRQUNOLE1BQU07S0FDUCxDQUFBO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNjcmlwdGluZ1RyYW5zcG9ydCB9IGZyb20gJy4uL2pzb24tcnBjL3R5cGVzJ1xuaW1wb3J0IHsgRXZlbnREaXNwYXRjaGVyIH0gZnJvbSAnLi4vY29yZS9FdmVudERpc3BhdGNoZXInXG5cbmV4cG9ydCBmdW5jdGlvbiBNZW1vcnlUcmFuc3BvcnQoKSB7XG4gIGNvbnN0IGNsaWVudEVkID0gbmV3IEV2ZW50RGlzcGF0Y2hlcigpXG4gIGNvbnN0IHNlcnZlckVkID0gbmV3IEV2ZW50RGlzcGF0Y2hlcigpXG5cbiAgZnVuY3Rpb24gY29uZmlndXJlTWVtb3J5VHJhbnNwb3J0KHJlY2VpdmVyOiBFdmVudERpc3BhdGNoZXIsIHNlbmRlcjogRXZlbnREaXNwYXRjaGVyKTogU2NyaXB0aW5nVHJhbnNwb3J0IHtcbiAgICByZXR1cm4ge1xuICAgICAgc2VuZE1lc3NhZ2UobWVzc2FnZSkge1xuICAgICAgICBzZW5kZXIuZW1pdCgnbWVzc2FnZScsIG1lc3NhZ2UpXG4gICAgICB9LFxuXG4gICAgICBjbG9zZSgpIHtcbiAgICAgICAgc2VuZGVyLmVtaXQoJ2Nsb3NlJylcbiAgICAgIH0sXG5cbiAgICAgIG9uTWVzc2FnZShoYW5kbGVyKSB7XG4gICAgICAgIHJlY2VpdmVyLm9uKCdtZXNzYWdlJywgaGFuZGxlcilcbiAgICAgIH0sXG5cbiAgICAgIG9uQ2xvc2UoaGFuZGxlcikge1xuICAgICAgICByZWNlaXZlci5vbignY2xvc2UnLCBoYW5kbGVyKVxuICAgICAgfSxcblxuICAgICAgb25FcnJvcihoYW5kbGVyKSB7XG4gICAgICAgIHJlY2VpdmVyLm9uKCdlcnJvcicsIGhhbmRsZXIpXG4gICAgICB9LFxuXG4gICAgICBvbkNvbm5lY3QoaGFuZGxlcikge1xuICAgICAgICBzZXRJbnRlcnZhbChoYW5kbGVyLCAxNilcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBjb25zdCBjbGllbnQgPSBjb25maWd1cmVNZW1vcnlUcmFuc3BvcnQoY2xpZW50RWQsIHNlcnZlckVkKVxuICBjb25zdCBzZXJ2ZXIgPSBjb25maWd1cmVNZW1vcnlUcmFuc3BvcnQoc2VydmVyRWQsIGNsaWVudEVkKVxuXG4gIHJldHVybiB7XG4gICAgY2xpZW50LFxuICAgIHNlcnZlclxuICB9XG59XG4iXX0=\n\n//# sourceURL=webpack:///./node_modules/metaverse-rpc/lib/common/transports/Memory.js?");
/***/ }),
/***/ "./node_modules/metaverse-rpc/lib/common/transports/WebSocket.js":
/*!***********************************************************************!*\
!*** ./node_modules/metaverse-rpc/lib/common/transports/WebSocket.js ***!
\***********************************************************************/
/*! exports provided: WebSocketTransport */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"WebSocketTransport\", function() { return WebSocketTransport; });\nfunction WebSocketTransport(socket) {\n const queue = [];\n socket.addEventListener('open', function () {\n flush();\n });\n function flush() {\n if (socket.readyState === socket.OPEN) {\n queue.forEach($ => send($));\n queue.length = 0;\n }\n }\n function send(msg) {\n if (typeof msg === 'string') {\n socket.send(msg, { binary: false });\n }\n else if (msg instanceof Uint8Array || msg instanceof ArrayBuffer || msg instanceof SharedArrayBuffer) {\n ;\n socket.binaryType = 'arraybuffer';\n socket.send(msg, { binary: true });\n }\n }\n const api = {\n onConnect(handler) {\n if (socket.readyState === socket.OPEN) {\n handler();\n }\n else {\n socket.addEventListener('open', () => handler(), { once: true });\n }\n },\n onError(handler) {\n socket.addEventListener('error', (err) => handler(err.error));\n },\n onMessage(handler) {\n socket.addEventListener('message', (message) => {\n handler(message.data);\n });\n },\n sendMessage(message) {\n const toSend = message instanceof Uint8Array ? message.buffer : message;\n if (socket.readyState === socket.OPEN) {\n send(toSend);\n }\n else {\n queue.push(toSend);\n }\n },\n close() {\n socket.close();\n }\n };\n return api;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiV2ViU29ja2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1vbi90cmFuc3BvcnRzL1dlYlNvY2tldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFtQ0EsTUFBTSw2QkFBNkIsTUFBa0I7SUFDbkQsTUFBTSxLQUFLLEdBQXVFLEVBQUUsQ0FBQTtJQUVwRixNQUFNLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxFQUFFO1FBQzlCLEtBQUssRUFBRSxDQUFBO0lBQ1QsQ0FBQyxDQUFDLENBQUE7SUFFRjtRQUNFLElBQUksTUFBTSxDQUFDLFVBQVUsS0FBSyxNQUFNLENBQUMsSUFBSSxFQUFFO1lBQ3JDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtZQUMzQixLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQTtTQUNqQjtJQUNILENBQUM7SUFFRCxjQUFjLEdBQW1FO1FBQy9FLElBQUksT0FBTyxHQUFHLEtBQUssUUFBUSxFQUFFO1lBQzNCLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUE7U0FDcEM7YUFBTSxJQUFJLEdBQUcsWUFBWSxVQUFVLElBQUksR0FBRyxZQUFZLFdBQVcsSUFBSSxHQUFHLFlBQVksaUJBQWlCLEVBQUU7WUFFdEcsQ0FBQztZQUFDLE1BQWMsQ0FBQyxVQUFVLEdBQUcsYUFBYSxDQUFBO1lBQzNDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUE7U0FDbkM7SUFDSCxDQUFDO0lBRUQsTUFBTSxHQUFHLEdBQXVCO1FBQzlCLFNBQVMsQ0FBQyxPQUFPO1lBQ2YsSUFBSSxNQUFNLENBQUMsVUFBVSxLQUFLLE1BQU0sQ0FBQyxJQUFJLEVBQUU7Z0JBQ3JDLE9BQU8sRUFBRSxDQUFBO2FBQ1Y7aUJBQU07Z0JBQ0wsTUFBTSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxPQUFPLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFBO2FBQ2pFO1FBQ0gsQ0FBQztRQUNELE9BQU8sQ0FBQyxPQUFPO1lBQ2IsTUFBTSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxDQUFDLEdBQWUsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFBO1FBQzNFLENBQUM7UUFDRCxTQUFTLENBQUMsT0FBTztZQUNmLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxPQUFzQixFQUFFLEVBQUU7Z0JBQzVELE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUE7WUFDdkIsQ0FBQyxDQUFDLENBQUE7UUFDSixDQUFDO1FBQ0QsV0FBVyxDQUFDLE9BQU87WUFDakIsTUFBTSxNQUFNLEdBQUcsT0FBTyxZQUFZLFVBQVUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFBO1lBRXZFLElBQUksTUFBTSxDQUFDLFVBQVUsS0FBSyxNQUFNLENBQUMsSUFBSSxFQUFFO2dCQUNyQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUE7YUFDYjtpQkFBTTtnQkFDTCxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFBO2FBQ25CO1FBQ0gsQ0FBQztRQUNELEtBQUs7WUFDSCxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUE7UUFDaEIsQ0FBQztLQUNGLENBQUE7SUFFRCxPQUFPLEdBQUcsQ0FBQTtBQUNaLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTY3JpcHRpbmdUcmFuc3BvcnQgfSBmcm9tICcuLi9qc29uLXJwYy90eXBlcydcblxuZXhwb3J0IGludGVyZmFjZSBJV2ViU29ja2V0RXZlbnRNYXAge1xuICBjbG9zZTogYW55XG4gIGVycm9yOiBhbnlcbiAgbWVzc2FnZTogeyBkYXRhOiBhbnkgfVxuICBvcGVuOiBhbnlcbn1cblxuLyoqXG4gKiBUaGlzIGludGVyZmFjZSBzaG91bGQgYmUgY29tcGF0aWJsZSB3aXRoIHRoZSBCcm93c2VycyBpbnRlcmZhY2VcbiAqIGFuZCBucG0gd3MgcGFja2FnZSBmb3Igc2VydmVyc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIElXZWJTb2NrZXQge1xuICBDT05ORUNUSU5HOiBudW1iZXJcbiAgT1BFTjogbnVtYmVyXG4gIENMT1NJTkc6IG51bWJlclxuICBDTE9TRUQ6IG51bWJlclxuXG4gIHJlYWR5U3RhdGU6IG51bWJlclxuXG4gIGNsb3NlKGNvZGU/OiBudW1iZXIsIGRhdGE/OiBzdHJpbmcpOiB2b2lkXG5cbiAgc2VuZChkYXRhOiBhbnksIGNiPzogKGVycjogRXJyb3IpID0+IHZvaWQpOiB2b2lkXG4gIHNlbmQoZGF0YTogYW55LCBvcHRpb25zOiBhbnksIGNiPzogKGVycjogRXJyb3IpID0+IHZvaWQpOiB2b2lkXG5cbiAgdGVybWluYXRlPygpOiB2b2lkXG5cbiAgYWRkRXZlbnRMaXN0ZW5lcjxLIGV4dGVuZHMga2V5b2YgSVdlYlNvY2tldEV2ZW50TWFwPihcbiAgICB0eXBlOiBLLFxuICAgIGxpc3RlbmVyOiAoZXY6IElXZWJTb2NrZXRFdmVudE1hcFtLXSkgPT4gYW55LFxuICAgIG9wdGlvbnM/OiBhbnlcbiAgKTogdm9pZFxufVxuXG5leHBvcnQgZnVuY3Rpb24gV2ViU29ja2V0VHJhbnNwb3J0KHNvY2tldDogSVdlYlNvY2tldCk6IFNjcmlwdGluZ1RyYW5zcG9ydCB7XG4gIGNvbnN0IHF1ZXVlOiAoc3RyaW5nIHwgVWludDhBcnJheSB8IEFycmF5QnVmZmVyIHwgU2hhcmVkQXJyYXlCdWZmZXIgfCBCdWZmZXIpW10gPSBbXVxuXG4gIHNvY2tldC5hZGRFdmVudExpc3RlbmVyKCdvcGVuJywgZnVuY3Rpb24oKSB7XG4gICAgZmx1c2goKVxuICB9KVxuXG4gIGZ1bmN0aW9uIGZsdXNoKCkge1xuICAgIGlmIChzb2NrZXQucmVhZHlTdGF0ZSA9PT0gc29ja2V0Lk9QRU4pIHtcbiAgICAgIHF1ZXVlLmZvckVhY2goJCA9PiBzZW5kKCQpKVxuICAgICAgcXVldWUubGVuZ3RoID0gMFxuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIHNlbmQobXNnOiBzdHJpbmcgfCBVaW50OEFycmF5IHwgQXJyYXlCdWZmZXIgfCBTaGFyZWRBcnJheUJ1ZmZlciB8IEJ1ZmZlcikge1xuICAgIGlmICh0eXBlb2YgbXNnID09PSAnc3RyaW5nJykge1xuICAgICAgc29ja2V0LnNlbmQobXNnLCB7IGJpbmFyeTogZmFsc2UgfSlcbiAgICB9IGVsc2UgaWYgKG1zZyBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkgfHwgbXNnIGluc3RhbmNlb2YgQXJyYXlCdWZmZXIgfHwgbXNnIGluc3RhbmNlb2YgU2hhcmVkQXJyYXlCdWZmZXIpIHtcbiAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpzZW1pY29sb25cbiAgICAgIDsoc29ja2V0IGFzIGFueSkuYmluYXJ5VHlwZSA9ICdhcnJheWJ1ZmZlcidcbiAgICAgIHNvY2tldC5zZW5kKG1zZywgeyBiaW5hcnk6IHRydWUgfSlcbiAgICB9XG4gIH1cblxuICBjb25zdCBhcGk6IFNjcmlwdGluZ1RyYW5zcG9ydCA9IHtcbiAgICBvbkNvbm5lY3QoaGFuZGxlcikge1xuICAgICAgaWYgKHNvY2tldC5yZWFkeVN0YXRlID09PSBzb2NrZXQuT1BFTikge1xuICAgICAgICBoYW5kbGVyKClcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNvY2tldC5hZGRFdmVudExpc3RlbmVyKCdvcGVuJywgKCkgPT4gaGFuZGxlcigpLCB7IG9uY2U6IHRydWUgfSlcbiAgICAgIH1cbiAgICB9LFxuICAgIG9uRXJyb3IoaGFuZGxlcikge1xuICAgICAgc29ja2V0LmFkZEV2ZW50TGlzdGVuZXIoJ2Vycm9yJywgKGVycjogRXJyb3JFdmVudCkgPT4gaGFuZGxlcihlcnIuZXJyb3IpKVxuICAgIH0sXG4gICAgb25NZXNzYWdlKGhhbmRsZXIpIHtcbiAgICAgIHNvY2tldC5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgKG1lc3NhZ2U6IHsgZGF0YTogYW55IH0pID0+IHtcbiAgICAgICAgaGFuZGxlcihtZXNzYWdlLmRhdGEpXG4gICAgICB9KVxuICAgIH0sXG4gICAgc2VuZE1lc3NhZ2UobWVzc2FnZSkge1xuICAgICAgY29uc3QgdG9TZW5kID0gbWVzc2FnZSBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkgPyBtZXNzYWdlLmJ1ZmZlciA6IG1lc3NhZ2VcblxuICAgICAgaWYgKHNvY2tldC5yZWFkeVN0YXRlID09PSBzb2NrZXQuT1BFTikge1xuICAgICAgICBzZW5kKHRvU2VuZClcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHF1ZXVlLnB1c2godG9TZW5kKVxuICAgICAgfVxuICAgIH0sXG4gICAgY2xvc2UoKSB7XG4gICAgICBzb2NrZXQuY2xvc2UoKVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBhcGlcbn1cbiJdfQ==\n\n//# sourceURL=webpack:///./node_modules/metaverse-rpc/lib/common/transports/WebSocket.js?");
/***/ }),
/***/ "./node_modules/metaverse-rpc/lib/common/transports/WebWorker.js":
/*!***********************************************************************!*\
!*** ./node_modules/metaverse-rpc/lib/common/transports/WebWorker.js ***!
\***********************************************************************/
/*! exports provided: WebWorkerTransport */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"WebWorkerTransport\", function() { return WebWorkerTransport; });\nfunction WebWorkerTransport(worker) {\n const api = {\n onConnect(handler) {\n worker.addEventListener('message', () => handler(), { once: true });\n },\n onError(handler) {\n worker.addEventListener('error', (err) => handler(err.error));\n },\n onMessage(handler) {\n worker.addEventListener('message', (message) => {\n handler(message.data);\n });\n },\n sendMessage(message) {\n worker.postMessage(message);\n },\n close() {\n if ('terminate' in worker) {\n ;\n worker.terminate();\n }\n else if ('close' in worker) {\n ;\n worker.close();\n }\n }\n };\n return api;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiV2ViV29ya2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1vbi90cmFuc3BvcnRzL1dlYldvcmtlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFTQSxNQUFNLDZCQUE2QixNQUFlO0lBQ2hELE1BQU0sR0FBRyxHQUF1QjtRQUM5QixTQUFTLENBQUMsT0FBTztZQUNmLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLEVBQUUsR0FBRyxFQUFFLENBQUMsT0FBTyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQTtRQUNyRSxDQUFDO1FBQ0QsT0FBTyxDQUFDLE9BQU87WUFDYixNQUFNLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLENBQUMsR0FBZSxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUE7UUFDM0UsQ0FBQztRQUNELFNBQVMsQ0FBQyxPQUFPO1lBQ2YsTUFBTSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxDQUFDLE9BQXFCLEVBQUUsRUFBRTtnQkFDM0QsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQTtZQUN2QixDQUFDLENBQUMsQ0FBQTtRQUNKLENBQUM7UUFDRCxXQUFXLENBQUMsT0FBTztZQUNqQixNQUFNLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFBO1FBQzdCLENBQUM7UUFDRCxLQUFLO1lBQ0gsSUFBSSxXQUFXLElBQUksTUFBTSxFQUFFO2dCQUV6QixDQUFDO2dCQUFDLE1BQWMsQ0FBQyxTQUFTLEVBQUUsQ0FBQTthQUM3QjtpQkFBTSxJQUFJLE9BQU8sSUFBSSxNQUFNLEVBQUU7Z0JBRTVCLENBQUM7Z0JBQUMsTUFBYyxDQUFDLEtBQUssRUFBRSxDQUFBO2FBQ3pCO1FBQ0gsQ0FBQztLQUNGLENBQUE7SUFFRCxPQUFPLEdBQUcsQ0FBQTtBQUNaLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTY3JpcHRpbmdUcmFuc3BvcnQgfSBmcm9tICcuLi9qc29uLXJwYy90eXBlcydcblxuZXhwb3J0IGludGVyZmFjZSBJV29ya2VyIHtcbiAgdGVybWluYXRlPygpOiB2b2lkXG4gIGNsb3NlPygpOiB2b2lkXG4gIHBvc3RNZXNzYWdlKG1lc3NhZ2U6IGFueSk6IHZvaWRcbiAgYWRkRXZlbnRMaXN0ZW5lcih0eXBlOiAnbWVzc2FnZScgfCAnZXJyb3InLCBsaXN0ZW5lcjogRnVuY3Rpb24sIG9wdGlvbnM/OiBhbnkpOiB2b2lkXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBXZWJXb3JrZXJUcmFuc3BvcnQod29ya2VyOiBJV29ya2VyKTogU2NyaXB0aW5nVHJhbnNwb3J0IHtcbiAgY29uc3QgYXBpOiBTY3JpcHRpbmdUcmFuc3BvcnQgPSB7XG4gICAgb25Db25uZWN0KGhhbmRsZXIpIHtcbiAgICAgIHdvcmtlci5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgKCkgPT4gaGFuZGxlcigpLCB7IG9uY2U6IHRydWUgfSlcbiAgICB9LFxuICAgIG9uRXJyb3IoaGFuZGxlcikge1xuICAgICAgd29ya2VyLmFkZEV2ZW50TGlzdGVuZXIoJ2Vycm9yJywgKGVycjogRXJyb3JFdmVudCkgPT4gaGFuZGxlcihlcnIuZXJyb3IpKVxuICAgIH0sXG4gICAgb25NZXNzYWdlKGhhbmRsZXIpIHtcbiAgICAgIHdvcmtlci5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgKG1lc3NhZ2U6IE1lc3NhZ2VFdmVudCkgPT4ge1xuICAgICAgICBoYW5kbGVyKG1lc3NhZ2UuZGF0YSlcbiAgICAgIH0pXG4gICAgfSxcbiAgICBzZW5kTWVzc2FnZShtZXNzYWdlKSB7XG4gICAgICB3b3JrZXIucG9zdE1lc3NhZ2UobWVzc2FnZSlcbiAgICB9LFxuICAgIGNsb3NlKCkge1xuICAgICAgaWYgKCd0ZXJtaW5hdGUnIGluIHdvcmtlcikge1xuICAgICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6c2VtaWNvbG9uXG4gICAgICAgIDsod29ya2VyIGFzIGFueSkudGVybWluYXRlKClcbiAgICAgIH0gZWxzZSBpZiAoJ2Nsb3NlJyBpbiB3b3JrZXIpIHtcbiAgICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOnNlbWljb2xvblxuICAgICAgICA7KHdvcmtlciBhcyBhbnkpLmNsb3NlKClcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gYXBpXG59XG4iXX0=\n\n//# sourceURL=webpack:///./node_modules/metaverse-rpc/lib/common/transports/WebWorker.js?");
/***/ }),
/***/ "./node_modules/msgpack-lite/lib/browser.js":
/*!**************************************************!*\
!*** ./node_modules/msgpack-lite/lib/browser.js ***!
\**************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// browser.js\n\nexports.encode = __webpack_require__(/*! ./encode */ \"./node_modules/msgpack-lite/lib/encode.js\").encode;\nexports.decode = __webpack_require__(/*! ./decode */ \"./node_modules/msgpack-lite/lib/decode.js\").decode;\n\nexports.Encoder = __webpack_require__(/*! ./encoder */ \"./node_modules/msgpack-lite/lib/encoder.js\").Encoder;\nexports.Decoder = __webpack_require__(/*! ./decoder */ \"./node_modules/msgpack-lite/lib/decoder.js\").Decoder;\n\nexports.createCodec = __webpack_require__(/*! ./ext */ \"./node_modules/msgpack-lite/lib/ext.js\").createCodec;\nexports.codec = __webpack_require__(/*! ./codec */ \"./node_modules/msgpack-lite/lib/codec.js\").codec;\n\n\n//# sourceURL=webpack:///./node_modules/msgpack-lite/lib/browser.js?");
/***/ }),
/***/ "./node_modules/msgpack-lite/lib/buffer-global.js":
/*!********************************************************!*\
!*** ./node_modules/msgpack-lite/lib/buffer-global.js ***!
\********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("/* WEBPACK VAR INJECTION */(function(Buffer) {/* globals Buffer */\n\nmodule.exports =\n c((\"undefined\" !== typeof Buffer) && Buffer) ||\n c(this.Buffer) ||\n c((\"undefined\" !== typeof window) && window.Buffer) ||\n this.Buffer;\n\nfunction c(B) {\n return B && B.isBuffer && B;\n}\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../buffer/index.js */ \"./node_modules/buffer/index.js\").Buffer))\n\n//# sourceURL=webpack:///./node_modules/msgpack-lite/lib/buffer-global.js?");
/***/ }),
/***/ "./node_modules/msgpack-lite/lib/buffer-lite.js":
/*!******************************************************!*\
!*** ./node_modules/msgpack-lite/lib/buffer-lite.js ***!
\******************************************************/
/*! no static exports found */
/***/ (function(module, exports) {
eval("// buffer-lite.js\n\nvar MAXBUFLEN = 8192;\n\nexports.copy = copy;\nexports.toString = toString;\nexports.write = write;\n\n/**\n * Buffer.prototype.write()\n *\n * @param string {String}\n * @param [offset] {Number}\n * @returns {Number}\n */\n\nfunction write(string, offset) {\n var buffer = this;\n var index = offset || (offset |= 0);\n var length = string.length;\n var chr = 0;\n var i = 0;\n while (i < length) {\n chr = string.charCodeAt(i++);\n\n if (chr < 128) {\n buffer[index++] = chr;\n } else if (chr < 0x800) {\n // 2 bytes\n buffer[index++] = 0xC0 | (chr >>> 6);\n buffer[index++] = 0x80 | (chr & 0x3F);\n } else if (chr < 0xD800 || chr > 0xDFFF) {\n // 3 bytes\n buffer[index++] = 0xE0 | (chr >>> 12);\n buffer[index++] = 0x80 | ((chr >>> 6) & 0x3F);\n buffer[index++] = 0x80 | (chr & 0x3F);\n } else {\n // 4 bytes - surrogate pair\n chr = (((chr - 0xD800) << 10) | (string.charCodeAt(i++) - 0xDC00)) + 0x10000;\n buffer[index++] = 0xF0 | (chr >>> 18);\n buffer[index++] = 0x80 | ((chr >>> 12) & 0x3F);\n buffer[index++] = 0x80 | ((chr >>> 6) & 0x3F);\n buffer[index++] = 0x80 | (chr & 0x3F);\n }\n }\n return index - offset;\n}\n\n/**\n * Buffer.prototype.toString()\n *\n * @param [encoding] {String} ignored\n * @param [start] {Number}\n * @param [end] {Number}\n * @returns {String}\n */\n\nfunction toString(encoding, start, end) {\n var buffer = this;\n var index = start|0;\n if (!end) end = buffer.length;\n var string = '';\n var chr = 0;\n\n while (index < end) {\n chr = buffer[index++];\n if (chr < 128) {\n string += String.fromCharCode(chr);\n continue;\n }\n\n if ((chr & 0xE0) === 0xC0) {\n // 2 bytes\n chr = (chr & 0x1F) << 6 |\n (buffer[index++] & 0x3F);\n\n } else if ((chr & 0xF0) === 0xE0) {\n // 3 bytes\n chr = (chr & 0x0F) << 12 |\n (buffer[index++] & 0x3F) << 6 |\n (buffer[index++] & 0x3F);\n\n } else if ((chr & 0xF8) === 0xF0) {\n // 4 bytes\n chr = (chr & 0x07) << 18 |\n (buffer[index++] & 0x3F) << 12 |\n (buffer[index++] & 0x3F) << 6 |\n (buffer[index++] & 0x3F);\n }\n\n if (chr >= 0x010000) {\n // A surrogate pair\n chr -= 0x010000;\n\n string += String.fromCharCode((chr >>> 10) + 0xD800, (chr & 0x3FF) + 0xDC00);\n } else {\n string += String.fromCharCode(chr);\n }\n }\n\n return string;\n}\n\n/**\n * Buffer.prototype.copy()\n *\n * @param target {Buffer}\n * @param [targetStart] {Number}\n * @param [start] {Number}\n * @param [end] {Number}\n * @returns {number}\n */\n\nfunction copy(target, targetStart, start, end) {\n var i;\n if (!start) start = 0;\n if (!end && end !== 0) end = this.length;\n if (!targetStart) targetStart = 0;\n var len = end - start;\n\n if (target === this && start < targetStart && targetStart < end) {\n // descending\n for (i = len - 1; i >= 0; i--) {\n target[i + targetStart] = this[i + start];\n }\n } else {\n // ascending\n for (i = 0; i < len; i++) {\n target[i + targetStart] = this[i + start];\n }\n }\n\n return len;\n}\n\n\n//# sourceURL=webpack:///./node_modules/msgpack-lite/lib/buffer-lite.js?");
/***/ }),
/***/ "./node_modules/msgpack-lite/lib/bufferish-array.js":
/*!**********************************************************!*\
!*** ./node_modules/msgpack-lite/lib/bufferish-array.js ***!
\**********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// bufferish-array.js\n\nvar Bufferish = __webpack_require__(/*! ./bufferish */ \"./node_modules/msgpack-lite/lib/bufferish.js\");\n\nvar exports = module.exports = alloc(0);\n\nexports.alloc = alloc;\nexports.concat = Bufferish.concat;\nexports.from = from;\n\n/**\n * @param size {Number}\n * @returns {Buffer|Uint8Array|Array}\n */\n\nfunction alloc(size) {\n return new Array(size);\n}\n\n/**\n * @param value {Array|ArrayBuffer|Buffer|String}\n * @returns {Array}\n */\n\nfunction from(value) {\n if (!Bufferish.isBuffer(value) && Bufferish.isView(value)) {\n // TypedArray to Uint8Array\n value = Bufferish.Uint8Array.from(value);\n } else if (Bufferish.isArrayBuffer(value)) {\n // ArrayBuffer to Uint8Array\n value = new Uint8Array(value);\n } else if (typeof value === \"string\") {\n // String to Array\n return Bufferish.from.call(exports, value);\n } else if (typeof value === \"number\") {\n throw new TypeError('\"value\" argument must not be a number');\n }\n\n // Array-like to Array\n return Array.prototype.slice.call(value);\n}\n\n\n//# sourceURL=webpack:///./node_modules/msgpack-lite/lib/bufferish-array.js?");
/***/ }),
/***/ "./node_modules/msgpack-lite/lib/bufferish-buffer.js":
/*!***********************************************************!*\
!*** ./node_modules/msgpack-lite/lib/bufferish-buffer.js ***!
\***********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// bufferish-buffer.js\n\nvar Bufferish = __webpack_require__(/*! ./bufferish */ \"./node_modules/msgpack-lite/lib/bufferish.js\");\nvar Buffer = Bufferish.global;\n\nvar exports = module.exports = Bufferish.hasBuffer ? alloc(0) : [];\n\nexports.alloc = Bufferish.hasBuffer && Buffer.alloc || alloc;\nexports.concat = Bufferish.concat;\nexports.from = from;\n\n/**\n * @param size {Number}\n * @returns {Buffer|Uint8Array|Array}\n */\n\nfunction alloc(size) {\n return new Buffer(size);\n}\n\n/**\n * @param value {Array|ArrayBuffer|Buffer|String}\n * @returns {Buffer}\n */\n\nfunction from(value) {\n if (!Bufferish.isBuffer(value) && Bufferish.isView(value)) {\n // TypedArray to Uint8Array\n value = Bufferish.Uint8Array.from(value);\n } else if (Bufferish.isArrayBuffer(value)) {\n // ArrayBuffer to Uint8Array\n value = new Uint8Array(value);\n } else if (typeof value === \"string\") {\n // String to Buffer\n return Bufferish.from.call(exports, value);\n } else if (typeof value === \"number\") {\n throw new TypeError('\"value\" argument must not be a number');\n }\n\n // Array-like to Buffer\n if (Buffer.from && Buffer.from.length !== 1) {\n return Buffer.from(value); // node v6+\n } else {\n return new Buffer(value); // node v4\n }\n}\n\n\n//# sourceURL=webpack:///./node_modules/msgpack-lite/lib/bufferish-buffer.js?");
/***/ }),
/***/ "./node_modules/msgpack-lite/lib/bufferish-proto.js":
/*!**********************************************************!*\
!*** ./node_modules/msgpack-lite/lib/bufferish-proto.js ***!
\**********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// bufferish-proto.js\n\n/* jshint eqnull:true */\n\nvar BufferLite = __webpack_require__(/*! ./buffer-lite */ \"./node_modules/msgpack-lite/lib/buffer-lite.js\");\n\nexports.copy = copy;\nexports.slice = slice;\nexports.toString = toString;\nexports.write = gen(\"write\");\n\nvar Bufferish = __webpack_require__(/*! ./bufferish */ \"./node_modules/msgpack-lite/lib/bufferish.js\");\nvar Buffer = Bufferish.global;\n\nvar isBufferShim = Bufferish.hasBuffer && (\"TYPED_ARRAY_SUPPORT\" in Buffer);\nvar brokenTypedArray = isBufferShim && !Buffer.TYPED_ARRAY_SUPPORT;\n\n/**\n * @param target {Buffer|Uint8Array|Array}\n * @param [targetStart] {Number}\n * @param [start] {Number}\n * @param [end] {Number}\n * @returns {Buffer|Uint8Array|Array}\n */\n\nfunction copy(target, targetStart, start, end) {\n var thisIsBuffer = Bufferish.isBuffer(this);\n var targetIsBuffer = Bufferish.isBuffer(target);\n if (thisIsBuffer && targetIsBuffer) {\n // Buffer to Buffer\n return this.copy(target, targetStart, start, end);\n } else if (!brokenTypedArray && !thisIsBuffer && !targetIsBuffer &&\n Bufferish.isView(this) && Bufferish.isView(target)) {\n // Uint8Array to Uint8Array (except for minor some browsers)\n var buffer = (start || end != null) ? slice.call(this, start, end) : this;\n target.set(buffer, targetStart);\n return buffer.length;\n } else {\n // other cases\n return BufferLite.copy.call(this, target, targetStart, start, end);\n }\n}\n\n/**\n * @param [start] {Number}\n * @param [end] {Number}\n * @returns {Buffer|Uint8Array|Array}\n */\n\nfunction slice(start, end) {\n // for Buffer, Uint8Array (except for minor some browsers) and Array\n var f = this.slice || (!brokenTypedArray && this.subarray);\n if (f) return f.call(this, start, end);\n\n // Uint8Array (for minor some browsers)\n var target = Bufferish.alloc.call(this, end - start);\n copy.call(this, target, 0, start, end);\n return target;\n}\n\n/**\n * Buffer.prototype.toString()\n *\n * @param [encoding] {String} ignored\n * @param [start] {Number}\n * @param [end] {Number}\n * @returns {String}\n */\n\nfunction toString(encoding, start, end) {\n var f = (!isBufferShim && Bufferish.isBuffer(this)) ? this.toString : BufferLite.toString;\n return f.apply(this, arguments);\n}\n\n/**\n * @private\n */\n\nfunction gen(method) {\n return wrap;\n\n function wrap() {\n var f = this[method] || BufferLite[method];\n return f.apply(this, arguments);\n }\n}\n\n\n//# sourceURL=webpack:///./node_modules/msgpack-lite/lib/bufferish-proto.js?");
/***/ }),
/***/ "./node_modules/msgpack-lite/lib/bufferish-uint8array.js":
/*!***************************************************************!*\
!*** ./node_modules/msgpack-lite/lib/bufferish-uint8array.js ***!
\***************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// bufferish-uint8array.js\n\nvar Bufferish = __webpack_require__(/*! ./bufferish */ \"./node_modules/msgpack-lite/lib/bufferish.js\");\n\nvar exports = module.exports = Bufferish.hasArrayBuffer ? alloc(0) : [];\n\nexports.alloc = alloc;\nexports.concat = Bufferish.concat;\nexports.from = from;\n\n/**\n * @param size {Number}\n * @returns {Buffer|Uint8Array|Array}\n */\n\nfunction alloc(size) {\n return new Uint8Array(size);\n}\n\n/**\n * @param value {Array|ArrayBuffer|Buffer|String}\n * @returns {Uint8Array}\n */\n\nfunction from(value) {\n if (Bufferish.isView(value)) {\n // TypedArray to ArrayBuffer\n var byteOffset = value.byteOffset;\n var byteLength = value.byteLength;\n value = value.buffer;\n if (value.byteLength !== byteLength) {\n if (value.slice) {\n value = value.slice(byteOffset, byteOffset + byteLength);\n } else {\n // Android 4.1 does not have ArrayBuffer.prototype.slice\n value = new Uint8Array(value);\n if (value.byteLength !== byteLength) {\n // TypedArray to ArrayBuffer to Uint8Array to Array\n value = Array.prototype.slice.call(value, byteOffset, byteOffset + byteLength);\n }\n }\n }\n } else if (typeof value === \"string\") {\n // String to Uint8Array\n return Bufferish.from.call(exports, value);\n } else if (typeof value === \"number\") {\n throw new TypeError('\"value\" argument must not be a number');\n }\n\n return new Uint8Array(value);\n}\n\n\n//# sourceURL=webpack:///./node_modules/msgpack-lite/lib/bufferish-uint8array.js?");
/***/ }),
/***/ "./node_modules/msgpack-lite/lib/bufferish.js":
/*!****************************************************!*\
!*** ./node_modules/msgpack-lite/lib/bufferish.js ***!
\****************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// bufferish.js\n\nvar Buffer = exports.global = __webpack_require__(/*! ./buffer-global */ \"./node_modules/msgpack-lite/lib/buffer-global.js\");\nvar hasBuffer = exports.hasBuffer = Buffer && !!Buffer.isBuffer;\nvar hasArrayBuffer = exports.hasArrayBuffer = (\"undefined\" !== typeof ArrayBuffer);\n\nvar isArray = exports.isArray = __webpack_require__(/*! isarray */ \"./node_modules/isarray/index.js\");\nexports.isArrayBuffer = hasArrayBuffer ? isArrayBuffer : _false;\nvar isBuffer = exports.isBuffer = hasBuffer ? Buffer.isBuffer : _false;\nvar isView = exports.isView = hasArrayBuffer ? (ArrayBuffer.isView || _is(\"ArrayBuffer\", \"buffer\")) : _false;\n\nexports.alloc = alloc;\nexports.concat = concat;\nexports.from = from;\n\nvar BufferArray = exports.Array = __webpack_require__(/*! ./bufferish-array */ \"./node_modules/msgpack-lite/lib/bufferish-array.js\");\nvar BufferBuffer = exports.Buffer = __webpack_require__(/*! ./bufferish-buffer */ \"./node_modules/msgpack-lite/lib/bufferish-buffer.js\");\nvar BufferUint8Array = exports.Uint8Array = __webpack_require__(/*! ./bufferish-uint8array */ \"./node_modules/msgpack-lite/lib/bufferish-uint8array.js\");\nvar BufferProto = exports.prototype = __webpack_require__(/*! ./bufferish-proto */ \"./node_modules/msgpack-lite/lib/bufferish-proto.js\");\n\n/**\n * @param value {Array|ArrayBuffer|Buffer|String}\n * @returns {Buffer|Uint8Array|Array}\n */\n\nfunction from(value) {\n if (typeof value === \"string\") {\n return fromString.call(this, value);\n } else {\n return auto(this).from(value);\n }\n}\n\n/**\n * @param size {Number}\n * @returns {Buffer|Uint8Array|Array}\n */\n\nfunction alloc(size) {\n return auto(this).alloc(size);\n}\n\n/**\n * @param list {Array} array of (Buffer|Uint8Array|Array)s\n * @param [length]\n * @returns {Buffer|Uint8Array|Array}\n */\n\nfunction concat(list, length) {\n if (!length) {\n length = 0;\n Array.prototype.forEach.call(list, dryrun);\n }\n var ref = (this !== exports) && this || list[0];\n var result = alloc.call(ref, length);\n var offset = 0;\n Array.prototype.forEach.call(list, append);\n return result;\n\n function dryrun(buffer) {\n length += buffer.length;\n }\n\n function append(buffer) {\n offset += BufferProto.copy.call(buffer, result, offset);\n }\n}\n\nvar _isArrayBuffer = _is(\"ArrayBuffer\");\n\nfunction isArrayBuffer(value) {\n return (value instanceof ArrayBuffer) || _isArrayBuffer(value);\n}\n\n/**\n * @private\n */\n\nfunction fromString(value) {\n var expected = value.length * 3;\n var that = alloc.call(this, expected);\n var actual = BufferProto.write.call(that, value);\n if (expected !== actual) {\n that = BufferProto.slice.call(that, 0, actual);\n }\n return that;\n}\n\nfunction auto(that) {\n return isBuffer(that) ? BufferBuffer\n : isView(that) ? BufferUint8Array\n : isArray(that) ? BufferArray\n : hasBuffer ? BufferBuffer\n : hasArrayBuffer ? BufferUint8Array\n : BufferArray;\n}\n\nfunction _false() {\n return false;\n}\n\nfunction _is(name, key) {\n /* jshint eqnull:true */\n name = \"[object \" + name + \"]\";\n return function(value) {\n return (value != null) && {}.toString.call(key ? value[key] : value) === name;\n };\n}\n\n//# sourceURL=webpack:///./node_modules/msgpack-lite/lib/bufferish.js?");
/***/ }),
/***/ "./node_modules/msgpack-lite/lib/codec-base.js":
/*!*****************************************************!*\
!*** ./node_modules/msgpack-lite/lib/codec-base.js ***!
\*****************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// codec-base.js\n\nvar IS_ARRAY = __webpack_require__(/*! isarray */ \"./node_modules/isarray/index.js\");\n\nexports.createCodec = createCodec;\nexports.install = install;\nexports.filter = filter;\n\nvar Bufferish = __webpack_require__(/*! ./bufferish */ \"./node_modules/msgpack-lite/lib/bufferish.js\");\n\nfunction Codec(options) {\n if (!(this instanceof Codec)) return new Codec(options);\n this.options = options;\n this.init();\n}\n\nCodec.prototype.init = function() {\n var options = this.options;\n\n if (options && options.uint8array) {\n this.bufferish = Bufferish.Uint8Array;\n }\n\n return this;\n};\n\nfunction install(props) {\n for (var key in props) {\n Codec.prototype[key] = add(Codec.prototype[key], props[key]);\n }\n}\n\nfunction add(a, b) {\n return (a && b) ? ab : (a || b);\n\n function ab() {\n a.apply(this, arguments);\n return b.apply(this, arguments);\n }\n}\n\nfunction join(filters) {\n filters = filters.slice();\n\n return function(value) {\n return filters.reduce(iterator, value);\n };\n\n function iterator(value, filter) {\n return filter(value);\n }\n}\n\nfunction filter(filter) {\n return IS_ARRAY(filter) ? join(filter) : filter;\n}\n\n// @public\n// msgpack.createCodec()\n\nfunction createCodec(options) {\n return new Codec(options);\n}\n\n// default shared codec\n\nexports.preset = createCodec({preset: true});\n\n\n//# sourceURL=webpack:///./node_modules/msgpack-lite/lib/codec-base.js?");
/***/ }),
/***/ "./node_modules/msgpack-lite/lib/codec.js":
/*!************************************************!*\
!*** ./node_modules/msgpack-lite/lib/codec.js ***!
\************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// codec.js\n\n// load both interfaces\n__webpack_require__(/*! ./read-core */ \"./node_modules/msgpack-lite/lib/read-core.js\");\n__webpack_require__(/*! ./write-core */ \"./node_modules/msgpack-lite/lib/write-core.js\");\n\n// @public\n// msgpack.codec.preset\n\nexports.codec = {\n preset: __webpack_require__(/*! ./codec-base */ \"./node_modules/msgpack-lite/lib/codec-base.js\").preset\n};\n\n\n//# sourceURL=webpack:///./node_modules/msgpack-lite/lib/codec.js?");
/***/ }),
/***/ "./node_modules/msgpack-lite/lib/decode-buffer.js":
/*!********************************************************!*\
!*** ./node_modules/msgpack-lite/lib/decode-buffer.js ***!
\********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// decode-buffer.js\n\nexports.DecodeBuffer = DecodeBuffer;\n\nvar preset = __webpack_require__(/*! ./read-core */ \"./node_modules/msgpack-lite/lib/read-core.js\").preset;\n\nvar FlexDecoder = __webpack_require__(/*! ./flex-buffer */ \"./node_modules/msgpack-lite/lib/flex-buffer.js\").FlexDecoder;\n\nFlexDecoder.mixin(DecodeBuffer.prototype);\n\nfunction DecodeBuffer(options) {\n if (!(this instanceof DecodeBuffer)) return new DecodeBuffer(options);\n\n if (options) {\n this.options = options;\n if (options.codec) {\n var codec = this.codec = options.codec;\n if (codec.bufferish) this.bufferish = codec.bufferish;\n }\n }\n}\n\nDecodeBuffer.prototype.codec = preset;\n\nDecodeBuffer.prototype.fetch = function() {\n return this.codec.decode(this);\n};\n\n\n//# sourceURL=webpack:///./node_modules/msgpack-lite/lib/decode-buffer.js?");
/***/ }),
/***/ "./node_modules/msgpack-lite/lib/decode.js":
/*!*************************************************!*\
!*** ./node_modules/msgpack-lite/lib/decode.js ***!
\*************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// decode.js\n\nexports.decode = decode;\n\nvar DecodeBuffer = __webpack_require__(/*! ./decode-buffer */ \"./node_modules/msgpack-lite/lib/decode-buffer.js\").DecodeBuffer;\n\nfunction decode(input, options) {\n var decoder = new DecodeBuffer(options);\n decoder.write(input);\n return decoder.read();\n}\n\n//# sourceURL=webpack:///./node_modules/msgpack-lite/lib/decode.js?");
/***/ }),
/***/ "./node_modules/msgpack-lite/lib/decoder.js":
/*!**************************************************!*\
!*** ./node_modules/msgpack-lite/lib/decoder.js ***!
\**************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// decoder.js\n\nexports.Decoder = Decoder;\n\nvar EventLite = __webpack_require__(/*! event-lite */ \"./node_modules/event-lite/event-lite.js\");\nvar DecodeBuffer = __webpack_require__(/*! ./decode-buffer */ \"./node_modules/msgpack-lite/lib/decode-buffer.js\").DecodeBuffer;\n\nfunction Decoder(options) {\n if (!(this instanceof Decoder)) return new Decoder(options);\n DecodeBuffer.call(this, options);\n}\n\nDecoder.prototype = new DecodeBuffer();\n\nEventLite.mixin(Decoder.prototype);\n\nDecoder.prototype.decode = function(chunk) {\n if (arguments.length) this.write(chunk);\n this.flush();\n};\n\nDecoder.prototype.push = function(chunk) {\n this.emit(\"data\", chunk);\n};\n\nDecoder.prototype.end = function(chunk) {\n this.decode(chunk);\n this.emit(\"end\");\n};\n\n\n//# sourceURL=webpack:///./node_modules/msgpack-lite/lib/decoder.js?");
/***/ }),
/***/ "./node_modules/msgpack-lite/lib/encode-buffer.js":
/*!********************************************************!*\
!*** ./node_modules/msgpack-lite/lib/encode-buffer.js ***!
\********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// encode-buffer.js\n\nexports.EncodeBuffer = EncodeBuffer;\n\nvar preset = __webpack_require__(/*! ./write-core */ \"./node_modules/msgpack-lite/lib/write-core.js\").preset;\n\nvar FlexEncoder = __webpack_require__(/*! ./flex-buffer */ \"./node_modules/msgpack-lite/lib/flex-buffer.js\").FlexEncoder;\n\nFlexEncoder.mixin(EncodeBuffer.prototype);\n\nfunction EncodeBuffer(options) {\n if (!(this instanceof EncodeBuffer)) return new EncodeBuffer(options);\n\n if (options) {\n this.options = options;\n if (options.codec) {\n var codec = this.codec = options.codec;\n if (codec.bufferish) this.bufferish = codec.bufferish;\n }\n }\n}\n\nEncodeBuffer.prototype.codec = preset;\n\nEncodeBuffer.prototype.write = function(input) {\n this.codec.encode(this, input);\n};\n\n\n//# sourceURL=webpack:///./node_modules/msgpack-lite/lib/encode-buffer.js?");
/***/ }),
/***/ "./node_modules/msgpack-lite/lib/encode.js":
/*!*************************************************!*\
!*** ./node_modules/msgpack-lite/lib/encode.js ***!
\*************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// encode.js\n\nexports.encode = encode;\n\nvar EncodeBuffer = __webpack_require__(/*! ./encode-buffer */ \"./node_modules/msgpack-lite/lib/encode-buffer.js\").EncodeBuffer;\n\nfunction encode(input, options) {\n var encoder = new EncodeBuffer(options);\n encoder.write(input);\n return encoder.read();\n}\n\n\n//# sourceURL=webpack:///./node_modules/msgpack-lite/lib/encode.js?");
/***/ }),
/***/ "./node_modules/msgpack-lite/lib/encoder.js":
/*!**************************************************!*\
!*** ./node_modules/msgpack-lite/lib/encoder.js ***!
\**************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// encoder.js\n\nexports.Encoder = Encoder;\n\nvar EventLite = __webpack_require__(/*! event-lite */ \"./node_modules/event-lite/event-lite.js\");\nvar EncodeBuffer = __webpack_require__(/*! ./encode-buffer */ \"./node_modules/msgpack-lite/lib/encode-buffer.js\").EncodeBuffer;\n\nfunction Encoder(options) {\n if (!(this instanceof Encoder)) return new Encoder(options);\n EncodeBuffer.call(this, options);\n}\n\nEncoder.prototype = new EncodeBuffer();\n\nEventLite.mixin(Encoder.prototype);\n\nEncoder.prototype.encode = function(chunk) {\n this.write(chunk);\n this.emit(\"data\", this.read());\n};\n\nEncoder.prototype.end = function(chunk) {\n if (arguments.length) this.encode(chunk);\n this.flush();\n this.emit(\"end\");\n};\n\n\n//# sourceURL=webpack:///./node_modules/msgpack-lite/lib/encoder.js?");
/***/ }),
/***/ "./node_modules/msgpack-lite/lib/ext-buffer.js":
/*!*****************************************************!*\
!*** ./node_modules/msgpack-lite/lib/ext-buffer.js ***!
\*****************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// ext-buffer.js\n\nexports.ExtBuffer = ExtBuffer;\n\nvar Bufferish = __webpack_require__(/*! ./bufferish */ \"./node_modules/msgpack-lite/lib/bufferish.js\");\n\nfunction ExtBuffer(buffer, type) {\n if (!(this instanceof ExtBuffer)) return new ExtBuffer(buffer, type);\n this.buffer = Bufferish.from(buffer);\n this.type = type;\n}\n\n\n//# sourceURL=webpack:///./node_modules/msgpack-lite/lib/ext-buffer.js?");
/***/ }),
/***/ "./node_modules/msgpack-lite/lib/ext-packer.js":
/*!*****************************************************!*\
!*** ./node_modules/msgpack-lite/lib/ext-packer.js ***!
\*****************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// ext-packer.js\n\nexports.setExtPackers = setExtPackers;\n\nvar Bufferish = __webpack_require__(/*! ./bufferish */ \"./node_modules/msgpack-lite/lib/bufferish.js\");\nvar Buffer = Bufferish.global;\nvar packTypedArray = Bufferish.Uint8Array.from;\nvar _encode;\n\nvar ERROR_COLUMNS = {name: 1, message: 1, stack: 1, columnNumber: 1, fileName: 1, lineNumber: 1};\n\nfunction setExtPackers(codec) {\n codec.addExtPacker(0x0E, Error, [packError, encode]);\n codec.addExtPacker(0x01, EvalError, [packError, encode]);\n codec.addExtPacker(0x02, RangeError, [packError, encode]);\n codec.addExtPacker(0x03, ReferenceError, [packError, encode]);\n codec.addExtPacker(0x04, SyntaxError, [packError, encode]);\n codec.addExtPacker(0x05, TypeError, [packError, encode]);\n codec.addExtPacker(0x06, URIError, [packError, encode]);\n\n codec.addExtPacker(0x0A, RegExp, [packRegExp, encode]);\n codec.addExtPacker(0x0B, Boolean, [packValueOf, encode]);\n codec.addExtPacker(0x0C, String, [packValueOf, encode]);\n codec.addExtPacker(0x0D, Date, [Number, encode]);\n codec.addExtPacker(0x0F, Number, [packValueOf, encode]);\n\n if (\"undefined\" !== typeof Uint8Array) {\n codec.addExtPacker(0x11, Int8Array, packTypedArray);\n codec.addExtPacker(0x12, Uint8Array, packTypedArray);\n codec.addExtPacker(0x13, Int16Array, packTypedArray);\n codec.addExtPacker(0x14, Uint16Array, packTypedArray);\n codec.addExtPacker(0x15, Int32Array, packTypedArray);\n codec.addExtPacker(0x16, Uint32Array, packTypedArray);\n codec.addExtPacker(0x17, Float32Array, packTypedArray);\n\n // PhantomJS/1.9.7 doesn't have Float64Array\n if (\"undefined\" !== typeof Float64Array) {\n codec.addExtPacker(0x18, Float64Array, packTypedArray);\n }\n\n // IE10 doesn't have Uint8ClampedArray\n if (\"undefined\" !== typeof Uint8ClampedArray) {\n codec.addExtPacker(0x19, Uint8ClampedArray, packTypedArray);\n }\n\n codec.addExtPacker(0x1A, ArrayBuffer, packTypedArray);\n codec.addExtPacker(0x1D, DataView, packTypedArray);\n }\n\n if (Bufferish.hasBuffer) {\n codec.addExtPacker(0x1B, Buffer, Bufferish.from);\n }\n}\n\nfunction encode(input) {\n if (!_encode) _encode = __webpack_require__(/*! ./encode */ \"./node_modules/msgpack-lite/lib/encode.js\").encode; // lazy load\n return _encode(input);\n}\n\nfunction packValueOf(value) {\n return (value).valueOf();\n}\n\nfunction packRegExp(value) {\n value = RegExp.prototype.toString.call(value).split(\"/\");\n value.shift();\n var out = [value.pop()];\n out.unshift(value.join(\"/\"));\n return out;\n}\n\nfunction packError(value) {\n var out = {};\n for (var key in ERROR_COLUMNS) {\n out[key] = value[key];\n }\n return out;\n}\n\n\n//# sourceURL=webpack:///./node_modules/msgpack-lite/lib/ext-packer.js?");
/***/ }),
/***/ "./node_modules/msgpack-lite/lib/ext-unpacker.js":
/*!*******************************************************!*\
!*** ./node_modules/msgpack-lite/lib/ext-unpacker.js ***!
\*******************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// ext-unpacker.js\n\nexports.setExtUnpackers = setExtUnpackers;\n\nvar Bufferish = __webpack_require__(/*! ./bufferish */ \"./node_modules/msgpack-lite/lib/bufferish.js\");\nvar Buffer = Bufferish.global;\nvar _decode;\n\nvar ERROR_COLUMNS = {name: 1, message: 1, stack: 1, columnNumber: 1, fileName: 1, lineNumber: 1};\n\nfunction setExtUnpackers(codec) {\n codec.addExtUnpacker(0x0E, [decode, unpackError(Error)]);\n codec.addExtUnpacker(0x01, [decode, unpackError(EvalError)]);\n codec.addExtUnpacker(0x02, [decode, unpackError(RangeError)]);\n codec.addExtUnpacker(0x03, [decode, unpackError(ReferenceError)]);\n codec.addExtUnpacker(0x04, [decode, unpackError(SyntaxError)]);\n codec.addExtUnpacker(0x05, [decode, unpackError(TypeError)]);\n codec.addExtUnpacker(0x06, [decode, unpackError(URIError)]);\n\n codec.addExtUnpacker(0x0A, [decode, unpackRegExp]);\n codec.addExtUnpacker(0x0B, [decode, unpackClass(Boolean)]);\n codec.addExtUnpacker(0x0C, [decode, unpackClass(String)]);\n codec.addExtUnpacker(0x0D, [decode, unpackClass(Date)]);\n codec.addExtUnpacker(0x0F, [decode, unpackClass(Number)]);\n\n if (\"undefined\" !== typeof Uint8Array) {\n codec.addExtUnpacker(0x11, unpackClass(Int8Array));\n codec.addExtUnpacker(0x12, unpackClass(Uint8Array));\n codec.addExtUnpacker(0x13, [unpackArrayBuffer, unpackClass(Int16Array)]);\n codec.addExtUnpacker(0x14, [unpackArrayBuffer, unpackClass(Uint16Array)]);\n codec.addExtUnpacker(0x15, [unpackArrayBuffer, unpackClass(Int32Array)]);\n codec.addExtUnpacker(0x16, [unpackArrayBuffer, unpackClass(Uint32Array)]);\n codec.addExtUnpacker(0x17, [unpackArrayBuffer, unpackClass(Float32Array)]);\n\n // PhantomJS/1.9.7 doesn't have Float64Array\n if (\"undefined\" !== typeof Float64Array) {\n codec.addExtUnpacker(0x18, [unpackArrayBuffer, unpackClass(Float64Array)]);\n }\n\n // IE10 doesn't have Uint8ClampedArray\n if (\"undefined\" !== typeof Uint8ClampedArray) {\n codec.addExtUnpacker(0x19, unpackClass(Uint8ClampedArray));\n }\n\n codec.addExtUnpacker(0x1A, unpackArrayBuffer);\n codec.addExtUnpacker(0x1D, [unpackArrayBuffer, unpackClass(DataView)]);\n }\n\n if (Bufferish.hasBuffer) {\n codec.addExtUnpacker(0x1B, unpackClass(Buffer));\n }\n}\n\nfunction decode(input) {\n if (!_decode) _decode = __webpack_require__(/*! ./decode */ \"./node_modules/msgpack-lite/lib/decode.js\").decode; // lazy load\n return _decode(input);\n}\n\nfunction unpackRegExp(value) {\n return RegExp.apply(null, value);\n}\n\nfunction unpackError(Class) {\n return function(value) {\n var out = new Class();\n for (var key in ERROR_COLUMNS) {\n out[key] = value[key];\n }\n return out;\n };\n}\n\nfunction unpackClass(Class) {\n return function(value) {\n return new Class(value);\n };\n}\n\nfunction unpackArrayBuffer(value) {\n return (new Uint8Array(value)).buffer;\n}\n\n\n//# sourceURL=webpack:///./node_modules/msgpack-lite/lib/ext-unpacker.js?");
/***/ }),
/***/ "./node_modules/msgpack-lite/lib/ext.js":
/*!**********************************************!*\
!*** ./node_modules/msgpack-lite/lib/ext.js ***!
\**********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// ext.js\n\n// load both interfaces\n__webpack_require__(/*! ./read-core */ \"./node_modules/msgpack-lite/lib/read-core.js\");\n__webpack_require__(/*! ./write-core */ \"./node_modules/msgpack-lite/lib/write-core.js\");\n\nexports.createCodec = __webpack_require__(/*! ./codec-base */ \"./node_modules/msgpack-lite/lib/codec-base.js\").createCodec;\n\n\n//# sourceURL=webpack:///./node_modules/msgpack-lite/lib/ext.js?");
/***/ }),
/***/ "./node_modules/msgpack-lite/lib/flex-buffer.js":
/*!******************************************************!*\
!*** ./node_modules/msgpack-lite/lib/flex-buffer.js ***!
\******************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// flex-buffer.js\n\nexports.FlexDecoder = FlexDecoder;\nexports.FlexEncoder = FlexEncoder;\n\nvar Bufferish = __webpack_require__(/*! ./bufferish */ \"./node_modules/msgpack-lite/lib/bufferish.js\");\n\nvar MIN_BUFFER_SIZE = 2048;\nvar MAX_BUFFER_SIZE = 65536;\nvar BUFFER_SHORTAGE = \"BUFFER_SHORTAGE\";\n\nfunction FlexDecoder() {\n if (!(this instanceof FlexDecoder)) return new FlexDecoder();\n}\n\nfunction FlexEncoder() {\n if (!(this instanceof FlexEncoder)) return new FlexEncoder();\n}\n\nFlexDecoder.mixin = mixinFactory(getDecoderMethods());\nFlexDecoder.mixin(FlexDecoder.prototype);\n\nFlexEncoder.mixin = mixinFactory(getEncoderMethods());\nFlexEncoder.mixin(FlexEncoder.prototype);\n\nfunction getDecoderMethods() {\n return {\n bufferish: Bufferish,\n write: write,\n fetch: fetch,\n flush: flush,\n push: push,\n pull: pull,\n read: read,\n reserve: reserve,\n offset: 0\n };\n\n function write(chunk) {\n var prev = this.offset ? Bufferish.prototype.slice.call(this.buffer, this.offset) : this.buffer;\n this.buffer = prev ? (chunk ? this.bufferish.concat([prev, chunk]) : prev) : chunk;\n this.offset = 0;\n }\n\n function flush() {\n while (this.offset < this.buffer.length) {\n var start = this.offset;\n var value;\n try {\n value = this.fetch();\n } catch (e) {\n if (e && e.message != BUFFER_SHORTAGE) throw e;\n // rollback\n this.offset = start;\n break;\n }\n this.push(value);\n }\n }\n\n function reserve(length) {\n var start = this.offset;\n var end = start + length;\n if (end > this.buffer.length) throw new Error(BUFFER_SHORTAGE);\n this.offset = end;\n return start;\n }\n}\n\nfunction getEncoderMethods() {\n return {\n bufferish: Bufferish,\n write: write,\n fetch: fetch,\n flush: flush,\n push: push,\n pull: pull,\n read: read,\n reserve: reserve,\n send: send,\n maxBufferSize: MAX_BUFFER_SIZE,\n minBufferSize: MIN_BUFFER_SIZE,\n offset: 0,\n start: 0\n };\n\n function fetch() {\n var start = this.start;\n if (start < this.offset) {\n var end = this.start = this.offset;\n return Bufferish.prototype.slice.call(this.buffer, start, end);\n }\n }\n\n function flush() {\n while (this.start < this.offset) {\n var value = this.fetch();\n if (value) this.push(value);\n }\n }\n\n function pull() {\n var buffers = this.buffers || (this.buffers = []);\n var chunk = buffers.length > 1 ? this.bufferish.concat(buffers) : buffers[0];\n buffers.length = 0; // buffer exhausted\n return chunk;\n }\n\n function reserve(length) {\n var req = length | 0;\n\n if (this.buffer) {\n var size = this.buffer.length;\n var start = this.offset | 0;\n var end = start + req;\n\n // is it long enough?\n if (end < size) {\n this.offset = end;\n return start;\n }\n\n // flush current buffer\n this.flush();\n\n // resize it to 2x current length\n length = Math.max(length, Math.min(size * 2, this.maxBufferSize));\n }\n\n // minimum buffer size\n length = Math.max(length, this.minBufferSize);\n\n // allocate new buffer\n this.buffer = this.bufferish.alloc(length);\n this.start = 0;\n this.offset = req;\n return 0;\n }\n\n function send(buffer) {\n var length = buffer.length;\n if (length > this.minBufferSize) {\n this.flush();\n this.push(buffer);\n } else {\n var offset = this.reserve(length);\n Bufferish.prototype.copy.call(buffer, this.buffer, offset);\n }\n }\n}\n\n// common methods\n\nfunction write() {\n throw new Error(\"method not implemented: write()\");\n}\n\nfunction fetch() {\n throw new Error(\"method not implemented: fetch()\");\n}\n\nfunction read() {\n var length = this.buffers && this.buffers.length;\n\n // fetch the first result\n if (!length) return this.fetch();\n\n // flush current buffer\n this.flush();\n\n // read from the results\n return this.pull();\n}\n\nfunction push(chunk) {\n var buffers = this.buffers || (this.buffers = []);\n buffers.push(chunk);\n}\n\nfunction pull() {\n var buffers = this.buffers || (this.buffers = []);\n return buffers.shift();\n}\n\nfunction mixinFactory(source) {\n return mixin;\n\n function mixin(target) {\n for (var key in source) {\n target[key] = source[key];\n }\n return target;\n }\n}\n\n\n//# sourceURL=webpack:///./node_modules/msgpack-lite/lib/flex-buffer.js?");
/***/ }),
/***/ "./node_modules/msgpack-lite/lib/read-core.js":
/*!****************************************************!*\
!*** ./node_modules/msgpack-lite/lib/read-core.js ***!
\****************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// read-core.js\n\nvar ExtBuffer = __webpack_require__(/*! ./ext-buffer */ \"./node_modules/msgpack-lite/lib/ext-buffer.js\").ExtBuffer;\nvar ExtUnpacker = __webpack_require__(/*! ./ext-unpacker */ \"./node_modules/msgpack-lite/lib/ext-unpacker.js\");\nvar readUint8 = __webpack_require__(/*! ./read-format */ \"./node_modules/msgpack-lite/lib/read-format.js\").readUint8;\nvar ReadToken = __webpack_require__(/*! ./read-token */ \"./node_modules/msgpack-lite/lib/read-token.js\");\nvar CodecBase = __webpack_require__(/*! ./codec-base */ \"./node_modules/msgpack-lite/lib/codec-base.js\");\n\nCodecBase.install({\n addExtUnpacker: addExtUnpacker,\n getExtUnpacker: getExtUnpacker,\n init: init\n});\n\nexports.preset = init.call(CodecBase.preset);\n\nfunction getDecoder(options) {\n var readToken = ReadToken.getReadToken(options);\n return decode;\n\n function decode(decoder) {\n var type = readUint8(decoder);\n var func = readToken[type];\n if (!func) throw new Error(\"Invalid type: \" + (type ? (\"0x\" + type.toString(16)) : type));\n return func(decoder);\n }\n}\n\nfunction init() {\n var options = this.options;\n this.decode = getDecoder(options);\n\n if (options && options.preset) {\n ExtUnpacker.setExtUnpackers(this);\n }\n\n return this;\n}\n\nfunction addExtUnpacker(etype, unpacker) {\n var unpackers = this.extUnpackers || (this.extUnpackers = []);\n unpackers[etype] = CodecBase.filter(unpacker);\n}\n\nfunction getExtUnpacker(type) {\n var unpackers = this.extUnpackers || (this.extUnpackers = []);\n return unpackers[type] || extUnpacker;\n\n function extUnpacker(buffer) {\n return new ExtBuffer(buffer, type);\n }\n}\n\n\n//# sourceURL=webpack:///./node_modules/msgpack-lite/lib/read-core.js?");
/***/ }),
/***/ "./node_modules/msgpack-lite/lib/read-format.js":
/*!******************************************************!*\
!*** ./node_modules/msgpack-lite/lib/read-format.js ***!
\******************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// read-format.js\n\nvar ieee754 = __webpack_require__(/*! ieee754 */ \"./node_modules/ieee754/index.js\");\nvar Int64Buffer = __webpack_require__(/*! int64-buffer */ \"./node_modules/int64-buffer/int64-buffer.js\");\nvar Uint64BE = Int64Buffer.Uint64BE;\nvar Int64BE = Int64Buffer.Int64BE;\n\nexports.getReadFormat = getReadFormat;\nexports.readUint8 = uint8;\n\nvar Bufferish = __webpack_require__(/*! ./bufferish */ \"./node_modules/msgpack-lite/lib/bufferish.js\");\nvar BufferProto = __webpack_require__(/*! ./bufferish-proto */ \"./node_modules/msgpack-lite/lib/bufferish-proto.js\");\n\nvar HAS_MAP = (\"undefined\" !== typeof Map);\nvar NO_ASSERT = true;\n\nfunction getReadFormat(options) {\n var binarraybuffer = Bufferish.hasArrayBuffer && options && options.binarraybuffer;\n var int64 = options && options.int64;\n var usemap = HAS_MAP && options && options.usemap;\n\n var readFormat = {\n map: (usemap ? map_to_map : map_to_obj),\n array: array,\n str: str,\n bin: (binarraybuffer ? bin_arraybuffer : bin_buffer),\n ext: ext,\n uint8: uint8,\n uint16: uint16,\n uint32: uint32,\n uint64: read(8, int64 ? readUInt64BE_int64 : readUInt64BE),\n int8: int8,\n int16: int16,\n int32: int32,\n int64: read(8, int64 ? readInt64BE_int64 : readInt64BE),\n float32: read(4, readFloatBE),\n float64: read(8, readDoubleBE)\n };\n\n return readFormat;\n}\n\nfunction map_to_obj(decoder, len) {\n var value = {};\n var i;\n var k = new Array(len);\n var v = new Array(len);\n\n var decode = decoder.codec.decode;\n for (i = 0; i < len; i++) {\n k[i] = decode(decoder);\n v[i] = decode(decoder);\n }\n for (i = 0; i < len; i++) {\n value[k[i]] = v[i];\n }\n return value;\n}\n\nfunction map_to_map(decoder, len) {\n var value = new Map();\n var i;\n var k = new Array(len);\n var v = new Array(len);\n\n var decode = decoder.codec.decode;\n for (i = 0; i < len; i++) {\n k[i] = decode(decoder);\n v[i] = decode(decoder);\n }\n for (i = 0; i < len; i++) {\n value.set(k[i], v[i]);\n }\n return value;\n}\n\nfunction array(decoder, len) {\n var value = new Array(len);\n var decode = decoder.codec.decode;\n for (var i = 0; i < len; i++) {\n value[i] = decode(decoder);\n }\n return value;\n}\n\nfunction str(decoder, len) {\n var start = decoder.reserve(len);\n var end = start + len;\n return BufferProto.toString.call(decoder.buffer, \"utf-8\", start, end);\n}\n\nfunction bin_buffer(decoder, len) {\n var start = decoder.reserve(len);\n var end = start + len;\n var buf = BufferProto.slice.call(decoder.buffer, start, end);\n return Bufferish.from(buf);\n}\n\nfunction bin_arraybuffer(decoder, len) {\n var start = decoder.reserve(len);\n var end = start + len;\n var buf = BufferProto.slice.call(decoder.buffer, start, end);\n return Bufferish.Uint8Array.from(buf).buffer;\n}\n\nfunction ext(decoder, len) {\n var start = decoder.reserve(len+1);\n var type = decoder.buffer[start++];\n var end = start + len;\n var unpack = decoder.codec.getExtUnpacker(type);\n if (!unpack) throw new Error(\"Invalid ext type: \" + (type ? (\"0x\" + type.toString(16)) : type));\n var buf = BufferProto.slice.call(decoder.buffer, start, end);\n return unpack(buf);\n}\n\nfunction uint8(decoder) {\n var start = decoder.reserve(1);\n return decoder.buffer[start];\n}\n\nfunction int8(decoder) {\n var start = decoder.reserve(1);\n var value = decoder.buffer[start];\n return (value & 0x80) ? value - 0x100 : value;\n}\n\nfunction uint16(decoder) {\n var start = decoder.reserve(2);\n var buffer = decoder.buffer;\n return (buffer[start++] << 8) | buffer[start];\n}\n\nfunction int16(decoder) {\n var start = decoder.reserve(2);\n var buffer = decoder.buffer;\n var value = (buffer[start++] << 8) | buffer[start];\n return (value & 0x8000) ? value - 0x10000 : value;\n}\n\nfunction uint32(decoder) {\n var start = decoder.reserve(4);\n var buffer = decoder.buffer;\n return (buffer[start++] * 16777216) + (buffer[start++] << 16) + (buffer[start++] << 8) + buffer[start];\n}\n\nfunction int32(decoder) {\n var start = decoder.reserve(4);\n var buffer = decoder.buffer;\n return (buffer[start++] << 24) | (buffer[start++] << 16) | (buffer[start++] << 8) | buffer[start];\n}\n\nfunction read(len, method) {\n return function(decoder) {\n var start = decoder.reserve(len);\n return method.call(decoder.buffer, start, NO_ASSERT);\n };\n}\n\nfunction readUInt64BE(start) {\n return new Uint64BE(this, start).toNumber();\n}\n\nfunction readInt64BE(start) {\n return new Int64BE(this, start).toNumber();\n}\n\nfunction readUInt64BE_int64(start) {\n return new Uint64BE(this, start);\n}\n\nfunction readInt64BE_int64(start) {\n return new Int64BE(this, start);\n}\n\nfunction readFloatBE(start) {\n return ieee754.read(this, start, false, 23, 4);\n}\n\nfunction readDoubleBE(start) {\n return ieee754.read(this, start, false, 52, 8);\n}\n\n//# sourceURL=webpack:///./node_modules/msgpack-lite/lib/read-format.js?");
/***/ }),
/***/ "./node_modules/msgpack-lite/lib/read-token.js":
/*!*****************************************************!*\
!*** ./node_modules/msgpack-lite/lib/read-token.js ***!
\*****************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// read-token.js\n\nvar ReadFormat = __webpack_require__(/*! ./read-format */ \"./node_modules/msgpack-lite/lib/read-format.js\");\n\nexports.getReadToken = getReadToken;\n\nfunction getReadToken(options) {\n var format = ReadFormat.getReadFormat(options);\n\n if (options && options.useraw) {\n return init_useraw(format);\n } else {\n return init_token(format);\n }\n}\n\nfunction init_token(format) {\n var i;\n var token = new Array(256);\n\n // positive fixint -- 0x00 - 0x7f\n for (i = 0x00; i <= 0x7f; i++) {\n token[i] = constant(i);\n }\n\n // fixmap -- 0x80 - 0x8f\n for (i = 0x80; i <= 0x8f; i++) {\n token[i] = fix(i - 0x80, format.map);\n }\n\n // fixarray -- 0x90 - 0x9f\n for (i = 0x90; i <= 0x9f; i++) {\n token[i] = fix(i - 0x90, format.array);\n }\n\n // fixstr -- 0xa0 - 0xbf\n for (i = 0xa0; i <= 0xbf; i++) {\n token[i] = fix(i - 0xa0, format.str);\n }\n\n // nil -- 0xc0\n token[0xc0] = constant(null);\n\n // (never used) -- 0xc1\n token[0xc1] = null;\n\n // false -- 0xc2\n // true -- 0xc3\n token[0xc2] = constant(false);\n token[0xc3] = constant(true);\n\n // bin 8 -- 0xc4\n // bin 16 -- 0xc5\n // bin 32 -- 0xc6\n token[0xc4] = flex(format.uint8, format.bin);\n token[0xc5] = flex(format.uint16, format.bin);\n token[0xc6] = flex(format.uint32, format.bin);\n\n // ext 8 -- 0xc7\n // ext 16 -- 0xc8\n // ext 32 -- 0xc9\n token[0xc7] = flex(format.uint8, format.ext);\n token[0xc8] = flex(format.uint16, format.ext);\n token[0xc9] = flex(format.uint32, format.ext);\n\n // float 32 -- 0xca\n // float 64 -- 0xcb\n token[0xca] = format.float32;\n token[0xcb] = format.float64;\n\n // uint 8 -- 0xcc\n // uint 16 -- 0xcd\n // uint 32 -- 0xce\n // uint 64 -- 0xcf\n token[0xcc] = format.uint8;\n token[0xcd] = format.uint16;\n token[0xce] = format.uint32;\n token[0xcf] = format.uint64;\n\n // int 8 -- 0xd0\n // int 16 -- 0xd1\n // int 32 -- 0xd2\n // int 64 -- 0xd3\n token[0xd0] = format.int8;\n token[0xd1] = format.int16;\n token[0xd2] = format.int32;\n token[0xd3] = format.int64;\n\n // fixext 1 -- 0xd4\n // fixext 2 -- 0xd5\n // fixext 4 -- 0xd6\n // fixext 8 -- 0xd7\n // fixext 16 -- 0xd8\n token[0xd4] = fix(1, format.ext);\n token[0xd5] = fix(2, format.ext);\n token[0xd6] = fix(4, format.ext);\n token[0xd7] = fix(8, format.ext);\n token[0xd8] = fix(16, format.ext);\n\n // str 8 -- 0xd9\n // str 16 -- 0xda\n // str 32 -- 0xdb\n token[0xd9] = flex(format.uint8, format.str);\n token[0xda] = flex(format.uint16, format.str);\n token[0xdb] = flex(format.uint32, format.str);\n\n // array 16 -- 0xdc\n // array 32 -- 0xdd\n token[0xdc] = flex(format.uint16, format.array);\n token[0xdd] = flex(format.uint32, format.array);\n\n // map 16 -- 0xde\n // map 32 -- 0xdf\n token[0xde] = flex(format.uint16, format.map);\n token[0xdf] = flex(format.uint32, format.map);\n\n // negative fixint -- 0xe0 - 0xff\n for (i = 0xe0; i <= 0xff; i++) {\n token[i] = constant(i - 0x100);\n }\n\n return token;\n}\n\nfunction init_useraw(format) {\n var i;\n var token = init_token(format).slice();\n\n // raw 8 -- 0xd9\n // raw 16 -- 0xda\n // raw 32 -- 0xdb\n token[0xd9] = token[0xc4];\n token[0xda] = token[0xc5];\n token[0xdb] = token[0xc6];\n\n // fixraw -- 0xa0 - 0xbf\n for (i = 0xa0; i <= 0xbf; i++) {\n token[i] = fix(i - 0xa0, format.bin);\n }\n\n return token;\n}\n\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\nfunction flex(lenFunc, decodeFunc) {\n return function(decoder) {\n var len = lenFunc(decoder);\n return decodeFunc(decoder, len);\n };\n}\n\nfunction fix(len, method) {\n return function(decoder) {\n return method(decoder, len);\n };\n}\n\n\n//# sourceURL=webpack:///./node_modules/msgpack-lite/lib/read-token.js?");
/***/ }),
/***/ "./node_modules/msgpack-lite/lib/write-core.js":
/*!*****************************************************!*\
!*** ./node_modules/msgpack-lite/lib/write-core.js ***!
\*****************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// write-core.js\n\nvar ExtBuffer = __webpack_require__(/*! ./ext-buffer */ \"./node_modules/msgpack-lite/lib/ext-buffer.js\").ExtBuffer;\nvar ExtPacker = __webpack_require__(/*! ./ext-packer */ \"./node_modules/msgpack-lite/lib/ext-packer.js\");\nvar WriteType = __webpack_require__(/*! ./write-type */ \"./node_modules/msgpack-lite/lib/write-type.js\");\nvar CodecBase = __webpack_require__(/*! ./codec-base */ \"./node_modules/msgpack-lite/lib/codec-base.js\");\n\nCodecBase.install({\n addExtPacker: addExtPacker,\n getExtPacker: getExtPacker,\n init: init\n});\n\nexports.preset = init.call(CodecBase.preset);\n\nfunction getEncoder(options) {\n var writeType = WriteType.getWriteType(options);\n return encode;\n\n function encode(encoder, value) {\n var func = writeType[typeof value];\n if (!func) throw new Error(\"Unsupported type \\\"\" + (typeof value) + \"\\\": \" + value);\n func(encoder, value);\n }\n}\n\nfunction init() {\n var options = this.options;\n this.encode = getEncoder(options);\n\n if (options && options.preset) {\n ExtPacker.setExtPackers(this);\n }\n\n return this;\n}\n\nfunction addExtPacker(etype, Class, packer) {\n packer = CodecBase.filter(packer);\n var name = Class.name;\n if (name && name !== \"Object\") {\n var packers = this.extPackers || (this.extPackers = {});\n packers[name] = extPacker;\n } else {\n // fallback for IE\n var list = this.extEncoderList || (this.extEncoderList = []);\n list.unshift([Class, extPacker]);\n }\n\n function extPacker(value) {\n if (packer) value = packer(value);\n return new ExtBuffer(value, etype);\n }\n}\n\nfunction getExtPacker(value) {\n var packers = this.extPackers || (this.extPackers = {});\n var c = value.constructor;\n var e = c && c.name && packers[c.name];\n if (e) return e;\n\n // fallback for IE\n var list = this.extEncoderList || (this.extEncoderList = []);\n var len = list.length;\n for (var i = 0; i < len; i++) {\n var pair = list[i];\n if (c === pair[0]) return pair[1];\n }\n}\n\n\n//# sourceURL=webpack:///./node_modules/msgpack-lite/lib/write-core.js?");
/***/ }),
/***/ "./node_modules/msgpack-lite/lib/write-token.js":
/*!******************************************************!*\
!*** ./node_modules/msgpack-lite/lib/write-token.js ***!
\******************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// write-token.js\n\nvar ieee754 = __webpack_require__(/*! ieee754 */ \"./node_modules/ieee754/index.js\");\nvar Int64Buffer = __webpack_require__(/*! int64-buffer */ \"./node_modules/int64-buffer/int64-buffer.js\");\nvar Uint64BE = Int64Buffer.Uint64BE;\nvar Int64BE = Int64Buffer.Int64BE;\n\nvar uint8 = __webpack_require__(/*! ./write-uint8 */ \"./node_modules/msgpack-lite/lib/write-uint8.js\").uint8;\nvar Bufferish = __webpack_require__(/*! ./bufferish */ \"./node_modules/msgpack-lite/lib/bufferish.js\");\nvar Buffer = Bufferish.global;\nvar IS_BUFFER_SHIM = Bufferish.hasBuffer && (\"TYPED_ARRAY_SUPPORT\" in Buffer);\nvar NO_TYPED_ARRAY = IS_BUFFER_SHIM && !Buffer.TYPED_ARRAY_SUPPORT;\nvar Buffer_prototype = Bufferish.hasBuffer && Buffer.prototype || {};\n\nexports.getWriteToken = getWriteToken;\n\nfunction getWriteToken(options) {\n if (options && options.uint8array) {\n return init_uint8array();\n } else if (NO_TYPED_ARRAY || (Bufferish.hasBuffer && options && options.safe)) {\n return init_safe();\n } else {\n return init_token();\n }\n}\n\nfunction init_uint8array() {\n var token = init_token();\n\n // float 32 -- 0xca\n // float 64 -- 0xcb\n token[0xca] = writeN(0xca, 4, writeFloatBE);\n token[0xcb] = writeN(0xcb, 8, writeDoubleBE);\n\n return token;\n}\n\n// Node.js and browsers with TypedArray\n\nfunction init_token() {\n // (immediate values)\n // positive fixint -- 0x00 - 0x7f\n // nil -- 0xc0\n // false -- 0xc2\n // true -- 0xc3\n // negative fixint -- 0xe0 - 0xff\n var token = uint8.slice();\n\n // bin 8 -- 0xc4\n // bin 16 -- 0xc5\n // bin 32 -- 0xc6\n token[0xc4] = write1(0xc4);\n token[0xc5] = write2(0xc5);\n token[0xc6] = write4(0xc6);\n\n // ext 8 -- 0xc7\n // ext 16 -- 0xc8\n // ext 32 -- 0xc9\n token[0xc7] = write1(0xc7);\n token[0xc8] = write2(0xc8);\n token[0xc9] = write4(0xc9);\n\n // float 32 -- 0xca\n // float 64 -- 0xcb\n token[0xca] = writeN(0xca, 4, (Buffer_prototype.writeFloatBE || writeFloatBE), true);\n token[0xcb] = writeN(0xcb, 8, (Buffer_prototype.writeDoubleBE || writeDoubleBE), true);\n\n // uint 8 -- 0xcc\n // uint 16 -- 0xcd\n // uint 32 -- 0xce\n // uint 64 -- 0xcf\n token[0xcc] = write1(0xcc);\n token[0xcd] = write2(0xcd);\n token[0xce] = write4(0xce);\n token[0xcf] = writeN(0xcf, 8, writeUInt64BE);\n\n // int 8 -- 0xd0\n // int 16 -- 0xd1\n // int 32 -- 0xd2\n // int 64 -- 0xd3\n token[0xd0] = write1(0xd0);\n token[0xd1] = write2(0xd1);\n token[0xd2] = write4(0xd2);\n token[0xd3] = writeN(0xd3, 8, writeInt64BE);\n\n // str 8 -- 0xd9\n // str 16 -- 0xda\n // str 32 -- 0xdb\n token[0xd9] = write1(0xd9);\n token[0xda] = write2(0xda);\n token[0xdb] = write4(0xdb);\n\n // array 16 -- 0xdc\n // array 32 -- 0xdd\n token[0xdc] = write2(0xdc);\n token[0xdd] = write4(0xdd);\n\n // map 16 -- 0xde\n // map 32 -- 0xdf\n token[0xde] = write2(0xde);\n token[0xdf] = write4(0xdf);\n\n return token;\n}\n\n// safe mode: for old browsers and who needs asserts\n\nfunction init_safe() {\n // (immediate values)\n // positive fixint -- 0x00 - 0x7f\n // nil -- 0xc0\n // false -- 0xc2\n // true -- 0xc3\n // negative fixint -- 0xe0 - 0xff\n var token = uint8.slice();\n\n // bin 8 -- 0xc4\n // bin 16 -- 0xc5\n // bin 32 -- 0xc6\n token[0xc4] = writeN(0xc4, 1, Buffer.prototype.writeUInt8);\n token[0xc5] = writeN(0xc5, 2, Buffer.prototype.writeUInt16BE);\n token[0xc6] = writeN(0xc6, 4, Buffer.prototype.writeUInt32BE);\n\n // ext 8 -- 0xc7\n // ext 16 -- 0xc8\n // ext 32 -- 0xc9\n token[0xc7] = writeN(0xc7, 1, Buffer.prototype.writeUInt8);\n token[0xc8] = writeN(0xc8, 2, Buffer.prototype.writeUInt16BE);\n token[0xc9] = writeN(0xc9, 4, Buffer.prototype.writeUInt32BE);\n\n // float 32 -- 0xca\n // float 64 -- 0xcb\n token[0xca] = writeN(0xca, 4, Buffer.prototype.writeFloatBE);\n token[0xcb] = writeN(0xcb, 8, Buffer.prototype.writeDoubleBE);\n\n // uint 8 -- 0xcc\n // uint 16 -- 0xcd\n // uint 32 -- 0xce\n // uint 64 -- 0xcf\n token[0xcc] = writeN(0xcc, 1, Buffer.prototype.writeUInt8);\n token[0xcd] = writeN(0xcd, 2, Buffer.prototype.writeUInt16BE);\n token[0xce] = writeN(0xce, 4, Buffer.prototype.writeUInt32BE);\n token[0xcf] = writeN(0xcf, 8, writeUInt64BE);\n\n // int 8 -- 0xd0\n // int 16 -- 0xd1\n // int 32 -- 0xd2\n // int 64 -- 0xd3\n token[0xd0] = writeN(0xd0, 1, Buffer.prototype.writeInt8);\n token[0xd1] = writeN(0xd1, 2, Buffer.prototype.writeInt16BE);\n token[0xd2] = writeN(0xd2, 4, Buffer.prototype.writeInt32BE);\n token[0xd3] = writeN(0xd3, 8, writeInt64BE);\n\n // str 8 -- 0xd9\n // str 16 -- 0xda\n // str 32 -- 0xdb\n token[0xd9] = writeN(0xd9, 1, Buffer.prototype.writeUInt8);\n token[0xda] = writeN(0xda, 2, Buffer.prototype.writeUInt16BE);\n token[0xdb] = writeN(0xdb, 4, Buffer.prototype.writeUInt32BE);\n\n // array 16 -- 0xdc\n // array 32 -- 0xdd\n token[0xdc] = writeN(0xdc, 2, Buffer.prototype.writeUInt16BE);\n token[0xdd] = writeN(0xdd, 4, Buffer.prototype.writeUInt32BE);\n\n // map 16 -- 0xde\n // map 32 -- 0xdf\n token[0xde] = writeN(0xde, 2, Buffer.prototype.writeUInt16BE);\n token[0xdf] = writeN(0xdf, 4, Buffer.prototype.writeUInt32BE);\n\n return token;\n}\n\nfunction write1(type) {\n return function(encoder, value) {\n var offset = encoder.reserve(2);\n var buffer = encoder.buffer;\n buffer[offset++] = type;\n buffer[offset] = value;\n };\n}\n\nfunction write2(type) {\n return function(encoder, value) {\n var offset = encoder.reserve(3);\n var buffer = encoder.buffer;\n buffer[offset++] = type;\n buffer[offset++] = value >>> 8;\n buffer[offset] = value;\n };\n}\n\nfunction write4(type) {\n return function(encoder, value) {\n var offset = encoder.reserve(5);\n var buffer = encoder.buffer;\n buffer[offset++] = type;\n buffer[offset++] = value >>> 24;\n buffer[offset++] = value >>> 16;\n buffer[offset++] = value >>> 8;\n buffer[offset] = value;\n };\n}\n\nfunction writeN(type, len, method, noAssert) {\n return function(encoder, value) {\n var offset = encoder.reserve(len + 1);\n encoder.buffer[offset++] = type;\n method.call(encoder.buffer, value, offset, noAssert);\n };\n}\n\nfunction writeUInt64BE(value, offset) {\n new Uint64BE(this, offset, value);\n}\n\nfunction writeInt64BE(value, offset) {\n new Int64BE(this, offset, value);\n}\n\nfunction writeFloatBE(value, offset) {\n ieee754.write(this, value, offset, false, 23, 4);\n}\n\nfunction writeDoubleBE(value, offset) {\n ieee754.write(this, value, offset, false, 52, 8);\n}\n\n\n//# sourceURL=webpack:///./node_modules/msgpack-lite/lib/write-token.js?");
/***/ }),
/***/ "./node_modules/msgpack-lite/lib/write-type.js":
/*!*****************************************************!*\
!*** ./node_modules/msgpack-lite/lib/write-type.js ***!
\*****************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// write-type.js\n\nvar IS_ARRAY = __webpack_require__(/*! isarray */ \"./node_modules/isarray/index.js\");\nvar Int64Buffer = __webpack_require__(/*! int64-buffer */ \"./node_modules/int64-buffer/int64-buffer.js\");\nvar Uint64BE = Int64Buffer.Uint64BE;\nvar Int64BE = Int64Buffer.Int64BE;\n\nvar Bufferish = __webpack_require__(/*! ./bufferish */ \"./node_modules/msgpack-lite/lib/bufferish.js\");\nvar BufferProto = __webpack_require__(/*! ./bufferish-proto */ \"./node_modules/msgpack-lite/lib/bufferish-proto.js\");\nvar WriteToken = __webpack_require__(/*! ./write-token */ \"./node_modules/msgpack-lite/lib/write-token.js\");\nvar uint8 = __webpack_require__(/*! ./write-uint8 */ \"./node_modules/msgpack-lite/lib/write-uint8.js\").uint8;\nvar ExtBuffer = __webpack_require__(/*! ./ext-buffer */ \"./node_modules/msgpack-lite/lib/ext-buffer.js\").ExtBuffer;\n\nvar HAS_UINT8ARRAY = (\"undefined\" !== typeof Uint8Array);\nvar HAS_MAP = (\"undefined\" !== typeof Map);\n\nvar extmap = [];\nextmap[1] = 0xd4;\nextmap[2] = 0xd5;\nextmap[4] = 0xd6;\nextmap[8] = 0xd7;\nextmap[16] = 0xd8;\n\nexports.getWriteType = getWriteType;\n\nfunction getWriteType(options) {\n var token = WriteToken.getWriteToken(options);\n var useraw = options && options.useraw;\n var binarraybuffer = HAS_UINT8ARRAY && options && options.binarraybuffer;\n var isBuffer = binarraybuffer ? Bufferish.isArrayBuffer : Bufferish.isBuffer;\n var bin = binarraybuffer ? bin_arraybuffer : bin_buffer;\n var usemap = HAS_MAP && options && options.usemap;\n var map = usemap ? map_to_map : obj_to_map;\n\n var writeType = {\n \"boolean\": bool,\n \"function\": nil,\n \"number\": number,\n \"object\": (useraw ? object_raw : object),\n \"string\": _string(useraw ? raw_head_size : str_head_size),\n \"symbol\": nil,\n \"undefined\": nil\n };\n\n return writeType;\n\n // false -- 0xc2\n // true -- 0xc3\n function bool(encoder, value) {\n var type = value ? 0xc3 : 0xc2;\n token[type](encoder, value);\n }\n\n function number(encoder, value) {\n var ivalue = value | 0;\n var type;\n if (value !== ivalue) {\n // float 64 -- 0xcb\n type = 0xcb;\n token[type](encoder, value);\n return;\n } else if (-0x20 <= ivalue && ivalue <= 0x7F) {\n // positive fixint -- 0x00 - 0x7f\n // negative fixint -- 0xe0 - 0xff\n type = ivalue & 0xFF;\n } else if (0 <= ivalue) {\n // uint 8 -- 0xcc\n // uint 16 -- 0xcd\n // uint 32 -- 0xce\n type = (ivalue <= 0xFF) ? 0xcc : (ivalue <= 0xFFFF) ? 0xcd : 0xce;\n } else {\n // int 8 -- 0xd0\n // int 16 -- 0xd1\n // int 32 -- 0xd2\n type = (-0x80 <= ivalue) ? 0xd0 : (-0x8000 <= ivalue) ? 0xd1 : 0xd2;\n }\n token[type](encoder, ivalue);\n }\n\n // uint 64 -- 0xcf\n function uint64(encoder, value) {\n var type = 0xcf;\n token[type](encoder, value.toArray());\n }\n\n // int 64 -- 0xd3\n function int64(encoder, value) {\n var type = 0xd3;\n token[type](encoder, value.toArray());\n }\n\n // str 8 -- 0xd9\n // str 16 -- 0xda\n // str 32 -- 0xdb\n // fixstr -- 0xa0 - 0xbf\n function str_head_size(length) {\n return (length < 32) ? 1 : (length <= 0xFF) ? 2 : (length <= 0xFFFF) ? 3 : 5;\n }\n\n // raw 16 -- 0xda\n // raw 32 -- 0xdb\n // fixraw -- 0xa0 - 0xbf\n function raw_head_size(length) {\n return (length < 32) ? 1 : (length <= 0xFFFF) ? 3 : 5;\n }\n\n function _string(head_size) {\n return string;\n\n function string(encoder, value) {\n // prepare buffer\n var length = value.length;\n var maxsize = 5 + length * 3;\n encoder.offset = encoder.reserve(maxsize);\n var buffer = encoder.buffer;\n\n // expected header size\n var expected = head_size(length);\n\n // expected start point\n var start = encoder.offset + expected;\n\n // write string\n length = BufferProto.write.call(buffer, value, start);\n\n // actual header size\n var actual = head_size(length);\n\n // move content when needed\n if (expected !== actual) {\n var targetStart = start + actual - expected;\n var end = start + length;\n BufferProto.copy.call(buffer, buffer, targetStart, start, end);\n }\n\n // write header\n var type = (actual === 1) ? (0xa0 + length) : (actual <= 3) ? (0xd7 + actual) : 0xdb;\n token[type](encoder, length);\n\n // move cursor\n encoder.offset += length;\n }\n }\n\n function object(encoder, value) {\n // null\n if (value === null) return nil(encoder, value);\n\n // Buffer\n if (isBuffer(value)) return bin(encoder, value);\n\n // Array\n if (IS_ARRAY(value)) return array(encoder, value);\n\n // int64-buffer objects\n if (Uint64BE.isUint64BE(value)) return uint64(encoder, value);\n if (Int64BE.isInt64BE(value)) return int64(encoder, value);\n\n // ext formats\n var packer = encoder.codec.getExtPacker(value);\n if (packer) value = packer(value);\n if (value instanceof ExtBuffer) return ext(encoder, value);\n\n // plain old Objects or Map\n map(encoder, value);\n }\n\n function object_raw(encoder, value) {\n // Buffer\n if (isBuffer(value)) return raw(encoder, value);\n\n // others\n object(encoder, value);\n }\n\n // nil -- 0xc0\n function nil(encoder, value) {\n var type = 0xc0;\n token[type](encoder, value);\n }\n\n // fixarray -- 0x90 - 0x9f\n // array 16 -- 0xdc\n // array 32 -- 0xdd\n function array(encoder, value) {\n var length = value.length;\n var type = (length < 16) ? (0x90 + length) : (length <= 0xFFFF) ? 0xdc : 0xdd;\n token[type](encoder, length);\n\n var encode = encoder.codec.encode;\n for (var i = 0; i < length; i++) {\n encode(encoder, value[i]);\n }\n }\n\n // bin 8 -- 0xc4\n // bin 16 -- 0xc5\n // bin 32 -- 0xc6\n function bin_buffer(encoder, value) {\n var length = value.length;\n var type = (length < 0xFF) ? 0xc4 : (length <= 0xFFFF) ? 0xc5 : 0xc6;\n token[type](encoder, length);\n encoder.send(value);\n }\n\n function bin_arraybuffer(encoder, value) {\n bin_buffer(encoder, new Uint8Array(value));\n }\n\n // fixext 1 -- 0xd4\n // fixext 2 -- 0xd5\n // fixext 4 -- 0xd6\n // fixext 8 -- 0xd7\n // fixext 16 -- 0xd8\n // ext 8 -- 0xc7\n // ext 16 -- 0xc8\n // ext 32 -- 0xc9\n function ext(encoder, value) {\n var buffer = value.buffer;\n var length = buffer.length;\n var type = extmap[length] || ((length < 0xFF) ? 0xc7 : (length <= 0xFFFF) ? 0xc8 : 0xc9);\n token[type](encoder, length);\n uint8[value.type](encoder);\n encoder.send(buffer);\n }\n\n // fixmap -- 0x80 - 0x8f\n // map 16 -- 0xde\n // map 32 -- 0xdf\n function obj_to_map(encoder, value) {\n var keys = Object.keys(value);\n var length = keys.length;\n var type = (length < 16) ? (0x80 + length) : (length <= 0xFFFF) ? 0xde : 0xdf;\n token[type](encoder, length);\n\n var encode = encoder.codec.encode;\n keys.forEach(function(key) {\n encode(encoder, key);\n encode(encoder, value[key]);\n });\n }\n\n // fixmap -- 0x80 - 0x8f\n // map 16 -- 0xde\n // map 32 -- 0xdf\n function map_to_map(encoder, value) {\n if (!(value instanceof Map)) return obj_to_map(encoder, value);\n\n var length = value.size;\n var type = (length < 16) ? (0x80 + length) : (length <= 0xFFFF) ? 0xde : 0xdf;\n token[type](encoder, length);\n\n var encode = encoder.codec.encode;\n value.forEach(function(val, key, m) {\n encode(encoder, key);\n encode(encoder, val);\n });\n }\n\n // raw 16 -- 0xda\n // raw 32 -- 0xdb\n // fixraw -- 0xa0 - 0xbf\n function raw(encoder, value) {\n var length = value.length;\n var type = (length < 32) ? (0xa0 + length) : (length <= 0xFFFF) ? 0xda : 0xdb;\n token[type](encoder, length);\n encoder.send(value);\n }\n}\n\n\n//# sourceURL=webpack:///./node_modules/msgpack-lite/lib/write-type.js?");
/***/ }),
/***/ "./node_modules/msgpack-lite/lib/write-uint8.js":
/*!******************************************************!*\
!*** ./node_modules/msgpack-lite/lib/write-uint8.js ***!
\******************************************************/
/*! no static exports found */
/***/ (function(module, exports) {
eval("// write-unit8.js\n\nvar constant = exports.uint8 = new Array(256);\n\nfor (var i = 0x00; i <= 0xFF; i++) {\n constant[i] = write0(i);\n}\n\nfunction write0(type) {\n return function(encoder) {\n var offset = encoder.reserve(1);\n encoder.buffer[offset] = type;\n };\n}\n\n\n//# sourceURL=webpack:///./node_modules/msgpack-lite/lib/write-uint8.js?");
/***/ }),
/***/ "./node_modules/webpack/buildin/global.js":
/*!***********************************!*\
!*** (webpack)/buildin/global.js ***!
\***********************************/
/*! no static exports found */
/***/ (function(module, exports) {
eval("var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || Function(\"return this\")() || (1, eval)(\"this\");\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n\n\n//# sourceURL=webpack:///(webpack)/buildin/global.js?");
/***/ }),
/***/ "./scene.tsx":
/*!*******************!*\
!*** ./scene.tsx ***!
\*******************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return Arcade; });\n/* harmony import */ var metaverse_api__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! metaverse-api */ \"./node_modules/metaverse-api/lib/index.js\");\n/* harmony import */ var metaverse_api__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(metaverse_api__WEBPACK_IMPORTED_MODULE_0__);\n\nclass Arcade extends metaverse_api__WEBPACK_IMPORTED_MODULE_0__[\"ScriptableScene\"] {\n async render() {\n return (Object(metaverse_api__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(\"scene\", { position: { x: 5, y: 0, z: 5 } },\n Object(metaverse_api__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(\"system\", { src: \"../machine/scene.js\", position: { x: -1, y: 0, z: 0 } }),\n Object(metaverse_api__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(\"system\", { src: \"../machine/scene.js\" }),\n Object(metaverse_api__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(\"system\", { src: \"../machine/scene.js\", position: { x: 1, y: 0, z: 0 } })));\n }\n}\n\n\n//# sourceURL=webpack:///./scene.tsx?");
/***/ })
/******/ })));