@renaiss-shipflow/cli 0.27.8 → 0.27.9

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.
@@ -14,22 +14,80 @@ export declare function buildShipFlowHeader(project: string, issueNumber?: numbe
14
14
  /** What `pr sync --keep-conflicts` prints as the resolution recipe. NEVER
15
15
  * `git add -A`: the UNMERGED index state is the ONLY thing that makes git
16
16
  * refuse to commit a file still containing `<<<<<<<`, and `add -A` clears
17
- * exactly that. Stage the paths you actually resolved, then re-gate. */
18
- export declare const RESOLUTION_RECIPE: readonly string[];
17
+ * exactly that. Stage the paths you actually resolved, then re-gate.
18
+ *
19
+ * A FUNCTION of the base (issue #412, finding 3): the printed gate command has
20
+ * to carry `--base`, because the moment `git rebase --continue` commits the
21
+ * markers a bare `pr conflict-check` has nothing left to enumerate and reports
22
+ * clean. This is also what step 5 of `references/conflict-resolution.md` tells
23
+ * the agent to run, so the two now say the same thing.
24
+ *
25
+ * `root` anchors the printed `git add` (see `anchoredGit`) so it runs from a
26
+ * subdirectory too — the paths the operator substitutes come from the gate, and
27
+ * those are repo-root-relative. Injected, not probed, so the recipe stays pure. */
28
+ export declare function resolutionRecipe(baseRef: string, root?: string | null): readonly string[];
29
+ /** The ONE place the gate's re-check invocation is spelled (PR #434 review).
30
+ *
31
+ * `pr sync` printed a base-less `pr conflict-check` on both of its refusal
32
+ * paths while `resolutionRecipe` — three lines away, in the same
33
+ * command — threaded the base. That is the vacuous form this PR exists to stop
34
+ * recommending: it makes the operator re-resolve a base the caller already
35
+ * knows, and auto-resolution can land on a DIFFERENT ref than the one `pr sync`
36
+ * actually rebased onto, so the re-check would certify a tree against the wrong
37
+ * base. Every printed invocation now goes through here, so the base-less form
38
+ * can't reappear in one message while the others are correct. Where no concrete
39
+ * ref is in scope, pass the `origin/<base>` placeholder — never nothing. */
40
+ export declare function recheckCommand(baseRef: string): string;
41
+ /** A git command the operator can paste into ANY shell, at ANY depth in the
42
+ * worktree (PR #434 review, finding 2).
43
+ *
44
+ * The gate reports **repo-root-relative** paths — `gitPaths` pins its CWD to
45
+ * `repoToplevel()` so enumeration and grep share one frame of reference — so a
46
+ * printed `git add -- sub/app.ts` pasted from `sub/` resolves `sub/sub/app.ts`
47
+ * and dies with `could not open directory 'sub/sub/'`. `-C <root>` puts the
48
+ * printed command in the same frame the printed path is expressed in, which is
49
+ * the only way one string can be correct from every CWD. (Under the default
50
+ * `diff.relative=false` the un-anchored form was already wrong from a subdir;
51
+ * anchoring makes every printed path-bearing command runnable, not just this
52
+ * one.)
53
+ *
54
+ * Root unknown → print the plain form. A `git -C '' …` would be worse than no
55
+ * anchor, and a gate that cannot locate its own toplevel is already failing
56
+ * loudly for that reason. */
57
+ export declare function anchoredGit(root: string | null, args: string): string;
58
+ /** The repo root to anchor a PRINTED command to, or `null` when it can't be
59
+ * located. `repoToplevel()` throws by design (a gate that cannot find its tree
60
+ * has proved nothing); a *hint string* must never be the thing that crashes the
61
+ * process, so this degrades to the un-anchored form instead. */
62
+ export declare function printedRoot(): string | null;
19
63
  /** One conflict-marker line found in a tracked file. */
20
64
  export interface ConflictMarkerHit {
21
65
  path: string;
22
66
  line: number;
23
67
  text: string;
24
68
  }
69
+ /** What a `git grep -z -n` stream parse recovered.
70
+ *
71
+ * `hits` are the marker lines of files that carry a REAL conflict. `paths` is
72
+ * every path the parse read a well-formed record for — INCLUDING files whose
73
+ * only match was a bare `=======`. The two are deliberately different sets, and
74
+ * `paths` (never `hits`) is the parser's coverage claim: it is what the
75
+ * authoritative files-with-matches pass is checked against in
76
+ * `scanConflictMarkers`. Checking against `hits` instead would hard-block every
77
+ * push over any file containing a lone 7-equals line — the parser is *designed*
78
+ * not to trip on those, and `git grep -l` cannot tell one from a real conflict. */
79
+ export interface ConflictMarkerParse {
80
+ hits: ConflictMarkerHit[];
81
+ paths: string[];
82
+ }
25
83
  /** The `git grep -E` pattern for the four marker families git can leave behind
26
84
  * (`<<<<<<<`, `|||||||` in diff3 mode, `=======`, `>>>>>>>`). */
27
85
  export declare const CONFLICT_MARKER_PATTERN = "^(<{7}|\\|{7}|={7}|>{7})( |$)";
28
86
  /**
29
- * Parse `git grep -z -n` output into marker hits: a file counts as conflicted when
30
- * it has a `<<<<<<<` start **OR** a `>>>>>>>` end. A bare `=======` (or a lone
31
- * diff3 `|||||||`) never trips the gate on its own — that's the only line a
32
- * changelog or a rule of prose plausibly starts with.
87
+ * Parse `git grep -z -n` output: a file counts as conflicted when it has a
88
+ * `<<<<<<<` start **OR** a `>>>>>>>` end. A bare `=======` (or a lone diff3
89
+ * `|||||||`) never trips the gate on its own — that's the only line a changelog
90
+ * or a rule of prose plausibly starts with.
33
91
  *
34
92
  * This used to require BOTH arms (the "triad rule"), which let a half-resolved
35
93
  * file through: delete one arm, leave `<<<<<<< HEAD` behind, and since `git add`
@@ -49,8 +107,23 @@ export declare const CONFLICT_MARKER_PATTERN = "^(<{7}|\\|{7}|={7}|>{7})( |$)";
49
107
  * (PR #394 review). git prints colons in paths unquoted, so no colon-based
50
108
  * parse can be correct; NUL is the only unambiguous delimiter.
51
109
  *
110
+ * The walk is POSITIONAL, not a `split("\0")` field walk (issue #412, finding 1).
111
+ * A `split` treats fields as fixed pairs, so ONE extra NUL anywhere in the stream
112
+ * shifts parity for everything after it. A matched LINE can legitimately contain
113
+ * a NUL: git's binary heuristic only inspects the first 8000 bytes, so a >8 KB
114
+ * text file with an embedded NUL further in is scanned as text and printed
115
+ * verbatim. Measured: a `======= \0Y` line in a 9.9 KB file desynced the walk and
116
+ * dropped EVERY later file in sorted-path order — a victim with three live
117
+ * markers reported CLEAN. `--text` does not fix this; the NUL is still inside the
118
+ * matched line. Reading each field to its own terminator does: a path cannot
119
+ * contain a NUL (POSIX), so field 1 ends at the 1st NUL and field 2 at the 2nd,
120
+ * and a grep match is exactly one line, so the text ends at the next LF —
121
+ * whatever bytes it contains.
122
+ *
52
123
  * Pure + testable (`pr sync` shells out to gh+git and has no harness).
53
124
  */
125
+ export declare function parseConflictMarkerRecords(out: string): ConflictMarkerParse;
126
+ /** The marker hits alone — see `parseConflictMarkerRecords` for the coverage set. */
54
127
  export declare function parseConflictMarkerGrep(out: string): ConflictMarkerHit[];
55
128
  /** The outcome of enumerating paths for the gate. `ok: false` means the git
56
129
  * command FAILED — which is emphatically NOT the same as "nothing changed".
@@ -67,29 +140,137 @@ export interface PathEnumeration {
67
140
  * pathspecs — which would silently drop that file from the marker scan.
68
141
  * Failure is REPORTED (`ok: false`), never flattened into an empty result:
69
142
  * `scanConflictMarkers([])` is `[]`, so a swallowed error would have read as a
70
- * clean tree and let the push through (PR #394 review). */
143
+ * clean tree and let the push through (PR #394 review).
144
+ *
145
+ * Runs from `repoToplevel()`, and that is LOAD-BEARING (issue #412, finding 4 —
146
+ * PR #434 review). Enumeration and grep are a PAIR and must share one frame of
147
+ * reference: `git grep` always runs from the root (see `grepConflictMarkers`),
148
+ * so the paths handed to it must be root-relative too. `git diff --name-only`
149
+ * honours `diff.relative` — set to true (config, or a `--relative` in the
150
+ * command) it emits CWD-relative paths AND drops everything outside the CWD.
151
+ * Run the gate from `sub/` and `sub/app.ts` was enumerated as `app.ts`, which
152
+ * the root-anchored grep matched nothing for: exit 1 ("no match") read as a
153
+ * CLEAN tree over three live markers. Pinning the CWD here fixes it at the
154
+ * source, for every call site, and needs no `--no-relative` flag (git ≥2.30):
155
+ * at the toplevel, relative and absolute are the same thing.
156
+ *
157
+ * A root that cannot be located degrades to `ok: false` rather than throwing —
158
+ * callers rely on this never throwing (`pr sync`'s best-effort listing), and a
159
+ * gate that cannot find its tree has enumerated nothing, which is exactly what
160
+ * `ok: false` means. */
71
161
  export declare function gitPaths(cmd: string): PathEnumeration;
72
162
  /** Files this branch changed relative to `baseRef` — the only place a rebase
73
163
  * can have left markers, so the gate never scans (or trips on) unrelated files. */
74
164
  export declare function changedPaths(baseRef: string): PathEnumeration;
75
- /** Scan the working tree for leftover conflict markers in `paths`. `git grep`
76
- * exits 1 on "no match" (clean) any OTHER failure is rethrown so the gate
77
- * fails CLOSED rather than silently reporting a clean tree.
78
- *
79
- * `--literal-pathspecs` is load-bearing: `shellQuote` stops the SHELL, but git
80
- * still parses each argument as a PATHSPEC. A tracked file whose name begins
81
- * with `:` is read as pathspec magic and matches nothing `git grep` then
82
- * exits 1 ("no match") and the file is silently UNSCANNED rather than erroring
83
- * (PR #394 review). Note the flag is a main-git option, so it must precede the
84
- * subcommand: `git grep --literal-pathspecs` is rejected as an unknown option.
85
- *
86
- * `-z` is load-bearing too: it makes git delimit `path\0line\0text`, so a path
87
- * containing `:<digits>:` can't be mis-split by the parser and silently dropped
88
- * from the results (PR #394 review see `parseConflictMarkerGrep`). */
89
- export declare function scanConflictMarkers(paths: string[]): ConflictMarkerHit[];
165
+ /** The repository root, as the CWD every gate git command runs FROM BOTH the
166
+ * `git diff` that enumerates (`gitPaths`) and the `git grep` that scans
167
+ * (`grepConflictMarkers`).
168
+ *
169
+ * Load-bearing (issue #412, finding 4): `git grep` resolves pathspecs relative
170
+ * to the CWD, so paths enumerated in one frame and grepped in another match
171
+ * nothing `git grep` exits 1 ("no match"), which the gate reads as CLEAN over
172
+ * live markers. Anchoring only one half is worse than anchoring neither: under
173
+ * `diff.relative=true` the two halves then disagree where before they at least
174
+ * agreed (PR #434 review). It must be a toplevel CWD and NOT a `:(top)`
175
+ * pathspec prefix: `--literal-pathspecs`, which the `:leading.ts` regression
176
+ * requires, disables pathspec magic outright. Failure to locate the root throws
177
+ * a gate that cannot find the tree it is certifying has proved nothing.
178
+ * (`gitPaths` catches that throw and degrades to `ok: false`, its own way of
179
+ * saying the same thing.) */
180
+ export declare function repoToplevel(): string;
181
+ /** Split paths into `git grep`-sized batches, budgeting the QUOTED byte length
182
+ * actually spent on the command line. A single path over budget still gets its
183
+ * own chunk rather than looping forever. Pure, so the budgeting is testable
184
+ * without building a 100 KB fixture. */
185
+ export declare function chunkPathspecs(paths: string[], maxFiles?: number, maxBytes?: number): string[][];
186
+ /**
187
+ * Scan the working tree for leftover conflict markers in `paths`.
188
+ *
189
+ * Two passes per chunk, and the split is the point (issue #412, finding 1):
190
+ *
191
+ * 1. `-l` — the AUTHORITY on WHICH files match. `-z -l` emits NUL-terminated
192
+ * paths, so `split("\0")` is exact and no parse can lose a file.
193
+ * 2. `-n` — the line/text DETAIL, positionally parsed.
194
+ *
195
+ * Then fail CLOSED if the `-l` set is not covered by the paths the `-n` parse
196
+ * recovered: the detail pass lost a file the authority saw, so this scan cannot
197
+ * certify anything. The comparison is against `parse.paths` — every path a
198
+ * record was read for — and emphatically NOT against the filtered `hits`. `-l`
199
+ * cannot distinguish a bare `=======` from a real conflict and the parser
200
+ * deliberately does not trip on one, so checking `hits` would make any file
201
+ * containing a lone 7-equals line permanently unpushable.
202
+ */
203
+ export declare function scanConflictMarkers(paths: string[], budget?: {
204
+ maxFiles?: number;
205
+ maxBytes?: number;
206
+ }): ConflictMarkerHit[];
207
+ /** Files the `-l` authority matched that the `-n` parse recovered no record for.
208
+ * Non-empty ⇒ the scan lost coverage and must fail closed.
209
+ *
210
+ * ⚠️ `recovered` is `ConflictMarkerParse.paths` — every path a record was read
211
+ * for — and NEVER the filtered hits. `git grep -l` matches a bare `=======` the
212
+ * same as a real `<<<<<<<`, while the parser deliberately does not trip on a
213
+ * lone separator. Comparing against hits would therefore report every file
214
+ * containing a single 7-equals line as "lost", hard-blocking its push forever:
215
+ * a repo-wide denial of service on the gate, invisible today only because this
216
+ * repo happens to contain zero such lines. */
217
+ export declare function unrecoveredMatches(matched: string[], recovered: string[]): string[];
90
218
  /** Which rebase state git has left in this worktree, if any. Reads the
91
219
  * worktree's own git dir, so it is correct inside `git worktree` checkouts. */
92
220
  export declare function rebaseInProgress(): "rebase-merge" | "rebase-apply" | null;
221
+ /** The commit an in-flight rebase is replaying ONTO, read from the rebase state
222
+ * git itself wrote (`.git/rebase-merge/onto` or `.git/rebase-apply/onto`).
223
+ * `rebaseInProgress()` already names the directory, so this is a file read. */
224
+ export declare function rebaseOnto(): string | null;
225
+ /** The remote's default branch, from `refs/remotes/origin/HEAD`. */
226
+ export declare function originHeadRef(): string | null;
227
+ /** Last-ditch default branch when `origin/HEAD` was never set (a plain `git
228
+ * clone --depth` or a hand-added remote leaves it unset). */
229
+ export declare function defaultBranchRef(): string | null;
230
+ /** Which ref `conflict-check` diffs against, and where that ref came from. */
231
+ export type BaseSource = "rebase-onto" | "origin-head" | "default-branch" | "explicit";
232
+ export interface ResolvedBase {
233
+ base: string;
234
+ source: BaseSource;
235
+ }
236
+ /**
237
+ * Resolve the base `conflict-check` scans against (issue #412, finding 3).
238
+ *
239
+ * Without a base the check is VACUOUS at exactly the moment it matters. Once
240
+ * `git rebase --continue` has COMMITTED the markers, nothing is unmerged and
241
+ * nothing differs from HEAD, so both of the local enumeration sources are empty
242
+ * and the gate prints `{"clean":true,"scanned":0}` and exits 0 — over a tree
243
+ * whose HEAD blob literally contains `<<<<<<< HEAD`. The same tree with
244
+ * `--base main` yields 3 hits and exit 8.
245
+ *
246
+ * Precedence, most-specific first:
247
+ * 1. `rebase-onto` — mid-rebase, the commit git is actually replaying onto is
248
+ * the true base, whatever anyone typed.
249
+ * 2. `origin-head` / 3. `default-branch` — the repo's own default branch.
250
+ * 4. `explicit` — the operator's `--base`.
251
+ *
252
+ * NOT `@{upstream}`: that resolves to `origin/<same-branch>`, which is the
253
+ * branch's own remote copy and not the PR base at all — diffing a branch against
254
+ * itself is a vacuous scan wearing a base's clothes — and it is unset on any
255
+ * freshly created branch anyway.
256
+ *
257
+ * Ranking `explicit` LAST is deliberate and must stay that way: a stale `--base`
258
+ * flag must not override the commit git is actually replaying onto mid-rebase,
259
+ * and ranking it up would change which single ref `base` reports as covered.
260
+ *
261
+ * `--base` keeps its documented ADDITIVE contract at the call site: an explicit
262
+ * ref the precedence didn't pick is still scanned, it just isn't what gets
263
+ * reported as the resolved base — the caller reports the FULL set it diffed
264
+ * against as `bases`, so nothing scanned goes unnamed (PR #434 review). Pure
265
+ * (probes are injected) so the precedence is unit-testable without a rebase
266
+ * fixture.
267
+ */
268
+ export declare function resolveScanBase(i: {
269
+ onto: string | null;
270
+ originHead: string | null;
271
+ defaultBranch: string | null;
272
+ explicit?: string;
273
+ }): ResolvedBase | null;
93
274
  export type SyncEntryVerdict = {
94
275
  ok: true;
95
276
  } | {
@@ -103,11 +284,24 @@ export type SyncEntryVerdict = {
103
284
  * misleading `On branch "HEAD" but PR #N is "x"` and every later loop git op
104
285
  * failed. Each refusal names the state AND the exact command that clears it.
105
286
  * Pure (state is injected) so it's unit-testable without a git fixture.
287
+ *
288
+ * `base` is the ref the printed re-check names, and it must be CONCRETE (PR #434
289
+ * review, finding 1). This branch fires only when a rebase IS in progress, so
290
+ * the caller always has one — the rebase's own `onto`, else `origin/<the PR's
291
+ * base>` — and the `origin/<base>` placeholder printed here before was a command
292
+ * the operator could not run: `conflict-check --base 'origin/<base>'` fails to
293
+ * resolve the ref and exits 8 via `enumerationFailed`, i.e. the recovery hint
294
+ * itself reported "the gate proved nothing". The placeholder survives only as
295
+ * the last resort for a caller that truly has neither source.
296
+ *
297
+ * `root` anchors the printed `git add` for a subdirectory shell (`anchoredGit`).
106
298
  */
107
299
  export declare function syncEntryGuard(i: {
108
300
  rebase: "rebase-merge" | "rebase-apply" | null;
109
301
  currentBranch: string;
110
302
  head: string;
111
303
  number: number;
304
+ base?: string | null;
305
+ root?: string | null;
112
306
  }): SyncEntryVerdict;
113
307
  //# sourceMappingURL=pr.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"pr.d.ts","sourceRoot":"","sources":["../../src/commands/pr.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAmDzC,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA6fxD;AA+BD,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAGxE;AAED;;;kFAGkF;AAClF,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,SAAS,CAAC;AAEjD;;;kFAGkF;AAClF,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,QAAQ,GAAE,aAAwB,GAAG,MAAM,CAOxI;AAID;;;yEAGyE;AACzE,eAAO,MAAM,iBAAiB,EAAE,SAAS,MAAM,EAK9C,CAAC;AAEF,wDAAwD;AACxD,MAAM,WAAW,iBAAiB;IAAG,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE;AAE/E;kEACkE;AAClE,eAAO,MAAM,uBAAuB,kCAAkC,CAAC;AAKvE;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,iBAAiB,EAAE,CA2BxE;AAED;;4EAE4E;AAC5E,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,mEAAmE;IACnE,EAAE,EAAE,OAAO,CAAC;IACZ,4DAA4D;IAC5D,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;;;;4DAK4D;AAC5D,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,CAOrD;AAED;oFACoF;AACpF,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe,CAE7D;AAED;;;;;;;;;;;;;yEAayE;AACzE,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,iBAAiB,EAAE,CAaxE;AAED;gFACgF;AAChF,wBAAgB,gBAAgB,IAAI,cAAc,GAAG,cAAc,GAAG,IAAI,CAUzE;AAED,MAAM,MAAM,gBAAgB,GAAG;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAE7E;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE;IAChC,MAAM,EAAE,cAAc,GAAG,cAAc,GAAG,IAAI,CAAC;IAC/C,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB,GAAG,gBAAgB,CAiBnB"}
1
+ {"version":3,"file":"pr.d.ts","sourceRoot":"","sources":["../../src/commands/pr.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAmDzC,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA0jBxD;AA+BD,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAGxE;AAED;;;kFAGkF;AAClF,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,SAAS,CAAC;AAEjD;;;kFAGkF;AAClF,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,QAAQ,GAAE,aAAwB,GAAG,MAAM,CAOxI;AAID;;;;;;;;;;;;;oFAaoF;AACpF,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,MAAM,GAAG,IAAW,GAAG,SAAS,MAAM,EAAE,CAO/F;AAED;;;;;;;;;;6EAU6E;AAC7E,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED;;;;;;;;;;;;;;;8BAe8B;AAC9B,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAErE;AAED;;;iEAGiE;AACjE,wBAAgB,WAAW,IAAI,MAAM,GAAG,IAAI,CAM3C;AAED,wDAAwD;AACxD,MAAM,WAAW,iBAAiB;IAAG,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE;AAE/E;;;;;;;;;oFASoF;AACpF,MAAM,WAAW,mBAAmB;IAAG,IAAI,EAAE,iBAAiB,EAAE,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAA;CAAE;AAEnF;kEACkE;AAClE,eAAO,MAAM,uBAAuB,kCAAkC,CAAC;AAKvE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,MAAM,GAAG,mBAAmB,CA4B3E;AAED,qFAAqF;AACrF,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,iBAAiB,EAAE,CAExE;AAED;;4EAE4E;AAC5E,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,mEAAmE;IACnE,EAAE,EAAE,OAAO,CAAC;IACZ,4DAA4D;IAC5D,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;;;;;;;;;;;;;;;;;;;;;yBAsByB;AACzB,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,CAOrD;AAED;oFACoF;AACpF,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe,CAE7D;AAED;;;;;;;;;;;;;;8BAc8B;AAC9B,wBAAgB,YAAY,IAAI,MAAM,CASrC;AAUD;;;yCAGyC;AACzC,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,QAAQ,SAAuB,EAAE,QAAQ,SAAuB,GAAG,MAAM,EAAE,EAAE,CAgB5H;AAmCD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,MAAM,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,iBAAiB,EAAE,CAqB3H;AAED;;;;;;;;;+CAS+C;AAC/C,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAGnF;AAED;gFACgF;AAChF,wBAAgB,gBAAgB,IAAI,cAAc,GAAG,cAAc,GAAG,IAAI,CAUzE;AAcD;;gFAEgF;AAChF,wBAAgB,UAAU,IAAI,MAAM,GAAG,IAAI,CAU1C;AAED,oEAAoE;AACpE,wBAAgB,aAAa,IAAI,MAAM,GAAG,IAAI,CAO7C;AAED;8DAC8D;AAC9D,wBAAgB,gBAAgB,IAAI,MAAM,GAAG,IAAI,CAKhD;AAED,8EAA8E;AAC9E,MAAM,MAAM,UAAU,GAAG,aAAa,GAAG,aAAa,GAAG,gBAAgB,GAAG,UAAU,CAAC;AACvF,MAAM,WAAW,YAAY;IAAG,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,UAAU,CAAA;CAAE;AAElE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE;IACjC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GAAG,YAAY,GAAG,IAAI,CAMtB;AAED,MAAM,MAAM,gBAAgB,GAAG;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAE7E;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE;IAChC,MAAM,EAAE,cAAc,GAAG,cAAc,GAAG,IAAI,CAAC;IAC/C,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB,GAAG,gBAAgB,CAkBnB"}
@@ -252,11 +252,19 @@ export function registerPRCommand(program) {
252
252
  // abandoned `--keep-conflicts` turn leaves it mid-rebase on a DETACHED
253
253
  // HEAD. The old check then reported the misleading `On branch "HEAD" but
254
254
  // PR #N is "x"`. Name the real state and the exact recovery command.
255
+ //
256
+ // The re-check it prints names a CONCRETE ref (PR #434 review, finding 1):
257
+ // the guard's rebase arm only fires mid-rebase, so `rebaseOnto()` is the
258
+ // exact commit git is replaying onto, and `origin/${base}` — the ref this
259
+ // very command rebases onto three lines down — backs it up. The
260
+ // `origin/<base>` placeholder would have exited 8 as an unresolvable ref.
255
261
  const guard = syncEntryGuard({
256
262
  rebase: rebaseInProgress(),
257
263
  currentBranch: execSync("git rev-parse --abbrev-ref HEAD").toString().trim(),
258
264
  head,
259
265
  number,
266
+ base: rebaseOnto() ?? `origin/${base}`,
267
+ root: printedRoot(),
260
268
  });
261
269
  if (!guard.ok) {
262
270
  console.error(guard.message);
@@ -300,7 +308,7 @@ export function registerPRCommand(program) {
300
308
  console.log(`🔀 PR #${number}: rebase onto ${base} conflicts — left IN PROGRESS for resolution.`);
301
309
  for (const f of conflictedFiles)
302
310
  console.log(` [U] ${f}`);
303
- for (const l of RESOLUTION_RECIPE)
311
+ for (const l of resolutionRecipe(`origin/${base}`, printedRoot()))
304
312
  console.log(l);
305
313
  });
306
314
  }
@@ -320,7 +328,7 @@ export function registerPRCommand(program) {
320
328
  emit(opts, { number, rebased: true, conflict: false, base, pushed: false, enumerationFailed: [changed.cmd] }, () => {
321
329
  console.error(`⛔ PR #${number}: could not enumerate the files changed against ${base} — refusing to push.`);
322
330
  console.error(` failed: ${changed.cmd}`);
323
- console.error(`The marker gate cannot certify a tree it could not read. Re-check with: renaiss-shipflow pr conflict-check`);
331
+ console.error(`The marker gate cannot certify a tree it could not read. Re-check with: ${recheckCommand(`origin/${base}`)}`);
324
332
  });
325
333
  process.exit(8);
326
334
  }
@@ -330,7 +338,7 @@ export function registerPRCommand(program) {
330
338
  console.error(`⛔ PR #${number}: rebase onto ${base} succeeded but ${markers.length} conflict marker(s) remain — refusing to push.`);
331
339
  for (const h of markers.slice(0, 20))
332
340
  console.error(` ${h.path}:${h.line}: ${h.text.slice(0, 60)}`);
333
- console.error(`Remove the markers, re-run the tests, then push. Re-check with: renaiss-shipflow pr conflict-check`);
341
+ console.error(`Remove the markers, re-run the tests, then push. Re-check with: ${recheckCommand(`origin/${base}`)}`);
334
342
  });
335
343
  process.exit(8);
336
344
  }
@@ -351,33 +359,86 @@ export function registerPRCommand(program) {
351
359
  pr
352
360
  .command("conflict-check")
353
361
  .description("Fail if the working tree still has unmerged paths or leftover conflict markers — the gate to run BEFORE `git rebase --continue` and before any force-with-lease push (exit 8 = not clean). Local only, no network.")
354
- .option("--base <ref>", "Also scan every file this branch changed against <ref> (e.g. origin/main), not just what's currently modified")
362
+ .option("--base <ref>", "Also scan every file this branch changed against <ref> (e.g. origin/main) — additive, never a replacement. Omitted, the base is resolved automatically: the in-flight rebase's `onto`, else origin/HEAD, else the repo default branch. Every ref actually scanned is listed in the JSON `bases`")
355
363
  .option("--json", "Output JSON")
356
364
  .action(runAction(async (opts) => {
365
+ // Resolve a base ALWAYS (issue #412, finding 3). The two local sources go
366
+ // empty the moment `git rebase --continue` commits the markers, and a gate
367
+ // with nothing to scan reported `{"clean":true,"scanned":0}` exit 0 over a
368
+ // HEAD blob full of `<<<<<<<`. See `resolveScanBase` for the precedence.
369
+ const resolved = resolveScanBase({
370
+ onto: rebaseOnto(),
371
+ originHead: originHeadRef(),
372
+ defaultBranch: defaultBranchRef(),
373
+ explicit: opts.base,
374
+ });
375
+ // Every base we can name gets scanned: the resolved one, plus an explicit
376
+ // `--base` the precedence didn't pick — `--base` is documented as ADDITIVE
377
+ // ("ALSO scan"), so auto-resolution must never shrink what it covers.
378
+ //
379
+ // Reported as `bases` (PR #434 review): `base`/`baseSource` name the ONE
380
+ // ref the precedence picked, which is not the whole story — `--base
381
+ // origin/dev` in a repo whose origin/HEAD resolves is scanned, but was
382
+ // reported as `base:"origin/main"`, telling a consumer the gate ran
383
+ // against a ref the operator never named. Coverage was never the problem
384
+ // (it is a strict superset); the reporting was. Fixed by naming every ref
385
+ // actually diffed against, NOT by re-ranking: `rebase-onto` outranking
386
+ // `explicit` is deliberate, so a stale `--base` flag can't override the
387
+ // commit git is really replaying onto, and re-ranking could shrink what
388
+ // `base` reports as covered.
389
+ const baseRefs = Array.from(new Set([resolved?.base, opts.base].filter((b) => !!b)));
357
390
  // `--base` is USER-supplied and unvalidated, so its diff really can fail.
358
391
  // A failed enumeration must never read as a clean tree (PR #394 review):
359
392
  // collect each source's ok/failed state and let a failure block `clean`.
360
393
  const sources = [
361
394
  gitPaths("git diff --name-only --diff-filter=U"),
362
395
  gitPaths("git diff --name-only HEAD"), // index + worktree vs HEAD: what a resolution touched
363
- ...(opts.base ? [gitPaths(`git diff --name-only ${shellQuote(opts.base)}...HEAD`)] : []),
396
+ ...baseRefs.map((b) => gitPaths(`git diff --name-only ${shellQuote(b)}...HEAD`)),
364
397
  ];
365
398
  const enumerationFailed = sources.filter((s) => !s.ok).map((s) => s.cmd);
366
399
  const unmerged = sources[0].paths;
367
400
  const paths = Array.from(new Set(sources.flatMap((s) => s.paths)));
368
401
  const markers = scanConflictMarkers(paths);
369
402
  const rebase = rebaseInProgress();
370
- const clean = enumerationFailed.length === 0 && unmerged.length === 0 && markers.length === 0;
371
- emit(opts, { clean, unmerged, conflictMarkers: markers, rebaseInProgress: rebase, scanned: paths.length, enumerationFailed }, () => {
403
+ // No base AND nothing scanned = the gate examined zero bytes. That is not
404
+ // a clean tree, it is an absence of evidence report it as such (exit 8,
405
+ // the existing "do not continue" code; the loop's contract reads 8).
406
+ const indeterminate = !resolved && paths.length === 0;
407
+ const clean = !indeterminate && enumerationFailed.length === 0 && unmerged.length === 0 && markers.length === 0;
408
+ // Refs the resolved base did not account for — an additive `--base` the
409
+ // precedence ranked below what it picked. Named separately so the operator
410
+ // sees their own flag was honoured even when it isn't the reported `base`.
411
+ const alsoScanned = baseRefs.filter((b) => b !== resolved?.base);
412
+ const via = resolved
413
+ ? ` vs ${resolved.base} (${resolved.source})${alsoScanned.length ? ` + ${alsoScanned.join(", ")}` : ""}`
414
+ : "";
415
+ emit(opts, {
416
+ clean, indeterminate, unmerged, conflictMarkers: markers, rebaseInProgress: rebase,
417
+ base: resolved?.base ?? null, baseSource: resolved?.source ?? null, bases: baseRefs,
418
+ scanned: paths.length, enumerationFailed,
419
+ }, () => {
372
420
  if (clean) {
373
- console.log(`✅ No unmerged paths, no conflict markers (${paths.length} file(s) scanned)${rebase ? ` — rebase still in progress, safe to \`git rebase --continue\`` : ""}.`);
421
+ console.log(`✅ No unmerged paths, no conflict markers (${paths.length} file(s) scanned${via})${rebase ? ` — rebase still in progress, safe to \`git rebase --continue\`` : ""}.`);
374
422
  return;
375
423
  }
376
424
  console.error(`⛔ Not clean — do NOT continue the rebase or push.`);
425
+ if (via)
426
+ console.error(` scanned ${paths.length} file(s)${via}`);
427
+ if (indeterminate) {
428
+ // The one site where the placeholder is honest: `indeterminate` means
429
+ // no base could be resolved, so there is no concrete ref to name.
430
+ console.error(` [?] indeterminate: no base ref could be resolved and 0 file(s) were scanned — the gate proved nothing.`);
431
+ console.error(` Name one explicitly: ${recheckCommand("origin/<base>")}`);
432
+ }
433
+ // Anchored so the operator can paste it from ANY directory: `f` is
434
+ // repo-root-relative (`gitPaths` runs from the toplevel), and an
435
+ // un-anchored `git add -- sub/app.ts` run from `sub/` looks for
436
+ // `sub/sub/app.ts` (PR #434 review, finding 2).
437
+ const root = unmerged.length ? printedRoot() : null;
377
438
  for (const c of enumerationFailed)
378
439
  console.error(` [E] could not enumerate paths: ${c} — the gate cannot certify a tree it could not read`);
379
440
  for (const f of unmerged)
380
- console.error(` [U] ${f} — still unmerged; resolve it, then: git add -- ${f}`);
441
+ console.error(` [U] ${f} — still unmerged; resolve it, then: ${anchoredGit(root, `add -- ${shellQuote(f)}`)}`);
381
442
  for (const h of markers.slice(0, 20))
382
443
  console.error(` [M] ${h.path}:${h.line}: ${h.text.slice(0, 60)}`);
383
444
  if (markers.length > 20)
@@ -604,23 +665,80 @@ export function buildShipFlowHeader(project, issueNumber, issueUrl, linkMode = "
604
665
  /** What `pr sync --keep-conflicts` prints as the resolution recipe. NEVER
605
666
  * `git add -A`: the UNMERGED index state is the ONLY thing that makes git
606
667
  * refuse to commit a file still containing `<<<<<<<`, and `add -A` clears
607
- * exactly that. Stage the paths you actually resolved, then re-gate. */
608
- export const RESOLUTION_RECIPE = [
609
- "Resolve each file, then stage ONLY the paths you resolved: git add -- <file>…",
610
- " (never `git add -A` here — it clears the UNMERGED state that stops git committing conflict markers)",
611
- "Gate before continuing: renaiss-shipflow pr conflict-check # exit 8 = markers/unmerged remain",
612
- "Then: git rebase --continue (repeat per commit), run the FULL test suite, gate again, and push --force-with-lease.",
613
- ];
668
+ * exactly that. Stage the paths you actually resolved, then re-gate.
669
+ *
670
+ * A FUNCTION of the base (issue #412, finding 3): the printed gate command has
671
+ * to carry `--base`, because the moment `git rebase --continue` commits the
672
+ * markers a bare `pr conflict-check` has nothing left to enumerate and reports
673
+ * clean. This is also what step 5 of `references/conflict-resolution.md` tells
674
+ * the agent to run, so the two now say the same thing.
675
+ *
676
+ * `root` anchors the printed `git add` (see `anchoredGit`) so it runs from a
677
+ * subdirectory too — the paths the operator substitutes come from the gate, and
678
+ * those are repo-root-relative. Injected, not probed, so the recipe stays pure. */
679
+ export function resolutionRecipe(baseRef, root = null) {
680
+ return [
681
+ `Resolve each file, then stage ONLY the paths you resolved: ${anchoredGit(root, "add -- <file>…")}`,
682
+ " (never `git add -A` here — it clears the UNMERGED state that stops git committing conflict markers)",
683
+ `Gate before continuing: ${recheckCommand(baseRef)} # exit 8 = markers/unmerged remain`,
684
+ "Then: git rebase --continue (repeat per commit), run the FULL test suite, gate again, and push --force-with-lease.",
685
+ ];
686
+ }
687
+ /** The ONE place the gate's re-check invocation is spelled (PR #434 review).
688
+ *
689
+ * `pr sync` printed a base-less `pr conflict-check` on both of its refusal
690
+ * paths while `resolutionRecipe` — three lines away, in the same
691
+ * command — threaded the base. That is the vacuous form this PR exists to stop
692
+ * recommending: it makes the operator re-resolve a base the caller already
693
+ * knows, and auto-resolution can land on a DIFFERENT ref than the one `pr sync`
694
+ * actually rebased onto, so the re-check would certify a tree against the wrong
695
+ * base. Every printed invocation now goes through here, so the base-less form
696
+ * can't reappear in one message while the others are correct. Where no concrete
697
+ * ref is in scope, pass the `origin/<base>` placeholder — never nothing. */
698
+ export function recheckCommand(baseRef) {
699
+ return `renaiss-shipflow pr conflict-check --base ${baseRef}`;
700
+ }
701
+ /** A git command the operator can paste into ANY shell, at ANY depth in the
702
+ * worktree (PR #434 review, finding 2).
703
+ *
704
+ * The gate reports **repo-root-relative** paths — `gitPaths` pins its CWD to
705
+ * `repoToplevel()` so enumeration and grep share one frame of reference — so a
706
+ * printed `git add -- sub/app.ts` pasted from `sub/` resolves `sub/sub/app.ts`
707
+ * and dies with `could not open directory 'sub/sub/'`. `-C <root>` puts the
708
+ * printed command in the same frame the printed path is expressed in, which is
709
+ * the only way one string can be correct from every CWD. (Under the default
710
+ * `diff.relative=false` the un-anchored form was already wrong from a subdir;
711
+ * anchoring makes every printed path-bearing command runnable, not just this
712
+ * one.)
713
+ *
714
+ * Root unknown → print the plain form. A `git -C '' …` would be worse than no
715
+ * anchor, and a gate that cannot locate its own toplevel is already failing
716
+ * loudly for that reason. */
717
+ export function anchoredGit(root, args) {
718
+ return root ? `git -C ${shellQuote(root)} ${args}` : `git ${args}`;
719
+ }
720
+ /** The repo root to anchor a PRINTED command to, or `null` when it can't be
721
+ * located. `repoToplevel()` throws by design (a gate that cannot find its tree
722
+ * has proved nothing); a *hint string* must never be the thing that crashes the
723
+ * process, so this degrades to the un-anchored form instead. */
724
+ export function printedRoot() {
725
+ try {
726
+ return repoToplevel();
727
+ }
728
+ catch {
729
+ return null;
730
+ }
731
+ }
614
732
  /** The `git grep -E` pattern for the four marker families git can leave behind
615
733
  * (`<<<<<<<`, `|||||||` in diff3 mode, `=======`, `>>>>>>>`). */
616
734
  export const CONFLICT_MARKER_PATTERN = "^(<{7}|\\|{7}|={7}|>{7})( |$)";
617
735
  const MARKER_START = /^<{7}( |$)/;
618
736
  const MARKER_END = /^>{7}( |$)/;
619
737
  /**
620
- * Parse `git grep -z -n` output into marker hits: a file counts as conflicted when
621
- * it has a `<<<<<<<` start **OR** a `>>>>>>>` end. A bare `=======` (or a lone
622
- * diff3 `|||||||`) never trips the gate on its own — that's the only line a
623
- * changelog or a rule of prose plausibly starts with.
738
+ * Parse `git grep -z -n` output: a file counts as conflicted when it has a
739
+ * `<<<<<<<` start **OR** a `>>>>>>>` end. A bare `=======` (or a lone diff3
740
+ * `|||||||`) never trips the gate on its own — that's the only line a changelog
741
+ * or a rule of prose plausibly starts with.
624
742
  *
625
743
  * This used to require BOTH arms (the "triad rule"), which let a half-resolved
626
744
  * file through: delete one arm, leave `<<<<<<< HEAD` behind, and since `git add`
@@ -640,27 +758,48 @@ const MARKER_END = /^>{7}( |$)/;
640
758
  * (PR #394 review). git prints colons in paths unquoted, so no colon-based
641
759
  * parse can be correct; NUL is the only unambiguous delimiter.
642
760
  *
761
+ * The walk is POSITIONAL, not a `split("\0")` field walk (issue #412, finding 1).
762
+ * A `split` treats fields as fixed pairs, so ONE extra NUL anywhere in the stream
763
+ * shifts parity for everything after it. A matched LINE can legitimately contain
764
+ * a NUL: git's binary heuristic only inspects the first 8000 bytes, so a >8 KB
765
+ * text file with an embedded NUL further in is scanned as text and printed
766
+ * verbatim. Measured: a `======= \0Y` line in a 9.9 KB file desynced the walk and
767
+ * dropped EVERY later file in sorted-path order — a victim with three live
768
+ * markers reported CLEAN. `--text` does not fix this; the NUL is still inside the
769
+ * matched line. Reading each field to its own terminator does: a path cannot
770
+ * contain a NUL (POSIX), so field 1 ends at the 1st NUL and field 2 at the 2nd,
771
+ * and a grep match is exactly one line, so the text ends at the next LF —
772
+ * whatever bytes it contains.
773
+ *
643
774
  * Pure + testable (`pr sync` shells out to gh+git and has no harness).
644
775
  */
645
- export function parseConflictMarkerGrep(out) {
776
+ export function parseConflictMarkerRecords(out) {
646
777
  const byPath = new Map();
647
- // Splitting on NUL yields [path, line, "text\npath", line, "text\npath", …]:
648
- // the matched line ends at the FIRST `\n` of each third field, and whatever
649
- // follows is the next record's path — so even a path containing a newline
650
- // (which `-z` prints verbatim) is recovered intact.
651
- const fields = out.split("\0");
652
- let path = fields[0] ?? "";
653
- for (let i = 1; i + 1 < fields.length; i += 2) {
654
- const line = parseInt(fields[i], 10);
655
- const rest = fields[i + 1];
656
- const nl = rest.indexOf("\n");
657
- const text = nl === -1 ? rest : rest.slice(0, nl);
778
+ const paths = [];
779
+ let i = 0;
780
+ while (i < out.length) {
781
+ const pathEnd = out.indexOf("\0", i);
782
+ if (pathEnd === -1)
783
+ break; // truncated: no path terminator, nothing recovered
784
+ const path = out.slice(i, pathEnd);
785
+ const lineEnd = out.indexOf("\0", pathEnd + 1);
786
+ if (lineEnd === -1)
787
+ break; // truncated: no line-number terminator
788
+ const line = parseInt(out.slice(pathEnd + 1, lineEnd), 10);
789
+ const nl = out.indexOf("\n", lineEnd + 1);
790
+ const text = nl === -1 ? out.slice(lineEnd + 1) : out.slice(lineEnd + 1, nl);
658
791
  if (Number.isFinite(line)) {
659
- const list = byPath.get(path) ?? [];
792
+ let list = byPath.get(path);
793
+ if (!list) {
794
+ list = [];
795
+ byPath.set(path, list);
796
+ paths.push(path);
797
+ }
660
798
  list.push({ path, line, text });
661
- byPath.set(path, list);
662
799
  }
663
- path = nl === -1 ? "" : rest.slice(nl + 1);
800
+ if (nl === -1)
801
+ break; // last record had no terminating LF
802
+ i = nl + 1;
664
803
  }
665
804
  const hits = [];
666
805
  for (const list of byPath.values()) {
@@ -669,17 +808,38 @@ export function parseConflictMarkerGrep(out) {
669
808
  if (hasStart || hasEnd)
670
809
  hits.push(...list);
671
810
  }
672
- return hits;
811
+ return { hits, paths };
812
+ }
813
+ /** The marker hits alone — see `parseConflictMarkerRecords` for the coverage set. */
814
+ export function parseConflictMarkerGrep(out) {
815
+ return parseConflictMarkerRecords(out).hits;
673
816
  }
674
817
  /** Paths from a `git diff --name-only` invocation. NUL-delimited (`-z`) so a
675
818
  * filename containing a newline or a quotable byte can't split into two bogus
676
819
  * pathspecs — which would silently drop that file from the marker scan.
677
820
  * Failure is REPORTED (`ok: false`), never flattened into an empty result:
678
821
  * `scanConflictMarkers([])` is `[]`, so a swallowed error would have read as a
679
- * clean tree and let the push through (PR #394 review). */
822
+ * clean tree and let the push through (PR #394 review).
823
+ *
824
+ * Runs from `repoToplevel()`, and that is LOAD-BEARING (issue #412, finding 4 —
825
+ * PR #434 review). Enumeration and grep are a PAIR and must share one frame of
826
+ * reference: `git grep` always runs from the root (see `grepConflictMarkers`),
827
+ * so the paths handed to it must be root-relative too. `git diff --name-only`
828
+ * honours `diff.relative` — set to true (config, or a `--relative` in the
829
+ * command) it emits CWD-relative paths AND drops everything outside the CWD.
830
+ * Run the gate from `sub/` and `sub/app.ts` was enumerated as `app.ts`, which
831
+ * the root-anchored grep matched nothing for: exit 1 ("no match") read as a
832
+ * CLEAN tree over three live markers. Pinning the CWD here fixes it at the
833
+ * source, for every call site, and needs no `--no-relative` flag (git ≥2.30):
834
+ * at the toplevel, relative and absolute are the same thing.
835
+ *
836
+ * A root that cannot be located degrades to `ok: false` rather than throwing —
837
+ * callers rely on this never throwing (`pr sync`'s best-effort listing), and a
838
+ * gate that cannot find its tree has enumerated nothing, which is exactly what
839
+ * `ok: false` means. */
680
840
  export function gitPaths(cmd) {
681
841
  try {
682
- const out = execSync(`${cmd} -z`, { stdio: ["ignore", "pipe", "ignore"] }).toString();
842
+ const out = execSync(`${cmd} -z`, { cwd: repoToplevel(), stdio: ["ignore", "pipe", "ignore"] }).toString();
683
843
  return { paths: out.split("\0").filter(Boolean), ok: true, cmd };
684
844
  }
685
845
  catch {
@@ -691,9 +851,65 @@ export function gitPaths(cmd) {
691
851
  export function changedPaths(baseRef) {
692
852
  return gitPaths(`git diff --name-only ${shellQuote(baseRef)}...HEAD`);
693
853
  }
694
- /** Scan the working tree for leftover conflict markers in `paths`. `git grep`
695
- * exits 1 on "no match" (clean) any OTHER failure is rethrown so the gate
696
- * fails CLOSED rather than silently reporting a clean tree.
854
+ /** The repository root, as the CWD every gate git command runs FROM BOTH the
855
+ * `git diff` that enumerates (`gitPaths`) and the `git grep` that scans
856
+ * (`grepConflictMarkers`).
857
+ *
858
+ * Load-bearing (issue #412, finding 4): `git grep` resolves pathspecs relative
859
+ * to the CWD, so paths enumerated in one frame and grepped in another match
860
+ * nothing — `git grep` exits 1 ("no match"), which the gate reads as CLEAN over
861
+ * live markers. Anchoring only one half is worse than anchoring neither: under
862
+ * `diff.relative=true` the two halves then disagree where before they at least
863
+ * agreed (PR #434 review). It must be a toplevel CWD and NOT a `:(top)`
864
+ * pathspec prefix: `--literal-pathspecs`, which the `:leading.ts` regression
865
+ * requires, disables pathspec magic outright. Failure to locate the root throws
866
+ * — a gate that cannot find the tree it is certifying has proved nothing.
867
+ * (`gitPaths` catches that throw and degrades to `ok: false`, its own way of
868
+ * saying the same thing.) */
869
+ export function repoToplevel() {
870
+ let root;
871
+ try {
872
+ root = execSync("git rev-parse --show-toplevel", { stdio: ["ignore", "pipe", "ignore"] }).toString().trim();
873
+ }
874
+ catch (e) {
875
+ throw new Error(`conflict-marker scan failed (git rev-parse --show-toplevel): ${e.message}`);
876
+ }
877
+ if (!root)
878
+ throw new Error("conflict-marker scan failed: git reported no worktree toplevel (bare repo?)");
879
+ return root;
880
+ }
881
+ /** `git grep` takes its pathspecs on the command line and has NO
882
+ * `--pathspec-from-file`, so a large branch diff has to be split or it blows
883
+ * ARG_MAX. Measured on this repo: 1217 changed files / 84 KB of pathspec at
884
+ * HEAD~400, against a 1 MB limit — under it, but not by a margin a
885
+ * fail-closed gate should bet on. */
886
+ const PATHSPEC_CHUNK_FILES = 1000;
887
+ const PATHSPEC_CHUNK_BYTES = 100_000;
888
+ /** Split paths into `git grep`-sized batches, budgeting the QUOTED byte length
889
+ * actually spent on the command line. A single path over budget still gets its
890
+ * own chunk rather than looping forever. Pure, so the budgeting is testable
891
+ * without building a 100 KB fixture. */
892
+ export function chunkPathspecs(paths, maxFiles = PATHSPEC_CHUNK_FILES, maxBytes = PATHSPEC_CHUNK_BYTES) {
893
+ const chunks = [];
894
+ let current = [];
895
+ let bytes = 0;
896
+ for (const p of paths) {
897
+ const cost = Buffer.byteLength(shellQuote(p)) + 1; // + the separating space
898
+ if (current.length && (current.length >= maxFiles || bytes + cost > maxBytes)) {
899
+ chunks.push(current);
900
+ current = [];
901
+ bytes = 0;
902
+ }
903
+ current.push(p);
904
+ bytes += cost;
905
+ }
906
+ if (current.length)
907
+ chunks.push(current);
908
+ return chunks;
909
+ }
910
+ /** One `git grep` invocation over a chunk. Exit 1 = "no match" = clean; any
911
+ * OTHER failure is rethrown so the gate fails CLOSED rather than silently
912
+ * reporting a clean tree.
697
913
  *
698
914
  * `--literal-pathspecs` is load-bearing: `shellQuote` stops the SHELL, but git
699
915
  * still parses each argument as a PATHSPEC. A tracked file whose name begins
@@ -702,25 +918,80 @@ export function changedPaths(baseRef) {
702
918
  * (PR #394 review). Note the flag is a main-git option, so it must precede the
703
919
  * subcommand: `git grep --literal-pathspecs` is rejected as an unknown option.
704
920
  *
705
- * `-z` is load-bearing too: it makes git delimit `path\0line\0text`, so a path
706
- * containing `:<digits>:` can't be mis-split by the parser and silently dropped
707
- * from the results (PR #394 review — see `parseConflictMarkerGrep`). */
708
- export function scanConflictMarkers(paths) {
709
- if (!paths.length)
710
- return [];
711
- const pathspec = paths.map(shellQuote).join(" ");
712
- let out;
921
+ * `-z` is load-bearing too: it makes git delimit `path\0line\0text` (and
922
+ * NUL-terminate each `-l` path), so a path containing `:<digits>:` or a newline
923
+ * can't be mis-split and silently dropped (PR #394 review).
924
+ *
925
+ * `--text` replaces the old `-I` (issue #412, finding 2). `-I` skips whatever
926
+ * git calls binary — including a file marked `-diff` in `.gitattributes`, the
927
+ * standard lockfile idiom (`pnpm-lock.yaml -diff`). git text-merges such a file
928
+ * and writes real `<<<<<<<` markers into it, then `git grep -I` refuses to look:
929
+ * the gate returned `[]` both before and after `git add` while the markers sat
930
+ * on disk. `--text` scans it. Nothing is lost — a genuinely binary file cannot
931
+ * match a `^`-anchored 7-character marker line by accident. */
932
+ function grepConflictMarkers(root, mode, chunk) {
933
+ const pathspec = chunk.map(shellQuote).join(" ");
934
+ const cmd = `git --literal-pathspecs grep --text -z ${mode} -E ${shellQuote(CONFLICT_MARKER_PATTERN)} -- ${pathspec}`;
713
935
  try {
714
- out = execSync(`git --literal-pathspecs grep -z -I -n -E ${shellQuote(CONFLICT_MARKER_PATTERN)} -- ${pathspec}`, {
715
- stdio: ["ignore", "pipe", "ignore"],
716
- }).toString();
936
+ return execSync(cmd, { cwd: root, stdio: ["ignore", "pipe", "ignore"] }).toString();
717
937
  }
718
938
  catch (e) {
719
939
  if (e.status === 1)
720
- return []; // no match
940
+ return ""; // no match
721
941
  throw new Error(`conflict-marker scan failed (git grep): ${e.message}`);
722
942
  }
723
- return parseConflictMarkerGrep(out);
943
+ }
944
+ /**
945
+ * Scan the working tree for leftover conflict markers in `paths`.
946
+ *
947
+ * Two passes per chunk, and the split is the point (issue #412, finding 1):
948
+ *
949
+ * 1. `-l` — the AUTHORITY on WHICH files match. `-z -l` emits NUL-terminated
950
+ * paths, so `split("\0")` is exact and no parse can lose a file.
951
+ * 2. `-n` — the line/text DETAIL, positionally parsed.
952
+ *
953
+ * Then fail CLOSED if the `-l` set is not covered by the paths the `-n` parse
954
+ * recovered: the detail pass lost a file the authority saw, so this scan cannot
955
+ * certify anything. The comparison is against `parse.paths` — every path a
956
+ * record was read for — and emphatically NOT against the filtered `hits`. `-l`
957
+ * cannot distinguish a bare `=======` from a real conflict and the parser
958
+ * deliberately does not trip on one, so checking `hits` would make any file
959
+ * containing a lone 7-equals line permanently unpushable.
960
+ */
961
+ export function scanConflictMarkers(paths, budget) {
962
+ if (!paths.length)
963
+ return [];
964
+ const root = repoToplevel();
965
+ const hits = [];
966
+ for (const chunk of chunkPathspecs(paths, budget?.maxFiles, budget?.maxBytes)) {
967
+ const matched = grepConflictMarkers(root, "-l", chunk).split("\0").filter(Boolean);
968
+ const parsed = parseConflictMarkerRecords(grepConflictMarkers(root, "-n", chunk));
969
+ // Per CHUNK, not once at the end: a chunk that cannot be certified must stop
970
+ // the whole scan, and holding the comparison to the end would let an early
971
+ // chunk's loss hide behind a later chunk's coverage.
972
+ const missed = unrecoveredMatches(matched, parsed.paths);
973
+ if (missed.length) {
974
+ throw new Error(`conflict-marker scan failed: git grep matched ${missed.length} file(s) whose marker lines the parse could not recover `
975
+ + `(${missed.slice(0, 5).map((p) => JSON.stringify(p)).join(", ")}${missed.length > 5 ? ", …" : ""}). `
976
+ + `The gate cannot certify a tree it could not fully read — inspect those files by hand.`);
977
+ }
978
+ hits.push(...parsed.hits);
979
+ }
980
+ return hits;
981
+ }
982
+ /** Files the `-l` authority matched that the `-n` parse recovered no record for.
983
+ * Non-empty ⇒ the scan lost coverage and must fail closed.
984
+ *
985
+ * ⚠️ `recovered` is `ConflictMarkerParse.paths` — every path a record was read
986
+ * for — and NEVER the filtered hits. `git grep -l` matches a bare `=======` the
987
+ * same as a real `<<<<<<<`, while the parser deliberately does not trip on a
988
+ * lone separator. Comparing against hits would therefore report every file
989
+ * containing a single 7-equals line as "lost", hard-blocking its push forever:
990
+ * a repo-wide denial of service on the gate, invisible today only because this
991
+ * repo happens to contain zero such lines. */
992
+ export function unrecoveredMatches(matched, recovered) {
993
+ const seen = new Set(recovered);
994
+ return matched.filter((p) => !seen.has(p));
724
995
  }
725
996
  /** Which rebase state git has left in this worktree, if any. Reads the
726
997
  * worktree's own git dir, so it is correct inside `git worktree` checkouts. */
@@ -738,6 +1009,96 @@ export function rebaseInProgress() {
738
1009
  return "rebase-apply";
739
1010
  return null;
740
1011
  }
1012
+ /** Does `ref` name a real commit here? Used to reject a base we'd only fail to
1013
+ * diff against later — an auto-resolved base that errors would turn a clean
1014
+ * tree into an enumeration failure (exit 8) for no gain. */
1015
+ function refExists(ref) {
1016
+ try {
1017
+ execSync(`git rev-parse --verify --quiet ${shellQuote(`${ref}^{commit}`)}`, { stdio: ["ignore", "ignore", "ignore"] });
1018
+ return true;
1019
+ }
1020
+ catch {
1021
+ return false;
1022
+ }
1023
+ }
1024
+ /** The commit an in-flight rebase is replaying ONTO, read from the rebase state
1025
+ * git itself wrote (`.git/rebase-merge/onto` or `.git/rebase-apply/onto`).
1026
+ * `rebaseInProgress()` already names the directory, so this is a file read. */
1027
+ export function rebaseOnto() {
1028
+ const state = rebaseInProgress();
1029
+ if (!state)
1030
+ return null;
1031
+ try {
1032
+ const gitDir = execSync("git rev-parse --absolute-git-dir", { stdio: ["ignore", "pipe", "ignore"] }).toString().trim();
1033
+ const onto = readFileSync(join(gitDir, state, "onto"), "utf8").trim();
1034
+ return onto && refExists(onto) ? onto : null;
1035
+ }
1036
+ catch {
1037
+ return null;
1038
+ }
1039
+ }
1040
+ /** The remote's default branch, from `refs/remotes/origin/HEAD`. */
1041
+ export function originHeadRef() {
1042
+ try {
1043
+ const ref = execSync("git symbolic-ref --short refs/remotes/origin/HEAD", { stdio: ["ignore", "pipe", "ignore"] }).toString().trim();
1044
+ return ref && refExists(ref) ? ref : null;
1045
+ }
1046
+ catch {
1047
+ return null;
1048
+ }
1049
+ }
1050
+ /** Last-ditch default branch when `origin/HEAD` was never set (a plain `git
1051
+ * clone --depth` or a hand-added remote leaves it unset). */
1052
+ export function defaultBranchRef() {
1053
+ for (const candidate of ["origin/main", "origin/master"]) {
1054
+ if (refExists(candidate))
1055
+ return candidate;
1056
+ }
1057
+ return null;
1058
+ }
1059
+ /**
1060
+ * Resolve the base `conflict-check` scans against (issue #412, finding 3).
1061
+ *
1062
+ * Without a base the check is VACUOUS at exactly the moment it matters. Once
1063
+ * `git rebase --continue` has COMMITTED the markers, nothing is unmerged and
1064
+ * nothing differs from HEAD, so both of the local enumeration sources are empty
1065
+ * and the gate prints `{"clean":true,"scanned":0}` and exits 0 — over a tree
1066
+ * whose HEAD blob literally contains `<<<<<<< HEAD`. The same tree with
1067
+ * `--base main` yields 3 hits and exit 8.
1068
+ *
1069
+ * Precedence, most-specific first:
1070
+ * 1. `rebase-onto` — mid-rebase, the commit git is actually replaying onto is
1071
+ * the true base, whatever anyone typed.
1072
+ * 2. `origin-head` / 3. `default-branch` — the repo's own default branch.
1073
+ * 4. `explicit` — the operator's `--base`.
1074
+ *
1075
+ * NOT `@{upstream}`: that resolves to `origin/<same-branch>`, which is the
1076
+ * branch's own remote copy and not the PR base at all — diffing a branch against
1077
+ * itself is a vacuous scan wearing a base's clothes — and it is unset on any
1078
+ * freshly created branch anyway.
1079
+ *
1080
+ * Ranking `explicit` LAST is deliberate and must stay that way: a stale `--base`
1081
+ * flag must not override the commit git is actually replaying onto mid-rebase,
1082
+ * and ranking it up would change which single ref `base` reports as covered.
1083
+ *
1084
+ * `--base` keeps its documented ADDITIVE contract at the call site: an explicit
1085
+ * ref the precedence didn't pick is still scanned, it just isn't what gets
1086
+ * reported as the resolved base — the caller reports the FULL set it diffed
1087
+ * against as `bases`, so nothing scanned goes unnamed (PR #434 review). Pure
1088
+ * (probes are injected) so the precedence is unit-testable without a rebase
1089
+ * fixture.
1090
+ */
1091
+ export function resolveScanBase(i) {
1092
+ if (i.onto)
1093
+ return { base: i.onto, source: "rebase-onto" };
1094
+ if (i.originHead)
1095
+ return { base: i.originHead, source: "origin-head" };
1096
+ if (i.defaultBranch)
1097
+ return { base: i.defaultBranch, source: "default-branch" };
1098
+ if (i.explicit)
1099
+ return { base: i.explicit, source: "explicit" };
1100
+ return null;
1101
+ }
741
1102
  /**
742
1103
  * Whether `pr sync` may start, given the worktree's state. The loop reuses ONE
743
1104
  * worktree, so a worker turn that dies mid-`--keep-conflicts` strands it on a
@@ -745,13 +1106,25 @@ export function rebaseInProgress() {
745
1106
  * misleading `On branch "HEAD" but PR #N is "x"` and every later loop git op
746
1107
  * failed. Each refusal names the state AND the exact command that clears it.
747
1108
  * Pure (state is injected) so it's unit-testable without a git fixture.
1109
+ *
1110
+ * `base` is the ref the printed re-check names, and it must be CONCRETE (PR #434
1111
+ * review, finding 1). This branch fires only when a rebase IS in progress, so
1112
+ * the caller always has one — the rebase's own `onto`, else `origin/<the PR's
1113
+ * base>` — and the `origin/<base>` placeholder printed here before was a command
1114
+ * the operator could not run: `conflict-check --base 'origin/<base>'` fails to
1115
+ * resolve the ref and exits 8 via `enumerationFailed`, i.e. the recovery hint
1116
+ * itself reported "the gate proved nothing". The placeholder survives only as
1117
+ * the last resort for a caller that truly has neither source.
1118
+ *
1119
+ * `root` anchors the printed `git add` for a subdirectory shell (`anchoredGit`).
748
1120
  */
749
1121
  export function syncEntryGuard(i) {
750
1122
  const checkout = `git checkout ${shellQuote(i.head)}`;
751
1123
  if (i.rebase) {
1124
+ const stage = anchoredGit(i.root ?? null, "add -- <file>…");
752
1125
  return { ok: false, message: `A rebase (${i.rebase}) is already in progress in this worktree — PR #${i.number} can't sync until it is cleared.\n`
753
1126
  + `This is what an abandoned \`pr sync --keep-conflicts\` leaves behind: HEAD is detached mid-rebase.\n`
754
- + `Discard it: git rebase --abort (or finish it: resolve, git add -- <file>…, renaiss-shipflow pr conflict-check, git rebase --continue)` };
1127
+ + `Discard it: git rebase --abort (or finish it: resolve, ${stage}, ${recheckCommand(i.base || "origin/<base>")}, git rebase --continue)` };
755
1128
  }
756
1129
  if (i.currentBranch === "HEAD") {
757
1130
  return { ok: false, message: `HEAD is detached in this worktree, so PR #${i.number} ("${i.head}") is not checked out.\n`
@@ -1 +1 @@
1
- {"version":3,"file":"pr.js","sourceRoot":"","sources":["../../src/commands/pr.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pr.js","sourceRoot":"","sources":["../../src/commands/pr.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EACL,kBAAkB,EAAE,gBAAgB,EAAE,mBAAmB,GAC1D,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,WAAW,EAAE,eAAe,EAAE,qBAAqB,EAAE,cAAc,EAAE,kBAAkB,EAAE,aAAa,EAA2B,MAAM,UAAU,CAAC;AAC/Q,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,uBAAuB,EAA0B,MAAM,cAAc,CAAC;AACzH,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAoC,MAAM,uBAAuB,CAAC;AAC1G,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACjF,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,UAAU,EAAmB,MAAM,gBAAgB,CAAC;AACxF,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEzF,oFAAoF;AACpF,MAAM,cAAc,GAAG,iBAAiB,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC;AACvE,kFAAkF;AAClF,mFAAmF;AACnF,wFAAwF;AACxF,MAAM,qBAAqB,GAAG,iBAAiB,CAAC,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC;AAEjF;;;;;mEAKmE;AACnE,SAAS,cAAc,CAAC,IAAY,EAAE,MAAc,EAAE,MAAY;IAChE,MAAM,QAAQ,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,qBAAqB,CAAC,CAAC;IACrF,MAAM,MAAM,GAAG,uBAAuB,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;IAC1D,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAC1G,OAAO,UAAU,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC,CAAC;AACvD,CAAC;AAED;;0EAE0E;AAC1E,SAAS,wBAAwB,CAAC,IAAY,EAAE,MAAc;IAC5D,IAAI,CAAC;QACH,OAAO,EAAE,KAAK,EAAE,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;IAC1G,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;IACzC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,OAAgB;IAChD,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,sBAAsB,CAAC,CAAC;IAErE,EAAE;SACC,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,uEAAuE,CAAC;SACpF,MAAM,CAAC,aAAa,EAAE,oEAAoE,CAAC;SAC3F,MAAM,CAAC,WAAW,EAAE,mHAAmH,CAAC;SACxI,MAAM,CAAC,iBAAiB,EAAE,UAAU,CAAC;SACrC,MAAM,CAAC,eAAe,EAAE,uCAAuC,CAAC;SAChE,MAAM,CAAC,cAAc,EAAE,aAAa,CAAC;SACrC,MAAM,CAAC,SAAS,EAAE,iBAAiB,CAAC;SACpC,MAAM,CAAC,qBAAqB,EAAE,kEAAkE,CAAC;SACjG,MAAM,CAAC,0BAA0B,EAAE,wDAAwD,CAAC;SAC5F,MAAM,CAAC,eAAe,EAAE,6FAA6F,EAAE,MAAM,CAAC;SAC9H,MAAM,CAAC,QAAQ,EAAE,aAAa,CAAC;SAC/B,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,IAAS,EAAE,EAAE;QACpC,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;QACnC,MAAM,MAAM,GAAG,aAAa,EAAE,CAAC;QAE/B,6DAA6D;QAC7D,uEAAuE;QACvE,wEAAwE;QACxE,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC/B,MAAM,GAAG,GAAG,oBAAoB,CAAC,kBAAkB,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;YACnE,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,2GAA2G,CAAC,CAAC;gBAC3H,KAAK,MAAM,CAAC,IAAI,GAAG;oBAAE,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBAC/C,OAAO,CAAC,KAAK,CAAC,iFAAiF,CAAC,CAAC;gBACjG,OAAO,CAAC,KAAK,CAAC,iFAAiF,CAAC,CAAC;gBACjG,OAAO,CAAC,KAAK,CAAC,oGAAoG,CAAC,CAAC;gBACpH,OAAO,CAAC,KAAK,CAAC,oDAAoD,CAAC,CAAC;gBACpE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;QACH,CAAC;QACD,0EAA0E;QAC1E,0EAA0E;QAC1E,wEAAwE;QACxE,uEAAuE;QACvE,wBAAwB;QACxB,MAAM,YAAY,GAAG,eAAe,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;QACtD,IAAI,YAAY,CAAC,MAAM,EAAE,CAAC;YACxB,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC3B,OAAO,CAAC,KAAK,CAAC,qEAAqE,CAAC,CAAC;gBACrF,KAAK,MAAM,CAAC,IAAI,YAAY;oBAAE,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBACxD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,KAAK,MAAM,CAAC,IAAI,YAAY;gBAAE,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC;QACpE,CAAC;QACD,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;QAC1F,uEAAuE;QACvE,4EAA4E;QAC5E,4EAA4E;QAC5E,0EAA0E;QAC1E,2DAA2D;QAC3D,MAAM,QAAQ,GAAkB,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC;QACpE,MAAM,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,sBAAsB,GAAG,CAAC,OAAO,CAAC,YAAY,WAAW,WAAW,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QAClH,MAAM,MAAM,GAAG,mBAAmB,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAC7F,MAAM,IAAI,GAAG,GAAG,MAAM,OAAO,IAAI,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC;QAC/C,MAAM,OAAO,GAAG,UAAU,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QAC1I,MAAM,gBAAgB,CAAC,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,QAAQ,EAAE;YAC3D,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,YAAY;YAC9B,MAAM;YACN,OAAO,EAAE,QAAQ,CAAC,oBAAoB,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE;YACzD,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE;YAC3C,UAAU,EAAE,IAAI,CAAC,UAAU,IAAI,EAAE;SAClC,EAAE,sCAAsC,CAAC,CAAC;QAC3C,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC,CAAC;IAEN,EAAE;SACC,OAAO,CAAC,gBAAgB,CAAC;SACzB,WAAW,CAAC,sDAAsD,CAAC;SACnE,MAAM,CAAC,eAAe,EAAE,yBAAyB,EAAE,QAAQ,CAAC;SAC5D,MAAM,CAAC,eAAe,EAAE,8BAA8B,CAAC;SACvD,MAAM,CAAC,QAAQ,EAAE,aAAa,CAAC;SAC/B,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,SAAiB,EAAE,IAAkG,EAAE,EAAE;QAChJ,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;QACnC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,aAAa,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;QAC7D,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACpE,IAAI,CAAC,IAAI,CAAC,UAAU;YAAE,wBAAwB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAClE,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE;YACpE,IAAI;YACJ,SAAS,EAAE,MAAM,CAAC,SAAS;SAC5B,EAAE,mCAAmC,CAAC,CAAC;QACxC,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAE,CAChG,OAAO,CAAC,GAAG,CAAC,WAAW,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC,CAAC;IAEN,EAAE;SACC,OAAO,CAAC,gBAAgB,CAAC;SACzB,WAAW,CAAC,+FAA+F,CAAC;SAC5G,MAAM,CAAC,cAAc,EAAE,8DAA8D,CAAC;SACtF,MAAM,CAAC,mBAAmB,EAAE,sBAAsB,CAAC;SACnD,MAAM,CAAC,QAAQ,EAAE,aAAa,CAAC;SAC/B,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,SAAiB,EAAE,IAAwD,EAAE,EAAE;QACtG,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;QACnC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,aAAa,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;QAC7D,MAAM,MAAM,GAAI,IAAI,CAAC,MAAsB,IAAI,kBAAkB,EAAE,CAAC;QACpE,MAAM,UAAU,GAAG,mBAAmB,EAAE,CAAC;QACzC,MAAM,EAAE,GAAG,cAAc,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACtC,MAAM,EAAE,GAAG,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;QAClD,MAAM,OAAO,GAAG,wBAAwB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACvD,MAAM,iBAAiB,GAAG,OAAO,CAAC,KAAK,CAAC;QACxC,6EAA6E;QAC7E,+CAA+C;QAC/C,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAClD,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,EAAE,UAAU,EAAE,iBAAiB,EAAE,aAAa,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAClJ,2EAA2E;QAC3E,4DAA4D;QAC5D,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,4BAA4B,EAAE,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAChH,MAAM,UAAU,GAAG,QAAQ,CAAC,UAAU,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;QAC/D,MAAM,GAAG,GAAG;YACV,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC,QAAQ,EAAE,iBAAiB;YACtF,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ;SAChE,CAAC;QACF,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE;YACnB,oEAAoE;YACpE,kEAAkE;YAClE,qEAAqE;YACrE,OAAO,CAAC,GAAG,CAAC,OAAO,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,eAAe,MAAM,EAAE,CAAC,KAAK,SAAS,EAAE,CAAC,OAAO,eAAe,EAAE,CAAC,QAAQ,aAAa,MAAM,EAAE,CAAC,CAAC;YACjK,KAAK,MAAM,CAAC,IAAI,QAAQ;gBAAE,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QACtD,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IACvB,CAAC,CAAC,CAAC,CAAC;IAEN,EAAE;SACC,OAAO,CAAC,oBAAoB,CAAC;SAC7B,WAAW,CAAC,6GAA6G,CAAC;SAC1H,MAAM,CAAC,cAAc,EAAE,8DAA8D,CAAC;SACtF,MAAM,CAAC,eAAe,EAAE,yBAAyB,EAAE,QAAQ,CAAC;SAC5D,MAAM,CAAC,mBAAmB,EAAE,sBAAsB,CAAC;SACnD,MAAM,CAAC,QAAQ,EAAE,aAAa,CAAC;SAC/B,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,SAAiB,EAAE,IAA8F,EAAE,EAAE;QAC5I,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;QACnC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,aAAa,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;QAC7D,MAAM,MAAM,GAAI,IAAI,CAAC,MAAsB,IAAI,kBAAkB,EAAE,CAAC;QACpE,MAAM,UAAU,GAAG,mBAAmB,EAAE,CAAC;QACzC,MAAM,EAAE,GAAG,cAAc,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACtC,MAAM,OAAO,GAAG,wBAAwB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACvD,MAAM,iBAAiB,GAAG,OAAO,CAAC,KAAK,CAAC;QACxC,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAClD,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,EAAE,UAAU,EAAE,iBAAiB,EAAE,aAAa,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAClJ,qEAAqE;QACrE,0DAA0D;QAC1D,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,4BAA4B,EAAE,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAChH,MAAM,UAAU,GAAG,QAAQ,CAAC,UAAU,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;QAE/D,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,+EAA+E;YAC/E,gFAAgF;YAChF,gFAAgF;YAChF,6EAA6E;YAC7E,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;gBACpB,2EAA2E;gBAC3E,uEAAuE;gBACvE,uEAAuE;gBACvE,4DAA4D;gBAC5D,IAAI,CAAC;oBACH,aAAa,CAAC,IAAI,EAAE,qBAAqB,EAAE,aAAa,CAAC,qBAAqB,CAAC,EAAE,2FAA2F,CAAC,CAAC;oBAC9K,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,qBAAqB,CAAC,CAAC,CAAC;gBAC1D,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,OAAO,CAAC,IAAI,CAAC,iEAAiE,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBAC9H,CAAC;YACH,CAAC;YACD,yEAAyE;YACzE,iEAAiE;YACjE,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE;gBACvH,OAAO,CAAC,GAAG,CAAC,WAAW,MAAM,sCAAsC,CAAC,CAAC;gBACrE,KAAK,MAAM,CAAC,IAAI,QAAQ;oBAAE,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;gBACpD,IAAI,QAAQ,CAAC,aAAa,EAAE,CAAC;oBAC3B,OAAO,CAAC,GAAG,CAAC,6EAA6E,CAAC,CAAC;gBAC7F,CAAC;YACH,CAAC,CAAC,CAAC;YACH,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,IAAI,QAAQ,EAAE,IAAI,CAAC,CAAC;QACpE,2EAA2E;QAC3E,4EAA4E;QAC5E,wBAAwB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAC5C,MAAM,gBAAgB,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,EAAE,mCAAmC,CAAC,CAAC;QACjI,MAAM,MAAM,GAAG,CAAC,MAAM,CAAC,uBAAuB,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QAC3E,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;YACvB,MAAM,gBAAgB,CAAC,GAAG,EAAE,QAAQ,EAAE,CAAC,EAAE,eAAe,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,kBAAkB,MAAM,EAAE,EAAE,CAAC,CAAC;QAC1G,CAAC;QACD,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,CACnG,OAAO,CAAC,GAAG,CAAC,gBAAgB,MAAM,KAAK,MAAM,CAAC,SAAS,kBAAkB,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,cAAc,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;IACnJ,CAAC,CAAC,CAAC,CAAC;IAEN,EAAE;SACC,OAAO,CAAC,eAAe,CAAC;SACxB,WAAW,CAAC,oMAAoM,CAAC;SACjN,MAAM,CAAC,mBAAmB,EAAE,sBAAsB,CAAC;SACnD,MAAM,CAAC,WAAW,EAAE,kDAAkD,CAAC;SACvE,MAAM,CAAC,kBAAkB,EAAE,+IAA+I,CAAC;SAC3K,MAAM,CAAC,QAAQ,EAAE,aAAa,CAAC;SAC/B,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,SAAiB,EAAE,IAAgF,EAAE,EAAE;QAC9H,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;QACnC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,aAAa,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;QAC7D,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACtC,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,CAAC;QAChC,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,CAAC;QAChC,IAAI,CAAC,IAAI,EAAE,CAAC;YAAC,OAAO,CAAC,KAAK,CAAC,OAAO,MAAM,sBAAsB,CAAC,CAAC;YAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAAC,CAAC;QAEnF,oEAAoE;QACpE,uEAAuE;QACvE,yEAAyE;QACzE,qEAAqE;QACrE,EAAE;QACF,2EAA2E;QAC3E,yEAAyE;QACzE,0EAA0E;QAC1E,gEAAgE;QAChE,0EAA0E;QAC1E,MAAM,KAAK,GAAG,cAAc,CAAC;YAC3B,MAAM,EAAE,gBAAgB,EAAE;YAC1B,aAAa,EAAE,QAAQ,CAAC,iCAAiC,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE;YAC5E,IAAI;YACJ,MAAM;YACN,IAAI,EAAE,UAAU,EAAE,IAAI,UAAU,IAAI,EAAE;YACtC,IAAI,EAAE,WAAW,EAAE;SACpB,CAAC,CAAC;QACH,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;YACd,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC7B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,uEAAuE;QACvE,wEAAwE;QACxE,2EAA2E;QAC3E,qEAAqE;QACrE,IAAI,CAAC;YACH,QAAQ,CAAC,oBAAoB,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QACxE,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,oBAAoB,IAAI,sCAAuC,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;QACxG,CAAC;QACD,IAAI,UAAU,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC;YACH,QAAQ,CAAC,cAAc,UAAU,CAAC,UAAU,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QAC5E,CAAC;QAAC,MAAM,CAAC;YACP,UAAU,GAAG,IAAI,CAAC;YAClB,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;gBACxB,IAAI,CAAC;oBAAC,QAAQ,CAAC,oBAAoB,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;gBAAC,CAAC;gBAAC,MAAM,CAAC,CAAC,sBAAsB,CAAC,CAAC;YAC/F,CAAC;QACH,CAAC;QAED,IAAI,UAAU,EAAE,CAAC;YACf,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;gBACvB,oEAAoE;gBACpE,uEAAuE;gBACvE,iDAAiD;gBACjD,mEAAmE;gBACnE,oEAAoE;gBACpE,qEAAqE;gBACrE,qEAAqE;gBACrE,6DAA6D;gBAC7D,MAAM,eAAe,GAAG,QAAQ,CAAC,sCAAsC,CAAC,CAAC,KAAK,CAAC;gBAC/E,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,GAAG,EAAE;oBACvG,OAAO,CAAC,GAAG,CAAC,UAAU,MAAM,iBAAiB,IAAI,+CAA+C,CAAC,CAAC;oBAClG,KAAK,MAAM,CAAC,IAAI,eAAe;wBAAE,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;oBAC3D,KAAK,MAAM,CAAC,IAAI,gBAAgB,CAAC,UAAU,IAAI,EAAE,EAAE,WAAW,EAAE,CAAC;wBAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBACpF,CAAC,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,CAChE,OAAO,CAAC,GAAG,CAAC,UAAU,MAAM,iBAAiB,IAAI,qDAAqD,CAAC,CAAC,CAAC;YAC7G,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,sEAAsE;QACtE,iFAAiF;QACjF,wEAAwE;QACxE,gDAAgD;QAChD,uEAAuE;QACvE,uEAAuE;QACvE,MAAM,OAAO,GAAG,YAAY,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;QAC/C,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;YAChB,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE;gBACjH,OAAO,CAAC,KAAK,CAAC,SAAS,MAAM,mDAAmD,IAAI,sBAAsB,CAAC,CAAC;gBAC5G,OAAO,CAAC,KAAK,CAAC,aAAa,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;gBAC1C,OAAO,CAAC,KAAK,CAAC,2EAA2E,cAAc,CAAC,UAAU,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;YAC/H,CAAC,CAAC,CAAC;YACH,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,MAAM,OAAO,GAAG,mBAAmB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACnD,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnB,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE;gBACzG,OAAO,CAAC,KAAK,CAAC,SAAS,MAAM,iBAAiB,IAAI,kBAAkB,OAAO,CAAC,MAAM,gDAAgD,CAAC,CAAC;gBACpI,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;oBAAE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;gBACrG,OAAO,CAAC,KAAK,CAAC,mEAAmE,cAAc,CAAC,UAAU,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;YACvH,CAAC,CAAC,CAAC;YACH,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,IAAI,MAAM,GAAG,KAAK,CAAC;QACnB,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YACxB,wEAAwE;YACxE,sEAAsE;YACtE,IAAI,CAAC;gBACH,QAAQ,CAAC,6BAA6B,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;YAC/D,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,MAAM,IAAI,KAAK,CAAC,qFAAsF,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;YAC/H,CAAC;YACD,MAAM,GAAG,IAAI,CAAC;QAChB,CAAC;QACD,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,CACxE,OAAO,CAAC,GAAG,CAAC,UAAU,MAAM,cAAc,IAAI,UAAU,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;IACpG,CAAC,CAAC,CAAC,CAAC;IAEN,EAAE;SACC,OAAO,CAAC,gBAAgB,CAAC;SACzB,WAAW,CAAC,oNAAoN,CAAC;SACjO,MAAM,CAAC,cAAc,EAAE,iSAAiS,CAAC;SACzT,MAAM,CAAC,QAAQ,EAAE,aAAa,CAAC;SAC/B,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,IAAuC,EAAE,EAAE;QAClE,0EAA0E;QAC1E,2EAA2E;QAC3E,2EAA2E;QAC3E,yEAAyE;QACzE,MAAM,QAAQ,GAAG,eAAe,CAAC;YAC/B,IAAI,EAAE,UAAU,EAAE;YAClB,UAAU,EAAE,aAAa,EAAE;YAC3B,aAAa,EAAE,gBAAgB,EAAE;YACjC,QAAQ,EAAE,IAAI,CAAC,IAAI;SACpB,CAAC,CAAC;QACH,0EAA0E;QAC1E,2EAA2E;QAC3E,sEAAsE;QACtE,EAAE;QACF,yEAAyE;QACzE,oEAAoE;QACpE,uEAAuE;QACvE,oEAAoE;QACpE,yEAAyE;QACzE,0EAA0E;QAC1E,uEAAuE;QACvE,wEAAwE;QACxE,wEAAwE;QACxE,6BAA6B;QAC7B,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAClG,0EAA0E;QAC1E,yEAAyE;QACzE,yEAAyE;QACzE,MAAM,OAAO,GAAG;YACd,QAAQ,CAAC,sCAAsC,CAAC;YAChD,QAAQ,CAAC,2BAA2B,CAAC,EAAE,sDAAsD;YAC7F,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,wBAAwB,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;SACjF,CAAC;QACF,MAAM,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACzE,MAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAClC,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACnE,MAAM,OAAO,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;QAC3C,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;QAClC,0EAA0E;QAC1E,0EAA0E;QAC1E,qEAAqE;QACrE,MAAM,aAAa,GAAG,CAAC,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC;QACtD,MAAM,KAAK,GAAG,CAAC,aAAa,IAAI,iBAAiB,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC;QAEhH,wEAAwE;QACxE,2EAA2E;QAC3E,2EAA2E;QAC3E,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,QAAQ,EAAE,IAAI,CAAC,CAAC;QACjE,MAAM,GAAG,GAAG,QAAQ;YAClB,CAAC,CAAC,OAAO,QAAQ,CAAC,IAAI,KAAK,QAAQ,CAAC,MAAM,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE;YACxG,CAAC,CAAC,EAAE,CAAC;QAEP,IAAI,CAAC,IAAI,EAAE;YACT,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,eAAe,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM;YAClF,IAAI,EAAE,QAAQ,EAAE,IAAI,IAAI,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,IAAI,IAAI,EAAE,KAAK,EAAE,QAAQ;YACnF,OAAO,EAAE,KAAK,CAAC,MAAM,EAAE,iBAAiB;SACzC,EAAE,GAAG,EAAE;YACN,IAAI,KAAK,EAAE,CAAC;gBACV,OAAO,CAAC,GAAG,CAAC,6CAA6C,KAAK,CAAC,MAAM,mBAAmB,GAAG,IAAI,MAAM,CAAC,CAAC,CAAC,gEAAgE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;gBAClL,OAAO;YACT,CAAC;YACD,OAAO,CAAC,KAAK,CAAC,mDAAmD,CAAC,CAAC;YACnE,IAAI,GAAG;gBAAE,OAAO,CAAC,KAAK,CAAC,aAAa,KAAK,CAAC,MAAM,WAAW,GAAG,EAAE,CAAC,CAAC;YAClE,IAAI,aAAa,EAAE,CAAC;gBAClB,sEAAsE;gBACtE,kEAAkE;gBAClE,OAAO,CAAC,KAAK,CAAC,0GAA0G,CAAC,CAAC;gBAC1H,OAAO,CAAC,KAAK,CAAC,8BAA8B,cAAc,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;YACjF,CAAC;YACD,mEAAmE;YACnE,iEAAiE;YACjE,gEAAgE;YAChE,gDAAgD;YAChD,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;YACpD,KAAK,MAAM,CAAC,IAAI,iBAAiB;gBAAE,OAAO,CAAC,KAAK,CAAC,oCAAoC,CAAC,qDAAqD,CAAC,CAAC;YAC7I,KAAK,MAAM,CAAC,IAAI,QAAQ;gBAAE,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,wCAAwC,WAAW,CAAC,IAAI,EAAE,UAAU,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YAC1I,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;gBAAE,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;YACzG,IAAI,OAAO,CAAC,MAAM,GAAG,EAAE;gBAAE,OAAO,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,MAAM,GAAG,EAAE,sBAAsB,CAAC,CAAC;QAC3F,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,KAAK;YAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC,CAAC;IAEN,EAAE;SACC,OAAO,CAAC,iBAAiB,CAAC;SAC1B,WAAW,CAAC,2LAA2L,CAAC;SACxM,MAAM,CAAC,mBAAmB,EAAE,sBAAsB,CAAC;SACnD,MAAM,CAAC,QAAQ,EAAE,4DAA4D,CAAC;SAC9E,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,SAAiB,EAAE,IAAuC,EAAE,EAAE;QACrF,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;QACnC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,aAAa,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;QAE7D,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACtC,IAAI,OAAO,GAAuC,EAAE,CAAC;QACrD,IAAI,CAAC;YACH,OAAO,GAAG,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC1C,CAAC;QAAC,MAAM,CAAC;YACP,2EAA2E;QAC7E,CAAC;QACD,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAExC,kEAAkE;QAClE,0CAA0C;QAC1C,IAAI,KAAK,GAA4C,IAAI,CAAC;QAC1D,MAAM,OAAO,GAAG,MAAM,CAAC,uBAAuB,EAAE,CAAC,CAAC,CAAC,CAAC;QACpD,MAAM,MAAM,GAAG,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;QACzD,MAAM,SAAS,GAAG,OAAO,EAAE,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5E,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;YAClB,IAAI,CAAC;gBACH,KAAK,GAAG,EAAE,GAAG,WAAW,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;YACxF,CAAC;YAAC,MAAM,CAAC;gBACP,0DAA0D;YAC5D,CAAC;QACH,CAAC;QAED,sEAAsE;QACtE,iEAAiE;QACjE,IAAI,QAAyC,CAAC;QAC9C,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YACpF,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC9D,GAAG;gBACH,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,GAAG;gBACnB,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE;gBACpB,KAAK,EAAG,CAAC,CAAC,KAAgB,IAAI,SAAS;gBACvC,WAAW,EAAE,CAAC,CAAC,WAAW,IAAI,SAAS;gBACvC,YAAY,EAAG,CAAC,CAAC,aAAwB,IAAI,SAAS;aACvD,CAAC,CAAC,CAAC;QACN,CAAC;QAAC,MAAM,CAAC;YACP,uEAAuE;QACzE,CAAC;QAED,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAC5G,OAAO;QACT,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;IACjF,CAAC,CAAC,CAAC,CAAC;IAEN,EAAE;SACC,OAAO,CAAC,sBAAsB,CAAC;SAC/B,WAAW,CAAC,8KAA8K,CAAC;SAC3L,MAAM,CAAC,kBAAkB,EAAE,8BAA8B,CAAC;SAC1D,MAAM,CAAC,eAAe,EAAE,8CAA8C,EAAE,SAAS,CAAC;SAClF,MAAM,CAAC,mBAAmB,EAAE,+EAA+E,CAAC;SAC5G,MAAM,CAAC,mBAAmB,EAAE,sBAAsB,CAAC;SACnD,MAAM,CAAC,QAAQ,EAAE,aAAa,CAAC;SAC/B,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,SAAiB,EAAE,IAA8F,EAAE,EAAE;QAC5I,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;QACnC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,aAAa,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;QAE7D,kEAAkE;QAClE,uEAAuE;QACvE,oEAAoE;QACpE,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,KAAK,GAAG;YACxD,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC;YACrC,CAAC,CAAC,IAAI,CAAC,QAAQ,KAAK,GAAG,CAAC,CAAC,CAAC,MAAM,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnD,sEAAsE;QACtE,sEAAsE;QACtE,oEAAoE;QACpE,IAAI,MAAe,CAAC;QACpB,IAAI,CAAC;YAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,IAAI,IAAI,CAAC,CAAC;QAAC,CAAC;QACjD,MAAM,CAAC;YAAC,OAAO,CAAC,KAAK,CAAC,+DAA+D,CAAC,CAAC;YAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAAC,CAAC;QAC1G,MAAM,QAAQ,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAE,MAAc,EAAE,QAAQ,IAAI,EAAE,CAAoB,CAAC;QAEvG,MAAM,OAAO,GAAG,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,iBAAiB,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;YAC/F,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAY,CAAC;QACzC,MAAM,OAAO,GAAG,WAAW,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;QACxD,MAAM,OAAO,GAAG,kBAAkB,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;QAChG,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QAEtC,MAAM,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;QAC5C,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,GAAG,WAAW,CAAC;QAClD,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,GAAG,EAAE,CAC7E,OAAO,CAAC,GAAG,CAAC,UAAU,OAAO,eAAe,MAAM,KAAK,WAAW,iCAAiC,WAAW,CAAC,CAAC,CAAC,KAAK,WAAW,uBAAuB,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;IACvK,CAAC,CAAC,CAAC,CAAC;IAEN,EAAE;SACC,OAAO,CAAC,kBAAkB,CAAC;SAC3B,WAAW,CAAC,6HAA6H,CAAC;SAC1I,MAAM,CAAC,kBAAkB,EAAE,oCAAoC,CAAC;SAChE,MAAM,CAAC,mBAAmB,EAAE,sBAAsB,CAAC;SACnD,MAAM,CAAC,SAAS,EAAE,+DAA+D,CAAC;SAClF,MAAM,CAAC,QAAQ,EAAE,aAAa,CAAC;SAC/B,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,SAAiB,EAAE,IAA0E,EAAE,EAAE;QACxH,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;QACnC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,aAAa,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;QAE7D,8EAA8E;QAC9E,iDAAiD;QACjD,MAAM,UAAU,GAAG,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;QAC9E,IAAI,UAAU,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YACrC,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,IAAI,GAAG,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;YACxH,MAAM,IAAI,GAAG,WAAW,CAAC,CAAC,UAAU,EAAE,UAAU,EAAE,SAAS,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpG,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,iBAAiB,EAAE,UAAU,CAAC,MAAM,EAAE,EAAE,GAAG,EAAE,CACjF,OAAO,CAAC,KAAK,CAAC,uBAAuB,MAAM,KAAK,UAAU,CAAC,MAAM,kCAAkC,IAAI,mEAAmE,CAAC,CAAC,CAAC;YAC/K,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,aAAa,CAAC,IAAI,EAAE,cAAc,EAAE,aAAa,CAAC,cAAc,CAAC,EAAE,qDAAqD,CAAC,CAAC;QAC1H,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC;QACjD,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAAC,qCAAqC;QAC1F,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,yEAAyE;YACzE,wEAAwE;YACxE,QAAQ,CAAC,iBAAiB,MAAM,WAAW,UAAU,CAAC,IAAI,CAAC,WAAW,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QACzH,CAAC;QACD,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE,GAAG,EAAE,CACjE,OAAO,CAAC,GAAG,CAAC,SAAS,MAAM,yBAAyB,cAAc,mDAAmD,CAAC,CAAC,CAAC;IAC5H,CAAC,CAAC,CAAC,CAAC;IAEN,EAAE;SACC,OAAO,CAAC,kBAAkB,CAAC;SAC3B,WAAW,CAAC,2GAA2G,CAAC;SACxH,MAAM,CAAC,mBAAmB,EAAE,sBAAsB,CAAC;SACnD,MAAM,CAAC,QAAQ,EAAE,aAAa,CAAC;SAC/B,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,SAAiB,EAAE,IAAuC,EAAE,EAAE;QACrF,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;QACnC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,aAAa,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;QAC7D,MAAM,EAAE,GAAG,cAAc,EAAE,CAAC;QAC5B,MAAM,OAAO,GAAG,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC9C,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;QACxD,MAAM,kBAAkB,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,KAAK,EAAE,CAAC,CAAC;QACjF,MAAM,GAAG,GAAG;YACV,MAAM;YACN,QAAQ,EAAE,kBAAkB,CAAC,MAAM,GAAG,CAAC;YACvC,iBAAiB,EAAE,UAAU,CAAC,MAAM;YACpC,kBAAkB,EAAE,kBAAkB,CAAC,MAAM;YAC7C,SAAS,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;YACrE,OAAO,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;SAC3G,CAAC;QACF,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE;YACnB,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;gBAAC,OAAO,CAAC,GAAG,CAAC,SAAS,MAAM,iCAAiC,CAAC,CAAC;gBAAC,OAAO;YAAC,CAAC;YAClG,OAAO,CAAC,GAAG,CAAC,OAAO,MAAM,KAAK,UAAU,CAAC,MAAM,wBAAwB,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACzH,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,IAAI,GAAG,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;YACxH,KAAK,MAAM,CAAC,IAAI,WAAW,CAAC,CAAC,UAAU,EAAE,UAAU,EAAE,SAAS,CAAC,EAAE,IAAI,CAAC;gBAAE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAChG,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IACvB,CAAC,CAAC,CAAC,CAAC;IAEN,EAAE;SACC,OAAO,CAAC,kBAAkB,CAAC;SAC3B,WAAW,CAAC,0FAA0F,CAAC;SACvG,MAAM,CAAC,kBAAkB,EAAE,iEAAiE,CAAC;SAC7F,MAAM,CAAC,mBAAmB,EAAE,sBAAsB,CAAC;SACnD,MAAM,CAAC,QAAQ,EAAE,aAAa,CAAC;SAC/B,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,SAAiB,EAAE,IAA0D,EAAE,EAAE;QACxG,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;QACnC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,aAAa,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;QAC7D,MAAM,UAAU,GAAG,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;QAC9E,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,MAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;QACzG,KAAK,MAAM,CAAC,IAAI,OAAO;YAAE,qBAAqB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACrD,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,MAAM,EAAE,EAAE,GAAG,EAAE,CACpD,OAAO,CAAC,GAAG,CAAC,eAAe,OAAO,CAAC,MAAM,4BAA4B,MAAM,GAAG,CAAC,CAAC,CAAC;IACrF,CAAC,CAAC,CAAC,CAAC;AACR,CAAC;AAED;wDACwD;AACxD,SAAS,kBAAkB;IACzB,KAAK,MAAM,KAAK,IAAI,CAAC,mBAAmB,EAAE,qBAAqB,CAAC,EAAE,CAAC;QACjE,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,QAAQ,CAAC,wBAAwB,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;YACjH,IAAI,GAAG;gBAAE,OAAO,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAChC,OAAO,EAAE,CAAC,CAAC,qDAAqD;QAClE,CAAC;QAAC,MAAM,CAAC;YACP,qCAAqC;QACvC,CAAC;IACH,CAAC;IACD,IAAI,CAAC;QACH,OAAO,QAAQ,CAAC,0BAA0B,EAAE,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACrI,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,KAAK,UAAU,SAAS;IACtB,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,KAAK,EAAE,MAAM,CAAC,IAAI,OAAO,CAAC,KAAK;QAAE,MAAM,CAAC,IAAI,CAAC,CAAW,CAAC,CAAC;IAC9D,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AAChD,CAAC;AAED,SAAS,aAAa;IACpB,OAAO,QAAQ,CAAC,iCAAiC,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;AACvE,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,MAAc;IAClD,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;IACrD,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC5C,CAAC;AAQD;;;kFAGkF;AAClF,MAAM,UAAU,mBAAmB,CAAC,OAAe,EAAE,WAAoB,EAAE,QAAiB,EAAE,WAA0B,QAAQ;IAC9H,MAAM,KAAK,GAAG,CAAC,qBAAqB,EAAE,cAAc,OAAO,EAAE,CAAC,CAAC;IAC/D,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,GAAG,GAAG,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,YAAY,WAAW,EAAE,CAAC,CAAC,CAAC,WAAW,WAAW,EAAE,CAAC;QAC1F,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,GAAG,MAAM,QAAQ,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC;IAC/D,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,8EAA8E;AAE9E;;;;;;;;;;;;;oFAaoF;AACpF,MAAM,UAAU,gBAAgB,CAAC,OAAe,EAAE,OAAsB,IAAI;IAC1E,OAAO;QACL,8DAA8D,WAAW,CAAC,IAAI,EAAE,gBAAgB,CAAC,EAAE;QACnG,uGAAuG;QACvG,2BAA2B,cAAc,CAAC,OAAO,CAAC,uCAAuC;QACzF,oHAAoH;KACrH,CAAC;AACJ,CAAC;AAED;;;;;;;;;;6EAU6E;AAC7E,MAAM,UAAU,cAAc,CAAC,OAAe;IAC5C,OAAO,6CAA6C,OAAO,EAAE,CAAC;AAChE,CAAC;AAED;;;;;;;;;;;;;;;8BAe8B;AAC9B,MAAM,UAAU,WAAW,CAAC,IAAmB,EAAE,IAAY;IAC3D,OAAO,IAAI,CAAC,CAAC,CAAC,UAAU,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC;AACrE,CAAC;AAED;;;iEAGiE;AACjE,MAAM,UAAU,WAAW;IACzB,IAAI,CAAC;QACH,OAAO,YAAY,EAAE,CAAC;IACxB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAiBD;kEACkE;AAClE,MAAM,CAAC,MAAM,uBAAuB,GAAG,+BAA+B,CAAC;AAEvE,MAAM,YAAY,GAAG,YAAY,CAAC;AAClC,MAAM,UAAU,GAAG,YAAY,CAAC;AAEhC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,MAAM,UAAU,0BAA0B,CAAC,GAAW;IACpD,MAAM,MAAM,GAAG,IAAI,GAAG,EAA+B,CAAC;IACtD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,OAAO,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC;QACtB,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QACrC,IAAI,OAAO,KAAK,CAAC,CAAC;YAAE,MAAM,CAAC,mDAAmD;QAC9E,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QACnC,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,GAAG,CAAC,CAAC,CAAC;QAC/C,IAAI,OAAO,KAAK,CAAC,CAAC;YAAE,MAAM,CAAC,uCAAuC;QAClE,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;QAC3D,MAAM,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,GAAG,CAAC,CAAC,CAAC;QAC1C,MAAM,IAAI,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;QAC7E,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1B,IAAI,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC5B,IAAI,CAAC,IAAI,EAAE,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC;gBAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;gBAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAAC,CAAC;YACnE,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAClC,CAAC;QACD,IAAI,EAAE,KAAK,CAAC,CAAC;YAAE,MAAM,CAAC,oCAAoC;QAC1D,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACb,CAAC;IACD,MAAM,IAAI,GAAwB,EAAE,CAAC;IACrC,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;QACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAC7D,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QACzD,IAAI,QAAQ,IAAI,MAAM;YAAE,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;IAC7C,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AACzB,CAAC;AAED,qFAAqF;AACrF,MAAM,UAAU,uBAAuB,CAAC,GAAW;IACjD,OAAO,0BAA0B,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;AAC9C,CAAC;AAaD;;;;;;;;;;;;;;;;;;;;;;yBAsByB;AACzB,MAAM,UAAU,QAAQ,CAAC,GAAW;IAClC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC3G,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;IACnE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;IACvC,CAAC;AACH,CAAC;AAED;oFACoF;AACpF,MAAM,UAAU,YAAY,CAAC,OAAe;IAC1C,OAAO,QAAQ,CAAC,wBAAwB,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AACxE,CAAC;AAED;;;;;;;;;;;;;;8BAc8B;AAC9B,MAAM,UAAU,YAAY;IAC1B,IAAI,IAAY,CAAC;IACjB,IAAI,CAAC;QACH,IAAI,GAAG,QAAQ,CAAC,+BAA+B,EAAE,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;IAC9G,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,gEAAiE,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;IAC1G,CAAC;IACD,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,6EAA6E,CAAC,CAAC;IAC1G,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;sCAIsC;AACtC,MAAM,oBAAoB,GAAG,IAAI,CAAC;AAClC,MAAM,oBAAoB,GAAG,OAAO,CAAC;AAErC;;;yCAGyC;AACzC,MAAM,UAAU,cAAc,CAAC,KAAe,EAAE,QAAQ,GAAG,oBAAoB,EAAE,QAAQ,GAAG,oBAAoB;IAC9G,MAAM,MAAM,GAAe,EAAE,CAAC;IAC9B,IAAI,OAAO,GAAa,EAAE,CAAC;IAC3B,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,yBAAyB;QAC5E,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,QAAQ,IAAI,KAAK,GAAG,IAAI,GAAG,QAAQ,CAAC,EAAE,CAAC;YAC9E,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACrB,OAAO,GAAG,EAAE,CAAC;YACb,KAAK,GAAG,CAAC,CAAC;QACZ,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAChB,KAAK,IAAI,IAAI,CAAC;IAChB,CAAC;IACD,IAAI,OAAO,CAAC,MAAM;QAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACzC,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;gEAqBgE;AAChE,SAAS,mBAAmB,CAAC,IAAY,EAAE,IAAiB,EAAE,KAAe;IAC3E,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACjD,MAAM,GAAG,GAAG,0CAA0C,IAAI,OAAO,UAAU,CAAC,uBAAuB,CAAC,OAAO,QAAQ,EAAE,CAAC;IACtH,IAAI,CAAC;QACH,OAAO,QAAQ,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;IACtF,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,IAAK,CAAyB,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC,CAAC,WAAW;QACnE,MAAM,IAAI,KAAK,CAAC,2CAA4C,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;IACrF,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAe,EAAE,MAAiD;IACpG,IAAI,CAAC,KAAK,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IAC7B,MAAM,IAAI,GAAG,YAAY,EAAE,CAAC;IAC5B,MAAM,IAAI,GAAwB,EAAE,CAAC;IACrC,KAAK,MAAM,KAAK,IAAI,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC;QAC9E,MAAM,OAAO,GAAG,mBAAmB,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACnF,MAAM,MAAM,GAAG,0BAA0B,CAAC,mBAAmB,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;QAClF,6EAA6E;QAC7E,2EAA2E;QAC3E,qDAAqD;QACrD,MAAM,MAAM,GAAG,kBAAkB,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;QACzD,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CACb,iDAAiD,MAAM,CAAC,MAAM,0DAA0D;kBACtH,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK;kBACrG,uFAAuF,CAC1F,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;;+CAS+C;AAC/C,MAAM,UAAU,kBAAkB,CAAC,OAAiB,EAAE,SAAmB;IACvE,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC;IAChC,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7C,CAAC;AAED;gFACgF;AAChF,MAAM,UAAU,gBAAgB;IAC9B,IAAI,MAAc,CAAC;IACnB,IAAI,CAAC;QACH,MAAM,GAAG,QAAQ,CAAC,kCAAkC,EAAE,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;IACnH,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QAAE,OAAO,cAAc,CAAC;IACpE,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QAAE,OAAO,cAAc,CAAC;IACpE,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;6DAE6D;AAC7D,SAAS,SAAS,CAAC,GAAW;IAC5B,IAAI,CAAC;QACH,QAAQ,CAAC,kCAAkC,UAAU,CAAC,GAAG,GAAG,WAAW,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;QACvH,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;gFAEgF;AAChF,MAAM,UAAU,UAAU;IACxB,MAAM,KAAK,GAAG,gBAAgB,EAAE,CAAC;IACjC,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,QAAQ,CAAC,kCAAkC,EAAE,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;QACvH,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;QACtE,OAAO,IAAI,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IAC/C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,oEAAoE;AACpE,MAAM,UAAU,aAAa;IAC3B,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,QAAQ,CAAC,mDAAmD,EAAE,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;QACrI,OAAO,GAAG,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;IAC5C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;8DAC8D;AAC9D,MAAM,UAAU,gBAAgB;IAC9B,KAAK,MAAM,SAAS,IAAI,CAAC,aAAa,EAAE,eAAe,CAAC,EAAE,CAAC;QACzD,IAAI,SAAS,CAAC,SAAS,CAAC;YAAE,OAAO,SAAS,CAAC;IAC7C,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,MAAM,UAAU,eAAe,CAAC,CAK/B;IACC,IAAI,CAAC,CAAC,IAAI;QAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC;IAC3D,IAAI,CAAC,CAAC,UAAU;QAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,UAAU,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC;IACvE,IAAI,CAAC,CAAC,aAAa;QAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,aAAa,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC;IAChF,IAAI,CAAC,CAAC,QAAQ;QAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;IAChE,OAAO,IAAI,CAAC;AACd,CAAC;AAID;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,cAAc,CAAC,CAO9B;IACC,MAAM,QAAQ,GAAG,gBAAgB,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;IACtD,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;QACb,MAAM,KAAK,GAAG,WAAW,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,EAAE,gBAAgB,CAAC,CAAC;QAC5D,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EACzB,aAAa,CAAC,CAAC,MAAM,mDAAmD,CAAC,CAAC,MAAM,oCAAoC;kBAClH,sGAAsG;kBACtG,4DAA4D,KAAK,KAAK,cAAc,CAAC,CAAC,CAAC,IAAI,IAAI,eAAe,CAAC,0BAA0B,EAAE,CAAC;IAClJ,CAAC;IACD,IAAI,CAAC,CAAC,aAAa,KAAK,MAAM,EAAE,CAAC;QAC/B,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EACzB,6CAA6C,CAAC,CAAC,MAAM,MAAM,CAAC,CAAC,IAAI,0BAA0B;kBACzF,oBAAoB,QAAQ,EAAE,EAAE,CAAC;IACvC,CAAC;IACD,IAAI,CAAC,CAAC,aAAa,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;QAC/B,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC,aAAa,aAAa,CAAC,CAAC,MAAM,QAAQ,CAAC,CAAC,IAAI,0BAA0B,QAAQ,EAAE,EAAE,CAAC;IACtI,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;AACtB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@renaiss-shipflow/cli",
3
- "version": "0.27.8",
3
+ "version": "0.27.9",
4
4
  "description": "CLI tool for RenaissShipFlow - AI-powered project management automation",
5
5
  "type": "module",
6
6
  "bin": {