mol_vary 0.0.1 → 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mol_vary",
3
- "version": "0.0.1",
3
+ "version": "0.0.3",
4
4
  "exports": {
5
5
  "node": {
6
6
  "import": "./node.mjs",
package/web.d.ts CHANGED
@@ -71,6 +71,9 @@ declare namespace $ {
71
71
  fp64 = 95
72
72
  }
73
73
  class $mol_vary extends DataView<ArrayBuffer> {
74
+ static buffer: Uint8Array<ArrayBuffer>;
75
+ static buffer_view: $mol_vary;
76
+ static allocate(size: number): void;
74
77
  static pack(data: unknown): Uint8Array<ArrayBuffer>;
75
78
  static take(buf: Uint8Array<ArrayBuffer>): unknown;
76
79
  tlen(pos: number, tip: keyof typeof $mol_vary_tip, len: number): number;
@@ -86,7 +89,7 @@ declare namespace $ {
86
89
  static lean(val: object): readonly [keys: readonly any[], vals: readonly any[]];
87
90
  static leanes: Map<object, (val: any) => readonly [keys: readonly any[], vals: readonly any[]]>;
88
91
  static riches: Map<string, (...vals: readonly any[]) => object>;
89
- static register<const Instance extends object, const Keys extends readonly any[], const Vals extends readonly any[]>(rich: ((...vals: Vals) => Instance) | (() => Instance), lean: (obj: Instance) => readonly [Keys, Vals]): void;
92
+ static type<const Instance extends object, const Keys extends readonly any[], const Vals extends readonly any[]>(rich: ((...vals: Vals) => Instance) | (() => Instance), lean: (obj: Instance) => readonly [Keys, Vals]): void;
90
93
  }
91
94
  }
92
95
 
package/web.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../mam.d.ts","../../fail/fail.d.ts","../../hash/numbers/number.d.ts","../../bigint/encode/encode.d.ts","../../hash/string/string.d.ts","../../charset/encode/encode.d.ts","../../charset/encoding/encoding.d.ts","../../charset/decode/decode.d.ts","../vary.d.ts"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACfA;AACA;AACA;AACA;ACHA;AACA;AACA;AACA;ACHA;AACA;AACA;AACA;ACHA;AACA;AACA;AACA;ACHA;AACA;AACA;AACA;AACA;AACA;ACLA;AACA;AACA;AACA;ACHA;AACA;AACA;AACA;ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","sourcesContent":[null,null,null,null,null,null,null,null,null]}
1
+ {"version":3,"sources":["../../../mam.d.ts","../../fail/fail.d.ts","../../hash/numbers/number.d.ts","../../bigint/encode/encode.d.ts","../../hash/string/string.d.ts","../../charset/encode/encode.d.ts","../../charset/encoding/encoding.d.ts","../../charset/decode/decode.d.ts","../vary.d.ts"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACfA;AACA;AACA;AACA;ACHA;AACA;AACA;AACA;ACHA;AACA;AACA;AACA;ACHA;AACA;AACA;AACA;ACHA;AACA;AACA;AACA;AACA;AACA;ACLA;AACA;AACA;AACA;ACHA;AACA;AACA;AACA;ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","sourcesContent":[null,null,null,null,null,null,null,null,null]}
package/web.deps.json CHANGED
@@ -1 +1 @@
1
- {"files":["mam.ts","LICENSE","README.md","mam.jam.js","tsfmt.json","package.json","tsconfig.json","lang.lang.tree","meta.lang.tree","sandbox.config.json","mol/CNAME","mol/LICENSE","mol/readme.md","mol/mol.meta.tree","mol/CONTRIBUTING.md","mol/CODE_OF_CONDUCT.md","mol/fail/fail.ts","mol/hash/numbers/number.ts","mol/bigint/encode/encode.ts","mol/hash/string/string.ts","mol/charset/encode/encode.ts","mol/charset/encoding/encoding.ts","mol/charset/decode/decode.ts","mol/vary/vary.ts","mol/vary/readme.md"],"mods":{},"deps_in":{"mol":{"mol/vary":-999,"mol/fail":-999,"mol/hash":-999,"mol/bigint":-999,"mol/charset":-999},"":{"mol":-999},"mol/fail":{"mol/vary":-3},"mol/hash/numbers":{"mol/vary":-6,"mol/hash/string":-2},"mol/hash":{"mol/hash/numbers":-999,"mol/hash/string":-999},"mol/bigint/encode":{"mol/vary":-6},"mol/bigint":{"mol/bigint/encode":-999},"mol/hash/string":{"mol/vary":-6},"mol/charset/encode":{"mol/vary":-6},"mol/charset":{"mol/charset/encode":-999,"mol/charset/decode":-999,"mol/charset/encoding":-999},"mol/charset/decode":{"mol/vary":-4},"mol/charset/encoding":{"mol/charset/decode":-1}},"deps_out":{"mol/vary":{"mol":-999,"mol/fail":-3,"mol/hash/numbers":-6,"mol/bigint/encode":-6,"mol/hash/string":-6,"mol/charset/encode":-6,"mol/charset/decode":-4},"mol":{"":-999},"mol/fail":{"mol":-999},"mol/hash/numbers":{"mol/hash":-999},"mol/hash":{"mol":-999},"mol/bigint/encode":{"mol/bigint":-999},"mol/bigint":{"mol":-999},"mol/hash/string":{"mol/hash":-999,"mol/hash/numbers":-2},"mol/charset/encode":{"mol/charset":-999},"mol/charset":{"mol":-999},"mol/charset/decode":{"mol/charset":-999,"mol/charset/encoding":-1},"mol/charset/encoding":{"mol/charset":-999}},"sloc":{"ts":666,"LICENSE":113,"md":506,"js":9,"json":82,"tree":41,"CNAME":1},"deps":{"mol/vary":{"..":-999,"/mol/vary/tip":-1,"/mol/vary/len":-1,"/mol/vary/spec":-1,"/mol/vary/tip/spec":-2,"/mol/fail":-3,"/mol/vary":-1,"/mol/hash/numbers":-6,"/mol/bigint/encode":-6,"/mol/vary/tip/sint":-5,"/mol/hash/string":-6,"/mol/vary/tip/text":-6,"/mol/vary/spec/none":-6,"/mol/vary/tip/blob":-6,"/mol/vary/tip/list":-6,"/mol/vary/tip/tupl":-7,"/mol/charset/encode/size":-6,"/mol/vary/spec/both":-6,"/mol/vary/spec/true":-6,"/mol/vary/spec/fake":-6,"/mol/charset/encode/to":-6,"/mol/vary/spec/fp32":-5,"/mol/vary/spec/fp64":-5,"/mol/charset/decode":-4,"/mol/vary/tip/uint":-5,"/mol/vary/register":-1},"mol":{"..":-999},"":{},"mol/fail":{"..":-999,"/mol/fail":-1},"mol/hash/numbers":{"..":-999,"/mol/hash/numbers":-1},"mol/hash":{"..":-999},"mol/bigint/encode":{"..":-999,"/mol/bigint/encode":-1},"mol/bigint":{"..":-999},"mol/hash/string":{"..":-999,"/mol/hash/string":-1,"/mol/hash/numbers":-2},"mol/charset/encode":{"..":-999,"/mol/charset/encode":-1,"/mol/charset/encode/to":-1,"/mol/charset/encode/size":-1},"mol/charset":{"..":-999},"mol/charset/decode":{"..":-999,"/mol/charset/encoding":-1,"/mol/charset/decode":-1},"mol/charset/encoding":{"..":-999,"/mol/charset/encoding":-1}}}
1
+ {"files":["mam.ts","LICENSE","README.md","mam.jam.js","tsfmt.json","package.json","tsconfig.json","lang.lang.tree","meta.lang.tree","sandbox.config.json","mol/CNAME","mol/LICENSE","mol/readme.md","mol/mol.meta.tree","mol/CONTRIBUTING.md","mol/CODE_OF_CONDUCT.md","mol/fail/fail.ts","mol/hash/numbers/number.ts","mol/bigint/encode/encode.ts","mol/hash/string/string.ts","mol/charset/encode/encode.ts","mol/charset/encoding/encoding.ts","mol/charset/decode/decode.ts","mol/vary/vary.ts","mol/vary/readme.md"],"mods":{},"deps_in":{"mol":{"mol/vary":-999,"mol/fail":-999,"mol/hash":-999,"mol/bigint":-999,"mol/charset":-999},"":{"mol":-999},"mol/fail":{"mol/vary":-3},"mol/hash/numbers":{"mol/vary":-6,"mol/hash/string":-2},"mol/hash":{"mol/hash/numbers":-999,"mol/hash/string":-999},"mol/bigint/encode":{"mol/vary":-6},"mol/bigint":{"mol/bigint/encode":-999},"mol/hash/string":{"mol/vary":-6},"mol/charset/encode":{"mol/vary":-6},"mol/charset":{"mol/charset/encode":-999,"mol/charset/decode":-999,"mol/charset/encoding":-999},"mol/charset/decode":{"mol/vary":-4},"mol/charset/encoding":{"mol/charset/decode":-1}},"deps_out":{"mol/vary":{"mol":-999,"mol/fail":-3,"mol/hash/numbers":-6,"mol/bigint/encode":-6,"mol/hash/string":-6,"mol/charset/encode":-6,"mol/charset/decode":-4},"mol":{"":-999},"mol/fail":{"mol":-999},"mol/hash/numbers":{"mol/hash":-999},"mol/hash":{"mol":-999},"mol/bigint/encode":{"mol/bigint":-999},"mol/bigint":{"mol":-999},"mol/hash/string":{"mol/hash":-999,"mol/hash/numbers":-2},"mol/charset/encode":{"mol/charset":-999},"mol/charset":{"mol":-999},"mol/charset/decode":{"mol/charset":-999,"mol/charset/encoding":-1},"mol/charset/encoding":{"mol/charset":-999}},"sloc":{"ts":684,"LICENSE":113,"md":504,"js":9,"json":82,"tree":41,"CNAME":1},"deps":{"mol/vary":{"..":-999,"/mol/vary/tip":-1,"/mol/vary/len":-1,"/mol/vary/spec":-1,"/mol/vary/tip/spec":-2,"/mol/fail":-3,"/mol/vary":-1,"/mol/hash/numbers":-6,"/mol/bigint/encode":-6,"/mol/vary/tip/sint":-5,"/mol/hash/string":-6,"/mol/vary/tip/text":-6,"/mol/vary/spec/none":-6,"/mol/vary/tip/blob":-6,"/mol/vary/tip/list":-6,"/mol/charset/encode/size":-6,"/mol/vary/spec/both":-6,"/mol/vary/spec/true":-6,"/mol/vary/spec/fake":-6,"/mol/charset/encode/to":-6,"/mol/vary/spec/fp32":-5,"/mol/vary/spec/fp64":-5,"/mol/charset/decode":-4,"/mol/vary/tip/uint":-5,"/mol/vary/type":-1},"mol":{"..":-999},"":{},"mol/fail":{"..":-999,"/mol/fail":-1},"mol/hash/numbers":{"..":-999,"/mol/hash/numbers":-1},"mol/hash":{"..":-999},"mol/bigint/encode":{"..":-999,"/mol/bigint/encode":-1},"mol/bigint":{"..":-999},"mol/hash/string":{"..":-999,"/mol/hash/string":-1,"/mol/hash/numbers":-2},"mol/charset/encode":{"..":-999,"/mol/charset/encode":-1,"/mol/charset/encode/to":-1,"/mol/charset/encode/size":-1},"mol/charset":{"..":-999},"mol/charset/decode":{"..":-999,"/mol/charset/encoding":-1,"/mol/charset/decode":-1},"mol/charset/encoding":{"..":-999,"/mol/charset/encoding":-1}}}
package/web.js CHANGED
@@ -84,7 +84,10 @@ var $;
84
84
  var $;
85
85
  (function ($) {
86
86
  function $mol_hash_string(str, seed = 0) {
87
- return $mol_hash_numbers([...str].map(ch => ch.codePointAt(0)));
87
+ let nums = new Array(str.length);
88
+ for (let i = 0; i < str.length; ++i)
89
+ nums[i] = str.charCodeAt(i);
90
+ return $mol_hash_numbers(nums);
88
91
  }
89
92
  $.$mol_hash_string = $mol_hash_string;
90
93
  })($ || ($ = {}));
@@ -225,6 +228,14 @@ var $;
225
228
  }
226
229
  }
227
230
  class $mol_vary extends DataView {
231
+ static buffer = new Uint8Array(4096);
232
+ static buffer_view = new this(this.buffer.buffer);
233
+ static allocate(size) {
234
+ if (this.buffer.byteLength > size)
235
+ return;
236
+ this.buffer = new Uint8Array(Math.ceil(size / 4096) * 4096);
237
+ this.buffer_view = new this(this.buffer.buffer);
238
+ }
228
239
  static pack(data) {
229
240
  const leaned = new WeakMap();
230
241
  const lean = (val) => {
@@ -266,7 +277,7 @@ var $;
266
277
  res = $mol_hash_numbers(val.map(hash), $mol_vary_tip.list);
267
278
  else {
268
279
  const [keys, vals] = lean(val);
269
- res = $mol_hash_numbers([hash(keys), ...vals.map(hash)], $mol_vary_tip.tupl);
280
+ res = $mol_hash_numbers(vals.map(hash), hash(keys));
270
281
  }
271
282
  hashes.set(val, res);
272
283
  return res;
@@ -354,8 +365,9 @@ var $;
354
365
  $mol_fail(new Error(`Unsupported type`));
355
366
  };
356
367
  calc(data);
357
- const buf = new Uint8Array(size);
358
- const pack = new this(buf.buffer);
368
+ this.allocate(size);
369
+ const buf = this.buffer;
370
+ const pack = this.buffer_view;
359
371
  const embedded = new Set();
360
372
  let pos = 0;
361
373
  const dump = (val) => {
@@ -477,7 +489,7 @@ var $;
477
489
  $mol_fail(new Error(`Unsupported type`));
478
490
  };
479
491
  dump(data);
480
- return buf;
492
+ return buf.slice(0, size);
481
493
  }
482
494
  static take(buf) {
483
495
  const pack = new $mol_vary(buf.buffer, buf.byteOffset, buf.byteLength);
@@ -746,7 +758,7 @@ var $;
746
758
  }
747
759
  static leanes = new Map();
748
760
  static riches = new Map();
749
- static register(rich, lean) {
761
+ static type(rich, lean) {
750
762
  const obj = rich();
751
763
  const proto = Reflect.getPrototypeOf(obj);
752
764
  const [keys, vals] = lean(obj);
@@ -756,11 +768,11 @@ var $;
756
768
  }
757
769
  }
758
770
  $.$mol_vary = $mol_vary;
759
- $mol_vary.register((keys = [], vals = []) => new Map(keys.map((k, i) => [k, vals[i]])), obj => [
771
+ $mol_vary.type((keys = [], vals = []) => new Map(keys.map((k, i) => [k, vals[i]])), obj => [
760
772
  ['keys', 'vals'],
761
773
  [[...obj.keys()], [...obj.values()]],
762
774
  ]);
763
- $mol_vary.register((vals = []) => new Set(vals), obj => [
775
+ $mol_vary.type((vals = []) => new Set(vals), obj => [
764
776
  ['vals'],
765
777
  [[...obj.values()]],
766
778
  ]);
package/web.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["-","../../../mam.ts","../../../mol/fail/fail.ts","../../../mol/hash/numbers/number.ts","../../../mol/bigint/encode/encode.ts","../../../mol/hash/string/string.ts","../../../mol/charset/encode/encode.ts","../../../mol/charset/decode/decode.ts","../../../mol/vary/vary.ts"],"names":[],"mappings":";;;AAAA;AACA;AACA;AACA;;ACHA,KAAK,CAAC,eAAe,GAAG,EAAE,CAAC;AAK3B,IAAU,CAAC,CAQV;AARD,WAAU,CAAC;AAQX,CAAC,EARS,CAAC,KAAD,CAAC,QAQV;AAED,MAAM,CAAC,OAAO,GAAG,CAAC,CAAA;;;ADflB;AACA;AACA;;;;;;;;;;;;;;;AEFA,IAAU,CAAC,CAMV;AAND,WAAU,CAAC;IAEV,SAAgB,SAAS,CAAE,KAAW;QACrC,MAAM,KAAK,CAAA;IACZ,CAAC;IAFe,WAAS,YAExB,CAAA;AAEF,CAAC,EANS,CAAC,KAAD,CAAC,QAMV;;;;ACND,IAAU,CAAC,CAuBV;AAvBD,WAAU,CAAC;IAMV,SAAgB,iBAAiB,CAAE,IAAyB,EAAE,IAAI,GAAG,CAAC;QAErE,IAAI,EAAE,GAAG,UAAU,GAAG,IAAI,CAAA;QAC1B,IAAI,EAAE,GAAG,UAAU,GAAG,IAAI,CAAA;QAE1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,EAAG,CAAC;YACvC,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;YACpB,EAAE,GAAG,IAAI,CAAC,IAAI,CAAE,EAAE,GAAG,IAAI,EAAE,UAAU,CAAE,CAAA;YACvC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAE,EAAE,GAAG,IAAI,EAAE,UAAU,CAAE,CAAA;QACxC,CAAC;QAED,EAAE,GAAG,IAAI,CAAC,IAAI,CAAE,EAAE,GAAG,CAAE,EAAE,KAAK,EAAE,CAAE,EAAE,UAAU,CAAE,GAAG,IAAI,CAAC,IAAI,CAAE,EAAE,GAAG,CAAE,EAAE,KAAK,EAAE,CAAE,EAAE,UAAU,CAAE,CAAA;QAC9F,EAAE,GAAG,IAAI,CAAC,IAAI,CAAE,EAAE,GAAG,CAAE,EAAE,KAAK,EAAE,CAAE,EAAE,UAAU,CAAE,GAAG,IAAI,CAAC,IAAI,CAAE,EAAE,GAAG,CAAE,EAAE,KAAK,EAAE,CAAE,EAAE,UAAU,CAAE,CAAA;QAE9F,OAAO,UAAU,GAAG,CAAE,CAAE,CAAE,CAAC,IAAI,EAAE,CAAE,GAAG,CAAC,CAAE,GAAG,EAAE,CAAE,GAAG,CAAE,EAAE,KAAK,CAAC,CAAE,CAAA;IAChE,CAAC;IAfe,mBAAiB,oBAehC,CAAA;AAEF,CAAC,EAvBS,CAAC,KAAD,CAAC,QAuBV;;;;ACvBD,IAAU,CAAC,CAyBV;AAzBD,WAAU,CAAC;IAEV,SAAgB,kBAAkB,CAAE,GAAW;QAE9C,MAAM,KAAK,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACjC,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAA;QAE7B,MAAM,KAAK,GAAG,EAAc,CAAA;QAC5B,GAAG,CAAC;YAEH,IAAI,IAAI,GAAG,KAAK,GAAG,MAAM,CAAE,GAAG,GAAG,IAAI,CAAE,CAAA;YACvC,KAAK,CAAC,IAAI,CAAE,IAAI,CAAE,CAAA;YAElB,IAAI,GAAG,KAAK,EAAE;gBAAG,SAAQ;YAEzB,IAAG,CAAE,KAAK,GAAG,GAAG,CAAE,KAAG,CAAE,IAAI,GAAG,GAAG,CAAE;gBAClC,KAAK,CAAC,IAAI,CAAE,KAAK,CAAE,CAAA;YAEpB,MAAK;QAEN,CAAC,QAAQ,GAAG,EAAE;QAEd,OAAO,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IArBe,oBAAkB,qBAqBjC,CAAA;AAEF,CAAC,EAzBS,CAAC,KAAD,CAAC,QAyBV;;;;ACzBD,IAAU,CAAC,CAUV;AAVD,WAAU,CAAC;IAMV,SAAgB,gBAAgB,CAAE,GAAW,EAAE,IAAI,GAAG,CAAC;QACtD,OAAO,iBAAiB,CAAE,CAAE,GAAI,GAAG,CAAE,CAAC,GAAG,CAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAE,CAAE,CAAE,CAAA;IACxE,CAAC;IAFe,kBAAgB,mBAE/B,CAAA;AAEF,CAAC,EAVS,CAAC,KAAD,CAAC,QAUV;;;;ACVD,IAAU,CAAC,CAmEV;AAnED,WAAU,CAAC;IAEV,IAAI,GAAG,GAAG,IAAI,UAAU,CAAE,CAAC,IAAE,EAAE,CAAE,CAAA;IAEjC,SAAgB,mBAAmB,CAAE,GAAW;QAC/C,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,CAAA;QAC/B,IAAI,GAAG,CAAC,UAAU,GAAG,QAAQ;YAAG,GAAG,GAAG,IAAI,UAAU,CAAE,QAAQ,CAAE,CAAA;QAChE,OAAO,GAAG,CAAC,KAAK,CAAE,CAAC,EAAE,sBAAsB,CAAE,GAAG,EAAE,GAAG,CAAE,CAAE,CAAA;IAC1D,CAAC;IAJe,qBAAmB,sBAIlC,CAAA;IAED,SAAgB,sBAAsB,CAAE,GAAW,EAAE,GAA8B,EAAE,IAAI,GAAG,CAAC;QAE5F,IAAI,GAAG,GAAG,IAAI,CAAA;QAEd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAG,CAAC;YAEtC,IAAI,IAAI,GAAG,GAAG,CAAC,UAAU,CAAE,CAAC,CAAE,CAAA;YAE9B,IAAI,IAAI,GAAG,IAAI,EAAG,CAAC;gBAElB,GAAG,CAAE,GAAG,EAAG,CAAE,GAAG,IAAI,CAAA;YAErB,CAAC;iBAAM,IAAI,IAAI,GAAG,KAAK,EAAG,CAAC;gBAE1B,GAAG,CAAE,GAAG,EAAG,CAAE,GAAG,IAAI,GAAG,CAAE,IAAI,IAAI,CAAC,CAAE,CAAA;gBACpC,GAAG,CAAE,GAAG,EAAG,CAAE,GAAG,IAAI,GAAG,CAAE,IAAI,GAAG,IAAI,CAAE,CAAA;YAEvC,CAAC;iBAAM,IAAI,IAAI,GAAG,MAAM,IAAI,IAAI,IAAI,MAAM,EAAG,CAAC;gBAE7C,GAAG,CAAE,GAAG,EAAG,CAAE,GAAG,IAAI,GAAG,CAAE,IAAI,IAAI,EAAE,CAAE,CAAA;gBACrC,GAAG,CAAE,GAAG,EAAG,CAAE,GAAG,IAAI,GAAG,CAAE,CAAE,IAAI,IAAI,CAAC,CAAE,GAAG,IAAI,CAAE,CAAA;gBAC/C,GAAG,CAAE,GAAG,EAAG,CAAE,GAAG,IAAI,GAAG,CAAE,IAAI,GAAG,IAAI,CAAE,CAAA;YAEvC,CAAC;iBAAM,CAAC;gBAEP,MAAM,KAAK,GAAG,CAAE,CAAE,IAAI,GAAG,MAAM,CAAE,IAAI,EAAE,CAAE,GAAG,GAAG,CAAC,UAAU,CAAE,EAAG,CAAC,CAAE,GAAG,MAAM,CAAA;gBAE3E,GAAG,CAAE,GAAG,EAAG,CAAE,GAAG,IAAI,GAAG,CAAE,KAAK,IAAI,EAAE,CAAE,CAAA;gBACtC,GAAG,CAAE,GAAG,EAAG,CAAE,GAAG,IAAI,GAAG,CAAE,CAAE,KAAK,IAAI,EAAE,CAAE,GAAG,IAAI,CAAE,CAAA;gBACjD,GAAG,CAAE,GAAG,EAAG,CAAE,GAAG,IAAI,GAAG,CAAE,CAAE,KAAK,IAAI,CAAC,CAAE,GAAG,IAAI,CAAE,CAAA;gBAChD,GAAG,CAAE,GAAG,EAAG,CAAE,GAAG,IAAI,GAAG,CAAE,KAAK,GAAG,IAAI,CAAE,CAAA;YAExC,CAAC;QAEF,CAAC;QAED,OAAO,GAAG,GAAG,IAAI,CAAA;IAClB,CAAC;IArCe,wBAAsB,yBAqCrC,CAAA;IAED,SAAgB,wBAAwB,CAAE,GAAW;QAEpD,IAAI,IAAI,GAAG,CAAC,CAAA;QAEZ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAG,CAAC;YAEtC,IAAI,IAAI,GAAG,GAAG,CAAC,UAAU,CAAE,CAAC,CAAE,CAAA;YAE9B,IAAI,IAAI,GAAG,IAAI;gBAAG,IAAI,IAAI,CAAC,CAAA;iBACtB,IAAI,IAAI,GAAG,KAAK;gBAAG,IAAI,IAAI,CAAC,CAAA;iBAC5B,IAAI,IAAI,GAAG,MAAM,IAAI,IAAI,IAAI,MAAM;gBAAG,IAAI,IAAI,CAAC,CAAA;;gBAC/C,IAAI,IAAI,CAAC,CAAA;QAEf,CAAC;QAED,OAAO,IAAI,CAAA;IACZ,CAAC;IAhBe,0BAAwB,2BAgBvC,CAAA;AAEF,CAAC,EAnES,CAAC,KAAD,CAAC,QAmEV;;;;;;;ACnED,IAAU,CAAC,CAeV;AAfD,WAAU,CAAC;IAEV,MAAM,QAAQ,GAAG,EAAwD,CAAA;IAEzE,SAAgB,mBAAmB,CAClC,MAA+B,EAC/B,WAAkC,MAAM;QAGxC,IAAI,OAAO,GAAG,QAAQ,CAAE,QAAQ,CAAE,CAAA;QAClC,IAAI,CAAC,OAAO;YAAG,OAAO,GAAG,QAAQ,CAAE,QAAQ,CAAE,GAAG,IAAI,WAAW,CAAE,QAAQ,CAAE,CAAA;QAE3E,OAAO,OAAO,CAAC,MAAM,CAAE,MAAM,CAAE,CAAA;IAChC,CAAC;IATe,qBAAmB,sBASlC,CAAA;AAEF,CAAC,EAfS,CAAC,KAAD,CAAC,QAeV;;;;ACfD,IAAU,CAAC,CAiuBV;AAjuBD,WAAU,CAAC;IAEV,IAAY,aASX;IATD,WAAY,aAAa;QACxB,iDAAiB,CAAA;QACjB,kDAAiB,CAAA;QACjB,kDAAiB,CAAA;QACjB,kDAAiB,CAAA;QACjB,mDAAiB,CAAA;QACjB,mDAAiB,CAAA;QACjB,mDAAiB,CAAA;QACjB,mDAAiB,CAAA;IAClB,CAAC,EATW,aAAa,GAAb,eAAa,KAAb,eAAa,QASxB;IAEY,eAAa,GAAG;QAC5B,CAAC,EAAE,EAAE;QACL,CAAC,EAAE,EAAE;QACL,CAAC,EAAE,EAAE;QACL,CAAC,EAAE,EAAE;KACI,CAAA;IAEV,IAAY,cAQX;IARD,WAAY,cAAc;QACzB,wCAAO,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,UAAA,CAAA;QACxB,wCAAO,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,UAAA,CAAA;QACxB,wCAAO,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,UAAA,CAAA;QACxB,wCAAO,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,UAAA,CAAA;QACxB,oDAA8B,CAAA;QAC9B,oDAA8B,CAAA;QAC9B,oDAA8B,CAAA;IAC/B,CAAC,EARW,cAAc,GAAd,gBAAc,KAAd,gBAAc,QAQzB;IAED,SAAS,OAAO,CAAE,GAAoB;QAErC,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,SAAS,CAAE,GAAG,CAAE;YAAG,OAAO,CAAC,CAAA;QAElE,IAAI,GAAG,GAAG,CAAC,EAAG,CAAC;YAEd,IAAI,GAAG,IAAI,CAAC,EAAE;gBAAG,OAAO,CAAC,CAAA;YACzB,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,IAAE,CAAC,CAAC;gBAAG,OAAO,CAAC,CAAA;YAC7B,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,IAAE,EAAE,CAAC;gBAAG,OAAO,CAAC,CAAA;YAC9B,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,IAAE,EAAE,CAAC;gBAAG,OAAO,CAAC,CAAA;YAC9B,IAAI,GAAG,IAAI,CAAC,CAAC,EAAE,IAAE,GAAG,CAAC;gBAAG,OAAO,CAAC,CAAA;YAEhC,SAAS,CAAE,IAAI,KAAK,CAAE,gBAAiB,GAAI,EAAE,CAAE,CAAE,CAAA;QAElD,CAAC;aAAM,CAAC;YAEP,IAAI,GAAG,GAAG,EAAE;gBAAG,OAAO,CAAC,CAAA;YACvB,IAAI,GAAG,GAAG,CAAC,IAAE,CAAC;gBAAG,OAAO,CAAC,CAAA;YACzB,IAAI,GAAG,GAAG,CAAC,IAAE,EAAE;gBAAG,OAAO,CAAC,CAAA;YAC1B,IAAI,GAAG,GAAG,CAAC,IAAE,EAAE;gBAAG,OAAO,CAAC,CAAA;YAC1B,IAAI,GAAG,GAAG,EAAE,IAAE,GAAG;gBAAG,OAAO,CAAC,CAAA;YAE5B,SAAS,CAAE,IAAI,KAAK,CAAE,iBAAkB,GAAI,EAAE,CAAE,CAAE,CAAA;QAEnD,CAAC;IAEF,CAAC;IAGD,MAAa,SAAU,SAAQ,QAAuB;QAGrD,MAAM,CAAC,IAAI,CAAE,IAAa;YAEzB,MAAM,MAAM,GAAG,IAAI,OAAO,EAAoE,CAAA;YAC9F,MAAM,IAAI,GAAG,CAAE,GAAW,EAA2D,EAAE;gBAEtF,IAAI,IAAI,GAAG,MAAM,CAAC,GAAG,CAAE,GAAG,CAAE,CAAA;gBAC5B,IAAI,IAAI;oBAAG,OAAO,IAAI,CAAA;gBAEtB,MAAM,CAAC,GAAG,CAAE,GAAG,EAAE,IAAI,GAAG,IAAI,CAAC,IAAI,CAAE,GAAG,CAAE,CAAE,CAAA;gBAC1C,OAAO,IAAI,CAAA;YAEZ,CAAC,CAAA;YAED,MAAM,MAAM,GAAG,IAAI,GAAG,EAAqB,CAAA;YAE3C,MAAM,IAAI,GAAG,CAAE,GAAY,EAAW,EAAE;gBAEvC,QAAQ,OAAO,GAAG,EAAG,CAAC;oBAErB,KAAK,WAAW;wBACf,OAAO,CAAC,CAAA;oBAET,KAAK,QAAQ,CAAC;oBACd,KAAK,SAAS;wBACb,OAAO,MAAM,CAAE,GAAG,CAAE,CAAA;oBAErB,KAAK,QAAQ;wBACZ,OAAO,GAAG,CAAA;oBAEX,KAAK,QAAQ;wBACZ,OAAO,iBAAiB,CAAE,kBAAkB,CAAE,GAAG,CAAE,EAAE,aAAa,CAAC,IAAI,CAAE,CAAA;oBAE1E,KAAK,QAAQ,CAAC,CAAC,CAAC;wBACf,IAAI,GAAG,GAAG,MAAM,CAAC,GAAG,CAAE,GAAG,CAAE,CAAA;wBAC3B,IAAI,GAAG,IAAI,IAAI;4BAAG,OAAO,GAAG,CAAA;wBAC5B,GAAG,GAAG,gBAAgB,CAAE,GAAG,EAAE,aAAa,CAAC,IAAI,CAAE,CAAA;wBACjD,MAAM,CAAC,GAAG,CAAE,GAAG,EAAE,GAAG,CAAE,CAAA;wBACtB,OAAO,GAAG,CAAA;oBACX,CAAC;oBAED,KAAK,QAAQ,CAAC,CAAC,CAAC;wBAEf,IAAI,CAAC,GAAG;4BAAG,OAAO,cAAc,CAAC,IAAI,CAAA;wBAErC,IAAI,GAAG,GAAG,MAAM,CAAC,GAAG,CAAE,GAAG,CAAE,CAAA;wBAC3B,IAAI,GAAG,IAAI,IAAI;4BAAG,OAAO,GAAG,CAAA;wBAE5B,IAAI,WAAW,CAAC,MAAM,CAAE,GAAG,CAAE;4BAAG,GAAG,GAAG,iBAAiB,CAAE,IAAI,UAAU,CAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,UAAU,CAAE,EAAE,aAAa,CAAC,IAAI,CAAE,CAAA;6BACtI,IAAI,KAAK,CAAC,OAAO,CAAE,GAAG,CAAE;4BAAG,GAAG,GAAG,iBAAiB,CAAE,GAAG,CAAC,GAAG,CAAE,IAAI,CAAE,EAAE,aAAa,CAAC,IAAI,CAAE,CAAA;6BACzF,CAAC;4BACL,MAAM,CAAE,IAAI,EAAE,IAAI,CAAE,GAAG,IAAI,CAAE,GAAG,CAAE,CAAA;4BAClC,GAAG,GAAG,iBAAiB,CAAE,CAAE,IAAI,CAAE,IAAI,CAAE,EAAE,GAAI,IAAI,CAAC,GAAG,CAAE,IAAI,CAAE,CAAE,EAAE,aAAa,CAAC,IAAI,CAAE,CAAA;wBACtF,CAAC;wBAED,MAAM,CAAC,GAAG,CAAE,GAAG,EAAE,GAAG,CAAE,CAAA;wBACtB,OAAO,GAAG,CAAA;oBACX,CAAC;gBAEF,CAAC;gBACD,SAAS,CAAE,IAAI,KAAK,CAAE,kBAAkB,CAAE,CAAE,CAAA;YAC7C,CAAC,CAAA;YAED,IAAI,IAAI,GAAG,CAAC,CAAA;YACZ,MAAM,OAAO,GAAG,IAAI,GAAG,EAA6B,CAAA;YACpD,MAAM,KAAK,GAAG,IAAI,GAAG,EAAoB,CAAA;YACzC,MAAM,MAAM,GAAG,EAAe,CAAA;YAG9B,MAAM,KAAK,GAAG,CAAE,GAAY,EAAE,GAAW,EAAE,EAAE;gBAE5C,MAAM,GAAG,GAAG,IAAI,CAAE,GAAG,CAAE,CAAA;gBACvB,IAAI,MAAM,GAAG,OAAO,CAAC,GAAG,CAAE,GAAG,CAAE,CAAA;gBAE/B,IAAI,MAAM,KAAK,SAAS,EAAG,CAAC;oBAE3B,OAAO,CAAC,GAAG,CAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAE,CAAA;oBAC1C,MAAM,CAAC,IAAI,CAAE,GAAG,CAAE,CAAA;oBAClB,IAAI,IAAI,GAAG,CAAA;oBAEX,OAAO,IAAI,CAAA;gBAEZ,CAAC;qBAAM,CAAC;oBAEP,IAAI,IAAI,CAAC,GAAG,OAAO,CAAE,MAAM,CAAE,CAAA;oBAC7B,OAAO,KAAK,CAAA;gBAEb,CAAC;YAEF,CAAC,CAAA;YAGD,MAAM,IAAI,GAAG,CAAE,GAAY,EAAE,EAAE;gBAE9B,IAAI,GAAG,IAAI,IAAI,EAAG,CAAC;oBAClB,IAAI,IAAI,CAAC,CAAA;oBACT,OAAO,IAAI,CAAA;gBACZ,CAAC;gBAED,QAAQ,OAAO,GAAG,EAAG,CAAC;oBAErB,KAAK,SAAS;wBACb,IAAI,IAAI,CAAC,CAAA;wBACT,OAAO,IAAI,CAAA;oBAEZ,KAAK,QAAQ,CAAC;oBACd,KAAK,QAAQ;wBACZ,IAAI,IAAI,CAAC,GAAG,OAAO,CAAE,GAAG,CAAE,CAAA;wBAC1B,OAAO,IAAI,CAAA;oBAEZ,KAAK,QAAQ,CAAC,CAAC,CAAC;wBAEf,IAAI,GAAG,GAAG,KAAK,CAAC,GAAG,CAAE,GAAG,CAAE,CAAA;wBAC1B,IAAI,GAAG,IAAI,IAAI;4BAAG,KAAK,CAAC,GAAG,CAAE,GAAG,EAAE,GAAG,GAAG,wBAAwB,CAAE,GAAG,CAAE,CAAE,CAAA;wBAEzE,IAAI,CAAC,GAAG,EAAG,CAAC;4BACX,IAAI,IAAI,CAAC,CAAA;4BACT,OAAO,IAAI,CAAA;wBACZ,CAAC;wBAED,OAAO,KAAK,CAAE,GAAG,EAAE,CAAC,GAAG,OAAO,CAAE,GAAG,CAAE,GAAG,GAAG,CAAE,CAAA;oBAE9C,CAAC;oBAED,KAAK,QAAQ,CAAC,CAAC,CAAC;wBAEf,IAAI,WAAW,CAAC,MAAM,CAAE,GAAG,CAAE,EAAG,CAAC;4BAEhC,IAAI,CAAC,GAAG,CAAC,UAAU,EAAG,CAAC;gCACtB,IAAI,IAAI,CAAC,CAAA;gCACT,OAAO,IAAI,CAAA;4BACZ,CAAC;4BAED,OAAO,KAAK,CAAE,GAAG,EAAE,CAAC,GAAG,OAAO,CAAE,GAAG,CAAC,UAAU,CAAE,GAAG,GAAG,CAAC,UAAU,CAAE,CAAA;wBAEpE,CAAC;wBAED,IAAI,KAAK,CAAC,OAAO,CAAE,GAAG,CAAE,EAAG,CAAC;4BAE3B,IAAI,CAAC,GAAG,CAAC,MAAM,EAAG,CAAC;gCAClB,IAAI,IAAI,CAAC,CAAA;gCACT,OAAO,IAAI,CAAA;4BACZ,CAAC;4BAED,MAAM,GAAG,GAAG,IAAI,CAAE,GAAG,CAAE,CAAA;4BACvB,IAAI,MAAM,GAAG,OAAO,CAAC,GAAG,CAAE,GAAG,CAAE,CAAA;4BAC/B,IAAI,MAAM,KAAK,SAAS,EAAG,CAAC;gCAC3B,KAAK,MAAM,IAAI,IAAI,GAAG;oCAAG,IAAI,CAAE,IAAI,CAAE,CAAA;4BACtC,CAAC;4BAED,OAAO,KAAK,CAAE,GAAG,EAAE,CAAC,GAAG,OAAO,CAAE,GAAG,CAAC,MAAM,CAAE,CAAE,CAAA;wBAE/C,CAAC;wBAED,MAAM,CAAE,IAAI,EAAE,IAAI,CAAE,GAAG,IAAI,CAAE,GAAG,CAAE,CAAA;wBAElC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAG,CAAC;4BACnB,IAAI,IAAI,CAAC,CAAA;4BACT,OAAO,IAAI,CAAA;wBACZ,CAAC;wBAED,MAAM,GAAG,GAAG,IAAI,CAAE,GAAG,CAAE,CAAA;wBACvB,IAAI,MAAM,GAAG,OAAO,CAAC,GAAG,CAAE,GAAG,CAAE,CAAA;wBAC/B,IAAI,MAAM,KAAK,SAAS,EAAG,CAAC;4BAC3B,IAAI,CAAE,IAAI,CAAE,CAAA;4BACZ,KAAK,MAAM,IAAI,IAAI,IAAI;gCAAG,IAAI,CAAE,IAAI,CAAE,CAAA;wBACvC,CAAC;wBAED,OAAO,KAAK,CAAE,GAAG,EAAE,CAAC,GAAG,OAAO,CAAE,IAAI,CAAC,MAAM,CAAE,CAAE,CAAA;oBAEhD,CAAC;gBAEF,CAAC;gBAED,SAAS,CAAE,IAAI,KAAK,CAAE,kBAAkB,CAAE,CAAE,CAAA;YAC7C,CAAC,CAAA;YAED,IAAI,CAAE,IAAI,CAAE,CAAA;YAEZ,MAAM,GAAG,GAAG,IAAI,UAAU,CAAE,IAAI,CAAE,CAAA;YAClC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAE,GAAG,CAAC,MAAM,CAAE,CAAA;YACnC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAY,CAAA;YAEpC,IAAI,GAAG,GAAG,CAAC,CAAA;YAEX,MAAM,IAAI,GAAG,CAAE,GAAY,EAAE,EAAE;gBAE9B,IAAI,GAAG,IAAI,IAAI;oBAAG,SAAS,CAAE,IAAI,KAAK,CAAE,qBAAqB,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAE,CAAE,CAAA;gBAEjF,QAAQ,OAAO,GAAG,EAAG,CAAC;oBAErB,KAAK,WAAW,CAAC,CAAC,CAAC;wBAClB,IAAI,CAAC,IAAI,CAAE,GAAG,EAAE,MAAM,EAAE,cAAc,CAAC,IAAI,CAAE,CAAA;wBAC7C,GAAG,IAAI,CAAC,CAAA;wBACR,OAAM;oBACP,CAAC;oBAED,KAAK,SAAS,CAAC,CAAC,CAAC;wBAEhB,IAAI,CAAC,IAAI,CAAE,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAE,CAAA;wBACzE,GAAG,IAAI,CAAC,CAAA;wBAER,OAAM;oBACP,CAAC;oBAED,KAAK,QAAQ,CAAC,CAAC,CAAC;wBAEf,IAAI,CAAC,MAAM,CAAC,SAAS,CAAE,GAAG,CAAE,EAAG,CAAC;4BAC/B,GAAG,IAAI,IAAI,CAAC,GAAG,CAAE,GAAG,EAAE,MAAM,EAAE,GAAG,CAAE,CAAA;wBACpC,CAAC;6BAAM,IAAI,GAAG,GAAG,CAAC,EAAG,CAAC;4BACrB,GAAG,IAAI,IAAI,CAAC,IAAI,CAAE,GAAG,EAAE,MAAM,EAAE,GAAG,CAAE,CAAA;wBACrC,CAAC;6BAAM,CAAC;4BACP,GAAG,IAAI,IAAI,CAAC,IAAI,CAAE,GAAG,EAAE,MAAM,EAAE,GAAG,CAAE,CAAA;wBACrC,CAAC;wBAED,OAAM;oBACP,CAAC;oBAED,KAAK,QAAQ,CAAC,CAAC,CAAC;wBAEf,IAAI,GAAG,GAAG,CAAC,EAAG,CAAC;4BACd,GAAG,IAAI,IAAI,CAAC,IAAI,CAAE,GAAG,EAAE,MAAM,EAAE,GAAG,CAAE,CAAA;wBACrC,CAAC;6BAAM,CAAC;4BACP,GAAG,IAAI,IAAI,CAAC,IAAI,CAAE,GAAG,EAAE,MAAM,EAAE,GAAG,CAAE,CAAA;wBACrC,CAAC;wBAED,OAAM;oBACP,CAAC;oBAED,KAAK,QAAQ,CAAC,CAAC,CAAC;wBAEf,MAAM,GAAG,GAAG,IAAI,CAAE,GAAG,CAAE,CAAA;wBAEvB,IAAI,QAAQ,CAAC,GAAG,CAAE,GAAG,CAAE,EAAG,CAAC;4BAC1B,GAAG,IAAI,IAAI,CAAC,IAAI,CAAE,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,GAAG,CAAE,GAAG,CAAG,CAAE,CAAA;4BACpD,OAAM;wBACP,CAAC;wBAED,GAAG,IAAI,IAAI,CAAC,IAAI,CAAE,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG,CAAE,GAAG,CAAG,CAAE,CAAA;wBAClD,GAAG,IAAI,sBAAsB,CAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAE,CAAA;wBAE9C,IAAI,GAAG,CAAC,MAAM;4BAAG,QAAQ,CAAC,GAAG,CAAE,GAAG,CAAE,CAAA;wBACpC,OAAM;oBAEP,CAAC;oBAED,KAAK,QAAQ,CAAC,CAAC,CAAC;wBAEf,IAAI,CAAC,GAAG,EAAG,CAAC;4BACX,IAAI,CAAC,IAAI,CAAE,GAAG,EAAE,MAAM,EAAE,cAAc,CAAC,IAAI,CAAE,CAAA;4BAC7C,GAAG,IAAI,CAAC,CAAA;4BACR,OAAM;wBACP,CAAC;wBAED,IAAI,WAAW,CAAC,MAAM,CAAE,GAAG,CAAE,EAAG,CAAC;4BAEhC,MAAM,GAAG,GAAG,IAAI,CAAE,GAAG,CAAE,CAAA;4BAEvB,IAAI,QAAQ,CAAC,GAAG,CAAE,GAAG,CAAE,EAAG,CAAC;gCAC1B,GAAG,IAAI,IAAI,CAAC,IAAI,CAAE,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,GAAG,CAAE,GAAG,CAAG,CAAE,CAAA;gCACpD,OAAM;4BACP,CAAC;4BAED,GAAG,IAAI,IAAI,CAAC,IAAI,CAAE,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,UAAU,CAAE,CAAA;4BAE/C,IAAI,GAAG,YAAY,UAAU;gCAAG,GAAG,IAAI,IAAI,CAAC,IAAI,CAAE,GAAG,EAAE,MAAM,EAAE,EAAA,aAAa,CAAC,CAAC,CAAC,CAAE,CAAA;iCAC5E,IAAI,GAAG,YAAY,WAAW;gCAAG,GAAG,IAAI,IAAI,CAAC,IAAI,CAAE,GAAG,EAAE,MAAM,EAAE,EAAA,aAAa,CAAC,CAAC,CAAC,CAAE,CAAA;iCAClF,IAAI,GAAG,YAAY,WAAW;gCAAG,GAAG,IAAI,IAAI,CAAC,IAAI,CAAE,GAAG,EAAE,MAAM,EAAE,EAAA,aAAa,CAAC,CAAC,CAAC,CAAE,CAAA;iCAClF,IAAI,GAAG,YAAY,cAAc;gCAAG,GAAG,IAAI,IAAI,CAAC,IAAI,CAAE,GAAG,EAAE,MAAM,EAAE,EAAA,aAAa,CAAC,CAAC,CAAC,CAAE,CAAA;iCAErF,IAAI,GAAG,YAAY,SAAS;gCAAG,GAAG,IAAI,IAAI,CAAC,IAAI,CAAE,GAAG,EAAE,MAAM,EAAE,CAAC,EAAA,aAAa,CAAC,CAAC,CAAC,CAAE,CAAA;iCACjF,IAAI,GAAG,YAAY,UAAU;gCAAG,GAAG,IAAI,IAAI,CAAC,IAAI,CAAE,GAAG,EAAE,MAAM,EAAE,CAAC,EAAA,aAAa,CAAC,CAAC,CAAC,CAAE,CAAA;iCAClF,IAAI,GAAG,YAAY,UAAU;gCAAG,GAAG,IAAI,IAAI,CAAC,IAAI,CAAE,GAAG,EAAE,MAAM,EAAE,CAAC,EAAA,aAAa,CAAC,CAAC,CAAC,CAAE,CAAA;iCAClF,IAAI,GAAG,YAAY,aAAa;gCAAG,GAAG,IAAI,IAAI,CAAC,IAAI,CAAE,GAAG,EAAE,MAAM,EAAE,CAAC,EAAA,aAAa,CAAC,CAAC,CAAC,CAAE,CAAA;iCAGrF,IAAI,GAAG,YAAY,YAAY;gCAAG,GAAG,IAAI,IAAI,CAAC,IAAI,CAAE,GAAG,EAAE,MAAM,EAAE,cAAc,CAAC,IAAI,CAAE,CAAA;iCACtF,IAAI,GAAG,YAAY,YAAY;gCAAG,GAAG,IAAI,IAAI,CAAC,IAAI,CAAE,GAAG,EAAE,MAAM,EAAE,cAAc,CAAC,IAAI,CAAE,CAAA;;gCAEtF,SAAS,CAAE,IAAI,KAAK,CAAE,kBAAkB,CAAE,CAAE,CAAA;4BAEjD,GAAG,CAAC,GAAG,CAAE,IAAI,UAAU,CAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,UAAU,CAAE,EAAE,GAAG,CAAE,CAAA;4BAC5E,GAAG,IAAI,GAAG,CAAC,UAAU,CAAA;4BAErB,IAAI,GAAG,CAAC,UAAU;gCAAG,QAAQ,CAAC,GAAG,CAAE,GAAG,CAAE,CAAA;4BACxC,OAAM;wBAEP,CAAC;wBAED,IAAI,KAAK,CAAC,OAAO,CAAE,GAAG,CAAE,EAAG,CAAC;4BAE3B,MAAM,GAAG,GAAG,IAAI,CAAE,GAAG,CAAE,CAAA;4BAEvB,IAAI,QAAQ,CAAC,GAAG,CAAE,GAAG,CAAE,EAAG,CAAC;gCAC1B,GAAG,IAAI,IAAI,CAAC,IAAI,CAAE,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,GAAG,CAAE,GAAG,CAAG,CAAE,CAAA;gCACpD,OAAM;4BACP,CAAC;4BAED,GAAG,IAAI,IAAI,CAAC,IAAI,CAAE,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,CAAE,CAAA;4BAC3C,KAAK,MAAM,IAAI,IAAI,GAAG;gCAAG,IAAI,CAAE,IAAI,CAAE,CAAA;4BAErC,IAAI,GAAG,CAAC,MAAM;gCAAG,QAAQ,CAAC,GAAG,CAAE,GAAG,CAAE,CAAA;4BACpC,OAAM;wBAEP,CAAC;wBAED,MAAM,GAAG,GAAG,IAAI,CAAE,GAAG,CAAE,CAAA;wBAEvB,IAAI,QAAQ,CAAC,GAAG,CAAE,GAAG,CAAE,EAAG,CAAC;4BAC1B,GAAG,IAAI,IAAI,CAAC,IAAI,CAAE,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,GAAG,CAAE,GAAG,CAAG,CAAE,CAAA;4BACpD,OAAM;wBACP,CAAC;wBAED,MAAM,CAAE,IAAI,EAAE,IAAI,CAAE,GAAG,IAAI,CAAE,GAAG,CAAE,CAAA;wBAElC,GAAG,IAAI,IAAI,CAAC,IAAI,CAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAE,CAAA;wBAC5C,IAAI,CAAE,IAAI,CAAE,CAAA;wBACZ,KAAK,MAAM,IAAI,IAAI,IAAI;4BAAG,IAAI,CAAE,IAAI,CAAE,CAAA;wBAEtC,IAAI,IAAI,CAAC,MAAM;4BAAG,QAAQ,CAAC,GAAG,CAAE,GAAG,CAAE,CAAA;wBACrC,OAAM;oBAEP,CAAC;gBAEF,CAAC;gBAED,SAAS,CAAE,IAAI,KAAK,CAAE,kBAAkB,CAAE,CAAE,CAAA;YAC7C,CAAC,CAAA;YAED,IAAI,CAAE,IAAI,CAAE,CAAA;YAEZ,OAAO,GAAG,CAAA;QAEX,CAAC;QAGD,MAAM,CAAC,IAAI,CAAE,GAA8B;YAE1C,MAAM,IAAI,GAAG,IAAI,SAAS,CAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,UAAU,CAAE,CAAA;YACxE,MAAM,MAAM,GAAG,EAAe,CAAA;YAC9B,IAAI,GAAG,GAAG,CAAC,CAAC;YAEZ,MAAM,SAAS,GAAG,GAAE,EAAE;gBACrB,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAE,GAAG,CAAE,CAAA;gBAC5B,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAE,GAAG,CAAE,CAAA;gBAC3B,OAAO,GAAG,CAAA;YACX,CAAC,CAAA;YAED,MAAM,SAAS,GAAG,GAAE,EAAE;gBACrB,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAE,GAAG,CAAE,CAAA;gBAC5B,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAE,GAAG,CAAE,CAAA;gBAC3B,OAAO,GAAG,CAAA;YACX,CAAC,CAAA;YAED,MAAM,SAAS,GAAG,GAAE,EAAE;gBACrB,MAAM,GAAG,GAAG,SAAS,EAAY,CAAA;gBACjC,MAAM,GAAG,GAAG,IAAI,UAAU,CAAE,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,GAAG,GAAG,EAAE,GAAG,CAAE,CAAA;gBACpE,GAAG,IAAI,GAAG,CAAA;gBACV,MAAM,IAAI,GAAG,mBAAmB,CAAE,GAAG,CAAE,CAAA;gBACvC,IAAI,IAAI,CAAC,MAAM;oBAAG,MAAM,CAAC,IAAI,CAAE,IAAI,CAAE,CAAA;gBACrC,OAAO,IAAI,CAAA;YACZ,CAAC,CAAA;YAED,MAAM,WAAW,GAAG,CAAE,GAAW,EAAE,UAAoE,EAAE,EAAE;gBAC1G,MAAM,GAAG,GAAG,IAAI,UAAU,CAAE,GAAG,CAAC,KAAK,CAAE,GAAG,EAAE,GAAG,GAAG,GAAG,CAAE,CAAC,MAAM,CAAE,CAAA;gBAChE,GAAG,IAAI,GAAG,CAAA;gBACV,IAAI,GAAG;oBAAG,MAAM,CAAC,IAAI,CAAE,GAAG,CAAE,CAAA;gBAC5B,OAAO,GAAG,CAAA;YACX,CAAC,CAAA;YAED,MAAM,SAAS,GAAG,GAAE,EAAE;gBAErB,MAAM,GAAG,GAAG,SAAS,EAAY,CAAA;gBACjC,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAE,GAAG,EAAG,CAAE,CAAA;gBAEpC,QAAQ,IAAI,EAAG,CAAC;oBAEf,KAAK,aAAa,CAAC,IAAI,GAAG,EAAA,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,WAAW,CAAE,GAAG,EAAE,UAAU,CAAE,CAAA;oBACjF,KAAK,aAAa,CAAC,IAAI,GAAG,EAAA,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,WAAW,CAAE,GAAG,EAAE,WAAW,CAAE,CAAA;oBAClF,KAAK,aAAa,CAAC,IAAI,GAAG,EAAA,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,WAAW,CAAE,GAAG,EAAE,WAAW,CAAE,CAAA;oBAClF,KAAK,aAAa,CAAC,IAAI,GAAG,EAAA,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,WAAW,CAAE,GAAG,EAAE,cAAc,CAAE,CAAA;oBAErF,KAAK,aAAa,CAAC,IAAI,GAAG,CAAC,EAAA,aAAa,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,OAAO,WAAW,CAAE,GAAG,EAAE,SAAS,CAAE,CAAA;oBACvF,KAAK,aAAa,CAAC,IAAI,GAAG,CAAC,EAAA,aAAa,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,OAAO,WAAW,CAAE,GAAG,EAAE,UAAU,CAAE,CAAA;oBACxF,KAAK,aAAa,CAAC,IAAI,GAAG,CAAC,EAAA,aAAa,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,OAAO,WAAW,CAAE,GAAG,EAAE,UAAU,CAAE,CAAA;oBACxF,KAAK,aAAa,CAAC,IAAI,GAAG,CAAC,EAAA,aAAa,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,OAAO,WAAW,CAAE,GAAG,EAAE,aAAa,CAAE,CAAA;oBAG3F,KAAK,aAAa,CAAC,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,OAAO,WAAW,CAAE,GAAG,EAAE,YAAY,CAAE,CAAA;oBACtF,KAAK,aAAa,CAAC,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,OAAO,WAAW,CAAE,GAAG,EAAE,YAAY,CAAE,CAAA;oBAEtF;wBACC,SAAS,CAAE,IAAI,KAAK,CAAE,uBAAuB,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,CAAE,CAAE,CAAA;gBACxE,CAAC;YAEF,CAAC,CAAA;YAED,MAAM,SAAS,GAAG,GAAE,EAAE;gBACrB,MAAM,GAAG,GAAG,SAAS,EAAY,CAAA;gBACjC,MAAM,IAAI,GAAG,EAAW,CAAA;gBACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC;oBAAG,IAAI,CAAC,IAAI,CAAE,SAAS,EAAE,CAAE,CAAA;gBACvD,IAAI,GAAG;oBAAG,MAAM,CAAC,IAAI,CAAE,IAAI,CAAE,CAAA;gBAC7B,OAAO,IAAI,CAAA;YACZ,CAAC,CAAA;YAED,MAAM,SAAS,GAAG,GAAE,EAAE;gBACrB,MAAM,KAAK,GAAG,SAAS,EAAY,CAAA;gBACnC,IAAI,KAAK,IAAI,MAAM,CAAC,MAAM;oBAAG,SAAS,CAAE,IAAI,KAAK,CAAE,iBAAiB,EAAE,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,EAAE,CAAE,CAAE,CAAA;gBACrH,OAAO,MAAM,CAAE,KAAK,CAAE,CAAA;YACvB,CAAC,CAAA;YAED,MAAM,SAAS,GAAG,GAAE,EAAE;gBAErB,MAAM,GAAG,GAAG,SAAS,EAAY,CAAA;gBAEjC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAE,GAAG,CAAE,KAAK,MAAM,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,CAAA;gBACnE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAE,IAAI,CAAE;oBAAG,SAAS,CAAE,IAAI,KAAK,CAAE,uBAAuB,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,IAAI,EAAE,EAAE,CAAE,CAAE,CAAA;gBAEhH,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAE,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,GAAE,EAAE,CAAC,SAAS,EAAE,CAAE,CAAA;gBAE5D,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAE,IAAI,EAAE,IAAI,CAAE,CAAA;gBACnC,IAAI,IAAI,CAAC,MAAM;oBAAG,MAAM,CAAC,IAAI,CAAE,GAAG,CAAE,CAAA;gBAEpC,OAAO,GAAG,CAAA;YACX,CAAC,CAAA;YAED,MAAM,SAAS,GAAG,GAAE,EAAE;gBAErB,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAE,GAAG,CAAE,CAAA;gBACjC,MAAM,IAAI,GAAG,cAAc,CAAE,IAAI,CAAiC,CAAA;gBAElE,QAAQ,IAAI,EAAG,CAAC;oBAEf,KAAK,MAAM;wBACV,EAAG,GAAG,CAAA;wBACN,OAAO,IAAI,CAAA;oBAEZ,KAAK,MAAM;wBACV,EAAG,GAAG,CAAA;wBACN,OAAO,KAAK,CAAA;oBAEb,KAAK,MAAM;wBACV,EAAG,GAAG,CAAA;wBACN,OAAO,IAAI,CAAA;oBAEZ,KAAK,MAAM;wBACV,EAAG,GAAG,CAAA;wBACN,OAAO,SAAS,CAAA;oBAEjB,KAAK,MAAM,CAAC,CAAC,CAAC;wBACb,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAE,GAAG,GAAG,CAAC,EAAE,IAAI,CAAE,CAAA;wBAC5C,GAAG,IAAI,CAAC,CAAA;wBACR,OAAO,GAAG,CAAA;oBACX,CAAC;oBAED,KAAK,MAAM,CAAC,CAAC,CAAC;wBACb,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAE,GAAG,GAAG,CAAC,EAAE,IAAI,CAAE,CAAA;wBAC5C,GAAG,IAAI,CAAC,CAAA;wBACR,OAAO,GAAG,CAAA;oBACX,CAAC;oBAED,KAAK,MAAM,CAAC,CAAC,CAAC;wBACb,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAE,GAAG,GAAG,CAAC,EAAE,IAAI,CAAE,CAAA;wBAC5C,GAAG,IAAI,CAAC,CAAA;wBACR,OAAO,GAAG,CAAA;oBACX,CAAC;oBAED;wBACC,SAAS,CAAE,IAAI,KAAK,CAAE,kBAAkB,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,CAAE,CAAE,CAAA;gBAEnE,CAAC;YAEF,CAAC,CAAA;YAED,MAAM,SAAS,GAAG,GAAE,EAAE;gBAErB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAE,GAAG,CAAE,CAAA;gBAE3B,QAAQ,GAAG,EAAG,CAAC;oBAEd,KAAK,MAAM,CAAC,CAAC,OAAO,SAAS,EAAE,CAAA;oBAC/B,KAAK,MAAM,CAAC,CAAC,OAAO,SAAS,EAAE,CAAA;oBAC/B,KAAK,MAAM,CAAC,CAAC,OAAO,SAAS,EAAE,CAAA;oBAC/B,KAAK,MAAM,CAAC,CAAC,OAAO,SAAS,EAAE,CAAA;oBAC/B,KAAK,MAAM,CAAC,CAAC,OAAO,SAAS,EAAE,CAAA;oBAC/B,KAAK,MAAM,CAAC,CAAC,OAAO,SAAS,EAAE,CAAA;oBAC/B,KAAK,MAAM,CAAC,CAAC,OAAO,SAAS,EAAE,CAAA;oBAC/B,KAAK,MAAM,CAAC,CAAC,OAAO,SAAS,EAAE,CAAA;oBAE/B,OAAO,CAAC,CAAC,SAAS,CAAE,IAAI,KAAK,CAAE,iBAAiB,EAAE,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAE,CAAE,CAAA;gBACzE,CAAC;YAEF,CAAC,CAAA;YAED,OAAO,SAAS,EAAE,CAAA;QACnB,CAAC;QAED,IAAI,CAAE,GAAW,EAAE,GAA+B,EAAE,GAAW;YAC9D,IAAI,CAAC,QAAQ,CAAE,GAAG,EAAE,aAAa,CAAE,GAAG,CAAE,GAAG,GAAG,CAAE,CAAA;YAChD,OAAO,CAAC,CAAA;QACT,CAAC;QAED,IAAI,CAAE,GAAW,EAAE,GAA+B,EAAE,GAAoB;YAEvE,MAAM,GAAG,GAAG,OAAO,CAAE,GAAG,CAAE,CAAA;YAC1B,IAAI,CAAC,IAAI,CAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAA,aAAa,CAAE,GAAG,CAAE,CAAC,CAAC,CAAC,MAAM,CAAE,GAAG,CAAE,CAAE,CAAA;YAEjE,QAAQ,GAAG,EAAG,CAAC;gBACd,KAAK,CAAC,CAAC,CAAC,MAAK;gBACb,KAAK,CAAC;oBAAE,IAAI,CAAC,QAAQ,CAAE,GAAG,GAAG,CAAC,EAAE,MAAM,CAAE,GAAG,CAAE,CAAE,CAAC;oBAAC,MAAK;gBACtD,KAAK,CAAC;oBAAE,IAAI,CAAC,SAAS,CAAE,GAAG,GAAG,CAAC,EAAE,MAAM,CAAE,GAAG,CAAE,EAAE,IAAI,CAAE,CAAC;oBAAC,MAAK;gBAC7D,KAAK,CAAC;oBAAE,IAAI,CAAC,SAAS,CAAE,GAAG,GAAG,CAAC,EAAE,MAAM,CAAE,GAAG,CAAE,EAAE,IAAI,CAAE,CAAC;oBAAC,MAAK;gBAC7D,KAAK,CAAC;oBAAE,IAAI,CAAC,YAAY,CAAE,GAAG,GAAG,CAAC,EAAE,MAAM,CAAE,GAAG,CAAE,EAAE,IAAI,CAAE,CAAC;oBAAC,MAAK;gBAChE,OAAO,CAAC,CAAC,SAAS,CAAE,IAAI,KAAK,CAAE,sBAAsB,EAAE,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAE,CAAE,CAAA;YAC9E,CAAC;YAED,OAAO,CAAC,GAAG,GAAG,CAAA;QACf,CAAC;QAED,IAAI,CAAE,GAAW,EAAE,GAA+B,EAAE,GAAoB;YAEvE,MAAM,GAAG,GAAG,OAAO,CAAE,GAAG,CAAE,CAAA;YAC1B,IAAI,CAAC,IAAI,CAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAE,EAAA,aAAa,CAAE,GAAG,CAAE,GAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAE,GAAG,CAAE,CAAE,CAAA;YAEtE,QAAQ,GAAG,EAAG,CAAC;gBACd,KAAK,CAAC,CAAC,CAAC,MAAK;gBACb,KAAK,CAAC;oBAAE,IAAI,CAAC,OAAO,CAAE,GAAG,GAAG,CAAC,EAAE,MAAM,CAAE,GAAG,CAAE,CAAE,CAAC;oBAAC,MAAK;gBACrD,KAAK,CAAC;oBAAE,IAAI,CAAC,QAAQ,CAAE,GAAG,GAAG,CAAC,EAAE,MAAM,CAAE,GAAG,CAAE,EAAE,IAAI,CAAE,CAAC;oBAAC,MAAK;gBAC5D,KAAK,CAAC;oBAAE,IAAI,CAAC,QAAQ,CAAE,GAAG,GAAG,CAAC,EAAE,MAAM,CAAE,GAAG,CAAE,EAAE,IAAI,CAAE,CAAC;oBAAC,MAAK;gBAC5D,KAAK,CAAC;oBAAE,IAAI,CAAC,WAAW,CAAE,GAAG,GAAG,CAAC,EAAE,MAAM,CAAE,GAAG,CAAE,EAAE,IAAI,CAAE,CAAC;oBAAC,MAAK;gBAC/D,OAAO,CAAC,CAAC,SAAS,CAAE,IAAI,KAAK,CAAE,sBAAsB,EAAE,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAE,CAAE,CAAA;YAC9E,CAAC;YAED,OAAO,CAAC,GAAG,GAAG,CAAA;QACf,CAAC;QAED,GAAG,CAAE,GAAW,EAAE,GAA+B,EAAE,GAAW;YAE7D,MAAM,GAAG,GAAG,OAAO,CAAE,GAAG,CAAE,CAAA;YAC1B,IAAI,CAAC,IAAI,CAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAA,aAAa,CAAE,GAAG,CAAE,CAAC,CAAC,CAAC,MAAM,CAAE,GAAG,CAAE,CAAE,CAAA;YAEjE,QAAQ,GAAG,EAAG,CAAC;gBACd,KAAK,CAAC;oBAAE,IAAI,CAAC,UAAU,CAAE,GAAG,GAAG,CAAC,EAAE,GAAG,EAAE,IAAI,CAAE,CAAC;oBAAC,MAAK;gBACpD,KAAK,CAAC;oBAAE,IAAI,CAAC,UAAU,CAAE,GAAG,GAAG,CAAC,EAAE,GAAG,EAAE,IAAI,CAAE,CAAC;oBAAC,MAAK;gBACpD,KAAK,CAAC;oBAAE,IAAI,CAAC,UAAU,CAAE,GAAG,GAAG,CAAC,EAAE,GAAG,EAAE,IAAI,CAAE,CAAC;oBAAC,MAAK;gBACpD,OAAO,CAAC,CAAC,SAAS,CAAE,IAAI,KAAK,CAAE,oBAAoB,EAAE,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAE,CAAE,CAAA;YAC5E,CAAC;YAED,OAAO,CAAC,GAAG,GAAG,CAAA;QACf,CAAC;QAED,GAAG,CAAE,GAAW;YACf,OAAO,aAAa,CAAE,IAAI,CAAC,QAAQ,CAAE,GAAG,CAAE,GAAG,WAAW,CAAgC,CAAA;QACzF,CAAC;QAED,IAAI,CAAE,GAAW;YAChB,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAE,GAAG,CAAE,GAAG,OAAO,CAAA;YAC1C,IAAI,GAAG,GAAG,EAAE;gBAAG,OAAO,CAAC,CAAA;YACvB,QAAQ,GAAG,EAAG,CAAC;gBACd,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,CAAA;gBACjB,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,CAAA;gBACjB,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,CAAA;gBACjB,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,CAAA;gBACjB,OAAO,CAAC,CAAC,SAAS,CAAE,IAAI,KAAK,CAAE,aAAa,CAAE,CAAE,CAAA;YACjD,CAAC;QACF,CAAC;QAED,IAAI,CAAE,GAAW;YAChB,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAE,GAAG,CAAE,CAAA;YAC/B,IAAI,GAAG,GAAG,CAAC,EAAE;gBAAG,OAAO,CAAC,CAAA;YACxB,QAAQ,GAAG,EAAG,CAAC;gBACd,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAA;gBAClB,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAA;gBAClB,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAA;gBAClB,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAA;gBAClB,OAAO,CAAC,CAAC,SAAS,CAAE,IAAI,KAAK,CAAE,aAAa,CAAE,CAAE,CAAA;YACjD,CAAC;QACF,CAAC;QAED,IAAI,CAAE,GAAW;YAChB,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAE,GAAG,CAAE,GAAG,OAAO,CAAA;YAC1C,IAAI,GAAG,GAAG,EAAE;gBAAG,OAAO,GAAG,CAAA;YACzB,QAAQ,GAAG,EAAG,CAAC;gBACd,KAAK,EAAE,CAAC,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAE,GAAG,GAAG,CAAC,CAAE,CAAA;gBACxC,KAAK,EAAE,CAAC,CAAC,OAAO,IAAI,CAAC,SAAS,CAAE,GAAG,GAAG,CAAC,EAAE,IAAI,CAAE,CAAA;gBAC/C,KAAK,EAAE,CAAC,CAAC,OAAO,IAAI,CAAC,SAAS,CAAE,GAAG,GAAG,CAAC,EAAE,IAAI,CAAE,CAAA;gBAC/C,KAAK,EAAE;oBACN,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAE,GAAG,GAAG,CAAC,EAAE,IAAI,CAAE,CAAA;oBAC9C,IAAI,GAAG,GAAG,MAAM,CAAC,gBAAgB;wBAAG,OAAO,GAAG,CAAA;oBAC9C,OAAO,MAAM,CAAE,GAAG,CAAE,CAAA;gBACrB,OAAO,CAAC,CAAC,SAAS,CAAE,IAAI,KAAK,CAAE,iBAAiB,EAAE,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAE,CAAE,CAAA;YACzE,CAAC;QACF,CAAC;QAED,IAAI,CAAE,GAAW;YAChB,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAE,GAAG,CAAE,CAAA;YAC/B,IAAI,GAAG,GAAG,CAAC,EAAE;gBAAG,OAAO,GAAG,CAAA;YAC1B,QAAQ,GAAG,EAAG,CAAC;gBACd,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,IAAI,CAAC,OAAO,CAAE,GAAG,GAAG,CAAC,CAAE,CAAA;gBACxC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAE,GAAG,GAAG,CAAC,EAAE,IAAI,CAAE,CAAA;gBAC/C,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAE,GAAG,GAAG,CAAC,EAAE,IAAI,CAAE,CAAA;gBAC/C,KAAK,CAAC,EAAE;oBACP,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAE,GAAG,GAAG,CAAC,EAAE,IAAI,CAAE,CAAA;oBAC7C,IAAI,GAAG,GAAG,MAAM,CAAC,gBAAgB;wBAAG,OAAO,GAAG,CAAA;oBAC9C,IAAI,GAAG,GAAG,MAAM,CAAC,gBAAgB;wBAAG,OAAO,GAAG,CAAA;oBAC9C,OAAO,MAAM,CAAE,GAAG,CAAE,CAAA;gBACrB,OAAO,CAAC,CAAC,SAAS,CAAE,IAAI,KAAK,CAAE,iBAAiB,EAAE,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAE,CAAE,CAAA;YACzE,CAAC;QACF,CAAC;QAGD,MAAM,CAAC,IAAI,CAAE,IAAW,EAAE,IAAW;YAEpC,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,CAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAE,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAE,CAAE,CAAC,CAAA;YACjE,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAE,KAAK,CAAE,CAAA;YACrC,IAAI,IAAI;gBAAG,OAAO,IAAI,CAAE,GAAI,IAAI,CAAE,CAAA;YAElC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAE,CAAE,GAAG,EAAE,KAAK,EAAG,EAAE,CAAC,CAAE,GAAG,EAAE,IAAI,CAAE,KAAK,CAAE,CAAE,CAAE,CAAA;YAClE,MAAM,GAAG,GAAG,MAAM,CAAC,WAAW,CAAE,KAAK,CAAE,CAAA;YAEvC,OAAO,GAAG,CAAA;QACX,CAAC;QAGD,MAAM,CAAC,IAAI,CAAE,GAAW;YAEvB,MAAM,KAAK,GAAG,OAAO,CAAC,cAAc,CAAE,GAAG,CAAG,CAAA;YAC5C,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAE,KAAK,CAAE,CAAA;YACrC,IAAI,IAAI;gBAAG,OAAO,IAAI,CAAE,GAAG,CAAE,CAAA;YAE7B,OAAO,CAAE,MAAM,CAAC,IAAI,CAAE,GAAG,CAAE,EAAE,MAAM,CAAC,MAAM,CAAE,GAAG,CAAE,CAAE,CAAA;QACpD,CAAC;QAED,MAAM,CAAC,MAAM,GAAG,IAAI,GAAG,EAAmF,CAAA;QAC1G,MAAM,CAAC,MAAM,GAAG,IAAI,GAAG,EAA4D,CAAA;QAGnF,MAAM,CAAC,QAAQ,CAKd,IAA2D,EAC3D,IAAgD;YAGhD,MAAM,GAAG,GAAG,IAAI,EAAE,CAAA;YAClB,MAAM,KAAK,GAAG,OAAO,CAAC,cAAc,CAAE,GAAG,CAAG,CAAA;YAE5C,MAAM,CAAE,IAAI,EAAE,IAAI,CAAE,GAAG,IAAI,CAAE,GAAG,CAAE,CAAA;YAClC,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAE,CAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAE,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAE,CAAE,CAAE,CAAA;YAEnE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAE,KAAK,EAAE,IAAI,CAAE,CAAA;YAC9B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAE,KAAK,EAAE,IAAI,CAAE,CAAA;QAC/B,CAAC;;IAhpBW,WAAS,YAkpBrB,CAAA;IAGD,SAAS,CAAC,QAAQ,CACjB,CAAE,OAAO,EAAoB,EAAE,OAAO,EAAoB,EAAE,EAAE,CAAC,IAAI,GAAG,CAAE,IAAI,CAAC,GAAG,CAAE,CAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAE,CAAE,CAAE,EAC/G,GAAG,CAAC,EAAE,CAAC;QACN,CAAE,MAAM,EAAE,MAAM,CAAE;QAClB,CAAE,CAAE,GAAI,GAAG,CAAC,IAAI,EAAE,CAAE,EAAE,CAAE,GAAI,GAAG,CAAC,MAAM,EAAE,CAAE,CAAE;KAC5C,CACD,CAAA;IAGD,SAAS,CAAC,QAAQ,CACjB,CAAE,OAAO,EAAoB,EAAE,EAAE,CAAC,IAAI,GAAG,CAAE,IAAI,CAAE,EACjD,GAAG,CAAC,EAAE,CAAC;QACN,CAAE,MAAM,CAAE;QACV,CAAE,CAAE,GAAI,GAAG,CAAC,MAAM,EAAE,CAAE,CAAE;KACxB,CACD,CAAA;AAEF,CAAC,EAjuBS,CAAC,KAAD,CAAC,QAiuBV;;","sourcesContent":[null,"Error.stackTraceLimit = 50;\n\ndeclare let _$_: { new(): {} } & typeof globalThis\ndeclare class $ extends _$_ {}\n\nnamespace $ {\n\texport type $ = typeof $$\n\texport declare class $$ extends $ {\n\t\tstatic $: $\n\t}\n\tnamespace $$ {\n\t\texport type $$ = $\n\t}\n}\n\nmodule.exports = $\n","namespace $ {\n\n\texport function $mol_fail( error : any ) : never {\n\t\tthrow error\n\t}\n\n}\n","namespace $ {\n\n\t/**\n\t * 48-bit streamable array hash function\n\t * Based on cyrb53: https://stackoverflow.com/a/52171480\n\t */\n\texport function $mol_hash_numbers( buff: ArrayLike< number >, seed = 0 ) {\n\t\t\n\t\tlet h1 = 0xdeadbeef ^ seed\n\t\tlet h2 = 0x41c6ce57 ^ seed\n\t\t\n\t\tfor( let i = 0; i < buff.length; ++i ) {\n\t\t\tconst item = buff[i]\n\t\t\th1 = Math.imul( h1 ^ item, 2654435761 )\n\t\t\th2 = Math.imul( h2 ^ item, 1597334677 )\n\t\t}\n\t\t\n\t\th1 = Math.imul( h1 ^ ( h1 >>> 16 ), 2246822507 ) ^ Math.imul( h2 ^ ( h2 >>> 13 ), 3266489909 )\n\t\th2 = Math.imul( h2 ^ ( h2 >>> 16 ), 2246822507 ) ^ Math.imul( h1 ^ ( h1 >>> 13 ), 3266489909 )\n\t\t\n\t\treturn 4294967296 * ( ( ( 1 << 16 ) - 1 ) & h2 ) + ( h1 >>> 0 )\n\t}\n\n}\n","namespace $ {\n\t\n\texport function $mol_bigint_encode( num: bigint ) {\n\n\t\tconst minus = num < 0n ? 255 : 0;\n\t\tnum = minus ? -num - 1n : num\n\t\t\n\t\tconst bytes = [] as number[]\n\t\tdo {\n\t\t\t\n\t\t\tlet byte = minus ^ Number( num % 256n )\n\t\t\tbytes.push( byte )\n\t\t\t\n\t\t\tif( num >>= 8n ) continue\n\t\t\t\n\t\t\tif(( minus & 128 )!==( byte & 128 ))\n\t\t\t\tbytes.push( minus )\n\t\t\t\n\t\t\tbreak\n\t\t\t\n\t\t} while( num )\n\t\n\t\treturn new Uint8Array(bytes);\n\t}\n\t\n}\n","namespace $ {\n\n\t/**\n\t * 48-bit streamable string hash function\n\t * Based on cyrb53: https://stackoverflow.com/a/52171480\n\t */\n\texport function $mol_hash_string( str: string, seed = 0 ) {\n\t\treturn $mol_hash_numbers( [ ... str ].map( ch => ch.codePointAt(0)! ) )\n\t}\n\n}\n","namespace $ {\n\n\tlet buf = new Uint8Array( 2**12 ) // 4KB Mem Page\n\t\n\texport function $mol_charset_encode( str: string ) {\n\t\tconst capacity = str.length * 3\n\t\tif( buf.byteLength < capacity ) buf = new Uint8Array( capacity )\n\t\treturn buf.slice( 0, $mol_charset_encode_to( str, buf ) )\n\t}\n\n\texport function $mol_charset_encode_to( str: string, buf: Uint8Array< ArrayBuffer >, from = 0 ) {\n\n\t\tlet pos = from\n\n\t\tfor( let i = 0; i < str.length; i++ ) {\n\t\t\t\n\t\t\tlet code = str.charCodeAt( i )\n\t\t\t\n\t\t\tif( code < 0x80 ) { // ASCII - 1 octet\n\t\t\t\t\n\t\t\t\tbuf[ pos ++ ] = code\n\t\t\t\t\n\t\t\t} else if( code < 0x800 ) { // 2 octet\n\t\t\t\t\n\t\t\t\tbuf[ pos ++ ] = 0xc0 | ( code >> 6 )\n\t\t\t\tbuf[ pos ++ ] = 0x80 | ( code & 0x3f )\n\t\t\t\t\n\t\t\t} else if( code < 0xd800 || code >= 0xe000 ) { // 3 octet\n\t\t\t\t\n\t\t\t\tbuf[ pos ++ ] = 0xe0 | ( code >> 12 )\n\t\t\t\tbuf[ pos ++ ] = 0x80 | ( ( code >> 6 ) & 0x3f )\n\t\t\t\tbuf[ pos ++ ] = 0x80 | ( code & 0x3f )\n\t\t\t\t\n\t\t\t} else { // surrogate pair\n\t\t\t\t\n\t\t\t\tconst point = ( ( code - 0xd800 ) << 10 ) + str.charCodeAt( ++ i ) + 0x2400\n\t\t\t\t\n\t\t\t\tbuf[ pos ++ ] = 0xf0 | ( point >> 18 )\n\t\t\t\tbuf[ pos ++ ] = 0x80 | ( ( point >> 12 ) & 0x3f )\n\t\t\t\tbuf[ pos ++ ] = 0x80 | ( ( point >> 6 ) & 0x3f )\n\t\t\t\tbuf[ pos ++ ] = 0x80 | ( point & 0x3f )\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t}\n\n\t\treturn pos - from\n\t}\n\n\texport function $mol_charset_encode_size( str: string ) {\n\n\t\tlet size = 0\n\n\t\tfor( let i = 0; i < str.length; i++ ) {\n\t\t\t\n\t\t\tlet code = str.charCodeAt( i )\n\t\t\t\n\t\t\tif( code < 0x80 ) size += 1\n\t\t\telse if( code < 0x800 ) size += 2\n\t\t\telse if( code < 0xd800 || code >= 0xe000 ) size += 3\n\t\t\telse size += 4\n\t\t\t\n\t\t}\n\n\t\treturn size\n\t}\n\n}\n","namespace $ {\n\n\tconst decoders = {} as { [ key in $mol_charset_encoding ]?: TextDecoder }\n\n\texport function $mol_charset_decode(\n\t\tbuffer: AllowSharedBufferSource,\n\t\tencoding: $mol_charset_encoding = 'utf8',\n\t) {\n\t\t\n\t\tlet decoder = decoders[ encoding ]\n\t\tif( !decoder ) decoder = decoders[ encoding ] = new TextDecoder( encoding )\n\t\t\n\t\treturn decoder.decode( buffer )\n\t}\n\n}\n","namespace $ {\n\t\n\texport enum $mol_vary_tip {\n\t\tuint = 0b000 << 5,\n\t\tlink = 0b001 << 5,\n\t\tspec = 0b010 << 5,\n\t\tlist = 0b011 << 5,\n\t\ttext = 0b100 << 5,\n\t\tblob = 0b101 << 5,\n\t\ttupl = 0b110 << 5,\n\t\tsint = 0b111 << 5,\n\t}\n\t\n\texport const $mol_vary_len = {\n\t\t1: 28,\n\t\t2: 29,\n\t\t4: 30,\n\t\t8: 31,\n\t} as const\n\t\n\texport enum $mol_vary_spec {\n\t\tnone = 'N'.charCodeAt(0),\n\t\ttrue = 'T'.charCodeAt(0),\n\t\tfake = 'F'.charCodeAt(0),\n\t\tboth = 'B'.charCodeAt(0),\n\t\tfp16 = $mol_vary_tip.spec | 29,\n\t\tfp32 = $mol_vary_tip.spec | 30,\n\t\tfp64 = $mol_vary_tip.spec | 31,\n\t}\n\t\n\tfunction num_len( num: number | bigint ) {\n\t\t\n\t\tif( typeof num === 'number' && !Number.isInteger( num ) ) return 8\n\t\t\n\t\tif( num < 0 ) {\n\t\t\t\n\t\t\tif( num >= -28 ) return 0\n\t\t\tif( num >= -(2**7) ) return 1\n\t\t\tif( num >= -(2**15) ) return 2\n\t\t\tif( num >= -(2**31) ) return 4\n\t\t\tif( num >= -(2n**63n) ) return 8\n\t\t\t\n\t\t\t$mol_fail( new Error( `Too low numb ${ num }` ) )\n\t\t\t\n\t\t} else {\n\t\t\t\n\t\t\tif( num < 28 ) return 0\n\t\t\tif( num < 2**8 ) return 1\n\t\t\tif( num < 2**16 ) return 2\n\t\t\tif( num < 2**32 ) return 4\n\t\t\tif( num < 2n**64n ) return 8\n\t\t\t\n\t\t\t$mol_fail( new Error( `Too high numb ${ num }` ) )\n\t\t\t\n\t\t}\n\t\t\n\t}\n\t\n\t/** VaryPack - simple fast compact data binarization format. */\n\texport class $mol_vary extends DataView< ArrayBuffer > {\n\t\t\n\t\t/** Packs any data to Uint8Array with deduplication. */\n\t\tstatic pack( data: unknown ) {\n\t\t\t\n\t\t\tconst leaned = new WeakMap< object, readonly[ keys: readonly any[], vals: readonly any[] ] >()\n\t\t\tconst lean = ( val: object ): readonly[ keys: readonly any[], vals: readonly any[] ] => {\n\t\t\t\t\n\t\t\t\tlet tupl = leaned.get( val )\n\t\t\t\tif( tupl ) return tupl\n\t\t\t\t\n\t\t\t\tleaned.set( val, tupl = this.lean( val ) )\n\t\t\t\treturn tupl\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tconst hashes = new Map< unknown, number >()\n\t\t\t/** Recursive hash for deduplication */\n\t\t\tconst hash = ( val: unknown ): number => {\n\t\t\t\t\n\t\t\t\tswitch( typeof val ) {\n\t\t\t\t\t\n\t\t\t\t\tcase 'undefined':\n\t\t\t\t\t\treturn 0\n\t\t\t\t\t\n\t\t\t\t\tcase 'number':\n\t\t\t\t\tcase 'boolean':\n\t\t\t\t\t\treturn Number( val )\n\t\t\t\t\t\n\t\t\t\t\tcase 'number':\n\t\t\t\t\t\treturn val\n\t\t\t\t\t\n\t\t\t\t\tcase 'bigint':\n\t\t\t\t\t\treturn $mol_hash_numbers( $mol_bigint_encode( val ), $mol_vary_tip.sint )\n\t\t\t\t\t\n\t\t\t\t\tcase 'string': {\n\t\t\t\t\t\tlet res = hashes.get( val )\n\t\t\t\t\t\tif( res != null ) return res\n\t\t\t\t\t\tres = $mol_hash_string( val, $mol_vary_tip.text )\n\t\t\t\t\t\thashes.set( val, res )\n\t\t\t\t\t\treturn res\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tcase 'object': {\n\t\t\t\t\t\t\n\t\t\t\t\t\tif( !val ) return $mol_vary_spec.none\n\t\t\t\t\t\n\t\t\t\t\t\tlet res = hashes.get( val )\n\t\t\t\t\t\tif( res != null ) return res\n\t\t\t\t\t\t\n\t\t\t\t\t\tif( ArrayBuffer.isView( val ) ) res = $mol_hash_numbers( new Uint8Array( val.buffer, val.byteOffset, val.byteLength ), $mol_vary_tip.blob )\n\t\t\t\t\t\telse if( Array.isArray( val ) ) res = $mol_hash_numbers( val.map( hash ), $mol_vary_tip.list )\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tconst [ keys, vals ] = lean( val )\n\t\t\t\t\t\t\tres = $mol_hash_numbers( [ hash( keys ), ... vals.map( hash ) ], $mol_vary_tip.tupl )\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\thashes.set( val, res )\n\t\t\t\t\t\treturn res\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t$mol_fail( new Error( `Unsupported type` ) )\n\t\t\t}\n\t\t\t\n\t\t\tlet size = 0\n\t\t\tconst offsets = new Map< number /*hash*/, number >()\n\t\t\tconst sizes = new Map< string, number >()\n\t\t\tconst stream = [] as unknown[]\n\t\t\t\n\t\t\t/** Reserve size for embedding first entry or link to existen one.*/\n\t\t\tconst dedup = ( val: unknown, len: number )=> {\n\t\t\t\t\n\t\t\t\tconst key = hash( val )\n\t\t\t\tlet offset = offsets.get( key )\n\t\t\t\t\n\t\t\t\tif( offset === undefined ) { // embed first\n\t\t\t\t\t\n\t\t\t\t\toffsets.set( key, offset = stream.length )\n\t\t\t\t\tstream.push( val )\n\t\t\t\t\tsize += len\n\t\t\t\t\t\n\t\t\t\t\treturn true\n\t\t\t\t\t\n\t\t\t\t} else { // link to exists\n\t\t\t\t\t\n\t\t\t\t\tsize += 1 + num_len( offset )\n\t\t\t\t\treturn false\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\t/** Recursive calculates required buffer size. */\n\t\t\tconst calc = ( val: unknown )=> {\n\t\t\t\t\n\t\t\t\tif( val == null ) {\n\t\t\t\t\tsize += 1\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tswitch( typeof val ) {\n\t\t\t\t\t\n\t\t\t\t\tcase 'boolean':\n\t\t\t\t\t\tsize += 1\n\t\t\t\t\t\treturn true\n\t\t\t\t\t\n\t\t\t\t\tcase 'number':\n\t\t\t\t\tcase 'bigint':\n\t\t\t\t\t\tsize += 1 + num_len( val )\n\t\t\t\t\t\treturn true\n\t\t\t\t\t\n\t\t\t\t\tcase 'string': {\n\t\t\t\t\t\t\n\t\t\t\t\t\tlet len = sizes.get( val )\n\t\t\t\t\t\tif( len == null ) sizes.set( val, len = $mol_charset_encode_size( val ) )\n\t\t\t\t\t\t\n\t\t\t\t\t\tif( !len ) { // always embed redundant\n\t\t\t\t\t\t\tsize += 1\n\t\t\t\t\t\t\treturn true\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\treturn dedup( val, 1 + num_len( len ) + len )\n\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tcase 'object': {\n\t\t\t\t\t\t\n\t\t\t\t\t\tif( ArrayBuffer.isView( val ) ) {\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tif( !val.byteLength ) { // always embed redundant\n\t\t\t\t\t\t\t\tsize += 2\n\t\t\t\t\t\t\t\treturn true\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\treturn dedup( val, 2 + num_len( val.byteLength ) + val.byteLength )\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\tif( Array.isArray( val ) ) {\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tif( !val.length ) { // always embed redundant\n\t\t\t\t\t\t\t\tsize += 1\n\t\t\t\t\t\t\t\treturn true\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tconst key = hash( val )\n\t\t\t\t\t\t\tlet offset = offsets.get( key )\n\t\t\t\t\t\t\tif( offset === undefined ) {\n\t\t\t\t\t\t\t\tfor( const item of val ) calc( item )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\treturn dedup( val, 1 + num_len( val.length ) )\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\tconst [ keys, vals ] = lean( val )\n\t\t\t\t\t\t\n\t\t\t\t\t\tif( !vals.length ) { // always embed redundant\n\t\t\t\t\t\t\tsize += 2\n\t\t\t\t\t\t\treturn true\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\tconst key = hash( val )\n\t\t\t\t\t\tlet offset = offsets.get( key )\n\t\t\t\t\t\tif( offset === undefined ) {\n\t\t\t\t\t\t\tcalc( keys )\n\t\t\t\t\t\t\tfor( const item of vals ) calc( item )\n\t\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\t\treturn dedup( val, 1 + num_len( vals.length ) )\n\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t$mol_fail( new Error( `Unsupported type` ) )\n\t\t\t}\n\t\t\t\n\t\t\tcalc( data )\n\t\t\t\n\t\t\tconst buf = new Uint8Array( size )\n\t\t\tconst pack = new this( buf.buffer )\n\t\t\tconst embedded = new Set< number >()\n\t\t\t\n\t\t\tlet pos = 0\n\t\t\t/** Recursive fills buffer with data. */\n\t\t\tconst dump = ( val: unknown )=> {\n\t\t\t\t\n\t\t\t\tif( pos >= size ) $mol_fail( new Error( 'Wrong buffer length', { cause: buf } ) )\n\t\t\t\t\n\t\t\t\tswitch( typeof val ) {\n\t\t\t\t\t\n\t\t\t\t\tcase 'undefined': {\n\t\t\t\t\t\tpack.tlen( pos, 'spec', $mol_vary_spec.both )\n\t\t\t\t\t\tpos += 1\n\t\t\t\t\t\treturn\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tcase 'boolean': {\n\t\t\t\t\t\t\n\t\t\t\t\t\tpack.tlen( pos, 'spec', val ? $mol_vary_spec.true : $mol_vary_spec.fake )\n\t\t\t\t\t\tpos += 1\n\t\t\t\t\t\t\n\t\t\t\t\t\treturn\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tcase 'number': {\n\t\t\t\t\t\t\n\t\t\t\t\t\tif( !Number.isInteger( val ) ) {\n\t\t\t\t\t\t\tpos += pack.tfp( pos, 'spec', val )\n\t\t\t\t\t\t} else if( val < 0 ) {\n\t\t\t\t\t\t\tpos += pack.tint( pos, 'sint', val )\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tpos += pack.tnat( pos, 'uint', val )\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\treturn\n\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\tcase 'bigint': {\n\t\t\t\t\t\t\n\t\t\t\t\t\tif( val < 0 ) {\n\t\t\t\t\t\t\tpos += pack.tint( pos, 'sint', val )\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tpos += pack.tnat( pos, 'uint', val )\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\treturn\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tcase 'string': {\n\t\t\t\t\t\t\n\t\t\t\t\t\tconst key = hash( val )\n\t\t\t\t\t\t\n\t\t\t\t\t\tif( embedded.has( key ) ) {\n\t\t\t\t\t\t\tpos += pack.tnat( pos, 'link', offsets.get( key )! )\n\t\t\t\t\t\t\treturn\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\tpos += pack.tnat( pos, 'text', sizes.get( val )! )\n\t\t\t\t\t\tpos += $mol_charset_encode_to( val, buf, pos )\n\t\t\t\t\t\t\n\t\t\t\t\t\tif( val.length ) embedded.add( key )\n\t\t\t\t\t\treturn\n\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tcase 'object': {\n\t\t\t\t\t\t\n\t\t\t\t\t\tif( !val ) {\n\t\t\t\t\t\t\tpack.tlen( pos, 'spec', $mol_vary_spec.none )\n\t\t\t\t\t\t\tpos += 1\n\t\t\t\t\t\t\treturn\n\t\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\t\tif( ArrayBuffer.isView( val ) ) {\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tconst key = hash( val )\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tif( embedded.has( key ) ) {\n\t\t\t\t\t\t\t\tpos += pack.tnat( pos, 'link', offsets.get( key )! )\n\t\t\t\t\t\t\t\treturn\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tpos += pack.tnat( pos, 'blob', val.byteLength )\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tif( val instanceof Uint8Array ) pos += pack.tlen( pos, 'uint', $mol_vary_len[1] )\n\t\t\t\t\t\t\telse if( val instanceof Uint16Array ) pos += pack.tlen( pos, 'uint', $mol_vary_len[2] )\n\t\t\t\t\t\t\telse if( val instanceof Uint32Array ) pos += pack.tlen( pos, 'uint', $mol_vary_len[4] )\n\t\t\t\t\t\t\telse if( val instanceof BigUint64Array ) pos += pack.tlen( pos, 'uint', $mol_vary_len[8] )\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\telse if( val instanceof Int8Array ) pos += pack.tlen( pos, 'sint', ~$mol_vary_len[1] )\n\t\t\t\t\t\t\telse if( val instanceof Int16Array ) pos += pack.tlen( pos, 'sint', ~$mol_vary_len[2] )\n\t\t\t\t\t\t\telse if( val instanceof Int32Array ) pos += pack.tlen( pos, 'sint', ~$mol_vary_len[4] )\n\t\t\t\t\t\t\telse if( val instanceof BigInt64Array ) pos += pack.tlen( pos, 'sint', ~$mol_vary_len[8] )\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t// else if( val instanceof Float16Array ) pos += pack.tlen( pos, 'spec', $mol_vary_spec.fp16 )\n\t\t\t\t\t\t\telse if( val instanceof Float32Array ) pos += pack.tlen( pos, 'spec', $mol_vary_spec.fp32 )\n\t\t\t\t\t\t\telse if( val instanceof Float64Array ) pos += pack.tlen( pos, 'spec', $mol_vary_spec.fp64 )\n\t\t\t\t\t\t\n\t\t\t\t\t\t\telse $mol_fail( new Error( `Unsupported type` ) )\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tbuf.set( new Uint8Array( val.buffer, val.byteOffset, val.byteLength ), pos )\n\t\t\t\t\t\t\tpos += val.byteLength\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tif( val.byteLength ) embedded.add( key )\n\t\t\t\t\t\t\treturn\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\tif( Array.isArray( val ) ) {\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tconst key = hash( val )\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tif( embedded.has( key ) ) {\n\t\t\t\t\t\t\t\tpos += pack.tnat( pos, 'link', offsets.get( key )! )\n\t\t\t\t\t\t\t\treturn\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tpos += pack.tnat( pos, 'list', val.length )\n\t\t\t\t\t\t\tfor( const item of val ) dump( item )\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tif( val.length ) embedded.add( key )\n\t\t\t\t\t\t\treturn\n\t\t\t\t\t\t\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\tconst key = hash( val )\n\t\t\t\t\t\t\n\t\t\t\t\t\tif( embedded.has( key ) ) {\n\t\t\t\t\t\t\tpos += pack.tnat( pos, 'link', offsets.get( key )! )\n\t\t\t\t\t\t\treturn\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\tconst [ keys, vals ] = lean( val )\n\t\t\t\t\t\n\t\t\t\t\t\tpos += pack.tnat( pos, 'tupl', vals.length )\n\t\t\t\t\t\tdump( keys )\n\t\t\t\t\t\tfor( const item of vals ) dump( item )\n\t\t\t\t\t\t\t\n\t\t\t\t\t\tif( vals.length ) embedded.add( key )\n\t\t\t\t\t\treturn\n\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t$mol_fail( new Error( `Unsupported type` ) )\n\t\t\t}\n\t\t\t\n\t\t\tdump( data )\n\t\t\t\n\t\t\treturn buf\n\t\t\t\n\t\t}\n\t\t\n\t\t/** Parses buffer to rich runtime structures. */\n\t\tstatic take( buf: Uint8Array< ArrayBuffer > ): unknown {\n\t\t\t\n\t\t\tconst pack = new $mol_vary( buf.buffer, buf.byteOffset, buf.byteLength )\n\t\t\tconst stream = [] as unknown[]\n\t\t\tlet pos = 0;\n\t\t\t\n\t\t\tconst read_unum = ()=> {\n\t\t\t\tconst num = pack.unum( pos )\n\t\t\t\tpos += 1 + pack.ulen( pos )\n\t\t\t\treturn num\n\t\t\t}\n\t\t\t\n\t\t\tconst read_snum = ()=> {\n\t\t\t\tconst num = pack.snum( pos )\n\t\t\t\tpos += 1 + pack.slen( pos )\n\t\t\t\treturn num\n\t\t\t}\n\t\t\t\n\t\t\tconst read_text = ()=> {\n\t\t\t\tconst len = read_unum() as number\n\t\t\t\tconst bin = new Uint8Array( buf.buffer, pack.byteOffset + pos, len )\n\t\t\t\tpos += len\n\t\t\t\tconst text = $mol_charset_decode( bin )\n\t\t\t\tif( text.length ) stream.push( text )\n\t\t\t\treturn text\n\t\t\t}\n\t\t\t\n\t\t\tconst read_buffer = ( len: number, TypedArray: new( buf: ArrayBuffer )=> ArrayBufferView< ArrayBuffer > )=> {\n\t\t\t\tconst bin = new TypedArray( buf.slice( pos, pos + len ).buffer )\n\t\t\t\tpos += len\n\t\t\t\tif( len ) stream.push( bin )\n\t\t\t\treturn bin\n\t\t\t}\n\t\t\t\n\t\t\tconst read_blob = ()=> {\n\t\t\t\t\n\t\t\t\tconst len = read_unum() as number\n\t\t\t\tconst kind = pack.getUint8( pos ++ )\n\t\t\t\t\n\t\t\t\tswitch( kind ) {\n\t\t\t\t\t\n\t\t\t\t\tcase $mol_vary_tip.uint | $mol_vary_len[1]: return read_buffer( len, Uint8Array )\n\t\t\t\t\tcase $mol_vary_tip.uint | $mol_vary_len[2]: return read_buffer( len, Uint16Array )\n\t\t\t\t\tcase $mol_vary_tip.uint | $mol_vary_len[4]: return read_buffer( len, Uint32Array )\n\t\t\t\t\tcase $mol_vary_tip.uint | $mol_vary_len[8]: return read_buffer( len, BigUint64Array )\n\t\t\t\t\t\n\t\t\t\t\tcase $mol_vary_tip.sint | ~$mol_vary_len[1] + 256: return read_buffer( len, Int8Array )\n\t\t\t\t\tcase $mol_vary_tip.sint | ~$mol_vary_len[2] + 256: return read_buffer( len, Int16Array )\n\t\t\t\t\tcase $mol_vary_tip.sint | ~$mol_vary_len[4] + 256: return read_buffer( len, Int32Array )\n\t\t\t\t\tcase $mol_vary_tip.sint | ~$mol_vary_len[8] + 256: return read_buffer( len, BigInt64Array )\n\t\t\t\t\t\n\t\t\t\t\t// case $mol_vary_tip.spec | $mol_vary_spec.fp16: return read_buffer( len, Float16Array )\n\t\t\t\t\tcase $mol_vary_tip.spec | $mol_vary_spec.fp32: return read_buffer( len, Float32Array )\n\t\t\t\t\tcase $mol_vary_tip.spec | $mol_vary_spec.fp64: return read_buffer( len, Float64Array )\n\t\t\t\t\t\n\t\t\t\t\tdefault:\n\t\t\t\t\t\t$mol_fail( new Error( 'Unsupported blob kind', { cause: { kind } } ) )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tconst read_list = ()=> {\n\t\t\t\tconst len = read_unum() as number\n\t\t\t\tconst list = [] as any[]\n\t\t\t\tfor( let i = 0; i < len; ++i ) list.push( read_vary() )\n\t\t\t\tif( len ) stream.push( list )\n\t\t\t\treturn list\n\t\t\t}\n\t\t\t\n\t\t\tconst read_link = ()=> {\n\t\t\t\tconst index = read_unum() as number\n\t\t\t\tif( index >= stream.length ) $mol_fail( new Error( 'Too large index', { cause: { index, exists: stream.length } } ) )\n\t\t\t\treturn stream[ index ]\n\t\t\t}\n\t\t\t\n\t\t\tconst read_tupl = ()=> {\n\t\t\t\t\n\t\t\t\tconst len = read_unum() as number\n\t\t\t\t\n\t\t\t\tconst keys = pack.tip( pos ) === 'link' ? read_link() : read_list()\n\t\t\t\tif( !Array.isArray( keys ) ) $mol_fail( new Error( 'Wrong tupl shape type', { cause: { type: typeof keys } } ) )\n\t\t\t\t\n\t\t\t\tconst vals = Array.from( { length: len }, ()=> read_vary() )\n\t\t\t\t\n\t\t\t\tconst obj = this.rich( keys, vals )\n\t\t\t\tif( vals.length ) stream.push( obj )\n\t\t\t\t\n\t\t\t\treturn obj\n\t\t\t}\n\t\t\t\n\t\t\tconst read_spec = ()=> {\n\t\t\t\t\n\t\t\t\tconst kind = pack.getUint8( pos )\n\t\t\t\tconst spec = $mol_vary_spec[ kind ] as keyof typeof $mol_vary_spec \n\t\t\t\t\n\t\t\t\tswitch( spec ) {\n\t\t\t\t\t\n\t\t\t\t\tcase 'none':\n\t\t\t\t\t\t++ pos\n\t\t\t\t\t\treturn null\n\t\t\t\t\t\n\t\t\t\t\tcase 'fake':\n\t\t\t\t\t\t++ pos\n\t\t\t\t\t\treturn false\n\t\t\t\t\t\n\t\t\t\t\tcase 'true':\n\t\t\t\t\t\t++ pos\n\t\t\t\t\t\treturn true\n\t\t\t\t\t\n\t\t\t\t\tcase 'both':\n\t\t\t\t\t\t++ pos\n\t\t\t\t\t\treturn undefined\n\t\t\t\t\t\n\t\t\t\t\tcase 'fp16': {\n\t\t\t\t\t\tconst val = pack.getFloat16( pos + 1, true )\n\t\t\t\t\t\tpos += 3\n\t\t\t\t\t\treturn val\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tcase 'fp32': {\n\t\t\t\t\t\tconst val = pack.getFloat32( pos + 1, true )\n\t\t\t\t\t\tpos += 5\n\t\t\t\t\t\treturn val\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tcase 'fp64': {\n\t\t\t\t\t\tconst val = pack.getFloat64( pos + 1, true )\n\t\t\t\t\t\tpos += 9\n\t\t\t\t\t\treturn val\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tdefault:\n\t\t\t\t\t\t$mol_fail( new Error( 'Unsupported spec', { cause: { kind } } ) )\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tconst read_vary = ()=> {\n\t\t\t\t\n\t\t\t\tconst tip = pack.tip( pos )\n\t\t\t\t\n\t\t\t\tswitch( tip ) {\n\t\t\t\t\t\n\t\t\t\t\tcase 'uint': return read_unum()\n\t\t\t\t\tcase 'sint': return read_snum()\n\t\t\t\t\tcase 'link': return read_link()\n\t\t\t\t\tcase 'text': return read_text()\n\t\t\t\t\tcase 'list': return read_list()\n\t\t\t\t\tcase 'blob': return read_blob()\n\t\t\t\t\tcase 'tupl': return read_tupl()\n\t\t\t\t\tcase 'spec': return read_spec()\n\t\t\t\t\t\n\t\t\t\t\tdefault: $mol_fail( new Error( 'Unsupported tip', { cause: { tip } } ) )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\treturn read_vary()\n\t\t}\n\t\t\n\t\ttlen( pos: number, tip: keyof typeof $mol_vary_tip, len: number ) {\n\t\t\tthis.setUint8( pos, $mol_vary_tip[ tip ] | len )\n\t\t\treturn 1\n\t\t}\n\t\t\n\t\ttnat( pos: number, tip: keyof typeof $mol_vary_tip, num: number | bigint ) {\n\t\t\t\n\t\t\tconst len = num_len( num )\n\t\t\tthis.tlen( pos, tip, len ? $mol_vary_len[ len ] : Number( num ) )\n\t\t\t\n\t\t\tswitch( len ) {\n\t\t\t\tcase 0: break\n\t\t\t\tcase 1: this.setUint8( pos + 1, Number( num ) ); break\n\t\t\t\tcase 2: this.setUint16( pos + 1, Number( num ), true ); break\n\t\t\t\tcase 4: this.setUint32( pos + 1, Number( num ), true ); break\n\t\t\t\tcase 8: this.setBigUint64( pos + 1, BigInt( num ), true ); break\n\t\t\t\tdefault: $mol_fail( new Error( 'Unsupported uint len', { cause: { len } } ) )\n\t\t\t}\n\n\t\t\treturn 1 + len\n\t\t}\n\t\t\n\t\ttint( pos: number, tip: keyof typeof $mol_vary_tip, num: number | bigint ) {\n\t\t\t\n\t\t\tconst len = num_len( num )\n\t\t\tthis.tlen( pos, tip, len ? - $mol_vary_len[ len ] -1 : Number( num ) )\n\t\t\t\n\t\t\tswitch( len ) {\n\t\t\t\tcase 0: break\n\t\t\t\tcase 1: this.setInt8( pos + 1, Number( num ) ); break\n\t\t\t\tcase 2: this.setInt16( pos + 1, Number( num ), true ); break\n\t\t\t\tcase 4: this.setInt32( pos + 1, Number( num ), true ); break\n\t\t\t\tcase 8: this.setBigInt64( pos + 1, BigInt( num ), true ); break\n\t\t\t\tdefault: $mol_fail( new Error( 'Unsupported sint len', { cause: { len } } ) )\n\t\t\t}\n\n\t\t\treturn 1 + len\n\t\t}\n\t\t\n\t\ttfp( pos: number, tip: keyof typeof $mol_vary_tip, num: number ) {\n\t\t\t\n\t\t\tconst len = num_len( num )\n\t\t\tthis.tlen( pos, tip, len ? $mol_vary_len[ len ] : Number( num ) )\n\t\t\t\n\t\t\tswitch( len ) {\n\t\t\t\tcase 2: this.setFloat16( pos + 1, num, true ); break\n\t\t\t\tcase 4: this.setFloat32( pos + 1, num, true ); break\n\t\t\t\tcase 8: this.setFloat64( pos + 1, num, true ); break\n\t\t\t\tdefault: $mol_fail( new Error( 'Unsupported fp len', { cause: { len } } ) )\n\t\t\t}\n\n\t\t\treturn 1 + len\n\t\t}\n\t\t\n\t\ttip( pos: number ) {\n\t\t\treturn $mol_vary_tip[ this.getUint8( pos ) & 0b111_00000 ] as keyof typeof $mol_vary_tip\n\t\t}\n\t\t\n\t\tulen( pos: number ) {\n\t\t\tconst num = this.getUint8( pos ) & 0b11111\n\t\t\tif( num < 28 ) return 0\n\t\t\tswitch( num ) {\n\t\t\t\tcase 28: return 1\n\t\t\t\tcase 29: return 2\n\t\t\t\tcase 30: return 4\n\t\t\t\tcase 31: return 8\n\t\t\t\tdefault: $mol_fail( new Error( 'Impossible!' ) )\n\t\t\t}\n\t\t}\n\t\t\n\t\tslen( pos: number ) {\n\t\t\tconst num = this.getInt8( pos )\n\t\t\tif( num > -29 ) return 0\n\t\t\tswitch( num ) {\n\t\t\t\tcase -29: return 1\n\t\t\t\tcase -30: return 2\n\t\t\t\tcase -31: return 4\n\t\t\t\tcase -32: return 8\n\t\t\t\tdefault: $mol_fail( new Error( 'Impossible!' ) )\n\t\t\t}\n\t\t}\n\t\t\n\t\tunum( pos: number ) {\n\t\t\tconst num = this.getUint8( pos ) & 0b11111\n\t\t\tif( num < 28 ) return num\n\t\t\tswitch( num ) {\n\t\t\t\tcase 28: return this.getUint8( pos + 1 )\n\t\t\t\tcase 29: return this.getUint16( pos + 1, true )\n\t\t\t\tcase 30: return this.getUint32( pos + 1, true )\n\t\t\t\tcase 31:\n\t\t\t\t\tconst val = this.getBigUint64( pos + 1, true )\n\t\t\t\t\tif( val > Number.MAX_SAFE_INTEGER ) return val\n\t\t\t\t\treturn Number( val )\n\t\t\t\tdefault: $mol_fail( new Error( 'Unsupported len', { cause: { num } } ) )\n\t\t\t}\n\t\t}\n\t\t\n\t\tsnum( pos: number ) {\n\t\t\tconst num = this.getInt8( pos )\n\t\t\tif( num > -29 ) return num\n\t\t\tswitch( num ) {\n\t\t\t\tcase -29: return this.getInt8( pos + 1 )\n\t\t\t\tcase -30: return this.getInt16( pos + 1, true )\n\t\t\t\tcase -31: return this.getInt32( pos + 1, true )\n\t\t\t\tcase -32:\n\t\t\t\t\tconst val = this.getBigInt64( pos + 1, true )\n\t\t\t\t\tif( val > Number.MAX_SAFE_INTEGER ) return val\n\t\t\t\t\tif( val < Number.MIN_SAFE_INTEGER ) return val\n\t\t\t\t\treturn Number( val )\n\t\t\t\tdefault: $mol_fail( new Error( 'Unsupported len', { cause: { num } } ) )\n\t\t\t}\n\t\t}\n\t\t\n\t\t/** Converts internal keys&vals to high level object. */\n\t\tstatic rich( keys: any[], vals: any[] ): object {\n\t\t\t\n\t\t\tconst shape = JSON.stringify([ keys, vals.map( v => typeof v ) ])\n\t\t\tconst rich = this.riches.get( shape )\n\t\t\tif( rich ) return rich( ... vals )\n\t\t\t\n\t\t\tconst pairs = keys.map( ( key, index ) => [ key, vals[ index ] ] )\n\t\t\tconst obj = Object.fromEntries( pairs )\n\t\t\t\n\t\t\treturn obj\n\t\t}\n\t\t \n\t\t/** Converts high level object to internal keys&vals representation. */\n\t\tstatic lean( val: object ): readonly[ keys: readonly any[], vals: readonly any[] ] {\n\t\t\t\n\t\t\tconst proto = Reflect.getPrototypeOf( val )!\n\t\t\tconst lean = this.leanes.get( proto )\n\t\t\tif( lean ) return lean( val )\n\t\t\t\n\t\t\treturn [ Object.keys( val ), Object.values( val ) ]\n\t\t}\n\t\t\n\t\tstatic leanes = new Map< object, ( val: any )=> readonly[ keys: readonly any[], vals: readonly any[] ] >()\n\t\tstatic riches = new Map< string/*shape*/, ( ... vals: readonly any[] )=> object >()\n\t\t\n\t\t/** Adds custom types support. */\n\t\tstatic register<\n\t\t\tconst Instance extends object,\n\t\t\tconst Keys extends readonly any[],\n\t\t\tconst Vals extends readonly any[],\n\t\t>(\n\t\t\trich: ( ( ... vals: Vals )=> Instance ) | ( ()=> Instance ),\n\t\t\tlean: ( obj: Instance )=> readonly[ Keys, Vals ],\n\t\t) {\n\t\t\t\n\t\t\tconst obj = rich()\n\t\t\tconst proto = Reflect.getPrototypeOf( obj )!\n\t\t\t\n\t\t\tconst [ keys, vals ] = lean( obj )\n\t\t\tconst shape = JSON.stringify( [ keys, vals.map( v => typeof v ) ] )\n\t\t\t\n\t\t\tthis.leanes.set( proto, lean )\n\t\t\tthis.riches.set( shape, rich )\n\t\t}\n\t\t\n\t}\n\t\n\t/** Native Map support */\n\t$mol_vary.register(\n\t\t( keys = [] as readonly any[], vals = [] as readonly any[] )=> new Map( keys.map( ( k, i )=> [ k, vals[i] ] ) ),\n\t\tobj => [\n\t\t\t[ 'keys', 'vals' ],\n\t\t\t[ [ ... obj.keys() ], [ ... obj.values() ] ],\n\t\t],\n\t)\n\t\n\t/** Native Set support */\n\t$mol_vary.register(\n\t\t( vals = [] as readonly any[] )=> new Set( vals ),\n\t\tobj => [\n\t\t\t[ 'vals' ],\n\t\t\t[ [ ... obj.values() ] ],\n\t\t],\n\t)\n\t\n}\n"]}
1
+ {"version":3,"sources":["-","../../../mam.ts","../../../mol/fail/fail.ts","../../../mol/hash/numbers/number.ts","../../../mol/bigint/encode/encode.ts","../../../mol/hash/string/string.ts","../../../mol/charset/encode/encode.ts","../../../mol/charset/decode/decode.ts","../../../mol/vary/vary.ts"],"names":[],"mappings":"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","sourcesContent":[null,"Error.stackTraceLimit = 50;\n\ndeclare let _$_: { new(): {} } & typeof globalThis\ndeclare class $ extends _$_ {}\n\nnamespace $ {\n\texport type $ = typeof $$\n\texport declare class $$ extends $ {\n\t\tstatic $: $\n\t}\n\tnamespace $$ {\n\t\texport type $$ = $\n\t}\n}\n\nmodule.exports = $\n","namespace $ {\n\n\texport function $mol_fail( error : any ) : never {\n\t\tthrow error\n\t}\n\n}\n","namespace $ {\n\n\t/**\n\t * 48-bit streamable array hash function\n\t * Based on cyrb53: https://stackoverflow.com/a/52171480\n\t */\n\texport function $mol_hash_numbers( buff: ArrayLike< number >, seed = 0 ) {\n\t\t\n\t\tlet h1 = 0xdeadbeef ^ seed\n\t\tlet h2 = 0x41c6ce57 ^ seed\n\t\t\n\t\tfor( let i = 0; i < buff.length; ++i ) {\n\t\t\tconst item = buff[i]\n\t\t\th1 = Math.imul( h1 ^ item, 2654435761 )\n\t\t\th2 = Math.imul( h2 ^ item, 1597334677 )\n\t\t}\n\t\t\n\t\th1 = Math.imul( h1 ^ ( h1 >>> 16 ), 2246822507 ) ^ Math.imul( h2 ^ ( h2 >>> 13 ), 3266489909 )\n\t\th2 = Math.imul( h2 ^ ( h2 >>> 16 ), 2246822507 ) ^ Math.imul( h1 ^ ( h1 >>> 13 ), 3266489909 )\n\t\t\n\t\treturn 4294967296 * ( ( ( 1 << 16 ) - 1 ) & h2 ) + ( h1 >>> 0 )\n\t}\n\n}\n","namespace $ {\n\t\n\texport function $mol_bigint_encode( num: bigint ) {\n\n\t\tconst minus = num < 0n ? 255 : 0;\n\t\tnum = minus ? -num - 1n : num\n\t\t\n\t\tconst bytes = [] as number[]\n\t\tdo {\n\t\t\t\n\t\t\tlet byte = minus ^ Number( num % 256n )\n\t\t\tbytes.push( byte )\n\t\t\t\n\t\t\tif( num >>= 8n ) continue\n\t\t\t\n\t\t\tif(( minus & 128 )!==( byte & 128 ))\n\t\t\t\tbytes.push( minus )\n\t\t\t\n\t\t\tbreak\n\t\t\t\n\t\t} while( num )\n\t\n\t\treturn new Uint8Array(bytes);\n\t}\n\t\n}\n","namespace $ {\n\n\t/**\n\t * 48-bit streamable string hash function\n\t * Based on cyrb53: https://stackoverflow.com/a/52171480\n\t */\n\texport function $mol_hash_string( str: string, seed = 0 ) {\n\t\tlet nums = new Array( str.length )\n\t\tfor( let i = 0; i < str.length; ++i ) nums[i] = str.charCodeAt(i)\n\t\treturn $mol_hash_numbers( nums )\n\t}\n\n}\n","namespace $ {\n\n\tlet buf = new Uint8Array( 2**12 ) // 4KB Mem Page\n\t\n\texport function $mol_charset_encode( str: string ) {\n\t\tconst capacity = str.length * 3\n\t\tif( buf.byteLength < capacity ) buf = new Uint8Array( capacity )\n\t\treturn buf.slice( 0, $mol_charset_encode_to( str, buf ) )\n\t}\n\n\texport function $mol_charset_encode_to( str: string, buf: Uint8Array< ArrayBuffer >, from = 0 ) {\n\n\t\tlet pos = from\n\n\t\tfor( let i = 0; i < str.length; i++ ) {\n\t\t\t\n\t\t\tlet code = str.charCodeAt( i )\n\t\t\t\n\t\t\tif( code < 0x80 ) { // ASCII - 1 octet\n\t\t\t\t\n\t\t\t\tbuf[ pos ++ ] = code\n\t\t\t\t\n\t\t\t} else if( code < 0x800 ) { // 2 octet\n\t\t\t\t\n\t\t\t\tbuf[ pos ++ ] = 0xc0 | ( code >> 6 )\n\t\t\t\tbuf[ pos ++ ] = 0x80 | ( code & 0x3f )\n\t\t\t\t\n\t\t\t} else if( code < 0xd800 || code >= 0xe000 ) { // 3 octet\n\t\t\t\t\n\t\t\t\tbuf[ pos ++ ] = 0xe0 | ( code >> 12 )\n\t\t\t\tbuf[ pos ++ ] = 0x80 | ( ( code >> 6 ) & 0x3f )\n\t\t\t\tbuf[ pos ++ ] = 0x80 | ( code & 0x3f )\n\t\t\t\t\n\t\t\t} else { // surrogate pair\n\t\t\t\t\n\t\t\t\tconst point = ( ( code - 0xd800 ) << 10 ) + str.charCodeAt( ++ i ) + 0x2400\n\t\t\t\t\n\t\t\t\tbuf[ pos ++ ] = 0xf0 | ( point >> 18 )\n\t\t\t\tbuf[ pos ++ ] = 0x80 | ( ( point >> 12 ) & 0x3f )\n\t\t\t\tbuf[ pos ++ ] = 0x80 | ( ( point >> 6 ) & 0x3f )\n\t\t\t\tbuf[ pos ++ ] = 0x80 | ( point & 0x3f )\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t}\n\n\t\treturn pos - from\n\t}\n\n\texport function $mol_charset_encode_size( str: string ) {\n\n\t\tlet size = 0\n\n\t\tfor( let i = 0; i < str.length; i++ ) {\n\t\t\t\n\t\t\tlet code = str.charCodeAt( i )\n\t\t\t\n\t\t\tif( code < 0x80 ) size += 1\n\t\t\telse if( code < 0x800 ) size += 2\n\t\t\telse if( code < 0xd800 || code >= 0xe000 ) size += 3\n\t\t\telse size += 4\n\t\t\t\n\t\t}\n\n\t\treturn size\n\t}\n\n}\n","namespace $ {\n\n\tconst decoders = {} as { [ key in $mol_charset_encoding ]?: TextDecoder }\n\n\texport function $mol_charset_decode(\n\t\tbuffer: AllowSharedBufferSource,\n\t\tencoding: $mol_charset_encoding = 'utf8',\n\t) {\n\t\t\n\t\tlet decoder = decoders[ encoding ]\n\t\tif( !decoder ) decoder = decoders[ encoding ] = new TextDecoder( encoding )\n\t\t\n\t\treturn decoder.decode( buffer )\n\t}\n\n}\n","namespace $ {\n\t\n\texport enum $mol_vary_tip {\n\t\tuint = 0b000 << 5,\n\t\tlink = 0b001 << 5,\n\t\tspec = 0b010 << 5,\n\t\tlist = 0b011 << 5,\n\t\ttext = 0b100 << 5,\n\t\tblob = 0b101 << 5,\n\t\ttupl = 0b110 << 5,\n\t\tsint = 0b111 << 5,\n\t}\n\t\n\texport const $mol_vary_len = {\n\t\t1: 28,\n\t\t2: 29,\n\t\t4: 30,\n\t\t8: 31,\n\t} as const\n\t\n\texport enum $mol_vary_spec {\n\t\tnone = 'N'.charCodeAt(0),\n\t\ttrue = 'T'.charCodeAt(0),\n\t\tfake = 'F'.charCodeAt(0),\n\t\tboth = 'B'.charCodeAt(0),\n\t\tfp16 = $mol_vary_tip.spec | 29,\n\t\tfp32 = $mol_vary_tip.spec | 30,\n\t\tfp64 = $mol_vary_tip.spec | 31,\n\t}\n\t\n\tfunction num_len( num: number | bigint ) {\n\t\t\n\t\tif( typeof num === 'number' && !Number.isInteger( num ) ) return 8\n\t\t\n\t\tif( num < 0 ) {\n\t\t\t\n\t\t\tif( num >= -28 ) return 0\n\t\t\tif( num >= -(2**7) ) return 1\n\t\t\tif( num >= -(2**15) ) return 2\n\t\t\tif( num >= -(2**31) ) return 4\n\t\t\tif( num >= -(2n**63n) ) return 8\n\t\t\t\n\t\t\t$mol_fail( new Error( `Too low numb ${ num }` ) )\n\t\t\t\n\t\t} else {\n\t\t\t\n\t\t\tif( num < 28 ) return 0\n\t\t\tif( num < 2**8 ) return 1\n\t\t\tif( num < 2**16 ) return 2\n\t\t\tif( num < 2**32 ) return 4\n\t\t\tif( num < 2n**64n ) return 8\n\t\t\t\n\t\t\t$mol_fail( new Error( `Too high numb ${ num }` ) )\n\t\t\t\n\t\t}\n\t\t\n\t}\n\t\n\t/** VaryPack - simple fast compact data binarization format. */\n\texport class $mol_vary extends DataView< ArrayBuffer > {\n\t\t\n\t\tstatic buffer = new Uint8Array( 4096 )\n\t\tstatic buffer_view = new this( this.buffer.buffer )\n\t\t\n\t\tstatic allocate( size: number ) {\n\t\t\tif( this.buffer.byteLength > size ) return\n\t\t\tthis.buffer = new Uint8Array( Math.ceil( size / 4096 ) * 4096 )\n\t\t\tthis.buffer_view = new this( this.buffer.buffer )\n\t\t}\n\t\t\n\t\t/** Packs any data to Uint8Array with deduplication. */\n\t\tstatic pack( data: unknown ) {\n\t\t\t\n\t\t\tconst leaned = new WeakMap< object, readonly[ keys: readonly any[], vals: readonly any[] ] >()\n\t\t\tconst lean = ( val: object ): readonly[ keys: readonly any[], vals: readonly any[] ] => {\n\t\t\t\t\n\t\t\t\tlet tupl = leaned.get( val )\n\t\t\t\tif( tupl ) return tupl\n\t\t\t\t\n\t\t\t\tleaned.set( val, tupl = this.lean( val ) )\n\t\t\t\treturn tupl\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tconst hashes = new Map< unknown, number >()\n\t\t\t/** Recursive hash for deduplication */\n\t\t\tconst hash = ( val: unknown ): number => {\n\t\t\t\t\n\t\t\t\tswitch( typeof val ) {\n\t\t\t\t\t\n\t\t\t\t\tcase 'undefined':\n\t\t\t\t\t\treturn 0\n\t\t\t\t\t\n\t\t\t\t\tcase 'number':\n\t\t\t\t\tcase 'boolean':\n\t\t\t\t\t\treturn Number( val )\n\t\t\t\t\t\n\t\t\t\t\tcase 'number':\n\t\t\t\t\t\treturn val\n\t\t\t\t\t\n\t\t\t\t\tcase 'bigint':\n\t\t\t\t\t\treturn $mol_hash_numbers( $mol_bigint_encode( val ), $mol_vary_tip.sint )\n\t\t\t\t\t\n\t\t\t\t\tcase 'string': {\n\t\t\t\t\t\tlet res = hashes.get( val )\n\t\t\t\t\t\tif( res != null ) return res\n\t\t\t\t\t\tres = $mol_hash_string( val, $mol_vary_tip.text )\n\t\t\t\t\t\thashes.set( val, res )\n\t\t\t\t\t\treturn res\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tcase 'object': {\n\t\t\t\t\t\t\n\t\t\t\t\t\tif( !val ) return $mol_vary_spec.none\n\t\t\t\t\t\n\t\t\t\t\t\tlet res = hashes.get( val )\n\t\t\t\t\t\tif( res != null ) return res\n\t\t\t\t\t\t\n\t\t\t\t\t\tif( ArrayBuffer.isView( val ) ) res = $mol_hash_numbers( new Uint8Array( val.buffer, val.byteOffset, val.byteLength ), $mol_vary_tip.blob )\n\t\t\t\t\t\telse if( Array.isArray( val ) ) res = $mol_hash_numbers( val.map( hash ), $mol_vary_tip.list )\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tconst [ keys, vals ] = lean( val )\n\t\t\t\t\t\t\tres = $mol_hash_numbers( vals.map( hash ), hash( keys ) )\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\thashes.set( val, res )\n\t\t\t\t\t\treturn res\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t$mol_fail( new Error( `Unsupported type` ) )\n\t\t\t}\n\t\t\t\n\t\t\tlet size = 0\n\t\t\tconst offsets = new Map< number /*hash*/, number >()\n\t\t\tconst sizes = new Map< string, number >()\n\t\t\tconst stream = [] as unknown[]\n\t\t\t\n\t\t\t/** Reserve size for embedding first entry or link to existen one.*/\n\t\t\tconst dedup = ( val: unknown, len: number )=> {\n\t\t\t\t\n\t\t\t\tconst key = hash( val )\n\t\t\t\tlet offset = offsets.get( key )\n\t\t\t\t\n\t\t\t\tif( offset === undefined ) { // embed first\n\t\t\t\t\t\n\t\t\t\t\toffsets.set( key, offset = stream.length )\n\t\t\t\t\tstream.push( val )\n\t\t\t\t\tsize += len\n\t\t\t\t\t\n\t\t\t\t\treturn true\n\t\t\t\t\t\n\t\t\t\t} else { // link to exists\n\t\t\t\t\t\n\t\t\t\t\tsize += 1 + num_len( offset )\n\t\t\t\t\treturn false\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\t/** Recursive calculates required buffer size. */\n\t\t\tconst calc = ( val: unknown )=> {\n\t\t\t\t\n\t\t\t\tif( val == null ) {\n\t\t\t\t\tsize += 1\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tswitch( typeof val ) {\n\t\t\t\t\t\n\t\t\t\t\tcase 'boolean':\n\t\t\t\t\t\tsize += 1\n\t\t\t\t\t\treturn true\n\t\t\t\t\t\n\t\t\t\t\tcase 'number':\n\t\t\t\t\tcase 'bigint':\n\t\t\t\t\t\tsize += 1 + num_len( val )\n\t\t\t\t\t\treturn true\n\t\t\t\t\t\n\t\t\t\t\tcase 'string': {\n\t\t\t\t\t\t\n\t\t\t\t\t\tlet len = sizes.get( val )\n\t\t\t\t\t\tif( len == null ) sizes.set( val, len = $mol_charset_encode_size( val ) )\n\t\t\t\t\t\t\n\t\t\t\t\t\tif( !len ) { // always embed redundant\n\t\t\t\t\t\t\tsize += 1\n\t\t\t\t\t\t\treturn true\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\treturn dedup( val, 1 + num_len( len ) + len )\n\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tcase 'object': {\n\t\t\t\t\t\t\n\t\t\t\t\t\tif( ArrayBuffer.isView( val ) ) {\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tif( !val.byteLength ) { // always embed redundant\n\t\t\t\t\t\t\t\tsize += 2\n\t\t\t\t\t\t\t\treturn true\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\treturn dedup( val, 2 + num_len( val.byteLength ) + val.byteLength )\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\tif( Array.isArray( val ) ) {\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tif( !val.length ) { // always embed redundant\n\t\t\t\t\t\t\t\tsize += 1\n\t\t\t\t\t\t\t\treturn true\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tconst key = hash( val )\n\t\t\t\t\t\t\tlet offset = offsets.get( key )\n\t\t\t\t\t\t\tif( offset === undefined ) {\n\t\t\t\t\t\t\t\tfor( const item of val ) calc( item )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\treturn dedup( val, 1 + num_len( val.length ) )\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\tconst [ keys, vals ] = lean( val )\n\t\t\t\t\t\t\n\t\t\t\t\t\tif( !vals.length ) { // always embed redundant\n\t\t\t\t\t\t\tsize += 2\n\t\t\t\t\t\t\treturn true\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\tconst key = hash( val )\n\t\t\t\t\t\tlet offset = offsets.get( key )\n\t\t\t\t\t\tif( offset === undefined ) {\n\t\t\t\t\t\t\tcalc( keys )\n\t\t\t\t\t\t\tfor( const item of vals ) calc( item )\n\t\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\t\treturn dedup( val, 1 + num_len( vals.length ) )\n\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t$mol_fail( new Error( `Unsupported type` ) )\n\t\t\t}\n\t\t\t\n\t\t\tcalc( data )\n\t\t\t\n\t\t\tthis.allocate( size )\n\t\t\tconst buf = this.buffer\n\t\t\tconst pack = this.buffer_view\n\t\t\tconst embedded = new Set< number >()\n\t\t\t\n\t\t\tlet pos = 0\n\t\t\t/** Recursive fills buffer with data. */\n\t\t\tconst dump = ( val: unknown )=> {\n\t\t\t\t\n\t\t\t\tif( pos >= size ) $mol_fail( new Error( 'Wrong buffer length', { cause: buf } ) )\n\t\t\t\t\n\t\t\t\tswitch( typeof val ) {\n\t\t\t\t\t\n\t\t\t\t\tcase 'undefined': {\n\t\t\t\t\t\tpack.tlen( pos, 'spec', $mol_vary_spec.both )\n\t\t\t\t\t\tpos += 1\n\t\t\t\t\t\treturn\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tcase 'boolean': {\n\t\t\t\t\t\t\n\t\t\t\t\t\tpack.tlen( pos, 'spec', val ? $mol_vary_spec.true : $mol_vary_spec.fake )\n\t\t\t\t\t\tpos += 1\n\t\t\t\t\t\t\n\t\t\t\t\t\treturn\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tcase 'number': {\n\t\t\t\t\t\t\n\t\t\t\t\t\tif( !Number.isInteger( val ) ) {\n\t\t\t\t\t\t\tpos += pack.tfp( pos, 'spec', val )\n\t\t\t\t\t\t} else if( val < 0 ) {\n\t\t\t\t\t\t\tpos += pack.tint( pos, 'sint', val )\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tpos += pack.tnat( pos, 'uint', val )\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\treturn\n\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\tcase 'bigint': {\n\t\t\t\t\t\t\n\t\t\t\t\t\tif( val < 0 ) {\n\t\t\t\t\t\t\tpos += pack.tint( pos, 'sint', val )\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tpos += pack.tnat( pos, 'uint', val )\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\treturn\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tcase 'string': {\n\t\t\t\t\t\t\n\t\t\t\t\t\tconst key = hash( val )\n\t\t\t\t\t\t\n\t\t\t\t\t\tif( embedded.has( key ) ) {\n\t\t\t\t\t\t\tpos += pack.tnat( pos, 'link', offsets.get( key )! )\n\t\t\t\t\t\t\treturn\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\tpos += pack.tnat( pos, 'text', sizes.get( val )! )\n\t\t\t\t\t\tpos += $mol_charset_encode_to( val, buf, pos )\n\t\t\t\t\t\t\n\t\t\t\t\t\tif( val.length ) embedded.add( key )\n\t\t\t\t\t\treturn\n\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tcase 'object': {\n\t\t\t\t\t\t\n\t\t\t\t\t\tif( !val ) {\n\t\t\t\t\t\t\tpack.tlen( pos, 'spec', $mol_vary_spec.none )\n\t\t\t\t\t\t\tpos += 1\n\t\t\t\t\t\t\treturn\n\t\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\t\tif( ArrayBuffer.isView( val ) ) {\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tconst key = hash( val )\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tif( embedded.has( key ) ) {\n\t\t\t\t\t\t\t\tpos += pack.tnat( pos, 'link', offsets.get( key )! )\n\t\t\t\t\t\t\t\treturn\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tpos += pack.tnat( pos, 'blob', val.byteLength )\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tif( val instanceof Uint8Array ) pos += pack.tlen( pos, 'uint', $mol_vary_len[1] )\n\t\t\t\t\t\t\telse if( val instanceof Uint16Array ) pos += pack.tlen( pos, 'uint', $mol_vary_len[2] )\n\t\t\t\t\t\t\telse if( val instanceof Uint32Array ) pos += pack.tlen( pos, 'uint', $mol_vary_len[4] )\n\t\t\t\t\t\t\telse if( val instanceof BigUint64Array ) pos += pack.tlen( pos, 'uint', $mol_vary_len[8] )\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\telse if( val instanceof Int8Array ) pos += pack.tlen( pos, 'sint', ~$mol_vary_len[1] )\n\t\t\t\t\t\t\telse if( val instanceof Int16Array ) pos += pack.tlen( pos, 'sint', ~$mol_vary_len[2] )\n\t\t\t\t\t\t\telse if( val instanceof Int32Array ) pos += pack.tlen( pos, 'sint', ~$mol_vary_len[4] )\n\t\t\t\t\t\t\telse if( val instanceof BigInt64Array ) pos += pack.tlen( pos, 'sint', ~$mol_vary_len[8] )\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t// else if( val instanceof Float16Array ) pos += pack.tlen( pos, 'spec', $mol_vary_spec.fp16 )\n\t\t\t\t\t\t\telse if( val instanceof Float32Array ) pos += pack.tlen( pos, 'spec', $mol_vary_spec.fp32 )\n\t\t\t\t\t\t\telse if( val instanceof Float64Array ) pos += pack.tlen( pos, 'spec', $mol_vary_spec.fp64 )\n\t\t\t\t\t\t\n\t\t\t\t\t\t\telse $mol_fail( new Error( `Unsupported type` ) )\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tbuf.set( new Uint8Array( val.buffer, val.byteOffset, val.byteLength ), pos )\n\t\t\t\t\t\t\tpos += val.byteLength\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tif( val.byteLength ) embedded.add( key )\n\t\t\t\t\t\t\treturn\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\tif( Array.isArray( val ) ) {\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tconst key = hash( val )\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tif( embedded.has( key ) ) {\n\t\t\t\t\t\t\t\tpos += pack.tnat( pos, 'link', offsets.get( key )! )\n\t\t\t\t\t\t\t\treturn\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tpos += pack.tnat( pos, 'list', val.length )\n\t\t\t\t\t\t\tfor( const item of val ) dump( item )\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tif( val.length ) embedded.add( key )\n\t\t\t\t\t\t\treturn\n\t\t\t\t\t\t\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\tconst key = hash( val )\n\t\t\t\t\t\t\n\t\t\t\t\t\tif( embedded.has( key ) ) {\n\t\t\t\t\t\t\tpos += pack.tnat( pos, 'link', offsets.get( key )! )\n\t\t\t\t\t\t\treturn\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\tconst [ keys, vals ] = lean( val )\n\t\t\t\t\t\n\t\t\t\t\t\tpos += pack.tnat( pos, 'tupl', vals.length )\n\t\t\t\t\t\tdump( keys )\n\t\t\t\t\t\tfor( const item of vals ) dump( item )\n\t\t\t\t\t\t\t\n\t\t\t\t\t\tif( vals.length ) embedded.add( key )\n\t\t\t\t\t\treturn\n\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t$mol_fail( new Error( `Unsupported type` ) )\n\t\t\t}\n\t\t\t\n\t\t\tdump( data )\n\t\t\t\n\t\t\treturn buf.slice( 0, size )\n\t\t\t\n\t\t}\n\t\t\n\t\t/** Parses buffer to rich runtime structures. */\n\t\tstatic take( buf: Uint8Array< ArrayBuffer > ): unknown {\n\t\t\t\n\t\t\tconst pack = new $mol_vary( buf.buffer, buf.byteOffset, buf.byteLength )\n\t\t\tconst stream = [] as unknown[]\n\t\t\tlet pos = 0;\n\t\t\t\n\t\t\tconst read_unum = ()=> {\n\t\t\t\tconst num = pack.unum( pos )\n\t\t\t\tpos += 1 + pack.ulen( pos )\n\t\t\t\treturn num\n\t\t\t}\n\t\t\t\n\t\t\tconst read_snum = ()=> {\n\t\t\t\tconst num = pack.snum( pos )\n\t\t\t\tpos += 1 + pack.slen( pos )\n\t\t\t\treturn num\n\t\t\t}\n\t\t\t\n\t\t\tconst read_text = ()=> {\n\t\t\t\tconst len = read_unum() as number\n\t\t\t\tconst bin = new Uint8Array( buf.buffer, pack.byteOffset + pos, len )\n\t\t\t\tpos += len\n\t\t\t\tconst text = $mol_charset_decode( bin )\n\t\t\t\tif( text.length ) stream.push( text )\n\t\t\t\treturn text\n\t\t\t}\n\t\t\t\n\t\t\tconst read_buffer = ( len: number, TypedArray: new( buf: ArrayBuffer )=> ArrayBufferView< ArrayBuffer > )=> {\n\t\t\t\tconst bin = new TypedArray( buf.slice( pos, pos + len ).buffer )\n\t\t\t\tpos += len\n\t\t\t\tif( len ) stream.push( bin )\n\t\t\t\treturn bin\n\t\t\t}\n\t\t\t\n\t\t\tconst read_blob = ()=> {\n\t\t\t\t\n\t\t\t\tconst len = read_unum() as number\n\t\t\t\tconst kind = pack.getUint8( pos ++ )\n\t\t\t\t\n\t\t\t\tswitch( kind ) {\n\t\t\t\t\t\n\t\t\t\t\tcase $mol_vary_tip.uint | $mol_vary_len[1]: return read_buffer( len, Uint8Array )\n\t\t\t\t\tcase $mol_vary_tip.uint | $mol_vary_len[2]: return read_buffer( len, Uint16Array )\n\t\t\t\t\tcase $mol_vary_tip.uint | $mol_vary_len[4]: return read_buffer( len, Uint32Array )\n\t\t\t\t\tcase $mol_vary_tip.uint | $mol_vary_len[8]: return read_buffer( len, BigUint64Array )\n\t\t\t\t\t\n\t\t\t\t\tcase $mol_vary_tip.sint | ~$mol_vary_len[1] + 256: return read_buffer( len, Int8Array )\n\t\t\t\t\tcase $mol_vary_tip.sint | ~$mol_vary_len[2] + 256: return read_buffer( len, Int16Array )\n\t\t\t\t\tcase $mol_vary_tip.sint | ~$mol_vary_len[4] + 256: return read_buffer( len, Int32Array )\n\t\t\t\t\tcase $mol_vary_tip.sint | ~$mol_vary_len[8] + 256: return read_buffer( len, BigInt64Array )\n\t\t\t\t\t\n\t\t\t\t\t// case $mol_vary_tip.spec | $mol_vary_spec.fp16: return read_buffer( len, Float16Array )\n\t\t\t\t\tcase $mol_vary_tip.spec | $mol_vary_spec.fp32: return read_buffer( len, Float32Array )\n\t\t\t\t\tcase $mol_vary_tip.spec | $mol_vary_spec.fp64: return read_buffer( len, Float64Array )\n\t\t\t\t\t\n\t\t\t\t\tdefault:\n\t\t\t\t\t\t$mol_fail( new Error( 'Unsupported blob kind', { cause: { kind } } ) )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tconst read_list = ()=> {\n\t\t\t\tconst len = read_unum() as number\n\t\t\t\tconst list = [] as any[]\n\t\t\t\tfor( let i = 0; i < len; ++i ) list.push( read_vary() )\n\t\t\t\tif( len ) stream.push( list )\n\t\t\t\treturn list\n\t\t\t}\n\t\t\t\n\t\t\tconst read_link = ()=> {\n\t\t\t\tconst index = read_unum() as number\n\t\t\t\tif( index >= stream.length ) $mol_fail( new Error( 'Too large index', { cause: { index, exists: stream.length } } ) )\n\t\t\t\treturn stream[ index ]\n\t\t\t}\n\t\t\t\n\t\t\tconst read_tupl = ()=> {\n\t\t\t\t\n\t\t\t\tconst len = read_unum() as number\n\t\t\t\t\n\t\t\t\tconst keys = pack.tip( pos ) === 'link' ? read_link() : read_list()\n\t\t\t\tif( !Array.isArray( keys ) ) $mol_fail( new Error( 'Wrong tupl shape type', { cause: { type: typeof keys } } ) )\n\t\t\t\t\n\t\t\t\tconst vals = Array.from( { length: len }, ()=> read_vary() )\n\t\t\t\t\n\t\t\t\tconst obj = this.rich( keys, vals )\n\t\t\t\tif( vals.length ) stream.push( obj )\n\t\t\t\t\n\t\t\t\treturn obj\n\t\t\t}\n\t\t\t\n\t\t\tconst read_spec = ()=> {\n\t\t\t\t\n\t\t\t\tconst kind = pack.getUint8( pos )\n\t\t\t\tconst spec = $mol_vary_spec[ kind ] as keyof typeof $mol_vary_spec \n\t\t\t\t\n\t\t\t\tswitch( spec ) {\n\t\t\t\t\t\n\t\t\t\t\tcase 'none':\n\t\t\t\t\t\t++ pos\n\t\t\t\t\t\treturn null\n\t\t\t\t\t\n\t\t\t\t\tcase 'fake':\n\t\t\t\t\t\t++ pos\n\t\t\t\t\t\treturn false\n\t\t\t\t\t\n\t\t\t\t\tcase 'true':\n\t\t\t\t\t\t++ pos\n\t\t\t\t\t\treturn true\n\t\t\t\t\t\n\t\t\t\t\tcase 'both':\n\t\t\t\t\t\t++ pos\n\t\t\t\t\t\treturn undefined\n\t\t\t\t\t\n\t\t\t\t\tcase 'fp16': {\n\t\t\t\t\t\tconst val = pack.getFloat16( pos + 1, true )\n\t\t\t\t\t\tpos += 3\n\t\t\t\t\t\treturn val\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tcase 'fp32': {\n\t\t\t\t\t\tconst val = pack.getFloat32( pos + 1, true )\n\t\t\t\t\t\tpos += 5\n\t\t\t\t\t\treturn val\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tcase 'fp64': {\n\t\t\t\t\t\tconst val = pack.getFloat64( pos + 1, true )\n\t\t\t\t\t\tpos += 9\n\t\t\t\t\t\treturn val\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tdefault:\n\t\t\t\t\t\t$mol_fail( new Error( 'Unsupported spec', { cause: { kind } } ) )\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tconst read_vary = ()=> {\n\t\t\t\t\n\t\t\t\tconst tip = pack.tip( pos )\n\t\t\t\t\n\t\t\t\tswitch( tip ) {\n\t\t\t\t\t\n\t\t\t\t\tcase 'uint': return read_unum()\n\t\t\t\t\tcase 'sint': return read_snum()\n\t\t\t\t\tcase 'link': return read_link()\n\t\t\t\t\tcase 'text': return read_text()\n\t\t\t\t\tcase 'list': return read_list()\n\t\t\t\t\tcase 'blob': return read_blob()\n\t\t\t\t\tcase 'tupl': return read_tupl()\n\t\t\t\t\tcase 'spec': return read_spec()\n\t\t\t\t\t\n\t\t\t\t\tdefault: $mol_fail( new Error( 'Unsupported tip', { cause: { tip } } ) )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\treturn read_vary()\n\t\t}\n\t\t\n\t\ttlen( pos: number, tip: keyof typeof $mol_vary_tip, len: number ) {\n\t\t\tthis.setUint8( pos, $mol_vary_tip[ tip ] | len )\n\t\t\treturn 1\n\t\t}\n\t\t\n\t\ttnat( pos: number, tip: keyof typeof $mol_vary_tip, num: number | bigint ) {\n\t\t\t\n\t\t\tconst len = num_len( num )\n\t\t\tthis.tlen( pos, tip, len ? $mol_vary_len[ len ] : Number( num ) )\n\t\t\t\n\t\t\tswitch( len ) {\n\t\t\t\tcase 0: break\n\t\t\t\tcase 1: this.setUint8( pos + 1, Number( num ) ); break\n\t\t\t\tcase 2: this.setUint16( pos + 1, Number( num ), true ); break\n\t\t\t\tcase 4: this.setUint32( pos + 1, Number( num ), true ); break\n\t\t\t\tcase 8: this.setBigUint64( pos + 1, BigInt( num ), true ); break\n\t\t\t\tdefault: $mol_fail( new Error( 'Unsupported uint len', { cause: { len } } ) )\n\t\t\t}\n\n\t\t\treturn 1 + len\n\t\t}\n\t\t\n\t\ttint( pos: number, tip: keyof typeof $mol_vary_tip, num: number | bigint ) {\n\t\t\t\n\t\t\tconst len = num_len( num )\n\t\t\tthis.tlen( pos, tip, len ? - $mol_vary_len[ len ] -1 : Number( num ) )\n\t\t\t\n\t\t\tswitch( len ) {\n\t\t\t\tcase 0: break\n\t\t\t\tcase 1: this.setInt8( pos + 1, Number( num ) ); break\n\t\t\t\tcase 2: this.setInt16( pos + 1, Number( num ), true ); break\n\t\t\t\tcase 4: this.setInt32( pos + 1, Number( num ), true ); break\n\t\t\t\tcase 8: this.setBigInt64( pos + 1, BigInt( num ), true ); break\n\t\t\t\tdefault: $mol_fail( new Error( 'Unsupported sint len', { cause: { len } } ) )\n\t\t\t}\n\n\t\t\treturn 1 + len\n\t\t}\n\t\t\n\t\ttfp( pos: number, tip: keyof typeof $mol_vary_tip, num: number ) {\n\t\t\t\n\t\t\tconst len = num_len( num )\n\t\t\tthis.tlen( pos, tip, len ? $mol_vary_len[ len ] : Number( num ) )\n\t\t\t\n\t\t\tswitch( len ) {\n\t\t\t\tcase 2: this.setFloat16( pos + 1, num, true ); break\n\t\t\t\tcase 4: this.setFloat32( pos + 1, num, true ); break\n\t\t\t\tcase 8: this.setFloat64( pos + 1, num, true ); break\n\t\t\t\tdefault: $mol_fail( new Error( 'Unsupported fp len', { cause: { len } } ) )\n\t\t\t}\n\n\t\t\treturn 1 + len\n\t\t}\n\t\t\n\t\ttip( pos: number ) {\n\t\t\treturn $mol_vary_tip[ this.getUint8( pos ) & 0b111_00000 ] as keyof typeof $mol_vary_tip\n\t\t}\n\t\t\n\t\tulen( pos: number ) {\n\t\t\tconst num = this.getUint8( pos ) & 0b11111\n\t\t\tif( num < 28 ) return 0\n\t\t\tswitch( num ) {\n\t\t\t\tcase 28: return 1\n\t\t\t\tcase 29: return 2\n\t\t\t\tcase 30: return 4\n\t\t\t\tcase 31: return 8\n\t\t\t\tdefault: $mol_fail( new Error( 'Impossible!' ) )\n\t\t\t}\n\t\t}\n\t\t\n\t\tslen( pos: number ) {\n\t\t\tconst num = this.getInt8( pos )\n\t\t\tif( num > -29 ) return 0\n\t\t\tswitch( num ) {\n\t\t\t\tcase -29: return 1\n\t\t\t\tcase -30: return 2\n\t\t\t\tcase -31: return 4\n\t\t\t\tcase -32: return 8\n\t\t\t\tdefault: $mol_fail( new Error( 'Impossible!' ) )\n\t\t\t}\n\t\t}\n\t\t\n\t\tunum( pos: number ) {\n\t\t\tconst num = this.getUint8( pos ) & 0b11111\n\t\t\tif( num < 28 ) return num\n\t\t\tswitch( num ) {\n\t\t\t\tcase 28: return this.getUint8( pos + 1 )\n\t\t\t\tcase 29: return this.getUint16( pos + 1, true )\n\t\t\t\tcase 30: return this.getUint32( pos + 1, true )\n\t\t\t\tcase 31:\n\t\t\t\t\tconst val = this.getBigUint64( pos + 1, true )\n\t\t\t\t\tif( val > Number.MAX_SAFE_INTEGER ) return val\n\t\t\t\t\treturn Number( val )\n\t\t\t\tdefault: $mol_fail( new Error( 'Unsupported len', { cause: { num } } ) )\n\t\t\t}\n\t\t}\n\t\t\n\t\tsnum( pos: number ) {\n\t\t\tconst num = this.getInt8( pos )\n\t\t\tif( num > -29 ) return num\n\t\t\tswitch( num ) {\n\t\t\t\tcase -29: return this.getInt8( pos + 1 )\n\t\t\t\tcase -30: return this.getInt16( pos + 1, true )\n\t\t\t\tcase -31: return this.getInt32( pos + 1, true )\n\t\t\t\tcase -32:\n\t\t\t\t\tconst val = this.getBigInt64( pos + 1, true )\n\t\t\t\t\tif( val > Number.MAX_SAFE_INTEGER ) return val\n\t\t\t\t\tif( val < Number.MIN_SAFE_INTEGER ) return val\n\t\t\t\t\treturn Number( val )\n\t\t\t\tdefault: $mol_fail( new Error( 'Unsupported len', { cause: { num } } ) )\n\t\t\t}\n\t\t}\n\t\t\n\t\t/** Converts internal keys&vals to high level object. */\n\t\tstatic rich( keys: any[], vals: any[] ): object {\n\t\t\t\n\t\t\tconst shape = JSON.stringify([ keys, vals.map( v => typeof v ) ])\n\t\t\tconst rich = this.riches.get( shape )\n\t\t\tif( rich ) return rich( ... vals )\n\t\t\t\n\t\t\tconst pairs = keys.map( ( key, index ) => [ key, vals[ index ] ] )\n\t\t\tconst obj = Object.fromEntries( pairs )\n\t\t\t\n\t\t\treturn obj\n\t\t}\n\t\t \n\t\t/** Converts high level object to internal keys&vals representation. */\n\t\tstatic lean( val: object ): readonly[ keys: readonly any[], vals: readonly any[] ] {\n\t\t\t\n\t\t\tconst proto = Reflect.getPrototypeOf( val )!\n\t\t\tconst lean = this.leanes.get( proto )\n\t\t\tif( lean ) return lean( val )\n\t\t\t\n\t\t\treturn [ Object.keys( val ), Object.values( val ) ]\n\t\t}\n\t\t\n\t\tstatic leanes = new Map< object, ( val: any )=> readonly[ keys: readonly any[], vals: readonly any[] ] >()\n\t\tstatic riches = new Map< string/*shape*/, ( ... vals: readonly any[] )=> object >()\n\t\t\n\t\t/** Adds custom types support. */\n\t\tstatic type<\n\t\t\tconst Instance extends object,\n\t\t\tconst Keys extends readonly any[],\n\t\t\tconst Vals extends readonly any[],\n\t\t>(\n\t\t\trich: ( ( ... vals: Vals )=> Instance ) | ( ()=> Instance ),\n\t\t\tlean: ( obj: Instance )=> readonly[ Keys, Vals ],\n\t\t) {\n\t\t\t\n\t\t\tconst obj = rich()\n\t\t\tconst proto = Reflect.getPrototypeOf( obj )!\n\t\t\t\n\t\t\tconst [ keys, vals ] = lean( obj )\n\t\t\tconst shape = JSON.stringify( [ keys, vals.map( v => typeof v ) ] )\n\t\t\t\n\t\t\tthis.leanes.set( proto, lean )\n\t\t\tthis.riches.set( shape, rich )\n\t\t}\n\t\t\n\t}\n\t\n\t/** Native Map support */\n\t$mol_vary.type(\n\t\t( keys = [] as readonly any[], vals = [] as readonly any[] )=> new Map( keys.map( ( k, i )=> [ k, vals[i] ] ) ),\n\t\tobj => [\n\t\t\t[ 'keys', 'vals' ],\n\t\t\t[ [ ... obj.keys() ], [ ... obj.values() ] ],\n\t\t],\n\t)\n\t\n\t/** Native Set support */\n\t$mol_vary.type(\n\t\t( vals = [] as readonly any[] )=> new Set( vals ),\n\t\tobj => [\n\t\t\t[ 'vals' ],\n\t\t\t[ [ ... obj.values() ] ],\n\t\t],\n\t)\n\t\n\t// /** Native Date support */\n\t// $mol_vary.type(\n\t// \t( ts = 0 )=> new Date( ts * 1000 ),\n\t// \tobj => [\n\t// \t\t[ 'unix_time' ],\n\t// \t\t[ obj.valueOf() / 1000 ],\n\t// \t],\n\t// )\n\t\n}\n"]}
package/web.mjs CHANGED
@@ -84,7 +84,10 @@ var $;
84
84
  var $;
85
85
  (function ($) {
86
86
  function $mol_hash_string(str, seed = 0) {
87
- return $mol_hash_numbers([...str].map(ch => ch.codePointAt(0)));
87
+ let nums = new Array(str.length);
88
+ for (let i = 0; i < str.length; ++i)
89
+ nums[i] = str.charCodeAt(i);
90
+ return $mol_hash_numbers(nums);
88
91
  }
89
92
  $.$mol_hash_string = $mol_hash_string;
90
93
  })($ || ($ = {}));
@@ -225,6 +228,14 @@ var $;
225
228
  }
226
229
  }
227
230
  class $mol_vary extends DataView {
231
+ static buffer = new Uint8Array(4096);
232
+ static buffer_view = new this(this.buffer.buffer);
233
+ static allocate(size) {
234
+ if (this.buffer.byteLength > size)
235
+ return;
236
+ this.buffer = new Uint8Array(Math.ceil(size / 4096) * 4096);
237
+ this.buffer_view = new this(this.buffer.buffer);
238
+ }
228
239
  static pack(data) {
229
240
  const leaned = new WeakMap();
230
241
  const lean = (val) => {
@@ -266,7 +277,7 @@ var $;
266
277
  res = $mol_hash_numbers(val.map(hash), $mol_vary_tip.list);
267
278
  else {
268
279
  const [keys, vals] = lean(val);
269
- res = $mol_hash_numbers([hash(keys), ...vals.map(hash)], $mol_vary_tip.tupl);
280
+ res = $mol_hash_numbers(vals.map(hash), hash(keys));
270
281
  }
271
282
  hashes.set(val, res);
272
283
  return res;
@@ -354,8 +365,9 @@ var $;
354
365
  $mol_fail(new Error(`Unsupported type`));
355
366
  };
356
367
  calc(data);
357
- const buf = new Uint8Array(size);
358
- const pack = new this(buf.buffer);
368
+ this.allocate(size);
369
+ const buf = this.buffer;
370
+ const pack = this.buffer_view;
359
371
  const embedded = new Set();
360
372
  let pos = 0;
361
373
  const dump = (val) => {
@@ -477,7 +489,7 @@ var $;
477
489
  $mol_fail(new Error(`Unsupported type`));
478
490
  };
479
491
  dump(data);
480
- return buf;
492
+ return buf.slice(0, size);
481
493
  }
482
494
  static take(buf) {
483
495
  const pack = new $mol_vary(buf.buffer, buf.byteOffset, buf.byteLength);
@@ -746,7 +758,7 @@ var $;
746
758
  }
747
759
  static leanes = new Map();
748
760
  static riches = new Map();
749
- static register(rich, lean) {
761
+ static type(rich, lean) {
750
762
  const obj = rich();
751
763
  const proto = Reflect.getPrototypeOf(obj);
752
764
  const [keys, vals] = lean(obj);
@@ -756,11 +768,11 @@ var $;
756
768
  }
757
769
  }
758
770
  $.$mol_vary = $mol_vary;
759
- $mol_vary.register((keys = [], vals = []) => new Map(keys.map((k, i) => [k, vals[i]])), obj => [
771
+ $mol_vary.type((keys = [], vals = []) => new Map(keys.map((k, i) => [k, vals[i]])), obj => [
760
772
  ['keys', 'vals'],
761
773
  [[...obj.keys()], [...obj.values()]],
762
774
  ]);
763
- $mol_vary.register((vals = []) => new Set(vals), obj => [
775
+ $mol_vary.type((vals = []) => new Set(vals), obj => [
764
776
  ['vals'],
765
777
  [[...obj.values()]],
766
778
  ]);
package/web.test.js CHANGED
@@ -1740,7 +1740,7 @@ var $;
1740
1740
  return [this.a, this.b].values();
1741
1741
  }
1742
1742
  }
1743
- $mol_vary.register((a = 0, b = 0) => new Foo(a, b), foo => [
1743
+ $mol_vary.type((a = 0, b = 0) => new Foo(a, b), foo => [
1744
1744
  ['a', 'b'],
1745
1745
  [foo.a, foo.b],
1746
1746
  ]);