dexbot 1.5.0 → 1.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (71) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/analysis/ama_fitting/package.json +1 -1
  3. package/analysis/trend_detection/package.json +1 -1
  4. package/claw/package.json +1 -1
  5. package/claw/runtimes/openclaw-plugin/openclaw.plugin.json +1 -1
  6. package/claw/runtimes/openclaw-plugin/package.json +1 -1
  7. package/claw/tests/test_claw_mcp_transport.ts +2 -2
  8. package/dist/modules/account_orders.d.ts +7 -1
  9. package/dist/modules/account_orders.d.ts.map +1 -1
  10. package/dist/modules/account_orders.js +34 -1
  11. package/dist/modules/account_orders.js.map +1 -1
  12. package/dist/modules/constants.d.ts +2 -0
  13. package/dist/modules/constants.d.ts.map +1 -1
  14. package/dist/modules/constants.js +12 -0
  15. package/dist/modules/constants.js.map +1 -1
  16. package/dist/modules/dexbot_class.d.ts +1 -0
  17. package/dist/modules/dexbot_class.d.ts.map +1 -1
  18. package/dist/modules/dexbot_cow_runtime.d.ts +18 -1
  19. package/dist/modules/dexbot_cow_runtime.d.ts.map +1 -1
  20. package/dist/modules/dexbot_cow_runtime.js +223 -32
  21. package/dist/modules/dexbot_cow_runtime.js.map +1 -1
  22. package/dist/modules/dexbot_startup_runtime.d.ts +1 -0
  23. package/dist/modules/dexbot_startup_runtime.d.ts.map +1 -1
  24. package/dist/modules/dexbot_startup_runtime.js +12 -1
  25. package/dist/modules/dexbot_startup_runtime.js.map +1 -1
  26. package/dist/modules/dexbot_state_recovery.d.ts.map +1 -1
  27. package/dist/modules/dexbot_state_recovery.js +7 -0
  28. package/dist/modules/dexbot_state_recovery.js.map +1 -1
  29. package/dist/modules/order/accounting.d.ts +34 -0
  30. package/dist/modules/order/accounting.d.ts.map +1 -1
  31. package/dist/modules/order/accounting.js +182 -5
  32. package/dist/modules/order/accounting.js.map +1 -1
  33. package/dist/modules/order/grid.d.ts.map +1 -1
  34. package/dist/modules/order/grid.js +21 -16
  35. package/dist/modules/order/grid.js.map +1 -1
  36. package/dist/modules/order/grid_reconcile_internal.d.ts.map +1 -1
  37. package/dist/modules/order/grid_reconcile_internal.js +72 -0
  38. package/dist/modules/order/grid_reconcile_internal.js.map +1 -1
  39. package/dist/modules/order/manager.d.ts +41 -1
  40. package/dist/modules/order/manager.d.ts.map +1 -1
  41. package/dist/modules/order/manager.js +144 -15
  42. package/dist/modules/order/manager.js.map +1 -1
  43. package/dist/modules/order/strategy.d.ts.map +1 -1
  44. package/dist/modules/order/strategy.js +17 -2
  45. package/dist/modules/order/strategy.js.map +1 -1
  46. package/dist/modules/order/sync_engine.d.ts.map +1 -1
  47. package/dist/modules/order/sync_engine.js +58 -8
  48. package/dist/modules/order/sync_engine.js.map +1 -1
  49. package/dist/modules/order/utils/math.d.ts +42 -1
  50. package/dist/modules/order/utils/math.d.ts.map +1 -1
  51. package/dist/modules/order/utils/math.js +91 -1
  52. package/dist/modules/order/utils/math.js.map +1 -1
  53. package/dist/modules/order/utils/order.d.ts +52 -1
  54. package/dist/modules/order/utils/order.d.ts.map +1 -1
  55. package/dist/modules/order/utils/order.js +137 -7
  56. package/dist/modules/order/utils/order.js.map +1 -1
  57. package/dist/modules/order/utils/system.d.ts +14 -0
  58. package/dist/modules/order/utils/system.d.ts.map +1 -1
  59. package/dist/modules/order/utils/system.js +51 -3
  60. package/dist/modules/order/utils/system.js.map +1 -1
  61. package/dist/modules/order/utils/validate.d.ts +29 -2
  62. package/dist/modules/order/utils/validate.d.ts.map +1 -1
  63. package/dist/modules/order/utils/validate.js +165 -10
  64. package/dist/modules/order/utils/validate.js.map +1 -1
  65. package/docs/DEXBOT_COMPARISON.md +3 -3
  66. package/docs/EVOLUTION.md +6 -5
  67. package/docs/FUND_MOVEMENT_AND_ACCOUNTING.md +3 -1
  68. package/docs/GRID_RECONCILE.md +1 -0
  69. package/docs/LOGGING.md +3 -0
  70. package/docs/README.md +2 -2
  71. package/package.json +1 -1
@@ -101,6 +101,30 @@ declare function checkFundDrift(orders: Map<string, any>, accountTotals: any, as
101
101
  allowedDriftSell: number;
102
102
  reason: string | null;
103
103
  };
