@bobfrankston/rmfmail 1.0.632 → 1.0.634
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/TODO.md +3 -0
- package/client/components/alarms.js +0 -3
- package/client/components/alarms.js.map +1 -1
- package/client/components/alarms.ts +0 -3
- package/docs/prod-wrapper.md.merged +215 -0
- package/docs/prod.md +178 -59
- package/package.json +1 -1
- package/packages/mailx-store-web/android-bootstrap.d.ts.map +1 -1
- package/packages/mailx-store-web/android-bootstrap.js +16 -1
- package/packages/mailx-store-web/android-bootstrap.js.map +1 -1
- package/packages/mailx-store-web/android-bootstrap.ts +15 -1
- package/client/android.html.deleted +0 -226
package/TODO.md
CHANGED
|
@@ -214,6 +214,9 @@ Items blocked on a design decision. Short-form question here; full context in th
|
|
|
214
214
|
| **C44** | PARTIAL | Real OS popup windows / pop-out — floating-overlay popout landed (Q64 v1.0.344); real OS processes still blocked on msger custom-protocol fix (C28). **Blocked on msger.** |
|
|
215
215
|
| [**C46**](#ext46) | PARTIAL | Mailto handler split out as [P115](#ext115) (registry-only, not blocked). Remaining (Share target, tray, notifications, MSIX) still blocked on MSIX packaging. |
|
|
216
216
|
| **C127** | OPTIONAL | **Push relay for calendar / mail / tasks** — design at [`docs/push-relay.md`](push-relay.md). New `MailApps/relayer/` package, alerter-shape (single Node Express+ws process, deploy alongside other small services). Generic API: client POSTs `/subscribe` with upstream + params, relay registers the upstream `events.watch` and returns an SSE/WS endpoint the client holds open. Per-upstream adapter files (`google-calendar.ts`, `google-gmail.ts`, `ms-graph-events.ts`); fan-out + replay buffer + subscription store generic. Client side: `pushRelayUrl` + credentials in settings, falls back to syncToken polling when relay unreachable. **Build only when polling latency demonstrably matters** — for typical use, 5–10 s syncToken cadence is functionally instant. Push is a freshness boost, not a correctness fix. |
|
|
217
|
+
| **C128** | OPEN | **Body pre-parse on prefetch** — first click on any unviewed message pays `simpleParser` + `sanitizeHtml` cost (~100–500 ms on rich HTML). The parsedCache (added 2026-05-09) eliminates 2nd-and-later view costs but not the first. Fix: extend prefetch to ALSO parse + sanitize the body during background fetch and store the result alongside the .eml (e.g., `<uuid>.parsed.json` next to `<uuid>.eml`, or a `body_html_cached` column). Click-time path reads pre-parsed JSON, no parser invocation. Touches `mailx-imap/index.ts` prefetch path + `mailx-store/file-store.ts` for the parsed-blob storage. |
|
|
218
|
+
| **C129** | OPEN | **Android prod/dev split via parallel MAUI projects** — User 2026-05-09: production APK from current default MAUI project, dev APK from a sibling `MailxAppDev/` project under `android-maui/`. Different package id (`com.frankston.rmfmail` vs `com.frankston.rmfmail.dev`), different AUMID, side-by-side install possible. Each builds independently; release flow: dev folder publishes APK, prod folder publishes APK from a known-good source state. Re-visit when desktop dist-tag flow has settled and Android needs the same separation. Notes-only until that time. |
|
|
219
|
+
| **C130** | OPEN | **Reset prefetch error budget after fresh sync** — Android: `errors`/`failedThisSession` accumulate within a prefetch session. Already resets on next syncAll cycle (since each `prefetchBodies(account)` call is fresh). Verify this works in practice via logit; if a long sync session burns through budget and stays stuck, add an explicit reset on `bodyAvailable` events that fire while prefetch is still running. |
|
|
217
220
|
|
|
218
221
|
<a id="concerns"></a>
|
|
219
222
|
|
|
@@ -121,7 +121,6 @@ function formatWhen(ms) {
|
|
|
121
121
|
const d = new Date(ms);
|
|
122
122
|
return d.toLocaleString(undefined, { weekday: "short", month: "short", day: "numeric", hour: "2-digit", minute: "2-digit" });
|
|
123
123
|
}
|
|
124
|
-
let currentPopup = null;
|
|
125
124
|
let firedThisSession = new Set();
|
|
126
125
|
/** uuids whose popup is currently visible on screen — set when the
|
|
127
126
|
* popup opens, cleared when the user resolves it (button or close).
|
|
@@ -155,7 +154,6 @@ function showInWebViewPopup(opts) {
|
|
|
155
154
|
`;
|
|
156
155
|
overlay.appendChild(panel);
|
|
157
156
|
document.body.appendChild(overlay);
|
|
158
|
-
currentPopup = overlay;
|
|
159
157
|
const msgapi = window.msgapi;
|
|
160
158
|
try {
|
|
161
159
|
msgapi?.setAlwaysOnTop?.(true);
|
|
@@ -163,7 +161,6 @@ function showInWebViewPopup(opts) {
|
|
|
163
161
|
catch { /* */ }
|
|
164
162
|
const cleanup = (button) => {
|
|
165
163
|
overlay.remove();
|
|
166
|
-
currentPopup = null;
|
|
167
164
|
try {
|
|
168
165
|
msgapi?.setAlwaysOnTop?.(false);
|
|
169
166
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"alarms.js","sourceRoot":"","sources":["alarms.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"alarms.js","sourceRoot":"","sources":["alarms.ts"],"names":[],"mappings":"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"}
|
|
@@ -115,7 +115,6 @@ function formatWhen(ms: number): string {
|
|
|
115
115
|
return d.toLocaleString(undefined, { weekday: "short", month: "short", day: "numeric", hour: "2-digit", minute: "2-digit" });
|
|
116
116
|
}
|
|
117
117
|
|
|
118
|
-
let currentPopup: HTMLElement | null = null;
|
|
119
118
|
let firedThisSession = new Set<string>();
|
|
120
119
|
/** uuids whose popup is currently visible on screen — set when the
|
|
121
120
|
* popup opens, cleared when the user resolves it (button or close).
|
|
@@ -153,14 +152,12 @@ function showInWebViewPopup(opts: { title: string; html: string; buttons: string
|
|
|
153
152
|
`;
|
|
154
153
|
overlay.appendChild(panel);
|
|
155
154
|
document.body.appendChild(overlay);
|
|
156
|
-
currentPopup = overlay;
|
|
157
155
|
|
|
158
156
|
const msgapi: any = (window as any).msgapi;
|
|
159
157
|
try { msgapi?.setAlwaysOnTop?.(true); } catch { /* */ }
|
|
160
158
|
|
|
161
159
|
const cleanup = (button: string): void => {
|
|
162
160
|
overlay.remove();
|
|
163
|
-
currentPopup = null;
|
|
164
161
|
try { msgapi?.setAlwaysOnTop?.(false); } catch { /* */ }
|
|
165
162
|
document.removeEventListener("keydown", onKey, true);
|
|
166
163
|
resolve({ button });
|
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
# prod / dev release workflow — wrapper-package variant
|
|
2
|
+
|
|
3
|
+
Status: design only. Alternative to `prod.md` (dist-tag approach). Pick one.
|
|
4
|
+
|
|
5
|
+
## Shape
|
|
6
|
+
|
|
7
|
+
Today: one package `@bobfrankston/rmfmail` ships everything.
|
|
8
|
+
|
|
9
|
+
Proposed: split into two packages, three install names.
|
|
10
|
+
|
|
11
|
+
| Name | Role | Versioning |
|
|
12
|
+
|---|---|---|
|
|
13
|
+
| `@bobfrankston/rmfmailapp` | The actual code (today's rmfmail content). | Bumps freely on every build. |
|
|
14
|
+
| `@bobfrankston/rmfmail` | Thin wrapper. `dependencies: { rmfmailapp: "1.0.NNN" }` pinned. | Bumps only on promotion. |
|
|
15
|
+
| `@bobfrankston/rmfmaildev` | Thin wrapper. `dependencies: { rmfmailapp: "*" }` (or repinned at every publish to current `@latest`). | Tracks rmfmailapp tip. |
|
|
16
|
+
|
|
17
|
+
Casual user: `npm install -g @bobfrankston/rmfmail` — pulls the wrapper, npm resolves the pinned rmfmailapp, installs both. The wrapper's `bin` shim invokes rmfmailapp's actual entry point.
|
|
18
|
+
|
|
19
|
+
Dev user: `npm install -g @bobfrankston/rmfmaildev` — wrapper that pulls `rmfmailapp@latest` (or its current `*`-resolved match).
|
|
20
|
+
|
|
21
|
+
Promotion = single git commit on the wrapper repo bumping its `dependencies.rmfmailapp` from one frozen version to a newer frozen version, plus `npm publish` of the wrapper.
|
|
22
|
+
|
|
23
|
+
## Why this rather than dist-tags
|
|
24
|
+
|
|
25
|
+
- **Audit trail in git.** The history of "what version was current prod when" is `git log app/wrapper/package.json`, not registry-only state.
|
|
26
|
+
- **Promotion is reversible by `git revert`.** Same as any code change.
|
|
27
|
+
- **Multi-channel scales.** `rmfmail-beta`, `rmfmail-rc`, etc. are just more wrappers, each pinned independently. dist-tags work too but become a bigger pile.
|
|
28
|
+
- **Pre-flight gating possible.** A CI check on the wrapper's package.json (lint, smoke test) can refuse promotions that name a version that hasn't been validated.
|
|
29
|
+
|
|
30
|
+
## Why NOT, vs dist-tags
|
|
31
|
+
|
|
32
|
+
- **Two packages to maintain** instead of one. Two `package.json`s, two `npm publish` calls per promotion.
|
|
33
|
+
- **One more rename.** Current `@bobfrankston/rmfmail` → `@bobfrankston/rmfmailapp` (every workspace dep that references it has to flip too — not many in mailx, but it's a non-trivial rename).
|
|
34
|
+
- **npm cache pressure.** Each version of rmfmailapp lingers in users' npm caches; the wrapper resolves at install time, so old transitive resolutions can sit around. dist-tags don't multiply package versions.
|
|
35
|
+
|
|
36
|
+
## Layout
|
|
37
|
+
|
|
38
|
+
```
|
|
39
|
+
mailx/
|
|
40
|
+
rmfmailapp/ # was app/, the actual code
|
|
41
|
+
package.json → "name": "@bobfrankston/rmfmailapp"
|
|
42
|
+
bin/mailx.ts → unchanged
|
|
43
|
+
packages/ → unchanged
|
|
44
|
+
client/ → unchanged
|
|
45
|
+
...
|
|
46
|
+
|
|
47
|
+
rmfmail/ # NEW — wrapper for prod
|
|
48
|
+
package.json → see below
|
|
49
|
+
bin/rmfmail.js → 3-line shim
|
|
50
|
+
|
|
51
|
+
rmfmaildev/ # NEW — wrapper for dev
|
|
52
|
+
package.json → see below
|
|
53
|
+
bin/rmfmaildev.js → 3-line shim
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
### `rmfmail/package.json` (prod wrapper)
|
|
57
|
+
|
|
58
|
+
```json
|
|
59
|
+
{
|
|
60
|
+
"name": "@bobfrankston/rmfmail",
|
|
61
|
+
"version": "1.0.0",
|
|
62
|
+
"description": "Local-first email client (current stable)",
|
|
63
|
+
"type": "module",
|
|
64
|
+
"bin": { "rmfmail": "bin/rmfmail.js" },
|
|
65
|
+
"dependencies": {
|
|
66
|
+
"@bobfrankston/rmfmailapp": "1.0.609"
|
|
67
|
+
},
|
|
68
|
+
"license": "MIT"
|
|
69
|
+
}
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
Wrapper's own version (`1.0.0`) only bumps on shape changes (e.g., bin renamed, scope changed). Day-to-day promotions just re-pin the dependency line.
|
|
73
|
+
|
|
74
|
+
### `rmfmail/bin/rmfmail.js` (shim)
|
|
75
|
+
|
|
76
|
+
```js
|
|
77
|
+
#!/usr/bin/env node
|
|
78
|
+
// Wrapper bin — defer to the pinned rmfmailapp entry point. Keeps argv
|
|
79
|
+
// and exit code identical so the wrapper is invisible at the CLI.
|
|
80
|
+
import { fileURLToPath } from "node:url";
|
|
81
|
+
import { createRequire } from "node:module";
|
|
82
|
+
const require = createRequire(import.meta.url);
|
|
83
|
+
const appBin = require.resolve("@bobfrankston/rmfmailapp/bin/mailx.js");
|
|
84
|
+
await import(`file://${appBin}`);
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
(Or even just `require("@bobfrankston/rmfmailapp/bin/mailx.js")` if the rmfmailapp bin runs on `import`.)
|
|
88
|
+
|
|
89
|
+
### `rmfmaildev/package.json` (dev wrapper)
|
|
90
|
+
|
|
91
|
+
```json
|
|
92
|
+
{
|
|
93
|
+
"name": "@bobfrankston/rmfmaildev",
|
|
94
|
+
"version": "1.0.0",
|
|
95
|
+
"description": "Local-first email client (development tip)",
|
|
96
|
+
"type": "module",
|
|
97
|
+
"bin": { "rmfmail": "bin/rmfmaildev.js" },
|
|
98
|
+
"dependencies": {
|
|
99
|
+
"@bobfrankston/rmfmailapp": "*"
|
|
100
|
+
},
|
|
101
|
+
"license": "MIT"
|
|
102
|
+
}
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
`*` means "any version" — npm picks the latest published. New `npm install -g @bobfrankston/rmfmaildev` always installs whatever rmfmailapp tip is at install time. Existing dev users run `npm update -g @bobfrankston/rmfmaildev` to refresh.
|
|
106
|
+
|
|
107
|
+
Alternative: `rmfmaildev` re-pins on every rmfmailapp publish (`prepublish` hook in rmfmailapp's CI bumps rmfmaildev's pin and publishes). Adds steps but gives dev installs the same lockstep behavior as prod.
|
|
108
|
+
|
|
109
|
+
### Workflow
|
|
110
|
+
|
|
111
|
+
**rebuild.cmd** (publishes rmfmailapp):
|
|
112
|
+
```cmd
|
|
113
|
+
cd rmfmailapp
|
|
114
|
+
npmglobalize
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
No tag flag needed (rmfmailapp's `@latest` is just "newest dev build"; rmfmail prod doesn't read from it directly).
|
|
118
|
+
|
|
119
|
+
**prod.cmd** (promote):
|
|
120
|
+
```cmd
|
|
121
|
+
@echo off
|
|
122
|
+
setlocal
|
|
123
|
+
set TARGET=%1
|
|
124
|
+
if "%TARGET%"=="" (
|
|
125
|
+
for /f "tokens=2 delims=:," %%v in ('findstr /b " \"version\":" "%~dp0rmfmailapp\package.json"') do set TARGET=%%~v
|
|
126
|
+
set TARGET=%TARGET: =%
|
|
127
|
+
set TARGET=%TARGET:"=%
|
|
128
|
+
)
|
|
129
|
+
echo Promoting rmfmail wrapper to pin rmfmailapp@%TARGET%...
|
|
130
|
+
|
|
131
|
+
rem Edit rmfmail/package.json's dependency line. 5-line node one-liner:
|
|
132
|
+
node -e "const p=require('./rmfmail/package.json'); p.dependencies['@bobfrankston/rmfmailapp']='%TARGET%'; require('fs').writeFileSync('./rmfmail/package.json', JSON.stringify(p,null,2)+'\n');"
|
|
133
|
+
|
|
134
|
+
rem Bump wrapper patch version (so npm sees a new wrapper to install).
|
|
135
|
+
cd rmfmail && npm version patch && cd ..
|
|
136
|
+
git add rmfmail/package.json
|
|
137
|
+
git commit -m "rmfmail: pin rmfmailapp@%TARGET%"
|
|
138
|
+
|
|
139
|
+
cd rmfmail
|
|
140
|
+
npm publish --access public
|
|
141
|
+
cd ..
|
|
142
|
+
echo Done. Casual users running 'npm install -g @bobfrankston/rmfmail' now get rmfmail@x.y.z → rmfmailapp@%TARGET%.
|
|
143
|
+
endlocal
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
**Casual install** (unchanged from today's user-facing command):
|
|
147
|
+
```
|
|
148
|
+
npm install -g @bobfrankston/rmfmail
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
**Dev install**:
|
|
152
|
+
```
|
|
153
|
+
npm install -g @bobfrankston/rmfmaildev
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
## Required code changes
|
|
157
|
+
|
|
158
|
+
### 1. Rename `@bobfrankston/rmfmail` → `@bobfrankston/rmfmailapp`
|
|
159
|
+
|
|
160
|
+
- `app/package.json` `"name"` field.
|
|
161
|
+
- Every `dependencies` reference in workspace `packages/*/package.json`. Today they use `file:` paths so this might already be transparent — check.
|
|
162
|
+
- `bin/postinstall.js` — any hard-coded package name strings.
|
|
163
|
+
- `npmglobalize` config — no changes if it reads from package.json.
|
|
164
|
+
|
|
165
|
+
The rename is a one-time event. After it lands, no package.json edits in normal day-to-day work.
|
|
166
|
+
|
|
167
|
+
### 2. Create `rmfmail/` and `rmfmaildev/` directories
|
|
168
|
+
|
|
169
|
+
Top-level (not under `app/`). Each gets a 5-line `package.json` and a 3-line bin shim. ~30 lines total.
|
|
170
|
+
|
|
171
|
+
### 3. CI / build wiring
|
|
172
|
+
|
|
173
|
+
Today's `rebuild.cmd` builds and publishes app. Add:
|
|
174
|
+
- `prod.cmd` — promotes by bumping rmfmail's pin.
|
|
175
|
+
- Optionally automate rmfmaildev re-pin on every app publish (postpublish hook).
|
|
176
|
+
|
|
177
|
+
### 4. npmglobalize: no changes needed
|
|
178
|
+
|
|
179
|
+
The wrapper packages publish like any other. dist-tag flag work in `prod.md` is **not required** for this approach.
|
|
180
|
+
|
|
181
|
+
## What this does NOT do
|
|
182
|
+
|
|
183
|
+
- Does not enable side-by-side coexistence on a single machine — same as dist-tag plan, that's the orthogonal `RMFMAIL_PROFILE` env-var design.
|
|
184
|
+
- Does not eliminate user upgrades — users still need to re-run `npm install -g` (or rely on mailx's in-app updater) to pick up a new prod pin.
|
|
185
|
+
- Does not split testing or CI per channel — same code, same tests; only the promotion step gates the user-facing pin.
|
|
186
|
+
|
|
187
|
+
## Comparison to `prod.md`
|
|
188
|
+
|
|
189
|
+
| | `prod.md` (dist-tag) | `prod-wrapper.md` (this) |
|
|
190
|
+
|--|--|--|
|
|
191
|
+
| Number of npm packages | 1 (rmfmail) | 3 (rmfmailapp + rmfmail + rmfmaildev) |
|
|
192
|
+
| What "promotion" is | `npm dist-tag add` (registry call) | git commit + `npm publish` of wrapper |
|
|
193
|
+
| Promotion auditable in git | no | yes |
|
|
194
|
+
| Roll-back mechanism | retag earlier version | `git revert` then republish wrapper |
|
|
195
|
+
| Required npmglobalize change | yes (`--tag` flag) | no |
|
|
196
|
+
| Casual install command | `npm install -g @bobfrankston/rmfmail` | (same) |
|
|
197
|
+
| Dev install command | `... rmfmail@dev` | `... rmfmaildev` |
|
|
198
|
+
| One-time rename of code package | no | yes (rmfmail → rmfmailapp) |
|
|
199
|
+
| Multi-channel future (beta, rc, …) | more dist-tags | more wrappers |
|
|
200
|
+
|
|
201
|
+
## Recommendation
|
|
202
|
+
|
|
203
|
+
If you want:
|
|
204
|
+
- **Minimum mechanical change**: dist-tag (`prod.md`).
|
|
205
|
+
- **Maximum traceability**: wrapper (`prod-wrapper.md`).
|
|
206
|
+
- **Both eventually**: nothing stops doing dist-tag now and migrating to wrapper later. The dist-tag is a cheap throwaway; the wrapper is a structural commitment.
|
|
207
|
+
|
|
208
|
+
## Effort estimate
|
|
209
|
+
|
|
210
|
+
- One-time rename `rmfmail` → `rmfmailapp`: ~30 minutes (search-replace + verify, plus npm deprecate of old name to point users at new install path).
|
|
211
|
+
- `rmfmail/` + `rmfmaildev/` skeletons: ~15 minutes.
|
|
212
|
+
- `prod.cmd`: ~15 minutes.
|
|
213
|
+
- Test cycle: build app, publish, run prod.cmd, install in clean dir, verify it runs. ~30 minutes.
|
|
214
|
+
|
|
215
|
+
About 1.5 hours wall-clock. Bigger one-time investment than dist-tag (~15 minutes); smaller per-promotion friction (one git commit vs `npm dist-tag add ... prod && add ... latest`).
|
package/docs/prod.md
CHANGED
|
@@ -1,105 +1,224 @@
|
|
|
1
1
|
# prod / dev release workflow
|
|
2
2
|
|
|
3
|
-
Status: design
|
|
3
|
+
Status: design. Two viable approaches; pick one. Both deliver the same shape:
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
- `rebuild.cmd` publishes builds without affecting what casual users get.
|
|
6
|
+
- A separate `prod.cmd` step promotes a known-good build to be what casual users install.
|
|
7
|
+
- Casual users keep typing `npm install -g @bobfrankston/rmfmail` (no flags).
|
|
8
|
+
- Dev users explicitly opt in.
|
|
6
9
|
|
|
7
|
-
|
|
10
|
+
## Key invariant (answers the obvious confusion)
|
|
8
11
|
|
|
9
|
-
|
|
10
|
-
- **`@prod`** (and **`@latest`**) — what casual `npm install -g @bobfrankston/rmfmail` gets. Promoted manually from the current `@dev` tip when something has proved stable.
|
|
12
|
+
`@latest` is **what casual `npm install` gets**. It only moves when prod.cmd promotes. So between promotions:
|
|
11
13
|
|
|
12
|
-
|
|
14
|
+
```
|
|
15
|
+
@latest = @prod = 1.0.609 ← last promoted, what users get
|
|
16
|
+
@dev = 1.0.620 ← every rebuild bumps this
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
Casual users keep installing 1.0.609 until you say so. Dev tip never accidentally becomes the casual install.
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## Approach A — npm dist-tags (one package)
|
|
24
|
+
|
|
25
|
+
### Mechanics
|
|
26
|
+
|
|
27
|
+
npm's built-in [dist-tag](https://docs.npmjs.com/cli/v10/commands/npm-dist-tag) feature: one package, multiple movable pointers.
|
|
13
28
|
|
|
14
|
-
|
|
29
|
+
- `npm publish --tag dev` sets `@dev` to the new version. `@latest` untouched.
|
|
30
|
+
- `npm dist-tag add @bobfrankston/rmfmail@<v> prod` moves the `prod` pointer; `npm dist-tag add ... latest` moves `latest` too. Two HTTP calls, no republish.
|
|
15
31
|
|
|
16
|
-
|
|
32
|
+
### Required changes
|
|
17
33
|
|
|
34
|
+
**1. npmglobalize** — accepts a `--dist-tag` flag and forwards to `npm publish`. ~5 lines. See `docs/npmglobalize-disttag.md` for the patch.
|
|
35
|
+
|
|
36
|
+
**2. rebuild.cmd** — invoke `npmglobalize --dist-tag dev`. One-line edit.
|
|
37
|
+
|
|
38
|
+
**3. prod.cmd** — new file. Explicit arg wins; otherwise query npm for the
|
|
39
|
+
current `@dev` and promote that. (`@dev` is the right default because you've
|
|
40
|
+
just published it via `rebuild.cmd` and want it to become user-facing.)
|
|
41
|
+
|
|
42
|
+
```cmd
|
|
43
|
+
@echo off
|
|
44
|
+
setlocal
|
|
45
|
+
set V=%1
|
|
46
|
+
if "%V%"=="" (
|
|
47
|
+
for /f "delims=" %%v in ('npm view @bobfrankston/rmfmail dist-tags.dev') do set V=%%v
|
|
48
|
+
)
|
|
49
|
+
if "%V%"=="" (
|
|
50
|
+
echo No version supplied and 'npm view ... dist-tags.dev' returned empty.
|
|
51
|
+
echo Usage: prod.cmd [version] e.g. prod.cmd 1.0.611
|
|
52
|
+
exit /b 1
|
|
53
|
+
)
|
|
54
|
+
echo Promoting @bobfrankston/rmfmail@%V% to prod and latest...
|
|
55
|
+
call npm dist-tag add @bobfrankston/rmfmail@%V% prod
|
|
56
|
+
call npm dist-tag add @bobfrankston/rmfmail@%V% latest
|
|
57
|
+
echo Done.
|
|
58
|
+
endlocal
|
|
18
59
|
```
|
|
19
|
-
# what rebuild.cmd should run (via npmglobalize):
|
|
20
|
-
npm publish <tarball> --tag dev # version exists, dev → it, latest unchanged
|
|
21
60
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
61
|
+
Roll back to an older known-good: `prod.cmd 1.0.598` — explicit arg path.
|
|
62
|
+
|
|
63
|
+
The "default = local package.json" alternative (if you never want to query
|
|
64
|
+
the registry):
|
|
65
|
+
|
|
66
|
+
```cmd
|
|
67
|
+
for /f "tokens=2 delims=:," %%v in ('findstr /b " \"version\":" "%~dp0app\package.json"') do set V=%%~v
|
|
68
|
+
set V=%V: =%
|
|
69
|
+
set V=%V:"=%
|
|
25
70
|
```
|
|
26
71
|
|
|
27
|
-
|
|
72
|
+
Use whichever default matches your workflow — the explicit-arg path works
|
|
73
|
+
either way.
|
|
28
74
|
|
|
29
|
-
|
|
75
|
+
### Workflow
|
|
30
76
|
|
|
31
|
-
|
|
77
|
+
1. Edit code, run `rebuild.cmd` — version bumps, publishes as `@dev`. `@latest`/`@prod` unaffected.
|
|
78
|
+
2. On the dev machine: `npm install -g @bobfrankston/rmfmail@dev` to grab the freshest build.
|
|
79
|
+
3. When something feels stable: run `prod.cmd`. Promotes the current `package.json` version to `@prod` and `@latest`.
|
|
80
|
+
4. On the prod machine (and any default install): `npm install -g @bobfrankston/rmfmail` (no tag) gets the newly-promoted version.
|
|
32
81
|
|
|
33
|
-
|
|
82
|
+
Roll back: `npm dist-tag add @bobfrankston/rmfmail@<earlier> prod` + `... latest`. No republish, no version bump.
|
|
83
|
+
|
|
84
|
+
### Effort
|
|
85
|
+
|
|
86
|
+
- npmglobalize change: ~5 lines, ~5 minutes.
|
|
87
|
+
- `rebuild.cmd`: one-line edit.
|
|
88
|
+
- `prod.cmd`: 15 lines, fresh file.
|
|
89
|
+
- Test cycle: ~10 minutes.
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
## Approach B — wrapper packages
|
|
94
|
+
|
|
95
|
+
### Mechanics
|
|
96
|
+
|
|
97
|
+
Split the current single package into three:
|
|
98
|
+
|
|
99
|
+
| Name | Role | Versioning |
|
|
100
|
+
|---|---|---|
|
|
101
|
+
| `@bobfrankston/rmfmailapp` | Today's actual code. | Bumps freely on every build. |
|
|
102
|
+
| `@bobfrankston/rmfmail` | Wrapper. `dependencies: { rmfmailapp: "1.0.609" }` pinned. | Bumps only on promotion. |
|
|
103
|
+
| `@bobfrankston/rmfmaildev` | Wrapper. `dependencies: { rmfmailapp: "*" }`. | Tracks rmfmailapp tip. |
|
|
104
|
+
|
|
105
|
+
Casual user: `npm install -g @bobfrankston/rmfmail` — installs the wrapper, which pulls in the pinned rmfmailapp via npm's normal dependency resolution. Wrapper's `bin` shim invokes rmfmailapp's actual entry point, so the CLI is identical.
|
|
106
|
+
|
|
107
|
+
Promotion = git commit on the wrapper bumping `dependencies.rmfmailapp` from one frozen version to another, plus `npm publish` of the wrapper.
|
|
108
|
+
|
|
109
|
+
### Layout
|
|
34
110
|
|
|
35
|
-
```
|
|
36
|
-
|
|
111
|
+
```
|
|
112
|
+
mailx/
|
|
113
|
+
rmfmailapp/ # was app/
|
|
114
|
+
package.json "name": "@bobfrankston/rmfmailapp"
|
|
115
|
+
bin/, packages/, client/ unchanged
|
|
116
|
+
rmfmail/ # NEW
|
|
117
|
+
package.json pins rmfmailapp version
|
|
118
|
+
bin/rmfmail.js shim that imports rmfmailapp's entry
|
|
119
|
+
rmfmaildev/ # NEW
|
|
120
|
+
package.json "*" range or always-repinned
|
|
121
|
+
bin/rmfmaildev.js shim
|
|
37
122
|
```
|
|
38
123
|
|
|
39
|
-
|
|
124
|
+
### `rmfmail/package.json`
|
|
125
|
+
|
|
126
|
+
```json
|
|
127
|
+
{
|
|
128
|
+
"name": "@bobfrankston/rmfmail",
|
|
129
|
+
"version": "1.0.0",
|
|
130
|
+
"type": "module",
|
|
131
|
+
"bin": { "rmfmail": "bin/rmfmail.js" },
|
|
132
|
+
"dependencies": { "@bobfrankston/rmfmailapp": "1.0.609" }
|
|
133
|
+
}
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
### `rmfmail/bin/rmfmail.js`
|
|
40
137
|
|
|
41
138
|
```js
|
|
42
|
-
|
|
43
|
-
|
|
139
|
+
#!/usr/bin/env node
|
|
140
|
+
import { createRequire } from "node:module";
|
|
141
|
+
const require = createRequire(import.meta.url);
|
|
142
|
+
await import(`file://${require.resolve("@bobfrankston/rmfmailapp/bin/mailx.js")}`);
|
|
44
143
|
```
|
|
45
144
|
|
|
46
|
-
|
|
145
|
+
### `rmfmaildev/package.json`
|
|
47
146
|
|
|
48
|
-
|
|
147
|
+
Same shape but `"@bobfrankston/rmfmailapp": "*"` so npm always resolves to the freshest published rmfmailapp.
|
|
49
148
|
|
|
50
|
-
|
|
149
|
+
### Required changes
|
|
51
150
|
|
|
52
|
-
|
|
53
|
-
npmglobalize --dist-tag dev
|
|
54
|
-
```
|
|
151
|
+
**1. Rename** `@bobfrankston/rmfmail` → `@bobfrankston/rmfmailapp` in `app/package.json` and any workspace deps that reference it. One-time.
|
|
55
152
|
|
|
56
|
-
|
|
153
|
+
**2. Create** `rmfmail/` and `rmfmaildev/` directories with the package.json + shim listed above. ~30 lines total.
|
|
57
154
|
|
|
58
|
-
|
|
155
|
+
**3. prod.cmd** — bumps the pin and publishes the wrapper:
|
|
59
156
|
|
|
60
157
|
```cmd
|
|
61
158
|
@echo off
|
|
62
159
|
setlocal
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
160
|
+
set TARGET=%1
|
|
161
|
+
if "%TARGET%"=="" (
|
|
162
|
+
for /f "tokens=2 delims=:," %%v in ('findstr /b " \"version\":" "%~dp0rmfmailapp\package.json"') do set TARGET=%%~v
|
|
163
|
+
set TARGET=%TARGET: =%
|
|
164
|
+
set TARGET=%TARGET:"=%
|
|
165
|
+
)
|
|
166
|
+
node -e "const p=require('./rmfmail/package.json'); p.dependencies['@bobfrankston/rmfmailapp']='%TARGET%'; require('fs').writeFileSync('./rmfmail/package.json', JSON.stringify(p,null,2)+'\n');"
|
|
167
|
+
cd rmfmail
|
|
168
|
+
call npm version patch
|
|
169
|
+
call npm publish --access public
|
|
170
|
+
cd ..
|
|
171
|
+
git add rmfmail/package.json
|
|
172
|
+
git commit -m "rmfmail: pin rmfmailapp@%TARGET%"
|
|
70
173
|
endlocal
|
|
71
174
|
```
|
|
72
175
|
|
|
73
|
-
|
|
176
|
+
**4. npmglobalize**: no changes required.
|
|
74
177
|
|
|
75
|
-
###
|
|
178
|
+
### Workflow
|
|
76
179
|
|
|
77
|
-
|
|
180
|
+
1. Build, run `rebuild.cmd` — publishes rmfmailapp.
|
|
181
|
+
2. Dev install: `npm install -g @bobfrankston/rmfmaildev`. Pulls latest rmfmailapp through the `*` range.
|
|
182
|
+
3. Promotion: `prod.cmd 1.0.611`. Edits rmfmail's pin, bumps wrapper patch version, publishes wrapper, commits.
|
|
183
|
+
4. Casual install: `npm install -g @bobfrankston/rmfmail` resolves the new wrapper, npm fetches the pinned rmfmailapp, both land under the wrapper.
|
|
78
184
|
|
|
79
|
-
|
|
80
|
-
- Dev: `npm install -g @bobfrankston/rmfmail@dev` (current dev tip).
|
|
81
|
-
- Pin to a specific version: `npm install -g @bobfrankston/rmfmail@1.0.NNN`.
|
|
185
|
+
Roll back: edit rmfmail/package.json to a prior pin, `git revert`, republish wrapper.
|
|
82
186
|
|
|
83
|
-
|
|
187
|
+
### Effort
|
|
84
188
|
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
189
|
+
- One-time rename: ~30 minutes.
|
|
190
|
+
- Wrapper skeletons: ~15 minutes.
|
|
191
|
+
- prod.cmd: ~15 minutes.
|
|
192
|
+
- Test: ~30 minutes.
|
|
193
|
+
- Total: ~1.5 hours up-front, then near-zero per promotion.
|
|
89
194
|
|
|
90
|
-
|
|
195
|
+
---
|
|
91
196
|
|
|
92
|
-
##
|
|
197
|
+
## Comparison
|
|
93
198
|
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
199
|
+
| | A: dist-tags | B: wrappers |
|
|
200
|
+
|--|--|--|
|
|
201
|
+
| Number of npm packages | 1 | 3 (app + 2 wrappers) |
|
|
202
|
+
| What "promotion" is | `npm dist-tag add` (HTTP call) | git commit + `npm publish` of wrapper |
|
|
203
|
+
| Promotion in git history | no (registry-only) | yes |
|
|
204
|
+
| Roll-back | retag prior version | `git revert` then republish wrapper |
|
|
205
|
+
| npmglobalize change needed | yes (`--tag` flag, ~5 lines) | no |
|
|
206
|
+
| Casual install command | `npm install -g @bobfrankston/rmfmail` | (same) |
|
|
207
|
+
| Dev install command | `... rmfmail@dev` | `... rmfmaildev` |
|
|
208
|
+
| One-time setup work | ~15 minutes | ~1.5 hours |
|
|
209
|
+
| Per-promotion work | seconds (registry call) | minutes (commit + publish) |
|
|
210
|
+
| Multi-channel future (beta, rc) | more dist-tags | more wrappers |
|
|
97
211
|
|
|
98
|
-
##
|
|
212
|
+
## Recommendation
|
|
99
213
|
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
214
|
+
If you want it working today with minimum disturbance: **A (dist-tags)**.
|
|
215
|
+
|
|
216
|
+
If auditability of "what version was prod when" matters and you're willing to spend the one-time rename: **B (wrappers)**.
|
|
217
|
+
|
|
218
|
+
A → B migration later is straightforward (the rename and wrapper creation is the same work whenever you do it; dist-tags become a non-issue once wrappers exist).
|
|
219
|
+
|
|
220
|
+
## What neither approach does
|
|
104
221
|
|
|
105
|
-
|
|
222
|
+
- Does not enable side-by-side coexistence on a single machine — that's the orthogonal `RMFMAIL_PROFILE` env-var design (separate config dir, AUMID, mailto handler, etc.).
|
|
223
|
+
- Does not change the in-app updater. mailx's existing version-check flow keeps working with either.
|
|
224
|
+
- Does not affect Android. APKs aren't on npm — `prod-android.md` is the parallel document with the equivalent channel-manifest design.
|
package/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"android-bootstrap.d.ts","sourceRoot":"","sources":["android-bootstrap.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;
|
|
1
|
+
{"version":3,"file":"android-bootstrap.d.ts","sourceRoot":"","sources":["android-bootstrap.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AA6kCH,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CA+KjD;AAED,wBAAsB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAIhD"}
|
|
@@ -178,6 +178,14 @@ class AndroidSyncManager {
|
|
|
178
178
|
let totalFetched = 0;
|
|
179
179
|
let errors = 0;
|
|
180
180
|
let announced = false;
|
|
181
|
+
// Per-session blacklist: messages whose fetch errored once.
|
|
182
|
+
// `getMessagesWithoutBody` returns the same set every batch
|
|
183
|
+
// (no per-row failed-marker in DB yet), so without this set
|
|
184
|
+
// a single failing message would burn the entire ERROR_BUDGET
|
|
185
|
+
// by being retried first in every batch. Skipping locally
|
|
186
|
+
// unblocks subsequent messages; next syncAll cycle starts
|
|
187
|
+
// a new prefetch session and the blacklist resets.
|
|
188
|
+
const failedThisSession = new Set();
|
|
181
189
|
// S62: INBOX always first. Within each folder the DB returns rows
|
|
182
190
|
// most-recent-first (PRIMARY KEY order), so newest unfetched INBOX
|
|
183
191
|
// mail wins the queue. A slow label (`[Gmail]/Jerrry`, etc.) can't
|
|
@@ -188,9 +196,14 @@ class AndroidSyncManager {
|
|
|
188
196
|
};
|
|
189
197
|
let rateLimitCooldownUntil = 0;
|
|
190
198
|
while (true) {
|
|
191
|
-
const
|
|
199
|
+
const allMissing = this.db.getMessagesWithoutBody(accountId, BATCH_SIZE * 4);
|
|
200
|
+
const missing = allMissing.filter((m) => !failedThisSession.has(m.uid));
|
|
192
201
|
if (missing.length === 0)
|
|
193
202
|
break;
|
|
203
|
+
// Cap to BATCH_SIZE after filtering so a deep blacklist
|
|
204
|
+
// doesn't leave us with a tiny working set per pass.
|
|
205
|
+
if (missing.length > BATCH_SIZE)
|
|
206
|
+
missing.length = BATCH_SIZE;
|
|
194
207
|
if (!announced) {
|
|
195
208
|
console.log(`[prefetch] ${accountId}: ${missing.length}+ bodies to fetch`);
|
|
196
209
|
vlog(`prefetch ${accountId} start: ${missing.length}+ pending`);
|
|
@@ -235,10 +248,12 @@ class AndroidSyncManager {
|
|
|
235
248
|
}
|
|
236
249
|
else {
|
|
237
250
|
errors++;
|
|
251
|
+
failedThisSession.add(m.uid);
|
|
238
252
|
}
|
|
239
253
|
}
|
|
240
254
|
catch (e) {
|
|
241
255
|
errors++;
|
|
256
|
+
failedThisSession.add(m.uid);
|
|
242
257
|
const msg = String(e?.message || "");
|
|
243
258
|
if (/429|rate|too many/i.test(msg)) {
|
|
244
259
|
console.log(`[prefetch] ${accountId}: rate-limited — pausing ${RATE_LIMIT_PAUSE_MS / 1000}s`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"android-bootstrap.js","sourceRoot":"","sources":["android-bootstrap.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"android-bootstrap.js","sourceRoot":"","sources":["android-bootstrap.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAuB,MAAM,kBAAkB,CAAC;AACxE,OAAO,EACH,YAAY,EAAE,qBAAqB,EAAE,YAAY,EAAgB,aAAa,EAAE,WAAW,EAC3F,sBAAsB,EAAE,iBAAiB,EAC5C,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAiB,MAAM,2BAA2B,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAIjE,cAAc;AAEd,IAAI,EAAc,CAAC;AACnB,IAAI,SAA0B,CAAC;AAC/B,IAAI,OAAwB,CAAC;AAC7B,IAAI,WAA+B,CAAC;AACpC,MAAM,aAAa,GAA6B,EAAE,CAAC;AAEnD,sBAAsB;AAEtB,SAAS,SAAS,CAAC,KAAU;IACzB,KAAK,MAAM,CAAC,IAAI,aAAa,EAAE,CAAC;QAC5B,IAAI,CAAC;YAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;IAC5C,CAAC;IACD,IAAI,OAAQ,MAAc,CAAC,mBAAmB,KAAK,UAAU,EAAE,CAAC;QAC3D,MAAc,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAC/C,CAAC;AACL,CAAC;AAED,gBAAgB;AAEhB,SAAS,cAAc,CAAC,IAAqD;IACzE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,IAAI,EAAE,EAAE,CAAC;AACpE,CAAC;AAED,+EAA+E;AAC/E,SAAS,IAAI,CAAC,GAAW;IACrB,IAAI,CAAC;QACD,KAAK,CAAC,8BAA8B,kBAAkB,CAAC,IAAI,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,gCAAgC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IAC1I,CAAC;IAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;AAC5B,CAAC;AAED,qBAAqB;AAErB,MAAM,kBAAkB;IASR;IACA;IATJ,SAAS,GAAG,IAAI,GAAG,EAAwB,CAAC;IAC5C,cAAc,GAAG,IAAI,GAAG,EAAiC,CAAC;IAClE,sEAAsE;IACtE,wEAAwE;IACxE,0BAA0B;IAClB,mBAAmB,GAAG,IAAI,GAAG,EAAU,CAAC;IAEhD,YACY,EAAc,EACd,SAA0B;QAD1B,OAAE,GAAF,EAAE,CAAY;QACd,cAAS,GAAT,SAAS,CAAiB;IACnC,CAAC;IAEJ,EAAE,CAAC,MAAc,EAAE,QAAkC,IAAqB,CAAC;IAC3E,IAAI,CAAC,KAAa,EAAE,GAAG,IAAW,IAAU,SAAS,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAErF,KAAK,CAAC,UAAU,CAAC,OAAsB;QACnC,IAAI,CAAC,iBAAiB,OAAO,CAAC,EAAE,UAAU,OAAO,CAAC,KAAK,SAAS,OAAO,CAAC,IAAI,EAAE,IAAI,SAAS,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QACjH,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;QACxF,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;YAC/B,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAC1D,IAAI,aAAa,EAAE,CAAC;gBAChB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,IAAI,mBAAmB,CAAC,aAAa,CAAC,CAAC,CAAC;gBACvE,OAAO,CAAC,GAAG,CAAC,UAAU,OAAO,CAAC,EAAE,iCAAiC,CAAC,CAAC;YACvE,CAAC;iBAAM,CAAC;gBACJ,OAAO,CAAC,IAAI,CAAC,UAAU,OAAO,CAAC,EAAE,qBAAqB,CAAC,CAAC;YAC5D,CAAC;QACL,CAAC;aAAM,IAAI,OAAO,CAAC,IAAI,EAAE,IAAI,IAAI,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC;YAClD,uEAAuE;YACvE,IAAI,CAAC;gBACD,MAAM,QAAQ,GAAG,IAAI,eAAe,CAAC;oBACjC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI;oBACzB,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG;oBAC9B,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI;oBAC3B,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,QAAQ;oBAC/B,iBAAiB,EAAE,MAAM,EAAI,wBAAwB;oBACrD,cAAc,EAAE,EAAE;oBAClB,iBAAiB,EAAE,GAAG;iBACzB,EAAE,GAAG,EAAE,CAAC,IAAI,kBAAkB,EAAE,CAAC,CAAC;gBACnC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;gBACzC,IAAI,CAAC,cAAc,OAAO,CAAC,EAAE,+BAA+B,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;gBACvG,OAAO,CAAC,GAAG,CAAC,UAAU,OAAO,CAAC,EAAE,+BAA+B,OAAO,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;YACzF,CAAC;YAAC,OAAO,CAAM,EAAE,CAAC;gBACd,IAAI,CAAC,cAAc,OAAO,CAAC,EAAE,2BAA2B,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;gBACrE,OAAO,CAAC,KAAK,CAAC,UAAU,OAAO,CAAC,EAAE,2BAA2B,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;YAC9E,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,cAAc,OAAO,CAAC,EAAE,4BAA4B,CAAC,CAAC;QAC/D,CAAC;IACL,CAAC;IAED,gBAAgB,CAAC,SAAiB,EAAE,QAA+B;QAC/D,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IACjD,CAAC;IAEO,cAAc,CAAC,OAAsB;QACzC,OAAO,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,YAAY,CAAC,IAAI,KAAK,CAAC;IACnG,CAAC;IAEO,WAAW,CAAC,SAAiB;QACjC,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC;IACjD,CAAC;IAED,KAAK,CAAC,OAAO;QACT,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC;QACvC,IAAI,CAAC,YAAY,QAAQ,CAAC,MAAM,oBAAoB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAEzF,yEAAyE;QACzE,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC7B,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;gBAAE,SAAS;YAC9C,IAAI,CAAC;gBACD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBACnD,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,OAAO,CAAC,CAAC;gBAC1D,IAAI,KAAK,EAAE,CAAC;oBACR,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;oBAC5C,SAAS,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC/D,CAAC;YACL,CAAC;YAAC,OAAO,CAAM,EAAE,CAAC;gBACd,OAAO,CAAC,KAAK,CAAC,UAAU,OAAO,CAAC,EAAE,WAAW,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;YAC9D,CAAC;QACL,CAAC;QAED,0EAA0E;QAC1E,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC7B,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;gBAAE,SAAS;YAC9C,IAAI,CAAC;gBACD,MAAM,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBAC/C,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,OAAO,CAAC,CAAC;gBAChE,KAAK,MAAM,MAAM,IAAI,SAAS,EAAE,CAAC;oBAC7B,IAAI,CAAC;wBAAC,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;oBAAC,CAAC;oBACrD,OAAO,CAAM,EAAE,CAAC;wBAAC,OAAO,CAAC,KAAK,CAAC,eAAe,MAAM,CAAC,IAAI,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;oBAAC,CAAC;gBACjF,CAAC;gBACD,IAAI,CAAC,EAAE,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;gBAC/C,SAAS,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;YAC/D,CAAC;YAAC,OAAO,CAAM,EAAE,CAAC;gBACd,OAAO,CAAC,KAAK,CAAC,UAAU,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;gBACpD,IAAI,CAAC,YAAY,OAAO,CAAC,EAAE,WAAW,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;gBACnD,SAAS,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;YAC9E,CAAC;QACL,CAAC;QAED,sEAAsE;QACtE,wEAAwE;QACxE,yCAAyC;QACzC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC7B,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;gBAAE,SAAS;YAC9C,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CACtC,OAAO,CAAC,KAAK,CAAC,cAAc,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACjE,CAAC;IACL,CAAC;IAED;iFAC6E;IAC7E,KAAK,CAAC,cAAc,CAAC,SAAiB;QAClC,IAAI,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,SAAS,CAAC;YAAE,OAAO;QACpD,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACxC,IAAI,CAAC;YACD,MAAM,UAAU,GAAG,EAAE,CAAC;YACtB,MAAM,WAAW,GAAG,GAAG,CAAC;YACxB,MAAM,mBAAmB,GAAG,KAAK,CAAC;YAClC,MAAM,YAAY,GAAG,EAAE,CAAC;YACxB,MAAM,WAAW,GAAG,CAAC,CAAC,CAAO,+BAA+B;YAC5D,IAAI,YAAY,GAAG,CAAC,CAAC;YACrB,IAAI,MAAM,GAAG,CAAC,CAAC;YACf,IAAI,SAAS,GAAG,KAAK,CAAC;YACtB,4DAA4D;YAC5D,4DAA4D;YAC5D,4DAA4D;YAC5D,8DAA8D;YAC9D,0DAA0D;YAC1D,0DAA0D;YAC1D,mDAAmD;YACnD,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAU,CAAC;YAC5C,kEAAkE;YAClE,mEAAmE;YACnE,mEAAmE;YACnE,yBAAyB;YACzB,MAAM,cAAc,GAAG,CAAC,QAAgB,EAAU,EAAE;gBAChD,MAAM,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC;gBAC5E,OAAO,CAAC,EAAE,UAAU,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC7C,CAAC,CAAC;YACF,IAAI,sBAAsB,GAAG,CAAC,CAAC;YAE/B,OAAO,IAAI,EAAE,CAAC;gBACV,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,sBAAsB,CAAC,SAAS,EAAE,UAAU,GAAG,CAAC,CAAC,CAAC;gBAC7E,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC7E,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;oBAAE,MAAM;gBAChC,wDAAwD;gBACxD,qDAAqD;gBACrD,IAAI,OAAO,CAAC,MAAM,GAAG,UAAU;oBAAE,OAAO,CAAC,MAAM,GAAG,UAAU,CAAC;gBAC7D,IAAI,CAAC,SAAS,EAAE,CAAC;oBACb,OAAO,CAAC,GAAG,CAAC,cAAc,SAAS,KAAK,OAAO,CAAC,MAAM,mBAAmB,CAAC,CAAC;oBAC3E,IAAI,CAAC,YAAY,SAAS,WAAW,OAAO,CAAC,MAAM,WAAW,CAAC,CAAC;oBAChE,SAAS,GAAG,IAAI,CAAC;gBACrB,CAAC;gBACD,8DAA8D;gBAC9D,+DAA+D;gBAC/D,4CAA4C;gBAC5C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,CAAM,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAC1F,IAAI,mBAAmB,GAAG,KAAK,CAAC;gBAChC,IAAI,YAAY,GAAG,KAAK,CAAC;gBAEzB,8DAA8D;gBAC9D,uDAAuD;gBACvD,2DAA2D;gBAC3D,4DAA4D;gBAC5D,+BAA+B;gBAC/B,IAAI,MAAM,GAAG,CAAC,CAAC;gBACf,MAAM,MAAM,GAAG,KAAK,IAAmB,EAAE;oBACrC,OAAO,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;wBAC7B,IAAI,YAAY;4BAAE,OAAO;wBACzB,IAAI,MAAM,IAAI,YAAY;4BAAE,OAAO;wBACnC,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC;wBACrB,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;wBACvB,4CAA4C;wBAC5C,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;wBACvB,IAAI,sBAAsB,GAAG,GAAG,EAAE,CAAC;4BAC/B,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,sBAAsB,GAAG,GAAG,CAAC,CAAC,CAAC;wBACxE,CAAC;wBACD,IAAI,MAAM,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;4BAChE,IAAI,CAAC,EAAE,CAAC,cAAc,CAAC,SAAS,EAAE,CAAC,CAAC,GAAG,EAAE,OAAO,SAAS,IAAI,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;4BACpF,mBAAmB,GAAG,IAAI,CAAC;4BAC3B,SAAS;wBACb,CAAC;wBACD,IAAI,CAAC;4BACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;4BACzE,IAAI,MAAM,EAAE,CAAC;gCACT,YAAY,EAAE,CAAC;gCACf,mBAAmB,GAAG,IAAI,CAAC;gCAC3B,SAAS,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;4BACnF,CAAC;iCAAM,CAAC;gCACJ,MAAM,EAAE,CAAC;gCACT,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;4BACjC,CAAC;wBACL,CAAC;wBAAC,OAAO,CAAM,EAAE,CAAC;4BACd,MAAM,EAAE,CAAC;4BACT,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;4BAC7B,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC;4BACrC,IAAI,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;gCACjC,OAAO,CAAC,GAAG,CAAC,cAAc,SAAS,4BAA4B,mBAAmB,GAAG,IAAI,GAAG,CAAC,CAAC;gCAC9F,sBAAsB,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,mBAAmB,CAAC;4BAC9D,CAAC;iCAAM,CAAC;gCACJ,OAAO,CAAC,KAAK,CAAC,cAAc,SAAS,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,EAAE,CAAC,CAAC;4BAC9D,CAAC;wBACL,CAAC;wBACD,oDAAoD;wBACpD,wDAAwD;wBACxD,gCAAgC;wBAChC,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC;oBACvD,CAAC;gBACL,CAAC,CAAC;gBACF,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;gBACjG,IAAI,MAAM,IAAI,YAAY,EAAE,CAAC;oBACzB,OAAO,CAAC,KAAK,CAAC,cAAc,SAAS,oBAAoB,MAAM,YAAY,YAAY,UAAU,CAAC,CAAC;oBACnG,IAAI,CAAC,YAAY,SAAS,aAAa,MAAM,YAAY,YAAY,SAAS,CAAC,CAAC;oBAChF,OAAO;gBACX,CAAC;gBACD,IAAI,CAAC,mBAAmB,EAAE,CAAC;oBACvB,OAAO,CAAC,IAAI,CAAC,cAAc,SAAS,oCAAoC,CAAC,CAAC;oBAC1E,MAAM;gBACV,CAAC;YACL,CAAC;YACD,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;gBACnB,OAAO,CAAC,GAAG,CAAC,cAAc,SAAS,mBAAmB,YAAY,SAAS,CAAC,CAAC;gBAC7E,IAAI,CAAC,YAAY,SAAS,UAAU,YAAY,SAAS,CAAC,CAAC;YAC/D,CAAC;QACL,CAAC;gBAAS,CAAC;YACP,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC/C,CAAC;IACL,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,SAAiB;QAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QAC7C,IAAI,CAAC,QAAQ,EAAE,CAAC;YACZ,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;YAC/C,IAAI,CAAC,gBAAgB,SAAS,2BAA2B,QAAQ,CAAC,MAAM,iBAAiB,CAAC,CAAC;YAC3F,OAAO,QAAQ,CAAC;QACpB,CAAC;QACD,SAAS,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC;QAC9E,MAAM,eAAe,GAAG,MAAM,QAAQ,CAAC,WAAW,EAAE,CAAC;QACrD,KAAK,MAAM,MAAM,IAAI,eAAe,EAAE,CAAC;YACnC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;YACjC,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,YAAY,CAAC;gBAAE,SAAS;YAChE,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;QACnG,CAAC;QACD,SAAS,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC;QAChF,MAAM,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QAChD,SAAS,CAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;QAClE,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,SAAiB,EAAE,QAAgB;QAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QAC7C,IAAI,CAAC,QAAQ;YAAE,OAAO;QACtB,MAAM,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QAC9C,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC;QACpD,IAAI,CAAC,MAAM;YAAE,OAAO;QAEpB,SAAS,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,MAAM,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC;QAC1F,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAC9D,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,QAAQ,CAAC,CAAC;QAEvD,IAAI,QAA2B,CAAC;QAChC,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;YACjB,QAAQ,GAAG,MAAM,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;YACjF,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,UAAU,CAAC,CAAC;QACxD,CAAC;aAAM,CAAC;YACJ,MAAM,QAAQ,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC,CAAC;YACjD,QAAQ,GAAG,MAAM,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;QAC/F,CAAC;QAED,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,OAAO,CAAC,GAAG,CAAC,UAAU,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,MAAM,WAAW,CAAC,CAAC;YAClE,IAAI,CAAC,qBAAqB,CAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;YAC1D,IAAI,CAAC,EAAE,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;YACrC,SAAS,CAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;QACtE,CAAC;QAED,sEAAsE;QACtE,oEAAoE;QACpE,qEAAqE;QACrE,oEAAoE;QACpE,0BAA0B;QAC1B,EAAE;QACF,oDAAoD;QACpD,sEAAsE;QACtE,iDAAiD;QACjD,sEAAsE;QACtE,uEAAuE;QACvE,iCAAiC;QACjC,IAAI,CAAC;YACD,MAAM,aAAa,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAC1D,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,aAAa,CAAC,CAAC;YAC1C,MAAM,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;YAChE,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACrD,OAAO,CAAC,GAAG,CAAC,UAAU,MAAM,CAAC,IAAI,6DAA6D,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;YACtH,CAAC;iBAAM,CAAC;gBACJ,MAAM,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC/D,MAAM,0BAA0B,GAAG,GAAG,CAAC;gBACvC,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,GAAG,0BAA0B,EAAE,CAAC;oBAC1F,OAAO,CAAC,GAAG,CAAC,UAAU,MAAM,CAAC,IAAI,sCAAsC,QAAQ,CAAC,MAAM,IAAI,SAAS,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC;gBAC7K,CAAC;qBAAM,CAAC;oBACJ,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;wBACzB,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;wBACtC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,SAAS,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;oBAC3E,CAAC;oBACD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACtB,OAAO,CAAC,GAAG,CAAC,UAAU,MAAM,CAAC,IAAI,gBAAgB,QAAQ,CAAC,MAAM,YAAY,CAAC,CAAC;wBAC9E,IAAI,CAAC,EAAE,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;wBACrC,SAAS,CAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;oBACtE,CAAC;gBACL,CAAC;YACL,CAAC;QACL,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YACd,OAAO,CAAC,KAAK,CAAC,UAAU,MAAM,CAAC,IAAI,sBAAsB,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;QAC1E,CAAC;QAED,SAAS,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;QAC9F,SAAS,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,MAAM,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC;IAChG,CAAC;IAEO,qBAAqB,CAAC,SAAiB,EAAE,QAAgB,EAAE,QAA2B;QAC1F,IAAI,CAAC,EAAE,CAAC,gBAAgB,EAAE,CAAC;QAC3B,IAAI,CAAC;YACD,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;gBACzB,MAAM,KAAK,GAAa,EAAE,CAAC;gBAC3B,IAAI,GAAG,CAAC,IAAI;oBAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACnC,IAAI,GAAG,CAAC,OAAO;oBAAE,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBACzC,IAAI,GAAG,CAAC,QAAQ;oBAAE,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBAC3C,IAAI,GAAG,CAAC,KAAK;oBAAE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBACrC,mEAAmE;gBACnE,2EAA2E;gBAC3E,MAAM,QAAQ,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACjE,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC;oBAClB,SAAS,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG;oBACjC,SAAS,EAAE,GAAG,CAAC,SAAS,IAAI,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE;oBAC7D,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;oBAChD,OAAO,EAAE,GAAG,CAAC,OAAO,IAAI,EAAE;oBAC1B,IAAI,EAAE,cAAc,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;oBACnC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;oBACtC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;oBACtC,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,EAAE,cAAc,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ;iBAC3E,CAAC,CAAC;YACP,CAAC;YACD,IAAI,CAAC,EAAE,CAAC,iBAAiB,EAAE,CAAC;QAChC,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YACd,IAAI,CAAC,EAAE,CAAC,mBAAmB,EAAE,CAAC;YAC9B,OAAO,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;QAC9D,CAAC;IACL,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,SAAiB,EAAE,QAAgB,EAAE,GAAW;QACnE,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACtB,IAAI,MAAM,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,SAAS,EAAE,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC;YAC5D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,SAAS,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;YACzE,OAAO,CAAC,GAAG,CAAC,yBAAyB,SAAS,IAAI,QAAQ,IAAI,GAAG,KAAK,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;YAC5F,OAAO,MAAM,CAAC;QAClB,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,0BAA0B,SAAS,IAAI,QAAQ,IAAI,GAAG,aAAa,CAAC,CAAC;QACjF,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QAC7C,IAAI,CAAC,QAAQ,EAAE,CAAC;YACZ,OAAO,CAAC,IAAI,CAAC,+BAA+B,SAAS,EAAE,CAAC,CAAC;YACzD,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,+DAA+D;QAC/D,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;QACnE,MAAM,EAAE,GAAI,QAAgB,EAAE,QAAQ,IAAI,EAAE,CAAC;QAC7C,oEAAoE;QACpE,wEAAwE;QACxE,oEAAoE;QACpE,MAAM,gBAAgB,GAAG,MAAM,CAAC;QAChC,MAAM,YAAY,GAAG,CAAC,KAAK,IAAkB,EAAE;YAC3C,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAK,QAAgB,CAAC,SAAS,EAAE,CAAC;gBACzD,MAAM,UAAU,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;gBACnC,OAAQ,QAAgB,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;YACrE,CAAC;YACD,MAAM,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;YAC9C,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC;YACpD,IAAI,CAAC,MAAM;gBAAE,OAAO,IAAI,CAAC;YACzB,OAAO,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QACjE,CAAC,CAAC,EAAE,CAAC;QACL,IAAI,GAAG,GAAQ,IAAI,CAAC;QACpB,IAAI,CAAC;YACD,GAAG,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC;gBACrB,YAAY;gBACZ,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,UAAU,CACjC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,sBAAsB,gBAAgB,GAAG,IAAI,MAAM,SAAS,IAAI,QAAQ,IAAI,GAAG,GAAG,CAAC,CAAC,EAC3G,gBAAgB,CACnB,CAAC;aACL,CAAC,CAAC;QACP,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YACd,OAAO,CAAC,KAAK,CAAC,sBAAsB,SAAS,IAAI,QAAQ,IAAI,GAAG,UAAU,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,OAAO,IAAI,CAAC,EAAE,CAAC,CAAC;YACnH,MAAM,CAAC,CAAC;QACZ,CAAC;QACD,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,sCAAsC,SAAS,IAAI,QAAQ,IAAI,GAAG,QAAQ,EAAE,KAAK,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;YACpH,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,oDAAoD;QACpD,MAAM,GAAG,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACjD,MAAM,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,SAAS,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAC/D,IAAI,CAAC,EAAE,CAAC,cAAc,CAAC,SAAS,EAAE,GAAG,EAAE,OAAO,SAAS,IAAI,QAAQ,IAAI,GAAG,EAAE,CAAC,CAAC;QAC9E,OAAO,CAAC,GAAG,CAAC,gCAAgC,SAAS,IAAI,QAAQ,IAAI,GAAG,KAAK,GAAG,CAAC,UAAU,WAAW,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;QAC5H,OAAO,GAAG,CAAC;IACf,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,SAAiB,EAAE,GAAW,EAAE,QAAgB,EAAE,KAAe;QACpF,IAAI,CAAC,EAAE,CAAC,kBAAkB,CAAC,SAAS,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;QAClD,IAAI,CAAC,EAAE,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;QACrC,IAAI,CAAC,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QACtE,SAAS,CAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;IACtE,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,SAAiB,EAAE,QAAgB,EAAE,GAAW;QAC/D,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;QACtC,IAAI,CAAC,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;QAC3D,SAAS,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC;QAChE,SAAS,CAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;IACtE,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,SAAiB,EAAE,QAA6C;QAChF,KAAK,MAAM,CAAC,IAAI,QAAQ;YAAE,MAAM,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;IACpF,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,SAAiB,EAAE,GAAW,EAAE,QAAgB,EAAE,cAAsB;QACtF,IAAI,CAAC,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE,cAAc,EAAE,CAAC,CAAC;QAC9E,SAAS,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,cAAc,EAAE,GAAG,EAAE,CAAC,CAAC;IAC5G,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,SAAiB,EAAE,QAA6C,EAAE,cAAsB;QACvG,KAAK,MAAM,CAAC,IAAI,QAAQ;YAAE,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;IACnG,CAAC;IAED,KAAK,CAAC,uBAAuB;QACzB,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAClE,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,SAAiB,EAAE,GAAW,EAAE,QAAgB;QAClE,IAAI,CAAC,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,UAAU,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;IAClE,CAAC;IAED;;;8EAG0E;IAC1E,KAAK,CAAC,kBAAkB,CAAC,SAAiB;QACtC,MAAM,QAAQ,GAAQ,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACpD,IAAI,CAAC,QAAQ;YAAE,OAAO;QACtB,MAAM,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,qBAAqB,CAAC,SAAS,CAAC;aACnD,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;QAC7C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QACjC,MAAM,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QAC9C,MAAM,UAAU,GAAG,CAAC,EAAU,EAAiB,EAAE;YAC7C,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;YAChD,OAAO,CAAC,EAAE,IAAI,IAAI,IAAI,CAAC;QAC3B,CAAC,CAAC;QACF,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACtB,MAAM,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YACpC,IAAI,CAAC,IAAI,EAAE,CAAC;gBAAC,IAAI,CAAC,EAAE,CAAC,mBAAmB,CAAC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;gBAAC,SAAS;YAAC,CAAC;YACjH,IAAI,CAAC;gBACD,IAAI,CAAC,CAAC,MAAM,KAAK,OAAO,IAAI,OAAO,QAAQ,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC;oBAClE,MAAM,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBACxG,CAAC;qBAAM,IAAI,CAAC,CAAC,MAAM,KAAK,OAAO,IAAI,OAAO,QAAQ,CAAC,YAAY,KAAK,UAAU,EAAE,CAAC;oBAC7E,MAAM,QAAQ,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;gBAC7C,CAAC;qBAAM,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,IAAI,OAAO,QAAQ,CAAC,WAAW,KAAK,UAAU,EAAE,CAAC;oBAC3E,MAAM,IAAI,GAAG,CAAC,CAAC,cAAwB,CAAC;oBACxC,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;oBAChC,IAAI,CAAC,MAAM,EAAE,CAAC;wBAAC,IAAI,CAAC,EAAE,CAAC,mBAAmB,CAAC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,EAAE,yBAAyB,IAAI,EAAE,CAAC,CAAC;wBAAC,SAAS;oBAAC,CAAC;oBACpH,MAAM,QAAQ,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;gBACpD,CAAC;qBAAM,CAAC;oBACJ,IAAI,CAAC,EAAE,CAAC,mBAAmB,CAAC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,EAAE,6BAA6B,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;oBACjG,SAAS;gBACb,CAAC;gBACD,IAAI,CAAC,EAAE,CAAC,uBAAuB,CAAC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAChE,CAAC;YAAC,OAAO,CAAM,EAAE,CAAC;gBACd,MAAM,GAAG,GAAG,CAAC,EAAE,OAAO,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC;gBACpC,OAAO,CAAC,KAAK,CAAC,iBAAiB,SAAS,IAAI,CAAC,CAAC,MAAM,QAAQ,CAAC,CAAC,GAAG,KAAK,GAAG,EAAE,CAAC,CAAC;gBAC7E,IAAI,CAAC,EAAE,CAAC,mBAAmB,CAAC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YACjE,CAAC;QACL,CAAC;IACL,CAAC;IAED;;;;2EAIuE;IAC/D,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;IAEzC,KAAK,CAAC,kBAAkB,CAAC,SAAiB,EAAE,UAAkB;QAC1D,qEAAqE;QACrE,qEAAqE;QACrE,sEAAsE;QACtE,mEAAmE;QACnE,sEAAsE;QACtE,yEAAyE;QACzE,mEAAmE;QACnE,iDAAiD;QACjD,EAAE;QACF,mEAAmE;QACnE,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,IAAI,CAAC,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;QACzE,MAAM,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;IACtD,CAAC;IAED;;;uDAGmD;IAC3C,WAAW,CAAC,SAAiB,EAAE,QAAgB,EAAE,UAAkB;QACvE,IAAI,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC;YAAE,OAAO;QAC5C,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAChC,oEAAoE;QACpE,kEAAkE;QAClE,mEAAmE;QACnE,kEAAkE;QAClE,iEAAiE;QACjE,gEAAgE;QAChE,gDAAgD;QAChD,MAAM,UAAU,GAAG,CAAC,OAAgB,EAAE,KAAc,EAAE,EAAE;YACpD,IAAI,OAAO,EAAE,CAAC;gBACV,IAAI,CAAC,EAAE,CAAC,uBAAuB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;YACjE,CAAC;iBAAM,CAAC;gBACJ,IAAI,CAAC,EAAE,CAAC,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,IAAI,aAAa,CAAC,CAAC;YACrF,CAAC;YACD,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAA0C,CAAC,CAAC,CAAC;YACxE,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACvC,CAAC,CAAC;QAEF,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QAC7C,IAAI,QAAQ,IAAI,OAAQ,QAAgB,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;YAC7D,QAAgB,CAAC,OAAO,CAAC,UAAU,CAAC;iBAChC,IAAI,CAAC,CAAC,MAAwC,EAAE,EAAE;gBAC/C,OAAO,CAAC,GAAG,CAAC,UAAU,SAAS,4BAA4B,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC;gBACzE,UAAU,CAAC,IAAI,CAAC,CAAC;gBACjB,SAAS,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;YACzE,CAAC,CAAC;iBACD,KAAK,CAAC,CAAC,CAAM,EAAE,EAAE;gBACd,OAAO,CAAC,KAAK,CAAC,UAAU,SAAS,wBAAwB,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;gBACtE,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,OAAO,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC1C,SAAS,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;YAClE,CAAC,CAAC,CAAC;YACP,OAAO;QACX,CAAC;QAED,0EAA0E;QAC1E,uBAAuB;QACvB,MAAM,QAAQ,GAAG,EAAE,CAAC,iBAAiB,EAAE,CAAC;QACxC,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC;QACnD,IAAI,CAAC,GAAG,EAAE,CAAC;YACP,MAAM,CAAC,GAAG,iBAAiB,CAAC;YAC5B,OAAO,CAAC,KAAK,CAAC,UAAU,SAAS,KAAK,CAAC,EAAE,CAAC,CAAC;YAC3C,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YACrB,SAAS,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;YACtD,OAAO;QACX,CAAC;QACD,IAAI,OAAsB,CAAC;QAC3B,IAAI,CAAC;YAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAAC,CAAC;QAC7C,MAAM,CAAC;YACH,MAAM,CAAC,GAAG,0BAA0B,CAAC;YACrC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YACrB,SAAS,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;YACtD,OAAO;QACX,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAChB,MAAM,CAAC,GAAG,iCAAiC,CAAC;YAC5C,OAAO,CAAC,KAAK,CAAC,UAAU,SAAS,KAAK,CAAC,EAAE,CAAC,CAAC;YAC3C,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YACrB,SAAS,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;YACtD,OAAO;QACX,CAAC;QAED,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,OAAO,EAAE,UAAU,CAAC;aACjD,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;YACb,OAAO,CAAC,GAAG,CAAC,UAAU,SAAS,oBAAoB,MAAM,CAAC,QAAQ,CAAC,MAAM,cAAc,MAAM,CAAC,QAAQ,CAAC,MAAM,YAAY,CAAC,CAAC;YAC3H,UAAU,CAAC,IAAI,CAAC,CAAC;YACjB,SAAS,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,SAAS,EAAE,CAAC,CAAC;QACnD,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,CAAM,EAAE,EAAE;YACd,OAAO,CAAC,KAAK,CAAC,UAAU,SAAS,uBAAuB,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;YACrE,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,OAAO,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1C,SAAS,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;QAClE,CAAC,CAAC,CAAC;IACX,CAAC;IAED;;+EAE2E;IAC3E,KAAK,CAAC,gBAAgB,CAAC,SAAiB;QACpC,MAAM,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC;QAC1G,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QACjC,OAAO,CAAC,GAAG,CAAC,UAAU,SAAS,cAAc,OAAO,CAAC,MAAM,oBAAoB,CAAC,CAAC;QACjF,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACtB,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC;QACrD,CAAC;IACL,CAAC;IAED,iFAAiF;IACzE,KAAK,CAAC,iBAAiB,CAC3B,SAAiB,EAAE,OAAsB,EAAE,GAAW;QAEtD,MAAM,kBAAkB,GAAG,GAAG,CAAC;QAC/B,MAAM,sBAAsB,GAAG,GAAG,CAAC;QACnC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAK,CAAC;QAC3B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,IAAI,kBAAkB,CAAC;QACjD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC;QACjD,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC;QAE/C,gFAAgF;QAChF,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,EAAE,IAAI,IAAI,OAAO,CAAC,KAAK,CAAC;QAClE,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAChF,IAAI,IAA0B,CAAC;QAC/B,IAAI,QAAQ,KAAK,UAAU,EAAE,CAAC;YAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,IAAI,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC;YACrD,IAAI,CAAC,IAAI;gBAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;YAC3D,IAAI,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QACrD,CAAC;aAAM,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAC/B,MAAM,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAC9C,IAAI,CAAC,EAAE;gBAAE,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;YAChE,MAAM,KAAK,GAAG,MAAM,EAAE,EAAE,CAAC;YACzB,IAAI,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;QACxD,CAAC;QAED,0BAA0B;QAC1B,MAAM,UAAU,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC,IAAI,EAAE,CAAC;QACrE,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QAC5C,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QAC5C,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;QAC9C,MAAM,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;QAChD,MAAM,UAAU,GAAG;YACf,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1C,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1C,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;SAC/C,CAAC;QACF,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;QAC1F,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;QAE9D,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;QAEpD,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC;YAC1B,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,QAAQ;YACd,MAAM,EAAE,QAAQ,KAAK,sBAAsB;YAC3C,IAAI;YACJ,SAAS,EAAE,eAAe;SAC7B,EAAE,GAAG,EAAE,CAAC,IAAI,kBAAkB,EAAE,CAAC,CAAC;QACnC,IAAI,CAAC;YACD,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;YACvB,OAAO,MAAM,MAAM,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,SAAS,CAAC,CAAC;QAC9E,CAAC;gBAAS,CAAC;YACP,IAAI,CAAC;gBAAC,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;QACvD,CAAC;IACL,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,UAAkB,EAAE,IAAY,EAAE,QAAiB,EAAE,QAAiB;QAClF,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,UAAkB,EAAE,SAAiB,IAAmB,CAAC;IAE3E,KAAK,CAAC,cAAc,CAAC,UAAkB,IAAsB,OAAO,KAAK,CAAC,CAAC,CAAC;IAE5E,KAAK,CAAC,cAAc,KAAwB,OAAO,EAAE,CAAC,CAAC,CAAC;IAExD,KAAK,CAAC,eAAe,KAAoB,CAAC;CAC7C;AAED,+DAA+D;AAE/D,6FAA6F;AAC7F,MAAM,YAAY,GAAG;IACjB,QAAQ,EAAE,0EAA0E;IACpF,YAAY,EAAE,qCAAqC;IACnD,OAAO,EAAE,2CAA2C;IACpD,QAAQ,EAAE,qCAAqC;IAC/C,sEAAsE;IACtE,WAAW,EAAE,0FAA0F;CAC1G,CAAC;AAEF,0FAA0F;AAC1F,sGAAsG;AACtG,2FAA2F;AAC3F,0EAA0E;AAC1E,sEAAsE;AACtE,MAAM,YAAY,GAAG,iMAAiM,CAAC;AAEvN,gCAAgC;AAEhC,KAAK,UAAU,cAAc,CAAC,KAAa;IACvC,MAAM,GAAG,GAAG,eAAe,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC;IACzD,MAAM,GAAG,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACtC,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IACtB,IAAI,CAAC;QAAC,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,IAAI,CAAC;IAAC,CAAC;AAC1D,CAAC;AAED,KAAK,UAAU,cAAc,CAAC,KAAa,EAAE,KAA4E;IACrH,MAAM,GAAG,GAAG,eAAe,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC;IACzD,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;AACrD,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,KAAa;IACzC,MAAM,GAAG,GAAG,eAAe,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC;IACzD,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AACjC,CAAC;AAED,uBAAuB;AAEvB,KAAK,UAAU,qBAAqB,CAAC,IAAY;IAC7C,MAAM,IAAI,GAAG,IAAI,eAAe,CAAC;QAC7B,IAAI;QACJ,SAAS,EAAE,YAAY,CAAC,QAAQ;QAChC,aAAa,EAAE,YAAY,CAAC,YAAY;QACxC,YAAY,EAAE,YAAY,CAAC,WAAW;QACtC,UAAU,EAAE,oBAAoB;KACnC,CAAC,CAAC;IACH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE;QAC3C,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAAE,cAAc,EAAE,mCAAmC,EAAE;QAChE,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE;KACxB,CAAC,CAAC;IACH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACV,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,0BAA0B,GAAG,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC,CAAC;IACpE,CAAC;IACD,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC;AACtB,CAAC;AAED,KAAK,UAAU,kBAAkB,CAAC,YAAoB;IAClD,MAAM,IAAI,GAAG,IAAI,eAAe,CAAC;QAC7B,aAAa,EAAE,YAAY;QAC3B,SAAS,EAAE,YAAY,CAAC,QAAQ;QAChC,aAAa,EAAE,YAAY,CAAC,YAAY;QACxC,UAAU,EAAE,eAAe;KAC9B,CAAC,CAAC;IACH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE;QAC3C,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAAE,cAAc,EAAE,mCAAmC,EAAE;QAChE,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE;KACxB,CAAC,CAAC;IACH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACV,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,yBAAyB,GAAG,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC,CAAC;IACnE,CAAC;IACD,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC;AACtB,CAAC;AAED,wDAAwD;AAExD,SAAS,yBAAyB,CAAC,KAAa;IAC5C,OAAO,KAAK,IAAI,EAAE;QACd,2BAA2B;QAC3B,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,KAAK,CAAC,CAAC;QAC3C,IAAI,MAAM,EAAE,YAAY,EAAE,CAAC;YACvB,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,IAAI,CAAC,CAAC;YACzC,MAAM,QAAQ,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,eAAe;YAC/C,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,GAAG,QAAQ,EAAE,CAAC;gBACpC,OAAO,MAAM,CAAC,YAAY,CAAC;YAC/B,CAAC;YACD,cAAc;YACd,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;gBACvB,IAAI,CAAC;oBACD,OAAO,CAAC,GAAG,CAAC,gCAAgC,KAAK,EAAE,CAAC,CAAC;oBACrD,MAAM,SAAS,GAAG,MAAM,kBAAkB,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;oBACjE,MAAM,KAAK,GAAG;wBACV,YAAY,EAAE,SAAS,CAAC,YAAY;wBACpC,aAAa,EAAE,MAAM,CAAC,aAAa;wBACnC,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,UAAU,GAAG,IAAI;qBACvD,CAAC;oBACF,MAAM,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;oBACnC,OAAO,KAAK,CAAC,YAAY,CAAC;gBAC9B,CAAC;gBAAC,OAAO,CAAM,EAAE,CAAC;oBACd,OAAO,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC,OAAO,qBAAqB,CAAC,CAAC;gBAC5E,CAAC;YACL,CAAC;QACL,CAAC;QAED,4CAA4C;QAC5C,MAAM,MAAM,GAAI,MAAc,CAAC,aAAa,CAAC;QAC7C,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAC9C,CAAC;QAED,MAAM,OAAO,GAAG,GAAG,YAAY,CAAC,OAAO,GAAG,GAAG,IAAI,eAAe,CAAC;YAC7D,SAAS,EAAE,YAAY,CAAC,QAAQ;YAChC,YAAY,EAAE,YAAY,CAAC,WAAW;YACtC,aAAa,EAAE,MAAM;YACrB,KAAK,EAAE,YAAY;YACnB,WAAW,EAAE,SAAS;YACtB,MAAM,EAAE,SAAS;YACjB,UAAU,EAAE,KAAK;SACpB,CAAC,CAAC,QAAQ,EAAE,CAAC;QAEd,OAAO,CAAC,GAAG,CAAC,wCAAwC,KAAK,EAAE,CAAC,CAAC;QAC7D,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAClD,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC,IAAI,CAAC,CAAC;QACjD,MAAM,KAAK,GAAG;YACV,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,aAAa,EAAE,MAAM,CAAC,aAAa;YACnC,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,UAAU,GAAG,IAAI;SACpD,CAAC;QACF,MAAM,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACnC,OAAO,CAAC,GAAG,CAAC,8BAA8B,KAAK,EAAE,CAAC,CAAC;QACnD,OAAO,KAAK,CAAC,YAAY,CAAC;IAC9B,CAAC,CAAC;AACN,CAAC;AAED,6BAA6B;AAE7B,KAAK,UAAU,sBAAsB,CACjC,aAAoC,EACpC,QAAgB,EAChB,UAAoB;IAEpB,IAAI,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,aAAa,EAAE,CAAC;QACpC,6EAA6E;QAC7E,MAAM,MAAM,GAAI,MAAc,CAAC,aAAa,CAAC;QAC7C,IAAI,QAAQ,GAAG,iBAAiB,CAAC;QACjC,IAAI,MAAM,EAAE,GAAG,EAAE,YAAY,EAAE,CAAC;YAC5B,IAAI,CAAC;gBACD,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;gBAClD,QAAQ,GAAG,WAAW,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;YACvD,CAAC;YAAC,MAAM,CAAC;gBACL,QAAQ,GAAG,WAAW,WAAW,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;YAC1D,CAAC;QACL,CAAC;QACD,8BAA8B;QAC9B,MAAM,CAAC,GAAG,kBAAkB,CAAC,6BAA6B,QAAQ,gCAAgC,CAAC,CAAC;QACpG,MAAM,OAAO,GAAG,MAAM,KAAK,CACvB,+CAA+C,CAAC,mBAAmB,EACnE,EAAE,OAAO,EAAE,EAAE,eAAe,EAAE,UAAU,KAAK,EAAE,EAAE,EAAE,CACtD,CAAC;QACF,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;YACd,OAAO,CAAC,IAAI,CAAC,uCAAuC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;YACtE,OAAO;QACX,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,IAAI,EAAS,CAAC;QAC7C,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QACvC,IAAI,OAAO,GAAQ,EAAE,CAAC;QACtB,IAAI,MAAM,EAAE,CAAC;YACT,MAAM,OAAO,GAAG,MAAM,KAAK,CACvB,6CAA6C,MAAM,YAAY,EAC/D,EAAE,OAAO,EAAE,EAAE,eAAe,EAAE,UAAU,KAAK,EAAE,EAAE,EAAE,CACtD,CAAC;YACF,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC;gBACb,IAAI,CAAC;oBAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;gBAAC,CAAC;gBAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC;YACvE,CAAC;QACL,CAAC;QACD,yFAAyF;QACzF,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YACrC,IAAI,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,GAAG,KAAK,QAAQ,EAAE,CAAC;gBACjD,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC;YACxB,CAAC;QACL,CAAC;QACD,OAAO,CAAC,QAAQ,CAAC,GAAG;YAChB,QAAQ,EAAE,QAAQ;YAClB,QAAQ,EAAE,SAAS;YACnB,QAAQ,EAAE,UAAU;YACpB,QAAQ,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YAClC,OAAO,EAAG,MAAc,CAAC,aAAa,EAAE,IAAI,EAAE,OAAO,IAAI,GAAG;SAC/D,CAAC;QACF,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACjD,IAAI,MAAM,EAAE,CAAC;YACT,MAAM,KAAK,GAAG,MAAM,KAAK,CACrB,oDAAoD,MAAM,mBAAmB,EAC7E;gBACI,MAAM,EAAE,OAAO;gBACf,OAAO,EAAE;oBACL,eAAe,EAAE,UAAU,KAAK,EAAE;oBAClC,cAAc,EAAE,kBAAkB;iBACrC;gBACD,IAAI,EAAE,OAAO;aAChB,CACJ,CAAC;YACF,IAAI,KAAK,CAAC,EAAE;gBAAE,OAAO,CAAC,GAAG,CAAC,mDAAmD,QAAQ,EAAE,CAAC,CAAC;;gBACpF,OAAO,CAAC,IAAI,CAAC,yCAAyC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;QAC/E,CAAC;IACL,CAAC;IAAC,OAAO,CAAM,EAAE,CAAC;QACd,OAAO,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;IACvE,CAAC;AACL,CAAC;AAED,uDAAuD;AACvD,EAAE;AACF,yEAAyE;AACzE,yEAAyE;AACzE,uEAAuE;AACvE,yDAAyD;AACzD,EAAE;AACF,yEAAyE;AACzE,yBAAyB;AAEzB,MAAM,eAAe,GAAG,IAAI,GAAG,EAA2B,CAAC;AAE3D,SAAS,oBAAoB,CAAC,SAAiB;IAC3C,IAAI,CAAC;QAAC,OAAO,YAAY,CAAC,OAAO,CAAC,4BAA4B,SAAS,EAAE,CAAC,IAAI,EAAE,CAAC;IAAC,CAAC;IACnF,MAAM,CAAC;QAAC,OAAO,EAAE,CAAC;IAAC,CAAC;AACxB,CAAC;AAED,SAAS,oBAAoB,CAAC,SAAiB,EAAE,KAAoB;IACjE,IAAI,CAAC;QACD,MAAM,GAAG,GAAG,4BAA4B,SAAS,EAAE,CAAC;QACpD,IAAI,KAAK,KAAK,IAAI;YAAE,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;;YAC5C,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC1C,CAAC;IAAC,MAAM,CAAC,CAAC,kBAAkB,CAAC,CAAC;AAClC,CAAC;AAED,KAAK,UAAU,4BAA4B,CACvC,EAAc,EACd,SAAiB,EACjB,aAAoC;IAEpC,MAAM,QAAQ,GAAG,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAChD,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAC9B,MAAM,OAAO,GAAG,CAAC,KAAK,IAAqB,EAAE;QACzC,MAAM,KAAK,GAAG,MAAM,aAAa,EAAE,CAAC;QACpC,IAAI,CAAC,KAAK;YAAE,OAAO,CAAC,CAAC;QAErB,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,IAAI,aAAiC,CAAC;QACtC,IAAI,SAAS,GAAG,oBAAoB,CAAC,SAAS,CAAC,CAAC;QAEhD,IAAI,CAAC;YACD,GAAG,CAAC;gBACA,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC;oBAC/B,YAAY,EAAE,2CAA2C;oBACzD,QAAQ,EAAE,KAAK;iBAClB,CAAC,CAAC;gBACH,IAAI,aAAa;oBAAE,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;gBAC1D,IAAI,SAAS;oBAAE,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;;oBAC7C,MAAM,CAAC,GAAG,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC;gBAE5C,MAAM,GAAG,GAAG,0DAA0D,MAAM,EAAE,CAAC;gBAC/E,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;gBAEhF,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;oBACrB,qDAAqD;oBACrD,oBAAoB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;oBACtC,SAAS,GAAG,EAAE,CAAC;oBACf,aAAa,GAAG,SAAS,CAAC;oBAC1B,SAAS;gBACb,CAAC;gBACD,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;oBACV,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;oBAC7C,OAAO,CAAC,KAAK,CAAC,4BAA4B,SAAS,KAAK,GAAG,CAAC,MAAM,IAAI,GAAG,EAAE,CAAC,CAAC;oBAC7E,OAAO,OAAO,CAAC;gBACnB,CAAC;gBAED,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAS,CAAC;gBACrC,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;oBACnB,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;wBACpC,MAAM,QAAQ,GAAG,MAAM,CAAC,YAAY,IAAI,EAAE,CAAC;wBAC3C,IAAI,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAC;4BAC3B,MAAM,OAAO,GAAG,EAAE,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAAC;4BACrD,IAAI,OAAO,GAAG,CAAC;gCAAE,OAAO,IAAI,OAAO,CAAC;4BACpC,SAAS;wBACb,CAAC;wBACD,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,IAAI,EAAE,CAAC;wBAClD,MAAM,GAAG,GAAG,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC;wBAClD,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,cAAc,IAAI,EAAE,EAAE,CAAC;4BAC1C,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,EAAE,WAAW,EAAE,CAAC;4BACrC,IAAI,CAAC,KAAK;gCAAE,SAAS;4BACrB,MAAM,QAAQ,GAAG,EAAE,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;4BAC7C,MAAM,MAAM,GAAG,CAAC,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC;4BACrE,EAAE,CAAC,iBAAiB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;4BAClC,EAAE,CAAC,kBAAkB,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;4BAC5C,IAAI,MAAM;gCAAE,OAAO,EAAE,CAAC;wBAC1B,CAAC;oBACL,CAAC;gBACL,CAAC;gBACD,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;gBACnC,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;oBACrB,oBAAoB,CAAC,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;oBACpD,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC;gBACnC,CAAC;YACL,CAAC,QAAQ,aAAa,EAAE;YAExB,OAAO,CAAC,GAAG,CAAC,cAAc,SAAS,KAAK,OAAO,eAAe,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;QACzG,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YACd,OAAO,CAAC,KAAK,CAAC,6BAA6B,SAAS,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;QAC1E,CAAC;QACD,OAAO,OAAO,CAAC;IACnB,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,eAAe,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;IACtD,eAAe,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IACxC,OAAO,OAAO,CAAC;AACnB,CAAC;AAED,KAAK,UAAU,qBAAqB,CAAC,aAAoC;IACrE,MAAM,KAAK,GAAG,MAAM,aAAa,EAAE,CAAC;IACpC,MAAM,OAAO,GAAG,EAAE,eAAe,EAAE,UAAU,KAAK,EAAE,EAAE,CAAC;IACvD,oDAAoD;IACpD,yEAAyE;IACzE,mEAAmE;IACnE,qDAAqD;IACrD,MAAM,KAAK,GAAG,kBAAkB,CAAC,uGAAuG,CAAC,CAAC;IAC1I,MAAM,OAAO,GAAG,MAAM,KAAK,CACvB,+CAA+C,KAAK,qCAAqC,EACzF,EAAE,OAAO,EAAE,CACd,CAAC;IACF,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;QACd,OAAO,CAAC,IAAI,CAAC,uCAAuC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QACtE,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,IAAI,EAAS,CAAC;IAC7C,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;IACjC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC;QACZ,OAAO,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAC;QAClE,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,MAAM,CAAC,GAAG,kBAAkB,CAAC,0EAA0E,IAAI,CAAC,EAAE,gCAAgC,CAAC,CAAC;IAChJ,MAAM,GAAG,GAAG,MAAM,KAAK,CACnB,+CAA+C,CAAC,0DAA0D,EAC1G,EAAE,OAAO,EAAE,CACd,CAAC;IACF,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACV,OAAO,CAAC,IAAI,CAAC,oCAAoC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;QAC/D,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAS,CAAC;IACrC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;IAC/B,IAAI,CAAC,MAAM,EAAE,EAAE;QAAE,OAAO,IAAI,CAAC;IAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,IAAI,MAAM,CAAC;IACrC,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,IAAI,UAAU,CAAC;IAC7C,OAAO;QACH,EAAE,EAAE,MAAM,CAAC,EAAE;QACb,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,YAAY,QAAQ,IAAI,UAAU,EAAE;QAC1C,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY;KAC/C,CAAC;AACN,CAAC;AAED,uBAAuB;AAEvB,KAAK,UAAU,mBAAmB,CAAC,YAAoB,IAAI;IACvD,IAAK,MAAc,CAAC,aAAa;QAAE,OAAO;IAC1C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,GAAG,EAAE;YACf,IAAK,MAAc,CAAC,aAAa,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,SAAS,EAAE,CAAC;gBAClE,OAAO,EAAE,CAAC;YACd,CAAC;iBAAM,CAAC;gBACJ,UAAU,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAC1B,CAAC;QACL,CAAC,CAAC;QACF,iEAAiE;QACjE,MAAM,CAAC,gBAAgB,CAAC,mBAAmB,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9E,KAAK,EAAE,CAAC;IACZ,CAAC,CAAC,CAAC;AACP,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW;IAC7B,OAAO,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAC;IAElE,wEAAwE;IACxE,uEAAuE;IACvE,+EAA+E;IAC/E,MAAM,mBAAmB,EAAE,CAAC;IAC5B,IAAK,MAAc,CAAC,aAAa,IAAI,CAAE,MAAc,CAAC,MAAM,EAAE,CAAC;QAC1D,MAAc,CAAC,MAAM,GAAI,MAAc,CAAC,aAAa,CAAC;IAC3D,CAAC;IAED,EAAE,GAAG,IAAI,UAAU,CAAC,OAAO,CAAC,CAAC;IAC7B,MAAM,EAAE,CAAC,SAAS,EAAE,CAAC;IACrB,SAAS,GAAG,IAAI,eAAe,EAAE,CAAC;IAClC,WAAW,GAAG,IAAI,kBAAkB,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;IACpD,OAAO,GAAG,IAAI,eAAe,CAAC,EAAE,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;IAE1D,IAAI,QAAQ,GAAG,MAAM,YAAY,EAAE,CAAC;IACpC,OAAO,CAAC,GAAG,CAAC,aAAa,QAAQ,CAAC,MAAM,mBAAmB,CAAC,CAAC;IAE7D,2DAA2D;IAC3D,IAAI,kBAAkB,GAAmC,IAAI,CAAC;IAC9D,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC7B,IAAI,CAAC,OAAO,CAAC,OAAO;YAAE,SAAS;QAC/B,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;QACjE,IAAI,MAAM,KAAK,WAAW,IAAI,MAAM,KAAK,gBAAgB,EAAE,CAAC;YACxD,MAAM,EAAE,GAAG,yBAAyB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACpD,WAAW,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YAC7C,IAAI,CAAC,kBAAkB;gBAAE,kBAAkB,GAAG,EAAE,CAAC;QACrD,CAAC;QACD,MAAM,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAC1C,CAAC;IAED,uEAAuE;IACvE,uEAAuE;IACvE,8DAA8D;IAC9D,uEAAuE;IACvE,4BAA4B;IAC5B,aAAa,EAAE,CAAC;IAChB,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC7B,IAAI,CAAC,OAAO,CAAC,OAAO;YAAE,SAAS;QAC/B,WAAW,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAC;aACnC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,8BAA8B,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACzF,WAAW,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAC;aACrC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,gCAAgC,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAC/F,CAAC;IACD,0EAA0E;IAC1E,UAAU,CAAC,GAAG,EAAE;QACZ,WAAW,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAC1F,CAAC,EAAE,IAAI,CAAC,CAAC;IAET,uEAAuE;IACvE,uEAAuE;IACvE,mEAAmE;IACnE,sDAAsD;IACtD,IAAI,kBAAkB,EAAE,CAAC;QACrB,MAAM,EAAE,GAAG,kBAAkB,CAAC;QAC9B,CAAC,KAAK,IAAI,EAAE;YACZ,sBAAsB,CAAC,EAAE,CAAC,CAAC;YAC3B,IAAI,CAAC;gBACD,OAAO,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC;gBAC5D,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC,EAAE,CAAC,CAAC;gBAC/C,IAAI,CAAC,MAAM,EAAE,CAAC;oBACV,SAAS,CAAC;wBACN,IAAI,EAAE,OAAO;wBACb,GAAG,EAAE,uBAAuB;wBAC5B,OAAO,EAAE,8GAA8G;qBAC1H,CAAC,CAAC;gBACP,CAAC;qBAAM,CAAC;oBACJ,MAAM,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC;oBAC3B,iBAAiB,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;oBACzE,OAAO,CAAC,GAAG,CAAC,oBAAoB,MAAM,CAAC,IAAI,YAAY,QAAQ,WAAW,MAAM,CAAC,UAAU,IAAI,GAAG,GAAG,CAAC,CAAC;oBACvG,sCAAsC;oBACtC,IAAI,CAAC;wBACD,MAAM,EAAE,GAAG,MAAM,EAAE,EAAE,CAAC;wBACtB,MAAM,EAAE,GAAG,MAAM,KAAK,CAClB,gDAAgD,QAAQ,sFAAsF,EAC9I,EAAE,OAAO,EAAE,EAAE,eAAe,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE,CACnD,CAAC;wBACF,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC;4BACR,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,IAAI,EAAS,CAAC;4BAClC,MAAM,KAAK,GAAG,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,IAAI,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;4BAC7G,OAAO,CAAC,GAAG,CAAC,8BAA8B,EAAE,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC,WAAW,KAAK,GAAG,CAAC,CAAC;wBACxF,CAAC;6BAAM,CAAC;4BACJ,OAAO,CAAC,IAAI,CAAC,iCAAiC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC;wBAC/D,CAAC;oBACL,CAAC;oBAAC,OAAO,CAAM,EAAE,CAAC;wBACd,OAAO,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;oBACvD,CAAC;oBACD,8DAA8D;oBAC9D,OAAO,CAAC,GAAG,CAAC,iDAAiD,CAAC,CAAC;oBAC/D,MAAM,cAAc,GAAG,MAAM,qBAAqB,EAAE,CAAC;oBACrD,OAAO,CAAC,GAAG,CAAC,6BAA6B,cAAc,CAAC,MAAM,cAAc,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;oBACvH,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAC5B,4DAA4D;wBAC5D,QAAQ,GAAG,cAAc,CAAC;wBAC1B,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;4BAC7B,IAAI,CAAC,qBAAqB,OAAO,CAAC,EAAE,UAAU,OAAO,CAAC,KAAK,YAAY,OAAO,CAAC,OAAO,SAAS,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;4BAC/H,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;gCACnB,IAAI,CAAC,SAAS,OAAO,CAAC,EAAE,qBAAqB,CAAC,CAAC;gCAC/C,SAAS;4BACb,CAAC;4BACD,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;4BACjE,IAAI,MAAM,KAAK,WAAW,IAAI,MAAM,KAAK,gBAAgB,EAAE,CAAC;gCACxD,WAAW,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,EAAE,yBAAyB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;4BACvF,CAAC;4BACD,MAAM,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;wBAC1C,CAAC;wBACD,OAAO,CAAC,GAAG,CAAC,oBAAoB,QAAQ,CAAC,MAAM,uBAAuB,CAAC,CAAC;oBAC5E,CAAC;oBACD,gDAAgD;oBAChD,MAAM,sBAAsB,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBACxE,CAAC;YACL,CAAC;YAAC,OAAO,CAAM,EAAE,CAAC;gBACd,SAAS,CAAC;oBACN,IAAI,EAAE,OAAO;oBACb,GAAG,EAAE,sBAAsB;oBAC3B,OAAO,EAAE,4CAA4C,CAAC,CAAC,OAAO,EAAE;iBACnE,CAAC,CAAC;YACP,CAAC;QACD,CAAC,CAAC,EAAE,CAAC;IACT,CAAC;IAED,iEAAiE;IACjE,mEAAmE;IACnE,KAAK,MAAM,OAAO,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC;QACrC,IAAI,CAAC,OAAO,CAAC,KAAK;YAAE,SAAS;QAC7B,MAAM,EAAE,GAAG,yBAAyB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACpD,4BAA4B,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC;aAC3C,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,mCAAmC,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAClG,CAAC;IAED,iEAAiE;IACjE,MAAM,gBAAgB,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;IACvC,IAAI,uBAAuB,GAAG,CAAC,CAAC;IAChC,WAAW,CAAC,GAAG,EAAE;QACb,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;QACpC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QAC3B,kDAAkD;QAClD,KAAK,MAAM,OAAO,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC;YACrC,WAAW,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAC;iBACnC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,mBAAmB,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YAC9E,WAAW,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAC;iBACrC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,gCAAgC,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAC/F,CAAC;QACD,WAAW,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAC/F,kEAAkE;QAClE,mEAAmE;QACnE,IAAI,EAAE,uBAAuB,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YACtC,KAAK,MAAM,OAAO,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC;gBACrC,IAAI,CAAC,OAAO,CAAC,KAAK;oBAAE,SAAS;gBAC7B,MAAM,EAAE,GAAG,yBAAyB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gBACpD,4BAA4B,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC;qBAC3C,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,oCAAoC,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YACnG,CAAC;QACL,CAAC;IACL,CAAC,EAAE,gBAAgB,CAAC,CAAC;IAErB,sEAAsE;IACtE,uEAAuE;IACvE,oEAAoE;IACpE,kEAAkE;IAClE,QAAQ,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,GAAG,EAAE;QAC/C,IAAI,QAAQ,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;YACzC,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;YAClC,KAAK,MAAM,OAAO,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC;gBACrC,WAAW,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAC;qBACnC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,+BAA+B,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YAC9F,CAAC;YACD,WAAW,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACjG,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;IACjD,SAAS,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;AACrC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU;IAC5B,MAAM,OAAO,CAAC,UAAU,EAAE,CAAC;IAC3B,MAAM,aAAa,EAAE,CAAC;IACtB,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;AACzC,CAAC;AAED,wBAAwB;AAExB,SAAS,aAAa;IAClB,MAAM,GAAG,GAAG;QACR,KAAK,EAAE,IAAI;QACX,QAAQ,EAAE,SAAS;QACnB,WAAW,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE;QACxC,UAAU,EAAE,CAAC,SAAiB,EAAE,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC;QAChE,WAAW,EAAE,CAAC,SAAiB,EAAE,QAAgB,EAAE,IAAY,EAAE,QAAgB,EAAE,EAAE,CACjF,OAAO,CAAC,WAAW,CAAC,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,CAAC;QAC5D,eAAe,EAAE,CAAC,IAAY,EAAE,QAAgB,EAAE,EAAE,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,EAAE,QAAQ,CAAC;QAC5F,UAAU,EAAE,CAAC,SAAiB,EAAE,GAAW,EAAE,WAAoB,EAAE,QAAiB,EAAE,EAAE,CACpF,OAAO,CAAC,UAAU,CAAC,SAAS,EAAE,GAAG,EAAE,WAAW,EAAE,QAAQ,CAAC;QAC7D,WAAW,EAAE,KAAK,EAAE,SAAiB,EAAE,GAAW,EAAE,KAAe,EAAE,EAAE;YACnE,MAAM,OAAO,CAAC,WAAW,CAAC,SAAS,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;YAAC,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;QAC1E,CAAC;QACD,aAAa,EAAE,KAAK,EAAE,SAAiB,EAAE,GAAW,EAAE,EAAE;YACpD,MAAM,OAAO,CAAC,aAAa,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;YAAC,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;QACrE,CAAC;QACD,cAAc,EAAE,KAAK,EAAE,SAAiB,EAAE,IAAc,EAAE,EAAE;YACxD,MAAM,OAAO,CAAC,cAAc,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;YAAC,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;QAC3F,CAAC;QACD,eAAe,EAAE,KAAK,EAAE,SAAiB,EAAE,GAAW,EAAE,QAAgB,EAAE,EAAE;YACxE,MAAM,OAAO,CAAC,eAAe,CAAC,SAAS,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;YAAC,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;QACjF,CAAC;QACD,WAAW,EAAE,KAAK,EAAE,SAAiB,EAAE,GAAW,EAAE,cAAsB,EAAE,eAAwB,EAAE,EAAE;YACpG,MAAM,OAAO,CAAC,WAAW,CAAC,SAAS,EAAE,GAAG,EAAE,cAAc,EAAE,eAAe,CAAC,CAAC;YAAC,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;QACpG,CAAC;QACD,YAAY,EAAE,KAAK,EAAE,SAAiB,EAAE,IAAc,EAAE,cAAsB,EAAE,EAAE;YAC9E,MAAM,OAAO,CAAC,YAAY,CAAC,SAAS,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;YAAC,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;QACzG,CAAC;QACD,WAAW,EAAE,KAAK,EAAE,GAAQ,EAAE,EAAE,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAClF,SAAS,EAAE,CAAC,CAAM,EAAE,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,gBAAgB,EAAE,CAAC,CAAC,OAAO,CAAC;QACnI,WAAW,EAAE,KAAK,EAAE,SAAiB,EAAE,QAAgB,EAAE,EAAE;YACvD,MAAM,OAAO,CAAC,WAAW,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;YAAC,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;QACxE,CAAC;QACD,cAAc,EAAE,CAAC,KAAa,EAAE,IAAY,EAAE,QAAgB,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,CAAC;QACxG,cAAc,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC;QAChE,YAAY,EAAE,CAAC,KAAa,EAAE,IAAI,GAAG,CAAC,EAAE,QAAQ,GAAG,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC;QAC5G,aAAa,EAAE,CAAC,IAAY,EAAE,KAAa,EAAE,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,IAAI,EAAE,EAAE,KAAK,CAAC;QACxF,aAAa,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC;QAC9D,UAAU,EAAE,CAAC,IAAY,EAAE,KAAa,EAAE,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,IAAI,EAAE,EAAE,KAAK,CAAC;QAClF,cAAc,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,cAAc,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,EAAE,CAAC;QACxF,OAAO,EAAE,KAAK,IAAI,EAAE,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACtE,WAAW,EAAE,KAAK,EAAE,SAAiB,EAAE,EAAE,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACxG,cAAc,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,cAAc,EAAE;QAC9C,iBAAiB,EAAE,CAAC,OAAgB,EAAE,EAAE;YACpC,mEAAmE;YACnE,0DAA0D;YAC1D,MAAM,GAAG,GAAG,EAAE,CAAC,iBAAiB,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;gBACvC,IAAI,CAAC;oBAAC,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC;gBAAC,CAAC;gBACvF,MAAM,CAAC;oBAAC,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;gBAAC,CAAC;YAChE,CAAC,CAAC,CAAC;YACH,IAAI,OAAO,EAAE,CAAC;gBACV,MAAM,GAAG,GAAG,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBAC3E,MAAM,UAAU,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBAChD,IAAI,UAAU;oBAAE,OAAO,UAAU,CAAC;YACtC,CAAC;YACD,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;QAC7D,CAAC;QACD,cAAc,EAAE,KAAK,EAAE,SAAiB,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9F,cAAc,EAAE,CAAC,UAAkB,EAAE,QAAgB,EAAE,EAAE,GAAG,OAAO,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACpH,YAAY,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,yBAAyB,EAAE,CAAC;QAC3E,YAAY,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,yBAAyB,EAAE,CAAC;QAC3E,YAAY,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,yBAAyB,EAAE,CAAC;QAC3E,WAAW,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,yBAAyB,EAAE,CAAC;QAC1E,kBAAkB,EAAE,KAAK,EAAE,IAAY,EAAE,KAAa,EAAE,EAAE;YACtD,MAAM,OAAO,CAAC,kBAAkB,CAAC,IAAW,EAAE,KAAK,CAAC,CAAC;YAAC,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;QAC9E,CAAC;QACD,kBAAkB,EAAE,KAAK,EAAE,IAAY,EAAE,KAAa,EAAE,EAAE;YACtD,OAAO,MAAM,OAAO,CAAC,kBAAkB,CAAC,IAAW,EAAE,KAAK,CAAC,CAAC;QAChE,CAAC;QACD,gBAAgB,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,gBAAgB,EAAE;QAClD,iBAAiB,EAAE,KAAK,EAAE,KAAa,EAAE,KAAc,EAAE,IAAa,EAAE,EAAE;YACtE,MAAM,OAAO,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAAC,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;QAC/E,CAAC;QACD,iBAAiB,EAAE,KAAK,EAAE,MAAc,EAAE,KAAc,EAAE,EAAE;YACxD,MAAM,OAAO,CAAC,iBAAiB,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;YAAC,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;QAC1E,CAAC;QACD,WAAW,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE;QACxC,gBAAgB,EAAE,KAAK,EAAE,IAAS,EAAE,EAAE,GAAG,MAAM,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACrG,UAAU,EAAE,KAAK,IAAI,EAAE;YACnB,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,WAAW,EAAE,CAAC;YAC7C,MAAM,aAAa,GAAI,MAAc,CAAC,aAAa,EAAE,IAAI,EAAE,OAAO,IAAI,GAAG,CAAC;YAC1E,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,IAAI,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,cAAc,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;QACrI,CAAC;QACD,uBAAuB,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,uBAAuB,EAAE;QAChE,wBAAwB,EAAE,KAAK,EAAE,QAAa,EAAE,EAAE,GAAG,MAAM,OAAO,CAAC,wBAAwB,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAC7H,iBAAiB,EAAE,KAAK,IAAI,EAAE;YAC1B,MAAM,MAAM,GAAI,MAAc,CAAC,aAAa,CAAC;YAC7C,IAAI,MAAM,EAAE,GAAG,EAAE,iBAAiB,EAAE,CAAC;gBACjC,OAAO,MAAM,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC;YAC1C,CAAC;YACD,OAAO,EAAE,CAAC;QACd,CAAC;QACD,YAAY,EAAE,KAAK,EAAE,IAAY,EAAE,KAAa,EAAE,SAAiB,EAAE,EAAE;YACnE,IAAI,CAAC;gBACD,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;oBACjC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,wBAAwB,EAAE,CAAC;gBAC1D,CAAC;gBACD,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;gBACjD,MAAM,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC;gBAC7C,MAAM,OAAO,GAAkB;oBAC3B,EAAE;oBACF,IAAI,EAAE,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oBACjC,KAAK;oBACL,OAAO,EAAE,IAAI;oBACb,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,MAAM,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,QAAiB,EAAE,IAAI,EAAE,KAAK,EAAE;oBAC5F,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,MAAM,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,QAAiB,EAAE,IAAI,EAAE,KAAK,EAAE;iBAC/F,CAAC;gBACF,gCAAgC;gBAChC,IAAI,MAAM,KAAK,WAAW,IAAI,MAAM,KAAK,gBAAgB,EAAE,CAAC;oBACxD,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC;oBACxB,OAAO,CAAC,IAAI,GAAG,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;oBAC7F,OAAO,CAAC,IAAI,GAAG,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;gBACjG,CAAC;gBACD,MAAM,QAAQ,GAAG,MAAM,YAAY,EAAE,CAAC;gBACtC,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,EAAE,CAAC;oBACxC,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,wBAAwB,EAAE,CAAC;gBAC3D,CAAC;gBACD,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACvB,MAAM,YAAY,CAAC,QAAQ,CAAC,CAAC;gBAC7B,8CAA8C;gBAC9C,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;gBACtD,IAAI,WAAW,KAAK,WAAW,IAAI,WAAW,KAAK,gBAAgB,EAAE,CAAC;oBAClE,WAAW,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,EAAE,yBAAyB,CAAC,KAAK,CAAC,CAAC,CAAC;gBAC/E,CAAC;gBACD,MAAM,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;gBACtC,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;gBACnF,OAAO,CAAC,GAAG,CAAC,4BAA4B,KAAK,EAAE,CAAC,CAAC;gBACjD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,KAAK,cAAc,EAAE,CAAC;YAC/D,CAAC;YAAC,OAAO,CAAM,EAAE,CAAC;gBACd,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;YAC3C,CAAC;QACL,CAAC;QACD,cAAc,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,wBAAwB,EAAE,CAAC;QAC5E,UAAU,EAAE,GAAG,EAAE,CAAC,UAAU,EAAE;QAC9B,QAAQ,EAAE,KAAK,IAAI,EAAE;YACjB,MAAM,MAAM,GAAI,MAAc,CAAC,aAAa,CAAC;YAC7C,IAAI,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC;gBACxB,MAAM,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;YAChC,CAAC;iBAAM,CAAC;gBACJ,MAAM,UAAU,EAAE,CAAC;gBACnB,QAAQ,CAAC,MAAM,EAAE,CAAC;YACtB,CAAC;QACL,CAAC;QACD,OAAO,EAAE,GAAG,EAAE,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACrC,OAAO,EAAE,CAAC,OAA6B,EAAE,EAAE,GAAG,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;KAC/E,CAAC;IAED,MAAc,CAAC,QAAQ,GAAG,GAAG,CAAC;IAC/B,MAAM,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,eAAe,CAAC,CAAC,CAAC;IACvD,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;AACvD,CAAC"}
|
|
@@ -185,6 +185,14 @@ class AndroidSyncManager implements WebSyncManager {
|
|
|
185
185
|
let totalFetched = 0;
|
|
186
186
|
let errors = 0;
|
|
187
187
|
let announced = false;
|
|
188
|
+
// Per-session blacklist: messages whose fetch errored once.
|
|
189
|
+
// `getMessagesWithoutBody` returns the same set every batch
|
|
190
|
+
// (no per-row failed-marker in DB yet), so without this set
|
|
191
|
+
// a single failing message would burn the entire ERROR_BUDGET
|
|
192
|
+
// by being retried first in every batch. Skipping locally
|
|
193
|
+
// unblocks subsequent messages; next syncAll cycle starts
|
|
194
|
+
// a new prefetch session and the blacklist resets.
|
|
195
|
+
const failedThisSession = new Set<number>();
|
|
188
196
|
// S62: INBOX always first. Within each folder the DB returns rows
|
|
189
197
|
// most-recent-first (PRIMARY KEY order), so newest unfetched INBOX
|
|
190
198
|
// mail wins the queue. A slow label (`[Gmail]/Jerrry`, etc.) can't
|
|
@@ -196,8 +204,12 @@ class AndroidSyncManager implements WebSyncManager {
|
|
|
196
204
|
let rateLimitCooldownUntil = 0;
|
|
197
205
|
|
|
198
206
|
while (true) {
|
|
199
|
-
const
|
|
207
|
+
const allMissing = this.db.getMessagesWithoutBody(accountId, BATCH_SIZE * 4);
|
|
208
|
+
const missing = allMissing.filter((m: any) => !failedThisSession.has(m.uid));
|
|
200
209
|
if (missing.length === 0) break;
|
|
210
|
+
// Cap to BATCH_SIZE after filtering so a deep blacklist
|
|
211
|
+
// doesn't leave us with a tiny working set per pass.
|
|
212
|
+
if (missing.length > BATCH_SIZE) missing.length = BATCH_SIZE;
|
|
201
213
|
if (!announced) {
|
|
202
214
|
console.log(`[prefetch] ${accountId}: ${missing.length}+ bodies to fetch`);
|
|
203
215
|
vlog(`prefetch ${accountId} start: ${missing.length}+ pending`);
|
|
@@ -240,9 +252,11 @@ class AndroidSyncManager implements WebSyncManager {
|
|
|
240
252
|
emitEvent({ type: "bodyCached", accountId, uid: m.uid, folderId: m.folderId });
|
|
241
253
|
} else {
|
|
242
254
|
errors++;
|
|
255
|
+
failedThisSession.add(m.uid);
|
|
243
256
|
}
|
|
244
257
|
} catch (e: any) {
|
|
245
258
|
errors++;
|
|
259
|
+
failedThisSession.add(m.uid);
|
|
246
260
|
const msg = String(e?.message || "");
|
|
247
261
|
if (/429|rate|too many/i.test(msg)) {
|
|
248
262
|
console.log(`[prefetch] ${accountId}: rate-limited — pausing ${RATE_LIMIT_PAUSE_MS / 1000}s`);
|
|
@@ -1,226 +0,0 @@
|
|
|
1
|
-
<!DOCTYPE html>
|
|
2
|
-
<html lang="en">
|
|
3
|
-
<head>
|
|
4
|
-
<meta charset="UTF-8">
|
|
5
|
-
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
|
-
<title>rmfmail</title>
|
|
7
|
-
<link rel="icon" type="image/svg+xml" href="favicon.svg">
|
|
8
|
-
<link rel="stylesheet" href="styles/variables.css">
|
|
9
|
-
<link rel="stylesheet" href="styles/components.css">
|
|
10
|
-
<link rel="stylesheet" href="styles/layout.css">
|
|
11
|
-
<!-- Import map for Android — resolves @bobfrankston packages to bundled assets -->
|
|
12
|
-
<script type="importmap">
|
|
13
|
-
{
|
|
14
|
-
"imports": {
|
|
15
|
-
"@bobfrankston/mailx-store-web": "../packages/mailx-store-web/index.js",
|
|
16
|
-
"@bobfrankston/mailx-store-web/": "../packages/mailx-store-web/",
|
|
17
|
-
"@bobfrankston/mailx-types": "../packages/mailx-types/index.js",
|
|
18
|
-
"@bobfrankston/iflow-direct": "../node_modules/@bobfrankston/iflow-direct/index.js",
|
|
19
|
-
"@bobfrankston/iflow-direct/": "../node_modules/@bobfrankston/iflow-direct/",
|
|
20
|
-
"@bobfrankston/smtp-direct": "../node_modules/@bobfrankston/smtp-direct/index.js",
|
|
21
|
-
"@bobfrankston/smtp-direct/": "../node_modules/@bobfrankston/smtp-direct/",
|
|
22
|
-
"@bobfrankston/tcp-transport": "../node_modules/@bobfrankston/tcp-transport/index.js",
|
|
23
|
-
"@bobfrankston/tcp-transport/": "../node_modules/@bobfrankston/tcp-transport/",
|
|
24
|
-
"@bobfrankston/mailx-sync": "../node_modules/@bobfrankston/mailx-sync/index.js",
|
|
25
|
-
"@bobfrankston/mailx-sync/": "../node_modules/@bobfrankston/mailx-sync/",
|
|
26
|
-
"sql.js": "../packages/mailx-store-web/sql-wasm-esm.js"
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
</script>
|
|
30
|
-
<!-- Early error handlers — runs before modules, catches everything -->
|
|
31
|
-
<script>
|
|
32
|
-
window.addEventListener("unhandledrejection", function(e) {
|
|
33
|
-
var msg = "UNHANDLED: " + (e.reason?.message || e.reason || "unknown");
|
|
34
|
-
var el = document.getElementById("startup-status");
|
|
35
|
-
if (el) el.textContent = msg;
|
|
36
|
-
fetch("https://rmf39.aaz.lt/logit/" + encodeURIComponent("JS/REJECT: " + msg) + "?log=mailx-android").catch(function(){});
|
|
37
|
-
});
|
|
38
|
-
window.onerror = function(msg, src, line) {
|
|
39
|
-
var el = document.getElementById("startup-status");
|
|
40
|
-
if (el) el.textContent = "ERROR: " + msg;
|
|
41
|
-
fetch("https://rmf39.aaz.lt/logit/" + encodeURIComponent("JS/ERR: " + msg + " " + src + ":" + line) + "?log=mailx-android").catch(function(){});
|
|
42
|
-
};
|
|
43
|
-
</script>
|
|
44
|
-
<!-- Android: load bootstrap first (installs window.mailxapi), then app -->
|
|
45
|
-
<script type="module">
|
|
46
|
-
try {
|
|
47
|
-
const { initAndroid } = await import("@bobfrankston/mailx-store-web/android-bootstrap.js");
|
|
48
|
-
await initAndroid();
|
|
49
|
-
await import("./app.js");
|
|
50
|
-
} catch (e) {
|
|
51
|
-
const msg = "BOOTSTRAP FAILED: " + (e.message || e) + "\n" + (e.stack || "");
|
|
52
|
-
const el = document.getElementById("startup-status");
|
|
53
|
-
if (el) el.textContent = msg;
|
|
54
|
-
console.error(msg);
|
|
55
|
-
fetch("https://rmf39.aaz.lt/logit/" + encodeURIComponent("JS/FATAL: " + msg.substring(0, 500)) + "?log=mailx-android").catch(() => {});
|
|
56
|
-
}
|
|
57
|
-
</script>
|
|
58
|
-
</head>
|
|
59
|
-
<body>
|
|
60
|
-
<header class="toolbar">
|
|
61
|
-
<div class="toolbar-left">
|
|
62
|
-
<button class="tb-btn" id="btn-menu" title="Menu / rail" hidden>☰</button>
|
|
63
|
-
<button class="tb-btn" id="btn-folder-toggle" title="Show / hide folders" hidden>📁</button>
|
|
64
|
-
<button class="tb-btn" id="btn-compose" title="Compose (Ctrl+N)">
|
|
65
|
-
<span class="tb-icon">✏</span> Compose
|
|
66
|
-
</button>
|
|
67
|
-
</div>
|
|
68
|
-
<div class="toolbar-center">
|
|
69
|
-
<div class="tb-menu" id="view-menu">
|
|
70
|
-
<button class="tb-btn" id="btn-view">View</button>
|
|
71
|
-
<div class="tb-menu-dropdown" id="view-dropdown" hidden>
|
|
72
|
-
<label class="tb-menu-item" title="Stack From + Subject on two lines per row, date to the right — denser on narrow windows"><input type="checkbox" id="opt-two-line"> Two-line view</label>
|
|
73
|
-
<label class="tb-menu-item" title="Show the reading pane below/beside the message list"><input type="checkbox" id="opt-preview" checked> Preview pane</label>
|
|
74
|
-
<label class="tb-menu-item" title="Show a short body-text preview (first ~80 chars) beneath each row's subject"><input type="checkbox" id="opt-snippet" checked> Preview snippets</label>
|
|
75
|
-
<label class="tb-menu-item" title="Collapse reply chains to one row"><input type="checkbox" id="opt-threaded"> Group by thread</label>
|
|
76
|
-
<label class="tb-menu-item" title="Filter the list to rows in the selected message's thread"><input type="checkbox" id="opt-thread-filter"> Only this conversation</label>
|
|
77
|
-
<label class="tb-menu-item" title="Show only flagged (★) messages in the list"><input type="checkbox" id="opt-flagged"> ★ Flagged only</label>
|
|
78
|
-
<label class="tb-menu-item" title="Show unread/total counts next to each folder in the tree"><input type="checkbox" id="opt-folder-counts"> Folder counts</label>
|
|
79
|
-
<label class="tb-menu-item" title="Show the right-side calendar/tasks sidebar"><input type="checkbox" id="opt-calendar-sidebar"> Calendar sidebar</label>
|
|
80
|
-
</div>
|
|
81
|
-
</div>
|
|
82
|
-
<div class="tb-menu" id="settings-menu">
|
|
83
|
-
<button class="tb-btn" id="btn-settings">Settings</button>
|
|
84
|
-
<div class="tb-menu-dropdown" id="settings-dropdown" hidden>
|
|
85
|
-
<span class="tb-menu-label">Theme</span>
|
|
86
|
-
<label class="tb-menu-item"><input type="radio" name="opt-theme" value="system" id="opt-theme-system"> System</label>
|
|
87
|
-
<label class="tb-menu-item"><input type="radio" name="opt-theme" value="light" id="opt-theme-light"> Light</label>
|
|
88
|
-
<label class="tb-menu-item"><input type="radio" name="opt-theme" value="dark" id="opt-theme-dark"> Dark</label>
|
|
89
|
-
<hr class="tb-menu-sep">
|
|
90
|
-
<span class="tb-menu-label">Editor</span>
|
|
91
|
-
<label class="tb-menu-item"><input type="radio" name="opt-editor" value="quill" id="opt-editor-quill" checked> Quill</label>
|
|
92
|
-
<label class="tb-menu-item"><input type="radio" name="opt-editor" value="tiptap" id="opt-editor-tiptap"> tiptap</label>
|
|
93
|
-
<hr class="tb-menu-sep">
|
|
94
|
-
<label class="tb-menu-item" title="Ghost-text completions while composing"><input type="checkbox" id="opt-autocomplete"> AI autocomplete</label>
|
|
95
|
-
<label class="tb-menu-item" title="Right-click in message body → Translate"><input type="checkbox" id="opt-ai-translate"> AI translate (off by default)</label>
|
|
96
|
-
<label class="tb-menu-item" title="Right-click in compose editor → Proofread"><input type="checkbox" id="opt-ai-proofread"> AI proofread (off by default)</label>
|
|
97
|
-
<hr class="tb-menu-sep">
|
|
98
|
-
<button class="tb-menu-item" id="btn-edit-jsonc" title="Edit accounts.jsonc / allowlist.jsonc / contacts.jsonc">Edit config files...</button>
|
|
99
|
-
<button class="tb-menu-item" id="btn-about" title="Show version and build info">About rmfmail...</button>
|
|
100
|
-
</div>
|
|
101
|
-
</div>
|
|
102
|
-
<button class="tb-btn" id="btn-tb-delete" title="Delete selected (Del)">🗑</button>
|
|
103
|
-
<button class="tb-btn" id="btn-tb-spam" title="Mark as spam — move to Junk">⚠</button>
|
|
104
|
-
<span id="app-version" class="app-version">rmfmail</span>
|
|
105
|
-
</div>
|
|
106
|
-
<div class="toolbar-right">
|
|
107
|
-
<button class="tb-btn" id="btn-sync" title="Sync all folders (F5)">
|
|
108
|
-
<span class="tb-icon">↻</span> Sync
|
|
109
|
-
</button>
|
|
110
|
-
<div class="tb-menu" id="restart-menu">
|
|
111
|
-
<button class="tb-btn" id="btn-restart" title="Reset">
|
|
112
|
-
<span class="tb-icon">⚡</span> Reset ▾
|
|
113
|
-
</button>
|
|
114
|
-
<div class="tb-menu-dropdown" id="restart-dropdown" hidden>
|
|
115
|
-
<button class="tb-menu-item" id="btn-restart-quick" title="Reload the page">Reload</button>
|
|
116
|
-
<button class="tb-menu-item" id="btn-rebuild" title="Wipe local cache and re-sync">Reset local store</button>
|
|
117
|
-
<button class="tb-menu-item" id="btn-factory-reset" title="Delete everything — accounts, settings, cache. Back to first-run.">Factory reset</button>
|
|
118
|
-
</div>
|
|
119
|
-
</div>
|
|
120
|
-
</div>
|
|
121
|
-
</header>
|
|
122
|
-
|
|
123
|
-
<div class="alert-banner" id="alert-banner" hidden>
|
|
124
|
-
<span id="alert-text"></span>
|
|
125
|
-
<button class="alert-dismiss" id="alert-dismiss" title="Dismiss">×</button>
|
|
126
|
-
</div>
|
|
127
|
-
|
|
128
|
-
<aside class="icon-rail" id="icon-rail" aria-label="App rail">
|
|
129
|
-
<div class="rail-top">
|
|
130
|
-
<button class="rail-btn" id="rail-compose" title="Compose" aria-label="Compose">✏</button>
|
|
131
|
-
<button class="rail-btn" id="rail-inbox" title="Inbox" aria-label="Inbox" data-active="true">✉</button>
|
|
132
|
-
<button class="rail-btn" id="rail-unified" title="All Inboxes" aria-label="All Inboxes">⌘</button>
|
|
133
|
-
<button class="rail-btn" id="rail-contacts" title="Contacts" aria-label="Contacts">👤</button>
|
|
134
|
-
<button class="rail-btn" id="rail-calendar" title="Calendar" aria-label="Calendar">📅</button>
|
|
135
|
-
<button class="rail-btn" id="rail-tasks" title="Tasks" aria-label="Tasks">☑</button>
|
|
136
|
-
</div>
|
|
137
|
-
<div class="rail-bottom">
|
|
138
|
-
<button class="rail-btn" id="rail-settings" title="Settings" aria-label="Settings">⚙</button>
|
|
139
|
-
<button class="rail-btn" id="rail-theme" title="Theme" aria-label="Theme">◐</button>
|
|
140
|
-
<button class="rail-btn" id="rail-help" title="Help" aria-label="Help">?</button>
|
|
141
|
-
</div>
|
|
142
|
-
</aside>
|
|
143
|
-
|
|
144
|
-
<div class="folder-panel">
|
|
145
|
-
<div class="ft-filter">
|
|
146
|
-
<input type="text" id="ft-filter-input" placeholder="Find folder..." autocomplete="off">
|
|
147
|
-
</div>
|
|
148
|
-
<nav class="folder-tree" id="folder-tree">
|
|
149
|
-
<div class="folder-loading">Loading accounts...</div>
|
|
150
|
-
</nav>
|
|
151
|
-
</div>
|
|
152
|
-
|
|
153
|
-
<main class="main-area">
|
|
154
|
-
<section class="message-list" id="message-list">
|
|
155
|
-
<search class="search-bar ml-search">
|
|
156
|
-
<select id="search-scope" title="Search scope">
|
|
157
|
-
<option value="all">All folders</option>
|
|
158
|
-
<option value="current">This folder</option>
|
|
159
|
-
</select>
|
|
160
|
-
<input type="search" id="search-input" placeholder="Search..." autocomplete="off" title="Search messages">
|
|
161
|
-
<label class="search-server-check" title="Also search the IMAP server"><input type="checkbox" id="search-server-too"> Server</label>
|
|
162
|
-
</search>
|
|
163
|
-
<div class="ml-folder-title" id="ml-folder-title"></div>
|
|
164
|
-
<div class="ml-header">
|
|
165
|
-
<span class="ml-col ml-col-avatar"></span>
|
|
166
|
-
<span class="ml-col ml-col-flag"></span>
|
|
167
|
-
<span class="ml-col ml-col-from" data-sort="from">From</span>
|
|
168
|
-
<span class="ml-col ml-col-date" data-sort="date">Date</span>
|
|
169
|
-
<span class="ml-col ml-col-subject">Subject</span>
|
|
170
|
-
</div>
|
|
171
|
-
<div class="ml-body" id="ml-body">
|
|
172
|
-
<div class="ml-empty">Select a folder to view messages</div>
|
|
173
|
-
</div>
|
|
174
|
-
</section>
|
|
175
|
-
|
|
176
|
-
<div class="splitter" id="splitter-h"></div>
|
|
177
|
-
|
|
178
|
-
<section class="message-viewer" id="message-viewer">
|
|
179
|
-
<div class="mv-header" id="mv-header" hidden>
|
|
180
|
-
<div class="mv-toolbar">
|
|
181
|
-
<button class="tb-btn btn-back-list" id="btn-back" title="Back to message list" hidden>← Inbox</button>
|
|
182
|
-
<button class="tb-btn" id="btn-reply" title="Reply">↩</button>
|
|
183
|
-
<button class="tb-btn" id="btn-reply-all" title="Reply All">↩↩</button>
|
|
184
|
-
<button class="tb-btn" id="btn-forward" title="Forward">→</button>
|
|
185
|
-
<button class="tb-btn" id="btn-delete" title="Delete">🗑</button>
|
|
186
|
-
<button class="tb-btn" id="btn-spam" title="Mark as spam" hidden>⚠</button>
|
|
187
|
-
<button class="tb-btn" id="btn-flag" title="Flag">⚑</button>
|
|
188
|
-
<button class="tb-btn" id="btn-mark-unread" title="Mark unread">◉</button>
|
|
189
|
-
<span style="flex:1"></span>
|
|
190
|
-
<button class="mv-action mv-action-primary" id="mv-edit-draft" hidden>Edit & Send</button>
|
|
191
|
-
<a class="mv-unsubscribe" id="mv-unsubscribe" hidden>Unsubscribe</a>
|
|
192
|
-
<button class="mv-action" id="mv-toggle-details" title="Show/hide extra headers">Details</button>
|
|
193
|
-
</div>
|
|
194
|
-
<div class="mv-header-info">
|
|
195
|
-
<div class="mv-from"></div>
|
|
196
|
-
<div class="mv-to"></div>
|
|
197
|
-
</div>
|
|
198
|
-
<div class="mv-subject"></div>
|
|
199
|
-
<div class="mv-date"></div>
|
|
200
|
-
<div class="mv-details" id="mv-details" hidden></div>
|
|
201
|
-
</div>
|
|
202
|
-
<div class="mv-body" id="mv-body">
|
|
203
|
-
<div class="mv-empty">Select a message to read</div>
|
|
204
|
-
</div>
|
|
205
|
-
<div class="mv-attachments" id="mv-attachments" hidden></div>
|
|
206
|
-
</section>
|
|
207
|
-
</main>
|
|
208
|
-
|
|
209
|
-
<footer class="status-bar" id="status-bar">
|
|
210
|
-
<span id="status-accounts"></span>
|
|
211
|
-
<span id="status-sync">Initializing...</span>
|
|
212
|
-
<span id="status-offline" class="status-offline" hidden title="No network — local actions queue for later">⚡ offline</span>
|
|
213
|
-
<span id="status-diag" class="status-diag" hidden title=""></span>
|
|
214
|
-
<span id="status-pending"></span>
|
|
215
|
-
<span id="status-queue"></span>
|
|
216
|
-
<span class="app-version" id="status-version">rmfmail</span>
|
|
217
|
-
</footer>
|
|
218
|
-
|
|
219
|
-
<div id="startup-overlay" class="startup-overlay">
|
|
220
|
-
<div class="startup-content">
|
|
221
|
-
<div class="startup-spinner"></div>
|
|
222
|
-
<div id="startup-status">Initializing rmfmail...</div>
|
|
223
|
-
</div>
|
|
224
|
-
</div>
|
|
225
|
-
</body>
|
|
226
|
-
</html>
|