@nativescript/vite 8.0.0-alpha.2 → 8.0.0-alpha.20

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 (209) hide show
  1. package/configuration/angular.d.ts +34 -1
  2. package/configuration/angular.js +380 -34
  3. package/configuration/angular.js.map +1 -1
  4. package/configuration/base.js +171 -7
  5. package/configuration/base.js.map +1 -1
  6. package/configuration/solid.js +27 -1
  7. package/configuration/solid.js.map +1 -1
  8. package/configuration/typescript.js +1 -1
  9. package/configuration/typescript.js.map +1 -1
  10. package/helpers/angular/angular-linker.js +3 -12
  11. package/helpers/angular/angular-linker.js.map +1 -1
  12. package/helpers/angular/inject-component-hmr-registration.d.ts +112 -0
  13. package/helpers/angular/inject-component-hmr-registration.js +359 -0
  14. package/helpers/angular/inject-component-hmr-registration.js.map +1 -0
  15. package/helpers/angular/inject-hmr-vite-ignore.d.ts +75 -0
  16. package/helpers/angular/inject-hmr-vite-ignore.js +288 -0
  17. package/helpers/angular/inject-hmr-vite-ignore.js.map +1 -0
  18. package/helpers/angular/util.d.ts +1 -0
  19. package/helpers/angular/util.js +88 -0
  20. package/helpers/angular/util.js.map +1 -1
  21. package/helpers/commonjs-plugins.d.ts +5 -2
  22. package/helpers/commonjs-plugins.js +126 -0
  23. package/helpers/commonjs-plugins.js.map +1 -1
  24. package/helpers/config-as-json.js +10 -0
  25. package/helpers/config-as-json.js.map +1 -1
  26. package/helpers/dev-host.d.ts +274 -0
  27. package/helpers/dev-host.js +491 -0
  28. package/helpers/dev-host.js.map +1 -0
  29. package/helpers/global-defines.d.ts +51 -0
  30. package/helpers/global-defines.js +77 -0
  31. package/helpers/global-defines.js.map +1 -1
  32. package/helpers/logging.d.ts +1 -0
  33. package/helpers/logging.js +63 -3
  34. package/helpers/logging.js.map +1 -1
  35. package/helpers/main-entry.d.ts +3 -1
  36. package/helpers/main-entry.js +450 -125
  37. package/helpers/main-entry.js.map +1 -1
  38. package/helpers/nativeclass-transformer-plugin.d.ts +9 -2
  39. package/helpers/nativeclass-transformer-plugin.js +157 -14
  40. package/helpers/nativeclass-transformer-plugin.js.map +1 -1
  41. package/helpers/ns-core-url.d.ts +88 -0
  42. package/helpers/ns-core-url.js +191 -0
  43. package/helpers/ns-core-url.js.map +1 -0
  44. package/helpers/prelink-angular.js +1 -4
  45. package/helpers/prelink-angular.js.map +1 -1
  46. package/helpers/project.d.ts +35 -0
  47. package/helpers/project.js +120 -2
  48. package/helpers/project.js.map +1 -1
  49. package/helpers/resolver.js +9 -1
  50. package/helpers/resolver.js.map +1 -1
  51. package/helpers/solid-jsx-deps.d.ts +15 -0
  52. package/helpers/solid-jsx-deps.js +178 -0
  53. package/helpers/solid-jsx-deps.js.map +1 -0
  54. package/helpers/ts-config-paths.js +50 -2
  55. package/helpers/ts-config-paths.js.map +1 -1
  56. package/helpers/workers.d.ts +20 -19
  57. package/helpers/workers.js +620 -3
  58. package/helpers/workers.js.map +1 -1
  59. package/hmr/client/css-handler.d.ts +1 -0
  60. package/hmr/client/css-handler.js +34 -5
  61. package/hmr/client/css-handler.js.map +1 -1
  62. package/hmr/client/css-update-overlay.d.ts +18 -0
  63. package/hmr/client/css-update-overlay.js +27 -0
  64. package/hmr/client/css-update-overlay.js.map +1 -0
  65. package/hmr/client/hmr-pending-overlay.d.ts +27 -0
  66. package/hmr/client/hmr-pending-overlay.js +50 -0
  67. package/hmr/client/hmr-pending-overlay.js.map +1 -0
  68. package/hmr/client/index.js +483 -33
  69. package/hmr/client/index.js.map +1 -1
  70. package/hmr/client/utils.d.ts +5 -0
  71. package/hmr/client/utils.js +283 -12
  72. package/hmr/client/utils.js.map +1 -1
  73. package/hmr/client/vue-sfc-update-overlay.d.ts +82 -0
  74. package/hmr/client/vue-sfc-update-overlay.js +133 -0
  75. package/hmr/client/vue-sfc-update-overlay.js.map +1 -0
  76. package/hmr/entry-runtime.d.ts +2 -1
  77. package/hmr/entry-runtime.js +253 -66
  78. package/hmr/entry-runtime.js.map +1 -1
  79. package/hmr/frameworks/angular/client/index.d.ts +3 -1
  80. package/hmr/frameworks/angular/client/index.js +802 -10
  81. package/hmr/frameworks/angular/client/index.js.map +1 -1
  82. package/hmr/frameworks/angular/server/linker.js +1 -4
  83. package/hmr/frameworks/angular/server/linker.js.map +1 -1
  84. package/hmr/frameworks/angular/server/strategy.js +30 -6
  85. package/hmr/frameworks/angular/server/strategy.js.map +1 -1
  86. package/hmr/frameworks/typescript/server/strategy.js +8 -2
  87. package/hmr/frameworks/typescript/server/strategy.js.map +1 -1
  88. package/hmr/frameworks/vue/client/index.js +18 -42
  89. package/hmr/frameworks/vue/client/index.js.map +1 -1
  90. package/hmr/helpers/ast-normalizer.js +52 -5
  91. package/hmr/helpers/ast-normalizer.js.map +1 -1
  92. package/hmr/helpers/cjs-named-exports.d.ts +23 -0
  93. package/hmr/helpers/cjs-named-exports.js +152 -0
  94. package/hmr/helpers/cjs-named-exports.js.map +1 -0
  95. package/hmr/helpers/package-exports.d.ts +16 -0
  96. package/hmr/helpers/package-exports.js +396 -0
  97. package/hmr/helpers/package-exports.js.map +1 -0
  98. package/hmr/server/constants.js +13 -4
  99. package/hmr/server/constants.js.map +1 -1
  100. package/hmr/server/core-sanitize.d.ts +93 -8
  101. package/hmr/server/core-sanitize.js +222 -49
  102. package/hmr/server/core-sanitize.js.map +1 -1
  103. package/hmr/server/import-map.js +80 -22
  104. package/hmr/server/import-map.js.map +1 -1
  105. package/hmr/server/index.d.ts +2 -1
  106. package/hmr/server/index.js.map +1 -1
  107. package/hmr/server/ns-core-cjs-shape.d.ts +204 -0
  108. package/hmr/server/ns-core-cjs-shape.js +271 -0
  109. package/hmr/server/ns-core-cjs-shape.js.map +1 -0
  110. package/hmr/server/ns-rt-bridge.d.ts +51 -0
  111. package/hmr/server/ns-rt-bridge.js +131 -0
  112. package/hmr/server/ns-rt-bridge.js.map +1 -0
  113. package/hmr/server/perf-instrumentation.d.ts +114 -0
  114. package/hmr/server/perf-instrumentation.js +195 -0
  115. package/hmr/server/perf-instrumentation.js.map +1 -0
  116. package/hmr/server/runtime-graph-filter.d.ts +5 -0
  117. package/hmr/server/runtime-graph-filter.js +21 -0
  118. package/hmr/server/runtime-graph-filter.js.map +1 -0
  119. package/hmr/server/shared-transform-request.d.ts +12 -0
  120. package/hmr/server/shared-transform-request.js +144 -0
  121. package/hmr/server/shared-transform-request.js.map +1 -0
  122. package/hmr/server/vite-plugin.d.ts +21 -1
  123. package/hmr/server/vite-plugin.js +497 -58
  124. package/hmr/server/vite-plugin.js.map +1 -1
  125. package/hmr/server/websocket-angular-entry.d.ts +2 -0
  126. package/hmr/server/websocket-angular-entry.js +68 -0
  127. package/hmr/server/websocket-angular-entry.js.map +1 -0
  128. package/hmr/server/websocket-angular-hot-update.d.ts +78 -0
  129. package/hmr/server/websocket-angular-hot-update.js +413 -0
  130. package/hmr/server/websocket-angular-hot-update.js.map +1 -0
  131. package/hmr/server/websocket-core-bridge.d.ts +58 -0
  132. package/hmr/server/websocket-core-bridge.js +368 -0
  133. package/hmr/server/websocket-core-bridge.js.map +1 -0
  134. package/hmr/server/websocket-css-hot-update.d.ts +33 -0
  135. package/hmr/server/websocket-css-hot-update.js +65 -0
  136. package/hmr/server/websocket-css-hot-update.js.map +1 -0
  137. package/hmr/server/websocket-graph-upsert.d.ts +21 -0
  138. package/hmr/server/websocket-graph-upsert.js +33 -0
  139. package/hmr/server/websocket-graph-upsert.js.map +1 -0
  140. package/hmr/server/websocket-hmr-pending.d.ts +43 -0
  141. package/hmr/server/websocket-hmr-pending.js +55 -0
  142. package/hmr/server/websocket-hmr-pending.js.map +1 -0
  143. package/hmr/server/websocket-module-bindings.d.ts +6 -0
  144. package/hmr/server/websocket-module-bindings.js +471 -0
  145. package/hmr/server/websocket-module-bindings.js.map +1 -0
  146. package/hmr/server/websocket-module-specifiers.d.ts +101 -0
  147. package/hmr/server/websocket-module-specifiers.js +820 -0
  148. package/hmr/server/websocket-module-specifiers.js.map +1 -0
  149. package/hmr/server/websocket-ns-m-finalize.d.ts +22 -0
  150. package/hmr/server/websocket-ns-m-finalize.js +88 -0
  151. package/hmr/server/websocket-ns-m-finalize.js.map +1 -0
  152. package/hmr/server/websocket-ns-m-paths.d.ts +3 -0
  153. package/hmr/server/websocket-ns-m-paths.js +92 -0
  154. package/hmr/server/websocket-ns-m-paths.js.map +1 -0
  155. package/hmr/server/websocket-ns-m-request.d.ts +45 -0
  156. package/hmr/server/websocket-ns-m-request.js +196 -0
  157. package/hmr/server/websocket-ns-m-request.js.map +1 -0
  158. package/hmr/server/websocket-served-module-helpers.d.ts +36 -0
  159. package/hmr/server/websocket-served-module-helpers.js +644 -0
  160. package/hmr/server/websocket-served-module-helpers.js.map +1 -0
  161. package/hmr/server/websocket-txn.d.ts +6 -0
  162. package/hmr/server/websocket-txn.js +45 -0
  163. package/hmr/server/websocket-txn.js.map +1 -0
  164. package/hmr/server/websocket-vendor-unifier.d.ts +10 -0
  165. package/hmr/server/websocket-vendor-unifier.js +51 -0
  166. package/hmr/server/websocket-vendor-unifier.js.map +1 -0
  167. package/hmr/server/websocket-vue-sfc.d.ts +26 -0
  168. package/hmr/server/websocket-vue-sfc.js +1053 -0
  169. package/hmr/server/websocket-vue-sfc.js.map +1 -0
  170. package/hmr/server/websocket.d.ts +58 -75
  171. package/hmr/server/websocket.js +2230 -1802
  172. package/hmr/server/websocket.js.map +1 -1
  173. package/hmr/shared/package-classifier.d.ts +9 -0
  174. package/hmr/shared/package-classifier.js +58 -0
  175. package/hmr/shared/package-classifier.js.map +1 -0
  176. package/hmr/shared/runtime/boot-placeholder-ui.d.ts +69 -0
  177. package/hmr/shared/runtime/boot-placeholder-ui.js +101 -0
  178. package/hmr/shared/runtime/boot-placeholder-ui.js.map +1 -0
  179. package/hmr/shared/runtime/boot-progress.d.ts +40 -0
  180. package/hmr/shared/runtime/boot-progress.js +128 -0
  181. package/hmr/shared/runtime/boot-progress.js.map +1 -0
  182. package/hmr/shared/runtime/boot-timeline.d.ts +18 -0
  183. package/hmr/shared/runtime/boot-timeline.js +52 -0
  184. package/hmr/shared/runtime/boot-timeline.js.map +1 -0
  185. package/hmr/shared/runtime/browser-runtime-contract.d.ts +64 -0
  186. package/hmr/shared/runtime/browser-runtime-contract.js +54 -0
  187. package/hmr/shared/runtime/browser-runtime-contract.js.map +1 -0
  188. package/hmr/shared/runtime/dev-overlay.d.ts +78 -3
  189. package/hmr/shared/runtime/dev-overlay.js +1094 -26
  190. package/hmr/shared/runtime/dev-overlay.js.map +1 -1
  191. package/hmr/shared/runtime/module-provenance.js +1 -4
  192. package/hmr/shared/runtime/module-provenance.js.map +1 -1
  193. package/hmr/shared/runtime/root-placeholder.d.ts +1 -0
  194. package/hmr/shared/runtime/root-placeholder.js +1019 -151
  195. package/hmr/shared/runtime/root-placeholder.js.map +1 -1
  196. package/hmr/shared/runtime/session-bootstrap.d.ts +1 -0
  197. package/hmr/shared/runtime/session-bootstrap.js +309 -0
  198. package/hmr/shared/runtime/session-bootstrap.js.map +1 -0
  199. package/hmr/shared/runtime/vendor-bootstrap.js +1 -9
  200. package/hmr/shared/runtime/vendor-bootstrap.js.map +1 -1
  201. package/hmr/shared/vendor/manifest.d.ts +32 -0
  202. package/hmr/shared/vendor/manifest.js +411 -46
  203. package/hmr/shared/vendor/manifest.js.map +1 -1
  204. package/index.d.ts +1 -0
  205. package/index.js +5 -0
  206. package/index.js.map +1 -1
  207. package/package.json +9 -1
  208. package/runtime/core-aliases-early.js +94 -67
  209. package/runtime/core-aliases-early.js.map +1 -1