104
+ /**
105
+ * Stamp a rotation UPDATE as a gap-evacuation when plan-build geometry says
106
+ * it moves a live order OUT of the gap band onto its rail. The stamp freezes
107
+ * the boundary + gap width AT PLAN-BUILD TIME (B-stamp) so the COW executor's
108
+ * LAST-FILL guard validates against the geometry the plan was built for —
109
+ * plans can otherwise validate against a later-committed boundary and the
110
+ * evacuation gets misjudged. Stamping requires BOTH:
111
+ * - geometry: source slot index strictly inside the gap band, destination on
112
+ * the same side's rail (pure parseSlotIndex vs frozen boundary/gapSlots —
113
+ * never the stored slot type),
114
+ * - allowance: isEvacuationRotationAllowed(oldPrice, oldSize, newPrice,
115
+ * newSize, type) — outward repricing with bit-exact non-growing size.
116
+ * Anything else stays unstamped and obeys the guard normally (safe default).
117
+ *
118
+ * @param {Object} action - Rotation UPDATE action being built
119
+ * @param {Object} sourceMaster - Live master-grid order for the source slot
120
+ * @param {number|string} destPrice - Destination (hole) price
121
+ * @param {number} destSize - Destination (clamped) size
122
+ * @param {string} type - ORDER_TYPES.BUY or SELL
123
+ * @param {number} frozenBoundary - Plan-build boundary index
124
+ * @param {number} frozenGapSlots - Plan-build gap slot count
125
+ * @returns {Object} The action, stamped when it qualifies
126
+ */
127
+ declare function stampGapEvacuationRotation(action: any, sourceMaster: any, destPrice: any, destSize: any, type: any, frozenBoundary: any, frozenGapSlots: any, assets?: any): any;
104
128
  /**
105
129
  * Reconcile target grid against master state
106
130
  * @param {Map} masterGrid - Current master grid
@@ -113,6 +137,7 @@ declare function reconcileGrid(masterGrid: any, targetGrid: any, targetBoundary:
113
137
  actions: any[];
114
138
  aborted: boolean;
115
139
  boundaryIdx: any;
140
+ evacReady: any[];
116
141
  summary: {
117
142
  total: any;
118
143
  creates: any;
@@ -140,11 +165,13 @@ declare function hasExecutableActions(rebalanceResult: any): boolean;
140
165
  /**
141
166
  * Validate that CREATE actions target slots that are not already occupied on-chain
142
167
  * and that no CREATE price collides with an existing placed order or unmatched
143
- * on-chain order. Checks four layers:
168
+ * on-chain order. Checks five layers:
144
169
  * 1. Slot occupancy — target grid slot already has a placed order
145
170
  * 2. Master grid slot collision — same slotId already placed (priceSlotEqual)
146
171
  * 3. Chain orphan slot collision — chain order's nearest slotId equals target slotId
147
172
  * 4. Same-batch duplicate slotId — two CREATEs target same slotId
173
+ * 5. Same-batch bit-identical duplicate price — two CREATEs on different
174
+ * target slots at the exact same price (same side)
148
175
  *
149
176
  * Cancel and rotation-released slots are considered free.
150
177
  *
@@ -243,5 +270,5 @@ declare function evaluateCommit(workingGrid: any, options?: any): {
243
270
  reason?: undefined;
244
271
  level?: undefined;
245
272
  };
246
- export { validateOrder, validateGridForPersistence, validateWorkingGridFunds, checkFundDrift, reconcileGrid, optimizeRebalanceActions, hasExecutableActions, validateCreateTargetSlots, hasActionForOrder, removeActionsForOrder, projectTargetToWorkingGrid, buildStateUpdates, buildAbortedResult, buildSuccessResult, evaluateCommit };
273
+ export { validateOrder, validateGridForPersistence, validateWorkingGridFunds, checkFundDrift, reconcileGrid, optimizeRebalanceActions, hasExecutableActions, validateCreateTargetSlots, hasActionForOrder, removeActionsForOrder, projectTargetToWorkingGrid, buildStateUpdates, buildAbortedResult, buildSuccessResult, evaluateCommit, stampGapEvacuationRotation };
247
274
  //# sourceMappingURL=validate.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../../../modules/order/utils/validate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAqCH;;;;;;GAMG;AACH,iBAAS,aAAa,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,GAAE,GAAU,EAAE,OAAO,GAAE,GAAgB;;;;;EAiFjF;AAED;;;;;GAKG;AACH,iBAAS,0BAA0B,CAAC,MAAM,EAAE,GAAG,EAAE,aAAa,EAAE,GAAG;;;;;;EAkBlE;AAsCD;;;;;;;GAOG;AACH,iBAAS,wBAAwB,CAAC,WAAW,EAAE,GAAG,EAAE,cAAc,EAAE,GAAG,EAAE,UAAU,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,EAAE,MAAM,GAAE,GAAU;;;;;;;;;;;;;;EAoDhI;AAED;;;;;;GAMG;AACH,iBAAS,cAAc,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,GAAE,GAAU,EAAE,UAAU,GAAE,GAAU;;;;;;;;;;;;;;EAmD/G;AA+CD;;;;;;;GAOG;AACH,iBAAS,aAAa,CAAC,UAAU,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,cAAc,EAAE,GAAG,EAAE,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM;;;;;;;;;;EAqK9G;AAED;;;;;;;;GAQG;AACH,iBAAS,wBAAwB,CAAC,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,SA6EjG;AAgBD;;;;;GAKG;AACH,iBAAS,oBAAoB,CAAC,eAAe,EAAE,GAAG,WAGjD;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,iBAAS,yBAAyB,CAAC,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAE,GAAU,EAAE,oBAAoB,GAAE,GAAG,EAAO;;;;EAqGlH;AAkBD;;;;;;;GAOG;AACH,iBAAS,iBAAiB,CAAC,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,WAMtE;AAED;;;;;;;GAOG;AACH,iBAAS,qBAAqB,CAAC,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,UAW1E;AA4DD;;;;;;;GAOG;AACH,iBAAS,0BAA0B,CAAC,WAAW,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,QAkEvG;AAED;;;;;GAKG;AACH,iBAAS,iBAAiB,CAAC,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,SAyBvD;AAED;;;;GAIG;AACH,iBAAS,kBAAkB,CAAC,MAAM,EAAE,GAAG;;;;;;;;;;EAYtC;AAED;;;;GAIG;AACH,iBAAS,kBAAkB,CAAC,EACxB,OAAO,EACP,YAAY,EACZ,WAAW,EACX,eAAe,EACf,gBAAgB,EACnB,EAAE,GAAG;;;;;;;;;EAWL;AAED;;;;;GAKG;AACH,iBAAS,cAAc,CAAC,WAAW,EAAE,GAAG,EAAE,OAAO,GAAE,GAAQ;;;;;;;;EAgE1D;AAMD,OAAO,EAAE,aAAa,EAAE,0BAA0B,EAAE,wBAAwB,EAAE,cAAc,EAAE,aAAa,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,0BAA0B,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,cAAc,EAAE,CAAA"}
1
+ {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../../../modules/order/utils/validate.ts"],"names":[],"mappings":"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"}
@@ -35,9 +35,9 @@
35
35
  // ===============================================================================
36
36
  import * as Format from '../format.js';
37
37
  import { ORDER_STATES, ORDER_TYPES, COW_ACTIONS, GRID_LIMITS } from '../../constants.js';
38
- import { floatToBlockchainInt, blockchainToFloat, getPrecisionSlack, getDoubleDustThreshold, clamp } from './math.js';
38
+ import { floatToBlockchainInt, blockchainToFloat, getPrecisionSlack, getPrecisionByOrderType, getDoubleDustThreshold, getSellStartIdx, isSlotIndexInGapBand, isEvacuationRotationAllowed, clamp } from './math.js';
39
39
  import { parseSlotIndex } from './slot.js';
40
- import { isOrderOnChain, isPhantomOrder, convertToSpreadPlaceholder } from './order.js';
40
+ import { isOrderOnChain, isPhantomOrder, convertToSpreadPlaceholder, detectGapEvacuationCandidates, updateGapEvacuationStreaks } from './order.js';
41
41
  const { isValidNumber, toFiniteNumber } = Format;
42
42
  // Pre-computed valid sets
43
43
  const VALID_ORDER_STATES = new Set(Object.values(ORDER_STATES));
@@ -85,6 +85,12 @@ function validateOrder(order, oldOrder = null, context = 'validate') {
85
85
  });
86
86
  normalizedOrder.size = 0;
87
87
  }
88
+ // RAIL-HOLE PRESERVATION (Phase 2): a sized BUY/SELL VIRTUAL slot with no
89
+ // orderId is a rail-typed hole (rotation source, fill-consumed rail slot),
90
+ // NOT a spread placeholder — it must pass through untouched. Only SPREAD
91
+ // is size-normalized above; the phantom and ILLEGAL_SPREAD_STATE checks
92
+ // below fire solely for on-chain states, so rail holes are never
93
+ // zeroed, retyped, or rejected here. Locked by test_gap_evacuation.
88
94
  const isOnChainState = (normalizedOrder.state === ORDER_STATES.ACTIVE ||
89
95
  normalizedOrder.state === ORDER_STATES.PARTIAL);
90
96
  if (normalizedOrder.type === ORDER_TYPES.SPREAD && isOnChainState) {
@@ -325,6 +331,61 @@ function clampRotationSizeForPartial(surplusMaster, holeSize, logger = null, hol
325
331
  }
326
332
  return target;
327
333
  }
334
+ /**
335
+ * Stamp a rotation UPDATE as a gap-evacuation when plan-build geometry says
336
+ * it moves a live order OUT of the gap band onto its rail. The stamp freezes
337
+ * the boundary + gap width AT PLAN-BUILD TIME (B-stamp) so the COW executor's
338
+ * LAST-FILL guard validates against the geometry the plan was built for —
339
+ * plans can otherwise validate against a later-committed boundary and the
340
+ * evacuation gets misjudged. Stamping requires BOTH:
341
+ * - geometry: source slot index strictly inside the gap band, destination on
342
+ * the same side's rail (pure parseSlotIndex vs frozen boundary/gapSlots —
343
+ * never the stored slot type),
344
+ * - allowance: isEvacuationRotationAllowed(oldPrice, oldSize, newPrice,
345
+ * newSize, type) — outward repricing with bit-exact non-growing size.
346
+ * Anything else stays unstamped and obeys the guard normally (safe default).
347
+ *
348
+ * @param {Object} action - Rotation UPDATE action being built
349
+ * @param {Object} sourceMaster - Live master-grid order for the source slot
350
+ * @param {number|string} destPrice - Destination (hole) price
351
+ * @param {number} destSize - Destination (clamped) size
352
+ * @param {string} type - ORDER_TYPES.BUY or SELL
353
+ * @param {number} frozenBoundary - Plan-build boundary index
354
+ * @param {number} frozenGapSlots - Plan-build gap slot count
355
+ * @returns {Object} The action, stamped when it qualifies
356
+ */
357
+ function stampGapEvacuationRotation(action, sourceMaster, destPrice, destSize, type, frozenBoundary, frozenGapSlots, assets = null) {
358
+ const b = Number(frozenBoundary);
359
+ const g = Number(frozenGapSlots);
360
+ if (!Number.isFinite(b) || !Number.isFinite(g) || g < 0)
361
+ return action;
362
+ const srcIdx = parseSlotIndex(sourceMaster?.id ?? action?.id);
363
+ const dstIdx = parseSlotIndex(action?.newGridId);
364
+ if (srcIdx === null || srcIdx === undefined || dstIdx === null || dstIdx === undefined)
365
+ return action;
366
+ if (!isSlotIndexInGapBand(srcIdx, b, g))
367
+ return action;
368
+ if (isSlotIndexInGapBand(dstIdx, b, g))
369
+ return action;
370
+ const sellStartIdx = getSellStartIdx(b, g);
371
+ const dstInRail = type === ORDER_TYPES.SELL ? Number(dstIdx) >= sellStartIdx : Number(dstIdx) <= b;
372
+ if (!dstInRail)
373
+ return action;
374
+ // Bit-exact size check with the side's on-chain precision (mirrors the
375
+ // live unstamped probe in dexbot_cow_runtime) — a 1-satoshi size growth
376
+ // must be refused at stamp time, not just at execution.
377
+ let stampPrecision = null;
378
+ try {
379
+ stampPrecision = assets ? getPrecisionByOrderType(assets, type) : null;
380
+ }
381
+ catch {
382
+ stampPrecision = null;
383
+ }
384
+ const check = isEvacuationRotationAllowed(sourceMaster?.price, sourceMaster?.size, destPrice, destSize, type, stampPrecision);
385
+ if (!check.allowed)
386
+ return action;
387
+ return { ...action, origin: 'gap-evacuation', evacBoundary: b, evacGapSlots: Math.floor(g) };
388
+ }
328
389
  /**
329
390
  * Reconcile target grid against master state
330
391
  * @param {Map} masterGrid - Current master grid
@@ -335,6 +396,12 @@ function clampRotationSizeForPartial(surplusMaster, holeSize, logger = null, hol
335
396
  */
