@ketvietlab/design-system 0.1.25 → 0.1.30

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (208) hide show
  1. package/README.md +130 -5
  2. package/dist/atlas/island-runtime.d.mts +2 -0
  3. package/dist/atlas/island-runtime.d.mts.map +1 -0
  4. package/dist/atlas/island-runtime.mjs +2 -0
  5. package/dist/atlas/island-runtime.mjs.map +1 -0
  6. package/dist/atlas/relation-select-hydration.d.ts +2 -0
  7. package/dist/atlas/relation-select-hydration.d.ts.map +1 -0
  8. package/dist/atlas/relation-select-hydration.js +40 -0
  9. package/dist/atlas/relation-select-hydration.js.map +1 -0
  10. package/dist/atlas-cli.d.ts.map +1 -1
  11. package/dist/atlas-cli.js +28 -10
  12. package/dist/atlas-cli.js.map +1 -1
  13. package/dist/catalogue/date-pickers.d.ts +6 -0
  14. package/dist/catalogue/date-pickers.d.ts.map +1 -0
  15. package/dist/catalogue/date-pickers.js +16 -0
  16. package/dist/catalogue/date-pickers.js.map +1 -0
  17. package/dist/catalogue/index.d.ts +7 -2
  18. package/dist/catalogue/index.d.ts.map +1 -1
  19. package/dist/catalogue/index.js +20 -4
  20. package/dist/catalogue/index.js.map +1 -1
  21. package/dist/catalogue/inventory-policy.json +49 -0
  22. package/dist/catalogue/inventory.generated.js +1 -1
  23. package/dist/catalogue/inventory.generated.js.map +1 -1
  24. package/dist/catalogue/inventory.generated.json +2815 -1108
  25. package/dist/catalogue/layering.d.ts +10 -0
  26. package/dist/catalogue/layering.d.ts.map +1 -0
  27. package/dist/catalogue/layering.js +67 -0
  28. package/dist/catalogue/layering.js.map +1 -0
  29. package/dist/catalogue/primitives.css +77 -0
  30. package/dist/catalogue/primitives.d.ts +34 -0
  31. package/dist/catalogue/primitives.d.ts.map +1 -0
  32. package/dist/catalogue/primitives.js +149 -0
  33. package/dist/catalogue/primitives.js.map +1 -0
  34. package/dist/catalogue/registry.d.ts.map +1 -1
  35. package/dist/catalogue/registry.js +18 -0
  36. package/dist/catalogue/registry.js.map +1 -1
  37. package/dist/catalogue/specimens.d.ts.map +1 -1
  38. package/dist/catalogue/specimens.js +142 -22
  39. package/dist/catalogue/specimens.js.map +1 -1
  40. package/dist/catalogue/styles.css +1 -0
  41. package/dist/contract/index.d.ts +2 -0
  42. package/dist/contract/index.d.ts.map +1 -1
  43. package/dist/contract/index.js +11 -0
  44. package/dist/contract/index.js.map +1 -1
  45. package/dist/contract/layout-audit.d.ts +32 -0
  46. package/dist/contract/layout-audit.d.ts.map +1 -0
  47. package/dist/contract/layout-audit.js +204 -0
  48. package/dist/contract/layout-audit.js.map +1 -0
  49. package/dist/forms/date-time/date-math.d.ts +23 -0
  50. package/dist/forms/date-time/date-math.d.ts.map +1 -0
  51. package/dist/forms/date-time/date-math.js +83 -0
  52. package/dist/forms/date-time/date-math.js.map +1 -0
  53. package/dist/forms/date-time/index.d.ts +37 -6
  54. package/dist/forms/date-time/index.d.ts.map +1 -1
  55. package/dist/forms/date-time/index.js +140 -6
  56. package/dist/forms/date-time/index.js.map +1 -1
  57. package/dist/forms/date-time/runtime.d.ts +4 -0
  58. package/dist/forms/date-time/runtime.d.ts.map +1 -0
  59. package/dist/forms/date-time/runtime.js +637 -0
  60. package/dist/forms/date-time/runtime.js.map +1 -0
  61. package/dist/forms/date-time/styles.css +251 -12
  62. package/dist/foundations/tokens.css +48 -28
  63. package/dist/index.d.ts +15 -4
  64. package/dist/index.d.ts.map +1 -1
  65. package/dist/index.js +8 -3
  66. package/dist/index.js.map +1 -1
  67. package/dist/interactions/ket-table/demo.d.ts +4 -0
  68. package/dist/interactions/ket-table/demo.d.ts.map +1 -0
  69. package/dist/interactions/ket-table/demo.js +147 -0
  70. package/dist/interactions/ket-table/demo.js.map +1 -0
  71. package/dist/interactions/ket-table/index.d.ts +199 -0
  72. package/dist/interactions/ket-table/index.d.ts.map +1 -0
  73. package/dist/interactions/ket-table/index.js +376 -0
  74. package/dist/interactions/ket-table/index.js.map +1 -0
  75. package/dist/interactions/ket-table/styles.css +282 -0
  76. package/dist/interactions/lightbox/demo.d.ts +3 -0
  77. package/dist/interactions/lightbox/demo.d.ts.map +1 -0
  78. package/dist/interactions/lightbox/demo.js +21 -0
  79. package/dist/interactions/lightbox/demo.js.map +1 -0
  80. package/dist/interactions/lightbox/index.d.ts +58 -0
  81. package/dist/interactions/lightbox/index.d.ts.map +1 -0
  82. package/dist/interactions/lightbox/index.js +220 -0
  83. package/dist/interactions/lightbox/index.js.map +1 -0
  84. package/dist/interactions/lightbox/styles.css +153 -0
  85. package/dist/interactions/relation-select/demo.d.ts +3 -0
  86. package/dist/interactions/relation-select/demo.d.ts.map +1 -0
  87. package/dist/interactions/relation-select/demo.js +36 -0
  88. package/dist/interactions/relation-select/demo.js.map +1 -0
  89. package/dist/interactions/relation-select/index.d.ts +87 -0
  90. package/dist/interactions/relation-select/index.d.ts.map +1 -0
  91. package/dist/interactions/relation-select/index.js +307 -0
  92. package/dist/interactions/relation-select/index.js.map +1 -0
  93. package/dist/interactions/relation-select/styles.css +299 -0
  94. package/dist/interactions/reorder-list/index.d.ts +23 -0
  95. package/dist/interactions/reorder-list/index.d.ts.map +1 -0
  96. package/dist/interactions/reorder-list/index.js +15 -0
  97. package/dist/interactions/reorder-list/index.js.map +1 -0
  98. package/dist/interactions/reorder-list/runtime.d.ts +5 -0
  99. package/dist/interactions/reorder-list/runtime.d.ts.map +1 -0
  100. package/dist/interactions/reorder-list/runtime.js +85 -0
  101. package/dist/interactions/reorder-list/runtime.js.map +1 -0
  102. package/dist/interactions/reorder-list/styles.css +33 -0
  103. package/dist/interactions/search-filter/demo.d.ts +3 -0
  104. package/dist/interactions/search-filter/demo.d.ts.map +1 -0
  105. package/dist/interactions/search-filter/demo.js +74 -0
  106. package/dist/interactions/search-filter/demo.js.map +1 -0
  107. package/dist/interactions/search-filter/index.d.ts +153 -0
  108. package/dist/interactions/search-filter/index.d.ts.map +1 -0
  109. package/dist/interactions/search-filter/index.js +824 -0
  110. package/dist/interactions/search-filter/index.js.map +1 -0
  111. package/dist/interactions/search-filter/styles.css +568 -0
  112. package/dist/layout-audit-cli.d.ts +7 -0
  113. package/dist/layout-audit-cli.d.ts.map +1 -0
  114. package/dist/layout-audit-cli.js +63 -0
  115. package/dist/layout-audit-cli.js.map +1 -0
  116. package/dist/layouts/app-navigation/index.d.ts +11 -5
  117. package/dist/layouts/app-navigation/index.d.ts.map +1 -1
  118. package/dist/layouts/app-navigation/index.js +5 -3
  119. package/dist/layouts/app-navigation/index.js.map +1 -1
  120. package/dist/layouts/app-navigation/styles.css +47 -0
  121. package/dist/layouts/grouped/styles.css +5 -36
  122. package/dist/layouts/layering/styles.css +159 -0
  123. package/dist/layouts/layout/index.d.ts +6 -0
  124. package/dist/layouts/layout/index.d.ts.map +1 -1
  125. package/dist/layouts/layout/index.js +6 -1
  126. package/dist/layouts/layout/index.js.map +1 -1
  127. package/dist/layouts/layout/styles.css +15 -6
  128. package/dist/layouts/page-identity/index.d.ts +10 -7
  129. package/dist/layouts/page-identity/index.d.ts.map +1 -1
  130. package/dist/layouts/page-identity/index.js +9 -4
  131. package/dist/layouts/page-identity/index.js.map +1 -1
  132. package/dist/layouts/shell/index.d.ts +34 -1
  133. package/dist/layouts/shell/index.d.ts.map +1 -1
  134. package/dist/layouts/shell/index.js +26 -3
  135. package/dist/layouts/shell/index.js.map +1 -1
  136. package/dist/layouts/shell/styles.css +284 -2
  137. package/dist/patterns/board-page/index.d.ts +1 -1
  138. package/dist/patterns/board-page/index.d.ts.map +1 -1
  139. package/dist/patterns/board-page/index.js +0 -1
  140. package/dist/patterns/board-page/index.js.map +1 -1
  141. package/dist/patterns/board-page/styles.css +0 -12
  142. package/dist/patterns/dashboard-page/index.d.ts +1 -1
  143. package/dist/patterns/dashboard-page/index.d.ts.map +1 -1
  144. package/dist/patterns/dashboard-page/index.js +0 -1
  145. package/dist/patterns/dashboard-page/index.js.map +1 -1
  146. package/dist/patterns/dashboard-page/styles.css +0 -13
  147. package/dist/patterns/data-table/styles.css +1 -1
  148. package/dist/patterns/form-page/index.d.ts +1 -1
  149. package/dist/patterns/form-page/index.d.ts.map +1 -1
  150. package/dist/patterns/form-page/index.js +0 -1
  151. package/dist/patterns/form-page/index.js.map +1 -1
  152. package/dist/patterns/form-page/styles.css +0 -12
  153. package/dist/patterns/list-page/index.d.ts +10 -4
  154. package/dist/patterns/list-page/index.d.ts.map +1 -1
  155. package/dist/patterns/list-page/index.js +10 -8
  156. package/dist/patterns/list-page/index.js.map +1 -1
  157. package/dist/patterns/list-page/responsive.css +1 -13
  158. package/dist/patterns/list-page/styles.css +20 -20
  159. package/dist/patterns/modal-sheet/index.d.ts +2 -0
  160. package/dist/patterns/modal-sheet/index.d.ts.map +1 -1
  161. package/dist/patterns/modal-sheet/index.js +3 -1
  162. package/dist/patterns/modal-sheet/index.js.map +1 -1
  163. package/dist/patterns/modal-sheet/styles.css +1 -1
  164. package/dist/patterns/page-shell/styles.css +0 -12
  165. package/dist/patterns/record-form/styles.css +34 -0
  166. package/dist/patterns/record-page/index.d.ts +1 -2
  167. package/dist/patterns/record-page/index.d.ts.map +1 -1
  168. package/dist/patterns/record-page/index.js +2 -3
  169. package/dist/patterns/record-page/index.js.map +1 -1
  170. package/dist/patterns/record-page/styles.css +0 -12
  171. package/dist/patterns/workspace-page/index.d.ts +1 -2
  172. package/dist/patterns/workspace-page/index.d.ts.map +1 -1
  173. package/dist/patterns/workspace-page/index.js +0 -1
  174. package/dist/patterns/workspace-page/index.js.map +1 -1
  175. package/dist/primitives/actions/index.d.ts +4 -0
  176. package/dist/primitives/actions/index.d.ts.map +1 -1
  177. package/dist/primitives/actions/index.js +2 -2
  178. package/dist/primitives/actions/index.js.map +1 -1
  179. package/dist/primitives/actions/styles.css +3 -1
  180. package/dist/primitives/feedback/styles.css +11 -6
  181. package/dist/primitives/field/index.d.ts +5 -0
  182. package/dist/primitives/field/index.d.ts.map +1 -1
  183. package/dist/primitives/field/index.js +1 -1
  184. package/dist/primitives/field/index.js.map +1 -1
  185. package/dist/primitives/field/native-control.d.ts.map +1 -1
  186. package/dist/primitives/field/native-control.js +3 -3
  187. package/dist/primitives/field/native-control.js.map +1 -1
  188. package/dist/primitives/field/styles.css +124 -2
  189. package/dist/primitives/progress/styles.css +3 -0
  190. package/dist/primitives/status/index.d.ts +12 -1
  191. package/dist/primitives/status/index.d.ts.map +1 -1
  192. package/dist/primitives/status/index.js +16 -1
  193. package/dist/primitives/status/index.js.map +1 -1
  194. package/dist/primitives/status/styles.css +34 -2
  195. package/dist/record/display/index.d.ts +6 -0
  196. package/dist/record/display/index.d.ts.map +1 -1
  197. package/dist/record/display/index.js +6 -1
  198. package/dist/record/display/index.js.map +1 -1
  199. package/dist/record/display/styles.css +25 -0
  200. package/dist/record/formatted-values/index.d.ts +2 -1
  201. package/dist/record/formatted-values/index.d.ts.map +1 -1
  202. package/dist/record/formatted-values/index.js +2 -1
  203. package/dist/record/formatted-values/index.js.map +1 -1
  204. package/dist/runtime/index.d.ts.map +1 -1
  205. package/dist/runtime/index.js +132 -2
  206. package/dist/runtime/index.js.map +1 -1
  207. package/dist/styles.css +1 -1
  208. package/package.json +4 -3
package/README.md CHANGED
@@ -25,6 +25,94 @@ Load `@ketvietlab/design-system/styles.css` and put `data-kv-design-system` on t
25
25
  application root. Components own their markup and `data-ui` hooks; applications
26
26
  provide business data and translated labels.
27
27
 
28
+ ### Primitive harness
29
+
30
+ Run `npm run design:system` and open `/primitives` for a comparison surface of every
31
+ registered primitive. The catalogue rail links to it. `theme=light|dark|system`,
32
+ `density=compact|default|comfortable`, and `tab=overview|activity` are URL-backed;
33
+ theme and density changes retain the navigation specimen's active tab.
34
+
35
+ The six families cover action hierarchy and sizes, loading/disabled states,
36
+ semantic tones, long labels and identifiers, field validation/access states,
37
+ native choices, route navigation, feedback, and progress boundaries. Use keyboard
38
+ Tab/Shift+Tab for focus, Space for checkboxes, arrow keys for radio/select controls,
39
+ and Enter for the breadcrumb disclosure and route links. Compare at 390px, 768px
40
+ and 1440px in both themes and all three densities. A text action and an icon action
41
+ of the same size must share a height; fields must align and content must stay inside
42
+ its sample at narrow widths. The harness deliberately leaves actions as specimens;
43
+ it does not simulate saving or creating records.
44
+
45
+ `PrimitiveHarness` and `primitiveSections` are available from the `/catalogue`
46
+ entry. Its `primitive-harness`, `primitive-section`, `primitive-section-head`,
47
+ `primitive-row`, `primitive-caption`, and `primitive-sample` hooks own only the
48
+ comparison layout. Component internals use the same production CSS as consumers.
49
+ Notices keep their icon beside the copy and move actions beneath it when the
50
+ notice itself is narrow. Action icons, spinners and tag remove links do not shrink;
51
+ long tags wrap and progress percentages remain intact.
52
+ Select keeps the native picker and keyboard behaviour. Its field-owned chevron
53
+ has a token-based inset, reserves space for long values, follows disabled colour,
54
+ and moves with the control when labels stack. Vertical option groups align their
55
+ label with the first option; checkbox/radio controls have no browser margin.
56
+
57
+ ### Date pickers
58
+
59
+ Open `/dates` for the focused Vietnamese playground (`states=1` expands validation/access examples), or the `date-time` specimen
60
+ under `/components/form-controls`. `DatePicker` keeps its native date input. `DateRangePicker` combines one read-only range display with a calendar icon inside the same frame as DatePicker. Two hidden boundaries retain the existing names and ISO values. The runtime enforces required, min/max and step; read-only, disabled, help and field errors remain supported. Submission stays `YYYY-MM-DD`.
61
+ `DateTimePicker` and `TimePicker` retain their native local-time controls.
62
+
63
+ Load `/runtime/auto.js` alongside the stylesheet, or call
64
+ `attachDesignSystemInteractions(root)` from `/runtime` and dispose its returned
65
+ cleanup when the root is removed. The runtime also enhances fields inserted later.
66
+ Without JavaScript or the native Popover API, DatePicker retains its native input; DateRangePicker displays and submits its saved boundaries but cannot edit them.
67
+ Server views never read the clock or access the DOM.
68
+
69
+ ```tsx
70
+ <DatePicker id="delivery" name="delivery" label="Ngày giao hàng" />
71
+ <DateRangePicker
72
+ id="period" label="Thời gian báo cáo"
73
+ start={{ id: 'from', name: 'from' }} startLabel="Từ ngày"
74
+ end={{ id: 'to', name: 'to' }} endLabel="Đến ngày"
75
+ />
76
+ ```
77
+
78
+ The range calendar header select offers **Hôm nay**, **Hôm qua**, **7 ngày qua**, **Tháng này**,
79
+ **Tháng trước**, **30 ngày qua**, and **90 ngày qua**. Rolling ranges include today;
80
+ month presets cover the entire calendar month. `today="2026-09-30"` supplies a
81
+ business-timezone civil date; otherwise the browser reads local today on opening.
82
+ `presets={false}` hides quick ranges, or pass an ordered subset of `DateRangePreset`
83
+ IDs: `today`, `yesterday`, `last7`, `thisMonth`, `lastMonth`, `last30`, `last90`.
84
+ Presets outside either input's bounds or step are disabled, never silently clamped.
85
+
86
+ Click two dates to form an inclusive range; reverse selection is ordered. Both
87
+ calendars hold a draft until **Áp dụng** updates the fields and emits bubbling
88
+ `input` and `change` events. **Hủy**, Escape and outside dismissal discard that draft.
89
+ Choosing a preset commits immediately. Activating the range display opens the calendar. Invalid or incomplete required ranges show a field error and block form submission. Reset restores the original values.
90
+
91
+ Arrow keys move by day/week; Home/End move to week edges; PageUp/PageDown move by
92
+ month (Shift changes year). Enter/Space selects. Tab can leave the non-modal popup;
93
+ Escape, Cancel and Apply return focus to its opener. Range calendars show two months
94
+ on desktop. Below 768px, a vertical list renders twelve consecutive months around the
95
+ selection; scrolling preserves the draft and month navigation recenters that window. Both pickers become fullscreen modal dialogs on mobile,
96
+ with fixed commands, a scrolling month list, safe-area insets, contained focus,
97
+ and an inert, scroll-locked background. Desktop calendars remain anchored non-modal
98
+ popups. The native top-layer popup avoids ancestor clipping.
99
+ `locale="vi"` is the default (`en` is also supported); `weekStartsOn` accepts 0 or 1
100
+ (Monday by default). `calendarLabels` overrides commands, status and preset labels;
101
+ it does not change the browser's native date-input formatting.
102
+
103
+ The `date-picker` / `date-range` hooks own composition; `date-inputs`,
104
+ `date-control-row`, `date-tools`, `date-field-control`, `date-range-preset`, `date-boundary` and `date-range-error` own the control area. The shared Field supports `labelHidden`, `selectionHidden` (select chevron only, options remain readable) and `appearance="embedded"` for accessible compound controls.
105
+ `date-calendar`, `date-calendar-head`, `date-calendar-title`, `date-calendar-body`,
106
+ `date-calendar-months`, `date-month`, `date-month-title`, `date-grid`,
107
+ `date-weekday`, `date-cell`, `date-day`, `date-calendar-footer` and
108
+ `date-calendar-status` own the popup. `data-selected`, `data-in-range`,
109
+ `aria-current="date"` and native disabled states define calendar styling; consumers
110
+ compose the public components rather than targeting their descendants.
111
+
112
+ [LAYOUT.md](./LAYOUT.md) holds the layout rules: where a frame, a heading and a gap
113
+ go, which the components apply by themselves and which `ket-design-system-layout-audit`
114
+ checks in application CSS. Read it before composing a screen or overriding a style.
115
+
28
116
  Compose content with unframed `Section`, `Stack` and `Grid`. `DataTable`, `Metric`
29
117
  and `ContentCard` already own their surfaces; do not wrap them in `Surface` or
30
118
  another card. Reserve `Surface` for unframed content that needs a working panel,
@@ -38,6 +126,8 @@ For titled working blocks, use `Surface title="..." body={form}` or
38
126
  `DataTable title="..."`. The title sits inside the panel at 18px (`--kv-text-xl`),
39
127
  with optional `actions` beside it. A titled table owns one panel, with a borderless,
40
128
  transparent scrolling viewport inside; never wrap it in another `Surface`.
129
+ Inside a white region (a surface, modal, dialog, popover or card) a `Surface` or
130
+ titled table renders flat, as a section of that region (LAYOUT.md L2).
41
131
  The title is retained in its empty state, with optional `emptyActions` for recovery.
42
132
  Omitting `title` preserves the existing unheaded form surface or standalone table.
43
133
 
@@ -84,8 +174,9 @@ returns them exactly where they were.
84
174
  ### Option groups
85
175
 
86
176
  `checkbox-group` and `radio` fields (`CheckboxGroup`, `RadioGroup`, or `RecordForm`
87
- fields with those types) keep one label on the left and the options on the right,
88
- each option's text after its control. `optionsOrientation` sets how the options flow:
177
+ fields with those types) keep one label on the left and the options on the right
178
+ from tablet width up (above them below it, as every field does), each option's text
179
+ after its control. `optionsOrientation` sets how the options flow:
89
180
 
90
181
  - `horizontal` (default): options wrap on one line. Use for a few short choices.
91
182
  - `vertical`: one option per line, rendered as `data-orientation="vertical"` on
@@ -95,6 +186,35 @@ each option's text after its control. `optionsOrientation` sets how the options
95
186
  Do not restyle `field-options` in an application to stack options; pass
96
187
  `optionsOrientation: 'vertical'` instead.
97
188
 
