@maka/maka-cli 5.72.0 → 5.74.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.
Files changed (88) hide show
  1. package/bundle/typescript/package.json +1 -1
  2. package/bundle/typescript/src/commands/game/_index.d.ts +0 -4
  3. package/bundle/typescript/src/commands/game/_index.js +6 -5
  4. package/bundle/typescript/src/commands/game/_index.js.map +1 -1
  5. package/bundle/typescript/src/commands/game/sideQuest/commands/backlog.js +18 -3
  6. package/bundle/typescript/src/commands/game/sideQuest/commands/backlog.js.map +1 -1
  7. package/bundle/typescript/src/commands/game/sideQuest/commands/breach.d.ts +1 -0
  8. package/bundle/typescript/src/commands/game/sideQuest/commands/breach.js +3 -0
  9. package/bundle/typescript/src/commands/game/sideQuest/commands/breach.js.map +1 -1
  10. package/bundle/typescript/src/commands/game/sideQuest/commands/bypass-command.d.ts +4 -0
  11. package/bundle/typescript/src/commands/game/sideQuest/commands/bypass-command.js +14 -0
  12. package/bundle/typescript/src/commands/game/sideQuest/commands/bypass-command.js.map +1 -1
  13. package/bundle/typescript/src/commands/game/sideQuest/commands/hack.d.ts +2 -0
  14. package/bundle/typescript/src/commands/game/sideQuest/commands/hack.js +25 -6
  15. package/bundle/typescript/src/commands/game/sideQuest/commands/hack.js.map +1 -1
  16. package/bundle/typescript/src/commands/game/sideQuest/commands/look.js +17 -1
  17. package/bundle/typescript/src/commands/game/sideQuest/commands/look.js.map +1 -1
  18. package/bundle/typescript/src/commands/game/sideQuest/commands/mark.js +8 -3
  19. package/bundle/typescript/src/commands/game/sideQuest/commands/mark.js.map +1 -1
  20. package/bundle/typescript/src/commands/game/sideQuest/commands/sheet.js +2 -2
  21. package/bundle/typescript/src/commands/game/sideQuest/commands/sheet.js.map +1 -1
  22. package/bundle/typescript/src/commands/game/sideQuest/commands/snoop.js +8 -1
  23. package/bundle/typescript/src/commands/game/sideQuest/commands/snoop.js.map +1 -1
  24. package/bundle/typescript/src/commands/game/sideQuest/commands/sustain.d.ts +48 -0
  25. package/bundle/typescript/src/commands/game/sideQuest/commands/sustain.js +135 -0
  26. package/bundle/typescript/src/commands/game/sideQuest/commands/sustain.js.map +1 -0
  27. package/bundle/typescript/src/commands/game/sideQuest/factories/scene-chunks.js +3 -0
  28. package/bundle/typescript/src/commands/game/sideQuest/factories/scene-chunks.js.map +1 -1
  29. package/bundle/typescript/src/commands/game/sideQuest/factories/scene-factory.js +38 -2
  30. package/bundle/typescript/src/commands/game/sideQuest/factories/scene-factory.js.map +1 -1
  31. package/bundle/typescript/src/commands/game/sideQuest/game.d.ts +49 -0
  32. package/bundle/typescript/src/commands/game/sideQuest/game.js +93 -11
  33. package/bundle/typescript/src/commands/game/sideQuest/game.js.map +1 -1
  34. package/bundle/typescript/src/commands/game/sideQuest/headless.js +44 -3
  35. package/bundle/typescript/src/commands/game/sideQuest/headless.js.map +1 -1
  36. package/bundle/typescript/src/commands/game/sideQuest/models/npc.d.ts +28 -0
  37. package/bundle/typescript/src/commands/game/sideQuest/models/npc.js +62 -1
  38. package/bundle/typescript/src/commands/game/sideQuest/models/npc.js.map +1 -1
  39. package/bundle/typescript/src/commands/game/sideQuest/models/player.d.ts +39 -6
  40. package/bundle/typescript/src/commands/game/sideQuest/models/player.js +74 -31
  41. package/bundle/typescript/src/commands/game/sideQuest/models/player.js.map +1 -1
  42. package/bundle/typescript/src/commands/game/sideQuest/utilities/backlog-dump.js +6 -6
  43. package/bundle/typescript/src/commands/game/sideQuest/utilities/backlog-dump.js.map +1 -1
  44. package/bundle/typescript/src/commands/game/sideQuest/utilities/combat-exchange.d.ts +21 -7
  45. package/bundle/typescript/src/commands/game/sideQuest/utilities/combat-exchange.js +50 -30
  46. package/bundle/typescript/src/commands/game/sideQuest/utilities/combat-exchange.js.map +1 -1
  47. package/bundle/typescript/src/commands/game/sideQuest/utilities/dice.d.ts +63 -0
  48. package/bundle/typescript/src/commands/game/sideQuest/utilities/dice.js +41 -0
  49. package/bundle/typescript/src/commands/game/sideQuest/utilities/dice.js.map +1 -1
  50. package/bundle/typescript/src/commands/game/sideQuest/utilities/grid-names.d.ts +43 -0
  51. package/bundle/typescript/src/commands/game/sideQuest/utilities/grid-names.js +83 -0
  52. package/bundle/typescript/src/commands/game/sideQuest/utilities/grid-names.js.map +1 -0
  53. package/bundle/typescript/src/commands/game/sideQuest/utilities/identity.d.ts +26 -0
  54. package/bundle/typescript/src/commands/game/sideQuest/utilities/identity.js +37 -0
  55. package/bundle/typescript/src/commands/game/sideQuest/utilities/identity.js.map +1 -1
  56. package/bundle/typescript/src/commands/game/sideQuest/utilities/map-view.d.ts +19 -0
  57. package/bundle/typescript/src/commands/game/sideQuest/utilities/map-view.js +22 -0
  58. package/bundle/typescript/src/commands/game/sideQuest/utilities/map-view.js.map +1 -1
  59. package/bundle/typescript/src/commands/game/sideQuest/utilities/repro-launch.d.ts +1 -1
  60. package/bundle/typescript/src/commands/game/sideQuest/utilities/session-legs.d.ts +74 -0
  61. package/bundle/typescript/src/commands/game/sideQuest/utilities/session-legs.js +74 -0
  62. package/bundle/typescript/src/commands/game/sideQuest/utilities/session-legs.js.map +1 -0
  63. package/bundle/typescript/src/commands/game/sideQuest/utilities/splash.d.ts +6 -0
  64. package/bundle/typescript/src/commands/game/sideQuest/utilities/splash.js +60 -0
  65. package/bundle/typescript/src/commands/game/sideQuest/utilities/splash.js.map +1 -0
  66. package/bundle/typescript/src/commands/game/sideQuest-backlog.sub.cmd.js +15 -10
  67. package/bundle/typescript/src/commands/game/sideQuest-backlog.sub.cmd.js.map +1 -1
  68. package/bundle/typescript/src/commands/game/sideQuest.sub.cmd.d.ts +1 -0
  69. package/bundle/typescript/src/commands/game/sideQuest.sub.cmd.js +103 -56
  70. package/bundle/typescript/src/commands/game/sideQuest.sub.cmd.js.map +1 -1
  71. package/bundle/typescript/src/commands/registry.js +1 -1
  72. package/bundle/typescript/src/commands/registry.js.map +1 -1
  73. package/package.json +1 -1
  74. package/bundle/typescript/src/commands/game/battleship.sub.cmd.d.ts +0 -1
  75. package/bundle/typescript/src/commands/game/battleship.sub.cmd.js +0 -12
  76. package/bundle/typescript/src/commands/game/battleship.sub.cmd.js.map +0 -1
  77. package/bundle/typescript/src/commands/game/play.command.d.ts +0 -3
  78. package/bundle/typescript/src/commands/game/play.command.js +0 -18
  79. package/bundle/typescript/src/commands/game/play.command.js.map +0 -1
  80. package/bundle/typescript/src/commands/game/pong.sub.cmd.d.ts +0 -1
  81. package/bundle/typescript/src/commands/game/pong.sub.cmd.js +0 -12
  82. package/bundle/typescript/src/commands/game/pong.sub.cmd.js.map +0 -1
  83. package/bundle/typescript/src/commands/game/snake.sub.cmd.d.ts +0 -1
  84. package/bundle/typescript/src/commands/game/snake.sub.cmd.js +0 -12
  85. package/bundle/typescript/src/commands/game/snake.sub.cmd.js.map +0 -1
  86. package/bundle/typescript/src/commands/game/tetris.sub.cmd.d.ts +0 -1
  87. package/bundle/typescript/src/commands/game/tetris.sub.cmd.js +0 -12
  88. package/bundle/typescript/src/commands/game/tetris.sub.cmd.js.map +0 -1
@@ -1,5 +1,5 @@
1
1
  import { NPC } from '../models/npc.js';
2
- import { rollPool, formatRoll } from './dice.js';
2
+ import { rollPool, formatRoll, rollInitiativeScore, formatInitiative, INITIATIVE_PASS_DROP } from './dice.js';
3
3
  import { leaveMatrix, leaveDrone } from './planes.js';
4
4
  import { spotOf, spotCell, seatingIn, actorCell, OPEN_FLOOR, isInCover, coverAvailableFor, takeCoverHere } from './spots.js';
5
5
  import { heldBy } from './grapple.js';
@@ -177,46 +177,66 @@ export class CombatExchange {
177
177
  return true;
178
178
  }
