@gjsify/worker_threads 0.3.21 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ var e=Object.defineProperty,__name=(t,n)=>e(t,`name`,{value:n,configurable:!0});export{__name};
package/lib/esm/index.js CHANGED
@@ -1 +1 @@
1
- import{MessagePort as e}from"./message-port.js";import{Worker as t}from"./worker.js";const n=globalThis.__gjsify_worker_context,r=!n,i=n?.parentPort??null,a=n?.workerData??null,o=n?.threadId??0,s={},c=Symbol(`worker_threads.SHARE_ENV`);var MessageChannel=class{port1;port2;constructor(){this.port1=new e,this.port2=new e,this.port1._otherPort=this.port2,this.port2._otherPort=this.port1}};const l=new Map;var BroadcastChannel=class{name;_closed=!1;onmessage=null;onmessageerror=null;constructor(e){this.name=String(e),l.has(this.name)||l.set(this.name,new Set),l.get(this.name).add(this)}postMessage(e){if(this._closed)throw Error(`BroadcastChannel is closed`);let t=l.get(this.name);if(t){for(let n of t)if(n!==this&&!n._closed){let t=structuredClone(e);Promise.resolve().then(()=>{!n._closed&&n.onmessage&&n.onmessage({data:t})})}}}close(){if(this._closed)return;this._closed=!0;let e=l.get(this.name);e&&(e.delete(this),e.size===0&&l.delete(this.name)),this.onmessage=null,this.onmessageerror=null}addEventListener(e,t){e===`message`?this.onmessage=t:e===`messageerror`&&(this.onmessageerror=t)}removeEventListener(e,t){e===`message`?this.onmessage=null:e===`messageerror`&&(this.onmessageerror=null)}dispatchEvent(e){return!0}};const u=new Map;function setEnvironmentData(e,t){t===void 0?u.delete(e):u.set(e,t)}function getEnvironmentData(e){return u.get(e)}function receiveMessageOnPort(e){if(e._hasQueuedMessages)return{message:e._dequeueMessage()}}function markAsUntransferable(e){}function markAsUncloneable(e){}function moveMessagePortToContext(e,t){return e}var d={isMainThread:r,parentPort:i,workerData:a,threadId:o,resourceLimits:s,SHARE_ENV:c,Worker:t,MessageChannel,MessagePort:e,BroadcastChannel,setEnvironmentData,getEnvironmentData,receiveMessageOnPort,markAsUntransferable,markAsUncloneable,moveMessagePortToContext};export{BroadcastChannel,MessageChannel,e as MessagePort,c as SHARE_ENV,t as Worker,d as default,getEnvironmentData,r as isMainThread,markAsUncloneable,markAsUntransferable,moveMessagePortToContext,i as parentPort,receiveMessageOnPort,s as resourceLimits,setEnvironmentData,o as threadId,a as workerData};
1
+ import"./_virtual/_rolldown/runtime.js";import{MessagePort as e}from"./message-port.js";import{Worker as t}from"./worker.js";const n=globalThis.__gjsify_worker_context,r=!n,i=n?.parentPort??null,a=n?.workerData??null,o=n?.threadId??0,s={},c=Symbol(`worker_threads.SHARE_ENV`);var MessageChannel=class{port1;port2;constructor(){this.port1=new e,this.port2=new e,this.port1._otherPort=this.port2,this.port2._otherPort=this.port1}};const l=new Map;var BroadcastChannel=class{name;_closed=!1;onmessage=null;onmessageerror=null;constructor(e){this.name=String(e),l.has(this.name)||l.set(this.name,new Set),l.get(this.name).add(this)}postMessage(e){if(this._closed)throw Error(`BroadcastChannel is closed`);let t=l.get(this.name);if(t){for(let n of t)if(n!==this&&!n._closed){let t=structuredClone(e);Promise.resolve().then(()=>{!n._closed&&n.onmessage&&n.onmessage({data:t})})}}}close(){if(this._closed)return;this._closed=!0;let e=l.get(this.name);e&&(e.delete(this),e.size===0&&l.delete(this.name)),this.onmessage=null,this.onmessageerror=null}addEventListener(e,t){e===`message`?this.onmessage=t:e===`messageerror`&&(this.onmessageerror=t)}removeEventListener(e,t){e===`message`?this.onmessage=null:e===`messageerror`&&(this.onmessageerror=null)}dispatchEvent(e){return!0}};const u=new Map;function setEnvironmentData(e,t){t===void 0?u.delete(e):u.set(e,t)}function getEnvironmentData(e){return u.get(e)}function receiveMessageOnPort(e){if(e._hasQueuedMessages)return{message:e._dequeueMessage()}}function markAsUntransferable(e){}function markAsUncloneable(e){}function moveMessagePortToContext(e,t){return e}var d={isMainThread:r,parentPort:i,workerData:a,threadId:o,resourceLimits:s,SHARE_ENV:c,Worker:t,MessageChannel,MessagePort:e,BroadcastChannel,setEnvironmentData,getEnvironmentData,receiveMessageOnPort,markAsUntransferable,markAsUncloneable,moveMessagePortToContext};export{BroadcastChannel,MessageChannel,e as MessagePort,c as SHARE_ENV,t as Worker,d as default,getEnvironmentData,r as isMainThread,markAsUncloneable,markAsUntransferable,moveMessagePortToContext,i as parentPort,receiveMessageOnPort,s as resourceLimits,setEnvironmentData,o as threadId,a as workerData};
@@ -1 +1 @@
1
- import{EventEmitter as e}from"node:events";var MessagePort=class extends e{_started=!1;_closed=!1;_messageQueue=[];_otherPort=null;_aeWrappers=new Map;start(){this._started||this._closed||(this._started=!0,this._drainQueue())}close(){if(this._closed)return;this._closed=!0;let e=this._otherPort;this._otherPort=null,e&&(e._otherPort=null),this.emit(`close`),this.removeAllListeners()}postMessage(e,t){if(this._closed)return;let n=this._otherPort;if(!n)return;let r;try{r=structuredClone(e)}catch(e){this.emit(`messageerror`,e instanceof Error?e:Error(`Could not clone message`));return}n._receiveMessage(r)}ref(){return this}unref(){return this}_receiveMessage(e){if(!this._closed){if(!this._started){this._messageQueue.push(e);return}this._dispatchMessage(e)}}get _hasQueuedMessages(){return this._messageQueue.length>0}_dequeueMessage(){return this._messageQueue.shift()}_drainQueue(){for(;this._messageQueue.length>0;)this._dispatchMessage(this._messageQueue.shift())}_dispatchMessage(e){Promise.resolve().then(()=>{this._closed||this.emit(`message`,e)})}addEventListener(e,t){if(t)if(e===`message`){let wrapper=e=>{t({data:e,type:`message`})};this._aeWrappers.set(t,wrapper),super.on(`message`,wrapper)}else super.on(e,t)}removeEventListener(e,t){if(t)if(e===`message`){let e=this._aeWrappers.get(t);e&&(super.off(`message`,e),this._aeWrappers.delete(t))}else super.off(e,t)}on(e,t){return super.on(e,t),e===`message`&&!this._started&&this.start(),this}addListener(e,t){return this.on(e,t)}once(e,t){return super.once(e,t),e===`message`&&!this._started&&this.start(),this}};export{MessagePort};
1
+ import"./_virtual/_rolldown/runtime.js";import{EventEmitter as e}from"node:events";function isTransferredPortPlaceholder(e){return typeof e==`object`&&!!e&&e.__gjsifyTransferredPort===!0}var t=class MessagePort extends e{_started=!1;_closed=!1;_detached=!1;_messageQueue=[];_otherPort=null;_aeWrappers=new Map;start(){this._started||this._closed||(this._started=!0,this._drainQueue())}close(){if(this._closed)return;this._closed=!0;let e=this._otherPort;this._otherPort=null,e&&(e._otherPort=null),this.emit(`close`),this.removeAllListeners()}postMessage(e,t){if(this._closed)return;let n=this._otherPort;if(!n)return;let r=[],i=[];if(t&&t.length>0){let e=new Set;for(let n of t){if(e.has(n))throw createDataCloneError(`Transfer list contains duplicate entries`);if(e.add(n),n instanceof MessagePort){if(n===this)throw createDataCloneError(`Cannot transfer source port`);if(n._closed||n._detached)throw createDataCloneError(`MessagePort in transfer list is already detached`);i.push(n);continue}let a=Object.prototype.toString.call(n).slice(8,-1);if(a===`ArrayBuffer`){let e=n;if(e.detached===!0)throw createDataCloneError(`ArrayBuffer in transfer list is detached`);r.push(e);continue}throw createDataCloneError(a===`SharedArrayBuffer`?`SharedArrayBuffer cannot appear in transfer list (it is shared, not transferred)`:`Value at index ${t.indexOf(n)} of transfer list is not transferable`)}}let a=i.slice(),o=e;i.length>0&&(o=substitutePortsWithPlaceholders(e,i));let s;try{s=structuredClone(o,{transfer:r.length>0?r:void 0})}catch(e){this.emit(`messageerror`,e instanceof Error?e:Error(`Could not clone message`));return}let c=s;if(a.length>0){let e=a.map(e=>{let t=e._otherPort,n=e._messageQueue.slice();e._messageQueue.length=0,e._otherPort=null,e._detached=!0,e._closed=!0;let r=new MessagePort;r._otherPort=t,t&&(t._otherPort=r);for(let e of n)r._messageQueue.push(e);return r});c=replacePlaceholdersWithPorts(s,e)}n._receiveMessage(c)}ref(){return this}unref(){return this}_receiveMessage(e){if(!this._closed){if(!this._started){this._messageQueue.push(e);return}this._dispatchMessage(e)}}get _hasQueuedMessages(){return this._messageQueue.length>0}_dequeueMessage(){return this._messageQueue.shift()}get _wasTransferred(){return this._detached}_drainQueue(){for(;this._messageQueue.length>0;)this._dispatchMessage(this._messageQueue.shift())}_dispatchMessage(e){Promise.resolve().then(()=>{this._closed||this.emit(`message`,e)})}addEventListener(e,t){if(t)if(e===`message`){let wrapper=e=>{t({data:e,type:`message`})};this._aeWrappers.set(t,wrapper),super.on(`message`,wrapper)}else super.on(e,t)}removeEventListener(e,t){if(t)if(e===`message`){let e=this._aeWrappers.get(t);e&&(super.off(`message`,e),this._aeWrappers.delete(t))}else super.off(e,t)}on(e,t){return super.on(e,t),e===`message`&&!this._started&&this.start(),this}addListener(e,t){return this.on(e,t)}once(e,t){return super.once(e,t),e===`message`&&!this._started&&this.start(),this}};function createDataCloneError(e){let t=globalThis.DOMException;if(typeof t==`function`){let n=new t(e,`DataCloneError`);if(n.code===void 0)try{Object.defineProperty(n,`code`,{value:25,configurable:!0})}catch{}return n}let n=Error(e);return n.name=`DataCloneError`,n.code=25,n}function substitutePortsWithPlaceholders(e,n){let r=new Map;for(let e=0;e<n.length;e++)r.set(n[e],e);function walk(e,n){if(typeof e!=`object`||!e)return e;if(e instanceof t){let t=r.get(e);return t===void 0?e:{__gjsifyTransferredPort:!0,index:t}}if(n.has(e))return n.get(e);if(Array.isArray(e)){let t=[];n.set(e,t);for(let r=0;r<e.length;r++)r in e&&(t[r]=walk(e[r],n));return t}if(Object.prototype.toString.call(e).slice(8,-1)===`Object`){let t={};n.set(e,t);for(let r of Object.keys(e))t[r]=walk(e[r],n);return t}return e}return walk(e,new Map)}function replacePlaceholdersWithPorts(e,t){function walk(e,n){if(typeof e!=`object`||!e)return e;if(isTransferredPortPlaceholder(e))return t[e.index];if(n.has(e))return n.get(e);if(Array.isArray(e)){n.set(e,e);for(let t=0;t<e.length;t++)t in e&&(e[t]=walk(e[t],n));return e}if(Object.prototype.toString.call(e).slice(8,-1)===`Object`){n.set(e,e);for(let t of Object.keys(e))e[t]=walk(e[t],n);return e}return e}return walk(e,new Map)}export{t as MessagePort};
package/lib/esm/worker.js CHANGED
@@ -1,4 +1,4 @@
1
- import{EventEmitter as e}from"node:events";import t from"@girs/gio-2.0";import n from"@girs/glib-2.0";let r=1;const i=new TextEncoder,a=i.encode(`import GLib from 'gi://GLib';
1
+ import"./_virtual/_rolldown/runtime.js";import{EventEmitter as e}from"node:events";import t from"@girs/gio-2.0";import n from"@girs/glib-2.0";let r=1;const i=new TextEncoder,a=i.encode(`import GLib from 'gi://GLib';
2
2
  import Gio from 'gi://Gio';
3
3
 
4
4
  const loop = new GLib.MainLoop(null, false);
@@ -2,6 +2,7 @@ import { EventEmitter } from 'node:events';
2
2
  export declare class MessagePort extends EventEmitter {
3
3
  private _started;
4
4
  private _closed;
5
+ private _detached;
5
6
  private _messageQueue;
6
7
  /** @internal Linked port for in-process communication */
7
8
  _otherPort: MessagePort | null;
@@ -9,12 +10,14 @@ export declare class MessagePort extends EventEmitter {
9
10
  private _aeWrappers;
10
11
  start(): void;
11
12
  close(): void;
12
- postMessage(value: unknown, _transferList?: unknown[]): void;
13
+ postMessage(value: unknown, transferList?: unknown[]): void;
13
14
  ref(): this;
14
15
  unref(): this;
15
16
  _receiveMessage(message: unknown): void;
16
17
  get _hasQueuedMessages(): boolean;
17
18
  _dequeueMessage(): unknown | undefined;
19
+ /** @internal Has this port been transferred elsewhere? */
20
+ get _wasTransferred(): boolean;
18
21
  private _drainQueue;
19
22
  private _dispatchMessage;
20
23
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gjsify/worker_threads",
3
- "version": "0.3.21",
3
+ "version": "0.4.0",
4
4
  "description": "Node.js worker_threads module for Gjs",
5
5
  "type": "module",
6
6
  "module": "lib/esm/index.js",
@@ -30,15 +30,15 @@
30
30
  "worker_threads"
31
31
  ],
32
32
  "devDependencies": {
33
- "@gjsify/cli": "^0.3.21",
34
- "@gjsify/node-globals": "^0.3.21",
35
- "@gjsify/unit": "^0.3.21",
33
+ "@gjsify/cli": "^0.4.0",
34
+ "@gjsify/node-globals": "^0.4.0",
35
+ "@gjsify/unit": "^0.4.0",
36
36
  "@types/node": "^25.6.2",
37
37
  "typescript": "^6.0.3"
38
38
  },
39
39
  "dependencies": {
40
- "@girs/gio-2.0": "2.88.0-4.0.0-rc.14",
41
- "@girs/glib-2.0": "2.88.0-4.0.0-rc.14",
42
- "@gjsify/events": "^0.3.21"
40
+ "@girs/gio-2.0": "2.88.0-4.0.0-rc.15",
41
+ "@girs/glib-2.0": "2.88.0-4.0.0-rc.15",
42
+ "@gjsify/events": "^0.4.0"
43
43
  }
44
44
  }
package/src/index.spec.ts CHANGED
@@ -23,6 +23,20 @@ import {
23
23
  moveMessagePortToContext,
24
24
  } from 'node:worker_threads';
25
25
 
26
+ // W3C BroadcastChannel surface (onmessage / onmessageerror) — node:worker_threads
27
+ // inherits these but the @types/node typings are tighter than the actual runtime
28
+ // shape. Helper aliases keep the spec test file `as any`-free.
29
+ type BroadcastChannelW3C = BroadcastChannel & {
30
+ onmessage: ((event: { data: unknown }) => void) | null;
31
+ onmessageerror: ((event: { data: unknown }) => void) | null;
32
+ addEventListener(type: string, listener: ((event: unknown) => void) | null): void;
33
+ removeEventListener(type: string, listener: ((event: unknown) => void) | null): void;
34
+ };
35
+ type MessagePortW3C = MessagePort & {
36
+ addEventListener(type: string, listener: ((event: unknown) => void) | null): void;
37
+ removeEventListener(type: string, listener: ((event: unknown) => void) | null): void;
38
+ };
39
+
26
40
  export default async () => {
27
41
  // --- Module exports ---
28
42
 
@@ -242,7 +256,7 @@ export default async () => {
242
256
  channel.port2.on('message', resolve);
243
257
  channel.port1.postMessage(obj);
244
258
  });
245
- expect((received as any).a.b.c.d.e).toBe(42);
259
+ expect((received as { a: { b: { c: { d: { e: number } } } } }).a.b.c.d.e).toBe(42);
246
260
  channel.port1.close();
247
261
  channel.port2.close();
248
262
  });