189
+ ### Relation pickers
190
+
191
+ `RelationSelect` (`createRelationSelectView`/`relationSelect`) is a live client
192
+ island, unlike the rest of the package's progressively enhanced controls: it owns
193
+ its own state and calls `/_ket/fn/<name>` itself through `RelationSelectConfig.manager`
194
+ (`listFunction`, optional `saveFunction`/`removeFunction`). A consuming app mounts
195
+ it through its own island runtime (`defineIsland` in `@ketvietlab/ketjs-view`) and
196
+ supplies a JSON-serializable config; nothing about it depends on server-rendered
197
+ markup, so it may be cold-mounted anywhere the host places a matching island
198
+ element — including inside a view that is itself already client-rendered, such as
199
+ a modal a JavaScript runtime opened — not only hydrated from the page's initial HTML.
200
+
201
+ Its option rows (`relation-option`, `relation-dialog-row`) show the current
202
+ selection as a trailing mark on the label's own line, never on a line of its own
203
+ below a description. The dialog's "more" action is a full-width row like the
204
+ options above it, not a chip-sized button; a consumer overriding the footer should
205
+ widen it to match, not narrow it to its label's content.
206
+
207
+ Its inline dropdown is not a `<details>`, so the shared outside-click delegator
208
+ (above) does not see it; the component closes it on an outside click itself,
209
+ same contract, different mechanism. Choosing a value also fires a real `change`
210
+ on the hidden native select (bubbling, a microtask after the choice settles) so
211
+ a host page's own `change`-driven wiring keeps working — a second field whose
212
+ options depend on this one's choice can key off it exactly as it would a plain
213
+ `<select>`. Rendering the picker itself through `each`, keyed on whatever the
214
+ dependency is, is what a host needs to swap it for a fresh instance when that
215
+ key changes: the component holds no `update()`, so a config change alone (a new
216
+ `manager.listInput`, a new options list) never reaches an already-mounted one.
217
+
98
218
  The app structure is demonstrated with `AppNavigation` and four practical layouts inside `AppShell`:
99
219
  collection (`ListPage`), record (`RecordPage`), flow workspace (`WorkspacePage`
100
220
  with `layout="flow"`), and canvas workspace (`WorkspacePage` with
@@ -215,6 +335,10 @@ separate navigable record. Do not wrap a whole page or arbitrary sections in car
215
335
  Grouped layouts use 8px between cards and 12px padding around each entire card,
216
336
  including its heading and body. Page gutters and heading-to-body spacing are 12px.
217
337
  Field and table-row density is unchanged.
338
+ Buttons, inputs, selects and topbar launchers are the same height at every viewport width:
339
+ density decides it, not the screen, so a button always lines up with the field beside it.
340
+ Below tablet width only rows a finger scrolls through (navigation items, menu items, table
341
+ selection) take the 44px touch height.
218
342
  Collection paging lives in `ListChrome.pager` above the table, alongside search and bulk controls.
219
343
  The demo shows the visible record range and previous/next links, with no page-number strip or
220
344
  separate `ListPage.footer` pagination panel. Paging, search and status filters preserve the
@@ -257,9 +381,10 @@ Linked cells are display-only. Associate `selection.form` and `bulk.form` with t
257
381
  same native form to submit selected IDs and the bulk command. Selection syncing
258
382
  and select-all remain application runtime responsibilities.
259
383
 
260
- Forms keep labels on the left and controls on the right, including on mobile.
261
- Help and errors align below the control. Narrow panels reduce the number of field
262
- pairs per row without stacking labels above inputs. Native inputs support `readOnly`,
384
+ From tablet width (48rem) up, a form keeps each label on the left of its control,
385
+ with help and errors below the control. Below tablet width, and in any column
386
+ narrower than 28rem such as a side panel, each label sits above its control
387
+ (LAYOUT.md L7). A lone checkbox keeps its label beside the box. Native inputs support `readOnly`,
263
388
  `min` and `max`; choices can be disabled individually, and invalid nested groups
264
389
  open automatically. Give repeated search/sort controls unique IDs. Loading links
265
390
  are disabled, and empty query rows do not occupy space.
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=island-runtime.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"island-runtime.d.mts","sourceRoot":"","sources":["../../../../../packages/design-system/src/atlas/island-runtime.mjs"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ // @ts-nocheck Generated by tools/build-design-system-atlas-runtime.mjs — do not edit.
2
+ "use strict";(()=>{var j=null,Se=0,C=new Set,ue=!1;function A(t){let e=t,n=new Set,s=(()=>(j&&(n.add(j),j.deps.add(n)),e));return s.set=o=>{let r=typeof o=="function"?o(e):o;if(Object.is(r,e))return e;e=r;for(let i of n)C.add(i);return Se===0&&st(),e},s.peek=()=>e,s}function st(){if(!(ue||Se>0)){ue=!0;try{for(;C.size;){let t;for(let e of C)if(e.computed){t=e;break}if(t??=C.values().next().value,!t)break;C.delete(t),Ne(t)}}finally{ue=!1}}}function Ne(t){if(t.disposed)return;let e=t.cleanup;t.cleanup=null;for(let s of t.deps)s.delete(t);t.deps.clear(),e?.();let n=j;j=t;try{let s=t.fn();typeof s=="function"&&(t.cleanup=s)}finally{j=n}}function rt(t,e){let n={fn:t,deps:new Set,disposed:!1,cleanup:null,computed:e};try{Ne(n)}catch(s){n.disposed=!0,C.delete(n);for(let o of n.deps)o.delete(n);throw n.deps.clear(),n.cleanup?.(),n.cleanup=null,s}return()=>{n.disposed=!0,C.delete(n);for(let s of n.deps)s.delete(n);n.deps.clear(),n.cleanup?.(),n.cleanup=null}}function _(t){return rt(t,!1)}var Ae=new RegExp("\uFFFC(\\d+)\uFFFC"),U=class extends Error{code="E_TEMPLATE_HOLE";hint;constructor(e,n){super(e),this.name="TemplateError",this.hint=n}},He=t=>t.includes("\uFFFC"),lt=new Set(["area","base","br","col","embed","hr","img","input","link","meta","source","track","wbr"]);function dt(t){let e=t.reduce((c,l,u)=>c+l+(u<t.length-1?"\uFFFC"+u+"\uFFFC":""),""),n=0,s={type:"root",children:[]},o=[s],r=()=>o[o.length-1],i=c=>{let l=c;for(;;){if(!l)return;let u=Ae.exec(l);if(!u){r().children.push({type:"text",value:l});return}u.index>0&&r().children.push({type:"text",value:l.slice(0,u.index)}),r().children.push({type:"hole",index:Number(u[1])}),l=l.slice(u.index+u[0].length)}};for(;n<e.length;){let c=e.indexOf("<",n);if(c===-1){i(e.slice(n));break}if(i(e.slice(n,c)),e.startsWith("<!--",c)){n=e.indexOf("-->",c)+3;continue}if(e[c+1]==="/"){let h=e.indexOf(">",c);o.length>1&&o.pop(),n=h+1;continue}let l=c+1;for(;l<e.length&&/[^\s/>]/.test(e[l]);)l++;let u=e.slice(c+1,l);if(He(u))throw new U("an element name cannot be a hole","the tag decides the shape of the tree, which is fixed per call site \u2014 branch with when() and write each tag out");let m=[];for(;;){for(;l<e.length&&/\s/.test(e[l]);)l++;if(e[l]===">"||e.startsWith("/>",l))break;let h=l;for(;h<e.length&&/[^\s=/>]/.test(e[h]);)h++;let p=e.slice(l,h);if(He(p))throw new U("an attribute name cannot be a hole","a hole fills an attribute value; to add an attribute conditionally, pass null as its value");if(!p){l=h+1;continue}for(;h<e.length&&/\s/.test(e[h]);)h++;if(e[h]!=="="){m.push({name:p,value:""}),l=h;continue}for(h++;h<e.length&&/\s/.test(e[h]);)h++;let R,v=e[h];if(v==='"'||v==="'"){let k=e.indexOf(v,h+1);R=e.slice(h+1,k),h=k+1}else{let k=h;for(;k<e.length&&!/[\s/>]/.test(e[k]);)k++;R=e.slice(h,k),h=k}let w=Ae.exec(R);if(w&&w[0]!==R)throw new U(`an attribute takes a whole value or none: "${p}" mixes a hole with static text`,`write ${p}=\${...} and build the whole value in the expression, not "text \${...}"`);w?m.push({name:p,hole:Number(w[1])}):m.push({name:p,value:R}),l=h}let b=e.startsWith("/>",l),d=e.indexOf(">",l),f={type:"el",tag:u,attrs:m,children:[]};r().children.push(f),!b&&!lt.has(u)&&o.push(f),n=d+1}return s}var Ve=new WeakMap;function ce(t){let e=Ve.get(t);return e||(e=dt(t),Ve.set(t,e)),e}var pe="http://www.w3.org/2000/svg";function me(t=globalThis.document){let e=n=>n;return{ops:null,createElement:(n,s)=>s&&t.createElementNS?t.createElementNS(s,n):t.createElement(n),createText:n=>t.createTextNode(String(n)),setText:(n,s)=>{e(n).data=String(s)},setAttribute:(n,s,o)=>{o==null||o===!1?e(n).removeAttribute(s):e(n).setAttribute(s,String(o))},insert:(n,s,o=null)=>{e(n).insertBefore(s,o)},insertMarkup:(n,s,o=null)=>{let r;if(t.parseHTML)r=t.parseHTML(s);else{let c=t.createElement("template");c.innerHTML=s,r=c.content}let i=[...r.childNodes];for(let c of i)e(n).insertBefore(c,o);return i},move:(n,s,o=null)=>{e(n).insertBefore(s,o)},remove:n=>{e(n).remove()},listen:(n,s,o)=>{let r=n;return r.addEventListener(s,o),()=>r.removeEventListener(s,o)}}}var J="ket-island",K="data-ket-island",ee=`${J},div[${K}]`;var X="k",te="k[";var ne=t=>typeof t=="object"&&t!==null&&typeof t.html=="string"&&ut in t,ut=Symbol.for("ket.markup");var ct={tbody:"table",thead:"table",tfoot:"table",tr:"tbody",html:"(document)",head:"html",body:"html"},F=class extends Error{code="E_HYDRATION_MISMATCH";hint;constructor(e,n,s){super(`hydration mismatch at ${e}: expected ${n}, found ${s}`);let o=Object.keys(ct).find(r=>s.includes(`<${r}>`));this.hint=o?`the HTML parser inserted <${o}> on its own \u2014 write it in the template so the server and the browser agree`:"the markup does not match the template that rendered it; fall back to a clean client render"}};var Fe=Symbol("ket.result"),Pe=Symbol("ket.each");function re(t,...e){return{[Fe]:!0,strings:t,values:e}}var B=t=>!!t?.[Fe];function P(t,e,n){return{[Pe]:!0,items:[...t],keyOf:e,render:n}}var z=t=>!!t?.[Pe];var oe="on:",Ce=t=>t.startsWith(oe);function Me(t,e,n,s){let o={fn:typeof s=="function"?s:null};return{event:!0,detach:t.listen(e,n.slice(oe.length),i=>o.fn?.(i)),box:o}}var W=class{attr=!1;host;parent;anchor;kind=null;node=null;child=null;keyed=null;keys=[];markupNodes=[];markupHtml="";namespace;constructor(e,n,s,o){this.host=e,this.parent=n,this.anchor=s,this.namespace=o}clear(){if(this.node&&(this.host.remove(this.node),this.node=null),this.child&&(this.child.remove(),this.child=null),this.keyed){for(let e of this.keyed.values())e.remove();this.keyed=null,this.keys=[]}for(let e of this.markupNodes)this.host.remove(e);this.markupNodes=[],this.markupHtml="",this.kind=null}disposeBehavior(){if(this.child?.dispose(!1),this.keyed)for(let e of this.keyed.values())e.dispose(!1)}firstNode(){return this.kind==="text"&&this.node?this.node:this.kind==="result"&&this.child?this.child.firstNode()??this.anchor:this.kind==="each"&&this.keyed&&this.keys.length?this.keyed.get(this.keys[0])?.firstNode()??this.anchor:this.kind==="markup"&&this.markupNodes.length?this.markupNodes[0]:this.anchor}commit(e){if(B(e)){this.commitResult(e);return}if(z(e)){this.commitEach(e);return}if(ne(e)){this.commitMarkup(e.html);return}this.commitText(e)}commitMarkup(e){this.kind==="markup"&&this.markupHtml===e||(this.clear(),this.kind="markup",this.markupHtml=e,this.markupNodes=this.host.insertMarkup(this.parent,e,this.anchor))}commitText(e){let n=e==null||e===!1?"":String(e);if(this.kind==="text"&&this.node){this.node.text!==n&&this.host.setText(this.node,n);return}this.clear(),this.kind="text",this.node=this.host.createText(n),this.host.insert(this.parent,this.node,this.anchor)}commitResult(e){if(this.kind==="result"&&this.child&&this.child.strings===e.strings){this.child.update(e.values);return}this.clear(),this.kind="result",this.child=new M(this.host,e.strings),this.child.mount(this.parent,this.anchor,this.namespace),this.child.update(e.values)}commitEach(e){this.kind!=="each"&&(this.clear(),this.kind="each",this.keyed=new Map,this.keys=[]);let n=this.keyed,s=this.keys,o=e.items.length,r=new Array(o),i=new Array(o),c=s.length===o;for(let d=0;d<o;d++){let f=e.keyOf(e.items[d],d);r[d]=f,i[d]=e.render(e.items[d],d),c&&s[d]!==f&&(c=!1)}if(c){for(let d=0;d<o;d++){let f=n.get(r[d]),h=i[d];if(f&&f.strings===h.strings){f.update(h.values);continue}c=!1;break}if(c){for(let d=0;d<o;d++)n.get(r[d]).pos=d;this.keys=r;return}}pt(r);let l=new Array(o),u=0;for(let d=0;d<o;d++){let f=n.get(r[d]);f&&f.strings===i[d].strings?(l[d]=f.pos,u++):l[d]=-1}if(u!==n.size){let d=new Set(r);for(let[f,h]of n)d.has(f)||(h.remove(),n.delete(f))}let m=mt(l),b=this.anchor;for(let d=r.length-1;d>=0;d--){let f=r[d],h=i[d],p=n.get(f);!!p&&p.strings===h.strings&&p?(p.update(h.values),m[d]!==1&&p.moveBefore(this.parent,b)):(p&&p.remove(),p=new M(this.host,h.strings),p.mount(this.parent,b,this.namespace),p.update(h.values),n.set(f,p)),p.pos=d,b=p.firstNode()??b}this.keys=r}},Y=class extends Error{code="E_DUPLICATE_KEY";hint;constructor(e){super(`each() received the key ${JSON.stringify(e)??String(e)} twice`),this.name="DuplicateKeyError",this.hint="keyOf must return a distinct value per item \u2014 an id rather than a field several items share"}};function pt(t){let e=new Set;for(let n of t){if(e.has(n))throw new Y(n);e.add(n)}}function mt(t){let e=[],n=new Array(t.length).fill(-1),s=[];for(let i=0;i<t.length;i++){let c=t[i];if(c<0)continue;let l=0,u=e.length;for(;l<u;){let m=l+u>>1;t[e[m]]<c?l=m+1:u=m}l>0&&(n[i]=e[l-1]),e[l]=i,s[l]=c}let o=new Uint8Array(t.length),r=e.length?e[e.length-1]:-1;for(;r>=0;)o[r]=1,r=n[r];return o}var M=class{host;strings;tpl;parts=[];roots=[];values=[];pos=-1;constructor(e,n){this.host=e,this.strings=n,this.tpl=ce(n)}mount(e,n,s){let o=(r,i,c)=>{let l=i===e;if(r.type==="text"){let d=this.host.createText(r.value);this.host.insert(i,d,l?n:null),l&&this.roots.push(d);return}if(r.type==="hole"){let d=this.host.createText("");this.host.insert(i,d,l?n:null),l&&this.roots.push(d),this.parts[r.index]=new W(this.host,i,d,c);return}let u=r.tag,m=u==="svg"?pe:u==="foreignObject"?void 0:c,b=this.host.createElement(u,m);for(let d of r.attrs){if(d.hole==null){this.host.setAttribute(b,d.name,d.value??"");continue}this.parts[d.hole]=Ce(d.name)?Me(this.host,b,d.name,void 0):{attr:!0,node:b,name:d.name,last:void 0}}this.host.insert(i,b,l?n:null),l&&this.roots.push(b);for(let d of r.children)o(d,b,m)};for(let r of this.tpl.children)o(r,e,s)}update(e){for(let n=0;n<e.length;n++){let s=this.parts[n];if(!s)continue;let o=e[n];if("event"in s){s.box.fn=typeof o=="function"?o:null;continue}if(s.attr){Object.is(s.last,o)||(this.host.setAttribute(s.node,s.name,o),s.last=o);continue}Object.is(this.values[n],o)&&!B(o)&&!z(o)||s.commit(o)}this.values=e}firstNode(){let e=this.roots[0];if(!e)return null;for(let n of this.parts)if(n instanceof W&&n.anchor===e)return n.firstNode();return e}nextSibling(){let e=this.roots[this.roots.length-1];if(!e)return null;let n=e.nextSibling;if(n!==void 0)return n??null;if(!e.parent)return null;let s=e.parent.children??[];return s[s.indexOf(e)+1]??null}moveBefore(e,n){for(let s of this.roots)this.host.move(e,s,n)}remove(){this.dispose(!0)}dispose(e){for(let n of this.parts)if(n){if("event"in n){n.detach();continue}n.attr||(e?n.clear():n.disposeBehavior())}if(e){for(let n of this.roots)this.host.remove(n);this.roots=[]}}};function ge(t,e){let n=null;return{render(s){(!n||n.strings!==s.strings)&&(n?.remove(),n=new M(t,s.strings),n.mount(e,null)),n.update(s.values)},dispose(s={}){n?.dispose(s.remove===!0),n=null}}}var ft=1,fe=3,se=8,G=t=>t?t.nodeType===se?`comment "${t.data??""}"`:t.nodeType===fe?`text "${(t.data??"").slice(0,20)}"`:`<${t.nodeName.toLowerCase()}>`:"nothing";function he(t,e,n,s,o){let r=new M(t,e),i=o,c=(u,m)=>{if(ne(u)){for(m.kind="markup";i&&!(i.nodeType===se&&i.data===X);)m.markupNodes.push(i),i=i.nextSibling;m.markupHtml=u.html;return}if(B(u)){let b=he(t,u.strings,u.values,m.parent,i);m.kind="result",m.child=b.instance,i=b.cursor;return}if(z(u)){m.kind="each",m.keyed=new Map,m.keys=[];for(let b=0;b<u.items.length;b++){let d=u.items[b],f=u.render(d,b),h=he(t,f.strings,f.values,m.parent,i),p=u.keyOf(d,b);if(m.keyed.has(p))throw new Y(p);m.keyed.set(p,h.instance),m.keys.push(p),i=h.cursor}return}if(u==null||u===!1||u===""){m.kind=null;return}if(!i||i.nodeType!==fe)throw new F("a text hole","a text node",G(i));m.kind="text",m.node=i,i=i.nextSibling},l=(u,m)=>{let b=m===s;if(u.type==="text"){if(!i||i.nodeType!==fe)throw new F("static text",JSON.stringify(u.value.slice(0,20)),G(i));b&&r.roots.push(i),i=i.nextSibling;return}if(u.type==="hole"){if(!i||i.nodeType!==se||i.data!==te)throw new F("the start of a hole",`a <!--${te}--> marker`,G(i));let p=i;b&&r.roots.push(p),i=i.nextSibling;let R=new W(t,m,null),v=i;if(c(n[u.index],R),b&&v)for(let w=v;w&&w!==i;w=w.nextSibling)r.roots.push(w);if(!i||i.nodeType!==se||i.data!==X)throw new F("a hole",`a <!--${X}--> marker`,G(i));R.anchor=i,b&&r.roots.push(i),r.parts[u.index]=R,i=i.nextSibling;return}let d=u;if(!i||i.nodeType!==ft||i.nodeName.toLowerCase()!==d.tag)throw new F("an element",`<${d.tag}>`,G(i));let f=i;b&&r.roots.push(f);for(let p of d.attrs)p.hole!=null&&(r.parts[p.hole]=Ce(p.name)?Me(t,f,p.name,n[p.hole]):{attr:!0,node:f,name:p.name,last:n[p.hole]});let h=f.nextSibling;i=f.firstChild;for(let p of d.children)l(p,f);i=h};for(let u of r.tpl.children)l(u,s);return r.values=n,{instance:r,cursor:i}}function ye(t,e,n){let{instance:s}=he(t,n.strings,n.values,e,e.firstChild),o=s;return{render(r){(!o||o.strings!==r.strings)&&(o?.remove(),o=new M(t,r.strings),o.mount(e,null)),o.update(r.values)},dispose(r={}){o?.dispose(r.remove===!0),o=null}}}function ht(t,e){let n=_(()=>{t.render(e())});return{dispose:()=>{n(),t.dispose()},refresh:()=>t.render(e())}}function be(t,e,n){return ht(ge(t,e),n)}function ve(t,e,n){let s=null,o=_(()=>{let r=n();s?s.render(r):s=ye(t,e,r)});return{dispose:()=>{o(),s?.dispose()},refresh:()=>s?.render(n())}}var q=class extends Error{code;hint;constructor(e){super(e.message),this.name="IslandError",this.code=e.code,this.hint=e.hint??null}};var yt=t=>typeof t=="function"?{view:t}:t,bt=(t,e)=>{let n=new WeakSet,s=o=>{if(o==null||typeof o=="string"||typeof o=="boolean")return o;if(typeof o=="number"){if(!Number.isFinite(o))throw new TypeError("non-finite number");return o}if(typeof o!="object")throw new TypeError(typeof o);if(o instanceof Date){if(Number.isNaN(o.getTime()))throw new TypeError("invalid date");return o.toJSON()}if(n.has(o))throw new TypeError("cyclic value");n.add(o);let r;if(Array.isArray(o))r=o.map(s);else{let i=Object.getPrototypeOf(o);if(i!==null&&i!==Object.prototype)throw new TypeError("non-plain object");let c=Object.create(null);for(let l of Object.keys(o).sort())c[l]=s(o[l]);r=c}return n.delete(o),r};try{let o=s(e),r=JSON.stringify(o),i=JSON.parse(r);if(typeof i!="object"||i===null||Array.isArray(i))throw new TypeError("not an object");return{raw:r,revived:i}}catch{throw new q({code:"E_ISLAND_PROPS",message:`island "${t}" received props that are not JSON-serializable`,hint:"island props cross the server/browser boundary; pass plain JSON data only"})}};var ie=t=>{let e=[],n=t.nodeName??t.tagName;return(n?.toLowerCase()===J||n?.toLowerCase()==="div"&&t.getAttribute(K)!==null)&&e.push(t),e.push(...t.querySelectorAll(ee)),e},Le=t=>[...t.childNodes??t.children??[]],ke=(t,e)=>{let n=e.getAttribute("data-props");try{let s=n?JSON.parse(n):{};if(typeof s!="object"||s===null||Array.isArray(s))throw new TypeError;let o=bt(t,s);return{props:o.revived,raw:o.raw}}catch{throw new q({code:"E_ISLAND_PROPS",message:`island "${t}" has unreadable props`})}},we=t=>{let e=t.getAttribute("data-island");if(!e)return null;let n=ke(e,t),s=t.getAttribute("data-key")??n.raw;return t.setAttribute?.("data-key",s),{name:e,key:s,id:JSON.stringify([e,s])}},De=(t,e)=>{let n=new Map,s=new Set;for(let o of t){let r=we(o);r&&(n.has(r.id)?(s.add(r.id),n.delete(r.id),e?.(r)):s.has(r.id)||n.set(r.id,o))}return n};function $e(t,e,n={}){let s=new WeakMap,o=l=>{let u=s.get(l);u&&(s.delete(l),u.live.dispose())},r=(l,u)=>{let m=[];for(let b of ie(l)){let d=s.get(b);if(d){m.push(d.live);continue}let f=we(b);if(!f)continue;let h=e[f.name];if(!h){if(n.strict===!1)continue;throw new q({code:"E_UNKNOWN_ISLAND",message:`the page places island "${f.name}", which no composed module provides`,hint:`registered islands: ${Object.keys(e).join(", ")||"(none)"}`})}let p=ke(f.name,b),R=yt(h(p.props)),v=new AbortController,w=null;try{w=u?ve(t,b,R.view):be(t,b,R.view),R.mount?.({root:b,lifetime:v.signal})}catch(H){throw v.abort(),w?.dispose(),R.dispose?.(),H}let k=!1,N={name:f.name,key:f.key,props:p.props,element:b,dispose:()=>{k||(k=!0,v.abort(),w?.dispose(),R.dispose?.())}};s.set(b,{live:N,controller:R,rawProps:p.raw}),m.push(N)}return m},i=l=>r(l,!0);return{hydrate:i,mount:l=>r(l,!1),reconcile:(l,u)=>{let m=ie(l),b=ie(u),d=new Map,f=v=>d.set(v.id,v),h=De(m,f),p=De(b,f);for(let v of d.values())console.warn(`island "${v.name}" has duplicate key ${v.key}; remounting ambiguous instances`);let R=new Set;for(let[v,w]of p){let k=h.get(v),N=k?s.get(k):void 0;if(!k||!N)continue;let H=we(w),V=ke(H.name,w);if(N.rawProps!==V.raw){if(!N.controller.update)continue;N.controller.update(V.props),N.rawProps=V.raw,N.live.props=V.props,k.setAttribute?.("data-props",V.raw),k.setAttribute?.("data-key",H.key)}let D=w.parentNode??w.parent;D&&(t.insert(D,k,w),t.remove(w),R.add(k))}for(let v of m)R.has(v)||o(v);for(let v of Le(l))t.remove(v);for(let v of Le(u))t.insert(l,v,null);return i(l)},dispose:l=>{for(let u of ie(l))o(u)}}}function Te(t,e,n,s={}){return $e(t,n,s).hydrate(e)}var Je=new Set(["area","base","br","col","embed","hr","img","input","link","meta","source","track","wbr"]),vt=/^[a-z][a-z0-9-]*$/,kt=/^[A-Za-z_:][A-Za-z0-9:._-]*$/,je=new Map,_e=new Map,Ke=t=>{let e=[...t];return Object.defineProperty(e,"raw",{value:Object.freeze([...t]),enumerable:!1}),Object.freeze(e)},wt=(t,e,n)=>{let s=JSON.stringify([t,e,n]),o=je.get(s);if(o)return o;let r=[`<${t}`];for(let c of e)r[r.length-1]+=` ${c}=`,r.push("");r[r.length-1]+=">",n&&r.push(""),Je.has(t)||(r[r.length-1]+=`</${t}>`);let i=Ke(r);return je.set(s,i),i},Tt=t=>{let e=_e.get(t);if(e)return e;let n=Ke(Array.from({length:t+1},()=>""));return _e.set(t,n),n},xt=t=>{let e=Array.isArray(t)?t.map(xe):[xe(t)];return re(Tt(e.length),...e)},xe=t=>Array.isArray(t)?xt(t):t,Et=t=>t.replace(/[A-Z]/g,e=>`-${e.toLowerCase()}`),Rt=t=>!t||typeof t!="object"||Array.isArray(t)?t:Object.entries(t).filter(([,e])=>e!=null&&e!==!1).map(([e,n])=>`${Et(e)}:${String(n)}`).join(";"),It=t=>t==="className"?"class":t==="htmlFor"?"for":/^on[A-Z]/.test(t)?`on:${t.slice(2).toLowerCase()}`:t;function y(t,e,n){let s=e??{};if(typeof t=="function")return t(s);if(!vt.test(t))throw new TypeError(`invalid JSX element name "${t}"`);if("dangerouslySetInnerHTML"in s)throw new TypeError("Ket JSX has no dangerouslySetInnerHTML; pass trusted compiler output through trustedMarkup()");if("ref"in s)throw new TypeError("Ket JSX does not expose mutable element refs");let o=Object.entries(s).filter(([l])=>l!=="children"&&l!=="key").map(([l,u])=>({sourceName:l,name:It(l),value:u})),r=new Set;for(let l of o){if(!kt.test(l.name))throw new TypeError(`invalid JSX attribute name "${l.name}"`);if(r.has(l.name))throw new TypeError(`JSX attribute "${l.name}" was provided more than once`);r.add(l.name)}let i=s.children!==void 0&&s.children!==null&&s.children!==!1;if(Je.has(t)&&i)throw new TypeError(`<${t}> is a void element and cannot have children`);let c=o.map(l=>l.sourceName==="style"?Rt(l.value):l.value);return i&&c.push(xe(s.children)),re(wt(t,o.map(l=>l.name),i),...c)}var E=y;var L=t=>Array.isArray(t)?t:[],T=t=>t==null?"":String(t),Ee=async(t,e,n)=>{let s=await fetch(`/_ket/fn/${encodeURIComponent(t)}`,{method:"POST",credentials:"same-origin",headers:{"content-type":"application/json"},body:JSON.stringify(e),signal:n}),o=await s.json();if(!s.ok||o.ok===!1){let r=L(o.errors)[0];throw new Error(T(r?.message??r?.code??o.message??`HTTP ${s.status}`))}return o.value};function qe(t,e={}){let{id:n,config:s}=t,o=s.labels,r=s.manager,i=s.multiple===!0,c=A(i?L(s.values).map(T).filter(Boolean):[T(s.value)].filter(Boolean)),l=()=>c()[0]??"",u=a=>c().includes(T(a)),m=A(L(s.options)),b=()=>e.options?.()??m(),d=()=>e.disabled?.()??s.disabled===!0,f=A(!1),h=A(!1),p=A(""),R=A([]),v=A(!1),w=A(""),k=A(null),N=A(""),H=null,V,D=!1,Z=a=>T(a[r?.idField??"id"]),ae=a=>T(a[r?.labelField??"name"])||o.noRecords,Xe=a=>T(a[r?.descriptionField??"ref"]),Be=()=>m().find(a=>T(a.value)===l())?.label??o.choose,Re=()=>{let a=p().trim().toLocaleLowerCase(),g=a?b().filter(x=>`${T(x.label)} ${T(x.description)}`.toLocaleLowerCase().includes(a)):b();return e.options?g:g.slice(0,7)},Q=(a,g,x="")=>{if(d())return;let S=T(a);if(m().some(I=>T(I.value)===S)||m.set([...m(),{value:S,label:T(g),description:T(x)}]),i){c.set(u(S)?c().filter(I=>I!==S):[...c(),S]),e.onSelect?.({value:S,label:T(g),description:T(x)});return}c.set(S?[S]:[]),f.set(!1),h.set(!1),p.set(""),k.set(null),N.set(""),e.resetAfterSelect&&c.set([]),e.onSelect?.({value:S,label:T(g),description:T(x)})},Ie=a=>{c.set(c().filter(g=>g!==T(a)))},le=a=>m().find(g=>T(g.value)===T(a))?.label??T(a),$=async()=>{if(!r?.listFunction)return;H?.abort();let a=new AbortController;H=a,v.set(!0),w.set("");try{let g={...r.listInput??{}};g[r.searchParam??"search"]=p().trim(),g[r.limitParam??"limit"]=r.limit??80;let x=await Ee(r.listFunction,g,a.signal),S=new Set(L(r.excludeIds).map(T));R.set(L(x).filter(I=>!S.has(Z(I))))}catch(g){if(D||g instanceof Error&&g.name==="AbortError")return;w.set(g instanceof Error?g.message:o.loadError)}finally{H===a&&v.set(!1)}},ze=async()=>{f.set(!1),h.set(!0),k.set(null),N.set(""),await $()},de=()=>{h.set(!1),k.set(null),N.set(""),w.set("")},Ge=a=>{a.currentTarget instanceof HTMLInputElement&&(p.set(a.currentTarget.value),clearTimeout(V),V=setTimeout($,180))},We=async a=>{if(a.preventDefault(),!r?.saveFunction||!(a.currentTarget instanceof HTMLFormElement))return;let g=k(),x=g?.id||crypto.randomUUID(),S={...r.saveDefaults??{},id:x};for(let[I,O]of new FormData(a.currentTarget).entries())S[I]=T(O);v.set(!0),w.set("");try{await Ee(r.saveFunction,S);let I=T(S[r.labelField??"name"]);if(!g?.id){Q(x,I),i&&(k.set(null),await $());return}m.set(m().map(O=>T(O.value)===x?{...O,label:I||O.label}:O)),k.set(null),await $()}catch(I){w.set(I instanceof Error?I.message:o.loadError)}finally{v.set(!1)}},Ye=async a=>{let g=Z(a);if(N()!==g){N.set(g);return}if(r?.removeFunction){v.set(!0),w.set("");try{await Ee(r.removeFunction,{...r.removeDefaults??{},id:g}),Ie(g),m.set(m().filter(x=>T(x.value)!==g)),N.set(""),await $()}catch(x){w.set(x instanceof Error?x.message:o.loadError)}finally{v.set(!1)}}},Ze=a=>{let g=k()?.row??r?.saveDefaults??{},x=T(g[a.name]),S=`${n}-relation-editor-${a.name}`;return E("label",{"data-ui":"form-field","data-span":"full",htmlFor:S,children:[E("span",{"data-ui":"form-label",children:[a.label,a.required?E("span",{"data-ui":"form-required","aria-hidden":"true",children:[" ","*"]}):null]}),a.type==="select"?y("select",{"data-ui":"form-control",id:S,name:a.name,required:a.required===!0,children:P(L(a.options),I=>I.value,I=>y("option",{value:I.value,selected:T(I.value)===x,children:I.label}))}):y("input",{"data-ui":"form-control",id:S,type:a.type??"text",name:a.name,value:x,autocomplete:"off",required:a.required===!0})]})},Qe=()=>E("form",{"data-ui":"relation-editor",onSubmit:We,children:[y("div",{"data-ui":"form-grid",children:P(L(r?.fields),a=>a.name,Ze)}),y("div",{"data-ui":"form-actions",children:E("div",{"data-ui":"action-group",children:[y("button",{"data-ui":"action","data-variant":"primary",type:"submit",disabled:v(),children:o.save}),y("button",{"data-ui":"action","data-variant":"tertiary",type:"button",onClick:()=>k.set(null),children:o.cancel})]})})]}),et=a=>{let g=Z(a),x=Xe(a);return E("li",{"data-ui":"relation-dialog-row","data-selected":String(u(g)),children:[E("button",{"data-ui":"relation-dialog-main",type:"button","aria-pressed":i?String(u(g)):null,onClick:()=>Q(g,ae(a),x),children:[y("strong",{children:ae(a)}),x?y("small",{"data-ui":"relation-dialog-meta",children:x}):null]}),E("div",{"data-ui":"relation-dialog-actions",children:[y("button",{"data-ui":"action","data-size":"compact","data-variant":u(g)?"primary":"secondary",type:"button",onClick:()=>Q(g,ae(a),x),children:u(g)?o.chosen:o.select}),r?.saveFunction?y("button",{"data-ui":"action","data-size":"compact","data-variant":"tertiary",type:"button",onClick:()=>k.set({id:g,row:a}),children:o.edit}):null,r?.removeFunction?y("button",{"data-ui":"action","data-size":"compact","data-variant":"destructive",type:"button",onClick:()=>Ye(a),children:N()===g?o.confirmRemove:o.remove}):null]})]})},tt=()=>E("div",{"data-ui":"modal-layer","data-presentation":"dialog",children:[y("button",{"data-ui":"modal-backdrop",type:"button","aria-label":o.close,onClick:de,children:y("span",{children:o.close})}),E("section",{"data-ui":"modal-sheet",role:"dialog","aria-modal":"true","aria-labelledby":`${n}-relation-title`,children:[E("header",{"data-ui":"modal-head",children:[y("h2",{"data-ui":"modal-title",id:`${n}-relation-title`,children:o.dialogTitle}),y("button",{"data-ui":"modal-close",type:"button","aria-label":o.close,title:o.close,onClick:de,children:"\xD7"})]}),E("div",{"data-ui":"modal-body",children:[E("div",{"data-ui":"relation-dialog-toolbar",children:[E("div",{"data-ui":"relation-search-field",children:[y("span",{"data-ui":"relation-search-icon","aria-hidden":"true",children:E("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true",focusable:"false",children:[y("circle",{cx:"11",cy:"11",r:"8"}),y("path",{d:"m21 21-4.3-4.3"})]})}),y("input",{"data-ui":"field-control",type:"search",value:p(),autocomplete:"off",placeholder:o.search,"aria-label":o.search,onInput:Ge})]}),r?.saveFunction?y("button",{"data-ui":"action","data-variant":"primary",type:"button",onClick:()=>k.set({id:"",row:r.saveDefaults??{}}),children:o.create}):null]}),w()?E("aside",{"data-ui":"notice","data-tone":"danger",role:"alert",children:[E("div",{"data-ui":"notice-copy",children:[y("p",{"data-ui":"notice-title",children:o.loadError}),y("p",{"data-ui":"notice-message",children:w()})]}),y("button",{"data-ui":"action","data-variant":"secondary",type:"button",onClick:$,children:o.retry})]}):null,k()?Qe():null,v()?y("p",{"data-ui":"relation-empty",role:"status",children:o.loading}):null,!v()&&!k()?R().length?y("ul",{"data-ui":"relation-dialog-list",children:P(R(),Z,et)}):y("p",{"data-ui":"relation-empty",children:o.noRecords}):null]})]})]}),nt=a=>{if(!(a instanceof KeyboardEvent)||a.key!=="Escape"||!f()&&!h())return;a.preventDefault(),a.stopPropagation();let g=a.currentTarget?.querySelector('[data-ui="relation-trigger"]');f.set(!1),de(),g?.focus()},ot=a=>{a.preventDefault(),f.set(!0),a.currentTarget instanceof HTMLSelectElement&&a.currentTarget.nextElementSibling?.focus()};return{view:()=>E("div",{"data-ui":"relation-select",role:"group","aria-label":s.ariaLabel,onKeydown:nt,children:[E("select",{"data-ui":"relation-native",name:s.name,required:s.required===!0,disabled:d(),tabindex:"-1","aria-hidden":"true",onInvalid:ot,children:[y("option",{value:"",selected:!c().length}),i?c().length?y("option",{value:c().join(","),selected:!0,children:c().map(le).join(", ")}):null:P(m().filter(a=>T(a.value)),a=>a.value,a=>y("option",{value:a.value,selected:T(a.value)===l(),children:a.label}))]}),E("button",{"data-ui":"relation-trigger","data-empty":String(!c().length),type:"button","aria-haspopup":"listbox","aria-label":s.ariaLabel,"aria-expanded":String(f()),"aria-controls":`${n}-relation-menu`,disabled:d(),onClick:()=>f.set(!f()),children:[y("span",{"data-ui":"relation-value",children:i?o.choose:Be()}),y("span",{"data-ui":"relation-caret","aria-hidden":"true",children:"\u25BE"})]}),i&&c().length?y("ul",{"data-ui":"relation-chips","aria-label":o.chosen,children:P(c(),a=>a,a=>E("li",{"data-ui":"relation-chip",children:[y("span",{children:le(a)}),y("button",{"data-ui":"relation-chip-clear",type:"button","aria-label":`${o.clear}: ${le(a)}`,title:o.clear,disabled:d(),onClick:()=>Ie(a),children:"\xD7"})]}))}):null,f()?E("div",{"data-ui":"relation-menu",id:`${n}-relation-menu`,children:[y("input",{"data-ui":"relation-search",type:"search",value:p(),autocomplete:"off",placeholder:o.search,"aria-label":o.search,onInput:a=>{a.currentTarget instanceof HTMLInputElement&&p.set(a.currentTarget.value)}}),y("div",{"data-ui":"relation-options",role:"listbox",children:Re().length?P(Re(),a=>a.value,a=>E("button",{"data-ui":"relation-option",type:"button",role:"option","data-selected":String(u(a.value)),"aria-selected":String(u(a.value)),onClick:()=>Q(a.value,a.label,a.description),children:[y("span",{children:a.label}),a.description?y("small",{children:a.description}):null]})):y("p",{"data-ui":"relation-empty",children:o.noRecords})}),r||!e.options||e.onCreate?E("footer",{"data-ui":"relation-footer",children:[r||!e.options?y("button",{"data-ui":"action","data-variant":"tertiary",type:"button",onClick:ze,children:o.more}):null,e.onCreate?y("button",{"data-ui":"action","data-variant":"tertiary",type:"button",disabled:d(),onClick:()=>{if(d())return;let a=p().trim();f.set(!1),p.set(""),e.onCreate?.(a)},children:o.create}):null]}):null]}):null,h()?tt():null]}),mount:({root:a,lifetime:g})=>{let x=!0,S=_(()=>{if(c(),x){x=!1;return}queueMicrotask(()=>{if(D)return;let I=[...a.querySelectorAll('[data-ui="relation-native"]')][0];I instanceof HTMLSelectElement&&I.dispatchEvent(new Event("change",{bubbles:!0}))})});g.addEventListener("abort",S),document.addEventListener("click",I=>{if(!f())return;let O=I.target;O instanceof Node&&a.contains(O)||f.set(!1)},{signal:g})},dispose:()=>{D=!0,clearTimeout(V),H?.abort()}}}var St={"design-system.relation-select":t=>qe(t)},Ue=()=>{Te(me(),document,St,{strict:!1})};document.readyState==="loading"?document.addEventListener("DOMContentLoaded",Ue,{once:!0}):Ue();})();
@@ -0,0 +1 @@
1
+ {"version":3,"file":"island-runtime.mjs","sourceRoot":"","sources":["../../../../../../packages/design-system/src/atlas/island-runtime.mjs"],"names":[],"mappings":"AAAA,sFAAsF;AACtF,YAAY,CAAC;AAAA,CAAC,GAAE,EAAE,GAAC,IAAI,CAAC,GAAC,IAAI,EAAC,EAAE,GAAC,CAAC,EAAC,CAAC,GAAC,IAAI,GAAG,EAAC,EAAE,GAAC,CAAC,CAAC,CAAC,CAAA,SAAS,CAAC,CAAC,CAAC,IAAE,IAAI,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,IAAI,GAAG,EAAC,CAAC,GAAC,CAAC,GAAE,EAAE,CAAA,CAAC,CAAC,IAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,CAAA,OAAO,CAAC,CAAC,GAAG,GAAC,CAAC,CAAA,EAAE,GAAC,IAAI,CAAC,GAAC,OAAO,CAAC,IAAE,UAAU,CAAA,CAAC,CAAA,CAAC,CAAC,CAAC,CAAC,CAAA,CAAC,CAAA,CAAC,CAAC,CAAA,IAAG,MAAM,CAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC;IAAC,OAAO,CAAC,CAAC,CAAA,CAAC,GAAC,CAAC,CAAC,CAAA,KAAI,IAAI,CAAC,IAAI,CAAC;IAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA,OAAO,EAAE,KAAG,CAAC,IAAE,EAAE,EAAE,EAAC,CAAC,CAAA,CAAA,CAAC,EAAC,CAAC,CAAC,IAAI,GAAC,GAAE,EAAE,CAAA,CAAC,EAAC,CAAC,CAAA,CAAA,CAAC,CAAA,SAAS,EAAE,KAAG,IAAG,CAAC,CAAC,EAAE,IAAE,EAAE,GAAC,CAAC,CAAC,EAAC,CAAC;IAAA,EAAE,GAAC,CAAC,CAAC,CAAC;IAAA,IAAG,CAAC;QAAA,OAAK,CAAC,CAAC,IAAI,GAAE,CAAC;YAAA,IAAI,CAAC,CAAC;YAAA,KAAI,IAAI,CAAC,IAAI,CAAC;gBAAC,IAAG,CAAC,CAAC,QAAQ,EAAC,CAAC;oBAAA,CAAC,GAAC,CAAC,CAAC;oBAAA,MAAK;gBAAA,CAAC;YAAA,IAAG,CAAC,KAAG,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,EAAC,CAAC,CAAC;gBAAC,MAAM;YAAA,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QAAA,CAAC;IAAA,CAAC;YAAO,CAAC;QAAA,EAAE,GAAC,CAAC,CAAC,CAAA;IAAA,CAAC;AAAA,CAAC,CAAA,CAAC,CAAA,SAAS,EAAE,CAAC,CAAC,IAAE,IAAG,CAAC,CAAC,QAAQ;IAAC,OAAO,CAAA,IAAI,CAAC,GAAC,CAAC,CAAC,OAAO,CAAC,CAAA,CAAC,CAAC,OAAO,GAAC,IAAI,CAAC,CAAA,KAAI,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI;IAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,EAAC,CAAC,EAAE,EAAE,CAAC,CAAA,IAAI,CAAC,GAAC,CAAC,CAAC,CAAA,CAAC,GAAC,CAAC,CAAC,CAAA,IAAG,CAAC;IAAA,IAAI,CAAC,GAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IAAA,OAAO,CAAC,IAAE,UAAU,IAAE,CAAC,CAAC,CAAC,OAAO,GAAC,CAAC,CAAC,CAAA;AAAA,CAAC;QAAO,CAAC;IAAA,CAAC,GAAC,CAAC,CAAA;AAAA,CAAC,CAAA,CAAC,CAAA,SAAS,EAAE,CAAC,CAAC,EAAC,CAAC,IAAE,IAAI,CAAC,GAAC,EAAC,EAAE,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,GAAG,EAAC,QAAQ,EAAC,CAAC,CAAC,EAAC,OAAO,EAAC,IAAI,EAAC,QAAQ,EAAC,CAAC,EAAC,CAAC,CAAA,IAAG,CAAC;IAAA,EAAE,CAAC,CAAC,CAAC,CAAA;AAAA,CAAC;AAAA,OAAM,CAAC,EAAC,CAAC;IAAA,CAAC,CAAC,QAAQ,GAAC,CAAC,CAAC,EAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAAA,KAAI,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI;QAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAAA,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,EAAC,CAAC,CAAC,OAAO,EAAE,EAAE,EAAC,CAAC,CAAC,OAAO,GAAC,IAAI,EAAC,CAAC,CAAA;AAAA,CAAC,CAAA,OAAM,GAAE,EAAE,GAAC,CAAC,CAAC,QAAQ,GAAC,CAAC,CAAC,EAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA,KAAI,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI;IAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,EAAC,CAAC,CAAC,OAAO,EAAE,EAAE,EAAC,CAAC,CAAC,OAAO,GAAC,IAAI,CAAA,CAAA,CAAC,CAAA,CAAA,CAAC,CAAA,SAAS,CAAC,CAAC,CAAC,IAAE,OAAO,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAA,CAAA,CAAC,CAAA,IAAI,EAAE,GAAC,IAAI,MAAM,CAAC,oBAAoB,CAAC,EAAC,CAAC,GAAC,KAAM,SAAQ,KAAK;IAAC,IAAI,GAAC,iBAAiB,CAAC;IAAA,IAAI,CAAC;IAAA,YAAY,CAAC,EAAC,CAAC,IAAE,KAAK,CAAC,CAAC,CAAC,EAAC,IAAI,CAAC,IAAI,GAAC,eAAe,EAAC,IAAI,CAAC,IAAI,GAAC,CAAC,CAAA,CAAA,CAAC;CAAC,EAAC,EAAE,GAAC,CAAC,CAAA,EAAE,CAAA,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAC,EAAE,GAAC,IAAI,GAAG,CAAC,CAAC,MAAM,EAAC,MAAM,EAAC,IAAI,EAAC,KAAK,EAAC,OAAO,EAAC,IAAI,EAAC,KAAK,EAAC,OAAO,EAAC,MAAM,EAAC,MAAM,EAAC,QAAQ,EAAC,OAAO,EAAC,KAAK,CAAC,CAAC,CAAC,CAAA,SAAS,EAAE,CAAC,CAAC,IAAE,IAAI,CAAC,GAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,CAAA,CAAC,GAAC,CAAC,GAAC,CAAC,CAAC,GAAC,CAAC,CAAC,MAAM,GAAC,CAAC,CAAA,CAAC,CAAA,QAAQ,GAAC,CAAC,GAAC,QAAQ,CAAA,CAAC,CAAA,EAAE,CAAC,EAAC,EAAE,CAAC,EAAC,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,EAAC,IAAI,EAAC,MAAM,EAAC,QAAQ,EAAC,EAAE,EAAC,EAAC,CAAC,GAAC,CAAC,CAAC,CAAC,EAAC,CAAC,GAAC,GAAE,EAAE,CAAA,CAAC,CAAC,CAAC,CAAC,MAAM,GAAC,CAAC,CAAC,EAAC,CAAC,GAAC,CAAC,CAAA,EAAE,GAAC,IAAI,CAAC,GAAC,CAAC,CAAC,CAAA,SAAO,CAAC;IAAA,IAAG,CAAC,CAAC;QAAC,OAAO;IAAA,IAAI,CAAC,GAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAAA,IAAG,CAAC,CAAC,EAAC,CAAC;QAAA,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAC,IAAI,EAAC,MAAM,EAAC,KAAK,EAAC,CAAC,EAAC,CAAC,CAAC;QAAA,OAAM;IAAA,CAAC;IAAA,CAAC,CAAC,KAAK,GAAC,CAAC,IAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAC,IAAI,EAAC,MAAM,EAAC,KAAK,EAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAC,CAAC,CAAC,KAAK,CAAC,EAAC,CAAC,EAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAC,IAAI,EAAC,MAAM,EAAC,KAAK,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,GAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;AAAA,CAAC,CAAA,CAAC,CAAC,CAAA,OAAK,CAAC,GAAC,CAAC,CAAC,MAAM,GAAE,CAAC;IAAA,IAAI,CAAC,GAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAC,CAAC,CAAC,CAAC;IAAA,IAAG,CAAC,KAAG,CAAC,CAAC,EAAC,CAAC;QAAA,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAAA,MAAK;IAAA,CAAC;IAAA,IAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,UAAU,CAAC,MAAM,EAAC,CAAC,CAAC,EAAC,CAAC;QAAA,CAAC,GAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAC,CAAC,CAAC,GAAC,CAAC,CAAC;QAAA,SAAQ;IAAA,CAAC;IAAA,IAAG,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC,KAAG,GAAG,EAAC,CAAC;QAAA,IAAI,CAAC,GAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAC,CAAC,CAAC,CAAC;QAAA,CAAC,CAAC,MAAM,GAAC,CAAC,IAAE,CAAC,CAAC,GAAG,EAAE,EAAC,CAAC,GAAC,CAAC,GAAC,CAAC,CAAC;QAAA,SAAQ;IAAA,CAAC;IAAA,IAAI,CAAC,GAAC,CAAC,GAAC,CAAC,CAAC;IAAA,OAAK,CAAC,GAAC,CAAC,CAAC,MAAM,IAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAAE,CAAC,EAAE,CAAC;IAAA,IAAI,CAAC,GAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAC,CAAC,EAAC,CAAC,CAAC,CAAC;IAAA,IAAG,EAAE,CAAC,CAAC,CAAC;QAAC,MAAM,IAAI,CAAC,CAAC,kCAAkC,EAAC,sHAAsH,CAAC,CAAC;IAAA,IAAI,CAAC,GAAC,EAAE,CAAC;IAAA,SAAO,CAAC;QAAA,OAAK,CAAC,GAAC,CAAC,CAAC,MAAM,IAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAAE,CAAC,EAAE,CAAC;QAAA,IAAG,CAAC,CAAC,CAAC,CAAC,KAAG,GAAG,IAAE,CAAC,CAAC,UAAU,CAAC,IAAI,EAAC,CAAC,CAAC;YAAC,MAAM;QAAA,IAAI,CAAC,GAAC,CAAC,CAAC;QAAA,OAAK,CAAC,GAAC,CAAC,CAAC,MAAM,IAAE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAAE,CAAC,EAAE,CAAC;QAAA,IAAI,CAAC,GAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC;QAAA,IAAG,EAAE,CAAC,CAAC,CAAC;YAAC,MAAM,IAAI,CAAC,CAAC,oCAAoC,EAAC,4FAA4F,CAAC,CAAC;QAAA,IAAG,CAAC,CAAC,EAAC,CAAC;YAAA,CAAC,GAAC,CAAC,GAAC,CAAC,CAAC;YAAA,SAAQ;QAAA,CAAC;QAAA,OAAK,CAAC,GAAC,CAAC,CAAC,MAAM,IAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAAE,CAAC,EAAE,CAAC;QAAA,IAAG,CAAC,CAAC,CAAC,CAAC,KAAG,GAAG,EAAC,CAAC;YAAA,CAAC,CAAC,IAAI,CAAC,EAAC,IAAI,EAAC,CAAC,EAAC,KAAK,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,GAAC,CAAC,CAAC;YAAA,SAAQ;QAAA,CAAC;QAAA,KAAI,CAAC,EAAE,EAAC,CAAC,GAAC,CAAC,CAAC,MAAM,IAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAAE,CAAC,EAAE,CAAC;QAAA,IAAI,CAAC,EAAC,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAAA,IAAG,CAAC,KAAG,GAAG,IAAE,CAAC,KAAG,GAAG,EAAC,CAAC;YAAA,IAAI,CAAC,GAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAC,CAAC,GAAC,CAAC,CAAC,CAAC;YAAA,CAAC,GAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,GAAC,CAAC,GAAC,CAAC,CAAA;QAAA,CAAC;aAAI,CAAC;YAAA,IAAI,CAAC,GAAC,CAAC,CAAC;YAAA,OAAK,CAAC,GAAC,CAAC,CAAC,MAAM,IAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAAE,CAAC,EAAE,CAAC;YAAA,CAAC,GAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,GAAC,CAAC,CAAA;QAAA,CAAC;QAAA,IAAI,CAAC,GAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAAA,IAAG,CAAC,IAAE,CAAC,CAAC,CAAC,CAAC,KAAG,CAAC;YAAC,MAAM,IAAI,CAAC,CAAC,8CAA8C,CAAC,iCAAiC,EAAC,SAAS,CAAC,0EAA0E,CAAC,CAAC;QAAA,CAAC,CAAA,CAAC,CAAA,CAAC,CAAC,IAAI,CAAC,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAA,CAAC,CAAA,CAAC,CAAC,IAAI,CAAC,EAAC,IAAI,EAAC,CAAC,EAAC,KAAK,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,GAAC,CAAC,CAAA;IAAA,CAAC;IAAA,IAAI,CAAC,GAAC,CAAC,CAAC,UAAU,CAAC,IAAI,EAAC,CAAC,CAAC,EAAC,CAAC,GAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAC,CAAC,CAAC,EAAC,CAAC,GAAC,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,CAAC,EAAC,KAAK,EAAC,CAAC,EAAC,QAAQ,EAAC,EAAE,EAAC,CAAC;IAAA,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,IAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAC,CAAC,GAAC,CAAC,GAAC,CAAC,CAAA;AAAA,CAAC,CAAA,OAAO,CAAC,CAAA,CAAA,CAAC,CAAA,IAAI,EAAE,GAAC,IAAI,OAAO,CAAC,CAAA,SAAS,EAAE,CAAC,CAAC,IAAE,IAAI,CAAC,GAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA,OAAO,CAAC,IAAE,CAAC,CAAC,GAAC,EAAE,CAAC,CAAC,CAAC,EAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAA,CAAA,CAAC,CAAA,IAAI,EAAE,GAAC,4BAA4B,CAAC,CAAA,SAAS,EAAE,CAAC,CAAC,GAAC,UAAU,CAAC,QAAQ,IAAE,IAAI,CAAC,GAAC,CAAC,CAAA,EAAE,CAAA,CAAC,CAAC,CAAA,OAAM,EAAC,GAAG,EAAC,IAAI,EAAC,aAAa,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,EAAE,CAAA,CAAC,IAAE,CAAC,CAAC,eAAe,CAAA,CAAC,CAAA,CAAC,CAAC,eAAe,CAAC,CAAC,EAAC,CAAC,CAAC,CAAA,CAAC,CAAA,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAC,UAAU,EAAC,CAAC,CAAA,EAAE,CAAA,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAC,OAAO,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,EAAE,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAC,MAAM,CAAC,CAAC,CAAC,CAAA,CAAA,CAAC,EAAC,YAAY,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,GAAC,CAAC,IAAE,IAAI,IAAE,CAAC,KAAG,CAAC,CAAC,CAAA,CAAC,CAAA,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAA,CAAC,CAAA,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA,CAAA,CAAC,EAAC,MAAM,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,GAAC,IAAI,EAAC,EAAE,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,EAAC,CAAC,CAAC,CAAA,CAAA,CAAC,EAAC,YAAY,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,GAAC,IAAI,EAAC,EAAE,GAAC,IAAI,CAAC,CAAC,CAAA,IAAG,CAAC,CAAC,SAAS;QAAC,CAAC,GAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;SAAI,CAAC;QAAA,IAAI,CAAC,GAAC,CAAC,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QAAA,CAAC,CAAC,SAAS,GAAC,CAAC,EAAC,CAAC,GAAC,CAAC,CAAC,OAAO,CAAA;IAAA,CAAC,CAAA,IAAI,CAAC,GAAC,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAA,KAAI,IAAI,CAAC,IAAI,CAAC;QAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAA,OAAO,CAAC,CAAA,CAAA,CAAC,EAAC,IAAI,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,GAAC,IAAI,EAAC,EAAE,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,EAAC,CAAC,CAAC,CAAA,CAAA,CAAC,EAAC,MAAM,EAAC,CAAC,CAAA,EAAE,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAA,CAAA,CAAC,EAAC,MAAM,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,GAAC,IAAI,CAAC,GAAC,CAAC,CAAC,CAAA,OAAO,CAAC,CAAC,gBAAgB,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,GAAE,EAAE,CAAA,CAAC,CAAC,mBAAmB,CAAC,CAAC,EAAC,CAAC,CAAC,CAAA,CAAA,CAAC,EAAC,CAAA,CAAA,CAAC,CAAA,IAAI,CAAC,GAAC,YAAY,EAAC,CAAC,GAAC,iBAAiB,EAAC,EAAE,GAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA,IAAI,CAAC,GAAC,GAAG,EAAC,EAAE,GAAC,IAAI,CAAC,CAAA,IAAI,EAAE,GAAC,CAAC,CAAA,EAAE,CAAA,OAAO,CAAC,IAAE,QAAQ,IAAE,CAAC,KAAG,IAAI,IAAE,OAAO,CAAC,CAAC,IAAI,IAAE,QAAQ,IAAE,EAAE,IAAI,CAAC,EAAC,EAAE,GAAC,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAA,IAAI,EAAE,GAAC,EAAC,KAAK,EAAC,OAAO,EAAC,KAAK,EAAC,OAAO,EAAC,KAAK,EAAC,OAAO,EAAC,EAAE,EAAC,OAAO,EAAC,IAAI,EAAC,YAAY,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,MAAM,EAAC,EAAC,CAAC,GAAC,KAAM,SAAQ,KAAK;IAAC,IAAI,GAAC,sBAAsB,CAAC;IAAA,IAAI,CAAC;IAAA,YAAY,CAAC,EAAC,CAAC,EAAC,CAAC,IAAE,KAAK,CAAC,yBAAyB,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAA,IAAI,CAAC,GAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA,EAAE,CAAA,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA,IAAI,CAAC,IAAI,GAAC,CAAC,CAAA,CAAC,CAAA,6BAA6B,CAAC,kFAAkF,CAAA,CAAC,CAAA,6FAA6F,CAAA,CAAA,CAAC;CAAC,CAAC,CAAA,IAAI,EAAE,GAAC,MAAM,CAAC,YAAY,CAAC,EAAC,EAAE,GAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAA,SAAS,EAAE,CAAC,CAAC,EAAC,GAAG,CAAC,IAAE,OAAM,EAAC,CAAC,EAAE,CAAC,EAAC,CAAC,CAAC,EAAC,OAAO,EAAC,CAAC,EAAC,MAAM,EAAC,CAAC,EAAC,CAAA,CAAA,CAAC,CAAA,IAAI,CAAC,GAAC,CAAC,CAAA,EAAE,CAAA,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA,SAAS,CAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,IAAE,OAAM,EAAC,CAAC,EAAE,CAAC,EAAC,CAAC,CAAC,EAAC,KAAK,EAAC,CAAC,GAAG,CAAC,CAAC,EAAC,KAAK,EAAC,CAAC,EAAC,MAAM,EAAC,CAAC,EAAC,CAAA,CAAA,CAAC,CAAA,IAAI,CAAC,GAAC,CAAC,CAAA,EAAE,CAAA,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA,IAAI,EAAE,GAAC,KAAK,EAAC,EAAE,GAAC,CAAC,CAAA,EAAE,CAAA,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAA,SAAS,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,IAAE,IAAI,CAAC,GAAC,EAAC,EAAE,EAAC,OAAO,CAAC,IAAE,UAAU,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,IAAI,EAAC,CAAC,CAAA,OAAM,EAAC,KAAK,EAAC,CAAC,CAAC,EAAC,MAAM,EAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,EAAC,CAAC,CAAA,EAAE,CAAA,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,CAAA,CAAA,CAAC,CAAA,IAAI,CAAC,GAAC;IAAM,IAAI,GAAC,CAAC,CAAC,CAAC;IAAA,IAAI,CAAC;IAAA,MAAM,CAAC;IAAA,MAAM,CAAC;IAAA,IAAI,GAAC,IAAI,CAAC;IAAA,IAAI,GAAC,IAAI,CAAC;IAAA,KAAK,GAAC,IAAI,CAAC;IAAA,KAAK,GAAC,IAAI,CAAC;IAAA,IAAI,GAAC,EAAE,CAAC;IAAA,WAAW,GAAC,EAAE,CAAC;IAAA,UAAU,GAAC,EAAE,CAAC;IAAA,SAAS,CAAC;IAAA,YAAY,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,IAAE,IAAI,CAAC,IAAI,GAAC,CAAC,EAAC,IAAI,CAAC,MAAM,GAAC,CAAC,EAAC,IAAI,CAAC,MAAM,GAAC,CAAC,EAAC,IAAI,CAAC,SAAS,GAAC,CAAC,CAAA,CAAA,CAAC;IAAA,KAAK,KAAG,IAAG,IAAI,CAAC,IAAI,IAAE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAC,IAAI,CAAC,IAAI,GAAC,IAAI,CAAC,EAAC,IAAI,CAAC,KAAK,IAAE,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,EAAC,IAAI,CAAC,KAAK,GAAC,IAAI,CAAC,EAAC,IAAI,CAAC,KAAK,EAAC,CAAC;QAAA,KAAI,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;YAAC,CAAC,CAAC,MAAM,EAAE,CAAC;QAAA,IAAI,CAAC,KAAK,GAAC,IAAI,EAAC,IAAI,CAAC,IAAI,GAAC,EAAE,CAAA;IAAA,CAAC,CAAA,KAAI,IAAI,CAAC,IAAI,IAAI,CAAC,WAAW;QAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA,IAAI,CAAC,WAAW,GAAC,EAAE,EAAC,IAAI,CAAC,UAAU,GAAC,EAAE,EAAC,IAAI,CAAC,IAAI,GAAC,IAAI,CAAA,CAAA,CAAC;IAAA,eAAe,KAAG,IAAG,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,EAAC,IAAI,CAAC,KAAK;QAAC,KAAI,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;YAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA,CAAA,CAAC;IAAA,SAAS,KAAG,OAAO,IAAI,CAAC,IAAI,KAAG,MAAM,IAAE,IAAI,CAAC,IAAI,CAAA,CAAC,CAAA,IAAI,CAAC,IAAI,CAAA,CAAC,CAAA,IAAI,CAAC,IAAI,KAAG,QAAQ,IAAE,IAAI,CAAC,KAAK,CAAA,CAAC,CAAA,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,IAAE,IAAI,CAAC,MAAM,CAAA,CAAC,CAAA,IAAI,CAAC,IAAI,KAAG,MAAM,IAAE,IAAI,CAAC,KAAK,IAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAA,CAAC,CAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAE,IAAI,CAAC,MAAM,CAAA,CAAC,CAAA,IAAI,CAAC,IAAI,KAAG,QAAQ,IAAE,IAAI,CAAC,WAAW,CAAC,MAAM,CAAA,CAAC,CAAA,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAA,CAAC,CAAA,IAAI,CAAC,MAAM,CAAA,CAAA,CAAC;IAAA,MAAM,CAAC,CAAC,IAAE,IAAG,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC;QAAA,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAAA,OAAM;IAAA,CAAC,CAAA,IAAG,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC;QAAA,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAAA,OAAM;IAAA,CAAC,CAAA,IAAG,EAAE,CAAC,CAAC,CAAC,EAAC,CAAC;QAAA,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAAA,OAAM;IAAA,CAAC,CAAA,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA,CAAA,CAAC;IAAA,YAAY,CAAC,CAAC,IAAE,IAAI,CAAC,IAAI,KAAG,QAAQ,IAAE,IAAI,CAAC,UAAU,KAAG,CAAC,IAAE,CAAC,IAAI,CAAC,KAAK,EAAE,EAAC,IAAI,CAAC,IAAI,GAAC,QAAQ,EAAC,IAAI,CAAC,UAAU,GAAC,CAAC,EAAC,IAAI,CAAC,WAAW,GAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,EAAC,CAAC,EAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAA,CAAA,CAAC;IAAA,UAAU,CAAC,CAAC,IAAE,IAAI,CAAC,GAAC,CAAC,IAAE,IAAI,IAAE,CAAC,KAAG,CAAC,CAAC,CAAA,CAAC,CAAA,EAAE,CAAA,CAAC,CAAA,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA,IAAG,IAAI,CAAC,IAAI,KAAG,MAAM,IAAE,IAAI,CAAC,IAAI,EAAC,CAAC;QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,KAAG,CAAC,IAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAC,CAAC,CAAC,CAAC;QAAA,OAAM;IAAA,CAAC,CAAA,IAAI,CAAC,KAAK,EAAE,EAAC,IAAI,CAAC,IAAI,GAAC,MAAM,EAAC,IAAI,CAAC,IAAI,GAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAC,IAAI,CAAC,IAAI,EAAC,IAAI,CAAC,MAAM,CAAC,CAAA,CAAA,CAAC;IAAA,YAAY,CAAC,CAAC,IAAE,IAAG,IAAI,CAAC,IAAI,KAAG,QAAQ,IAAE,IAAI,CAAC,KAAK,IAAE,IAAI,CAAC,KAAK,CAAC,OAAO,KAAG,CAAC,CAAC,OAAO,EAAC,CAAC;QAAA,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QAAA,OAAM;IAAA,CAAC,CAAA,IAAI,CAAC,KAAK,EAAE,EAAC,IAAI,CAAC,IAAI,GAAC,QAAQ,EAAC,IAAI,CAAC,KAAK,GAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,EAAC,CAAC,CAAC,OAAO,CAAC,EAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAC,IAAI,CAAC,MAAM,EAAC,IAAI,CAAC,SAAS,CAAC,EAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA,CAAA,CAAC;IAAA,UAAU,CAAC,CAAC,IAAE,IAAI,CAAC,IAAI,KAAG,MAAM,IAAE,CAAC,IAAI,CAAC,KAAK,EAAE,EAAC,IAAI,CAAC,IAAI,GAAC,MAAM,EAAC,IAAI,CAAC,KAAK,GAAC,IAAI,GAAG,EAAC,IAAI,CAAC,IAAI,GAAC,EAAE,CAAC,CAAC,CAAA,IAAI,CAAC,GAAC,IAAI,CAAC,KAAK,EAAC,CAAC,GAAC,IAAI,CAAC,IAAI,EAAC,CAAC,GAAC,CAAC,CAAC,KAAK,CAAC,MAAM,EAAC,CAAC,GAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAC,CAAC,GAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAC,CAAC,GAAC,CAAC,CAAC,MAAM,KAAG,CAAC,CAAC,CAAA,KAAI,IAAI,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC;QAAA,IAAI,CAAC,GAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC;QAAA,CAAC,CAAC,CAAC,CAAC,GAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,IAAE,CAAC,CAAC,CAAC,CAAC,KAAG,CAAC,IAAE,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,CAAA;IAAA,CAAC,CAAA,IAAG,CAAC,EAAC,CAAC;QAAA,KAAI,IAAI,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC;YAAA,IAAI,CAAC,GAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAAA,IAAG,CAAC,IAAE,CAAC,CAAC,OAAO,KAAG,CAAC,CAAC,OAAO,EAAC,CAAC;gBAAA,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;gBAAA,SAAQ;YAAA,CAAC;YAAA,CAAC,GAAC,CAAC,CAAC,CAAC;YAAA,MAAK;QAAA,CAAC;QAAA,IAAG,CAAC,EAAC,CAAC;YAAA,KAAI,IAAI,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,CAAC,EAAC,CAAC,EAAE;gBAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAC,CAAC,CAAC;YAAA,IAAI,CAAC,IAAI,GAAC,CAAC,CAAC;YAAA,OAAM;QAAA,CAAC;IAAA,CAAC,CAAA,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA,IAAI,CAAC,GAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAC,CAAC,GAAC,CAAC,CAAC,CAAA,KAAI,IAAI,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC;QAAA,IAAI,CAAC,GAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAAA,CAAC,IAAE,CAAC,CAAC,OAAO,KAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAA,CAAC,CAAA,CAAC,CAAC,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC,GAAG,EAAC,CAAC,EAAE,CAAC,CAAA,CAAC,CAAA,CAAC,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC,CAAA;IAAA,CAAC,CAAA,IAAG,CAAC,KAAG,CAAC,CAAC,IAAI,EAAC,CAAC;QAAA,IAAI,CAAC,GAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC;QAAA,KAAI,IAAG,CAAC,CAAC,EAAC,CAAC,CAAC,IAAG,CAAC;YAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAE,CAAC,CAAC,CAAC,MAAM,EAAE,EAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;IAAA,CAAC,CAAA,IAAI,CAAC,GAAC,EAAE,CAAC,CAAC,CAAC,EAAC,CAAC,GAAC,IAAI,CAAC,MAAM,CAAC,CAAA,KAAI,IAAI,CAAC,GAAC,CAAC,CAAC,MAAM,GAAC,CAAC,EAAC,CAAC,IAAE,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC;QAAA,IAAI,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,GAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAAA,CAAC,CAAC,CAAC,IAAE,CAAC,CAAC,OAAO,KAAG,CAAC,CAAC,OAAO,IAAE,CAAC,CAAA,CAAC,CAAA,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,KAAG,CAAC,IAAE,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,EAAC,CAAC,CAAC,CAAC,CAAA,CAAC,CAAA,CAAC,CAAC,IAAE,CAAC,CAAC,MAAM,EAAE,EAAC,CAAC,GAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,EAAC,CAAC,CAAC,OAAO,CAAC,EAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAC,CAAC,EAAC,IAAI,CAAC,SAAS,CAAC,EAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,EAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,GAAC,CAAC,EAAC,CAAC,GAAC,CAAC,CAAC,SAAS,EAAE,IAAE,CAAC,CAAA;IAAA,CAAC,CAAA,IAAI,CAAC,IAAI,GAAC,CAAC,CAAA,CAAA,CAAC;CAAC,EAAC,CAAC,GAAC,KAAM,SAAQ,KAAK;IAAC,IAAI,GAAC,iBAAiB,CAAC;IAAA,IAAI,CAAC;IAAA,YAAY,CAAC,IAAE,KAAK,CAAC,2BAA2B,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAC,IAAI,CAAC,IAAI,GAAC,mBAAmB,EAAC,IAAI,CAAC,IAAI,GAAC,kGAAkG,CAAA,CAAA,CAAC;CAAC,CAAC,CAAA,SAAS,EAAE,CAAC,CAAC,IAAE,IAAI,CAAC,GAAC,IAAI,GAAG,CAAC,CAAA,KAAI,IAAI,CAAC,IAAI,CAAC,EAAC,CAAC;IAAA,IAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAAA,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;AAAA,CAAC,CAAA,CAAC,CAAA,SAAS,EAAE,CAAC,CAAC,IAAE,IAAI,CAAC,GAAC,EAAE,EAAC,CAAC,GAAC,IAAI,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,GAAC,EAAE,CAAC,CAAA,KAAI,IAAI,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,CAAC,CAAC,MAAM,EAAC,CAAC,EAAE,EAAC,CAAC;IAAA,IAAI,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAAA,IAAG,CAAC,GAAC,CAAC;QAAC,SAAS;IAAA,IAAI,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,CAAC,CAAC,MAAM,CAAC;IAAA,OAAK,CAAC,GAAC,CAAC,GAAE,CAAC;QAAA,IAAI,CAAC,GAAC,CAAC,GAAC,CAAC,IAAE,CAAC,CAAC;QAAA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAC,CAAC,CAAA,CAAC,CAAA,CAAC,GAAC,CAAC,GAAC,CAAC,CAAA,CAAC,CAAA,CAAC,GAAC,CAAC,CAAA;IAAA,CAAC;IAAA,CAAC,GAAC,CAAC,IAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,GAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,GAAC,CAAC,CAAA;AAAA,CAAC,CAAA,IAAI,CAAC,GAAC,IAAI,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,EAAC,CAAC,GAAC,CAAC,CAAC,MAAM,CAAA,CAAC,CAAA,CAAC,CAAC,CAAC,CAAC,MAAM,GAAC,CAAC,CAAC,CAAA,CAAC,CAAA,CAAC,CAAC,CAAC,CAAA,OAAK,CAAC,IAAE,CAAC;IAAE,CAAC,CAAC,CAAC,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA,OAAO,CAAC,CAAA,CAAA,CAAC,CAAA,IAAI,CAAC,GAAC;IAAM,IAAI,CAAC;IAAA,OAAO,CAAC;IAAA,GAAG,CAAC;IAAA,KAAK,GAAC,EAAE,CAAC;IAAA,KAAK,GAAC,EAAE,CAAC;IAAA,MAAM,GAAC,EAAE,CAAC;IAAA,GAAG,GAAC,CAAC,CAAC,CAAC;IAAA,YAAY,CAAC,EAAC,CAAC,IAAE,IAAI,CAAC,IAAI,GAAC,CAAC,EAAC,IAAI,CAAC,OAAO,GAAC,CAAC,EAAC,IAAI,CAAC,GAAG,GAAC,EAAE,CAAC,CAAC,CAAC,CAAA,CAAA,CAAC;IAAA,KAAK,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,IAAE,IAAI,CAAC,GAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,GAAC,IAAI,CAAC,GAAC,CAAC,KAAG,CAAC,CAAC,CAAA,IAAG,CAAC,CAAC,IAAI,KAAG,MAAM,EAAC,CAAC;QAAA,IAAI,CAAC,GAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,IAAI,CAAC,EAAC,CAAC,IAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAAA,OAAM;IAAA,CAAC,CAAA,IAAG,CAAC,CAAC,IAAI,KAAG,MAAM,EAAC,CAAC;QAAA,IAAI,CAAC,GAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,IAAI,CAAC,EAAC,CAAC,IAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,GAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,CAAC;QAAA,OAAM;IAAA,CAAC,CAAA,IAAI,CAAC,GAAC,CAAC,CAAC,GAAG,EAAC,CAAC,GAAC,CAAC,KAAG,KAAK,CAAA,CAAC,CAAA,EAAE,CAAA,CAAC,CAAA,CAAC,KAAG,eAAe,CAAA,CAAC,CAAA,KAAK,CAAC,CAAA,CAAC,CAAA,CAAC,EAAC,CAAC,GAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAA,KAAI,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,EAAC,CAAC;QAAA,IAAG,CAAC,CAAC,IAAI,IAAE,IAAI,EAAC,CAAC;YAAA,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,EAAC,CAAC,CAAC,IAAI,EAAC,CAAC,CAAC,KAAK,IAAE,EAAE,CAAC,CAAC;YAAA,SAAQ;QAAA,CAAC;QAAA,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA,CAAC,CAAA,EAAE,CAAC,IAAI,CAAC,IAAI,EAAC,CAAC,EAAC,CAAC,CAAC,IAAI,EAAC,KAAK,CAAC,CAAC,CAAA,CAAC,CAAA,EAAC,IAAI,EAAC,CAAC,CAAC,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,CAAC,CAAC,IAAI,EAAC,IAAI,EAAC,KAAK,CAAC,EAAC,CAAA;IAAA,CAAC,CAAA,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,IAAI,CAAC,EAAC,CAAC,IAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA,KAAI,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ;QAAC,CAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,CAAA,CAAA,CAAC,CAAC,CAAA,KAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ;QAAC,CAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,CAAA,CAAA,CAAC;IAAA,MAAM,CAAC,CAAC,IAAE,KAAI,IAAI,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,CAAC,CAAC,MAAM,EAAC,CAAC,EAAE,EAAC,CAAC;QAAA,IAAI,CAAC,GAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAAA,IAAG,CAAC,CAAC;YAAC,SAAS;QAAA,IAAI,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAAA,IAAG,OAAO,IAAG,CAAC,EAAC,CAAC;YAAA,CAAC,CAAC,GAAG,CAAC,EAAE,GAAC,OAAO,CAAC,IAAE,UAAU,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,IAAI,CAAC;YAAA,SAAQ;QAAA,CAAC;QAAA,IAAG,CAAC,CAAC,IAAI,EAAC,CAAC;YAAA,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAC,CAAC,CAAC,IAAE,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,EAAC,CAAC,CAAC,IAAI,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,IAAI,GAAC,CAAC,CAAC,CAAC;YAAA,SAAQ;QAAA,CAAC;QAAA,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,IAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;IAAA,CAAC,CAAA,IAAI,CAAC,MAAM,GAAC,CAAC,CAAA,CAAA,CAAC;IAAA,SAAS,KAAG,IAAI,CAAC,GAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA,IAAG,CAAC,CAAC;QAAC,OAAO,IAAI,CAAC,CAAA,KAAI,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK;QAAC,IAAG,CAAC,YAAY,CAAC,IAAE,CAAC,CAAC,MAAM,KAAG,CAAC;YAAC,OAAO,CAAC,CAAC,SAAS,EAAE,CAAC,CAAA,OAAO,CAAC,CAAA,CAAA,CAAC;IAAA,WAAW,KAAG,IAAI,CAAC,GAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAC,CAAC,CAAC,CAAC,CAAA,IAAG,CAAC,CAAC;QAAC,OAAO,IAAI,CAAC,CAAA,IAAI,CAAC,GAAC,CAAC,CAAC,WAAW,CAAC,CAAA,IAAG,CAAC,KAAG,KAAK,CAAC;QAAC,OAAO,CAAC,IAAE,IAAI,CAAC,CAAA,IAAG,CAAC,CAAC,CAAC,MAAM;QAAC,OAAO,IAAI,CAAC,CAAA,IAAI,CAAC,GAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,IAAE,EAAE,CAAC,CAAA,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC,IAAE,IAAI,CAAA,CAAA,CAAC;IAAA,UAAU,CAAC,CAAC,EAAC,CAAC,IAAE,KAAI,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK;QAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,CAAA,CAAA,CAAC;IAAA,MAAM,KAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA,CAAA,CAAC;IAAA,OAAO,CAAC,CAAC,IAAE,KAAI,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK;QAAC,IAAG,CAAC,EAAC,CAAC;YAAA,IAAG,OAAO,IAAG,CAAC,EAAC,CAAC;gBAAA,CAAC,CAAC,MAAM,EAAE,CAAC;gBAAA,SAAQ;YAAA,CAAC;YAAA,CAAC,CAAC,IAAI,IAAE,CAAC,CAAC,CAAA,CAAC,CAAA,CAAC,CAAC,KAAK,EAAE,CAAA,CAAC,CAAA,CAAC,CAAC,eAAe,EAAE,CAAC,CAAA;QAAA,CAAC,CAAA,IAAG,CAAC,EAAC,CAAC;QAAA,KAAI,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK;YAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAAA,IAAI,CAAC,KAAK,GAAC,EAAE,CAAA;IAAA,CAAC,CAAA,CAAC;CAAC,CAAC,CAAA,SAAS,EAAE,CAAC,CAAC,EAAC,CAAC,IAAE,IAAI,CAAC,GAAC,IAAI,CAAC,CAAA,OAAM,EAAC,MAAM,CAAC,CAAC,IAAE,CAAC,CAAC,CAAC,IAAE,CAAC,CAAC,OAAO,KAAG,CAAC,CAAC,OAAO,CAAC,IAAE,CAAC,CAAC,EAAE,MAAM,EAAE,EAAC,CAAC,GAAC,IAAI,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,OAAO,CAAC,EAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAC,IAAI,CAAC,CAAC,EAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA,CAAA,CAAC,EAAC,OAAO,CAAC,CAAC,GAAC,EAAE,IAAE,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,MAAM,KAAG,CAAC,CAAC,CAAC,EAAC,CAAC,GAAC,IAAI,CAAA,CAAA,CAAC,EAAC,CAAA,CAAA,CAAC,CAAA,IAAI,EAAE,GAAC,CAAC,EAAC,EAAE,GAAC,CAAC,EAAC,EAAE,GAAC,CAAC,EAAC,CAAC,GAAC,CAAC,CAAA,EAAE,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC,CAAC,QAAQ,KAAG,EAAE,CAAA,CAAC,CAAA,YAAY,CAAC,CAAC,IAAI,IAAE,EAAE,GAAG,CAAA,CAAC,CAAA,CAAC,CAAC,QAAQ,KAAG,EAAE,CAAA,CAAC,CAAA,SAAS,CAAC,CAAC,CAAC,IAAI,IAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAC,EAAE,CAAC,GAAG,CAAA,CAAC,CAAA,IAAI,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAA,CAAC,CAAA,SAAS,CAAC,CAAA,SAAS,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,IAAE,IAAI,CAAC,GAAC,IAAI,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,CAAC,CAAC,EAAC,CAAC,EAAC,EAAE,GAAC,IAAG,EAAE,CAAC,CAAC,CAAC,EAAC,CAAC;IAAA,KAAI,CAAC,CAAC,IAAI,GAAC,QAAQ,EAAC,CAAC,IAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAG,EAAE,IAAE,CAAC,CAAC,IAAI,KAAG,CAAC,CAAC;QAAE,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAC,CAAC,GAAC,CAAC,CAAC,WAAW,CAAC;IAAA,CAAC,CAAC,UAAU,GAAC,CAAC,CAAC,IAAI,CAAC;IAAA,OAAM;AAAA,CAAC,CAAA,IAAG,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC;IAAA,IAAI,CAAC,GAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,OAAO,EAAC,CAAC,CAAC,MAAM,EAAC,CAAC,CAAC,MAAM,EAAC,CAAC,CAAC,CAAC;IAAA,CAAC,CAAC,IAAI,GAAC,QAAQ,EAAC,CAAC,CAAC,KAAK,GAAC,CAAC,CAAC,QAAQ,EAAC,CAAC,GAAC,CAAC,CAAC,MAAM,CAAC;IAAA,OAAM;AAAA,CAAC,CAAA,IAAG,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC;IAAA,CAAC,CAAC,IAAI,GAAC,MAAM,EAAC,CAAC,CAAC,KAAK,GAAC,IAAI,GAAG,EAAC,CAAC,CAAC,IAAI,GAAC,EAAE,CAAC;IAAA,KAAI,IAAI,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,CAAC,CAAC,KAAK,CAAC,MAAM,EAAC,CAAC,EAAE,EAAC,CAAC;QAAA,IAAI,CAAC,GAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAC,CAAC,GAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,GAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,OAAO,EAAC,CAAC,CAAC,MAAM,EAAC,CAAC,CAAC,MAAM,EAAC,CAAC,CAAC,EAAC,CAAC,GAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC;QAAA,IAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;YAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAAA,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAC,CAAC,CAAC,QAAQ,CAAC,EAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAC,CAAC,GAAC,CAAC,CAAC,MAAM,CAAA;IAAA,CAAC;IAAA,OAAM;AAAA,CAAC,CAAA,IAAG,CAAC,IAAE,IAAI,IAAE,CAAC,KAAG,CAAC,CAAC,IAAE,CAAC,KAAG,EAAE,EAAC,CAAC;IAAA,CAAC,CAAC,IAAI,GAAC,IAAI,CAAC;IAAA,OAAM;AAAA,CAAC,CAAA,IAAG,CAAC,CAAC,IAAE,CAAC,CAAC,QAAQ,KAAG,EAAE;IAAC,MAAM,IAAI,CAAC,CAAC,aAAa,EAAC,aAAa,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA,CAAC,CAAC,IAAI,GAAC,MAAM,EAAC,CAAC,CAAC,IAAI,GAAC,CAAC,EAAC,CAAC,GAAC,CAAC,CAAC,WAAW,CAAA,CAAA,CAAC,EAAC,CAAC,GAAC,CAAC,CAAC,EAAC,CAAC,EAAC,EAAE,GAAC,IAAI,CAAC,GAAC,CAAC,KAAG,CAAC,CAAC,CAAA,IAAG,CAAC,CAAC,IAAI,KAAG,MAAM,EAAC,CAAC;IAAA,IAAG,CAAC,CAAC,IAAE,CAAC,CAAC,QAAQ,KAAG,EAAE;QAAC,MAAM,IAAI,CAAC,CAAC,aAAa,EAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAAA,CAAC,IAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAC,CAAC,GAAC,CAAC,CAAC,WAAW,CAAC;IAAA,OAAM;AAAA,CAAC,CAAA,IAAG,CAAC,CAAC,IAAI,KAAG,MAAM,EAAC,CAAC;IAAA,IAAG,CAAC,CAAC,IAAE,CAAC,CAAC,QAAQ,KAAG,EAAE,IAAE,CAAC,CAAC,IAAI,KAAG,EAAE;QAAC,MAAM,IAAI,CAAC,CAAC,qBAAqB,EAAC,SAAS,EAAE,YAAY,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAAA,IAAI,CAAC,GAAC,CAAC,CAAC;IAAA,CAAC,IAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAC,CAAC,GAAC,CAAC,CAAC,WAAW,CAAC;IAAA,IAAI,CAAC,GAAC,IAAI,CAAC,CAAC,CAAC,EAAC,CAAC,EAAC,IAAI,CAAC,EAAC,CAAC,GAAC,CAAC,CAAC;IAAA,IAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,IAAE,CAAC;QAAC,KAAI,IAAI,CAAC,GAAC,CAAC,EAAC,CAAC,IAAE,CAAC,KAAG,CAAC,EAAC,CAAC,GAAC,CAAC,CAAC,WAAW;YAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAAA,IAAG,CAAC,CAAC,IAAE,CAAC,CAAC,QAAQ,KAAG,EAAE,IAAE,CAAC,CAAC,IAAI,KAAG,CAAC;QAAC,MAAM,IAAI,CAAC,CAAC,QAAQ,EAAC,SAAS,CAAC,YAAY,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAAA,CAAC,CAAC,MAAM,GAAC,CAAC,EAAC,CAAC,IAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,CAAC,CAAC,WAAW,CAAC;IAAA,OAAM;AAAA,CAAC,CAAA,IAAI,CAAC,GAAC,CAAC,CAAC,CAAA,IAAG,CAAC,CAAC,IAAE,CAAC,CAAC,QAAQ,KAAG,EAAE,IAAE,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAG,CAAC,CAAC,GAAG;IAAC,MAAM,IAAI,CAAC,CAAC,YAAY,EAAC,IAAI,CAAC,CAAC,GAAG,GAAG,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA,IAAI,CAAC,GAAC,CAAC,CAAC,CAAA,CAAC,IAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA,KAAI,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK;IAAC,CAAC,CAAC,IAAI,IAAE,IAAI,IAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA,CAAC,CAAA,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,IAAI,EAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA,CAAC,CAAA,EAAC,IAAI,EAAC,CAAC,CAAC,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,CAAC,CAAC,IAAI,EAAC,IAAI,EAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAC,CAAC,CAAC,CAAA,IAAI,CAAC,GAAC,CAAC,CAAC,WAAW,CAAC,CAAA,CAAC,GAAC,CAAC,CAAC,UAAU,CAAC,CAAA,KAAI,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ;IAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAA,CAAC,GAAC,CAAC,CAAA,CAAA,CAAC,CAAC,CAAA,KAAI,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,QAAQ;IAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAA,OAAO,CAAC,CAAC,MAAM,GAAC,CAAC,EAAC,EAAC,QAAQ,EAAC,CAAC,EAAC,MAAM,EAAC,CAAC,EAAC,CAAA,CAAA,CAAC,CAAA,SAAS,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,IAAE,IAAG,EAAC,QAAQ,EAAC,CAAC,EAAC,GAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,OAAO,EAAC,CAAC,CAAC,MAAM,EAAC,CAAC,EAAC,CAAC,CAAC,UAAU,CAAC,EAAC,CAAC,GAAC,CAAC,CAAC,CAAA,OAAM,EAAC,MAAM,CAAC,CAAC,IAAE,CAAC,CAAC,CAAC,IAAE,CAAC,CAAC,OAAO,KAAG,CAAC,CAAC,OAAO,CAAC,IAAE,CAAC,CAAC,EAAE,MAAM,EAAE,EAAC,CAAC,GAAC,IAAI,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,OAAO,CAAC,EAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAC,IAAI,CAAC,CAAC,EAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA,CAAA,CAAC,EAAC,OAAO,CAAC,CAAC,GAAC,EAAE,IAAE,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,MAAM,KAAG,CAAC,CAAC,CAAC,EAAC,CAAC,GAAC,IAAI,CAAA,CAAA,CAAC,EAAC,CAAA,CAAA,CAAC,CAAA,SAAS,EAAE,CAAC,CAAC,EAAC,CAAC,IAAE,IAAI,CAAC,GAAC,CAAC,CAAC,GAAE,EAAE,GAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAA,CAAA,CAAC,CAAC,CAAC,CAAA,OAAM,EAAC,OAAO,EAAC,GAAE,EAAE,GAAC,CAAC,EAAE,EAAC,CAAC,CAAC,OAAO,EAAE,CAAA,CAAA,CAAC,EAAC,OAAO,EAAC,GAAE,EAAE,CAAA,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAC,CAAA,CAAA,CAAC,CAAA,SAAS,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,IAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAA,CAAA,CAAC,CAAA,SAAS,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,IAAE,IAAI,CAAC,GAAC,IAAI,EAAC,CAAC,GAAC,CAAC,CAAC,GAAE,EAAE,GAAC,IAAI,CAAC,GAAC,CAAC,EAAE,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA,CAAC,CAAA,CAAC,GAAC,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,CAAA,CAAA,CAAC,CAAC,CAAC,CAAA,OAAM,EAAC,OAAO,EAAC,GAAE,EAAE,GAAC,CAAC,EAAE,EAAC,CAAC,EAAE,OAAO,EAAE,CAAA,CAAA,CAAC,EAAC,OAAO,EAAC,GAAE,EAAE,CAAA,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,EAAC,CAAA,CAAA,CAAC,CAAA,IAAI,CAAC,GAAC,KAAM,SAAQ,KAAK;IAAC,IAAI,CAAC;IAAA,IAAI,CAAC;IAAA,YAAY,CAAC,IAAE,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,EAAC,IAAI,CAAC,IAAI,GAAC,aAAa,EAAC,IAAI,CAAC,IAAI,GAAC,CAAC,CAAC,IAAI,EAAC,IAAI,CAAC,IAAI,GAAC,CAAC,CAAC,IAAI,IAAE,IAAI,CAAA,CAAA,CAAC;CAAC,CAAC,CAAA,IAAI,EAAE,GAAC,CAAC,CAAA,EAAE,CAAA,OAAO,CAAC,IAAE,UAAU,CAAA,CAAC,CAAA,EAAC,IAAI,EAAC,CAAC,EAAC,CAAA,CAAC,CAAA,CAAC,EAAC,EAAE,GAAC,CAAC,CAAC,EAAC,CAAC,EAAC,EAAE,GAAC,IAAI,CAAC,GAAC,IAAI,OAAO,EAAC,CAAC,GAAC,CAAC,CAAA,EAAE,GAAC,IAAG,CAAC,IAAE,IAAI,IAAE,OAAO,CAAC,IAAE,QAAQ,IAAE,OAAO,CAAC,IAAE,SAAS;IAAC,OAAO,CAAC,CAAC,CAAA,IAAG,OAAO,CAAC,IAAE,QAAQ,EAAC,CAAC;IAAA,IAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;QAAC,MAAM,IAAI,SAAS,CAAC,mBAAmB,CAAC,CAAC;IAAA,OAAO,CAAC,CAAA;AAAA,CAAC,CAAA,IAAG,OAAO,CAAC,IAAE,QAAQ;IAAC,MAAM,IAAI,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA,IAAG,CAAC,YAAY,IAAI,EAAC,CAAC;IAAA,IAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;QAAC,MAAM,IAAI,SAAS,CAAC,cAAc,CAAC,CAAC;IAAA,OAAO,CAAC,CAAC,MAAM,EAAE,CAAA;AAAA,CAAC,CAAA,IAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAAC,MAAM,IAAI,SAAS,CAAC,cAAc,CAAC,CAAC,CAAA,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA,IAAI,CAAC,CAAC,CAAA,IAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IAAC,CAAC,GAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;KAAI,CAAC;IAAA,IAAI,CAAC,GAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;IAAA,IAAG,CAAC,KAAG,IAAI,IAAE,CAAC,KAAG,MAAM,CAAC,SAAS;QAAC,MAAM,IAAI,SAAS,CAAC,kBAAkB,CAAC,CAAC;IAAA,IAAI,CAAC,GAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAAA,KAAI,IAAI,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;QAAC,CAAC,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAAA,CAAC,GAAC,CAAC,CAAA;AAAA,CAAC,CAAA,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAC,CAAC,CAAA,CAAA,CAAC,CAAC,CAAA,IAAG,CAAC;IAAA,IAAI,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,GAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAC,CAAC,GAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAAA,IAAG,OAAO,CAAC,IAAE,QAAQ,IAAE,CAAC,KAAG,IAAI,IAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAAC,MAAM,IAAI,SAAS,CAAC,eAAe,CAAC,CAAC;IAAA,OAAM,EAAC,GAAG,EAAC,CAAC,EAAC,OAAO,EAAC,CAAC,EAAC,CAAA;AAAA,CAAC;AAAA,MAAK,CAAC;IAAA,MAAM,IAAI,CAAC,CAAC,EAAC,IAAI,EAAC,gBAAgB,EAAC,OAAO,EAAC,WAAW,CAAC,iDAAiD,EAAC,IAAI,EAAC,2EAA2E,EAAC,CAAC,CAAA;AAAA,CAAC,CAAA,CAAC,CAAC,CAAA,IAAI,EAAE,GAAC,CAAC,CAAA,EAAE,GAAC,IAAI,CAAC,GAAC,EAAE,EAAC,CAAC,GAAC,CAAC,CAAC,QAAQ,IAAE,CAAC,CAAC,OAAO,CAAC,CAAA,OAAM,CAAC,CAAC,EAAE,WAAW,EAAE,KAAG,CAAC,IAAE,CAAC,EAAE,WAAW,EAAE,KAAG,KAAK,IAAE,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,KAAG,IAAI,CAAC,IAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAA,CAAA,CAAC,EAAC,EAAE,GAAC,CAAC,CAAA,EAAE,CAAA,CAAC,GAAG,CAAC,CAAC,UAAU,IAAE,CAAC,CAAC,QAAQ,IAAE,EAAE,CAAC,EAAC,EAAE,GAAC,CAAC,CAAC,EAAC,CAAC,EAAC,EAAE,GAAC,IAAI,CAAC,GAAC,CAAC,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,CAAA,IAAG,CAAC;IAAA,IAAI,CAAC,GAAC,CAAC,CAAA,CAAC,CAAA,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA,CAAC,CAAA,EAAE,CAAC;IAAA,IAAG,OAAO,CAAC,IAAE,QAAQ,IAAE,CAAC,KAAG,IAAI,IAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAAC,MAAM,IAAI,SAAS,CAAC;IAAA,IAAI,CAAC,GAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC;IAAA,OAAM,EAAC,KAAK,EAAC,CAAC,CAAC,OAAO,EAAC,GAAG,EAAC,CAAC,CAAC,GAAG,EAAC,CAAA;AAAA,CAAC;AAAA,MAAK,CAAC;IAAA,MAAM,IAAI,CAAC,CAAC,EAAC,IAAI,EAAC,gBAAgB,EAAC,OAAO,EAAC,WAAW,CAAC,wBAAwB,EAAC,CAAC,CAAA;AAAA,CAAC,CAAA,CAAC,EAAC,EAAE,GAAC,CAAC,CAAA,EAAE,GAAC,IAAI,CAAC,GAAC,CAAC,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC,CAAA,IAAG,CAAC,CAAC;IAAC,OAAO,IAAI,CAAC,CAAA,IAAI,CAAC,GAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,GAAC,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,IAAE,CAAC,CAAC,GAAG,CAAC,CAAA,OAAO,CAAC,CAAC,YAAY,EAAE,CAAC,UAAU,EAAC,CAAC,CAAC,EAAC,EAAC,IAAI,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,EAAC,CAAA,CAAA,CAAC,EAAC,EAAE,GAAC,CAAC,CAAC,EAAC,CAAC,EAAC,EAAE,GAAC,IAAI,CAAC,GAAC,IAAI,GAAG,EAAC,CAAC,GAAC,IAAI,GAAG,CAAC,CAAA,KAAI,IAAI,CAAC,IAAI,CAAC,EAAC,CAAC;IAAA,IAAI,CAAC,GAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAAA,CAAC,IAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA,CAAC,CAAA,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA,CAAC,CAAA,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAC,CAAC,CAAC,CAAC,CAAA;AAAA,CAAC,CAAA,OAAO,CAAC,CAAA,CAAA,CAAC,CAAC,CAAA,SAAS,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,GAAC,EAAE,IAAE,IAAI,CAAC,GAAC,IAAI,OAAO,EAAC,CAAC,GAAC,CAAC,CAAA,EAAE,GAAC,IAAI,CAAC,GAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA,CAAC,IAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAA,CAAA,CAAC,EAAC,CAAC,GAAC,CAAC,CAAC,EAAC,CAAC,EAAC,EAAE,GAAC,IAAI,CAAC,GAAC,EAAE,CAAC,CAAA,KAAI,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAC,CAAC;IAAA,IAAI,CAAC,GAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAAA,IAAG,CAAC,EAAC,CAAC;QAAA,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAAA,SAAQ;IAAA,CAAC;IAAA,IAAI,CAAC,GAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAAA,IAAG,CAAC,CAAC;QAAC,SAAS;IAAA,IAAI,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAAA,IAAG,CAAC,CAAC,EAAC,CAAC;QAAA,IAAG,CAAC,CAAC,MAAM,KAAG,CAAC,CAAC;YAAC,SAAS;QAAA,MAAM,IAAI,CAAC,CAAC,EAAC,IAAI,EAAC,kBAAkB,EAAC,OAAO,EAAC,2BAA2B,CAAC,CAAC,IAAI,sCAAsC,EAAC,IAAI,EAAC,uBAAuB,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAE,QAAQ,EAAE,EAAC,CAAC,CAAA;IAAA,CAAC;IAAA,IAAI,CAAC,GAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAC,CAAC,CAAC,EAAC,CAAC,GAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAC,CAAC,GAAC,IAAI,eAAe,EAAC,CAAC,GAAC,IAAI,CAAC;IAAA,IAAG,CAAC;QAAA,CAAC,GAAC,CAAC,CAAA,CAAC,CAAA,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,IAAI,CAAC,CAAA,CAAC,CAAA,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,IAAI,CAAC,EAAC,CAAC,CAAC,KAAK,EAAE,CAAC,EAAC,IAAI,EAAC,CAAC,EAAC,QAAQ,EAAC,CAAC,CAAC,MAAM,EAAC,CAAC,CAAA;IAAA,CAAC;IAAA,OAAM,CAAC,EAAC,CAAC;QAAA,MAAM,CAAC,CAAC,KAAK,EAAE,EAAC,CAAC,EAAE,OAAO,EAAE,EAAC,CAAC,CAAC,OAAO,EAAE,EAAE,EAAC,CAAC,CAAA;IAAA,CAAC;IAAA,IAAI,CAAC,GAAC,CAAC,CAAC,EAAC,CAAC,GAAC,EAAC,IAAI,EAAC,CAAC,CAAC,IAAI,EAAC,GAAG,EAAC,CAAC,CAAC,GAAG,EAAC,KAAK,EAAC,CAAC,CAAC,KAAK,EAAC,OAAO,EAAC,CAAC,EAAC,OAAO,EAAC,GAAE,EAAE,GAAC,CAAC,IAAE,CAAC,CAAC,GAAC,CAAC,CAAC,EAAC,CAAC,CAAC,KAAK,EAAE,EAAC,CAAC,EAAE,OAAO,EAAE,EAAC,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAA,CAAA,CAAC,EAAC,CAAC;IAAA,CAAC,CAAC,GAAG,CAAC,CAAC,EAAC,EAAC,IAAI,EAAC,CAAC,EAAC,UAAU,EAAC,CAAC,EAAC,QAAQ,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,EAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AAAA,CAAC,CAAA,OAAO,CAAC,CAAA,CAAA,CAAC,EAAC,CAAC,GAAC,CAAC,CAAA,EAAE,CAAA,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,CAAA,OAAM,EAAC,OAAO,EAAC,CAAC,EAAC,KAAK,EAAC,CAAC,CAAA,EAAE,CAAA,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,EAAC,SAAS,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,EAAE,GAAC,IAAI,CAAC,GAAC,EAAE,CAAC,CAAC,CAAC,EAAC,CAAC,GAAC,EAAE,CAAC,CAAC,CAAC,EAAC,CAAC,GAAC,IAAI,GAAG,EAAC,CAAC,GAAC,CAAC,CAAA,EAAE,CAAA,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,GAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,GAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAA,KAAI,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE;QAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,uBAAuB,CAAC,CAAC,GAAG,kCAAkC,CAAC,CAAC,CAAA,IAAI,CAAC,GAAC,IAAI,GAAG,CAAC,CAAA,KAAI,IAAG,CAAC,CAAC,EAAC,CAAC,CAAC,IAAG,CAAC,EAAC,CAAC;QAAA,IAAI,CAAC,GAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAC,CAAC,GAAC,CAAC,CAAA,CAAC,CAAA,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA,CAAC,CAAA,KAAK,CAAC,CAAC;QAAA,IAAG,CAAC,CAAC,IAAE,CAAC,CAAC;YAAC,SAAS;QAAA,IAAI,CAAC,GAAC,EAAE,CAAC,CAAC,CAAC,EAAC,CAAC,GAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAC,CAAC,CAAC,CAAC;QAAA,IAAG,CAAC,CAAC,QAAQ,KAAG,CAAC,CAAC,GAAG,EAAC,CAAC;YAAA,IAAG,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM;gBAAC,SAAS;YAAA,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,EAAC,CAAC,CAAC,QAAQ,GAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,IAAI,CAAC,KAAK,GAAC,CAAC,CAAC,KAAK,EAAC,CAAC,CAAC,YAAY,EAAE,CAAC,YAAY,EAAC,CAAC,CAAC,GAAG,CAAC,EAAC,CAAC,CAAC,YAAY,EAAE,CAAC,UAAU,EAAC,CAAC,CAAC,GAAG,CAAC,CAAA;QAAA,CAAC;QAAA,IAAI,CAAC,GAAC,CAAC,CAAC,UAAU,IAAE,CAAC,CAAC,MAAM,CAAC;QAAA,CAAC,IAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;IAAA,CAAC,CAAA,KAAI,IAAI,CAAC,IAAI,CAAC;QAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA,KAAI,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA,KAAI,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAC,CAAC,EAAC,IAAI,CAAC,CAAC,CAAA,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA,CAAA,CAAC,EAAC,OAAO,EAAC,CAAC,CAAA,EAAE,GAAC,KAAI,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAAC,CAAC,CAAC,CAAC,CAAC,CAAA,CAAA,CAAC,EAAC,CAAA,CAAA,CAAC,CAAA,SAAS,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,GAAC,EAAE,IAAE,OAAO,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA,CAAA,CAAC,CAAA,IAAI,EAAE,GAAC,IAAI,GAAG,CAAC,CAAC,MAAM,EAAC,MAAM,EAAC,IAAI,EAAC,KAAK,EAAC,OAAO,EAAC,IAAI,EAAC,KAAK,EAAC,OAAO,EAAC,MAAM,EAAC,MAAM,EAAC,QAAQ,EAAC,OAAO,EAAC,KAAK,CAAC,CAAC,EAAC,EAAE,GAAC,mBAAmB,EAAC,EAAE,GAAC,8BAA8B,EAAC,EAAE,GAAC,IAAI,GAAG,EAAC,EAAE,GAAC,IAAI,GAAG,EAAC,EAAE,GAAC,CAAC,CAAA,EAAE,GAAC,IAAI,CAAC,GAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA,OAAO,MAAM,CAAC,cAAc,CAAC,CAAC,EAAC,KAAK,EAAC,EAAC,KAAK,EAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAC,UAAU,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA,CAAA,CAAC,EAAC,EAAE,GAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,GAAC,IAAI,CAAC,GAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,CAAC,EAAC,CAAC,GAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA,IAAG,CAAC;IAAC,OAAO,CAAC,CAAC,CAAA,IAAI,CAAC,GAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAA,KAAI,IAAI,CAAC,IAAI,CAAC;IAAC,CAAC,CAAC,CAAC,CAAC,MAAM,GAAC,CAAC,CAAC,IAAE,IAAI,CAAC,GAAG,EAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAA,CAAC,CAAC,CAAC,CAAC,MAAM,GAAC,CAAC,CAAC,IAAE,GAAG,EAAC,CAAC,IAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,GAAC,CAAC,CAAC,IAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAA,IAAI,CAAC,GAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAA,CAAA,CAAC,EAAC,EAAE,GAAC,CAAC,CAAA,EAAE,GAAC,IAAI,CAAC,GAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA,IAAG,CAAC;IAAC,OAAO,CAAC,CAAC,CAAA,IAAI,CAAC,GAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,EAAC,MAAM,EAAC,CAAC,GAAC,CAAC,EAAC,EAAC,GAAE,EAAE,CAAA,EAAE,CAAC,CAAC,CAAC,CAAA,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAA,CAAA,CAAC,EAAC,EAAE,GAAC,CAAC,CAAA,EAAE,GAAC,IAAI,CAAC,GAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA,CAAC,CAAA,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA,CAAC,CAAA,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,EAAC,GAAG,CAAC,CAAC,CAAA,CAAA,CAAC,EAAC,EAAE,GAAC,CAAC,CAAA,EAAE,CAAA,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA,CAAC,CAAA,EAAE,CAAC,CAAC,CAAC,CAAA,CAAC,CAAA,CAAC,EAAC,EAAE,GAAC,CAAC,CAAA,EAAE,CAAA,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAC,CAAC,CAAA,EAAE,CAAA,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,EAAC,EAAE,GAAC,CAAC,CAAA,EAAE,CAAA,CAAC,CAAC,IAAE,OAAO,CAAC,IAAE,QAAQ,IAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,CAAA,CAAC,IAAE,IAAI,IAAE,CAAC,KAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,CAAA,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAC,EAAE,GAAC,CAAC,CAAA,EAAE,CAAA,CAAC,KAAG,WAAW,CAAA,CAAC,CAAA,OAAO,CAAA,CAAC,CAAA,CAAC,KAAG,SAAS,CAAA,CAAC,CAAA,KAAK,CAAA,CAAC,CAAA,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA,CAAC,CAAA,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE,CAAA,CAAC,CAAA,CAAC,CAAC,CAAA,SAAS,CAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,IAAE,IAAI,CAAC,GAAC,CAAC,IAAE,EAAE,CAAC,CAAA,IAAG,OAAO,CAAC,IAAE,UAAU;IAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA,IAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAAC,MAAM,IAAI,SAAS,CAAC,6BAA6B,CAAC,GAAG,CAAC,CAAC,CAAA,IAAG,yBAAyB,IAAG,CAAC;IAAC,MAAM,IAAI,SAAS,CAAC,8FAA8F,CAAC,CAAC,CAAA,IAAG,KAAK,IAAG,CAAC;IAAC,MAAM,IAAI,SAAS,CAAC,8CAA8C,CAAC,CAAC,CAAA,IAAI,CAAC,GAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,EAAE,CAAA,CAAC,KAAG,UAAU,IAAE,CAAC,KAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,CAAA,CAAC,EAAC,UAAU,EAAC,CAAC,EAAC,IAAI,EAAC,EAAE,CAAC,CAAC,CAAC,EAAC,KAAK,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,GAAC,IAAI,GAAG,CAAC,CAAA,KAAI,IAAI,CAAC,IAAI,CAAC,EAAC,CAAC;IAAA,IAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;QAAC,MAAM,IAAI,SAAS,CAAC,+BAA+B,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;IAAA,IAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;QAAC,MAAM,IAAI,SAAS,CAAC,kBAAkB,CAAC,CAAC,IAAI,+BAA+B,CAAC,CAAC;IAAA,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;AAAA,CAAC,CAAA,IAAI,CAAC,GAAC,CAAC,CAAC,QAAQ,KAAG,KAAK,CAAC,IAAE,CAAC,CAAC,QAAQ,KAAG,IAAI,IAAE,CAAC,CAAC,QAAQ,KAAG,CAAC,CAAC,CAAC,CAAA,IAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAE,CAAC;IAAC,MAAM,IAAI,SAAS,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC,CAAA,IAAI,CAAC,GAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA,EAAE,CAAA,CAAC,CAAC,UAAU,KAAG,OAAO,CAAA,CAAC,CAAA,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA,CAAC,CAAA,CAAC,CAAC,KAAK,CAAC,CAAC,CAAA,OAAO,CAAC,IAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA,EAAE,CAAA,CAAC,CAAC,IAAI,CAAC,EAAC,CAAC,CAAC,EAAC,GAAG,CAAC,CAAC,CAAA,CAAA,CAAC,CAAA,IAAI,CAAC,GAAC,CAAC,CAAC,CAAA,IAAI,CAAC,GAAC,CAAC,CAAA,EAAE,CAAA,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,EAAE,EAAC,CAAC,GAAC,CAAC,CAAA,EAAE,CAAA,CAAC,IAAE,IAAI,CAAA,CAAC,CAAA,EAAE,CAAA,CAAC,CAAA,MAAM,CAAC,CAAC,CAAC,EAAC,EAAE,GAAC,KAAK,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,GAAC,IAAI,CAAC,GAAC,MAAM,KAAK,CAAC,YAAY,kBAAkB,CAAC,CAAC,CAAC,EAAE,EAAC,EAAC,MAAM,EAAC,MAAM,EAAC,WAAW,EAAC,aAAa,EAAC,OAAO,EAAC,EAAC,cAAc,EAAC,kBAAkB,EAAC,EAAC,IAAI,EAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAC,MAAM,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,GAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA,IAAG,CAAC,CAAC,CAAC,EAAE,IAAE,CAAC,CAAC,EAAE,KAAG,CAAC,CAAC,EAAC,CAAC;IAAA,IAAI,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAAA,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,IAAE,CAAC,EAAE,IAAI,IAAE,CAAC,CAAC,OAAO,IAAE,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;AAAA,CAAC,CAAA,OAAO,CAAC,CAAC,KAAK,CAAA,CAAA,CAAC,CAAC,CAAA,SAAS,EAAE,CAAC,CAAC,EAAC,CAAC,GAAC,EAAE,IAAE,IAAG,EAAC,EAAE,EAAC,CAAC,EAAC,MAAM,EAAC,CAAC,EAAC,GAAC,CAAC,EAAC,CAAC,GAAC,CAAC,CAAC,MAAM,EAAC,CAAC,GAAC,CAAC,CAAC,OAAO,EAAC,CAAC,GAAC,CAAC,CAAC,QAAQ,KAAG,CAAC,CAAC,EAAC,CAAC,GAAC,CAAC,CAAC,CAAC,CAAA,CAAC,CAAA,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA,CAAC,CAAA,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,EAAC,CAAC,GAAC,GAAE,EAAE,CAAA,CAAC,EAAE,CAAC,CAAC,CAAC,IAAE,EAAE,EAAC,CAAC,GAAC,CAAC,CAAA,EAAE,CAAA,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAC,CAAC,GAAC,GAAE,EAAE,CAAA,CAAC,CAAC,OAAO,EAAE,EAAE,IAAE,CAAC,EAAE,EAAC,CAAC,GAAC,GAAE,EAAE,CAAA,CAAC,CAAC,QAAQ,EAAE,EAAE,IAAE,CAAC,CAAC,QAAQ,KAAG,CAAC,CAAC,EAAC,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,GAAC,CAAC,CAAC,EAAE,CAAC,EAAC,CAAC,GAAC,CAAC,CAAC,EAAE,CAAC,EAAC,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,GAAC,CAAC,CAAC,EAAE,CAAC,EAAC,CAAC,GAAC,CAAC,CAAC,IAAI,CAAC,EAAC,CAAC,GAAC,CAAC,CAAC,EAAE,CAAC,EAAC,CAAC,GAAC,IAAI,EAAC,CAAC,EAAC,CAAC,GAAC,CAAC,CAAC,EAAC,CAAC,GAAC,CAAC,CAAA,EAAE,CAAA,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,IAAE,IAAI,CAAC,CAAC,EAAC,EAAE,GAAC,CAAC,CAAA,EAAE,CAAA,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,IAAE,MAAM,CAAC,CAAC,IAAE,CAAC,CAAC,SAAS,EAAC,EAAE,GAAC,CAAC,CAAA,EAAE,CAAA,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,gBAAgB,IAAE,KAAK,CAAC,CAAC,EAAC,EAAE,GAAC,GAAE,EAAE,CAAA,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAA,EAAE,CAAA,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAG,CAAC,EAAE,CAAC,EAAE,KAAK,IAAE,CAAC,CAAC,MAAM,EAAC,EAAE,GAAC,GAAE,EAAE,GAAC,IAAI,CAAC,GAAC,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,iBAAiB,EAAE,EAAC,CAAC,GAAC,CAAC,CAAA,CAAC,CAAA,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAA,EAAE,CAAA,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,iBAAiB,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA,CAAC,CAAA,CAAC,EAAE,CAAC,CAAA,OAAO,CAAC,CAAC,OAAO,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC,CAAC,KAAK,CAAC,CAAC,EAAC,CAAC,CAAC,CAAA,CAAA,CAAC,EAAC,CAAC,GAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,GAAC,EAAE,EAAC,EAAE,GAAC,IAAG,CAAC,EAAE;IAAC,OAAO,CAAA,IAAI,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA,IAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAA,EAAE,CAAA,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAG,CAAC,CAAC,IAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,EAAC,EAAC,KAAK,EAAC,CAAC,EAAC,KAAK,EAAC,CAAC,CAAC,CAAC,CAAC,EAAC,WAAW,EAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC;IAAA,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA,CAAC,CAAA,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAA,EAAE,CAAA,CAAC,KAAG,CAAC,CAAC,CAAA,CAAC,CAAA,CAAC,GAAG,CAAC,EAAE,EAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,EAAC,KAAK,EAAC,CAAC,EAAC,KAAK,EAAC,CAAC,CAAC,CAAC,CAAC,EAAC,WAAW,EAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC;IAAA,OAAM;AAAA,CAAC,CAAA,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA,CAAC,CAAA,CAAC,CAAC,CAAC,CAAA,CAAC,CAAA,EAAE,CAAC,EAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAC,CAAC,CAAC,gBAAgB,IAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,EAAC,KAAK,EAAC,CAAC,EAAC,KAAK,EAAC,CAAC,CAAC,CAAC,CAAC,EAAC,WAAW,EAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAA,CAAA,CAAC,EAAC,EAAE,GAAC,CAAC,CAAA,EAAE,GAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAA,EAAE,CAAA,CAAC,KAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA,CAAA,CAAC,EAAC,EAAE,GAAC,CAAC,CAAA,EAAE,CAAA,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAA,EAAE,CAAA,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,IAAE,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,GAAC,KAAK,IAAE,EAAE,GAAC,IAAG,CAAC,CAAC,EAAE,YAAY;IAAC,OAAO,CAAA,CAAC,EAAE,KAAK,EAAE,CAAC,CAAA,IAAI,CAAC,GAAC,IAAI,eAAe,CAAC,CAAA,CAAC,GAAC,CAAC,EAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAA,IAAG,CAAC;IAAA,IAAI,CAAC,GAAC,EAAC,GAAG,CAAC,CAAC,SAAS,IAAE,EAAE,EAAC,CAAC;IAAA,CAAC,CAAC,CAAC,CAAC,WAAW,IAAE,QAAQ,CAAC,GAAC,CAAC,EAAE,CAAC,IAAI,EAAE,EAAC,CAAC,CAAC,CAAC,CAAC,UAAU,IAAE,OAAO,CAAC,GAAC,CAAC,CAAC,KAAK,IAAE,EAAE,CAAC;IAAA,IAAI,CAAC,GAAC,MAAM,EAAE,CAAC,CAAC,CAAC,YAAY,EAAC,CAAC,EAAC,CAAC,CAAC,MAAM,CAAC,EAAC,CAAC,GAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAAA,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAA,EAAE,CAAA,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAAA,CAAC;AAAA,OAAM,CAAC,EAAC,CAAC;IAAA,IAAG,CAAC,IAAE,CAAC,YAAY,KAAK,IAAE,CAAC,CAAC,IAAI,KAAG,YAAY;QAAC,OAAO;IAAA,CAAC,CAAC,GAAG,CAAC,CAAC,YAAY,KAAK,CAAA,CAAC,CAAA,CAAC,CAAC,OAAO,CAAA,CAAC,CAAA,CAAC,CAAC,SAAS,CAAC,CAAA;AAAA,CAAC;QAAO,CAAC;IAAA,CAAC,KAAG,CAAC,IAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;AAAA,CAAC,CAAA,CAAC,EAAC,EAAE,GAAC,KAAK,IAAE,EAAE,GAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAC,MAAM,CAAC,EAAE,CAAA,CAAA,CAAC,EAAC,EAAE,GAAC,GAAE,EAAE,GAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA,CAAA,CAAC,EAAC,EAAE,GAAC,CAAC,CAAA,EAAE,GAAC,CAAC,CAAC,aAAa,YAAY,gBAAgB,IAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,EAAC,YAAY,CAAC,CAAC,CAAC,EAAC,CAAC,GAAC,UAAU,CAAC,CAAC,EAAC,GAAG,CAAC,CAAC,CAAA,CAAA,CAAC,EAAC,EAAE,GAAC,KAAK,EAAC,CAAC,EAAA,EAAE,GAAC,IAAG,CAAC,CAAC,cAAc,EAAE,EAAC,CAAC,CAAC,EAAE,YAAY,IAAE,CAAC,CAAC,CAAC,CAAC,aAAa,YAAY,eAAe,CAAC;IAAC,OAAO,CAAA,IAAI,CAAC,GAAC,CAAC,EAAE,EAAC,CAAC,GAAC,CAAC,EAAE,EAAE,IAAE,MAAM,CAAC,UAAU,EAAE,EAAC,CAAC,GAAC,EAAC,GAAG,CAAC,CAAC,YAAY,IAAE,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,CAAA,KAAI,IAAG,CAAC,CAAC,EAAC,CAAC,CAAC,IAAG,IAAI,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,OAAO,EAAE;IAAC,CAAC,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAA,IAAG,CAAC;IAAA,MAAM,EAAE,CAAC,CAAC,CAAC,YAAY,EAAC,CAAC,CAAC,CAAC;IAAA,IAAI,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,IAAE,MAAM,CAAC,CAAC,CAAC;IAAA,IAAG,CAAC,CAAC,EAAE,EAAE,EAAC,CAAC;QAAA,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,IAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAAA,OAAM;IAAA,CAAC;IAAA,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAA,EAAE,CAAA,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAG,CAAC,CAAA,CAAC,CAAA,EAAC,GAAG,CAAC,EAAC,KAAK,EAAC,CAAC,IAAE,CAAC,CAAC,KAAK,EAAC,CAAA,CAAC,CAAA,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAC,MAAM,CAAC,EAAE,CAAA;AAAA,CAAC;AAAA,OAAM,CAAC,EAAC,CAAC;IAAA,CAAC,CAAC,GAAG,CAAC,CAAC,YAAY,KAAK,CAAA,CAAC,CAAA,CAAC,CAAC,OAAO,CAAA,CAAC,CAAA,CAAC,CAAC,SAAS,CAAC,CAAA;AAAA,CAAC;QAAO,CAAC;IAAA,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;AAAA,CAAC,CAAA,CAAC,EAAC,EAAE,GAAC,KAAK,EAAC,CAAC,EAAA,EAAE,GAAC,IAAI,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA,IAAG,CAAC,EAAE,KAAG,CAAC,EAAC,CAAC;IAAA,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAAA,OAAM;AAAA,CAAC,CAAA,IAAG,CAAC,EAAE,cAAc,EAAC,CAAC;IAAA,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAAA,IAAG,CAAC;QAAA,MAAM,EAAE,CAAC,CAAC,CAAC,cAAc,EAAC,EAAC,GAAG,CAAC,CAAC,cAAc,IAAE,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAA,EAAE,CAAA,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAG,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAC,MAAM,CAAC,EAAE,CAAA;IAAA,CAAC;IAAA,OAAM,CAAC,EAAC,CAAC;QAAA,CAAC,CAAC,GAAG,CAAC,CAAC,YAAY,KAAK,CAAA,CAAC,CAAA,CAAC,CAAC,OAAO,CAAA,CAAC,CAAA,CAAC,CAAC,SAAS,CAAC,CAAA;IAAA,CAAC;YAAO,CAAC;QAAA,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;IAAA,CAAC;AAAA,CAAC,CAAA,CAAC,EAAC,EAAE,GAAC,CAAC,CAAA,EAAE,GAAC,IAAI,CAAC,GAAC,CAAC,EAAE,EAAE,GAAG,IAAE,CAAC,EAAE,YAAY,IAAE,EAAE,EAAC,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAC,CAAC,GAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA,OAAO,CAAC,CAAC,OAAO,EAAC,EAAC,SAAS,EAAC,YAAY,EAAC,WAAW,EAAC,MAAM,EAAC,OAAO,EAAC,CAAC,EAAC,QAAQ,EAAC,CAAC,CAAC,CAAC,MAAM,EAAC,EAAC,SAAS,EAAC,YAAY,EAAC,QAAQ,EAAC,CAAC,CAAC,CAAC,KAAK,EAAC,CAAC,CAAC,QAAQ,CAAA,CAAC,CAAA,CAAC,CAAC,MAAM,EAAC,EAAC,SAAS,EAAC,eAAe,EAAC,aAAa,EAAC,MAAM,EAAC,QAAQ,EAAC,CAAC,GAAG,EAAC,GAAG,CAAC,EAAC,CAAC,CAAA,CAAC,CAAA,IAAI,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,IAAI,KAAG,QAAQ,CAAA,CAAC,CAAA,CAAC,CAAC,QAAQ,EAAC,EAAC,SAAS,EAAC,cAAc,EAAC,EAAE,EAAC,CAAC,EAAC,IAAI,EAAC,CAAC,CAAC,IAAI,EAAC,QAAQ,EAAC,CAAC,CAAC,QAAQ,KAAG,CAAC,CAAC,EAAC,QAAQ,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAC,CAAC,CAAA,EAAE,CAAA,CAAC,CAAC,KAAK,EAAC,CAAC,CAAA,EAAE,CAAA,CAAC,CAAC,QAAQ,EAAC,EAAC,KAAK,EAAC,CAAC,CAAC,KAAK,EAAC,QAAQ,EAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAG,CAAC,EAAC,QAAQ,EAAC,CAAC,CAAC,KAAK,EAAC,CAAC,CAAC,EAAC,CAAC,CAAA,CAAC,CAAA,CAAC,CAAC,OAAO,EAAC,EAAC,SAAS,EAAC,cAAc,EAAC,EAAE,EAAC,CAAC,EAAC,IAAI,EAAC,CAAC,CAAC,IAAI,IAAE,MAAM,EAAC,IAAI,EAAC,CAAC,CAAC,IAAI,EAAC,KAAK,EAAC,CAAC,EAAC,YAAY,EAAC,KAAK,EAAC,QAAQ,EAAC,CAAC,CAAC,QAAQ,KAAG,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAA,CAAA,CAAC,EAAC,EAAE,GAAC,GAAE,EAAE,CAAA,CAAC,CAAC,MAAM,EAAC,EAAC,SAAS,EAAC,iBAAiB,EAAC,QAAQ,EAAC,EAAE,EAAC,QAAQ,EAAC,CAAC,CAAC,CAAC,KAAK,EAAC,EAAC,SAAS,EAAC,WAAW,EAAC,QAAQ,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAC,CAAC,CAAA,EAAE,CAAA,CAAC,CAAC,IAAI,EAAC,EAAE,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,KAAK,EAAC,EAAC,SAAS,EAAC,cAAc,EAAC,QAAQ,EAAC,CAAC,CAAC,KAAK,EAAC,EAAC,SAAS,EAAC,cAAc,EAAC,QAAQ,EAAC,CAAC,CAAC,CAAC,QAAQ,EAAC,EAAC,SAAS,EAAC,QAAQ,EAAC,cAAc,EAAC,SAAS,EAAC,IAAI,EAAC,QAAQ,EAAC,QAAQ,EAAC,CAAC,EAAE,EAAC,QAAQ,EAAC,CAAC,CAAC,IAAI,EAAC,CAAC,EAAC,CAAC,CAAC,QAAQ,EAAC,EAAC,SAAS,EAAC,QAAQ,EAAC,cAAc,EAAC,UAAU,EAAC,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAC,GAAE,EAAE,CAAA,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAC,QAAQ,EAAC,CAAC,CAAC,MAAM,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,EAAE,GAAC,CAAC,CAAA,EAAE,GAAC,IAAI,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,GAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA,OAAO,CAAC,CAAC,IAAI,EAAC,EAAC,SAAS,EAAC,qBAAqB,EAAC,eAAe,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,QAAQ,EAAC,CAAC,CAAC,CAAC,QAAQ,EAAC,EAAC,SAAS,EAAC,sBAAsB,EAAC,IAAI,EAAC,QAAQ,EAAC,cAAc,EAAC,CAAC,CAAA,CAAC,CAAA,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA,CAAC,CAAA,IAAI,EAAC,OAAO,EAAC,GAAE,EAAE,CAAA,CAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,QAAQ,EAAC,CAAC,CAAC,CAAC,QAAQ,EAAC,EAAC,QAAQ,EAAC,EAAE,CAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAA,CAAC,CAAA,CAAC,CAAC,OAAO,EAAC,EAAC,SAAS,EAAC,sBAAsB,EAAC,QAAQ,EAAC,CAAC,EAAC,CAAC,CAAA,CAAC,CAAA,IAAI,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,KAAK,EAAC,EAAC,SAAS,EAAC,yBAAyB,EAAC,QAAQ,EAAC,CAAC,CAAC,CAAC,QAAQ,EAAC,EAAC,SAAS,EAAC,QAAQ,EAAC,WAAW,EAAC,SAAS,EAAC,cAAc,EAAC,CAAC,CAAC,CAAC,CAAC,CAAA,CAAC,CAAA,SAAS,CAAA,CAAC,CAAA,WAAW,EAAC,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAC,GAAE,EAAE,CAAA,CAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,QAAQ,EAAC,CAAC,CAAC,CAAC,CAAC,CAAA,CAAC,CAAA,CAAC,CAAC,MAAM,CAAA,CAAC,CAAA,CAAC,CAAC,MAAM,EAAC,CAAC,EAAC,CAAC,EAAE,YAAY,CAAA,CAAC,CAAA,CAAC,CAAC,QAAQ,EAAC,EAAC,SAAS,EAAC,QAAQ,EAAC,WAAW,EAAC,SAAS,EAAC,cAAc,EAAC,UAAU,EAAC,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAC,GAAE,EAAE,CAAA,CAAC,CAAC,GAAG,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,QAAQ,EAAC,CAAC,CAAC,IAAI,EAAC,CAAC,CAAA,CAAC,CAAA,IAAI,EAAC,CAAC,EAAE,cAAc,CAAA,CAAC,CAAA,CAAC,CAAC,QAAQ,EAAC,EAAC,SAAS,EAAC,QAAQ,EAAC,WAAW,EAAC,SAAS,EAAC,cAAc,EAAC,aAAa,EAAC,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAC,GAAE,EAAE,CAAA,EAAE,CAAC,CAAC,CAAC,EAAC,QAAQ,EAAC,CAAC,EAAE,KAAG,CAAC,CAAA,CAAC,CAAA,CAAC,CAAC,aAAa,CAAA,CAAC,CAAA,CAAC,CAAC,MAAM,EAAC,CAAC,CAAA,CAAC,CAAA,IAAI,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAA,CAAA,CAAC,EAAC,EAAE,GAAC,GAAE,EAAE,CAAA,CAAC,CAAC,KAAK,EAAC,EAAC,SAAS,EAAC,aAAa,EAAC,mBAAmB,EAAC,QAAQ,EAAC,QAAQ,EAAC,CAAC,CAAC,CAAC,QAAQ,EAAC,EAAC,SAAS,EAAC,gBAAgB,EAAC,IAAI,EAAC,QAAQ,EAAC,YAAY,EAAC,CAAC,CAAC,KAAK,EAAC,OAAO,EAAC,EAAE,EAAC,QAAQ,EAAC,CAAC,CAAC,MAAM,EAAC,EAAC,QAAQ,EAAC,CAAC,CAAC,KAAK,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,SAAS,EAAC,EAAC,SAAS,EAAC,aAAa,EAAC,IAAI,EAAC,QAAQ,EAAC,YAAY,EAAC,MAAM,EAAC,iBAAiB,EAAC,GAAG,CAAC,iBAAiB,EAAC,QAAQ,EAAC,CAAC,CAAC,CAAC,QAAQ,EAAC,EAAC,SAAS,EAAC,YAAY,EAAC,QAAQ,EAAC,CAAC,CAAC,CAAC,IAAI,EAAC,EAAC,SAAS,EAAC,aAAa,EAAC,EAAE,EAAC,GAAG,CAAC,iBAAiB,EAAC,QAAQ,EAAC,CAAC,CAAC,WAAW,EAAC,CAAC,EAAC,CAAC,CAAC,QAAQ,EAAC,EAAC,SAAS,EAAC,aAAa,EAAC,IAAI,EAAC,QAAQ,EAAC,YAAY,EAAC,CAAC,CAAC,KAAK,EAAC,KAAK,EAAC,CAAC,CAAC,KAAK,EAAC,OAAO,EAAC,EAAE,EAAC,QAAQ,EAAC,MAAM,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,KAAK,EAAC,EAAC,SAAS,EAAC,YAAY,EAAC,QAAQ,EAAC,CAAC,CAAC,CAAC,KAAK,EAAC,EAAC,SAAS,EAAC,yBAAyB,EAAC,QAAQ,EAAC,CAAC,CAAC,CAAC,KAAK,EAAC,EAAC,SAAS,EAAC,uBAAuB,EAAC,QAAQ,EAAC,CAAC,CAAC,CAAC,MAAM,EAAC,EAAC,SAAS,EAAC,sBAAsB,EAAC,aAAa,EAAC,MAAM,EAAC,QAAQ,EAAC,CAAC,CAAC,KAAK,EAAC,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,EAAC,cAAc,EAAC,GAAG,EAAC,gBAAgB,EAAC,OAAO,EAAC,iBAAiB,EAAC,OAAO,EAAC,aAAa,EAAC,MAAM,EAAC,SAAS,EAAC,OAAO,EAAC,QAAQ,EAAC,CAAC,CAAC,CAAC,QAAQ,EAAC,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,CAAC,MAAM,EAAC,EAAC,CAAC,EAAC,gBAAgB,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,OAAO,EAAC,EAAC,SAAS,EAAC,eAAe,EAAC,IAAI,EAAC,QAAQ,EAAC,KAAK,EAAC,CAAC,EAAE,EAAC,YAAY,EAAC,KAAK,EAAC,WAAW,EAAC,CAAC,CAAC,MAAM,EAAC,YAAY,EAAC,CAAC,CAAC,MAAM,EAAC,OAAO,EAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAE,YAAY,CAAA,CAAC,CAAA,CAAC,CAAC,QAAQ,EAAC,EAAC,SAAS,EAAC,QAAQ,EAAC,cAAc,EAAC,SAAS,EAAC,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAC,GAAE,EAAE,CAAA,CAAC,CAAC,GAAG,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,CAAC,YAAY,IAAE,EAAE,EAAC,CAAC,EAAC,QAAQ,EAAC,CAAC,CAAC,MAAM,EAAC,CAAC,CAAA,CAAC,CAAA,IAAI,CAAC,EAAC,CAAC,EAAC,CAAC,EAAE,CAAA,CAAC,CAAA,CAAC,CAAC,OAAO,EAAC,EAAC,SAAS,EAAC,QAAQ,EAAC,WAAW,EAAC,QAAQ,EAAC,IAAI,EAAC,OAAO,EAAC,QAAQ,EAAC,CAAC,CAAC,CAAC,KAAK,EAAC,EAAC,SAAS,EAAC,aAAa,EAAC,QAAQ,EAAC,CAAC,CAAC,CAAC,GAAG,EAAC,EAAC,SAAS,EAAC,cAAc,EAAC,QAAQ,EAAC,CAAC,CAAC,SAAS,EAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,EAAC,SAAS,EAAC,gBAAgB,EAAC,QAAQ,EAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,QAAQ,EAAC,EAAC,SAAS,EAAC,QAAQ,EAAC,cAAc,EAAC,WAAW,EAAC,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAC,CAAC,EAAC,QAAQ,EAAC,CAAC,CAAC,KAAK,EAAC,CAAC,CAAC,EAAC,CAAC,CAAA,CAAC,CAAA,IAAI,EAAC,CAAC,EAAE,CAAA,CAAC,CAAA,EAAE,EAAE,CAAA,CAAC,CAAA,IAAI,EAAC,CAAC,EAAE,CAAA,CAAC,CAAA,CAAC,CAAC,GAAG,EAAC,EAAC,SAAS,EAAC,gBAAgB,EAAC,IAAI,EAAC,QAAQ,EAAC,QAAQ,EAAC,CAAC,CAAC,OAAO,EAAC,CAAC,CAAA,CAAC,CAAA,IAAI,EAAC,CAAC,CAAC,EAAE,IAAE,CAAC,CAAC,EAAE,CAAA,CAAC,CAAA,CAAC,EAAE,CAAC,MAAM,CAAA,CAAC,CAAA,CAAC,CAAC,IAAI,EAAC,EAAC,SAAS,EAAC,sBAAsB,EAAC,QAAQ,EAAC,CAAC,CAAC,CAAC,EAAE,EAAC,CAAC,EAAC,EAAE,CAAC,EAAC,CAAC,CAAA,CAAC,CAAA,CAAC,CAAC,GAAG,EAAC,EAAC,SAAS,EAAC,gBAAgB,EAAC,QAAQ,EAAC,CAAC,CAAC,SAAS,EAAC,CAAC,CAAA,CAAC,CAAA,IAAI,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,EAAE,GAAC,CAAC,CAAA,EAAE,GAAC,IAAG,CAAC,CAAC,CAAC,YAAY,aAAa,CAAC,IAAE,CAAC,CAAC,GAAG,KAAG,QAAQ,IAAE,CAAC,CAAC,EAAE,IAAE,CAAC,CAAC,EAAE;IAAC,OAAO,CAAA,CAAC,CAAC,cAAc,EAAE,EAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAA,IAAI,CAAC,GAAC,CAAC,CAAC,aAAa,EAAE,aAAa,CAAC,8BAA8B,CAAC,CAAC,CAAA,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAC,EAAE,EAAE,EAAC,CAAC,EAAE,KAAK,EAAE,CAAA,CAAA,CAAC,EAAC,EAAE,GAAC,CAAC,CAAA,EAAE,GAAC,CAAC,CAAC,cAAc,EAAE,EAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,aAAa,YAAY,iBAAiB,IAAE,CAAC,CAAC,aAAa,CAAC,kBAAkB,EAAE,KAAK,EAAE,CAAA,CAAA,CAAC,CAAC,CAAA,OAAM,EAAC,IAAI,EAAC,GAAE,EAAE,CAAA,CAAC,CAAC,KAAK,EAAC,EAAC,SAAS,EAAC,iBAAiB,EAAC,IAAI,EAAC,OAAO,EAAC,YAAY,EAAC,CAAC,CAAC,SAAS,EAAC,SAAS,EAAC,EAAE,EAAC,QAAQ,EAAC,CAAC,CAAC,CAAC,QAAQ,EAAC,EAAC,SAAS,EAAC,iBAAiB,EAAC,IAAI,EAAC,CAAC,CAAC,IAAI,EAAC,QAAQ,EAAC,CAAC,CAAC,QAAQ,KAAG,CAAC,CAAC,EAAC,QAAQ,EAAC,CAAC,EAAE,EAAC,QAAQ,EAAC,IAAI,EAAC,aAAa,EAAC,MAAM,EAAC,SAAS,EAAC,EAAE,EAAC,QAAQ,EAAC,CAAC,CAAC,CAAC,QAAQ,EAAC,EAAC,KAAK,EAAC,EAAE,EAAC,QAAQ,EAAC,CAAC,CAAC,EAAE,CAAC,MAAM,EAAC,CAAC,EAAC,CAAC,CAAA,CAAC,CAAA,CAAC,EAAE,CAAC,MAAM,CAAA,CAAC,CAAA,CAAC,CAAC,QAAQ,EAAC,EAAC,KAAK,EAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAC,QAAQ,EAAC,CAAC,CAAC,EAAC,QAAQ,EAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAC,CAAC,CAAA,CAAC,CAAA,IAAI,CAAA,CAAC,CAAA,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAA,EAAE,CAAA,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAC,CAAC,CAAA,EAAE,CAAA,CAAC,CAAC,KAAK,EAAC,CAAC,CAAA,EAAE,CAAA,CAAC,CAAC,QAAQ,EAAC,EAAC,KAAK,EAAC,CAAC,CAAC,KAAK,EAAC,QAAQ,EAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAG,CAAC,EAAE,EAAC,QAAQ,EAAC,CAAC,CAAC,KAAK,EAAC,CAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,QAAQ,EAAC,EAAC,SAAS,EAAC,kBAAkB,EAAC,YAAY,EAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,EAAC,IAAI,EAAC,QAAQ,EAAC,eAAe,EAAC,SAAS,EAAC,YAAY,EAAC,CAAC,CAAC,SAAS,EAAC,eAAe,EAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAC,eAAe,EAAC,GAAG,CAAC,gBAAgB,EAAC,QAAQ,EAAC,CAAC,EAAE,EAAC,OAAO,EAAC,GAAE,EAAE,CAAA,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAC,QAAQ,EAAC,CAAC,CAAC,CAAC,MAAM,EAAC,EAAC,SAAS,EAAC,gBAAgB,EAAC,QAAQ,EAAC,CAAC,CAAA,CAAC,CAAA,CAAC,CAAC,MAAM,CAAA,CAAC,CAAA,EAAE,EAAE,EAAC,CAAC,EAAC,CAAC,CAAC,MAAM,EAAC,EAAC,SAAS,EAAC,gBAAgB,EAAC,aAAa,EAAC,MAAM,EAAC,QAAQ,EAAC,QAAQ,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,IAAE,CAAC,EAAE,CAAC,MAAM,CAAA,CAAC,CAAA,CAAC,CAAC,IAAI,EAAC,EAAC,SAAS,EAAC,gBAAgB,EAAC,YAAY,EAAC,CAAC,CAAC,MAAM,EAAC,QAAQ,EAAC,CAAC,CAAC,CAAC,EAAE,EAAC,CAAC,CAAA,EAAE,CAAA,CAAC,EAAC,CAAC,CAAA,EAAE,CAAA,CAAC,CAAC,IAAI,EAAC,EAAC,SAAS,EAAC,eAAe,EAAC,QAAQ,EAAC,CAAC,CAAC,CAAC,MAAM,EAAC,EAAC,QAAQ,EAAC,EAAE,CAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,QAAQ,EAAC,EAAC,SAAS,EAAC,qBAAqB,EAAC,IAAI,EAAC,QAAQ,EAAC,YAAY,EAAC,GAAG,CAAC,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAC,KAAK,EAAC,CAAC,CAAC,KAAK,EAAC,QAAQ,EAAC,CAAC,EAAE,EAAC,OAAO,EAAC,GAAE,EAAE,CAAA,EAAE,CAAC,CAAC,CAAC,EAAC,QAAQ,EAAC,MAAM,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAA,CAAC,CAAA,IAAI,EAAC,CAAC,EAAE,CAAA,CAAC,CAAA,CAAC,CAAC,KAAK,EAAC,EAAC,SAAS,EAAC,eAAe,EAAC,EAAE,EAAC,GAAG,CAAC,gBAAgB,EAAC,QAAQ,EAAC,CAAC,CAAC,CAAC,OAAO,EAAC,EAAC,SAAS,EAAC,iBAAiB,EAAC,IAAI,EAAC,QAAQ,EAAC,KAAK,EAAC,CAAC,EAAE,EAAC,YAAY,EAAC,KAAK,EAAC,WAAW,EAAC,CAAC,CAAC,MAAM,EAAC,YAAY,EAAC,CAAC,CAAC,MAAM,EAAC,OAAO,EAAC,CAAC,CAAA,EAAE,GAAC,CAAC,CAAC,aAAa,YAAY,gBAAgB,IAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA,CAAA,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,KAAK,EAAC,EAAC,SAAS,EAAC,kBAAkB,EAAC,IAAI,EAAC,SAAS,EAAC,QAAQ,EAAC,EAAE,EAAE,CAAC,MAAM,CAAA,CAAC,CAAA,CAAC,CAAC,EAAE,EAAE,EAAC,CAAC,CAAA,EAAE,CAAA,CAAC,CAAC,KAAK,EAAC,CAAC,CAAA,EAAE,CAAA,CAAC,CAAC,QAAQ,EAAC,EAAC,SAAS,EAAC,iBAAiB,EAAC,IAAI,EAAC,QAAQ,EAAC,IAAI,EAAC,QAAQ,EAAC,eAAe,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAC,eAAe,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAC,OAAO,EAAC,GAAE,EAAE,CAAA,CAAC,CAAC,CAAC,CAAC,KAAK,EAAC,CAAC,CAAC,KAAK,EAAC,CAAC,CAAC,WAAW,CAAC,EAAC,QAAQ,EAAC,CAAC,CAAC,CAAC,MAAM,EAAC,EAAC,QAAQ,EAAC,CAAC,CAAC,KAAK,EAAC,CAAC,EAAC,CAAC,CAAC,WAAW,CAAA,CAAC,CAAA,CAAC,CAAC,OAAO,EAAC,EAAC,QAAQ,EAAC,CAAC,CAAC,WAAW,EAAC,CAAC,CAAA,CAAC,CAAA,IAAI,CAAC,EAAC,CAAC,CAAC,CAAA,CAAC,CAAA,CAAC,CAAC,GAAG,EAAC,EAAC,SAAS,EAAC,gBAAgB,EAAC,QAAQ,EAAC,CAAC,CAAC,SAAS,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,IAAE,CAAC,CAAC,CAAC,OAAO,IAAE,CAAC,CAAC,QAAQ,CAAA,CAAC,CAAA,CAAC,CAAC,QAAQ,EAAC,EAAC,SAAS,EAAC,iBAAiB,EAAC,QAAQ,EAAC,CAAC,CAAC,IAAE,CAAC,CAAC,CAAC,OAAO,CAAA,CAAC,CAAA,CAAC,CAAC,QAAQ,EAAC,EAAC,SAAS,EAAC,QAAQ,EAAC,cAAc,EAAC,UAAU,EAAC,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAC,EAAE,EAAC,QAAQ,EAAC,CAAC,CAAC,IAAI,EAAC,CAAC,CAAA,CAAC,CAAA,IAAI,EAAC,CAAC,CAAC,QAAQ,CAAA,CAAC,CAAA,CAAC,CAAC,QAAQ,EAAC,EAAC,SAAS,EAAC,QAAQ,EAAC,cAAc,EAAC,UAAU,EAAC,IAAI,EAAC,QAAQ,EAAC,QAAQ,EAAC,CAAC,EAAE,EAAC,OAAO,EAAC,GAAE,EAAE,GAAC,IAAG,CAAC,EAAE;oCAAC,OAAO,CAAA,IAAI,CAAC,GAAC,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAA,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAA,CAAA,CAAC,EAAC,QAAQ,EAAC,CAAC,CAAC,MAAM,EAAC,CAAC,CAAA,CAAC,CAAA,IAAI,CAAC,EAAC,CAAC,CAAA,CAAC,CAAA,IAAI,CAAC,EAAC,CAAC,CAAA,CAAC,CAAA,IAAI,EAAC,CAAC,EAAE,CAAA,CAAC,CAAA,EAAE,EAAE,CAAA,CAAC,CAAA,IAAI,CAAC,EAAC,CAAC,EAAC,KAAK,EAAC,CAAC,EAAC,IAAI,EAAC,CAAC,EAAC,QAAQ,EAAC,CAAC,EAAC,EAAC,EAAE,GAAC,IAAI,CAAC,GAAC,CAAC,CAAC,EAAC,CAAC,GAAC,CAAC,CAAC,GAAE,EAAE,GAAC,IAAG,CAAC,EAAE,EAAC,CAAC,EAAC,CAAC;QAAA,CAAC,GAAC,CAAC,CAAC,CAAC;QAAA,OAAM;IAAA,CAAC,CAAA,cAAc,CAAC,GAAE,EAAE,GAAC,IAAG,CAAC;QAAC,OAAO,CAAA,IAAI,CAAC,GAAC,CAAC,GAAG,CAAC,CAAC,gBAAgB,CAAC,6BAA6B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA,CAAC,YAAY,iBAAiB,IAAE,CAAC,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,QAAQ,EAAC,EAAC,OAAO,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAA,CAAA,CAAC,CAAC,CAAA,CAAA,CAAC,CAAC,CAAC,CAAA,CAAC,CAAC,gBAAgB,CAAC,OAAO,EAAC,CAAC,CAAC,EAAC,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAC,CAAC,CAAA,EAAE,GAAC,IAAG,CAAC,CAAC,EAAE;QAAC,OAAO,CAAA,IAAI,CAAC,GAAC,CAAC,CAAC,MAAM,CAAC,CAAA,CAAC,YAAY,IAAI,IAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA,CAAA,CAAC,EAAC,EAAC,MAAM,EAAC,CAAC,EAAC,CAAC,CAAA,CAAA,CAAC,EAAC,OAAO,EAAC,GAAE,EAAE,GAAC,CAAC,GAAC,CAAC,CAAC,EAAC,YAAY,CAAC,CAAC,CAAC,EAAC,CAAC,EAAE,KAAK,EAAE,CAAA,CAAA,CAAC,EAAC,CAAA,CAAA,CAAC,CAAA,IAAI,EAAE,GAAC,EAAC,+BAA+B,EAAC,CAAC,CAAA,EAAE,CAAA,EAAE,CAAC,CAAC,CAAC,EAAC,EAAC,EAAE,GAAC,GAAE,EAAE,GAAC,EAAE,CAAC,EAAE,EAAE,EAAC,QAAQ,EAAC,EAAE,EAAC,EAAC,MAAM,EAAC,CAAC,CAAC,EAAC,CAAC,CAAA,CAAA,CAAC,CAAC,CAAA,QAAQ,CAAC,UAAU,KAAG,SAAS,CAAA,CAAC,CAAA,QAAQ,CAAC,gBAAgB,CAAC,kBAAkB,EAAC,EAAE,EAAC,EAAC,IAAI,EAAC,CAAC,CAAC,EAAC,CAAC,CAAA,CAAC,CAAA,EAAE,EAAE,CAAC,CAAA,CAAC,CAAC,EAAE,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=relation-select-hydration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"relation-select-hydration.d.ts","sourceRoot":"","sources":["../../../../../packages/design-system/src/atlas/relation-select-hydration.ts"],"names":[],"mappings":""}
@@ -0,0 +1,40 @@
1
+ // Bundled by tools/build-design-system-atlas-runtime.mjs into island-runtime.mjs, a
2
+ // self-contained script with no imports or exports of its own — KetAtlas mocks are
3
+ // self-contained HTML with no bundler and no package install, so the real
4
+ // @ketvietlab/ketjs-view runtime this pulls in has to be inlined rather than resolved
5
+ // as a bare specifier the way a real ketjs app's islands do (those instead point the
6
+ // specifier at the framework's own /_ket/view/index.js, which does not exist here).
7
+ // apps/design-system's own demo pages serve this same bundle from the asset mount
8
+ // (it lives under the package's own src, which that app already exposes at
9
+ // /design-system/*) rather than pointing at /_ket/view/index.js, for consistency
10
+ // with the one KetAtlas cares about — one bundle, one registry, two consumers.
11
+ //
12
+ // Every island this hydrates is `strict: false`: a page may render the contract
13
+ // markup without keeping every field synchronized, and a mismatched or missing
14
+ // island name should degrade to inert markup, not throw.
15
+ //
16
+ // Interactivity is real (open, close, choose, chips) but the manager-backed calls
17
+ // (search beyond the seeded options, create, remove) stay no-ops without a
18
+ // `manager.listFunction`/`saveFunction` — there is no backend for a static mock to
19
+ // call. That is the honest limit of a self-contained document, not a bug; the demo
20
+ // app pages that seed real options accept the same limit for consistency.
21
+ import { domHost, hydrateIslands } from '@ketvietlab/ketjs-view';
22
+ import { createRelationSelectView } from '../interactions/relation-select/index.js';
23
+ // A hydrated island's props arrive off `data-props` as plain, generic JSON — the
24
+ // registry type reflects that. The actual shape is whatever the matching
25
+ // renderIsland() call served, which is that call site's own responsibility to
26
+ // keep in sync.
27
+ const registry = {
28
+ 'design-system.relation-select': (props) => createRelationSelectView(props),
29
+ };
30
+ const boot = () => {
31
+ // `document` is duck-typed against IslandElement at runtime (the same way the
32
+ // framework's own generated browser bootstrap treats it, in plain untyped JS);
33
+ // the cast makes that explicit here since this file is real TypeScript.
34
+ hydrateIslands(domHost(), document, registry, { strict: false });
35
+ };
36
+ if (document.readyState === 'loading')
37
+ document.addEventListener('DOMContentLoaded', boot, { once: true });
38
+ else
39
+ boot();
40
+ //# sourceMappingURL=relation-select-hydration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"relation-select-hydration.js","sourceRoot":"","sources":["../../../../../../packages/design-system/src/atlas/relation-select-hydration.ts"],"names":[],"mappings":"AAAA,oFAAoF;AACpF,mFAAmF;AACnF,0EAA0E;AAC1E,sFAAsF;AACtF,qFAAqF;AACrF,oFAAoF;AACpF,kFAAkF;AAClF,2EAA2E;AAC3E,iFAAiF;AACjF,+EAA+E;AAC/E,EAAE;AACF,gFAAgF;AAChF,+EAA+E;AAC/E,yDAAyD;AACzD,EAAE;AACF,kFAAkF;AAClF,2EAA2E;AAC3E,mFAAmF;AACnF,mFAAmF;AACnF,0EAA0E;AAE1E,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAEhE,OAAO,EAAE,wBAAwB,EAAE,MAAM,0CAA2C,CAAA;AAEpF,iFAAiF;AACjF,yEAAyE;AACzE,8EAA8E;AAC9E,gBAAgB;AAChB,MAAM,QAAQ,GAAmB;IAC/B,+BAA+B,EAAE,CAAC,KAAK,EAAE,EAAE,CACzC,wBAAwB,CAAC,KAAuD,CAAC;CACpF,CAAA;AAED,MAAM,IAAI,GAAG,GAAS,EAAE;IACtB,8EAA8E;IAC9E,+EAA+E;IAC/E,wEAAwE;IACxE,cAAc,CAAC,OAAO,EAAE,EAAE,QAAoC,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAA;AAC9F,CAAC,CAAA;AAED,IAAI,QAAQ,CAAC,UAAU,KAAK,SAAS;IAAE,QAAQ,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;;IACrG,IAAI,EAAE,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"atlas-cli.d.ts","sourceRoot":"","sources":["../../../../packages/design-system/src/atlas-cli.ts"],"names":[],"mappings":";AAuNA,eAAO,MAAM,4BAA4B,cAC5B,MAAM,SACX,aAAa,GAAG,OAAO,KAC5B,IAwBF,CAAA"}
1
+ {"version":3,"file":"atlas-cli.d.ts","sourceRoot":"","sources":["../../../../packages/design-system/src/atlas-cli.ts"],"names":[],"mappings":";AAwPA,eAAO,MAAM,4BAA4B,cAC5B,MAAM,SACX,aAAa,GAAG,OAAO,KAC5B,IAwBF,CAAA"}
package/dist/atlas-cli.js CHANGED
@@ -3,8 +3,9 @@ import { createHash } from 'node:crypto';
3
3
  import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';
4
4
  import { dirname, join, relative, resolve } from 'node:path';
5
5
  import { fileURLToPath } from 'node:url';
6
- import { renderToString } from '@ketvietlab/ketjs-view';
7
- import { AppShell, ListPage, Metric, RecordPage, Section, Surface, WorkspacePage } from './index.js';
6
+ import { renderIsland, renderToString } from '@ketvietlab/ketjs-view';
7
+ import { AppShell, ListPage, Metric, RecordPage, Section, Surface, WorkspacePage, createRelationSelectView, } from './index.js';
8
+ import { relationSelectDemoConfig } from './interactions/relation-select/demo.js';
8
9
  const sourceDirectory = dirname(fileURLToPath(import.meta.url));
9
10
  const packageJsonPath = [
10
11
  resolve(sourceDirectory, '../package.json'),
@@ -60,7 +61,6 @@ const renderContracts = () => {
60
61
  list: renderToString(ListPage({
61
62
  title: markers.title,
62
63
  context: markers.context,
63
- description: markers.description,
64
64
  actions: markers.actions,
65
65
  controls: markers.controls,
66
66
  status: markers.status,
@@ -70,7 +70,6 @@ const renderContracts = () => {
70
70
  record: renderToString(RecordPage({
71
71
  title: markers.title,
72
72
  context: markers.context,
73
- description: markers.description,
74
73
  status: markers.status,
75
74
  actions: markers.actions,
76
75
  meta: markers.meta,
@@ -83,7 +82,6 @@ const renderContracts = () => {
83
82
  'record-solo': renderToString(RecordPage({
84
83
  title: markers.title,
85
84
  context: markers.context,
86
- description: markers.description,
87
85
  status: markers.status,
88
86
  actions: markers.actions,
89
87
  meta: markers.meta,
@@ -94,7 +92,6 @@ const renderContracts = () => {
94
92
  flow: renderToString(WorkspacePage({
95
93
  title: markers.title,
96
94
  context: markers.context,
97
- description: markers.description,
98
95
  status: markers.status,
99
96
  actions: markers.actions,
100
97
  controls: markers.controls,
@@ -105,7 +102,6 @@ const renderContracts = () => {
105
102
  canvas: renderToString(WorkspacePage({
106
103
  title: markers.title,
107
104
  context: markers.context,
108
- description: markers.description,
109
105
  status: markers.status,
110
106
  actions: markers.actions,
111
107
  controls: markers.controls,
@@ -125,6 +121,10 @@ const renderContracts = () => {
125
121
  }),
126
122
  })),
127
123
  metric: renderToString(Metric({ label: markers.label, value: markers.value, detail: markers.detail })),
124
+ // The one island-based contract: island-runtime.js hydrates it for real (open,
125
+ // close, choose, chips) against this same seeded option list — see that file
126
+ // and relation-select/demo.ts for why search/create/remove stay inert here.
127
+ 'relation-select': renderIsland('design-system.relation-select', (props) => createRelationSelectView(props), { id: 'atlas-relation-select', config: relationSelectDemoConfig }),
128
128
  };
129
129
  const revision = process.env.KET_DESIGN_SYSTEM_REVISION ?? packageJson.version;
130
130
  const global = JSON.stringify(profile.composition.global);
@@ -133,12 +133,30 @@ const renderContracts = () => {
133
133
  };
134
134
  const renderRuntime = () => {
135
135
  const moduleSource = readFileSync(join(sourceDirectory, 'runtime/index.js'), 'utf8');
136
- const classicSource = moduleSource.replace('export const attachDesignSystemInteractions', 'const attachDesignSystemInteractions');
137
- if (classicSource === moduleSource || /\bexport\s/u.test(classicSource))
136
+ // Keep the calendar dependency inside one closure when materializing a classic script.
137
+ const dateMath = readFileSync(join(sourceDirectory, 'forms/date-time/date-math.js'), 'utf8').replaceAll('export const ', 'const ');
138
+ const dateRuntime = readFileSync(join(sourceDirectory, 'forms/date-time/runtime.js'), 'utf8')
139
+ .replace(/^import \{[\s\S]*?\} from '\.\/date-math\.js'\n/mu, '')
140
+ .replace('export const attachDatePickers', 'const attachDatePickers');
141
+ const interactions = moduleSource
142
+ .replace("import { attachDatePickers } from '../forms/date-time/runtime.js'\n", '')
143
+ .replace('export const attachDesignSystemInteractions', 'const attachDesignSystemInteractions');
144
+ const classicSource = `const attachDatePickers = (() => {\n${dateMath}\n${dateRuntime}\nreturn attachDatePickers;\n})();\n${interactions}`;
145
+ if (/\bexport\s/u.test(classicSource) || /^import\s/mu.test(classicSource))
138
146
  throw new Error('Design-system runtime can no longer be converted to a classic KetAtlas script');
147
+ // Built by tools/build-design-system-atlas-runtime.mjs: a self-contained bundle
148
+ // (no imports, no exports — checked below the same way) that hydrates the one
149
+ // island-based contract, `relation-select`, against its seeded demo data.
150
+ const islandRuntime = readFileSync(join(sourceDirectory, 'atlas/island-runtime.mjs'), 'utf8');
151
+ if (/\bexport\s/u.test(islandRuntime) || /\bimport\s/u.test(islandRuntime))
152
+ throw new Error('KetAtlas island runtime must be a self-contained script with no imports or exports');
139
153
  const global = JSON.stringify(profile.composition.global);
140
154
  const property = JSON.stringify(profile.composition.attachProperty);
141
- return `${classicSource.trimEnd()}\n\nwindow[${global}] = window[${global}] || {};\nwindow[${global}][${property}] = attachDesignSystemInteractions;\nif (document.readyState === 'loading') {\n document.addEventListener('DOMContentLoaded', () => attachDesignSystemInteractions(), { once: true })\n} else {\n attachDesignSystemInteractions()\n}\n`;
155
+ return (`${classicSource.trimEnd()}\n\n` +
156
+ `window[${global}] = window[${global}] || {};\n` +
157
+ `window[${global}][${property}] = attachDesignSystemInteractions;\n` +
158
+ `if (document.readyState === 'loading') {\n document.addEventListener('DOMContentLoaded', () => attachDesignSystemInteractions(), { once: true })\n} else {\n attachDesignSystemInteractions()\n}\n\n` +
159
+ `${islandRuntime.trimEnd()}\n`);
142
160
  };
143
161
  const expectedMaterialization = () => {
144
162
  const css = `${bundleCss(join(sourceDirectory, 'styles.css')).trimEnd()}\n`;