179
179
  /**
180
- * The initiative roll-off that opens an exchange: Reaction + Intuition
181
- * (+ live commlink AR bonus, see Player.getInitiativePool). The winner
182
- * acts first -- attacking someone faster than you means eating their
183
- * strike before yours lands -- with ties going to the aggressor. Winning
184
- * by 3+ net hits earns an INITIATIVE PASS: one extra strike at the end
185
- * of the exchange (the wired-reflexes speed fantasy, without a full
186
- * action-economy system).
180
+ * THE INITIATIVE SCORE that opens an exchange (SR5 p.159, p.474):
181
+ * the attribute plus the SUM of the initiative dice, highest acting
182
+ * first. Ties go to the aggressor.
183
+ *
184
+ * IT USED TO BE A DICE POOL, counting hits, and that was a different
185
+ * mechanic wearing initiative's name. The damage was not a wrong
186
+ * number, it was a wrong SHAPE: hits on 3d6 span 0-3 and cluster at
187
+ * 1, so a hot-sim decker and a slow guard came out nearly level, and
188
+ * the dice barely mattered next to the attribute. Scores span roughly
189
+ * 10-30 and the gap between a wired samurai and a civilian is the
190
+ * whole point of the stat.
191
+ *
192
+ * AN EXTRA STRIKE IS AN INITIATIVE PASS, and now it uses the book's
193
+ * own number. p.160: after everyone acts, all scores drop by 10 and
194
+ * anyone still above 0 goes again. In a two-actor exchange that is
195
+ * exactly "the winner is more than 10 ahead of the loser's remaining
196
+ * score", so the threshold is 10 rather than the old 3-net-hits --
197
+ * which, read against scores instead of hits, would have fired on
198
+ * nearly every exchange. The mechanic is unchanged; only the number
199
+ * it is measured in changed, which is what made rebasing it part of
200
+ * this fix rather than a separate one.
187
201
  */