@@ -294,8 +308,9 @@ export default async () => {
294
308
  ch2.port1.postMessage('from-ch2');
295
309
  await done;
296
310
  expect(results.length).toBe(2);
297
- const ch1Msg = results.find((r: any) => r.ch === 1) as any;
298
- const ch2Msg = results.find((r: any) => r.ch === 2) as any;
311
+ type ChMsg = { ch: number; msg: string };
312
+ const ch1Msg = results.find((r): r is ChMsg => (r as ChMsg).ch === 1)!;
313
+ const ch2Msg = results.find((r): r is ChMsg => (r as ChMsg).ch === 2)!;
299
314
  expect(ch1Msg.msg).toBe('from-ch1');
300
315
  expect(ch2Msg.msg).toBe('from-ch2');
301
316
  ch1.port1.close();
@@ -432,8 +447,8 @@ export default async () => {
432
447
  const channel = new MessageChannel();
433
448
  // Use addEventListener which does NOT auto-start
434
449
  let received: unknown = null;
435
- (channel.port2 as any).addEventListener('message', (event: any) => {
436
- received = event.data;
450
+ channel.port2.addEventListener('message', (event: unknown) => {
451
+ received = (event as { data: unknown }).data;
437
452
  });
438
453
  channel.port1.postMessage('explicit-start');
439
454
  // Not started yet — message should be queued
@@ -572,7 +587,7 @@ export default async () => {
572
587
  channel.port1.postMessage(message);
573
588
  const result = receiveMessageOnPort(channel.port2);
574
589
  expect(result).toBeDefined();
575
- const received = (result as { message: unknown }).message as any;
590
+ const received = (result as { message: { hello: string; count: number } }).message;
576
591
  expect(received.hello).toBe('world');
577
592
  expect(received.count).toBe(42);
578
593
  channel.port1.close();
@@ -656,7 +671,7 @@ export default async () => {
656
671
  const bc2 = new BroadcastChannel('bc-deliver');
657
672
 
658
673
  const received = await new Promise<unknown>((resolve) => {
659
- (bc2 as any).onmessage = (event: any) => resolve(event.data);
674
+ (bc2 as BroadcastChannelW3C).onmessage = (event) => resolve(event.data);
660
675
  bc1.postMessage('broadcast-hello');
661
676
  });
662
677
 
@@ -668,7 +683,7 @@ export default async () => {
668
683
  await it('should not deliver messages to self', async () => {
669
684
  const bc = new BroadcastChannel('bc-self');
670
685
  let received = false;
671
- (bc as any).onmessage = () => { received = true; };
686
+ (bc as BroadcastChannelW3C).onmessage = () => { received = true; };
672
687
  bc.postMessage('self');
673
688
  await new Promise(resolve => setTimeout(resolve, 50));
674
689
  expect(received).toBe(false);
@@ -679,7 +694,7 @@ export default async () => {
679
694
  const bc1 = new BroadcastChannel('bc-name-a');
680
695
  const bc2 = new BroadcastChannel('bc-name-b');
681
696
  let received = false;
682
- (bc2 as any).onmessage = () => { received = true; };
697
+ (bc2 as BroadcastChannelW3C).onmessage = () => { received = true; };
683
698
  bc1.postMessage('wrong-channel');
684
699
  await new Promise(resolve => setTimeout(resolve, 50));
685
700
  expect(received).toBe(false);
@@ -703,7 +718,7 @@ export default async () => {
703
718
  const bc1 = new BroadcastChannel('bc-closed-recv');
704
719
  const bc2 = new BroadcastChannel('bc-closed-recv');
705
720
  let received = false;
706
- (bc2 as any).onmessage = () => { received = true; };
721
+ (bc2 as BroadcastChannelW3C).onmessage = () => { received = true; };
707
722
  bc2.close();
708
723
  bc1.postMessage('after-close');
709
724
  await new Promise(resolve => setTimeout(resolve, 50));
@@ -719,8 +734,8 @@ export default async () => {
719
734
  let count = 0;
720
735
  const done = new Promise<void>((resolve) => {
721
736
  const handler = () => { count++; if (count === 2) resolve(); };
722
- (bc2 as any).onmessage = handler;
723
- (bc3 as any).onmessage = handler;
737
+ (bc2 as BroadcastChannelW3C).onmessage = handler;
738
+ (bc3 as BroadcastChannelW3C).onmessage = handler;
724
739
  });
725
740
 
726
741
  bc1.postMessage('to-all');
@@ -746,7 +761,7 @@ export default async () => {
746
761
  const original = { key: 'value', items: [1, 2, 3] };
747
762
 
748
763
  const received = await new Promise<unknown>((resolve) => {
749
- (bc2 as any).onmessage = (event: any) => resolve(event.data);
764
+ (bc2 as BroadcastChannelW3C).onmessage = (event) => resolve(event.data);
750
765
  bc1.postMessage(original);
751
766
  });
752
767
 
@@ -762,7 +777,7 @@ export default async () => {
762
777
  const bc2 = new BroadcastChannel('bc-numeric');
763
778
 
764
779
  const received = await new Promise<unknown>((resolve) => {
765
- (bc2 as any).onmessage = (event: any) => resolve(event.data);
780
+ (bc2 as BroadcastChannelW3C).onmessage = (event) => resolve(event.data);
766
781
  bc1.postMessage(42);
767
782
  });
768
783
 
@@ -776,7 +791,7 @@ export default async () => {
776
791
  const bc2 = new BroadcastChannel('bc-null');
777
792
 
778
793
  const received = await new Promise<unknown>((resolve) => {
779
- (bc2 as any).onmessage = (event: any) => resolve(event.data);
794
+ (bc2 as BroadcastChannelW3C).onmessage = (event) => resolve(event.data);
780
795
  bc1.postMessage(null);
781
796
  });
782
797
 
@@ -791,7 +806,7 @@ export default async () => {
791
806
  const messages: unknown[] = [];
792
807
 
793
808
  const done = new Promise<void>((resolve) => {
794
- (bc2 as any).onmessage = (event: any) => {
809
+ (bc2 as BroadcastChannelW3C).onmessage = (event) => {
795
810
  messages.push(event.data);
796
811
  if (messages.length === 3) resolve();
797
812
  };
@@ -813,7 +828,7 @@ export default async () => {
813
828
  const bc1 = new BroadcastChannel('bc-no-deliver-after-close');
814
829
  const bc2 = new BroadcastChannel('bc-no-deliver-after-close');
815
830
  let received = false;
816
- (bc2 as any).onmessage = () => { received = true; };
831
+ (bc2 as BroadcastChannelW3C).onmessage = () => { received = true; };
817
832
  bc2.close();
818
833
  bc1.postMessage('should-not-arrive');
819
834
  await new Promise(resolve => setTimeout(resolve, 50));
@@ -856,7 +871,7 @@ export default async () => {
856
871
  await it('should store object values', async () => {
857
872
  const obj = { hello: 'world' };
858
873
  setEnvironmentData('obj-key', obj);
859
- expect((getEnvironmentData('obj-key') as any).hello).toBe('world');
874
+ expect((getEnvironmentData('obj-key') as { hello: string }).hello).toBe('world');
860
875
  });
861
876
 
862
877
  await it('should store boolean values', async () => {
@@ -974,13 +989,13 @@ export default async () => {
974
989
 
975
990
  await it('removeEventListener with null should not throw', async () => {
976
991
  const bc = new BroadcastChannel('bc-ae-null');
977
- (bc as any).removeEventListener('message', null);
992
+ (bc as BroadcastChannelW3C).removeEventListener('message', null);
978
993
  bc.close();
979
994
  });
980
995
 
981
996
  await it('addEventListener with null should not throw', async () => {
982
997
  const bc = new BroadcastChannel('bc-ae-null-add');
983
- (bc as any).addEventListener('message', null);
998
+ (bc as BroadcastChannelW3C).addEventListener('message', null);
984
999
  bc.close();
985
1000
  });
986
1001
  });
@@ -992,7 +1007,7 @@ export default async () => {
992
1007
  const channel = new MessageChannel();
993
1008
 
994
1009
  const received = await new Promise<unknown>((resolve) => {
995
- (channel.port2 as any).addEventListener('message', (event: unknown) => {
1010
+ (channel.port2 as MessagePortW3C).addEventListener('message', (event: unknown) => {
996
1011
  resolve((event as { data: unknown }).data);
997
1012
  });
998
1013
  channel.port2.start(); // must call start() when using addEventListener
@@ -1009,11 +1024,11 @@ export default async () => {
1009
1024
  let count = 0;
1010
1025
  const handler = (_event: unknown) => { count++; };
1011
1026
 
1012
- (channel.port2 as any).addEventListener('message', handler);
1027
+ (channel.port2 as MessagePortW3C).addEventListener('message', handler);
1013
1028
  channel.port2.start();
1014
1029
  channel.port1.postMessage('first');
1015
1030
  await new Promise(resolve => setTimeout(resolve, 50));
1016
- (channel.port2 as any).removeEventListener('message', handler);
1031
+ (channel.port2 as MessagePortW3C).removeEventListener('message', handler);
1017
1032
  channel.port1.postMessage('second');
1018
1033
  await new Promise(resolve => setTimeout(resolve, 50));
1019
1034
 
@@ -1025,7 +1040,7 @@ export default async () => {
1025
1040
  await it('addEventListener should wrap message in event-like object', async () => {
1026
1041
  const channel = new MessageChannel();
1027
1042
  const event = await new Promise<unknown>((resolve) => {
1028
- (channel.port2 as any).addEventListener('message', resolve);
1043
+ (channel.port2 as MessagePortW3C).addEventListener('message', resolve);
1029
1044
  channel.port2.start();
1030
1045
  channel.port1.postMessage('wrapped');
1031
1046
  });
@@ -1038,14 +1053,14 @@ export default async () => {
1038
1053
 
1039
1054
  await it('removeEventListener with null should not throw', async () => {
1040
1055
  const channel = new MessageChannel();
1041
- (channel.port1 as any).removeEventListener('message', null);
1056
+ (channel.port1 as MessagePortW3C).removeEventListener('message', null);
1042
1057
  channel.port1.close();
1043
1058
  channel.port2.close();
1044
1059
  });
1045
1060
 
1046
1061
  await it('addEventListener with null should not throw', async () => {
1047
1062
  const channel = new MessageChannel();
1048
- (channel.port1 as any).addEventListener('message', null);
1063
+ (channel.port1 as MessagePortW3C).addEventListener('message', null);
1049
1064
  channel.port1.close();
1050
1065
  channel.port2.close();
1051
1066
  });
@@ -1053,7 +1068,7 @@ export default async () => {
1053
1068
  await it('should support addEventListener for non-message events', async () => {
1054
1069
  const channel = new MessageChannel();
1055
1070
  const closed = new Promise<void>((resolve) => {
1056
- (channel.port1 as any).addEventListener('close', resolve);
1071
+ (channel.port1 as MessagePortW3C).addEventListener('close', resolve);
1057
1072
  });
1058
1073
  channel.port1.close();
1059
1074
  await closed;
@@ -1381,7 +1396,7 @@ export default async () => {
1381
1396
  channel.port2.on('message', resolve);
1382
1397
  channel.port1.postMessage(obj);
1383
1398
  });
1384
- const r = received as any;
1399
+ const r = received as { date: Date; items: [number, string, { three: number }]; nested: { deep: boolean } };
1385
1400
  expect(r.date instanceof Date).toBe(true);
1386
1401
  expect(r.items.length).toBe(3);
1387
1402
  expect(r.items[0]).toBe(1);
@@ -1438,8 +1453,8 @@ export default async () => {
1438
1453
  expect(r.size).toBe(2);
1439
1454
  const items = Array.from(r);
1440
1455
  // Check that the objects were cloned
1441
- expect(items.some((item: any) => item.a === 1)).toBe(true);
1442
- expect(items.some((item: any) => item.b === 2)).toBe(true);
1456
+ expect(items.some((item) => (item as { a?: number }).a === 1)).toBe(true);
1457
+ expect(items.some((item) => (item as { b?: number }).b === 2)).toBe(true);
1443
1458
  channel.port1.close();
1444
1459
  });
1445
1460
 
@@ -1491,7 +1506,7 @@ export default async () => {
1491
1506
  });
1492
1507
 
1493
1508
  await it('Worker should extend EventEmitter', async () => {
1494
- const proto = Worker.prototype as any;
1509
+ const proto = Worker.prototype as unknown as Record<string, unknown>;
1495
1510
  expect(typeof proto.on).toBe('function');
1496
1511
  expect(typeof proto.once).toBe('function');
1497
1512
  expect(typeof proto.emit).toBe('function');
@@ -1529,7 +1544,7 @@ export default async () => {
1529
1544
  await it('should emit error for non-existent file on GJS', async () => {
1530
1545
  const nonExistent = '/tmp/gjsify-nonexistent-worker-' + Date.now() + '.mjs';
1531
1546
 
1532
- const worker = new Worker(nonExistent) as any;
1547
+ const worker = new Worker(nonExistent);
1533
1548
  const result = await new Promise<{ type: string; message?: string; code?: number }>((resolve) => {
1534
1549
  worker.on('error', (err: Error) => {
1535
1550
  resolve({ type: 'error', message: err.message });
@@ -1546,7 +1561,7 @@ export default async () => {
1546
1561
  const worker = new Worker(
1547
1562
  'parentPort.postMessage("started"); await new Promise(r => setTimeout(r, 5000));',
1548
1563
  { eval: true }
1549
- ) as any;
1564
+ );
1550
1565
 
1551
1566
  const started = await new Promise<boolean>((resolve) => {
1552
1567
  worker.on('message', () => resolve(true));
@@ -1588,4 +1603,303 @@ export default async () => {
1588
1603
  await w.terminate();
1589
1604
  });
1590
1605
  });
1606
+
1607
+ // --- transferList: ArrayBuffer transfer ---
1608
+ // SPDX-License-Identifier: MIT
1609
+ // Ported from refs/node-test/parallel/test-worker-message-port-arraybuffer.js
1610
+ // Original: Copyright (c) Node.js contributors. MIT.
1611
+ // Rewritten for @gjsify/unit — behavior preserved, assertion dialect adapted.
1612
+
1613
+ await describe('MessagePort transferList — ArrayBuffer', async () => {
1614
+ await it('should detach the source ArrayBuffer after transfer', async () => {
1615
+ const channel = new MessageChannel();
1616
+ const arrayBuffer = new ArrayBuffer(40);
1617
+ const view = new Uint32Array(arrayBuffer);
1618
+ view[0] = 0x12345678;
1619
+
1620
+ const received = await new Promise<unknown>((resolve) => {
1621
+ channel.port2.on('message', resolve);
1622
+ channel.port1.postMessage(view, [arrayBuffer]);
1623
+ });
1624
+
1625
+ // Source buffer is detached — byteLength becomes 0.
1626
+ expect(arrayBuffer.byteLength).toBe(0);
1627
+
1628
+ // Receiver got a typed array whose first element matches.
1629
+ const recv = received as Uint32Array;
1630
+ expect(recv instanceof Uint32Array).toBe(true);
1631
+ expect(recv[0]).toBe(0x12345678);
1632
+
1633
+ channel.port1.close();
1634
+ channel.port2.close();
1635
+ });
1636
+
1637
+ await it('should throw DataCloneError when transferring a detached ArrayBuffer', async () => {
1638
+ const channel = new MessageChannel();
1639
+ const arrayBuffer = new ArrayBuffer(40);
1640
+
1641
+ // First transfer detaches it.
1642
+ channel.port1.postMessage(null, [arrayBuffer]);
1643
+ expect(arrayBuffer.byteLength).toBe(0);
1644
+
1645
+ // Re-transferring the same (now detached) buffer must throw.
1646
+ let threw: Error | null = null;
1647
+ try {
1648
+ channel.port1.postMessage(null, [arrayBuffer]);
1649
+ } catch (err) {
1650
+ threw = err as Error;
1651
+ }
1652
+ expect(threw).toBeDefined();
1653
+ expect(threw!.name).toBe('DataCloneError');
1654
+
1655
+ channel.port1.close();
1656
+ channel.port2.close();
1657
+ });
1658
+
1659
+ await it('should transfer multiple ArrayBuffers in one call', async () => {
1660
+ const channel = new MessageChannel();
1661
+ const a = new ArrayBuffer(8);
1662
+ const b = new ArrayBuffer(16);
1663
+ new Uint8Array(a)[0] = 0xaa;
1664
+ new Uint8Array(b)[0] = 0xbb;
1665
+
1666
+ const received = await new Promise<{ a: ArrayBuffer; b: ArrayBuffer }>((resolve) => {
1667
+ channel.port2.on('message', resolve);
1668
+ channel.port1.postMessage({ a, b }, [a, b]);
1669
+ });
1670
+
1671
+ expect(a.byteLength).toBe(0);
1672
+ expect(b.byteLength).toBe(0);
1673
+ expect(received.a.byteLength).toBe(8);
1674
+ expect(received.b.byteLength).toBe(16);
1675
+ expect(new Uint8Array(received.a)[0]).toBe(0xaa);
1676
+ expect(new Uint8Array(received.b)[0]).toBe(0xbb);
1677
+
1678
+ channel.port1.close();
1679
+ channel.port2.close();
1680
+ });
1681
+
1682
+ await it('should reject duplicate entries in the transfer list', async () => {
1683
+ const channel = new MessageChannel();
1684
+ const buf = new ArrayBuffer(8);
1685
+ let threw: Error | null = null;
1686
+ try {
1687
+ channel.port1.postMessage(buf, [buf, buf]);
1688
+ } catch (err) {
1689
+ threw = err as Error;
1690
+ }
1691
+ expect(threw).toBeDefined();
1692
+ expect(threw!.name).toBe('DataCloneError');
1693
+ // Buffer must NOT have been transferred (validation pre-flight).
1694
+ expect(buf.byteLength).toBe(8);
1695
+ channel.port1.close();
1696
+ channel.port2.close();
1697
+ });
1698
+
1699
+ await it('should reject non-transferable values in transfer list', async () => {
1700
+ const channel = new MessageChannel();
1701
+ let threw: Error | null = null;
1702
+ try {
1703
+ channel.port1.postMessage('payload', [{} as unknown as ArrayBuffer]);
1704
+ } catch (err) {
1705
+ threw = err as Error;
1706
+ }
1707
+ expect(threw).toBeDefined();
1708
+ expect(threw!.name).toBe('DataCloneError');
1709
+ channel.port1.close();
1710
+ channel.port2.close();
1711
+ });
1712
+
1713
+ await it('should leave non-transferred ArrayBuffers untouched (deep copy)', async () => {
1714
+ const channel = new MessageChannel();
1715
+ const transferred = new ArrayBuffer(8);
1716
+ const copied = new ArrayBuffer(8);
1717
+ new Uint8Array(copied)[0] = 0xcc;
1718
+
1719
+ const received = await new Promise<{ t: ArrayBuffer; c: ArrayBuffer }>((resolve) => {
1720
+ channel.port2.on('message', resolve);
1721
+ channel.port1.postMessage({ t: transferred, c: copied }, [transferred]);
1722
+ });
1723
+
1724
+ expect(transferred.byteLength).toBe(0);
1725
+ expect(copied.byteLength).toBe(8);
1726
+ expect(received.t.byteLength).toBe(8);
1727
+ expect(received.c.byteLength).toBe(8);
1728
+ expect(new Uint8Array(received.c)[0]).toBe(0xcc);
1729
+
1730
+ channel.port1.close();
1731
+ channel.port2.close();
1732
+ });
1733
+ });
1734
+
1735
+ // --- transferList: MessagePort transfer ---
1736
+ // SPDX-License-Identifier: MIT
1737
+ // Ported from refs/node-test/parallel/test-worker-message-port-message-port-transferring.js
1738
+ // refs/node-test/parallel/test-worker-message-port-transfer-closed.js
1739
+ // refs/node-test/parallel/test-worker-message-port-transfer-self.js
1740
+ // Original: Copyright (c) Node.js contributors. MIT.
1741
+
1742
+ await describe('MessagePort transferList — MessagePort', async () => {
1743
+ await it('should transfer a MessagePort across a base channel', async () => {
1744
+ const base = new MessageChannel();
1745
+ const inner = new MessageChannel();
1746
+
1747
+ // Send inner.port1 across base.port1 → base.port2.
1748
+ base.port1.postMessage({ port: inner.port1 }, [inner.port1]);
1749
+
1750
+ const movedPort = await new Promise<MessagePort>((resolve) => {
1751
+ base.port2.on('message', (msg: unknown) => resolve((msg as { port: MessagePort }).port));
1752
+ });
1753
+
1754
+ // Receiver-side moved port must be a usable MessagePort wired to inner.port2.
1755
+ expect(movedPort instanceof MessagePort).toBe(true);
1756
+
1757
+ const received = await new Promise<unknown>((resolve) => {
1758
+ inner.port2.on('message', resolve);
1759
+ movedPort.postMessage('hello-via-moved-port');
1760
+ });
1761
+ expect(received).toBe('hello-via-moved-port');
1762
+
1763
+ movedPort.close();
1764
+ inner.port2.close();
1765
+ base.port1.close();
1766
+ base.port2.close();
1767
+ });
1768
+
1769
+ await it('should reject transferring the source port to itself', async () => {
1770
+ const channel = new MessageChannel();
1771
+ let threw: Error | null = null;
1772
+ try {
1773
+ channel.port1.postMessage(null, [channel.port1]);
1774
+ } catch (err) {
1775
+ threw = err as Error;
1776
+ }
1777
+ expect(threw).toBeDefined();
1778
+ expect(threw!.name).toBe('DataCloneError');
1779
+ channel.port1.close();
1780
+ channel.port2.close();
1781
+ });
1782
+
1783
+ await it('should reject transferring a closed MessagePort', async () => {
1784
+ const base = new MessageChannel();
1785
+ const inner = new MessageChannel();
1786
+ inner.port1.close();
1787
+
1788
+ let threw: Error | null = null;
1789
+ try {
1790
+ base.port1.postMessage({ port: inner.port1 }, [inner.port1]);
1791
+ } catch (err) {
1792
+ threw = err as Error;
1793
+ }
1794
+ expect(threw).toBeDefined();
1795
+ expect(threw!.name).toBe('DataCloneError');
1796
+ expect(threw!.message.includes('detached')).toBe(true);
1797
+
1798
+ base.port1.close();
1799
+ base.port2.close();
1800
+ inner.port2.close();
1801
+ });
1802
+
1803
+ await it('should detach the source port after transfer (cannot reuse)', async () => {
1804
+ const base = new MessageChannel();
1805
+ const inner = new MessageChannel();
1806
+ const sourcePort = inner.port1;
1807
+
1808
+ base.port1.postMessage({ port: sourcePort }, [sourcePort]);
1809
+
1810
+ // Re-transferring the now-detached port must throw.
1811
+ let threw: Error | null = null;
1812
+ try {
1813
+ base.port1.postMessage({ port: sourcePort }, [sourcePort]);
1814
+ } catch (err) {
1815
+ threw = err as Error;
1816
+ }
1817
+ expect(threw).toBeDefined();
1818
+ expect(threw!.name).toBe('DataCloneError');
1819
+
1820
+ base.port1.close();
1821
+ base.port2.close();
1822
+ inner.port2.close();
1823
+ });
1824
+ });
1825
+
1826
+ // --- SharedArrayBuffer support ---
1827
+ // SPDX-License-Identifier: MIT
1828
+ // Ported from refs/node-test/parallel/test-worker-message-channel-sharedarraybuffer.js
1829
+ // Original: Copyright (c) Node.js contributors. MIT.
1830
+ //
1831
+ // Note: SharedArrayBuffer is not exposed in GJS today — Mozilla disables it
1832
+ // unless the embedder opts in. These tests run only when SAB is available
1833
+ // (Node.js, or future GJS builds with SAB enabled). See STATUS.md
1834
+ // "Open TODOs" → SharedArrayBuffer cross-process sharing.
1835
+
1836
+ await describe('SharedArrayBuffer in postMessage', async () => {
1837
+ const SAB = (globalThis as Record<string, unknown>).SharedArrayBuffer as
1838
+ typeof SharedArrayBuffer | undefined;
1839
+
1840
+ if (typeof SAB !== 'function') {
1841
+ await it('SharedArrayBuffer not available — skipping SAB suite (expected on GJS)', async () => {
1842
+ expect(typeof SAB).toBe('undefined');
1843
+ });
1844
+ return;
1845
+ }
1846
+
1847
+ await it('should pass-through SharedArrayBuffer (same backing store)', async () => {
1848
+ const channel = new MessageChannel();
1849
+ const sab = new SAB(16);
1850
+ const writer = new Int32Array(sab);
1851
+ writer[0] = 7;
1852
+
1853
+ const received = await new Promise<SharedArrayBuffer>((resolve) => {
1854
+ channel.port2.on('message', (msg) => resolve(msg as SharedArrayBuffer));
1855
+ channel.port1.postMessage(sab);
1856
+ });
1857
+
1858
+ // Same backing store: writes on the source side are visible to the receiver.
1859
+ expect(received instanceof SAB).toBe(true);
1860
+ expect(received.byteLength).toBe(16);
1861
+ writer[0] = 42;
1862
+ const reader = new Int32Array(received);
1863
+ expect(reader[0]).toBe(42);
1864
+
1865
+ channel.port1.close();
1866
+ channel.port2.close();
1867
+ });
1868
+
1869
+ await it('should reject SharedArrayBuffer in transfer list', async () => {
1870
+ const channel = new MessageChannel();
1871
+ const sab = new SAB(8);
1872
+ let threw: Error | null = null;
1873
+ try {
1874
+ channel.port1.postMessage(sab, [sab as unknown as ArrayBuffer]);
1875
+ } catch (err) {
1876
+ threw = err as Error;
1877
+ }
1878
+ expect(threw).toBeDefined();
1879
+ expect(threw!.name).toBe('DataCloneError');
1880
+ // SAB must remain usable.
1881
+ expect(sab.byteLength).toBe(8);
1882
+ channel.port1.close();
1883
+ channel.port2.close();
1884
+ });
1885
+
1886
+ await it('Atomics.add on shared store is observable across MessagePort send', async () => {
1887
+ const channel = new MessageChannel();
1888
+ const sab = new SAB(16);
1889
+ const view = new Int32Array(sab);
1890
+
1891
+ const received = await new Promise<Int32Array>((resolve) => {
1892
+ channel.port2.on('message', (msg) => resolve(new Int32Array(msg as SharedArrayBuffer)));
1893
+ channel.port1.postMessage(sab);
1894
+ });
1895
+
1896
+ // Mutate after send — both sides observe the same memory.
1897
+ Atomics.add(view, 0, 5);
1898
+ Atomics.add(view, 0, 7);
1899
+ expect(Atomics.load(received, 0)).toBe(12);
1900
+
1901
+ channel.port1.close();
1902
+ channel.port2.close();
1903
+ });
1904
+ });
1591
1905
  };
@@ -1,11 +1,48 @@
1
1
  // Reference: Node.js lib/internal/worker/io.js
2
+ // Reference: HTML Living Standard §9.4.4 message ports + transferable objects
3
+ // Reference: refs/node-test/parallel/test-worker-message-port-transfer*.js
2
4
  // Reimplemented for GJS using EventEmitter
5
+ //
6
+ // Transferable support:
7
+ // - ArrayBuffer transfer uses the structured-clone layer's transfer hook
8
+ // (SM140 ArrayBuffer.prototype.transfer() — zero-copy, sender detaches).
9
+ // - MessagePort transfer is handled at this layer: a MessagePort listed in
10
+ // transferList is detached from its current channel (close locally) and
11
+ // re-attached on the receiver side. Wire format: a placeholder
12
+ // `{ __gjsifyTransferredPort: true, queue: [...], hasOtherEnd: bool }`
13
+ // is substituted into the cloned message tree, then materialised back into
14
+ // a MessagePort on the receiver. Because the underlying linked-port pair
15
+ // is in-process JS (no IPC), we move the surviving end of the channel
16
+ // directly — there is no separate serialization step.
17
+ //
18
+ // Cross-process MessagePort transfer (i.e. via Worker subprocess IPC) is not
19
+ // supported — see STATUS.md "Open TODOs".
3
20
 
4
21
  import { EventEmitter } from 'node:events';
5
22
 
23
+ /**
24
+ * Internal placeholder used while serializing a transferred MessagePort.
25
+ * Replaced with a fresh local MessagePort by `_finalizeTransfer` after
26
+ * structuredClone returns.
27
+ */
28
+ interface TransferredPortPlaceholder {
29
+ readonly __gjsifyTransferredPort: true;
30
+ /** Index into the materialisation array — unique per transfer. */
31
+ readonly index: number;
32
+ }
33
+
34
+ function isTransferredPortPlaceholder(value: unknown): value is TransferredPortPlaceholder {
35
+ return (
36
+ typeof value === 'object'
37
+ && value !== null
38
+ && (value as { __gjsifyTransferredPort?: unknown }).__gjsifyTransferredPort === true
39
+ );
40
+ }
41
+
6
42
  export class MessagePort extends EventEmitter {
7
43
  private _started = false;
8
44
  private _closed = false;
45
+ private _detached = false;
9
46
  private _messageQueue: unknown[] = [];
10
47
  /** @internal Linked port for in-process communication */
11
48
  _otherPort: MessagePort | null = null;
@@ -28,19 +65,105 @@ export class MessagePort extends EventEmitter {
28
65
  this.removeAllListeners();
29
66
  }
30
67
 
31
- postMessage(value: unknown, _transferList?: unknown[]): void {
68
+ postMessage(value: unknown, transferList?: unknown[]): void {
32
69
  if (this._closed) return;
33
70
  const target = this._otherPort;
34
71
  if (!target) return;
35
72
 
73
+ // --- Transfer-list pre-flight ---
74
+ // Validate transferable entries up front. Per HTML spec, validation must
75
+ // happen before any side effects (no partial transfer on error).
76
+ const arrayBufferTransfers: ArrayBuffer[] = [];
77
+ const portTransfers: MessagePort[] = [];
78
+
79
+ if (transferList && transferList.length > 0) {
80
+ const seenInList = new Set<unknown>();
81
+ for (const item of transferList) {
82
+ if (seenInList.has(item)) {
83
+ throw createDataCloneError('Transfer list contains duplicate entries');
84
+ }
85
+ seenInList.add(item);
86
+
87
+ if (item instanceof MessagePort) {
88
+ if (item === this) {
89
+ throw createDataCloneError('Cannot transfer source port');
90
+ }
91
+ if (item._closed || item._detached) {
92
+ throw createDataCloneError('MessagePort in transfer list is already detached');
93
+ }
94
+ portTransfers.push(item);
95
+ continue;
96
+ }
97
+
98
+ // ArrayBuffer
99
+ const tag = Object.prototype.toString.call(item).slice(8, -1);
100
+ if (tag === 'ArrayBuffer') {
101
+ const buf = item as ArrayBuffer & { detached?: boolean };
102
+ if (buf.detached === true) {
103
+ throw createDataCloneError('ArrayBuffer in transfer list is detached');
104
+ }
105
+ arrayBufferTransfers.push(buf);
106
+ continue;
107
+ }
108
+
109
+ // SharedArrayBuffer must NOT appear in transfer list — it shares.
110
+ if (tag === 'SharedArrayBuffer') {
111
+ throw createDataCloneError('SharedArrayBuffer cannot appear in transfer list (it is shared, not transferred)');
112
+ }
113
+
114
+ throw createDataCloneError(`Value at index ${transferList.indexOf(item)} of transfer list is not transferable`);
115
+ }
116
+ }
117
+
118
+ // --- Substitute MessagePort placeholders before clone ---
119
+ // The structured-clone layer doesn't know about MessagePort; we walk the
120
+ // value tree and replace each transferred port instance with a placeholder
121
+ // (so the cloned tree reuses the same placeholder objects), then swap the
122
+ // placeholders back to fresh local MessagePorts on the receiver side.
123
+ const portMaterialisationOrder = portTransfers.slice();
124
+ let substituted: unknown = value;
125
+ if (portTransfers.length > 0) {
126
+ substituted = substitutePortsWithPlaceholders(value, portTransfers);
127
+ }
128
+
129
+ // --- Clone (with ArrayBuffer transfer) ---
36
130
  let cloned: unknown;
37
131
  try {
38
- cloned = structuredClone(value);
132
+ cloned = structuredClone(substituted, {
133
+ transfer: arrayBufferTransfers.length > 0 ? arrayBufferTransfers : undefined,
134
+ });
39
135
  } catch (err) {
40
136
  this.emit('messageerror', err instanceof Error ? err : new Error('Could not clone message'));
41
137
  return;
42
138
  }
43
- target._receiveMessage(cloned);
139
+
140
+ // --- Materialise transferred MessagePorts on the receiver ---
141
+ // For each transferred port: detach the source MessagePort locally, then
142
+ // create a new MessagePort on the receiver side that takes over the
143
+ // surviving end of the channel.
144
+ let receiverMessage = cloned;
145
+ if (portMaterialisationOrder.length > 0) {
146
+ const newPorts = portMaterialisationOrder.map((sourcePort) => {
147
+ // The source port is being moved. Steal its channel partner.
148
+ const partner = sourcePort._otherPort;
149
+ const queued = sourcePort._messageQueue.slice();
150
+ sourcePort._messageQueue.length = 0;
151
+ sourcePort._otherPort = null;
152
+ sourcePort._detached = true;
153
+ // Mark closed locally — the original port is no longer usable.
154
+ sourcePort._closed = true;
155
+
156
+ const newPort = new MessagePort();
157
+ newPort._otherPort = partner;
158
+ if (partner) partner._otherPort = newPort;
159
+ // Carry over any pending messages that the sourcePort had not drained yet.
160
+ for (const msg of queued) newPort._messageQueue.push(msg);
161
+ return newPort;
162
+ });
163
+ receiverMessage = replacePlaceholdersWithPorts(cloned, newPorts);
164
+ }
165
+
166
+ target._receiveMessage(receiverMessage);
44
167
  }
45
168
 
46
169
  ref(): this { return this; }
@@ -63,6 +186,11 @@ export class MessagePort extends EventEmitter {
63
186
  return this._messageQueue.shift();
64
187
  }
65
188
 
189
+ /** @internal Has this port been transferred elsewhere? */
190
+ get _wasTransferred(): boolean {
191
+ return this._detached;
192
+ }
193
+
66
194
  private _drainQueue(): void {
67
195
  while (this._messageQueue.length > 0) {
68
196
  this._dispatchMessage(this._messageQueue.shift());
@@ -128,3 +256,110 @@ export class MessagePort extends EventEmitter {
128
256
  return this;
129
257
  }
130
258
  }
259
+
260
+ // --- Helpers ---
261
+
262
+ function createDataCloneError(message: string): Error {
263
+ const DOMExceptionCtor = (globalThis as Record<string, unknown>).DOMException as
264
+ (new (message: string, name: string) => Error) | undefined;
265
+ if (typeof DOMExceptionCtor === 'function') {
266
+ const err = new DOMExceptionCtor(message, 'DataCloneError');
267
+ // Ensure the `code` property matches Node/W3C (25 = DATA_CLONE_ERR).
268
+ if ((err as { code?: number }).code === undefined) {
269
+ try {
270
+ Object.defineProperty(err, 'code', { value: 25, configurable: true });
271
+ } catch { /* ignore */ }
272
+ }
273
+ return err;
274
+ }
275
+ const err = new Error(message);
276
+ err.name = 'DataCloneError';
277
+ (err as { code?: number }).code = 25;
278
+ return err;
279
+ }
280
+
281
+ /**
282
+ * Walk `value`, replacing any MessagePort listed in `ports` with a
283
+ * placeholder. Returns the new tree (copy-on-substitute). Mutates nothing in
284
+ * the input.
285
+ *
286
+ * Handles plain objects and arrays. Other tagged types (Map, Set, …) are
287
+ * passed through unchanged — the structured clone step that follows will
288
+ * handle them, and ports inside Maps/Sets are uncommon enough in practice
289
+ * that we don't expand the walk for them. (Node accepts the same constraint.)
290
+ */
291
+ function substitutePortsWithPlaceholders(value: unknown, ports: MessagePort[]): unknown {
292
+ const portToIndex = new Map<MessagePort, number>();
293
+ for (let i = 0; i < ports.length; i++) portToIndex.set(ports[i]!, i);
294
+
295
+ function walk(v: unknown, seen: Map<object, unknown>): unknown {
296
+ if (v === null || typeof v !== 'object') return v;
297
+
298
+ // MessagePort substitution
299
+ if (v instanceof MessagePort) {
300
+ const idx = portToIndex.get(v);
301
+ if (idx === undefined) return v; // not transferred
302
+ const placeholder: TransferredPortPlaceholder = { __gjsifyTransferredPort: true, index: idx };
303
+ return placeholder;
304
+ }
305
+
306
+ if (seen.has(v)) return seen.get(v);
307
+
308
+ if (Array.isArray(v)) {
309
+ const out: unknown[] = [];
310
+ seen.set(v, out);
311
+ for (let i = 0; i < v.length; i++) {
312
+ if (i in v) out[i] = walk(v[i], seen);
313
+ }
314
+ return out;
315
+ }
316
+
317
+ const tag = Object.prototype.toString.call(v).slice(8, -1);
318
+ if (tag === 'Object') {
319
+ const out: Record<string, unknown> = {};
320
+ seen.set(v, out);
321
+ for (const k of Object.keys(v as Record<string, unknown>)) {
322
+ out[k] = walk((v as Record<string, unknown>)[k], seen);
323
+ }
324
+ return out;
325
+ }
326
+
327
+ // Other tagged types: leave intact for structuredClone to handle.
328
+ return v;
329
+ }
330
+
331
+ return walk(value, new Map());
332
+ }
333
+
334
+ /**
335
+ * Walk `value` post-clone and replace each placeholder with the corresponding
336
+ * receiver-side MessagePort.
337
+ */
338
+ function replacePlaceholdersWithPorts(value: unknown, newPorts: MessagePort[]): unknown {
339
+ function walk(v: unknown, seen: Map<object, unknown>): unknown {
340
+ if (v === null || typeof v !== 'object') return v;
341
+ if (isTransferredPortPlaceholder(v)) {
342
+ return newPorts[v.index];
343
+ }
344
+ if (seen.has(v)) return seen.get(v);
345
+
346
+ if (Array.isArray(v)) {
347
+ seen.set(v, v);
348
+ for (let i = 0; i < v.length; i++) {
349
+ if (i in v) v[i] = walk(v[i], seen);
350
+ }
351
+ return v;
352
+ }
353
+
354
+ const tag = Object.prototype.toString.call(v).slice(8, -1);
355
+ if (tag === 'Object') {
356
+ seen.set(v, v);
357
+ for (const k of Object.keys(v as Record<string, unknown>)) {
358
+ (v as Record<string, unknown>)[k] = walk((v as Record<string, unknown>)[k], seen);
359
+ }
360
+ return v;
361
+ }
362
+ return v;
363
+ }
364
+ return walk(value, new Map());
365
+ }
@@ -1 +1 @@
1
- {"fileNames":["../../../node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/typescript/lib/lib.es2021.d.ts","../../../node_modules/typescript/lib/lib.es2022.d.ts","../../../node_modules/typescript/lib/lib.es2023.d.ts","../../../node_modules/typescript/lib/lib.es2024.d.ts","../../../node_modules/typescript/lib/lib.es2025.d.ts","../../../node_modules/typescript/lib/lib.esnext.d.ts","../../../node_modules/typescript/lib/lib.dom.d.ts","../../../node_modules/typescript/lib/lib.dom.iterable.d.ts","../../../node_modules/typescript/lib/lib.dom.asynciterable.d.ts","../../../node_modules/typescript/lib/lib.webworker.importscripts.d.ts","../../../node_modules/typescript/lib/lib.scripthost.d.ts","../../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/typescript/lib/lib.es2016.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../../node_modules/typescript/lib/lib.es2017.date.d.ts","../../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../../node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../node_modules/typescript/lib/lib.es2021.string.d.ts","../../../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../node_modules/typescript/lib/lib.es2021.intl.d.ts","../../../node_modules/typescript/lib/lib.es2022.array.d.ts","../../../node_modules/typescript/lib/lib.es2022.error.d.ts","../../../node_modules/typescript/lib/lib.es2022.intl.d.ts","../../../node_modules/typescript/lib/lib.es2022.object.d.ts","../../../node_modules/typescript/lib/lib.es2022.string.d.ts","../../../node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../../node_modules/typescript/lib/lib.es2023.array.d.ts","../../../node_modules/typescript/lib/lib.es2023.collection.d.ts","../../../node_modules/typescript/lib/lib.es2023.intl.d.ts","../../../node_modules/typescript/lib/lib.es2024.arraybuffer.d.ts","../../../node_modules/typescript/lib/lib.es2024.collection.d.ts","../../../node_modules/typescript/lib/lib.es2024.object.d.ts","../../../node_modules/typescript/lib/lib.es2024.promise.d.ts","../../../node_modules/typescript/lib/lib.es2024.regexp.d.ts","../../../node_modules/typescript/lib/lib.es2024.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2024.string.d.ts","../../../node_modules/typescript/lib/lib.es2025.collection.d.ts","../../../node_modules/typescript/lib/lib.es2025.float16.d.ts","../../../node_modules/typescript/lib/lib.es2025.intl.d.ts","../../../node_modules/typescript/lib/lib.es2025.iterator.d.ts","../../../node_modules/typescript/lib/lib.es2025.promise.d.ts","../../../node_modules/typescript/lib/lib.es2025.regexp.d.ts","../../../node_modules/typescript/lib/lib.esnext.array.d.ts","../../../node_modules/typescript/lib/lib.esnext.collection.d.ts","../../../node_modules/typescript/lib/lib.esnext.date.d.ts","../../../node_modules/typescript/lib/lib.esnext.decorators.d.ts","../../../node_modules/typescript/lib/lib.esnext.disposable.d.ts","../../../node_modules/typescript/lib/lib.esnext.error.d.ts","../../../node_modules/typescript/lib/lib.esnext.intl.d.ts","../../../node_modules/typescript/lib/lib.esnext.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.esnext.temporal.d.ts","../../../node_modules/typescript/lib/lib.esnext.typedarrays.d.ts","../../../node_modules/typescript/lib/lib.decorators.d.ts","../../../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../../node_modules/typescript/lib/lib.esnext.full.d.ts","../../../node_modules/@girs/gjs/gettext.d.ts","../../../node_modules/@girs/gobject-2.0/gobject-2.0-ambient.d.ts","../../../node_modules/@girs/gobject-2.0/gobject-2.0-import.d.ts","../../../node_modules/@girs/glib-2.0/glib-2.0-ambient.d.ts","../../../node_modules/@girs/glib-2.0/glib-2.0-import.d.ts","../../../node_modules/@girs/glib-2.0/glib-2.0.d.ts","../../../node_modules/@girs/glib-2.0/index.d.ts","../../../node_modules/@girs/gobject-2.0/gobject-2.0.d.ts","../../../node_modules/@girs/gobject-2.0/index.d.ts","../../../node_modules/@girs/gjs/system.d.ts","../../../node_modules/@girs/cairo-1.0/cairo-1.0-ambient.d.ts","../../../node_modules/@girs/cairo-1.0/cairo-1.0-import.d.ts","../../../node_modules/@girs/cairo-1.0/cairo-1.0.d.ts","../../../node_modules/@girs/cairo-1.0/index.d.ts","../../../node_modules/@girs/gjs/cairo.d.ts","../../../node_modules/@girs/gjs/console.d.ts","../../../node_modules/@girs/gjs/gi.d.ts","../../../node_modules/@girs/gjs/gjs-ambient.d.ts","../../../node_modules/@girs/gjs/gjs.d.ts","../../../node_modules/@girs/gjs/index.d.ts","../../gjs/unit/lib/types/spy.d.ts","../../gjs/unit/lib/types/index.d.ts","./src/index.spec.ts","./src/message-port.ts","../../../node_modules/@girs/gio-2.0/gio-2.0-ambient.d.ts","../../../node_modules/@girs/gio-2.0/gio-2.0-import.d.ts","../../../node_modules/@girs/gmodule-2.0/gmodule-2.0-ambient.d.ts","../../../node_modules/@girs/gmodule-2.0/gmodule-2.0-import.d.ts","../../../node_modules/@girs/gmodule-2.0/gmodule-2.0.d.ts","../../../node_modules/@girs/gmodule-2.0/index.d.ts","../../../node_modules/@girs/gio-2.0/gio-2.0.d.ts","../../../node_modules/@girs/gio-2.0/index.d.ts","./src/worker.ts","./src/index.ts","../../../node_modules/@types/node/compatibility/iterators.d.ts","../../../node_modules/@types/node/globals.typedarray.d.ts","../../../node_modules/@types/node/buffer.buffer.d.ts","../../../node_modules/@types/node/globals.d.ts","../../../node_modules/@types/node/web-globals/abortcontroller.d.ts","../../../node_modules/@types/node/web-globals/blob.d.ts","../../../node_modules/@types/node/web-globals/console.d.ts","../../../node_modules/@types/node/web-globals/crypto.d.ts","../../../node_modules/@types/node/web-globals/domexception.d.ts","../../../node_modules/@types/node/web-globals/encoding.d.ts","../../../node_modules/@types/node/web-globals/events.d.ts","../../../node_modules/undici-types/utility.d.ts","../../../node_modules/undici-types/header.d.ts","../../../node_modules/undici-types/readable.d.ts","../../../node_modules/undici-types/fetch.d.ts","../../../node_modules/undici-types/formdata.d.ts","../../../node_modules/undici-types/connector.d.ts","../../../node_modules/undici-types/client-stats.d.ts","../../../node_modules/undici-types/client.d.ts","../../../node_modules/undici-types/errors.d.ts","../../../node_modules/undici-types/dispatcher.d.ts","../../../node_modules/undici-types/global-dispatcher.d.ts","../../../node_modules/undici-types/global-origin.d.ts","../../../node_modules/undici-types/pool-stats.d.ts","../../../node_modules/undici-types/pool.d.ts","../../../node_modules/undici-types/handlers.d.ts","../../../node_modules/undici-types/balanced-pool.d.ts","../../../node_modules/undici-types/round-robin-pool.d.ts","../../../node_modules/undici-types/h2c-client.d.ts","../../../node_modules/undici-types/agent.d.ts","../../../node_modules/undici-types/mock-interceptor.d.ts","../../../node_modules/undici-types/mock-call-history.d.ts","../../../node_modules/undici-types/mock-agent.d.ts","../../../node_modules/undici-types/mock-client.d.ts","../../../node_modules/undici-types/mock-pool.d.ts","../../../node_modules/undici-types/snapshot-agent.d.ts","../../../node_modules/undici-types/mock-errors.d.ts","../../../node_modules/undici-types/proxy-agent.d.ts","../../../node_modules/undici-types/env-http-proxy-agent.d.ts","../../../node_modules/undici-types/retry-handler.d.ts","../../../node_modules/undici-types/retry-agent.d.ts","../../../node_modules/undici-types/api.d.ts","../../../node_modules/undici-types/cache-interceptor.d.ts","../../../node_modules/undici-types/interceptors.d.ts","../../../node_modules/undici-types/util.d.ts","../../../node_modules/undici-types/cookies.d.ts","../../../node_modules/undici-types/patch.d.ts","../../../node_modules/undici-types/websocket.d.ts","../../../node_modules/undici-types/eventsource.d.ts","../../../node_modules/undici-types/diagnostics-channel.d.ts","../../../node_modules/undici-types/content-type.d.ts","../../../node_modules/undici-types/cache.d.ts","../../../node_modules/undici-types/index.d.ts","../../../node_modules/@types/node/web-globals/fetch.d.ts","../../../node_modules/@types/node/web-globals/importmeta.d.ts","../../../node_modules/@types/node/web-globals/messaging.d.ts","../../../node_modules/@types/node/web-globals/navigator.d.ts","../../../node_modules/@types/node/web-globals/performance.d.ts","../../../node_modules/@types/node/web-globals/storage.d.ts","../../../node_modules/@types/node/web-globals/streams.d.ts","../../../node_modules/@types/node/web-globals/timers.d.ts","../../../node_modules/@types/node/web-globals/url.d.ts","../../../node_modules/@types/node/assert.d.ts","../../../node_modules/@types/node/assert/strict.d.ts","../../../node_modules/@types/node/async_hooks.d.ts","../../../node_modules/@types/node/buffer.d.ts","../../../node_modules/@types/node/child_process.d.ts","../../../node_modules/@types/node/cluster.d.ts","../../../node_modules/@types/node/console.d.ts","../../../node_modules/@types/node/constants.d.ts","../../../node_modules/@types/node/crypto.d.ts","../../../node_modules/@types/node/dgram.d.ts","../../../node_modules/@types/node/diagnostics_channel.d.ts","../../../node_modules/@types/node/dns.d.ts","../../../node_modules/@types/node/dns/promises.d.ts","../../../node_modules/@types/node/domain.d.ts","../../../node_modules/@types/node/events.d.ts","../../../node_modules/@types/node/fs.d.ts","../../../node_modules/@types/node/fs/promises.d.ts","../../../node_modules/@types/node/http.d.ts","../../../node_modules/@types/node/http2.d.ts","../../../node_modules/@types/node/https.d.ts","../../../node_modules/@types/node/inspector.d.ts","../../../node_modules/@types/node/inspector.generated.d.ts","../../../node_modules/@types/node/inspector/promises.d.ts","../../../node_modules/@types/node/module.d.ts","../../../node_modules/@types/node/net.d.ts","../../../node_modules/buffer/index.d.ts","../../../node_modules/@types/node/os.d.ts","../../../node_modules/@types/node/path.d.ts","../../../node_modules/@types/node/path/posix.d.ts","../../../node_modules/@types/node/path/win32.d.ts","../../../node_modules/@types/node/perf_hooks.d.ts","../../../node_modules/@types/node/process.d.ts","../../../node_modules/@types/node/punycode.d.ts","../../../node_modules/@types/node/querystring.d.ts","../../../node_modules/@types/node/quic.d.ts","../../../node_modules/@types/node/readline.d.ts","../../../node_modules/@types/node/readline/promises.d.ts","../../../node_modules/@types/node/repl.d.ts","../../../node_modules/@types/node/sea.d.ts","../../../node_modules/@types/node/sqlite.d.ts","../../../node_modules/@types/node/stream.d.ts","../../../node_modules/@types/node/stream/consumers.d.ts","../../../node_modules/@types/node/stream/promises.d.ts","../../../node_modules/@types/node/stream/web.d.ts","../../../node_modules/@types/node/string_decoder.d.ts","../../../node_modules/@types/node/test.d.ts","../../../node_modules/@types/node/test/reporters.d.ts","../../../node_modules/@types/node/timers.d.ts","../../../node_modules/@types/node/timers/promises.d.ts","../../../node_modules/@types/node/tls.d.ts","../../../node_modules/@types/node/trace_events.d.ts","../../../node_modules/@types/node/tty.d.ts","../../../node_modules/@types/node/url.d.ts","../../../node_modules/@types/node/util.d.ts","../../../node_modules/@types/node/util/types.d.ts","../../../node_modules/@types/node/v8.d.ts","../../../node_modules/@types/node/vm.d.ts","../../../node_modules/@types/node/wasi.d.ts","../../../node_modules/@types/node/worker_threads.d.ts","../../../node_modules/@types/node/zlib.d.ts","../../../node_modules/@types/node/index.d.ts"],"fileIdsList":[[104,107,111,130,193,196,201,205,208,210,211,212,225],[107,111,130,193,196,201,205,208,210,211,212,225],[100,102,111,113,130,193,196,201,205,208,210,211,212,225],[105,106,111,130,193,196,201,205,208,210,211,212,225],[111,118,125,130,193,196,201,205,208,210,211,212,225],[111,125,130,193,196,201,205,208,210,211,212,225],[100,102,111,113,123,130,193,196,201,205,208,210,211,212,225],[111,119,124,130,193,196,201,205,208,210,211,212,225],[102,107,111,130,193,196,201,205,208,210,211,212,225],[111,130,193,196,201,205,208,210,211,212,225],[94,103,108,109,110,130,193,196,201,205,208,210,211,212,225],[94,100,102,103,108,111,130,193,196,201,205,208,210,211,212,225],[111,112,130,193,196,201,205,208,210,211,212,225],[102,111,130,193,196,201,205,208,210,211,212,225],[97,100,111,130,193,196,201,205,208,210,211,212,225],[100,111,130,193,196,201,205,208,210,211,212,225],[102,111,113,130,193,196,201,205,208,210,211,212,225],[98,99,111,130,193,196,201,205,208,210,211,212,225],[111,120,123,130,193,196,201,205,208,210,211,212,225],[111,123,130,193,196,201,205,208,210,211,212,225],[111,121,122,130,193,196,201,205,208,210,211,212,225],[95,102,111,130,193,196,201,205,208,210,211,212,225],[100,111,113,130,193,196,201,205,208,210,211,212,225],[96,101,111,130,193,196,201,205,208,210,211,212,225],[111,130,190,191,193,196,201,205,208,210,211,212,225],[111,130,192,193,196,201,205,208,210,211,212,225],[111,193,196,201,205,208,210,211,212,225],[111,130,193,196,201,205,208,210,211,212,225,233],[111,130,193,194,196,199,201,204,205,208,210,211,212,214,225,230,242],[111,130,193,194,195,196,201,204,205,208,210,211,212,225],[111,130,193,196,201,205,208,210,211,212,225,243],[111,130,193,196,197,198,201,205,208,210,211,212,216,225],[111,130,193,196,198,201,205,208,210,211,212,225,230,239],[111,130,193,196,199,201,204,205,208,210,211,212,214,225],[111,130,192,193,196,200,201,205,208,210,211,212,225],[111,130,193,196,201,202,205,208,210,211,212,225],[111,130,193,196,201,203,204,205,208,210,211,212,225],[111,130,192,193,196,201,204,205,208,210,211,212,225],[111,130,193,196,201,204,205,206,208,210,211,212,225,230,242],[111,130,193,196,201,204,205,206,208,210,211,212,225,230,233],[111,130,180,193,196,201,204,205,207,208,210,211,212,214,225,230,242],[111,130,193,196,201,204,205,207,208,210,211,212,214,225,230,239,242],[111,130,193,196,201,205,207,208,209,210,211,212,225,230,239,242],[111,128,129,130,131,132,133,134,135,136,137,138,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,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],[111,130,193,196,201,204,205,208,210,211,212,225],[111,130,193,196,201,205,208,210,212,225],[111,130,193,196,201,205,208,210,211,212,213,225,242],[111,130,193,196,201,204,205,208,210,211,212,214,225,230],[111,130,193,196,201,205,208,210,211,212,216,225],[111,130,193,196,201,205,208,210,211,212,217,225],[111,130,193,196,201,204,205,208,210,211,212,220,225],[111,130,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,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],[111,130,193,196,201,205,208,210,211,212,222,225],[111,130,193,196,201,205,208,210,211,212,223,225],[111,130,193,196,198,201,205,208,210,211,212,214,225,233],[111,130,193,196,201,204,205,208,210,211,212,225,226],[111,130,193,196,201,205,208,210,211,212,225,227,243,246],[111,130,193,196,201,204,205,208,210,211,212,225,230,232,233],[111,130,193,196,201,205,208,210,211,212,225,231,233],[111,130,193,196,201,205,208,210,211,212,225,233,243],[111,130,193,196,201,205,208,210,211,212,225,234],[111,130,190,193,196,201,205,208,210,211,212,225,230,236,242],[111,130,193,196,201,205,208,210,211,212,225,230,235],[111,130,193,196,201,204,205,208,210,211,212,225,237,238],[111,130,193,196,201,205,208,210,211,212,225,237,238],[111,130,193,196,198,201,205,208,210,211,212,214,225,230,239],[111,130,193,196,201,205,208,210,211,212,225,240],[111,130,193,196,201,205,208,210,211,212,214,225,241],[111,130,193,196,201,205,207,208,210,211,212,223,225,242],[111,130,193,196,201,205,208,210,211,212,225,243,244],[111,130,193,196,198,201,205,208,210,211,212,225,244],[111,130,193,196,201,205,208,210,211,212,225,230,245],[111,130,193,196,201,205,208,210,211,212,213,225,246],[111,130,193,196,201,205,208,210,211,212,225,247],[111,130,193,196,198,201,205,208,210,211,212,225],[111,130,180,193,196,201,205,208,210,211,212,225],[111,130,193,196,201,205,208,210,211,212,225,242],[111,130,193,196,201,205,208,210,211,212,225,248],[111,130,193,196,201,205,208,210,211,212,220,225],[111,130,193,196,201,205,208,210,211,212,225,238],[111,130,180,193,196,201,204,205,206,208,210,211,212,220,225,230,233,242,245,246,248],[111,130,193,196,201,205,208,210,211,212,225,230,249],[111,130,145,148,151,152,193,196,201,205,208,210,211,212,225,242],[111,130,148,193,196,201,205,208,210,211,212,225,230,242],[111,130,148,152,193,196,201,205,208,210,211,212,225,242],[111,130,193,196,201,205,208,210,211,212,225,230],[111,130,142,193,196,201,205,208,210,211,212,225],[111,130,146,193,196,201,205,208,210,211,212,225],[111,130,144,145,148,193,196,201,205,208,210,211,212,225,242],[111,130,193,196,201,205,208,210,211,212,214,225,239],[111,130,193,196,201,205,208,210,211,212,225,250],[111,130,142,193,196,201,205,208,210,211,212,225,250],[111,130,144,148,193,196,201,205,208,210,211,212,214,225,242],[111,130,139,140,141,143,147,193,196,201,204,205,208,210,211,212,225,230,242],[111,130,148,157,165,193,196,201,205,208,210,211,212,225],[111,130,140,146,193,196,201,205,208,210,211,212,225],[111,130,148,174,175,193,196,201,205,208,210,211,212,225],[111,130,140,143,148,193,196,201,205,208,210,211,212,225,233,242,250],[111,130,148,193,196,201,205,208,210,211,212,225],[111,130,144,148,193,196,201,205,208,210,211,212,225,242],[111,130,139,193,196,201,205,208,210,211,212,225],[111,130,142,143,144,146,147,148,149,150,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,175,176,177,178,179,193,196,201,205,208,210,211,212,225],[111,130,148,167,170,193,196,201,205,208,210,211,212,225],[111,130,148,157,158,159,193,196,201,205,208,210,211,212,225],[111,130,146,148,158,160,193,196,201,205,208,210,211,212,225],[111,130,147,193,196,201,205,208,210,211,212,225],[111,130,140,142,148,193,196,201,205,208,210,211,212,225],[111,130,148,152,158,160,193,196,201,205,208,210,211,212,225],[111,130,152,193,196,201,205,208,210,211,212,225],[111,130,146,148,151,193,196,201,205,208,210,211,212,225,242],[111,130,140,144,148,157,193,196,201,205,208,210,211,212,225],[111,130,148,167,193,196,201,205,208,210,211,212,225],[111,130,160,193,196,201,205,208,210,211,212,225],[111,130,142,148,174,193,196,201,205,208,210,211,212,225,233,248,250],[111,113,114,130,193,196,201,205,208,210,211,212,225],[111,115,130,193,196,201,205,208,210,211,212,225,248],[111,117,126,130,193,196,201,205,208,210,211,212,225],[100,111,125,130,193,196,201,204,205,208,210,211,212,225]],"fileInfos":[{"version":"bcd24271a113971ba9eb71ff8cb01bc6b0f872a85c23fdbe5d93065b375933cd","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f88bedbeb09c6f5a6645cb24c7c55f1aa22d19ae96c8e6959cbd8b85a707bc6","impliedFormat":1},{"version":"7fe93b39b810eadd916be8db880dd7f0f7012a5cc6ffb62de8f62a2117fa6f1f","impliedFormat":1},{"version":"bb0074cc08b84a2374af33d8bf044b80851ccc9e719a5e202eacf40db2c31600","impliedFormat":1},{"version":"1a7daebe4f45fb03d9ec53d60008fbf9ac45a697fdc89e4ce218bc94b94f94d6","impliedFormat":1},{"version":"f94b133a3cb14a288803be545ac2683e0d0ff6661bcd37e31aaaec54fc382aed","impliedFormat":1},{"version":"f59d0650799f8782fd74cf73c19223730c6d1b9198671b1c5b3a38e1188b5953","impliedFormat":1},{"version":"8a15b4607d9a499e2dbeed9ec0d3c0d7372c850b2d5f1fb259e8f6d41d468a84","impliedFormat":1},{"version":"26e0fe14baee4e127f4365d1ae0b276f400562e45e19e35fd2d4c296684715e6","impliedFormat":1},{"version":"1e9332c23e9a907175e0ffc6a49e236f97b48838cc8aec9ce7e4cec21e544b65","impliedFormat":1},{"version":"3753fbc1113dc511214802a2342280a8b284ab9094f6420e7aa171e868679f91","impliedFormat":1},{"version":"999ca32883495a866aa5737fe1babc764a469e4cde6ee6b136a4b9ae68853e4b","impliedFormat":1},{"version":"17f13ecb98cbc39243f2eee1f16d45cd8ec4706b03ee314f1915f1a8b42f6984","impliedFormat":1},{"version":"d6b1eba8496bdd0eed6fc8a685768fe01b2da4a0388b5fe7df558290bffcf32f","affectsGlobalScope":true,"impliedFormat":1},{"version":"7f57fc4404ff020bc45b9c620aff2b40f700b95fe31164024c453a5e3c163c54","impliedFormat":1},{"version":"7f57fc4404ff020bc45b9c620aff2b40f700b95fe31164024c453a5e3c163c54","impliedFormat":1},{"version":"2a2de5b9459b3fc44decd9ce6100b72f1b002ef523126c1d3d8b2a4a63d74d78","affectsGlobalScope":true,"impliedFormat":1},{"version":"f13f4b465c99041e912db5c44129a94588e1aafee35a50eab51044833f50b4ee","affectsGlobalScope":true,"impliedFormat":1},{"version":"eadcffda2aa84802c73938e589b9e58248d74c59cb7fcbca6474e3435ac15504","affectsGlobalScope":true,"impliedFormat":1},{"version":"105ba8ff7ba746404fe1a2e189d1d3d2e0eb29a08c18dded791af02f29fb4711","affectsGlobalScope":true,"impliedFormat":1},{"version":"00343ca5b2e3d48fa5df1db6e32ea2a59afab09590274a6cccb1dbae82e60c7c","affectsGlobalScope":true,"impliedFormat":1},{"version":"ebd9f816d4002697cb2864bea1f0b70a103124e18a8cd9645eeccc09bdf80ab4","affectsGlobalScope":true,"impliedFormat":1},{"version":"2c1afac30a01772cd2a9a298a7ce7706b5892e447bb46bdbeef720f7b5da77ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"7b0225f483e4fa685625ebe43dd584bb7973bbd84e66a6ba7bbe175ee1048b4f","affectsGlobalScope":true,"impliedFormat":1},{"version":"c0a4b8ac6ce74679c1da2b3795296f5896e31c38e888469a8e0f99dc3305de60","affectsGlobalScope":true,"impliedFormat":1},{"version":"3084a7b5f569088e0146533a00830e206565de65cae2239509168b11434cd84f","affectsGlobalScope":true,"impliedFormat":1},{"version":"c5079c53f0f141a0698faa903e76cb41cd664e3efb01cc17a5c46ec2eb0bef42","affectsGlobalScope":true,"impliedFormat":1},{"version":"32cafbc484dea6b0ab62cf8473182bbcb23020d70845b406f80b7526f38ae862","affectsGlobalScope":true,"impliedFormat":1},{"version":"fca4cdcb6d6c5ef18a869003d02c9f0fd95df8cfaf6eb431cd3376bc034cad36","affectsGlobalScope":true,"impliedFormat":1},{"version":"b93ec88115de9a9dc1b602291b85baf825c85666bf25985cc5f698073892b467","affectsGlobalScope":true,"impliedFormat":1},{"version":"f5c06dcc3fe849fcb297c247865a161f995cc29de7aa823afdd75aaaddc1419b","affectsGlobalScope":true,"impliedFormat":1},{"version":"b77e16112127a4b169ef0b8c3a4d730edf459c5f25fe52d5e436a6919206c4d7","affectsGlobalScope":true,"impliedFormat":1},{"version":"fbffd9337146eff822c7c00acbb78b01ea7ea23987f6c961eba689349e744f8c","affectsGlobalScope":true,"impliedFormat":1},{"version":"a995c0e49b721312f74fdfb89e4ba29bd9824c770bbb4021d74d2bf560e4c6bd","affectsGlobalScope":true,"impliedFormat":1},{"version":"c7b3542146734342e440a84b213384bfa188835537ddbda50d30766f0593aff9","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce6180fa19b1cccd07ee7f7dbb9a367ac19c0ed160573e4686425060b6df7f57","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f02e2476bccb9dbe21280d6090f0df17d2f66b74711489415a8aa4df73c9675","affectsGlobalScope":true,"impliedFormat":1},{"version":"45e3ab34c1c013c8ab2dc1ba4c80c780744b13b5676800ae2e3be27ae862c40c","affectsGlobalScope":true,"impliedFormat":1},{"version":"805c86f6cca8d7702a62a844856dbaa2a3fd2abef0536e65d48732441dde5b5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"e42e397f1a5a77994f0185fd1466520691456c772d06bf843e5084ceb879a0ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"f4c2b41f90c95b1c532ecc874bd3c111865793b23aebcc1c3cbbabcd5d76ffb0","affectsGlobalScope":true,"impliedFormat":1},{"version":"ab26191cfad5b66afa11b8bf935ef1cd88fabfcb28d30b2dfa6fad877d050332","affectsGlobalScope":true,"impliedFormat":1},{"version":"2088bc26531e38fb05eedac2951480db5309f6be3fa4a08d2221abb0f5b4200d","affectsGlobalScope":true,"impliedFormat":1},{"version":"cb9d366c425fea79716a8fb3af0d78e6b22ebbab3bd64d25063b42dc9f531c1e","affectsGlobalScope":true,"impliedFormat":1},{"version":"500934a8089c26d57ebdb688fc9757389bb6207a3c8f0674d68efa900d2abb34","affectsGlobalScope":true,"impliedFormat":1},{"version":"689da16f46e647cef0d64b0def88910e818a5877ca5379ede156ca3afb780ac3","affectsGlobalScope":true,"impliedFormat":1},{"version":"bc21cc8b6fee4f4c2440d08035b7ea3c06b3511314c8bab6bef7a92de58a2593","affectsGlobalScope":true,"impliedFormat":1},{"version":"7ca53d13d2957003abb47922a71866ba7cb2068f8d154877c596d63c359fed25","affectsGlobalScope":true,"impliedFormat":1},{"version":"54725f8c4df3d900cb4dac84b64689ce29548da0b4e9b7c2de61d41c79293611","affectsGlobalScope":true,"impliedFormat":1},{"version":"e5594bc3076ac29e6c1ebda77939bc4c8833de72f654b6e376862c0473199323","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f3eb332c2d73e729f3364fcc0c2b375e72a121e8157d25a82d67a138c83a95c","affectsGlobalScope":true,"impliedFormat":1},{"version":"6f4427f9642ce8d500970e4e69d1397f64072ab73b97e476b4002a646ac743b1","affectsGlobalScope":true,"impliedFormat":1},{"version":"48915f327cd1dea4d7bd358d9dc7732f58f9e1626a29cc0c05c8c692419d9bb7","affectsGlobalScope":true,"impliedFormat":1},{"version":"b7bf9377723203b5a6a4b920164df22d56a43f593269ba6ae1fdc97774b68855","affectsGlobalScope":true,"impliedFormat":1},{"version":"db9709688f82c9e5f65a119c64d835f906efe5f559d08b11642d56eb85b79357","affectsGlobalScope":true,"impliedFormat":1},{"version":"4b25b8c874acd1a4cf8444c3617e037d444d19080ac9f634b405583fd10ce1f7","affectsGlobalScope":true,"impliedFormat":1},{"version":"37be57d7c90cf1f8112ee2636a068d8fd181289f82b744160ec56a7dc158a9f5","affectsGlobalScope":true,"impliedFormat":1},{"version":"a917a49ac94cd26b754ab84e113369a75d1a47a710661d7cd25e961cc797065f","affectsGlobalScope":true,"impliedFormat":1},{"version":"6d3261badeb7843d157ef3e6f5d1427d0eeb0af0cf9df84a62cfd29fd47ac86e","affectsGlobalScope":true,"impliedFormat":1},{"version":"195daca651dde22f2167ac0d0a05e215308119a3100f5e6268e8317d05a92526","affectsGlobalScope":true,"impliedFormat":1},{"version":"8b11e4285cd2bb164a4dc09248bdec69e9842517db4ca47c1ba913011e44ff2f","affectsGlobalScope":true,"impliedFormat":1},{"version":"0508571a52475e245b02bc50fa1394065a0a3d05277fbf5120c3784b85651799","affectsGlobalScope":true,"impliedFormat":1},{"version":"8f9af488f510c3015af3cc8c267a9e9d96c4dd38a1fdff0e11dc5a544711415b","affectsGlobalScope":true,"impliedFormat":1},{"version":"fc611fea8d30ea72c6bbfb599c9b4d393ce22e2f5bfef2172534781e7d138104","affectsGlobalScope":true,"impliedFormat":1},{"version":"0bd714129fca875f7d4c477a1a392200b0bcd13fb2e80928cd334b63830ea047","affectsGlobalScope":true,"impliedFormat":1},{"version":"e2c9037ae6cd2c52d80ceef0b3c5ffdb488627d71529cf4f63776daf11161c9a","affectsGlobalScope":true,"impliedFormat":1},{"version":"135d5cf4d345f59f1a9caadfafcd858d3d9cc68290db616cc85797224448cccc","affectsGlobalScope":true,"impliedFormat":1},{"version":"bc238c3f81c2984751932b6aab223cd5b830e0ac6cad76389e5e9d2ffc03287d","affectsGlobalScope":true,"impliedFormat":1},{"version":"4a07f9b76d361f572620927e5735b77d6d2101c23cdd94383eb5b706e7b36357","affectsGlobalScope":true,"impliedFormat":1},{"version":"7c4e8dc6ab834cc6baa0227e030606d29e3e8449a9f67cdf5605ea5493c4db29","affectsGlobalScope":true,"impliedFormat":1},{"version":"de7ba0fd02e06cd9a5bd4ab441ed0e122735786e67dde1e849cced1cd8b46b78","affectsGlobalScope":true,"impliedFormat":1},{"version":"6148e4e88d720a06855071c3db02069434142a8332cf9c182cda551adedf3156","affectsGlobalScope":true,"impliedFormat":1},{"version":"d63dba625b108316a40c95a4425f8d4294e0deeccfd6c7e59d819efa19e23409","affectsGlobalScope":true,"impliedFormat":1},{"version":"0568d6befee03dd435bed4fc25c4e46865b24bdcb8c563fdc21f580a2c301904","affectsGlobalScope":true,"impliedFormat":1},{"version":"30d62269b05b584741f19a5369852d5d34895aa2ac4fd948956f886d15f9cc0d","affectsGlobalScope":true,"impliedFormat":1},{"version":"f128dae7c44d8f35ee42e0a437000a57c9f06cc04f8b4fb42eebf44954d53dc8","affectsGlobalScope":true,"impliedFormat":1},{"version":"ffbe6d7b295306b2ba88030f65b74c107d8d99bdcf596ea99c62a02f606108b0","affectsGlobalScope":true,"impliedFormat":1},{"version":"996fb27b15277369c68a4ba46ed138b4e9e839a02fb4ec756f7997629242fd9f","affectsGlobalScope":true,"impliedFormat":1},{"version":"79b712591b270d4778c89706ca2cfc56ddb8c3f895840e477388f1710dc5eda9","affectsGlobalScope":true,"impliedFormat":1},{"version":"20884846cef428b992b9bd032e70a4ef88e349263f63aeddf04dda837a7dba26","affectsGlobalScope":true,"impliedFormat":1},{"version":"5fcab789c73a97cd43828ee3cc94a61264cf24d4c44472ce64ced0e0f148bdb2","affectsGlobalScope":true,"impliedFormat":1},{"version":"db59a81f070c1880ad645b2c0275022baa6a0c4f0acdc58d29d349c6efcf0903","affectsGlobalScope":true,"impliedFormat":1},{"version":"673294292640f5722b700e7d814e17aaf7d93f83a48a2c9b38f33cbc940ad8b0","affectsGlobalScope":true,"impliedFormat":1},{"version":"d786b48f934cbca483b3c6d0a798cb43bbb4ada283e76fb22c28e53ae05b9e69","affectsGlobalScope":true,"impliedFormat":1},{"version":"1ecb8e347cb6b2a8927c09b86263663289418df375f5e68e11a0ae683776978f","affectsGlobalScope":true,"impliedFormat":1},{"version":"142efd4ce210576f777dc34df121777be89eda476942d6d6663b03dcb53be3ff","affectsGlobalScope":true,"impliedFormat":1},{"version":"379bc41580c2d774f82e828c70308f24a005b490c25ba34d679d84bcf05c3d9d","affectsGlobalScope":true,"impliedFormat":1},{"version":"ed484fb2aa8a1a23d0277056ec3336e0a0b52f9b8d6a961f338a642faf43235d","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ffedae1d1c2d53fdbca1c96d3c7dda544281f7d262f99b6880634f8fd8d9820","affectsGlobalScope":true,"impliedFormat":1},{"version":"83a730b125d477dd264df8ba479afab27a3dae7152b005c214ab94dc7ee44fd3","affectsGlobalScope":true,"impliedFormat":1},{"version":"1ce14b81c5cc821994aa8ec1d42b220dd41b27fcc06373bce3958af7421b77d4","affectsGlobalScope":true,"impliedFormat":1},{"version":"b3a048b3e9302ef9a34ef4ebb9aecfb28b66abb3bce577206a79fee559c230da","affectsGlobalScope":true,"impliedFormat":1},{"version":"ef4a897cd2a3f91000c10264e400b3667c7e51e1b7365f03b62e8081dc53bde6","impliedFormat":1},{"version":"4936d25ba31379ce4e3d4289f6c0ea936510e111f823ec377015de6ba7047adf","impliedFormat":99},{"version":"1ffa53902f87f288dbaebc1dd9c754a0f0f1c4af2733fc7e173022209e7d4ef8","impliedFormat":99},{"version":"d7801240a49920afb07e1a83597b05a26e5e3758163a70448ba14df3f7ab5286","affectsGlobalScope":true,"impliedFormat":99},{"version":"2aed5de224f5094280addfaf59e82b362b3680083917cfa7f066c4b89cc58b74","impliedFormat":99},{"version":"86ecf772256f9205f72c768dc9b47d27b4254a64a1dd94f61c8c2f29219c24e1","affectsGlobalScope":true,"impliedFormat":99},{"version":"f62bcd0d626998f4b14a5e4bf6c65abf4dfeaa042243dd57e4e92125fd602ed6","impliedFormat":99},{"version":"9462f849ff8d50a61639f09a8e369f7584c623a8cbcf9d99c6b81aacbca91fd2","impliedFormat":99},{"version":"6da820ee582c593971e71a933dbf54d72b47984bb11f888d225c7a8476e74790","impliedFormat":99},{"version":"048a292f9fb06d0aab8c52cabd81bc820c70d68500530afe1867c08e431d4e46","impliedFormat":99},{"version":"e2f9944677cba1c7f636dde67d7ca77982da3b52134c617bd86d3a4d8607b498","impliedFormat":99},{"version":"ceaf67c6cb2df4f38f466bd3709a72199d1d98377dcf215bf760b2a383fc73a8","impliedFormat":99},{"version":"c5f89dedf8e238012d580d16ee2286bf0681f1389f14d419c87711070430995c","affectsGlobalScope":true,"impliedFormat":99},{"version":"dc996a90baa100126e6014b2f55022930e1a44621ec68eb163f322714b7596bc","impliedFormat":99},{"version":"cdd5245a59183386c7b465ad56e2353a0a1b49c32733520ec5c0eeb718781012","impliedFormat":99},{"version":"35c6737b37a2c92e67a14ba7692f3216df6c140c28133835768f7c66cb15fa88","impliedFormat":99},{"version":"7b607f4711c496c7c4f57abddfc7b9912059e1f264417ff8f4280b65f756bf4d","impliedFormat":99},{"version":"17122ddf1e2ff9f0538a06af6edc8d2666d7e1a428239e86358afc09ac7a8779","impliedFormat":99},{"version":"2cc6a5c34041442caa16aff0686d41595296248c7c33bfac5b94cd4fe8ae20de","impliedFormat":99},{"version":"8384e3ab082eecd9d0faa07ddf7e9ff3879bfac60216e47328f799600e47ea80","affectsGlobalScope":true,"impliedFormat":99},{"version":"715e7c015d2f3f4de0da107d9be2db02b52cea3d2d446ad11d2e732848d8e3e7","impliedFormat":99},"cda120f78df4c624c7fb1bd8e17343a39bfbede803f38312fb8e51fa818e1a7a","d9e135cc1dcf9f798edb9665b777dcad812d980a467b6ed11ce1d1bb9f017176",{"version":"98b54e345329556822b32ccd2baa4868e666b95b1cb1e3bdc2ffbfa663eb2d65","signature":"fefaf643ad02c05059e06244a8291c4cb3a2693ec928c843599c25d00ee9f574"},{"version":"d14a86c46355f0d596beedb2d1f1044977d386401497394786d97e5e72237aac","signature":"5d856e0d97ff435c2672da9aa6d0e15d44c015abe30a3ad50080f9675daf557a"},{"version":"1a7eec8977d21e8bf216ea62b836bdda1768c2a49ee689e5e09fb2f56a7837e4","impliedFormat":99},{"version":"8deb0c1eae578bb83a0056727ddec6be752d015acebfdd90f53797f8a035e57d","affectsGlobalScope":true,"impliedFormat":99},{"version":"d0b90b2c22bda9b6a7dabfb505a7fd3896e0267ab791d63a4a37098d0829e1b0","impliedFormat":99},{"version":"d26efa37b7cbdcc391dc201683de609900869d285213abf1dcbfb5275427142f","affectsGlobalScope":true,"impliedFormat":99},{"version":"0fe0f52d9ee15bf4fbeef129a5841a706720641554be2220df52c994f343a2f1","impliedFormat":99},{"version":"586cc6c492134b4680582124d2cd7d20efe0993917871647e0000dbf670bc0da","impliedFormat":99},{"version":"eaac6969d2a0d853a8870b9ba9591b429b80f99308cc97c3fe223b54bfc4127f","impliedFormat":99},{"version":"4b8b7197750fcbfe01b0c3b0e42a18367763e07eb937e0a278a27c69489a2575","impliedFormat":99},{"version":"4829e04381717906f013cde4c25ef1b1e5b7ae889110e69f72ede6afa059ab0f","signature":"1b46812caaef920f5149572c615c356198c4662c2bdcfb0afadff5421958c617"},{"version":"62d4b415e3553483ef8cc01300b0de68c93418bfd4e9eafb069963acf2a8f851","signature":"4472121827717b820efdec25ac2452bf411a75c9423df10caeccf7b1c0da53d2"},{"version":"d153a11543fd884b596587ccd97aebbeed950b26933ee000f94009f1ab142848","affectsGlobalScope":true,"impliedFormat":1},{"version":"0ccdaa19852d25ecd84eec365c3bfa16e7859cadecf6e9ca6d0dbbbee439743f","affectsGlobalScope":true,"impliedFormat":1},{"version":"cc2110f7decca6bfb9392e30421cfa1436479e4a6756e8fec6cbc22625d4f881","affectsGlobalScope":true,"impliedFormat":1},{"version":"096116f8fedc1765d5bd6ef360c257b4a9048e5415054b3bf3c41b07f8951b0b","affectsGlobalScope":true,"impliedFormat":1},{"version":"e5e01375c9e124a83b52ee4b3244ed1a4d214a6cfb54ac73e164a823a4a7860a","affectsGlobalScope":true,"impliedFormat":1},{"version":"f90ae2bbce1505e67f2f6502392e318f5714bae82d2d969185c4a6cecc8af2fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"4b58e207b93a8f1c88bbf2a95ddc686ac83962b13830fe8ad3f404ffc7051fb4","affectsGlobalScope":true,"impliedFormat":1},{"version":"1fefabcb2b06736a66d2904074d56268753654805e829989a46a0161cd8412c5","affectsGlobalScope":true,"impliedFormat":1},{"version":"9798340ffb0d067d69b1ae5b32faa17ab31b82466a3fc00d8f2f2df0c8554aaa","affectsGlobalScope":true,"impliedFormat":1},{"version":"c18a99f01eb788d849ad032b31cafd49de0b19e083fe775370834c5675d7df8e","affectsGlobalScope":true,"impliedFormat":1},{"version":"5247874c2a23b9a62d178ae84f2db6a1d54e6c9a2e7e057e178cc5eea13757fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"cdcf9ea426ad970f96ac930cd176d5c69c6c24eebd9fc580e1572d6c6a88f62c","impliedFormat":1},{"version":"23cd712e2ce083d68afe69224587438e5914b457b8acf87073c22494d706a3d0","impliedFormat":1},{"version":"156a859e21ef3244d13afeeba4e49760a6afa035c149dda52f0c45ea8903b338","impliedFormat":1},{"version":"10ec5e82144dfac6f04fa5d1d6c11763b3e4dbbac6d99101427219ab3e2ae887","impliedFormat":1},{"version":"615754924717c0b1e293e083b83503c0a872717ad5aa60ed7f1a699eb1b4ea5c","impliedFormat":1},{"version":"074de5b2fdead0165a2757e3aaef20f27a6347b1c36adea27d51456795b37682","impliedFormat":1},{"version":"68834d631c8838c715f225509cfc3927913b9cc7a4870460b5b60c8dbdb99baf","impliedFormat":1},{"version":"4137ebf04166f3a325f056aa56101adc75e9dceb30404a1844eb8604d89770e2","impliedFormat":1},{"version":"ccab02f3920fc75c01174c47fcf67882a11daf16baf9e81701d0a94636e94556","impliedFormat":1},{"version":"3e11fce78ad8c0e1d1db4ba5f0652285509be3acdd519529bc8fcef85f7dafd9","impliedFormat":1},{"version":"ea6bc8de8b59f90a7a3960005fd01988f98fd0784e14bc6922dde2e93305ec7d","impliedFormat":1},{"version":"36107995674b29284a115e21a0618c4c2751b32a8766dd4cb3ba740308b16d59","impliedFormat":1},{"version":"914a0ae30d96d71915fc519ccb4efbf2b62c0ddfb3a3fc6129151076bc01dc60","impliedFormat":1},{"version":"9c32412007b5662fd34a8eb04292fb5314ec370d7016d1c2fb8aa193c807fe22","impliedFormat":1},{"version":"7fd1b31fd35876b0aa650811c25ec2c97a3c6387e5473eb18004bed86cdd76b6","impliedFormat":1},{"version":"4d327f7d72ad0918275cea3eee49a6a8dc8114ae1d5b7f3f5d0774de75f7439a","impliedFormat":1},{"version":"6ebe8ebb8659aaa9d1acbf3710d7dae3e923e97610238b9511c25dc39023a166","impliedFormat":1},{"version":"e85d7f8068f6a26710bff0cc8c0fc5e47f71089c3780fbede05857331d2ddec9","impliedFormat":1},{"version":"7befaf0e76b5671be1d47b77fcc65f2b0aad91cc26529df1904f4a7c46d216e9","impliedFormat":1},{"version":"0a60a292b89ca7218b8616f78e5bbd1c96b87e048849469cccb4355e98af959a","impliedFormat":1},{"version":"0b6e25234b4eec6ed96ab138d96eb70b135690d7dd01f3dd8a8ab291c35a683a","impliedFormat":1},{"version":"9666f2f84b985b62400d2e5ab0adae9ff44de9b2a34803c2c5bd3c8325b17dc0","impliedFormat":1},{"version":"40cd35c95e9cf22cfa5bd84e96408b6fcbca55295f4ff822390abb11afbc3dca","impliedFormat":1},{"version":"b1616b8959bf557feb16369c6124a97a0e74ed6f49d1df73bb4b9ddf68acf3f3","impliedFormat":1},{"version":"5b03a034c72146b61573aab280f295b015b9168470f2df05f6080a2122f9b4df","impliedFormat":1},{"version":"40b463c6766ca1b689bfcc46d26b5e295954f32ad43e37ee6953c0a677e4ae2b","impliedFormat":1},{"version":"249b9cab7f5d628b71308c7d9bb0a808b50b091e640ba3ed6e2d0516f4a8d91d","impliedFormat":1},{"version":"80aae6afc67faa5ac0b32b5b8bc8cc9f7fa299cff15cf09cc2e11fd28c6ae29e","impliedFormat":1},{"version":"f473cd2288991ff3221165dcf73cd5d24da30391f87e85b3dd4d0450c787a391","impliedFormat":1},{"version":"499e5b055a5aba1e1998f7311a6c441a369831c70905cc565ceac93c28083d53","impliedFormat":1},{"version":"8aee8b6d4f9f62cf3776cda1305fb18763e2aade7e13cea5bbe699112df85214","impliedFormat":1},{"version":"98498b101803bb3dde9f76a56e65c14b75db1cc8bec5f4db72be541570f74fc5","impliedFormat":1},{"version":"1cc2a09e1a61a5222d4174ab358a9f9de5e906afe79dbf7363d871a7edda3955","impliedFormat":1},{"version":"5d0375ca7310efb77e3ef18d068d53784faf62705e0ad04569597ae0e755c401","impliedFormat":1},{"version":"59af37caec41ecf7b2e76059c9672a49e682c1a2aa6f9d7dc78878f53aa284d6","impliedFormat":1},{"version":"addf417b9eb3f938fddf8d81e96393a165e4be0d4a8b6402292f9c634b1cb00d","impliedFormat":1},{"version":"b64d4d1c5f877f9c666e98e833f0205edb9384acc46e98a1fef344f64d6aba44","impliedFormat":1},{"version":"adf27937dba6af9f08a68c5b1d3fce0ca7d4b960c57e6d6c844e7d1a8e53adae","impliedFormat":1},{"version":"12950411eeab8563b349cb7959543d92d8d02c289ed893d78499a19becb5a8cc","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"c9381908473a1c92cb8c516b184e75f4d226dad95c3a85a5af35f670064d9a2f","impliedFormat":1},{"version":"c3f5289820990ab66b70c7fb5b63cb674001009ff84b13de40619619a9c8175f","affectsGlobalScope":true,"impliedFormat":1},{"version":"b3275d55fac10b799c9546804126239baf020d220136163f763b55a74e50e750","affectsGlobalScope":true,"impliedFormat":1},{"version":"fa68a0a3b7cb32c00e39ee3cd31f8f15b80cac97dce51b6ee7fc14a1e8deb30b","affectsGlobalScope":true,"impliedFormat":1},{"version":"1cf059eaf468efcc649f8cf6075d3cb98e9a35a0fe9c44419ec3d2f5428d7123","affectsGlobalScope":true,"impliedFormat":1},{"version":"6c36e755bced82df7fb6ce8169265d0a7bb046ab4e2cb6d0da0cb72b22033e89","affectsGlobalScope":true,"impliedFormat":1},{"version":"e7721c4f69f93c91360c26a0a84ee885997d748237ef78ef665b153e622b36c1","affectsGlobalScope":true,"impliedFormat":1},{"version":"7a93de4ff8a63bafe62ba86b89af1df0ccb5e40bb85b0c67d6bbcfdcf96bf3d4","affectsGlobalScope":true,"impliedFormat":1},{"version":"90e85f9bc549dfe2b5749b45fe734144e96cd5d04b38eae244028794e142a77e","affectsGlobalScope":true,"impliedFormat":1},{"version":"e0a5deeb610b2a50a6350bd23df6490036a1773a8a71d70f2f9549ab009e67ee","affectsGlobalScope":true,"impliedFormat":1},{"version":"d2ae155afe8a01cc0ae612d99117cf8ef16692ba7c4366590156fdec1bcf2d8c","impliedFormat":1},{"version":"3f5e5d9be35913db9fea42a63f3df0b7e3c8703b97670a2125587b4dbbd56d7c","impliedFormat":1},{"version":"8caeb65fdc3bfe0d13f86f67324fcb2d858ed1c55f1f0cce892eb1acfb9f3239","impliedFormat":1},{"version":"57c23df0b5f7a8e26363a3849b0bc7763f6b241207157c8e40089d1df4116f35","affectsGlobalScope":true,"impliedFormat":1},{"version":"3b8bc0c17b54081b0878673989216229e575d67a10874e84566a21025a2461ee","impliedFormat":1},{"version":"5b0db5a58b73498792a29bfebc333438e61906fef75da898b410e24e52229e6f","impliedFormat":1},{"version":"dbe055b2b29a7bab2c1ca8f259436306adb43f469dca7e639a02cd3695d3f621","impliedFormat":1},{"version":"1678b04557dca52feab73cc67610918a7f5e25bfdba3e7fa081acd625d93106d","impliedFormat":1},{"version":"e3905f6902f0b69e5eefc230daa69fdd4ab707a973ec2d086d65af1b3ea47ef0","impliedFormat":1},{"version":"2ea729503db9793f2691162fec3dd1118cab62e96d025f8eeb376d43ec293395","impliedFormat":1},{"version":"9ec87fea42b92894b0f209931a880789d43c3397d09dd99c631ae40a2f7071d1","impliedFormat":1},{"version":"c68e88cdfadfb6c8ba5fc38e58a3a166b0beae77b1f05b7d921150a32a5ffb8d","impliedFormat":1},{"version":"2bc7aa4fba46df0bd495425a7c8201437a7d465f83854fac859df2d67f664df3","impliedFormat":1},{"version":"41d17e1ad9a002feb11c8cdd2777e5bbc0cdb1e3f595d237e4dded0b6949983b","impliedFormat":1},{"version":"07e4e61e946a9c15045539ecd5f5d2d02e7aab6fa82567826857e09cf0f37c2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"1c4714ccc29149efb8777a1da0b04b8d2258f5d13ddbf4cd3c3d361fb531ac86","impliedFormat":1},{"version":"3ff275f84f89f8a7c0543da838f9da9614201abc4ce74c533029825adfb4433d","impliedFormat":1},{"version":"0eb5d0cbf09de5d34542b977fd6a933bb2e0817bffe8e1a541b2f1ad1b9af1ff","impliedFormat":1},{"version":"10deca769dfed888051b1808d6746f8883a490a707f8bdf9367079146987d6d0","impliedFormat":1},{"version":"2c2bdaa1d8ead9f68628d6d9d250e46ee8e81aa4898b4769a36956ae15e060fe","impliedFormat":1},{"version":"c32c840c62d8bd7aeb3147aa6754cd2d922b990a6b6634530cb2ebdce5adc8e9","impliedFormat":1},{"version":"e1c1a0b4d1ead0de9eca52203aeb1f771f21e6238d6fcd15aa56ac2a02f1b7bf","impliedFormat":1},{"version":"82b91e4e42e6c41bc7fc1b6c2dc5eba6a2ba98375eb1f210e6ff6bba2d54177e","impliedFormat":1},{"version":"6fe28249ac0c7bc19a79aa9264baf00efbd080e868dbe1d3052033ad1c64f206","affectsGlobalScope":true,"impliedFormat":1},{"version":"cbed824fec91efefc7bbdcb8b43d1a531fdbebd0e2ef19481501ff365a93cb70","impliedFormat":1},{"version":"8e9c23ba78aabc2e0a27033f18737a6df754067731e69dc5f52823957d60a4b6","impliedFormat":1},{"version":"d0716593b3f2b0451bcf0c24cfa86dec2235c325c89f201934248b7c742715fc","impliedFormat":1},{"version":"ec501101c2a96133a6c695f934c8f6642149cc728571b29cbb7b770984c1088e","impliedFormat":1},{"version":"b214ebcf76c51b115453f69729ee8aa7b7f8eccdae2a922b568a45c2d7ff52f7","impliedFormat":1},{"version":"429c9cdfa7d126255779efd7e6d9057ced2d69c81859bbab32073bad52e9ba76","impliedFormat":1},{"version":"2991bca2cc0f0628a278df2a2ccdb8d6cbcb700f3761abbed62bba137d5b1790","impliedFormat":1},{"version":"ce8653341224f8b45ff46d2a06f2cacb96f841f768a886c9d8dd8ec0878b11bd","affectsGlobalScope":true,"impliedFormat":1},{"version":"230763250f20449fa7b3c9273e1967adb0023dc890d4be1553faca658ee65971","impliedFormat":1},{"version":"c3e9078b60cb329d1221f5878e88cecfa3e74460550e605a58fcfb41a66029ff","impliedFormat":1},{"version":"a74edb3bab7394a9dbde529d60632be590def2f5f01024dbd85441587fbfbbe0","impliedFormat":1},{"version":"0ea59f7d3e51440baa64f429253759b106cfcbaf51e474cae606e02265b37cf8","impliedFormat":1},{"version":"bc18a1991ba681f03e13285fa1d7b99b03b67ee671b7bc936254467177543890","impliedFormat":1},{"version":"00049ccc87f3f37726db03c01ca68fe74fd9c0109b68c29eb9923ebec2c76b13","impliedFormat":1},{"version":"fa94bbf532b7af8f394b95fa310980d6e20bd2d4c871c6a6cb9f70f03750a44b","impliedFormat":1},{"version":"68d3f35108e2608b1f2f28b36d19d7055f31c4465cc5692cbd06c716a9fe7973","impliedFormat":1},{"version":"a6d543044570fbeed13a7f9925a868081cd2b14ef59cdd9da6ae76d41cab03d3","affectsGlobalScope":true,"impliedFormat":1},{"version":"7fa2214bb0d64701bc6f9ce8cde2fd2ff8c571e0b23065fa04a8a5a6beb91511","impliedFormat":1},{"version":"f1c93e046fb3d9b7f8249629f4b63dc068dd839b824dd0aa39a5e68476dc9420","impliedFormat":1},{"version":"016b29bf4926b80255a108c53a1451717350059da04fcae64d1075f5e93bbb39","impliedFormat":1},{"version":"841983e39bd4cbb463be385e92fda11057cab368bf27100a801c492f1d86cbaa","impliedFormat":1},{"version":"6f5383b3df1cdf4ff1aa7fb0850f77042b5786b5e65ec9a9b6be56ebfe4d9036","impliedFormat":1},{"version":"62fc21ed9ccbd83bd1166de277a4b5daaa8d15b5fa614c75610d20f3b73fba87","impliedFormat":1},{"version":"e4156ddb25aa0e3b5303d372f26957b36778f0f6bbd4326359269873295e3058","affectsGlobalScope":true,"impliedFormat":1},{"version":"cc1b433a84cae05ddc5672d4823170af78606ad21ecef60dbc4570190cbf1357","impliedFormat":1},{"version":"9d3821bc75c59577e52643324cec92fc2145642e8d17cf7ee07a3181f21d985d","impliedFormat":1},{"version":"7f78cfb2b343838612c192cb251746e3a7c62ac7675726a47e130d9b213f6580","impliedFormat":1},{"version":"201db9cf1687fab1adf5282fcba861f382b32303dc4f67c89d59655e78a25461","impliedFormat":1},{"version":"c77fb31bc17fd241d3922a9f88c59e3361cdf76d1328ba9412fc6bf7310b638d","impliedFormat":1},{"version":"0a20eaf2e4b1e3c1e1f87f7bccb0c936375b23b022baeea750519b7c9bc6ce83","impliedFormat":1},{"version":"b484ec11ba00e3a2235562a41898d55372ccabe607986c6fa4f4aba72093749f","impliedFormat":1},{"version":"a16b91b27bd6b706c687c88cbc8a7d4ee98e5ed6043026d6b84bda923c0aed67","impliedFormat":1},{"version":"694b812e0ed11285e8822cf8131e3ce7083a500b3b1d185fff9ed1089677bd0a","impliedFormat":1},{"version":"99ab6d0d660ce4d21efb52288a39fd35bb3f556980ec5463b1ae8f304a3bbc85","impliedFormat":1},{"version":"6eeded8c7e352be6e0efb83f4935ec752513c4d22043b52522b90849a49a3a11","impliedFormat":1},{"version":"6c1ad90050ffbb151cacc68e2d06ea1a26a945659391e32651f5d42b86fd7f2c","impliedFormat":1},{"version":"55cdbeebe76a1fa18bbd7e7bf73350a2173926bd3085bb050cf5a5397025ee4e","impliedFormat":1}],"root":[116,117,126,127],"options":{"allowImportingTsExtensions":true,"allowJs":true,"checkJs":false,"composite":true,"declaration":true,"declarationDir":"./lib/types","emitDeclarationOnly":true,"experimentalDecorators":true,"module":99,"outDir":"./lib","rootDir":"./src","skipLibCheck":true,"strict":false,"target":99},"referencedMap":[[104,1],[105,2],[106,3],[107,4],[118,5],[119,6],[124,7],[125,8],[108,9],[109,10],[94,10],[110,10],[111,11],[112,12],[113,13],[103,14],[97,15],[98,16],[99,17],[100,18],[120,19],[121,20],[122,3],[123,21],[95,22],[96,14],[101,23],[102,24],[190,25],[191,25],[192,26],[130,27],[193,28],[194,29],[195,30],[128,10],[196,31],[197,32],[198,33],[199,34],[200,35],[201,36],[202,36],[203,37],[204,38],[205,39],[206,40],[131,10],[129,10],[207,41],[208,42],[209,43],[250,44],[210,45],[211,46],[212,45],[213,47],[214,48],[216,49],[217,50],[218,50],[219,50],[220,51],[221,52],[222,53],[223,54],[224,55],[225,56],[226,56],[227,57],[228,10],[229,10],[230,58],[231,59],[232,58],[233,60],[234,61],[235,62],[236,63],[237,64],[238,65],[239,66],[240,67],[241,68],[242,69],[243,70],[244,71],[245,72],[246,73],[247,74],[132,45],[133,10],[134,10],[135,75],[136,10],[137,31],[138,10],[181,76],[182,77],[183,78],[184,78],[185,79],[186,10],[187,28],[188,80],[189,77],[248,81],[249,82],[215,10],[91,10],[92,10],[16,10],[14,10],[15,10],[20,10],[19,10],[2,10],[21,10],[22,10],[23,10],[24,10],[25,10],[26,10],[27,10],[28,10],[3,10],[29,10],[30,10],[4,10],[31,10],[35,10],[32,10],[33,10],[34,10],[36,10],[37,10],[38,10],[5,10],[39,10],[40,10],[41,10],[42,10],[6,10],[46,10],[43,10],[44,10],[45,10],[47,10],[7,10],[48,10],[53,10],[54,10],[49,10],[50,10],[51,10],[52,10],[8,10],[58,10],[55,10],[56,10],[57,10],[59,10],[9,10],[60,10],[61,10],[62,10],[64,10],[63,10],[65,10],[66,10],[10,10],[67,10],[68,10],[69,10],[11,10],[70,10],[71,10],[72,10],[73,10],[74,10],[75,10],[12,10],[76,10],[77,10],[78,10],[79,10],[80,10],[1,10],[81,10],[82,10],[13,10],[83,10],[84,10],[85,10],[86,10],[93,10],[87,10],[88,10],[89,10],[90,10],[18,10],[17,10],[157,83],[169,84],[154,85],[170,86],[179,87],[145,88],[146,89],[144,90],[178,91],[173,92],[177,93],[148,94],[166,95],[147,96],[176,97],[142,98],[143,92],[149,99],[150,10],[156,100],[153,99],[140,101],[180,102],[171,103],[160,104],[159,99],[161,105],[164,106],[158,107],[162,108],[174,91],[151,109],[152,110],[165,111],[141,86],[168,112],[167,99],[155,110],[163,113],[172,10],[139,10],[175,114],[115,115],[114,10],[116,116],[127,117],[117,45],[126,118]],"latestChangedDtsFile":"./lib/types/index.d.ts","version":"6.0.3"}
1
+ {"fileNames":["../../../node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/typescript/lib/lib.es2021.d.ts","../../../node_modules/typescript/lib/lib.es2022.d.ts","../../../node_modules/typescript/lib/lib.es2023.d.ts","../../../node_modules/typescript/lib/lib.es2024.d.ts","../../../node_modules/typescript/lib/lib.es2025.d.ts","../../../node_modules/typescript/lib/lib.esnext.d.ts","../../../node_modules/typescript/lib/lib.dom.d.ts","../../../node_modules/typescript/lib/lib.dom.iterable.d.ts","../../../node_modules/typescript/lib/lib.dom.asynciterable.d.ts","../../../node_modules/typescript/lib/lib.webworker.importscripts.d.ts","../../../node_modules/typescript/lib/lib.scripthost.d.ts","../../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/typescript/lib/lib.es2016.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../../node_modules/typescript/lib/lib.es2017.date.d.ts","../../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../../node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../node_modules/typescript/lib/lib.es2021.string.d.ts","../../../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../node_modules/typescript/lib/lib.es2021.intl.d.ts","../../../node_modules/typescript/lib/lib.es2022.array.d.ts","../../../node_modules/typescript/lib/lib.es2022.error.d.ts","../../../node_modules/typescript/lib/lib.es2022.intl.d.ts","../../../node_modules/typescript/lib/lib.es2022.object.d.ts","../../../node_modules/typescript/lib/lib.es2022.string.d.ts","../../../node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../../node_modules/typescript/lib/lib.es2023.array.d.ts","../../../node_modules/typescript/lib/lib.es2023.collection.d.ts","../../../node_modules/typescript/lib/lib.es2023.intl.d.ts","../../../node_modules/typescript/lib/lib.es2024.arraybuffer.d.ts","../../../node_modules/typescript/lib/lib.es2024.collection.d.ts","../../../node_modules/typescript/lib/lib.es2024.object.d.ts","../../../node_modules/typescript/lib/lib.es2024.promise.d.ts","../../../node_modules/typescript/lib/lib.es2024.regexp.d.ts","../../../node_modules/typescript/lib/lib.es2024.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2024.string.d.ts","../../../node_modules/typescript/lib/lib.es2025.collection.d.ts","../../../node_modules/typescript/lib/lib.es2025.float16.d.ts","../../../node_modules/typescript/lib/lib.es2025.intl.d.ts","../../../node_modules/typescript/lib/lib.es2025.iterator.d.ts","../../../node_modules/typescript/lib/lib.es2025.promise.d.ts","../../../node_modules/typescript/lib/lib.es2025.regexp.d.ts","../../../node_modules/typescript/lib/lib.esnext.array.d.ts","../../../node_modules/typescript/lib/lib.esnext.collection.d.ts","../../../node_modules/typescript/lib/lib.esnext.date.d.ts","../../../node_modules/typescript/lib/lib.esnext.decorators.d.ts","../../../node_modules/typescript/lib/lib.esnext.disposable.d.ts","../../../node_modules/typescript/lib/lib.esnext.error.d.ts","../../../node_modules/typescript/lib/lib.esnext.intl.d.ts","../../../node_modules/typescript/lib/lib.esnext.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.esnext.temporal.d.ts","../../../node_modules/typescript/lib/lib.esnext.typedarrays.d.ts","../../../node_modules/typescript/lib/lib.decorators.d.ts","../../../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../../node_modules/typescript/lib/lib.esnext.full.d.ts","../../../node_modules/@girs/gjs/gettext.d.ts","../../../node_modules/@girs/gobject-2.0/gobject-2.0-ambient.d.ts","../../../node_modules/@girs/gobject-2.0/gobject-2.0-import.d.ts","../../../node_modules/@girs/glib-2.0/glib-2.0-ambient.d.ts","../../../node_modules/@girs/glib-2.0/glib-2.0-import.d.ts","../../../node_modules/@girs/glib-2.0/glib-2.0.d.ts","../../../node_modules/@girs/glib-2.0/index.d.ts","../../../node_modules/@girs/gobject-2.0/gobject-2.0.d.ts","../../../node_modules/@girs/gobject-2.0/index.d.ts","../../../node_modules/@girs/gjs/system.d.ts","../../../node_modules/@girs/cairo-1.0/cairo-1.0-ambient.d.ts","../../../node_modules/@girs/cairo-1.0/cairo-1.0-import.d.ts","../../../node_modules/@girs/cairo-1.0/cairo-1.0.d.ts","../../../node_modules/@girs/cairo-1.0/index.d.ts","../../../node_modules/@girs/gjs/cairo.d.ts","../../../node_modules/@girs/gjs/console.d.ts","../../../node_modules/@girs/gjs/gi.d.ts","../../../node_modules/@girs/gjs/gjs-ambient.d.ts","../../../node_modules/@girs/gjs/gjs.d.ts","../../../node_modules/@girs/gjs/index.d.ts","../../gjs/unit/lib/types/spy.d.ts","../../gjs/unit/lib/types/index.d.ts","./src/index.spec.ts","./src/message-port.ts","../../../node_modules/@girs/gio-2.0/gio-2.0-ambient.d.ts","../../../node_modules/@girs/gio-2.0/gio-2.0-import.d.ts","../../../node_modules/@girs/gmodule-2.0/gmodule-2.0-ambient.d.ts","../../../node_modules/@girs/gmodule-2.0/gmodule-2.0-import.d.ts","../../../node_modules/@girs/gmodule-2.0/gmodule-2.0.d.ts","../../../node_modules/@girs/gmodule-2.0/index.d.ts","../../../node_modules/@girs/gio-2.0/gio-2.0.d.ts","../../../node_modules/@girs/gio-2.0/index.d.ts","./src/worker.ts","./src/index.ts","../../../node_modules/@types/node/compatibility/iterators.d.ts","../../../node_modules/@types/node/globals.typedarray.d.ts","../../../node_modules/@types/node/buffer.buffer.d.ts","../../../node_modules/@types/node/globals.d.ts","../../../node_modules/@types/node/web-globals/abortcontroller.d.ts","../../../node_modules/@types/node/web-globals/blob.d.ts","../../../node_modules/@types/node/web-globals/console.d.ts","../../../node_modules/@types/node/web-globals/crypto.d.ts","../../../node_modules/@types/node/web-globals/domexception.d.ts","../../../node_modules/@types/node/web-globals/encoding.d.ts","../../../node_modules/@types/node/web-globals/events.d.ts","../../../node_modules/undici-types/utility.d.ts","../../../node_modules/undici-types/header.d.ts","../../../node_modules/undici-types/readable.d.ts","../../../node_modules/undici-types/fetch.d.ts","../../../node_modules/undici-types/formdata.d.ts","../../../node_modules/undici-types/connector.d.ts","../../../node_modules/undici-types/client-stats.d.ts","../../../node_modules/undici-types/client.d.ts","../../../node_modules/undici-types/errors.d.ts","../../../node_modules/undici-types/dispatcher.d.ts","../../../node_modules/undici-types/global-dispatcher.d.ts","../../../node_modules/undici-types/global-origin.d.ts","../../../node_modules/undici-types/pool-stats.d.ts","../../../node_modules/undici-types/pool.d.ts","../../../node_modules/undici-types/handlers.d.ts","../../../node_modules/undici-types/balanced-pool.d.ts","../../../node_modules/undici-types/round-robin-pool.d.ts","../../../node_modules/undici-types/h2c-client.d.ts","../../../node_modules/undici-types/agent.d.ts","../../../node_modules/undici-types/mock-interceptor.d.ts","../../../node_modules/undici-types/mock-call-history.d.ts","../../../node_modules/undici-types/mock-agent.d.ts","../../../node_modules/undici-types/mock-client.d.ts","../../../node_modules/undici-types/mock-pool.d.ts","../../../node_modules/undici-types/snapshot-agent.d.ts","../../../node_modules/undici-types/mock-errors.d.ts","../../../node_modules/undici-types/proxy-agent.d.ts","../../../node_modules/undici-types/env-http-proxy-agent.d.ts","../../../node_modules/undici-types/retry-handler.d.ts","../../../node_modules/undici-types/retry-agent.d.ts","../../../node_modules/undici-types/api.d.ts","../../../node_modules/undici-types/cache-interceptor.d.ts","../../../node_modules/undici-types/interceptors.d.ts","../../../node_modules/undici-types/util.d.ts","../../../node_modules/undici-types/cookies.d.ts","../../../node_modules/undici-types/patch.d.ts","../../../node_modules/undici-types/websocket.d.ts","../../../node_modules/undici-types/eventsource.d.ts","../../../node_modules/undici-types/diagnostics-channel.d.ts","../../../node_modules/undici-types/content-type.d.ts","../../../node_modules/undici-types/cache.d.ts","../../../node_modules/undici-types/index.d.ts","../../../node_modules/@types/node/web-globals/fetch.d.ts","../../../node_modules/@types/node/web-globals/importmeta.d.ts","../../../node_modules/@types/node/web-globals/messaging.d.ts","../../../node_modules/@types/node/web-globals/navigator.d.ts","../../../node_modules/@types/node/web-globals/performance.d.ts","../../../node_modules/@types/node/web-globals/storage.d.ts","../../../node_modules/@types/node/web-globals/streams.d.ts","../../../node_modules/@types/node/web-globals/timers.d.ts","../../../node_modules/@types/node/web-globals/url.d.ts","../../../node_modules/@types/node/assert.d.ts","../../../node_modules/@types/node/assert/strict.d.ts","../../../node_modules/@types/node/async_hooks.d.ts","../../../node_modules/@types/node/buffer.d.ts","../../../node_modules/@types/node/child_process.d.ts","../../../node_modules/@types/node/cluster.d.ts","../../../node_modules/@types/node/console.d.ts","../../../node_modules/@types/node/constants.d.ts","../../../node_modules/@types/node/crypto.d.ts","../../../node_modules/@types/node/dgram.d.ts","../../../node_modules/@types/node/diagnostics_channel.d.ts","../../../node_modules/@types/node/dns.d.ts","../../../node_modules/@types/node/dns/promises.d.ts","../../../node_modules/@types/node/domain.d.ts","../../../node_modules/@types/node/events.d.ts","../../../node_modules/@types/node/fs.d.ts","../../../node_modules/@types/node/fs/promises.d.ts","../../../node_modules/@types/node/http.d.ts","../../../node_modules/@types/node/http2.d.ts","../../../node_modules/@types/node/https.d.ts","../../../node_modules/@types/node/inspector.d.ts","../../../node_modules/@types/node/inspector.generated.d.ts","../../../node_modules/@types/node/inspector/promises.d.ts","../../../node_modules/@types/node/module.d.ts","../../../node_modules/@types/node/net.d.ts","../../../node_modules/buffer/index.d.ts","../../../node_modules/@types/node/os.d.ts","../../../node_modules/@types/node/path.d.ts","../../../node_modules/@types/node/path/posix.d.ts","../../../node_modules/@types/node/path/win32.d.ts","../../../node_modules/@types/node/perf_hooks.d.ts","../../../node_modules/@types/node/process.d.ts","../../../node_modules/@types/node/punycode.d.ts","../../../node_modules/@types/node/querystring.d.ts","../../../node_modules/@types/node/quic.d.ts","../../../node_modules/@types/node/readline.d.ts","../../../node_modules/@types/node/readline/promises.d.ts","../../../node_modules/@types/node/repl.d.ts","../../../node_modules/@types/node/sea.d.ts","../../../node_modules/@types/node/sqlite.d.ts","../../../node_modules/@types/node/stream.d.ts","../../../node_modules/@types/node/stream/consumers.d.ts","../../../node_modules/@types/node/stream/promises.d.ts","../../../node_modules/@types/node/stream/web.d.ts","../../../node_modules/@types/node/string_decoder.d.ts","../../../node_modules/@types/node/test.d.ts","../../../node_modules/@types/node/test/reporters.d.ts","../../../node_modules/@types/node/timers.d.ts","../../../node_modules/@types/node/timers/promises.d.ts","../../../node_modules/@types/node/tls.d.ts","../../../node_modules/@types/node/trace_events.d.ts","../../../node_modules/@types/node/tty.d.ts","../../../node_modules/@types/node/url.d.ts","../../../node_modules/@types/node/util.d.ts","../../../node_modules/@types/node/util/types.d.ts","../../../node_modules/@types/node/v8.d.ts","../../../node_modules/@types/node/vm.d.ts","../../../node_modules/@types/node/wasi.d.ts","../../../node_modules/@types/node/worker_threads.d.ts","../../../node_modules/@types/node/zlib.d.ts","../../../node_modules/@types/node/index.d.ts"],"fileIdsList":[[104,107,111,130,193,196,201,205,208,210,211,212,225],[107,111,130,193,196,201,205,208,210,211,212,225],[100,102,111,113,130,193,196,201,205,208,210,211,212,225],[105,106,111,130,193,196,201,205,208,210,211,212,225],[111,118,125,130,193,196,201,205,208,210,211,212,225],[111,125,130,193,196,201,205,208,210,211,212,225],[100,102,111,113,123,130,193,196,201,205,208,210,211,212,225],[111,119,124,130,193,196,201,205,208,210,211,212,225],[102,107,111,130,193,196,201,205,208,210,211,212,225],[111,130,193,196,201,205,208,210,211,212,225],[94,103,108,109,110,130,193,196,201,205,208,210,211,212,225],[94,100,102,103,108,111,130,193,196,201,205,208,210,211,212,225],[111,112,130,193,196,201,205,208,210,211,212,225],[102,111,130,193,196,201,205,208,210,211,212,225],[97,100,111,130,193,196,201,205,208,210,211,212,225],[100,111,130,193,196,201,205,208,210,211,212,225],[102,111,113,130,193,196,201,205,208,210,211,212,225],[98,99,111,130,193,196,201,205,208,210,211,212,225],[111,120,123,130,193,196,201,205,208,210,211,212,225],[111,123,130,193,196,201,205,208,210,211,212,225],[111,121,122,130,193,196,201,205,208,210,211,212,225],[95,102,111,130,193,196,201,205,208,210,211,212,225],[100,111,113,130,193,196,201,205,208,210,211,212,225],[96,101,111,130,193,196,201,205,208,210,211,212,225],[111,130,190,191,193,196,201,205,208,210,211,212,225],[111,130,192,193,196,201,205,208,210,211,212,225],[111,193,196,201,205,208,210,211,212,225],[111,130,193,196,201,205,208,210,211,212,225,233],[111,130,193,194,196,199,201,204,205,208,210,211,212,214,225,230,242],[111,130,193,194,195,196,201,204,205,208,210,211,212,225],[111,130,193,196,201,205,208,210,211,212,225,243],[111,130,193,196,197,198,201,205,208,210,211,212,216,225],[111,130,193,196,198,201,205,208,210,211,212,225,230,239],[111,130,193,196,199,201,204,205,208,210,211,212,214,225],[111,130,192,193,196,200,201,205,208,210,211,212,225],[111,130,193,196,201,202,205,208,210,211,212,225],[111,130,193,196,201,203,204,205,208,210,211,212,225],[111,130,192,193,196,201,204,205,208,210,211,212,225],[111,130,193,196,201,204,205,206,208,210,211,212,225,230,242],[111,130,193,196,201,204,205,206,208,210,211,212,225,230,233],[111,130,180,193,196,201,204,205,207,208,210,211,212,214,225,230,242],[111,130,193,196,201,204,205,207,208,210,211,212,214,225,230,239,242],[111,130,193,196,201,205,207,208,209,210,211,212,225,230,239,242],[111,128,129,130,131,132,133,134,135,136,137,138,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,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],[111,130,193,196,201,204,205,208,210,211,212,225],[111,130,193,196,201,205,208,210,212,225],[111,130,193,196,201,205,208,210,211,212,213,225,242],[111,130,193,196,201,204,205,208,210,211,212,214,225,230],[111,130,193,196,201,205,208,210,211,212,216,225],[111,130,193,196,201,205,208,210,211,212,217,225],[111,130,193,196,201,204,205,208,210,211,212,220,225],[111,130,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,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],[111,130,193,196,201,205,208,210,211,212,222,225],[111,130,193,196,201,205,208,210,211,212,223,225],[111,130,193,196,198,201,205,208,210,211,212,214,225,233],[111,130,193,196,201,204,205,208,210,211,212,225,226],[111,130,193,196,201,205,208,210,211,212,225,227,243,246],[111,130,193,196,201,204,205,208,210,211,212,225,230,232,233],[111,130,193,196,201,205,208,210,211,212,225,231,233],[111,130,193,196,201,205,208,210,211,212,225,233,243],[111,130,193,196,201,205,208,210,211,212,225,234],[111,130,190,193,196,201,205,208,210,211,212,225,230,236,242],[111,130,193,196,201,205,208,210,211,212,225,230,235],[111,130,193,196,201,204,205,208,210,211,212,225,237,238],[111,130,193,196,201,205,208,210,211,212,225,237,238],[111,130,193,196,198,201,205,208,210,211,212,214,225,230,239],[111,130,193,196,201,205,208,210,211,212,225,240],[111,130,193,196,201,205,208,210,211,212,214,225,241],[111,130,193,196,201,205,207,208,210,211,212,223,225,242],[111,130,193,196,201,205,208,210,211,212,225,243,244],[111,130,193,196,198,201,205,208,210,211,212,225,244],[111,130,193,196,201,205,208,210,211,212,225,230,245],[111,130,193,196,201,205,208,210,211,212,213,225,246],[111,130,193,196,201,205,208,210,211,212,225,247],[111,130,193,196,198,201,205,208,210,211,212,225],[111,130,180,193,196,201,205,208,210,211,212,225],[111,130,193,196,201,205,208,210,211,212,225,242],[111,130,193,196,201,205,208,210,211,212,225,248],[111,130,193,196,201,205,208,210,211,212,220,225],[111,130,193,196,201,205,208,210,211,212,225,238],[111,130,180,193,196,201,204,205,206,208,210,211,212,220,225,230,233,242,245,246,248],[111,130,193,196,201,205,208,210,211,212,225,230,249],[111,130,145,148,151,152,193,196,201,205,208,210,211,212,225,242],[111,130,148,193,196,201,205,208,210,211,212,225,230,242],[111,130,148,152,193,196,201,205,208,210,211,212,225,242],[111,130,193,196,201,205,208,210,211,212,225,230],[111,130,142,193,196,201,205,208,210,211,212,225],[111,130,146,193,196,201,205,208,210,211,212,225],[111,130,144,145,148,193,196,201,205,208,210,211,212,225,242],[111,130,193,196,201,205,208,210,211,212,214,225,239],[111,130,193,196,201,205,208,210,211,212,225,250],[111,130,142,193,196,201,205,208,210,211,212,225,250],[111,130,144,148,193,196,201,205,208,210,211,212,214,225,242],[111,130,139,140,141,143,147,193,196,201,204,205,208,210,211,212,225,230,242],[111,130,148,157,165,193,196,201,205,208,210,211,212,225],[111,130,140,146,193,196,201,205,208,210,211,212,225],[111,130,148,174,175,193,196,201,205,208,210,211,212,225],[111,130,140,143,148,193,196,201,205,208,210,211,212,225,233,242,250],[111,130,148,193,196,201,205,208,210,211,212,225],[111,130,144,148,193,196,201,205,208,210,211,212,225,242],[111,130,139,193,196,201,205,208,210,211,212,225],[111,130,142,143,144,146,147,148,149,150,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,175,176,177,178,179,193,196,201,205,208,210,211,212,225],[111,130,148,167,170,193,196,201,205,208,210,211,212,225],[111,130,148,157,158,159,193,196,201,205,208,210,211,212,225],[111,130,146,148,158,160,193,196,201,205,208,210,211,212,225],[111,130,147,193,196,201,205,208,210,211,212,225],[111,130,140,142,148,193,196,201,205,208,210,211,212,225],[111,130,148,152,158,160,193,196,201,205,208,210,211,212,225],[111,130,152,193,196,201,205,208,210,211,212,225],[111,130,146,148,151,193,196,201,205,208,210,211,212,225,242],[111,130,140,144,148,157,193,196,201,205,208,210,211,212,225],[111,130,148,167,193,196,201,205,208,210,211,212,225],[111,130,160,193,196,201,205,208,210,211,212,225],[111,130,142,148,174,193,196,201,205,208,210,211,212,225,233,248,250],[111,113,114,130,193,196,201,205,208,210,211,212,225],[111,115,130,193,196,201,205,208,210,211,212,225,248],[111,117,126,130,193,196,201,205,208,210,211,212,225],[100,111,125,130,193,196,201,204,205,208,210,211,212,225]],"fileInfos":[{"version":"bcd24271a113971ba9eb71ff8cb01bc6b0f872a85c23fdbe5d93065b375933cd","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f88bedbeb09c6f5a6645cb24c7c55f1aa22d19ae96c8e6959cbd8b85a707bc6","impliedFormat":1},{"version":"7fe93b39b810eadd916be8db880dd7f0f7012a5cc6ffb62de8f62a2117fa6f1f","impliedFormat":1},{"version":"bb0074cc08b84a2374af33d8bf044b80851ccc9e719a5e202eacf40db2c31600","impliedFormat":1},{"version":"1a7daebe4f45fb03d9ec53d60008fbf9ac45a697fdc89e4ce218bc94b94f94d6","impliedFormat":1},{"version":"f94b133a3cb14a288803be545ac2683e0d0ff6661bcd37e31aaaec54fc382aed","impliedFormat":1},{"version":"f59d0650799f8782fd74cf73c19223730c6d1b9198671b1c5b3a38e1188b5953","impliedFormat":1},{"version":"8a15b4607d9a499e2dbeed9ec0d3c0d7372c850b2d5f1fb259e8f6d41d468a84","impliedFormat":1},{"version":"26e0fe14baee4e127f4365d1ae0b276f400562e45e19e35fd2d4c296684715e6","impliedFormat":1},{"version":"1e9332c23e9a907175e0ffc6a49e236f97b48838cc8aec9ce7e4cec21e544b65","impliedFormat":1},{"version":"3753fbc1113dc511214802a2342280a8b284ab9094f6420e7aa171e868679f91","impliedFormat":1},{"version":"999ca32883495a866aa5737fe1babc764a469e4cde6ee6b136a4b9ae68853e4b","impliedFormat":1},{"version":"17f13ecb98cbc39243f2eee1f16d45cd8ec4706b03ee314f1915f1a8b42f6984","impliedFormat":1},{"version":"d6b1eba8496bdd0eed6fc8a685768fe01b2da4a0388b5fe7df558290bffcf32f","affectsGlobalScope":true,"impliedFormat":1},{"version":"7f57fc4404ff020bc45b9c620aff2b40f700b95fe31164024c453a5e3c163c54","impliedFormat":1},{"version":"7f57fc4404ff020bc45b9c620aff2b40f700b95fe31164024c453a5e3c163c54","impliedFormat":1},{"version":"2a2de5b9459b3fc44decd9ce6100b72f1b002ef523126c1d3d8b2a4a63d74d78","affectsGlobalScope":true,"impliedFormat":1},{"version":"f13f4b465c99041e912db5c44129a94588e1aafee35a50eab51044833f50b4ee","affectsGlobalScope":true,"impliedFormat":1},{"version":"eadcffda2aa84802c73938e589b9e58248d74c59cb7fcbca6474e3435ac15504","affectsGlobalScope":true,"impliedFormat":1},{"version":"105ba8ff7ba746404fe1a2e189d1d3d2e0eb29a08c18dded791af02f29fb4711","affectsGlobalScope":true,"impliedFormat":1},{"version":"00343ca5b2e3d48fa5df1db6e32ea2a59afab09590274a6cccb1dbae82e60c7c","affectsGlobalScope":true,"impliedFormat":1},{"version":"ebd9f816d4002697cb2864bea1f0b70a103124e18a8cd9645eeccc09bdf80ab4","affectsGlobalScope":true,"impliedFormat":1},{"version":"2c1afac30a01772cd2a9a298a7ce7706b5892e447bb46bdbeef720f7b5da77ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"7b0225f483e4fa685625ebe43dd584bb7973bbd84e66a6ba7bbe175ee1048b4f","affectsGlobalScope":true,"impliedFormat":1},{"version":"c0a4b8ac6ce74679c1da2b3795296f5896e31c38e888469a8e0f99dc3305de60","affectsGlobalScope":true,"impliedFormat":1},{"version":"3084a7b5f569088e0146533a00830e206565de65cae2239509168b11434cd84f","affectsGlobalScope":true,"impliedFormat":1},{"version":"c5079c53f0f141a0698faa903e76cb41cd664e3efb01cc17a5c46ec2eb0bef42","affectsGlobalScope":true,"impliedFormat":1},{"version":"32cafbc484dea6b0ab62cf8473182bbcb23020d70845b406f80b7526f38ae862","affectsGlobalScope":true,"impliedFormat":1},{"version":"fca4cdcb6d6c5ef18a869003d02c9f0fd95df8cfaf6eb431cd3376bc034cad36","affectsGlobalScope":true,"impliedFormat":1},{"version":"b93ec88115de9a9dc1b602291b85baf825c85666bf25985cc5f698073892b467","affectsGlobalScope":true,"impliedFormat":1},{"version":"f5c06dcc3fe849fcb297c247865a161f995cc29de7aa823afdd75aaaddc1419b","affectsGlobalScope":true,"impliedFormat":1},{"version":"b77e16112127a4b169ef0b8c3a4d730edf459c5f25fe52d5e436a6919206c4d7","affectsGlobalScope":true,"impliedFormat":1},{"version":"fbffd9337146eff822c7c00acbb78b01ea7ea23987f6c961eba689349e744f8c","affectsGlobalScope":true,"impliedFormat":1},{"version":"a995c0e49b721312f74fdfb89e4ba29bd9824c770bbb4021d74d2bf560e4c6bd","affectsGlobalScope":true,"impliedFormat":1},{"version":"c7b3542146734342e440a84b213384bfa188835537ddbda50d30766f0593aff9","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce6180fa19b1cccd07ee7f7dbb9a367ac19c0ed160573e4686425060b6df7f57","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f02e2476bccb9dbe21280d6090f0df17d2f66b74711489415a8aa4df73c9675","affectsGlobalScope":true,"impliedFormat":1},{"version":"45e3ab34c1c013c8ab2dc1ba4c80c780744b13b5676800ae2e3be27ae862c40c","affectsGlobalScope":true,"impliedFormat":1},{"version":"805c86f6cca8d7702a62a844856dbaa2a3fd2abef0536e65d48732441dde5b5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"e42e397f1a5a77994f0185fd1466520691456c772d06bf843e5084ceb879a0ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"f4c2b41f90c95b1c532ecc874bd3c111865793b23aebcc1c3cbbabcd5d76ffb0","affectsGlobalScope":true,"impliedFormat":1},{"version":"ab26191cfad5b66afa11b8bf935ef1cd88fabfcb28d30b2dfa6fad877d050332","affectsGlobalScope":true,"impliedFormat":1},{"version":"2088bc26531e38fb05eedac2951480db5309f6be3fa4a08d2221abb0f5b4200d","affectsGlobalScope":true,"impliedFormat":1},{"version":"cb9d366c425fea79716a8fb3af0d78e6b22ebbab3bd64d25063b42dc9f531c1e","affectsGlobalScope":true,"impliedFormat":1},{"version":"500934a8089c26d57ebdb688fc9757389bb6207a3c8f0674d68efa900d2abb34","affectsGlobalScope":true,"impliedFormat":1},{"version":"689da16f46e647cef0d64b0def88910e818a5877ca5379ede156ca3afb780ac3","affectsGlobalScope":true,"impliedFormat":1},{"version":"bc21cc8b6fee4f4c2440d08035b7ea3c06b3511314c8bab6bef7a92de58a2593","affectsGlobalScope":true,"impliedFormat":1},{"version":"7ca53d13d2957003abb47922a71866ba7cb2068f8d154877c596d63c359fed25","affectsGlobalScope":true,"impliedFormat":1},{"version":"54725f8c4df3d900cb4dac84b64689ce29548da0b4e9b7c2de61d41c79293611","affectsGlobalScope":true,"impliedFormat":1},{"version":"e5594bc3076ac29e6c1ebda77939bc4c8833de72f654b6e376862c0473199323","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f3eb332c2d73e729f3364fcc0c2b375e72a121e8157d25a82d67a138c83a95c","affectsGlobalScope":true,"impliedFormat":1},{"version":"6f4427f9642ce8d500970e4e69d1397f64072ab73b97e476b4002a646ac743b1","affectsGlobalScope":true,"impliedFormat":1},{"version":"48915f327cd1dea4d7bd358d9dc7732f58f9e1626a29cc0c05c8c692419d9bb7","affectsGlobalScope":true,"impliedFormat":1},{"version":"b7bf9377723203b5a6a4b920164df22d56a43f593269ba6ae1fdc97774b68855","affectsGlobalScope":true,"impliedFormat":1},{"version":"db9709688f82c9e5f65a119c64d835f906efe5f559d08b11642d56eb85b79357","affectsGlobalScope":true,"impliedFormat":1},{"version":"4b25b8c874acd1a4cf8444c3617e037d444d19080ac9f634b405583fd10ce1f7","affectsGlobalScope":true,"impliedFormat":1},{"version":"37be57d7c90cf1f8112ee2636a068d8fd181289f82b744160ec56a7dc158a9f5","affectsGlobalScope":true,"impliedFormat":1},{"version":"a917a49ac94cd26b754ab84e113369a75d1a47a710661d7cd25e961cc797065f","affectsGlobalScope":true,"impliedFormat":1},{"version":"6d3261badeb7843d157ef3e6f5d1427d0eeb0af0cf9df84a62cfd29fd47ac86e","affectsGlobalScope":true,"impliedFormat":1},{"version":"195daca651dde22f2167ac0d0a05e215308119a3100f5e6268e8317d05a92526","affectsGlobalScope":true,"impliedFormat":1},{"version":"8b11e4285cd2bb164a4dc09248bdec69e9842517db4ca47c1ba913011e44ff2f","affectsGlobalScope":true,"impliedFormat":1},{"version":"0508571a52475e245b02bc50fa1394065a0a3d05277fbf5120c3784b85651799","affectsGlobalScope":true,"impliedFormat":1},{"version":"8f9af488f510c3015af3cc8c267a9e9d96c4dd38a1fdff0e11dc5a544711415b","affectsGlobalScope":true,"impliedFormat":1},{"version":"fc611fea8d30ea72c6bbfb599c9b4d393ce22e2f5bfef2172534781e7d138104","affectsGlobalScope":true,"impliedFormat":1},{"version":"0bd714129fca875f7d4c477a1a392200b0bcd13fb2e80928cd334b63830ea047","affectsGlobalScope":true,"impliedFormat":1},{"version":"e2c9037ae6cd2c52d80ceef0b3c5ffdb488627d71529cf4f63776daf11161c9a","affectsGlobalScope":true,"impliedFormat":1},{"version":"135d5cf4d345f59f1a9caadfafcd858d3d9cc68290db616cc85797224448cccc","affectsGlobalScope":true,"impliedFormat":1},{"version":"bc238c3f81c2984751932b6aab223cd5b830e0ac6cad76389e5e9d2ffc03287d","affectsGlobalScope":true,"impliedFormat":1},{"version":"4a07f9b76d361f572620927e5735b77d6d2101c23cdd94383eb5b706e7b36357","affectsGlobalScope":true,"impliedFormat":1},{"version":"7c4e8dc6ab834cc6baa0227e030606d29e3e8449a9f67cdf5605ea5493c4db29","affectsGlobalScope":true,"impliedFormat":1},{"version":"de7ba0fd02e06cd9a5bd4ab441ed0e122735786e67dde1e849cced1cd8b46b78","affectsGlobalScope":true,"impliedFormat":1},{"version":"6148e4e88d720a06855071c3db02069434142a8332cf9c182cda551adedf3156","affectsGlobalScope":true,"impliedFormat":1},{"version":"d63dba625b108316a40c95a4425f8d4294e0deeccfd6c7e59d819efa19e23409","affectsGlobalScope":true,"impliedFormat":1},{"version":"0568d6befee03dd435bed4fc25c4e46865b24bdcb8c563fdc21f580a2c301904","affectsGlobalScope":true,"impliedFormat":1},{"version":"30d62269b05b584741f19a5369852d5d34895aa2ac4fd948956f886d15f9cc0d","affectsGlobalScope":true,"impliedFormat":1},{"version":"f128dae7c44d8f35ee42e0a437000a57c9f06cc04f8b4fb42eebf44954d53dc8","affectsGlobalScope":true,"impliedFormat":1},{"version":"ffbe6d7b295306b2ba88030f65b74c107d8d99bdcf596ea99c62a02f606108b0","affectsGlobalScope":true,"impliedFormat":1},{"version":"996fb27b15277369c68a4ba46ed138b4e9e839a02fb4ec756f7997629242fd9f","affectsGlobalScope":true,"impliedFormat":1},{"version":"79b712591b270d4778c89706ca2cfc56ddb8c3f895840e477388f1710dc5eda9","affectsGlobalScope":true,"impliedFormat":1},{"version":"20884846cef428b992b9bd032e70a4ef88e349263f63aeddf04dda837a7dba26","affectsGlobalScope":true,"impliedFormat":1},{"version":"5fcab789c73a97cd43828ee3cc94a61264cf24d4c44472ce64ced0e0f148bdb2","affectsGlobalScope":true,"impliedFormat":1},{"version":"db59a81f070c1880ad645b2c0275022baa6a0c4f0acdc58d29d349c6efcf0903","affectsGlobalScope":true,"impliedFormat":1},{"version":"673294292640f5722b700e7d814e17aaf7d93f83a48a2c9b38f33cbc940ad8b0","affectsGlobalScope":true,"impliedFormat":1},{"version":"d786b48f934cbca483b3c6d0a798cb43bbb4ada283e76fb22c28e53ae05b9e69","affectsGlobalScope":true,"impliedFormat":1},{"version":"1ecb8e347cb6b2a8927c09b86263663289418df375f5e68e11a0ae683776978f","affectsGlobalScope":true,"impliedFormat":1},{"version":"142efd4ce210576f777dc34df121777be89eda476942d6d6663b03dcb53be3ff","affectsGlobalScope":true,"impliedFormat":1},{"version":"379bc41580c2d774f82e828c70308f24a005b490c25ba34d679d84bcf05c3d9d","affectsGlobalScope":true,"impliedFormat":1},{"version":"ed484fb2aa8a1a23d0277056ec3336e0a0b52f9b8d6a961f338a642faf43235d","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ffedae1d1c2d53fdbca1c96d3c7dda544281f7d262f99b6880634f8fd8d9820","affectsGlobalScope":true,"impliedFormat":1},{"version":"83a730b125d477dd264df8ba479afab27a3dae7152b005c214ab94dc7ee44fd3","affectsGlobalScope":true,"impliedFormat":1},{"version":"1ce14b81c5cc821994aa8ec1d42b220dd41b27fcc06373bce3958af7421b77d4","affectsGlobalScope":true,"impliedFormat":1},{"version":"b3a048b3e9302ef9a34ef4ebb9aecfb28b66abb3bce577206a79fee559c230da","affectsGlobalScope":true,"impliedFormat":1},{"version":"ef4a897cd2a3f91000c10264e400b3667c7e51e1b7365f03b62e8081dc53bde6","impliedFormat":1},{"version":"4936d25ba31379ce4e3d4289f6c0ea936510e111f823ec377015de6ba7047adf","impliedFormat":99},{"version":"1ffa53902f87f288dbaebc1dd9c754a0f0f1c4af2733fc7e173022209e7d4ef8","impliedFormat":99},{"version":"d7801240a49920afb07e1a83597b05a26e5e3758163a70448ba14df3f7ab5286","affectsGlobalScope":true,"impliedFormat":99},{"version":"2aed5de224f5094280addfaf59e82b362b3680083917cfa7f066c4b89cc58b74","impliedFormat":99},{"version":"86ecf772256f9205f72c768dc9b47d27b4254a64a1dd94f61c8c2f29219c24e1","affectsGlobalScope":true,"impliedFormat":99},{"version":"f62bcd0d626998f4b14a5e4bf6c65abf4dfeaa042243dd57e4e92125fd602ed6","impliedFormat":99},{"version":"9462f849ff8d50a61639f09a8e369f7584c623a8cbcf9d99c6b81aacbca91fd2","impliedFormat":99},{"version":"6da820ee582c593971e71a933dbf54d72b47984bb11f888d225c7a8476e74790","impliedFormat":99},{"version":"048a292f9fb06d0aab8c52cabd81bc820c70d68500530afe1867c08e431d4e46","impliedFormat":99},{"version":"e2f9944677cba1c7f636dde67d7ca77982da3b52134c617bd86d3a4d8607b498","impliedFormat":99},{"version":"ceaf67c6cb2df4f38f466bd3709a72199d1d98377dcf215bf760b2a383fc73a8","impliedFormat":99},{"version":"c5f89dedf8e238012d580d16ee2286bf0681f1389f14d419c87711070430995c","affectsGlobalScope":true,"impliedFormat":99},{"version":"dc996a90baa100126e6014b2f55022930e1a44621ec68eb163f322714b7596bc","impliedFormat":99},{"version":"cdd5245a59183386c7b465ad56e2353a0a1b49c32733520ec5c0eeb718781012","impliedFormat":99},{"version":"35c6737b37a2c92e67a14ba7692f3216df6c140c28133835768f7c66cb15fa88","impliedFormat":99},{"version":"7b607f4711c496c7c4f57abddfc7b9912059e1f264417ff8f4280b65f756bf4d","impliedFormat":99},{"version":"17122ddf1e2ff9f0538a06af6edc8d2666d7e1a428239e86358afc09ac7a8779","impliedFormat":99},{"version":"2cc6a5c34041442caa16aff0686d41595296248c7c33bfac5b94cd4fe8ae20de","impliedFormat":99},{"version":"8384e3ab082eecd9d0faa07ddf7e9ff3879bfac60216e47328f799600e47ea80","affectsGlobalScope":true,"impliedFormat":99},{"version":"715e7c015d2f3f4de0da107d9be2db02b52cea3d2d446ad11d2e732848d8e3e7","impliedFormat":99},"cda120f78df4c624c7fb1bd8e17343a39bfbede803f38312fb8e51fa818e1a7a","d9e135cc1dcf9f798edb9665b777dcad812d980a467b6ed11ce1d1bb9f017176",{"version":"bd0d2eb464af76c5caa91da809fbf6e14678d85306cc34053827b04a7994dc80","signature":"fefaf643ad02c05059e06244a8291c4cb3a2693ec928c843599c25d00ee9f574"},{"version":"a1393b4b1c82e90bfb98d4be6c988983a03b598fdae3389445dc42dbc7bfefcd","signature":"6f950e9b3504fd66d3bb5af5d0d1930cbd7f0f770bf8e95e920410ffbde3aeca"},{"version":"1a7eec8977d21e8bf216ea62b836bdda1768c2a49ee689e5e09fb2f56a7837e4","impliedFormat":99},{"version":"8deb0c1eae578bb83a0056727ddec6be752d015acebfdd90f53797f8a035e57d","affectsGlobalScope":true,"impliedFormat":99},{"version":"d0b90b2c22bda9b6a7dabfb505a7fd3896e0267ab791d63a4a37098d0829e1b0","impliedFormat":99},{"version":"d26efa37b7cbdcc391dc201683de609900869d285213abf1dcbfb5275427142f","affectsGlobalScope":true,"impliedFormat":99},{"version":"0fe0f52d9ee15bf4fbeef129a5841a706720641554be2220df52c994f343a2f1","impliedFormat":99},{"version":"586cc6c492134b4680582124d2cd7d20efe0993917871647e0000dbf670bc0da","impliedFormat":99},{"version":"eaac6969d2a0d853a8870b9ba9591b429b80f99308cc97c3fe223b54bfc4127f","impliedFormat":99},{"version":"4b8b7197750fcbfe01b0c3b0e42a18367763e07eb937e0a278a27c69489a2575","impliedFormat":99},{"version":"4829e04381717906f013cde4c25ef1b1e5b7ae889110e69f72ede6afa059ab0f","signature":"1b46812caaef920f5149572c615c356198c4662c2bdcfb0afadff5421958c617"},{"version":"62d4b415e3553483ef8cc01300b0de68c93418bfd4e9eafb069963acf2a8f851","signature":"4472121827717b820efdec25ac2452bf411a75c9423df10caeccf7b1c0da53d2"},{"version":"d153a11543fd884b596587ccd97aebbeed950b26933ee000f94009f1ab142848","affectsGlobalScope":true,"impliedFormat":1},{"version":"0ccdaa19852d25ecd84eec365c3bfa16e7859cadecf6e9ca6d0dbbbee439743f","affectsGlobalScope":true,"impliedFormat":1},{"version":"cc2110f7decca6bfb9392e30421cfa1436479e4a6756e8fec6cbc22625d4f881","affectsGlobalScope":true,"impliedFormat":1},{"version":"096116f8fedc1765d5bd6ef360c257b4a9048e5415054b3bf3c41b07f8951b0b","affectsGlobalScope":true,"impliedFormat":1},{"version":"e5e01375c9e124a83b52ee4b3244ed1a4d214a6cfb54ac73e164a823a4a7860a","affectsGlobalScope":true,"impliedFormat":1},{"version":"f90ae2bbce1505e67f2f6502392e318f5714bae82d2d969185c4a6cecc8af2fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"4b58e207b93a8f1c88bbf2a95ddc686ac83962b13830fe8ad3f404ffc7051fb4","affectsGlobalScope":true,"impliedFormat":1},{"version":"1fefabcb2b06736a66d2904074d56268753654805e829989a46a0161cd8412c5","affectsGlobalScope":true,"impliedFormat":1},{"version":"9798340ffb0d067d69b1ae5b32faa17ab31b82466a3fc00d8f2f2df0c8554aaa","affectsGlobalScope":true,"impliedFormat":1},{"version":"c18a99f01eb788d849ad032b31cafd49de0b19e083fe775370834c5675d7df8e","affectsGlobalScope":true,"impliedFormat":1},{"version":"5247874c2a23b9a62d178ae84f2db6a1d54e6c9a2e7e057e178cc5eea13757fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"cdcf9ea426ad970f96ac930cd176d5c69c6c24eebd9fc580e1572d6c6a88f62c","impliedFormat":1},{"version":"23cd712e2ce083d68afe69224587438e5914b457b8acf87073c22494d706a3d0","impliedFormat":1},{"version":"156a859e21ef3244d13afeeba4e49760a6afa035c149dda52f0c45ea8903b338","impliedFormat":1},{"version":"10ec5e82144dfac6f04fa5d1d6c11763b3e4dbbac6d99101427219ab3e2ae887","impliedFormat":1},{"version":"615754924717c0b1e293e083b83503c0a872717ad5aa60ed7f1a699eb1b4ea5c","impliedFormat":1},{"version":"074de5b2fdead0165a2757e3aaef20f27a6347b1c36adea27d51456795b37682","impliedFormat":1},{"version":"68834d631c8838c715f225509cfc3927913b9cc7a4870460b5b60c8dbdb99baf","impliedFormat":1},{"version":"4137ebf04166f3a325f056aa56101adc75e9dceb30404a1844eb8604d89770e2","impliedFormat":1},{"version":"ccab02f3920fc75c01174c47fcf67882a11daf16baf9e81701d0a94636e94556","impliedFormat":1},{"version":"3e11fce78ad8c0e1d1db4ba5f0652285509be3acdd519529bc8fcef85f7dafd9","impliedFormat":1},{"version":"ea6bc8de8b59f90a7a3960005fd01988f98fd0784e14bc6922dde2e93305ec7d","impliedFormat":1},{"version":"36107995674b29284a115e21a0618c4c2751b32a8766dd4cb3ba740308b16d59","impliedFormat":1},{"version":"914a0ae30d96d71915fc519ccb4efbf2b62c0ddfb3a3fc6129151076bc01dc60","impliedFormat":1},{"version":"9c32412007b5662fd34a8eb04292fb5314ec370d7016d1c2fb8aa193c807fe22","impliedFormat":1},{"version":"7fd1b31fd35876b0aa650811c25ec2c97a3c6387e5473eb18004bed86cdd76b6","impliedFormat":1},{"version":"4d327f7d72ad0918275cea3eee49a6a8dc8114ae1d5b7f3f5d0774de75f7439a","impliedFormat":1},{"version":"6ebe8ebb8659aaa9d1acbf3710d7dae3e923e97610238b9511c25dc39023a166","impliedFormat":1},{"version":"e85d7f8068f6a26710bff0cc8c0fc5e47f71089c3780fbede05857331d2ddec9","impliedFormat":1},{"version":"7befaf0e76b5671be1d47b77fcc65f2b0aad91cc26529df1904f4a7c46d216e9","impliedFormat":1},{"version":"0a60a292b89ca7218b8616f78e5bbd1c96b87e048849469cccb4355e98af959a","impliedFormat":1},{"version":"0b6e25234b4eec6ed96ab138d96eb70b135690d7dd01f3dd8a8ab291c35a683a","impliedFormat":1},{"version":"9666f2f84b985b62400d2e5ab0adae9ff44de9b2a34803c2c5bd3c8325b17dc0","impliedFormat":1},{"version":"40cd35c95e9cf22cfa5bd84e96408b6fcbca55295f4ff822390abb11afbc3dca","impliedFormat":1},{"version":"b1616b8959bf557feb16369c6124a97a0e74ed6f49d1df73bb4b9ddf68acf3f3","impliedFormat":1},{"version":"5b03a034c72146b61573aab280f295b015b9168470f2df05f6080a2122f9b4df","impliedFormat":1},{"version":"40b463c6766ca1b689bfcc46d26b5e295954f32ad43e37ee6953c0a677e4ae2b","impliedFormat":1},{"version":"249b9cab7f5d628b71308c7d9bb0a808b50b091e640ba3ed6e2d0516f4a8d91d","impliedFormat":1},{"version":"80aae6afc67faa5ac0b32b5b8bc8cc9f7fa299cff15cf09cc2e11fd28c6ae29e","impliedFormat":1},{"version":"f473cd2288991ff3221165dcf73cd5d24da30391f87e85b3dd4d0450c787a391","impliedFormat":1},{"version":"499e5b055a5aba1e1998f7311a6c441a369831c70905cc565ceac93c28083d53","impliedFormat":1},{"version":"8aee8b6d4f9f62cf3776cda1305fb18763e2aade7e13cea5bbe699112df85214","impliedFormat":1},{"version":"98498b101803bb3dde9f76a56e65c14b75db1cc8bec5f4db72be541570f74fc5","impliedFormat":1},{"version":"1cc2a09e1a61a5222d4174ab358a9f9de5e906afe79dbf7363d871a7edda3955","impliedFormat":1},{"version":"5d0375ca7310efb77e3ef18d068d53784faf62705e0ad04569597ae0e755c401","impliedFormat":1},{"version":"59af37caec41ecf7b2e76059c9672a49e682c1a2aa6f9d7dc78878f53aa284d6","impliedFormat":1},{"version":"addf417b9eb3f938fddf8d81e96393a165e4be0d4a8b6402292f9c634b1cb00d","impliedFormat":1},{"version":"b64d4d1c5f877f9c666e98e833f0205edb9384acc46e98a1fef344f64d6aba44","impliedFormat":1},{"version":"adf27937dba6af9f08a68c5b1d3fce0ca7d4b960c57e6d6c844e7d1a8e53adae","impliedFormat":1},{"version":"12950411eeab8563b349cb7959543d92d8d02c289ed893d78499a19becb5a8cc","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"c9381908473a1c92cb8c516b184e75f4d226dad95c3a85a5af35f670064d9a2f","impliedFormat":1},{"version":"c3f5289820990ab66b70c7fb5b63cb674001009ff84b13de40619619a9c8175f","affectsGlobalScope":true,"impliedFormat":1},{"version":"b3275d55fac10b799c9546804126239baf020d220136163f763b55a74e50e750","affectsGlobalScope":true,"impliedFormat":1},{"version":"fa68a0a3b7cb32c00e39ee3cd31f8f15b80cac97dce51b6ee7fc14a1e8deb30b","affectsGlobalScope":true,"impliedFormat":1},{"version":"1cf059eaf468efcc649f8cf6075d3cb98e9a35a0fe9c44419ec3d2f5428d7123","affectsGlobalScope":true,"impliedFormat":1},{"version":"6c36e755bced82df7fb6ce8169265d0a7bb046ab4e2cb6d0da0cb72b22033e89","affectsGlobalScope":true,"impliedFormat":1},{"version":"e7721c4f69f93c91360c26a0a84ee885997d748237ef78ef665b153e622b36c1","affectsGlobalScope":true,"impliedFormat":1},{"version":"7a93de4ff8a63bafe62ba86b89af1df0ccb5e40bb85b0c67d6bbcfdcf96bf3d4","affectsGlobalScope":true,"impliedFormat":1},{"version":"90e85f9bc549dfe2b5749b45fe734144e96cd5d04b38eae244028794e142a77e","affectsGlobalScope":true,"impliedFormat":1},{"version":"e0a5deeb610b2a50a6350bd23df6490036a1773a8a71d70f2f9549ab009e67ee","affectsGlobalScope":true,"impliedFormat":1},{"version":"d2ae155afe8a01cc0ae612d99117cf8ef16692ba7c4366590156fdec1bcf2d8c","impliedFormat":1},{"version":"3f5e5d9be35913db9fea42a63f3df0b7e3c8703b97670a2125587b4dbbd56d7c","impliedFormat":1},{"version":"8caeb65fdc3bfe0d13f86f67324fcb2d858ed1c55f1f0cce892eb1acfb9f3239","impliedFormat":1},{"version":"57c23df0b5f7a8e26363a3849b0bc7763f6b241207157c8e40089d1df4116f35","affectsGlobalScope":true,"impliedFormat":1},{"version":"3b8bc0c17b54081b0878673989216229e575d67a10874e84566a21025a2461ee","impliedFormat":1},{"version":"5b0db5a58b73498792a29bfebc333438e61906fef75da898b410e24e52229e6f","impliedFormat":1},{"version":"dbe055b2b29a7bab2c1ca8f259436306adb43f469dca7e639a02cd3695d3f621","impliedFormat":1},{"version":"1678b04557dca52feab73cc67610918a7f5e25bfdba3e7fa081acd625d93106d","impliedFormat":1},{"version":"e3905f6902f0b69e5eefc230daa69fdd4ab707a973ec2d086d65af1b3ea47ef0","impliedFormat":1},{"version":"2ea729503db9793f2691162fec3dd1118cab62e96d025f8eeb376d43ec293395","impliedFormat":1},{"version":"9ec87fea42b92894b0f209931a880789d43c3397d09dd99c631ae40a2f7071d1","impliedFormat":1},{"version":"c68e88cdfadfb6c8ba5fc38e58a3a166b0beae77b1f05b7d921150a32a5ffb8d","impliedFormat":1},{"version":"2bc7aa4fba46df0bd495425a7c8201437a7d465f83854fac859df2d67f664df3","impliedFormat":1},{"version":"41d17e1ad9a002feb11c8cdd2777e5bbc0cdb1e3f595d237e4dded0b6949983b","impliedFormat":1},{"version":"07e4e61e946a9c15045539ecd5f5d2d02e7aab6fa82567826857e09cf0f37c2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"1c4714ccc29149efb8777a1da0b04b8d2258f5d13ddbf4cd3c3d361fb531ac86","impliedFormat":1},{"version":"3ff275f84f89f8a7c0543da838f9da9614201abc4ce74c533029825adfb4433d","impliedFormat":1},{"version":"0eb5d0cbf09de5d34542b977fd6a933bb2e0817bffe8e1a541b2f1ad1b9af1ff","impliedFormat":1},{"version":"10deca769dfed888051b1808d6746f8883a490a707f8bdf9367079146987d6d0","impliedFormat":1},{"version":"2c2bdaa1d8ead9f68628d6d9d250e46ee8e81aa4898b4769a36956ae15e060fe","impliedFormat":1},{"version":"c32c840c62d8bd7aeb3147aa6754cd2d922b990a6b6634530cb2ebdce5adc8e9","impliedFormat":1},{"version":"e1c1a0b4d1ead0de9eca52203aeb1f771f21e6238d6fcd15aa56ac2a02f1b7bf","impliedFormat":1},{"version":"82b91e4e42e6c41bc7fc1b6c2dc5eba6a2ba98375eb1f210e6ff6bba2d54177e","impliedFormat":1},{"version":"6fe28249ac0c7bc19a79aa9264baf00efbd080e868dbe1d3052033ad1c64f206","affectsGlobalScope":true,"impliedFormat":1},{"version":"cbed824fec91efefc7bbdcb8b43d1a531fdbebd0e2ef19481501ff365a93cb70","impliedFormat":1},{"version":"8e9c23ba78aabc2e0a27033f18737a6df754067731e69dc5f52823957d60a4b6","impliedFormat":1},{"version":"d0716593b3f2b0451bcf0c24cfa86dec2235c325c89f201934248b7c742715fc","impliedFormat":1},{"version":"ec501101c2a96133a6c695f934c8f6642149cc728571b29cbb7b770984c1088e","impliedFormat":1},{"version":"b214ebcf76c51b115453f69729ee8aa7b7f8eccdae2a922b568a45c2d7ff52f7","impliedFormat":1},{"version":"429c9cdfa7d126255779efd7e6d9057ced2d69c81859bbab32073bad52e9ba76","impliedFormat":1},{"version":"2991bca2cc0f0628a278df2a2ccdb8d6cbcb700f3761abbed62bba137d5b1790","impliedFormat":1},{"version":"ce8653341224f8b45ff46d2a06f2cacb96f841f768a886c9d8dd8ec0878b11bd","affectsGlobalScope":true,"impliedFormat":1},{"version":"230763250f20449fa7b3c9273e1967adb0023dc890d4be1553faca658ee65971","impliedFormat":1},{"version":"c3e9078b60cb329d1221f5878e88cecfa3e74460550e605a58fcfb41a66029ff","impliedFormat":1},{"version":"a74edb3bab7394a9dbde529d60632be590def2f5f01024dbd85441587fbfbbe0","impliedFormat":1},{"version":"0ea59f7d3e51440baa64f429253759b106cfcbaf51e474cae606e02265b37cf8","impliedFormat":1},{"version":"bc18a1991ba681f03e13285fa1d7b99b03b67ee671b7bc936254467177543890","impliedFormat":1},{"version":"00049ccc87f3f37726db03c01ca68fe74fd9c0109b68c29eb9923ebec2c76b13","impliedFormat":1},{"version":"fa94bbf532b7af8f394b95fa310980d6e20bd2d4c871c6a6cb9f70f03750a44b","impliedFormat":1},{"version":"68d3f35108e2608b1f2f28b36d19d7055f31c4465cc5692cbd06c716a9fe7973","impliedFormat":1},{"version":"a6d543044570fbeed13a7f9925a868081cd2b14ef59cdd9da6ae76d41cab03d3","affectsGlobalScope":true,"impliedFormat":1},{"version":"7fa2214bb0d64701bc6f9ce8cde2fd2ff8c571e0b23065fa04a8a5a6beb91511","impliedFormat":1},{"version":"f1c93e046fb3d9b7f8249629f4b63dc068dd839b824dd0aa39a5e68476dc9420","impliedFormat":1},{"version":"016b29bf4926b80255a108c53a1451717350059da04fcae64d1075f5e93bbb39","impliedFormat":1},{"version":"841983e39bd4cbb463be385e92fda11057cab368bf27100a801c492f1d86cbaa","impliedFormat":1},{"version":"6f5383b3df1cdf4ff1aa7fb0850f77042b5786b5e65ec9a9b6be56ebfe4d9036","impliedFormat":1},{"version":"62fc21ed9ccbd83bd1166de277a4b5daaa8d15b5fa614c75610d20f3b73fba87","impliedFormat":1},{"version":"e4156ddb25aa0e3b5303d372f26957b36778f0f6bbd4326359269873295e3058","affectsGlobalScope":true,"impliedFormat":1},{"version":"cc1b433a84cae05ddc5672d4823170af78606ad21ecef60dbc4570190cbf1357","impliedFormat":1},{"version":"9d3821bc75c59577e52643324cec92fc2145642e8d17cf7ee07a3181f21d985d","impliedFormat":1},{"version":"7f78cfb2b343838612c192cb251746e3a7c62ac7675726a47e130d9b213f6580","impliedFormat":1},{"version":"201db9cf1687fab1adf5282fcba861f382b32303dc4f67c89d59655e78a25461","impliedFormat":1},{"version":"c77fb31bc17fd241d3922a9f88c59e3361cdf76d1328ba9412fc6bf7310b638d","impliedFormat":1},{"version":"0a20eaf2e4b1e3c1e1f87f7bccb0c936375b23b022baeea750519b7c9bc6ce83","impliedFormat":1},{"version":"b484ec11ba00e3a2235562a41898d55372ccabe607986c6fa4f4aba72093749f","impliedFormat":1},{"version":"a16b91b27bd6b706c687c88cbc8a7d4ee98e5ed6043026d6b84bda923c0aed67","impliedFormat":1},{"version":"694b812e0ed11285e8822cf8131e3ce7083a500b3b1d185fff9ed1089677bd0a","impliedFormat":1},{"version":"99ab6d0d660ce4d21efb52288a39fd35bb3f556980ec5463b1ae8f304a3bbc85","impliedFormat":1},{"version":"6eeded8c7e352be6e0efb83f4935ec752513c4d22043b52522b90849a49a3a11","impliedFormat":1},{"version":"6c1ad90050ffbb151cacc68e2d06ea1a26a945659391e32651f5d42b86fd7f2c","impliedFormat":1},{"version":"55cdbeebe76a1fa18bbd7e7bf73350a2173926bd3085bb050cf5a5397025ee4e","impliedFormat":1}],"root":[116,117,126,127],"options":{"allowImportingTsExtensions":true,"allowJs":true,"checkJs":false,"composite":true,"declaration":true,"declarationDir":"./lib/types","emitDeclarationOnly":true,"experimentalDecorators":true,"module":99,"outDir":"./lib","rootDir":"./src","skipLibCheck":true,"strict":false,"target":99},"referencedMap":[[104,1],[105,2],[106,3],[107,4],[118,5],[119,6],[124,7],[125,8],[108,9],[109,10],[94,10],[110,10],[111,11],[112,12],[113,13],[103,14],[97,15],[98,16],[99,17],[100,18],[120,19],[121,20],[122,3],[123,21],[95,22],[96,14],[101,23],[102,24],[190,25],[191,25],[192,26],[130,27],[193,28],[194,29],[195,30],[128,10],[196,31],[197,32],[198,33],[199,34],[200,35],[201,36],[202,36],[203,37],[204,38],[205,39],[206,40],[131,10],[129,10],[207,41],[208,42],[209,43],[250,44],[210,45],[211,46],[212,45],[213,47],[214,48],[216,49],[217,50],[218,50],[219,50],[220,51],[221,52],[222,53],[223,54],[224,55],[225,56],[226,56],[227,57],[228,10],[229,10],[230,58],[231,59],[232,58],[233,60],[234,61],[235,62],[236,63],[237,64],[238,65],[239,66],[240,67],[241,68],[242,69],[243,70],[244,71],[245,72],[246,73],[247,74],[132,45],[133,10],[134,10],[135,75],[136,10],[137,31],[138,10],[181,76],[182,77],[183,78],[184,78],[185,79],[186,10],[187,28],[188,80],[189,77],[248,81],[249,82],[215,10],[91,10],[92,10],[16,10],[14,10],[15,10],[20,10],[19,10],[2,10],[21,10],[22,10],[23,10],[24,10],[25,10],[26,10],[27,10],[28,10],[3,10],[29,10],[30,10],[4,10],[31,10],[35,10],[32,10],[33,10],[34,10],[36,10],[37,10],[38,10],[5,10],[39,10],[40,10],[41,10],[42,10],[6,10],[46,10],[43,10],[44,10],[45,10],[47,10],[7,10],[48,10],[53,10],[54,10],[49,10],[50,10],[51,10],[52,10],[8,10],[58,10],[55,10],[56,10],[57,10],[59,10],[9,10],[60,10],[61,10],[62,10],[64,10],[63,10],[65,10],[66,10],[10,10],[67,10],[68,10],[69,10],[11,10],[70,10],[71,10],[72,10],[73,10],[74,10],[75,10],[12,10],[76,10],[77,10],[78,10],[79,10],[80,10],[1,10],[81,10],[82,10],[13,10],[83,10],[84,10],[85,10],[86,10],[93,10],[87,10],[88,10],[89,10],[90,10],[18,10],[17,10],[157,83],[169,84],[154,85],[170,86],[179,87],[145,88],[146,89],[144,90],[178,91],[173,92],[177,93],[148,94],[166,95],[147,96],[176,97],[142,98],[143,92],[149,99],[150,10],[156,100],[153,99],[140,101],[180,102],[171,103],[160,104],[159,99],[161,105],[164,106],[158,107],[162,108],[174,91],[151,109],[152,110],[165,111],[141,86],[168,112],[167,99],[155,110],[163,113],[172,10],[139,10],[175,114],[115,115],[114,10],[116,116],[127,117],[117,45],[126,118]],"latestChangedDtsFile":"./lib/types/index.d.ts","version":"6.0.3"}