@knpkv/herdr-work 0.7.2 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/view.d.ts CHANGED
@@ -1,7 +1,16 @@
1
1
  import { type ReactElement } from "react";
2
2
  import type { WorkSnapshots, WorkSnapshotWindow } from "./model.js";
3
- export declare const WorkBoard: ({ externalLinks, initialGoalId, initialWindow, navigation, snapshots }: {
3
+ import { type WorkRequestDecisions } from "./request-decision.js";
4
+ export type { WorkRequestAnswer, WorkRequestDecision, WorkRequestDecisions } from "./request-decision.js";
5
+ /** The request clock's wording ("52s", "4m 12s", "11m", "expiring"), shared with hosts that show the same clocks. */
6
+ export { workRequestClockText } from "./request-decision.js";
7
+ export declare const WorkBoard: ({ decisions, externalLinks, initialGoalId, initialWindow, navigation, snapshots }: {
4
8
  readonly snapshots: WorkSnapshots;
9
+ /**
10
+ * Lets the reader decide approval requests in place, with their clock. Omit it (the LAN view, a
11
+ * host that is not the hub) and every request links to the hub instead.
12
+ */
13
+ readonly decisions?: WorkRequestDecisions;
5
14
  readonly externalLinks?: "disabled" | "enabled";
6
15
  readonly initialGoalId?: string | null;
7
16
  readonly initialWindow?: WorkSnapshotWindow;
@@ -1 +1 @@
1
- {"version":3,"file":"view.d.ts","sourceRoot":"","sources":["../src/view.tsx"],"names":[],"mappings":"AAEA,OAAO,EAA+B,KAAK,YAAY,EAAE,MAAM,OAAO,CAAA;AACtE,OAAO,KAAK,EASV,aAAa,EACb,kBAAkB,EAEnB,MAAM,YAAY,CAAA;AAoYnB,eAAO,MAAM,SAAS,2EAMnB;IACD,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAA;IACjC,QAAQ,CAAC,aAAa,CAAC,EAAE,UAAU,GAAG,SAAS,CAAA;IAC/C,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACtC,QAAQ,CAAC,aAAa,CAAC,EAAE,kBAAkB,CAAA;IAC3C,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,SAAS,EAAE;QAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAAA;KAAE,KAAK,MAAM,CAAA;CACrH,KAAG,YA2UH,CAAA"}
1
+ {"version":3,"file":"view.d.ts","sourceRoot":"","sources":["../src/view.tsx"],"names":[],"mappings":"AAWA,OAAO,EAA+B,KAAK,YAAY,EAAE,MAAM,OAAO,CAAA;AACtE,OAAO,KAAK,EAaV,aAAa,EACb,kBAAkB,EAEnB,MAAM,YAAY,CAAA;AAEnB,OAAO,EAAiD,KAAK,oBAAoB,EAAE,MAAM,uBAAuB,CAAA;AAWhH,YAAY,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAA;AACzG,qHAAqH;AACrH,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAA;AAwnB5D,eAAO,MAAM,SAAS,sFAOnB;IACD,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAA;IACjC;;;OAGG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,oBAAoB,CAAA;IACzC,QAAQ,CAAC,aAAa,CAAC,EAAE,UAAU,GAAG,SAAS,CAAA;IAC/C,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACtC,QAAQ,CAAC,aAAa,CAAC,EAAE,kBAAkB,CAAA;IAC3C,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,SAAS,EAAE;QAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAAA;KAAE,KAAK,MAAM,CAAA;CACrH,KAAG,YAqWH,CAAA"}
package/dist/view.js CHANGED
@@ -1,9 +1,13 @@
1
1
  import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { Button, StateLabel, Text } from "@knpkv/rly/primitives";
3
- import { Hero, Region, StageRail, TimelineRow } from "@knpkv/rly/patterns";
3
+ import { DecisionBar, Hero, Region, StageRail, TimelineRow } from "@knpkv/rly/patterns";
4
4
  import { useEffect, useRef, useState } from "react";
5
5
  import { decodeWorkBoardNavigationGoal, encodeWorkBoardNavigationGoal } from "./navigation.js";
6
+ import { workRequestClockText, workRequestDecidability } from "./request-decision.js";
7
+ import { displayStateOf, observedFor } from "./display-state.js";
6
8
  import { workTriage, workTriageGroups, workTriageGroupTitle, workTriageSentence } from "./work-triage.js";
9
+ /** The request clock's wording ("52s", "4m 12s", "11m", "expiring"), shared with hosts that show the same clocks. */
10
+ export { workRequestClockText } from "./request-decision.js";
7
11
  const windows = ["now", "day", "week", "month"];
8
12
  const stageOrder = ["local", "review", "pull_request", "merged", "deployed"];
9
13
  const initialVisibleGoalCount = 10;
@@ -33,6 +37,34 @@ const statePresentation = {
33
37
  completed: { label: "Completed", tone: "positive" },
34
38
  abandoned: { label: "Abandoned", tone: "neutral" }
35
39
  };
40
+ /** Every state the tab can show: the recorded ones, plus `abandoned`, which only an observation can show today. */
41
+ const displayPresentation = {
42
+ ...statePresentation,
43
+ abandoned: { label: "Abandoned", tone: "neutral" }
44
+ };
45
+ const sourceLabel = {
46
+ github: "GitHub",
47
+ herdr: "herdr",
48
+ git: "git"
49
+ };
50
+ const pullRequestStateLabel = {
51
+ open: "open",
52
+ merged: "merged",
53
+ closed: "closed without merging"
54
+ };
55
+ const checksLabel = {
56
+ none: "no checks",
57
+ pending: "checks running",
58
+ passing: "checks passing",
59
+ failing: "checks failing"
60
+ };
61
+ const agentStatusLabel = {
62
+ idle: "idle",
63
+ working: "working",
64
+ blocked: "blocked",
65
+ done: "done",
66
+ gone: "gone"
67
+ };
36
68
  const deliveryLabel = {
37
69
  local: "Local",
38
70
  review: "Review",
@@ -86,26 +118,55 @@ const reviewLabel = (review) => {
86
118
  return (_jsx(StateLabel, { label: reviewPresentation[review.state].label, size: "compact", tone: reviewPresentation[review.state].tone }));
87
119
  };
88
120
  /** Delivery as words: past stages are done, the current one is "now" in the goal's state ink. */
89
- const stagesFor = (goal) => {
121
+ const stagesFor = (goal, shown) => {
90
122
  const current = stageOrder.indexOf(goal.delivery);
91
123
  return stageOrder.map((stage, index) => ({
92
124
  id: `${goal.id}-${stage}`,
93
125
  name: deliveryLabel[stage],
94
126
  state: index < current ? "done" : index === current ? "now" : "not yet",
95
- tone: index === current ? statePresentation[goal.state].tone : "neutral"
127
+ tone: index === current ? displayPresentation[shown].tone : "neutral"
96
128
  }));
97
129
  };
98
- const rowCaption = (goal) => {
130
+ /**
131
+ * The repository as a row names it: its last path segment ("npm" for a checkout at
132
+ * /home/…/knpkv.dev/npm, or for "knpkv/npm"). The detail keeps the full value.
133
+ */
134
+ const repositoryName = (repository) => repository
135
+ .split("/")
136
+ .filter((segment) => segment.length > 0)
137
+ .at(-1) ?? repository;
138
+ const rowCaption = (goal, observed, decisions) => {
99
139
  const open = requestsFor(goal).filter(({ state }) => state === "open");
100
140
  if (open.length > 0) {
141
+ // The soonest clock among requests this page can decide, beside the request it belongs to.
142
+ const soonest = open
143
+ .map((request) => ({ decidability: workRequestDecidability(request, decisions), request }))
144
+ .flatMap(({ decidability, request }) => decidability._tag === "Here" && decidability.expiresAt !== null
145
+ ? [{ expiresAt: decidability.expiresAt, request }]
146
+ : [])
147
+ .toSorted((left, right) => left.expiresAt - right.expiresAt)[0];
148
+ const clock = soonest === undefined || decisions === undefined
149
+ ? ""
150
+ : `, ${workRequestClockText(soonest.expiresAt, decisions.now)}${soonest.expiresAt > decisions.now ? " left" : ""}`;
101
151
  return {
102
152
  blocking: false,
103
- text: open.length === 1 ? `Needs approval: ${open[0]?.summary ?? ""}` : `${open.length} requests need approval`
153
+ text: open.length === 1
154
+ ? `Needs approval: ${open[0]?.summary ?? ""}${clock}`
155
+ : `${open.length} requests need approval${clock}`
104
156
  };
105
157
  }
106
158
  const blockers = blockersFor(goal);
107
159
  if (blockers.length > 0)
108
160
  return { blocking: true, text: blockers[0]?.summary ?? "Blocked" };
161
+ if (observed?.stale === true && observed.agent !== null) {
162
+ return { blocking: false, text: `Owner gone since ${formatTimestamp(observed.agent.observedAt)}` };
163
+ }
164
+ if (observed?.unknown != null) {
165
+ return {
166
+ blocking: false,
167
+ text: `Couldn't read ${sourceLabel[observed.unknown.source]} since ${formatTimestamp(observed.unknown.since)}`
168
+ };
169
+ }
109
170
  const latest = activityFor(goal).toSorted((a, b) => b.occurredAt - a.occurredAt)[0];
110
171
  if (latest !== undefined)
111
172
  return { blocking: false, text: `${latest.summary}, ${formatTimestamp(latest.occurredAt)}` };
@@ -123,13 +184,118 @@ const summaryCaption = (summary, tense) => {
123
184
  ? undefined
124
185
  : `${summary.moving} moving. Last change: ${summary.latest.title}, ${formatTimestamp(summary.latest.updatedAt)}.`;
125
186
  case "Empty":
126
- return "A goal appears once an agent's work is admitted.";
187
+ return "Delegate work to an agent and its goal appears here once the hub admits it.";
188
+ }
189
+ };
190
+ /**
191
+ * What the timeline shows for one goal, newest first: the owner's recorded activity, plus what the
192
+ * reconciler observed (a pull request, the owner's agent) and any source it could not read. Observed
193
+ * events carry their provenance as a shape and words; an unreadable source is drawn hatched.
194
+ */
195
+ const timelineFor = (goal, observed) => {
196
+ const recorded = activityFor(goal).map((entry) => ({
197
+ actorKind: "system",
198
+ dateTime: new Date(entry.occurredAt).toISOString(),
199
+ detail: activityKindLabel[entry.kind],
200
+ id: entry.id,
201
+ time: formatTimestamp(entry.occurredAt),
202
+ title: entry.summary
203
+ }));
204
+ const seen = [];
205
+ if (observed?.pullRequest != null) {
206
+ const { confirmedAt, fact, observedAt } = observed.pullRequest;
207
+ const at = fact.closedAt ?? observedAt;
208
+ seen.push({
209
+ actorKind: "system",
210
+ dateTime: new Date(at).toISOString(),
211
+ detail: `${checksLabel[fact.checks]}, last read ${formatTimestamp(confirmedAt)}`,
212
+ id: `observed-pull-request-${fact.repository}-${fact.pullRequest}`,
213
+ provenance: { kind: "auto", label: "Observed on GitHub" },
214
+ time: formatTimestamp(at),
215
+ title: `Pull request #${fact.pullRequest} ${pullRequestStateLabel[fact.state]}`
216
+ });
217
+ }
218
+ if (observed?.agent != null) {
219
+ const { confirmedAt, fact, observedAt } = observed.agent;
220
+ seen.push({
221
+ actorKind: "agent",
222
+ dateTime: new Date(observedAt).toISOString(),
223
+ detail: `${fact.host}, last read ${formatTimestamp(confirmedAt)}`,
224
+ id: `observed-agent-${fact.host}-${fact.agentId}`,
225
+ provenance: { kind: "auto", label: "Observed in herdr" },
226
+ time: formatTimestamp(observedAt),
227
+ title: `Agent ${agentStatusLabel[fact.status]}`
228
+ });
229
+ }
230
+ if (observed?.unknown != null) {
231
+ const { lastGoodAt, reason, since, source } = observed.unknown;
232
+ seen.push({
233
+ actorKind: "system",
234
+ dateTime: new Date(since).toISOString(),
235
+ detail: reason,
236
+ id: `observed-unknown-${source}`,
237
+ provenance: {
238
+ kind: "unknown",
239
+ label: lastGoodAt === null ? "Never read" : `Last good read ${formatTimestamp(lastGoodAt)}`
240
+ },
241
+ time: formatTimestamp(since),
242
+ title: `Couldn't read ${sourceLabel[source]}`
243
+ });
244
+ }
245
+ return [...recorded, ...seen].toSorted((left, right) => Date.parse(right.dateTime) - Date.parse(left.dateTime));
246
+ };
247
+ const requestDecisionFor = (request, decisions) => {
248
+ const decidability = workRequestDecidability(request, decisions);
249
+ if (decidability._tag === "Elsewhere" || decisions === undefined)
250
+ return { _tag: "Elsewhere" };
251
+ const { expiresAt, jobId } = decidability;
252
+ const answer = decisions.answer?.jobId === jobId ? decisions.answer : null;
253
+ // Once the request has left the hub's queue, the snapshot's outcome is the proven one.
254
+ if (request.state !== "open") {
255
+ return {
256
+ _tag: "Settled",
257
+ announcement: `${request.summary}: ${requestPresentation[request.state].label}.`,
258
+ refusal: answer?.outcome === "refused" ? answer.text : null
259
+ };
127
260
  }
261
+ const pending = decisions.expiresAt(jobId) !== undefined;
262
+ const state = decisions.sending?.jobId === jobId
263
+ ? { _tag: "sending", action: decisions.sending.decision }
264
+ : decisions.sending !== null
265
+ ? { _tag: "off", reason: "Another decision is waiting for the hub." }
266
+ : // The hub took a decision; the host's pending list has not caught up yet, so nothing else may be sent.
267
+ answer?.outcome === "accepted" && pending
268
+ ? { _tag: "off", reason: "Waiting for the hub's queue to update." }
269
+ : pending
270
+ ? { _tag: "ready" }
271
+ : { _tag: "off", reason: "Left the hub's queue." };
272
+ const decide = (decision) => () => {
273
+ if (state._tag === "ready")
274
+ decisions.onDecision({ decision, jobId });
275
+ };
276
+ return {
277
+ _tag: "Bar",
278
+ bar: (_jsx(DecisionBar, { ...(expiresAt === null || !pending
279
+ ? {}
280
+ : {
281
+ clock: `${workRequestClockText(expiresAt, decisions.now)}${expiresAt > decisions.now ? " left" : ""}`
282
+ }), onApprove: decide("approve"), onReject: decide("reject"), state: state, ...(answer === null ? {} : { status: answer.text }), target: request.summary }))
283
+ };
284
+ };
285
+ /** One request in a goal's detail: its title once, then the bar, the hub link or the outcome. */
286
+ const RequestItem = ({ decisions, externalLinks, request }) => {
287
+ const decision = requestDecisionFor(request, externalLinks === "enabled" ? decisions : undefined);
288
+ const presentation = requestPresentation[request.state];
289
+ return (_jsxs("li", { children: [decision._tag === "Bar" ? null : (_jsxs("span", { className: "work-request-heading", children: [_jsx(Text, { children: request.summary }), _jsx("span", { className: "work-row-state", "data-tone": presentation.tone, children: presentation.label })] })), decision._tag === "Bar" ? (decision.bar) : decision._tag === "Settled" ? (decision.refusal === null ? null : (_jsx(Text, { tone: "secondary", variant: "meta", children: decision.refusal }))) : request.state !== "open" ? null : request.approvalTarget === null ? (_jsx(Text, { tone: "secondary", variant: "meta", children: "No approval link recorded." })) : externalLinks === "disabled" ? (_jsxs(Text, { tone: "secondary", variant: "meta", children: ["Approve this on the hub (", request.approvalTarget.host, ")."] })) : (exactLink(request.approvalTarget, `Approve on ${request.approvalTarget.host}`)), decision._tag === "Elsewhere" ? null : (_jsx("p", { "aria-atomic": "true", className: "work-request-announcement", role: "status", children: decision._tag === "Settled" ? decision.announcement : "" }))] }));
128
290
  };
129
291
  /** Everything about one goal, in reading order: what it is, where it is, what blocks it, what happened. */
130
- const GoalDetail = ({ externalLinks, goal, snapshot }) => {
292
+ const GoalDetail = ({ decisions, externalLinks, goal, snapshot }) => {
131
293
  const family = familyForGoal(snapshot, goal.id);
132
- const activity = activityFor(goal).toSorted((a, b) => b.occurredAt - a.occurredAt);
294
+ const observed = observedFor(snapshot, goal.id);
295
+ const shown = observed?.displayState ?? goal.state;
296
+ const activity = timelineFor(goal, observed);
297
+ // Only the live window carries the overlay; there "nothing observed" is itself a reading.
298
+ const overlay = snapshot.observed !== undefined;
133
299
  // A goal-level approval target (older checkpoints carry one without requests); skipped when a
134
300
  // request already links the same approval.
135
301
  const goalApproval = goal.approvalTarget === undefined ||
@@ -137,17 +303,16 @@ const GoalDetail = ({ externalLinks, goal, snapshot }) => {
137
303
  requestsFor(goal).some(({ approvalTarget }) => approvalTarget?.url === goal.approvalTarget?.url)
138
304
  ? null
139
305
  : goal.approvalTarget;
140
- return (_jsxs("div", { className: "work-detail", children: [_jsx(Text, { tone: "secondary", children: goal.detail }), _jsx(StageRail, { heading: `Delivery of ${goal.title}`, size: "words", stages: stagesFor(goal) }), _jsxs("dl", { className: "work-facts", children: [_jsxs("div", { children: [_jsx("dt", { children: "State" }), _jsx("dd", { children: statePresentation[goal.state].label })] }), _jsxs("div", { children: [_jsx("dt", { children: "Owner" }), _jsx("dd", { children: goal.owner.name })] }), _jsxs("div", { children: [_jsx("dt", { children: "Agent" }), _jsxs("dd", { children: [hierarchyLabel(goal), goal.agentHierarchy?.agent.relationship === undefined || goal.agentHierarchy === null
306
+ return (_jsxs("div", { className: "work-detail", children: [_jsx(Text, { tone: "secondary", children: goal.detail }), _jsx(StageRail, { heading: `Delivery of ${goal.title}`, size: "words", stages: stagesFor(goal, shown) }), _jsxs("dl", { className: "work-facts", children: [_jsxs("div", { children: [_jsx("dt", { children: "State" }), _jsxs("dd", { children: [displayPresentation[shown].label, shown === goal.state ? null : (_jsxs(Text, { as: "p", className: "work-fact-note", tone: "secondary", variant: "meta", children: ["Observed; recorded as ", statePresentation[goal.state].label.toLowerCase()] }))] })] }), overlay ? (_jsxs("div", { children: [_jsx("dt", { children: "Pull request" }), _jsx("dd", { children: observed?.pullRequest == null
307
+ ? observed === null && snapshot.observedOmitted !== undefined
308
+ ? "Not in this read: live state was trimmed to the most recently updated goals"
309
+ : "None known"
310
+ : `#${observed.pullRequest.fact.pullRequest} ${pullRequestStateLabel[observed.pullRequest.fact.state]}, ${checksLabel[observed.pullRequest.fact.checks]}` })] })) : null, _jsxs("div", { children: [_jsx("dt", { children: "Owner" }), _jsx("dd", { children: goal.owner.name })] }), _jsxs("div", { children: [_jsx("dt", { children: "Agent" }), _jsxs("dd", { children: [hierarchyLabel(goal), goal.agentHierarchy?.agent.relationship === undefined || goal.agentHierarchy === null
141
311
  ? null
142
312
  : `, ${goal.agentHierarchy.agent.relationship.relation} from ${goal.agentHierarchy.agent.relationship.parentAgentId}`] })] }), _jsxs("div", { children: [_jsx("dt", { children: "Repository" }), _jsxs("dd", { children: [goal.repository.repository, ", ", _jsx("code", { children: goal.repository.branch })] })] }), _jsxs("div", { children: [_jsx("dt", { children: "Review" }), _jsxs("dd", { children: [reviewLabel(goal.review), goal.review?.url === null || goal.review?.url === undefined ? null : externalLinks ===
143
- "disabled" ? null : (_jsxs(_Fragment, { children: [" ", reviewLink(goal.review.url)] })), goal.review?.summary === null || goal.review?.summary === undefined ? null : (_jsx(Text, { tone: "secondary", variant: "meta", children: goal.review.summary }))] })] }), _jsxs("div", { children: [_jsx("dt", { children: "Spend" }), _jsx("dd", { children: formatSpend(goal) })] })] }), blockersFor(goal).map((blocker) => (_jsxs("p", { className: "work-note", "data-tone": "blocked", children: [_jsx("b", { children: "Blocked" }), " since ", formatTimestamp(blocker.since), ": ", blocker.summary] }, `${blocker.since}-${blocker.summary}`))), _jsxs("section", { "aria-labelledby": "work-requests-title", className: "work-detail-section", children: [_jsx("h3", { className: "work-group-title", id: "work-requests-title", children: "Requests" }), requestsFor(goal).length === 0 ? (_jsx(Text, { tone: "secondary", children: goal.requests === undefined ? "No requests recorded." : "No outstanding requests." })) : (_jsx("ul", { className: "work-detail-list", children: requestsFor(goal).map((request) => (_jsxs("li", { children: [_jsxs("span", { className: "work-request-heading", children: [_jsx(Text, { children: request.summary }), _jsx("span", { className: "work-row-state", "data-tone": requestPresentation[request.state].tone, children: requestPresentation[request.state].label })] }), request.state !== "open" ? null : request.approvalTarget === null ? (_jsx(Text, { tone: "secondary", variant: "meta", children: "No approval link recorded." })) : externalLinks === "disabled" ? (_jsxs(Text, { tone: "secondary", variant: "meta", children: ["Approve this on the hub (", request.approvalTarget.host, ")."] })) : (exactLink(request.approvalTarget, `Approve on ${request.approvalTarget.host}`))] }, request.id))) }))] }), _jsxs("section", { "aria-labelledby": "work-activity-title", className: "work-detail-section", children: [_jsx("h3", { className: "work-group-title", id: "work-activity-title", children: "Activity" }), activity.length === 0 ? (_jsx(Text, { tone: "secondary", children: goal.activity === undefined ? "No activity recorded." : "Activity is clear." })) : (_jsx("ol", { "aria-label": `Activity on ${goal.title}`, className: "work-activity", children: activity.map((entry, index) => (_jsx(TimelineRow, { continued: index < activity.length - 1, event: {
144
- actorKind: "system",
145
- dateTime: new Date(entry.occurredAt).toISOString(),
146
- detail: activityKindLabel[entry.kind],
147
- id: entry.id,
148
- time: formatTimestamp(entry.occurredAt),
149
- title: entry.summary
150
- } }, entry.id))) }))] }), family === null ? null : (_jsxs("section", { "aria-labelledby": "work-family-title", className: "work-detail-section", children: [_jsx("h3", { className: "work-group-title", id: "work-family-title", children: "Superseded history" }), _jsxs("details", { className: "work-family-history", children: [_jsxs("summary", { children: ["Show ", family.superseded.length, " superseded"] }), _jsx("ul", { className: "work-detail-list", children: family.superseded.map((entry) => (_jsxs("li", { children: [_jsxs("span", { className: "work-request-heading", children: [_jsx(Text, { children: entry.title }), _jsx("span", { className: "work-row-state", "data-tone": statePresentation[entry.state].tone, children: statePresentation[entry.state].label })] }), _jsxs(Text, { tone: "secondary", variant: "meta", children: [entry.summary, ", ", formatTimestamp(entry.updatedAt)] }), blockersFor(entry).map((blocker) => (_jsxs(Text, { tone: "secondary", variant: "meta", children: ["Blocked since ", formatTimestamp(blocker.since), ": ", blocker.summary] }, `${blocker.since}-${blocker.summary}`))), entry.review === undefined || entry.review === null ? null : (_jsxs(Text, { tone: "secondary", variant: "meta", children: ["Review ", reviewPresentation[entry.review.state].label.toLowerCase(), entry.review.summary === null ? "" : `: ${entry.review.summary}`] }))] }, entry.id))) })] })] })), _jsxs("div", { className: "work-links", children: [goal.connectTarget === null ? (_jsx(Text, { tone: "secondary", children: "No exact Connect target recorded." })) : externalLinks === "disabled" ? (_jsx(Text, { tone: "secondary", variant: "meta", children: "Connect target recorded." })) : (_jsx("a", { className: "work-connect-link", href: goal.connectTarget.url, children: "Open the agent in Connect" })), goalApproval === null ? null : externalLinks === "disabled" ? (_jsxs(Text, { tone: "secondary", variant: "meta", children: ["Approval target recorded on ", goalApproval.host, "."] })) : (exactLink(goalApproval, `Open ${goalApproval.host} approval`))] })] }));
313
+ "disabled" ? null : (_jsxs(_Fragment, { children: [" ", reviewLink(goal.review.url)] })), goal.review?.summary === null || goal.review?.summary === undefined ? null : (_jsx(Text, { tone: "secondary", variant: "meta", children: goal.review.summary }))] })] }), _jsxs("div", { children: [_jsx("dt", { children: "Spend" }), _jsx("dd", { children: formatSpend(goal) })] })] }), observed?.stale === true && observed.agent !== null ? (_jsxs("p", { className: "work-note", "data-tone": "held", children: [_jsx("b", { children: "Owner gone" }), " since ", formatTimestamp(observed.agent.observedAt), ": this unfinished goal has no live agent."] })) : null, observed?.unknown == null ? null : (_jsxs("p", { className: "work-note", "data-tone": "unknown", children: [_jsxs("b", { children: ["Couldn't read ", sourceLabel[observed.unknown.source]] }), " since ", formatTimestamp(observed.unknown.since), ":", " ", observed.unknown.reason, ".", " ", observed.unknown.lastGoodAt === null
314
+ ? "It has never been read, so nothing here comes from it."
315
+ : `Facts from it are as of ${formatTimestamp(observed.unknown.lastGoodAt)}.`] })), blockersFor(goal).map((blocker) => (_jsxs("p", { className: "work-note", "data-tone": "blocked", children: [_jsx("b", { children: "Blocked" }), " since ", formatTimestamp(blocker.since), ": ", blocker.summary] }, `${blocker.since}-${blocker.summary}`))), _jsxs("section", { "aria-labelledby": "work-requests-title", className: "work-detail-section", children: [_jsx("h3", { className: "work-group-title", id: "work-requests-title", children: "Requests" }), requestsFor(goal).length === 0 ? (_jsx(Text, { tone: "secondary", children: goal.requests === undefined ? "No requests recorded." : "No outstanding requests." })) : (_jsx("ul", { className: "work-detail-list", children: requestsFor(goal).map((request) => (_jsx(RequestItem, { decisions: decisions, externalLinks: externalLinks, request: request }, request.id))) }))] }), _jsxs("section", { "aria-labelledby": "work-activity-title", className: "work-detail-section", children: [_jsx("h3", { className: "work-group-title", id: "work-activity-title", children: "Activity" }), activity.length === 0 ? (_jsx(Text, { tone: "secondary", children: goal.activity === undefined ? "No activity recorded." : "Activity is clear." })) : (_jsx("ol", { "aria-label": `Activity on ${goal.title}`, className: "work-activity", children: activity.map((event, index) => (_jsx(TimelineRow, { continued: index < activity.length - 1, event: event }, event.id))) }))] }), family === null ? null : (_jsxs("section", { "aria-labelledby": "work-family-title", className: "work-detail-section", children: [_jsx("h3", { className: "work-group-title", id: "work-family-title", children: "Superseded history" }), _jsxs("details", { className: "work-family-history", children: [_jsxs("summary", { children: ["Show ", family.superseded.length, " superseded"] }), _jsx("ul", { className: "work-detail-list", children: family.superseded.map((entry) => (_jsxs("li", { children: [_jsxs("span", { className: "work-request-heading", children: [_jsx(Text, { children: entry.title }), _jsx("span", { className: "work-row-state", "data-tone": statePresentation[entry.state].tone, children: statePresentation[entry.state].label })] }), _jsxs(Text, { tone: "secondary", variant: "meta", children: [entry.summary, ", ", formatTimestamp(entry.updatedAt)] }), blockersFor(entry).map((blocker) => (_jsxs(Text, { tone: "secondary", variant: "meta", children: ["Blocked since ", formatTimestamp(blocker.since), ": ", blocker.summary] }, `${blocker.since}-${blocker.summary}`))), entry.review === undefined || entry.review === null ? null : (_jsxs(Text, { tone: "secondary", variant: "meta", children: ["Review ", reviewPresentation[entry.review.state].label.toLowerCase(), entry.review.summary === null ? "" : `: ${entry.review.summary}`] }))] }, entry.id))) })] })] })), _jsxs("div", { className: "work-links", children: [goal.connectTarget === null ? (_jsx(Text, { tone: "secondary", children: "No exact Connect target recorded." })) : externalLinks === "disabled" ? (_jsx(Text, { tone: "secondary", variant: "meta", children: "Connect target recorded." })) : (_jsx("a", { className: "work-connect-link", href: goal.connectTarget.url, children: "Open the agent in Connect" })), goalApproval === null ? null : externalLinks === "disabled" ? (_jsxs(Text, { tone: "secondary", variant: "meta", children: ["Approval target recorded on ", goalApproval.host, "."] })) : (exactLink(goalApproval, `Open ${goalApproval.host} approval`))] })] }));
151
316
  };
152
317
  const activityKindLabel = {
153
318
  note: "Note",
@@ -170,7 +335,7 @@ const withFragment = (href, fragment) => {
170
335
  const fragmentIndex = href.indexOf("#");
171
336
  return `${fragmentIndex === -1 ? href : href.slice(0, fragmentIndex)}#${fragment}`;
172
337
  };
173
- export const WorkBoard = ({ externalLinks = "enabled", initialGoalId, initialWindow = "now", navigation, snapshots }) => {
338
+ export const WorkBoard = ({ decisions, externalLinks = "enabled", initialGoalId, initialWindow = "now", navigation, snapshots }) => {
174
339
  const [window, setWindow] = useState(initialWindow);
175
340
  const snapshot = snapshotFor(snapshots, window);
176
341
  const directInitialGoal = snapshot.goals.find(({ id }) => id === initialGoalId);
@@ -178,14 +343,14 @@ export const WorkBoard = ({ externalLinks = "enabled", initialGoalId, initialWin
178
343
  const requestedInitialSelectedId = boardNavigation === null ? (initialGoalId ?? null) : boardNavigation.goalId;
179
344
  const initialStatusFilter = boardNavigation?.statusFilter ?? "all";
180
345
  const requestedInitialSelectedGoal = snapshot.goals.find(({ id }) => id === requestedInitialSelectedId);
346
+ // A link's filter names the state its row showed, so restore it against the same displayed state.
181
347
  const initialSelectedGoal = requestedInitialSelectedGoal !== undefined &&
182
- (initialStatusFilter === "all" || requestedInitialSelectedGoal.state === initialStatusFilter)
348
+ (initialStatusFilter === "all" || displayStateOf(snapshot, requestedInitialSelectedGoal) === initialStatusFilter)
183
349
  ? requestedInitialSelectedGoal
184
350
  : undefined;
185
351
  const initialSelectedId = initialSelectedGoal?.id ?? null;
186
352
  const [selectedId, setSelectedId] = useState(initialSelectedId);
187
353
  const [detailsOpen, setDetailsOpen] = useState(initialSelectedGoal !== undefined &&
188
- (initialStatusFilter === "all" || initialSelectedGoal.state === initialStatusFilter) &&
189
354
  (boardNavigation?.detailsOpen ?? (initialGoalId !== undefined && initialGoalId !== null)));
190
355
  const [statusFilter, setStatusFilter] = useState(initialStatusFilter);
191
356
  const [visibleGoalCount, setVisibleGoalCount] = useState(boardNavigation?.visibleGoalCount ?? initialVisibleGoalCount);
@@ -193,6 +358,10 @@ export const WorkBoard = ({ externalLinks = "enabled", initialGoalId, initialWin
193
358
  const selectedLinkRowRef = useRef(null);
194
359
  const selectedRowRef = useRef(null);
195
360
  const triage = workTriage(snapshot);
361
+ // The overlay by goal, built once per snapshot: rows, captions and filters all read it.
362
+ const overlay = new Map((snapshot.observed ?? []).map((entry) => [entry.goalId, entry]));
363
+ const observedOf = (goal) => overlay.get(goal.id) ?? null;
364
+ const shownOf = (goal) => observedOf(goal)?.displayState ?? goal.state;
196
365
  // A historical window is the state as of its time; say so, never in the present tense.
197
366
  const tense = window === "now" ? "present" : "past";
198
367
  const sentence = workTriageSentence(triage.summary, tense);
@@ -201,7 +370,8 @@ export const WorkBoard = ({ externalLinks = "enabled", initialGoalId, initialWin
201
370
  : `As of ${formatTimestamp(snapshot.asOf)}, ${sentence.charAt(0).toLowerCase()}${sentence.slice(1)}`;
202
371
  const groupById = new Map(triage.rows.map((row) => [row.goal.id, row.group]));
203
372
  const ordered = triage.rows.map((row) => row.goal);
204
- const filteredGoals = statusFilter === "all" ? ordered : ordered.filter(({ state }) => state === statusFilter);
373
+ // Filters match what each row shows: the observed state where there is one.
374
+ const filteredGoals = statusFilter === "all" ? ordered : ordered.filter((goal) => shownOf(goal) === statusFilter);
205
375
  const selectedFilteredGoalIndex = filteredGoals.findIndex(({ id }) => id === selectedId);
206
376
  const selected = filteredGoals.find(({ id }) => id === selectedId) ?? null;
207
377
  const visibleGoalStart = selectedFilteredGoalIndex < visibleGoalCount ? 0 : selectedFilteredGoalIndex - visibleGoalCount + 1;
@@ -230,8 +400,8 @@ export const WorkBoard = ({ externalLinks = "enabled", initialGoalId, initialWin
230
400
  setVisibleGoalCount(initialVisibleGoalCount);
231
401
  }, [selectedFilteredGoalIndex, selectedId]);
232
402
  const goalRow = (goal) => {
233
- const caption = rowCaption(goal);
234
- const content = (_jsxs(_Fragment, { children: [_jsxs("span", { className: "work-row-title", children: [_jsxs("span", { className: "work-row-meta", children: [goal.repository.repository, ", ", _jsx("code", { children: goal.repository.branch })] }), goal.title] }), _jsx("span", { className: "work-row-state", "data-tone": statePresentation[goal.state].tone, children: statePresentation[goal.state].label }), _jsxs("span", { className: "work-row-caption", "data-blocking": caption.blocking, children: [caption.text, familyLabelForGoal(snapshot, goal) === null ? null : `, ${familyLabelForGoal(snapshot, goal)}`] })] }));
403
+ const caption = rowCaption(goal, observedOf(goal), externalLinks === "enabled" ? decisions : undefined);
404
+ const content = (_jsxs(_Fragment, { children: [_jsxs("span", { className: "work-row-title", children: [_jsxs("span", { className: "work-row-meta", children: [repositoryName(goal.repository.repository), ", ", _jsx("code", { children: goal.repository.branch })] }), goal.title] }), _jsx("span", { className: "work-row-state", "data-tone": displayPresentation[shownOf(goal)].tone, children: displayPresentation[shownOf(goal)].label }), _jsxs("span", { className: "work-row-caption", "data-blocking": caption.blocking, children: [caption.text, familyLabelForGoal(snapshot, goal) === null ? null : `, ${familyLabelForGoal(snapshot, goal)}`] })] }));
235
405
  return navigation === undefined ? (_jsx("button", { "aria-controls": detailsOpen && selected?.id === goal.id ? "work-goal-details" : undefined, "aria-expanded": detailsOpen && selected?.id === goal.id, "aria-pressed": selected?.id === goal.id, className: "work-board-row", id: selected?.id === goal.id ? selectedGoalFragment : undefined, onClick: () => {
236
406
  setDetailsOpen(true);
237
407
  setSelectedId(goal.id);
@@ -252,7 +422,8 @@ export const WorkBoard = ({ externalLinks = "enabled", initialGoalId, initialWin
252
422
  return (_jsx("button", { "aria-pressed": window === option, className: "work-time-option", onClick: () => {
253
423
  const selectedAtOption = snapshotFor(snapshots, option).goals.find(({ id }) => id === selectedId);
254
424
  if (selectedAtOption === undefined ||
255
- (statusFilter !== "all" && selectedAtOption.state !== statusFilter)) {
425
+ (statusFilter !== "all" &&
426
+ displayStateOf(snapshotFor(snapshots, option), selectedAtOption) !== statusFilter)) {
256
427
  setDetailsOpen(false);
257
428
  }
258
429
  setVisibleGoalCount(initialVisibleGoalCount);
@@ -266,7 +437,8 @@ export const WorkBoard = ({ externalLinks = "enabled", initialGoalId, initialWin
266
437
  ? encodeWorkBoardNavigationGoal({
267
438
  detailsOpen: detailsOpen &&
268
439
  selectedAtOption !== undefined &&
269
- (statusFilter === "all" || selectedAtOption.state === statusFilter),
440
+ (statusFilter === "all" ||
441
+ displayStateOf(snapshotFor(snapshots, option), selectedAtOption) === statusFilter),
270
442
  goalId: selectedId,
271
443
  statusFilter,
272
444
  visibleGoalCount: initialVisibleGoalCount
@@ -292,7 +464,13 @@ export const WorkBoard = ({ externalLinks = "enabled", initialGoalId, initialWin
292
464
  window
293
465
  }), children: label }, state));
294
466
  }) }));
295
- return (_jsxs("section", { className: "work-page", "aria-labelledby": "work-board-title", children: [_jsxs("header", { className: "work-page-intro", children: [_jsx(Text, { as: "h1", id: "work-board-title", variant: "card-title", children: "Work" }), _jsxs(Text, { tone: "secondary", variant: "meta", children: [window === "now" ? "Live" : windowLabel[window], ", as of ", formatTimestamp(snapshot.asOf)] })] }), _jsx(Hero, { caption: summaryCaption(triage.summary, tense), fact: heroFact, label: "Work summary" }), timeTravel, snapshot.goals.length === 0 ? (_jsx(Region, { title: "Goals", children: _jsx(Text, { tone: "secondary", children: "No goals at this checkpoint. A goal appears once an agent's work is admitted." }) })) : (_jsxs("div", { className: "work-board-layout", "data-has-detail": selected !== null && detailsOpen, children: [_jsxs(Region, { actions: statusFilterControls, className: "work-board-list", count: filteredGoals.length, title: "Goals", children: [_jsxs(Text, { "aria-live": "polite", tone: "secondary", variant: "meta", children: ["Showing ", visibleGoals.length, " of ", filteredGoals.length, " goals"] }), filteredGoals.length === 0 ? _jsx(Text, { tone: "secondary", children: "No goals match this status." }) : null, visibleGroups.map(({ goals, group }) => (_jsxs("section", { "aria-labelledby": `work-group-${group}`, className: "work-group", children: [_jsxs("h3", { className: "work-group-title", id: `work-group-${group}`, children: [workTriageGroupTitle[group], " ", _jsxs("span", { className: "work-group-count", children: ["(", goals.length, ")"] })] }), _jsx("ul", { className: "work-rows", children: goals.map((goal) => (_jsx("li", { children: goalRow(goal) }, goal.id))) })] }, group))), visibleGoals.length < filteredGoals.length ? (navigation === undefined ? (_jsx(Button, { onClick: () => setVisibleGoalCount((count) => Math.min(count + initialVisibleGoalCount, filteredGoals.length)), children: "Load 10 more" })) : (_jsx("a", { className: "work-load-more-link", href: navigation({
467
+ return (_jsxs("section", { className: "work-page", "aria-labelledby": "work-board-title", children: [_jsxs("header", { className: "work-page-intro", children: [_jsx(Text, { as: "h1", id: "work-board-title", variant: "card-title", children: "Work" }), _jsxs(Text, { tone: "secondary", variant: "meta", children: [window === "now" ? "Live" : windowLabel[window], ", as of ", formatTimestamp(snapshot.asOf), window !== "now"
468
+ ? null
469
+ : snapshot.observed === undefined
470
+ ? ". Live state not available: this hub sends no observed facts (its herdr-work predates the reconciler, or the overlay did not fit the response), so states are as recorded. Update herdr-work on the hub to see them."
471
+ : snapshot.observedOmitted === undefined
472
+ ? null
473
+ : `. Live state shown for the most recently updated goals; ${snapshot.observedOmitted} left out.`] })] }), _jsx(Hero, { caption: summaryCaption(triage.summary, tense), fact: heroFact, label: "Work summary" }), timeTravel, snapshot.goals.length === 0 ? (_jsx(Region, { title: "Goals", children: _jsx(Text, { tone: "secondary", children: window === "now" ? (_jsxs(_Fragment, { children: ["No goals yet. Delegate work to an agent with", " ", _jsx("code", { children: "fleetctl submit HOST agent.delegate work REPOSITORY PROMPT" }), " (HOST is a name from", " ", _jsx("code", { children: "fleetctl hosts" }), "); its goal appears here once the hub admits it."] })) : ("No goals at this checkpoint.") }) })) : (_jsxs("div", { className: "work-board-layout", "data-has-detail": selected !== null && detailsOpen, children: [_jsxs(Region, { actions: statusFilterControls, className: "work-board-list", count: filteredGoals.length, title: "Goals", children: [_jsxs(Text, { "aria-live": "polite", tone: "secondary", variant: "meta", children: ["Showing ", visibleGoals.length, " of ", filteredGoals.length, " goals"] }), filteredGoals.length === 0 ? _jsx(Text, { tone: "secondary", children: "No goals match this status." }) : null, visibleGroups.map(({ goals, group }) => (_jsxs("section", { "aria-labelledby": `work-group-${group}`, className: "work-group", children: [_jsxs("h3", { className: "work-group-title", id: `work-group-${group}`, children: [workTriageGroupTitle[group], " ", _jsxs("span", { className: "work-group-count", children: ["(", goals.length, ")"] })] }), _jsx("ul", { className: "work-rows", children: goals.map((goal) => (_jsx("li", { children: goalRow(goal) }, goal.id))) })] }, group))), visibleGoals.length < filteredGoals.length ? (navigation === undefined ? (_jsx(Button, { onClick: () => setVisibleGoalCount((count) => Math.min(count + initialVisibleGoalCount, filteredGoals.length)), children: "Load 10 more" })) : (_jsx("a", { className: "work-load-more-link", href: navigation({
296
474
  goalId: encodeWorkBoardNavigationGoal({
297
475
  detailsOpen,
298
476
  goalId: selectedId,
@@ -312,6 +490,6 @@ export const WorkBoard = ({ externalLinks = "enabled", initialGoalId, initialWin
312
490
  visibleGoalCount
313
491
  }),
314
492
  window
315
- }), selectedGoalFragment), children: "Close details" })), "aria-label": "Goal details", className: "work-inspector", headingId: "work-goal-details-title", id: "work-goal-details", ref: detailsRef, title: selected.title, children: _jsx(GoalDetail, { externalLinks: externalLinks, goal: selected, snapshot: snapshot }) }))] }))] }));
493
+ }), selectedGoalFragment), children: "Close details" })), "aria-label": "Goal details", className: "work-inspector", headingId: "work-goal-details-title", id: "work-goal-details", ref: detailsRef, title: selected.title, children: _jsx(GoalDetail, { decisions: decisions, externalLinks: externalLinks, goal: selected, snapshot: snapshot }) }))] }))] }));
316
494
  };
317
495
  //# sourceMappingURL=view.js.map
package/dist/view.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"view.js","sourceRoot":"","sources":["../src/view.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"view.js","sourceRoot":"","sources":["../src/view.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAqB,MAAM,uBAAuB,CAAA;AACnF,OAAO,EACL,WAAW,EACX,IAAI,EACJ,MAAM,EACN,SAAS,EACT,WAAW,EAIZ,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAqB,MAAM,OAAO,CAAA;AAkBtE,OAAO,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,MAAM,iBAAiB,CAAA;AAC9F,OAAO,EAAE,oBAAoB,EAAE,uBAAuB,EAA6B,MAAM,uBAAuB,CAAA;AAChH,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAChE,OAAO,EAEL,UAAU,EACV,gBAAgB,EAChB,oBAAoB,EACpB,kBAAkB,EAEnB,MAAM,kBAAkB,CAAA;AAGzB,qHAAqH;AACrH,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAA;AAE5D,MAAM,OAAO,GAAsC,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;AAClF,MAAM,UAAU,GAAiC,CAAC,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAA;AAC1G,MAAM,uBAAuB,GAAG,EAAE,CAAA;AAClC,MAAM,oBAAoB,GAAG,oBAAoB,CAAA;AACjD,MAAM,UAAU,GAAqC;IACnD,SAAS;IACT,SAAS;IACT,SAAS;IACT,QAAQ;IACR,UAAU;IACV,WAAW;IACX,WAAW;CACZ,CAAA;AACD,MAAM,aAAa,GAA6C,CAAC,KAAK,EAAE,GAAG,UAAU,CAAC,CAAA;AAEtF,MAAM,WAAW,GAAG;IAClB,GAAG,EAAE,KAAK;IACV,GAAG,EAAE,cAAc;IACnB,IAAI,EAAE,YAAY;IAClB,KAAK,EAAE,aAAa;CACkC,CAAA;AAExD,MAAM,iBAAiB,GAAG;IACxB,OAAO,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;IAC9C,OAAO,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE;IAC/C,OAAO,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE;IAC/C,MAAM,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE;IAC/C,QAAQ,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE;IACjD,SAAS,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,EAAE;IACnD,SAAS,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE;CACoD,CAAA;AAExG,mHAAmH;AACnH,MAAM,mBAAmB,GAAG;IAC1B,GAAG,iBAAiB;IACpB,SAAS,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE;CACmD,CAAA;AAEvG,MAAM,WAAW,GAAG;IAClB,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,OAAO;IACd,GAAG,EAAE,KAAK;CAC4E,CAAA;AAExF,MAAM,qBAAqB,GAAG;IAC5B,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,wBAAwB;CACuC,CAAA;AAEzE,MAAM,WAAW,GAAG;IAClB,IAAI,EAAE,WAAW;IACjB,OAAO,EAAE,gBAAgB;IACzB,OAAO,EAAE,gBAAgB;IACzB,OAAO,EAAE,gBAAgB;CAC+C,CAAA;AAE1E,MAAM,gBAAgB,GAAG;IACvB,IAAI,EAAE,MAAM;IACZ,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,MAAM;CACsD,CAAA;AAEpE,MAAM,aAAa,GAAG;IACpB,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,QAAQ;IAChB,YAAY,EAAE,cAAc;IAC5B,MAAM,EAAE,QAAQ;IAChB,QAAQ,EAAE,UAAU;CAC6B,CAAA;AAEnD,MAAM,kBAAkB,GAAG;IACzB,aAAa,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,SAAS,EAAE;IAC1D,SAAS,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE;IAClD,iBAAiB,EAAE,EAAE,KAAK,EAAE,mBAAmB,EAAE,IAAI,EAAE,UAAU,EAAE;IACnE,QAAQ,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE;CACoE,CAAA;AAEvH,MAAM,mBAAmB,GAAG;IAC1B,IAAI,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE;IACxC,QAAQ,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE;IACjD,QAAQ,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE;IACjD,SAAS,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,EAAE;CACsD,CAAA;AAE3G,MAAM,eAAe,GAAG,CAAC,SAAiB,EAAU,EAAE,CACpD,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE;IAC/B,SAAS,EAAE,QAAQ;IACnB,SAAS,EAAE,OAAO;CACnB,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;AAEtB,MAAM,WAAW,GAAG,CAAC,IAAc,EAAU,EAAE,CAC7C,IAAI,CAAC,KAAK,KAAK,IAAI;IACjB,CAAC,CAAC,cAAc;IAChB,CAAC,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE;QAC1B,KAAK,EAAE,UAAU;QACjB,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ;KAC9B,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,GAAG,CAAC,CAAA;AAE5C,MAAM,WAAW,GAAG,CAAC,IAAc,EAA8B,EAAE;IACjE,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC,QAAQ,CAAA;IACrD,OAAO,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;AACpD,CAAC,CAAA;AAED,MAAM,WAAW,GAAG,CAAC,IAAc,EAA+B,EAAE,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAA;AAExF,MAAM,WAAW,GAAG,CAAC,IAAc,EAA8B,EAAE,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAA;AAEvF,MAAM,cAAc,GAAG,CAAC,IAAc,EAAU,EAAE;IAChD,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAA;IACrC,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,IAAI;QAAE,OAAO,6BAA6B,CAAA;IACvF,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,MAAM,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,CAAA;AAC5D,CAAC,CAAA;AAED,qFAAqF;AACrF,MAAM,SAAS,GAAG,CAAC,MAA0B,EAAE,KAAa,EAAgB,EAAE,CAAC,CAC7E,YAAG,SAAS,EAAC,iBAAiB,EAAC,IAAI,EAAE,MAAM,CAAC,GAAG,YAC5C,KAAK,GACJ,CACL,CAAA;AAED,0FAA0F;AAC1F,MAAM,UAAU,GAAG,CAAC,GAAW,EAAgB,EAAE,CAAC,CAChD,YAAG,SAAS,EAAC,iBAAiB,EAAC,IAAI,EAAE,GAAG,4BAEpC,CACL,CAAA;AAED,MAAM,WAAW,GAAG,CAAC,MAAqC,EAAgB,EAAE;IAC1E,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QAC5C,OAAO,KAAC,IAAI,IAAC,IAAI,EAAC,WAAW,oCAA2B,CAAA;IAC1D,CAAC;IACD,OAAO,CACL,KAAC,UAAU,IACT,KAAK,EAAE,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,EAC7C,IAAI,EAAC,SAAS,EACd,IAAI,EAAE,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,GAC3C,CACH,CAAA;AACH,CAAC,CAAA;AAED,iGAAiG;AACjG,MAAM,SAAS,GAAG,CAAC,IAAc,EAAE,KAAuB,EAA2B,EAAE;IACrF,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IACjD,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;QACvC,EAAE,EAAE,GAAG,IAAI,CAAC,EAAE,IAAI,KAAK,EAAE;QACzB,IAAI,EAAE,aAAa,CAAC,KAAK,CAAC;QAC1B,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;QACvE,IAAI,EAAE,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;KACtE,CAAC,CAAC,CAAA;AACL,CAAC,CAAA;AAED;;;GAGG;AACH,MAAM,cAAc,GAAG,CAAC,UAAkB,EAAU,EAAE,CACpD,UAAU;KACP,KAAK,CAAC,GAAG,CAAC;KACV,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;KACvC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,UAAU,CAAA;AASzB,MAAM,UAAU,GAAG,CACjB,IAAc,EACd,QAAiC,EACjC,SAA2C,EAC3B,EAAE;IAClB,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,KAAK,MAAM,CAAC,CAAA;IACtE,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpB,2FAA2F;QAC3F,MAAM,OAAO,GAAG,IAAI;aACjB,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,EAAE,YAAY,EAAE,uBAAuB,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;aAC1F,OAAO,CAAC,CAAC,EAAE,YAAY,EAAE,OAAO,EAAE,EAAE,EAAE,CACrC,YAAY,CAAC,IAAI,KAAK,MAAM,IAAI,YAAY,CAAC,SAAS,KAAK,IAAI;YAC7D,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,YAAY,CAAC,SAAS,EAAE,OAAO,EAAE,CAAC;YAClD,CAAC,CAAC,EAAE,CACP;aACA,QAAQ,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAA;QACjE,MAAM,KAAK,GACT,OAAO,KAAK,SAAS,IAAI,SAAS,KAAK,SAAS;YAC9C,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,KAAK,oBAAoB,CAAC,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAA;QACtH,OAAO;YACL,QAAQ,EAAE,KAAK;YACf,IAAI,EACF,IAAI,CAAC,MAAM,KAAK,CAAC;gBACf,CAAC,CAAC,mBAAmB,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,IAAI,EAAE,GAAG,KAAK,EAAE;gBACrD,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,0BAA0B,KAAK,EAAE;SACtD,CAAA;IACH,CAAC;IACD,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,CAAA;IAClC,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,IAAI,SAAS,EAAE,CAAA;IAC3F,IAAI,QAAQ,EAAE,KAAK,KAAK,IAAI,IAAI,QAAQ,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;QACxD,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,oBAAoB,eAAe,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,EAAE,CAAA;IACpG,CAAC;IACD,IAAI,QAAQ,EAAE,OAAO,IAAI,IAAI,EAAE,CAAC;QAC9B,OAAO;YACL,QAAQ,EAAE,KAAK;YACf,IAAI,EAAE,iBAAiB,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;SAC/G,CAAA;IACH,CAAC;IACD,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAA;IACnF,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC,OAAO,KAAK,eAAe,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,EAAE,CAAA;IACtH,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,EAAE,EAAE,CAAA;AACvG,CAAC,CAAA;AAED,qFAAqF;AACrF,MAAM,cAAc,GAAG,CAAC,OAA0B,EAAE,KAAsB,EAAsB,EAAE;IAChG,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;QACrB,KAAK,WAAW;YACd,OAAO,OAAO,CAAC,aAAa,KAAK,IAAI;gBACnC,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,sBAAsB,KAAK,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,OAAO,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,eAAe,eAAe,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAA;QACtO,KAAK,OAAO;YACV,OAAO,OAAO,CAAC,MAAM,KAAK,IAAI;gBAC5B,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,yBAAyB,OAAO,CAAC,MAAM,CAAC,KAAK,KAAK,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAA;QACrH,KAAK,OAAO;YACV,OAAO,6EAA6E,CAAA;IACxF,CAAC;AACH,CAAC,CAAA;AAED;;;;GAIG;AACH,MAAM,WAAW,GAAG,CAAC,IAAc,EAAE,QAAiC,EAAmC,EAAE;IACzG,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAoB,EAAE,CAAC,CAAC;QACnE,SAAS,EAAE,QAAQ;QACnB,QAAQ,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE;QAClD,MAAM,EAAE,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC;QACrC,EAAE,EAAE,KAAK,CAAC,EAAE;QACZ,IAAI,EAAE,eAAe,CAAC,KAAK,CAAC,UAAU,CAAC;QACvC,KAAK,EAAE,KAAK,CAAC,OAAO;KACrB,CAAC,CAAC,CAAA;IACH,MAAM,IAAI,GAA4B,EAAE,CAAA;IACxC,IAAI,QAAQ,EAAE,WAAW,IAAI,IAAI,EAAE,CAAC;QAClC,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,QAAQ,CAAC,WAAW,CAAA;QAC9D,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,IAAI,UAAU,CAAA;QACtC,IAAI,CAAC,IAAI,CAAC;YACR,SAAS,EAAE,QAAQ;YACnB,QAAQ,EAAE,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE;YACpC,MAAM,EAAE,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,eAAe,CAAC,WAAW,CAAC,EAAE;YAChF,EAAE,EAAE,yBAAyB,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,WAAW,EAAE;YAClE,UAAU,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,oBAAoB,EAAE;YACzD,IAAI,EAAE,eAAe,CAAC,EAAE,CAAC;YACzB,KAAK,EAAE,iBAAiB,IAAI,CAAC,WAAW,IAAI,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;SAChF,CAAC,CAAA;IACJ,CAAC;IACD,IAAI,QAAQ,EAAE,KAAK,IAAI,IAAI,EAAE,CAAC;QAC5B,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAA;QACxD,IAAI,CAAC,IAAI,CAAC;YACR,SAAS,EAAE,OAAO;YAClB,QAAQ,EAAE,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE;YAC5C,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,eAAe,eAAe,CAAC,WAAW,CAAC,EAAE;YACjE,EAAE,EAAE,kBAAkB,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE;YACjD,UAAU,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,mBAAmB,EAAE;YACxD,IAAI,EAAE,eAAe,CAAC,UAAU,CAAC;YACjC,KAAK,EAAE,SAAS,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;SAChD,CAAC,CAAA;IACJ,CAAC;IACD,IAAI,QAAQ,EAAE,OAAO,IAAI,IAAI,EAAE,CAAC;QAC9B,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAA;QAC9D,IAAI,CAAC,IAAI,CAAC;YACR,SAAS,EAAE,QAAQ;YACnB,QAAQ,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE;YACvC,MAAM,EAAE,MAAM;YACd,EAAE,EAAE,oBAAoB,MAAM,EAAE;YAChC,UAAU,EAAE;gBACV,IAAI,EAAE,SAAS;gBACf,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,kBAAkB,eAAe,CAAC,UAAU,CAAC,EAAE;aAC5F;YACD,IAAI,EAAE,eAAe,CAAC,KAAK,CAAC;YAC5B,KAAK,EAAE,iBAAiB,WAAW,CAAC,MAAM,CAAC,EAAE;SAC9C,CAAC,CAAA;IACJ,CAAC;IACD,OAAO,CAAC,GAAG,QAAQ,EAAE,GAAG,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAA;AACjH,CAAC,CAAA;AAaD,MAAM,kBAAkB,GAAG,CAAC,OAAoB,EAAE,SAA2C,EAAmB,EAAE;IAChH,MAAM,YAAY,GAAG,uBAAuB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;IAChE,IAAI,YAAY,CAAC,IAAI,KAAK,WAAW,IAAI,SAAS,KAAK,SAAS;QAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,CAAA;IAC9F,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,YAAY,CAAA;IACzC,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,EAAE,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAA;IAC1E,uFAAuF;IACvF,IAAI,OAAO,CAAC,KAAK,KAAK,MAAM,EAAE,CAAC;QAC7B,OAAO;YACL,IAAI,EAAE,SAAS;YACf,YAAY,EAAE,GAAG,OAAO,CAAC,OAAO,KAAK,mBAAmB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG;YAChF,OAAO,EAAE,MAAM,EAAE,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI;SAC5D,CAAA;IACH,CAAC;IACD,MAAM,OAAO,GAAG,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,SAAS,CAAA;IACxD,MAAM,KAAK,GACT,SAAS,CAAC,OAAO,EAAE,KAAK,KAAK,KAAK;QAChC,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,OAAO,CAAC,QAAQ,EAAE;QACzD,CAAC,CAAC,SAAS,CAAC,OAAO,KAAK,IAAI;YAC1B,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,0CAA0C,EAAE;YACrE,CAAC,CAAC,uGAAuG;gBACvG,MAAM,EAAE,OAAO,KAAK,UAAU,IAAI,OAAO;oBACzC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,wCAAwC,EAAE;oBACnE,CAAC,CAAC,OAAO;wBACP,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE;wBACnB,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,uBAAuB,EAAE,CAAA;IAC5D,MAAM,MAAM,GAAG,CAAC,QAA8B,EAAE,EAAE,CAAC,GAAG,EAAE;QACtD,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO;YAAE,SAAS,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAA;IACvE,CAAC,CAAA;IACD,OAAO;QACL,IAAI,EAAE,KAAK;QACX,GAAG,EAAE,CACH,KAAC,WAAW,OACN,CAAC,SAAS,KAAK,IAAI,IAAI,CAAC,OAAO;gBACjC,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC;oBACE,KAAK,EAAE,GAAG,oBAAoB,CAAC,SAAS,EAAE,SAAS,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;iBACtG,CAAC,EACN,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,EAC5B,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,EAC1B,KAAK,EAAE,KAAK,KACR,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,EACpD,MAAM,EAAE,OAAO,CAAC,OAAO,GACvB,CACH;KACF,CAAA;AACH,CAAC,CAAA;AAED,iGAAiG;AACjG,MAAM,WAAW,GAAG,CAAC,EACnB,SAAS,EACT,aAAa,EACb,OAAO,EAKR,EAAgB,EAAE;IACjB,MAAM,QAAQ,GAAG,kBAAkB,CAAC,OAAO,EAAE,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;IACjG,MAAM,YAAY,GAAG,mBAAmB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;IACvD,OAAO,CACL,yBAEG,QAAQ,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAChC,gBAAM,SAAS,EAAC,sBAAsB,aACpC,KAAC,IAAI,cAAE,OAAO,CAAC,OAAO,GAAQ,EAC9B,eAAM,SAAS,EAAC,gBAAgB,eAAY,YAAY,CAAC,IAAI,YAC1D,YAAY,CAAC,KAAK,GACd,IACF,CACR,EACA,QAAQ,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,CACzB,QAAQ,CAAC,GAAG,CACb,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,CAChC,QAAQ,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CACjC,KAAC,IAAI,IAAC,IAAI,EAAC,WAAW,EAAC,OAAO,EAAC,MAAM,YAClC,QAAQ,CAAC,OAAO,GACZ,CACR,CACF,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,KAAK,IAAI,CAAC,CAAC,CAAC,CACtE,KAAC,IAAI,IAAC,IAAI,EAAC,WAAW,EAAC,OAAO,EAAC,MAAM,2CAE9B,CACR,CAAC,CAAC,CAAC,aAAa,KAAK,UAAU,CAAC,CAAC,CAAC,CACjC,MAAC,IAAI,IAAC,IAAI,EAAC,WAAW,EAAC,OAAO,EAAC,MAAM,0CACT,OAAO,CAAC,cAAc,CAAC,IAAI,UAChD,CACR,CAAC,CAAC,CAAC,CACF,SAAS,CAAC,OAAO,CAAC,cAAc,EAAE,cAAc,OAAO,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAC/E,EAKA,QAAQ,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CACtC,2BAAe,MAAM,EAAC,SAAS,EAAC,2BAA2B,EAAC,IAAI,EAAC,QAAQ,YACtE,QAAQ,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,GACvD,CACL,IACE,CACN,CAAA;AACH,CAAC,CAAA;AAED,2GAA2G;AAC3G,MAAM,UAAU,GAAG,CAAC,EAClB,SAAS,EACT,aAAa,EACb,IAAI,EACJ,QAAQ,EAMT,EAAgB,EAAE;IACjB,MAAM,MAAM,GAAG,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC,CAAA;IAC/C,MAAM,QAAQ,GAAG,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC,CAAA;IAC/C,MAAM,KAAK,GAAG,QAAQ,EAAE,YAAY,IAAI,IAAI,CAAC,KAAK,CAAA;IAClD,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;IAC5C,0FAA0F;IAC1F,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,KAAK,SAAS,CAAA;IAC/C,8FAA8F;IAC9F,2CAA2C;IAC3C,MAAM,YAAY,GAChB,IAAI,CAAC,cAAc,KAAK,SAAS;QACjC,IAAI,CAAC,cAAc,KAAK,IAAI;QAC5B,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,cAAc,EAAE,EAAE,EAAE,CAAC,cAAc,EAAE,GAAG,KAAK,IAAI,CAAC,cAAc,EAAE,GAAG,CAAC;QAC9F,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,IAAI,CAAC,cAAc,CAAA;IACzB,OAAO,CACL,eAAK,SAAS,EAAC,aAAa,aAC1B,KAAC,IAAI,IAAC,IAAI,EAAC,WAAW,YAAE,IAAI,CAAC,MAAM,GAAQ,EAC3C,KAAC,SAAS,IAAC,OAAO,EAAE,eAAe,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,EAAC,OAAO,EAAC,MAAM,EAAE,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,GAAI,EAChG,cAAI,SAAS,EAAC,YAAY,aACxB,0BACE,iCAAc,EACd,yBACG,mBAAmB,CAAC,KAAK,CAAC,CAAC,KAAK,EAChC,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAC7B,MAAC,IAAI,IAAC,EAAE,EAAC,GAAG,EAAC,SAAS,EAAC,gBAAgB,EAAC,IAAI,EAAC,WAAW,EAAC,OAAO,EAAC,MAAM,uCAC9C,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,IACnE,CACR,IACE,IACD,EACL,OAAO,CAAC,CAAC,CAAC,CACT,0BACE,wCAAqB,EACrB,uBACG,QAAQ,EAAE,WAAW,IAAI,IAAI;oCAC5B,CAAC,CAAC,QAAQ,KAAK,IAAI,IAAI,QAAQ,CAAC,eAAe,KAAK,SAAS;wCAC3D,CAAC,CAAC,6EAA6E;wCAC/E,CAAC,CAAC,YAAY;oCAChB,CAAC,CAAC,IAAI,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,IAAI,qBAAqB,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,WAAW,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,GACxJ,IACD,CACP,CAAC,CAAC,CAAC,IAAI,EACR,0BACE,iCAAc,EACd,uBAAK,IAAI,CAAC,KAAK,CAAC,IAAI,GAAM,IACtB,EACN,0BACE,iCAAc,EACd,yBACG,cAAc,CAAC,IAAI,CAAC,EACpB,IAAI,CAAC,cAAc,EAAE,KAAK,CAAC,YAAY,KAAK,SAAS,IAAI,IAAI,CAAC,cAAc,KAAK,IAAI;wCACpF,CAAC,CAAC,IAAI;wCACN,CAAC,CAAC,KAAK,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,SAAS,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,YAAY,CAAC,aAAa,EAAE,IACpH,IACD,EACN,0BACE,sCAAmB,EACnB,yBACG,IAAI,CAAC,UAAU,CAAC,UAAU,QAAG,yBAAO,IAAI,CAAC,UAAU,CAAC,MAAM,GAAQ,IAChE,IACD,EACN,0BACE,kCAAe,EACf,yBACG,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,EACxB,IAAI,CAAC,MAAM,EAAE,GAAG,KAAK,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa;wCACjF,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CACpB,mCAAI,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CACpC,EACA,IAAI,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAC5E,KAAC,IAAI,IAAC,IAAI,EAAC,WAAW,EAAC,OAAO,EAAC,MAAM,YAClC,IAAI,CAAC,MAAM,CAAC,OAAO,GACf,CACR,IACE,IACD,EACN,0BACE,iCAAc,EACd,uBAAK,WAAW,CAAC,IAAI,CAAC,GAAM,IACxB,IACH,EACJ,QAAQ,EAAE,KAAK,KAAK,IAAI,IAAI,QAAQ,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,CACrD,aAAG,SAAS,EAAC,WAAW,eAAW,MAAM,aACvC,qCAAiB,aAAQ,eAAe,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,iDACjE,CACL,CAAC,CAAC,CAAC,IAAI,EACP,QAAQ,EAAE,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAClC,aAAG,SAAS,EAAC,WAAW,eAAW,SAAS,aAC1C,0CAAkB,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,IAAK,aAAQ,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,OAAG,GAAG,EAC/G,QAAQ,CAAC,OAAO,CAAC,MAAM,OAAG,GAAG,EAC7B,QAAQ,CAAC,OAAO,CAAC,UAAU,KAAK,IAAI;wBACnC,CAAC,CAAC,wDAAwD;wBAC1D,CAAC,CAAC,2BAA2B,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,IAC5E,CACL,EACA,WAAW,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAClC,aAAG,SAAS,EAAC,WAAW,eAAW,SAAS,aAC1C,kCAAc,aAAQ,eAAe,CAAC,OAAO,CAAC,KAAK,CAAC,QAAI,OAAO,CAAC,OAAO,KADvB,GAAG,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,OAAO,EAAE,CAEnF,CACL,CAAC,EACF,sCAAyB,qBAAqB,EAAC,SAAS,EAAC,qBAAqB,aAC5E,aAAI,SAAS,EAAC,kBAAkB,EAAC,EAAE,EAAC,qBAAqB,yBAEpD,EACJ,WAAW,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAChC,KAAC,IAAI,IAAC,IAAI,EAAC,WAAW,YACnB,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,0BAA0B,GAC9E,CACR,CAAC,CAAC,CAAC,CACF,aAAI,SAAS,EAAC,kBAAkB,YAC7B,WAAW,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAClC,KAAC,WAAW,IAAC,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,aAAa,EAAmB,OAAO,EAAE,OAAO,IAA5B,OAAO,CAAC,EAAE,CAAsB,CACvG,CAAC,GACC,CACN,IACO,EACV,sCAAyB,qBAAqB,EAAC,SAAS,EAAC,qBAAqB,aAC5E,aAAI,SAAS,EAAC,kBAAkB,EAAC,EAAE,EAAC,qBAAqB,yBAEpD,EACJ,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CACvB,KAAC,IAAI,IAAC,IAAI,EAAC,WAAW,YAAE,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,oBAAoB,GAAQ,CAC7G,CAAC,CAAC,CAAC,CACF,2BAAgB,eAAe,IAAI,CAAC,KAAK,EAAE,EAAE,SAAS,EAAC,eAAe,YACnE,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAC9B,KAAC,WAAW,IAAC,SAAS,EAAE,KAAK,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,KAAK,EAAE,KAAK,IAAO,KAAK,CAAC,EAAE,CAAI,CACrF,CAAC,GACC,CACN,IACO,EACT,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CACxB,sCAAyB,mBAAmB,EAAC,SAAS,EAAC,qBAAqB,aAC1E,aAAI,SAAS,EAAC,kBAAkB,EAAC,EAAE,EAAC,mBAAmB,mCAElD,EACL,mBAAS,SAAS,EAAC,qBAAqB,aACtC,uCAAe,MAAM,CAAC,UAAU,CAAC,MAAM,mBAAsB,EAC7D,aAAI,SAAS,EAAC,kBAAkB,YAC7B,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAChC,yBACE,gBAAM,SAAS,EAAC,sBAAsB,aACpC,KAAC,IAAI,cAAE,KAAK,CAAC,KAAK,GAAQ,EAC1B,eAAM,SAAS,EAAC,gBAAgB,eAAY,iBAAiB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,YAC5E,iBAAiB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,GAChC,IACF,EACP,MAAC,IAAI,IAAC,IAAI,EAAC,WAAW,EAAC,OAAO,EAAC,MAAM,aAClC,KAAK,CAAC,OAAO,QAAI,eAAe,CAAC,KAAK,CAAC,SAAS,CAAC,IAC7C,EACN,WAAW,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CACnC,MAAC,IAAI,IAA6C,IAAI,EAAC,WAAW,EAAC,OAAO,EAAC,MAAM,+BAChE,eAAe,CAAC,OAAO,CAAC,KAAK,CAAC,QAAI,OAAO,CAAC,OAAO,KADvD,GAAG,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,OAAO,EAAE,CAEzC,CACR,CAAC,EACD,KAAK,CAAC,MAAM,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAC5D,MAAC,IAAI,IAAC,IAAI,EAAC,WAAW,EAAC,OAAO,EAAC,MAAM,wBAC3B,kBAAkB,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,EACjE,KAAK,CAAC,MAAM,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,IAC5D,CACR,KApBM,KAAK,CAAC,EAAE,CAqBZ,CACN,CAAC,GACC,IACG,IACF,CACX,EACD,eAAK,SAAS,EAAC,YAAY,aACxB,IAAI,CAAC,aAAa,KAAK,IAAI,CAAC,CAAC,CAAC,CAC7B,KAAC,IAAI,IAAC,IAAI,EAAC,WAAW,kDAAyC,CAChE,CAAC,CAAC,CAAC,aAAa,KAAK,UAAU,CAAC,CAAC,CAAC,CACjC,KAAC,IAAI,IAAC,IAAI,EAAC,WAAW,EAAC,OAAO,EAAC,MAAM,yCAE9B,CACR,CAAC,CAAC,CAAC,CACF,YAAG,SAAS,EAAC,mBAAmB,EAAC,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG,0CAEzD,CACL,EACA,YAAY,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,KAAK,UAAU,CAAC,CAAC,CAAC,CAC7D,MAAC,IAAI,IAAC,IAAI,EAAC,WAAW,EAAC,OAAO,EAAC,MAAM,6CACN,YAAY,CAAC,IAAI,SACzC,CACR,CAAC,CAAC,CAAC,CACF,SAAS,CAAC,YAAY,EAAE,QAAQ,YAAY,CAAC,IAAI,WAAW,CAAC,CAC9D,IACG,IACF,CACP,CAAA;AACH,CAAC,CAAA;AAED,MAAM,iBAAiB,GAAG;IACxB,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,QAAQ;IAChB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,MAAM,EAAE,QAAQ;IAChB,QAAQ,EAAE,UAAU;CACoC,CAAA;AAE1D,MAAM,WAAW,GAAG,CAAC,SAAwB,EAAE,MAA0B,EAAgB,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;AAE7G,MAAM,aAAa,GAAG,CAAC,QAAsB,EAAE,MAAc,EAA8B,EAAE,CAC3F,CAAC,QAAQ,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,eAAe,KAAK,MAAM,CAAC,IAAI,IAAI,CAAA;AAErF,MAAM,kBAAkB,GAAG,CAAC,QAAsB,EAAE,IAAc,EAAiB,EAAE;IACnF,MAAM,KAAK,GAAG,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC,CAAA;IAC9C,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,IAAI,CAAA;IAC/B,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,CAAA;IACrC,OAAO,GAAG,KAAK,aAAa,CAAA;AAC9B,CAAC,CAAA;AAED,MAAM,YAAY,GAAG,CAAC,IAAY,EAAE,QAAgB,EAAU,EAAE;IAC9D,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;IACvC,OAAO,GAAG,aAAa,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,IAAI,QAAQ,EAAE,CAAA;AACpF,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,EACxB,SAAS,EACT,aAAa,GAAG,SAAS,EACzB,aAAa,EACb,aAAa,GAAG,KAAK,EACrB,UAAU,EACV,SAAS,EAYV,EAAgB,EAAE;IACjB,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAqB,aAAa,CAAC,CAAA;IACvE,MAAM,QAAQ,GAAG,WAAW,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;IAC/C,MAAM,iBAAiB,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,aAAa,CAAC,CAAA;IAC/E,MAAM,eAAe,GAAG,iBAAiB,KAAK,SAAS,CAAC,CAAC,CAAC,6BAA6B,CAAC,aAAa,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IACrH,MAAM,0BAA0B,GAAG,eAAe,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,aAAa,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,MAAM,CAAA;IAC9G,MAAM,mBAAmB,GAAG,eAAe,EAAE,YAAY,IAAI,KAAK,CAAA;IAClE,MAAM,4BAA4B,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,0BAA0B,CAAC,CAAA;IACvG,kGAAkG;IAClG,MAAM,mBAAmB,GACvB,4BAA4B,KAAK,SAAS;QAC1C,CAAC,mBAAmB,KAAK,KAAK,IAAI,cAAc,CAAC,QAAQ,EAAE,4BAA4B,CAAC,KAAK,mBAAmB,CAAC;QAC/G,CAAC,CAAC,4BAA4B;QAC9B,CAAC,CAAC,SAAS,CAAA;IACf,MAAM,iBAAiB,GAAG,mBAAmB,EAAE,EAAE,IAAI,IAAI,CAAA;IACzD,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAgB,iBAAiB,CAAC,CAAA;IAC9E,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAC5C,mBAAmB,KAAK,SAAS;QAC/B,CAAC,eAAe,EAAE,WAAW,IAAI,CAAC,aAAa,KAAK,SAAS,IAAI,aAAa,KAAK,IAAI,CAAC,CAAC,CAC5F,CAAA;IACD,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAA4B,mBAAmB,CAAC,CAAA;IAChG,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAG,QAAQ,CAAC,eAAe,EAAE,gBAAgB,IAAI,uBAAuB,CAAC,CAAA;IACtH,MAAM,UAAU,GAAG,MAAM,CAAqB,IAAI,CAAC,CAAA;IACnD,MAAM,kBAAkB,GAAG,MAAM,CAA2B,IAAI,CAAC,CAAA;IACjE,MAAM,cAAc,GAAG,MAAM,CAA2B,IAAI,CAAC,CAAA;IAC7D,MAAM,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAA;IACnC,wFAAwF;IACxF,MAAM,OAAO,GAA0C,IAAI,GAAG,CAC5D,CAAC,QAAQ,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAChE,CAAA;IACD,MAAM,UAAU,GAAG,CAAC,IAAc,EAA2B,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,IAAI,CAAA;IAC5F,MAAM,OAAO,GAAG,CAAC,IAAc,EAAoB,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,YAAY,IAAI,IAAI,CAAC,KAAK,CAAA;IAClG,uFAAuF;IACvF,MAAM,KAAK,GAAoB,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAA;IACpE,MAAM,QAAQ,GAAG,kBAAkB,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;IAC1D,MAAM,QAAQ,GACZ,KAAK,KAAK,SAAS;QACjB,CAAC,CAAC,QAAQ;QACV,CAAC,CAAC,SAAS,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAA;IACxG,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAC7E,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IAClD,4EAA4E;IAC5E,MAAM,aAAa,GAAG,YAAY,KAAK,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,YAAY,CAAC,CAAA;IACjH,MAAM,yBAAyB,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,UAAU,CAAC,CAAA;IACxF,MAAM,QAAQ,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,UAAU,CAAC,IAAI,IAAI,CAAA;IAC1E,MAAM,gBAAgB,GACpB,yBAAyB,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,yBAAyB,GAAG,gBAAgB,GAAG,CAAC,CAAA;IACrG,MAAM,YAAY,GAAG,aAAa,CAAC,KAAK,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,gBAAgB,CAAC,CAAA;IAC/F,MAAM,aAAa,GAAG,gBAAgB;SACnC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,KAAK,CAAC,EAAE,CAAC,CAAC;SAChG,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;IAC1C,iFAAiF;IACjF,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,WAAW;YAAE,UAAU,CAAC,OAAO,EAAE,aAAa,CAAc,IAAI,CAAC,EAAE,KAAK,EAAE,CAAA;IAChF,CAAC,EAAE,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAA;IAC7B,SAAS,CAAC,GAAG,EAAE;QACb,IACE,UAAU,KAAK,SAAS;YACxB,CAAC,WAAW;YACZ,UAAU,KAAK,IAAI;YACnB,QAAQ,CAAC,QAAQ,CAAC,IAAI,KAAK,IAAI,oBAAoB,EAAE,EACrD,CAAC;YACD,kBAAkB,CAAC,OAAO,EAAE,KAAK,EAAE,CAAA;QACrC,CAAC;IACH,CAAC,EAAE,CAAC,WAAW,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,CAAA;IACzC,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,UAAU,KAAK,IAAI,IAAI,yBAAyB,KAAK,CAAC,CAAC;YAAE,OAAM;QACnE,cAAc,CAAC,KAAK,CAAC,CAAA;QACrB,aAAa,CAAC,IAAI,CAAC,CAAA;QACnB,mBAAmB,CAAC,uBAAuB,CAAC,CAAA;IAC9C,CAAC,EAAE,CAAC,yBAAyB,EAAE,UAAU,CAAC,CAAC,CAAA;IAE3C,MAAM,OAAO,GAAG,CAAC,IAAc,EAAgB,EAAE;QAC/C,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,EAAE,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;QACvG,MAAM,OAAO,GAAG,CACd,8BACE,gBAAM,SAAS,EAAC,gBAAgB,aAC9B,gBAAM,SAAS,EAAC,eAAe,aAC5B,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,QAAG,yBAAO,IAAI,CAAC,UAAU,CAAC,MAAM,GAAQ,IAC9E,EACN,IAAI,CAAC,KAAK,IACN,EACP,eAAM,SAAS,EAAC,gBAAgB,eAAY,mBAAmB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,YAChF,mBAAmB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,GACpC,EACP,gBAAM,SAAS,EAAC,kBAAkB,mBAAgB,OAAO,CAAC,QAAQ,aAC/D,OAAO,CAAC,IAAI,EACZ,kBAAkB,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,kBAAkB,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,IAC1F,IACN,CACJ,CAAA;QACD,OAAO,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,CAChC,kCACiB,WAAW,IAAI,QAAQ,EAAE,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,SAAS,mBACzE,WAAW,IAAI,QAAQ,EAAE,EAAE,KAAK,IAAI,CAAC,EAAE,kBACxC,QAAQ,EAAE,EAAE,KAAK,IAAI,CAAC,EAAE,EACtC,SAAS,EAAC,gBAAgB,EAC1B,EAAE,EAAE,QAAQ,EAAE,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,SAAS,EAC/D,OAAO,EAAE,GAAG,EAAE;gBACZ,cAAc,CAAC,IAAI,CAAC,CAAA;gBACpB,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;YACxB,CAAC,EACD,GAAG,EAAE,QAAQ,EAAE,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,EAC1D,IAAI,EAAC,QAAQ,YAEZ,OAAO,GACD,CACV,CAAC,CAAC,CAAC,CACF,4BACgB,QAAQ,EAAE,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EAC3D,SAAS,EAAC,gBAAgB,EAC1B,IAAI,EAAE,UAAU,CAAC;gBACf,MAAM,EACJ,YAAY,KAAK,KAAK,IAAI,gBAAgB,KAAK,uBAAuB;oBACpE,CAAC,CAAC,IAAI,CAAC,EAAE;oBACT,CAAC,CAAC,6BAA6B,CAAC;wBAC5B,WAAW,EAAE,IAAI;wBACjB,MAAM,EAAE,IAAI,CAAC,EAAE;wBACf,YAAY;wBACZ,gBAAgB;qBACjB,CAAC;gBACR,MAAM;aACP,CAAC,EACF,EAAE,EAAE,QAAQ,EAAE,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,SAAS,EAC/D,GAAG,EAAE,QAAQ,EAAE,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,SAAS,YAE7D,OAAO,GACN,CACL,CAAA;IACH,CAAC,CAAA;IAED,MAAM,UAAU,GAAG,CACjB,4BAAgB,sBAAsB,EAAC,SAAS,EAAC,oBAAoB,EAAC,IAAI,EAAC,OAAO,YAC/E,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;YACtB,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;gBAC7B,OAAO,CACL,iCACgB,MAAM,KAAK,MAAM,EAC/B,SAAS,EAAC,kBAAkB,EAE5B,OAAO,EAAE,GAAG,EAAE;wBACZ,MAAM,gBAAgB,GAAG,WAAW,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,UAAU,CAAC,CAAA;wBACjG,IACE,gBAAgB,KAAK,SAAS;4BAC9B,CAAC,YAAY,KAAK,KAAK;gCACrB,cAAc,CAAC,WAAW,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE,gBAAgB,CAAC,KAAK,YAAY,CAAC,EACpF,CAAC;4BACD,cAAc,CAAC,KAAK,CAAC,CAAA;wBACvB,CAAC;wBACD,mBAAmB,CAAC,uBAAuB,CAAC,CAAA;wBAC5C,SAAS,CAAC,MAAM,CAAC,CAAA;oBACnB,CAAC,EACD,IAAI,EAAC,QAAQ,YAEZ,WAAW,CAAC,MAAM,CAAC,IAff,MAAM,CAgBJ,CACV,CAAA;YACH,CAAC;YACD,MAAM,gBAAgB,GAAG,WAAW,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,UAAU,CAAC,CAAA;YACjG,MAAM,aAAa,GACjB,UAAU,KAAK,IAAI,IAAI,YAAY,KAAK,KAAK,IAAI,gBAAgB,KAAK,uBAAuB,CAAA;YAC/F,OAAO,CACL,4BACgB,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EACpD,SAAS,EAAC,kBAAkB,EAC5B,IAAI,EAAE,UAAU,CAAC;oBACf,MAAM,EAAE,aAAa;wBACnB,CAAC,CAAC,6BAA6B,CAAC;4BAC5B,WAAW,EACT,WAAW;gCACX,gBAAgB,KAAK,SAAS;gCAC9B,CAAC,YAAY,KAAK,KAAK;oCACrB,cAAc,CAAC,WAAW,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE,gBAAgB,CAAC,KAAK,YAAY,CAAC;4BACtF,MAAM,EAAE,UAAU;4BAClB,YAAY;4BACZ,gBAAgB,EAAE,uBAAuB;yBAC1C,CAAC;wBACJ,CAAC,CAAC,IAAI;oBACR,MAAM,EAAE,MAAM;iBACf,CAAC,YAGD,WAAW,CAAC,MAAM,CAAC,IAFf,MAAM,CAGT,CACL,CAAA;QACH,CAAC,CAAC,GACE,CACP,CAAA;IAED,MAAM,oBAAoB,GAAG,CAC3B,4BAAgB,wBAAwB,EAAC,SAAS,EAAC,qBAAqB,EAAC,IAAI,EAAC,OAAO,YAClF,aAAa,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YAC3B,MAAM,KAAK,GAAG,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,KAAK,CAAA;YACtE,OAAO,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,CAChC,iCACgB,YAAY,KAAK,KAAK,EACpC,SAAS,EAAC,oBAAoB,EAE9B,OAAO,EAAE,GAAG,EAAE;oBACZ,cAAc,CAAC,KAAK,CAAC,CAAA;oBACrB,aAAa,CAAC,IAAI,CAAC,CAAA;oBACnB,eAAe,CAAC,KAAK,CAAC,CAAA;oBACtB,mBAAmB,CAAC,uBAAuB,CAAC,CAAA;gBAC9C,CAAC,EACD,IAAI,EAAC,QAAQ,YAEZ,KAAK,IATD,KAAK,CAUH,CACV,CAAC,CAAC,CAAC,CACF,4BACgB,YAAY,KAAK,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EACzD,SAAS,EAAC,oBAAoB,EAC9B,IAAI,EAAE,UAAU,CAAC;oBACf,MAAM,EAAE,6BAA6B,CAAC;wBACpC,WAAW,EAAE,KAAK;wBAClB,MAAM,EAAE,IAAI;wBACZ,YAAY,EAAE,KAAK;wBACnB,gBAAgB,EAAE,uBAAuB;qBAC1C,CAAC;oBACF,MAAM;iBACP,CAAC,YAGD,KAAK,IAFD,KAAK,CAGR,CACL,CAAA;QACH,CAAC,CAAC,GACE,CACP,CAAA;IAED,OAAO,CACL,mBAAS,SAAS,EAAC,WAAW,qBAAiB,kBAAkB,aAC/D,kBAAQ,SAAS,EAAC,iBAAiB,aACjC,KAAC,IAAI,IAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,kBAAkB,EAAC,OAAO,EAAC,YAAY,qBAEjD,EACP,MAAC,IAAI,IAAC,IAAI,EAAC,WAAW,EAAC,OAAO,EAAC,MAAM,aAClC,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,cAAU,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,EACvF,MAAM,KAAK,KAAK;gCACf,CAAC,CAAC,IAAI;gCACN,CAAC,CAAC,QAAQ,CAAC,QAAQ,KAAK,SAAS;oCAC/B,CAAC,CAAC,sNAAsN;oCACxN,CAAC,CAAC,QAAQ,CAAC,eAAe,KAAK,SAAS;wCACtC,CAAC,CAAC,IAAI;wCACN,CAAC,CAAC,2DAA2D,QAAQ,CAAC,eAAe,YAAY,IAClG,IACA,EACT,KAAC,IAAI,IAAC,OAAO,EAAE,cAAc,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAC,cAAc,GAAG,EAC5F,UAAU,EACV,QAAQ,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAC7B,KAAC,MAAM,IAAC,KAAK,EAAC,OAAO,YACnB,KAAC,IAAI,IAAC,IAAI,EAAC,WAAW,YACnB,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,CAClB,8EAC+C,GAAG,EAChD,wFAAuE,2BAAsB,GAAG,EAChG,4CAA2B,wDAC1B,CACJ,CAAC,CAAC,CAAC,CACF,8BAA8B,CAC/B,GACI,GACA,CACV,CAAC,CAAC,CAAC,CACF,eAAK,SAAS,EAAC,mBAAmB,qBAAkB,QAAQ,KAAK,IAAI,IAAI,WAAW,aAClF,MAAC,MAAM,IAAC,OAAO,EAAE,oBAAoB,EAAE,SAAS,EAAC,iBAAiB,EAAC,KAAK,EAAE,aAAa,CAAC,MAAM,EAAE,KAAK,EAAC,OAAO,aAC3G,MAAC,IAAI,iBAAW,QAAQ,EAAC,IAAI,EAAC,WAAW,EAAC,OAAO,EAAC,MAAM,yBAC7C,YAAY,CAAC,MAAM,UAAM,aAAa,CAAC,MAAM,cACjD,EACN,aAAa,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,KAAC,IAAI,IAAC,IAAI,EAAC,WAAW,4CAAmC,CAAC,CAAC,CAAC,IAAI,EAC7F,aAAa,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CACvC,sCAA0B,cAAc,KAAK,EAAE,EAAE,SAAS,EAAC,YAAY,aACrE,cAAI,SAAS,EAAC,kBAAkB,EAAC,EAAE,EAAE,cAAc,KAAK,EAAE,aACvD,oBAAoB,CAAC,KAAK,CAAC,OAAE,gBAAM,SAAS,EAAC,kBAAkB,kBAAG,KAAK,CAAC,MAAM,SAAS,IACrF,EACL,aAAI,SAAS,EAAC,WAAW,YACtB,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACnB,uBAAmB,OAAO,CAAC,IAAI,CAAC,IAAvB,IAAI,CAAC,EAAE,CAAsB,CACvC,CAAC,GACC,KARsE,KAAK,CASxE,CACX,CAAC,EACD,YAAY,CAAC,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAC5C,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,CACzB,KAAC,MAAM,IACL,OAAO,EAAE,GAAG,EAAE,CACZ,mBAAmB,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,uBAAuB,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC,6BAI1F,CACV,CAAC,CAAC,CAAC,CACF,YACE,SAAS,EAAC,qBAAqB,EAC/B,IAAI,EAAE,UAAU,CAAC;oCACf,MAAM,EAAE,6BAA6B,CAAC;wCACpC,WAAW;wCACX,MAAM,EAAE,UAAU;wCAClB,YAAY;wCACZ,gBAAgB,EAAE,IAAI,CAAC,GAAG,CAAC,gBAAgB,GAAG,uBAAuB,EAAE,aAAa,CAAC,MAAM,CAAC;qCAC7F,CAAC;oCACF,MAAM;iCACP,CAAC,6BAGA,CACL,CACF,CAAC,CAAC,CAAC,IAAI,IACD,EACR,QAAQ,KAAK,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAC1C,KAAC,MAAM,IACL,OAAO,EACL,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,CACzB,KAAC,MAAM,IACL,OAAO,EAAE,GAAG,EAAE;gCACZ,cAAc,CAAC,KAAK,CAAC,CAAA;gCACrB,MAAM,WAAW,GAAG,cAAc,CAAC,OAAO,IAAI,kBAAkB,CAAC,OAAO,CAAA;gCACxE,WAAW,EAAE,KAAK,EAAE,CAAA;4BACtB,CAAC,EACD,OAAO,EAAC,WAAW,8BAGZ,CACV,CAAC,CAAC,CAAC,CACF,YACE,SAAS,EAAC,iBAAiB,EAC3B,IAAI,EAAE,YAAY,CAChB,UAAU,CAAC;gCACT,MAAM,EAAE,6BAA6B,CAAC;oCACpC,WAAW,EAAE,KAAK;oCAClB,MAAM,EAAE,UAAU;oCAClB,YAAY;oCACZ,gBAAgB;iCACjB,CAAC;gCACF,MAAM;6BACP,CAAC,EACF,oBAAoB,CACrB,8BAGC,CACL,gBAEQ,cAAc,EACzB,SAAS,EAAC,gBAAgB,EAC1B,SAAS,EAAC,yBAAyB,EACnC,EAAE,EAAC,mBAAmB,EACtB,GAAG,EAAE,UAAU,EACf,KAAK,EAAE,QAAQ,CAAC,KAAK,YAErB,KAAC,UAAU,IAAC,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,aAAa,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,GAAI,GAC/F,CACV,IACG,CACP,IACO,CACX,CAAA;AACH,CAAC,CAAA"}
@@ -1,23 +1,28 @@
1
1
  /**
2
- * The Work tab's triage: which goals need the viewer, which are blocked, which are moving, and
3
- * which finished in the last 24 hours, plus the one-sentence summary above them.
2
+ * The Work tab's triage: which goals need the viewer, which are blocked, which are moving, which
3
+ * have not started, and which finished in the last 24 hours, plus the one-sentence summary above them.
4
4
  *
5
5
  * Pure: callers pass one snapshot. View-only derivation lives here; the goal model, its
6
6
  * projection and observed facts stay in `model.ts`/`projection.ts`.
7
7
  *
8
8
  * A goal needs the viewer when it has an open request: someone asked for an approval only a
9
- * person can give. Blocked follows the goal's recorded state. Done counts terminal goals updated
10
- * within 24 hours of the snapshot, labelled as such, never as "since you looked"; older terminal
11
- * goals stay listed last, as "Finished earlier", so a status filter still finds them.
9
+ * person can give. Blocked and finished follow the displayed state: the observed overlay's when it
10
+ * has one (a merged pull request is done, a closed one abandoned), else the recorded state. Done
11
+ * counts goals that finished within 24 hours of the snapshot (the pull request's close time when
12
+ * that is what finished them, else the goal's last update), labelled as such, never as "since
13
+ * you looked"; older finished goals stay listed last, as "Finished earlier", so a status filter
14
+ * still finds them.
12
15
  */
13
- import type { WorkGoal, WorkRequest, WorkSnapshot } from "./model.js";
14
- /** How long a finished goal stays in the "Done in the last 24 hours" group. */
16
+ import type { WorkDisplayState, WorkGoal, WorkRequest, WorkSnapshot } from "./model.js";
17
+ /** How long a finished goal stays in the "Finished in the last 24 hours" group. */
15
18
  export declare const workTriageDoneWindowMs = 86400000;
16
19
  /** The groups, in reading order. */
17
- export type WorkTriageGroup = "needs-you" | "blocked" | "moving" | "done" | "earlier";
20
+ export type WorkTriageGroup = "needs-you" | "blocked" | "moving" | "planned" | "done" | "earlier";
18
21
  export declare const workTriageGroups: ReadonlyArray<WorkTriageGroup>;
19
22
  export interface WorkTriageRow {
20
23
  readonly goal: WorkGoal;
24
+ /** The state the tab shows: observed when the overlay has one, else recorded. */
25
+ readonly displayState: WorkDisplayState;
21
26
  readonly group: WorkTriageGroup;
22
27
  /** Position in the snapshot, the projection's own order; ties fall back to it. */
23
28
  readonly index: number;
@@ -50,7 +55,7 @@ export interface WorkTriage {
50
55
  * every goal (the model rejects a snapshot over `workSnapshotMaxGoals` rather than truncating it),
51
56
  * so a zero here is a real zero.
52
57
  */
53
- export declare const workTriage: (snapshot: Pick<WorkSnapshot, "asOf" | "goals">) => WorkTriage;
58
+ export declare const workTriage: (snapshot: Pick<WorkSnapshot, "asOf" | "goals" | "observed">) => WorkTriage;
54
59
  /**
55
60
  * `present` for the live snapshot; `past` for a historical window, which is the state as of its
56
61
  * time, not now: requests answered since still count there, and newer ones are missing.
@@ -66,6 +71,7 @@ export declare const workTriageGroupTitle: {
66
71
  "needs-you": string;
67
72
  blocked: string;
68
73
  moving: string;
74
+ planned: string;
69
75
  done: string;
70
76
  earlier: string;
71
77
  };