jostraca 0.34.1 → 0.36.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -20,7 +20,7 @@ npm install jostraca
20
20
  ```
21
21
 
22
22
  `shape` is the only peer dependency, and npm installs it for you. It
23
- validates options, on a loose range (`shape >=10`). In-memory generation is
23
+ validates options, on a loose range (`shape >=11`). In-memory generation is
24
24
  served by an in-repo filesystem (`src/util/memfs.ts`), so nothing else is
25
25
  installed for it.
26
26
 
@@ -81,6 +81,20 @@ function tmppathFor(path) {
81
81
  // TODO: if EOL != '\n', normalize to '\n' in load,save
82
82
  // Log non-fatal wierdness.
83
83
  const dlog = (0, basic_1.getdlog)('jostraca', __filename);
84
+ // Compare two content values that may each be a string or a Buffer.
85
+ //
86
+ // `===` on a string and a Buffer is false whatever the bytes are, which is
87
+ // how a byte-identical binary target came to be reported as changed on
88
+ // every run (issue #30). Buffers compare by bytes; strings keep the cheap
89
+ // length check first, which is what the `===` sites here always did.
90
+ function sameContent(a, b) {
91
+ if (Buffer.isBuffer(a) || Buffer.isBuffer(b)) {
92
+ const ab = Buffer.isBuffer(a) ? a : Buffer.from(a, 'utf8');
93
+ const bb = Buffer.isBuffer(b) ? b : Buffer.from(b, 'utf8');
94
+ return ab.equals(bb);
95
+ }
96
+ return a.length === b.length && a === b;
97
+ }
84
98
  class FileHandler {
85
99
  when;
86
100
  fs;
@@ -275,19 +289,30 @@ class FileHandler {
275
289
  let unchanged = false;
276
290
  if (exists) {
277
291
  why.push('exists-0');
278
- let currentContent = this.loadFile(path);
292
+ // Load the existing bytes in the SAME SHAPE as the incoming content.
293
+ // `loadFile` decodes utf8 by default, so a Copy-routed binary file --
294
+ // whose content arrives here as a Buffer -- was compared as
295
+ // `string === Buffer`, which is false whatever the bytes are. A target
296
+ // already holding exactly those bytes was therefore "changed" on every
297
+ // run: `bin.preserve` wrote a `.old` backup of a file about to be
298
+ // rewritten identically, `bin.present` wrote a `.new` sidecar of the
299
+ // same bytes, and the unchanged-file optimisation was defeated for
300
+ // every binary. Issue #30. Go has always used bytes.Equal.
301
+ //
302
+ // Decoding cannot be fixed by converting one side afterwards: utf8
303
+ // decoding is lossy for binary, so the string no longer carries the
304
+ // bytes to compare.
305
+ let currentContent = this.loadFile(path, isTextFile ? undefined : { encoding: null });
279
306
  const protect = 0 <= currentContent.indexOf(JOSTRACA_PROTECT);
280
307
  meta.protect = protect;
281
- unchanged = currentContent.length === newContentSource.length &&
282
- currentContent === newContentSource;
308
+ unchanged = sameContent(currentContent, newContentSource);
283
309
  if (existing.preserve) {
284
310
  why.push('preserve-0');
285
311
  if (protect) {
286
312
  why.push('protect-0');
287
313
  write = false;
288
314
  }
289
- else if (currentContent.length !== newContentSource.length ||
290
- currentContent !== newContentSource) {
315
+ else if (!sameContent(currentContent, newContentSource)) {
291
316
  why.push('content-0');
292
317
  let oldpath = annotatedPath(path, 'old');
293
318
  this.copyFile(path, oldpath, whence + 'preserve:');
@@ -306,7 +331,7 @@ class FileHandler {
306
331
  }
307
332
  else if (existing.present) {
308
333
  why.push('present-0');
309
- if (currentContent.length !== newContentSource.length || currentContent !== newContentSource) {
334
+ if (!sameContent(currentContent, newContentSource)) {
310
335
  why.push('content-1');
311
336
  let newpath = annotatedPath(path, 'new');
312
337
  this.saveFile(newpath, newContentSource, { flush: true }, whence + 'present:');
@@ -323,8 +348,7 @@ class FileHandler {
323
348
  if (existing.diff) {
324
349
  why.push('diff-0');
325
350
  write = false;
326
- if (currentContent.length !== newContentSource.length ||
327
- currentContent !== newContentSource) {
351
+ if (!sameContent(currentContent, newContentSource)) {
328
352
  why.push('content-2');
329
353
  meta.action = 'diff';
330
354
  const newContent = 'string' === typeof newContentSource ? newContentSource :
@@ -357,8 +381,7 @@ class FileHandler {
357
381
  }
358
382
  else if (existing.merge) {
359
383
  why.push('merge-0');
360
- if (currentContent.length !== newContentSource.length ||
361
- currentContent !== newContentSource) {
384
+ if (!sameContent(currentContent, newContentSource)) {
362
385
  why.push('content-3');
363
386
  if (this.control.duplicate) {
364
387
  why.push('duplicate-0');
@@ -1 +1 @@
1
- {"version":3,"file":"FileHandler.js","sourceRoot":"","sources":["../../src/build/FileHandler.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAgoCE,aAAa;QACb,SAAS;QACT,SAAS;AAjoCX,0DAA4B;AAE5B,MAAY,QAAQ,oCAAe;AAOnC,yCAKsB;AAGtB,MAAM,EAAE,GAAG,cAAc,CAAA;AAEzB,+EAA+E;AAC/E,iFAAiF;AACjF,kCAAkC;AAClC,SAAS,GAAG,CAAC,CAAS;IACpB,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AACrD,CAAC;AAED,MAAM,gBAAgB,GAAG,kBAAkB,CAAA;AAE3C,yEAAyE;AACzE,gCAAgC;AAChC,MAAM,SAAS,GAA2B;IACxC,IAAI,EAAE,cAAc;IACpB,KAAK,EAAE,eAAe;IACtB,UAAU,EAAE,oBAAoB;IAChC,MAAM,EAAE,aAAa;CACtB,CAAA;AAED,yEAAyE;AACzE,MAAM,UAAU,GAAG,eAAe,CAAA;AAElC,0EAA0E;AAC1E,EAAE;AACF,2EAA2E;AAC3E,8DAA8D;AAC9D,MAAM,iBAAiB,GAAG,CAAC,CAAA;AAE3B,kDAAkD;AAClD,EAAE;AACF,4EAA4E;AAC5E,2EAA2E;AAC3E,oEAAoE;AACpE,iEAAiE;AACjE,IAAI,MAAM,GAAG,CAAC,CAAA;AACd,SAAS,UAAU,CAAC,IAAY;IAC9B,MAAM,GAAG,GAAG,WAAW,KAAK,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAA;IAC5D,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,WAAW,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;IAChE,OAAO,IAAI,GAAG,UAAU,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,GAAG,GAAG,GAAG,CAAA;AAClF,CAAC;AAED,wDAAwD;AAExD,2BAA2B;AAC3B,MAAM,IAAI,GAAG,IAAA,eAAO,EAAC,UAAU,EAAE,UAAU,CAAC,CAAA;AAG5C,MAAM,WAAW;IAEf,IAAI,CAAQ;IACZ,EAAE,CAAW;IACb,GAAG,CAAc;IACjB,MAAM,CAAQ;IACd,KAAK,CAAO;IACZ,QAAQ,CAAQ;IAChB,QAAQ,CAAwB;IAChC,OAAO,CAIN;IACD,eAAe,CAAc;IAC7B,IAAI,CAAc;IAClB,OAAO,CAAmC;IAC1C,QAAQ,CAAc;IACtB,KAAK,CAQJ;IACD,WAAW,CAAa;IACxB,UAAU,CAAa;IAGvB,YACE,IAAkB,EAClB,QAAgC,EAChC,OAIC;QAED,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAA;QACjB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAA;QAEnB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;QACrB,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,mBAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAA;QAC9C,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACvB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;QACxB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QAEtB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAA,CAAC,iCAAiC;QAEpD,IAAI,CAAC,KAAK,GAAG;YACX,SAAS,EAAE,EAAE;YACb,OAAO,EAAE,EAAE;YACX,SAAS,EAAE,EAAE;YACb,MAAM,EAAE,EAAE;YACV,MAAM,EAAE,EAAE;YACV,UAAU,EAAE,EAAE;YACd,SAAS,EAAE,EAAE;SACd,CAAA;QAED,IAAI,CAAC,WAAW,GAAG,IAAI,GAAG,EAAE,CAAA;QAC5B,IAAI,CAAC,UAAU,GAAG,IAAI,GAAG,EAAE,CAAA;QAE3B,SAAS;QACT,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACtD,IAAI,CAAC,IAAI,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAA;QACtC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACtC,IAAI,CAAC,QAAQ,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAA;QAE9C,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,UAAU,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CAAC,EAAE,GAAG,iCAAiC,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,CAAA;QACrE,CAAC;IACH,CAAC;IAGD,QAAQ,CAAC,IAAY,EAAE,MAAe;QACpC,MAAM,EAAE,GAAG,WAAW,CAAA;QACtB,MAAM,IAAI,GAAG,IAAI,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,GAAG,CAAA;QAE/C,IAAI,QAAQ,KAAK,OAAO,IAAI,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,EAAE,GAAG,EAAE,GAAG,IAAI,GAAG,sBAAsB,GAAG,IAAI,CAAC,CAAA;QAEjE,CAAC;QAED,0DAA0D;QAC1D,EAAE;QACF,uEAAuE;QACvE,kEAAkE;QAClE,wEAAwE;QACxE,wEAAwE;QACxE,oEAAoE;QACpE,qEAAqE;QACrE,+DAA+D;QAC/D,EAAE;QACF,iEAAiE;QACjE,EAAE;QACF,qEAAqE;QACrE,qEAAqE;QACrE,qEAAqE;QACrE,qEAAqE;QACrE,uEAAuE;QACvE,mEAAmE;QACnE,qEAAqE;QACrE,sEAAsE;QACtE,EAAE;QACF,uEAAuE;QACvE,+DAA+D;QAC/D,8BAA8B;QAC9B,MAAM,WAAW,GAAG,CAAC,CAAS,EAAE,EAAE,CAChC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aAC9D,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAA;QAE3B,MAAM,KAAK,GACT,GAAG,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC;YACnD,GAAG,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC;gBACjD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;oBAC3C,IAAI,CAAA;QAEZ,oDAAoD;QACpD,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;IAClC,CAAC;IAGD,+DAA+D;IAC/D,EAAE;IACF,wEAAwE;IACxE,+DAA+D;IAC/D,wEAAwE;IACxE,+DAA+D;IAC/D,YAAY,CAAC,IAAY;QACvB,IAAI,GAAG,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC;YACxB,IAAI,mBAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC1B,OAAO,KAAK,CAAA;YACd,CAAC;YACD,mEAAmE;YACnE,qEAAqE;YACrE,sEAAsE;YACtE,oEAAoE;YACpE,yCAAyC;YACzC,MAAM,IAAI,GAAG,GAAG,CAAC,mBAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAA;YACtC,OAAO,IAAI,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;QACjD,CAAC;QACD,IAAI,GAAG,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;QAC7B,CAAC;QACD,OAAO,IAAI,KAAK,IAAI,CAAC,MAAM;YACzB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC;YAClC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;IACvC,CAAC;IAGD,sEAAsE;IACtE,QAAQ;IACR,EAAE;IACF,uEAAuE;IACvE,uEAAuE;IACvE,qEAAqE;IACrE,oEAAoE;IACpE,sEAAsE;IACtE,6BAA6B;IAC7B,EAAE;IACF,2CAA2C;IAC3C,UAAU,CACR,IAAY,EACZ,gBAAiC,EACjC,MAAe;QAEf,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,CAAA;IACpE,CAAC;IAGD,sEAAsE;IACtE,mEAAmE;IACnE,sEAAsE;IACtE,iEAAiE;IACjE,EAAE;IACF,gEAAgE;IAChE,0BAA0B;IAC1B,IAAI,CACF,IAAY,EACZ,gBAAiC,EACjC,KAAwB,EACxB,MAAe,EACf,IAAa,EACb,MAAgB;QAEhB,kEAAkE;QAClE,sDAAsD;QACtD,MAAM,QAAQ,GAAG,GAAG,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAA;QACrD,MAAM,IAAI,GAAG,IAAI,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,GAAG,CAAA;QAC/C,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,CAAA;QACpB,MAAM,EAAE,GAAG,OAAO,CAAA;QAElB,IAAI,GAAG,GAAG,EAAE,CAAA;QAEZ,IAAI,QAAQ,KAAK,OAAO,KAAK,EAAE,CAAC;YAC9B,MAAM,GAAG,KAAK,CAAA;YACd,KAAK,GAAG,KAAK,CAAA;QACf,CAAC;aACI,IAAI,IAAI,IAAI,KAAK,EAAE,CAAC;YACvB,KAAK,GAAG,KAAK,CAAA;QACf,CAAC;QAED,MAAM,GAAG,IAAI,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAA;QAErC,IAAI,GAAG,GAAG,CAAC,mBAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAA;QAEhC,qEAAqE;QACrE,oEAAoE;QACpE,qEAAqE;QACrE,OAAO;QACP,EAAE;QACF,uEAAuE;QACvE,uEAAuE;QACvE,uEAAuE;QACvE,uEAAuE;QACvE,oEAAoE;QACpE,sEAAsE;QACtE,qEAAqE;QACrE,iEAAiE;QACjE,kEAAkE;QAClE,cAAc;QACd,MAAM,UAAU,GAAG,IAAI,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,IAAA,gBAAQ,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAA;QAC5D,MAAM,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAA;QAEnE,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;QAE5C,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,GAAG,IAAI,CAAC,CAAA;QAE5C,sEAAsE;QACtE,iEAAiE;QACjE,mEAAmE;QACnE,uEAAuE;QACvE,sEAAsE;QACtE,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9B,IAAI,CAAC,MAAM,EAAE,sCAAsC,GAAG,IAAI,CAAC,CAAA;QAC7D,CAAC;aACI,CAAC;YACJ,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QAC3B,CAAC;QAED,MAAM,MAAM,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;QAClC,KAAK,GAAG,KAAK,IAAI,CAAC,MAAM,CAAA;QAExB,GAAG,CAAC,IAAI,CAAC,SAAS,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAA;QAE5D,MAAM,IAAI,GAAQ;YAChB,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,KAAK;YACX,MAAM;YACN,OAAO,EAAE,EAAE;YACX,OAAO,EAAE,KAAK;YACd,QAAQ,EAAE,KAAK;SAChB,CAAA;QAED,qEAAqE;QACrE,+DAA+D;QAC/D,IAAI,SAAS,GAAG,KAAK,CAAA;QAErB,IAAI,MAAM,EAAE,CAAC;YACX,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;YACpB,IAAI,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;YAExC,MAAM,OAAO,GAAG,CAAC,IAAI,cAAc,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAA;YAC7D,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;YAEtB,SAAS,GAAG,cAAc,CAAC,MAAM,KAAK,gBAAgB,CAAC,MAAM;gBAC3D,cAAc,KAAK,gBAAgB,CAAA;YAErC,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;gBACtB,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;gBAEtB,IAAI,OAAO,EAAE,CAAC;oBACZ,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;oBACrB,KAAK,GAAG,KAAK,CAAA;gBACf,CAAC;qBACI,IAAI,cAAc,CAAC,MAAM,KAAK,gBAAgB,CAAC,MAAM;oBACxD,cAAc,KAAK,gBAAgB,EAAE,CAAC;oBACtC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;oBAErB,IAAI,OAAO,GAAG,aAAa,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;oBACxC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,GAAG,WAAW,CAAC,CAAA;oBAClD,kCAAkC;oBAClC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,CAAA;oBAE/B,IAAI,CAAC,MAAM,GAAG,UAAU,CAAA;oBACxB,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAA;oBACzB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;oBAE9B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC,MAAM;wBAC7C,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;gBAC/C,CAAC;YACH,CAAC;YAED,IAAI,QAAQ,CAAC,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;gBAC/B,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;gBACnB,KAAK,GAAG,IAAI,CAAA;YACd,CAAC;iBACI,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;gBAC1B,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;gBAErB,IAAI,cAAc,CAAC,MAAM,KAAK,gBAAgB,CAAC,MAAM,IAAI,cAAc,KAAK,gBAAgB,EAAE,CAAC;oBAC7F,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;oBAErB,IAAI,OAAO,GAAG,aAAa,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;oBACxC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,gBAAgB,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,MAAM,GAAG,UAAU,CAAC,CAAA;oBAC9E,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,CAAA;oBAE/B,IAAI,CAAC,MAAM,GAAG,SAAS,CAAA;oBACvB,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAA;oBACzB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;oBAE9B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC,MAAM;wBAC7C,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;gBAC/C,CAAC;YACH,CAAC;YAED,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;gBAEzB,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;oBAClB,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;oBAElB,KAAK,GAAG,KAAK,CAAA;oBAEb,IAAI,cAAc,CAAC,MAAM,KAAK,gBAAgB,CAAC,MAAM;wBACnD,cAAc,KAAK,gBAAgB,EAAE,CAAC;wBACtC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;wBAErB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;wBAEpB,MAAM,UAAU,GACd,QAAQ,KAAK,OAAO,gBAAgB,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;4BACvD,gBAAgB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;wBAErC,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,QAAQ,EAAE,CAAC,CAAA;wBAEpE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,WAAW,EAC7B,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,QAAQ,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAA;wBAE5D,+BAA+B;wBAC/B,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;wBAE5B,MAAM,QAAQ,GAAG,UAAU,KAAK,WAAW,CAAA;wBAC3C,IAAI,QAAQ,EAAE,CAAC;4BACb,mCAAmC;4BACnC,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,CAAA;wBAClC,CAAC;wBAED,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAA;wBACzB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;wBAC9B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;wBAExB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC,MAAM;4BAC7C,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;oBAC/C,CAAC;yBACI,CAAC;wBACJ,+DAA+D;wBAC/D,4DAA4D;wBAC5D,gEAAgE;wBAChE,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;4BACpC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;wBACrB,CAAC;wBACD,kCAAkC;wBAClC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,CAAA;oBACjC,CAAC;gBACH,CAAC;qBACI,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;oBACxB,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;oBAEnB,IAAI,cAAc,CAAC,MAAM,KAAK,gBAAgB,CAAC,MAAM;wBACnD,cAAc,KAAK,gBAAgB,EAAE,CAAC;wBACtC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;wBAErB,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;4BAC3B,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;4BACvB,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,EAAE,CAAA;4BAEtC,MAAM,KAAK,GAAG,GAAG,CAAC,mBAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAA;4BAE5C,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;gCAC3B,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;gCAEvB,KAAK,GAAG,KAAK,CAAA;gCACb,IAAI,CAAC,MAAM,GAAG,OAAO,CAAA;gCAErB,MAAM,UAAU,GACd,QAAQ,KAAK,OAAO,gBAAgB,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;oCACvD,gBAAgB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;gCAErC,MAAM,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAW,CAAA;gCAE3E,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CACzB,UAAU,EAAqB,YAAY;gCAC3C,cAAc,EAAiB,2BAA2B;gCAC1D,cAAc,CAAC,QAAQ,EAAE,EAAM,qBAAqB;gCACpD,GAAG,CACJ,CAAA;gCACD,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAA;gCACpC,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAA;gCAElC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,WAAW,EAC7B,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,QAAQ,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAA;gCAE5D,+BAA+B;gCAC/B,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;gCAE5B,IAAI,QAAQ,EAAE,CAAC;oCACb,mCAAmC;oCACnC,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,CAAA;gCAClC,CAAC;gCAED,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAA;gCACzB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;gCAC9B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;gCAExB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC,MAAM;oCAC7C,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;4BAC/C,CAAC;wBACH,CAAC;oBACH,CAAC;yBAEI,CAAC;wBACJ,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;wBACvB,KAAK,GAAG,KAAK,CAAA;wBACb,wDAAwD;wBACxD,oDAAoD;wBACpD,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;4BACpC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;wBACrB,CAAC;wBACD,kCAAkC;wBAClC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,CAAA;oBACjC,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,KAAK,EAAE,CAAC;YACV,oEAAoE;YACpE,8DAA8D;YAC9D,oEAAoE;YACpE,qEAAqE;YACrE,oEAAoE;YACpE,mCAAmC;YACnC,IAAI,SAAS,EAAE,CAAC;gBACd,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;gBACvB,IAAI,CAAC,MAAM,GAAG,OAAO,CAAA;gBAErB,iEAAiE;gBACjE,iEAAiE;gBACjE,+DAA+D;gBAC/D,8DAA8D;gBAC9D,gEAAgE;gBAChE,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;oBACpC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;gBACrB,CAAC;gBAED,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,CAAA;YACjC,CAAC;iBACI,CAAC;gBACJ,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;gBACnB,IAAI,CAAC,MAAM,GAAG,OAAO,CAAA;gBACrB,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,gBAAgB,EAAE,QAAQ,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAA;gBAEvE,gCAAgC;gBAChC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;YAC/B,CAAC;YAED,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;YAC9B,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAA;YACzB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC,MAAM;gBAC7C,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;QAC/C,CAAC;aACI,IAAI,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACnC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;YAClB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;YACpB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;YAC9B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC,MAAM;gBAC7C,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;QAC/C,CAAC;QAED,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;YAC3B,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;YAEvB,IAAI,YAAY,IAAI,CAAC,mBAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC;gBAC9D,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;gBAEpB,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,EAAE,CAAA;gBACtC,MAAM,KAAK,GAAG,GAAG,CAAC,mBAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAA;gBAE5C,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;oBACzB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,mBAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;oBACxC,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,gBAAgB,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;gBAChE,CAAC;gBAED,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;oBACtB,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAA;gBAC3B,CAAC;YACH,CAAC;QACH,CAAC;QAED,gCAAgC;QAEhC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;IAC1B,CAAC;IAGD,IAAI,CAAC,QAAgB,EAAE,MAAc,EAAE,KAAwB,EAAE,MAAe;QAC9E,MAAM,IAAI,GAAG,IAAI,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,GAAG,CAAA;QAC/C,MAAM,EAAE,GAAG,OAAO,CAAA;QAElB,IAAI,QAAQ,KAAK,OAAO,KAAK,EAAE,CAAC;YAC9B,MAAM,GAAG,KAAK,CAAA;YACd,KAAK,GAAG,KAAK,CAAA;QACf,CAAC;aACI,IAAI,IAAI,IAAI,KAAK,EAAE,CAAC;YACvB,KAAK,GAAG,KAAK,CAAA;QACf,CAAC;QAED,MAAM,GAAG,IAAI,GAAG,EAAE,CAAA;QAElB,MAAM,QAAQ,GAAG,IAAA,gBAAQ,EAAC,QAAQ,CAAC,CAAA;QAEnC,sEAAsE;QACtE,EAAE;QACF,uEAAuE;QACvE,uEAAuE;QACvE,oEAAoE;QACpE,sEAAsE;QACtE,qEAAqE;QACrE,qEAAqE;QACrE,wBAAwB;QACxB,EAAE;QACF,qEAAqE;QACrE,qEAAqE;QACrE,8DAA8D;QAC9D,uEAAuE;QACvE,kEAAkE;QAClE,uEAAuE;QACvE,gBAAgB;QAChB,EAAE;QACF,oEAAoE;QACpE,kEAAkE;QAClE,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,MAAM,CAAW,CAAA;QAEzE,uEAAuE;QACvE,kEAAkE;QAClE,+DAA+D;QAC/D,yCAAyC;QACzC,IAAI,QAAQ,IAAI,IAAA,oBAAY,EAAC,GAAG,CAAC,EAAE,CAAC;YAClC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,CAAA;QACtC,CAAC;aACI,CAAC;YACJ,qEAAqE;YACrE,4DAA4D;YAC5D,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAA;QACjD,CAAC;IACH,CAAC;IAGD,qEAAqE;IACrE,uEAAuE;IACvE,qEAAqE;IACrE,SAAS;IACT,EAAE;IACF,wEAAwE;IACxE,gEAAgE;IAChE,cAAc;IACd,KAAK,CACH,SAAiB,EACjB,QAAgB,EAChB,QAAgB,EAChB,GAAa;QAKb,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE;YACxD,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;YACjB,IAAI,EAAE,OAAO;SACd,CAAC,CAAA;QAEF,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAA;QAEhC,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAA;IACzD,CAAC;IAGD,wEAAwE;IACxE,mBAAmB;IACnB,IAAI,CAAC,SAAiB,EAAE,QAAgB;QACtC,OAAO,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE;YACxC,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;YACjB,IAAI,EAAE,MAAM;SACb,CAAC,CAAC,OAAO,CAAA;IACZ,CAAC;IAGD,UAAU,CAAC,IAAY,EAAE,MAAe;QACtC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QACvB,MAAM,IAAI,GAAG,IAAI,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,GAAG,CAAA;QAC/C,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,CAAA;QACpB,MAAM,EAAE,GAAG,aAAa,CAAA;QAExB,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,GAAG,EAAE,GAAG,OAAO,GAAG,IAAI,CAAC,CAAA;QAExD,sEAAsE;QACtE,0EAA0E;QAC1E,sEAAsE;QACtE,MAAM,QAAQ,GAAG,GAAG,CAAC,mBAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAA;QAE1C,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA;YACtC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,IAAI;gBAC/B,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAA;YACxB,OAAO,MAAM,CAAA;QACf,CAAC;QACD,OAAO,GAAQ,EAAE,CAAC;YAChB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;gBAC1C,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,CAAA;YACrB,GAAG,CAAC,OAAO,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,GAAG,QAAQ,GAAG,IAAI;gBAC5C,OAAO,GAAG,GAAG,CAAC,OAAO,CAAA;YACvB,MAAM,GAAG,CAAA;QACX,CAAC;IACH,CAAC;IAGD,QAAQ,CAAC,QAAgB,EAAE,MAAc,EAAE,MAAe;QACxD,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QACvB,MAAM,IAAI,GAAG,IAAI,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,GAAG,CAAA;QAC/C,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,CAAA;QACpB,MAAM,EAAE,GAAG,WAAW,CAAA;QAEtB,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,GAAG,EAAE,GAAG,OAAO,GAAG,IAAI,CAAC,CAAA;QAC5D,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,GAAG,EAAE,GAAG,KAAK,GAAG,IAAI,CAAC,CAAA;QAExD,gFAAgF;QAChF,MAAM,UAAU,GAAG,GAAG,CAAC,mBAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAA;QAC9C,MAAM,YAAY,GAAG,GAAG,CAAC,mBAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAA;QAElD,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAA;YAEzC,oDAAoD;YACpD,EAAE;YACF,sEAAsE;YACtE,qEAAqE;YACrE,oEAAoE;YACpE,oEAAoE;YACpE,sEAAsE;YACtE,oEAAoE;YACpE,WAAW;YACX,EAAE;YACF,oEAAoE;YACpE,mDAAmD;YACnD,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,YAAY,CAAC,CAAA;YAE7C,kEAAkE;YAClE,qEAAqE;YACrE,sCAAsC;YACtC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;gBACzB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,mBAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;gBAC7C,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;YAC5D,CAAC;YAED,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,IAAI;gBAC/B,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;QAC7D,CAAC;QACD,OAAO,GAAQ,EAAE,CAAC;YAChB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;gBAC1C,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,CAAA;YACjC,GAAG,CAAC,OAAO,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,GAAG,UAAU,GAAG,MAAM,GAAG,YAAY,GAAG,QAAQ;gBAC1E,OAAO,GAAG,GAAG,CAAC,OAAO,CAAA;YACvB,MAAM,GAAG,CAAA;QACX,CAAC;IACH,CAAC;IAGD,QAAQ,CAAC,IAAY,EAAE,IAAmB,EAAE,MAAe;QACzD,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QACvB,MAAM,IAAI,GAAG,IAAI,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,GAAG,CAAA;QAC/C,MAAM,EAAE,GAAG,WAAW,CAAA;QAEtB,IAAI,QAAQ,KAAK,OAAO,IAAI,EAAE,CAAC;YAC7B,MAAM,GAAG,IAAI,CAAA;YACb,IAAI,GAAG,EAAE,CAAA;QACX,CAAC;aACI,CAAC;YACJ,IAAI,GAAG,IAAI,IAAI,EAAE,CAAA;QACnB,CAAC;QAED,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAA;QAEvC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA;YACjD,MAAM,IAAI,GAAG,QAAQ,KAAK,OAAO,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;YACpF,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;YAC7B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,IAAI;gBAC/B,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;YACtC,OAAO,IAAI,CAAA;QACb,CAAC;QACD,OAAO,GAAQ,EAAE,CAAC;YAChB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;gBAC1C,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,CAAA;YACrB,GAAG,CAAC,OAAO,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,GAAG,QAAQ,GAAG,IAAI,GAAG,OAAO,GAAG,GAAG,CAAC,OAAO,CAAA;YACtE,MAAM,GAAG,CAAA;QACX,CAAC;IACH,CAAC;IAGD,QAAQ,CAAC,IAAY,EAAE,IAAS,EAAE,IAAmB,EAAE,MAAe;QACpE,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QACvB,MAAM,IAAI,GAAG,IAAI,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,GAAG,CAAA;QAC/C,MAAM,EAAE,GAAG,WAAW,CAAA;QAEtB,IAAI,QAAQ,KAAK,OAAO,IAAI,EAAE,CAAC;YAC7B,MAAM,GAAG,IAAI,CAAA;YACb,IAAI,GAAG,EAAE,CAAA;QACX,CAAC;aACI,CAAC;YACJ,IAAI,GAAG,IAAI,IAAI,EAAE,CAAA;QACnB,CAAC;QAED,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAA;QAEvC,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,QAAQ,KAAK,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;YAC5E,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA;YACvC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,IAAI;gBAC/B,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;YACnC,OAAO,IAAI,CAAA;QACb,CAAC;QACD,OAAO,GAAQ,EAAE,CAAC;YAChB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;gBAC1C,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,CAAA;YACrB,GAAG,CAAC,OAAO,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,GAAG,QAAQ,GAAG,IAAI,GAAG,OAAO,GAAG,GAAG,CAAC,OAAO,CAAA;YACtE,MAAM,GAAG,CAAA;QACX,CAAC;IACH,CAAC;IAGD,QAAQ,CAAC,IAAY,EAAE,IAAmB,EAAE,MAAe;QACzD,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QACvB,MAAM,IAAI,GAAG,IAAI,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,GAAG,CAAA;QAC/C,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,CAAA;QACpB,MAAM,EAAE,GAAG,WAAW,CAAA;QAEtB,IAAI,QAAQ,KAAK,OAAO,IAAI,EAAE,CAAC;YAC7B,MAAM,GAAG,IAAI,CAAA;YACb,IAAI,GAAG,EAAE,CAAA;QACX,CAAC;aACI,CAAC;YACJ,IAAI,GAAG,IAAI,IAAI,EAAE,CAAA;QACnB,CAAC;QAED,IAAI,CAAC,QAAQ,GAAG,SAAS,KAAK,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAA;QAEpE,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAA;QAE9C,IAAI,CAAC;YACH,+EAA+E;YAC/E,MAAM,QAAQ,GAAG,GAAG,CAAC,mBAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAA;YAC1C,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;YAC/C,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,IAAI;gBAC/B,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;YACtC,OAAO,OAAO,CAAA;QAChB,CAAC;QACD,OAAO,GAAQ,EAAE,CAAC;YAChB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;gBAC1C,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,CAAA;YACrB,GAAG,CAAC,OAAO,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,GAAG,QAAQ,GAAG,IAAI,GAAG,OAAO,GAAG,GAAG,CAAC,OAAO,CAAA;YACtE,MAAM,GAAG,CAAA;QACX,CAAC;IACH,CAAC;IAGD,YAAY,CAAC,IAAY;QACvB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACzB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;QACtB,CAAC;IACH,CAAC;IAEO,SAAS,CAAC,GAAW;QAC3B,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/B,IAAI,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;YAC7C,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAC3B,CAAC;IACH,CAAC;IAGD,iEAAiE;IACjE,EAAE;IACF,yEAAyE;IACzE,uEAAuE;IACvE,iDAAiD;IACzC,cAAc,CAAC,IAAY,EAAE,IAAa;QAChD,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACxC,OAAO,KAAK,CAAA;QACd,CAAC;QAED,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,CAAA;QACpB,IAAI,UAAU,KAAK,OAAO,EAAE,CAAC,SAAS,EAAE,CAAC;YACvC,OAAO,KAAK,CAAA;QACd,CAAC;QAED,IAAI,CAAC;YACH,IAAI,UAAU,KAAK,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC;gBACtC,MAAM,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;gBAC9B,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,MAAM,CAAC,EAAE,CAAC;oBACrD,OAAO,KAAK,CAAA;gBACd,CAAC;YACH,CAAC;YACD,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;YACxB,OAAO,IAAI,CAAA;QACb,CAAC;QACD,OAAO,GAAQ,EAAE,CAAC;YAChB,IAAI,CAAC,MAAM,EAAE,kCAAkC,GAAG,IAAI,CAAC,CAAA;YACvD,OAAO,KAAK,CAAA;QACd,CAAC;IACH,CAAC;IAGD,uEAAuE;IACvE,sEAAsE;IACtE,uEAAuE;IACvE,mEAAmE;IACnE,qEAAqE;IACrE,qBAAqB;IACrB,EAAE;IACF,wEAAwE;IACxE,oEAAoE;IACpE,gEAAgE;IAChE,EAAE;IACF,sEAAsE;IACtE,iBAAiB;IACT,eAAe,CACrB,IAAY,EACZ,OAAwB,EACxB,IAAS,EACT,IAAa;QAEb,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,CAAA;QAEpB,IAAI,UAAU,KAAK,OAAO,EAAE,CAAC,UAAU,EAAE,CAAC;YACxC,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,CAAA;YACrC,IAAI,IAAI,IAAI,IAAI,IAAI,UAAU,KAAK,OAAO,EAAE,CAAC,SAAS,EAAE,CAAC;gBACvD,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;YAC1B,CAAC;YACD,OAAM;QACR,CAAC;QAED,uCAAuC;QACvC,EAAE;QACF,uEAAuE;QACvE,qEAAqE;QACrE,sEAAsE;QACtE,sEAAsE;QACtE,kEAAkE;QAClE,sEAAsE;QACtE,iEAAiE;QACjE,EAAE;QACF,sEAAsE;QACtE,mEAAmE;QACnE,mEAAmE;QACnE,iCAAiC;QACjC,IAAI,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,CAAA;QAC9B,IAAI,OAAO,GAAG,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;QAErC,wEAAwE;QACxE,wEAAwE;QACxE,mEAAmE;QACnE,mDAAmD;QACnD,IAAI,OAAO,GAAG,KAAK,CAAA;QAEnB,IAAI,CAAC;YACH,KAAK,IAAI,OAAO,GAAG,CAAC,GAAI,OAAO,EAAE,EAAE,CAAC;gBAClC,IAAI,CAAC;oBACH,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;oBAC3C,OAAO,GAAG,IAAI,CAAA;oBACd,MAAK;gBACP,CAAC;gBACD,OAAO,GAAQ,EAAE,CAAC;oBAChB,iEAAiE;oBACjE,gEAAgE;oBAChE,wCAAwC;oBACxC,EAAE;oBACF,0DAA0D;oBAC1D,8DAA8D;oBAC9D,qDAAqD;oBACrD,IAAI,QAAQ,KAAK,GAAG,EAAE,IAAI,EAAE,CAAC;wBAC3B,OAAO,GAAG,IAAI,CAAA;oBAChB,CAAC;oBACD,IAAI,QAAQ,KAAK,GAAG,EAAE,IAAI,IAAI,iBAAiB,GAAG,CAAC,IAAI,OAAO,EAAE,CAAC;wBAC/D,MAAM,GAAG,CAAA;oBACX,CAAC;oBACD,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,CAAA;gBAC5B,CAAC;YACH,CAAC;YAED,gEAAgE;YAChE,gDAAgD;YAChD,EAAE;YACF,+DAA+D;YAC/D,sDAAsD;YACtD,IAAI,UAAU,KAAK,OAAO,EAAE,CAAC,SAAS,EAAE,CAAC;gBACvC,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;oBACjB,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;gBAC7B,CAAC;qBACI,IAAI,UAAU,KAAK,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC;oBAC3C,IAAI,CAAC;wBACH,MAAM,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;wBAC9B,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;4BAChC,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;wBAClC,CAAC;oBACH,CAAC;oBACD,OAAO,GAAQ,EAAE,CAAC;wBAChB,2DAA2D;wBAC3D,gBAAgB;oBAClB,CAAC;gBACH,CAAC;YACH,CAAC;YAED,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;QAC9B,CAAC;QACD,OAAO,GAAQ,EAAE,CAAC;YAChB,IAAI,CAAC;gBACH,IAAI,OAAO,IAAI,UAAU,KAAK,OAAO,EAAE,CAAC,UAAU,EAAE,CAAC;oBACnD,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA;gBACxB,CAAC;YACH,CAAC;YACD,OAAO,UAAe,EAAE,CAAC;gBACvB,IAAI,CAAC,iBAAiB,EAAE,uBAAuB,GAAG,OAAO,CAAC,CAAA;YAC5D,CAAC;YACD,MAAM,GAAG,CAAA;QACX,CAAC;IACH,CAAC;IAGD,QAAQ,CACN,IAAY,EACZ,OAAwB,EACxB,IAAmB,EACnB,MAAe;QAEf,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QACvB,MAAM,IAAI,GAAG,IAAI,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,GAAG,CAAA;QAC/C,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,CAAA;QACpB,MAAM,EAAE,GAAG,WAAW,CAAA;QAEtB,IAAI,QAAQ,KAAK,OAAO,IAAI,EAAE,CAAC;YAC7B,MAAM,GAAG,IAAI,CAAA;YACb,IAAI,GAAG,EAAE,CAAA;QACX,CAAC;aACI,CAAC;YACJ,IAAI,GAAG,IAAI,IAAI,EAAE,CAAA;QACnB,CAAC;QAED,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,KAAK,OAAO,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;QAEnF,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;QAElC,IAAI,QAAQ,KAAK,OAAO,OAAO,IAAI,CAAC,CAAC,OAAc,YAAY,MAAM,CAAC,EAAE,CAAC;YACvE,MAAM,IAAI,KAAK,CAAC,EAAE,GAAG,EAAE,GAAG,IAAI,GAAG,yBAAyB,GAAG,IAAI;gBAC/D,WAAW,GAAG,OAAO,CAAC,CAAA;QAC1B,CAAC;QAED,IAAI,CAAC;YACH,+EAA+E;YAC/E,IAAI,GAAG,GAAG,CAAC,mBAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAA;YAChC,MAAM,QAAQ,GAAG,IAAI,CAAA;YACrB,MAAM,YAAY,GAAG,GAAG,CAAC,mBAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAA;YAChD,MAAM,OAAO,GAAG,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA;YAEvC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;gBACzB,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAA;gBAC5B,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;YAC1D,CAAC;YAED,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,IAAI;gBAC/B,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;QACjD,CAAC;QACD,OAAO,GAAQ,EAAE,CAAC;YAChB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;gBAC1C,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAA;YAC3C,GAAG,CAAC,OAAO,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,GAAG,QAAQ,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,CAAC,OAAO,CAAA;YAClE,MAAM,GAAG,CAAA;QACX,CAAC;IACH,CAAC;IAGD,OAAO,CAAC,IAAY,EAAE,IAAY;QAChC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,CAAA;QAChB,IAAI,KAAK,GAAQ,IAAI,CAAC,KAAK,CAAA;QAC3B,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YAChB,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,CAAA;YAC3B,IAAI,IAAI,KAAK,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC;gBACzC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,aAAa,GAAG,IAAI,CAAC,CAAA;YAC7C,CAAC;iBACI,CAAC;gBACJ,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACpB,CAAC;QACH,CAAC;aACI,CAAC;YACJ,IAAI,CAAC,SAAS,EAAE,gBAAgB,GAAG,IAAI,CAAC,CAAA;QAC1C,CAAC;IACH,CAAC;CACF;QAgFC,WAAW;AA7Eb,SAAS,OAAO,CAAC,IAAS,EAAE,GAAW;IACrC,IAAI,CAAC,IAAI,GAAG,GAAG,CAAA;IACf,IAAI,CAAC,KAAK,GAAG,IAAA,gBAAQ,EAAC,GAAG,CAAC,CAAA;AAC5B,CAAC;AAGD,qEAAqE;AACrE,+CAA+C;AAC/C,EAAE;AACF,oEAAoE;AACpE,0EAA0E;AAC1E,yEAAyE;AACzE,0EAA0E;AAC1E,yEAAyE;AACzE,gBAAgB;AAChB,SAAS,aAAa,CAAC,MAAc,EAAE,IAAY;IACjD,MAAM,GAAG,GAAG,mBAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IAChC,MAAM,IAAI,GAAG,mBAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;IAClC,MAAM,GAAG,GAAG,mBAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IAC9B,MAAM,IAAI,GAAG,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAAA;IAClF,OAAO,GAAG,CAAC,mBAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,CAAC,CAAC,CAAA;AACrD,CAAC;AAGD,yEAAyE;AACzE,qEAAqE;AACrE,qEAAqE;AACrE,sEAAsE;AACtE,EAAE;AACF,wEAAwE;AACxE,oEAAoE;AACpE,kEAAkE;AAClE,wEAAwE;AACxE,iEAAiE;AACjE,SAAS,SAAS,CAAC,IAAS,EAAE,IAAY,EAAE,OAAe;IACzD,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;QACjB,OAAM;IACR,CAAC;IAED,MAAM,QAAQ,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;IAC3C,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,QAAQ,GAAG,OAAO,GAAG,GAAG,GAAG,IAAI;YAC7C,mDAAmD,GAAG,IAAI,CAAC,CAAA;IAC/D,CAAC;AACH,CAAC;AAGD,SAAS,SAAS,CAAC,IAAY,EAAE,QAAgB,EAAE,OAAe;IAChE,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,IAAI,IAAI,IAAI,QAAQ,KAAK,OAAO,IAAI,EAAE,CAAC;QAC3D,MAAM,IAAI,KAAK,CAAC,QAAQ,GAAG,OAAO,GAAG,sBAAsB,GAAG,IAAI,CAAC,CAAA;IACrE,CAAC;IAED,MAAM,UAAU,GAAG,GAAG,CAAC,mBAAI,CAAC,SAAS,CAAC,mBAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAC1D,IAAI,KAAK,GAAG,CAAC,CAAA;IACb,IAAI,SAAS,GAAG,KAAK,CAAA;IACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3C,IAAI,UAAU,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;YAC1B,SAAS,GAAG,KAAK,CAAA;QACnB,CAAC;aACI,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,KAAK,EAAE,CAAA;YACP,SAAS,GAAG,IAAI,CAAA;QAClB,CAAC;IACH,CAAC;IAED,IAAI,QAAQ,GAAG,KAAK,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,OAAO,GAAG,uBAAuB,GAAG,IAAI,CAAC,CAAA;IAC3D,CAAC;AAEH,CAAC"}
1
+ {"version":3,"file":"FileHandler.js","sourceRoot":"","sources":["../../src/build/FileHandler.ts"],"names":[],"mappings":"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"}
@@ -14,24 +14,24 @@ import { Folder } from './cmp/Folder';
14
14
  import { Project } from './cmp/Project';
15
15
  import { List } from './cmp/List';
16
16
  declare const OptionsShape: {
17
- <V>(root?: V | undefined, ctx?: import("shape").Context): V & {
18
- folder: any;
17
+ <V>(root?: V | undefined, ctx?: import("shape").Context): (0 extends 1 & V ? true : false) extends true ? {
18
+ folder: string | undefined;
19
19
  name: {
20
20
  file: {
21
- prefix: any;
22
- suffix: any;
21
+ prefix: string | undefined;
22
+ suffix: string | undefined;
23
23
  };
24
24
  folder: {
25
- prefix: any;
26
- suffix: any;
25
+ prefix: string | undefined;
26
+ suffix: string | undefined;
27
27
  };
28
- exclude: any;
28
+ exclude: string | (string | RegExpConstructor)[] | RegExpConstructor | undefined;
29
29
  };
30
30
  meta: any;
31
31
  fs: any;
32
32
  now: any;
33
33
  log: any;
34
- debug: any;
34
+ debug: string | undefined;
35
35
  exclude: boolean;
36
36
  existing: {
37
37
  txt: {};
@@ -39,37 +39,111 @@ declare const OptionsShape: {
39
39
  };
40
40
  model: any;
41
41
  build: boolean;
42
- mem: any;
43
- vol: any;
42
+ mem: boolean | undefined;
43
+ vol: {} | undefined;
44
44
  cmp: {
45
45
  Copy: {
46
46
  ignore: any[];
47
47
  };
48
48
  };
49
49
  control: {
50
- dryrun: any;
51
- duplicate: any;
52
- version: any;
50
+ dryrun: boolean | undefined;
51
+ duplicate: boolean | undefined;
52
+ version: boolean | undefined;
53
+ };
54
+ } : V extends object ? Omit<V, "build" | "cmp" | "control" | "debug" | "exclude" | "existing" | "folder" | "fs" | "log" | "mem" | "meta" | "model" | "name" | "now" | "vol"> & {
55
+ folder: string | undefined;
56
+ name: {
57
+ file: {
58
+ prefix: string | undefined;
59
+ suffix: string | undefined;
60
+ };
61
+ folder: {
62
+ prefix: string | undefined;
63
+ suffix: string | undefined;
64
+ };
65
+ exclude: string | (string | RegExpConstructor)[] | RegExpConstructor | undefined;
66
+ };
67
+ meta: any;
68
+ fs: any;
69
+ now: any;
70
+ log: any;
71
+ debug: string | undefined;
72
+ exclude: boolean;
73
+ existing: {
74
+ txt: {};
75
+ bin: {};
76
+ };
77
+ model: any;
78
+ build: boolean;
79
+ mem: boolean | undefined;
80
+ vol: {} | undefined;
81
+ cmp: {
82
+ Copy: {
83
+ ignore: any[];
84
+ };
85
+ };
86
+ control: {
87
+ dryrun: boolean | undefined;
88
+ duplicate: boolean | undefined;
89
+ version: boolean | undefined;
90
+ };
91
+ } : {
92
+ folder: string | undefined;
93
+ name: {
94
+ file: {
95
+ prefix: string | undefined;
96
+ suffix: string | undefined;
97
+ };
98
+ folder: {
99
+ prefix: string | undefined;
100
+ suffix: string | undefined;
101
+ };
102
+ exclude: string | (string | RegExpConstructor)[] | RegExpConstructor | undefined;
103
+ };
104
+ meta: any;
105
+ fs: any;
106
+ now: any;
107
+ log: any;
108
+ debug: string | undefined;
109
+ exclude: boolean;
110
+ existing: {
111
+ txt: {};
112
+ bin: {};
113
+ };
114
+ model: any;
115
+ build: boolean;
116
+ mem: boolean | undefined;
117
+ vol: {} | undefined;
118
+ cmp: {
119
+ Copy: {
120
+ ignore: any[];
121
+ };
122
+ };
123
+ control: {
124
+ dryrun: boolean | undefined;
125
+ duplicate: boolean | undefined;
126
+ version: boolean | undefined;
53
127
  };
54
128
  };
55
129
  valid: <V>(root?: V | undefined, ctx?: import("shape").Context) => root is V & {
56
- folder: import("shape").Node<StringConstructor>;
130
+ folder: string | undefined;
57
131
  name: {
58
132
  file: {
59
- prefix: import("shape").Node<StringConstructor>;
60
- suffix: import("shape").Node<StringConstructor>;
133
+ prefix: string | undefined;
134
+ suffix: string | undefined;
61
135
  };
62
136
  folder: {
63
- prefix: import("shape").Node<StringConstructor>;
64
- suffix: import("shape").Node<StringConstructor>;
137
+ prefix: string | undefined;
138
+ suffix: string | undefined;
65
139
  };
66
- exclude: import("shape").Node<unknown>;
140
+ exclude: string | (string | RegExpConstructor)[] | RegExpConstructor | undefined;
67
141
  };
68
142
  meta: any;
69
143
  fs: any;
70
144
  now: any;
71
145
  log: any;
72
- debug: import("shape").Node<string>;
146
+ debug: string | undefined;
73
147
  exclude: boolean;
74
148
  existing: {
75
149
  txt: {};
@@ -77,17 +151,17 @@ declare const OptionsShape: {
77
151
  };
78
152
  model: any;
79
153
  build: boolean;
80
- mem: import("shape").Node<BooleanConstructor>;
81
- vol: import("shape").Node<{}>;
154
+ mem: boolean | undefined;
155
+ vol: {} | undefined;
82
156
  cmp: {
83
157
  Copy: {
84
158
  ignore: any[];
85
159
  };
86
160
  };
87
161
  control: {
88
- dryrun: import("shape").Node<BooleanConstructor>;
89
- duplicate: import("shape").Node<BooleanConstructor>;
90
- version: import("shape").Node<BooleanConstructor>;
162
+ dryrun: boolean | undefined;
163
+ duplicate: boolean | undefined;
164
+ version: boolean | undefined;
91
165
  };
92
166
  };
93
167
  match: (root?: any, ctx?: import("shape").Context) => boolean;
@@ -131,41 +205,41 @@ declare const OptionsShape: {
131
205
  }[];
132
206
  spec: () => any;
133
207
  node: () => import("shape").Node<{
134
- folder: import("shape").Node<StringConstructor>;
135
- name: {
208
+ readonly folder: import("shape").Node<StringConstructor | undefined>;
209
+ readonly name: {
136
210
  file: {
137
- prefix: import("shape").Node<StringConstructor>;
138
- suffix: import("shape").Node<StringConstructor>;
211
+ prefix: import("shape").Node<StringConstructor | undefined>;
212
+ suffix: import("shape").Node<StringConstructor | undefined>;
139
213
  };
140
214
  folder: {
141
- prefix: import("shape").Node<StringConstructor>;
142
- suffix: import("shape").Node<StringConstructor>;
215
+ prefix: import("shape").Node<StringConstructor | undefined>;
216
+ suffix: import("shape").Node<StringConstructor | undefined>;
143
217
  };
144
- exclude: import("shape").Node<unknown>;
218
+ exclude: import("shape").Node<RegExpConstructor | StringConstructor | readonly [import("shape").Node<RegExpConstructor | StringConstructor>] | undefined>;
145
219
  };
146
- meta: any;
147
- fs: any;
148
- now: any;
149
- log: any;
150
- debug: import("shape").Node<string>;
151
- exclude: boolean;
152
- existing: {
220
+ readonly meta: any;
221
+ readonly fs: any;
222
+ readonly now: any;
223
+ readonly log: any;
224
+ readonly debug: import("shape").Node<string | undefined>;
225
+ readonly exclude: false;
226
+ readonly existing: {
153
227
  txt: {};
154
228
  bin: {};
155
229
  };
156
- model: any;
157
- build: boolean;
158
- mem: import("shape").Node<BooleanConstructor>;
159
- vol: import("shape").Node<{}>;
160
- cmp: {
230
+ readonly model: any;
231
+ readonly build: true;
232
+ readonly mem: import("shape").Node<BooleanConstructor | undefined>;
233
+ readonly vol: import("shape").Node<{} | undefined>;
234
+ readonly cmp: {
161
235
  Copy: {
162
236
  ignore: any[];
163
237
  };
164
238
  };
165
- control: {
166
- dryrun: import("shape").Node<BooleanConstructor>;
167
- duplicate: import("shape").Node<BooleanConstructor>;
168
- version: import("shape").Node<BooleanConstructor>;
239
+ readonly control: {
240
+ dryrun: import("shape").Node<BooleanConstructor | undefined>;
241
+ duplicate: import("shape").Node<BooleanConstructor | undefined>;
242
+ version: import("shape").Node<BooleanConstructor | undefined>;
169
243
  };
170
244
  }>;
171
245
  stringify: (...rest: any[]) => string;
@@ -178,7 +252,33 @@ declare const OptionsShape: {
178
252
  };
179
253
  };
180
254
  declare const ExistingShape: {
181
- <V>(root?: V | undefined, ctx?: import("shape").Context): V & {
255
+ <V>(root?: V | undefined, ctx?: import("shape").Context): (0 extends 1 & V ? true : false) extends true ? {
256
+ txt: {
257
+ write: boolean;
258
+ preserve: boolean;
259
+ present: boolean;
260
+ diff: boolean;
261
+ merge: boolean;
262
+ };
263
+ bin: {
264
+ write: boolean;
265
+ preserve: boolean;
266
+ present: boolean;
267
+ };
268
+ } : V extends object ? Omit<V, "bin" | "txt"> & {
269
+ txt: {
270
+ write: boolean;
271
+ preserve: boolean;
272
+ present: boolean;
273
+ diff: boolean;
274
+ merge: boolean;
275
+ };
276
+ bin: {
277
+ write: boolean;
278
+ preserve: boolean;
279
+ present: boolean;
280
+ };
281
+ } : {
182
282
  txt: {
183
283
  write: boolean;
184
284
  preserve: boolean;
@@ -247,17 +347,17 @@ declare const ExistingShape: {
247
347
  }[];
248
348
  spec: () => any;
249
349
  node: () => import("shape").Node<{
250
- txt: {
251
- write: boolean;
252
- preserve: boolean;
253
- present: boolean;
254
- diff: boolean;
255
- merge: boolean;
350
+ readonly txt: {
351
+ readonly write: true;
352
+ readonly preserve: false;
353
+ readonly present: false;
354
+ readonly diff: false;
355
+ readonly merge: false;
256
356
  };
257
- bin: {
258
- write: boolean;
259
- preserve: boolean;
260
- present: boolean;
357
+ readonly bin: {
358
+ readonly write: true;
359
+ readonly preserve: false;
360
+ readonly present: false;
261
361
  };
262
362
  }>;
263
363
  stringify: (...rest: any[]) => string;
package/dist/jostraca.js CHANGED
@@ -183,6 +183,51 @@ const ExistingShape = (0, shape_1.Shape)({
183
183
  // No merge of binary files
184
184
  }
185
185
  }, { name: 'Jostraca Options (`existing` property)' });
186
+ // Copy an options object so shape's injection cannot reach the caller's own
187
+ // objects, and no further than that.
188
+ //
189
+ // The injection is RECURSIVE, so this has to be: `{cmp: {Copy: {}}}` had its
190
+ // `Copy` object handed straight through by a one-level copy, and shape wrote
191
+ // `ignore: []` into the caller's object two levels down. Measuring `existing`
192
+ // and `meta` and concluding one level was enough is how that was missed.
193
+ //
194
+ // What is NOT copied, and why:
195
+ //
196
+ // - `model` at the top level. It is the caller's DATA rather than option
197
+ // structure -- every component reads it through `ctx$.model` -- so
198
+ // cloning it per `generate` would change identity semantics and copy an
199
+ // arbitrarily large object to guard against an injection that does not
200
+ // touch it.
201
+ // - Anything carrying a constructor of its own: Buffer, RegExp, Date, a
202
+ // class instance. Copying their enumerable properties is not copying
203
+ // them, which is the rule `deep` follows for the same reason. A
204
+ // `cmp.Copy.ignore` entry is a RegExp, and must stay the same RegExp.
205
+ //
206
+ // `seen` keeps a shared reference shared and makes a cyclic options object
207
+ // terminate rather than overflow the stack.
208
+ function copyOptions(opts_in) {
209
+ return copyOptionTree(opts_in, new WeakMap(), true);
210
+ }
211
+ function copyOptionTree(val, seen, top) {
212
+ if (null == val || 'object' !== typeof val) {
213
+ return val;
214
+ }
215
+ const isArray = Array.isArray(val);
216
+ if (!isArray && Object !== val.constructor) {
217
+ return val;
218
+ }
219
+ const already = seen.get(val);
220
+ if (undefined !== already) {
221
+ return already;
222
+ }
223
+ const out = isArray ? [] : {};
224
+ seen.set(val, out);
225
+ for (const key of Object.keys(val)) {
226
+ out[key] = (top && 'model' === key) ? val[key] :
227
+ copyOptionTree(val[key], seen, false);
228
+ }
229
+ return out;
230
+ }
186
231
  const sysFs = () => Fs;
187
232
  // Applied once, beneath both the global and the per-call `control`, so that
188
233
  // precedence runs defaults < global < per-call. These are NOT declared as
@@ -208,7 +253,19 @@ function Jostraca(gopts_in) {
208
253
  // filesystem at all.
209
254
  const gGetFs = gOpts.fs || (gUseMemFs ? get_gMemFs : undefined);
210
255
  async function generate(opts_in, root) {
211
- const opts = OptionsShape(opts_in);
256
+ // Validate a COPY. `OptionsShape` injects its defaults into the object
257
+ // it is handed and returns that same object, so validating the caller's
258
+ // own options wrote `build`, `cmp`, `control`, `exclude` and `name`
259
+ // into it -- and `bin` into an `existing` they passed in. A caller who
260
+ // reuses one options object across two `generate` calls was not passing
261
+ // what they thought on the second.
262
+ //
263
+ // The injection itself stays: DEPENDENCY_PLAN.md 3.2 and PARITY_PLAN.md
264
+ // 1.3 are explicit that a validator which checks without injecting
265
+ // crashes on `existing` and silently produces a wrong output tree on
266
+ // `control`. Change where it lands, not whether it happens. Go has never
267
+ // had this: its Options is a value struct. See PARITY_PLAN.md 2.3.
268
+ const opts = OptionsShape(copyOptions(opts_in));
212
269
  // Parameters to `generate` override any global options.
213
270
  const useMemFS = null == opts.mem ? gUseMemFs : !!opts.mem;
214
271
  const vol = null == opts.vol ? gVol : (0, basic_1.deep)({}, gVol, opts.vol);