@@ -0,0 +1,55 @@
1
+ /**
2
+ * Early "pending" notification for HMR.
3
+ *
4
+ * When `handleHotUpdate(ctx)` first fires for a save event, the server
5
+ * spends 7–200ms doing graph upserts, transforms and dependency
6
+ * analysis BEFORE broadcasting `ns:angular-update` (or
7
+ * `ns:css-updates`). During that window the client has no idea a
8
+ * change is in flight, so the HMR-applying overlay only appears at
9
+ * the tail end of the cycle and the user perceives the dev loop as
10
+ * laggy.
11
+ *
12
+ * `ns:hmr-pending` is broadcast at the very start of `handleHotUpdate`
13
+ * with just the file path + classified kind. The client reacts by
14
+ * showing the 'received' overlay frame immediately. The authoritative
15
+ * payload (`ns:angular-update` / `ns:css-updates`) follows once the
16
+ * server is ready and walks the rest of the stage progression.
17
+ *
18
+ * This module is intentionally a pure helper so the message shape and
19
+ * narrowing rules can be verified without spinning up a Vite dev
20
+ * server.
21
+ */
22
+ export function createHmrPendingMessage(input) {
23
+ const allowed = ['ts', 'css', 'html', 'unknown'];
24
+ const kind = allowed.includes(input.kind || '') ? input.kind : 'unknown';
25
+ return {
26
+ type: 'ns:hmr-pending',
27
+ origin: typeof input.origin === 'string' ? input.origin : '',
28
+ path: typeof input.path === 'string' ? input.path : '',
29
+ kind,
30
+ timestamp: typeof input.timestamp === 'number' && Number.isFinite(input.timestamp) ? input.timestamp : 0,
31
+ };
32
+ }
33
+ /**
34
+ * Parser used by the client to identify a pending message regardless of
35
+ * which framework is active. We accept the message only when every
36
+ * expected field is present and well-formed — this guards against
37
+ * accidental matches on legacy server payloads or developer-written
38
+ * mocks during tests.
39
+ */
40
+ export function isHmrPendingMessage(value) {
41
+ if (!value || typeof value !== 'object')
42
+ return false;
43
+ const v = value;
44
+ if (v.type !== 'ns:hmr-pending')
45
+ return false;
46
+ if (typeof v.path !== 'string' || !v.path)
47
+ return false;
48
+ if (typeof v.timestamp !== 'number' || !Number.isFinite(v.timestamp))
49
+ return false;
50
+ const allowed = ['ts', 'css', 'html', 'unknown'];
51
+ if (!allowed.includes(v.kind || ''))
52
+ return false;
53
+ return true;
54
+ }
55
+ //# sourceMappingURL=websocket-hmr-pending.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"websocket-hmr-pending.js","sourceRoot":"","sources":["../../../../../packages/vite/hmr/server/websocket-hmr-pending.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAYH,MAAM,UAAU,uBAAuB,CAAC,KAAwE;IAC/G,MAAM,OAAO,GAAqB,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;IACnE,MAAM,IAAI,GAAI,OAA6B,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,CAAE,KAAK,CAAC,IAAuB,CAAC,CAAC,CAAC,SAAS,CAAC;IACpH,OAAO;QACN,IAAI,EAAE,gBAAgB;QACtB,MAAM,EAAE,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;QAC5D,IAAI,EAAE,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;QACtD,IAAI;QACJ,SAAS,EAAE,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;KACxG,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAc;IACjD,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IACtD,MAAM,CAAC,GAAG,KAAmC,CAAC;IAC9C,IAAI,CAAC,CAAC,IAAI,KAAK,gBAAgB;QAAE,OAAO,KAAK,CAAC;IAC9C,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IACxD,IAAI,OAAO,CAAC,CAAC,SAAS,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;QAAE,OAAO,KAAK,CAAC;IACnF,MAAM,OAAO,GAAqB,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;IACnE,IAAI,CAAE,OAA6B,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;QAAE,OAAO,KAAK,CAAC;IACzE,OAAO,IAAI,CAAC;AACb,CAAC"}
@@ -0,0 +1,6 @@
1
+ export interface EnsureNativeScriptModuleBindingsOptions {
2
+ preserveNonPluginVendorImports?: boolean;
3
+ resolvedSpecifierOverrides?: Map<string, string>;
4
+ }
5
+ export declare function ensureNativeScriptModuleBindings(code: string, options?: EnsureNativeScriptModuleBindingsOptions): string;
6
+ export declare function getProcessCodeResolvedSpecifierOverrides(sourceId: string | undefined, projectRoot: string): Map<string, string> | undefined;
@@ -0,0 +1,471 @@
1
+ import { parse as babelParse } from '@babel/parser';
2
+ import { existsSync, readFileSync, statSync } from 'fs';
3
+ import * as path from 'path';
4
+ import * as PAT from './constants.js';
5
+ import { astExtractImportsAndStripTypes } from '../helpers/ast-extract.js';
6
+ import { getProjectRootPath } from '../../helpers/project.js';
7
+ import { extractRootPackageName } from '../shared/package-classifier.js';
8
+ import { isEsmFrameworkPackageSpecifier, isLikelyNativeScriptPluginSpecifier, isLikelyNativeScriptRuntimePluginSpecifier, normalizeNodeModulesSpecifier, resolveInternalRuntimePluginBareSpecifier, resolveNodeModulesPackageBoundary, resolveVendorFromCandidate, shouldPreserveBareRuntimePluginSubpathImport } from './websocket-module-specifiers.js';
9
+ const sourceImportIntentCache = new Map();
10
+ const EXPLICIT_RUNTIME_PLUGIN_SCRIPT_EXT_RE = /(?:\.(?:ios|android|visionos))?\.(?:ts|tsx|js|jsx|mjs|mts|cts)$/i;
11
+ const MODULE_IMPORT_ANALYSIS_PLUGINS = ['typescript', 'jsx', 'importMeta', 'topLevelAwait', 'decorators-legacy', 'classProperties', 'classPrivateProperties', 'classPrivateMethods'];
12
+ function hasExplicitRuntimePluginScriptExtension(segment) {
13
+ return EXPLICIT_RUNTIME_PLUGIN_SCRIPT_EXT_RE.test(segment);
14
+ }
15
+ function collectTopLevelImportRecords(code) {
16
+ try {
17
+ const ast = babelParse(code, {
18
+ sourceType: 'module',
19
+ plugins: [...MODULE_IMPORT_ANALYSIS_PLUGINS],
20
+ });
21
+ const body = ast?.program?.body;
22
+ if (!Array.isArray(body)) {
23
+ return [];
24
+ }
25
+ return body
26
+ .filter((node) => node?.type === 'ImportDeclaration' && typeof node.start === 'number' && typeof node.end === 'number' && typeof node.source?.value === 'string')
27
+ .map((node) => {
28
+ const text = code.slice(node.start, node.end);
29
+ const clause = Array.isArray(node.specifiers) && node.specifiers.length > 0 ? text.match(/^\s*import\s+([\s\S]*?)\s+from\s+["'][^"']+["'];?\s*$/)?.[1]?.trim() || null : null;
30
+ return {
31
+ start: node.start,
32
+ end: node.end,
33
+ text,
34
+ source: node.source.value,
35
+ clause,
36
+ isTypeOnly: node.importKind === 'type',
37
+ };
38
+ });
39
+ }
40
+ catch {
41
+ return [];
42
+ }
43
+ }
44
+ function stripTopLevelImportRecords(code, records) {
45
+ let stripped = code;
46
+ for (const record of [...records].sort((left, right) => right.start - left.start)) {
47
+ stripped = stripped.slice(0, record.start) + stripped.slice(record.end);
48
+ }
49
+ return stripped;
50
+ }
51
+ export function ensureNativeScriptModuleBindings(code, options) {
52
+ const importRecords = collectTopLevelImportRecords(code);
53
+ if (!importRecords.length) {
54
+ return code;
55
+ }
56
+ const preservedImports = [];
57
+ const modules = new Map();
58
+ const getModuleBinding = (canonical) => {
59
+ let entry = modules.get(canonical);
60
+ if (!entry) {
61
+ entry = {
62
+ default: new Set(),
63
+ namespace: new Set(),
64
+ named: [],
65
+ sideEffectOnly: false,
66
+ };
67
+ modules.set(canonical, entry);
68
+ }
69
+ return entry;
70
+ };
71
+ const parseNamedImports = (clause, binding) => {
72
+ const inner = clause.replace(/^\{/, '').replace(/\}$/, '');
73
+ inner
74
+ .split(',')
75
+ .map((segment) => segment.trim())
76
+ .filter(Boolean)
77
+ .forEach((segment) => {
78
+ const [imported, local] = segment.split(/\s+as\s+/i).map((s) => s.trim());
79
+ const resolvedImported = imported;
80
+ const resolvedLocal = local || imported;
81
+ if (resolvedImported) {
82
+ binding.named.push({
83
+ imported: resolvedImported,
84
+ local: resolvedLocal,
85
+ });
86
+ }
87
+ });
88
+ };
89
+ for (const record of importRecords) {
90
+ const original = record.text.trim();
91
+ if (!original) {
92
+ continue;
93
+ }
94
+ if (record.isTypeOnly) {
95
+ preservedImports.push(original);
96
+ continue;
97
+ }
98
+ const rawSpec = record.source;
99
+ const specifier = rawSpec.replace(PAT.QUERY_PATTERN, '');
100
+ const preservedSpecifier = getPreservedImportSpecifier(specifier, options);
101
+ if (!record.clause) {
102
+ if (preservedSpecifier) {
103
+ preservedImports.push(rewritePreservedImportSpecifier(original, rawSpec, preservedSpecifier));
104
+ continue;
105
+ }
106
+ if (isEsmFrameworkPackageSpecifier(specifier)) {
107
+ preservedImports.push(original);
108
+ continue;
109
+ }
110
+ const runtimePluginBareSpecifier = resolveInternalRuntimePluginBareSpecifier(specifier, getProjectRootPath());
111
+ let canonical = runtimePluginBareSpecifier || resolveVendorFromCandidate(specifier);
112
+ const runtimePluginSpecifier = isLikelyNativeScriptRuntimePluginSpecifier(canonical || specifier, getProjectRootPath());
113
+ if (options?.preserveNonPluginVendorImports && !runtimePluginSpecifier) {
114
+ preservedImports.push(original);
115
+ continue;
116
+ }
117
+ if (!canonical && isLikelyNativeScriptPluginSpecifier(specifier, getProjectRootPath())) {
118
+ canonical = specifier;
119
+ }
120
+ if (canonical && /^@nativescript\/core(\b|\/)/i.test(canonical)) {
121
+ preservedImports.push(original);
122
+ continue;
123
+ }
124
+ if (!canonical) {
125
+ preservedImports.push(original);
126
+ continue;
127
+ }
128
+ const binding = getModuleBinding(canonical);
129
+ binding.sideEffectOnly = true;
130
+ continue;
131
+ }
132
+ if (preservedSpecifier) {
133
+ preservedImports.push(rewritePreservedImportSpecifier(original, rawSpec, preservedSpecifier));
134
+ continue;
135
+ }
136
+ if (isEsmFrameworkPackageSpecifier(specifier)) {
137
+ preservedImports.push(original);
138
+ continue;
139
+ }
140
+ const runtimePluginBareSpecifier = resolveInternalRuntimePluginBareSpecifier(specifier, getProjectRootPath());
141
+ let canonical = runtimePluginBareSpecifier || resolveVendorFromCandidate(specifier);
142
+ const runtimePluginSpecifier = isLikelyNativeScriptRuntimePluginSpecifier(canonical || specifier, getProjectRootPath());
143
+ if (options?.preserveNonPluginVendorImports && !runtimePluginSpecifier) {
144
+ preservedImports.push(original);
145
+ continue;
146
+ }
147
+ if (!canonical && isLikelyNativeScriptPluginSpecifier(specifier, getProjectRootPath())) {
148
+ canonical = specifier;
149
+ }
150
+ if (canonical && /^@nativescript\/core(\b|\/)/i.test(canonical)) {
151
+ preservedImports.push(original);
152
+ continue;
153
+ }
154
+ if (!canonical) {
155
+ preservedImports.push(original);
156
+ continue;
157
+ }
158
+ const binding = getModuleBinding(canonical);
159
+ const trimmed = record.clause.trim();
160
+ if (!trimmed) {
161
+ binding.sideEffectOnly = true;
162
+ continue;
163
+ }
164
+ if (trimmed.startsWith('*')) {
165
+ const m = trimmed.match(/\*\s+as\s+(\w+)/i);
166
+ if (m?.[1])
167
+ binding.namespace.add(m[1]);
168
+ continue;
169
+ }
170
+ if (trimmed.startsWith('{')) {
171
+ parseNamedImports(trimmed, binding);
172
+ continue;
173
+ }
174
+ if (trimmed.includes(',') && trimmed.includes('{')) {
175
+ const [defaultPart, namedPart] = trimmed.split(/,(.+)/, 2);
176
+ const def = defaultPart.trim();
177
+ if (def)
178
+ binding.default.add(def);
179
+ if (namedPart)
180
+ parseNamedImports(namedPart.trim(), binding);
181
+ continue;
182
+ }
183
+ binding.default.add(trimmed);
184
+ }
185
+ code = stripTopLevelImportRecords(code, importRecords);
186
+ if (!modules.size) {
187
+ if (preservedImports.length) {
188
+ const preserved = preservedImports.join('\n') + '\n';
189
+ return preserved + code;
190
+ }
191
+ return code;
192
+ }
193
+ let injection = 'var __nsVendorRegistry = (globalThis.__nsVendorRegistry ||= new Map());\n';
194
+ injection += "var __NS_VENDOR_SOFT__ = (typeof globalThis.__NS_VENDOR_SOFT__ !== 'undefined' ? !!globalThis.__NS_VENDOR_SOFT__ : true);\n";
195
+ injection += "var __nsVendorRequire = (typeof globalThis.__nsRequire === 'function' ? globalThis.__nsRequire : (typeof globalThis.require === 'function' ? globalThis.require : (spec => { throw new Error('__nsVendorRequire unavailable'); })));\n";
196
+ injection += "try { (globalThis.__NS_VENDOR_ONCE__ ||= { loggedRequireMissing: false }); if (!globalThis.__NS_VENDOR_ONCE__.loggedRequireMissing && typeof __nsVendorRequire !== 'function') { console.warn('[ns-hmr][vendor][require-missing] using soft stubs=', __NS_VENDOR_SOFT__); globalThis.__NS_VENDOR_ONCE__.loggedRequireMissing = true; } } catch {}\n";
197
+ injection += "var __nsMissing = function(name){ try { var fn = function(){ console.warn('[ns-hmr][vendor][stub]', name); }; return new Proxy(fn, { get: (_t, p) => __nsMissing(name + '.' + String(p)) }); } catch { return {}; } };\n";
198
+ injection += "var __nsHasInstall = function(x){ try { return (typeof x === 'function') || (typeof x === 'object' && x && typeof x.install === 'function'); } catch { return false; } };\n";
199
+ injection += "var __nsDefault = function(mod){ try { return (mod && mod['default'] !== undefined) ? mod['default'] : mod; } catch { return mod; } };\n";
200
+ injection += "var __nsNestedDefault = function(mod){ try { return (mod && mod.default && (typeof mod.default.default === 'function' || (typeof mod.default.default === 'object' && mod.default.default && typeof mod.default.default.install === 'function'))) ? mod.default.default : undefined; } catch { return undefined; } };\n";
201
+ injection += "var __nsPick = function(mod, name){ try { if (mod && mod['default'] && mod['default'][name] !== undefined) return mod['default'][name]; } catch {} try { if (mod && mod[name] !== undefined) return mod[name]; } catch {} try { if (mod && typeof mod['default'] === 'function' && mod['default'].name === name) return mod['default']; } catch {} return undefined; };\n";
202
+ let index = 0;
203
+ for (const [canonical, binding] of modules) {
204
+ const cacheKey = JSON.stringify(canonical);
205
+ const moduleVar = `__nsVendorModule_${index++}`;
206
+ injection += `var ${moduleVar} = __nsVendorRegistry.has(${cacheKey}) ? __nsVendorRegistry.get(${cacheKey}) : (() => { try { var mod = __nsVendorRequire(${cacheKey}); __nsVendorRegistry.set(${cacheKey}, mod); return mod; } catch (e) { console.error('[ns-hmr][vendor][require-failed]', ${cacheKey}, (e && (e.message||e)) ); try { if (__NS_VENDOR_SOFT__) { var stub = __nsMissing(${cacheKey}); __nsVendorRegistry.set(${cacheKey}, stub); return stub; } } catch {} throw e; } })();\n`;
207
+ binding.namespace.forEach((alias) => {
208
+ injection += `var ${alias} = ${moduleVar};\n`;
209
+ injection += `(${alias} && typeof ${alias} === 'object' && !('default' in ${alias})) && (${alias}.default = ${alias});\n`;
210
+ });
211
+ if (binding.named.length) {
212
+ for (const { imported, local } of binding.named) {
213
+ injection += `var ${local} = __nsPick(${moduleVar}, ${JSON.stringify(imported)});\n`;
214
+ }
215
+ }
216
+ if (binding.default.size) {
217
+ const defVar = `${moduleVar}__def`;
218
+ injection += `var ${defVar} = __nsDefault(${moduleVar});\n`;
219
+ binding.default.forEach((localName) => {
220
+ injection += `var ${localName} = (__nsHasInstall(${defVar})
221
+ ? ${defVar}
222
+ : (__nsHasInstall(${moduleVar})
223
+ ? ${moduleVar}
224
+ : (function(){ const _n = __nsNestedDefault(${moduleVar}); return _n !== undefined ? _n : ${defVar}; })()));\n`;
225
+ });
226
+ }
227
+ if (binding.sideEffectOnly && !binding.namespace.size && !binding.named.length && !binding.default.size) {
228
+ injection += `void ${moduleVar};\n`;
229
+ }
230
+ }
231
+ injection += '\n';
232
+ const preserved = preservedImports.length ? preservedImports.join('\n') + '\n' : '';
233
+ return preserved + injection + code;
234
+ }
235
+ function normalizeExtensionlessRuntimePluginSourceSpecifier(spec, projectRoot) {
236
+ if (!spec) {
237
+ return null;
238
+ }
239
+ const cleaned = spec.replace(PAT.QUERY_PATTERN, '');
240
+ if (!cleaned || /^(?:\.|\/|https?:\/\/)/i.test(cleaned)) {
241
+ return null;
242
+ }
243
+ const normalized = normalizeNodeModulesSpecifier(cleaned) || cleaned.replace(/^\/+/, '');
244
+ const rootPackageName = extractRootPackageName(normalized);
245
+ if (!rootPackageName || !isLikelyNativeScriptRuntimePluginSpecifier(rootPackageName, projectRoot)) {
246
+ return null;
247
+ }
248
+ const { packageName, subpath } = resolveNodeModulesPackageBoundary(normalized, projectRoot);
249
+ if (!subpath || packageName !== rootPackageName) {
250
+ return null;
251
+ }
252
+ const lastSegment = subpath.split('/').pop() || '';
253
+ if (hasExplicitRuntimePluginScriptExtension(lastSegment)) {
254
+ return null;
255
+ }
256
+ return normalized;
257
+ }
258
+ function normalizeRuntimePluginSourceSpecifier(spec, sourceFilePath, projectRoot) {
259
+ if (!spec) {
260
+ return null;
261
+ }
262
+ const relativeSpecifier = normalizeRelativeRuntimePluginSourceSpecifier(spec, sourceFilePath, projectRoot);
263
+ if (relativeSpecifier) {
264
+ return relativeSpecifier;
265
+ }
266
+ const cleaned = spec.replace(PAT.QUERY_PATTERN, '');
267
+ if (!cleaned || /^(?:https?:\/\/)/i.test(cleaned)) {
268
+ return null;
269
+ }
270
+ const normalized = normalizeNodeModulesSpecifier(cleaned) || cleaned.replace(/^\/+/, '');
271
+ const rootPackageName = extractRootPackageName(normalized);
272
+ if (!rootPackageName || !isLikelyNativeScriptRuntimePluginSpecifier(rootPackageName, projectRoot)) {
273
+ return null;
274
+ }
275
+ return normalized;
276
+ }
277
+ function isRuntimePluginRootEntrySpecifier(specifier, projectRoot) {
278
+ if (!specifier) {
279
+ return false;
280
+ }
281
+ const cleaned = specifier.replace(PAT.QUERY_PATTERN, '');
282
+ const normalized = normalizeNodeModulesSpecifier(cleaned) || cleaned.replace(/^\/+/, '');
283
+ if (!normalized) {
284
+ return false;
285
+ }
286
+ const { packageName, subpath } = resolveNodeModulesPackageBoundary(normalized, projectRoot);
287
+ if (!packageName || !isLikelyNativeScriptRuntimePluginSpecifier(packageName, projectRoot)) {
288
+ return false;
289
+ }
290
+ if (!subpath) {
291
+ return true;
292
+ }
293
+ if (subpath.includes('/')) {
294
+ return false;
295
+ }
296
+ const packageBaseName = packageName.split('/').pop() || '';
297
+ const withoutExt = hasExplicitRuntimePluginScriptExtension(subpath) ? subpath.replace(/\.[^.]+$/, '') : subpath;
298
+ const withoutPlatform = withoutExt.replace(/\.(ios|android|visionos)$/i, '');
299
+ return withoutPlatform === 'index' || withoutPlatform === packageBaseName;
300
+ }
301
+ function collectMixedRuntimePluginRootPackages(source, projectRoot, sourceFilePath) {
302
+ const rootEntryPackages = new Set();
303
+ const nonRootSubpathPackages = new Set();
304
+ const extracted = astExtractImportsAndStripTypes(source);
305
+ for (const importCode of extracted.imports) {
306
+ const sourceSpecifier = importCode.match(/from\s+["']([^"']+)["']/)?.[1] || importCode.match(/^\s*import\s+["']([^"']+)["']/)?.[1] || null;
307
+ const normalizedSpecifier = sourceSpecifier ? normalizeRuntimePluginSourceSpecifier(sourceSpecifier, sourceFilePath, projectRoot) : null;
308
+ if (!normalizedSpecifier) {
309
+ continue;
310
+ }
311
+ const { packageName } = resolveNodeModulesPackageBoundary(normalizedSpecifier, projectRoot);
312
+ if (!packageName) {
313
+ continue;
314
+ }
315
+ if (isRuntimePluginRootEntrySpecifier(normalizedSpecifier, projectRoot)) {
316
+ rootEntryPackages.add(packageName);
317
+ continue;
318
+ }
319
+ nonRootSubpathPackages.add(packageName);
320
+ }
321
+ return new Set(Array.from(rootEntryPackages).filter((packageName) => nonRootSubpathPackages.has(packageName)));
322
+ }
323
+ function normalizeRelativeRuntimePluginSourceSpecifier(spec, sourceFilePath, projectRoot) {
324
+ if (!spec || !sourceFilePath) {
325
+ return null;
326
+ }
327
+ const cleaned = spec.replace(PAT.QUERY_PATTERN, '');
328
+ if (!cleaned || !/^\.\.?\//.test(cleaned)) {
329
+ return null;
330
+ }
331
+ const lastSegment = cleaned.split('/').pop() || '';
332
+ if (hasExplicitRuntimePluginScriptExtension(lastSegment)) {
333
+ return null;
334
+ }
335
+ const sourceNodeModulesSpecifier = normalizeNodeModulesSpecifier(sourceFilePath);
336
+ if (!sourceNodeModulesSpecifier) {
337
+ return null;
338
+ }
339
+ const { packageName, subpath } = resolveNodeModulesPackageBoundary(sourceNodeModulesSpecifier, projectRoot);
340
+ if (!packageName || !subpath || !isLikelyNativeScriptRuntimePluginSpecifier(packageName, projectRoot)) {
341
+ return null;
342
+ }
343
+ const sourceDir = path.posix.dirname(subpath);
344
+ const resolvedSubpath = path.posix.normalize(path.posix.join(sourceDir === '.' ? '' : sourceDir, cleaned)).replace(/^\/+/, '');
345
+ if (!resolvedSubpath || resolvedSubpath.startsWith('../') || resolvedSubpath === '.') {
346
+ return null;
347
+ }
348
+ const normalized = `${packageName}/${resolvedSubpath}`;
349
+ return shouldPreserveBareRuntimePluginSubpathImport(normalized, projectRoot) ? normalized : null;
350
+ }
351
+ function getResolvedSpecifierCandidateKeys(sourceSpecifier) {
352
+ const normalized = sourceSpecifier.replace(PAT.QUERY_PATTERN, '').replace(/^\/+/, '');
353
+ if (!normalized) {
354
+ return [];
355
+ }
356
+ const suffixes = ['', '.js', '.ts', '.mjs', '.cjs', '.ios.js', '.android.js', '.visionos.js', '/index.js', '/index.ts', '/index.mjs', '/index.ios.js', '/index.android.js', '/index.visionos.js'];
357
+ return Array.from(new Set(suffixes.map((suffix) => (suffix ? `${normalized}${suffix}` : normalized))));
358
+ }
359
+ function buildResolvedRuntimePluginSpecifierOverrides(source, projectRoot, sourceFilePath) {
360
+ const overrides = new Map();
361
+ const extracted = astExtractImportsAndStripTypes(source);
362
+ const mixedRuntimePluginRootPackages = collectMixedRuntimePluginRootPackages(source, projectRoot, sourceFilePath);
363
+ for (const importCode of extracted.imports) {
364
+ const sourceSpecifier = importCode.match(/from\s+["']([^"']+)["']/)?.[1] || importCode.match(/^\s*import\s+["']([^"']+)["']/)?.[1] || null;
365
+ const normalizedSpecifier = sourceSpecifier ? normalizeRuntimePluginSourceSpecifier(sourceSpecifier, sourceFilePath, projectRoot) : null;
366
+ if (normalizedSpecifier) {
367
+ const { packageName } = resolveNodeModulesPackageBoundary(normalizedSpecifier, projectRoot);
368
+ if (packageName && mixedRuntimePluginRootPackages.has(packageName) && isRuntimePluginRootEntrySpecifier(normalizedSpecifier, projectRoot)) {
369
+ for (const candidateKey of getResolvedSpecifierCandidateKeys(normalizedSpecifier)) {
370
+ overrides.set(candidateKey, candidateKey);
371
+ }
372
+ }
373
+ }
374
+ const preservedSpecifier = sourceSpecifier ? normalizeExtensionlessRuntimePluginSourceSpecifier(sourceSpecifier, projectRoot) || normalizeRelativeRuntimePluginSourceSpecifier(sourceSpecifier, sourceFilePath, projectRoot) : null;
375
+ if (!preservedSpecifier) {
376
+ continue;
377
+ }
378
+ for (const candidateKey of getResolvedSpecifierCandidateKeys(preservedSpecifier)) {
379
+ overrides.set(candidateKey, preservedSpecifier);
380
+ }
381
+ }
382
+ return overrides;
383
+ }
384
+ function resolveProcessCodeSourceFilePath(sourceId, projectRoot) {
385
+ const cleaned = sourceId.replace(PAT.QUERY_PATTERN, '');
386
+ if (!cleaned) {
387
+ return null;
388
+ }
389
+ const expandCandidateVariants = (candidate) => {
390
+ if (!candidate) {
391
+ return [];
392
+ }
393
+ const normalizedCandidate = candidate.replace(/\\/g, '/');
394
+ const lastSegment = normalizedCandidate.split('/').pop() || '';
395
+ const hasExplicitExtension = /(?:\.(?:ios|android|visionos))?\.(?:ts|tsx|js|jsx|mjs|mts|cts)$/i.test(lastSegment);
396
+ if (hasExplicitExtension) {
397
+ return [candidate];
398
+ }
399
+ const suffixes = ['', '.ts', '.tsx', '.js', '.jsx', '.mjs', '.mts', '.cts', '.ios.ts', '.ios.js', '.android.ts', '.android.js', '.visionos.ts', '.visionos.js', '/index.ts', '/index.tsx', '/index.js', '/index.jsx', '/index.mjs', '/index.mts', '/index.cts', '/index.ios.ts', '/index.ios.js', '/index.android.ts', '/index.android.js', '/index.visionos.ts', '/index.visionos.js'];
400
+ return Array.from(new Set(suffixes.map((suffix) => `${candidate}${suffix}`)));
401
+ };
402
+ const candidates = [];
403
+ if (cleaned.startsWith('/@fs/')) {
404
+ candidates.push(...expandCandidateVariants(cleaned.slice('/@fs'.length)));
405
+ }
406
+ if (/^(?:[A-Za-z]:)?\//.test(cleaned)) {
407
+ candidates.push(...expandCandidateVariants(cleaned));
408
+ candidates.push(...expandCandidateVariants(path.resolve(projectRoot, `.${cleaned}`)));
409
+ }
410
+ else {
411
+ candidates.push(...expandCandidateVariants(path.resolve(projectRoot, cleaned.replace(/^\.\//, ''))));
412
+ }
413
+ for (const candidate of Array.from(new Set(candidates))) {
414
+ try {
415
+ if (candidate && existsSync(candidate) && statSync(candidate).isFile()) {
416
+ return candidate;
417
+ }
418
+ }
419
+ catch { }
420
+ }
421
+ return null;
422
+ }
423
+ export function getProcessCodeResolvedSpecifierOverrides(sourceId, projectRoot) {
424
+ if (!sourceId) {
425
+ return undefined;
426
+ }
427
+ const sourceFilePath = resolveProcessCodeSourceFilePath(sourceId, projectRoot);
428
+ if (!sourceFilePath) {
429
+ return undefined;
430
+ }
431
+ try {
432
+ const stats = statSync(sourceFilePath);
433
+ const cached = sourceImportIntentCache.get(sourceFilePath);
434
+ if (cached && cached.mtimeMs === stats.mtimeMs && cached.size === stats.size) {
435
+ return cached.resolvedSpecifierOverrides;
436
+ }
437
+ const source = readFileSync(sourceFilePath, 'utf8');
438
+ const resolvedSpecifierOverrides = buildResolvedRuntimePluginSpecifierOverrides(source, projectRoot, sourceFilePath);
439
+ sourceImportIntentCache.set(sourceFilePath, {
440
+ mtimeMs: stats.mtimeMs,
441
+ size: stats.size,
442
+ resolvedSpecifierOverrides,
443
+ });
444
+ return resolvedSpecifierOverrides;
445
+ }
446
+ catch {
447
+ return undefined;
448
+ }
449
+ }
450
+ function getPreservedImportSpecifier(specifier, options) {
451
+ if (!specifier) {
452
+ return null;
453
+ }
454
+ const cleaned = specifier.replace(PAT.QUERY_PATTERN, '');
455
+ const normalized = normalizeNodeModulesSpecifier(cleaned) || cleaned.replace(/^\/+/, '');
456
+ const overrideSpecifier = options?.resolvedSpecifierOverrides?.get(cleaned) || options?.resolvedSpecifierOverrides?.get(normalized);
457
+ if (overrideSpecifier) {
458
+ return overrideSpecifier;
459
+ }
460
+ if (shouldPreserveBareRuntimePluginSubpathImport(cleaned, getProjectRootPath())) {
461
+ return cleaned;
462
+ }
463
+ return null;
464
+ }
465
+ function rewritePreservedImportSpecifier(original, rawSpecifier, preservedSpecifier) {
466
+ if (!rawSpecifier || rawSpecifier === preservedSpecifier) {
467
+ return original;
468
+ }
469
+ return original.replace(rawSpecifier, preservedSpecifier);
470
+ }
471
+ //# sourceMappingURL=websocket-module-bindings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"websocket-module-bindings.js","sourceRoot":"","sources":["../../../../../packages/vite/hmr/server/websocket-module-bindings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,IAAI,UAAU,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AACxD,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAE7B,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,8BAA8B,EAAE,MAAM,2BAA2B,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AACzE,OAAO,EAAE,8BAA8B,EAAE,mCAAmC,EAAE,0CAA0C,EAAE,6BAA6B,EAAE,yCAAyC,EAAE,iCAAiC,EAAE,0BAA0B,EAAE,4CAA4C,EAAE,MAAM,kCAAkC,CAAC;AA6B1V,MAAM,uBAAuB,GAAG,IAAI,GAAG,EAAwC,CAAC;AAChF,MAAM,qCAAqC,GAAG,kEAAkE,CAAC;AACjH,MAAM,8BAA8B,GAAG,CAAC,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,qBAAqB,CAAU,CAAC;AAE9L,SAAS,uCAAuC,CAAC,OAAe;IAC/D,OAAO,qCAAqC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC5D,CAAC;AAED,SAAS,4BAA4B,CAAC,IAAY;IACjD,IAAI,CAAC;QACJ,MAAM,GAAG,GAAG,UAAU,CAAC,IAAI,EAAE;YAC5B,UAAU,EAAE,QAAQ;YACpB,OAAO,EAAE,CAAC,GAAG,8BAA8B,CAAC;SAC5C,CAAQ,CAAC;QACV,MAAM,IAAI,GAAG,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC;QAChC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1B,OAAO,EAAE,CAAC;QACX,CAAC;QAED,OAAO,IAAI;aACT,MAAM,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,mBAAmB,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,IAAI,OAAO,IAAI,CAAC,GAAG,KAAK,QAAQ,IAAI,OAAO,IAAI,CAAC,MAAM,EAAE,KAAK,KAAK,QAAQ,CAAC;aACrK,GAAG,CAAC,CAAC,IAAS,EAAE,EAAE;YAClB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAe,EAAE,IAAI,CAAC,GAAa,CAAC,CAAC;YAClE,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,uDAAuD,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;YAC9K,OAAO;gBACN,KAAK,EAAE,IAAI,CAAC,KAAe;gBAC3B,GAAG,EAAE,IAAI,CAAC,GAAa;gBACvB,IAAI;gBACJ,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,KAAe;gBACnC,MAAM;gBACN,UAAU,EAAE,IAAI,CAAC,UAAU,KAAK,MAAM;aACtC,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,EAAE,CAAC;IACX,CAAC;AACF,CAAC;AAED,SAAS,0BAA0B,CAAC,IAAY,EAAE,OAA+B;IAChF,IAAI,QAAQ,GAAG,IAAI,CAAC;IACpB,KAAK,MAAM,MAAM,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACnF,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACzE,CAAC;IACD,OAAO,QAAQ,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,gCAAgC,CAAC,IAAY,EAAE,OAAiD;IAC/G,MAAM,aAAa,GAAG,4BAA4B,CAAC,IAAI,CAAC,CAAC;IACzD,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;QAC3B,OAAO,IAAI,CAAC;IACb,CAAC;IAED,MAAM,gBAAgB,GAAa,EAAE,CAAC;IACtC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAqC,CAAC;IAE7D,MAAM,gBAAgB,GAAG,CAAC,SAAiB,EAAE,EAAE;QAC9C,IAAI,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACnC,IAAI,CAAC,KAAK,EAAE,CAAC;YACZ,KAAK,GAAG;gBACP,OAAO,EAAE,IAAI,GAAG,EAAU;gBAC1B,SAAS,EAAE,IAAI,GAAG,EAAU;gBAC5B,KAAK,EAAE,EAAE;gBACT,cAAc,EAAE,KAAK;aACrB,CAAC;YACF,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAC/B,CAAC;QACD,OAAO,KAAK,CAAC;IACd,CAAC,CAAC;IAEF,MAAM,iBAAiB,GAAG,CAAC,MAAc,EAAE,OAAkC,EAAE,EAAE;QAChF,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAC3D,KAAK;aACH,KAAK,CAAC,GAAG,CAAC;aACV,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;aAChC,MAAM,CAAC,OAAO,CAAC;aACf,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YACpB,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YAC1E,MAAM,gBAAgB,GAAG,QAAQ,CAAC;YAClC,MAAM,aAAa,GAAG,KAAK,IAAI,QAAQ,CAAC;YACxC,IAAI,gBAAgB,EAAE,CAAC;gBACtB,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC;oBAClB,QAAQ,EAAE,gBAAgB;oBAC1B,KAAK,EAAE,aAAa;iBACpB,CAAC,CAAC;YACJ,CAAC;QACF,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,KAAK,MAAM,MAAM,IAAI,aAAa,EAAE,CAAC;QACpC,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACpC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACf,SAAS;QACV,CAAC;QACD,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;YACvB,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAChC,SAAS;QACV,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC;QAC9B,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;QACzD,MAAM,kBAAkB,GAAG,2BAA2B,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAE3E,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACpB,IAAI,kBAAkB,EAAE,CAAC;gBACxB,gBAAgB,CAAC,IAAI,CAAC,+BAA+B,CAAC,QAAQ,EAAE,OAAO,EAAE,kBAAkB,CAAC,CAAC,CAAC;gBAC9F,SAAS;YACV,CAAC;YACD,IAAI,8BAA8B,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC/C,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAChC,SAAS;YACV,CAAC;YACD,MAAM,0BAA0B,GAAG,yCAAyC,CAAC,SAAS,EAAE,kBAAkB,EAAE,CAAC,CAAC;YAC9G,IAAI,SAAS,GAAG,0BAA0B,IAAI,0BAA0B,CAAC,SAAS,CAAC,CAAC;YACpF,MAAM,sBAAsB,GAAG,0CAA0C,CAAC,SAAS,IAAI,SAAS,EAAE,kBAAkB,EAAE,CAAC,CAAC;YACxH,IAAI,OAAO,EAAE,8BAA8B,IAAI,CAAC,sBAAsB,EAAE,CAAC;gBACxE,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAChC,SAAS;YACV,CAAC;YACD,IAAI,CAAC,SAAS,IAAI,mCAAmC,CAAC,SAAS,EAAE,kBAAkB,EAAE,CAAC,EAAE,CAAC;gBACxF,SAAS,GAAG,SAAS,CAAC;YACvB,CAAC;YACD,IAAI,SAAS,IAAI,8BAA8B,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;gBACjE,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAChC,SAAS;YACV,CAAC;YACD,IAAI,CAAC,SAAS,EAAE,CAAC;gBAChB,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAChC,SAAS;YACV,CAAC;YACD,MAAM,OAAO,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC;YAC5C,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;YAC9B,SAAS;QACV,CAAC;QAED,IAAI,kBAAkB,EAAE,CAAC;YACxB,gBAAgB,CAAC,IAAI,CAAC,+BAA+B,CAAC,QAAQ,EAAE,OAAO,EAAE,kBAAkB,CAAC,CAAC,CAAC;YAC9F,SAAS;QACV,CAAC;QACD,IAAI,8BAA8B,CAAC,SAAS,CAAC,EAAE,CAAC;YAC/C,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAChC,SAAS;QACV,CAAC;QACD,MAAM,0BAA0B,GAAG,yCAAyC,CAAC,SAAS,EAAE,kBAAkB,EAAE,CAAC,CAAC;QAC9G,IAAI,SAAS,GAAG,0BAA0B,IAAI,0BAA0B,CAAC,SAAS,CAAC,CAAC;QACpF,MAAM,sBAAsB,GAAG,0CAA0C,CAAC,SAAS,IAAI,SAAS,EAAE,kBAAkB,EAAE,CAAC,CAAC;QACxH,IAAI,OAAO,EAAE,8BAA8B,IAAI,CAAC,sBAAsB,EAAE,CAAC;YACxE,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAChC,SAAS;QACV,CAAC;QACD,IAAI,CAAC,SAAS,IAAI,mCAAmC,CAAC,SAAS,EAAE,kBAAkB,EAAE,CAAC,EAAE,CAAC;YACxF,SAAS,GAAG,SAAS,CAAC;QACvB,CAAC;QACD,IAAI,SAAS,IAAI,8BAA8B,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;YACjE,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAChC,SAAS;QACV,CAAC;QACD,IAAI,CAAC,SAAS,EAAE,CAAC;YAChB,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAChC,SAAS;QACV,CAAC;QAED,MAAM,OAAO,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC;QAC5C,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACrC,IAAI,CAAC,OAAO,EAAE,CAAC;YACd,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;YAC9B,SAAS;QACV,CAAC;QACD,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC7B,MAAM,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;YAC5C,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;gBAAE,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACxC,SAAS;QACV,CAAC;QACD,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC7B,iBAAiB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YACpC,SAAS;QACV,CAAC;QACD,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACpD,MAAM,CAAC,WAAW,EAAE,SAAS,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YAC3D,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC;YAC/B,IAAI,GAAG;gBAAE,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAClC,IAAI,SAAS;gBAAE,iBAAiB,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC;YAC5D,SAAS;QACV,CAAC;QACD,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC9B,CAAC;IAED,IAAI,GAAG,0BAA0B,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IAEvD,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACnB,IAAI,gBAAgB,CAAC,MAAM,EAAE,CAAC;YAC7B,MAAM,SAAS,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;YACrD,OAAO,SAAS,GAAG,IAAI,CAAC;QACzB,CAAC;QACD,OAAO,IAAI,CAAC;IACb,CAAC;IAED,IAAI,SAAS,GAAG,2EAA2E,CAAC;IAC5F,SAAS,IAAI,6HAA6H,CAAC;IAC3I,SAAS,IAAI,wOAAwO,CAAC;IACtP,SAAS,IAAI,qVAAqV,CAAC;IACnW,SAAS,IAAI,0NAA0N,CAAC;IACxO,SAAS,IAAI,6KAA6K,CAAC;IAC3L,SAAS,IAAI,0IAA0I,CAAC;IACxJ,SAAS,IAAI,wTAAwT,CAAC;IACtU,SAAS,IAAI,2WAA2W,CAAC;IAEzX,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,OAAO,EAAE,CAAC;QAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAC3C,MAAM,SAAS,GAAG,oBAAoB,KAAK,EAAE,EAAE,CAAC;QAChD,SAAS,IAAI,OAAO,SAAS,6BAA6B,QAAQ,8BAA8B,QAAQ,kDAAkD,QAAQ,6BAA6B,QAAQ,uFAAuF,QAAQ,qFAAqF,QAAQ,6BAA6B,QAAQ,uDAAuD,CAAC;QAEhe,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YACnC,SAAS,IAAI,OAAO,KAAK,MAAM,SAAS,KAAK,CAAC;YAC9C,SAAS,IAAI,IAAI,KAAK,cAAc,KAAK,mCAAmC,KAAK,UAAU,KAAK,cAAc,KAAK,MAAM,CAAC;QAC3H,CAAC,CAAC,CAAC;QAEH,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YAC1B,KAAK,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;gBACjD,SAAS,IAAI,OAAO,KAAK,eAAe,SAAS,KAAK,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC;YACtF,CAAC;QACF,CAAC;QAED,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAC1B,MAAM,MAAM,GAAG,GAAG,SAAS,OAAO,CAAC;YACnC,SAAS,IAAI,OAAO,MAAM,kBAAkB,SAAS,MAAM,CAAC;YAC5D,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE;gBACrC,SAAS,IAAI,OAAO,SAAS,sBAAsB,MAAM;cAC/C,MAAM;8BACU,SAAS;gBACvB,SAAS;0DACiC,SAAS,qCAAqC,MAAM,aAAa,CAAC;YACzH,CAAC,CAAC,CAAC;QACJ,CAAC;QAED,IAAI,OAAO,CAAC,cAAc,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACzG,SAAS,IAAI,QAAQ,SAAS,KAAK,CAAC;QACrC,CAAC;IACF,CAAC;IAED,SAAS,IAAI,IAAI,CAAC;IAClB,MAAM,SAAS,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IACpF,OAAO,SAAS,GAAG,SAAS,GAAG,IAAI,CAAC;AACrC,CAAC;AAED,SAAS,kDAAkD,CAAC,IAAY,EAAE,WAAmB;IAC5F,IAAI,CAAC,IAAI,EAAE,CAAC;QACX,OAAO,IAAI,CAAC;IACb,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;IACpD,IAAI,CAAC,OAAO,IAAI,yBAAyB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACzD,OAAO,IAAI,CAAC;IACb,CAAC;IAED,MAAM,UAAU,GAAG,6BAA6B,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACzF,MAAM,eAAe,GAAG,sBAAsB,CAAC,UAAU,CAAC,CAAC;IAC3D,IAAI,CAAC,eAAe,IAAI,CAAC,0CAA0C,CAAC,eAAe,EAAE,WAAW,CAAC,EAAE,CAAC;QACnG,OAAO,IAAI,CAAC;IACb,CAAC;IAED,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,iCAAiC,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;IAC5F,IAAI,CAAC,OAAO,IAAI,WAAW,KAAK,eAAe,EAAE,CAAC;QACjD,OAAO,IAAI,CAAC;IACb,CAAC;IAED,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;IACnD,IAAI,uCAAuC,CAAC,WAAW,CAAC,EAAE,CAAC;QAC1D,OAAO,IAAI,CAAC;IACb,CAAC;IAED,OAAO,UAAU,CAAC;AACnB,CAAC;AAED,SAAS,qCAAqC,CAAC,IAAY,EAAE,cAAsB,EAAE,WAAmB;IACvG,IAAI,CAAC,IAAI,EAAE,CAAC;QACX,OAAO,IAAI,CAAC;IACb,CAAC;IAED,MAAM,iBAAiB,GAAG,6CAA6C,CAAC,IAAI,EAAE,cAAc,EAAE,WAAW,CAAC,CAAC;IAC3G,IAAI,iBAAiB,EAAE,CAAC;QACvB,OAAO,iBAAiB,CAAC;IAC1B,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;IACpD,IAAI,CAAC,OAAO,IAAI,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACnD,OAAO,IAAI,CAAC;IACb,CAAC;IAED,MAAM,UAAU,GAAG,6BAA6B,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACzF,MAAM,eAAe,GAAG,sBAAsB,CAAC,UAAU,CAAC,CAAC;IAC3D,IAAI,CAAC,eAAe,IAAI,CAAC,0CAA0C,CAAC,eAAe,EAAE,WAAW,CAAC,EAAE,CAAC;QACnG,OAAO,IAAI,CAAC;IACb,CAAC;IAED,OAAO,UAAU,CAAC;AACnB,CAAC;AAED,SAAS,iCAAiC,CAAC,SAAiB,EAAE,WAAmB;IAChF,IAAI,CAAC,SAAS,EAAE,CAAC;QAChB,OAAO,KAAK,CAAC;IACd,CAAC;IAED,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;IACzD,MAAM,UAAU,GAAG,6BAA6B,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACzF,IAAI,CAAC,UAAU,EAAE,CAAC;QACjB,OAAO,KAAK,CAAC;IACd,CAAC;IAED,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,iCAAiC,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;IAC5F,IAAI,CAAC,WAAW,IAAI,CAAC,0CAA0C,CAAC,WAAW,EAAE,WAAW,CAAC,EAAE,CAAC;QAC3F,OAAO,KAAK,CAAC;IACd,CAAC;IAED,IAAI,CAAC,OAAO,EAAE,CAAC;QACd,OAAO,IAAI,CAAC;IACb,CAAC;IAED,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC3B,OAAO,KAAK,CAAC;IACd,CAAC;IAED,MAAM,eAAe,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;IAC3D,MAAM,UAAU,GAAG,uCAAuC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IAChH,MAAM,eAAe,GAAG,UAAU,CAAC,OAAO,CAAC,4BAA4B,EAAE,EAAE,CAAC,CAAC;IAC7E,OAAO,eAAe,KAAK,OAAO,IAAI,eAAe,KAAK,eAAe,CAAC;AAC3E,CAAC;AAED,SAAS,qCAAqC,CAAC,MAAc,EAAE,WAAmB,EAAE,cAAsB;IACzG,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAU,CAAC;IAC5C,MAAM,sBAAsB,GAAG,IAAI,GAAG,EAAU,CAAC;IACjD,MAAM,SAAS,GAAG,8BAA8B,CAAC,MAAM,CAAC,CAAC;IAEzD,KAAK,MAAM,UAAU,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;QAC5C,MAAM,eAAe,GAAG,UAAU,CAAC,KAAK,CAAC,yBAAyB,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,+BAA+B,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;QAC3I,MAAM,mBAAmB,GAAG,eAAe,CAAC,CAAC,CAAC,qCAAqC,CAAC,eAAe,EAAE,cAAc,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACzI,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC1B,SAAS;QACV,CAAC;QAED,MAAM,EAAE,WAAW,EAAE,GAAG,iCAAiC,CAAC,mBAAmB,EAAE,WAAW,CAAC,CAAC;QAC5F,IAAI,CAAC,WAAW,EAAE,CAAC;YAClB,SAAS;QACV,CAAC;QAED,IAAI,iCAAiC,CAAC,mBAAmB,EAAE,WAAW,CAAC,EAAE,CAAC;YACzE,iBAAiB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YACnC,SAAS;QACV,CAAC;QAED,sBAAsB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IACzC,CAAC;IAED,OAAO,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,sBAAsB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;AAChH,CAAC;AAED,SAAS,6CAA6C,CAAC,IAAY,EAAE,cAAsB,EAAE,WAAmB;IAC/G,IAAI,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC;IACb,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;IACpD,IAAI,CAAC,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3C,OAAO,IAAI,CAAC;IACb,CAAC;IAED,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;IACnD,IAAI,uCAAuC,CAAC,WAAW,CAAC,EAAE,CAAC;QAC1D,OAAO,IAAI,CAAC;IACb,CAAC;IAED,MAAM,0BAA0B,GAAG,6BAA6B,CAAC,cAAc,CAAC,CAAC;IACjF,IAAI,CAAC,0BAA0B,EAAE,CAAC;QACjC,OAAO,IAAI,CAAC;IACb,CAAC;IAED,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,iCAAiC,CAAC,0BAA0B,EAAE,WAAW,CAAC,CAAC;IAC5G,IAAI,CAAC,WAAW,IAAI,CAAC,OAAO,IAAI,CAAC,0CAA0C,CAAC,WAAW,EAAE,WAAW,CAAC,EAAE,CAAC;QACvG,OAAO,IAAI,CAAC;IACb,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9C,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAC/H,IAAI,CAAC,eAAe,IAAI,eAAe,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,eAAe,KAAK,GAAG,EAAE,CAAC;QACtF,OAAO,IAAI,CAAC;IACb,CAAC;IAED,MAAM,UAAU,GAAG,GAAG,WAAW,IAAI,eAAe,EAAE,CAAC;IACvD,OAAO,4CAA4C,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC;AAClG,CAAC;AAED,SAAS,iCAAiC,CAAC,eAAuB;IACjE,MAAM,UAAU,GAAG,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACtF,IAAI,CAAC,UAAU,EAAE,CAAC;QACjB,OAAO,EAAE,CAAC;IACX,CAAC;IAED,MAAM,QAAQ,GAAG,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,cAAc,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,eAAe,EAAE,mBAAmB,EAAE,oBAAoB,CAAC,CAAC;IAClM,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,UAAU,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;AACxG,CAAC;AAED,SAAS,4CAA4C,CAAC,MAAc,EAAE,WAAmB,EAAE,cAAsB;IAChH,MAAM,SAAS,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC5C,MAAM,SAAS,GAAG,8BAA8B,CAAC,MAAM,CAAC,CAAC;IACzD,MAAM,8BAA8B,GAAG,qCAAqC,CAAC,MAAM,EAAE,WAAW,EAAE,cAAc,CAAC,CAAC;IAElH,KAAK,MAAM,UAAU,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;QAC5C,MAAM,eAAe,GAAG,UAAU,CAAC,KAAK,CAAC,yBAAyB,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,+BAA+B,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;QAC3I,MAAM,mBAAmB,GAAG,eAAe,CAAC,CAAC,CAAC,qCAAqC,CAAC,eAAe,EAAE,cAAc,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACzI,IAAI,mBAAmB,EAAE,CAAC;YACzB,MAAM,EAAE,WAAW,EAAE,GAAG,iCAAiC,CAAC,mBAAmB,EAAE,WAAW,CAAC,CAAC;YAC5F,IAAI,WAAW,IAAI,8BAA8B,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,iCAAiC,CAAC,mBAAmB,EAAE,WAAW,CAAC,EAAE,CAAC;gBAC3I,KAAK,MAAM,YAAY,IAAI,iCAAiC,CAAC,mBAAmB,CAAC,EAAE,CAAC;oBACnF,SAAS,CAAC,GAAG,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;gBAC3C,CAAC;YACF,CAAC;QACF,CAAC;QAED,MAAM,kBAAkB,GAAG,eAAe,CAAC,CAAC,CAAC,kDAAkD,CAAC,eAAe,EAAE,WAAW,CAAC,IAAI,6CAA6C,CAAC,eAAe,EAAE,cAAc,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACpO,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACzB,SAAS;QACV,CAAC;QAED,KAAK,MAAM,YAAY,IAAI,iCAAiC,CAAC,kBAAkB,CAAC,EAAE,CAAC;YAClF,SAAS,CAAC,GAAG,CAAC,YAAY,EAAE,kBAAkB,CAAC,CAAC;QACjD,CAAC;IACF,CAAC;IAED,OAAO,SAAS,CAAC;AAClB,CAAC;AAED,SAAS,gCAAgC,CAAC,QAAgB,EAAE,WAAmB;IAC9E,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;IACxD,IAAI,CAAC,OAAO,EAAE,CAAC;QACd,OAAO,IAAI,CAAC;IACb,CAAC;IAED,MAAM,uBAAuB,GAAG,CAAC,SAAiB,EAAY,EAAE;QAC/D,IAAI,CAAC,SAAS,EAAE,CAAC;YAChB,OAAO,EAAE,CAAC;QACX,CAAC;QAED,MAAM,mBAAmB,GAAG,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAC1D,MAAM,WAAW,GAAG,mBAAmB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;QAC/D,MAAM,oBAAoB,GAAG,kEAAkE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAClH,IAAI,oBAAoB,EAAE,CAAC;YAC1B,OAAO,CAAC,SAAS,CAAC,CAAC;QACpB,CAAC;QAED,MAAM,QAAQ,GAAG,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,aAAa,EAAE,cAAc,EAAE,cAAc,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,oBAAoB,CAAC,CAAC;QAExX,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,SAAS,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;IAC/E,CAAC,CAAC;IAEF,MAAM,UAAU,GAAa,EAAE,CAAC;IAChC,IAAI,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACjC,UAAU,CAAC,IAAI,CAAC,GAAG,uBAAuB,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAC3E,CAAC;IACD,IAAI,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACvC,UAAU,CAAC,IAAI,CAAC,GAAG,uBAAuB,CAAC,OAAO,CAAC,CAAC,CAAC;QACrD,UAAU,CAAC,IAAI,CAAC,GAAG,uBAAuB,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;IACvF,CAAC;SAAM,CAAC;QACP,UAAU,CAAC,IAAI,CAAC,GAAG,uBAAuB,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACtG,CAAC;IAED,KAAK,MAAM,SAAS,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;QACzD,IAAI,CAAC;YACJ,IAAI,SAAS,IAAI,UAAU,CAAC,SAAS,CAAC,IAAI,QAAQ,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;gBACxE,OAAO,SAAS,CAAC;YAClB,CAAC;QACF,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;IACX,CAAC;IAED,OAAO,IAAI,CAAC;AACb,CAAC;AAED,MAAM,UAAU,wCAAwC,CAAC,QAA4B,EAAE,WAAmB;IACzG,IAAI,CAAC,QAAQ,EAAE,CAAC;QACf,OAAO,SAAS,CAAC;IAClB,CAAC;IAED,MAAM,cAAc,GAAG,gCAAgC,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IAC/E,IAAI,CAAC,cAAc,EAAE,CAAC;QACrB,OAAO,SAAS,CAAC;IAClB,CAAC;IAED,IAAI,CAAC;QACJ,MAAM,KAAK,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAC;QACvC,MAAM,MAAM,GAAG,uBAAuB,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAC3D,IAAI,MAAM,IAAI,MAAM,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO,IAAI,MAAM,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,EAAE,CAAC;YAC9E,OAAO,MAAM,CAAC,0BAA0B,CAAC;QAC1C,CAAC;QAED,MAAM,MAAM,GAAG,YAAY,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;QACpD,MAAM,0BAA0B,GAAG,4CAA4C,CAAC,MAAM,EAAE,WAAW,EAAE,cAAc,CAAC,CAAC;QACrH,uBAAuB,CAAC,GAAG,CAAC,cAAc,EAAE;YAC3C,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,0BAA0B;SAC1B,CAAC,CAAC;QACH,OAAO,0BAA0B,CAAC;IACnC,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,SAAS,CAAC;IAClB,CAAC;AACF,CAAC;AAED,SAAS,2BAA2B,CAAC,SAAiB,EAAE,OAAiD;IACxG,IAAI,CAAC,SAAS,EAAE,CAAC;QAChB,OAAO,IAAI,CAAC;IACb,CAAC;IAED,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;IACzD,MAAM,UAAU,GAAG,6BAA6B,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACzF,MAAM,iBAAiB,GAAG,OAAO,EAAE,0BAA0B,EAAE,GAAG,CAAC,OAAO,CAAC,IAAI,OAAO,EAAE,0BAA0B,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;IACpI,IAAI,iBAAiB,EAAE,CAAC;QACvB,OAAO,iBAAiB,CAAC;IAC1B,CAAC;IAED,IAAI,4CAA4C,CAAC,OAAO,EAAE,kBAAkB,EAAE,CAAC,EAAE,CAAC;QACjF,OAAO,OAAO,CAAC;IAChB,CAAC;IAED,OAAO,IAAI,CAAC;AACb,CAAC;AAED,SAAS,+BAA+B,CAAC,QAAgB,EAAE,YAAoB,EAAE,kBAA0B;IAC1G,IAAI,CAAC,YAAY,IAAI,YAAY,KAAK,kBAAkB,EAAE,CAAC;QAC1D,OAAO,QAAQ,CAAC;IACjB,CAAC;IAED,OAAO,QAAQ,CAAC,OAAO,CAAC,YAAY,EAAE,kBAAkB,CAAC,CAAC;AAC3D,CAAC"}