@proofhound/web-ui 0.1.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +190 -0
- package/dist/components/annotations/annotation-claim-dialog.d.ts +13 -0
- package/dist/components/annotations/annotation-claim-dialog.d.ts.map +1 -0
- package/dist/components/annotations/annotation-claim-dialog.js +60 -0
- package/dist/components/annotations/annotation-claim-dialog.js.map +1 -0
- package/dist/components/charts/source-legend.d.ts +10 -0
- package/dist/components/charts/source-legend.d.ts.map +1 -0
- package/dist/components/charts/source-legend.js +15 -0
- package/dist/components/charts/source-legend.js.map +1 -0
- package/dist/components/charts/source-stacked-bar.d.ts +22 -0
- package/dist/components/charts/source-stacked-bar.d.ts.map +1 -0
- package/dist/components/charts/source-stacked-bar.js +43 -0
- package/dist/components/charts/source-stacked-bar.js.map +1 -0
- package/dist/components/index.d.ts +15 -0
- package/dist/components/index.d.ts.map +1 -0
- package/dist/components/index.js +17 -0
- package/dist/components/index.js.map +1 -0
- package/dist/components/json-object-textarea.d.ts +11 -0
- package/dist/components/json-object-textarea.d.ts.map +1 -0
- package/dist/components/json-object-textarea.js +82 -0
- package/dist/components/json-object-textarea.js.map +1 -0
- package/dist/components/model-context-window-input.d.ts +15 -0
- package/dist/components/model-context-window-input.d.ts.map +1 -0
- package/dist/components/model-context-window-input.js +57 -0
- package/dist/components/model-context-window-input.js.map +1 -0
- package/dist/components/model-probe-status.d.ts +11 -0
- package/dist/components/model-probe-status.d.ts.map +1 -0
- package/dist/components/model-probe-status.js +34 -0
- package/dist/components/model-probe-status.js.map +1 -0
- package/dist/components/prompt-diff/prompt-diff-split-view.d.ts +28 -0
- package/dist/components/prompt-diff/prompt-diff-split-view.d.ts.map +1 -0
- package/dist/components/prompt-diff/prompt-diff-split-view.js +101 -0
- package/dist/components/prompt-diff/prompt-diff-split-view.js.map +1 -0
- package/dist/components/prompt-language-select.d.ts +13 -0
- package/dist/components/prompt-language-select.d.ts.map +1 -0
- package/dist/components/prompt-language-select.js +14 -0
- package/dist/components/prompt-language-select.js.map +1 -0
- package/dist/components/prompt-version-picker-row.d.ts +27 -0
- package/dist/components/prompt-version-picker-row.d.ts.map +1 -0
- package/dist/components/prompt-version-picker-row.js +50 -0
- package/dist/components/prompt-version-picker-row.js.map +1 -0
- package/dist/components/prompt-version-status-badge.d.ts +8 -0
- package/dist/components/prompt-version-status-badge.d.ts.map +1 -0
- package/dist/components/prompt-version-status-badge.js +31 -0
- package/dist/components/prompt-version-status-badge.js.map +1 -0
- package/dist/components/quick-fill/quick-fill-picker.d.ts +42 -0
- package/dist/components/quick-fill/quick-fill-picker.d.ts.map +1 -0
- package/dist/components/quick-fill/quick-fill-picker.js +46 -0
- package/dist/components/quick-fill/quick-fill-picker.js.map +1 -0
- package/dist/components/time-zone-preference-menu.d.ts +10 -0
- package/dist/components/time-zone-preference-menu.d.ts.map +1 -0
- package/dist/components/time-zone-preference-menu.js +33 -0
- package/dist/components/time-zone-preference-menu.js.map +1 -0
- package/dist/contracts/index.d.ts +13 -0
- package/dist/contracts/index.d.ts.map +1 -0
- package/dist/contracts/index.js +7 -0
- package/dist/contracts/index.js.map +1 -0
- package/dist/features/index.d.ts +3 -0
- package/dist/features/index.d.ts.map +1 -0
- package/dist/features/index.js +4 -0
- package/dist/features/index.js.map +1 -0
- package/dist/features/model-quick-fill/model-preset-draft.d.ts +19 -0
- package/dist/features/model-quick-fill/model-preset-draft.d.ts.map +1 -0
- package/dist/features/model-quick-fill/model-preset-draft.js +22 -0
- package/dist/features/model-quick-fill/model-preset-draft.js.map +1 -0
- package/dist/features/model-quick-fill/model-preset-quick-fill.d.ts +7 -0
- package/dist/features/model-quick-fill/model-preset-quick-fill.d.ts.map +1 -0
- package/dist/features/model-quick-fill/model-preset-quick-fill.js +73 -0
- package/dist/features/model-quick-fill/model-preset-quick-fill.js.map +1 -0
- package/dist/hooks/annotation.d.ts +253 -0
- package/dist/hooks/annotation.d.ts.map +1 -0
- package/dist/hooks/annotation.js +79 -0
- package/dist/hooks/annotation.js.map +1 -0
- package/dist/hooks/canary-release.d.ts +674 -0
- package/dist/hooks/canary-release.d.ts.map +1 -0
- package/dist/hooks/canary-release.js +142 -0
- package/dist/hooks/canary-release.js.map +1 -0
- package/dist/hooks/connector.d.ts +585 -0
- package/dist/hooks/connector.d.ts.map +1 -0
- package/dist/hooks/connector.js +157 -0
- package/dist/hooks/connector.js.map +1 -0
- package/dist/hooks/dataset.d.ts +138 -0
- package/dist/hooks/dataset.d.ts.map +1 -0
- package/dist/hooks/dataset.js +84 -0
- package/dist/hooks/dataset.js.map +1 -0
- package/dist/hooks/experiment.d.ts +376 -0
- package/dist/hooks/experiment.d.ts.map +1 -0
- package/dist/hooks/experiment.js +58 -0
- package/dist/hooks/experiment.js.map +1 -0
- package/dist/hooks/index.d.ts +18 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/index.js +18 -0
- package/dist/hooks/index.js.map +1 -0
- package/dist/hooks/model.d.ts +327 -0
- package/dist/hooks/model.d.ts.map +1 -0
- package/dist/hooks/model.js +103 -0
- package/dist/hooks/model.js.map +1 -0
- package/dist/hooks/optimization.d.ts +557 -0
- package/dist/hooks/optimization.d.ts.map +1 -0
- package/dist/hooks/optimization.js +94 -0
- package/dist/hooks/optimization.js.map +1 -0
- package/dist/hooks/production-release.d.ts +141 -0
- package/dist/hooks/production-release.d.ts.map +1 -0
- package/dist/hooks/production-release.js +51 -0
- package/dist/hooks/production-release.js.map +1 -0
- package/dist/hooks/project-monitoring.d.ts +199 -0
- package/dist/hooks/project-monitoring.d.ts.map +1 -0
- package/dist/hooks/project-monitoring.js +55 -0
- package/dist/hooks/project-monitoring.js.map +1 -0
- package/dist/hooks/prompt.d.ts +509 -0
- package/dist/hooks/prompt.d.ts.map +1 -0
- package/dist/hooks/prompt.js +127 -0
- package/dist/hooks/prompt.js.map +1 -0
- package/dist/hooks/quick-start.d.ts +219 -0
- package/dist/hooks/quick-start.d.ts.map +1 -0
- package/dist/hooks/quick-start.js +35 -0
- package/dist/hooks/quick-start.js.map +1 -0
- package/dist/hooks/release-line.d.ts +819 -0
- package/dist/hooks/release-line.d.ts.map +1 -0
- package/dist/hooks/release-line.js +52 -0
- package/dist/hooks/release-line.js.map +1 -0
- package/dist/hooks/run-result.d.ts +118 -0
- package/dist/hooks/run-result.d.ts.map +1 -0
- package/dist/hooks/run-result.js +56 -0
- package/dist/hooks/run-result.js.map +1 -0
- package/dist/hooks/token.d.ts +58 -0
- package/dist/hooks/token.d.ts.map +1 -0
- package/dist/hooks/token.js +39 -0
- package/dist/hooks/token.js.map +1 -0
- package/dist/hooks/use-auto-refresh.d.ts +30 -0
- package/dist/hooks/use-auto-refresh.d.ts.map +1 -0
- package/dist/hooks/use-auto-refresh.js +175 -0
- package/dist/hooks/use-auto-refresh.js.map +1 -0
- package/dist/hooks/use-date-time-formatter.d.ts +11 -0
- package/dist/hooks/use-date-time-formatter.d.ts.map +1 -0
- package/dist/hooks/use-date-time-formatter.js +24 -0
- package/dist/hooks/use-date-time-formatter.js.map +1 -0
- package/dist/hooks/use-delayed-loading.d.ts +25 -0
- package/dist/hooks/use-delayed-loading.d.ts.map +1 -0
- package/dist/hooks/use-delayed-loading.js +95 -0
- package/dist/hooks/use-delayed-loading.js.map +1 -0
- package/dist/i18n/index.d.ts +5678 -0
- package/dist/i18n/index.d.ts.map +1 -0
- package/dist/i18n/index.js +5712 -0
- package/dist/i18n/index.js.map +1 -0
- package/dist/i18n/language.d.ts +17 -0
- package/dist/i18n/language.d.ts.map +1 -0
- package/dist/i18n/language.js +43 -0
- package/dist/i18n/language.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/api-error.d.ts +2 -0
- package/dist/lib/api-error.d.ts.map +1 -0
- package/dist/lib/api-error.js +38 -0
- package/dist/lib/api-error.js.map +1 -0
- package/dist/lib/format.d.ts +30 -0
- package/dist/lib/format.d.ts.map +1 -0
- package/dist/lib/format.js +157 -0
- package/dist/lib/format.js.map +1 -0
- package/dist/lib/index.d.ts +8 -0
- package/dist/lib/index.d.ts.map +1 -0
- package/dist/lib/index.js +8 -0
- package/dist/lib/index.js.map +1 -0
- package/dist/lib/model-number.d.ts +2 -0
- package/dist/lib/model-number.d.ts.map +1 -0
- package/dist/lib/model-number.js +18 -0
- package/dist/lib/model-number.js.map +1 -0
- package/dist/lib/model-provider-type.d.ts +7 -0
- package/dist/lib/model-provider-type.d.ts.map +1 -0
- package/dist/lib/model-provider-type.js +28 -0
- package/dist/lib/model-provider-type.js.map +1 -0
- package/dist/lib/project-name.d.ts +7 -0
- package/dist/lib/project-name.d.ts.map +1 -0
- package/dist/lib/project-name.js +14 -0
- package/dist/lib/project-name.js.map +1 -0
- package/dist/lib/releases/release-line-model.d.ts +55 -0
- package/dist/lib/releases/release-line-model.d.ts.map +1 -0
- package/dist/lib/releases/release-line-model.js +476 -0
- package/dist/lib/releases/release-line-model.js.map +1 -0
- package/dist/lib/time-zone.d.ts +14 -0
- package/dist/lib/time-zone.d.ts.map +1 -0
- package/dist/lib/time-zone.js +118 -0
- package/dist/lib/time-zone.js.map +1 -0
- package/dist/lib/uuid.d.ts +2 -0
- package/dist/lib/uuid.d.ts.map +1 -0
- package/dist/lib/uuid.js +5 -0
- package/dist/lib/uuid.js.map +1 -0
- package/dist/providers/display-preferences-provider.d.ts +18 -0
- package/dist/providers/display-preferences-provider.d.ts.map +1 -0
- package/dist/providers/display-preferences-provider.js +46 -0
- package/dist/providers/display-preferences-provider.js.map +1 -0
- package/dist/providers/index.d.ts +5 -0
- package/dist/providers/index.d.ts.map +1 -0
- package/dist/providers/index.js +5 -0
- package/dist/providers/index.js.map +1 -0
- package/dist/providers/project-context-provider.d.ts +8 -0
- package/dist/providers/project-context-provider.d.ts.map +1 -0
- package/dist/providers/project-context-provider.js +15 -0
- package/dist/providers/project-context-provider.js.map +1 -0
- package/dist/providers/proofhound-web-provider.d.ts +9 -0
- package/dist/providers/proofhound-web-provider.d.ts.map +1 -0
- package/dist/providers/proofhound-web-provider.js +44 -0
- package/dist/providers/proofhound-web-provider.js.map +1 -0
- package/dist/providers/refine-provider.d.ts +5 -0
- package/dist/providers/refine-provider.d.ts.map +1 -0
- package/dist/providers/refine-provider.js +23 -0
- package/dist/providers/refine-provider.js.map +1 -0
- package/dist/screens/annotations/annotation-detail-page.d.ts +5 -0
- package/dist/screens/annotations/annotation-detail-page.d.ts.map +1 -0
- package/dist/screens/annotations/annotation-detail-page.js +379 -0
- package/dist/screens/annotations/annotation-detail-page.js.map +1 -0
- package/dist/screens/annotations/annotation-new-page.d.ts +4 -0
- package/dist/screens/annotations/annotation-new-page.d.ts.map +1 -0
- package/dist/screens/annotations/annotation-new-page.js +125 -0
- package/dist/screens/annotations/annotation-new-page.js.map +1 -0
- package/dist/screens/annotations/annotation-task-model.d.ts +39 -0
- package/dist/screens/annotations/annotation-task-model.d.ts.map +1 -0
- package/dist/screens/annotations/annotation-task-model.js +88 -0
- package/dist/screens/annotations/annotation-task-model.js.map +1 -0
- package/dist/screens/annotations/annotation-ui.d.ts +33 -0
- package/dist/screens/annotations/annotation-ui.d.ts.map +1 -0
- package/dist/screens/annotations/annotation-ui.js +92 -0
- package/dist/screens/annotations/annotation-ui.js.map +1 -0
- package/dist/screens/annotations/annotations-list-page.d.ts +4 -0
- package/dist/screens/annotations/annotations-list-page.d.ts.map +1 -0
- package/dist/screens/annotations/annotations-list-page.js +82 -0
- package/dist/screens/annotations/annotations-list-page.js.map +1 -0
- package/dist/screens/connectors/connector-detail-page.d.ts +5 -0
- package/dist/screens/connectors/connector-detail-page.d.ts.map +1 -0
- package/dist/screens/connectors/connector-detail-page.js +838 -0
- package/dist/screens/connectors/connector-detail-page.js.map +1 -0
- package/dist/screens/connectors/connector-form-page.d.ts +8 -0
- package/dist/screens/connectors/connector-form-page.d.ts.map +1 -0
- package/dist/screens/connectors/connector-form-page.js +328 -0
- package/dist/screens/connectors/connector-form-page.js.map +1 -0
- package/dist/screens/connectors/connector-peek-dialog.d.ts +8 -0
- package/dist/screens/connectors/connector-peek-dialog.d.ts.map +1 -0
- package/dist/screens/connectors/connector-peek-dialog.js +24 -0
- package/dist/screens/connectors/connector-peek-dialog.js.map +1 -0
- package/dist/screens/connectors/connector-types.d.ts +36 -0
- package/dist/screens/connectors/connector-types.d.ts.map +1 -0
- package/dist/screens/connectors/connector-types.js +48 -0
- package/dist/screens/connectors/connector-types.js.map +1 -0
- package/dist/screens/connectors/connector-ui.d.ts +14 -0
- package/dist/screens/connectors/connector-ui.d.ts.map +1 -0
- package/dist/screens/connectors/connector-ui.js +40 -0
- package/dist/screens/connectors/connector-ui.js.map +1 -0
- package/dist/screens/connectors/connectors-list-page.d.ts +4 -0
- package/dist/screens/connectors/connectors-list-page.d.ts.map +1 -0
- package/dist/screens/connectors/connectors-list-page.js +220 -0
- package/dist/screens/connectors/connectors-list-page.js.map +1 -0
- package/dist/screens/dashboard/dashboard-screen.d.ts +5 -0
- package/dist/screens/dashboard/dashboard-screen.d.ts.map +1 -0
- package/dist/screens/dashboard/dashboard-screen.js +524 -0
- package/dist/screens/dashboard/dashboard-screen.js.map +1 -0
- package/dist/screens/datasets/dataset-detail-helpers.d.ts +10 -0
- package/dist/screens/datasets/dataset-detail-helpers.d.ts.map +1 -0
- package/dist/screens/datasets/dataset-detail-helpers.js +84 -0
- package/dist/screens/datasets/dataset-detail-helpers.js.map +1 -0
- package/dist/screens/datasets/dataset-detail-page.d.ts +6 -0
- package/dist/screens/datasets/dataset-detail-page.d.ts.map +1 -0
- package/dist/screens/datasets/dataset-detail-page.js +379 -0
- package/dist/screens/datasets/dataset-detail-page.js.map +1 -0
- package/dist/screens/datasets/dataset-import-runner.d.ts +17 -0
- package/dist/screens/datasets/dataset-import-runner.d.ts.map +1 -0
- package/dist/screens/datasets/dataset-import-runner.js +33 -0
- package/dist/screens/datasets/dataset-import-runner.js.map +1 -0
- package/dist/screens/datasets/dataset-mappers.d.ts +5 -0
- package/dist/screens/datasets/dataset-mappers.d.ts.map +1 -0
- package/dist/screens/datasets/dataset-mappers.js +79 -0
- package/dist/screens/datasets/dataset-mappers.js.map +1 -0
- package/dist/screens/datasets/dataset-samples-table.d.ts +21 -0
- package/dist/screens/datasets/dataset-samples-table.d.ts.map +1 -0
- package/dist/screens/datasets/dataset-samples-table.js +59 -0
- package/dist/screens/datasets/dataset-samples-table.js.map +1 -0
- package/dist/screens/datasets/dataset-transfer-progress.d.ts +30 -0
- package/dist/screens/datasets/dataset-transfer-progress.d.ts.map +1 -0
- package/dist/screens/datasets/dataset-transfer-progress.js +157 -0
- package/dist/screens/datasets/dataset-transfer-progress.js.map +1 -0
- package/dist/screens/datasets/dataset-types.d.ts +59 -0
- package/dist/screens/datasets/dataset-types.d.ts.map +1 -0
- package/dist/screens/datasets/dataset-types.js +15 -0
- package/dist/screens/datasets/dataset-types.js.map +1 -0
- package/dist/screens/datasets/dataset-ui.d.ts +49 -0
- package/dist/screens/datasets/dataset-ui.d.ts.map +1 -0
- package/dist/screens/datasets/dataset-ui.js +163 -0
- package/dist/screens/datasets/dataset-ui.js.map +1 -0
- package/dist/screens/datasets/dataset-upload-page.d.ts +4 -0
- package/dist/screens/datasets/dataset-upload-page.d.ts.map +1 -0
- package/dist/screens/datasets/dataset-upload-page.js +425 -0
- package/dist/screens/datasets/dataset-upload-page.js.map +1 -0
- package/dist/screens/datasets/dataset-upload-parser.d.ts +21 -0
- package/dist/screens/datasets/dataset-upload-parser.d.ts.map +1 -0
- package/dist/screens/datasets/dataset-upload-parser.js +536 -0
- package/dist/screens/datasets/dataset-upload-parser.js.map +1 -0
- package/dist/screens/datasets/datasets-list-page.d.ts +4 -0
- package/dist/screens/datasets/datasets-list-page.d.ts.map +1 -0
- package/dist/screens/datasets/datasets-list-page.js +249 -0
- package/dist/screens/datasets/datasets-list-page.js.map +1 -0
- package/dist/screens/experiments/experiment-detail-page.d.ts +5 -0
- package/dist/screens/experiments/experiment-detail-page.d.ts.map +1 -0
- package/dist/screens/experiments/experiment-detail-page.js +460 -0
- package/dist/screens/experiments/experiment-detail-page.js.map +1 -0
- package/dist/screens/experiments/experiment-new-page.d.ts +21 -0
- package/dist/screens/experiments/experiment-new-page.d.ts.map +1 -0
- package/dist/screens/experiments/experiment-new-page.js +427 -0
- package/dist/screens/experiments/experiment-new-page.js.map +1 -0
- package/dist/screens/experiments/experiment-option-adapter.d.ts +68 -0
- package/dist/screens/experiments/experiment-option-adapter.d.ts.map +1 -0
- package/dist/screens/experiments/experiment-option-adapter.js +225 -0
- package/dist/screens/experiments/experiment-option-adapter.js.map +1 -0
- package/dist/screens/experiments/experiment-progress.d.ts +5 -0
- package/dist/screens/experiments/experiment-progress.d.ts.map +1 -0
- package/dist/screens/experiments/experiment-progress.js +15 -0
- package/dist/screens/experiments/experiment-progress.js.map +1 -0
- package/dist/screens/experiments/experiment-repeat-href.d.ts +17 -0
- package/dist/screens/experiments/experiment-repeat-href.d.ts.map +1 -0
- package/dist/screens/experiments/experiment-repeat-href.js +32 -0
- package/dist/screens/experiments/experiment-repeat-href.js.map +1 -0
- package/dist/screens/experiments/experiment-theme.d.ts +43 -0
- package/dist/screens/experiments/experiment-theme.d.ts.map +1 -0
- package/dist/screens/experiments/experiment-theme.js +43 -0
- package/dist/screens/experiments/experiment-theme.js.map +1 -0
- package/dist/screens/experiments/experiment-ui.d.ts +36 -0
- package/dist/screens/experiments/experiment-ui.d.ts.map +1 -0
- package/dist/screens/experiments/experiment-ui.js +46 -0
- package/dist/screens/experiments/experiment-ui.js.map +1 -0
- package/dist/screens/experiments/experiment-view-model.d.ts +118 -0
- package/dist/screens/experiments/experiment-view-model.d.ts.map +1 -0
- package/dist/screens/experiments/experiment-view-model.js +114 -0
- package/dist/screens/experiments/experiment-view-model.js.map +1 -0
- package/dist/screens/experiments/experiments-comparison-view.d.ts +10 -0
- package/dist/screens/experiments/experiments-comparison-view.d.ts.map +1 -0
- package/dist/screens/experiments/experiments-comparison-view.js +215 -0
- package/dist/screens/experiments/experiments-comparison-view.js.map +1 -0
- package/dist/screens/experiments/experiments-list-page.d.ts +4 -0
- package/dist/screens/experiments/experiments-list-page.d.ts.map +1 -0
- package/dist/screens/experiments/experiments-list-page.js +364 -0
- package/dist/screens/experiments/experiments-list-page.js.map +1 -0
- package/dist/screens/experiments/experiments-table.d.ts +18 -0
- package/dist/screens/experiments/experiments-table.d.ts.map +1 -0
- package/dist/screens/experiments/experiments-table.js +97 -0
- package/dist/screens/experiments/experiments-table.js.map +1 -0
- package/dist/screens/experiments/run-result-detail-sheet.d.ts +9 -0
- package/dist/screens/experiments/run-result-detail-sheet.d.ts.map +1 -0
- package/dist/screens/experiments/run-result-detail-sheet.js +89 -0
- package/dist/screens/experiments/run-result-detail-sheet.js.map +1 -0
- package/dist/screens/experiments/run-result-display.d.ts +28 -0
- package/dist/screens/experiments/run-result-display.d.ts.map +1 -0
- package/dist/screens/experiments/run-result-display.js +124 -0
- package/dist/screens/experiments/run-result-display.js.map +1 -0
- package/dist/screens/experiments/run-result-labels.d.ts +16 -0
- package/dist/screens/experiments/run-result-labels.d.ts.map +1 -0
- package/dist/screens/experiments/run-result-labels.js +52 -0
- package/dist/screens/experiments/run-result-labels.js.map +1 -0
- package/dist/screens/index.d.ts +29 -0
- package/dist/screens/index.d.ts.map +1 -0
- package/dist/screens/index.js +43 -0
- package/dist/screens/index.js.map +1 -0
- package/dist/screens/models/model-form-page.d.ts +9 -0
- package/dist/screens/models/model-form-page.d.ts.map +1 -0
- package/dist/screens/models/model-form-page.js +876 -0
- package/dist/screens/models/model-form-page.js.map +1 -0
- package/dist/screens/models/model-view-model.d.ts +66 -0
- package/dist/screens/models/model-view-model.d.ts.map +1 -0
- package/dist/screens/models/model-view-model.js +36 -0
- package/dist/screens/models/model-view-model.js.map +1 -0
- package/dist/screens/models/models-list-page.d.ts +4 -0
- package/dist/screens/models/models-list-page.d.ts.map +1 -0
- package/dist/screens/models/models-list-page.js +352 -0
- package/dist/screens/models/models-list-page.js.map +1 -0
- package/dist/screens/models/project-model-adapter.d.ts +5 -0
- package/dist/screens/models/project-model-adapter.d.ts.map +1 -0
- package/dist/screens/models/project-model-adapter.js +63 -0
- package/dist/screens/models/project-model-adapter.js.map +1 -0
- package/dist/screens/monitoring/big-chart-card.d.ts +36 -0
- package/dist/screens/monitoring/big-chart-card.d.ts.map +1 -0
- package/dist/screens/monitoring/big-chart-card.js +32 -0
- package/dist/screens/monitoring/big-chart-card.js.map +1 -0
- package/dist/screens/monitoring/monitoring-filter-strip.d.ts +14 -0
- package/dist/screens/monitoring/monitoring-filter-strip.d.ts.map +1 -0
- package/dist/screens/monitoring/monitoring-filter-strip.js +36 -0
- package/dist/screens/monitoring/monitoring-filter-strip.js.map +1 -0
- package/dist/screens/monitoring/project-monitoring-page.d.ts +9 -0
- package/dist/screens/monitoring/project-monitoring-page.d.ts.map +1 -0
- package/dist/screens/monitoring/project-monitoring-page.js +240 -0
- package/dist/screens/monitoring/project-monitoring-page.js.map +1 -0
- package/dist/screens/monitoring/ranking-cards.d.ts +23 -0
- package/dist/screens/monitoring/ranking-cards.d.ts.map +1 -0
- package/dist/screens/monitoring/ranking-cards.js +78 -0
- package/dist/screens/monitoring/ranking-cards.js.map +1 -0
- package/dist/screens/optimizations/optimization-detail-page.d.ts +5 -0
- package/dist/screens/optimizations/optimization-detail-page.d.ts.map +1 -0
- package/dist/screens/optimizations/optimization-detail-page.js +934 -0
- package/dist/screens/optimizations/optimization-detail-page.js.map +1 -0
- package/dist/screens/optimizations/optimization-mappers.d.ts +56 -0
- package/dist/screens/optimizations/optimization-mappers.d.ts.map +1 -0
- package/dist/screens/optimizations/optimization-mappers.js +142 -0
- package/dist/screens/optimizations/optimization-mappers.js.map +1 -0
- package/dist/screens/optimizations/optimization-new-page.d.ts +8 -0
- package/dist/screens/optimizations/optimization-new-page.d.ts.map +1 -0
- package/dist/screens/optimizations/optimization-new-page.js +732 -0
- package/dist/screens/optimizations/optimization-new-page.js.map +1 -0
- package/dist/screens/optimizations/optimization-theme.d.ts +43 -0
- package/dist/screens/optimizations/optimization-theme.d.ts.map +1 -0
- package/dist/screens/optimizations/optimization-theme.js +46 -0
- package/dist/screens/optimizations/optimization-theme.js.map +1 -0
- package/dist/screens/optimizations/optimization-ui.d.ts +60 -0
- package/dist/screens/optimizations/optimization-ui.d.ts.map +1 -0
- package/dist/screens/optimizations/optimization-ui.js +164 -0
- package/dist/screens/optimizations/optimization-ui.js.map +1 -0
- package/dist/screens/optimizations/optimizations-list-page.d.ts +4 -0
- package/dist/screens/optimizations/optimizations-list-page.d.ts.map +1 -0
- package/dist/screens/optimizations/optimizations-list-page.js +358 -0
- package/dist/screens/optimizations/optimizations-list-page.js.map +1 -0
- package/dist/screens/prompts/prompt-body-editor.d.ts +15 -0
- package/dist/screens/prompts/prompt-body-editor.d.ts.map +1 -0
- package/dist/screens/prompts/prompt-body-editor.js +165 -0
- package/dist/screens/prompts/prompt-body-editor.js.map +1 -0
- package/dist/screens/prompts/prompt-dataset-variables.d.ts +4 -0
- package/dist/screens/prompts/prompt-dataset-variables.d.ts.map +1 -0
- package/dist/screens/prompts/prompt-dataset-variables.js +27 -0
- package/dist/screens/prompts/prompt-dataset-variables.js.map +1 -0
- package/dist/screens/prompts/prompt-detail-page.d.ts +5 -0
- package/dist/screens/prompts/prompt-detail-page.d.ts.map +1 -0
- package/dist/screens/prompts/prompt-detail-page.js +1013 -0
- package/dist/screens/prompts/prompt-detail-page.js.map +1 -0
- package/dist/screens/prompts/prompt-model.d.ts +77 -0
- package/dist/screens/prompts/prompt-model.d.ts.map +1 -0
- package/dist/screens/prompts/prompt-model.js +152 -0
- package/dist/screens/prompts/prompt-model.js.map +1 -0
- package/dist/screens/prompts/prompt-preview-parts.d.ts +12 -0
- package/dist/screens/prompts/prompt-preview-parts.d.ts.map +1 -0
- package/dist/screens/prompts/prompt-preview-parts.js +32 -0
- package/dist/screens/prompts/prompt-preview-parts.js.map +1 -0
- package/dist/screens/prompts/prompt-preview.d.ts +10 -0
- package/dist/screens/prompts/prompt-preview.d.ts.map +1 -0
- package/dist/screens/prompts/prompt-preview.js +16 -0
- package/dist/screens/prompts/prompt-preview.js.map +1 -0
- package/dist/screens/prompts/prompt-ui.d.ts +30 -0
- package/dist/screens/prompts/prompt-ui.d.ts.map +1 -0
- package/dist/screens/prompts/prompt-ui.js +51 -0
- package/dist/screens/prompts/prompt-ui.js.map +1 -0
- package/dist/screens/prompts/prompts-list-page.d.ts +5 -0
- package/dist/screens/prompts/prompts-list-page.d.ts.map +1 -0
- package/dist/screens/prompts/prompts-list-page.js +208 -0
- package/dist/screens/prompts/prompts-list-page.js.map +1 -0
- package/dist/screens/quick-start/quick-start-screen.d.ts +2 -0
- package/dist/screens/quick-start/quick-start-screen.d.ts.map +1 -0
- package/dist/screens/quick-start/quick-start-screen.js +486 -0
- package/dist/screens/quick-start/quick-start-screen.js.map +1 -0
- package/dist/screens/releases/release-line-detail-page.d.ts +5 -0
- package/dist/screens/releases/release-line-detail-page.d.ts.map +1 -0
- package/dist/screens/releases/release-line-detail-page.js +973 -0
- package/dist/screens/releases/release-line-detail-page.js.map +1 -0
- package/dist/screens/releases/release-line-ui.d.ts +30 -0
- package/dist/screens/releases/release-line-ui.d.ts.map +1 -0
- package/dist/screens/releases/release-line-ui.js +197 -0
- package/dist/screens/releases/release-line-ui.js.map +1 -0
- package/dist/screens/releases/release-new-model.d.ts +5 -0
- package/dist/screens/releases/release-new-model.d.ts.map +1 -0
- package/dist/screens/releases/release-new-model.js +18 -0
- package/dist/screens/releases/release-new-model.js.map +1 -0
- package/dist/screens/releases/release-new-page.d.ts +6 -0
- package/dist/screens/releases/release-new-page.d.ts.map +1 -0
- package/dist/screens/releases/release-new-page.js +816 -0
- package/dist/screens/releases/release-new-page.js.map +1 -0
- package/dist/screens/releases/release-topology-canvas.d.ts +13 -0
- package/dist/screens/releases/release-topology-canvas.d.ts.map +1 -0
- package/dist/screens/releases/release-topology-canvas.js +856 -0
- package/dist/screens/releases/release-topology-canvas.js.map +1 -0
- package/dist/screens/releases/releases-list-page.d.ts +4 -0
- package/dist/screens/releases/releases-list-page.d.ts.map +1 -0
- package/dist/screens/releases/releases-list-page.js +86 -0
- package/dist/screens/releases/releases-list-page.js.map +1 -0
- package/dist/screens/settings/settings-page.d.ts +2 -0
- package/dist/screens/settings/settings-page.d.ts.map +1 -0
- package/dist/screens/settings/settings-page.js +250 -0
- package/dist/screens/settings/settings-page.js.map +1 -0
- package/dist/styles/globals.css +961 -0
- package/package.json +84 -0
|
@@ -0,0 +1,486 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import Link from 'next/link';
|
|
4
|
+
import { useRouter } from 'next/navigation';
|
|
5
|
+
import { useMemo, useState } from 'react';
|
|
6
|
+
import { MODEL_PRESET_GROUPS, MODEL_PRESETS, QUICK_START_DEFAULT_CONCURRENCY, QUICK_START_DEFAULT_INITIAL_SAMPLES_PER_ROUND, QUICK_START_DEFAULT_INITIAL_SAMPLING_ROUNDS, QUICK_START_DEFAULT_MAX_ROUNDS, QUICK_START_DEFAULT_RPM_LIMIT, QUICK_START_DEFAULT_SAMPLE_TIMEOUT_SECONDS, QUICK_START_DEFAULT_TEMPERATURE, QUICK_START_DEFAULT_TPM_LIMIT, } from '@proofhound/shared';
|
|
7
|
+
import { AlertTriangle, ArrowLeft, Cable, Check, ChevronRight, FileText, Loader2, Sparkles, Upload, } from 'lucide-react';
|
|
8
|
+
import { Main } from '@proofhound/ui/layout';
|
|
9
|
+
import { ModelProbeStatus, PromptLanguageSelect } from '../../components';
|
|
10
|
+
import { Button, Input, Label, PlatformLoader, Progress, formatProgressLabel, cn, } from '@proofhound/ui';
|
|
11
|
+
import { useCreateQuickStart, useProbeQuickStartDraftModel, useProbeQuickStartExistingModel, useQuickStartModelOptions, } from '../../hooks';
|
|
12
|
+
import { useDelayedLoading } from '../../hooks';
|
|
13
|
+
import { useI18n } from '../../i18n';
|
|
14
|
+
import { getApiErrorMessage, buildProviderTypeOptions } from '../../lib';
|
|
15
|
+
import { FORMAT_CHIPS, PREVIEW_LIMIT, getDatasetNameFromFile, getDisplayValue, inferRole, parseDatasetFile, projectSamplesToColumns, } from '../datasets/dataset-upload-parser';
|
|
16
|
+
const ROLE_OPTIONS = [
|
|
17
|
+
{ role: 'id', labelKey: 'datasets.role.id' },
|
|
18
|
+
{ role: 'text', labelKey: 'datasets.role.text' },
|
|
19
|
+
{ role: 'image', labelKey: 'datasets.role.image' },
|
|
20
|
+
{ role: 'expected', labelKey: 'datasets.role.expected' },
|
|
21
|
+
{ role: 'metadata', labelKey: 'datasets.role.metadata' },
|
|
22
|
+
];
|
|
23
|
+
const DEFAULT_GOAL_TARGET = '0.8';
|
|
24
|
+
const DEFAULT_PRESET = MODEL_PRESETS.find((preset) => preset.featured) ?? MODEL_PRESETS[0];
|
|
25
|
+
const EMPTY_MODEL_OPTIONS = [];
|
|
26
|
+
function presetToDraft(preset) {
|
|
27
|
+
return {
|
|
28
|
+
name: preset.name,
|
|
29
|
+
providerType: preset.providerType,
|
|
30
|
+
providerModelId: preset.providerModelId,
|
|
31
|
+
endpoint: preset.endpoint,
|
|
32
|
+
apiKey: '',
|
|
33
|
+
contextWindowTokens: String(preset.contextWindowTokens),
|
|
34
|
+
rpmLimit: String(preset.rpmLimit),
|
|
35
|
+
tpmLimit: String(preset.tpmLimit),
|
|
36
|
+
concurrencyLimit: String(preset.concurrencyLimit),
|
|
37
|
+
inputPrice: String(preset.inputTokenPricePerMillion),
|
|
38
|
+
outputPrice: String(preset.outputTokenPricePerMillion),
|
|
39
|
+
imageCapability: preset.capabilities.image,
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
function createInitialModelChoice() {
|
|
43
|
+
return { mode: 'draft', presetKey: DEFAULT_PRESET.key, draft: presetToDraft(DEFAULT_PRESET) };
|
|
44
|
+
}
|
|
45
|
+
function imageCapabilitySupportsUrl(capability) {
|
|
46
|
+
return capability === 'url' || capability === 'both';
|
|
47
|
+
}
|
|
48
|
+
function imageCapabilitySupportsBase64(capability) {
|
|
49
|
+
return capability === 'base64' || capability === 'both';
|
|
50
|
+
}
|
|
51
|
+
function toImageCapability(options) {
|
|
52
|
+
if (options.url && options.base64)
|
|
53
|
+
return 'both';
|
|
54
|
+
if (options.url)
|
|
55
|
+
return 'url';
|
|
56
|
+
if (options.base64)
|
|
57
|
+
return 'base64';
|
|
58
|
+
return 'none';
|
|
59
|
+
}
|
|
60
|
+
function runDefaultFromModelLimit(limit, fallback) {
|
|
61
|
+
return limit > 0 ? limit : fallback;
|
|
62
|
+
}
|
|
63
|
+
function SectionNumber({ value }) {
|
|
64
|
+
return (_jsx("span", { className: "flex size-6 shrink-0 items-center justify-center rounded-full bg-primary font-mono text-[11px] font-semibold text-primary-foreground", children: value }));
|
|
65
|
+
}
|
|
66
|
+
function Section({ number, title, hint, children, complete = false, }) {
|
|
67
|
+
const { t } = useI18n();
|
|
68
|
+
return (_jsxs("section", { className: "rounded-lg border bg-card", children: [_jsxs("div", { className: "flex flex-wrap items-center gap-2 border-b px-4 py-3", children: [_jsx(SectionNumber, { value: number }), _jsx("h2", { className: "text-[14.5px] font-semibold", children: title }), complete && (_jsxs("span", { className: "status-running inline-flex items-center gap-1 rounded-full px-2 py-0.5 text-[11px] font-medium", children: [_jsx(Check, { className: "size-3" }), t('quickStart.complete')] })), _jsx("span", { className: "ml-auto text-[11.5px] text-muted-foreground", children: hint })] }), _jsx("div", { className: "p-4", children: children })] }));
|
|
69
|
+
}
|
|
70
|
+
function MiniField({ label, children, required = false, help, aside, }) {
|
|
71
|
+
return (_jsxs("div", { children: [_jsxs("div", { className: "mb-1.5 flex min-h-4 items-center justify-between gap-2", children: [_jsxs(Label, { className: "block text-xs font-medium", children: [label, required && _jsx("span", { className: "text-destructive", children: "*" })] }), aside && _jsx("span", { className: "shrink-0 text-[11px] text-muted-foreground", children: aside })] }), children, help && _jsx("div", { className: "mt-1 text-[11px] leading-relaxed text-muted-foreground", children: help })] }));
|
|
72
|
+
}
|
|
73
|
+
function DraftModelForm({ choice, onChange, }) {
|
|
74
|
+
const { t } = useI18n();
|
|
75
|
+
const [activePresetGroup, setActivePresetGroup] = useState(DEFAULT_PRESET.group);
|
|
76
|
+
const providerOptions = buildProviderTypeOptions(choice.draft.providerType);
|
|
77
|
+
const presets = MODEL_PRESETS.filter((preset) => preset.group === activePresetGroup);
|
|
78
|
+
const patchDraft = (patch) => {
|
|
79
|
+
onChange({ ...choice, draft: { ...choice.draft, ...patch } });
|
|
80
|
+
};
|
|
81
|
+
return (_jsxs("div", { className: "space-y-4", children: [_jsxs("div", { className: "space-y-3", children: [_jsx("div", { className: "flex flex-wrap gap-2", children: MODEL_PRESET_GROUPS.map((group) => (_jsx("button", { type: "button", className: cn('inline-flex h-8 items-center rounded-md border px-3 text-xs font-medium transition-colors', activePresetGroup === group.key
|
|
82
|
+
? 'border-primary bg-primary text-primary-foreground'
|
|
83
|
+
: 'border-border bg-background text-muted-foreground hover:bg-accent hover:text-foreground'), "aria-pressed": activePresetGroup === group.key, onClick: () => setActivePresetGroup(group.key), children: group.label }, group.key))) }), _jsx("div", { className: "grid gap-2 md:grid-cols-2 xl:grid-cols-3", children: presets.map((preset) => {
|
|
84
|
+
const selected = choice.presetKey === preset.key;
|
|
85
|
+
return (_jsxs("button", { type: "button", className: cn('flex min-h-[94px] flex-col rounded-md border bg-background p-3 text-left transition-colors hover:border-ring/60 hover:bg-accent/45', selected && 'border-primary bg-primary/5'), "aria-pressed": selected, onClick: () => onChange({ mode: 'draft', presetKey: preset.key, draft: presetToDraft(preset) }), children: [_jsxs("span", { className: "flex items-start justify-between gap-2", children: [_jsxs("span", { className: "min-w-0", children: [_jsx("span", { className: "block truncate text-sm font-semibold", children: preset.name }), _jsx("span", { className: "mt-0.5 block truncate font-mono text-[11px] text-muted-foreground", children: preset.providerModelId })] }), preset.featured && _jsx(Sparkles, { className: "size-4 shrink-0 text-[var(--status-canary-fg)]" })] }), _jsxs("span", { className: "mt-auto pt-2 text-[11px] text-muted-foreground", children: [preset.contextWindowTokens.toLocaleString(), " ", t('quickStart.model.tokens')] })] }, preset.key));
|
|
86
|
+
}) })] }), _jsxs("div", { className: "grid gap-3 md:grid-cols-2", children: [_jsx(MiniField, { label: t('models.form.name'), required: true, children: _jsx(Input, { value: choice.draft.name, onChange: (event) => patchDraft({ name: event.target.value }) }) }), _jsx(MiniField, { label: t('models.form.provider'), required: true, children: _jsx("select", { value: choice.draft.providerType, onChange: (event) => patchDraft({ providerType: event.target.value }), className: "h-9 w-full rounded-md border bg-background px-3 text-sm outline-none focus-visible:ring-2 focus-visible:ring-ring", children: providerOptions.map((option) => (_jsx("option", { value: option.value, children: option.label }, option.value))) }) }), _jsx(MiniField, { label: t('models.form.modelId'), required: true, children: _jsx(Input, { value: choice.draft.providerModelId, onChange: (event) => patchDraft({ providerModelId: event.target.value }) }) }), _jsx(MiniField, { label: t('models.form.endpoint'), required: true, children: _jsx(Input, { value: choice.draft.endpoint, onChange: (event) => patchDraft({ endpoint: event.target.value }) }) }), _jsx(MiniField, { label: "API Key", required: true, children: _jsx(Input, { type: "password", value: choice.draft.apiKey, onChange: (event) => patchDraft({ apiKey: event.target.value }), placeholder: "sk-..." }) }), _jsx(MiniField, { label: t('models.form.contextWindow'), children: _jsx(Input, { inputMode: "numeric", value: choice.draft.contextWindowTokens, onChange: (event) => patchDraft({ contextWindowTokens: event.target.value }) }) })] }), _jsxs("details", { className: "rounded-md border bg-background", children: [_jsx("summary", { className: "cursor-pointer select-none px-3 py-2 text-xs font-medium text-muted-foreground", children: t('quickStart.model.advanced') }), _jsxs("div", { className: "grid gap-3 border-t p-3 md:grid-cols-3", children: [_jsx(MiniField, { label: "RPM", children: _jsx(Input, { inputMode: "numeric", value: choice.draft.rpmLimit, onChange: (event) => patchDraft({ rpmLimit: event.target.value }) }) }), _jsx(MiniField, { label: "TPM", children: _jsx(Input, { inputMode: "numeric", value: choice.draft.tpmLimit, onChange: (event) => patchDraft({ tpmLimit: event.target.value }) }) }), _jsx(MiniField, { label: t('quickStart.advanced.concurrency'), children: _jsx(Input, { inputMode: "numeric", value: choice.draft.concurrencyLimit, onChange: (event) => patchDraft({ concurrencyLimit: event.target.value }) }) }), _jsx(MiniField, { label: t('models.form.inputTokenPrice'), children: _jsx(Input, { inputMode: "decimal", value: choice.draft.inputPrice, onChange: (event) => patchDraft({ inputPrice: event.target.value }) }) }), _jsx(MiniField, { label: t('models.form.outputTokenPrice'), children: _jsx(Input, { inputMode: "decimal", value: choice.draft.outputPrice, onChange: (event) => patchDraft({ outputPrice: event.target.value }) }) }), _jsx(MiniField, { label: t('models.form.supportsImages'), help: t('quickStart.model.imageCapabilityHelp'), children: _jsxs("div", { className: "grid gap-2", children: [_jsxs("label", { className: "flex cursor-pointer items-start gap-2 rounded-md border bg-background px-3 py-2 text-sm hover:bg-accent/45", children: [_jsx("input", { type: "checkbox", checked: imageCapabilitySupportsUrl(choice.draft.imageCapability), onChange: (event) => patchDraft({
|
|
87
|
+
imageCapability: toImageCapability({
|
|
88
|
+
url: event.target.checked,
|
|
89
|
+
base64: imageCapabilitySupportsBase64(choice.draft.imageCapability),
|
|
90
|
+
}),
|
|
91
|
+
}), className: "mt-0.5 size-4 accent-primary" }), _jsxs("span", { className: "min-w-0", children: [_jsx("span", { className: "block font-medium", children: t('models.form.imageUrl') }), _jsx("span", { className: "block text-[11px] leading-relaxed text-muted-foreground", children: t('models.form.imageUrlHelp') })] })] }), _jsxs("label", { className: "flex cursor-pointer items-start gap-2 rounded-md border bg-background px-3 py-2 text-sm hover:bg-accent/45", children: [_jsx("input", { type: "checkbox", checked: imageCapabilitySupportsBase64(choice.draft.imageCapability), onChange: (event) => patchDraft({
|
|
92
|
+
imageCapability: toImageCapability({
|
|
93
|
+
url: imageCapabilitySupportsUrl(choice.draft.imageCapability),
|
|
94
|
+
base64: event.target.checked,
|
|
95
|
+
}),
|
|
96
|
+
}), className: "mt-0.5 size-4 accent-primary" }), _jsxs("span", { className: "min-w-0", children: [_jsx("span", { className: "block font-medium", children: t('models.form.imageBase64') }), _jsx("span", { className: "block text-[11px] leading-relaxed text-muted-foreground", children: t('models.form.imageBase64Help') })] })] })] }) })] })] })] }));
|
|
97
|
+
}
|
|
98
|
+
function ModelPicker({ title, choice, onChange, modelOptions, }) {
|
|
99
|
+
const { t } = useI18n();
|
|
100
|
+
const existingProbe = useProbeQuickStartExistingModel();
|
|
101
|
+
const draftProbe = useProbeQuickStartDraftModel();
|
|
102
|
+
const [feedback, setFeedback] = useState(null);
|
|
103
|
+
const selectedExisting = choice.mode === 'existing' ? choice.modelId : '';
|
|
104
|
+
const draftChoice = choice.mode === 'draft' ? choice : createInitialModelChoice();
|
|
105
|
+
const testConnectivity = () => {
|
|
106
|
+
const startedAt = Date.now();
|
|
107
|
+
setFeedback({ status: 'running', durationMs: null });
|
|
108
|
+
if (choice.mode === 'existing') {
|
|
109
|
+
if (!choice.modelId) {
|
|
110
|
+
setFeedback({ status: 'failed', durationMs: 0, errorMessage: t('quickStart.model.required') });
|
|
111
|
+
return;
|
|
112
|
+
}
|
|
113
|
+
existingProbe.mutate(choice.modelId, {
|
|
114
|
+
onSuccess: (result) => setFeedback({
|
|
115
|
+
status: result.status === 'success' ? 'success' : 'failed',
|
|
116
|
+
durationMs: result.durationMs,
|
|
117
|
+
errorMessage: result.error,
|
|
118
|
+
}),
|
|
119
|
+
onError: (error) => setFeedback({
|
|
120
|
+
status: 'failed',
|
|
121
|
+
durationMs: Date.now() - startedAt,
|
|
122
|
+
errorMessage: getApiErrorMessage(error),
|
|
123
|
+
}),
|
|
124
|
+
});
|
|
125
|
+
return;
|
|
126
|
+
}
|
|
127
|
+
const payload = readDraftModelPayload(choice.draft);
|
|
128
|
+
if (!payload.ok) {
|
|
129
|
+
setFeedback({ status: 'failed', durationMs: 0, errorMessage: t(payload.errorKey) });
|
|
130
|
+
return;
|
|
131
|
+
}
|
|
132
|
+
draftProbe.mutate(payload.body, {
|
|
133
|
+
onSuccess: (result) => setFeedback({
|
|
134
|
+
status: result.status === 'success' ? 'success' : 'failed',
|
|
135
|
+
durationMs: result.durationMs,
|
|
136
|
+
errorMessage: result.error,
|
|
137
|
+
}),
|
|
138
|
+
onError: (error) => setFeedback({
|
|
139
|
+
status: 'failed',
|
|
140
|
+
durationMs: Date.now() - startedAt,
|
|
141
|
+
errorMessage: getApiErrorMessage(error),
|
|
142
|
+
}),
|
|
143
|
+
});
|
|
144
|
+
};
|
|
145
|
+
const isTesting = existingProbe.isPending || draftProbe.isPending;
|
|
146
|
+
return (_jsxs("div", { className: "space-y-4 rounded-md border bg-background p-3", children: [_jsxs("div", { className: "flex flex-wrap items-center gap-2", children: [_jsxs("div", { className: "min-w-0 flex-1", children: [_jsx("div", { className: "text-sm font-semibold", children: title }), _jsx("div", { className: "text-[11.5px] text-muted-foreground", children: t('quickStart.model.help') })] }), _jsxs("div", { className: "inline-flex rounded-md border bg-muted p-0.5", children: [_jsx("button", { type: "button", className: cn('h-7 rounded px-2.5 text-xs font-medium transition-colors', choice.mode === 'existing' ? 'bg-background shadow-sm' : 'text-muted-foreground hover:text-foreground'), onClick: () => onChange({ mode: 'existing', modelId: modelOptions[0]?.id ?? '' }), children: t('quickStart.model.existing') }), _jsx("button", { type: "button", className: cn('h-7 rounded px-2.5 text-xs font-medium transition-colors', choice.mode === 'draft' ? 'bg-background shadow-sm' : 'text-muted-foreground hover:text-foreground'), onClick: () => onChange(createInitialModelChoice()), children: t('quickStart.model.preset') })] })] }), choice.mode === 'existing' ? (_jsxs("div", { className: "grid gap-3", children: [_jsx(MiniField, { label: t('quickStart.model.existing'), required: true, children: _jsxs("select", { value: selectedExisting, onChange: (event) => onChange({ mode: 'existing', modelId: event.target.value }), className: "h-9 w-full rounded-md border bg-background px-3 text-sm outline-none focus-visible:ring-2 focus-visible:ring-ring", children: [modelOptions.length === 0 && _jsx("option", { value: "", children: t('quickStart.model.noExisting') }), modelOptions.map((model) => (_jsxs("option", { value: model.id, children: [model.name, " \u00B7 ", model.providerModelId] }, model.id)))] }) }), modelOptions.length === 0 && (_jsx("div", { className: "rounded-md border border-dashed bg-muted/30 px-3 py-3 text-[12px] text-muted-foreground", children: t('quickStart.model.noExistingHelp') }))] })) : (_jsx(DraftModelForm, { choice: draftChoice, onChange: (nextChoice) => onChange(nextChoice) })), _jsxs("div", { className: "flex flex-wrap items-center gap-2", children: [_jsxs(Button, { type: "button", variant: "outline", size: "sm", disabled: isTesting, onClick: testConnectivity, children: [isTesting ? _jsx(Loader2, { className: "size-4 animate-spin" }) : _jsx(Cable, { className: "size-4" }), t('quickStart.model.test')] }), _jsx(ModelProbeStatus, { feedback: feedback, className: "flex-1" })] })] }));
|
|
147
|
+
}
|
|
148
|
+
function readPositiveInteger(raw) {
|
|
149
|
+
const value = Number(raw);
|
|
150
|
+
return Number.isInteger(value) && value > 0 ? value : null;
|
|
151
|
+
}
|
|
152
|
+
function readModelRateLimit(raw) {
|
|
153
|
+
const value = Number(raw);
|
|
154
|
+
return Number.isInteger(value) && (value === -1 || value > 0) ? value : null;
|
|
155
|
+
}
|
|
156
|
+
function readNonnegativeNumber(raw) {
|
|
157
|
+
const value = Number(raw);
|
|
158
|
+
return Number.isFinite(value) && value >= 0 ? value : null;
|
|
159
|
+
}
|
|
160
|
+
function readDraftModelPayload(draft) {
|
|
161
|
+
const required = [draft.name, draft.providerType, draft.providerModelId, draft.endpoint, draft.apiKey];
|
|
162
|
+
if (required.some((value) => value.trim().length === 0)) {
|
|
163
|
+
return { ok: false, errorKey: 'common.formError.requiredMissing' };
|
|
164
|
+
}
|
|
165
|
+
const contextWindowTokens = readPositiveInteger(draft.contextWindowTokens);
|
|
166
|
+
const rpmLimit = readModelRateLimit(draft.rpmLimit);
|
|
167
|
+
const tpmLimit = readModelRateLimit(draft.tpmLimit);
|
|
168
|
+
const concurrencyLimit = readPositiveInteger(draft.concurrencyLimit);
|
|
169
|
+
const inputPrice = readNonnegativeNumber(draft.inputPrice);
|
|
170
|
+
const outputPrice = readNonnegativeNumber(draft.outputPrice);
|
|
171
|
+
if (contextWindowTokens === null ||
|
|
172
|
+
rpmLimit === null ||
|
|
173
|
+
tpmLimit === null ||
|
|
174
|
+
concurrencyLimit === null ||
|
|
175
|
+
inputPrice === null ||
|
|
176
|
+
outputPrice === null) {
|
|
177
|
+
return { ok: false, errorKey: 'common.formError.invalidNumber' };
|
|
178
|
+
}
|
|
179
|
+
return {
|
|
180
|
+
ok: true,
|
|
181
|
+
body: {
|
|
182
|
+
name: draft.name.trim(),
|
|
183
|
+
providerType: draft.providerType.trim(),
|
|
184
|
+
providerModelId: draft.providerModelId.trim(),
|
|
185
|
+
endpoint: draft.endpoint.trim(),
|
|
186
|
+
apiKey: draft.apiKey,
|
|
187
|
+
contextWindowTokens,
|
|
188
|
+
rpm: { limit: rpmLimit },
|
|
189
|
+
tpm: { limit: tpmLimit },
|
|
190
|
+
concurrency: { limit: concurrencyLimit },
|
|
191
|
+
autoConcurrency: true,
|
|
192
|
+
pricing: { inputPerMillion: inputPrice, outputPerMillion: outputPrice },
|
|
193
|
+
capabilities: { image: draft.imageCapability },
|
|
194
|
+
extraBody: {},
|
|
195
|
+
},
|
|
196
|
+
};
|
|
197
|
+
}
|
|
198
|
+
function buildModelRef(choice) {
|
|
199
|
+
if (choice.mode === 'existing') {
|
|
200
|
+
return choice.modelId
|
|
201
|
+
? { ok: true, ref: { kind: 'existing', modelId: choice.modelId } }
|
|
202
|
+
: { ok: false, errorKey: 'quickStart.model.required' };
|
|
203
|
+
}
|
|
204
|
+
const payload = readDraftModelPayload(choice.draft);
|
|
205
|
+
if (!payload.ok)
|
|
206
|
+
return payload;
|
|
207
|
+
return { ok: true, ref: { kind: 'draft', model: payload.body } };
|
|
208
|
+
}
|
|
209
|
+
function getModelRunProfile(choice, modelOptions) {
|
|
210
|
+
if (choice.mode === 'existing') {
|
|
211
|
+
const model = modelOptions.find((option) => option.id === choice.modelId);
|
|
212
|
+
if (!model)
|
|
213
|
+
return null;
|
|
214
|
+
return {
|
|
215
|
+
name: model.name,
|
|
216
|
+
rpmLimit: model.rpm.limit,
|
|
217
|
+
tpmLimit: model.tpm.limit,
|
|
218
|
+
concurrencyLimit: model.concurrency.limit,
|
|
219
|
+
signature: `existing:${model.id}:${model.rpm.limit}:${model.tpm.limit}:${model.concurrency.limit}`,
|
|
220
|
+
};
|
|
221
|
+
}
|
|
222
|
+
const rpmLimit = readModelRateLimit(choice.draft.rpmLimit);
|
|
223
|
+
const tpmLimit = readModelRateLimit(choice.draft.tpmLimit);
|
|
224
|
+
const concurrencyLimit = readPositiveInteger(choice.draft.concurrencyLimit);
|
|
225
|
+
if (rpmLimit === null || tpmLimit === null || concurrencyLimit === null)
|
|
226
|
+
return null;
|
|
227
|
+
return {
|
|
228
|
+
name: choice.draft.name.trim() || choice.draft.providerModelId.trim() || 'model',
|
|
229
|
+
rpmLimit,
|
|
230
|
+
tpmLimit,
|
|
231
|
+
concurrencyLimit,
|
|
232
|
+
signature: `draft:${rpmLimit}:${tpmLimit}:${concurrencyLimit}`,
|
|
233
|
+
};
|
|
234
|
+
}
|
|
235
|
+
function formatTemplate(template, values) {
|
|
236
|
+
return Object.entries(values).reduce((text, [key, value]) => text.replaceAll(`{${key}}`, String(value)), template);
|
|
237
|
+
}
|
|
238
|
+
function formatLimitValue(value, unlimitedLabel) {
|
|
239
|
+
return value > 0 ? value.toLocaleString() : unlimitedLabel;
|
|
240
|
+
}
|
|
241
|
+
function isAbovePositiveLimit(value, limit) {
|
|
242
|
+
return value !== null && limit > 0 && value > limit;
|
|
243
|
+
}
|
|
244
|
+
function normalizeExpectedRoles(roles, preferredColumn) {
|
|
245
|
+
let expectedColumn = preferredColumn && roles[preferredColumn] === 'expected' ? preferredColumn : null;
|
|
246
|
+
expectedColumn ??= Object.entries(roles).find(([, role]) => role === 'expected')?.[0] ?? null;
|
|
247
|
+
return Object.fromEntries(Object.entries(roles).map(([column, role]) => [
|
|
248
|
+
column,
|
|
249
|
+
role === 'expected' && column !== expectedColumn ? 'metadata' : role,
|
|
250
|
+
]));
|
|
251
|
+
}
|
|
252
|
+
function getFileStem(fileName) {
|
|
253
|
+
return fileName
|
|
254
|
+
.replace(/\.[^.]+$/u, '')
|
|
255
|
+
.trim()
|
|
256
|
+
.slice(0, 80);
|
|
257
|
+
}
|
|
258
|
+
function getDefaultOptimizationName(language, stem) {
|
|
259
|
+
return language === 'en-US' ? `${stem} Optimization #1` : `${stem} 优化 #1`;
|
|
260
|
+
}
|
|
261
|
+
function getParseErrorKey(parseError) {
|
|
262
|
+
if (parseError === 'unsupported_file_type')
|
|
263
|
+
return 'datasets.upload.unsupportedFile';
|
|
264
|
+
return 'datasets.upload.parseFailed';
|
|
265
|
+
}
|
|
266
|
+
export function QuickStartScreen() {
|
|
267
|
+
const { t } = useI18n();
|
|
268
|
+
const router = useRouter();
|
|
269
|
+
const modelOptionsQuery = useQuickStartModelOptions();
|
|
270
|
+
const createQuickStart = useCreateQuickStart();
|
|
271
|
+
const [optimizationName, setOptimizationName] = useState('');
|
|
272
|
+
const [taskDescription, setTaskDescription] = useState('');
|
|
273
|
+
const [promptLanguage, setPromptLanguage] = useState('zh-CN');
|
|
274
|
+
const [selectedFile, setSelectedFile] = useState(null);
|
|
275
|
+
const [parsedFile, setParsedFile] = useState(null);
|
|
276
|
+
const [fieldRoles, setFieldRoles] = useState({});
|
|
277
|
+
const [parseError, setParseError] = useState(null);
|
|
278
|
+
const [experimentChoice, setExperimentChoice] = useState(() => createInitialModelChoice());
|
|
279
|
+
const [analysisSameAsExperiment, setAnalysisSameAsExperiment] = useState(true);
|
|
280
|
+
const [analysisChoice, setAnalysisChoice] = useState(() => createInitialModelChoice());
|
|
281
|
+
const [goalTarget, setGoalTarget] = useState(DEFAULT_GOAL_TARGET);
|
|
282
|
+
const [maxRounds, setMaxRounds] = useState(String(QUICK_START_DEFAULT_MAX_ROUNDS));
|
|
283
|
+
const [samplingRounds, setSamplingRounds] = useState(String(QUICK_START_DEFAULT_INITIAL_SAMPLING_ROUNDS));
|
|
284
|
+
const [samplesPerRound, setSamplesPerRound] = useState(String(QUICK_START_DEFAULT_INITIAL_SAMPLES_PER_ROUND));
|
|
285
|
+
const [temperature, setTemperature] = useState(String(QUICK_START_DEFAULT_TEMPERATURE));
|
|
286
|
+
const [rpmLimit, setRpmLimit] = useState(String(runDefaultFromModelLimit(DEFAULT_PRESET.rpmLimit, QUICK_START_DEFAULT_RPM_LIMIT)));
|
|
287
|
+
const [tpmLimit, setTpmLimit] = useState(String(runDefaultFromModelLimit(DEFAULT_PRESET.tpmLimit, QUICK_START_DEFAULT_TPM_LIMIT)));
|
|
288
|
+
const [concurrency, setConcurrency] = useState(String(runDefaultFromModelLimit(DEFAULT_PRESET.concurrencyLimit, QUICK_START_DEFAULT_CONCURRENCY)));
|
|
289
|
+
const [sampleTimeoutSeconds, setSampleTimeoutSeconds] = useState(String(QUICK_START_DEFAULT_SAMPLE_TIMEOUT_SECONDS));
|
|
290
|
+
const [submitError, setSubmitError] = useState(null);
|
|
291
|
+
const [isDraggingDataset, setIsDraggingDataset] = useState(false);
|
|
292
|
+
const previewRows = useMemo(() => parsedFile?.samples.slice(0, PREVIEW_LIMIT) ?? [], [parsedFile]);
|
|
293
|
+
const selectedFileStem = selectedFile
|
|
294
|
+
? getFileStem(getDatasetNameFromFile(selectedFile.name) || getFileStem(selectedFile.name))
|
|
295
|
+
: null;
|
|
296
|
+
const modelOptions = modelOptionsQuery.data?.data ?? EMPTY_MODEL_OPTIONS;
|
|
297
|
+
const selectedRunProfile = useMemo(() => getModelRunProfile(experimentChoice, modelOptions), [experimentChoice, modelOptions]);
|
|
298
|
+
const expectedCount = Object.values(fieldRoles).filter((role) => role === 'expected').length;
|
|
299
|
+
const inputFieldCount = Object.values(fieldRoles).filter((role) => role === 'text' || role === 'image').length;
|
|
300
|
+
const datasetReady = parsedFile !== null && selectedFile !== null && expectedCount === 1 && inputFieldCount > 0;
|
|
301
|
+
const rpmValue = readPositiveInteger(rpmLimit);
|
|
302
|
+
const tpmValue = readPositiveInteger(tpmLimit);
|
|
303
|
+
const concurrencyValue = readPositiveInteger(concurrency);
|
|
304
|
+
const runConfigWithinModelLimits = selectedRunProfile === null ||
|
|
305
|
+
(!isAbovePositiveLimit(rpmValue, selectedRunProfile.rpmLimit) &&
|
|
306
|
+
!isAbovePositiveLimit(tpmValue, selectedRunProfile.tpmLimit) &&
|
|
307
|
+
!isAbovePositiveLimit(concurrencyValue, selectedRunProfile.concurrencyLimit));
|
|
308
|
+
const configReady = taskDescription.trim().length > 0 &&
|
|
309
|
+
readPositiveInteger(maxRounds) !== null &&
|
|
310
|
+
readPositiveInteger(samplingRounds) !== null &&
|
|
311
|
+
readPositiveInteger(samplesPerRound) !== null &&
|
|
312
|
+
readNonnegativeNumber(temperature) !== null &&
|
|
313
|
+
rpmValue !== null &&
|
|
314
|
+
tpmValue !== null &&
|
|
315
|
+
concurrencyValue !== null &&
|
|
316
|
+
readPositiveInteger(sampleTimeoutSeconds) !== null &&
|
|
317
|
+
readNonnegativeNumber(goalTarget) !== null &&
|
|
318
|
+
runConfigWithinModelLimits;
|
|
319
|
+
const canSubmit = datasetReady && configReady && !createQuickStart.isPending;
|
|
320
|
+
const parseErrorKey = getParseErrorKey(parseError);
|
|
321
|
+
const optionsLoading = useDelayedLoading(modelOptionsQuery.isLoading && !modelOptionsQuery.data);
|
|
322
|
+
if (optionsLoading) {
|
|
323
|
+
return (_jsx(Main, { className: "gap-0 bg-muted/35 p-0", children: _jsx("div", { className: "mx-auto w-full max-w-[1360px] px-4 py-6 pb-28 sm:px-6 lg:px-8", "data-testid": "quick-start-page", children: _jsx(PlatformLoader, { className: "min-h-[560px]" }) }) }));
|
|
324
|
+
}
|
|
325
|
+
const applyExperimentRunProfile = (profile) => {
|
|
326
|
+
setRpmLimit(String(runDefaultFromModelLimit(profile.rpmLimit, QUICK_START_DEFAULT_RPM_LIMIT)));
|
|
327
|
+
setTpmLimit(String(runDefaultFromModelLimit(profile.tpmLimit, QUICK_START_DEFAULT_TPM_LIMIT)));
|
|
328
|
+
setConcurrency(String(runDefaultFromModelLimit(profile.concurrencyLimit, QUICK_START_DEFAULT_CONCURRENCY)));
|
|
329
|
+
};
|
|
330
|
+
const handleExperimentChoiceChange = (nextChoice) => {
|
|
331
|
+
const previousSignature = selectedRunProfile?.signature ?? null;
|
|
332
|
+
const nextProfile = getModelRunProfile(nextChoice, modelOptions);
|
|
333
|
+
setExperimentChoice(nextChoice);
|
|
334
|
+
if (nextProfile && nextProfile.signature !== previousSignature) {
|
|
335
|
+
applyExperimentRunProfile(nextProfile);
|
|
336
|
+
}
|
|
337
|
+
};
|
|
338
|
+
const upperLimitLabel = (limit) => formatTemplate(t('quickStart.advanced.upperLimit'), {
|
|
339
|
+
limit: limit === null || limit === undefined ? '-' : formatLimitValue(limit, t('quickStart.advanced.unlimited')),
|
|
340
|
+
});
|
|
341
|
+
const handlePromptLanguageChange = (nextLanguage) => {
|
|
342
|
+
const previousLanguage = promptLanguage;
|
|
343
|
+
setPromptLanguage(nextLanguage);
|
|
344
|
+
if (!selectedFileStem)
|
|
345
|
+
return;
|
|
346
|
+
const previousOptimizationDefault = getDefaultOptimizationName(previousLanguage, selectedFileStem);
|
|
347
|
+
setOptimizationName((current) => current.length === 0 || current === previousOptimizationDefault
|
|
348
|
+
? getDefaultOptimizationName(nextLanguage, selectedFileStem)
|
|
349
|
+
: current);
|
|
350
|
+
};
|
|
351
|
+
const handleDatasetFile = async (file) => {
|
|
352
|
+
setSelectedFile(null);
|
|
353
|
+
setParsedFile(null);
|
|
354
|
+
setParseError(null);
|
|
355
|
+
try {
|
|
356
|
+
const parsed = await parseDatasetFile(file);
|
|
357
|
+
setSelectedFile(file);
|
|
358
|
+
setParsedFile(parsed);
|
|
359
|
+
setFieldRoles(normalizeExpectedRoles(Object.fromEntries(parsed.columns.map((column) => [column, inferRole(column, parsed.samples[0]?.[column])]))));
|
|
360
|
+
const stem = getFileStem(getDatasetNameFromFile(file.name) || getFileStem(file.name));
|
|
361
|
+
setOptimizationName((current) => current || getDefaultOptimizationName(promptLanguage, stem));
|
|
362
|
+
}
|
|
363
|
+
catch (error) {
|
|
364
|
+
setParseError(error instanceof Error ? error.message : 'parse_failed');
|
|
365
|
+
setFieldRoles({});
|
|
366
|
+
}
|
|
367
|
+
};
|
|
368
|
+
const updateFileInput = async (event) => {
|
|
369
|
+
const file = event.target.files?.[0] ?? null;
|
|
370
|
+
event.target.value = '';
|
|
371
|
+
if (!file)
|
|
372
|
+
return;
|
|
373
|
+
await handleDatasetFile(file);
|
|
374
|
+
};
|
|
375
|
+
const handleDatasetDragOver = (event) => {
|
|
376
|
+
event.preventDefault();
|
|
377
|
+
event.dataTransfer.dropEffect = 'copy';
|
|
378
|
+
setIsDraggingDataset(true);
|
|
379
|
+
};
|
|
380
|
+
const handleDatasetDragLeave = (event) => {
|
|
381
|
+
if (!event.currentTarget.contains(event.relatedTarget)) {
|
|
382
|
+
setIsDraggingDataset(false);
|
|
383
|
+
}
|
|
384
|
+
};
|
|
385
|
+
const handleDatasetDrop = async (event) => {
|
|
386
|
+
event.preventDefault();
|
|
387
|
+
setIsDraggingDataset(false);
|
|
388
|
+
const file = event.dataTransfer.files?.[0] ?? null;
|
|
389
|
+
if (!file)
|
|
390
|
+
return;
|
|
391
|
+
await handleDatasetFile(file);
|
|
392
|
+
};
|
|
393
|
+
const submit = async () => {
|
|
394
|
+
setSubmitError(null);
|
|
395
|
+
if (!parsedFile || !selectedFile || !canSubmit)
|
|
396
|
+
return;
|
|
397
|
+
const experimentRef = buildModelRef(experimentChoice);
|
|
398
|
+
if (!experimentRef.ok) {
|
|
399
|
+
setSubmitError(t(experimentRef.errorKey));
|
|
400
|
+
return;
|
|
401
|
+
}
|
|
402
|
+
const analysisRef = analysisSameAsExperiment ? experimentRef : buildModelRef(analysisChoice);
|
|
403
|
+
if (!analysisRef.ok) {
|
|
404
|
+
setSubmitError(t(analysisRef.errorKey));
|
|
405
|
+
return;
|
|
406
|
+
}
|
|
407
|
+
const maxRoundsValue = readPositiveInteger(maxRounds);
|
|
408
|
+
const samplingRoundsValue = readPositiveInteger(samplingRounds);
|
|
409
|
+
const samplesPerRoundValue = readPositiveInteger(samplesPerRound);
|
|
410
|
+
const temperatureValue = readNonnegativeNumber(temperature);
|
|
411
|
+
const rpmValue = readPositiveInteger(rpmLimit);
|
|
412
|
+
const tpmValue = readPositiveInteger(tpmLimit);
|
|
413
|
+
const concurrencyValue = readPositiveInteger(concurrency);
|
|
414
|
+
const timeoutValue = readPositiveInteger(sampleTimeoutSeconds);
|
|
415
|
+
const goalTargetValue = readNonnegativeNumber(goalTarget);
|
|
416
|
+
if (maxRoundsValue === null ||
|
|
417
|
+
samplingRoundsValue === null ||
|
|
418
|
+
samplesPerRoundValue === null ||
|
|
419
|
+
temperatureValue === null ||
|
|
420
|
+
rpmValue === null ||
|
|
421
|
+
tpmValue === null ||
|
|
422
|
+
concurrencyValue === null ||
|
|
423
|
+
timeoutValue === null ||
|
|
424
|
+
goalTargetValue === null) {
|
|
425
|
+
setSubmitError(t('common.formError.invalidNumber'));
|
|
426
|
+
return;
|
|
427
|
+
}
|
|
428
|
+
if (!runConfigWithinModelLimits) {
|
|
429
|
+
setSubmitError(t('quickStart.advanced.limitExceeded'));
|
|
430
|
+
return;
|
|
431
|
+
}
|
|
432
|
+
const columns = parsedFile.columns;
|
|
433
|
+
const body = {
|
|
434
|
+
optimizationName: optimizationName.trim() || undefined,
|
|
435
|
+
projectDescription: taskDescription.trim(),
|
|
436
|
+
taskDescription: taskDescription.trim(),
|
|
437
|
+
promptLanguage,
|
|
438
|
+
dataset: {
|
|
439
|
+
name: getDatasetNameFromFile(selectedFile.name) || getFileStem(selectedFile.name),
|
|
440
|
+
description: taskDescription.trim(),
|
|
441
|
+
uploadSource: {
|
|
442
|
+
fileName: selectedFile.name,
|
|
443
|
+
fileSizeBytes: selectedFile.size,
|
|
444
|
+
contentType: selectedFile.type || undefined,
|
|
445
|
+
},
|
|
446
|
+
fieldMappings: columns.map((column) => ({ name: column, role: fieldRoles[column] ?? 'metadata' })),
|
|
447
|
+
samples: projectSamplesToColumns(parsedFile.samples, columns),
|
|
448
|
+
},
|
|
449
|
+
experimentModel: experimentRef.ref,
|
|
450
|
+
analysisModel: analysisRef.ref,
|
|
451
|
+
goals: [{ metric: 'accuracy', comparator: 'gte', target: Math.min(1, goalTargetValue), scope: 'overall' }],
|
|
452
|
+
loopLimits: { maxRounds: maxRoundsValue, stopAfterNoImprovementRounds: 0 },
|
|
453
|
+
runConfig: {
|
|
454
|
+
temperature: Math.min(2, temperatureValue),
|
|
455
|
+
rpmLimit: rpmValue,
|
|
456
|
+
tpmLimit: tpmValue,
|
|
457
|
+
concurrency: concurrencyValue,
|
|
458
|
+
sampleTimeoutSeconds: timeoutValue,
|
|
459
|
+
},
|
|
460
|
+
strategyConfig: {
|
|
461
|
+
initialSamplingRounds: samplingRoundsValue,
|
|
462
|
+
initialSamplesPerRound: samplesPerRoundValue,
|
|
463
|
+
},
|
|
464
|
+
};
|
|
465
|
+
try {
|
|
466
|
+
const result = await createQuickStart.mutateAsync(body);
|
|
467
|
+
router.push(`/optimizations/${result.optimizationId}`);
|
|
468
|
+
}
|
|
469
|
+
catch (error) {
|
|
470
|
+
setSubmitError(getApiErrorMessage(error) ?? t('common.loadFailedRefresh'));
|
|
471
|
+
}
|
|
472
|
+
};
|
|
473
|
+
return (_jsx(Main, { className: "gap-0 bg-muted/35 p-0", children: _jsxs("div", { className: "mx-auto w-full max-w-[1360px] px-4 py-6 pb-28 sm:px-6 lg:px-8", "data-testid": "quick-start-page", children: [_jsxs("div", { className: "mb-1 font-mono text-[11.5px] text-muted-foreground", children: [_jsx(Link, { className: "hover:text-foreground", href: "/dashboard", children: t('dashboard.title') }), _jsx("span", { className: "px-1.5", children: "/" }), _jsx("span", { className: "text-foreground", children: t('quickStart.title') })] }), _jsxs("div", { className: "mb-5 flex flex-col gap-4 xl:flex-row xl:items-start xl:justify-between", children: [_jsxs("div", { className: "min-w-0", children: [_jsx("h1", { className: "text-[26px] font-semibold", children: t('quickStart.title') }), _jsx("p", { className: "mt-1 max-w-3xl text-[12.5px] text-muted-foreground", children: t('quickStart.subtitle') })] }), _jsxs("div", { className: "flex flex-wrap items-center gap-2", children: [_jsx(Button, { asChild: true, variant: "outline", size: "sm", className: "h-9", children: _jsxs(Link, { href: "/dashboard", children: [_jsx(ArrowLeft, { className: "size-4" }), t('quickStart.back')] }) }), _jsxs(Button, { type: "button", size: "sm", className: "h-9", disabled: !canSubmit, onClick: submit, children: [createQuickStart.isPending ? (_jsx(Loader2, { className: "size-4 animate-spin" })) : (_jsx(Sparkles, { className: "size-4" })), createQuickStart.isPending ? t('quickStart.starting') : t('quickStart.start')] })] })] }), submitError && (_jsxs("div", { className: "mb-4 flex gap-2 rounded-md border border-destructive/35 bg-destructive/10 p-3 text-sm text-destructive", children: [_jsx(AlertTriangle, { className: "mt-0.5 size-4 shrink-0" }), submitError] })), _jsxs("div", { className: "grid gap-4 xl:grid-cols-[1fr_1fr]", children: [_jsxs(Section, { number: 1, title: t('quickStart.model.title'), hint: t('quickStart.model.hint'), complete: buildModelRef(experimentChoice).ok && (analysisSameAsExperiment || buildModelRef(analysisChoice).ok), children: [modelOptionsQuery.isError && (_jsx("div", { className: "mb-3 rounded-md border border-destructive/35 bg-destructive/10 px-3 py-2 text-[12px] text-destructive", children: t('quickStart.model.loadFailed') })), _jsxs("div", { className: "space-y-3", children: [_jsx(ModelPicker, { title: t('quickStart.model.experimentTitle'), choice: experimentChoice, onChange: handleExperimentChoiceChange, modelOptions: modelOptions }), _jsxs("label", { className: "flex items-center gap-2 rounded-md border bg-background px-3 py-2 text-sm", children: [_jsx("input", { type: "checkbox", checked: analysisSameAsExperiment, onChange: (event) => setAnalysisSameAsExperiment(event.target.checked), className: "size-4 accent-primary" }), _jsx("span", { children: t('quickStart.model.sameAnalysis') })] }), !analysisSameAsExperiment && (_jsx(ModelPicker, { title: t('quickStart.model.analysisTitle'), choice: analysisChoice, onChange: setAnalysisChoice, modelOptions: modelOptions }))] })] }), _jsx(Section, { number: 2, title: t('quickStart.dataset.title'), hint: t('quickStart.dataset.hint'), complete: datasetReady, children: _jsxs("div", { className: "space-y-4", children: [_jsxs("div", { className: cn('rounded-lg border border-dashed p-4 transition-colors', isDraggingDataset
|
|
474
|
+
? 'border-primary bg-primary/10'
|
|
475
|
+
: 'border-[var(--status-running-bd)] bg-[var(--status-running-bg)]/45'), onDragOver: handleDatasetDragOver, onDragLeave: handleDatasetDragLeave, onDrop: handleDatasetDrop, children: [_jsx("input", { id: "quick-start-dataset-file", type: "file", accept: FORMAT_CHIPS.join(','), className: "sr-only", onChange: updateFileInput }), _jsxs("div", { className: "flex items-start gap-3", children: [_jsx("div", { className: "flex size-10 shrink-0 items-center justify-center rounded-md bg-[var(--status-running-bg)] text-[var(--status-running-fg)]", children: selectedFile ? _jsx(FileText, { className: "size-5" }) : _jsx(Upload, { className: "size-5" }) }), _jsxs("div", { className: "min-w-0 flex-1", children: [_jsxs("div", { className: "flex flex-wrap items-center gap-2", children: [_jsx("span", { className: "text-[13.5px] font-semibold", children: selectedFile ? selectedFile.name : t('quickStart.dataset.choose') }), parsedFile && (_jsxs("span", { className: "status-running ml-auto inline-flex items-center gap-1.5 rounded-full px-2 py-0.5 text-[11px] font-medium", children: [_jsx("span", { className: "dot-running size-1.5 rounded-full" }), t('datasets.upload.parsed')] }))] }), _jsx("div", { className: "mt-0.5 font-mono text-[11.5px] text-muted-foreground", children: isDraggingDataset
|
|
476
|
+
? t('quickStart.dataset.dropHere')
|
|
477
|
+
: parsedFile
|
|
478
|
+
? `${parsedFile.samples.length} ${t('datasets.samples')} · ${parsedFile.columns.length} ${t('datasets.detail.fields')}`
|
|
479
|
+
: t('quickStart.dataset.chooseHelp') }), _jsx(Progress, { value: parsedFile ? 100 : 0, label: formatProgressLabel({ value: parsedFile ? 1 : 0, max: 1 }), className: "mt-2" }), _jsxs("div", { className: "mt-2 flex items-center justify-between gap-3", children: [_jsx("span", { className: "font-mono text-[10.5px] text-[var(--status-running-fg)]", children: parsedFile ? t('datasets.upload.uploadReady') : t('datasets.upload.waitingForFile') }), _jsx("label", { className: "cursor-pointer text-[11.5px] text-muted-foreground hover:text-foreground", htmlFor: "quick-start-dataset-file", children: selectedFile ? t('datasets.action.replaceFile') : t('datasets.upload.browse') })] })] })] })] }), parseError && (_jsxs("div", { className: "flex gap-2 rounded-md border border-destructive/35 bg-destructive/10 p-3 text-[12px] text-destructive", children: [_jsx(AlertTriangle, { className: "mt-0.5 size-4 shrink-0" }), _jsx("div", { children: t(parseErrorKey) })] })), parsedFile ? (_jsxs("div", { className: "space-y-3", children: [_jsx("div", { className: "grid gap-2", children: parsedFile.columns.map((column) => (_jsxs("div", { className: "grid gap-2 rounded-md border bg-background p-3 md:grid-cols-[1fr_1.2fr_180px] md:items-center", children: [_jsxs("div", { className: "min-w-0", children: [_jsx("div", { className: "truncate font-mono text-[12.5px] font-semibold", children: column }), _jsx("div", { className: "truncate text-[11px] text-muted-foreground", children: getDisplayValue(parsedFile.samples[0]?.[column]) })] }), _jsx("div", { className: "truncate rounded-md bg-muted/45 px-2 py-1 font-mono text-[11.5px] text-muted-foreground", children: getDisplayValue(parsedFile.samples[0]?.[column]) }), _jsx("select", { value: fieldRoles[column] ?? 'metadata', onChange: (event) => setFieldRoles((current) => normalizeExpectedRoles({
|
|
480
|
+
...current,
|
|
481
|
+
[column]: event.target.value,
|
|
482
|
+
}, column)), className: "h-8 rounded-md border bg-background px-2 text-sm outline-none focus-visible:ring-2 focus-visible:ring-ring", "aria-label": `${t('datasets.upload.role')}: ${column}`, children: ROLE_OPTIONS.map((option) => (_jsx("option", { value: option.role, children: t(option.labelKey) }, option.role))) })] }, column))) }), expectedCount !== 1 && (_jsx("div", { className: "rounded-md border border-destructive/35 bg-destructive/10 px-3 py-2 text-[12px] text-destructive", children: t('quickStart.dataset.expectedRequired') })), inputFieldCount === 0 && (_jsx("div", { className: "rounded-md border border-destructive/35 bg-destructive/10 px-3 py-2 text-[12px] text-destructive", children: t('quickStart.dataset.inputRequired') })), _jsxs("details", { className: "rounded-md border bg-background", children: [_jsx("summary", { className: "cursor-pointer select-none px-3 py-2 text-xs font-medium text-muted-foreground", children: t('quickStart.dataset.preview') }), _jsx("div", { className: "grid gap-2 border-t p-3", children: previewRows.map((row, index) => (_jsx("div", { className: "rounded-md bg-muted/35 p-2 font-mono text-[11px]", children: JSON.stringify(row) }, index))) })] })] })) : (_jsx("div", { className: "rounded-md border border-dashed bg-muted/30 p-8 text-center text-sm text-muted-foreground", children: t('quickStart.dataset.empty') }))] }) }), _jsx(Section, { number: 3, title: t('quickStart.optimization.title'), hint: t('quickStart.optimization.hint'), complete: configReady, children: _jsxs("div", { className: "grid gap-4 md:grid-cols-2", children: [_jsx(MiniField, { label: t('quickStart.optimization.name'), children: _jsx(Input, { value: optimizationName, onChange: (event) => setOptimizationName(event.target.value), placeholder: t('quickStart.optimization.namePlaceholder') }) }), _jsx(MiniField, { label: t('quickStart.goal.accuracy'), children: _jsx(Input, { inputMode: "decimal", value: goalTarget, onChange: (event) => setGoalTarget(event.target.value) }) }), _jsx("div", { className: "md:col-span-2", children: _jsx(PromptLanguageSelect, { value: promptLanguage, onChange: handlePromptLanguageChange, helpKey: "quickStart.promptLanguageHelp", className: "max-w-[420px]", triggerClassName: "h-8" }) }), _jsx("div", { className: "md:col-span-2", children: _jsx(MiniField, { label: t('quickStart.taskDescription'), required: true, help: t('quickStart.taskDescriptionHelp'), children: _jsx("textarea", { value: taskDescription, onChange: (event) => setTaskDescription(event.target.value), placeholder: t('quickStart.taskDescriptionPlaceholder'), className: "min-h-24 w-full rounded-md border border-input bg-background px-3 py-2 text-sm outline-none focus-visible:ring-2 focus-visible:ring-ring" }) }) }), _jsx(MiniField, { label: t('quickStart.optimization.maxRounds'), children: _jsx(Input, { inputMode: "numeric", value: maxRounds, onChange: (event) => setMaxRounds(event.target.value) }) })] }) }), _jsxs(Section, { number: 4, title: t('quickStart.advanced.title'), hint: t('quickStart.advanced.hint'), children: [_jsxs("details", { className: "rounded-md border bg-background", children: [_jsx("summary", { className: "cursor-pointer select-none px-3 py-2 text-sm font-medium", children: t('quickStart.advanced.summary') }), _jsx("div", { className: "border-t px-3 pt-3 text-[11.5px] text-muted-foreground", children: selectedRunProfile
|
|
483
|
+
? formatTemplate(t('quickStart.advanced.fromModel'), { model: selectedRunProfile.name })
|
|
484
|
+
: t('quickStart.advanced.modelUnavailable') }), _jsxs("div", { className: "grid gap-3 p-3 md:grid-cols-3", children: [_jsx(MiniField, { label: t('quickStart.advanced.samplingRounds'), children: _jsx(Input, { inputMode: "numeric", value: samplingRounds, onChange: (event) => setSamplingRounds(event.target.value) }) }), _jsx(MiniField, { label: t('quickStart.advanced.samplesPerRound'), children: _jsx(Input, { inputMode: "numeric", value: samplesPerRound, onChange: (event) => setSamplesPerRound(event.target.value) }) }), _jsx(MiniField, { label: t('quickStart.advanced.temperature'), children: _jsx(Input, { inputMode: "decimal", value: temperature, onChange: (event) => setTemperature(event.target.value) }) }), _jsx(MiniField, { label: "RPM", aside: upperLimitLabel(selectedRunProfile?.rpmLimit), children: _jsx(Input, { inputMode: "numeric", value: rpmLimit, onChange: (event) => setRpmLimit(event.target.value) }) }), _jsx(MiniField, { label: "TPM", aside: upperLimitLabel(selectedRunProfile?.tpmLimit), children: _jsx(Input, { inputMode: "numeric", value: tpmLimit, onChange: (event) => setTpmLimit(event.target.value) }) }), _jsx(MiniField, { label: t('quickStart.advanced.concurrency'), aside: upperLimitLabel(selectedRunProfile?.concurrencyLimit), children: _jsx(Input, { inputMode: "numeric", value: concurrency, onChange: (event) => setConcurrency(event.target.value) }) }), _jsx(MiniField, { label: t('quickStart.advanced.sampleTimeout'), children: _jsx(Input, { inputMode: "numeric", value: sampleTimeoutSeconds, onChange: (event) => setSampleTimeoutSeconds(event.target.value) }) })] })] }), !runConfigWithinModelLimits && (_jsx("div", { className: "mt-3 rounded-md border border-destructive/35 bg-destructive/10 px-3 py-2 text-[12px] text-destructive", children: t('quickStart.advanced.limitExceeded') })), _jsx("div", { className: "mt-4 rounded-md border bg-muted/35 px-3 py-2 text-[12px] text-muted-foreground", children: t('quickStart.advanced.defaults') })] })] }), _jsx("div", { className: "fixed bottom-0 left-0 right-0 z-20 border-t bg-background/95 px-4 py-3 backdrop-blur supports-[backdrop-filter]:bg-background/75 md:left-[var(--sidebar-width)]", children: _jsxs("div", { className: "mx-auto flex w-full max-w-[1360px] flex-col gap-2 sm:flex-row sm:items-center sm:justify-between", children: [_jsxs("div", { className: "text-[12px] text-muted-foreground", children: [datasetReady ? t('quickStart.footer.datasetReady') : t('quickStart.footer.datasetPending'), _jsx(ChevronRight, { className: "mx-1 inline size-3" }), configReady ? t('quickStart.footer.configReady') : t('quickStart.footer.configPending')] }), _jsxs("div", { className: "flex items-center gap-2", children: [_jsx(Button, { asChild: true, variant: "outline", size: "sm", children: _jsx(Link, { href: "/dashboard", children: t('common.cancel') }) }), _jsxs(Button, { type: "button", size: "sm", disabled: !canSubmit, onClick: submit, children: [createQuickStart.isPending ? (_jsx(Loader2, { className: "size-4 animate-spin" })) : (_jsx(Sparkles, { className: "size-4" })), createQuickStart.isPending ? t('quickStart.starting') : t('quickStart.start')] })] })] }) })] }) }));
|
|
485
|
+
}
|
|
486
|
+
//# sourceMappingURL=quick-start-screen.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"quick-start-screen.js","sourceRoot":"","sources":["../../../src/screens/quick-start/quick-start-screen.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAoD,MAAM,OAAO,CAAC;AAC5F,OAAO,EACL,mBAAmB,EACnB,aAAa,EACb,+BAA+B,EAC/B,6CAA6C,EAC7C,2CAA2C,EAC3C,8BAA8B,EAC9B,6BAA6B,EAC7B,0CAA0C,EAC1C,+BAA+B,EAC/B,6BAA6B,GAS9B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,aAAa,EACb,SAAS,EACT,KAAK,EACL,KAAK,EACL,YAAY,EACZ,QAAQ,EACR,OAAO,EACP,QAAQ,EACR,MAAM,GACP,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAA2B,oBAAoB,EAAuB,MAAM,kBAAkB,CAAC;AACxH,OAAO,EACL,MAAM,EACN,KAAK,EACL,KAAK,EACL,cAAc,EACd,QAAQ,EACR,mBAAmB,EACnB,EAAE,GACH,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,mBAAmB,EACnB,4BAA4B,EAC5B,+BAA+B,EAC/B,yBAAyB,GAC1B,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,OAAO,EAAuB,MAAM,YAAY,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AACzE,OAAO,EACL,YAAY,EACZ,aAAa,EACb,sBAAsB,EACtB,eAAe,EACf,SAAS,EACT,gBAAgB,EAChB,uBAAuB,GAExB,MAAM,mCAAmC,CAAC;AA6B3C,MAAM,YAAY,GAAgE;IAChF,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,kBAAkB,EAAE;IAC5C,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,oBAAoB,EAAE;IAChD,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,qBAAqB,EAAE;IAClD,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,wBAAwB,EAAE;IACxD,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,wBAAwB,EAAE;CACzD,CAAC;AAEF,MAAM,mBAAmB,GAAG,KAAK,CAAC;AAClC,MAAM,cAAc,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,aAAa,CAAC,CAAC,CAAE,CAAC;AAC5F,MAAM,mBAAmB,GAA+B,EAAE,CAAC;AAE3D,SAAS,aAAa,CAAC,MAAmB;IACxC,OAAO;QACL,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,YAAY,EAAE,MAAM,CAAC,YAAY;QACjC,eAAe,EAAE,MAAM,CAAC,eAAe;QACvC,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,MAAM,EAAE,EAAE;QACV,mBAAmB,EAAE,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC;QACvD,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC;QACjC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC;QACjC,gBAAgB,EAAE,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC;QACjD,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,yBAAyB,CAAC;QACpD,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,0BAA0B,CAAC;QACtD,eAAe,EAAE,MAAM,CAAC,YAAY,CAAC,KAAK;KAC3C,CAAC;AACJ,CAAC;AAED,SAAS,wBAAwB;IAC/B,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,cAAc,CAAC,GAAG,EAAE,KAAK,EAAE,aAAa,CAAC,cAAc,CAAC,EAAE,CAAC;AAChG,CAAC;AAED,SAAS,0BAA0B,CAAC,UAAgC;IAClE,OAAO,UAAU,KAAK,KAAK,IAAI,UAAU,KAAK,MAAM,CAAC;AACvD,CAAC;AAED,SAAS,6BAA6B,CAAC,UAAgC;IACrE,OAAO,UAAU,KAAK,QAAQ,IAAI,UAAU,KAAK,MAAM,CAAC;AAC1D,CAAC;AAED,SAAS,iBAAiB,CAAC,OAA0C;IACnE,IAAI,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,MAAM;QAAE,OAAO,MAAM,CAAC;IACjD,IAAI,OAAO,CAAC,GAAG;QAAE,OAAO,KAAK,CAAC;IAC9B,IAAI,OAAO,CAAC,MAAM;QAAE,OAAO,QAAQ,CAAC;IACpC,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,wBAAwB,CAAC,KAAa,EAAE,QAAgB;IAC/D,OAAO,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC;AACtC,CAAC;AAED,SAAS,aAAa,CAAC,EAAE,KAAK,EAAqB;IACjD,OAAO,CACL,eAAM,SAAS,EAAC,sIAAsI,YACnJ,KAAK,GACD,CACR,CAAC;AACJ,CAAC;AAED,SAAS,OAAO,CAAC,EACf,MAAM,EACN,KAAK,EACL,IAAI,EACJ,QAAQ,EACR,QAAQ,GAAG,KAAK,GAOjB;IACC,MAAM,EAAE,CAAC,EAAE,GAAG,OAAO,EAAE,CAAC;IAExB,OAAO,CACL,mBAAS,SAAS,EAAC,2BAA2B,aAC5C,eAAK,SAAS,EAAC,sDAAsD,aACnE,KAAC,aAAa,IAAC,KAAK,EAAE,MAAM,GAAI,EAChC,aAAI,SAAS,EAAC,6BAA6B,YAAE,KAAK,GAAM,EACvD,QAAQ,IAAI,CACX,gBAAM,SAAS,EAAC,gGAAgG,aAC9G,KAAC,KAAK,IAAC,SAAS,EAAC,QAAQ,GAAG,EAC3B,CAAC,CAAC,qBAAqB,CAAC,IACpB,CACR,EACD,eAAM,SAAS,EAAC,6CAA6C,YAAE,IAAI,GAAQ,IACvE,EACN,cAAK,SAAS,EAAC,KAAK,YAAE,QAAQ,GAAO,IAC7B,CACX,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAAC,EACjB,KAAK,EACL,QAAQ,EACR,QAAQ,GAAG,KAAK,EAChB,IAAI,EACJ,KAAK,GAON;IACC,OAAO,CACL,0BACE,eAAK,SAAS,EAAC,wDAAwD,aACrE,MAAC,KAAK,IAAC,SAAS,EAAC,2BAA2B,aACzC,KAAK,EACL,QAAQ,IAAI,eAAM,SAAS,EAAC,kBAAkB,kBAAS,IAClD,EACP,KAAK,IAAI,eAAM,SAAS,EAAC,4CAA4C,YAAE,KAAK,GAAQ,IACjF,EACL,QAAQ,EACR,IAAI,IAAI,cAAK,SAAS,EAAC,wDAAwD,YAAE,IAAI,GAAO,IACzF,CACP,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,EACtB,MAAM,EACN,QAAQ,GAIT;IACC,MAAM,EAAE,CAAC,EAAE,GAAG,OAAO,EAAE,CAAC;IACxB,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,GAAG,QAAQ,CAAmB,cAAc,CAAC,KAAK,CAAC,CAAC;IACnG,MAAM,eAAe,GAAG,wBAAwB,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IAC5E,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,KAAK,iBAAiB,CAAC,CAAC;IAErF,MAAM,UAAU,GAAG,CAAC,KAA0B,EAAE,EAAE;QAChD,QAAQ,CAAC,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,EAAE,GAAG,MAAM,CAAC,KAAK,EAAE,GAAG,KAAK,EAAE,EAAE,CAAC,CAAC;IAChE,CAAC,CAAC;IAEF,OAAO,CACL,eAAK,SAAS,EAAC,WAAW,aACxB,eAAK,SAAS,EAAC,WAAW,aACxB,cAAK,SAAS,EAAC,sBAAsB,YAClC,mBAAmB,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAClC,iBAEE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAE,EAAE,CACX,2FAA2F,EAC3F,iBAAiB,KAAK,KAAK,CAAC,GAAG;gCAC7B,CAAC,CAAC,mDAAmD;gCACrD,CAAC,CAAC,yFAAyF,CAC9F,kBACa,iBAAiB,KAAK,KAAK,CAAC,GAAG,EAC7C,OAAO,EAAE,GAAG,EAAE,CAAC,oBAAoB,CAAC,KAAK,CAAC,GAAG,CAAC,YAE7C,KAAK,CAAC,KAAK,IAXP,KAAK,CAAC,GAAG,CAYP,CACV,CAAC,GACE,EACN,cAAK,SAAS,EAAC,0CAA0C,YACtD,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;4BACtB,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,KAAK,MAAM,CAAC,GAAG,CAAC;4BACjD,OAAO,CACL,kBAEE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAE,EAAE,CACX,oIAAoI,EACpI,QAAQ,IAAI,6BAA6B,CAC1C,kBACa,QAAQ,EACtB,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,GAAG,EAAE,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,aAE/F,gBAAM,SAAS,EAAC,wCAAwC,aACtD,gBAAM,SAAS,EAAC,SAAS,aACvB,eAAM,SAAS,EAAC,sCAAsC,YAAE,MAAM,CAAC,IAAI,GAAQ,EAC3E,eAAM,SAAS,EAAC,mEAAmE,YAChF,MAAM,CAAC,eAAe,GAClB,IACF,EACN,MAAM,CAAC,QAAQ,IAAI,KAAC,QAAQ,IAAC,SAAS,EAAC,gDAAgD,GAAG,IACtF,EACP,gBAAM,SAAS,EAAC,gDAAgD,aAC7D,MAAM,CAAC,mBAAmB,CAAC,cAAc,EAAE,OAAG,CAAC,CAAC,yBAAyB,CAAC,IACtE,KApBF,MAAM,CAAC,GAAG,CAqBR,CACV,CAAC;wBACJ,CAAC,CAAC,GACE,IACF,EAEN,eAAK,SAAS,EAAC,2BAA2B,aACxC,KAAC,SAAS,IAAC,KAAK,EAAE,CAAC,CAAC,kBAAkB,CAAC,EAAE,QAAQ,kBAC/C,KAAC,KAAK,IAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,GAAI,GACxF,EACZ,KAAC,SAAS,IAAC,KAAK,EAAE,CAAC,CAAC,sBAAsB,CAAC,EAAE,QAAQ,kBACnD,iBACE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,YAAY,EAChC,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EACrE,SAAS,EAAC,mHAAmH,YAE5H,eAAe,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAC/B,iBAA2B,KAAK,EAAE,MAAM,CAAC,KAAK,YAC3C,MAAM,CAAC,KAAK,IADF,MAAM,CAAC,KAAK,CAEhB,CACV,CAAC,GACK,GACC,EACZ,KAAC,SAAS,IAAC,KAAK,EAAE,CAAC,CAAC,qBAAqB,CAAC,EAAE,QAAQ,kBAClD,KAAC,KAAK,IACJ,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,eAAe,EACnC,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,GACxE,GACQ,EACZ,KAAC,SAAS,IAAC,KAAK,EAAE,CAAC,CAAC,sBAAsB,CAAC,EAAE,QAAQ,kBACnD,KAAC,KAAK,IAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,GAAI,GAChG,EACZ,KAAC,SAAS,IAAC,KAAK,EAAC,SAAS,EAAC,QAAQ,kBACjC,KAAC,KAAK,IACJ,IAAI,EAAC,UAAU,EACf,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,EAC1B,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAC/D,WAAW,EAAC,QAAQ,GACpB,GACQ,EACZ,KAAC,SAAS,IAAC,KAAK,EAAE,CAAC,CAAC,2BAA2B,CAAC,YAC9C,KAAC,KAAK,IACJ,SAAS,EAAC,SAAS,EACnB,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,mBAAmB,EACvC,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,mBAAmB,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,GAC5E,GACQ,IACR,EAEN,mBAAS,SAAS,EAAC,iCAAiC,aAClD,kBAAS,SAAS,EAAC,gFAAgF,YAChG,CAAC,CAAC,2BAA2B,CAAC,GACvB,EACV,eAAK,SAAS,EAAC,wCAAwC,aACrD,KAAC,SAAS,IAAC,KAAK,EAAC,KAAK,YACpB,KAAC,KAAK,IACJ,SAAS,EAAC,SAAS,EACnB,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,EAC5B,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,GACjE,GACQ,EACZ,KAAC,SAAS,IAAC,KAAK,EAAC,KAAK,YACpB,KAAC,KAAK,IACJ,SAAS,EAAC,SAAS,EACnB,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,EAC5B,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,GACjE,GACQ,EACZ,KAAC,SAAS,IAAC,KAAK,EAAE,CAAC,CAAC,iCAAiC,CAAC,YACpD,KAAC,KAAK,IACJ,SAAS,EAAC,SAAS,EACnB,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,gBAAgB,EACpC,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,gBAAgB,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,GACzE,GACQ,EACZ,KAAC,SAAS,IAAC,KAAK,EAAE,CAAC,CAAC,6BAA6B,CAAC,YAChD,KAAC,KAAK,IACJ,SAAS,EAAC,SAAS,EACnB,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,UAAU,EAC9B,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,GACnE,GACQ,EACZ,KAAC,SAAS,IAAC,KAAK,EAAE,CAAC,CAAC,8BAA8B,CAAC,YACjD,KAAC,KAAK,IACJ,SAAS,EAAC,SAAS,EACnB,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,WAAW,EAC/B,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,GACpE,GACQ,EACZ,KAAC,SAAS,IAAC,KAAK,EAAE,CAAC,CAAC,4BAA4B,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,sCAAsC,CAAC,YAChG,eAAK,SAAS,EAAC,YAAY,aACzB,iBAAO,SAAS,EAAC,4GAA4G,aAC3H,gBACE,IAAI,EAAC,UAAU,EACf,OAAO,EAAE,0BAA0B,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,EACjE,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAClB,UAAU,CAAC;wDACT,eAAe,EAAE,iBAAiB,CAAC;4DACjC,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO;4DACzB,MAAM,EAAE,6BAA6B,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC;yDACpE,CAAC;qDACH,CAAC,EAEJ,SAAS,EAAC,8BAA8B,GACxC,EACF,gBAAM,SAAS,EAAC,SAAS,aACvB,eAAM,SAAS,EAAC,mBAAmB,YAAE,CAAC,CAAC,sBAAsB,CAAC,GAAQ,EACtE,eAAM,SAAS,EAAC,yDAAyD,YACtE,CAAC,CAAC,0BAA0B,CAAC,GACzB,IACF,IACD,EACR,iBAAO,SAAS,EAAC,4GAA4G,aAC3H,gBACE,IAAI,EAAC,UAAU,EACf,OAAO,EAAE,6BAA6B,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,EACpE,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAClB,UAAU,CAAC;wDACT,eAAe,EAAE,iBAAiB,CAAC;4DACjC,GAAG,EAAE,0BAA0B,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC;4DAC7D,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO;yDAC7B,CAAC;qDACH,CAAC,EAEJ,SAAS,EAAC,8BAA8B,GACxC,EACF,gBAAM,SAAS,EAAC,SAAS,aACvB,eAAM,SAAS,EAAC,mBAAmB,YAAE,CAAC,CAAC,yBAAyB,CAAC,GAAQ,EACzE,eAAM,SAAS,EAAC,yDAAyD,YACtE,CAAC,CAAC,6BAA6B,CAAC,GAC5B,IACF,IACD,IACJ,GACI,IACR,IACE,IACN,CACP,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,EACnB,KAAK,EACL,MAAM,EACN,QAAQ,EACR,YAAY,GAMb;IACC,MAAM,EAAE,CAAC,EAAE,GAAG,OAAO,EAAE,CAAC;IACxB,MAAM,aAAa,GAAG,+BAA+B,EAAE,CAAC;IACxD,MAAM,UAAU,GAAG,4BAA4B,EAAE,CAAC;IAClD,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAA4B,IAAI,CAAC,CAAC;IAE1E,MAAM,gBAAgB,GAAG,MAAM,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1E,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,wBAAwB,EAAE,CAAC;IAElF,MAAM,gBAAgB,GAAG,GAAG,EAAE;QAC5B,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,WAAW,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;QAErD,IAAI,MAAM,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YAC/B,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACpB,WAAW,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,2BAA2B,CAAC,EAAE,CAAC,CAAC;gBAC/F,OAAO;YACT,CAAC;YACD,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE;gBACnC,SAAS,EAAE,CAAC,MAAM,EAAE,EAAE,CACpB,WAAW,CAAC;oBACV,MAAM,EAAE,MAAM,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ;oBAC1D,UAAU,EAAE,MAAM,CAAC,UAAU;oBAC7B,YAAY,EAAE,MAAM,CAAC,KAAK;iBAC3B,CAAC;gBACJ,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CACjB,WAAW,CAAC;oBACV,MAAM,EAAE,QAAQ;oBAChB,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;oBAClC,YAAY,EAAE,kBAAkB,CAAC,KAAK,CAAC;iBACxC,CAAC;aACL,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QAED,MAAM,OAAO,GAAG,qBAAqB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACpD,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;YAChB,WAAW,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YACpF,OAAO;QACT,CAAC;QAED,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE;YAC9B,SAAS,EAAE,CAAC,MAAM,EAAE,EAAE,CACpB,WAAW,CAAC;gBACV,MAAM,EAAE,MAAM,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ;gBAC1D,UAAU,EAAE,MAAM,CAAC,UAAU;gBAC7B,YAAY,EAAE,MAAM,CAAC,KAAK;aAC3B,CAAC;YACJ,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CACjB,WAAW,CAAC;gBACV,MAAM,EAAE,QAAQ;gBAChB,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;gBAClC,YAAY,EAAE,kBAAkB,CAAC,KAAK,CAAC;aACxC,CAAC;SACL,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,MAAM,SAAS,GAAG,aAAa,CAAC,SAAS,IAAI,UAAU,CAAC,SAAS,CAAC;IAElE,OAAO,CACL,eAAK,SAAS,EAAC,+CAA+C,aAC5D,eAAK,SAAS,EAAC,mCAAmC,aAChD,eAAK,SAAS,EAAC,gBAAgB,aAC7B,cAAK,SAAS,EAAC,uBAAuB,YAAE,KAAK,GAAO,EACpD,cAAK,SAAS,EAAC,qCAAqC,YAAE,CAAC,CAAC,uBAAuB,CAAC,GAAO,IACnF,EACN,eAAK,SAAS,EAAC,8CAA8C,aAC3D,iBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAE,EAAE,CACX,0DAA0D,EAC1D,MAAM,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,6CAA6C,CACvG,EACD,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,YAEhF,CAAC,CAAC,2BAA2B,CAAC,GACxB,EACT,iBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAE,EAAE,CACX,0DAA0D,EAC1D,MAAM,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,6CAA6C,CACpG,EACD,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,wBAAwB,EAAE,CAAC,YAElD,CAAC,CAAC,yBAAyB,CAAC,GACtB,IACL,IACF,EAEL,MAAM,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,CAC5B,eAAK,SAAS,EAAC,YAAY,aACzB,KAAC,SAAS,IAAC,KAAK,EAAE,CAAC,CAAC,2BAA2B,CAAC,EAAE,QAAQ,kBACxD,kBACE,KAAK,EAAE,gBAAgB,EACvB,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAChF,SAAS,EAAC,mHAAmH,aAE5H,YAAY,CAAC,MAAM,KAAK,CAAC,IAAI,iBAAQ,KAAK,EAAC,EAAE,YAAE,CAAC,CAAC,6BAA6B,CAAC,GAAU,EACzF,YAAY,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAC3B,kBAAuB,KAAK,EAAE,KAAK,CAAC,EAAE,aACnC,KAAK,CAAC,IAAI,cAAK,KAAK,CAAC,eAAe,KAD1B,KAAK,CAAC,EAAE,CAEZ,CACV,CAAC,IACK,GACC,EACX,YAAY,CAAC,MAAM,KAAK,CAAC,IAAI,CAC5B,cAAK,SAAS,EAAC,yFAAyF,YACrG,CAAC,CAAC,iCAAiC,CAAC,GACjC,CACP,IACG,CACP,CAAC,CAAC,CAAC,CACF,KAAC,cAAc,IACb,MAAM,EAAE,WAAsD,EAC9D,QAAQ,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,GAC9C,CACH,EAED,eAAK,SAAS,EAAC,mCAAmC,aAChD,MAAC,MAAM,IAAC,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAC,SAAS,EAAC,IAAI,EAAC,IAAI,EAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,gBAAgB,aAC7F,SAAS,CAAC,CAAC,CAAC,KAAC,OAAO,IAAC,SAAS,EAAC,qBAAqB,GAAG,CAAC,CAAC,CAAC,KAAC,KAAK,IAAC,SAAS,EAAC,QAAQ,GAAG,EACtF,CAAC,CAAC,uBAAuB,CAAC,IACpB,EACT,KAAC,gBAAgB,IAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAC,QAAQ,GAAG,IACvD,IACF,CACP,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAAC,GAAW;IACtC,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAC1B,OAAO,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AAC7D,CAAC;AAED,SAAS,kBAAkB,CAAC,GAAW;IACrC,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAC1B,OAAO,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AAC/E,CAAC;AAED,SAAS,qBAAqB,CAAC,GAAW;IACxC,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAC1B,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AAC7D,CAAC;AAED,SAAS,qBAAqB,CAC5B,KAAiB;IAEjB,MAAM,QAAQ,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,eAAe,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACvG,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;QACxD,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,kCAAkC,EAAE,CAAC;IACrE,CAAC;IAED,MAAM,mBAAmB,GAAG,mBAAmB,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;IAC3E,MAAM,QAAQ,GAAG,kBAAkB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACpD,MAAM,QAAQ,GAAG,kBAAkB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACpD,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;IACrE,MAAM,UAAU,GAAG,qBAAqB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAC3D,MAAM,WAAW,GAAG,qBAAqB,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAC7D,IACE,mBAAmB,KAAK,IAAI;QAC5B,QAAQ,KAAK,IAAI;QACjB,QAAQ,KAAK,IAAI;QACjB,gBAAgB,KAAK,IAAI;QACzB,UAAU,KAAK,IAAI;QACnB,WAAW,KAAK,IAAI,EACpB,CAAC;QACD,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,gCAAgC,EAAE,CAAC;IACnE,CAAC;IAED,OAAO;QACL,EAAE,EAAE,IAAI;QACR,IAAI,EAAE;YACJ,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE;YACvB,YAAY,EAAE,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE;YACvC,eAAe,EAAE,KAAK,CAAC,eAAe,CAAC,IAAI,EAAE;YAC7C,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE;YAC/B,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,mBAAmB;YACnB,GAAG,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE;YACxB,GAAG,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE;YACxB,WAAW,EAAE,EAAE,KAAK,EAAE,gBAAgB,EAAE;YACxC,eAAe,EAAE,IAAI;YACrB,OAAO,EAAE,EAAE,eAAe,EAAE,UAAU,EAAE,gBAAgB,EAAE,WAAW,EAAE;YACvE,YAAY,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,eAAe,EAAE;YAC9C,SAAS,EAAE,EAAE;SACd;KACF,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CACpB,MAAmB;IAEnB,IAAI,MAAM,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;QAC/B,OAAO,MAAM,CAAC,OAAO;YACnB,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,EAAE;YAClE,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,2BAA2B,EAAE,CAAC;IAC3D,CAAC;IAED,MAAM,OAAO,GAAG,qBAAqB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACpD,IAAI,CAAC,OAAO,CAAC,EAAE;QAAE,OAAO,OAAO,CAAC;IAChC,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;AACnE,CAAC;AAED,SAAS,kBAAkB,CAAC,MAAmB,EAAE,YAAwC;IACvF,IAAI,MAAM,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;QAC/B,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,MAAM,CAAC,OAAO,CAAC,CAAC;QAC1E,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC;QACxB,OAAO;YACL,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK;YACzB,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK;YACzB,gBAAgB,EAAE,KAAK,CAAC,WAAW,CAAC,KAAK;YACzC,SAAS,EAAE,YAAY,KAAK,CAAC,EAAE,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,IAAI,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE;SACnG,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC3D,MAAM,QAAQ,GAAG,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC3D,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;IAC5E,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,IAAI,IAAI,gBAAgB,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAErF,OAAO;QACL,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI,OAAO;QAChF,QAAQ;QACR,QAAQ;QACR,gBAAgB;QAChB,SAAS,EAAE,SAAS,QAAQ,IAAI,QAAQ,IAAI,gBAAgB,EAAE;KAC/D,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,QAAgB,EAAE,MAAuC;IAC/E,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;AACrH,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAa,EAAE,cAAsB;IAC7D,OAAO,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC;AAC7D,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAoB,EAAE,KAAa;IAC/D,OAAO,KAAK,KAAK,IAAI,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,KAAK,CAAC;AACtD,CAAC;AAED,SAAS,sBAAsB,CAC7B,KAAuC,EACvC,eAAwB;IAExB,IAAI,cAAc,GAAG,eAAe,IAAI,KAAK,CAAC,eAAe,CAAC,KAAK,UAAU,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC;IACvG,cAAc,KAAK,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,KAAK,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;IAE9F,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC;QAC5C,MAAM;QACN,IAAI,KAAK,UAAU,IAAI,MAAM,KAAK,cAAc,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI;KACrE,CAAC,CACH,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,QAAgB;IACnC,OAAO,QAAQ;SACZ,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;SACxB,IAAI,EAAE;SACN,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAClB,CAAC;AAED,SAAS,0BAA0B,CAAC,QAAwB,EAAE,IAAY;IACxE,OAAO,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,kBAAkB,CAAC,CAAC,CAAC,GAAG,IAAI,QAAQ,CAAC;AAC5E,CAAC;AAED,SAAS,gBAAgB,CAAC,UAAyB;IACjD,IAAI,UAAU,KAAK,uBAAuB;QAAE,OAAO,iCAAiC,CAAC;IACrF,OAAO,6BAA6B,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,MAAM,EAAE,CAAC,EAAE,GAAG,OAAO,EAAE,CAAC;IACxB,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,iBAAiB,GAAG,yBAAyB,EAAE,CAAC;IACtD,MAAM,gBAAgB,GAAG,mBAAmB,EAAE,CAAC;IAC/C,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC7D,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC3D,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAiB,OAAO,CAAC,CAAC;IAC9E,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAc,IAAI,CAAC,CAAC;IACpE,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAA2B,IAAI,CAAC,CAAC;IAC7E,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAmC,EAAE,CAAC,CAAC;IACnF,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IAClE,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAG,QAAQ,CAAc,GAAG,EAAE,CAAC,wBAAwB,EAAE,CAAC,CAAC;IACxG,MAAM,CAAC,wBAAwB,EAAE,2BAA2B,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC/E,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAc,GAAG,EAAE,CAAC,wBAAwB,EAAE,CAAC,CAAC;IACpG,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,mBAAmB,CAAC,CAAC;IAClE,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,8BAA8B,CAAC,CAAC,CAAC;IACnF,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,2CAA2C,CAAC,CAAC,CAAC;IAC1G,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,6CAA6C,CAAC,CAAC,CAAC;IAC9G,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,+BAA+B,CAAC,CAAC,CAAC;IACxF,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CACtC,MAAM,CAAC,wBAAwB,CAAC,cAAc,CAAC,QAAQ,EAAE,6BAA6B,CAAC,CAAC,CACzF,CAAC;IACF,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CACtC,MAAM,CAAC,wBAAwB,CAAC,cAAc,CAAC,QAAQ,EAAE,6BAA6B,CAAC,CAAC,CACzF,CAAC;IACF,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAC5C,MAAM,CAAC,wBAAwB,CAAC,cAAc,CAAC,gBAAgB,EAAE,+BAA+B,CAAC,CAAC,CACnG,CAAC;IACF,MAAM,CAAC,oBAAoB,EAAE,uBAAuB,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,0CAA0C,CAAC,CAAC,CAAC;IACrH,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IACpE,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAElE,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,UAAU,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IACnG,MAAM,gBAAgB,GAAG,YAAY;QACnC,CAAC,CAAC,WAAW,CAAC,sBAAsB,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAC1F,CAAC,CAAC,IAAI,CAAC;IACT,MAAM,YAAY,GAAG,iBAAiB,CAAC,IAAI,EAAE,IAAI,IAAI,mBAAmB,CAAC;IACzE,MAAM,kBAAkB,GAAG,OAAO,CAChC,GAAG,EAAE,CAAC,kBAAkB,CAAC,gBAAgB,EAAE,YAAY,CAAC,EACxD,CAAC,gBAAgB,EAAE,YAAY,CAAC,CACjC,CAAC;IACF,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,MAAM,CAAC;IAC7F,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,OAAO,CAAC,CAAC,MAAM,CAAC;IAC/G,MAAM,YAAY,GAAG,UAAU,KAAK,IAAI,IAAI,YAAY,KAAK,IAAI,IAAI,aAAa,KAAK,CAAC,IAAI,eAAe,GAAG,CAAC,CAAC;IAChH,MAAM,QAAQ,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IAC/C,MAAM,QAAQ,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IAC/C,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,WAAW,CAAC,CAAC;IAC1D,MAAM,0BAA0B,GAC9B,kBAAkB,KAAK,IAAI;QAC3B,CAAC,CAAC,oBAAoB,CAAC,QAAQ,EAAE,kBAAkB,CAAC,QAAQ,CAAC;YAC3D,CAAC,oBAAoB,CAAC,QAAQ,EAAE,kBAAkB,CAAC,QAAQ,CAAC;YAC5D,CAAC,oBAAoB,CAAC,gBAAgB,EAAE,kBAAkB,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAClF,MAAM,WAAW,GACf,eAAe,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;QACjC,mBAAmB,CAAC,SAAS,CAAC,KAAK,IAAI;QACvC,mBAAmB,CAAC,cAAc,CAAC,KAAK,IAAI;QAC5C,mBAAmB,CAAC,eAAe,CAAC,KAAK,IAAI;QAC7C,qBAAqB,CAAC,WAAW,CAAC,KAAK,IAAI;QAC3C,QAAQ,KAAK,IAAI;QACjB,QAAQ,KAAK,IAAI;QACjB,gBAAgB,KAAK,IAAI;QACzB,mBAAmB,CAAC,oBAAoB,CAAC,KAAK,IAAI;QAClD,qBAAqB,CAAC,UAAU,CAAC,KAAK,IAAI;QAC1C,0BAA0B,CAAC;IAC7B,MAAM,SAAS,GAAG,YAAY,IAAI,WAAW,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC;IAC7E,MAAM,aAAa,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC;IAEnD,MAAM,cAAc,GAAG,iBAAiB,CAAC,iBAAiB,CAAC,SAAS,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACjG,IAAI,cAAc,EAAE,CAAC;QACnB,OAAO,CACL,KAAC,IAAI,IAAC,SAAS,EAAC,uBAAuB,YACrC,cAAK,SAAS,EAAC,+DAA+D,iBAAa,kBAAkB,YAC3G,KAAC,cAAc,IAAC,SAAS,EAAC,eAAe,GAAG,GACxC,GACD,CACR,CAAC;IACJ,CAAC;IAED,MAAM,yBAAyB,GAAG,CAAC,OAAwB,EAAE,EAAE;QAC7D,WAAW,CAAC,MAAM,CAAC,wBAAwB,CAAC,OAAO,CAAC,QAAQ,EAAE,6BAA6B,CAAC,CAAC,CAAC,CAAC;QAC/F,WAAW,CAAC,MAAM,CAAC,wBAAwB,CAAC,OAAO,CAAC,QAAQ,EAAE,6BAA6B,CAAC,CAAC,CAAC,CAAC;QAC/F,cAAc,CAAC,MAAM,CAAC,wBAAwB,CAAC,OAAO,CAAC,gBAAgB,EAAE,+BAA+B,CAAC,CAAC,CAAC,CAAC;IAC9G,CAAC,CAAC;IAEF,MAAM,4BAA4B,GAAG,CAAC,UAAuB,EAAE,EAAE;QAC/D,MAAM,iBAAiB,GAAG,kBAAkB,EAAE,SAAS,IAAI,IAAI,CAAC;QAChE,MAAM,WAAW,GAAG,kBAAkB,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;QACjE,mBAAmB,CAAC,UAAU,CAAC,CAAC;QAChC,IAAI,WAAW,IAAI,WAAW,CAAC,SAAS,KAAK,iBAAiB,EAAE,CAAC;YAC/D,yBAAyB,CAAC,WAAW,CAAC,CAAC;QACzC,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,eAAe,GAAG,CAAC,KAAgC,EAAE,EAAE,CAC3D,cAAc,CAAC,CAAC,CAAC,gCAAgC,CAAC,EAAE;QAClD,KAAK,EAAE,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC,CAAC,+BAA+B,CAAC,CAAC;KACjH,CAAC,CAAC;IAEL,MAAM,0BAA0B,GAAG,CAAC,YAA4B,EAAE,EAAE;QAClE,MAAM,gBAAgB,GAAG,cAAc,CAAC;QACxC,iBAAiB,CAAC,YAAY,CAAC,CAAC;QAChC,IAAI,CAAC,gBAAgB;YAAE,OAAO;QAE9B,MAAM,2BAA2B,GAAG,0BAA0B,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAAC;QACnG,mBAAmB,CAAC,CAAC,OAAO,EAAE,EAAE,CAC9B,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,KAAK,2BAA2B;YAC7D,CAAC,CAAC,0BAA0B,CAAC,YAAY,EAAE,gBAAgB,CAAC;YAC5D,CAAC,CAAC,OAAO,CACZ,CAAC;IACJ,CAAC,CAAC;IAEF,MAAM,iBAAiB,GAAG,KAAK,EAAE,IAAU,EAAE,EAAE;QAC7C,eAAe,CAAC,IAAI,CAAC,CAAC;QACtB,aAAa,CAAC,IAAI,CAAC,CAAC;QACpB,aAAa,CAAC,IAAI,CAAC,CAAC;QAEpB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,IAAI,CAAC,CAAC;YAC5C,eAAe,CAAC,IAAI,CAAC,CAAC;YACtB,aAAa,CAAC,MAAM,CAAC,CAAC;YACtB,aAAa,CACX,sBAAsB,CACpB,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAC7G,CACF,CAAC;YACF,MAAM,IAAI,GAAG,WAAW,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YACtF,mBAAmB,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,IAAI,0BAA0B,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC,CAAC;QAChG,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,aAAa,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;YACvE,aAAa,CAAC,EAAE,CAAC,CAAC;QACpB,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,eAAe,GAAG,KAAK,EAAE,KAAoC,EAAE,EAAE;QACrE,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;QAC7C,KAAK,CAAC,MAAM,CAAC,KAAK,GAAG,EAAE,CAAC;QACxB,IAAI,CAAC,IAAI;YAAE,OAAO;QAClB,MAAM,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC,CAAC;IAEF,MAAM,qBAAqB,GAAG,CAAC,KAAgC,EAAE,EAAE;QACjE,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,KAAK,CAAC,YAAY,CAAC,UAAU,GAAG,MAAM,CAAC;QACvC,oBAAoB,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC,CAAC;IAEF,MAAM,sBAAsB,GAAG,CAAC,KAAgC,EAAE,EAAE;QAClE,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,aAA4B,CAAC,EAAE,CAAC;YACtE,oBAAoB,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,iBAAiB,GAAG,KAAK,EAAE,KAAgC,EAAE,EAAE;QACnE,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,oBAAoB,CAAC,KAAK,CAAC,CAAC;QAC5B,MAAM,IAAI,GAAG,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;QACnD,IAAI,CAAC,IAAI;YAAE,OAAO;QAClB,MAAM,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC,CAAC;IAEF,MAAM,MAAM,GAAG,KAAK,IAAI,EAAE;QACxB,cAAc,CAAC,IAAI,CAAC,CAAC;QACrB,IAAI,CAAC,UAAU,IAAI,CAAC,YAAY,IAAI,CAAC,SAAS;YAAE,OAAO;QAEvD,MAAM,aAAa,GAAG,aAAa,CAAC,gBAAgB,CAAC,CAAC;QACtD,IAAI,CAAC,aAAa,CAAC,EAAE,EAAE,CAAC;YACtB,cAAc,CAAC,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC;YAC1C,OAAO;QACT,CAAC;QACD,MAAM,WAAW,GAAG,wBAAwB,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;QAC7F,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE,CAAC;YACpB,cAAc,CAAC,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC;YACxC,OAAO;QACT,CAAC;QAED,MAAM,cAAc,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAC;QACtD,MAAM,mBAAmB,GAAG,mBAAmB,CAAC,cAAc,CAAC,CAAC;QAChE,MAAM,oBAAoB,GAAG,mBAAmB,CAAC,eAAe,CAAC,CAAC;QAClE,MAAM,gBAAgB,GAAG,qBAAqB,CAAC,WAAW,CAAC,CAAC;QAC5D,MAAM,QAAQ,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QAC/C,MAAM,QAAQ,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QAC/C,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,WAAW,CAAC,CAAC;QAC1D,MAAM,YAAY,GAAG,mBAAmB,CAAC,oBAAoB,CAAC,CAAC;QAC/D,MAAM,eAAe,GAAG,qBAAqB,CAAC,UAAU,CAAC,CAAC;QAC1D,IACE,cAAc,KAAK,IAAI;YACvB,mBAAmB,KAAK,IAAI;YAC5B,oBAAoB,KAAK,IAAI;YAC7B,gBAAgB,KAAK,IAAI;YACzB,QAAQ,KAAK,IAAI;YACjB,QAAQ,KAAK,IAAI;YACjB,gBAAgB,KAAK,IAAI;YACzB,YAAY,KAAK,IAAI;YACrB,eAAe,KAAK,IAAI,EACxB,CAAC;YACD,cAAc,CAAC,CAAC,CAAC,gCAAgC,CAAC,CAAC,CAAC;YACpD,OAAO;QACT,CAAC;QACD,IAAI,CAAC,0BAA0B,EAAE,CAAC;YAChC,cAAc,CAAC,CAAC,CAAC,mCAAmC,CAAC,CAAC,CAAC;YACvD,OAAO;QACT,CAAC;QAED,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC;QACnC,MAAM,IAAI,GAAwB;YAChC,gBAAgB,EAAE,gBAAgB,CAAC,IAAI,EAAE,IAAI,SAAS;YACtD,kBAAkB,EAAE,eAAe,CAAC,IAAI,EAAE;YAC1C,eAAe,EAAE,eAAe,CAAC,IAAI,EAAE;YACvC,cAAc;YACd,OAAO,EAAE;gBACP,IAAI,EAAE,sBAAsB,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC;gBACjF,WAAW,EAAE,eAAe,CAAC,IAAI,EAAE;gBACnC,YAAY,EAAE;oBACZ,QAAQ,EAAE,YAAY,CAAC,IAAI;oBAC3B,aAAa,EAAE,YAAY,CAAC,IAAI;oBAChC,WAAW,EAAE,YAAY,CAAC,IAAI,IAAI,SAAS;iBAC5C;gBACD,aAAa,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC,CAAC;gBAClG,OAAO,EAAE,uBAAuB,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC;aAC9D;YACD,eAAe,EAAE,aAAa,CAAC,GAAG;YAClC,aAAa,EAAE,WAAW,CAAC,GAAG;YAC9B,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,eAAe,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;YAC1G,UAAU,EAAE,EAAE,SAAS,EAAE,cAAc,EAAE,4BAA4B,EAAE,CAAC,EAAE;YAC1E,SAAS,EAAE;gBACT,WAAW,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,gBAAgB,CAAC;gBAC1C,QAAQ,EAAE,QAAQ;gBAClB,QAAQ,EAAE,QAAQ;gBAClB,WAAW,EAAE,gBAAgB;gBAC7B,oBAAoB,EAAE,YAAY;aACnC;YACD,cAAc,EAAE;gBACd,qBAAqB,EAAE,mBAAmB;gBAC1C,sBAAsB,EAAE,oBAAoB;aAC7C;SACF,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YACxD,MAAM,CAAC,IAAI,CAAC,kBAAkB,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC;QACzD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,cAAc,CAAC,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC;QAC7E,CAAC;IACH,CAAC,CAAC;IAEF,OAAO,CACL,KAAC,IAAI,IAAC,SAAS,EAAC,uBAAuB,YACrC,eAAK,SAAS,EAAC,+DAA+D,iBAAa,kBAAkB,aAC3G,eAAK,SAAS,EAAC,oDAAoD,aACjE,KAAC,IAAI,IAAC,SAAS,EAAC,uBAAuB,EAAC,IAAI,EAAC,YAAY,YACtD,CAAC,CAAC,iBAAiB,CAAC,GAChB,EACP,eAAM,SAAS,EAAC,QAAQ,kBAAS,EACjC,eAAM,SAAS,EAAC,iBAAiB,YAAE,CAAC,CAAC,kBAAkB,CAAC,GAAQ,IAC5D,EACN,eAAK,SAAS,EAAC,wEAAwE,aACrF,eAAK,SAAS,EAAC,SAAS,aACtB,aAAI,SAAS,EAAC,2BAA2B,YAAE,CAAC,CAAC,kBAAkB,CAAC,GAAM,EACtE,YAAG,SAAS,EAAC,oDAAoD,YAAE,CAAC,CAAC,qBAAqB,CAAC,GAAK,IAC5F,EACN,eAAK,SAAS,EAAC,mCAAmC,aAChD,KAAC,MAAM,IAAC,OAAO,QAAC,OAAO,EAAC,SAAS,EAAC,IAAI,EAAC,IAAI,EAAC,SAAS,EAAC,KAAK,YACzD,MAAC,IAAI,IAAC,IAAI,EAAC,YAAY,aACrB,KAAC,SAAS,IAAC,SAAS,EAAC,QAAQ,GAAG,EAC/B,CAAC,CAAC,iBAAiB,CAAC,IAChB,GACA,EACT,MAAC,MAAM,IAAC,IAAI,EAAC,QAAQ,EAAC,IAAI,EAAC,IAAI,EAAC,SAAS,EAAC,KAAK,EAAC,QAAQ,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,aAClF,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC,CAC5B,KAAC,OAAO,IAAC,SAAS,EAAC,qBAAqB,GAAG,CAC5C,CAAC,CAAC,CAAC,CACF,KAAC,QAAQ,IAAC,SAAS,EAAC,QAAQ,GAAG,CAChC,EACA,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,IACvE,IACL,IACF,EAEL,WAAW,IAAI,CACd,eAAK,SAAS,EAAC,wGAAwG,aACrH,KAAC,aAAa,IAAC,SAAS,EAAC,wBAAwB,GAAG,EACnD,WAAW,IACR,CACP,EAED,eAAK,SAAS,EAAC,mCAAmC,aAChD,MAAC,OAAO,IACN,MAAM,EAAE,CAAC,EACT,KAAK,EAAE,CAAC,CAAC,wBAAwB,CAAC,EAClC,IAAI,EAAE,CAAC,CAAC,uBAAuB,CAAC,EAChC,QAAQ,EACN,aAAa,CAAC,gBAAgB,CAAC,CAAC,EAAE,IAAI,CAAC,wBAAwB,IAAI,aAAa,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,aAGrG,iBAAiB,CAAC,OAAO,IAAI,CAC5B,cAAK,SAAS,EAAC,uGAAuG,YACnH,CAAC,CAAC,6BAA6B,CAAC,GAC7B,CACP,EACD,eAAK,SAAS,EAAC,WAAW,aACxB,KAAC,WAAW,IACV,KAAK,EAAE,CAAC,CAAC,kCAAkC,CAAC,EAC5C,MAAM,EAAE,gBAAgB,EACxB,QAAQ,EAAE,4BAA4B,EACtC,YAAY,EAAE,YAAY,GAC1B,EACF,iBAAO,SAAS,EAAC,2EAA2E,aAC1F,gBACE,IAAI,EAAC,UAAU,EACf,OAAO,EAAE,wBAAwB,EACjC,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,2BAA2B,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,EACtE,SAAS,EAAC,uBAAuB,GACjC,EACF,yBAAO,CAAC,CAAC,+BAA+B,CAAC,GAAQ,IAC3C,EACP,CAAC,wBAAwB,IAAI,CAC5B,KAAC,WAAW,IACV,KAAK,EAAE,CAAC,CAAC,gCAAgC,CAAC,EAC1C,MAAM,EAAE,cAAc,EACtB,QAAQ,EAAE,iBAAiB,EAC3B,YAAY,EAAE,YAAY,GAC1B,CACH,IACG,IACE,EAEV,KAAC,OAAO,IACN,MAAM,EAAE,CAAC,EACT,KAAK,EAAE,CAAC,CAAC,0BAA0B,CAAC,EACpC,IAAI,EAAE,CAAC,CAAC,yBAAyB,CAAC,EAClC,QAAQ,EAAE,YAAY,YAEtB,eAAK,SAAS,EAAC,WAAW,aACxB,eACE,SAAS,EAAE,EAAE,CACX,uDAAuD,EACvD,iBAAiB;4CACf,CAAC,CAAC,8BAA8B;4CAChC,CAAC,CAAC,oEAAoE,CACzE,EACD,UAAU,EAAE,qBAAqB,EACjC,WAAW,EAAE,sBAAsB,EACnC,MAAM,EAAE,iBAAiB,aAEzB,gBACE,EAAE,EAAC,0BAA0B,EAC7B,IAAI,EAAC,MAAM,EACX,MAAM,EAAE,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,EAC9B,SAAS,EAAC,SAAS,EACnB,QAAQ,EAAE,eAAe,GACzB,EACF,eAAK,SAAS,EAAC,wBAAwB,aACrC,cAAK,SAAS,EAAC,4HAA4H,YACxI,YAAY,CAAC,CAAC,CAAC,KAAC,QAAQ,IAAC,SAAS,EAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,KAAC,MAAM,IAAC,SAAS,EAAC,QAAQ,GAAG,GAC3E,EACN,eAAK,SAAS,EAAC,gBAAgB,aAC7B,eAAK,SAAS,EAAC,mCAAmC,aAChD,eAAM,SAAS,EAAC,6BAA6B,YAC1C,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,2BAA2B,CAAC,GAC7D,EACN,UAAU,IAAI,CACb,gBAAM,SAAS,EAAC,0GAA0G,aACxH,eAAM,SAAS,EAAC,mCAAmC,GAAG,EACrD,CAAC,CAAC,wBAAwB,CAAC,IACvB,CACR,IACG,EACN,cAAK,SAAS,EAAC,sDAAsD,YAClE,iBAAiB;oEAChB,CAAC,CAAC,CAAC,CAAC,6BAA6B,CAAC;oEAClC,CAAC,CAAC,UAAU;wEACV,CAAC,CAAC,GAAG,UAAU,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC,kBAAkB,CAAC,MAAM,UAAU,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC,wBAAwB,CAAC,EAAE;wEACvH,CAAC,CAAC,CAAC,CAAC,+BAA+B,CAAC,GACpC,EACN,KAAC,QAAQ,IACP,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAC3B,KAAK,EAAE,mBAAmB,CAAC,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EACjE,SAAS,EAAC,MAAM,GAChB,EACF,eAAK,SAAS,EAAC,8CAA8C,aAC3D,eAAM,SAAS,EAAC,yDAAyD,YACtE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,6BAA6B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,gCAAgC,CAAC,GAC/E,EACP,gBACE,SAAS,EAAC,0EAA0E,EACpF,OAAO,EAAC,0BAA0B,YAEjC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,6BAA6B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,wBAAwB,CAAC,GACxE,IACJ,IACF,IACF,IACF,EAEL,UAAU,IAAI,CACb,eAAK,SAAS,EAAC,uGAAuG,aACpH,KAAC,aAAa,IAAC,SAAS,EAAC,wBAAwB,GAAG,EACpD,wBAAM,CAAC,CAAC,aAAa,CAAC,GAAO,IACzB,CACP,EAEA,UAAU,CAAC,CAAC,CAAC,CACZ,eAAK,SAAS,EAAC,WAAW,aACxB,cAAK,SAAS,EAAC,YAAY,YACxB,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAClC,eAEE,SAAS,EAAC,+FAA+F,aAEzG,eAAK,SAAS,EAAC,SAAS,aACtB,cAAK,SAAS,EAAC,gDAAgD,YAAE,MAAM,GAAO,EAC9E,cAAK,SAAS,EAAC,4CAA4C,YACxD,eAAe,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,GAC7C,IACF,EACN,cAAK,SAAS,EAAC,yFAAyF,YACrG,eAAe,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,GAC7C,EACN,iBACE,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC,IAAI,UAAU,EACvC,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAClB,aAAa,CAAC,CAAC,OAAO,EAAE,EAAE,CACxB,sBAAsB,CACpB;gEACE,GAAG,OAAO;gEACV,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,KAAyB;6DACjD,EACD,MAAM,CACP,CACF,EAEH,SAAS,EAAC,4GAA4G,gBAC1G,GAAG,CAAC,CAAC,sBAAsB,CAAC,KAAK,MAAM,EAAE,YAEpD,YAAY,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAC5B,iBAA0B,KAAK,EAAE,MAAM,CAAC,IAAI,YACzC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,IADR,MAAM,CAAC,IAAI,CAEf,CACV,CAAC,GACK,KAjCJ,MAAM,CAkCP,CACP,CAAC,GACE,EACL,aAAa,KAAK,CAAC,IAAI,CACtB,cAAK,SAAS,EAAC,kGAAkG,YAC9G,CAAC,CAAC,qCAAqC,CAAC,GACrC,CACP,EACA,eAAe,KAAK,CAAC,IAAI,CACxB,cAAK,SAAS,EAAC,kGAAkG,YAC9G,CAAC,CAAC,kCAAkC,CAAC,GAClC,CACP,EACD,mBAAS,SAAS,EAAC,iCAAiC,aAClD,kBAAS,SAAS,EAAC,gFAAgF,YAChG,CAAC,CAAC,4BAA4B,CAAC,GACxB,EACV,cAAK,SAAS,EAAC,yBAAyB,YACrC,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,CAC/B,cAAiB,SAAS,EAAC,kDAAkD,YAC1E,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IADZ,KAAK,CAET,CACP,CAAC,GACE,IACE,IACN,CACP,CAAC,CAAC,CAAC,CACF,cAAK,SAAS,EAAC,2FAA2F,YACvG,CAAC,CAAC,0BAA0B,CAAC,GAC1B,CACP,IACG,GACE,EAEV,KAAC,OAAO,IACN,MAAM,EAAE,CAAC,EACT,KAAK,EAAE,CAAC,CAAC,+BAA+B,CAAC,EACzC,IAAI,EAAE,CAAC,CAAC,8BAA8B,CAAC,EACvC,QAAQ,EAAE,WAAW,YAErB,eAAK,SAAS,EAAC,2BAA2B,aACxC,KAAC,SAAS,IAAC,KAAK,EAAE,CAAC,CAAC,8BAA8B,CAAC,YACjD,KAAC,KAAK,IACJ,KAAK,EAAE,gBAAgB,EACvB,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,mBAAmB,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EAC5D,WAAW,EAAE,CAAC,CAAC,yCAAyC,CAAC,GACzD,GACQ,EACZ,KAAC,SAAS,IAAC,KAAK,EAAE,CAAC,CAAC,0BAA0B,CAAC,YAC7C,KAAC,KAAK,IAAC,SAAS,EAAC,SAAS,EAAC,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,GAAI,GAC9F,EACZ,cAAK,SAAS,EAAC,eAAe,YAC5B,KAAC,oBAAoB,IACnB,KAAK,EAAE,cAAc,EACrB,QAAQ,EAAE,0BAA0B,EACpC,OAAO,EAAC,+BAA+B,EACvC,SAAS,EAAC,eAAe,EACzB,gBAAgB,EAAC,KAAK,GACtB,GACE,EACN,cAAK,SAAS,EAAC,eAAe,YAC5B,KAAC,SAAS,IAAC,KAAK,EAAE,CAAC,CAAC,4BAA4B,CAAC,EAAE,QAAQ,QAAC,IAAI,EAAE,CAAC,CAAC,gCAAgC,CAAC,YACnG,mBACE,KAAK,EAAE,eAAe,EACtB,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,kBAAkB,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EAC3D,WAAW,EAAE,CAAC,CAAC,uCAAuC,CAAC,EACvD,SAAS,EAAC,0IAA0I,GACpJ,GACQ,GACR,EACN,KAAC,SAAS,IAAC,KAAK,EAAE,CAAC,CAAC,mCAAmC,CAAC,YACtD,KAAC,KAAK,IAAC,SAAS,EAAC,SAAS,EAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,GAAI,GAC5F,IACR,GACE,EAEV,MAAC,OAAO,IAAC,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,2BAA2B,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,0BAA0B,CAAC,aAC5F,mBAAS,SAAS,EAAC,iCAAiC,aAClD,kBAAS,SAAS,EAAC,0DAA0D,YAC1E,CAAC,CAAC,6BAA6B,CAAC,GACzB,EACV,cAAK,SAAS,EAAC,wDAAwD,YACpE,kBAAkB;gDACjB,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,+BAA+B,CAAC,EAAE,EAAE,KAAK,EAAE,kBAAkB,CAAC,IAAI,EAAE,CAAC;gDACxF,CAAC,CAAC,CAAC,CAAC,sCAAsC,CAAC,GACzC,EACN,eAAK,SAAS,EAAC,+BAA+B,aAC5C,KAAC,SAAS,IAAC,KAAK,EAAE,CAAC,CAAC,oCAAoC,CAAC,YACvD,KAAC,KAAK,IACJ,SAAS,EAAC,SAAS,EACnB,KAAK,EAAE,cAAc,EACrB,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,GAC1D,GACQ,EACZ,KAAC,SAAS,IAAC,KAAK,EAAE,CAAC,CAAC,qCAAqC,CAAC,YACxD,KAAC,KAAK,IACJ,SAAS,EAAC,SAAS,EACnB,KAAK,EAAE,eAAe,EACtB,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,kBAAkB,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,GAC3D,GACQ,EACZ,KAAC,SAAS,IAAC,KAAK,EAAE,CAAC,CAAC,iCAAiC,CAAC,YACpD,KAAC,KAAK,IACJ,SAAS,EAAC,SAAS,EACnB,KAAK,EAAE,WAAW,EAClB,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,GACvD,GACQ,EACZ,KAAC,SAAS,IAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAE,eAAe,CAAC,kBAAkB,EAAE,QAAQ,CAAC,YACzE,KAAC,KAAK,IAAC,SAAS,EAAC,SAAS,EAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,GAAI,GAC1F,EACZ,KAAC,SAAS,IAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAE,eAAe,CAAC,kBAAkB,EAAE,QAAQ,CAAC,YACzE,KAAC,KAAK,IAAC,SAAS,EAAC,SAAS,EAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,GAAI,GAC1F,EACZ,KAAC,SAAS,IACR,KAAK,EAAE,CAAC,CAAC,iCAAiC,CAAC,EAC3C,KAAK,EAAE,eAAe,CAAC,kBAAkB,EAAE,gBAAgB,CAAC,YAE5D,KAAC,KAAK,IACJ,SAAS,EAAC,SAAS,EACnB,KAAK,EAAE,WAAW,EAClB,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,GACvD,GACQ,EACZ,KAAC,SAAS,IAAC,KAAK,EAAE,CAAC,CAAC,mCAAmC,CAAC,YACtD,KAAC,KAAK,IACJ,SAAS,EAAC,SAAS,EACnB,KAAK,EAAE,oBAAoB,EAC3B,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,uBAAuB,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,GAChE,GACQ,IACR,IACE,EACT,CAAC,0BAA0B,IAAI,CAC9B,cAAK,SAAS,EAAC,uGAAuG,YACnH,CAAC,CAAC,mCAAmC,CAAC,GACnC,CACP,EACD,cAAK,SAAS,EAAC,gFAAgF,YAC5F,CAAC,CAAC,8BAA8B,CAAC,GAC9B,IACE,IACN,EAEN,cAAK,SAAS,EAAC,iKAAiK,YAC9K,eAAK,SAAS,EAAC,kGAAkG,aAC/G,eAAK,SAAS,EAAC,mCAAmC,aAC/C,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,gCAAgC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,kCAAkC,CAAC,EAC3F,KAAC,YAAY,IAAC,SAAS,EAAC,oBAAoB,GAAG,EAC9C,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,+BAA+B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,iCAAiC,CAAC,IACpF,EACN,eAAK,SAAS,EAAC,yBAAyB,aACtC,KAAC,MAAM,IAAC,OAAO,QAAC,OAAO,EAAC,SAAS,EAAC,IAAI,EAAC,IAAI,YACzC,KAAC,IAAI,IAAC,IAAI,EAAC,YAAY,YAAE,CAAC,CAAC,eAAe,CAAC,GAAQ,GAC5C,EACT,MAAC,MAAM,IAAC,IAAI,EAAC,QAAQ,EAAC,IAAI,EAAC,IAAI,EAAC,QAAQ,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,aAClE,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC,CAC5B,KAAC,OAAO,IAAC,SAAS,EAAC,qBAAqB,GAAG,CAC5C,CAAC,CAAC,CAAC,CACF,KAAC,QAAQ,IAAC,SAAS,EAAC,QAAQ,GAAG,CAChC,EACA,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,IACvE,IACL,IACF,GACF,IACF,GACD,CACR,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"release-line-detail-page.d.ts","sourceRoot":"","sources":["../../../src/screens/releases/release-line-detail-page.tsx"],"names":[],"mappings":"AA4dA,wBAAgB,qBAAqB,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,2CAgR/G"}
|