336
397
  function reconcileGrid(masterGrid, targetGrid, targetBoundary, options = {}) {
337
398
  const { logger = null, dustThresholdPercent = GRID_LIMITS.PARTIAL_DUST_THRESHOLD_PERCENTAGE } = options;
399
+ // B-stamp inputs for gap-evacuation rotation stamping (frozen at
400
+ // plan-build): callers pass the geometry this plan was built for. Absent
401
+ // or non-finite => no stamping (guarded default, never fail-open).
402
+ const planGapSlots = Number(options?.gapSlots);
403
+ const hasPlanGeometry = Number.isFinite(planGapSlots) && planGapSlots >= 0;
404
+ const evacAssets = options?.assets ?? null;
338
405
  const actions = [];
339
406
  const surplusesBuy = [];
340
407
  const surplusesSell = [];
@@ -451,16 +518,25 @@ function reconcileGrid(masterGrid, targetGrid, targetBoundary, options = {}) {
451
518
  for (let i = 0; i < rotationCount; i++) {
452
519
  const surplus = surpluses[i];
453
520
  const hole = healthyHoles[i];
454
- actions.push({
521
+ const clampedSize = clampRotationSizeForPartial(surplus.master, hole.order.size, logger, hole.id);
522
+ let rotation = {
455
523
  type: COW_ACTIONS.UPDATE,
456
524
  id: surplus.id,
457
525
  orderId: surplus.master.orderId,
458
526
  newGridId: hole.id,
459
- newSize: clampRotationSizeForPartial(surplus.master, hole.order.size, logger, hole.id),
527
+ newSize: clampedSize,
460
528
  newPrice: hole.order.price,
461
529
  order: hole.order,
462
530
  isRotation: true
463
- });
531
+ };
532
+ // Gap-evacuation B-stamp (plan-build frozen boundary): a surplus
533
+ // stranded in the gap band rotating onto its rail bypasses the
534
+ // LAST-FILL guard at execution — the rotation reduces the
535
+ // violation surface instead of adding exposure.
536
+ if (hasPlanGeometry) {
537
+ rotation = stampGapEvacuationRotation(rotation, surplus.master, hole.order.price, clampedSize, surplus.master?.type, validatedBoundary, planGapSlots, evacAssets);
538
+ }
539
+ actions.push(rotation);
464
540
  }
465
541
  for (let i = rotationCount; i < healthyHoles.length; i++) {
466
542
  actions.push({ type: COW_ACTIONS.CREATE, id: healthyHoles[i].id, order: healthyHoles[i].order });
@@ -475,10 +551,28 @@ function reconcileGrid(masterGrid, targetGrid, targetBoundary, options = {}) {
475
551
  actions.push({ type: COW_ACTIONS.CANCEL, id, orderId: masterOrder.orderId, reason: 'orphan-slot' });
476
552
  }
477
553
  }
554
+ // Phase 3: tick the per-slot gap-evacuation streak counter when the
555
+ // caller supplies a Map (in-memory on the manager; resets on restart).
556
+ // Detection is geometry-only (parse slot idx vs frozen boundary/gapSlots).
557
+ let evacReady = [];
558
+ try {
559
+ if (options?.evacStreaks instanceof Map && hasPlanGeometry) {
560
+ const candidates = detectGapEvacuationCandidates(masterGrid, validatedBoundary, planGapSlots);
561
+ const tick = updateGapEvacuationStreaks(options.evacStreaks, candidates);
562
+ evacReady = tick.ready;
563
+ if (evacReady.length > 0 && logger) {
564
+ logger(`[GAP-EVAC] ${evacReady.length} stuck in-band order(s) ` +
565
+ `(boundary ${validatedBoundary}, gap ${planGapSlots}): ` +
566
+ evacReady.map((c) => `${c.id}(x${tick.streaks[c.id] ?? '?'})`).join(', '), 'warn');
567
+ }
568
+ }
569
+ }
570
+ catch { /* streak tracking is best-effort */ }
478
571
  return {
479
572
  actions,
480
573
  aborted: false,
481
574
  boundaryIdx: validatedBoundary,
575
+ evacReady,
482
576
  summary: summarizeActions(actions)
483
577
  };
484
578
  }
@@ -495,6 +589,13 @@ function optimizeRebalanceActions(actions, masterGrid, options = {}) {
495
589
  if (!Array.isArray(actions) || actions.length === 0)
496
590
  return [];
497
591
  const { logger = null } = options;
592
+ // B-stamp inputs (same contract as reconcileGrid): frozen plan-build
593
+ // boundary + gap width for gap-evacuation rotation stamping. Absent =>
594
+ // no stamping, guarded default.
595
+ const optBoundary = Number(options?.boundaryIdx);
596
+ const optGapSlots = Number(options?.gapSlots);
597
+ const hasOptGeometry = Number.isFinite(optBoundary) && Number.isFinite(optGapSlots) && optGapSlots >= 0;
598
+ const optAssets = options?.assets ?? null;
498
599
  const creates = [];
499
600
  const cancels = [];
500
601
  const passthrough = [];
@@ -543,16 +644,21 @@ function optimizeRebalanceActions(actions, masterGrid, options = {}) {
543
644
  continue;
544
645
  }
545
646
  const createAction = remainingCreates.splice(bestIdx, 1)[0];
546
- optimized.push({
647
+ const clampedSize = clampRotationSizeForPartial(masterOrder, toFiniteNumber(createAction?.order?.size), logger, createAction.id);
648
+ let rotation = {
547
649
  type: COW_ACTIONS.UPDATE,
548
650
  id: cancelAction.id,
549
651
  orderId: cancelAction.orderId,
550
652
  newGridId: createAction.id,
551
- newSize: clampRotationSizeForPartial(masterOrder, toFiniteNumber(createAction?.order?.size), logger, createAction.id),
653
+ newSize: clampedSize,
552
654
  newPrice: toFiniteNumber(createAction?.order?.price),
553
655
  order: createAction.order,
554
656
  isRotation: true
555
- });
657
+ };
658
+ if (hasOptGeometry) {
659
+ rotation = stampGapEvacuationRotation(rotation, masterOrder, toFiniteNumber(createAction?.order?.price), clampedSize, cancelType, optBoundary, optGapSlots, optAssets);
660
+ }
661
+ optimized.push(rotation);
556
662
  }
557
663
  for (const createAction of remainingCreates) {
558
664
  optimized.push(createAction);
@@ -585,11 +691,13 @@ function hasExecutableActions(rebalanceResult) {
585
691
  /**
586
692
  * Validate that CREATE actions target slots that are not already occupied on-chain
587
693
  * and that no CREATE price collides with an existing placed order or unmatched
588
- * on-chain order. Checks four layers:
694
+ * on-chain order. Checks five layers:
589
695
  * 1. Slot occupancy — target grid slot already has a placed order
590
696
  * 2. Master grid slot collision — same slotId already placed (priceSlotEqual)
591
697
  * 3. Chain orphan slot collision — chain order's nearest slotId equals target slotId
592
698
  * 4. Same-batch duplicate slotId — two CREATEs target same slotId
699
+ * 5. Same-batch bit-identical duplicate price — two CREATEs on different
700
+ * target slots at the exact same price (same side)
593
701
  *
594
702
  * Cancel and rotation-released slots are considered free.
595
703
  *
@@ -698,6 +806,53 @@ function validateCreateTargetSlots(actions, orders, _assets = null, chainOrderCa
698
806
  else
699
807
  seen.add(entry.targetId);
700
808
  }
809
+ // Same-batch bit-identical duplicate price across DIFFERENT target slots.
810
+ // The genesis-frozen slot mapping gives every slot a distinct price
811
+ // level, so two CREATEs at the exact same price on different slots
812
+ // indicate a degenerate plan (production incident 2026-08-29: several
813
+ // slots planned at one price; every batch was filtered down to a
814
+ // single op and the grid rebuild crawled at one placement per cycle).
815
+ // The tolerance-based price-collision check that caught this class was
816
+ // removed with the slot-based rewrite; this exact-equality check
817
+ // restores the protection without tolerance false-positives. First
818
+ // target per (type, price) wins; later duplicates are skipped by the
819
+ // caller via violatingTargetIds.
820
+ const priceOwner = new Map();
821
+ for (const entry of createEntries) {
822
+ const priceNum = Number(entry.price);
823
+ if (!Number.isFinite(priceNum))
824
+ continue;
825
+ // Key on the on-chain integer repr when the side precision is
826
+ // known (bit-exact: prices that quantize to the same chain int
827
+ // ARE the same price on the DEX); float fallback preserves the
828
+ // old behavior for callers without assets context.
829
+ let key;
830
+ let sidePrecision = null;
831
+ try {
832
+ sidePrecision = _assets ? getPrecisionByOrderType(_assets, entry.type) : null;
833
+ }
834
+ catch {
835
+ sidePrecision = null;
836
+ }
837
+ if (Number.isFinite(Number(sidePrecision)) && Number(sidePrecision) > 0) {
838
+ try {
839
+ key = `${String(entry.type)}:i${floatToBlockchainInt(priceNum, Number(sidePrecision))}`;
840
+ }
841
+ catch {
842
+ key = `${String(entry.type)}:${priceNum}`;
843
+ }
844
+ }
845
+ else {
846
+ key = `${String(entry.type)}:${priceNum}`;
847
+ }
848
+ const owner = priceOwner.get(key);
849
+ if (owner === undefined) {
850
+ priceOwner.set(key, entry.targetId);
851
+ }
852
+ else if (owner !== entry.targetId) {
853
+ violations.push({ targetId: entry.targetId, currentOrderId: null, currentType: entry.type, currentState: 'CREATE', reason: 'same_batch_price_duplicate', duplicateOf: owner });
854
+ }
855
+ }
701
856
  }
702
857
  const violatingTargetIds = new Set(violations.map(v => v.targetId));
703
858
  return {
@@ -1023,5 +1178,5 @@ function evaluateCommit(workingGrid, options = {}) {
1023
1178
  // ===============================================================================
1024
1179
  // EXPORTS
1025
1180
  // ===============================================================================
1026
- export { validateOrder, validateGridForPersistence, validateWorkingGridFunds, checkFundDrift, reconcileGrid, optimizeRebalanceActions, hasExecutableActions, validateCreateTargetSlots, hasActionForOrder, removeActionsForOrder, projectTargetToWorkingGrid, buildStateUpdates, buildAbortedResult, buildSuccessResult, evaluateCommit };
1181
+ export { validateOrder, validateGridForPersistence, validateWorkingGridFunds, checkFundDrift, reconcileGrid, optimizeRebalanceActions, hasExecutableActions, validateCreateTargetSlots, hasActionForOrder, removeActionsForOrder, projectTargetToWorkingGrid, buildStateUpdates, buildAbortedResult, buildSuccessResult, evaluateCommit, stampGapEvacuationRotation };
1027
1182
  //# sourceMappingURL=validate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../../../modules/order/utils/validate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,kFAAkF;AAClF,mCAAmC;AACnC,kFAAkF;AAGlF,OAAO,KAAK,MAAM,MAAM,cAAc,CAAC;AACvC,OAAO,EACH,YAAY,EACZ,WAAW,EACX,WAAW,EACX,WAAW,EACd,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACH,oBAAoB,EACpB,iBAAiB,EACjB,iBAAiB,EACjB,sBAAsB,EACtB,KAAK,EACR,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EACH,cAAc,EACd,cAAc,EACd,0BAA0B,EAC7B,MAAM,YAAY,CAAC;AACpB,MAAM,EAAE,aAAa,EAAE,cAAc,EAAE,GAAG,MAAM,CAAC;AAEjD,0BAA0B;AAC1B,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;AAChE,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;AAE9D,kFAAkF;AAClF,wBAAwB;AACxB,kFAAkF;AAElF;;;;;;GAMG;AACH,SAAS,aAAa,CAAC,KAAU,EAAE,WAAgB,IAAI,EAAE,UAAe,UAAU;IAC9E,MAAM,MAAM,GAAU,EAAE,CAAC;IACzB,MAAM,QAAQ,GAAU,EAAE,CAAC;IAC3B,IAAI,eAAe,GAAG,EAAE,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC;IAExD,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;QACtB,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,sCAAsC,EAAE,CAAC,CAAC;QACrF,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC;IACvE,CAAC;IAED,IAAI,CAAC,eAAe,CAAC,IAAI,IAAI,eAAe,CAAC,KAAK,KAAK,YAAY,CAAC,OAAO,EAAE,CAAC;QAC1E,MAAM,eAAe,GAAG,cAAc,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAC7D,IAAI,eAAe,KAAK,CAAC,EAAE,CAAC;YACxB,eAAe,CAAC,IAAI,GAAG,WAAW,CAAC,MAAM,CAAC;QAC9C,CAAC;IACL,CAAC;IAED,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC;QACjD,MAAM,CAAC,IAAI,CAAC;YACR,IAAI,EAAE,eAAe;YACrB,OAAO,EAAE,4BAA4B,KAAK,CAAC,EAAE,oBAAoB,eAAe,CAAC,KAAK,eAAe,OAAO,GAAG;SAClH,CAAC,CAAC;IACP,CAAC;IAED,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/C,MAAM,CAAC,IAAI,CAAC;YACR,IAAI,EAAE,cAAc;YACpB,OAAO,EAAE,4BAA4B,KAAK,CAAC,EAAE,mBAAmB,eAAe,CAAC,IAAI,eAAe,OAAO,GAAG;SAChH,CAAC,CAAC;IACP,CAAC;IAED,IAAI,eAAe,CAAC,IAAI,KAAK,WAAW,CAAC,MAAM,IAAI,cAAc,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAC5F,QAAQ,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,wBAAwB;YAC9B,OAAO,EAAE,wCAAwC,KAAK,CAAC,EAAE,SAAS,eAAe,CAAC,IAAI,mBAAmB,OAAO,GAAG;SACtH,CAAC,CAAC;QACH,eAAe,CAAC,IAAI,GAAG,CAAC,CAAC;IAC7B,CAAC;IAED,MAAM,cAAc,GAAG,CACnB,eAAe,CAAC,KAAK,KAAK,YAAY,CAAC,MAAM;QAC7C,eAAe,CAAC,KAAK,KAAK,YAAY,CAAC,OAAO,CACjD,CAAC;IAEF,IAAI,eAAe,CAAC,IAAI,KAAK,WAAW,CAAC,MAAM,IAAI,cAAc,EAAE,CAAC;QAChE,MAAM,CAAC,IAAI,CAAC;YACR,IAAI,EAAE,sBAAsB;YAC5B,OAAO,EAAE,gDAAgD,KAAK,CAAC,EAAE,OAAO,eAAe,CAAC,KAAK,sCAAsC;YACnI,OAAO,EAAE,IAAI;SAChB,CAAC,CAAC;IACP,CAAC;IAED,IAAI,cAAc,CAAC,eAAe,CAAC,EAAE,CAAC;QAClC,MAAM,CAAC,IAAI,CAAC;YACR,IAAI,EAAE,eAAe;YACrB,OAAO,EAAE,wCAAwC,KAAK,CAAC,EAAE,OAAO,eAAe,CAAC,KAAK,8BAA8B,OAAO,iEAAiE;YAC3L,WAAW,EAAE;gBACT,KAAK,EAAE,YAAY,CAAC,OAAO;gBAC3B,OAAO,EAAE,IAAI;gBACb,UAAU,EAAE,IAAI;gBAChB,IAAI,EAAE,CAAC;aACV;SACJ,CAAC,CAAC;IACP,CAAC;IAED,IAAI,eAAe,CAAC,IAAI,KAAK,WAAW,CAAC,GAAG,IAAI,eAAe,CAAC,IAAI,KAAK,WAAW,CAAC,IAAI,EAAE,CAAC;QACxF,eAAe,CAAC,aAAa,GAAG,eAAe,CAAC,IAAI,CAAC;IACzD,CAAC;SAAM,IAAI,CAAC,eAAe,CAAC,aAAa,IAAI,QAAQ,EAAE,CAAC;QACpD,IAAI,QAAQ,CAAC,aAAa,EAAE,CAAC;YACzB,eAAe,CAAC,aAAa,GAAG,QAAQ,CAAC,aAAa,CAAC;QAC3D,CAAC;aAAM,IAAI,QAAQ,CAAC,IAAI,KAAK,WAAW,CAAC,GAAG,IAAI,QAAQ,CAAC,IAAI,KAAK,WAAW,CAAC,IAAI,EAAE,CAAC;YACjF,eAAe,CAAC,aAAa,GAAG,QAAQ,CAAC,IAAI,CAAC;QAClD,CAAC;IACL,CAAC;IAED,OAAO;QACH,OAAO,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;QACnE,MAAM;QACN,QAAQ;QACR,eAAe;KAClB,CAAC;AACN,CAAC;AAED;;;;;GAKG;AACH,SAAS,0BAA0B,CAAC,MAAW,EAAE,aAAkB;IAC/D,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;QAClC,IAAI,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO;gBACH,OAAO,EAAE,KAAK;gBACd,MAAM,EAAE,iCAAiC,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC,KAAK,qBAAqB;aAC3F,CAAC;QACN,CAAC;IACL,CAAC;IAED,IAAI,CAAC,aAAa,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5F,OAAO;YACH,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,gCAAgC;SAC3C,CAAC;IACN,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;AAC3C,CAAC;AAED;;;;;GAKG;AACH,SAAS,sBAAsB,CAAC,IAAS,EAAE,aAAkC,EAAE;IAC3E,MAAM,YAAY,GAAG,UAAU,CAAC,YAAY,CAAC;IAC7C,MAAM,aAAa,GAAG,UAAU,CAAC,aAAa,CAAC;IAE/C,IAAI,cAAc,GAAG,CAAC,CAAC;IACvB,IAAI,eAAe,GAAG,CAAC,CAAC;IAExB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;QAChC,MAAM,IAAI,GAAG,cAAc,CAAC,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC;QAExD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;QAC1B,MAAM,QAAQ,GAAG,KAAK,KAAK,YAAY,CAAC,MAAM,IAAI,KAAK,KAAK,YAAY,CAAC,OAAO,CAAC;QAEjF,IAAI,QAAQ,IAAI,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;YACpC,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,CAAC,GAAG,EAAE,CAAC;gBACjC,cAAc,IAAI,oBAAoB,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;YAC/D,CAAC;iBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,CAAC,IAAI,EAAE,CAAC;gBACzC,eAAe,IAAI,oBAAoB,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;YACjE,CAAC;QACL,CAAC;IACL,CAAC;IAED,OAAO;QACH,MAAM,EAAE,cAAc;QACtB,OAAO,EAAE,eAAe;QACxB,GAAG,EAAE,iBAAiB,CAAC,cAAc,EAAE,YAAY,CAAC;QACpD,IAAI,EAAE,iBAAiB,CAAC,eAAe,EAAE,aAAa,CAAC;KAC1D,CAAC;AACN,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,wBAAwB,CAAC,WAAgB,EAAE,cAAmB,EAAE,aAAkC,EAAE,EAAE,SAAc,IAAI;IAC7H,MAAM,YAAY,GAAG,UAAU,CAAC,YAAY,IAAI,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC;IAC1E,MAAM,aAAa,GAAG,UAAU,CAAC,aAAa,IAAI,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC;IAE5E,MAAM,QAAQ,GAAG,sBAAsB,CAAC,WAAW,EAAE,EAAE,YAAY,EAAE,aAAa,EAAE,CAAC,CAAC;IAEtF,MAAM,YAAY,GAAG,aAAa,CAAC,cAAc,EAAE,YAAY,CAAC;QAC5D,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,YAAY,CAAC;QACrC,CAAC,CAAC,aAAa,CAAC,cAAc,EAAE,aAAa,CAAC;YAC1C,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,aAAa,CAAC;YACtC,CAAC,CAAC,cAAc,CAAC,cAAc,EAAE,OAAO,IAAI,cAAc,EAAE,YAAY,CAAC,CAAC;IAElF,MAAM,aAAa,GAAG,aAAa,CAAC,cAAc,EAAE,aAAa,CAAC;QAC9D,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,aAAa,CAAC;QACtC,CAAC,CAAC,aAAa,CAAC,cAAc,EAAE,cAAc,CAAC;YAC3C,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,cAAc,CAAC;YACvC,CAAC,CAAC,cAAc,CAAC,cAAc,EAAE,QAAQ,IAAI,cAAc,EAAE,aAAa,CAAC,CAAC;IAEpF,MAAM,UAAU,GAAU,EAAE,CAAC;IAE7B,MAAM,eAAe,GAAG,oBAAoB,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;IACzE,MAAM,gBAAgB,GAAG,oBAAoB,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;IAE5E,IAAI,QAAQ,CAAC,MAAM,GAAG,eAAe,EAAE,CAAC;QACpC,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;QAC1E,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,eAAe,EAAE,YAAY,CAAC,CAAC;QAC3E,UAAU,CAAC,IAAI,CAAC;YACZ,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,IAAI,UAAU;YAC3C,QAAQ,EAAE,gBAAgB;YAC1B,SAAS,EAAE,iBAAiB;YAC5B,OAAO,EAAE,iBAAiB,CAAC,QAAQ,CAAC,MAAM,GAAG,eAAe,EAAE,YAAY,CAAC;SAC9E,CAAC,CAAC;IACP,CAAC;IAED,IAAI,QAAQ,CAAC,OAAO,GAAG,gBAAgB,EAAE,CAAC;QACtC,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;QAC7E,MAAM,kBAAkB,GAAG,iBAAiB,CAAC,gBAAgB,EAAE,aAAa,CAAC,CAAC;QAC9E,UAAU,CAAC,IAAI,CAAC;YACZ,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,IAAI,WAAW;YAC5C,QAAQ,EAAE,iBAAiB;YAC3B,SAAS,EAAE,kBAAkB;YAC7B,OAAO,EAAE,iBAAiB,CAAC,QAAQ,CAAC,OAAO,GAAG,gBAAgB,EAAE,aAAa,CAAC;SACjF,CAAC,CAAC;IACP,CAAC;IAED,OAAO;QACH,OAAO,EAAE,UAAU,CAAC,MAAM,KAAK,CAAC;QAChC,MAAM,EAAE,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,mBAAmB,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI;QACtF,UAAU;QACV,QAAQ;QACR,SAAS,EAAE,EAAE,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE;KACxD,CAAC;AACN,CAAC;AAED;;;;;;GAMG;AACH,SAAS,cAAc,CAAC,MAAwB,EAAE,aAAkB,EAAE,SAAc,IAAI,EAAE,aAAkB,IAAI;IAC5G,IAAI,OAAO,GAAG,CAAC,EAAE,QAAQ,GAAG,CAAC,CAAC;IAC9B,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC;QAC9C,MAAM,IAAI,GAAG,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;YAAE,SAAS;QAElD,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,CAAC,GAAG;YAAE,OAAO,IAAI,IAAI,CAAC;aAC/C,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,CAAC,IAAI;YAAE,QAAQ,IAAI,IAAI,CAAC;IAC/D,CAAC;IAED,MAAM,YAAY,GAAG,aAAa,EAAE,OAAO,IAAI,CAAC,CAAC;IACjD,MAAM,aAAa,GAAG,aAAa,EAAE,QAAQ,IAAI,CAAC,CAAC;IACnD,MAAM,SAAS,GAAG,aAAa,EAAE,GAAG,IAAI,CAAC,CAAC;IAC1C,MAAM,UAAU,GAAG,aAAa,EAAE,IAAI,IAAI,CAAC,CAAC;IAE5C,MAAM,WAAW,GAAG,YAAY,GAAG,OAAO,CAAC;IAC3C,MAAM,YAAY,GAAG,aAAa,GAAG,QAAQ,CAAC;IAE9C,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,WAAW,CAAC,CAAC;IACnD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,YAAY,CAAC,CAAC;IAEtD,MAAM,YAAY,GAAG,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC;IAC/C,MAAM,aAAa,GAAG,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC;IAEhD,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,EAAE,CAAC;QAChE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,kCAAkC,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;IAC9F,CAAC;IAED,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,YAAY,CAAC,CAAC;IAC1D,MAAM,kBAAkB,GAAG,iBAAiB,CAAC,aAAa,CAAC,CAAC;IAC5D,MAAM,sBAAsB,GAAG,UAAU,EAAE,gCAAgC,IAAI,WAAW,CAAC,gCAAgC,CAAC;IAC5H,MAAM,gBAAgB,GAAG,sBAAsB,GAAG,GAAG,CAAC;IAEtD,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,iBAAiB,EAAE,SAAS,GAAG,gBAAgB,CAAC,CAAC;IAClF,MAAM,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,kBAAkB,EAAE,UAAU,GAAG,gBAAgB,CAAC,CAAC;IAErF,MAAM,KAAK,GAAG,QAAQ,IAAI,eAAe,CAAC;IAC1C,MAAM,MAAM,GAAG,SAAS,IAAI,gBAAgB,CAAC;IAE7C,OAAO;QACH,OAAO,EAAE,KAAK,IAAI,MAAM;QACxB,QAAQ;QACR,SAAS;QACT,eAAe;QACf,gBAAgB;QAChB,MAAM,EAAE,CAAC,KAAK;YACV,CAAC,CAAC,aAAa,MAAM,CAAC,uBAAuB,CAAC,QAAQ,EAAE,YAAY,CAAC,MAAM,MAAM,CAAC,uBAAuB,CAAC,eAAe,EAAE,YAAY,CAAC,EAAE;YAC1I,CAAC,CAAC,CAAC,MAAM;gBACL,CAAC,CAAC,cAAc,MAAM,CAAC,uBAAuB,CAAC,SAAS,EAAE,aAAa,CAAC,MAAM,MAAM,CAAC,uBAAuB,CAAC,gBAAgB,EAAE,aAAa,CAAC,EAAE;gBAC/I,CAAC,CAAC,IAAI;KACjB,CAAC;AACN,CAAC;AAED,kFAAkF;AAClF,gDAAgD;AAChD,kFAAkF;AAElF;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,SAAS,2BAA2B,CAAC,aAAkB,EAAE,QAAgB,EAAE,SAAc,IAAI,EAAE,SAAiB,EAAE;IAC9G,MAAM,MAAM,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;IACxC,IAAI,CAAC,aAAa,IAAI,aAAa,CAAC,KAAK,KAAK,YAAY,CAAC,OAAO;QAAE,OAAO,MAAM,CAAC;IAClF,MAAM,MAAM,GAAG,cAAc,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IAClD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,IAAI,CAAC;QAAE,OAAO,MAAM,CAAC;IACvF,IAAI,MAAM,GAAG,MAAM,EAAE,CAAC;QAClB,IAAI,MAAM,EAAE,CAAC;YACT,MAAM,CACF,iCAAiC,aAAa,CAAC,EAAE,OAAO,MAAM,IAAI,GAAG,IAAI;gBACzE,4CAA4C,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG;gBAC3E,oBAAoB,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,gCAAgC;gBAChF,yDAAyD,EACzD,MAAM,CACT,CAAC;QACN,CAAC;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IACD,OAAO,MAAM,CAAC;AAClB,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,aAAa,CAAC,UAAe,EAAE,UAAe,EAAE,cAAmB,EAAE,UAA+B,EAAE;IAC3G,MAAM,EAAE,MAAM,GAAG,IAAI,EAAE,oBAAoB,GAAG,WAAW,CAAC,iCAAiC,EAAE,GAAG,OAAO,CAAC;IACxG,MAAM,OAAO,GAAU,EAAE,CAAC;IAE1B,MAAM,YAAY,GAAU,EAAE,CAAC;IAC/B,MAAM,aAAa,GAAU,EAAE,CAAC;IAChC,MAAM,QAAQ,GAAU,EAAE,CAAC;IAC3B,MAAM,SAAS,GAAU,EAAE,CAAC;IAE5B,MAAM,eAAe,GAAG,CAAC,KAAU,EAAE,EAAE;QACnC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC;YAAE,OAAO,KAAK,CAAC;QAC5C,MAAM,SAAS,GAAG,cAAc,CAAC,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC;QAChE,IAAI,SAAS,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;QAChC,MAAM,UAAU,GAAG,sBAAsB,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAAC;QAC3E,IAAI,KAAK,CAAC,IAAI,GAAG,UAAU,EAAE,CAAC;YAC1B,IAAI,MAAM,EAAE,CAAC;gBACT,MAAM,CACF,2CAA2C,KAAK,CAAC,EAAE,GAAG;oBACtD,QAAQ,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,GAAG;oBAC5F,UAAU,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,eAAe,oBAAoB,GAAG,CAAC,IAAI,EACpF,MAAM,CACT,CAAC;YACN,CAAC;YACD,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC,CAAC;IAEF,IAAI,iBAAiB,GAAG,cAAc,CAAC;IACvC,IAAI,cAAc,KAAK,IAAI,EAAE,CAAC;QAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;QAChD,IAAI,cAAc,GAAG,CAAC,IAAI,cAAc,GAAG,MAAM,EAAE,CAAC;YAChD,MAAM,OAAO,GAAG,KAAK,CAAC,cAAc,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;YACjD,IAAI,MAAM,EAAE,CAAC;gBACT,MAAM,CAAC,wCAAwC,cAAc,OAAO,OAAO,SAAS,MAAM,IAAI,EAAE,MAAM,CAAC,CAAC;YAC5G,CAAC;YACD,iBAAiB,GAAG,OAAO,CAAC;QAChC,CAAC;IACL,CAAC;IAED,KAAK,MAAM,CAAC,EAAE,EAAE,WAAW,CAAC,IAAI,UAAU,EAAE,CAAC;QACzC,MAAM,WAAW,GAAG,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAEvC,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC,KAAK,KAAK,YAAY,CAAC,OAAO,EAAE,CAAC;YAC7D,yDAAyD;YACzD,IAAI,WAAW,CAAC,IAAI,GAAG,CAAC,IAAI,WAAW,CAAC,KAAK,KAAK,YAAY,CAAC,MAAM,EAAE,CAAC;gBACpE,oCAAoC;gBACpC,IAAI,WAAW,CAAC,IAAI,KAAK,WAAW,CAAC,GAAG,EAAE,CAAC;oBACvC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;gBAC9C,CAAC;qBAAM,IAAI,WAAW,CAAC,IAAI,KAAK,WAAW,CAAC,IAAI,EAAE,CAAC;oBAC/C,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;gBAC/C,CAAC;YACL,CAAC;YACD,SAAS;QACb,CAAC;QAED,IAAI,WAAW,CAAC,IAAI,KAAK,WAAW,CAAC,IAAI,EAAE,CAAC;YACxC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC,CAAC;YACtG,IAAI,WAAW,CAAC,IAAI,GAAG,CAAC,IAAI,WAAW,CAAC,KAAK,KAAK,YAAY,CAAC,MAAM,IAAI,eAAe,CAAC,WAAW,CAAC,EAAE,CAAC;gBACpG,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;YACvE,CAAC;YACD,SAAS;QACb,CAAC;QAED,uEAAuE;QACvE,4CAA4C;QAC5C,IAAI,cAAc,CAAC,WAAW,CAAC,IAAI,WAAW,CAAC,KAAK,KAAK,YAAY,CAAC,OAAO,EAAE,CAAC;YAC5E,IAAI,WAAW,CAAC,IAAI,KAAK,WAAW,CAAC,GAAG,EAAE,CAAC;gBACvC,YAAY,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;YACxE,CAAC;iBAAM,IAAI,WAAW,CAAC,IAAI,KAAK,WAAW,CAAC,IAAI,EAAE,CAAC;gBAC/C,aAAa,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;YACzE,CAAC;YACD,SAAS;QACb,CAAC;QAED,IAAI,WAAW,CAAC,IAAI,KAAK,WAAW,CAAC,IAAI,EAAE,CAAC;YACxC,IAAI,WAAW,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;gBACzB,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAC,CAAC;YAC7G,CAAC;YACD,8CAA8C;YAC9C,0EAA0E;YAC1E,2EAA2E;YAC3E,qDAAqD;QACzD,CAAC;IACL,CAAC;IAED,MAAM,eAAe,GAAG,CAAC,SAAc,EAAE,EAAE;QACvC,KAAK,MAAM,OAAO,IAAI,SAAS,EAAE,CAAC;YAC9B,IAAI,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACzB,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,MAAM,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,4BAA4B,EAAE,CAAC,CAAC;YACtI,CAAC;QACL,CAAC;IACL,CAAC,CAAC;IAEF,MAAM,aAAa,GAAG,CAAC,SAAc,EAAE,KAAU,EAAE,EAAE;QACjD,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAE9E,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,8DAA8D;YAC9D,eAAe,CAAC,SAAS,CAAC,CAAC;YAC3B,OAAO;QACX,CAAC;QAED,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;gBAC9B,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,MAAM,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;YAC/E,CAAC;YACD,OAAO;QACX,CAAC;QAED,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,KAAK,WAAW,CAAC,GAAG,CAAC;QAC7D,MAAM,OAAO,GAAG,CAAC,EAAU,EAAE,EAAE,GAAG,MAAM,CAAC,GAAG,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAClH,YAAY,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,CAAM,EAAE,EAAE;YACjC,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACzB,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACzB,IAAI,EAAE,KAAK,EAAE;gBAAE,OAAO,EAAE,GAAG,EAAE,CAAC;YAC9B,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC;QACjF,CAAC,CAAC,CAAC;QACH,SAAS,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,CAAM,EAAE,EAAE;YAC9B,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACzB,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACzB,IAAI,EAAE,KAAK,EAAE;gBAAE,OAAO,EAAE,GAAG,EAAE,CAAC;YAC9B,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;QACrF,CAAC,CAAC,CAAC;QAEH,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;QACtE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE,CAAC;YACrC,MAAM,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;YAC7B,MAAM,IAAI,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;YAE7B,OAAO,CAAC,IAAI,CAAC;gBACT,IAAI,EAAE,WAAW,CAAC,MAAM;gBACxB,EAAE,EAAE,OAAO,CAAC,EAAE;gBACd,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO;gBAC/B,SAAS,EAAE,IAAI,CAAC,EAAE;gBAClB,OAAO,EAAE,2BAA2B,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC;gBACtF,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK;gBAC1B,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,UAAU,EAAE,IAAI;aACnB,CAAC,CAAC;QACP,CAAC;QAED,KAAK,IAAI,CAAC,GAAG,aAAa,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACvD,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,MAAM,EAAE,EAAE,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;QACrG,CAAC;QAED,2DAA2D;QAC3D,eAAe,CAAC,SAAS,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC;IACpD,CAAC,CAAC;IAEF,aAAa,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IACtC,aAAa,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;IAExC,KAAK,MAAM,CAAC,EAAE,EAAE,WAAW,CAAC,IAAI,UAAU,EAAE,CAAC;QACzC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,cAAc,CAAC,WAAW,CAAC,EAAE,CAAC;YACrD,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC;QACxG,CAAC;IACL,CAAC;IAED,OAAO;QACH,OAAO;QACP,OAAO,EAAE,KAAK;QACd,WAAW,EAAE,iBAAiB;QAC9B,OAAO,EAAE,gBAAgB,CAAC,OAAO,CAAC;KACrC,CAAC;AACN,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,wBAAwB,CAAC,OAAY,EAAE,UAAe,EAAE,UAA+B,EAAE;IAC9F,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAC/D,MAAM,EAAE,MAAM,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC;IAElC,MAAM,OAAO,GAAU,EAAE,CAAC;IAC1B,MAAM,OAAO,GAAU,EAAE,CAAC;IAC1B,MAAM,WAAW,GAAU,EAAE,CAAC;IAE9B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC3B,IAAI,MAAM,EAAE,IAAI,KAAK,WAAW,CAAC,MAAM,EAAE,CAAC;YACtC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACzB,CAAC;aAAM,IAAI,MAAM,EAAE,IAAI,KAAK,WAAW,CAAC,MAAM,EAAE,CAAC;YAC7C,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACzB,CAAC;aAAM,CAAC;YACJ,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC7B,CAAC;IACL,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/C,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,MAAM,gBAAgB,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC;IACtC,MAAM,SAAS,GAAG,CAAC,GAAG,WAAW,CAAC,CAAC;IAEnC,KAAK,MAAM,YAAY,IAAI,OAAO,EAAE,CAAC;QACjC,MAAM,WAAW,GAAG,UAAU,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;QACpD,MAAM,UAAU,GAAG,WAAW,EAAE,IAAI,CAAC;QAErC,IAAI,CAAC,WAAW,IAAI,CAAC,YAAY,CAAC,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC;YACvD,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC7B,SAAS;QACb,CAAC;QAED,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC;QACjB,IAAI,YAAY,GAAG,QAAQ,CAAC;QAE5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,gBAAgB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/C,MAAM,YAAY,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;YACzC,MAAM,UAAU,GAAG,YAAY,EAAE,KAAK,EAAE,IAAI,CAAC;YAC7C,IAAI,UAAU,KAAK,UAAU;gBAAE,SAAS;YAExC,MAAM,OAAO,GAAG,cAAc,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;YAChD,MAAM,KAAK,GAAG,cAAc,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;YAC9C,MAAM,SAAS,GAAG,cAAc,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YACpD,MAAM,OAAO,GAAG,cAAc,CAAC,YAAY,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;YAC3D,MAAM,QAAQ,GAAG,CAAC,OAAO,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,SAAS,CAAC,CAAC;YAEhH,IAAI,QAAQ,GAAG,YAAY,EAAE,CAAC;gBAC1B,YAAY,GAAG,QAAQ,CAAC;gBACxB,OAAO,GAAG,CAAC,CAAC;YAChB,CAAC;QACL,CAAC;QAED,IAAI,OAAO,KAAK,CAAC,CAAC,EAAE,CAAC;YACjB,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC7B,SAAS;QACb,CAAC;QAED,MAAM,YAAY,GAAG,gBAAgB,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5D,SAAS,CAAC,IAAI,CAAC;YACX,IAAI,EAAE,WAAW,CAAC,MAAM;YACxB,EAAE,EAAE,YAAY,CAAC,EAAE;YACnB,OAAO,EAAE,YAAY,CAAC,OAAO;YAC7B,SAAS,EAAE,YAAY,CAAC,EAAE;YAC1B,OAAO,EAAE,2BAA2B,CAAC,WAAW,EAAE,cAAc,CAAC,YAAY,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,CAAC;YACrH,QAAQ,EAAE,cAAc,CAAC,YAAY,EAAE,KAAK,EAAE,KAAK,CAAC;YACpD,KAAK,EAAE,YAAY,CAAC,KAAK;YACzB,UAAU,EAAE,IAAI;SACnB,CAAC,CAAC;IACP,CAAC;IAED,KAAK,MAAM,YAAY,IAAI,gBAAgB,EAAE,CAAC;QAC1C,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACjC,CAAC;IAED,OAAO,SAAS,CAAC;AACrB,CAAC;AAED;;;;GAIG;AACH,SAAS,gBAAgB,CAAC,OAAY;IAClC,OAAO;QACH,KAAK,EAAE,OAAO,CAAC,MAAM;QACrB,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,MAAM,CAAC,CAAC,MAAM;QACzE,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,MAAM,CAAC,CAAC,MAAM;QACzE,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,MAAM,CAAC,CAAC,MAAM;KAC5E,CAAC;AACN,CAAC;AAED;;;;;GAKG;AACH,SAAS,oBAAoB,CAAC,eAAoB;IAC9C,MAAM,OAAO,GAAG,eAAe,EAAE,OAAO,CAAC;IACzC,OAAO,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;AACxD,CAAC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,SAAS,yBAAyB,CAAC,OAAY,EAAE,MAAW,EAAE,UAAe,IAAI,EAAE,uBAA8B,EAAE;IAC/G,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1D,MAAM,QAAQ,GAAG,MAAM,YAAY,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC;IAC5D,MAAM,eAAe,GAAG,IAAI,GAAG,EAAE,CAAC;IAElC,KAAK,MAAM,MAAM,IAAI,WAAW,EAAE,CAAC;QAC/B,IAAI,MAAM,EAAE,IAAI,KAAK,WAAW,CAAC,MAAM,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;YACnD,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAC/B,SAAS;QACb,CAAC;QAED,IACI,MAAM,EAAE,IAAI,KAAK,WAAW,CAAC,MAAM;YACnC,MAAM,CAAC,EAAE;YACT,MAAM,CAAC,SAAS;YAChB,MAAM,CAAC,SAAS,KAAK,MAAM,CAAC,EAAE,EAChC,CAAC;YACC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACnC,CAAC;IACL,CAAC;IAED,MAAM,UAAU,GAAU,EAAE,CAAC;IAC7B,MAAM,aAAa,GAAsF,EAAE,CAAC;IAE5G,KAAK,MAAM,MAAM,IAAI,WAAW,EAAE,CAAC;QAC/B,IAAI,MAAM,EAAE,IAAI,KAAK,WAAW,CAAC,MAAM;YAAE,SAAS;QAElD,MAAM,QAAQ,GAAG,MAAM,CAAC,EAAE,IAAI,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC;QAC/C,IAAI,CAAC,QAAQ,IAAI,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC;YAAE,SAAS;QAEzD,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAEvC,kDAAkD;QAClD,IAAI,OAAO,IAAI,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;YACrC,UAAU,CAAC,IAAI,CAAC;gBACZ,QAAQ;gBACR,cAAc,EAAE,OAAO,CAAC,OAAO;gBAC/B,WAAW,EAAE,OAAO,CAAC,IAAI;gBACzB,YAAY,EAAE,OAAO,CAAC,KAAK;gBAC3B,MAAM,EAAE,eAAe;aAC1B,CAAC,CAAC;QACP,CAAC;QAED,IAAI,MAAM,CAAC,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,MAAM,CAAC,KAAK,EAAE,IAAI,IAAI,IAAI,EAAE,CAAC;YAC5D,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACxC,MAAM,SAAS,GAAG,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;gBACjE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;gBACxB,CAAC,CAAC,IAAI,CAAC;YACX,MAAM,cAAc,GAAG,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACnF,aAAa,CAAC,IAAI,CAAC;gBACf,QAAQ;gBACR,MAAM;gBACN,KAAK,EAAE,cAAc;gBACrB,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC;gBACpC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI;aAC1B,CAAC,CAAC;QACP,CAAC;IACL,CAAC;IAED,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3B,iEAAiE;QACjE,MAAM,oBAAoB,GAAG,oBAAoB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5H,IAAI,oBAAoB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClC,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;YACvH,KAAK,MAAM,KAAK,IAAI,aAAa,EAAE,CAAC;gBAChC,IAAI,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACnC,UAAU,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,cAAc,EAAE,KAAK,CAAC,QAAQ,EAAE,WAAW,EAAE,KAAK,CAAC,IAAI,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,EAAE,wBAAwB,EAAE,CAAC,CAAC;gBAC3K,CAAC;YACL,CAAC;YACD,iGAAiG;YACjG,IAAI,YAAY,CAAC,IAAI,KAAK,CAAC,IAAI,OAAO,EAAE,CAAC;gBACrC,IAAI,CAAC;oBACD,MAAM,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;oBAChD,KAAK,MAAM,KAAK,IAAI,aAAa,EAAE,CAAC;wBAChC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,KAAK,CAAC,QAAQ,CAAC;4BAAE,SAAS;wBAClE,KAAK,MAAM,CAAC,IAAI,oBAAoB,EAAE,CAAC;4BACnC,IAAI,CAAC,CAAC,KAAK,IAAI,IAAI,IAAI,KAAK,CAAC,KAAK,IAAI,IAAI;gCAAE,SAAS;4BACrD,IAAI,CAAC,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI;gCAAE,SAAS;4BAC5D,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC;4BAChG,IAAI,CAAC;gCAAC,IAAI,cAAc,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC;oCAAC,UAAU,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,cAAc,EAAE,CAAC,CAAC,YAAY,EAAE,WAAW,EAAE,KAAK,CAAC,IAAI,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,EAAE,wBAAwB,EAAE,CAAC,CAAC;oCAAC,MAAM;gCAAC,CAAC;4BAAC,CAAC;4BAAC,MAAM,CAAC,CAAA,CAAC;wBAC5P,CAAC;oBACL,CAAC;gBACL,CAAC;gBAAC,MAAM,CAAC,CAAA,CAAC;YACd,CAAC;QACL,CAAC;QACD,4BAA4B;QAC5B,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;QAC/B,KAAK,MAAM,KAAK,IAAI,aAAa,EAAE,CAAC;YAChC,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC3B,UAAU,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,cAAc,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,CAAC,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,4BAA4B,EAAE,CAAC,CAAC;YAC/J,CAAC;;gBAAM,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACpC,CAAC;IACL,CAAC;IAED,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEpE,OAAO;QACH,OAAO,EAAE,UAAU,CAAC,MAAM,KAAK,CAAC;QAChC,UAAU;QACV,kBAAkB;KACrB,CAAC;AACN,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,kBAAkB,CAAC,MAAW,EAAE,QAAa;IAClD,IAAI,CAAC,MAAM,IAAI,CAAC,QAAQ;QAAE,OAAO,KAAK,CAAC;IACvC,IAAI,QAAQ,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5F,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,OAAO,CAAC,CAAC,QAAQ,CAAC,EAAE,IAAI,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AACtE,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,iBAAiB,CAAC,OAAY,EAAE,UAAe,EAAE,QAAa;IACnE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;QAAE,OAAO,KAAK,CAAC;IAC1C,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,MAAW,EAAE,EAAE;QAChC,IAAI,UAAU,IAAI,MAAM,EAAE,IAAI,KAAK,UAAU;YAAE,OAAO,KAAK,CAAC;QAC5D,OAAO,kBAAkB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;AACP,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,qBAAqB,CAAC,OAAY,EAAE,UAAe,EAAE,QAAa;IACvE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;QAAE,OAAO,CAAC,CAAC;IACtC,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,KAAK,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3C,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QAC1B,IAAI,UAAU,IAAI,MAAM,EAAE,IAAI,KAAK,UAAU;YAAE,SAAS;QACxD,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,QAAQ,CAAC;YAAE,SAAS;QACpD,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACrB,OAAO,EAAE,CAAC;IACd,CAAC;IACD,OAAO,OAAO,CAAC;AACnB,CAAC;AAED;;;GAGG;AACH,SAAS,qBAAqB,CAAC,OAAY;IACvC,MAAM,SAAS,GAAG;QACd,OAAO,EAAE,IAAI,GAAG,EAAE;QAClB,QAAQ,EAAE,IAAI,GAAG,EAAE;KACtB,CAAC;IAEF,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;QAAE,OAAO,SAAS,CAAC;IAE9C,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC3B,IAAI,MAAM,EAAE,IAAI,KAAK,WAAW,CAAC,MAAM;YAAE,SAAS;QAClD,IAAI,MAAM,CAAC,EAAE;YAAE,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QACxD,IAAI,MAAM,CAAC,SAAS;YAAE,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;QACtE,IAAI,MAAM,CAAC,OAAO;YAAE,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IACvE,CAAC;IAED,OAAO,SAAS,CAAC;AACrB,CAAC;AAED;;;;;GAKG;AACH,SAAS,0BAA0B,CAAC,SAAc,EAAE,OAAY,EAAE,EAAO;IACrE,IAAI,CAAC,SAAS;QAAE,OAAO,KAAK,CAAC;IAE7B,IAAI,EAAE,IAAI,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;QAC1C,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM,OAAO,GAAG,OAAO,EAAE,OAAO,CAAC;IACjC,OAAO,CAAC,CAAC,OAAO,IAAI,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;AAChE,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,sBAAsB,CAAC,OAAY,EAAE,WAAgB,EAAE,UAAe,EAAE,WAAgB,EAAE,aAAkB;IACjH,IAAI,OAAO,CAAC,KAAK,KAAK,WAAW,CAAC,KAAK;QACnC,OAAO,CAAC,IAAI,KAAK,WAAW,CAAC,IAAI;QACjC,OAAO,CAAC,KAAK,KAAK,WAAW;QAC7B,OAAO,CAAC,IAAI,KAAK,UAAU;QAC3B,OAAO,CAAC,OAAO,KAAK,aAAa,EAAE,CAAC;QACpC,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,OAAO,KAAK,CAAC;AACjB,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,0BAA0B,CAAC,WAAgB,EAAE,UAAe,EAAE,UAA+B,EAAE;IACpG,MAAM,eAAe,GAAG,qBAAqB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/D,MAAM,SAAS,GAAG,IAAI,GAAG,EAAE,CAAC;IAE5B,KAAK,MAAM,CAAC,EAAE,EAAE,WAAW,CAAC,IAAI,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC;QACnD,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAElB,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACpC,MAAM,UAAU,GAAG,cAAc,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QAErD,IAAI,CAAC,OAAO,EAAE,CAAC;YACX,qFAAqF;YACrF,iFAAiF;YACjF,WAAW,CAAC,GAAG,CAAC,EAAE,EAAE;gBAChB,GAAG,WAAW;gBACd,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC;gBAC7B,KAAK,EAAE,YAAY,CAAC,OAAO;gBAC3B,OAAO,EAAE,IAAI;aAChB,CAAC,CAAC;YACH,SAAS;QACb,CAAC;QAED,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;YACjB,MAAM,WAAW,GAAG,cAAc,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,IAAI,KAAK,WAAW,CAAC,IAAI,CAAC;YACjF,MAAM,iBAAiB,GAAG,0BAA0B,CAAC,eAAe,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;YACnF,uEAAuE;YACvE,mEAAmE;YACnE,EAAE;YACF,kFAAkF;YAClF,iEAAiE;YACjE,oEAAoE;YACpE,iDAAiD;YACjD,MAAM,kBAAkB,GAAG,WAAW,IAAI,CAAC,iBAAiB,CAAC;YAC7D,MAAM,aAAa,GAAG,kBAAkB;gBACpC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBAC3C,CAAC,CAAC,UAAU,CAAC;YACjB,MAAM,WAAW,GAAG,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC;YACvE,MAAM,aAAa,GAAG,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;YAC3D,IAAI,CAAC,sBAAsB,CAAC,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,CAAC,EAAE,CAAC;gBAC3F,WAAW,CAAC,GAAG,CAAC,EAAE,EAAE;oBAChB,GAAG,OAAO;oBACV,GAAG,WAAW;oBACd,IAAI,EAAE,aAAa;oBACnB,KAAK,EAAE,WAAW;oBAClB,OAAO,EAAE,aAAa;iBACzB,CAAC,CAAC;YACP,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,sBAAsB,CAAC,OAAO,EAAE,WAAW,EAAE,CAAC,EAAE,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC;gBAC/E,WAAW,CAAC,GAAG,CAAC,EAAE,EAAE;oBAChB,GAAG,OAAO;oBACV,GAAG,WAAW;oBACd,IAAI,EAAE,CAAC;oBACP,KAAK,EAAE,YAAY,CAAC,OAAO;oBAC3B,OAAO,EAAE,IAAI;iBAChB,CAAC,CAAC;YACP,CAAC;QACL,CAAC;IACL,CAAC;IAED,KAAK,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE,CAAC;QAChD,IAAI,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;YAAE,SAAS;QAChC,IAAI,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;YAC1B,WAAW,CAAC,GAAG,CAAC,EAAE,EAAE,0BAA0B,CAAC,OAAO,CAAC,CAAC,CAAC;QAC7D,CAAC;IACL,CAAC;AACL,CAAC;AAED;;;;;GAKG;AACH,SAAS,iBAAiB,CAAC,OAAY,EAAE,UAAe;IACpD,MAAM,YAAY,GAAU,EAAE,CAAC;IAE/B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC3B,IAAI,MAAM,CAAC,IAAI,KAAK,WAAW,CAAC,MAAM,EAAE,CAAC;YACrC,YAAY,CAAC,IAAI,CAAC;gBACd,GAAG,MAAM,CAAC,KAAK;gBACf,KAAK,EAAE,YAAY,CAAC,OAAO;gBAC3B,OAAO,EAAE,IAAI;aAChB,CAAC,CAAC;QACP,CAAC;aAAM,IAAI,MAAM,CAAC,IAAI,KAAK,WAAW,CAAC,MAAM,EAAE,CAAC;YAC5C,MAAM,WAAW,GAAG,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAC9C,IAAI,WAAW,EAAE,CAAC;gBACd,YAAY,CAAC,IAAI,CAAC,0BAA0B,CAAC,WAAW,CAAC,CAAC,CAAC;YAC/D,CAAC;QACL,CAAC;aAAM,IAAI,MAAM,CAAC,IAAI,KAAK,WAAW,CAAC,MAAM,EAAE,CAAC;YAC5C,MAAM,WAAW,GAAG,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAC9C,IAAI,WAAW,EAAE,CAAC;gBACd,MAAM,OAAO,GAAG,cAAc,CAAC,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;gBACrE,YAAY,CAAC,IAAI,CAAC,EAAE,GAAG,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;YACzD,CAAC;QACL,CAAC;IACL,CAAC;IAED,OAAO,YAAY,CAAC;AACxB,CAAC;AAED;;;;GAIG;AACH,SAAS,kBAAkB,CAAC,MAAW;IACnC,OAAO;QACH,OAAO,EAAE,EAAE;QACX,YAAY,EAAE,EAAE;QAChB,WAAW,EAAE,KAAK;QAClB,WAAW,EAAE,IAAI;QACjB,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,IAAI;QACrB,gBAAgB,EAAE,CAAC;QACnB,OAAO,EAAE,IAAI;QACb,MAAM;KACT,CAAC;AACN,CAAC;AAED;;;;GAIG;AACH,SAAS,kBAAkB,CAAC,EACxB,OAAO,EACP,YAAY,EACZ,WAAW,EACX,eAAe,EACf,gBAAgB,EACd;IACF,OAAO;QACH,OAAO;QACP,YAAY;QACZ,WAAW,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,MAAM,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,MAAM,CAAC;QACrG,WAAW;QACX,cAAc,EAAE,WAAW,CAAC,UAAU,EAAE;QACxC,eAAe;QACf,gBAAgB;QAChB,OAAO,EAAE,KAAK;KACjB,CAAC;AACN,CAAC;AAED;;;;;GAKG;AACH,SAAS,cAAc,CAAC,WAAgB,EAAE,UAAe,EAAE;IACvD,MAAM,OAAO,GAAG,OAAO,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC;IAC5E,MAAM,cAAc,GAAG,cAAc,CAAC,OAAO,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;IACrE,MAAM,UAAU,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC;IAE3E,IAAI,CAAC,WAAW,EAAE,CAAC;QACf,OAAO;YACH,SAAS,EAAE,KAAK;YAChB,MAAM,EAAE,2BAA2B;YACnC,KAAK,EAAE,OAAO;SACjB,CAAC;IACN,CAAC;IAED,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE,CAAC;QACxB,OAAO;YACH,SAAS,EAAE,KAAK;YAChB,MAAM,EAAE,qCAAqC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,KAAK,WAAW,CAAC,cAAc,EAAE,IAAI,qCAAqC,EAAE;YACvJ,KAAK,EAAE,MAAM;SAChB,CAAC;IACN,CAAC;IAED,MAAM,WAAW,GAAG,WAAW,CAAC,WAAW,CAAC;IAE5C,IAAI,WAAW,KAAK,IAAI,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;QACpD,OAAO;YACH,SAAS,EAAE,KAAK;YAChB,MAAM,EAAE,kCAAkC;YAC1C,KAAK,EAAE,OAAO;SACjB,CAAC;IACN,CAAC;IAED,IAAI,cAAc,KAAK,IAAI,IAAI,aAAa,CAAC,WAAW,CAAC,IAAI,MAAM,CAAC,WAAW,CAAC,KAAK,cAAc,EAAE,CAAC;QAClG,OAAO;YACH,SAAS,EAAE,KAAK;YAChB,MAAM,EAAE,8CAA8C,MAAM,CAAC,WAAW,CAAC,eAAe,cAAc,EAAE;YACxG,KAAK,EAAE,MAAM;SAChB,CAAC;IACN,CAAC;IAED,IAAI,UAAU,IAAI,OAAO,WAAW,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;QAC7D,MAAM,KAAK,GAAG,WAAW,CAAC,UAAU,CAAC,UAAU,EAAE;YAC7C,UAAU,EAAE,OAAO,EAAE,iBAAiB,IAAI,IAAI;SACjD,CAAC,CAAC;QACH,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7C,OAAO;gBACH,SAAS,EAAE,KAAK;gBAChB,MAAM,EAAE,2CAA2C;gBACnD,KAAK,EAAE,OAAO;aACjB,CAAC;QACN,CAAC;IACL,CAAC;IAED,IAAI,OAAO,EAAE,CAAC;QACV,MAAM,KAAK,GAAG,WAAW,CAAC,cAAc,EAAE,CAAC;QAC3C,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YACnB,OAAO;gBACH,SAAS,EAAE,KAAK;gBAChB,MAAM,EAAE,uBAAuB;gBAC/B,KAAK,EAAE,MAAM;aAChB,CAAC;QACN,CAAC;IACL,CAAC;IAED,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;AAC/B,CAAC;AAED,kFAAkF;AAClF,UAAU;AACV,kFAAkF;AAElF,OAAO,EAAE,aAAa,EAAE,0BAA0B,EAAE,wBAAwB,EAAE,cAAc,EAAE,aAAa,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,0BAA0B,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,cAAc,EAAE,CAAA"}
1
+ {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../../../modules/order/utils/validate.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  # DEXBot vs DEXBot2 — Detailed Comparison Report
2
2
 
3
3
  > **Date:** 2026-09-02 *(metrics refreshed against local source trees)*
4
- > **Scope:** Full architectural, functional, and operational comparison between the original [DEXBot](https://github.com/Codaone/DEXBot) (Python, v1.0.0) and DEXBot2 (TypeScript, v1.5.0).
4
+ > **Scope:** Full architectural, functional, and operational comparison between the original [DEXBot](https://github.com/Codaone/DEXBot) (Python, v1.0.0) and DEXBot2 (TypeScript, v1.5.1).
5
5
  > **Audience:** Developers, contributors, and operators evaluating or migrating between the two projects.
6
6
 
7
7
  ---
@@ -36,7 +36,7 @@
36
36
 
37
37
  | Attribute | DEXBot (original) | DEXBot2 |
38
38
  |---|---|---|
39
- | **Release Track** | 1.0.0 | v1.5.0 |
39
+ | **Release Track** | 1.0.0 | v1.5.1 |
40
40
  | **Language** | Python 3.6+ | TypeScript 5.x |
41
41
  | **Status** | Released 1.0.0, unmaintained | Active development |
42
42
  | **Last Repo Activity** | May 23, 2020 | 2026-09-02 |
@@ -780,7 +780,7 @@ Where:
780
780
 
781
781
  | Metric | DEXBot | DEXBot2 |
782
782
  |---|---|---|
783
- | **Release Track** | 1.0.0 | v1.5.0 |
783
+ | **Release Track** | 1.0.0 | v1.5.1 |
784
784
  | **Active Since** | ~2018 | December 2025 |
785
785
  | **Last Commit** | May 23, 2020 | 2026-09-02 |
786
786
  | **Total Commits** | 2281 | 2,125 (v1.4.25) |
package/docs/EVOLUTION.md CHANGED
@@ -2,14 +2,14 @@
2
2
 
3
3
  ## Executive Summary
4
4
 
5
- DEXBot2 is a sophisticated decentralized exchange trading bot for the BitShares blockchain. This report documents the complete evolution of the project from its inception in December 2025 through the current 1.5.0 stable release.
5
+ DEXBot2 is a sophisticated decentralized exchange trading bot for the BitShares blockchain. This report documents the complete evolution of the project from its inception in December 2025 through the current 1.5.1 stable release.
6
6
 
7
7
  ### Key Milestones
8
8
  - **Project Inception**: December 2, 2025
9
9
  - **Growth Phase**: 2,141 commits over ~9 active months
10
10
  - **Code Maturity**: Evolution from basic utilities to a ~100,000+ LoC intelligent TypeScript system
11
11
  - **Stability**: Progression from manual testing to a suite of 248 automated test files
12
- - **Releases**: 102 release entries (v0.1.0 to v1.5.0)
12
+ - **Releases**: 102 release entries (v0.1.0 to v1.5.1)
13
13
 
14
14
  ---
15
15
 
@@ -110,11 +110,12 @@ Compact, era-level view; per-release commit detail lives in [CHANGELOG.md](../CH
110
110
  | v1.4.23 → v1.4.24 | 3 | Native fill gap recovery with eager coalesced retry, LP collateral offer-first pricing |
111
111
  | v1.4.24 → v1.4.25 | 26 | Genesis-frozen price-slots, self-trade & fill-guard hardening, orphan & gap-band fixes, trigger/shutdown hardening, bot poll, grid monotonicity gate, whitelist scoped overwrite, Range legend |
112
112
  | v1.4.25 → v1.5.0 | 13 | Credit overview CLI + whitelist-scoped CR on shared pricing math, one-step TradingView chart, daemon-safe reload, offline account-ID cache, case-insensitive bot identity, stale-pivot guard fix, partial-surplus rotation clamp, adapter ownership centralization, op-77 bot discovery split |
113
+ | v1.5.0 → v1.5.1 | 11 | Gap-evacuation guard allowance + rail-typed holes, persisted streaks with cancel-only teeth, vacated-rail refill, adoption/accounting/duplicate-guard hardening |
113
114
 
114
115
  ---
115
116
 
116
117
  **Report Originally Generated**: February 19, 2026
117
- **Last Updated**: September 05, 2026
118
- **Total Commits**: 2,141
119
- **Date Range**: December 2, 2025 – September 05, 2026
118
+ **Last Updated**: September 06, 2026
119
+ **Total Commits**: 2,153
120
+ **Date Range**: December 2, 2025 – September 06, 2026
120
121
  **Repository**: DEXBot2 (BitShares DEX Trading Bot)
@@ -787,9 +787,11 @@ To prevent "Time-of-Check to Time-of-Use" errors:
787
787
 
788
788
  **Stale `accountTotals` does not abort COW commit.** Transient staleness (e.g., the periodic balance fetch overlaps with a COW commit) logs a `WARN` and schedules recovery instead of throwing `ACCOUNTING_COMMITMENT_FAILED`. Totals are also refreshed after bootstrap to prevent a spurious full recovery on the first maintenance cycle.
789
789
 
790
+ **Recovery verifies the fetch before trusting balances.** State recovery checks that the chain read actually refreshed (`_lastFetchedAt` advanced) and defers the attempt otherwise, so drift is never re-measured against stale/optimistic numbers. When drift persists after sync, `_recalibrateTrackedFundsFromChain` rebuilds the tracked commitment from the fresh chain read (matched slots forced to chain size, fully-consumed and stale-absent slots virtualized under the sync orphan pass's recent-commit lag guards; free balances never derived from totals), then re-runs `recalculateFunds` and re-checks drift.
791
+
790
792
  **Fee-deduction failure logs at `error`.** When `getAssetFees` throws during fill processing (e.g., network blip), `_deductFeesFromProceeds` skips the deduction and logs at `error` with explicit "fund tracking will over-credit" language so operators can detect the drift source in production logs.
791
793
 
792
794
  **TOCTOU protection in `processFillAccounting`.** `_buildBtsDeferredRefundAdjustment` reads `btsFeeState` from `mgr.orders` while the order lock is held — the lock is acquired before accounting runs, and the POST-RESET and BOOTSTRAP tracked-fill accounting paths follow the same locking pattern.
793
795
 
794
796
  ---
795
- *Technical Reference for DEXBot2 v1.5.0 release*
797
+ *Technical Reference for DEXBot2 v1.5.1 release*
@@ -94,6 +94,7 @@ Phase 2 and 3 both respect the `dryRun` flag: when true, no on-chain mutations a
94
94
  - Detect grid-edge lock and plan a largest-order cancel
95
95
  - Plan creates for remaining slots
96
96
  - Plan excess cancellations (guarded by `matchedOnGrid > 0`)
97
+ - **Vacated-rail refill**: each PROCEEDING update whose vacated price exactly matches (`priceSlotEqual`) an empty, sized, in-rail slot of the same side queues a refill CREATE in the same plan (`source startupVacatedRailRefill`) — skipped updates, ghost prices (lattice moved), in-band slots, and already-desired slots never refill; refill targets require VIRTUAL state with no `orderId`
97
98
 
98
99
  Returns `{ plannedCreates, plannedUpdates, plannedCancels, chainSellCount, chainBuyCount }`.
99
100
 
package/docs/LOGGING.md CHANGED
@@ -243,6 +243,9 @@ Prefix tags used in log messages to help operators identify event types. To find
243
243
  | `[SPREAD-CORRECTION]` | `order/grid.ts` | Partial order spread correction |
244
244
  | `[STRATEGY]` | `order/strategy.ts` | Fee event cache and strategy decisions |
245
245
  | `[RECONCILE]` | `order/utils/validate.ts` | Grid reconciliation ([GRID_RECONCILE.md](GRID_RECONCILE.md)) |
246
+ | `[GAP-EVAC]` | `order/utils/validate.ts`, `order/manager.ts`, `dexbot_startup_runtime.ts`, `dexbot_state_recovery.ts` | Stuck in-band (gap-band) order streak warnings, cancel-only evacuation teeth, persisted-streak restore counts |
247
+ | `[GRID-TYPE-CORRECT]` | `order/grid.ts` | One-time backfill retype of legacy empty slots to rail-typed holes on load |
248
+ | `[LAST-FILL-GUARD]` | `dexbot_cow_runtime.ts` | Last-fill-guard blocks plus gap-evacuation bypass allows/stale-stamp downgrades |
246
249
  | `[TRANSPORT]` | `bitshares-native/transport.ts` | WebSocket keep-alive and reconnect |
247
250
 
248
251
  ## 1.4.8 Markers
package/docs/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  This directory contains the comprehensive technical documentation for the DEXBot2 trading bot. It is designed to guide developers from high-level architecture down to the nuances of fund accounting and state management.
4
4
 
5
- **Version context:** v1.5.0 (released).
5
+ **Version context:** v1.5.1 (released).
6
6
 
7
7
  ---
8
8
 
@@ -144,7 +144,7 @@ This directory contains the comprehensive technical documentation for the DEXBot
144
144
 
145
145
  ### 🧭 [Evolution Report](EVOLUTION.md)
146
146
  *Project timeline and major architecture phases.*
147
- - **Coverage**: Historical milestones from the initial December 2025 bootstrap through the v1.5.0 stable release (grid persistence safety, dust pipeline fix, net inventory lots); credit/debt runtime and maintenance hardening are covered under Phase 5 (Mar–Jun 2026)
147
+ - **Coverage**: Historical milestones from the initial December 2025 bootstrap through the v1.5.1 stable release (grid persistence safety, dust pipeline fix, net inventory lots); credit/debt runtime and maintenance hardening are covered under Phase 5 (Mar–Jun 2026)
148
148
  - **Focus**: Architecture evolution, release history, test growth, and documentation changes
149
149
 
150
150
  ### 🗒️ [Changelog](../CHANGELOG.md)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dexbot",
3
- "version": "1.5.0",
3
+ "version": "1.5.1",
4
4
  "description": "The first open source trading bot with zero runtime dependencies and a fully adaptive market making strategy.",
5
5
  "main": "dist/modules/dexbot_class.js",
6
6
  "exports": {