188
202
  rollInitiative(aggressor, defender) {
189
203
  // Combat Paralysis cashes in here: pool halved (rounded up) for the
190
204
  // opening roll-off of a fresh fight, then the freeze passes.
191
205
  const freezeLines = [];
192
- const initiativePool = (c) => {
193
- const pool = c.getInitiativePool();
194
- if (!c.paralysisFreeze)
195
- return pool;
196
- c.paralysisFreeze = false;
197
- freezeLines.push(` ${c.name} FREEZES as it starts -- initiative halved this exchange.`);
198
- return Math.ceil(pool / 2);
199
- };
200
- // RALLY (SR5e p.141-142, commands/lead.ts): a banked +score bonus,
201
- // consumed on this contest -- initiative SCORE maps to hits here.
206
+ // RALLY (SR5e p.141-142, commands/lead.ts): a banked bonus, consumed
207
+ // on this contest. It was always written as a +SCORE bonus and had
208
+ // to be read as hits; now it is simply what it says it is.
202
209
  const rallyOf = (c) => {
203
210
  const bonus = c.rallyInitBonus ?? 0;
204
211
  if (bonus > 0)
205
212
  c.rallyInitBonus = 0;
206
213
  return bonus;
207
214
  };
208
- const aggRoll = rollPool(initiativePool(aggressor));
209
- const defRoll = rollPool(initiativePool(defender));
210
- const aggRally = rallyOf(aggressor);
211
- const defRally = rallyOf(defender);
212
- const aggHits = aggRoll.hits + aggRally;
213
- const defHits = defRoll.hits + defRally;
214
- const aggressorFirst = aggHits >= defHits;
215
+ // Combat Paralysis (p.80) cashes in here: RAW is "the first
216
+ // Initiative SCORE of a combat is halved", which the engine could
217
+ // only approximate while initiative was a pool -- it halved the
218
+ // dice instead. Now it halves the thing the quality actually names.
219
+ const scoreFor = (c) => {
220
+ const roll = rollInitiativeScore(c.getInitiativeAttribute(), c.getInitiativeDice());
221
+ const withRally = roll.score + rallyOf(c);
222
+ if (!c.paralysisFreeze)
223
+ return { ...roll, score: withRally };
224
+ c.paralysisFreeze = false;
225
+ freezeLines.push(` ${c.name} FREEZES as it starts -- initiative halved this exchange.`);
226
+ return { ...roll, score: Math.ceil(withRally / 2) };
227
+ };
228
+ const aggRoll = scoreFor(aggressor);
229
+ const defRoll = scoreFor(defender);
230
+ const aggScore = aggRoll.score;
231
+ const defScore = defRoll.score;
232
+ const aggressorFirst = aggScore >= defScore;
215
233
  const first = aggressorFirst ? aggressor : defender;
216
234
  const second = aggressorFirst ? defender : aggressor;
217
- const net = Math.abs(aggHits - defHits);
218
- const extraStriker = net >= 3 ? first : null;
219
- this.logger.write(`Initiative: ${aggressor.name} ${aggHits} vs ${defender.name} ${defHits} -- ${first.name} first${extraStriker ? ' with an extra strike' : ''}.`);
235
+ // p.160: everyone drops 10 after the pass; anyone still above zero
236
+ // acts again. Between two actors that is exactly this.
237
+ const net = Math.abs(aggScore - defScore);
238
+ const extraStriker = net > INITIATIVE_PASS_DROP ? first : null;
239
+ this.logger.write(`Initiative: ${aggressor.name} ${aggScore} vs ${defender.name} ${defScore} -- ${first.name} first${extraStriker ? ' with an extra strike' : ''}.`);
220
240
  // Readability split: the dice anatomy is Mechanics-ticker material
221
241
  // (metaLines); the world log keeps only what the player FEELS --
222
242
  // who froze, who moves first (lines). Callers rebuild AI-history
@@ -225,8 +245,8 @@ export class CombatExchange {
225
245
  // hard to read) -- each carries its own right-justified wave.
226
246
  const metaLines = [
227
247
  `Initiative:`,
228
- ` ${aggressor.name}: ${formatRoll(aggRoll)}${aggRally > 0 ? ` +${aggRally} rally` : ''}`,
229
- ` ${defender.name}: ${formatRoll(defRoll)}${defRally > 0 ? ` +${defRally} rally` : ''}`,
248
+ ` ${aggressor.name}: ${formatInitiative(aggRoll)}`,
249
+ ` ${defender.name}: ${formatInitiative(defRoll)}`,
230
250
  ];
231
251
  const lines = [
232
252
  ...freezeLines,
@@ -1 +1 @@
1
- {"version":3,"file":"combat-exchange.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/utilities/combat-exchange.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAGvC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC7H,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAiC5E;;;;;;;;;GASG;AACH,MAAM,OAAO,cAAc;IAaf;IACA;IACA;IAdV,kEAAkE;IAClE,MAAM,CAAU,OAAO,GAAG,GAAG,CAAC;IAE9B;;;;;OAKG;IACH,MAAM,CAAU,qBAAqB,GAAG,IAAI,CAAC;IAE7C,YACU,KAAY,EACZ,MAAc,EACd,KAAmB;QAFnB,UAAK,GAAL,KAAK,CAAO;QACZ,WAAM,GAAN,MAAM,CAAQ;QACd,UAAK,GAAL,KAAK,CAAc;IAC1B,CAAC;IAEJ;;;;;;;;OAQG;IACK,WAAW,GAAqB,EAAE,CAAC;IAE3C,aAAa,CAAC,MAAoB,EAAE,OAAqC,EAAE;QACzE,mEAAmE;QACnE,gEAAgE;QAChE,KAAK,MAAM,SAAS,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC;YAC7C,IAAI,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC5C,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YACjD,CAAC;QACH,CAAC;QAED,oEAAoE;QACpE,qEAAqE;QACrE,mEAAmE;QACnE,oEAAoE;QACpE,qEAAqE;QACrE,6DAA6D;QAC7D,MAAM,SAAS,GAAa,EAAE,CAAC;QAC/B,mEAAmE;QACnE,MAAM,UAAU,GAAG,CAAC,CAAe,EAAE,EAAE,CACrC,CAAC,CAAC,KAAK,KAAK,MAAM,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,cAAc,KAAK,KAAK,CAAC,CAAC;QAC5E,KAAK,MAAM,SAAS,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC;YAC7C,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;gBAAE,SAAS;YACrC,MAAM,KAAK,GAAG,SAAS,CAAC,UAAU,EAAE,CAAC;YACrC,IAAI,KAAK,EAAE,CAAC;gBACV,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC,IAAI,UAAU,KAAK,CAAC,IAAI,yBAAyB,CAAC,CAAC;gBAClF,SAAS,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,IAAI,UAAU,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC;YAC3D,CAAC;QACH,CAAC;QAED,oEAAoE;QACpE,oDAAoD;QACpD,IAAI,CAAC,WAAW,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACxC,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC;QAC7B,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC;QAEzB,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,gEAAgE;QAChE,kEAAkE;QAClE,4DAA4D;QAC5D,+DAA+D;QAC/D,iEAAiE;QACjE,oEAAoE;QACpE,+DAA+D;QAC/D,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACjC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,iBAAiB,CAAC,CAAC,CAAC;gBAAE,aAAa,CAAC,CAAC,CAAC,CAAC;QAC9D,CAAC;QAED,iEAAiE;QACjE,gEAAgE;QAChE,iEAAiE;QACjE,0CAA0C;QAC1C,MAAM,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnE,IAAI,iBAAiB,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;YAC5C,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,YAAY,MAAM,CAAC,IAAI,gBAAgB,CAAC,EAAE,CAAC;gBACrE,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,MAAM,CAAC,IAAI,mEAAmE,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,EAAE,QAAQ,CAAC,CAAC;YAC/I,CAAC;QACH,CAAC;QAED,mEAAmE;QACnE,oEAAoE;QACpE,oEAAoE;QACpE,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC;QAE/B,oEAAoE;QACpE,0DAA0D;QAC1D,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEvB,qEAAqE;QACrE,kEAAkE;QAClE,qEAAqE;QACrE,qEAAqE;QACrE,mEAAmE;QACnE,qEAAqE;QACrE,MAAM,YAAY,GAAG,KAAK,CAAC;QAC3B,KAAK,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAU,EAAE,CAAC;YACvF,MAAM,UAAU,GAAG,SAAS,CAAC,cAAc,KAAK,KAAK,IAAI,GAAG,GAAG,SAAS,CAAC,cAAc,GAAG,YAAY,CAAC;YACvG,IAAI,UAAU,IAAI,SAAS,CAAC,UAAU,CAAC,kBAAkB,CAAC;gBAAE,SAAS,CAAC,eAAe,GAAG,IAAI,CAAC;YAC7F,IAAI,UAAU,EAAE,CAAC;gBACf,yDAAyD;gBACzD,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,SAAS,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACrI,IAAI,WAAW,IAAI,CAAC,WAAW,CAAC,QAAQ,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;oBACnD,WAAW,CAAC,QAAQ,GAAG,CAAC,WAAW,CAAC,QAAQ,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;oBACvD,8DAA8D;oBAC9D,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,SAAS,CAAC,IAAI,2BAA2B,WAAW,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,WAAW,WAAW,CAAC,QAAQ,SAAS,EAAE,OAAO,CAAC,CAAC;gBACvK,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,MAAM,CAAC;QACnC,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,GAAG,CAAC;QAChC,MAAM,CAAC,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC;QACnC,MAAM,CAAC,cAAc,GAAG,GAAG,CAAC;QAE5B,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,wEAAwE;IACxE,eAAe;QACb,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACzC,SAAS,CAAC,UAAU,GAAG,KAAK,CAAC;QAC/B,CAAC;IACH,CAAC;IAED;;;;qCAIiC;IACjC,kBAAkB;QAChB,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC/E,KAAK,MAAM,SAAS,IAAI,QAAQ,EAAE,CAAC;YACjC,IAAI,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC5C,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAC/C,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,UAA4B,EAAE,SAAS,GAAG,KAAK;QACtE,MAAM,IAAI,GAAG,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;QACtD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QACxC,OAAO,IAAI,EAAE,EAAE,CAAC;YACd,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,QAAQ;gBAAE,OAAO,KAAK,CAAC;YACzC,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;QACzD,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;OAQG;IACH,cAAc,CAAC,SAAuB,EAAE,QAAsB;QAO5D,oEAAoE;QACpE,6DAA6D;QAC7D,MAAM,WAAW,GAAa,EAAE,CAAC;QACjC,MAAM,cAAc,GAAG,CAAC,CAAe,EAAU,EAAE;YACjD,MAAM,IAAI,GAAG,CAAC,CAAC,iBAAiB,EAAE,CAAC;YACnC,IAAI,CAAC,CAAC,CAAC,eAAe;gBAAE,OAAO,IAAI,CAAC;YACpC,CAAC,CAAC,eAAe,GAAG,KAAK,CAAC;YAC1B,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,2DAA2D,CAAC,CAAC;YACzF,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;QAC7B,CAAC,CAAC;QACF,mEAAmE;QACnE,kEAAkE;QAClE,MAAM,OAAO,GAAG,CAAC,CAAe,EAAU,EAAE;YAC1C,MAAM,KAAK,GAAG,CAAC,CAAC,cAAc,IAAI,CAAC,CAAC;YACpC,IAAI,KAAK,GAAG,CAAC;gBAAE,CAAC,CAAC,cAAc,GAAG,CAAC,CAAC;YACpC,OAAO,KAAK,CAAC;QACf,CAAC,CAAC;QACF,MAAM,OAAO,GAAG,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC;QACpD,MAAM,OAAO,GAAG,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC;QACnD,MAAM,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;QACpC,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;QACnC,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,GAAG,QAAQ,CAAC;QACxC,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,GAAG,QAAQ,CAAC;QACxC,MAAM,cAAc,GAAG,OAAO,IAAI,OAAO,CAAC;QAC1C,MAAM,KAAK,GAAG,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC;QACpD,MAAM,MAAM,GAAG,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;QACrD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,OAAO,CAAC,CAAC;QACxC,MAAM,YAAY,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;QAE7C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,SAAS,CAAC,IAAI,IAAI,OAAO,OAAO,QAAQ,CAAC,IAAI,IAAI,OAAO,OAAO,KAAK,CAAC,IAAI,SAAS,YAAY,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACnK,mEAAmE;QACnE,iEAAiE;QACjE,iEAAiE;QACjE,qEAAqE;QACrE,mEAAmE;QACnE,8DAA8D;QAC9D,MAAM,SAAS,GAAG;YAChB,aAAa;YACb,KAAK,SAAS,CAAC,IAAI,KAAK,UAAU,CAAC,OAAO,CAAC,GAAG,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,QAAQ,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE;YACzF,KAAK,QAAQ,CAAC,IAAI,KAAK,UAAU,CAAC,OAAO,CAAC,GAAG,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,QAAQ,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE;SACzF,CAAC;QACF,MAAM,KAAK,GAAG;YACZ,GAAG,WAAW;YACd,GAAG,KAAK,CAAC,IAAI,gBAAgB,YAAY,CAAC,CAAC,CAAC,qDAAqD,CAAC,CAAC,CAAC,EAAE,EAAE;SACzG,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;IAC3D,CAAC;IAED;;;;;OAKG;IACH,eAAe;QACb,qEAAqE;QACrE,qEAAqE;QACrE,oEAAoE;QACpE,gEAAgE;QAChE,4CAA4C;QAC5C,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CACtC,CAAC,CAAC,eAAe,KAAK,IAAI,CAAC,KAAK,CAAC,eAAe,IAAI,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IACnF,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,QAAQ,CAAC,KAAe,EAAE,OAAiB,EAAE;QACjD,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;YAAE,OAAO;QACjF,oEAAoE;QACpE,mEAAmE;QACnE,mEAAmE;QACnE,iEAAiE;QACjE,0DAA0D;QAC1D,MAAM,UAAU,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;QAC7D,KAAK,MAAM,CAAC,IAAI,IAAI;YAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;QACjE,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;YAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;QAC3E,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;QAC1B,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;IAC5E,CAAC;IAED;;;;;;OAMG;IACH,aAAa,CAAC,QAAsB,EAAE,QAAsB;QAC1D,MAAM,MAAM,GAAG,QAAQ,CAAC,gBAAgB,EAAE,CAAC;QAC3C,oEAAoE;QACpE,iEAAiE;QACjE,uEAAuE;QACvE,sEAAsE;QACtE,iEAAiE;QACjE,0CAA0C;QAC1C,MAAM,UAAU,GAAG,CAAC,QAAQ,CAAC,KAAK,KAAK,MAAM,IAAI,QAAQ,CAAC,WAAW,CAAC;YACpE,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,SAAS,EAAE,MAAM,IAAI,QAAQ,CAAC,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI,SAAS;YAC1F,CAAC,CAAC,SAAS,CAAC;QAEd,mEAAmE;QACnE,uCAAuC;QACvC,MAAM,SAAS,GAAG,QAAQ,CAAC,gBAAgB,EAAE,CAAC;QAE9C,kEAAkE;QAClE,sEAAsE;QACtE,mEAAmE;QACnE,iEAAiE;QACjE,qEAAqE;QACrE,kEAAkE;QAClE,sEAAsE;QACtE,oEAAoE;QACpE,0BAA0B;QAC1B,MAAM,WAAW,GAAG,QAAQ,CAAC,KAAK,KAAK,MAAM,IAAI,CAAC,CAAC,QAAQ,CAAC,WAAW,IAAI,QAAQ,CAAC,gBAAgB,EAAE,CAAC,CAAC;QACxG,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC;QACrE,MAAM,YAAY,GAAG,CAAC,WAAW,IAAI,CAAC,WAAW,CAAC,IAAI,SAAS,CAAC;QAEhE,IAAI,UAAU,EAAE,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3E,OAAO;gBACL,KAAK,EAAE,sBAAsB,UAAU,CAAC,IAAI,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,KAAK,EAAE;gBAC5G,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,aAAa,EAAE,GAAG,MAAM,CAAC,SAAS,GAAG,SAAS,CAAC;gBAC1E,UAAU,EAAE,CAAC;gBACb,QAAQ,EAAE,QAAQ,CAAC,WAAW,EAAE;gBAChC,QAAQ,EAAE,CAAC,WAAW,IAAI,SAAS;aACpC,CAAC;QACJ,CAAC;QAED,qEAAqE;QACrE,sEAAsE;QACtE,sEAAsE;QACtE,sEAAsE;QACtE,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC;QAC1C,MAAM,UAAU,GAAG,EAAE,GAAG,CAAC,IAAI,QAAQ,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,QAAQ,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAEpG,OAAO;YACL,KAAK,EAAE,QAAQ,MAAM,CAAC,IAAI,GAAG,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,UAAU,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YAC3E,IAAI,EAAE,QAAQ,CAAC,aAAa,EAAE,GAAG,SAAS;YAC1C,UAAU,EAAE,MAAM,CAAC,MAAM;YACzB,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,WAAW,EAAE,GAAG,UAAU,CAAC;YAC1D,UAAU,EAAE,UAAU,IAAI,SAAS;YACnC,QAAQ,EAAE,YAAY;SACvB,CAAC;IACJ,CAAC;IAED;;;;;;;OAOG;IACK,cAAc,CAAC,QAAsB,EAAE,QAAsB;QACnE,MAAM,IAAI,GAAG,QAAQ,CAAC,eAAe,CAAC;QACtC,IAAI,CAAC,IAAI,IAAI,QAAQ,CAAC,eAAe,KAAK,IAAI;YAAE,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;QACrE,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;QACnC,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;QACnC,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,SAAS;YAAE,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;QAC7E,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAC/B,oEAAoE;QACpE,oEAAoE;QACpE,mDAAmD;QACnD,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;QAC9B,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;QAC1E,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;QAC1E,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;YAAE,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;QAC5C,MAAM,WAAW,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;QAC/G,MAAM,KAAK,GAAG,WAAW,KAAK,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,KAAK,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC7H,OAAO,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC;IACjD,CAAC;IAED;;;;;;;;OAQG;IACH,aAAa,CAAC,QAAsB,EAAE,QAAsB,EAAE,OAAwB;QACpF,MAAM,MAAM,GAAG,OAAO,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACjE,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,MAAM,IAAI,GAAa,EAAE,CAAC;QAC1B,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,mDAAmD;QAExE,0DAA0D;QAC1D,IAAI,MAAM,CAAC,UAAU,EAAE,SAAS,EAAE,EAAE,CAAC;YACnC,MAAM,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC;YAC9B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,IAAI,UAAU,MAAM,CAAC,UAAU,CAAC,IAAI,KAAK,MAAM,CAAC,UAAU,CAAC,IAAI,gBAAgB,CAAC,CAAC;QACjH,CAAC;QAED,8DAA8D;QAC9D,wCAAwC;QACxC,MAAM,QAAQ,GAAG,QAAQ,CAAC,YAAY,IAAI,CAAC,CAAC;QAC5C,IAAI,QAAQ,GAAG,CAAC;YAAE,QAAQ,CAAC,YAAY,GAAG,CAAC,CAAC;QAC5C,MAAM,QAAQ,GAAG,QAAQ,CAAC,iBAAiB,IAAI,CAAC,CAAC;QACjD,IAAI,QAAQ,GAAG,CAAC;YAAE,QAAQ,CAAC,iBAAiB,GAAG,CAAC,CAAC;QACjD,kEAAkE;QAClE,oEAAoE;QACpE,8DAA8D;QAC9D,iEAAiE;QACjE,qDAAqD;QACrD,IAAI,YAAY,GAAG,CAAC,CAAC;QACrB,IAAI,kBAAkB,GAAG,EAAE,CAAC;QAC5B,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,IAAI,OAAO,QAAQ,CAAC,QAAQ,KAAK,UAAU,IAAI,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC;gBACnE,YAAY,GAAG,QAAQ,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;YACzD,CAAC;YACD,gEAAgE;YAChE,+DAA+D;YAC/D,gEAAgE;YAChE,qBAAqB;YACrB,MAAM,IAAI,GAAG,QAAQ,CAAC,eAAe,CAAC;YACtC,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,UAAU,IAAI,EAAE,CAAC;YAC1D,MAAM,WAAW,GAAG,CAAC,CAAe,EAAE,EAAE,CACtC,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;YACvE,IAAI,IAAI,IAAI,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAClC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC;oBACrC,IAAI,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,QAAQ;wBAAE,SAAS;oBACvD,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,KAAK,CAAC;wBAAE,SAAS;oBACnD,IAAI,OAAO,KAAK,CAAC,QAAQ,KAAK,UAAU,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;wBAAE,SAAS;oBACxE,MAAM,OAAO,GAAG,KAAK,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;oBACrD,IAAI,OAAO,GAAG,YAAY,EAAE,CAAC;wBAC3B,YAAY,GAAG,OAAO,CAAC;wBACvB,kBAAkB,GAAG,KAAK,CAAC,IAAI,CAAC;oBAClC,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,iEAAiE;QACjE,6DAA6D;QAC7D,kEAAkE;QAClE,mEAAmE;QACnE,mEAAmE;QACnE,gEAAgE;QAChE,MAAM,OAAO,GAAG,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,SAAS,EAAE,CAAC;QACnE,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAClF,MAAM,WAAW,GAAG,MAAM,CAAC,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACnG,MAAM,KAAK,GAAG,WAAW,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1E,MAAM,QAAQ,GAAG,KAAK,KAAK,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QACvD,8DAA8D;QAC9D,6DAA6D;QAC7D,MAAM,SAAS,GAAG,SAAS,CAAC,QAAQ,CAAC;YACnC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACtE,CAAC,CAAC,CAAC,CAAC;QAEN,kEAAkE;QAClE,8DAA8D;QAC9D,kEAAkE;QAClE,iEAAiE;QACjE,QAAQ;QACR,MAAM,WAAW,GAAG,CAAC,GAAiB,EAAW,EAAE,CACjD,GAAG,CAAC,OAAO,KAAK,OAAO,IAAI,CAAC,CAAC,MAAM,CAAC,GAAa,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QACjE,oEAAoE;QACpE,iCAAiC;QACjC,MAAM,aAAa,GAAG,OAAO,IAAI,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1F,yDAAyD;QACzD,MAAM,UAAU,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACjD,iEAAiE;QACjE,iDAAiD;QACjD,MAAM,YAAY,GAAG,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAExF,8DAA8D;QAC9D,kEAAkE;QAClE,mEAAmE;QACnE,kEAAkE;QAClE,iEAAiE;QACjE,oEAAoE;QACpE,mEAAmE;QACnE,2BAA2B;QAC3B,EAAE;QACF,kEAAkE;QAClE,yDAAyD;QACzD,mEAAmE;QACnE,oEAAoE;QACpE,6DAA6D;QAC7D,wCAAwC;QACxC,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO;YAChC,CAAC,CAAC,MAAM,CAAC,KAAK;YACd,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAC/C,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,GAAG,QAAQ,GAAG,QAAQ,GAAG,aAAa,GAAG,UAAU,EAAE,WAAW,CAAC,CAAC;QACrG,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC,cAAc,EAAE,GAAG,QAAQ,GAAG,YAAY,GAAG,SAAS,GAAG,YAAY,CAAC,CAAC;QACzG,MAAM,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,YAAY,QAAQ,CAAC,IAAI,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QAC3E,IAAI,CAAC,IAAI,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC;QACxB,MAAM,SAAS,GAAG,WAAW,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;YACjD,CAAC,CAAC,KAAK,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,QAAQ,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,OAAO,CAAC,MAAM,EAAE,WAAW,CAAC,QAAQ,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK;YAC7I,CAAC,CAAC,EAAE,CAAC;QACP,IAAI,CAAC,IAAI,CAAC,cAAc,UAAU,CAAC,MAAM,CAAC,GAAG,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,QAAQ,YAAY,CAAC,CAAC,CAAC,EAAE,GAAG,SAAS,EAAE,CAAC,CAAC;QAC3G,MAAM,SAAS,GAAG,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,SAAS,iBAAiB,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3F,IAAI,CAAC,IAAI,CAAC,cAAc,UAAU,CAAC,OAAO,CAAC,GAAG,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,QAAQ,YAAY,CAAC,CAAC,CAAC,EAAE,GAAG,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,YAAY,gBAAgB,kBAAkB,CAAC,CAAC,CAAC,OAAO,kBAAkB,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,SAAS,EAAE,CAAC,CAAC;QAEzO,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,EAAE,SAAS,EAAE,IAAI,MAAM,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC;YAC/E,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,IAAI,MAAM,MAAM,CAAC,UAAU,CAAC,IAAI,2CAA2C,CAAC;YAC7F,CAAC,CAAC,EAAE,CAAC;QAEP,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QAC3C,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;YAC1B,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,qFAAqF,CAAC,CAAC;YAC3G,OAAO,EAAE,KAAK,EAAE,CAAC,GAAG,KAAK,EAAE,GAAG,UAAU,CAAC,EAAE,IAAI,EAAE,CAAC;QACpD,CAAC;QACD,IAAI,OAAO,IAAI,CAAC,EAAE,CAAC;YACjB,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,OAAO,QAAQ,CAAC,IAAI,UAAU,CAAC,CAAC;YACpD,OAAO,EAAE,KAAK,EAAE,CAAC,GAAG,KAAK,EAAE,GAAG,UAAU,CAAC,EAAE,IAAI,EAAE,CAAC;QACpD,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,GAAG,OAAO,CAAC;QAC7C,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACvC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;QAChD,IAAI,CAAC,IAAI,CAAC,UAAU,OAAO,WAAW,QAAQ,mBAAmB,CAAC,CAAC;QACnE,IAAI,CAAC,IAAI,CAAC,cAAc,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAE5C,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;YAChB,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,OAAO,QAAQ,CAAC,IAAI,uCAAuC,CAAC,CAAC;YACjF,OAAO,EAAE,KAAK,EAAE,CAAC,GAAG,KAAK,EAAE,GAAG,UAAU,CAAC,EAAE,IAAI,EAAE,CAAC;QACpD,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,UAAU,CAAC,CAAC;QAEhC,iEAAiE;QACjE,mEAAmE;QACnE,kEAAkE;QAClE,+DAA+D;QAC/D,+DAA+D;QAC/D,oEAAoE;QACpE,iCAAiC;QACjC,IAAI,QAAQ,YAAY,GAAG,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC;YACpD,MAAM,MAAM,GAAG,QAAQ,CAAC,WAAW,CAAC;YACpC,IAAI,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;gBACrB,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;gBAC9B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,IAAI,UAAU,KAAK,6BAA6B,QAAQ,CAAC,IAAI,KAAK,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,aAAa,IAAI,CAAC,CAAC;gBAChJ,KAAK,CAAC,IAAI,CAAC,KAAK,QAAQ,CAAC,IAAI,UAAU,KAAK,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,qBAAqB,MAAM,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;gBACxH,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;oBACrB,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;oBAChD,KAAK,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC;gBACnE,CAAC;gBACD,OAAO,EAAE,KAAK,EAAE,CAAC,GAAG,KAAK,EAAE,GAAG,UAAU,CAAC,EAAE,IAAI,EAAE,CAAC;YACpD,CAAC;YACD,IAAI,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC;gBACzB,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;gBAC7B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,IAAI,UAAU,KAAK,2BAA2B,QAAQ,CAAC,IAAI,iBAAiB,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,YAAY,IAAI,CAAC,CAAC;gBACxJ,KAAK,CAAC,IAAI,CAAC,kDAAkD,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;gBACrF,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;oBACrB,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;oBAChD,KAAK,CAAC,IAAI,CAAC,0DAA0D,CAAC,CAAC;gBACzE,CAAC;gBACD,OAAO,EAAE,KAAK,EAAE,CAAC,GAAG,KAAK,EAAE,GAAG,UAAU,CAAC,EAAE,IAAI,EAAE,CAAC;YACpD,CAAC;QACH,CAAC;QAED,oEAAoE;QACpE,qEAAqE;QACrE,oEAAoE;QACpE,kEAAkE;QAClE,mEAAmE;QACnE,IAAI,QAAQ,CAAC,KAAK,KAAK,OAAO,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC;YACvD,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,CAAC;YACnC,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;YAC7B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,IAAI,UAAU,KAAK,mBAAmB,QAAQ,CAAC,IAAI,MAAM,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,aAAa,IAAI,CAAC,CAAC;YACpJ,KAAK,CAAC,IAAI,CAAC,KAAK,QAAQ,CAAC,IAAI,MAAM,KAAK,CAAC,IAAI,UAAU,KAAK,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;YACvH,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;YACjC,IAAI,QAAQ,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;gBAC/B,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;gBACzB,KAAK,CAAC,IAAI,CAAC,gDAAgD,GAAG,cAAc,QAAQ,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;YAC7G,CAAC;iBAAM,CAAC;gBACN,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;gBAClD,KAAK,CAAC,IAAI,CAAC,sCAAsC,IAAI,UAAU,QAAQ,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;gBACzF,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;oBACjB,KAAK,CAAC,IAAI,CAAC,6CAA6C,QAAQ,OAAO,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,oBAAoB,QAAQ,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;gBACtJ,CAAC;YACH,CAAC;YACD,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;gBACpB,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,IAAI,mDAAmD,CAAC,CAAC;gBAC/E,KAAK,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,+BAA+B,EAAE,CAAC,CAAC,CAAC;YAC7G,CAAC;YACD,OAAO,EAAE,KAAK,EAAE,CAAC,GAAG,KAAK,EAAE,GAAG,UAAU,CAAC,EAAE,IAAI,EAAE,CAAC;QACpD,CAAC;QAED,gEAAgE;QAChE,qEAAqE;QACrE,oEAAoE;QACpE,kEAAkE;QAClE,sEAAsE;QACtE,iEAAiE;QACjE,iEAAiE;QACjE,kEAAkE;QAClE,qEAAqE;QACrE,IAAI,QAAQ,CAAC,KAAK,KAAK,QAAQ,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;YACpD,MAAM,IAAI,GAAG,QAAQ,CAAC,UAAU,CAAC;YACjC,IAAI,IAAI,EAAE,CAAC;gBACT,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;gBAC3B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,IAAI,UAAU,KAAK,qBAAqB,QAAQ,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC;gBACjJ,KAAK,CAAC,IAAI,CAAC,KAAK,QAAQ,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,UAAU,KAAK,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;gBACpH,IAAI,QAAQ,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;oBAC/B,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;oBACjC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;oBAClD,KAAK,CAAC,IAAI,CAAC,mDAAmD,IAAI,UAAU,QAAQ,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;oBACtG,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;wBACjB,KAAK,CAAC,IAAI,CAAC,uCAAuC,QAAQ,OAAO,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,oBAAoB,QAAQ,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;oBAChJ,CAAC;gBACH,CAAC;gBACD,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;oBACnB,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,iDAAiD,CAAC,CAAC;oBAC5E,KAAK,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,6CAA6C,EAAE,CAAC,CAAC,CAAC;gBAC5H,CAAC;gBACD,OAAO,EAAE,KAAK,EAAE,CAAC,GAAG,KAAK,EAAE,GAAG,UAAU,CAAC,EAAE,IAAI,EAAE,CAAC;YACpD,CAAC;YACD,iEAAiE;QACnE,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,KAAK,KAAK,QAAQ,IAAI,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAEtF,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YACpD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,IAAI,UAAU,KAAK,YAAY,QAAQ,CAAC,IAAI,UAAU,QAAQ,CAAC,SAAS,IAAI,QAAQ,CAAC,YAAY,cAAc,QAAQ,IAAI,CAAC,CAAC;YAC3J,MAAM,OAAO,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC;YACzD,KAAK,CAAC,IAAI,CAAC,KAAK,QAAQ,CAAC,IAAI,UAAU,IAAI,QAAQ,OAAO,KAAK,QAAQ,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;YACzF,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;gBACjB,KAAK,CAAC,IAAI,CAAC,8CAA8C,QAAQ,OAAO,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,2BAA2B,QAAQ,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;YAC9J,CAAC;QACH,CAAC;aAAM,CAAC;YACN,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YAC3B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,IAAI,UAAU,KAAK,aAAa,QAAQ,CAAC,IAAI,KAAK,QAAQ,CAAC,WAAW,IAAI,QAAQ,CAAC,iBAAiB,IAAI,CAAC,CAAC;YACxI,KAAK,CAAC,IAAI,CAAC,KAAK,QAAQ,CAAC,IAAI,UAAU,KAAK,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;QAChH,CAAC;QACD,OAAO,EAAE,KAAK,EAAE,CAAC,GAAG,KAAK,EAAE,GAAG,UAAU,CAAC,EAAE,IAAI,EAAE,CAAC;IACpD,CAAC;IAED;;;;;;;;OAQG;IACH;;;;;;;;OAQG;IACH,KAAK,CAAC,qBAAqB,CAAC,MAAoB,EAAE,MAAe;QAC/D,MAAM,CAAC,GAAG,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;QAC3C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,mBAAmB,MAAM,CAAC,IAAI,gBAAgB,CAAC,CAAC,IAAI,gDAAgD,CAAC,CAAC;QACxH,MAAM,KAAK,GAAG,CAAC,kHAAkH,CAAC,CAAC;QACnI,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC3B,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QACjD,OAAO,CAAC,EAAE,EAAE,GAAG,KAAK,CAAC,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,YAAY,CAChB,MAAoB,EACpB,MAAoB,EACpB,IAAoE;QAEpE,MAAM,IAAI,GAAG,MAAM,CAAC,eAAe,CAAC;QACpC,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;QAC3D,MAAM,SAAS,GAAG,MAAM,KAAK,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;QAEpD,qEAAqE;QACrE,qEAAqE;QACrE,qEAAqE;QACrE,mEAAmE;QACnE,sEAAsE;QACtE,uEAAuE;QACvE,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,MAAM,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;gBACvE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,mBAAmB,MAAM,CAAC,IAAI,wDAAwD,CAAC,CAAC;gBAC1G,OAAO,EAAE,CAAC;YACZ,CAAC;YACD,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC;QAC7B,CAAC;aAAM,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;YACnD,mDAAmD;YACnD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,mBAAmB,MAAM,CAAC,IAAI,wDAAwD,CAAC,CAAC;YAC1G,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,MAAM,IAAI,GAAG,CAAC,IAAI,EAAE,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC;QAE9D,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,mBAAmB,MAAM,CAAC,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,IAAI,OAAO,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;QAC5F,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,MAAM,CAAC,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,IAAI,OAAO,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;QAEnF,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,KAAK,GAAG,CAAC,IAAI,EAAE,QAAQ,IAAI,2CAA2C,MAAM,CAAC,IAAI,qBAAqB,CAAC,CAAC;YAC9G,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAE3B,mEAAmE;YACnE,mEAAmE;YACnE,iEAAiE;YACjE,6DAA6D;YAC7D,kEAAkE;YAClE,kDAAkD;YAClD,IAAI,CAAC,IAAI,EAAE,KAAK,IAAI,IAAI,CAAC;mBACpB,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,iBAAiB,CAAC,QAAQ,CAAC;uBAChD,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,oBAAoB,EAAE,CAAC,MAAgB,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC;gBACjF,OAAO,CAAC,EAAE,EAAE,GAAG,KAAK,CAAC,CAAC;YACxB,CAAC;YAED,uEAAuE;YACvE,oEAAoE;YACpE,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,MAAgB,CAAC,CAAC;YAC5C,MAAM,YAAY,GAAG,IAAI,EAAE,YAAY,IAAI,iBAAiB,MAAM,CAAC,IAAI,uBAAuB,MAAM,CAAC,IAAI,GAAG,CAAC;YAC7G,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;gBAClC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;gBAC9C,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,uBAAuB,EAAE,KAAK,CAAC,CAAC;YAC3D,CAAC,CAAC,CAAC;YACH,OAAO,CAAC,EAAE,EAAE,GAAG,KAAK,CAAC,CAAC;QACxB,CAAC;QAED,IAAI,aAAa,EAAE,CAAC;YAClB,6DAA6D;YAC7D,iEAAiE;YACjE,gEAAgE;YAChE,2DAA2D;YAC3D,gEAAgE;YAChE,sBAAsB;YACtB,MAAM,KAAK,GAAG,CAAC,IAAI,EAAE,QAAQ,IAAI,GAAG,MAAM,CAAC,IAAI,0CAA0C,MAAM,CAAC,IAAI,sBAAsB,CAAC,CAAC;YAC5H,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC3B,IAAI,IAAI,EAAE,KAAK,IAAI,IAAI,EAAE,CAAC;gBACxB,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,oBAAoB,EAAE,CAAC,MAAgB,EAAE,QAAQ,CAAC,EAAE,CAAC;oBAC7E,OAAO,CAAC,EAAE,EAAE,GAAG,KAAK,CAAC,CAAC;gBACxB,CAAC;gBACD,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,MAAgB,CAAC,CAAC;gBAC5C,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,aAAa,EAAE,CAAC,MAAgB,CAAC,CAAC;gBACxD,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACtC,CAAC;YACD,OAAO,CAAC,EAAE,EAAE,GAAG,KAAK,CAAC,CAAC;QACxB,CAAC;QAED,qEAAqE;QACrE,sEAAsE;QACtE,sEAAsE;QACtE,kEAAkE;QAClE,mEAAmE;QACnE,yDAAyD;QACzD,MAAM,aAAa,GAAG,MAAM,YAAY,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC;QAC/E,MAAM,OAAO,GAAG,aAAa,KAAK,QAAQ;YACxC,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,uHAAuH;YACvI,CAAC,CAAC,aAAa,KAAK,QAAQ;gBAC1B,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,uHAAuH;gBACvI,CAAC,CAAC,aAAa,KAAK,OAAO;oBAC3B,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,qGAAqG;oBACrH,CAAC,CAAC,aAAa,KAAK,OAAO;wBACzB,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,+DAA+D,IAAI,CAAC,IAAI,yBAAyB;wBACjH,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,IAAI,IAAI,CAAC;4BACrB,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,4EAA4E;4BAC5F,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,kEAAkE,CAAC;QAC3F,MAAM,KAAK,GAAG,CAAC,IAAI,EAAE,QAAQ,IAAI,OAAO,CAAC,CAAC;QAC1C,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC3B,oEAAoE;QACpE,8DAA8D;QAC9D,6DAA6D;QAC7D,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3D,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,IAAI,YAAY,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QACxG,CAAC;QACD,qEAAqE;QACrE,qEAAqE;QACrE,mEAAmE;QACnE,iEAAiE;QACjE,mEAAmE;QACnE,wDAAwD;QACxD,2DAA2D;QAC3D,8DAA8D;QAC9D,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,IAAI,IAAI,CAAC,EAAE,CAAC;YAC3B,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;YAC1B,gEAAgE;YAChE,gEAAgE;YAChE,0DAA0D;YAC1D,sBAAsB;YACtB,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YAC7B,OAAO,CAAC,EAAE,EAAE,GAAG,KAAK,CAAC,CAAC;QACxB,CAAC;QACD,gEAAgE;QAChE,kEAAkE;QAClE,mEAAmE;QACnE,mEAAmE;QACnE,mEAAmE;QACnE,oEAAoE;QACpE,2DAA2D;QAC3D,kEAAkE;QAClE,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;YAC/B,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC;mBAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;mBACpC,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC;mBAC/B,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;YAC1B,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACjC,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACpC,OAAO,CAAC,EAAE,EAAE,GAAG,KAAK,CAAC,CAAC;IACxB,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,cAAc,CAAC,MAAgB;QACnC,oEAAoE;QACpE,8DAA8D;QAC9D,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;QAE1B,kEAAkE;QAClE,yEAAyE;QACzE,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAEnD,gEAAgE;QAChE,qCAAqC;QACrC,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,oBAAoB,EAAE,EAAE,CAAC;QAE/C,IAAI,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YAC7C,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,IAAI,IAAI,CAAC,eAAe,EAAE,EAAE,CAAC;YAC3B,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,cAAc,CAAC,qBAAqB,CAAC,CAAC,CAAC;QAC1F,CAAC;QACD,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC"}
1
+ {"version":3,"file":"combat-exchange.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/utilities/combat-exchange.ts"],"names":[],"mappings":"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"}
@@ -63,3 +63,66 @@ export declare function rollPool(pool: number, limit?: number): IDiceRoll;
63
63
  * story; glitches still announce themselves.
64
64
  */
65
65
  export declare function formatRoll(roll: IDiceRoll): string;
66
+ /**
67
+ * AN INITIATIVE ROLL IS NOT A DICE POOL (SR5 p.159, p.474).
68
+ *
69
+ * "To determine a character's Initiative Score, make an Initiative Test
70
+ * rolling the character's Initiative Dice and adding the total to your
71
+ * Initiative attribute" -- the faces are SUMMED, not counted as hits,
72
+ * and the sum is added to an attribute. Highest score acts first.
73
+ *
74
+ * That is a different mechanic from everything else in this file, which
75
+ * is why it gets its own function rather than a flag on rollPool. The
76
+ * engine used to roll initiative THROUGH rollPool and compare hits,
77
+ * which quietly changed the shape of the whole thing: 3d6 counting
78
+ * hits spans 0-3 and clusters at 1, while 3d6 summed onto an attribute
79
+ * of 9 spans 12-27. Hits made a fast character barely faster than a
80
+ * slow one, and made the dice nearly irrelevant next to the attribute
81
+ * -- which is the opposite of what initiative dice are for.
82
+ *
83
+ * GLITCHES DO NOT APPLY. A glitch is a property of a TEST (p.45-46);
84
+ * an Initiative Test spends its dice as a magnitude, and the book
85
+ * attaches no glitch rule to it. Nothing here reports one.
86
+ */
87
+ export interface IInitiativeRoll {
88
+ /** Reaction + Intuition, Data Processing + Intuition, Intuition x 2... */
89
+ attribute: number;
90
+ /** How many D6 -- 1 base, 3 cold-sim, 4 hot-sim, 3 astral; max 5. */
91
+ dice: number;
92
+ rolls: number[];
93
+ /** The faces ADDED UP. The whole point. */
94
+ total: number;
95
+ /** attribute + total. Highest acts first (p.159). */
96
+ score: number;
97
+ }
98
+ /**
99
+ * THE 5D6 CEILING is canon and belongs here rather than at each caller,
100
+ * because every source of extra dice is subject to it: p.229-230 says
101
+ * enhancements "cannot take you past the maximum of 5D6 Initiative
102
+ * Dice" for VR, p.258 repeats it for the Overclocking echo, and p.288
103
+ * caps Increase Reflexes the same way. A rule every caller must obey is
104
+ * a rule no caller should have to remember.
105
+ */
106
+ export declare const MAX_INITIATIVE_DICE = 5;
107
+ export declare function rollInitiativeScore(attribute: number, dice: number): IInitiativeRoll;
108
+ /**
109
+ * One line for the Mechanics ticker: "9 + 3d6 (4+2+6=12) = 21".
110
+ *
111
+ * The faces ARE shown here, unlike formatRoll, and deliberately: a
112
+ * summed roll's spread is the information -- "I rolled 3 on three dice"
113
+ * is the story of a lost initiative, and a bare total cannot tell it.
114
+ * The pool renderer dropped faces because 12 dice of hit/miss were
115
+ * noise; five dice of magnitude are not.
116
+ */
117
+ export declare function formatInitiative(roll: IInitiativeRoll): string;
118
+ /**
119
+ * WHAT AN INITIATIVE PASS COSTS (p.160): "everyone subtracts 10 from
120
+ * their Initiative Score", and anyone still above zero acts again.
121
+ *
122
+ * Exported because combat-exchange measures its extra strike against
123
+ * it. Between two actors, "the winner is still ahead after both drop
124
+ * 10" reduces to a gap wider than 10 -- the book's number, not a tuned
125
+ * one, which is the whole reason the old 3-net-hits threshold could not
126
+ * simply be kept.
127
+ */
128
+ export declare const INITIATIVE_PASS_DROP = 10;
@@ -82,4 +82,45 @@ export function formatRoll(roll) {
82
82
  : '';
83
83
  return `${roll.pool}d6 -> ${roll.hits} hit${roll.hits === 1 ? '' : 's'}${limitTag}${glitchTag}`;
84
84
  }
85
+ /**
86
+ * THE 5D6 CEILING is canon and belongs here rather than at each caller,
87
+ * because every source of extra dice is subject to it: p.229-230 says
88
+ * enhancements "cannot take you past the maximum of 5D6 Initiative
89
+ * Dice" for VR, p.258 repeats it for the Overclocking echo, and p.288
90
+ * caps Increase Reflexes the same way. A rule every caller must obey is
91
+ * a rule no caller should have to remember.
92
+ */
93
+ export const MAX_INITIATIVE_DICE = 5;
94
+ export function rollInitiativeScore(attribute, dice) {
95
+ const attr = Math.max(0, Math.floor(attribute));
96
+ const size = Math.min(MAX_INITIATIVE_DICE, Math.max(0, Math.floor(dice)));
97
+ const rolls = Array.from({ length: size }, () => 1 + Math.floor(Math.random() * 6));
98
+ const total = rolls.reduce((sum, r) => sum + r, 0);
99
+ return { attribute: attr, dice: size, rolls, total, score: attr + total };
100
+ }
101
+ /**
102
+ * One line for the Mechanics ticker: "9 + 3d6 (4+2+6=12) = 21".
103
+ *
104
+ * The faces ARE shown here, unlike formatRoll, and deliberately: a
105
+ * summed roll's spread is the information -- "I rolled 3 on three dice"
106
+ * is the story of a lost initiative, and a bare total cannot tell it.
107
+ * The pool renderer dropped faces because 12 dice of hit/miss were
108
+ * noise; five dice of magnitude are not.
109
+ */
110
+ export function formatInitiative(roll) {
111
+ if (roll.dice === 0)
112
+ return `${roll.attribute} + no dice = ${roll.score}`;
113
+ return `${roll.attribute} + ${roll.dice}d6 (${roll.rolls.join('+')}=${roll.total}) = ${roll.score}`;
114
+ }
115
+ /**
116
+ * WHAT AN INITIATIVE PASS COSTS (p.160): "everyone subtracts 10 from
117
+ * their Initiative Score", and anyone still above zero acts again.
118
+ *
119
+ * Exported because combat-exchange measures its extra strike against
120
+ * it. Between two actors, "the winner is still ahead after both drop
121
+ * 10" reduces to a gap wider than 10 -- the book's number, not a tuned
122
+ * one, which is the whole reason the old 3-net-hits threshold could not
123
+ * simply be kept.
124
+ */
125
+ export const INITIATIVE_PASS_DROP = 10;
85
126
  //# sourceMappingURL=dice.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dice.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/utilities/dice.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAyBH;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,UAAU,QAAQ,CAAC,IAAY,EAAE,KAAc;IACnD,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3C,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IACpF,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC;IACjD,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;IAC/C,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC;IAE3C,MAAM,MAAM,GAAG,KAAK,KAAK,SAAS,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC;IAC1E,MAAM,YAAY,GAAG,KAAK,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC;IACpD,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IAErE,OAAO;QACL,IAAI,EAAE,IAAI;QACV,KAAK;QACL,IAAI;QACJ,OAAO;QACP,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS;QAC7C,OAAO,EAAE,MAAM,IAAI,IAAI,GAAG,OAAO;QACjC,YAAY;QACZ,gEAAgE;QAChE,oEAAoE;QACpE,mCAAmC;QACnC,cAAc,EAAE,MAAM,IAAI,OAAO,KAAK,CAAC;QACvC,MAAM;KACP,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,UAAU,CAAC,IAAe;IACxC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC;QAAE,OAAO,wBAAwB,CAAC;IACrD,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;IAChG,mEAAmE;IACnE,sEAAsE;IACtE,qEAAqE;IACrE,qEAAqE;IACrE,qEAAqE;IACrE,sBAAsB;IACtB,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY;QAChC,CAAC,CAAC,+DAA+D;QACjE,CAAC,CAAC,IAAI,CAAC,OAAO;YACZ,CAAC,CAAC,kBAAkB,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,OAAO,UAAU;YACzD,CAAC,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS;gBACxB,CAAC,CAAC,WAAW,IAAI,CAAC,KAAK,GAAG;gBAC1B,CAAC,CAAC,EAAE,CAAC;IACX,OAAO,GAAG,IAAI,CAAC,IAAI,SAAS,IAAI,CAAC,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,QAAQ,GAAG,SAAS,EAAE,CAAC;AAClG,CAAC"}
1
+ {"version":3,"file":"dice.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/utilities/dice.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,43 @@
1
+ import type { Room } from '../models/room.js';
2
+ /**
3
+ * WHAT A GRID OBJECT ANSWERS TO (KzoqWjfYB9SnmsvQu).
4
+ *
5
+ * A player reported typing the name the scene had just shown them and
6
+ * being told nothing answered to it. The cause was that every verb kept
7
+ * its own idea of the host's name and none of them matched what the game
8
+ * PRINTS:
9
+ *
10
+ * - map.ts renders the host as the room's name: "● Circuit Bazaar --
11
+ * host HR 3".
12
+ * - look.ts renders it as "● The Circuit Bazaar host [HR 3]", in a
13
+ * line that ends "('mark' softens it first)".
14
+ * - mark.ts accepted ONLY /^(host|node|the host)$/ -- while its own
15
+ * success line calls the target `the ${room.name} host`. It printed
16
+ * the exact string it refused.
17
+ * - look.ts accepted the room name but not its own "the <room> host"
18
+ * label.
19
+ *
20
+ * One list, so the printer and the resolver cannot drift apart again.
21
+ *
22
+ * EXACT MATCH ON A NORMALIZED ALIAS, never substring. `a.includes(b) ||
23
+ * b.includes(a)` is how "the shack" starts matching a room called "The
24
+ * Shack Behind The Shack" -- and worse, how a short query matches
25
+ * everything. The alias list is explicit and comparison is equality, so
26
+ * a name either answers or it does not.
27
+ */
28
+ /** Every string the room's host answers to, normalized. */
29
+ export declare function hostAliases(room: Room): string[];
30
+ /**
31
+ * Does `query` name the host of `room`? False when the room has no host
32
+ * at all -- the aliases of a node that is not there must never resolve.
33
+ */
34
+ export declare function matchesHostName(query: string, room: Room): boolean;
35
+ /**
36
+ * The shortest honest way to tell a player what the host here answers
37
+ * to. The old refusal said the host "goes by 'host'" -- true, and
38
+ * useless: it named one accepted form and hid the rest, including the
39
+ * one the player had just read off the screen.
40
+ */
41
+ export declare function hostNameHint(room: Room): string;
42
+ /** Does `query` name the cameras of wherever the actor is standing? */
43
+ export declare function matchesCameraName(query: string): boolean;
@@ -0,0 +1,83 @@
1
+ import { normalizeLoose } from './fuzzy-match.js';
2
+ /**
3
+ * WHAT A GRID OBJECT ANSWERS TO (KzoqWjfYB9SnmsvQu).
4
+ *
5
+ * A player reported typing the name the scene had just shown them and
6
+ * being told nothing answered to it. The cause was that every verb kept
7
+ * its own idea of the host's name and none of them matched what the game
8
+ * PRINTS:
9
+ *
10
+ * - map.ts renders the host as the room's name: "● Circuit Bazaar --
11
+ * host HR 3".
12
+ * - look.ts renders it as "● The Circuit Bazaar host [HR 3]", in a
13
+ * line that ends "('mark' softens it first)".
14
+ * - mark.ts accepted ONLY /^(host|node|the host)$/ -- while its own
15
+ * success line calls the target `the ${room.name} host`. It printed
16
+ * the exact string it refused.
17
+ * - look.ts accepted the room name but not its own "the <room> host"
18
+ * label.
19
+ *
20
+ * One list, so the printer and the resolver cannot drift apart again.
21
+ *
22
+ * EXACT MATCH ON A NORMALIZED ALIAS, never substring. `a.includes(b) ||
23
+ * b.includes(a)` is how "the shack" starts matching a room called "The
24
+ * Shack Behind The Shack" -- and worse, how a short query matches
25
+ * everything. The alias list is explicit and comparison is equality, so
26
+ * a name either answers or it does not.
27
+ */
28
+ /** Every string the room's host answers to, normalized. */
29
+ export function hostAliases(room) {
30
+ const name = normalizeLoose(room.name);
31
+ const bare = ['host', 'the host', 'node', 'the node', 'ice'];
32
+ if (name.length === 0)
33
+ return bare;
34
+ return [
35
+ ...bare,
36
+ // What the grid map calls it.
37
+ name,
38
+ // What look calls it, and what mark's own success line calls it.
39
+ `${name} host`, `the ${name} host`,
40
+ `${name} node`, `the ${name} node`,
41
+ ];
42
+ }
43
+ /**
44
+ * Does `query` name the host of `room`? False when the room has no host
45
+ * at all -- the aliases of a node that is not there must never resolve.
46
+ */
47
+ export function matchesHostName(query, room) {
48
+ if (!room.hasNode)
49
+ return false;
50
+ const q = normalizeLoose(query);
51
+ return q.length > 0 && hostAliases(room).includes(q);
52
+ }
53
+ /**
54
+ * The shortest honest way to tell a player what the host here answers
55
+ * to. The old refusal said the host "goes by 'host'" -- true, and
56
+ * useless: it named one accepted form and hid the rest, including the
57
+ * one the player had just read off the screen.
58
+ */
59
+ export function hostNameHint(room) {
60
+ return room.hasNode ? `the host here answers to "host" or "${room.name}"` : '';
61
+ }
62
+ /**
63
+ * THE CAMERA CLUSTER (QpxiAiwQw96q3mfL7).
64
+ *
65
+ * grid-view.ts draws it as "◎ Camera cluster" and offers "snoop" in
66
+ * the same line; the player typed the label back and snoop answered
67
+ * "No room on this grid answers to 'camera cluster'", because snoop
68
+ * resolved against ROOM names only.
69
+ *
70
+ * The vocabulary already existed -- hack.ts had this exact regex --
71
+ * so two of its three siblings simply never got it. It lives here now
72
+ * and they all read the same list.
73
+ *
74
+ * A cluster is not a separate object you address: it IS the room's
75
+ * cameras. So a camera word means "here", which is why callers resolve
76
+ * it to the room the actor is in rather than to a thing.
77
+ */
78
+ const CAMERA_WORDS = /^(the )?(camera|cameras|camera cluster|cameracluster|cam|cams|lens|lenses|feed|feeds|eyes)$/i;
79
+ /** Does `query` name the cameras of wherever the actor is standing? */
80
+ export function matchesCameraName(query) {
81
+ return CAMERA_WORDS.test(normalizeLoose(query));
82
+ }
83
+ //# sourceMappingURL=grid-names.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grid-names.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/utilities/grid-names.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAGlD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,2DAA2D;AAC3D,MAAM,UAAU,WAAW,CAAC,IAAU;IACpC,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvC,MAAM,IAAI,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;IAC7D,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACnC,OAAO;QACL,GAAG,IAAI;QACP,8BAA8B;QAC9B,IAAI;QACJ,iEAAiE;QACjE,GAAG,IAAI,OAAO,EAAE,OAAO,IAAI,OAAO;QAClC,GAAG,IAAI,OAAO,EAAE,OAAO,IAAI,OAAO;KACnC,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,KAAa,EAAE,IAAU;IACvD,IAAI,CAAC,IAAI,CAAC,OAAO;QAAE,OAAO,KAAK,CAAC;IAChC,MAAM,CAAC,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IAChC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AACvD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAAC,IAAU;IACrC,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,uCAAuC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;AACjF,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,YAAY,GAAG,8FAA8F,CAAC;AAEpH,uEAAuE;AACvE,MAAM,UAAU,iBAAiB,CAAC,KAAa;IAC7C,OAAO,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;AAClD,CAAC"}
@@ -33,4 +33,30 @@ export declare function runnerName(runner: string | undefined, fallback?: string
33
33
  * one more" rather than "Sherry, doubleglizzy". Losing a name is a
34
34
  * smaller cost than printing an account.
35
35
  */
36
+ /**
37
+ * TEXT WE DID NOT WRITE, MADE SAFE TO SAY ALOUD (5wjyaaY7EKGttGZLQ:
38
+ * "don't put player names (doubleglizzy) in the message about
39
+ * 'Couldn't raise the whole crew'. This should be character names").
40
+ *
41
+ * `nameThem` covers the case where we hold a LIST of handles and choose
42
+ * how to render it. This covers the other one: a REASON STRING the
43
+ * server composed, stitched verbatim into Krow's dialogue. The draft
44
+ * decline is deliberately loud -- a real playtest lost a whole run to it
45
+ * being a log line -- so the text has to be spoken, and it can name
46
+ * whichever seat the server could not raise.
47
+ *
48
+ * A handle inside prose cannot be found by asking for a name; it has to
49
+ * be recognised. So this takes the seats we already hold and swaps any
50
+ * of THEIR handles for the runner name, leaving everything else alone.
51
+ *
52
+ * WHAT IT DELIBERATELY DOES NOT DO: guess. A handle belonging to
53
+ * nobody at this table is unrecognisable as a handle -- it is just a
54
+ * word -- and a heuristic that redacted anything word-shaped would eat
55
+ * the sentence. This closes the reported leak, which is a seat-mate's
56
+ * handle, and the surrounding fiction stays readable.
57
+ */
58
+ export declare function scrubHandles(text: string, seats: {
59
+ handle?: string;
60
+ name?: string;
61
+ }[]): string;
36
62
  export declare function nameThem(handles: string[], lookup: (handle: string) => string | undefined): string[];
@@ -35,6 +35,43 @@ export function runnerName(runner, fallback = 'a runner') {
35
35
  * one more" rather than "Sherry, doubleglizzy". Losing a name is a
36
36
  * smaller cost than printing an account.
37
37
  */
38
+ /**
39
+ * TEXT WE DID NOT WRITE, MADE SAFE TO SAY ALOUD (5wjyaaY7EKGttGZLQ:
40
+ * "don't put player names (doubleglizzy) in the message about
41
+ * 'Couldn't raise the whole crew'. This should be character names").
42
+ *
43
+ * `nameThem` covers the case where we hold a LIST of handles and choose
44
+ * how to render it. This covers the other one: a REASON STRING the
45
+ * server composed, stitched verbatim into Krow's dialogue. The draft
46
+ * decline is deliberately loud -- a real playtest lost a whole run to it
47
+ * being a log line -- so the text has to be spoken, and it can name
48
+ * whichever seat the server could not raise.
49
+ *
50
+ * A handle inside prose cannot be found by asking for a name; it has to
51
+ * be recognised. So this takes the seats we already hold and swaps any
52
+ * of THEIR handles for the runner name, leaving everything else alone.
53
+ *
54
+ * WHAT IT DELIBERATELY DOES NOT DO: guess. A handle belonging to
55
+ * nobody at this table is unrecognisable as a handle -- it is just a
56
+ * word -- and a heuristic that redacted anything word-shaped would eat
57
+ * the sentence. This closes the reported leak, which is a seat-mate's
58
+ * handle, and the surrounding fiction stays readable.
59
+ */
60
+ export function scrubHandles(text, seats) {
61
+ let out = text;
62
+ for (const seat of seats) {
63
+ const handle = seat.handle?.trim();
64
+ if (!handle)
65
+ continue;
66
+ // Escaped: a handle is user-chosen and may carry regex characters.
67
+ // Lookarounds rather than \b so a handle ending in punctuation still
68
+ // matches at its own edges.
69
+ const escaped = handle.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
70
+ const pattern = new RegExp(`(?<![A-Za-z0-9_])${escaped}(?![A-Za-z0-9_])`, 'gi');
71
+ out = out.replace(pattern, runnerName(seat.name, 'a runner at your table'));
72
+ }
73
+ return out;
74
+ }
38
75
  export function nameThem(handles, lookup) {
39
76
  const names = handles.map(lookup).filter((n) => !!n && !!n.trim());
40
77
  const unknown = handles.length - names.length;
@@ -1 +1 @@
1
- {"version":3,"file":"identity.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/utilities/identity.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,wEAAwE;AACxE,MAAM,UAAU,UAAU,CAAC,MAA0B,EAAE,QAAQ,GAAG,UAAU;IAC1E,OAAO,MAAM,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC;AACrD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,QAAQ,CAAC,OAAiB,EAAE,MAA8C;IACxF,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAChF,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;IAC9C,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;QAChB,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;YACzB,CAAC,CAAC,GAAG,OAAO,OAAO;YACnB,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,4BAA4B,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC;IAC/E,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"identity.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/utilities/identity.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,wEAAwE;AACxE,MAAM,UAAU,UAAU,CAAC,MAA0B,EAAE,QAAQ,GAAG,UAAU;IAC1E,OAAO,MAAM,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC;AACrD,CAAC;AAED;;;;;GAKG;AACH;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,UAAU,YAAY,CAC1B,IAAY,EACZ,KAA2C;IAE3C,IAAI,GAAG,GAAG,IAAI,CAAC;IACf,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC;QACnC,IAAI,CAAC,MAAM;YAAE,SAAS;QACtB,mEAAmE;QACnE,qEAAqE;QACrE,4BAA4B;QAC5B,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;QAC9D,MAAM,OAAO,GAAG,IAAI,MAAM,CAAC,oBAAoB,OAAO,kBAAkB,EAAE,IAAI,CAAC,CAAC;QAChF,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,wBAAwB,CAAC,CAAC,CAAC;IAC9E,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,OAAiB,EAAE,MAA8C;IACxF,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAChF,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;IAC9C,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;QAChB,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;YACzB,CAAC,CAAC,GAAG,OAAO,OAAO;YACnB,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,4BAA4B,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC;IAC/E,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -68,3 +68,22 @@ export declare function renderMapViewport(rooms: Record<string, Room>, here: Roo
68
68
  * fog-aware.
69
69
  */
70
70
  export declare function renderMapDetailed(rooms: Record<string, Room>, here: Room, sealing: Sealing, eyes?: IMapEyes): string[];
71
+ /**
72
+ * THE LINE UNDER A DOCKED MAP -- where you are, in bold.
73
+ *
74
+ * ONE COPY, because there were two and only one of them ran on a shared
75
+ * run (RwPkFsRwd4c2uHvGN: "in a new shared run, there is no name on the
76
+ * area map"). The solo path built its caption inline in Game.updateExits
77
+ * and the server's per-player push in headless.ts built the ROOM
78
+ * caption inline too -- and simply never built the district one. Two
79
+ * inline copies is how a panel ends up captioned in one mode and blank
80
+ * in the other.
81
+ *
82
+ * `width` is OPTIONAL and that asymmetry is real, not an oversight: the
83
+ * solo renderer knows its box width and trims to it, while the server
84
+ * cannot know the client's box width -- it is a percentage of a
85
+ * terminal it never sees. The room overlay has shipped on that same
86
+ * compromise since 2026-08-24. Omitting the width means "do not trim",
87
+ * which is the honest behaviour for the side that cannot measure.
88
+ */
89
+ export declare function mapCaption(text: string, width?: number): string;