From 8b493d9c862ddeeb925ebc16b96f803242f772ba Mon Sep 17 00:00:00 2001 From: Michael Gartner Date: Fri, 6 Feb 2026 21:43:11 -0600 Subject: [PATCH 01/21] init --- .github/workflows/main.yaml | 11 +- .github/workflows/pr.yaml | 11 +- build.sh | 2 +- extension.css | 3127 ++++++++ package-lock.json | 8516 --------------------- package.json | 18 +- pnpm-lock.yaml | 7567 ++++++++++++++++++ scripts/build.ts | 27 + scripts/compile.ts | 213 + scripts/dev.ts | 27 + src/components/canvas/DefaultNodeUtil.tsx | 177 + src/components/canvas/Tldraw.tsx | 197 + src/components/canvas/tldrawStyles.ts | 18 + src/components/canvas/uiOverrides.tsx | 43 + src/components/canvas/useRoamStore.ts | 120 + src/index.ts | 56 +- src/tldraw-shapes.d.ts | 16 + src/utils/isCanvasPage.ts | 64 + tsconfig.json | 2 +- 19 files changed, 11681 insertions(+), 8531 deletions(-) create mode 100644 extension.css delete mode 100644 package-lock.json create mode 100644 pnpm-lock.yaml create mode 100644 scripts/build.ts create mode 100644 scripts/compile.ts create mode 100644 scripts/dev.ts create mode 100644 src/components/canvas/DefaultNodeUtil.tsx create mode 100644 src/components/canvas/Tldraw.tsx create mode 100644 src/components/canvas/tldrawStyles.ts create mode 100644 src/components/canvas/uiOverrides.tsx create mode 100644 src/components/canvas/useRoamStore.ts create mode 100644 src/tldraw-shapes.d.ts create mode 100644 src/utils/isCanvasPage.ts diff --git a/.github/workflows/main.yaml b/.github/workflows/main.yaml index aa5f7b6..00c7cc4 100644 --- a/.github/workflows/main.yaml +++ b/.github/workflows/main.yaml @@ -21,7 +21,14 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 + - uses: pnpm/action-setup@v4 + with: + version: 9 + - uses: actions/setup-node@v4 + with: + node-version: "20" + cache: "pnpm" - name: install - run: npm install + run: pnpm install --frozen-lockfile - name: build - run: npx samepage build + run: pnpm samepage build diff --git a/.github/workflows/pr.yaml b/.github/workflows/pr.yaml index 927cd4c..6cba9ef 100644 --- a/.github/workflows/pr.yaml +++ b/.github/workflows/pr.yaml @@ -11,7 +11,14 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 + - uses: pnpm/action-setup@v4 + with: + version: 9 + - uses: actions/setup-node@v4 + with: + node-version: "20" + cache: "pnpm" - name: install - run: npm install + run: pnpm install --frozen-lockfile - name: build - run: npx samepage build + run: pnpm samepage build diff --git a/build.sh b/build.sh index 4fc90bf..5c00d41 100644 --- a/build.sh +++ b/build.sh @@ -1 +1 @@ -npm run build:roam +pnpm run build:roam diff --git a/extension.css b/extension.css new file mode 100644 index 0000000..487f7f6 --- /dev/null +++ b/extension.css @@ -0,0 +1,3127 @@ +/* node_modules/.pnpm/tldraw@4.3.1_@floating-ui+dom@1.7.5_@types+react-dom@17.0.13_@types+react@17.0.39_react-dom@1_jc7smib27xwbyvjntrnvbhgmca/node_modules/tldraw/tldraw.css */ +.tl-container { + width: 100%; + height: 100%; + font-size: 12px; + --tl-space-1: 2px; + --tl-space-2: 4px; + --tl-space-3: 8px; + --tl-space-4: 12px; + --tl-space-5: 16px; + --tl-space-6: 20px; + --tl-space-7: 28px; + --tl-space-8: 32px; + --tl-space-9: 64px; + --tl-space-10: 72px; + --tl-radius-0: 2px; + --tl-radius-1: 4px; + --tl-radius-2: 6px; + --tl-radius-3: 9px; + --tl-radius-4: 11px; + --tl-layer-canvas-hidden: -999999; + --tl-layer-canvas-background: 100; + --tl-layer-canvas-grid: 150; + --tl-layer-watermark: 200; + --tl-layer-canvas-shapes: 300; + --tl-layer-canvas-overlays: 500; + --tl-layer-canvas-in-front: 600; + --tl-layer-canvas-blocker: 10000; + --tl-layer-overlays-collaborator-scribble: 10; + --tl-layer-overlays-collaborator-brush: 20; + --tl-layer-overlays-collaborator-shape-indicator: 30; + --tl-layer-overlays-user-scribble: 40; + --tl-layer-overlays-user-brush: 50; + --tl-layer-overlays-user-snapline: 90; + --tl-layer-overlays-selection-fg: 100; + --tl-layer-overlays-user-handles: 105; + --tl-layer-overlays-user-indicator-hint: 110; + --tl-layer-overlays-custom: 115; + --tl-layer-overlays-collaborator-cursor-hint: 120; + --tl-layer-overlays-collaborator-cursor: 130; + --tl-layer-text-container: 1; + --tl-layer-text-content: 3; + --tl-layer-text-editor: 4; + --tl-layer-error-overlay: 1; + --tl-layer-error-canvas: 2; + --tl-layer-error-canvas-after: 3; + --tl-layer-error-content: 4; + --tl-zoom: 1; + --tl-cursor-none: none; + --tl-cursor-default: url("data:image/svg+xml,") 12 8, default; + --tl-cursor-pointer: url("data:image/svg+xml,") 14 10, pointer; + --tl-cursor-cross: url("data:image/svg+xml,") 16 16, crosshair; + --tl-cursor-move: url("data:image/svg+xml,") 16 16, move; + --tl-cursor-grab: url("data:image/svg+xml,") 16 16, grab; + --tl-cursor-grabbing: url("data:image/svg+xml,") 16 16, grabbing; + --tl-cursor-text: url("data:image/svg+xml,") 4 10, text; + --tl-cursor-zoom-in: url("data:image/svg+xml,") 16 16, zoom-in; + --tl-cursor-zoom-out: url("data:image/svg+xml,") 16 16, zoom-out; + --tl-cursor: var(--tl-cursor-default); + --tl-cursor-resize-edge: ew-resize; + --tl-cursor-resize-corner: nesw-resize; + --tl-cursor-ew-resize: ew-resize; + --tl-cursor-ns-resize: ns-resize; + --tl-cursor-nesw-resize: nesw-resize; + --tl-cursor-nwse-resize: nwse-resize; + --tl-cursor-rotate: pointer; + --tl-cursor-nwse-rotate: pointer; + --tl-cursor-nesw-rotate: pointer; + --tl-cursor-senw-rotate: pointer; + --tl-cursor-swne-rotate: pointer; + --tl-scale: calc(1 / var(--tl-zoom)); + --tl-font-draw: "tldraw_draw", sans-serif; + --tl-font-sans: "tldraw_sans", sans-serif; + --tl-font-serif: "tldraw_serif", serif; + --tl-font-mono: "tldraw_mono", monospace; + --tl-text-outline-a: calc(min(0.5, 1 / var(--tl-zoom)) * 2px); + --tl-text-outline-b: calc(min(0.5, 1 / var(--tl-zoom)) * -2px); + --tl-text-outline-reference: + 0 var(--tl-text-outline-b) 0 var(--tl-color-background), + 0 var(--tl-text-outline-a) 0 var(--tl-color-background), + var(--tl-text-outline-b) var(--tl-text-outline-b) 0 var(--tl-color-background), + var(--tl-text-outline-a) var(--tl-text-outline-b) 0 var(--tl-color-background), + var(--tl-text-outline-a) var(--tl-text-outline-a) 0 var(--tl-color-background), + var(--tl-text-outline-b) var(--tl-text-outline-a) 0 var(--tl-color-background); + --tl-text-outline: var(--tl-text-outline-reference); + position: relative; + inset: 0px; + height: 100%; + width: 100%; + overflow: clip; + color: var(--tl-color-text); +} +.tl-theme__light { + --tl-color-snap: hsl(0, 76%, 60%); + --tl-color-selection-fill: hsl(210, 100%, 56%, 24%); + --tl-color-selection-stroke: hsl(214, 84%, 56%); + --tl-color-background: hsl(210, 20%, 98%); + --tl-color-brush-fill: hsl(0, 0%, 56%, 10.2%); + --tl-color-brush-stroke: hsl(0, 0%, 56%, 25.1%); + --tl-color-grid: hsl(0, 0%, 43%); + --tl-color-low: hsl(204, 16%, 94%); + --tl-color-low-border: hsl(204, 16%, 92%); + --tl-color-culled: hsl(204, 14%, 93%); + --tl-color-muted-none: hsl(0, 0%, 0%, 0%); + --tl-color-muted-0: hsl(0, 0%, 0%, 2%); + --tl-color-muted-1: hsl(0, 0%, 0%, 10%); + --tl-color-muted-2: hsl(0, 0%, 0%, 4.3%); + --tl-color-hint: hsl(0, 0%, 0%, 5.5%); + --tl-color-overlay: hsl(0, 0%, 0%, 20%); + --tl-color-divider: hsl(0, 0%, 91%); + --tl-color-panel: hsl(0, 0%, 99%); + --tl-color-panel-contrast: hsl(0, 0%, 100%); + --tl-color-panel-overlay: hsl(0, 0%, 100%, 82%); + --tl-color-panel-transparent: hsla(0, 0%, 99%, 0%); + --tl-color-selected: hsl(214, 84%, 56%); + --tl-color-selected-contrast: hsl(0, 0%, 100%); + --tl-color-focus: hsl(219, 65%, 50%); + --tl-color-tooltip: hsla(200, 14%, 4%, 1); + --tl-color-text: hsl(0, 0%, 0%); + --tl-color-text-0: hsl(0, 0%, 11%); + --tl-color-text-1: hsl(0, 0%, 18%); + --tl-color-text-3: hsl(204, 4%, 45%); + --tl-color-text-shadow: hsl(0, 0%, 100%); + --tl-color-text-highlight: hsl(52, 100%, 50%); + --tl-color-text-highlight-p3: color(display-p3 0.972 0.8205 0.05); + --tl-color-primary: hsl(214, 84%, 56%); + --tl-color-success: hsl(123, 46%, 34%); + --tl-color-info: hsl(201, 98%, 41%); + --tl-color-warning: hsl(27, 98%, 47%); + --tl-color-danger: hsl(0, 90%, 43%); + --tl-color-laser: hsl(0, 100%, 50%); + --tl-shadow-1: 0px 1px 2px hsl(0, 0%, 0%, 25%), 0px 1px 3px hsl(0, 0%, 0%, 9%); + --tl-shadow-2: + 0px 0px 2px hsl(0, 0%, 0%, 16%), + 0px 2px 3px hsl(0, 0%, 0%, 24%), + 0px 2px 6px hsl(0, 0%, 0%, 0.1), + inset 0px 0px 0px 1px var(--tl-color-panel-contrast); + --tl-shadow-3: + 0px 1px 2px hsl(0, 0%, 0%, 28%), + 0px 2px 6px hsl(0, 0%, 0%, 14%), + inset 0px 0px 0px 1px var(--tl-color-panel-contrast); + --tl-shadow-4: + 0px 0px 3px hsl(0, 0%, 0%, 19%), + 0px 5px 4px hsl(0, 0%, 0%, 16%), + 0px 2px 16px hsl(0, 0%, 0%, 6%), + inset 0px 0px 0px 1px var(--tl-color-panel-contrast); +} +.tl-theme__dark { + --tl-color-snap: hsl(0, 76%, 60%); + --tl-color-selection-fill: hsl(209, 100%, 57%, 20%); + --tl-color-selection-stroke: hsl(214, 84%, 56%); + --tl-color-background: hsl(240, 5%, 6.5%); + --tl-color-brush-fill: hsl(0, 0%, 71%, 5.1%); + --tl-color-brush-stroke: hsl(0, 0%, 71%, 25.1%); + --tl-color-grid: hsl(0, 0%, 40%); + --tl-color-low: hsl(260, 4.5%, 10.5%); + --tl-color-low-border: hsl(207, 10%, 10%); + --tl-color-culled: hsl(210, 11%, 19%); + --tl-color-muted-none: hsl(0, 0%, 100%, 0%); + --tl-color-muted-0: hsl(0, 0%, 100%, 2%); + --tl-color-muted-1: hsl(0, 0%, 100%, 10%); + --tl-color-muted-2: hsl(0, 0%, 100%, 5%); + --tl-color-hint: hsl(0, 0%, 100%, 7%); + --tl-color-overlay: hsl(0, 0%, 0%, 50%); + --tl-color-divider: hsl(240, 9%, 22%); + --tl-color-panel: hsl(235, 6.8%, 13.5%); + --tl-color-panel-contrast: hsl(245, 12%, 23%); + --tl-color-panel-overlay: hsl(210, 10%, 24%, 82%); + --tl-color-panel-transparent: hsla(235, 6.8%, 13.5%, 0%); + --tl-color-selected: hsl(217, 89%, 61%); + --tl-color-selected-contrast: hsl(0, 0%, 100%); + --tl-color-focus: hsl(217, 76%, 80%); + --tl-color-tooltip: hsla(0, 0%, 100%, 1); + --tl-color-text: hsl(210, 17%, 98%); + --tl-color-text-0: hsl(0, 9%, 94%); + --tl-color-text-1: hsl(0, 0%, 85%); + --tl-color-text-3: hsl(204, 4%, 75%); + --tl-color-text-shadow: hsl(210, 13%, 18%); + --tl-color-text-highlight: hsl(52, 100%, 41%); + --tl-color-text-highlight-p3: color(display-p3 0.8078 0.6225 0.0312); + --tl-color-primary: hsl(214, 84%, 56%); + --tl-color-success: hsl(123, 38%, 57%); + --tl-color-info: hsl(199, 92%, 56%); + --tl-color-warning: hsl(36, 100%, 57%); + --tl-color-danger: hsl(0, 82%, 66%); + --tl-color-laser: hsl(0, 100%, 50%); + --tl-shadow-1: + 0px 1px 2px hsl(0, 0%, 0%, 16.1%), + 0px 1px 3px hsl(0, 0%, 0%, 22%), + inset 0px 0px 0px 1px var(--tl-color-panel-contrast); + --tl-shadow-2: + 0px 1px 3px hsl(0, 0%, 0%, 66.6%), + 0px 2px 6px hsl(0, 0%, 0%, 33%), + inset 0px 0px 0px 1px var(--tl-color-panel-contrast); + --tl-shadow-3: + 0px 1px 3px hsl(0, 0%, 0%, 50%), + 0px 2px 12px hsl(0, 0%, 0%, 50%), + inset 0px 0px 0px 1px var(--tl-color-panel-contrast); +} +.tl-counter-scaled { + transform: scale(var(--tl-scale)); + transform-origin: top left; + width: calc(100% * var(--tl-zoom)); + height: calc(100% * var(--tl-zoom)); +} +.tl-container, +.tl-container * { + -webkit-touch-callout: none; + -webkit-tap-highlight-color: transparent; + scrollbar-highlight-color: transparent; + -webkit-user-select: none; + user-select: none; + box-sizing: border-box; + outline: none; +} +.tl-container a { + -webkit-touch-callout: initial; +} +.tl-container__focused { + outline: 1px solid var(--tl-color-low); +} +input, +*[contenteditable], +*[contenteditable] * { + user-select: text; +} +.tl-canvas { + position: absolute; + inset: 0px; + height: 100%; + width: 100%; + color: var(--tl-color-text); + cursor: var(--tl-cursor); + overflow: clip; + content-visibility: auto; + touch-action: none; + contain: strict; +} +.tl-canvas__in-front { + position: absolute; + inset: 0; + pointer-events: none; + z-index: var(--tl-layer-canvas-in-front); +} +.tl-shapes { + position: relative; + z-index: var(--tl-layer-canvas-shapes); +} +.tl-overlays { + position: absolute; + top: 0px; + left: 0px; + height: 100%; + width: 100%; + contain: strict; + pointer-events: none; + z-index: var(--tl-layer-canvas-overlays); +} +.tl-overlays__item { + position: absolute; + top: 0px; + left: 0px; + overflow: visible; + pointer-events: none; + transform-origin: top left; +} +.tl-svg-context { + position: absolute; + top: 0px; + left: 0px; + width: 100%; + height: 100%; + pointer-events: none; +} +.tl-background__wrapper { + z-index: var(--tl-layer-canvas-background); + position: absolute; + inset: 0px; + height: 100%; + width: 100%; +} +.tl-background { + background-color: var(--tl-color-background); + width: 100%; + height: 100%; +} +.tl-grid { + position: absolute; + inset: 0px; + width: 100%; + height: 100%; + touch-action: none; + pointer-events: none; + z-index: var(--tl-layer-canvas-grid); + contain: strict; +} +.tl-grid-dot { + fill: var(--tl-color-grid); +} +.tl-html-layer { + position: absolute; + top: 0px; + left: 0px; + width: 1px; + height: 1px; + contain: layout style size; +} +.tl-collaborator__scribble { + z-index: var(--tl-layer-overlays-collaborator-scribble); +} +.tl-collaborator__brush { + z-index: var(--tl-layer-overlays-collaborator-brush); +} +.tl-collaborator__shape-indicator { + z-index: var(--tl-layer-overlays-collaborator-shape-indicator); +} +.tl-user-scribble { + z-index: var(--tl-layer-overlays-user-scribble); +} +.tl-user-brush { + z-index: var(--tl-layer-overlays-user-brush); +} +.tl-user-handles { + z-index: var(--tl-layer-overlays-user-handles); +} +.tl-user-snapline { + z-index: var(--tl-layer-overlays-user-snapline); +} +.tl-selection__fg { + pointer-events: none; + z-index: var(--tl-layer-overlays-selection-fg); +} +.tl-user-indicator__hint { + z-index: var(--tl-layer-overlays-user-indicator-hint); + stroke-width: calc(2.5px * var(--tl-scale)); +} +.tl-custom-overlays { + z-index: var(--tl-layer-overlays-custom); +} +.tl-collaborator__cursor-hint { + z-index: var(--tl-layer-overlays-collaborator-cursor-hint); +} +.tl-collaborator__cursor { + z-index: var(--tl-layer-overlays-collaborator-cursor); +} +.tl-cursor { + overflow: visible; +} +.tl-selection__bg { + position: absolute; + top: 0px; + left: 0px; + transform-origin: top left; + background-color: transparent; + pointer-events: all; +} +.tl-selection__fg__outline { + fill: none; + pointer-events: none; + stroke: var(--tl-color-selection-stroke); + stroke-width: calc(1.5px * var(--tl-scale)); +} +.tl-corner-handle { + pointer-events: none; + stroke: var(--tl-color-selection-stroke); + fill: var(--tl-color-background); + stroke-width: calc(1.5px * var(--tl-scale)); +} +.tl-text-handle { + pointer-events: none; + fill: var(--tl-color-selection-stroke); +} +.tl-corner-crop-handle { + pointer-events: none; + fill: none; + stroke: var(--tl-color-selection-stroke); +} +.tl-corner-crop-edge-handle { + pointer-events: none; + fill: none; + stroke: var(--tl-color-selection-stroke); +} +.tl-mobile-rotate__bg { + pointer-events: all; + cursor: var(--tl-cursor-grab); +} +.tl-mobile-rotate__fg { + pointer-events: none; + stroke: var(--tl-color-selection-stroke); + fill: var(--tl-color-background); + stroke-width: calc(1.5px * var(--tl-scale)); +} +.tl-transparent { + fill: transparent; + stroke: transparent; +} +.tl-hidden { + opacity: 0; + pointer-events: none; +} +.tl-nametag { + position: absolute; + top: 16px; + left: 13px; + width: fit-content; + height: fit-content; + max-width: 120px; + padding: 3px 6px; + white-space: nowrap; + position: absolute; + overflow: hidden; + text-overflow: ellipsis; + font-size: 12px; + font-family: var(--font-body); + border-radius: var(--tl-radius-2); + color: var(--tl-color-selected-contrast); +} +.tl-nametag-title { + position: absolute; + top: -2px; + left: 13px; + width: fit-content; + height: fit-content; + padding: 0px 6px; + max-width: 120px; + white-space: nowrap; + position: absolute; + overflow: hidden; + text-overflow: ellipsis; + font-size: 12px; + font-family: var(--font-body); + text-shadow: var(--tl-text-outline); + color: var(--tl-color-selected-contrast); +} +.tl-nametag-chat { + position: absolute; + top: 16px; + left: 13px; + width: fit-content; + height: fit-content; + color: var(--tl-color-selected-contrast); + white-space: nowrap; + position: absolute; + padding: 3px 6px; + font-size: 12px; + font-family: var(--font-body); + opacity: 1; + border-radius: var(--tl-radius-2); +} +.tl-cursor-chat { + position: absolute; + color: var(--tl-color-selected-contrast); + white-space: nowrap; + padding: 3px 6px; + font-size: 12px; + font-family: var(--font-body); + pointer-events: none; + z-index: var(--tl-layer-cursor); + margin-top: 16px; + margin-left: 13px; + opacity: 1; + border: none; + user-select: text; + border-radius: var(--tl-radius-2); +} +.tl-cursor-chat .tl-cursor-chat__bubble { + padding-right: 12px; +} +.tl-cursor-chat::selection { + background: var(--tl-color-selected); + color: var(--tl-color-selected-contrast); + text-shadow: none; +} +.tl-cursor-chat::placeholder { + color: var(--tl-color-selected-contrast); + opacity: 0.7; +} +.tl-text-shape-label { + position: relative; + font-weight: normal; + min-width: 1px; + padding: 0px; + margin: 0px; + border: none; + width: fit-content; + height: fit-content; + font-variant: normal; + font-style: normal; + pointer-events: all; + white-space: pre-wrap; + overflow-wrap: break-word; +} +.tl-text-wrapper[data-font=draw] { + font-family: var(--tl-font-draw); +} +.tl-text-wrapper[data-font=sans] { + font-family: var(--tl-font-sans); +} +.tl-text-wrapper[data-font=serif] { + font-family: var(--tl-font-serif); +} +.tl-text-wrapper[data-font=mono] { + font-family: var(--tl-font-mono); +} +.tl-text-wrapper[data-align=start], +.tl-text-wrapper[data-align=start-legacy] { + text-align: left; +} +.tl-text-wrapper[data-align=middle], +.tl-text-wrapper[data-align=middle-legacy] { + text-align: center; +} +.tl-text-wrapper[data-align=end], +.tl-text-wrapper[data-align=end-legacy] { + text-align: right; +} +.tl-plain-text-wrapper[data-isediting=true] .tl-text-content { + opacity: 0; +} +.tl-rich-text-wrapper[data-isediting=true] .tl-text-content { + display: none; +} +.tl-text { + margin: 0px; + padding: 0px; + appearance: auto; + background: none; + border-image: none; + border: 0px; + caret-color: var(--tl-color-text); + color: inherit; + column-count: initial !important; + display: inline-block; + font-family: inherit; + font-feature-settings: normal; + font-kerning: auto; + font-optical-sizing: auto; + font-size: inherit; + font-stretch: 100%; + font-style: inherit; + font-variant: inherit; + font-variation-settings: normal; + font-weight: inherit; + letter-spacing: inherit; + line-height: inherit; + outline: none; + overflow-wrap: break-word; + text-align: inherit; + text-indent: 0px; + text-rendering: auto; + text-shadow: inherit; + text-transform: none; + white-space: pre-wrap; + line-break: normal; + word-spacing: 0px; + word-wrap: break-word; + writing-mode: horizontal-tb !important; +} +.tl-text-measure { + z-index: var(--tl-layer-canvas-hidden); + opacity: 0; + visibility: hidden; + position: absolute; + top: 0px; + left: 0px; + width: max-content; + box-sizing: border-box; + pointer-events: none; + white-space: pre-wrap; + word-wrap: break-word; + overflow-wrap: break-word; + resize: none; + border: none; + user-select: none; + contain: layout style paint; + unicode-bidi: plaintext; + -webkit-user-select: none; +} +.tl-text-input, +.tl-text-content { + position: absolute; + inset: 0px; + height: 100%; + width: 100%; + min-width: 1px; + min-height: 1px; + outline: none; +} +.tl-text-content__wrapper { + position: relative; + width: fit-content; + height: fit-content; + display: flex; + align-items: center; + justify-content: center; + pointer-events: none; + min-height: auto; +} +.tl-text-content { + overflow: visible; + pointer-events: none; +} +.tl-text-input { + resize: none; + user-select: all; + -webkit-user-select: text; + cursor: var(--tl-cursor-text); +} +.tl-text-input:not(.tl-rich-text) { + overflow: hidden; +} +.tl-text-input::selection { + background: var(--tl-color-selected); + color: var(--tl-color-selected-contrast); + text-shadow: none; +} +.tl-text-label { + display: flex; + justify-content: center; + align-items: center; + color: var(--tl-color-text); + line-height: inherit; + position: absolute; + inset: 0px; + height: 100%; + width: 100%; +} +.tl-text-label[data-hastext=false][data-isediting=false] > .tl-text-label__inner { + width: 40px; + height: 40px; +} +.tl-text-label[data-hastext=true][data-isediting=false] .tl-text-content { + pointer-events: all; +} +.tl-text-label__inner > .tl-text-input.tl-rich-text { + display: none; + position: static; +} +.tl-text-wrapper[data-isediting=false] .tl-text-input { + opacity: 0; + cursor: var(--tl-cursor-default); +} +.tl-rich-text[data-is-ready-for-editing=true], +.tl-text-wrapper[data-is-ready-for-editing=true] .tl-text-input { + cursor: var(--tl-cursor-text); +} +.tl-text-label[data-textwrap=true] > .tl-text-label__inner { + max-width: 100%; +} +.tl-text-label[data-isediting=true] { + background-color: transparent; + min-height: auto; +} +.tl-text-wrapper .tl-text-content { + pointer-events: all; + z-index: var(--tl-layer-text-content); +} +.tl-text-label__inner > .tl-text-content { + position: relative; + top: 0px; + left: 0px; + padding: inherit; + height: fit-content; + width: fit-content; + border-radius: var(--tl-radius-1); + max-width: 100%; +} +.tl-text-label__inner > .tl-text-input { + position: absolute; + inset: 0px; + height: 100%; + width: 100%; + padding: inherit; +} +.tl-text-wrapper[data-isselected=true] .tl-text-input { + z-index: var(--tl-layer-text-editor); + pointer-events: all; +} +.tl-canvas:is([data-iseditinganything="true"], [data-isselectinganything="true"]) .tl-shape:not([data-shape-type="arrow"], [data-shape-type="draw"], [data-shape-type="line"], [data-shape-type="highlight"], [data-shape-is-filled="false"]) { + pointer-events: all; +} +.tl-rich-text .ProseMirror { + word-wrap: break-word; + overflow-wrap: break-word; + white-space: pre-wrap; + -webkit-font-variant-ligatures: inherit; + font-variant-ligatures: inherit; + font-feature-settings: inherit; +} +.tl-rich-text p { + margin: 0; + min-height: 1lh; +} +.tl-rich-text ul, +.tl-rich-text ol { + text-align: left; + margin: 0; + padding-left: 3.25ch; + list-style: revert; +} +.tl-rich-text ol:has(> li:nth-child(10)) { + padding-left: 4.25ch; +} +.tl-rich-text ol:has(> li:nth-child(100)) { + padding-left: 5.25ch; +} +.tl-rich-text h1, +.tl-rich-text h2, +.tl-rich-text h3, +.tl-rich-text h4, +.tl-rich-text h5, +.tl-rich-text h6 { + margin-top: 5px; + margin-bottom: 10px; +} +.tl-rich-text a { + color: var(--tl-color-primary); + text-decoration: underline; +} +.tl-rich-text[data-is-select-tool-active=false] a { + cursor: inherit; +} +.tl-rich-text code { + font-family: var(--tl-font-mono); +} +.tl-rich-text mark { + background-color: #fddd00; + color: currentColor; + border-radius: 2px; +} +.tl-theme__light .tl-rich-text mark { + text-shadow: none; +} +.tl-theme__dark .tl-rich-text mark { + background-color: var(--tl-color-text-highlight); + color: currentColor; +} +@supports (color: color(display-p3 1 1 1)) { + @media (color-gamut: p3) { + .tl-container:not(.tl-theme__force-sRGB) .tl-rich-text mark { + background-color: var(--tl-color-text-highlight-p3); + } + } +} +.tl-text-wrapper[data-isediting=true] .tl-rich-text { + display: block; +} +.tl-text__outline { + text-shadow: var(--tl-text-outline); +} +.tl-text__no-outline { + text-shadow: none; +} +.tl-loading { + background-color: var(--tl-color-background); + color: var(--tl-color-text-1); + height: 100%; + width: 100%; + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + gap: var(--tl-space-2); + font-size: 14px; + font-weight: 500; + opacity: 0; + animation: tl-fade-in 0.2s ease-in-out forwards; + animation-delay: 0.2s; + position: absolute; + inset: 0px; + z-index: var(--tl-layer-canvas-blocker); +} +@keyframes tl-fade-in { + 0% { + opacity: 0; + } + 100% { + opacity: 1; + } +} +.tl-spinner { + animation: tl-spin 1s linear infinite; +} +@keyframes tl-spin { + 0% { + transform: rotate(0deg); + } + 100% { + transform: rotate(360deg); + } +} +.tl-brush { + stroke-width: calc(var(--tl-scale) * 1px); + contain: size layout; +} +.tl-brush__default { + stroke: var(--tl-color-brush-stroke); + fill: var(--tl-color-brush-fill); +} +.tl-scribble { + stroke-linejoin: round; + stroke-linecap: round; + pointer-events: none; + contain: size layout; +} +.tl-snap-indicator { + stroke: var(--tl-color-snap); + stroke-width: calc(1px * var(--tl-scale)); + fill: none; +} +.tl-snap-point { + stroke: var(--tl-color-snap); + stroke-width: calc(1px * var(--tl-scale)); + fill: none; +} +.tl-hyperlink-button { + background: none; + margin: 0px; + position: absolute; + top: 0px; + right: 0px; + height: 44px; + width: 44px; + display: flex; + align-items: center; + justify-content: center; + font-size: 12px; + font-weight: 400; + color: var(--tl-color-text-1); + padding: 13px; + cursor: var(--tl-cursor-pointer); + border: none; + outline: none; + pointer-events: all; + z-index: 1; +} +.tl-hyperlink-button::after { + content: ""; + z-index: -1; + position: absolute; + right: 6px; + bottom: 6px; + display: block; + width: calc(100% - 12px); + height: calc(100% - 12px); + border-radius: var(--tl-radius-1); + background-color: var(--tl-color-background); + pointer-events: none; +} +.tl-hyperlink-button:focus-visible { + color: var(--tl-color-selected); +} +.tl-hyperlink__icon { + width: 15px; + height: 15px; + background-color: currentColor; + pointer-events: none; +} +.tl-hyperlink-button__hidden { + display: none; +} +.tl-handle { + pointer-events: all; +} +.tl-handle__bg { + fill: transparent; + stroke: transparent; + pointer-events: all; +} +.tl-handle__fg { + fill: var(--tl-color-selected-contrast); + stroke: var(--tl-color-selection-stroke); + stroke-width: calc(1.5px * var(--tl-scale)); + pointer-events: none; +} +.tl-handle__create { + opacity: 0; +} +.tl-handle__clone > .tl-handle__fg { + fill: var(--tl-color-selection-stroke); + stroke: none; +} +.tl-handle__bg:active { + fill: none; +} +.tl-container[data-coarse=true] .tl-handle__bg:active { + fill: var(--tl-color-selection-fill); +} +.tl-container[data-coarse=true] .tl-handle__create { + opacity: 1; +} +.tl-rotate-corner:not(:hover), +.tl-resize-handle:not(:hover) { + cursor: none; +} +.tl-shape-indicator { + transform-origin: top left; + fill: none; + stroke-width: calc(1.5px * var(--tl-scale)); + contain: size layout; +} +.tl-shape { + position: absolute; + pointer-events: none; + overflow: visible; + transform-origin: top left; + contain: size layout; +} +.tl-svg-container { + position: absolute; + inset: 0px; + height: 100%; + width: 100%; + pointer-events: none; + stroke-linecap: round; + stroke-linejoin: round; + transform-origin: top left; + overflow: visible; +} +.tl-html-container { + position: absolute; + inset: 0px; + height: 100%; + width: 100%; + pointer-events: none; + stroke-linecap: round; + stroke-linejoin: round; + transform-origin: top left; + color: var(--tl-color-text-1); +} +.tl-group { + stroke: var(--tl-color-text); + stroke-width: calc(1px * var(--tl-scale)); + opacity: 0.5; +} +.tl-shape[data-shape-type=arrow] .tl-text-label { + position: absolute; + top: -1px; + left: -1px; + width: 2px; + height: 2px; + padding: 0px; + display: flex; + justify-content: center; + align-items: center; + text-align: center; + color: var(--tl-color-text); +} +.tl-shape[data-shape-type=arrow] .tl-text-label__inner { + border-radius: var(--tl-radius-1); + box-sizing: content-box; + height: max-content; + width: max-content; +} +.tl-shape[data-shape-type=arrow] .tl-text { + height: max-content; +} +.tl-arrow-hint { + stroke: var(--tl-color-text-1); + fill: none; + stroke-linecap: round; + overflow: visible; +} +.tl-arrow-hint-handle { + fill: var(--tl-color-selected-contrast); + stroke: var(--tl-color-selection-stroke); + stroke-width: calc(1.5px * var(--tl-scale)); + r: calc(4px * var(--tl-scale)); +} +.tl-arrow-hint-snap { + stroke: transparent; + fill: var(--tl-color-selection-fill); + r: calc(12px * var(--tl-scale)); +} +.tl-arrow-hint-snap__none, +.tl-arrow-hint-snap__center, +.tl-arrow-hint-snap__axis { + display: none; +} +.tl-arrow-hint-snap__edge { + r: calc(8px * var(--tl-scale)); +} +.tl-bookmark__container { + width: 100%; + height: 100%; + position: relative; + border: 1px solid var(--tl-color-panel-contrast); + background-color: var(--tl-color-panel); + border-radius: var(--tl-radius-2); + display: flex; + flex-direction: column; + overflow: hidden; +} +.tl-bookmark__container--safariExport { + border: 1px solid var(--tl-color-divider); +} +.tl-bookmark__image_container { + flex: 1 1 100%; + overflow: hidden; + border-top-left-radius: var(--tl-radius-1); + border-top-right-radius: var(--tl-radius-1); + width: 100%; + height: 100%; + display: flex; + justify-content: flex-end; + align-items: flex-start; + box-shadow: inset 0px 0px 0px 1px var(--tl-color-divider); +} +.tl-bookmark__image_container > .tl-hyperlink-button::after { + background-color: var(--tl-color-panel); +} +.tl-bookmark__placeholder { + width: 100%; + height: 100%; + background-color: var(--tl-color-muted-2); + border-bottom: 1px solid var(--tl-color-muted-2); +} +.tl-bookmark__image { + width: 100%; + height: 100%; + object-fit: cover; + object-position: center; + border-bottom: 1px solid var(--tl-color-muted-2); +} +.tl-bookmark__copy_container { + background-color: var(--tl-color-muted-0); + padding: var(--tl-space-4); + pointer-events: all; + display: flex; + flex-direction: column; + justify-content: space-between; + flex: 1; +} +.tl-bookmark__copy_container:has(.tl-bookmark__link:only-child) { + justify-content: center; +} +.tl-bookmark__heading, +.tl-bookmark__description, +.tl-bookmark__link { + margin: 0px; + width: 100%; + font-family: inherit; +} +.tl-bookmark__heading { + font-size: 16px; + line-height: 1.6; + font-weight: bold; + padding-bottom: var(--tl-space-2); + overflow: hidden; + max-height: calc((16px * 1.6) * 2); + -webkit-box-orient: vertical; + -webkit-line-clamp: 2; + line-clamp: 2; + text-overflow: ellipsis; + display: -webkit-box; +} +.tl-bookmark__description { + font-size: 12px; + line-height: 1.5; + overflow: hidden; + max-height: calc((12px * 1.5) * 3); + -webkit-box-orient: vertical; + -webkit-line-clamp: 3; + line-clamp: 3; + text-overflow: ellipsis; + display: -webkit-box; + color: var(--tl-color-text-1); + margin: var(--tl-space-2) 0px; +} +.tl-bookmark__heading + .tl-bookmark__link, +.tl-bookmark__description + .tl-bookmark__link { + margin-top: var(--tl-space-3); +} +.tl-bookmark__link { + font-size: 12px; + pointer-events: all; + display: flex; + color: var(--tl-color-text-1); + align-items: center; + cursor: var(--tl-cursor-pointer); + width: fit-content; + max-width: 100%; + text-decoration: none; +} +.tl-bookmark__link > span { + flex-shrink: 0px; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} +.tl-bookmark__link > .tl-hyperlink__icon { + margin-right: 8px; + flex-shrink: 0; +} +.tl-bookmark__link > .tl-bookmark__favicon { + margin-right: 8px; + width: 16px; + height: 16px; + flex-shrink: 0; +} +.tl-image, +.tl-video { + object-fit: cover; + background-size: cover; + width: 100%; + height: 100%; +} +.tl-video-container, +.tl-image-container, +.tl-embed-container { + width: 100%; + height: 100%; + pointer-events: all; + display: flex; + justify-content: center; + align-items: center; +} +.tl-image-container { + position: relative; +} +.tl-image { + position: absolute; + inset: 0; +} +.tl-video.tl-video-is-fullscreen { + object-fit: contain; + background-size: contain; +} +.tl-note__container { + position: relative; + width: 100%; + height: 100%; + pointer-events: all; + opacity: 1; + z-index: var(--tl-layer-text-container); + border-radius: 1px; +} +.tl-note__container > .tl-text-label { + color: currentColor; +} +.tl-frame__body { + stroke-width: calc(1px * var(--tl-scale)); +} +.tl-frame__creating { + stroke: var(--tl-color-selected); + fill: none; +} +.tl-frame-heading { + --tl-frame-padding-x: 6px; + --tl-frame-height: 24px; + --tl-frame-minimum-width: 32px; + --tl-frame-offset-width: 16px; + display: flex; + align-items: center; + position: absolute; + transform-origin: 0% 100%; + overflow: hidden; + max-width: 100%; + min-width: var(--tl-frame-minimum-width); + height: auto; + font-size: 12px; + padding-bottom: 4px; + pointer-events: all; +} +.tl-frame-heading-hit-area { + pointer-events: all; + transform-origin: 0% 100%; + display: flex; + height: var(--tl-frame-height); + width: 100%; + align-items: center; + border-radius: var(--tl-radius-1); +} +.tl-frame-label { + pointer-events: all; + overflow: hidden; + text-overflow: ellipsis; + padding: 0px var(--tl-frame-padding-x); + border-radius: var(--tl-radius-1); + position: relative; + font-size: inherit; + white-space: pre; +} +.tl-frame-label__editing { + color: transparent; + white-space: pre; + width: auto; + min-width: var(--tl-frame-minimum-width); + height: 100%; + overflow: visible; + background-color: var(--tl-color-panel); + border-color: var(--tl-color-selected); + box-shadow: inset 0px 0px 0px 1.5px var(--tl-color-selected); +} +.tl-frame-name-input { + position: absolute; + border: none; + background: none; + outline: none; + padding: 0px var(--tl-frame-padding-x); + inset: 0px; + height: 100%; + width: 100%; + font-size: inherit; + font-family: inherit; + font-weight: inherit; + width: 100%; + color: var(--tl-color-text-1); + border-radius: var(--tl-radius-1); + user-select: all; + -webkit-user-select: text; + white-space: pre; + cursor: var(--tl-cursor-text); +} +@media (max-width: 600px) { + .tl-frame-heading { + font-size: 16px; + } +} +.tl-embed { + border: none; + border-radius: var(--tl-radius-2); +} +.tl-shape-error-boundary { + width: 100%; + height: 100%; + background-color: var(--tl-color-muted-1); + border-width: calc(1px * var(--tl-scale)); + border-color: var(--tl-color-muted-1); + border-style: solid; + border-radius: calc(var(--tl-radius-1) * var(--tl-scale)); + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + text-align: left; + position: relative; + pointer-events: all; + overflow: hidden; + padding: var(--tl-space-2); +} +.tl-shape-error-boundary::before { + transform: scale(var(--tl-scale)); + content: "Error"; + font-size: 12px; + font-family: inherit; + color: var(--tl-color-text-0); +} +.tl-error-boundary { + width: 100%; + height: 100%; + display: flex; + align-items: center; + justify-content: center; + padding: var(--tl-space-4); + background-color: var(--tl-color-background); + color: var(--tl-color-text-1); + position: absolute; +} +.tl-error-boundary__overlay { + position: absolute; + inset: 0px; + height: 100%; + width: 100%; + z-index: var(--tl-layer-error-overlay); + background-color: var(--tl-color-overlay); +} +.tl-error-boundary__content * { + user-select: all; + -webkit-user-select: text; + pointer-events: all; +} +.tl-error-boundary__canvas { + pointer-events: none; + position: absolute; + inset: 0px; + height: 100%; + width: 100%; + z-index: var(--tl-layer-error-canvas); +} +.tl-error-boundary__canvas::after { + content: " "; + display: block; + position: absolute; + inset: 0px; + height: 100%; + width: 100%; + z-index: var(--tl-layer-error-canvas-after); + pointer-events: all; +} +.tl-error-boundary__content { + width: fit-content; + height: fit-content; + max-width: 100%; + width: 400px; + max-height: 100%; + background-color: var(--tl-color-panel); + padding: 16px; + border-radius: 16px; + box-shadow: var(--tl-shadow-2); + font-size: 14px; + font-weight: 400; + display: flex; + flex-direction: column; + overflow: auto; + z-index: var(--tl-layer-error-content); + gap: 12px; +} +.tl-error-boundary__content__expanded { + width: 600px; +} +.tl-error-boundary__content h2 { + font-size: 16px; + margin: 0px; + font-weight: 500; +} +.tl-error-boundary__content h4 { + border: 1px solid var(--tl-color-low-border); + margin: -6px 0 0 0; + padding: var(--tl-space-5); + border-radius: var(--tl-radius-2); + font-weight: normal; +} +.tl-error-boundary__content p { + line-height: 1.5; + margin: 0px; +} +.tl-error-boundary__content pre { + background-color: var(--tl-color-muted-2); + margin-top: 0; + padding: var(--tl-space-5); + border-radius: var(--tl-radius-2); + overflow: auto; + font-size: 12px; + max-height: 320px; +} +.tl-error-boundary__content button { + background: none; + border: none; + font-family: inherit; + font-size: 14px; + font-weight: 500; + padding: var(--tl-space-4); + border-radius: var(--tl-radius-3); + cursor: var(--tl-cursor-pointer); + color: inherit; + background-color: transparent; +} +.tl-error-boundary__content a { + color: var(--tl-color-selected); + font-weight: 500; + text-decoration: none; +} +.tl-error-boundary__content__error { + position: relative; + margin: -6px 0 0 0; +} +.tl-error-boundary__content__error button { + position: absolute; + top: var(--tl-space-2); + right: var(--tl-space-2); + font-size: 12px; + padding: var(--tl-space-2) var(--tl-space-3); + background-color: var(--tl-color-panel); + border-radius: var(--tl-radius-1); +} +.tl-error-boundary__content__actions { + display: flex; + justify-content: space-between; + gap: var(--tl-space-4); + margin: 0px; + margin-left: -4px; +} +.tl-error-boundary__content__actions__group { + display: flex; + gap: var(--tl-space-4); +} +.tl-error-boundary__content .tl-error-boundary__reset { + color: var(--tl-color-danger); +} +.tl-error-boundary__content .tl-error-boundary__refresh { + background-color: var(--tl-color-primary); + color: var(--tl-color-selected-contrast); +} +.tl-container__focused:not(.tl-container__no-focus-ring) .tlui-button.tl-error-boundary__refresh:focus-visible { + border-radius: 8px; + outline-offset: 0; +} +.tl-hit-test-blocker { + position: absolute; + z-index: var(--tl-layer-canvas-blocker); + inset: 0px; + width: 100%; + height: 100%; + pointer-events: all; +} +.tl-hit-test-blocker__hidden { + display: none; +} +@media (hover: hover) { + .tl-handle__create:hover { + opacity: 1; + } + .tl-handle__bg:hover { + cursor: var(--tl-cursor-grab); + fill: var(--tl-color-selection-fill); + } + .tl-bookmark__link:hover { + color: var(--tl-color-selected); + } + .tl-hyperlink-button:hover { + color: var(--tl-color-selected); + } + .tl-error-boundary__content button:hover { + background-color: var(--tl-color-low); + } + .tl-error-boundary__content a:hover { + color: var(--tl-color-text-1); + } + .tl-error-boundary__content .tl-error-boundary__refresh:hover { + background-color: var(--tl-color-primary); + opacity: 0.9; + } + .tl-canvas[data-iseditinganything=true] .tl-text-wrapper:hover .tl-text-input { + z-index: var(--tl-layer-text-editor); + pointer-events: all; + } +} +.tl-container { + --tl-layer-above: 1; + --tl-layer-focused-input: 10; + --tl-layer-menu-click-capture: 250; + --tl-layer-panels: 300; + --tl-layer-menus: 400; + --tl-layer-toasts: 650; + --tl-layer-cursor: 700; + --tl-layer-header-footer: 999; + --tl-layer-following-indicator: 1000; +} +.tlui-button { + position: relative; + height: 40px; + min-width: 40px; + padding: 0px 12px; + display: flex; + align-items: center; + justify-content: center; + background-color: transparent; + border: transparent; + color: currentColor; + cursor: pointer; + pointer-events: all; + font-weight: inherit; + font-family: inherit; + line-height: inherit; + text-rendering: optimizeLegibility; + font-size: 12px; + gap: 0px; + color: var(--tl-color-text-1); + z-index: 0; +} +.tlui-button:disabled { + color: var(--tl-color-text-3); + text-shadow: none; + cursor: default; +} +.tlui-button:disabled .tlui-kbd { + color: var(--tl-color-text-3); +} +.tlui-button > * { + position: relative; + z-index: var(--tl-layer-above); +} +.tlui-button__label { + font-size: 12px; + flex-grow: 2; + text-align: left; +} +.tl-container__focused:not(.tl-container__no-focus-ring) .tlui-button:focus-visible { + border-radius: 10px; + outline: 2px solid var(--tl-color-focus); + outline-offset: -5px; +} +.tl-container__focused:not(.tl-container__no-focus-ring) .tlui-button__tool:focus-visible { + border-radius: 12px; +} +.tlui-slider__container:has(.tlui-slider__thumb:focus-visible) { + border-radius: 10px; + outline: 2px solid var(--tl-color-focus); + outline-offset: -5px; +} +.tlui-button::after { + display: block; + content: ""; + position: absolute; + inset: 4px; + border-radius: var(--tl-radius-2); + background: var(--tl-color-muted-2); + opacity: 0; +} +.tlui-button__menu[data-highlighted]::after { + opacity: 1; +} +.tlui-button[data-isactive=true]::after, +.tlui-button[data-isactive=true]:not(:disabled, :focus-visible):active:after { + background: var(--tl-color-hint); + opacity: 1; +} +.tlui-button[aria-expanded=true][data-direction=left] { + background: linear-gradient(270deg, rgba(144, 144, 144, 0) 0%, var(--tl-color-muted-2) 100%); + opacity: 1; +} +@media (hover: hover) { + .tlui-button[aria-expanded=true][data-direction=left]:not(:hover)::after { + background: linear-gradient(270deg, rgba(144, 144, 144, 0) 0%, var(--tl-color-muted-2) 100%); + opacity: 1; + } + .tlui-button:not(:disabled):hover { + z-index: 1; + } + .tlui-button:not(:disabled):hover::after { + opacity: 1; + } +} +.tlui-button__icon + .tlui-button__label { + margin-left: var(--tl-space-2); +} +.tlui-button__low { + border-radius: var(--tl-radius-3); + background-color: var(--tl-color-low); +} +.tlui-button__low::after { + background-color: var(--tl-color-muted-2); + opacity: 0; +} +@media (hover: hover) { + .tlui-button__low:hover::after { + opacity: 1; + } +} +.tlui-button__primary { + color: var(--tl-color-primary); +} +.tlui-button__danger { + color: var(--tl-color-danger); + text-shadow: none; +} +@media (hover: hover) { + .tlui-button__primary:not(:disabled, :focus-visible):hover { + color: var(--tl-color-primary); + } + .tlui-button__danger:not(:disabled, :focus-visible):hover { + color: var(--tl-color-danger); + text-shadow: none; + } +} +.tlui-button__menu { + height: 40px; + min-height: 40px; + width: 100%; + gap: 8px; + margin-top: -4px; +} +.tlui-button__menu::after { + inset: 4px; + border-radius: var(--tl-radius-2); +} +.tlui-button__menu > .tlui-icon + .tlui-button__label { + margin-left: 0px; +} +.tlui-button__menu:nth-child(1) { + margin-top: 0px; +} +.tlui-button__menu:nth-last-child(1) { + margin-bottom: 0px; +} +.tlui-button__checkbox { + padding-left: 8px; +} +.tlui-button__checkbox__indicator { + width: 15px; + height: 15px; +} +.tlui-main-toolbar__lock-button { + position: absolute; + pointer-events: all; + height: 40px; + width: 40px; + border-radius: var(--tl-radius-2); +} +.tlui-main-toolbar--horizontal .tlui-main-toolbar__lock-button { + top: 4px; + right: 0px; + min-width: 0px; +} +.tlui-main-toolbar--vertical .tlui-main-toolbar__lock-button { + bottom: 0px; + min-height: 0px; +} +.tlui-main-toolbar__lock-button::after { + top: 4px; + left: 8px; + inset: 4px; +} +.tlui-button__tool { + position: relative; + height: 48px; + width: 48px; +} +.tlui-button__tool::after { + inset: 4px; + border-radius: 8px; +} +.tlui-button__tool[aria-pressed=true] { + color: var(--tl-color-selected-contrast); +} +.tlui-button__tool[aria-pressed=true]:not(:disabled, :focus-visible):active { + color: var(--tl-color-selected-contrast); +} +.tlui-button__tool[aria-pressed=true]:not(:disabled)::after { + background: var(--tl-color-selected); + opacity: 1; +} +.tlui-layout__mobile .tlui-main-toolbar--horizontal .tlui-button__tool { + height: 48px; + width: 43px; +} +.tlui-layout__mobile .tlui-main-toolbar--horizontal .tlui-button__tool > .tlui-icon { + height: 16px; + width: 16px; +} +.tlui-row { + display: flex; + flex-direction: row; + padding: 0 2px; +} +.tlui-row > * { + margin-left: -2px; + margin-right: -2px; +} +.tlui-column { + display: flex; + flex-direction: column; + padding: 2px 0; +} +.tlui-column > * { + margin-top: -2px; + margin-bottom: -2px; +} +.tlui-grid { + display: grid; + grid-template-columns: repeat(4, 1fr); + grid-auto-flow: row; + overflow: hidden; + padding: 2px; +} +.tlui-grid > * { + margin: -2px; +} +.tlui-zoom-menu__button { + width: 60px; + min-width: 60px; + text-align: center; +} +.tlui-layout { + position: relative; + display: grid; + grid-template-columns: 1fr; + grid-template-rows: minmax(0px, 1fr) auto; + grid-auto-rows: auto; + height: 100%; + max-height: 100%; + overflow: clip; + pointer-events: none; + user-select: none; + contain: strict; + z-index: var(--tl-layer-panels); + transform: translate3d(0, 0, 0); + --tl-sab: env(safe-area-inset-bottom); + font-weight: 500; + line-height: 1.6; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + font-smooth: antialiased; + text-rendering: optimizeLegibility; +} +.tlui-layout__top { + grid-column: 1; + grid-row: 1; + display: flex; + min-width: 0px; + justify-content: space-between; +} +.tlui-layout__top__left { + display: flex; + flex-direction: column; + align-items: flex-start; + justify-content: flex-start; + width: 100%; + height: 100%; + flex: 0 1 0; +} +.tlui-layout__top__right { + display: flex; + flex-direction: column; + align-items: flex-end; + justify-content: flex-start; + height: 100%; + flex: 0 0 auto; + min-width: 0px; +} +.tlui-scrollable, +.tlui-scrollable * { + pointer-events: all; + touch-action: auto; + overscroll-behavior: none; +} +.tlui-helper-buttons { + position: relative; + display: flex; + flex-direction: column; + justify-content: flex-start; + align-items: flex-start; + width: min-content; + gap: var(--tl-space-3); + margin: var(--tl-space-2) var(--tl-space-3); + white-space: nowrap; + pointer-events: none; + z-index: var(--tl-layer-panels); +} +.tlui-icon { + flex-shrink: 0; + width: 18px; + height: 18px; + background-color: currentColor; +} +.tlui-icon__placeholder { + flex-shrink: 0; + width: 18px; + height: 18px; + background-color: transparent; +} +.tlui-icon__small { + width: 15px; + height: 15px; +} +.tlui-slider__container { + width: 100%; + padding: 0px var(--tl-space-4); +} +.tlui-slider { + position: relative; + display: flex; + align-items: center; + user-select: none; + touch-action: none; + width: 100%; +} +.tlui-slider__track { + position: relative; + flex-grow: 1; + height: 44px; + cursor: pointer; +} +.tlui-slider__track::after { + display: block; + position: absolute; + top: calc(50% - 2px); + content: ""; + height: 3px; + width: 100%; + background-color: var(--tl-color-muted-1); + border-radius: 14px; +} +.tlui-slider__range { + position: absolute; + top: calc(50% - 2px); + left: 0px; + height: 3px; + background-color: var(--tl-color-selected); + border-radius: 14px; +} +.tlui-slider__thumb { + all: unset; + cursor: grab; + display: block; + width: 18px; + height: 18px; + position: relative; + top: -1px; + background-color: var(--tl-color-panel); + border-radius: 999px; + box-shadow: inset 0px 0px 0px 2px var(--tl-color-text-1); +} +.tlui-slider__thumb:active { + cursor: grabbing; + box-shadow: inset 0px 0px 0px 2px var(--tl-color-text-1), var(--tl-shadow-1); +} +.tlui-input { + background: none; + margin: 0px; + position: relative; + z-index: var(--tl-layer-above); + height: 40px; + max-height: 40px; + display: flex; + align-items: center; + justify-content: center; + font-family: inherit; + font-size: 12px; + font-weight: inherit; + color: var(--tl-color-text-1); + padding: var(--tl-space-4); + padding-left: 0px; + border: none; + outline: none; + text-overflow: ellipsis; + width: 100%; + user-select: all; + text-rendering: optimizeLegibility; + -webkit-user-select: auto !important; +} +.tlui-input::placeholder { + color: var(--tl-color-text-3); +} +.tlui-input__wrapper { + width: 100%; + height: 44px; + display: flex; + align-items: center; + gap: var(--tl-space-4); + color: var(--tl-color-text); +} +.tlui-input__wrapper > .tlui-icon { + flex-shrink: 0; +} +@supports (-webkit-touch-callout: none) { + .tlui-input { + font-size: 16px; + } +} +.tlui-kbd { + font-family: inherit; + font-size: 11px; + line-height: 11px; + display: grid; + justify-items: center; + grid-auto-flow: column; + grid-template-columns: auto; + grid-auto-columns: minmax(1em, auto); + align-self: bottom; + color: currentColor; + margin-left: var(--tl-space-4); +} +.tlui-kbd > span { + width: 100%; + text-align: center; + display: inline; + margin: 0px; + padding: 2px; + border-radius: 2px; +} +.tlui-kbd > span:last-child { + padding-right: 0; +} +.tlui-kbd:not(:last-child) { + margin-right: var(--tl-space-2); +} +.tlui-focus-button { + z-index: var(--tl-layer-panels); + pointer-events: all; +} +.tlui-menu:empty { + display: none; +} +.tlui-menu { + z-index: var(--tl-layer-menus); + height: fit-content; + width: fit-content; + border-radius: var(--tl-radius-3); + pointer-events: all; + touch-action: auto; + overflow-y: auto; + overscroll-behavior: none; + background-color: var(--tl-color-panel); + box-shadow: var(--tl-shadow-3); +} +@media (max-height: 600px) { + .tlui-menu { + max-height: 70vh; + } +} +.tlui-menu::-webkit-scrollbar { + display: none; +} +.tlui-menu__group { + width: 100%; +} +.tlui-menu__group:empty { + display: none; +} +.tlui-menu__group { + border-bottom: 1px solid var(--tl-color-divider); +} +.tlui-menu__group:nth-last-of-type(1) { + border-bottom: none; +} +.tlui-menu__submenu__trigger { + --gradient-angle: 90deg; +} +.tlui-menu__submenu__trigger[data-direction=left] { + --gradient-angle: 270deg; +} +.tlui-menu__submenu__trigger[data-state=open]::after { + opacity: 1; + background: linear-gradient(var(--gradient-angle), rgba(144, 144, 144, 0) 0%, var(--tl-color-muted-2) 100%); +} +@media (hover: hover) { + .tlui-menu__submenu__trigger:is(:hover, [data-state="open"])::after { + opacity: 1; + background: linear-gradient(var(--gradient-angle), rgba(144, 144, 144, 0) 0%, var(--tl-color-muted-2) 100%); + } +} +.tlui-menu[data-size=large] > .tlui-menu__group { + min-width: initial; +} +.tlui-menu[data-size=medium] > .tlui-menu__group { + min-width: 144px; +} +.tlui-menu[data-size=small] > .tlui-menu__group { + min-width: 96px; +} +.tlui-menu[data-size=tiny] > .tlui-menu__group { + min-width: 0px; +} +.tlui-menu-click-capture { + position: fixed; + inset: 0; + z-index: var(--tl-layer-menu-click-capture); +} +.tlui-popover { + position: relative; + display: flex; + align-content: stretch; +} +.tlui-popover__content { + position: relative; + max-height: calc(var(--radix-popover-content-available-height) - 8px); + margin: 0px; + border: none; + border-radius: var(--tl-radius-3); + background-color: var(--tl-color-panel); + box-shadow: var(--tl-shadow-3); + z-index: var(--tl-layer-menus); + overflow: hidden; + overflow-y: auto; + touch-action: auto; + overscroll-behavior: none; + scrollbar-width: none; + -ms-overflow-style: none; +} +.tlui-menu-zone { + position: relative; + z-index: var(--tl-layer-panels); + width: fit-content; + border-right: 2px solid var(--tl-color-background); + border-bottom: 2px solid var(--tl-color-background); + border-bottom-right-radius: var(--tl-radius-4); + background-color: var(--tl-color-low); +} +.tlui-menu-zone *[data-state=open]::after { + background: linear-gradient(180deg, rgba(144, 144, 144, 0) 0%, var(--tl-color-muted-2) 100%); + opacity: 1; +} +@media (hover: hover) { + .tlui-menu-zone *[data-state=open]:not(:hover)::after { + background: linear-gradient(180deg, rgba(144, 144, 144, 0) 0%, var(--tl-color-muted-2) 100%); + opacity: 1; + } +} +.tlui-page-menu__wrapper { + position: relative; + display: flex; + flex-direction: column; + width: 260px; + height: fit-content; + max-height: 50vh; +} +.tlui-page-menu__trigger { + width: auto; +} +.tlui-page-menu__header { + display: flex; + flex-direction: row; + align-items: center; + width: 100%; + height: 40px; + padding-left: var(--tl-space-4); + border-bottom: 1px solid var(--tl-color-divider); +} +.tlui-page-menu__header > .tlui-button:nth-of-type(1) { + margin-right: -4px; +} +.tlui-page-menu__header__title { + color: var(--tl-color-text); + font-size: 12px; + flex-grow: 2; +} +.tlui-page-menu__name { + flex-grow: 2; + text-align: left; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} +.tlui-page-menu__list { + position: relative; + touch-action: auto; + flex-direction: column; + max-height: 100%; + overflow-x: hidden; + overflow-y: auto; + touch-action: auto; +} +.tlui-page-menu__item { + position: relative; +} +.tlui-page_menu__item__submenu[data-isediting=true] > .tlui-button[data-state=open] { + opacity: 1; +} +@media (hover: hover) { + .tlui-page-menu__item:hover > .tlui-page_menu__item__submenu > .tlui-button { + opacity: 1; + } +} +.tlui-page-menu__item:nth-of-type(n + 2) { + margin-top: -4px; +} +.tlui-page-menu__item__button { + width: 100%; +} +.tlui-page-menu__item__button:not(:only-child) { + flex-grow: 2; + margin-right: -2px; +} +.tlui-page-menu__item__button > span { + display: block; + flex-grow: 2; + text-align: left; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} +.tlui-page-menu__item__button > span { + padding-right: calc(40px - 12px); +} +@media (hover: hover) { + .tlui-page-menu__item__button > span { + padding-right: 0px; + } + .tlui-page-menu__item:hover > .tlui-page-menu__item__button > span { + padding-right: calc(40px - 12px); + } +} +.tlui-page-menu__item__button__checkbox { + padding-left: 35px; +} +.tlui-page-menu__item__button__check { + position: absolute; + left: 0px; + width: 24px; + padding-left: 10px; + display: inline-flex; + align-items: center; + justify-content: center; + color: var(--tl-color-text); +} +.tlui-page_menu__item__sortable { + position: absolute; + top: 0px; + left: 0px; + width: 100%; + height: fit-content; + display: flex; + flex-direction: row; + align-items: center; + overflow: hidden; + z-index: var(--tl-layer-above); +} +.tlui-page_menu__item__sortable__title { + flex: 1; +} +.tlui-page_menu__item__sortable__title > .tlui-input__wrapper { + height: 100%; +} +.tlui-page_menu__item__sortable:focus-visible { + z-index: var(--tl-layer-focused-input); +} +.tlui-page_menu__item__sortable__handle { + touch-action: none; + width: 32px; + min-width: 0px; + height: 40px; + cursor: grab; + color: var(--tl-color-text-3); + flex-shrink: 0; + margin-right: -9px; +} +.tlui-page_menu__item__sortable__handle:active { + cursor: grabbing; +} +.tlui-page-menu__item__input { + margin-left: 12px; + height: 100%; +} +.tlui-page_menu__item__submenu { + pointer-events: all; + position: absolute; + right: 0px; + top: 0px; + height: 100%; + cursor: pointer; + margin: 0px; + margin-left: -2px; + z-index: 10; +} +.tlui-page_menu__item__submenu > .tlui-button { + opacity: 0; +} +.tlui-page_menu__item__sortable:focus-visible > .tlui-page_menu__item__submenu > .tlui-button, +.tlui-page_menu__item__submenu[data-isediting=true], +.tlui-page_menu__item__submenu > .tlui-button[data-state=open], +.tlui-page_menu__item__submenu > .tlui-button:focus-visible { + opacity: 1; +} +.tlui-page_menu__item__submenu > .tlui-button[data-state=open]::after { + background: linear-gradient(90deg, rgba(144, 144, 144, 0) 0%, var(--tl-color-muted-2) 100%); + opacity: 1; +} +@media (hover: hover) { + .tlui-page_menu__item__submenu > .tlui-button[data-state=open]:not(:hover)::after { + background: linear-gradient(90deg, rgba(144, 144, 144, 0) 0%, var(--tl-color-muted-2) 100%); + opacity: 1; + } +} +.tl-container[data-coarse=true] .tlui-page_menu__item__submenu > .tlui-button { + opacity: 1; +} +.tlui-button__icon { + padding: 0px; +} +.tlui-page-menu__item__button .tlui-button__icon { + margin-right: 4px; +} +@media (hover: hover) { + .tlui-page_menu__item__submenu[data-isediting=true] > .tlui-button { + opacity: 0; + } + .tlui-page_menu__item__submenu:hover > .tlui-button { + opacity: 1; + } +} +.tl-skip-to-main-content { + position: fixed; + top: 48px; + left: -9999px; + padding: 8px 16px; + z-index: var(--tl-layer-toasts); +} +.tl-skip-to-main-content:focus { + left: 8px; +} +.tlui-offline-indicator { + display: flex; + color: var(--tl-color-background); + background-color: var(--tl-color-text); + border: none; + width: 32px; + height: 32px; + align-items: center; + justify-content: center; + border-radius: 99px; + cursor: default; + opacity: 0; + animation: tl-fade-in; + animation-duration: 0.12s; + animation-delay: 2s; + animation-fill-mode: forwards; +} +.tlui-style-panel__wrapper { + box-shadow: var(--tl-shadow-2); + border-radius: var(--tl-radius-3); + pointer-events: all; + background-color: var(--tl-color-panel); + height: fit-content; + max-height: 100%; + margin: 8px; + margin-top: 4px; + touch-action: auto; + overscroll-behavior: none; + overflow-y: auto; + overflow-x: hidden; + color: var(--tl-color-text); +} +.tlui-style-panel__wrapper:only-child { + margin-top: 8px; +} +.tlui-style-panel { + position: relative; + z-index: var(--tl-layer-panels); + pointer-events: all; + width: 148px; + max-width: 148px; +} +.tlui-style-panel[data-enhanced-a11y-mode=true] .tlui-button[data-isactive=true] { + border-radius: 10px; + outline: 2px solid var(--tl-color-text); + outline-offset: -5px; +} +.tlui-style-panel::-webkit-scrollbar { + display: none; +} +.tlui-style-panel .tlui-button.select { + width: 100%; +} +.tlui-style-panel__section { + display: flex; + position: relative; + flex-direction: column; +} +.tlui-style-panel__section:not(:nth-last-child(-n + 1 of .tlui-style-panel__section:not(:empty))) { + border-bottom: 1px solid var(--tl-color-divider); +} +.tlui-style-panel__section:has(.tlui-slider__container:last-child):not(:nth-last-child(-n + 1 of .tlui-style-panel__section:not(:empty))) { + margin-bottom: 7px; +} +.tlui-style-panel__section:empty { + display: none; +} +.tlui-style-panel__section .tlui-toolbar:has(.tlui-toolbar) { + flex-wrap: wrap; +} +.tlui-style-panel__section .tlui-toolbar:has(.tlui-toolbar) .tlui-style-panel__subheading { + margin-left: -2px; +} +.tlui-style-panel__section__common:not(:only-child) { + margin-bottom: 7px; + border-bottom: 1px solid var(--tl-color-divider); +} +.tlui-style-panel__dropdown-picker:only-child { + flex: 1; +} +.tlui-style-panel__double-select-picker { + display: flex; + grid-template-columns: 1fr auto; + align-items: center; + padding-left: var(--tl-space-4); + color: var(--tl-color-text-1); + font-size: 12px; +} +.tlui-style-panel__double-select-picker-label { + text-overflow: ellipsis; + overflow: hidden; + white-space: nowrap; + flex-grow: 2; + max-width: 100%; +} +.tlui-style-panel .tlui-button[data-state=open]::after { + opacity: 1; + background: linear-gradient(270deg, rgba(144, 144, 144, 0) 0%, var(--tl-color-muted-2) 100%); +} +@media (hover: hover) { + .tlui-style-panel .tlui-button[aria-expanded=true] { + background: none; + } + .tlui-style-panel .tlui-button[data-state=open]:not(:hover)::after { + opacity: 1; + background: linear-gradient(270deg, rgba(144, 144, 144, 0) 0%, var(--tl-color-muted-2) 100%); + } +} +.tlui-style-panel__section .tlui-style-panel__subheading, +.tlui-style-panel__section__common .tlui-style-panel__subheading, +.tlui-style-panel__subheading + .tlui-slider__container { + margin: 0; + padding: var(--tl-space-2) var(--tl-space-3) 0px var(--tl-space-4); + font-size: 12px; + font-weight: inherit; + line-height: inherit; +} +.tlui-style-panel .tlui-style-panel__subheading:nth-of-type(1) { + padding-top: var(--tl-space-3); +} +.tlui-style-panel__subheading + .tlui-slider__container { + padding-top: 0px; +} +.tlui-layout__bottom { + grid-row: 2; + width: 100%; +} +.tlui-layout__bottom__main { + width: 100%; + display: flex; + align-items: flex-end; + justify-content: center; +} +.tlui-navigation-panel { + display: flex; + width: min-content; + flex-direction: column; + z-index: var(--tl-layer-panels); + pointer-events: all; + position: absolute; + left: 0px; +} +.tlui-navigation-panel::before { + content: ""; + display: block; + position: absolute; + z-index: -1; + inset: -2px -2px 0px 0px; + border-radius: 0; + border-top: 2px solid var(--tl-color-background); + border-right: 2px solid var(--tl-color-background); + border-top-right-radius: var(--tl-radius-4); + background-color: var(--tl-color-low); +} +.tlui-navigation-panel[data-a11y=true]::before { + display: none; +} +.tlui-minimap { + width: 100%; + height: 96px; + min-height: 96px; + overflow: hidden; + padding: var(--tl-space-3); + padding-top: 0px; +} +.tlui-minimap__canvas { + position: relative; + width: 100%; + height: 100%; +} +.tlui-main-toolbar { + grid-column: 1 / span 3; + grid-row: 1; + display: flex; + align-items: center; + justify-content: center; + flex-grow: 2; +} +.tlui-main-toolbar--horizontal { + padding-bottom: calc(var(--tl-space-3) + var(--tl-sab)); + max-width: 100%; +} +.tlui-main-toolbar--vertical { + position: absolute; + left: 0; + top: 90px; + bottom: 140px; + padding-left: calc(var(--tl-space-3) + var(--tl-sab)); +} +[data-breakpoints-below*="6"] .tlui-main-toolbar--vertical { + bottom: 90px; +} +.tlui-main-toolbar__inner { + position: relative; + width: fit-content; + display: flex; + gap: var(--tl-space-3); + align-items: flex-start; +} +.tlui-main-toolbar--vertical .tlui-main-toolbar__inner { + flex-direction: column; +} +.tlui-main-toolbar--horizontal .tlui-main-toolbar__left { + width: fit-content; +} +.tlui-main-toolbar--vertical .tlui-main-toolbar__left { + display: flex; + height: fit-content; +} +.tlui-main-toolbar__extras { + position: relative; + z-index: var(--tl-layer-above); + pointer-events: none; + align-self: stretch; +} +.tlui-main-toolbar__extras:empty { + display: none; +} +.tlui-main-toolbar--horizontal .tlui-main-toolbar__extras { + height: 48px; + top: 6px; +} +.tlui-main-toolbar--vertical .tlui-main-toolbar__extras { + width: 48px; + order: 1; +} +.tlui-main-toolbar__extras__controls { + position: relative; + z-index: var(--tl-layer-above); + background-color: var(--tl-color-low); + border: 2px solid var(--tl-color-background); + pointer-events: all; +} +.tlui-main-toolbar--horizontal .tlui-main-toolbar__extras__controls { + border-top-left-radius: var(--tl-radius-4); + border-top-right-radius: var(--tl-radius-4); + margin-left: 8px; + margin-right: 0px; + width: fit-content; +} +.tlui-main-toolbar--vertical .tlui-main-toolbar__extras__controls { + border-top-right-radius: var(--tl-radius-4); + border-bottom-right-radius: var(--tl-radius-4); + margin-top: 8px; + margin-left: -2px; + margin-bottom: 0px; + width: fit-content; +} +.tlui-main-toolbar__tools { + border-radius: var(--tl-radius-4); + z-index: var(--tl-layer-panels); + pointer-events: all; + position: relative; + background: var(--tl-color-panel); + box-shadow: var(--tl-shadow-2); + contain: layout style paint; +} +.tlui-main-toolbar--horizontal .tlui-main-toolbar__mobile-style-panel { + align-self: flex-end; +} +.tlui-main-toolbar--vertical .tlui-main-toolbar__mobile-style-panel { + align-self: flex-start; +} +.tlui-main-toolbar--horizontal .tlui-main-toolbar__overflow { + width: 40px; + margin-left: 2px; +} +.tlui-main-toolbar--vertical .tlui-main-toolbar__overflow { + height: 40px; + margin-top: 2px; +} +.tlui-layout__mobile .tlui-main-toolbar--horizontal .tlui-main-toolbar__overflow { + width: 32px; + padding: 0px; +} +.tlui-main-toolbar--horizontal *[data-state=open]::after { + background: linear-gradient(0deg, rgba(144, 144, 144, 0) 0%, var(--tl-color-muted-2) 100%); + opacity: 1; +} +.tlui-main-toolbar--vertical *[data-state=open]::after { + background: linear-gradient(90deg, rgba(144, 144, 144, 0) 0%, var(--tl-color-muted-2) 100%); + opacity: 1; +} +.tlui-main-toolbar__overflow-content { + touch-action: none; +} +.tlui-main-toolbar__tools [data-toolbar-visible=false], +.tlui-main-toolbar__overflow-content [data-toolbar-visible=false] { + display: none; +} +.tlui-main-toolbar__group:empty { + display: none; +} +.tlui-row.tlui-main-toolbar__group:not(:nth-last-child(-n + 1 of [data-toolbar-visible="true"])) { + border-right: 1px solid var(--color-divider); + margin-right: 2px; +} +.tlui-column.tlui-main-toolbar__group:not(:nth-last-child(-n + 1 of [data-toolbar-visible="true"])) { + border-bottom: 1px solid var(--color-divider); + margin-bottom: 2px; +} +.tlui-grid.tlui-main-toolbar__group { + grid-column: 1 / span 4; +} +.tlui-grid.tlui-main-toolbar__group:not(:nth-last-child(-n + 1 of [data-toolbar-visible="true"])) { + border-bottom: 1px solid var(--color-divider); + margin-bottom: 2px; +} +@media (hover: hover) { + .tlui-main-toolbar--horizontal *[data-state=open]:not(:hover)::after { + background: linear-gradient(0deg, rgba(144, 144, 144, 0) 0%, var(--tl-color-muted-2) 100%); + opacity: 1; + } + .tlui-main-toolbar--vertical *[data-state=open]:not(:hover)::after { + background: linear-gradient(90deg, rgba(144, 144, 144, 0) 0%, var(--tl-color-muted-2) 100%); + opacity: 1; + } +} +.tlui-tooltip { + font-size: 12px; + padding: 2px 8px; + border-radius: 4px; + background-color: var(--tl-color-tooltip); + box-shadow: none; + color: var(--tl-color-text-shadow); + max-width: 400px; + width: fit-content; + text-align: center; + will-change: transform, opacity; + z-index: 2; +} +.tlui-tooltip__arrow { + fill: var(--tl-color-tooltip); + will-change: opacity; +} +[data-radix-popper-content-wrapper]:has(.tlui-tooltip) { + z-index: var(--tl-layer-toasts) !important; + pointer-events: none; +} +.tlui-debug-panel { + background-color: var(--tl-color-low); + width: 100%; + display: grid; + align-items: center; + grid-template-columns: 1fr auto auto auto; + justify-content: space-between; + padding-left: var(--tl-space-4); + border-top: 1px solid var(--tl-color-background); + font-size: 12px; + color: var(--tl-color-text-1); + z-index: var(--tl-layer-panels); + pointer-events: all; +} +.tlui-debug-panel__current-state { + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +} +.tlui-debug-panel__fps { + margin-right: 8px; +} +.tlui-debug-panel__fps__slow { + font-weight: bold; + color: var(--tl-color-danger); +} +.tlui-a11y-audit { + border-collapse: collapse; +} +.tlui-a11y-audit th, +.tlui-a11y-audit td { + padding: 8px; + border: 1px solid var(--tl-color-low-border); +} +.tlui-toast__viewport { + position: absolute; + inset: 0px; + margin: 0px; + display: flex; + align-items: flex-end; + justify-content: flex-end; + flex-direction: column; + gap: var(--tl-space-3); + pointer-events: none; + padding: 0px var(--tl-space-3) 64px 0px; + z-index: var(--tl-layer-toasts); +} +.tlui-toast__viewport > * { + pointer-events: all; +} +.tlui-toast__icon { + padding-top: 11px; + padding-left: var(--tl-space-4); + color: var(--tl-color-text-1); +} +.tlui-toast__container { + min-width: 200px; + display: flex; + flex-direction: row; + background-color: var(--tl-color-panel); + box-shadow: var(--tl-shadow-2); + border-radius: var(--tl-radius-3); + font-size: 12px; +} +.tlui-toast__container[data-severity=success] .tlui-icon { + color: var(--tl-color-success); +} +.tlui-toast__container[data-severity=info] .tlui-icon { + color: var(--tl-color-info); +} +.tlui-toast__container[data-severity=warning] .tlui-icon { + color: var(--tl-color-warning); +} +.tlui-toast__container[data-severity=error] .tlui-icon { + color: var(--tl-color-danger); +} +.tlui-toast__main { + flex-grow: 2; + max-width: 280px; +} +.tlui-toast__content { + padding: var(--tl-space-4); + display: flex; + line-height: 1.4; + flex-direction: column; + gap: var(--tl-space-3); +} +.tlui-toast__main[data-actions=true] .tlui-toast__content { + padding-bottom: var(--tl-space-2); +} +.tlui-toast__title { + font-weight: bold; + color: var(--tl-color-text-1); + line-height: 16px; +} +.tlui-toast__description { + color: var(--tl-color-text-1); + padding: var(--tl-space-3); + margin: 0px; + padding: 0px; +} +.tlui-toast__icon + .tlui-toast__main > .tlui-toast__actions { + padding-left: 0px; +} +.tlui-toast__actions { + display: flex; + flex-direction: row; + justify-content: flex-start; + margin-left: 0; +} +.tlui-toast__close { + align-self: flex-end; + flex-shrink: 0; +} +@media (prefers-reduced-motion: no-preference) { + .tlui-toast__container[data-state=open] { + animation: tlui-slide-in 200ms cubic-bezier(0.785, 0.135, 0.15, 0.86); + } + .tlui-toast__container[data-state=closed] { + animation: tlui-fade-out 100ms ease-in; + } + .tlui-toast__container[data-swipe=move] { + transform: translateX(var(--radix-toast-swipe-move-x)); + } + .tlui-toast__container[data-swipe=cancel] { + transform: translateX(0); + transition: transform 200ms ease-out; + } + .tlui-toast__container[data-swipe=end] { + animation: tlui-slide-out 100ms ease-out; + } +} +.tlui-dialog__overlay { + position: absolute; + top: 0px; + left: 0px; + width: 100%; + height: 100%; + z-index: var(--tl-layer-canvas-overlays); + background-color: var(--tl-color-overlay); + pointer-events: all; + animation: tl-fade-in 0.12s ease-out; + display: grid; + place-items: center; + overflow-y: auto; + padding: 0px var(--tl-space-3); +} +.tlui-dialog__content { + display: flex; + flex-direction: column; + position: relative; + cursor: default; + background-color: var(--tl-color-panel); + box-shadow: var(--tl-shadow-3); + border-radius: var(--tl-radius-3); + font-size: 12px; + overflow: hidden; + min-width: 300px; + max-width: 100%; + max-height: 80%; +} +.tlui-dialog__header { + position: relative; + display: flex; + align-items: center; + flex: 0; + z-index: var(--tl-layer-header-footer); + padding-left: var(--tl-space-4); + color: var(--tl-color-text); + height: 40px; +} +.tlui-dialog__header__title { + flex: 1; + font-weight: inherit; + font-size: 12px; + margin: 0px; + color: var(--tl-color-text-1); +} +.tlui-dialog__header__close { + justify-self: flex-end; +} +.tlui-dialog__body { + padding: var(--tl-space-4) var(--tl-space-4); + flex: 0 1; + overflow-y: auto; + overflow-x: hidden; + color: var(--tl-color-text-1); + user-select: all; + -webkit-user-select: text; +} +.tlui-dialog__body a { + color: var(--tl-color-selected); +} +.tlui-dialog__body ul, +.tlui-dialog__body ol { + padding-left: 16px; + display: flex; + flex-direction: column; + gap: var(--tl-space-2); +} +.tlui-dialog__footer { + position: relative; + min-height: 12px; + z-index: var(--tl-layer-header-footer); +} +.tlui-dialog__footer__actions { + display: flex; + align-items: center; + justify-content: flex-end; +} +.tlui-dialog__footer__actions > .tlui-button:nth-last-child(n + 2) { + margin-right: -4px; +} +.tlui-edit-link-dialog { + display: flex; + flex-direction: column; + gap: var(--tl-space-4); + color: var(--tl-color-text); +} +.tlui-edit-link-dialog__input { + background-color: var(--tl-color-muted-2); + flex-grow: 2; + border-radius: var(--tl-radius-2); + padding: 0px var(--tl-space-4); +} +.tlui-embed__spacer { + flex-grow: 2; + min-height: 0px; + margin-left: calc(-1 * var(--tl-space-4)); + margin-top: calc(-1 * var(--tl-space-4)); + pointer-events: none; +} +.tlui-embed-dialog__list { + display: flex; + flex-direction: column; + padding: 0px var(--tl-space-3) var(--tl-space-4) var(--tl-space-3); +} +.tlui-embed-dialog__item__image { + width: 24px; + height: 24px; + display: flex; + align-items: center; + justify-content: center; + background-size: contain; + background-repeat: no-repeat; + background-position: center center; + background-color: var(--tl-color-selected-contrast); + border-radius: var(--tl-radius-1); +} +.tlui-embed-dialog__enter { + display: flex; + flex-direction: column; + gap: var(--tl-space-4); + color: var(--tl-color-text-1); +} +.tlui-embed-dialog__input { + background-color: var(--tl-color-muted-2); + flex-grow: 2; + border-radius: var(--tl-radius-2); + padding: 0px var(--tl-space-4); +} +.tlui-embed-dialog__warning { + color: var(--tl-color-danger); + text-shadow: none; +} +.tlui-embed-dialog__instruction__link { + display: flex; + gap: var(--tl-space-1); + margin-top: var(--tl-space-4); +} +.tlui-embed-dialog__enter a { + color: var(--tl-color-text-1); +} +.tlui-shortcuts-dialog__header { + border-bottom: 1px solid var(--tl-color-divider); +} +.tlui-shortcuts-dialog__body { + position: relative; + columns: 3; + column-gap: var(--tl-space-9); + pointer-events: all; + touch-action: auto; + overflow-x: auto; +} +.tlui-shortcuts-dialog__body__tablet { + columns: 2; +} +.tlui-shortcuts-dialog__body__mobile { + columns: 1; +} +.tlui-shortcuts-dialog__group { + break-inside: avoid-column; + padding-bottom: var(--tl-space-6); +} +.tlui-shortcuts-dialog__group__title { + font-size: inherit; + font-weight: inherit; + margin: 0px; + color: var(--tl-color-text-3); + height: 32px; + display: flex; + align-items: center; +} +.tlui-shortcuts-dialog__group__content { + display: flex; + flex-direction: column; + color: var(--tl-color-text-1); +} +.tlui-shortcuts-dialog__key-pair { + display: flex; + gap: var(--tl-space-4); + align-items: center; + justify-content: space-between; + height: 32px; +} +.tlui-shortcuts-dialog__key-pair__key { + flex: 1; + font-size: 12px; +} +.tlui-language-menu { + max-height: 500px; +} +.tlui-language-menu::after { + content: ""; + display: block; + position: absolute; + bottom: 0px; + left: 0px; + right: 0px; + height: 24px; + background: linear-gradient(to bottom, var(--tl-color-panel-transparent) 0%, var(--tl-color-panel) 90%, var(--tl-color-panel) 100%); + border-bottom-left-radius: var(--tl-radius-3); + border-bottom-right-radius: var(--tl-radius-3); + pointer-events: none; +} +.tlui-actions-menu { + max-height: calc(100vh - 150px); +} +.tlui-help-menu { + pointer-events: all; + position: absolute; + bottom: var(--tl-space-2); + right: var(--tl-space-2); + z-index: var(--tl-layer-panels); + border: 2px solid var(--tl-color-background); + border-radius: 100%; +} +.tlui-share-zone { + padding: 0px 0px 0px 0px; + display: flex; + flex-direction: row; + justify-content: flex-end; + z-index: var(--tl-layer-panels); + align-items: center; + padding-top: 2px; + padding-right: 4px; +} +.tlui-people-menu__avatars-button { + display: flex; + align-items: center; + justify-content: flex-end; + background: none; + border: none; + cursor: pointer; + pointer-events: all; + border-radius: var(--tl-radius-1); + padding-right: 1px; + height: 100%; +} +.tlui-people-menu__avatars { + display: flex; + flex-direction: row; +} +.tlui-people-menu__avatar { + height: 24px; + width: 24px; + border: 2px solid var(--tl-color-background); + background-color: var(--tl-color-low); + border-radius: 100%; + display: flex; + align-items: center; + justify-content: center; + position: relative; + font-size: 10px; + font-weight: bold; + text-align: center; + color: var(--tl-color-selected-contrast); + z-index: 2; +} +.tlui-people-menu__avatar:nth-of-type(n + 2) { + margin-left: -12px; +} +.tlui-people-menu__avatars-button[data-state=open] { + opacity: 1; +} +@media (hover: hover) { + .tlui-people-menu__avatars-button:hover .tlui-people-menu__avatar { + border-color: var(--tl-color-low); + } +} +.tlui-people-menu__more { + min-width: 0px; + font-size: 11px; + font-weight: 600; + color: var(--tl-color-text-1); + font-family: inherit; + padding: 0px 4px; +} +.tlui-people-menu__more::after { + border-radius: var(--tl-radius-2); + inset: 0px; +} +.tlui-people-menu__wrapper { + position: relative; + display: flex; + flex-direction: column; + width: 220px; + height: fit-content; + max-height: 50vh; +} +.tlui-people-menu__section { + position: relative; + touch-action: auto; + flex-direction: column; + max-height: 100%; + overflow-x: hidden; + overflow-y: auto; + touch-action: auto; +} +.tlui-people-menu__section:first-child, +.tlui-people-menu__section:last-child { + flex-shrink: 0; +} +.tlui-people-menu__section:not(:last-child) { + border-bottom: 1px solid var(--tl-color-divider); +} +.tlui-people-menu__user { + display: flex; + justify-content: flex-start; + align-items: center; +} +.tlui-people-menu__user__color { + flex-shrink: 0; +} +.tlui-people-menu__user__name { + text-align: left; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + font-size: 12px; + color: var(--tl-color-text-1); + max-width: 100%; + flex-grow: 1; + flex-shrink: 100; +} +.tlui-people-menu__user__label { + text-align: left; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + font-size: 12px; + color: var(--tl-color-text-3); + flex-grow: 100; + flex-shrink: 0; + margin-left: 4px; +} +.tlui-people-menu__user__input { + flex-grow: 2; + height: 100%; + padding: 0px; + margin: 0px; +} +.tlui-people-menu__user > .tlui-input__wrapper { + width: auto; + display: flex; + align-items: auto; + flex-grow: 2; + gap: 8px; + height: 100%; + padding: 0px; +} +.tlui-people-menu__item { + position: relative; +} +.tlui-people-menu__item:last-of-type .tlui-button__menu { + margin-bottom: 0; +} +.tlui-people-menu__item__button { + padding: 0 11px; + overflow: hidden; +} +.tlui-people-menu__item > .tlui-button__menu { + width: auto; + display: flex; + align-items: auto; + justify-content: flex-start; + flex-grow: 2; + gap: 11px; +} +.tlui-people-menu__name { + text-align: left; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} +.tlui-people-menu__item__follow { + position: absolute; + top: 0px; + right: 0px; + max-width: 40px; + flex-shrink: 0; +} +.tlui-people-menu__item[data-follow=true], +.tlui-people-menu__item:has(.tlui-button:focus-visible) { + padding-right: 36px; +} +.tlui-people-menu__item[data-follow=true] .tlui-people-menu__item__follow, +.tlui-people-menu__item:has(.tlui-button:focus-visible) .tlui-people-menu__item__follow { + opacity: 1; +} +@media (hover: hover) { + .tlui-people-menu__item__follow { + opacity: 0; + } + .tlui-people-menu__item:hover { + padding-right: 36px; + } + .tlui-people-menu__item:hover .tlui-people-menu__item__follow { + opacity: 1; + } +} +.tlui-following-indicator { + display: block; + position: absolute; + inset: 0px; + border-width: 2px; + border-style: solid; + z-index: var(--tl-layer-following-indicator); + pointer-events: none; +} +.tlui-contextual-toolbar { + position: absolute; +} +.tlui-contextual-toolbar, +.tlui-contextual-toolbar * { + pointer-events: all; +} +.tlui-contextual-toolbar [data-isactive=true]::after { + background-color: var(--tl-color-muted-2); + opacity: 1; +} +.tlui-contextual-toolbar { + opacity: 0; + transition: opacity 0.08s ease-in-out; +} +.tlui-contextual-toolbar, +.tlui-contextual-toolbar * { + pointer-events: none; +} +.tlui-contextual-toolbar[data-visible=true] { + opacity: 1; + z-index: var(--tl-layer-menus); +} +.tlui-contextual-toolbar[data-interactive=true], +.tlui-contextual-toolbar[data-interactive=true] * { + pointer-events: all; +} +.tlui-rich-text__toolbar-link-input { + margin-left: 12px; + width: 148px; +} +.tlui-media__toolbar-alt-text-input { + margin-left: 12px; + min-width: 200px; +} +.tlui-contextual-toolbar .tlui-input__wrapper { + height: 40px; +} +.tlui-image__toolbar .tlui-slider__container { + width: 125px; +} +.tlui-image__toolbar .tlui-slider { + height: 100%; +} +.tlui-image__toolbar .tlui-slider__track { + height: 32px; +} +.tlui-image__toolbar .tlui-slider__thumb { + width: 14px; + height: 14px; +} +@keyframes tlui-fade-out { + 0% { + opacity: 1; + } + 100% { + opacity: 0; + } +} +@keyframes tlui-slide-in { + from { + transform: translateX(calc(100% + var(--tl-space-3))); + } + to { + transform: translateX(0px); + } +} +@keyframes tlui-slide-out { + from { + transform: translateX(var(--radix-toast-swipe-end-x)); + } + to { + transform: translateX(calc(100% + var(--tl-space-3))); + } +} +/*# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL3RsZHJhd0A0LjMuMV9AZmxvYXRpbmctdWkrZG9tQDEuNy41X0B0eXBlcytyZWFjdC1kb21AMTcuMC4xM19AdHlwZXMrcmVhY3RAMTcuMC4zOV9yZWFjdC1kb21AMV9qYzdzbWliMjd4d2J5dmpudHJudmJoZ21jYS9ub2RlX21vZHVsZXMvdGxkcmF3L3RsZHJhdy5jc3MiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qIFRISVMgQ1NTIEZJTEUgSVMgR0VORVJBVEVEISBETyBOT1QgRURJVC4gT1IgRURJVC4gSSdNIEEgQ09NTUVOVCBOT1QgQSBDT1AgKi8gXG4vKiBUaGlzIGZpbGUgaXMgY3JlYXRlZCBieSB0aGUgY29weS1jc3MtZmlsZXMubWpzIHNjcmlwdCBpbiBwYWNrYWdlcy90bGRyYXcuICovXG4vKiBJdCBjb21iaW5lcyBAdGxkcmF3L2VkaXRvcidzIGVkaXRvci5jc3MgYW5kIHRsZHJhdydzIHVpLmNzcyAqL1xuXG4vKiBAdGxkcmF3L2VkaXRvciAqL1xuXG4udGwtY29udGFpbmVyIHtcblx0d2lkdGg6IDEwMCU7XG5cdGhlaWdodDogMTAwJTtcblx0Zm9udC1zaXplOiAxMnB4O1xuXHQvKiBTcGFjaW5nICovXG5cdC0tdGwtc3BhY2UtMTogMnB4O1xuXHQtLXRsLXNwYWNlLTI6IDRweDtcblx0LS10bC1zcGFjZS0zOiA4cHg7XG5cdC0tdGwtc3BhY2UtNDogMTJweDtcblx0LS10bC1zcGFjZS01OiAxNnB4O1xuXHQtLXRsLXNwYWNlLTY6IDIwcHg7XG5cdC0tdGwtc3BhY2UtNzogMjhweDtcblx0LS10bC1zcGFjZS04OiAzMnB4O1xuXHQtLXRsLXNwYWNlLTk6IDY0cHg7XG5cdC0tdGwtc3BhY2UtMTA6IDcycHg7XG5cdC8qIFJhZGl1cyAqL1xuXHQtLXRsLXJhZGl1cy0wOiAycHg7XG5cdC0tdGwtcmFkaXVzLTE6IDRweDtcblx0LS10bC1yYWRpdXMtMjogNnB4O1xuXHQtLXRsLXJhZGl1cy0zOiA5cHg7XG5cdC0tdGwtcmFkaXVzLTQ6IDExcHg7XG5cblx0LyogQ2FudmFzIHotaW5kZXggKi9cblx0LS10bC1sYXllci1jYW52YXMtaGlkZGVuOiAtOTk5OTk5O1xuXHQtLXRsLWxheWVyLWNhbnZhcy1iYWNrZ3JvdW5kOiAxMDA7XG5cdC0tdGwtbGF5ZXItY2FudmFzLWdyaWQ6IDE1MDtcblx0LS10bC1sYXllci13YXRlcm1hcms6IDIwMDtcblx0LS10bC1sYXllci1jYW52YXMtc2hhcGVzOiAzMDA7XG5cdC0tdGwtbGF5ZXItY2FudmFzLW92ZXJsYXlzOiA1MDA7XG5cdC0tdGwtbGF5ZXItY2FudmFzLWluLWZyb250OiA2MDA7XG5cdC0tdGwtbGF5ZXItY2FudmFzLWJsb2NrZXI6IDEwMDAwO1xuXG5cdC8qIENhbnZhcyBvdmVybGF5cyB6LWluZGV4ICovXG5cdC0tdGwtbGF5ZXItb3ZlcmxheXMtY29sbGFib3JhdG9yLXNjcmliYmxlOiAxMDtcblx0LS10bC1sYXllci1vdmVybGF5cy1jb2xsYWJvcmF0b3ItYnJ1c2g6IDIwO1xuXHQtLXRsLWxheWVyLW92ZXJsYXlzLWNvbGxhYm9yYXRvci1zaGFwZS1pbmRpY2F0b3I6IDMwO1xuXHQtLXRsLWxheWVyLW92ZXJsYXlzLXVzZXItc2NyaWJibGU6IDQwO1xuXHQtLXRsLWxheWVyLW92ZXJsYXlzLXVzZXItYnJ1c2g6IDUwO1xuXHQtLXRsLWxheWVyLW92ZXJsYXlzLXVzZXItc25hcGxpbmU6IDkwO1xuXHQtLXRsLWxheWVyLW92ZXJsYXlzLXNlbGVjdGlvbi1mZzogMTAwO1xuXHQvKiBVc2VyIGhhbmRsZXMgbmVlZCB0byBiZSBhYm92ZSBzZWxlY3Rpb24gZWRnZXMgLyBjb3JuZXJzLCBtYXR0ZXJzIGZvciBzdGlja3kgbm90ZSBjbG9uZSBoYW5kbGVzICovXG5cdC0tdGwtbGF5ZXItb3ZlcmxheXMtdXNlci1oYW5kbGVzOiAxMDU7XG5cdC0tdGwtbGF5ZXItb3ZlcmxheXMtdXNlci1pbmRpY2F0b3ItaGludDogMTEwO1xuXHQtLXRsLWxheWVyLW92ZXJsYXlzLWN1c3RvbTogMTE1O1xuXHQtLXRsLWxheWVyLW92ZXJsYXlzLWNvbGxhYm9yYXRvci1jdXJzb3ItaGludDogMTIwO1xuXHQtLXRsLWxheWVyLW92ZXJsYXlzLWNvbGxhYm9yYXRvci1jdXJzb3I6IDEzMDtcblxuXHQvKiBUZXh0IGVkaXRvciB6LWluZGV4ICovXG5cdC0tdGwtbGF5ZXItdGV4dC1jb250YWluZXI6IDE7XG5cdC0tdGwtbGF5ZXItdGV4dC1jb250ZW50OiAzO1xuXHQtLXRsLWxheWVyLXRleHQtZWRpdG9yOiA0O1xuXG5cdC8qIEVycm9yIGZhbGxiYWNrIHotaW5kZXggKi9cblx0LS10bC1sYXllci1lcnJvci1vdmVybGF5OiAxO1xuXHQtLXRsLWxheWVyLWVycm9yLWNhbnZhczogMjtcblx0LS10bC1sYXllci1lcnJvci1jYW52YXMtYWZ0ZXI6IDM7XG5cdC0tdGwtbGF5ZXItZXJyb3ItY29udGVudDogNDtcblxuXHQvKiBNaXNjICovXG5cdC0tdGwtem9vbTogMTtcblxuXHQvKiBDdXJzb3IgU1ZHcyAqL1xuXHQtLXRsLWN1cnNvci1ub25lOiBub25lO1xuXHQtLXRsLWN1cnNvci1kZWZhdWx0OlxuXHRcdHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCw8c3ZnIGhlaWdodD0nMzInIHdpZHRoPSczMicgdmlld0JveD0nMCAwIDMyIDMyJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHN0eWxlPSdjb2xvcjogYmxhY2s7Jz48ZGVmcz48ZmlsdGVyIGlkPSdzaGFkb3cnIHk9Jy00MCUnIHg9Jy00MCUnIHdpZHRoPScxODBweCcgaGVpZ2h0PScxODAlJyBjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnM9J3NSR0InPjxmZURyb3BTaGFkb3cgZHg9JzEnIGR5PScxJyBzdGREZXZpYXRpb249JzEuMicgZmxvb2Qtb3BhY2l0eT0nLjUnLz48L2ZpbHRlcj48L2RlZnM+PGcgZmlsbD0nbm9uZScgdHJhbnNmb3JtPSdyb3RhdGUoMCAxNiAxNiknIGZpbHRlcj0ndXJsKCUyM3NoYWRvdyknPjxwYXRoIGQ9J20xMiAyNC40MjE5di0xNi4wMTVsMTEuNTkxIDExLjYxOWgtNi43ODFsLS40MTEuMTI0eicgZmlsbD0nd2hpdGUnLz48cGF0aCBkPSdtMjEuMDg0NSAyNS4wOTYyLTMuNjA1IDEuNTM1LTQuNjgyLTExLjA4OSAzLjY4Ni0xLjU1M3onIGZpbGw9J3doaXRlJy8+PHBhdGggZD0nbTE5Ljc1MSAyNC40MTU1LTEuODQ0Ljc3NC0zLjEtNy4zNzQgMS44NDEtLjc3NXonIGZpbGw9J2JsYWNrJy8+PHBhdGggZD0nbTEzIDEwLjgxNHYxMS4xODhsMi45NjktMi44NjYuNDI4LS4xMzloNC43Njh6JyBmaWxsPSdibGFjaycvPjwvZz48L3N2Zz5cIilcblx0XHRcdDEyIDgsXG5cdFx0ZGVmYXVsdDtcblx0LS10bC1jdXJzb3ItcG9pbnRlcjpcblx0XHR1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsPHN2ZyBoZWlnaHQ9JzMyJyB3aWR0aD0nMzInIHZpZXdCb3g9JzAgMCAzMiAzMicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyBzdHlsZT0nY29sb3I6IGJsYWNrOyc+PGRlZnM+PGZpbHRlciBpZD0nc2hhZG93JyB5PSctNDAlJyB4PSctNDAlJyB3aWR0aD0nMTgwcHgnIGhlaWdodD0nMTgwJScgY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzPSdzUkdCJz48ZmVEcm9wU2hhZG93IGR4PScxJyBkeT0nMScgc3RkRGV2aWF0aW9uPScxLjInIGZsb29kLW9wYWNpdHk9Jy41Jy8+PC9maWx0ZXI+PC9kZWZzPjxnIGZpbGw9J25vbmUnIHRyYW5zZm9ybT0ncm90YXRlKDAgMTYgMTYpJyBmaWx0ZXI9J3VybCglMjNzaGFkb3cpJz48cGF0aCBkPSdtMTMuMzMxNSAyMS4zNzk5Yy0uMjg0LS4zNTktLjYyOS0xLjA5My0xLjI0My0xLjk4NC0uMzQ4LS41MDQtMS4yMTEtMS40NTMtMS40NjgtMS45MzUtLjIyMy0uNDI2LS4xOTktLjYxNy0uMTQ2LS45Ny4wOTQtLjYyOC43MzgtMS4xMTcgMS40MjUtMS4wNTEuNTE5LjA0OS45NTkuMzkyIDEuMzU1LjcxNi4yMzkuMTk1LjUzMy41NzQuNzEuNzg4LjE2My4xOTYuMjAzLjI3Ny4zNzcuNTA5LjIzLjMwNy4zMDIuNDU5LjIxNC4xMjEtLjA3MS0uNDk2LS4xODctMS4zNDMtLjM1NS0yLjA5Mi0uMTI4LS41NjgtLjE1OS0uNjU3LS4yODEtMS4wOTMtLjEyOS0uNDY0LS4xOTUtLjc4OS0uMzE2LTEuMjgxLS4wODQtLjM0OC0uMjM1LTEuMDU5LS4yNzYtMS40NTktLjA1Ny0uNTQ3LS4wODctMS40MzkuMjY0LTEuODQ5LjI3NS0uMzIxLjkwNi0uNDE4IDEuMjk3LS4yMi41MTIuMjU5LjgwMyAxLjAwMy45MzYgMS4zLjIzOS41MzQuMzg3IDEuMTUxLjUxNiAxLjk2MS4xNjQgMS4wMzEuNDY2IDIuNDYyLjQ3NiAyLjc2My4wMjQtLjM2OS0uMDY4LTEuMTQ2LS4wMDQtMS41LjA1OC0uMzIxLjMyOC0uNjk0LjY2Ni0uNzk1LjI4Ni0uMDg1LjYyMS0uMTE2LjkxNi0uMDU1LjMxMy4wNjQuNjQzLjI4OC43NjYuNDk5LjM2Mi42MjQuMzY5IDEuODk5LjM4NCAxLjgzMS4wODYtLjM3Ni4wNzEtMS4yMjkuMjg0LTEuNTg0LjE0LS4yMzQuNDk3LS40NDUuNjg3LS40NzkuMjk0LS4wNTIuNjU1LS4wNjguOTY0LS4wMDguMjQ5LjA0OS41ODYuMzQ1LjY3Ny40ODcuMjE4LjM0NC4zNDIgMS4zMTcuMzc5IDEuNjU4LjAxNS4xNDEuMDc0LS4zOTIuMjkzLS43MzYuNDA2LS42MzkgMS44NDMtLjc2MyAxLjg5OC42MzkuMDI1LjY1NC4wMi42MjQuMDIgMS4wNjQgMCAuNTE3LS4wMTIuODI4LS4wNCAxLjIwMi0uMDMxLjQtLjExNyAxLjMwNC0uMjQyIDEuNzQyLS4wODYuMzAxLS4zNzEuOTc4LS42NTIgMS4zODQgMCAwLTEuMDc0IDEuMjUtMS4xOTEgMS44MTMtLjExOC41NjItLjA3OS41NjYtLjEwMi45NjUtLjAyMy4zOTguMTIxLjkyMi4xMjEuOTIycy0uODAyLjEwNC0xLjIzNC4wMzVjLS4zOTEtLjA2My0uODc1LS44NDEtMS0xLjA3OS0uMTcyLS4zMjgtLjUzOS0uMjY1LS42ODItLjAyMy0uMjI1LjM4My0uNzA5IDEuMDctMS4wNTEgMS4xMTMtLjY2OC4wODQtMi4wNTQuMDMxLTMuMTM5LjAyIDAgMCAuMTg1LTEuMDExLS4yMjctMS4zNTgtLjMwNS0uMjU5LS44My0uNzg0LTEuMTQ0LTEuMDZ6JyBmaWxsPSd3aGl0ZScvPjxnIHN0cm9rZT0nYmxhY2snIHN0cm9rZS1saW5lY2FwPSdyb3VuZCcgc3Ryb2tlLXdpZHRoPScuNzUnPjxwYXRoIGQ9J20xMy4zMzE1IDIxLjM3OTljLS4yODQtLjM1OS0uNjI5LTEuMDkzLTEuMjQzLTEuOTg0LS4zNDgtLjUwNC0xLjIxMS0xLjQ1My0xLjQ2OC0xLjkzNS0uMjIzLS40MjYtLjE5OS0uNjE3LS4xNDYtLjk3LjA5NC0uNjI4LjczOC0xLjExNyAxLjQyNS0xLjA1MS41MTkuMDQ5Ljk1OS4zOTIgMS4zNTUuNzE2LjIzOS4xOTUuNTMzLjU3NC43MS43ODguMTYzLjE5Ni4yMDMuMjc3LjM3Ny41MDkuMjMuMzA3LjMwMi40NTkuMjE0LjEyMS0uMDcxLS40OTYtLjE4Ny0xLjM0My0uMzU1LTIuMDkyLS4xMjgtLjU2OC0uMTU5LS42NTctLjI4MS0xLjA5My0uMTI5LS40NjQtLjE5NS0uNzg5LS4zMTYtMS4yODEtLjA4NC0uMzQ4LS4yMzUtMS4wNTktLjI3Ni0xLjQ1OS0uMDU3LS41NDctLjA4Ny0xLjQzOS4yNjQtMS44NDkuMjc1LS4zMjEuOTA2LS40MTggMS4yOTctLjIyLjUxMi4yNTkuODAzIDEuMDAzLjkzNiAxLjMuMjM5LjUzNC4zODcgMS4xNTEuNTE2IDEuOTYxLjE2NCAxLjAzMS40NjYgMi40NjIuNDc2IDIuNzYzLjAyNC0uMzY5LS4wNjgtMS4xNDYtLjAwNC0xLjUuMDU4LS4zMjEuMzI4LS42OTQuNjY2LS43OTUuMjg2LS4wODUuNjIxLS4xMTYuOTE2LS4wNTUuMzEzLjA2NC42NDMuMjg4Ljc2Ni40OTkuMzYyLjYyNC4zNjkgMS44OTkuMzg0IDEuODMxLjA4Ni0uMzc2LjA3MS0xLjIyOS4yODQtMS41ODQuMTQtLjIzNC40OTctLjQ0NS42ODctLjQ3OS4yOTQtLjA1Mi42NTUtLjA2OC45NjQtLjAwOC4yNDkuMDQ5LjU4Ni4zNDUuNjc3LjQ4Ny4yMTguMzQ0LjM0MiAxLjMxNy4zNzkgMS42NTguMDE1LjE0MS4wNzQtLjM5Mi4yOTMtLjczNi40MDYtLjYzOSAxLjg0My0uNzYzIDEuODk4LjYzOS4wMjUuNjU0LjAyLjYyNC4wMiAxLjA2NCAwIC41MTctLjAxMi44MjgtLjA0IDEuMjAyLS4wMzEuNC0uMTE3IDEuMzA0LS4yNDIgMS43NDItLjA4Ni4zMDEtLjM3MS45NzgtLjY1MiAxLjM4NCAwIDAtMS4wNzQgMS4yNS0xLjE5MSAxLjgxMy0uMTE4LjU2Mi0uMDc5LjU2Ni0uMTAyLjk2NS0uMDIzLjM5OC4xMjEuOTIyLjEyMS45MjJzLS44MDIuMTA0LTEuMjM0LjAzNWMtLjM5MS0uMDYzLS44NzUtLjg0MS0xLTEuMDc5LS4xNzItLjMyOC0uNTM5LS4yNjUtLjY4Mi0uMDIzLS4yMjUuMzgzLS43MDkgMS4wNy0xLjA1MSAxLjExMy0uNjY4LjA4NC0yLjA1NC4wMzEtMy4xMzkuMDIgMCAwIC4xODUtMS4wMTEtLjIyNy0xLjM1OC0uMzA1LS4yNTktLjgzLS43ODQtMS4xNDQtMS4wNnonIHN0cm9rZS1saW5lam9pbj0ncm91bmQnLz48cGF0aCBkPSdtMjEuNTY2NCAyMS43MzQ0di0zLjQ1OScvPjxwYXRoIGQ9J20xOS41NTA4IDIxLjc0NjEtLjAxNi0zLjQ3MycvPjxwYXRoIGQ9J20xNy41NTQ3IDE4LjMwNDcuMDIxIDMuNDI2Jy8+PC9nPjwvZz48L3N2Zz5cIilcblx0XHRcdDE0IDEwLFxuXHRcdHBvaW50ZXI7XG5cdC0tdGwtY3Vyc29yLWNyb3NzOlxuXHRcdHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCw8c3ZnIGhlaWdodD0nMzInIHdpZHRoPSczMicgdmlld0JveD0nMCAwIDMyIDMyJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHN0eWxlPSdjb2xvcjogYmxhY2s7Jz48ZGVmcz48ZmlsdGVyIGlkPSdzaGFkb3cnIHk9Jy00MCUnIHg9Jy00MCUnIHdpZHRoPScxODBweCcgaGVpZ2h0PScxODAlJyBjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnM9J3NSR0InPjxmZURyb3BTaGFkb3cgZHg9JzEnIGR5PScxJyBzdGREZXZpYXRpb249JzEuMicgZmxvb2Qtb3BhY2l0eT0nLjUnLz48L2ZpbHRlcj48L2RlZnM+PGcgZmlsbD0nbm9uZScgdHJhbnNmb3JtPSdyb3RhdGUoMCAxNiAxNiknIGZpbHRlcj0ndXJsKCUyM3NoYWRvdyknPjxwYXRoIGQ9J20yNSAxNmgtNi4wMXYtNmgtMi45OHY2aC02LjAxdjNoNi4wMXY2aDIuOTh2LTZoNi4wMXonIGZpbGw9J3doaXRlJy8+PHBhdGggZD0nbTIzLjk5MDIgMTcuMDEwM2gtNnYtNi4wMWgtLjk4djYuMDFoLTZ2Ljk4aDZ2Ni4wMWguOTh2LTYuMDFoNnonIGZpbGw9JyUyMzIzMWYxZicvPjwvZz48L3N2Zz5cIilcblx0XHRcdDE2IDE2LFxuXHRcdGNyb3NzaGFpcjtcblx0LS10bC1jdXJzb3ItbW92ZTpcblx0XHR1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsPHN2ZyBoZWlnaHQ9JzMyJyB3aWR0aD0nMzInIHZpZXdCb3g9JzAgMCAzMiAzMicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyBzdHlsZT0nY29sb3I6IGJsYWNrOyc+PGRlZnM+PGZpbHRlciBpZD0nc2hhZG93JyB5PSctNDAlJyB4PSctNDAlJyB3aWR0aD0nMTgwcHgnIGhlaWdodD0nMTgwJScgY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzPSdzUkdCJz48ZmVEcm9wU2hhZG93IGR4PScxJyBkeT0nMScgc3RkRGV2aWF0aW9uPScxLjInIGZsb29kLW9wYWNpdHk9Jy41Jy8+PC9maWx0ZXI+PC9kZWZzPjxnIGZpbGw9J25vbmUnIHRyYW5zZm9ybT0ncm90YXRlKDAgMTYgMTYpJyBmaWx0ZXI9J3VybCglMjNzaGFkb3cpJz48cGF0aCBkPSdtMTkgMTRoMXYxaC0xem0xIDZoLTF2LTFoMXptLTUtNWgtMXYtMWgxem0wIDVoLTF2LTFoMXptMi0xMC45ODctNy45ODUgNy45ODggNS4yMjIgNS4yMjEgMi43NjMgMi43NjMgNy45ODQtNy45ODV6JyBmaWxsPSd3aGl0ZScvPjxnIGZpbGw9J2JsYWNrJz48cGF0aCBkPSdtMjMuNTY2NCAxNi45OTcxLTIuNTU3LTIuODA5djEuODI5aC00LjAwOS00LjAwMXYtMS44MjlsLTIuNTcxIDIuODA5IDIuNTcyIDIuODA4LS4wMDEtMS44MDhoNC4wMDEgNC4wMDlsLS4wMDEgMS44MDh6Jy8+PHBhdGggZD0nbTE3Ljk4NzMgMTdoLjAxM3YtNC4wMDFsMS44MDcuMDAxLTIuODA3LTIuNTcxLTIuODA5IDIuNTdoMS44MDl2NC4wMDFoLjAwOHY0LjAwMmwtMS44MjgtLjAwMSAyLjgwNyAyLjU3NyAyLjgwNS0yLjU3NmgtMS44MDV6Jy8+PC9nPjwvZz48L3N2Zz5cIilcblx0XHRcdDE2IDE2LFxuXHRcdG1vdmU7XG5cdC0tdGwtY3Vyc29yLWdyYWI6XG5cdFx0dXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLDxzdmcgaGVpZ2h0PSczMicgd2lkdGg9JzMyJyB2aWV3Qm94PScwIDAgMzIgMzInIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgc3R5bGU9J2NvbG9yOiBibGFjazsnPjxkZWZzPjxmaWx0ZXIgaWQ9J3NoYWRvdycgeT0nLTQwJScgeD0nLTQwJScgd2lkdGg9JzE4MHB4JyBoZWlnaHQ9JzE4MCUnIGNvbG9yLWludGVycG9sYXRpb24tZmlsdGVycz0nc1JHQic+PGZlRHJvcFNoYWRvdyBkeD0nMScgZHk9JzEnIHN0ZERldmlhdGlvbj0nMS4yJyBmbG9vZC1vcGFjaXR5PScuNScvPjwvZmlsdGVyPjwvZGVmcz48ZyBmaWxsPSdub25lJyB0cmFuc2Zvcm09J3JvdGF0ZSgwIDE2IDE2KScgZmlsdGVyPSd1cmwoJTIzc2hhZG93KSc+PHBhdGggZD0nbTEzLjU1NTcgMTcuNTc0MmMtLjA5OC0uMzc1LS4xOTYtLjg0Ny0uNDA2LTEuNTUyLS4xNjctLjU1Ny0uMzQyLS44NTktLjQ3LTEuMjMzLS4xNTUtLjQ1NS0uMzAzLS43MjEtLjQ5Ni0xLjE4MS0uMTM5LS4zMjktLjM2NC0xLjA0OC0uNDU3LTEuNDQtLjExOS0uNTA5LjAzMy0uOTI0LjI0NC0xLjIwNi4yNTMtLjMzOS45NjItLjQ5IDEuMzU3LS4zNTEuMzcxLjEzLjc0NC41MTIuOTE2Ljc4OC4yODguNDYuMzU3LjYzMi43MTcgMS41NDIuMzkzLjk5Mi41NjQgMS45MTguNjExIDIuMjMxbC4wODUuNDUyYy0uMDAxLS4wNC0uMDQzLTEuMTIyLS4wNDQtMS4xNjItLjAzNS0xLjAyOS0uMDYtMS44MjMtLjAzOC0yLjkzOS4wMDItLjEyNi4wNjQtLjU4Ny4wODQtLjcxNS4wNzgtLjUuMzA1LS44LjY3My0uOTc5LjQxMi0uMjAxLjkyNi0uMjE1IDEuNDAxLS4wMTcuNDIzLjE3My42MjYuNTUuNjg3IDEuMDIyLjAxNC4xMDkuMDk0Ljk4Ny4wOTMgMS4xMDctLjAxMyAxLjAyNS4wMDYgMS42NDEuMDE1IDIuMTc0LjAwNC4yMzEuMDAzIDEuNjI1LjAxNyAxLjQ2OS4wNjEtLjY1Ni4wOTQtMy4xODkuMzQ0LTMuOTQyLjE0NC0uNDMzLjQwNS0uNzQ2Ljc5NC0uOTI5LjQzMS0uMjAzIDEuMTEzLS4wNyAxLjQwNC4yNDMuMjg1LjMwNS40NDYuNjkyLjQ4MiAxLjE1My4wMzIuNDA1LS4wMTkuODk3LS4wMiAxLjI0NSAwIC44NjctLjAyMSAxLjMyNC0uMDM3IDIuMTIxLS4wMDEuMDM4LS4wMTUuMjk4LjAyMy4xODIuMDk0LS4yOC4xODgtLjU0Mi4yNjYtLjc0NS4wNDktLjEyNS4yNDEtLjYxNC4zNTktLjg1OS4xMTQtLjIzNC4yMTEtLjM2OS40MTUtLjY4OC4yLS4zMTMuNDE1LS40NDguNjY4LS41NjEuNTQtLjIzNSAxLjEwOS4xMTIgMS4zMDEuNTkxLjA4Ni4yMTUuMDA5LjcxMy0uMDI4IDEuMTA1LS4wNjEuNjQ3LS4yNTQgMS4zMDYtLjM1MiAxLjY0OC0uMTI4LjQ0Ny0uMjc0IDEuMjM1LS4zNCAxLjYwMS0uMDcyLjM5NC0uMjM0IDEuMzgyLS4zNTkgMS44Mi0uMDg2LjMwMS0uMzcxLjk3OC0uNjUyIDEuMzg0IDAgMC0xLjA3NCAxLjI1LTEuMTkyIDEuODEyLS4xMTcuNTYzLS4wNzguNTY3LS4xMDEuOTY1LS4wMjQuMzk5LjEyMS45MjMuMTIxLjkyM3MtLjgwMi4xMDQtMS4yMzQuMDM0Yy0uMzkxLS4wNjItLjg3NS0uODQxLTEtMS4wNzgtLjE3Mi0uMzI4LS41MzktLjI2NS0uNjgyLS4wMjMtLjIyNS4zODMtLjcwOSAxLjA3LTEuMDUxIDEuMTEzLS42NjguMDg0LTIuMDU0LjAzLTMuMTM5LjAyIDAgMCAuMTg1LTEuMDExLS4yMjctMS4zNTgtLjMwNS0uMjYtLjgzLS43ODQtMS4xNDQtMS4wNmwtLjgzMi0uOTIxYy0uMjg0LS4zNi0uNjI5LTEuMDkzLTEuMjQzLTEuOTg1LS4zNDgtLjUwNC0xLjAyNy0xLjA4NS0xLjI4NC0xLjU3OS0uMjIzLS40MjUtLjMzMS0uOTU0LS4xOS0xLjMyNS4yMjUtLjU5NC42NzUtLjg5NyAxLjM2Mi0uODMyLjUxOS4wNS44NDguMjA2IDEuMjM4LjUzNy4yMjUuMTkuNTczLjUzNC43NS43NDguMTYzLjE5NS4yMDMuMjc2LjM3Ny41MDkuMjMuMzA3LjMwMi40NTkuMjE0LjEyMScgZmlsbD0nd2hpdGUnLz48ZyBzdHJva2U9J2JsYWNrJyBzdHJva2UtbGluZWNhcD0ncm91bmQnIHN0cm9rZS13aWR0aD0nLjc1Jz48cGF0aCBkPSdtMTMuNTU1NyAxNy41NzQyYy0uMDk4LS4zNzUtLjE5Ni0uODQ3LS40MDYtMS41NTItLjE2Ny0uNTU3LS4zNDItLjg1OS0uNDctMS4yMzMtLjE1NS0uNDU1LS4zMDMtLjcyMS0uNDk2LTEuMTgxLS4xMzktLjMyOS0uMzY0LTEuMDQ4LS40NTctMS40NC0uMTE5LS41MDkuMDMzLS45MjQuMjQ0LTEuMjA2LjI1My0uMzM5Ljk2Mi0uNDkgMS4zNTctLjM1MS4zNzEuMTMuNzQ0LjUxMi45MTYuNzg4LjI4OC40Ni4zNTcuNjMyLjcxNyAxLjU0Mi4zOTMuOTkyLjU2NCAxLjkxOC42MTEgMi4yMzFsLjA4NS40NTJjLS4wMDEtLjA0LS4wNDMtMS4xMjItLjA0NC0xLjE2Mi0uMDM1LTEuMDI5LS4wNi0xLjgyMy0uMDM4LTIuOTM5LjAwMi0uMTI2LjA2NC0uNTg3LjA4NC0uNzE1LjA3OC0uNS4zMDUtLjguNjczLS45NzkuNDEyLS4yMDEuOTI2LS4yMTUgMS40MDEtLjAxNy40MjMuMTczLjYyNi41NS42ODcgMS4wMjIuMDE0LjEwOS4wOTQuOTg3LjA5MyAxLjEwNy0uMDEzIDEuMDI1LjAwNiAxLjY0MS4wMTUgMi4xNzQuMDA0LjIzMS4wMDMgMS42MjUuMDE3IDEuNDY5LjA2MS0uNjU2LjA5NC0zLjE4OS4zNDQtMy45NDIuMTQ0LS40MzMuNDA1LS43NDYuNzk0LS45MjkuNDMxLS4yMDMgMS4xMTMtLjA3IDEuNDA0LjI0My4yODUuMzA1LjQ0Ni42OTIuNDgyIDEuMTUzLjAzMi40MDUtLjAxOS44OTctLjAyIDEuMjQ1IDAgLjg2Ny0uMDIxIDEuMzI0LS4wMzcgMi4xMjEtLjAwMS4wMzgtLjAxNS4yOTguMDIzLjE4Mi4wOTQtLjI4LjE4OC0uNTQyLjI2Ni0uNzQ1LjA0OS0uMTI1LjI0MS0uNjE0LjM1OS0uODU5LjExNC0uMjM0LjIxMS0uMzY5LjQxNS0uNjg4LjItLjMxMy40MTUtLjQ0OC42NjgtLjU2MS41NC0uMjM1IDEuMTA5LjExMiAxLjMwMS41OTEuMDg2LjIxNS4wMDkuNzEzLS4wMjggMS4xMDUtLjA2MS42NDctLjI1NCAxLjMwNi0uMzUyIDEuNjQ4LS4xMjguNDQ3LS4yNzQgMS4yMzUtLjM0IDEuNjAxLS4wNzIuMzk0LS4yMzQgMS4zODItLjM1OSAxLjgyLS4wODYuMzAxLS4zNzEuOTc4LS42NTIgMS4zODQgMCAwLTEuMDc0IDEuMjUtMS4xOTIgMS44MTItLjExNy41NjMtLjA3OC41NjctLjEwMS45NjUtLjAyNC4zOTkuMTIxLjkyMy4xMjEuOTIzcy0uODAyLjEwNC0xLjIzNC4wMzRjLS4zOTEtLjA2Mi0uODc1LS44NDEtMS0xLjA3OC0uMTcyLS4zMjgtLjUzOS0uMjY1LS42ODItLjAyMy0uMjI1LjM4My0uNzA5IDEuMDctMS4wNTEgMS4xMTMtLjY2OC4wODQtMi4wNTQuMDMtMy4xMzkuMDIgMCAwIC4xODUtMS4wMTEtLjIyNy0xLjM1OC0uMzA1LS4yNi0uODMtLjc4NC0xLjE0NC0xLjA2bC0uODMyLS45MjFjLS4yODQtLjM2LS42MjktMS4wOTMtMS4yNDMtMS45ODUtLjM0OC0uNTA0LTEuMDI3LTEuMDg1LTEuMjg0LTEuNTc5LS4yMjMtLjQyNS0uMzMxLS45NTQtLjE5LTEuMzI1LjIyNS0uNTk0LjY3NS0uODk3IDEuMzYyLS44MzIuNTE5LjA1Ljg0OC4yMDYgMS4yMzguNTM3LjIyNS4xOS41NzMuNTM0Ljc1Ljc0OC4xNjMuMTk1LjIwMy4yNzYuMzc3LjUwOS4yMy4zMDcuMzAyLjQ1OS4yMTQuMTIxJyBzdHJva2UtbGluZWpvaW49J3JvdW5kJy8+PHBhdGggZD0nbTIwLjU2NjQgMjEuNzM0NHYtMy40NTknLz48cGF0aCBkPSdtMTguNTUwOCAyMS43NDYxLS4wMTYtMy40NzMnLz48cGF0aCBkPSdtMTYuNTU0NyAxOC4zMDQ3LjAyMSAzLjQyNicvPjwvZz48L2c+PC9zdmc+XCIpXG5cdFx0XHQxNiAxNixcblx0XHRncmFiO1xuXHQtLXRsLWN1cnNvci1ncmFiYmluZzpcblx0XHR1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsPHN2ZyBoZWlnaHQ9JzMyJyB3aWR0aD0nMzInIHZpZXdCb3g9JzAgMCAzMiAzMicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyBzdHlsZT0nY29sb3I6IGJsYWNrOyc+PGRlZnM+PGZpbHRlciBpZD0nc2hhZG93JyB5PSctNDAlJyB4PSctNDAlJyB3aWR0aD0nMTgwcHgnIGhlaWdodD0nMTgwJScgY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzPSdzUkdCJz48ZmVEcm9wU2hhZG93IGR4PScxJyBkeT0nMScgc3RkRGV2aWF0aW9uPScxLjInIGZsb29kLW9wYWNpdHk9Jy41Jy8+PC9maWx0ZXI+PC9kZWZzPjxnIGZpbGw9J25vbmUnIHRyYW5zZm9ybT0ncm90YXRlKDAgMTYgMTYpJyBmaWx0ZXI9J3VybCglMjNzaGFkb3cpJz48cGF0aCBkPSdtMTMuNTczMiAxMi4wMzYxYy40OC0uMTc4IDEuNDI3LS4wNjkgMS42NzcuNDczLjIxMy40NjIuMzk2IDEuMjQxLjQwNiAxLjA3NS4wMjQtLjM2OS0uMDI0LTEuMTY3LjEzNy0xLjU4NC4xMTctLjMwNC4zNDctLjU5LjY4Ni0uNjkxLjI4NS0uMDg2LjYyLS4xMTYuOTE2LS4wNTUuMzEzLjA2NC42NDIuMjg3Ljc2NS40OTkuMzYyLjYyMy4zNjggMS44OTkuMzg1IDEuODMxLjA2NC0uMjcyLjA3LTEuMjI5LjI4My0xLjU4NC4xNDEtLjIzNS40OTctLjQ0NS42ODctLjQ3OS4yOTQtLjA1Mi42NTYtLjA2OC45NjQtLjAwOC4yNDkuMDQ5LjU4Ni4zNDQuNjc3LjQ4Ny4yMTkuMzQ0LjM0MiAxLjMxNi4zNzkgMS42NTguMDE2LjE0MS4wNzQtLjM5My4yOTMtLjczNi40MDYtLjYzOSAxLjg0NC0uNzYzIDEuODk4LjYzOS4wMjYuNjU0LjAyLjYyNC4wMiAxLjA2NCAwIC41MTYtLjAxMi44MjgtLjA0IDEuMjAyLS4wMy4zOTktLjExNiAxLjMwNC0uMjQxIDEuNzQyLS4wODYuMzAxLS4zNzEuOTc4LS42NTMgMS4zODQgMCAwLTEuMDc0IDEuMjUtMS4xOTEgMS44MTItLjExNy41NjMtLjA3OC41NjctLjEwMi45NjUtLjAyMy4zOTkuMTIxLjkyMy4xMjEuOTIzcy0uODAxLjEwNC0xLjIzNC4wMzRjLS4zOTEtLjA2Mi0uODc1LS44NC0xLTEuMDc4LS4xNzItLjMyOC0uNTM5LS4yNjUtLjY4Mi0uMDIzLS4yMjQuMzgzLS43MDkgMS4wNy0xLjA1IDEuMTEzLS42NjkuMDg0LTIuMDU1LjAzLTMuMTQuMDIgMCAwIC4xODUtMS4wMTEtLjIyNy0xLjM1OC0uMzA1LS4yNi0uODMtLjc4NC0xLjE0NC0xLjA2bC0uODMyLS45MjFjLS4yODMtLjM2LTEuMDAyLS45MjktMS4yNDMtMS45ODUtLjIxMy0uOTM2LS4xOTItMS4zOTUuMDM3LTEuNzcuMjMyLS4zODEuNjctLjU4OS44NTQtLjYyNS4yMDgtLjA0Mi42OTItLjAzOS44NzUuMDYyLjIyMy4xMjMuMzEzLjE1OS40ODguMzkxLjIzLjMwNy4zMTIuNDU2LjIxMy4xMjEtLjA3Ni0uMjYyLS4zMjItLjU5NS0uNDM0LS45Ny0uMTA5LS4zNjEtLjQwMS0uOTQzLS4zOC0xLjUyNi4wMDgtLjIyMS4xMDMtLjc3MS44MzItMS4wNDInIGZpbGw9J3doaXRlJy8+PGcgc3Ryb2tlPSdibGFjaycgc3Ryb2tlLXdpZHRoPScuNzUnPjxwYXRoIGQ9J20xMy41NzMyIDEyLjAzNjFjLjQ4LS4xNzggMS40MjctLjA2OSAxLjY3Ny40NzMuMjEzLjQ2Mi4zOTYgMS4yNDEuNDA2IDEuMDc1LjAyNC0uMzY5LS4wMjQtMS4xNjcuMTM3LTEuNTg0LjExNy0uMzA0LjM0Ny0uNTkuNjg2LS42OTEuMjg1LS4wODYuNjItLjExNi45MTYtLjA1NS4zMTMuMDY0LjY0Mi4yODcuNzY1LjQ5OS4zNjIuNjIzLjM2OCAxLjg5OS4zODUgMS44MzEuMDY0LS4yNzIuMDctMS4yMjkuMjgzLTEuNTg0LjE0MS0uMjM1LjQ5Ny0uNDQ1LjY4Ny0uNDc5LjI5NC0uMDUyLjY1Ni0uMDY4Ljk2NC0uMDA4LjI0OS4wNDkuNTg2LjM0NC42NzcuNDg3LjIxOS4zNDQuMzQyIDEuMzE2LjM3OSAxLjY1OC4wMTYuMTQxLjA3NC0uMzkzLjI5My0uNzM2LjQwNi0uNjM5IDEuODQ0LS43NjMgMS44OTguNjM5LjAyNi42NTQuMDIuNjI0LjAyIDEuMDY0IDAgLjUxNi0uMDEyLjgyOC0uMDQgMS4yMDItLjAzLjM5OS0uMTE2IDEuMzA0LS4yNDEgMS43NDItLjA4Ni4zMDEtLjM3MS45NzgtLjY1MyAxLjM4NCAwIDAtMS4wNzQgMS4yNS0xLjE5MSAxLjgxMi0uMTE3LjU2My0uMDc4LjU2Ny0uMTAyLjk2NS0uMDIzLjM5OS4xMjEuOTIzLjEyMS45MjNzLS44MDEuMTA0LTEuMjM0LjAzNGMtLjM5MS0uMDYyLS44NzUtLjg0LTEtMS4wNzgtLjE3Mi0uMzI4LS41MzktLjI2NS0uNjgyLS4wMjMtLjIyNC4zODMtLjcwOSAxLjA3LTEuMDUgMS4xMTMtLjY2OS4wODQtMi4wNTUuMDMtMy4xNC4wMiAwIDAgLjE4NS0xLjAxMS0uMjI3LTEuMzU4LS4zMDUtLjI2LS44My0uNzg0LTEuMTQ0LTEuMDZsLS44MzItLjkyMWMtLjI4My0uMzYtMS4wMDItLjkyOS0xLjI0My0xLjk4NS0uMjEzLS45MzYtLjE5Mi0xLjM5NS4wMzctMS43Ny4yMzItLjM4MS42Ny0uNTg5Ljg1NC0uNjI1LjIwOC0uMDQyLjY5Mi0uMDM5Ljg3NS4wNjIuMjIzLjEyMy4zMTMuMTU5LjQ4OC4zOTEuMjMuMzA3LjMxMi40NTYuMjEzLjEyMS0uMDc2LS4yNjItLjMyMi0uNTk1LS40MzQtLjk3LS4xMDktLjM2MS0uNDAxLS45NDMtLjM4LTEuNTI2LjAwOC0uMjIxLjEwMy0uNzcxLjgzMi0xLjA0MnonIHN0cm9rZS1saW5lam9pbj0ncm91bmQnLz48cGF0aCBkPSdtMjAuNTY2NCAxOS43MzQ0di0zLjQ1OScgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJy8+PHBhdGggZD0nbTE4LjU1MDggMTkuNzQ2MS0uMDE2LTMuNDczJyBzdHJva2UtbGluZWNhcD0ncm91bmQnLz48cGF0aCBkPSdtMTYuNTU0NyAxNi4zMDQ3LjAyMSAzLjQyNicgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJy8+PC9nPjwvZz48L3N2Zz5cIilcblx0XHRcdDE2IDE2LFxuXHRcdGdyYWJiaW5nO1xuXHQtLXRsLWN1cnNvci10ZXh0OlxuXHRcdHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCw8c3ZnIGhlaWdodD0nMzInIHdpZHRoPSczMicgdmlld0JveD0nMCAwIDMyIDMyJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHN0eWxlPSdjb2xvcjogYmxhY2s7Jz48ZGVmcz48ZmlsdGVyIGlkPSdzaGFkb3cnIHk9Jy00MCUnIHg9Jy00MCUnIHdpZHRoPScxODBweCcgaGVpZ2h0PScxODAlJyBjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnM9J3NSR0InPjxmZURyb3BTaGFkb3cgZHg9JzEnIGR5PScxJyBzdGREZXZpYXRpb249JzEuMicgZmxvb2Qtb3BhY2l0eT0nLjUnLz48L2ZpbHRlcj48L2RlZnM+PGcgZmlsbD0nbm9uZScgdHJhbnNmb3JtPSdyb3RhdGUoMCAxNiAxNiknIGZpbHRlcj0ndXJsKCUyM3NoYWRvdyknPjxwYXRoIGZpbGw9J3doaXRlJyBkPSdNNy45NCAwYTUuMjUgNS4yNSAwIDAgMC0zLjQ3IDEuMTdBNS4yNyA1LjI3IDAgMCAwIDEgMEgwdjNoMWMxLjQxIDAgMS44NS43IDIgMXYzLjk0SDJ2M2gxdjNjLS4xMy4zLS41NyAxLTIgMUgwdjNoMWE1LjI3IDUuMjcgMCAwIDAgMy40Ny0xLjE3Yy45OC44IDIuMjEgMS4yMSAzLjQ3IDEuMTdoMXYtM2gtMWMtMS40MSAwLTEuODUtLjctMi0xdi0zSDd2LTNINlY0Yy4xMy0uMy41Ny0xIDItMWgxVjBINy45NHonLz48cGF0aCBmaWxsPSdibGFjaycgZD0nTTcuOTQgMlYxYTQgNCAwIDAgMC0zLjQ3IDEuNjRBNCA0IDAgMCAwIDEgMXYxYzEuMy0uMTcgMi41Ni42IDMgMS44NHY1LjFIM3YxaDF2NC4xNmMtLjQ1IDEuMjQtMS43IDItMyAxLjg0djFhNC4wNSA0LjA1IDAgMCAwIDMuNDctMS42MyA0LjA1IDQuMDUgMCAwIDAgMy40NyAxLjYzdi0xQTIuODIgMi44MiAwIDAgMSA1IDE0LjFWOS45M2gxdi0xSDVWMy44NUEyLjgxIDIuODEgMCAwIDEgNy45NCAyeicvPjwvZz48L3N2Zz5cIilcblx0XHRcdDQgMTAsXG5cdFx0dGV4dDtcblx0LS10bC1jdXJzb3Item9vbS1pbjpcblx0XHR1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsPHN2ZyBoZWlnaHQ9JzMyJyB3aWR0aD0nMzInIHZpZXdCb3g9JzAgMCAzMiAzMicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyBzdHlsZT0nY29sb3I6IGJsYWNrOyc+PGRlZnM+PGZpbHRlciBpZD0nc2hhZG93JyB5PSctNDAlJyB4PSctNDAlJyB3aWR0aD0nMTgwcHgnIGhlaWdodD0nMTgwJScgY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzPSdzUkdCJz48ZmVEcm9wU2hhZG93IGR4PScxJyBkeT0nMScgc3RkRGV2aWF0aW9uPScxLjInIGZsb29kLW9wYWNpdHk9Jy41Jy8+PC9maWx0ZXI+PC9kZWZzPjxnIGZpbGw9J25vbmUnIHRyYW5zZm9ybT0ncm90YXRlKDAgMTYgMTYpJyBmaWx0ZXI9J3VybCglMjNzaGFkb3cpJz48cGF0aCBkPSdtMjAuNSAxNWMwIDMuMDM4LTIuNDYyIDUuNS01LjUgNS41cy01LjUtMi40NjItNS41LTUuNSAyLjQ2Mi01LjUgNS41LTUuNSA1LjUgMi40NjIgNS41IDUuNScgZmlsbD0nd2hpdGUnLz48cGF0aCBkPSdtMjAuNSAxNWMwIDMuMDM4LTIuNDYyIDUuNS01LjUgNS41cy01LjUtMi40NjItNS41LTUuNSAyLjQ2Mi01LjUgNS41LTUuNSA1LjUgMi40NjIgNS41IDUuNXonIHN0cm9rZT0nYmxhY2snLz48ZyBmaWxsPSdibGFjayc+PHBhdGggZD0nbTE4IDE0aC0ydi0yaC0ydjJoLTJ2MS45OGgydjIuMDJoMnYtMi4wMmgyeicvPjxwYXRoIGQ9J20yMy41ODU5IDI1IDEuNDE0LTEuNDE0LTUuNDQ5LTUuNDQ5LTEuNDE0IDEuNDE0eicvPjwvZz48L2c+PC9zdmc+XCIpXG5cdFx0XHQxNiAxNixcblx0XHR6b29tLWluO1xuXHQtLXRsLWN1cnNvci16b29tLW91dDpcblx0XHR1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsPHN2ZyBoZWlnaHQ9JzMyJyB3aWR0aD0nMzInIHZpZXdCb3g9JzAgMCAzMiAzMicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyBzdHlsZT0nY29sb3I6IGJsYWNrOyc+PGRlZnM+PGZpbHRlciBpZD0nc2hhZG93JyB5PSctNDAlJyB4PSctNDAlJyB3aWR0aD0nMTgwcHgnIGhlaWdodD0nMTgwJScgY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzPSdzUkdCJz48ZmVEcm9wU2hhZG93IGR4PScxJyBkeT0nMScgc3RkRGV2aWF0aW9uPScxLjInIGZsb29kLW9wYWNpdHk9Jy41Jy8+PC9maWx0ZXI+PC9kZWZzPjxnIGZpbGw9J25vbmUnIHRyYW5zZm9ybT0ncm90YXRlKDAgMTYgMTYpJyBmaWx0ZXI9J3VybCglMjNzaGFkb3cpJz48cGF0aCBkPSdtMjAuNSAxNWMwIDMuMDM4LTIuNDYyIDUuNS01LjUgNS41cy01LjUtMi40NjItNS41LTUuNSAyLjQ2Mi01LjUgNS41LTUuNSA1LjUgMi40NjIgNS41IDUuNScgZmlsbD0nd2hpdGUnLz48cGF0aCBkPSdtMjAuNSAxNWMwIDMuMDM4LTIuNDYyIDUuNS01LjUgNS41cy01LjUtMi40NjItNS41LTUuNSAyLjQ2Mi01LjUgNS41LTUuNSA1LjUgMi40NjIgNS41IDUuNXonIHN0cm9rZT0nYmxhY2snLz48ZyBmaWxsPSdibGFjayc+PHBhdGggZD0nbTE4IDE2aC01Ljk4di0xLjk4aDUuOTh6Jy8+PHBhdGggZD0nbTIzLjU4NTkgMjUgMS40MTQtMS40MTQtNS40NDktNS40NDktMS40MTQgMS40MTR6Jy8+PC9nPjwvZz48L3N2Zz5cIilcblx0XHRcdDE2IDE2LFxuXHRcdHpvb20tb3V0O1xuXG5cdC8qIFRoZXNlIGN1cnNvciB2YWx1ZXMgZ2V0IHByb2dyYW1tYXRpY2FsbHkgb3ZlcnJpZGRlbiAqL1xuXHQvKiBUaGV5J3JlIGp1c3QgaGVyZSB0byBoZWxwIHlvdXIgZWRpdG9yIGF1dG9jb21wbGV0ZSAqL1xuXHQtLXRsLWN1cnNvcjogdmFyKC0tdGwtY3Vyc29yLWRlZmF1bHQpO1xuXHQtLXRsLWN1cnNvci1yZXNpemUtZWRnZTogZXctcmVzaXplO1xuXHQtLXRsLWN1cnNvci1yZXNpemUtY29ybmVyOiBuZXN3LXJlc2l6ZTtcblx0LS10bC1jdXJzb3ItZXctcmVzaXplOiBldy1yZXNpemU7XG5cdC0tdGwtY3Vyc29yLW5zLXJlc2l6ZTogbnMtcmVzaXplO1xuXHQtLXRsLWN1cnNvci1uZXN3LXJlc2l6ZTogbmVzdy1yZXNpemU7XG5cdC0tdGwtY3Vyc29yLW53c2UtcmVzaXplOiBud3NlLXJlc2l6ZTtcblx0LS10bC1jdXJzb3Itcm90YXRlOiBwb2ludGVyO1xuXHQtLXRsLWN1cnNvci1ud3NlLXJvdGF0ZTogcG9pbnRlcjtcblx0LS10bC1jdXJzb3ItbmVzdy1yb3RhdGU6IHBvaW50ZXI7XG5cdC0tdGwtY3Vyc29yLXNlbnctcm90YXRlOiBwb2ludGVyO1xuXHQtLXRsLWN1cnNvci1zd25lLXJvdGF0ZTogcG9pbnRlcjtcblx0LS10bC1zY2FsZTogY2FsYygxIC8gdmFyKC0tdGwtem9vbSkpO1xuXHQvKiBmb250cyAqL1xuXHQtLXRsLWZvbnQtZHJhdzogJ3RsZHJhd19kcmF3Jywgc2Fucy1zZXJpZjtcblx0LS10bC1mb250LXNhbnM6ICd0bGRyYXdfc2FucycsIHNhbnMtc2VyaWY7XG5cdC0tdGwtZm9udC1zZXJpZjogJ3RsZHJhd19zZXJpZicsIHNlcmlmO1xuXHQtLXRsLWZvbnQtbW9ubzogJ3RsZHJhd19tb25vJywgbW9ub3NwYWNlO1xuXHQvKiB0ZXh0IG91dGxpbmUgKi9cblx0LS10bC10ZXh0LW91dGxpbmUtYTogY2FsYyhtaW4oMC41LCAxIC8gdmFyKC0tdGwtem9vbSkpICogMnB4KTtcblx0LS10bC10ZXh0LW91dGxpbmUtYjogY2FsYyhtaW4oMC41LCAxIC8gdmFyKC0tdGwtem9vbSkpICogLTJweCk7XG5cdC0tdGwtdGV4dC1vdXRsaW5lLXJlZmVyZW5jZTpcblx0XHQwIHZhcigtLXRsLXRleHQtb3V0bGluZS1iKSAwIHZhcigtLXRsLWNvbG9yLWJhY2tncm91bmQpLFxuXHRcdDAgdmFyKC0tdGwtdGV4dC1vdXRsaW5lLWEpIDAgdmFyKC0tdGwtY29sb3ItYmFja2dyb3VuZCksXG5cdFx0dmFyKC0tdGwtdGV4dC1vdXRsaW5lLWIpIHZhcigtLXRsLXRleHQtb3V0bGluZS1iKSAwIHZhcigtLXRsLWNvbG9yLWJhY2tncm91bmQpLFxuXHRcdHZhcigtLXRsLXRleHQtb3V0bGluZS1hKSB2YXIoLS10bC10ZXh0LW91dGxpbmUtYikgMCB2YXIoLS10bC1jb2xvci1iYWNrZ3JvdW5kKSxcblx0XHR2YXIoLS10bC10ZXh0LW91dGxpbmUtYSkgdmFyKC0tdGwtdGV4dC1vdXRsaW5lLWEpIDAgdmFyKC0tdGwtY29sb3ItYmFja2dyb3VuZCksXG5cdFx0dmFyKC0tdGwtdGV4dC1vdXRsaW5lLWIpIHZhcigtLXRsLXRleHQtb3V0bGluZS1hKSAwIHZhcigtLXRsLWNvbG9yLWJhY2tncm91bmQpO1xuXHQtLXRsLXRleHQtb3V0bGluZTogdmFyKC0tdGwtdGV4dC1vdXRsaW5lLXJlZmVyZW5jZSk7XG5cdC8qIG93biBwcm9wZXJ0aWVzICovXG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0aW5zZXQ6IDBweDtcblx0aGVpZ2h0OiAxMDAlO1xuXHR3aWR0aDogMTAwJTtcblx0b3ZlcmZsb3c6IGNsaXA7XG5cdGNvbG9yOiB2YXIoLS10bC1jb2xvci10ZXh0KTtcbn1cblxuLnRsLXRoZW1lX19saWdodCB7XG5cdC8qIENhbnZhcyAqL1xuXHQtLXRsLWNvbG9yLXNuYXA6IGhzbCgwLCA3NiUsIDYwJSk7XG5cdC0tdGwtY29sb3Itc2VsZWN0aW9uLWZpbGw6IGhzbCgyMTAsIDEwMCUsIDU2JSwgMjQlKTtcblx0LS10bC1jb2xvci1zZWxlY3Rpb24tc3Ryb2tlOiBoc2woMjE0LCA4NCUsIDU2JSk7XG5cdC0tdGwtY29sb3ItYmFja2dyb3VuZDogaHNsKDIxMCwgMjAlLCA5OCUpO1xuXHQtLXRsLWNvbG9yLWJydXNoLWZpbGw6IGhzbCgwLCAwJSwgNTYlLCAxMC4yJSk7XG5cdC0tdGwtY29sb3ItYnJ1c2gtc3Ryb2tlOiBoc2woMCwgMCUsIDU2JSwgMjUuMSUpO1xuXHQtLXRsLWNvbG9yLWdyaWQ6IGhzbCgwLCAwJSwgNDMlKTtcblx0LyogVUkgKi9cblx0LS10bC1jb2xvci1sb3c6IGhzbCgyMDQsIDE2JSwgOTQlKTtcblx0LS10bC1jb2xvci1sb3ctYm9yZGVyOiBoc2woMjA0LCAxNiUsIDkyJSk7XG5cdC0tdGwtY29sb3ItY3VsbGVkOiBoc2woMjA0LCAxNCUsIDkzJSk7XG5cdC0tdGwtY29sb3ItbXV0ZWQtbm9uZTogaHNsKDAsIDAlLCAwJSwgMCUpO1xuXHQtLXRsLWNvbG9yLW11dGVkLTA6IGhzbCgwLCAwJSwgMCUsIDIlKTtcblx0LS10bC1jb2xvci1tdXRlZC0xOiBoc2woMCwgMCUsIDAlLCAxMCUpO1xuXHQtLXRsLWNvbG9yLW11dGVkLTI6IGhzbCgwLCAwJSwgMCUsIDQuMyUpO1xuXHQtLXRsLWNvbG9yLWhpbnQ6IGhzbCgwLCAwJSwgMCUsIDUuNSUpO1xuXHQtLXRsLWNvbG9yLW92ZXJsYXk6IGhzbCgwLCAwJSwgMCUsIDIwJSk7XG5cdC0tdGwtY29sb3ItZGl2aWRlcjogaHNsKDAsIDAlLCA5MSUpO1xuXHQtLXRsLWNvbG9yLXBhbmVsOiBoc2woMCwgMCUsIDk5JSk7XG5cdC0tdGwtY29sb3ItcGFuZWwtY29udHJhc3Q6IGhzbCgwLCAwJSwgMTAwJSk7XG5cdC0tdGwtY29sb3ItcGFuZWwtb3ZlcmxheTogaHNsKDAsIDAlLCAxMDAlLCA4MiUpO1xuXHQtLXRsLWNvbG9yLXBhbmVsLXRyYW5zcGFyZW50OiBoc2xhKDAsIDAlLCA5OSUsIDAlKTtcblx0LS10bC1jb2xvci1zZWxlY3RlZDogaHNsKDIxNCwgODQlLCA1NiUpO1xuXHQtLXRsLWNvbG9yLXNlbGVjdGVkLWNvbnRyYXN0OiBoc2woMCwgMCUsIDEwMCUpO1xuXHQtLXRsLWNvbG9yLWZvY3VzOiBoc2woMjE5LCA2NSUsIDUwJSk7XG5cdC0tdGwtY29sb3ItdG9vbHRpcDogaHNsYSgyMDAsIDE0JSwgNCUsIDEpO1xuXHQvKiBUZXh0ICovXG5cdC0tdGwtY29sb3ItdGV4dDogaHNsKDAsIDAlLCAwJSk7XG5cdC0tdGwtY29sb3ItdGV4dC0wOiBoc2woMCwgMCUsIDExJSk7XG5cdC0tdGwtY29sb3ItdGV4dC0xOiBoc2woMCwgMCUsIDE4JSk7XG5cdC0tdGwtY29sb3ItdGV4dC0zOiBoc2woMjA0LCA0JSwgNDUlKTtcblx0LS10bC1jb2xvci10ZXh0LXNoYWRvdzogaHNsKDAsIDAlLCAxMDAlKTtcblx0LS10bC1jb2xvci10ZXh0LWhpZ2hsaWdodDogaHNsKDUyLCAxMDAlLCA1MCUpO1xuXHQtLXRsLWNvbG9yLXRleHQtaGlnaGxpZ2h0LXAzOiBjb2xvcihkaXNwbGF5LXAzIDAuOTcyIDAuODIwNSAwLjA1KTtcblx0LyogTmFtZWQgKi9cblx0LS10bC1jb2xvci1wcmltYXJ5OiBoc2woMjE0LCA4NCUsIDU2JSk7XG5cdC0tdGwtY29sb3Itc3VjY2VzczogaHNsKDEyMywgNDYlLCAzNCUpO1xuXHQtLXRsLWNvbG9yLWluZm86IGhzbCgyMDEsIDk4JSwgNDElKTtcblx0LS10bC1jb2xvci13YXJuaW5nOiBoc2woMjcsIDk4JSwgNDclKTtcblx0LS10bC1jb2xvci1kYW5nZXI6IGhzbCgwLCA5MCUsIDQzJSk7XG5cdC0tdGwtY29sb3ItbGFzZXI6IGhzbCgwLCAxMDAlLCA1MCUpO1xuXHQvKiBTaGFkb3dzICovXG5cdC0tdGwtc2hhZG93LTE6IDBweCAxcHggMnB4IGhzbCgwLCAwJSwgMCUsIDI1JSksIDBweCAxcHggM3B4IGhzbCgwLCAwJSwgMCUsIDklKTtcblx0LS10bC1zaGFkb3ctMjpcblx0XHQwcHggMHB4IDJweCBoc2woMCwgMCUsIDAlLCAxNiUpLCAwcHggMnB4IDNweCBoc2woMCwgMCUsIDAlLCAyNCUpLFxuXHRcdDBweCAycHggNnB4IGhzbCgwLCAwJSwgMCUsIDAuMSksIGluc2V0IDBweCAwcHggMHB4IDFweCB2YXIoLS10bC1jb2xvci1wYW5lbC1jb250cmFzdCk7XG5cdC0tdGwtc2hhZG93LTM6XG5cdFx0MHB4IDFweCAycHggaHNsKDAsIDAlLCAwJSwgMjglKSwgMHB4IDJweCA2cHggaHNsKDAsIDAlLCAwJSwgMTQlKSxcblx0XHRpbnNldCAwcHggMHB4IDBweCAxcHggdmFyKC0tdGwtY29sb3ItcGFuZWwtY29udHJhc3QpO1xuXHQtLXRsLXNoYWRvdy00OlxuXHRcdDBweCAwcHggM3B4IGhzbCgwLCAwJSwgMCUsIDE5JSksIDBweCA1cHggNHB4IGhzbCgwLCAwJSwgMCUsIDE2JSksXG5cdFx0MHB4IDJweCAxNnB4IGhzbCgwLCAwJSwgMCUsIDYlKSwgaW5zZXQgMHB4IDBweCAwcHggMXB4IHZhcigtLXRsLWNvbG9yLXBhbmVsLWNvbnRyYXN0KTtcbn1cblxuLnRsLXRoZW1lX19kYXJrIHtcblx0LyogQ2FudmFzICovXG5cdC0tdGwtY29sb3Itc25hcDogaHNsKDAsIDc2JSwgNjAlKTtcblx0LS10bC1jb2xvci1zZWxlY3Rpb24tZmlsbDogaHNsKDIwOSwgMTAwJSwgNTclLCAyMCUpO1xuXHQtLXRsLWNvbG9yLXNlbGVjdGlvbi1zdHJva2U6IGhzbCgyMTQsIDg0JSwgNTYlKTtcblx0LS10bC1jb2xvci1iYWNrZ3JvdW5kOiBoc2woMjQwLCA1JSwgNi41JSk7XG5cdC0tdGwtY29sb3ItYnJ1c2gtZmlsbDogaHNsKDAsIDAlLCA3MSUsIDUuMSUpO1xuXHQtLXRsLWNvbG9yLWJydXNoLXN0cm9rZTogaHNsKDAsIDAlLCA3MSUsIDI1LjElKTtcblx0LS10bC1jb2xvci1ncmlkOiBoc2woMCwgMCUsIDQwJSk7XG5cdC8qIFVJICovXG5cdC0tdGwtY29sb3ItbG93OiBoc2woMjYwLCA0LjUlLCAxMC41JSk7XG5cdC0tdGwtY29sb3ItbG93LWJvcmRlcjogaHNsKDIwNywgMTAlLCAxMCUpO1xuXHQtLXRsLWNvbG9yLWN1bGxlZDogaHNsKDIxMCwgMTElLCAxOSUpO1xuXHQtLXRsLWNvbG9yLW11dGVkLW5vbmU6IGhzbCgwLCAwJSwgMTAwJSwgMCUpO1xuXHQtLXRsLWNvbG9yLW11dGVkLTA6IGhzbCgwLCAwJSwgMTAwJSwgMiUpO1xuXHQtLXRsLWNvbG9yLW11dGVkLTE6IGhzbCgwLCAwJSwgMTAwJSwgMTAlKTtcblx0LS10bC1jb2xvci1tdXRlZC0yOiBoc2woMCwgMCUsIDEwMCUsIDUlKTtcblx0LS10bC1jb2xvci1oaW50OiBoc2woMCwgMCUsIDEwMCUsIDclKTtcblx0LS10bC1jb2xvci1vdmVybGF5OiBoc2woMCwgMCUsIDAlLCA1MCUpO1xuXHQtLXRsLWNvbG9yLWRpdmlkZXI6IGhzbCgyNDAsIDklLCAyMiUpO1xuXHQtLXRsLWNvbG9yLXBhbmVsOiBoc2woMjM1LCA2LjglLCAxMy41JSk7XG5cdC0tdGwtY29sb3ItcGFuZWwtY29udHJhc3Q6IGhzbCgyNDUsIDEyJSwgMjMlKTtcblx0LS10bC1jb2xvci1wYW5lbC1vdmVybGF5OiBoc2woMjEwLCAxMCUsIDI0JSwgODIlKTtcblx0LS10bC1jb2xvci1wYW5lbC10cmFuc3BhcmVudDogaHNsYSgyMzUsIDYuOCUsIDEzLjUlLCAwJSk7XG5cdC0tdGwtY29sb3Itc2VsZWN0ZWQ6IGhzbCgyMTcsIDg5JSwgNjElKTtcblx0LS10bC1jb2xvci1zZWxlY3RlZC1jb250cmFzdDogaHNsKDAsIDAlLCAxMDAlKTtcblx0LS10bC1jb2xvci1mb2N1czogaHNsKDIxNywgNzYlLCA4MCUpO1xuXHQtLXRsLWNvbG9yLXRvb2x0aXA6IGhzbGEoMCwgMCUsIDEwMCUsIDEpO1xuXHQvKiBUZXh0ICovXG5cdC0tdGwtY29sb3ItdGV4dDogaHNsKDIxMCwgMTclLCA5OCUpO1xuXHQtLXRsLWNvbG9yLXRleHQtMDogaHNsKDAsIDklLCA5NCUpO1xuXHQtLXRsLWNvbG9yLXRleHQtMTogaHNsKDAsIDAlLCA4NSUpO1xuXHQtLXRsLWNvbG9yLXRleHQtMzogaHNsKDIwNCwgNCUsIDc1JSk7XG5cdC0tdGwtY29sb3ItdGV4dC1zaGFkb3c6IGhzbCgyMTAsIDEzJSwgMTglKTtcblx0LS10bC1jb2xvci10ZXh0LWhpZ2hsaWdodDogaHNsKDUyLCAxMDAlLCA0MSUpO1xuXHQtLXRsLWNvbG9yLXRleHQtaGlnaGxpZ2h0LXAzOiBjb2xvcihkaXNwbGF5LXAzIDAuODA3OCAwLjYyMjUgMC4wMzEyKTtcblx0LyogTmFtZWQgKi9cblx0LS10bC1jb2xvci1wcmltYXJ5OiBoc2woMjE0LCA4NCUsIDU2JSk7XG5cdC0tdGwtY29sb3Itc3VjY2VzczogaHNsKDEyMywgMzglLCA1NyUpO1xuXHQtLXRsLWNvbG9yLWluZm86IGhzbCgxOTksIDkyJSwgNTYlKTtcblx0LS10bC1jb2xvci13YXJuaW5nOiBoc2woMzYsIDEwMCUsIDU3JSk7XG5cdC0tdGwtY29sb3ItZGFuZ2VyOiBoc2woMCwgODIlLCA2NiUpO1xuXHQtLXRsLWNvbG9yLWxhc2VyOiBoc2woMCwgMTAwJSwgNTAlKTtcblx0LyogU2hhZG93cyAqL1xuXHQtLXRsLXNoYWRvdy0xOlxuXHRcdDBweCAxcHggMnB4IGhzbCgwLCAwJSwgMCUsIDE2LjElKSwgMHB4IDFweCAzcHggaHNsKDAsIDAlLCAwJSwgMjIlKSxcblx0XHRpbnNldCAwcHggMHB4IDBweCAxcHggdmFyKC0tdGwtY29sb3ItcGFuZWwtY29udHJhc3QpO1xuXHQtLXRsLXNoYWRvdy0yOlxuXHRcdDBweCAxcHggM3B4IGhzbCgwLCAwJSwgMCUsIDY2LjYlKSwgMHB4IDJweCA2cHggaHNsKDAsIDAlLCAwJSwgMzMlKSxcblx0XHRpbnNldCAwcHggMHB4IDBweCAxcHggdmFyKC0tdGwtY29sb3ItcGFuZWwtY29udHJhc3QpO1xuXHQtLXRsLXNoYWRvdy0zOlxuXHRcdDBweCAxcHggM3B4IGhzbCgwLCAwJSwgMCUsIDUwJSksIDBweCAycHggMTJweCBoc2woMCwgMCUsIDAlLCA1MCUpLFxuXHRcdGluc2V0IDBweCAwcHggMHB4IDFweCB2YXIoLS10bC1jb2xvci1wYW5lbC1jb250cmFzdCk7XG59XG5cbi50bC1jb3VudGVyLXNjYWxlZCB7XG5cdHRyYW5zZm9ybTogc2NhbGUodmFyKC0tdGwtc2NhbGUpKTtcblx0dHJhbnNmb3JtLW9yaWdpbjogdG9wIGxlZnQ7XG5cdHdpZHRoOiBjYWxjKDEwMCUgKiB2YXIoLS10bC16b29tKSk7XG5cdGhlaWdodDogY2FsYygxMDAlICogdmFyKC0tdGwtem9vbSkpO1xufVxuXG4udGwtY29udGFpbmVyLFxuLnRsLWNvbnRhaW5lciAqIHtcblx0LXdlYmtpdC10b3VjaC1jYWxsb3V0OiBub25lO1xuXHQtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xuXHRzY3JvbGxiYXItaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcblx0LXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcblx0dXNlci1zZWxlY3Q6IG5vbmU7XG5cdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdG91dGxpbmU6IG5vbmU7XG59XG5cbi50bC1jb250YWluZXIgYSB7XG5cdC13ZWJraXQtdG91Y2gtY2FsbG91dDogaW5pdGlhbDtcbn1cblxuLnRsLWNvbnRhaW5lcl9fZm9jdXNlZCB7XG5cdG91dGxpbmU6IDFweCBzb2xpZCB2YXIoLS10bC1jb2xvci1sb3cpO1xufVxuXG5pbnB1dCxcbipbY29udGVudGVkaXRhYmxlXSxcbipbY29udGVudGVkaXRhYmxlXSAqIHtcblx0dXNlci1zZWxlY3Q6IHRleHQ7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLSBDYW52YXMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi50bC1jYW52YXMge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdGluc2V0OiAwcHg7XG5cdGhlaWdodDogMTAwJTtcblx0d2lkdGg6IDEwMCU7XG5cdGNvbG9yOiB2YXIoLS10bC1jb2xvci10ZXh0KTtcblx0Y3Vyc29yOiB2YXIoLS10bC1jdXJzb3IpO1xuXHRvdmVyZmxvdzogY2xpcDtcblx0Y29udGVudC12aXNpYmlsaXR5OiBhdXRvO1xuXHR0b3VjaC1hY3Rpb246IG5vbmU7XG5cdGNvbnRhaW46IHN0cmljdDtcbn1cblxuLnRsLWNhbnZhc19faW4tZnJvbnQge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdGluc2V0OiAwO1xuXHRwb2ludGVyLWV2ZW50czogbm9uZTtcblx0ei1pbmRleDogdmFyKC0tdGwtbGF5ZXItY2FudmFzLWluLWZyb250KTtcbn1cblxuLnRsLXNoYXBlcyB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0ei1pbmRleDogdmFyKC0tdGwtbGF5ZXItY2FudmFzLXNoYXBlcyk7XG59XG5cbi50bC1vdmVybGF5cyB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0dG9wOiAwcHg7XG5cdGxlZnQ6IDBweDtcblx0aGVpZ2h0OiAxMDAlO1xuXHR3aWR0aDogMTAwJTtcblx0Y29udGFpbjogc3RyaWN0O1xuXHRwb2ludGVyLWV2ZW50czogbm9uZTtcblx0ei1pbmRleDogdmFyKC0tdGwtbGF5ZXItY2FudmFzLW92ZXJsYXlzKTtcbn1cblxuLnRsLW92ZXJsYXlzX19pdGVtIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR0b3A6IDBweDtcblx0bGVmdDogMHB4O1xuXHRvdmVyZmxvdzogdmlzaWJsZTtcblx0cG9pbnRlci1ldmVudHM6IG5vbmU7XG5cdHRyYW5zZm9ybS1vcmlnaW46IHRvcCBsZWZ0O1xufVxuXG4udGwtc3ZnLWNvbnRleHQge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHRvcDogMHB4O1xuXHRsZWZ0OiAwcHg7XG5cdHdpZHRoOiAxMDAlO1xuXHRoZWlnaHQ6IDEwMCU7XG5cdHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tIEJhY2tncm91bmQgLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4udGwtYmFja2dyb3VuZF9fd3JhcHBlciB7XG5cdHotaW5kZXg6IHZhcigtLXRsLWxheWVyLWNhbnZhcy1iYWNrZ3JvdW5kKTtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRpbnNldDogMHB4O1xuXHRoZWlnaHQ6IDEwMCU7XG5cdHdpZHRoOiAxMDAlO1xufVxuXG4udGwtYmFja2dyb3VuZCB7XG5cdGJhY2tncm91bmQtY29sb3I6IHZhcigtLXRsLWNvbG9yLWJhY2tncm91bmQpO1xuXHR3aWR0aDogMTAwJTtcblx0aGVpZ2h0OiAxMDAlO1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0gR3JpZCBMYXllciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLnRsLWdyaWQge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdGluc2V0OiAwcHg7XG5cdHdpZHRoOiAxMDAlO1xuXHRoZWlnaHQ6IDEwMCU7XG5cdHRvdWNoLWFjdGlvbjogbm9uZTtcblx0cG9pbnRlci1ldmVudHM6IG5vbmU7XG5cdHotaW5kZXg6IHZhcigtLXRsLWxheWVyLWNhbnZhcy1ncmlkKTtcblx0Y29udGFpbjogc3RyaWN0O1xufVxuXG4udGwtZ3JpZC1kb3Qge1xuXHRmaWxsOiB2YXIoLS10bC1jb2xvci1ncmlkKTtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tIExheWVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLnRsLWh0bWwtbGF5ZXIge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHRvcDogMHB4O1xuXHRsZWZ0OiAwcHg7XG5cdHdpZHRoOiAxcHg7XG5cdGhlaWdodDogMXB4O1xuXHRjb250YWluOiBsYXlvdXQgc3R5bGUgc2l6ZTtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tIE92ZXJsYXkgU3RhY2sgLS0tLS0tLS0tLS0tLS0tICovXG5cbi8qIGJhY2sgb2YgdGhlIHN0YWNrLCBiZWhpbmQgdXNlcidzIHN0dWZmICovXG4udGwtY29sbGFib3JhdG9yX19zY3JpYmJsZSB7XG5cdHotaW5kZXg6IHZhcigtLXRsLWxheWVyLW92ZXJsYXlzLWNvbGxhYm9yYXRvci1zY3JpYmJsZSk7XG59XG5cbi50bC1jb2xsYWJvcmF0b3JfX2JydXNoIHtcblx0ei1pbmRleDogdmFyKC0tdGwtbGF5ZXItb3ZlcmxheXMtY29sbGFib3JhdG9yLWJydXNoKTtcbn1cblxuLnRsLWNvbGxhYm9yYXRvcl9fc2hhcGUtaW5kaWNhdG9yIHtcblx0ei1pbmRleDogdmFyKC0tdGwtbGF5ZXItb3ZlcmxheXMtY29sbGFib3JhdG9yLXNoYXBlLWluZGljYXRvcik7XG59XG5cbi50bC11c2VyLXNjcmliYmxlIHtcblx0ei1pbmRleDogdmFyKC0tdGwtbGF5ZXItb3ZlcmxheXMtdXNlci1zY3JpYmJsZSk7XG59XG5cbi50bC11c2VyLWJydXNoIHtcblx0ei1pbmRleDogdmFyKC0tdGwtbGF5ZXItb3ZlcmxheXMtdXNlci1icnVzaCk7XG59XG5cbi50bC11c2VyLWhhbmRsZXMge1xuXHR6LWluZGV4OiB2YXIoLS10bC1sYXllci1vdmVybGF5cy11c2VyLWhhbmRsZXMpO1xufVxuXG4udGwtdXNlci1zbmFwbGluZSB7XG5cdHotaW5kZXg6IHZhcigtLXRsLWxheWVyLW92ZXJsYXlzLXVzZXItc25hcGxpbmUpO1xufVxuXG4udGwtc2VsZWN0aW9uX19mZyB7XG5cdHBvaW50ZXItZXZlbnRzOiBub25lO1xuXHR6LWluZGV4OiB2YXIoLS10bC1sYXllci1vdmVybGF5cy1zZWxlY3Rpb24tZmcpO1xufVxuXG4udGwtdXNlci1pbmRpY2F0b3JfX2hpbnQge1xuXHR6LWluZGV4OiB2YXIoLS10bC1sYXllci1vdmVybGF5cy11c2VyLWluZGljYXRvci1oaW50KTtcblx0c3Ryb2tlLXdpZHRoOiBjYWxjKDIuNXB4ICogdmFyKC0tdGwtc2NhbGUpKTtcbn1cblxuLnRsLWN1c3RvbS1vdmVybGF5cyB7XG5cdHotaW5kZXg6IHZhcigtLXRsLWxheWVyLW92ZXJsYXlzLWN1c3RvbSk7XG59XG5cbi8qIGJlaGluZCBjb2xsYWJvcmF0b3IgY3Vyc29yICovXG4udGwtY29sbGFib3JhdG9yX19jdXJzb3ItaGludCB7XG5cdHotaW5kZXg6IHZhcigtLXRsLWxheWVyLW92ZXJsYXlzLWNvbGxhYm9yYXRvci1jdXJzb3ItaGludCk7XG59XG5cbi50bC1jb2xsYWJvcmF0b3JfX2N1cnNvciB7XG5cdHotaW5kZXg6IHZhcigtLXRsLWxheWVyLW92ZXJsYXlzLWNvbGxhYm9yYXRvci1jdXJzb3IpO1xufVxuXG4udGwtY3Vyc29yIHtcblx0b3ZlcmZsb3c6IHZpc2libGU7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tIFNlbGVjdGlvbiBmb3JlZ3JvdW5kIC0tLS0tLS0tLS0tLS0tICovXG5cbi50bC1zZWxlY3Rpb25fX2JnIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR0b3A6IDBweDtcblx0bGVmdDogMHB4O1xuXHR0cmFuc2Zvcm0tb3JpZ2luOiB0b3AgbGVmdDtcblx0YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdHBvaW50ZXItZXZlbnRzOiBhbGw7XG59XG5cbi50bC1zZWxlY3Rpb25fX2ZnX19vdXRsaW5lIHtcblx0ZmlsbDogbm9uZTtcblx0cG9pbnRlci1ldmVudHM6IG5vbmU7XG5cdHN0cm9rZTogdmFyKC0tdGwtY29sb3Itc2VsZWN0aW9uLXN0cm9rZSk7XG5cdHN0cm9rZS13aWR0aDogY2FsYygxLjVweCAqIHZhcigtLXRsLXNjYWxlKSk7XG59XG5cbi50bC1jb3JuZXItaGFuZGxlIHtcblx0cG9pbnRlci1ldmVudHM6IG5vbmU7XG5cdHN0cm9rZTogdmFyKC0tdGwtY29sb3Itc2VsZWN0aW9uLXN0cm9rZSk7XG5cdGZpbGw6IHZhcigtLXRsLWNvbG9yLWJhY2tncm91bmQpO1xuXHRzdHJva2Utd2lkdGg6IGNhbGMoMS41cHggKiB2YXIoLS10bC1zY2FsZSkpO1xufVxuXG4udGwtdGV4dC1oYW5kbGUge1xuXHRwb2ludGVyLWV2ZW50czogbm9uZTtcblx0ZmlsbDogdmFyKC0tdGwtY29sb3Itc2VsZWN0aW9uLXN0cm9rZSk7XG59XG5cbi50bC1jb3JuZXItY3JvcC1oYW5kbGUge1xuXHRwb2ludGVyLWV2ZW50czogbm9uZTtcblx0ZmlsbDogbm9uZTtcblx0c3Ryb2tlOiB2YXIoLS10bC1jb2xvci1zZWxlY3Rpb24tc3Ryb2tlKTtcbn1cblxuLnRsLWNvcm5lci1jcm9wLWVkZ2UtaGFuZGxlIHtcblx0cG9pbnRlci1ldmVudHM6IG5vbmU7XG5cdGZpbGw6IG5vbmU7XG5cdHN0cm9rZTogdmFyKC0tdGwtY29sb3Itc2VsZWN0aW9uLXN0cm9rZSk7XG59XG5cbi50bC1tb2JpbGUtcm90YXRlX19iZyB7XG5cdHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cdGN1cnNvcjogdmFyKC0tdGwtY3Vyc29yLWdyYWIpO1xufVxuXG4udGwtbW9iaWxlLXJvdGF0ZV9fZmcge1xuXHRwb2ludGVyLWV2ZW50czogbm9uZTtcblx0c3Ryb2tlOiB2YXIoLS10bC1jb2xvci1zZWxlY3Rpb24tc3Ryb2tlKTtcblx0ZmlsbDogdmFyKC0tdGwtY29sb3ItYmFja2dyb3VuZCk7XG5cdHN0cm9rZS13aWR0aDogY2FsYygxLjVweCAqIHZhcigtLXRsLXNjYWxlKSk7XG59XG5cbi50bC10cmFuc3BhcmVudCB7XG5cdGZpbGw6IHRyYW5zcGFyZW50O1xuXHRzdHJva2U6IHRyYW5zcGFyZW50O1xufVxuXG4udGwtaGlkZGVuIHtcblx0b3BhY2l0eTogMDtcblx0cG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tIE5hbWV0YWcgLyBjdXJzb3IgY2hhdCAtLS0tLS0tLS0tLS0tICovXG5cbi50bC1uYW1ldGFnIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR0b3A6IDE2cHg7XG5cdGxlZnQ6IDEzcHg7XG5cdHdpZHRoOiBmaXQtY29udGVudDtcblx0aGVpZ2h0OiBmaXQtY29udGVudDtcblx0bWF4LXdpZHRoOiAxMjBweDtcblx0cGFkZGluZzogM3B4IDZweDtcblx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRvdmVyZmxvdzogaGlkZGVuO1xuXHR0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcblx0Zm9udC1zaXplOiAxMnB4O1xuXHRmb250LWZhbWlseTogdmFyKC0tZm9udC1ib2R5KTtcblx0Ym9yZGVyLXJhZGl1czogdmFyKC0tdGwtcmFkaXVzLTIpO1xuXHRjb2xvcjogdmFyKC0tdGwtY29sb3Itc2VsZWN0ZWQtY29udHJhc3QpO1xufVxuXG4udGwtbmFtZXRhZy10aXRsZSB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0dG9wOiAtMnB4O1xuXHRsZWZ0OiAxM3B4O1xuXHR3aWR0aDogZml0LWNvbnRlbnQ7XG5cdGhlaWdodDogZml0LWNvbnRlbnQ7XG5cdHBhZGRpbmc6IDBweCA2cHg7XG5cdG1heC13aWR0aDogMTIwcHg7XG5cdHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0dGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5cdGZvbnQtc2l6ZTogMTJweDtcblx0Zm9udC1mYW1pbHk6IHZhcigtLWZvbnQtYm9keSk7XG5cdHRleHQtc2hhZG93OiB2YXIoLS10bC10ZXh0LW91dGxpbmUpO1xuXHRjb2xvcjogdmFyKC0tdGwtY29sb3Itc2VsZWN0ZWQtY29udHJhc3QpO1xufVxuXG4udGwtbmFtZXRhZy1jaGF0IHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR0b3A6IDE2cHg7XG5cdGxlZnQ6IDEzcHg7XG5cdHdpZHRoOiBmaXQtY29udGVudDtcblx0aGVpZ2h0OiBmaXQtY29udGVudDtcblx0Y29sb3I6IHZhcigtLXRsLWNvbG9yLXNlbGVjdGVkLWNvbnRyYXN0KTtcblx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRwYWRkaW5nOiAzcHggNnB4O1xuXHRmb250LXNpemU6IDEycHg7XG5cdGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWJvZHkpO1xuXHRvcGFjaXR5OiAxO1xuXHRib3JkZXItcmFkaXVzOiB2YXIoLS10bC1yYWRpdXMtMik7XG59XG5cbi50bC1jdXJzb3ItY2hhdCB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0Y29sb3I6IHZhcigtLXRsLWNvbG9yLXNlbGVjdGVkLWNvbnRyYXN0KTtcblx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcblx0cGFkZGluZzogM3B4IDZweDtcblx0Zm9udC1zaXplOiAxMnB4O1xuXHRmb250LWZhbWlseTogdmFyKC0tZm9udC1ib2R5KTtcblx0cG9pbnRlci1ldmVudHM6IG5vbmU7XG5cdHotaW5kZXg6IHZhcigtLXRsLWxheWVyLWN1cnNvcik7XG5cdG1hcmdpbi10b3A6IDE2cHg7XG5cdG1hcmdpbi1sZWZ0OiAxM3B4O1xuXHRvcGFjaXR5OiAxO1xuXHRib3JkZXI6IG5vbmU7XG5cdHVzZXItc2VsZWN0OiB0ZXh0O1xuXHRib3JkZXItcmFkaXVzOiB2YXIoLS10bC1yYWRpdXMtMik7XG59XG5cbi50bC1jdXJzb3ItY2hhdCAudGwtY3Vyc29yLWNoYXRfX2J1YmJsZSB7XG5cdHBhZGRpbmctcmlnaHQ6IDEycHg7XG59XG5cbi50bC1jdXJzb3ItY2hhdDo6c2VsZWN0aW9uIHtcblx0YmFja2dyb3VuZDogdmFyKC0tdGwtY29sb3Itc2VsZWN0ZWQpO1xuXHRjb2xvcjogdmFyKC0tdGwtY29sb3Itc2VsZWN0ZWQtY29udHJhc3QpO1xuXHR0ZXh0LXNoYWRvdzogbm9uZTtcbn1cblxuLnRsLWN1cnNvci1jaGF0OjpwbGFjZWhvbGRlciB7XG5cdGNvbG9yOiB2YXIoLS10bC1jb2xvci1zZWxlY3RlZC1jb250cmFzdCk7XG5cdG9wYWNpdHk6IDAuNztcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBUZXh0IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLnRsLXRleHQtc2hhcGUtbGFiZWwge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdGZvbnQtd2VpZ2h0OiBub3JtYWw7XG5cdG1pbi13aWR0aDogMXB4O1xuXHRwYWRkaW5nOiAwcHg7XG5cdG1hcmdpbjogMHB4O1xuXHRib3JkZXI6IG5vbmU7XG5cdHdpZHRoOiBmaXQtY29udGVudDtcblx0aGVpZ2h0OiBmaXQtY29udGVudDtcblx0Zm9udC12YXJpYW50OiBub3JtYWw7XG5cdGZvbnQtc3R5bGU6IG5vcm1hbDtcblx0cG9pbnRlci1ldmVudHM6IGFsbDtcblx0d2hpdGUtc3BhY2U6IHByZS13cmFwO1xuXHRvdmVyZmxvdy13cmFwOiBicmVhay13b3JkO1xufVxuXG4udGwtdGV4dC13cmFwcGVyW2RhdGEtZm9udD0nZHJhdyddIHtcblx0Zm9udC1mYW1pbHk6IHZhcigtLXRsLWZvbnQtZHJhdyk7XG59XG5cbi50bC10ZXh0LXdyYXBwZXJbZGF0YS1mb250PSdzYW5zJ10ge1xuXHRmb250LWZhbWlseTogdmFyKC0tdGwtZm9udC1zYW5zKTtcbn1cblxuLnRsLXRleHQtd3JhcHBlcltkYXRhLWZvbnQ9J3NlcmlmJ10ge1xuXHRmb250LWZhbWlseTogdmFyKC0tdGwtZm9udC1zZXJpZik7XG59XG5cbi50bC10ZXh0LXdyYXBwZXJbZGF0YS1mb250PSdtb25vJ10ge1xuXHRmb250LWZhbWlseTogdmFyKC0tdGwtZm9udC1tb25vKTtcbn1cblxuLnRsLXRleHQtd3JhcHBlcltkYXRhLWFsaWduPSdzdGFydCddLFxuLnRsLXRleHQtd3JhcHBlcltkYXRhLWFsaWduPSdzdGFydC1sZWdhY3knXSB7XG5cdHRleHQtYWxpZ246IGxlZnQ7XG59XG5cbi50bC10ZXh0LXdyYXBwZXJbZGF0YS1hbGlnbj0nbWlkZGxlJ10sXG4udGwtdGV4dC13cmFwcGVyW2RhdGEtYWxpZ249J21pZGRsZS1sZWdhY3knXSB7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLnRsLXRleHQtd3JhcHBlcltkYXRhLWFsaWduPSdlbmQnXSxcbi50bC10ZXh0LXdyYXBwZXJbZGF0YS1hbGlnbj0nZW5kLWxlZ2FjeSddIHtcblx0dGV4dC1hbGlnbjogcmlnaHQ7XG59XG5cbi50bC1wbGFpbi10ZXh0LXdyYXBwZXJbZGF0YS1pc2VkaXRpbmc9J3RydWUnXSAudGwtdGV4dC1jb250ZW50IHtcblx0b3BhY2l0eTogMDtcbn1cblxuLnRsLXJpY2gtdGV4dC13cmFwcGVyW2RhdGEtaXNlZGl0aW5nPSd0cnVlJ10gLnRsLXRleHQtY29udGVudCB7XG5cdGRpc3BsYXk6IG5vbmU7XG59XG5cbi50bC10ZXh0IHtcblx0LyogcmVtb3ZlIG92ZXJmbG93IGZyb20gdGV4dGFyZWEgb24gd2luZG93cyAqL1xuXHRtYXJnaW46IDBweDtcblx0cGFkZGluZzogMHB4O1xuXG5cdGFwcGVhcmFuY2U6IGF1dG87XG5cdGJhY2tncm91bmQ6IG5vbmU7XG5cdGJvcmRlci1pbWFnZTogbm9uZTtcblx0Ym9yZGVyOiAwcHg7XG5cdGNhcmV0LWNvbG9yOiB2YXIoLS10bC1jb2xvci10ZXh0KTtcblx0Y29sb3I6IGluaGVyaXQ7XG5cdGNvbHVtbi1jb3VudDogaW5pdGlhbCAhaW1wb3J0YW50O1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuXHRmb250LWZlYXR1cmUtc2V0dGluZ3M6IG5vcm1hbDtcblx0Zm9udC1rZXJuaW5nOiBhdXRvO1xuXHRmb250LW9wdGljYWwtc2l6aW5nOiBhdXRvO1xuXHRmb250LXNpemU6IGluaGVyaXQ7XG5cdGZvbnQtc3RyZXRjaDogMTAwJTtcblx0Zm9udC1zdHlsZTogaW5oZXJpdDtcblx0Zm9udC12YXJpYW50OiBpbmhlcml0O1xuXHRmb250LXZhcmlhdGlvbi1zZXR0aW5nczogbm9ybWFsO1xuXHRmb250LXdlaWdodDogaW5oZXJpdDtcblx0bGV0dGVyLXNwYWNpbmc6IGluaGVyaXQ7XG5cdGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuXHRvdXRsaW5lOiBub25lO1xuXHRvdmVyZmxvdy13cmFwOiBicmVhay13b3JkO1xuXHR0ZXh0LWFsaWduOiBpbmhlcml0O1xuXHR0ZXh0LWluZGVudDogMHB4O1xuXHR0ZXh0LXJlbmRlcmluZzogYXV0bztcblx0dGV4dC1zaGFkb3c6IGluaGVyaXQ7XG5cdHRleHQtdHJhbnNmb3JtOiBub25lO1xuXHR3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XG5cdGxpbmUtYnJlYWs6IG5vcm1hbDtcblx0d29yZC1zcGFjaW5nOiAwcHg7XG5cdHdvcmQtd3JhcDogYnJlYWstd29yZDtcblx0d3JpdGluZy1tb2RlOiBob3Jpem9udGFsLXRiICFpbXBvcnRhbnQ7XG59XG5cbi50bC10ZXh0LW1lYXN1cmUge1xuXHR6LWluZGV4OiB2YXIoLS10bC1sYXllci1jYW52YXMtaGlkZGVuKTtcblx0b3BhY2l0eTogMDtcblx0dmlzaWJpbGl0eTogaGlkZGVuO1xuXG5cdC8qIHBvaW50ZXItZXZlbnRzOiBhbGw7ICovXG5cdC8qIG9wYWNpdHk6IDE7ICovXG5cdC8qIHotaW5kZXg6IDk5OTk5OyAgKi9cblxuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHRvcDogMHB4O1xuXHRsZWZ0OiAwcHg7XG5cdHdpZHRoOiBtYXgtY29udGVudDtcblx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblx0cG9pbnRlci1ldmVudHM6IG5vbmU7XG5cdHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcblx0d29yZC13cmFwOiBicmVhay13b3JkO1xuXHRvdmVyZmxvdy13cmFwOiBicmVhay13b3JkO1xuXHRyZXNpemU6IG5vbmU7XG5cdGJvcmRlcjogbm9uZTtcblx0dXNlci1zZWxlY3Q6IG5vbmU7XG5cdGNvbnRhaW46IGxheW91dCBzdHlsZSBwYWludDtcblx0LyogTi5CLiBUaGlzIHByb3BlcnR5LCB3aGlsZSBkaXNjb3VyYWdlZCAoXCJpbnRlbmRlZCBmb3IgRG9jdW1lbnQgVHlwZSBEZWZpbml0aW9uIChEVEQpIGRlc2lnbmVyc1wiKSBpcyBuZWNlc3NhcnkgZm9yIGVuc3VyaW5nIGNvcnJlY3QgbWl4ZWQgUlRML0xUUiBiZWhhdmlvciB3aGVuIGV4cG9ydGluZyBTVkdzLiAqL1xuXHR1bmljb2RlLWJpZGk6IHBsYWludGV4dDtcblx0LXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbn1cblxuLnRsLXRleHQtaW5wdXQsXG4udGwtdGV4dC1jb250ZW50IHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRpbnNldDogMHB4O1xuXHRoZWlnaHQ6IDEwMCU7XG5cdHdpZHRoOiAxMDAlO1xuXHRtaW4td2lkdGg6IDFweDtcblx0bWluLWhlaWdodDogMXB4O1xuXHRvdXRsaW5lOiBub25lO1xufVxuXG4udGwtdGV4dC1jb250ZW50X193cmFwcGVyIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR3aWR0aDogZml0LWNvbnRlbnQ7XG5cdGhlaWdodDogZml0LWNvbnRlbnQ7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXHRwb2ludGVyLWV2ZW50czogbm9uZTtcblx0bWluLWhlaWdodDogYXV0bztcbn1cblxuLnRsLXRleHQtY29udGVudCB7XG5cdG92ZXJmbG93OiB2aXNpYmxlO1xuXHRwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLnRsLXRleHQtaW5wdXQge1xuXHRyZXNpemU6IG5vbmU7XG5cdHVzZXItc2VsZWN0OiBhbGw7XG5cdC13ZWJraXQtdXNlci1zZWxlY3Q6IHRleHQ7XG5cdGN1cnNvcjogdmFyKC0tdGwtY3Vyc29yLXRleHQpO1xufVxuXG4udGwtdGV4dC1pbnB1dDpub3QoLnRsLXJpY2gtdGV4dCkge1xuXHQvKlxuXHQgKiBOb3RlOiB0aGlzIGBvdmVyZmxvdzogaGlkZGVuYCBpcyBrZXkgZm9yIHNjcm9sbGJhcnMgdG8gbm90IHNob3cgdXBcblx0ICogcGxhaW50ZXh0Lzx0ZXh0YXJlYT4gZWRpdG9ycy5cblx0ICovXG5cdG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi50bC10ZXh0LWlucHV0OjpzZWxlY3Rpb24ge1xuXHRiYWNrZ3JvdW5kOiB2YXIoLS10bC1jb2xvci1zZWxlY3RlZCk7XG5cdGNvbG9yOiB2YXIoLS10bC1jb2xvci1zZWxlY3RlZC1jb250cmFzdCk7XG5cdHRleHQtc2hhZG93OiBub25lO1xufVxuXG4vKiBUZXh0IGxhYmVsICovXG5cbi50bC10ZXh0LWxhYmVsIHtcblx0ZGlzcGxheTogZmxleDtcblx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdGNvbG9yOiB2YXIoLS10bC1jb2xvci10ZXh0KTtcblx0bGluZS1oZWlnaHQ6IGluaGVyaXQ7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0aW5zZXQ6IDBweDtcblx0aGVpZ2h0OiAxMDAlO1xuXHR3aWR0aDogMTAwJTtcbn1cblxuLnRsLXRleHQtbGFiZWxbZGF0YS1oYXN0ZXh0PSdmYWxzZSddW2RhdGEtaXNlZGl0aW5nPSdmYWxzZSddID4gLnRsLXRleHQtbGFiZWxfX2lubmVyIHtcblx0d2lkdGg6IDQwcHg7XG5cdGhlaWdodDogNDBweDtcbn1cblxuLnRsLXRleHQtbGFiZWxbZGF0YS1oYXN0ZXh0PSd0cnVlJ11bZGF0YS1pc2VkaXRpbmc9J2ZhbHNlJ10gLnRsLXRleHQtY29udGVudCB7XG5cdHBvaW50ZXItZXZlbnRzOiBhbGw7XG59XG5cbi50bC10ZXh0LWxhYmVsX19pbm5lciA+IC50bC10ZXh0LWlucHV0LnRsLXJpY2gtdGV4dCB7XG5cdGRpc3BsYXk6IG5vbmU7XG5cdHBvc2l0aW9uOiBzdGF0aWM7XG59XG5cbi50bC10ZXh0LXdyYXBwZXJbZGF0YS1pc2VkaXRpbmc9J2ZhbHNlJ10gLnRsLXRleHQtaW5wdXQge1xuXHRvcGFjaXR5OiAwO1xuXHRjdXJzb3I6IHZhcigtLXRsLWN1cnNvci1kZWZhdWx0KTtcbn1cblxuLnRsLXJpY2gtdGV4dFtkYXRhLWlzLXJlYWR5LWZvci1lZGl0aW5nPSd0cnVlJ10sXG4udGwtdGV4dC13cmFwcGVyW2RhdGEtaXMtcmVhZHktZm9yLWVkaXRpbmc9J3RydWUnXSAudGwtdGV4dC1pbnB1dCB7XG5cdGN1cnNvcjogdmFyKC0tdGwtY3Vyc29yLXRleHQpO1xufVxuXG4udGwtdGV4dC1sYWJlbFtkYXRhLXRleHR3cmFwPSd0cnVlJ10gPiAudGwtdGV4dC1sYWJlbF9faW5uZXIge1xuXHRtYXgtd2lkdGg6IDEwMCU7XG59XG5cbi50bC10ZXh0LWxhYmVsW2RhdGEtaXNlZGl0aW5nPSd0cnVlJ10ge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcblx0bWluLWhlaWdodDogYXV0bztcbn1cblxuLnRsLXRleHQtd3JhcHBlciAudGwtdGV4dC1jb250ZW50IHtcblx0cG9pbnRlci1ldmVudHM6IGFsbDtcblx0ei1pbmRleDogdmFyKC0tdGwtbGF5ZXItdGV4dC1jb250ZW50KTtcbn1cblxuLnRsLXRleHQtbGFiZWxfX2lubmVyID4gLnRsLXRleHQtY29udGVudCB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0dG9wOiAwcHg7XG5cdGxlZnQ6IDBweDtcblx0cGFkZGluZzogaW5oZXJpdDtcblx0aGVpZ2h0OiBmaXQtY29udGVudDtcblx0d2lkdGg6IGZpdC1jb250ZW50O1xuXHRib3JkZXItcmFkaXVzOiB2YXIoLS10bC1yYWRpdXMtMSk7XG5cdG1heC13aWR0aDogMTAwJTtcbn1cblxuLnRsLXRleHQtbGFiZWxfX2lubmVyID4gLnRsLXRleHQtaW5wdXQge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdGluc2V0OiAwcHg7XG5cdGhlaWdodDogMTAwJTtcblx0d2lkdGg6IDEwMCU7XG5cdHBhZGRpbmc6IGluaGVyaXQ7XG59XG5cbi50bC10ZXh0LXdyYXBwZXJbZGF0YS1pc3NlbGVjdGVkPSd0cnVlJ10gLnRsLXRleHQtaW5wdXQge1xuXHR6LWluZGV4OiB2YXIoLS10bC1sYXllci10ZXh0LWVkaXRvcik7XG5cdHBvaW50ZXItZXZlbnRzOiBhbGw7XG59XG5cbi8qIFRoaXMgcGFydCBvZiB0aGUgcnVsZSBoZWxwcyBwcmVzZXJ2ZSB0aGUgb2NjbHVzaW9uIHJ1bGVzIGZvciB0aGUgc2hhcGVzIHNvIHdlXG4gKiBkb24ndCBjbGljayBvbiBzaGFwZXMgdGhhdCBhcmUgYmVoaW5kIG90aGVyIHNoYXBlcy5cbiAqIE9uZSBleHRyYSBudWFuY2UgaXMgd2UgZG9uJ3QgdXNlIHRoaXMgYmVoYXZpb3IgZm9yOlxuICogIC0gYXJyb3dzIHdoaWNoIGhhdmUgd2VpcmQgZ2VvbWV0cnkgYW5kIGp1c3QgZ2V0cyBpbiB0aGUgd2F5LlxuICogIC0gZHJhdy9saW5lIHNoYXBlcywgYmVjYXVzZSBpdCBmZWVscyByZXN0cmljdGl2ZSB0byBoYXZlIHRoZW0gYmUgJ2luIHRoZSB3YXknIG9mIGNsaWNraW5nIG9uIGEgdGV4dGZpZWxkXG4gKiAgLSBzaGFwZXMgdGhhdCBhcmUgbm90IGZpbGxlZFxuICovXG4udGwtY2FudmFzOmlzKFtkYXRhLWlzZWRpdGluZ2FueXRoaW5nPSd0cnVlJ10sIFtkYXRhLWlzc2VsZWN0aW5nYW55dGhpbmc9J3RydWUnXSlcblx0LnRsLXNoYXBlOm5vdChcblx0XHRbZGF0YS1zaGFwZS10eXBlPSdhcnJvdyddLFxuXHRcdFtkYXRhLXNoYXBlLXR5cGU9J2RyYXcnXSxcblx0XHRbZGF0YS1zaGFwZS10eXBlPSdsaW5lJ10sXG5cdFx0W2RhdGEtc2hhcGUtdHlwZT0naGlnaGxpZ2h0J10sXG5cdFx0W2RhdGEtc2hhcGUtaXMtZmlsbGVkPSdmYWxzZSddXG5cdCkge1xuXHRwb2ludGVyLWV2ZW50czogYWxsO1xufVxuXG4udGwtcmljaC10ZXh0IC5Qcm9zZU1pcnJvciB7XG5cdHdvcmQtd3JhcDogYnJlYWstd29yZDtcblx0b3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcblx0d2hpdGUtc3BhY2U6IHByZS13cmFwO1xuXG5cdC8qKlxuXHQgKiBOb3RlOiBQcm9zZU1pcnJvciBkaXNhYmxlcyB0aGlzIGluIGh0dHBzOi8vZ2l0aHViLmNvbS9Qcm9zZU1pcnJvci9wcm9zZW1pcnJvci12aWV3L2NvbW1pdC82YjNiMjIwNWUyZjMwMjljYjhlOGU4NmM1NWExOTBhMjI0OTFkZjMxXG5cdCAqIEhvd2V2ZXIsIHRoYXQgd2FzIGZyb20gOCB5ZWFycyBhZ28gYW5kIHRoZSBicm93c2VyIGNhcmV0IGlzc3VlXG5cdCAqIGl0IG1lbnRpb25zIHNlZW1zIHRvIGJlIGZpeGVkLiBTbywgd2UncmUgcmUtZW5hYmxpbmcgaXQuXG5cdCAqIFdlJ2xsIHRlbGwgUHJvc2VNaXJyb3IgbWF5YmUgdG8gZ2V0IHJpZCBvZiB0aGlzIG9uIHRoZWlyIGVuZC5cblx0ICpcblx0ICovXG5cdC13ZWJraXQtZm9udC12YXJpYW50LWxpZ2F0dXJlczogaW5oZXJpdDtcblx0Zm9udC12YXJpYW50LWxpZ2F0dXJlczogaW5oZXJpdDtcblx0Zm9udC1mZWF0dXJlLXNldHRpbmdzOiBpbmhlcml0O1xuXG5cdC8qKlxuXHQgKiBOLkIuIFRoaXMgZm9sbG93aW5nIENTUyBSdWxlIGNvbWVzIHN0YW5kYXJkIHdpdGggdGhlIHRpcHRhcCBlZGl0b3IuXG5cdCAqIENvbWJpbmVkIHdpdGggdGhlIGFib3ZlIHJ1bGUgdGhhdCBpdCBzdXBlcnNlZGVzLCBpdCBhbGxvd3MgZm9yXG5cdCAqIHRoZSBhdXRvLWxpbmtpbmcgdG8gd29yayBpbiB0ZXh0LiBTYXksIHdoZW4gdHlwaW5nIGV4YW1wbGUuY29tXG5cdCAqIHRoaXMgaGVscHMgaXQgYXV0b21hdGljYWxseSB0dXJuIHRoYXQgYml0IG9mIHRleHQgaW50byBhIGxpbmsuXG5cdCAqXG5cdCAqIEhvd2V2ZXIsIHNwZWNpZmljYWxseSwgdGhlIGJyZWFrLXNwYWNlcyBmZWF0dXJlcyBzZWVtcyB0byBjYXVzZVxuXHQgKiByZW5kZXJpbmcgZGlmZmVyZW5jZXMgd2hlbiBnb2luZyBpbi1hbmQtb3V0IG9mIGVkaXQgbW9kZS4gRm9yIGV4YW1wbGUsXG5cdCAqIHRoZSBzdGF0aWNhbGx5IHJlbmRlcmVkIHRleHQgJ3RoZSByYWluIGluIHNwYWluIGZhbGxzIG1haW5seSBvbiB0aGUgcGxhaW4nXG5cdCAqIGluIGEgbm90ZSBzaGFwZSB3aWxsIHJlbmRlciBkaWZmZXJlbnRseSB3aGVuIGdvaW5nIGluLWFuZC1vdXQgb2YgZWRpdCBtb2RlLlxuXHQgKlxuXHQgKiBTbywgdGhpcyBpcyBjb21tZW50ZWQgb3V0IHRvIGhlbHAgbWFrZSBib3RoIHRoZSBhdXRvbGlua2luZyB3b3JrICh3aGljaCBub3dcblx0ICogcmVsaWVzIG9uIHRoZSB3aGl0ZS1zcGFjZTogcHJlLXdyYXAgdG8gd29yayBhbmQgdG8gbWFrZSB0aGUgc3RhdGljL2VkaXQtbW9kZVxuXHQgKiByZW5kZXJpbmcgY29uc2lzdGVudC5cblx0ICogSW4gdGhlIGZ1dHVyZSwgd2UgbWlnaHQgY29uc2lkZXIganVzdCBtYWtpbmcgdGhlIHN0YXRpYyByZW5kZXJpbmcganVzdCB1c2Vcblx0ICogd2hpdGUtc3BhY2U6IGJyZWFrLXNwYWNlcyB0byBtYWtlIGl0IGNvbnNpc3RlbnQgd2l0aCB0aGUgZWRpdCBtb2RlIGlmIG5lZWQgYmUuXG5cdCAqXG5cdCAqIEFsc28sIHRoZSBhbW91bnQgb2YgaW5rIEkndmUgc3BpbHQgaW4gbXkgY2FyZWVyIHdyaXRpbmcgY29tbWVudHMgZXhwbGFpbmluZ1xuXHQgKiB3aGl0ZS1zcGFjZSBpbiBjb250ZW50ZWRpdGFibGUgaXMgaW5jcmVkaWJsZS5cblx0ICpcblx0Lyogd2hpdGUtc3BhY2U6IGJyZWFrLXNwYWNlczsgKi9cbn1cblxuLnRsLXJpY2gtdGV4dCBwIHtcblx0bWFyZ2luOiAwO1xuXHQvKiBEZXBlbmRpbmcgb24gdGhlIGV4dGVuc2lvbnMsIDxwPiB0YWdzIGNhbiBiZSBlbXB0eSwgd2l0aG91dCBhIDxiciAvPi4gKi9cblx0bWluLWhlaWdodDogMWxoO1xufVxuXG4udGwtcmljaC10ZXh0IHVsLFxuLnRsLXJpY2gtdGV4dCBvbCB7XG5cdHRleHQtYWxpZ246IGxlZnQ7XG5cdG1hcmdpbjogMDtcblx0cGFkZGluZy1sZWZ0OiAzLjI1Y2g7XG5cdC8qIFNvbWUgcmVzZXRzLCBsaWtlIFRhaWx3aW5kLCBuaXggdGhlIGxpc3Qgc3R5bGluZy4gKi9cblx0bGlzdC1zdHlsZTogcmV2ZXJ0O1xufVxuXG4udGwtcmljaC10ZXh0IG9sOmhhcyg+IGxpOm50aC1jaGlsZCgxMCkpIHtcblx0cGFkZGluZy1sZWZ0OiA0LjI1Y2g7XG59XG5cbi50bC1yaWNoLXRleHQgb2w6aGFzKD4gbGk6bnRoLWNoaWxkKDEwMCkpIHtcblx0cGFkZGluZy1sZWZ0OiA1LjI1Y2g7XG59XG5cbi50bC1yaWNoLXRleHQgaDEsXG4udGwtcmljaC10ZXh0IGgyLFxuLnRsLXJpY2gtdGV4dCBoMyxcbi50bC1yaWNoLXRleHQgaDQsXG4udGwtcmljaC10ZXh0IGg1LFxuLnRsLXJpY2gtdGV4dCBoNiB7XG5cdG1hcmdpbi10b3A6IDVweDtcblx0bWFyZ2luLWJvdHRvbTogMTBweDtcbn1cblxuLnRsLXJpY2gtdGV4dCBhIHtcblx0Y29sb3I6IHZhcigtLXRsLWNvbG9yLXByaW1hcnkpO1xuXHR0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cblxuLnRsLXJpY2gtdGV4dFtkYXRhLWlzLXNlbGVjdC10b29sLWFjdGl2ZT0nZmFsc2UnXSBhIHtcblx0Y3Vyc29yOiBpbmhlcml0O1xufVxuXG4udGwtcmljaC10ZXh0IGNvZGUge1xuXHRmb250LWZhbWlseTogdmFyKC0tdGwtZm9udC1tb25vKTtcbn1cblxuLnRsLXJpY2gtdGV4dCBtYXJrIHtcblx0YmFja2dyb3VuZC1jb2xvcjogI2ZkZGQwMDtcblx0Y29sb3I6IGN1cnJlbnRDb2xvcjtcblx0Ym9yZGVyLXJhZGl1czogMnB4O1xufVxuXG4udGwtdGhlbWVfX2xpZ2h0IC50bC1yaWNoLXRleHQgbWFyayB7XG5cdHRleHQtc2hhZG93OiBub25lO1xufVxuXG4udGwtdGhlbWVfX2RhcmsgLnRsLXJpY2gtdGV4dCBtYXJrIHtcblx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdGwtY29sb3ItdGV4dC1oaWdobGlnaHQpO1xuXHRjb2xvcjogY3VycmVudENvbG9yO1xufVxuXG5Ac3VwcG9ydHMgKGNvbG9yOiBjb2xvcihkaXNwbGF5LXAzIDEgMSAxKSkge1xuXHRAbWVkaWEgKGNvbG9yLWdhbXV0OiBwMykge1xuXHRcdC50bC1jb250YWluZXI6bm90KC50bC10aGVtZV9fZm9yY2Utc1JHQikgLnRsLXJpY2gtdGV4dCBtYXJrIHtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLXRsLWNvbG9yLXRleHQtaGlnaGxpZ2h0LXAzKTtcblx0XHR9XG5cdH1cbn1cblxuLnRsLXRleHQtd3JhcHBlcltkYXRhLWlzZWRpdGluZz0ndHJ1ZSddIC50bC1yaWNoLXRleHQge1xuXHRkaXNwbGF5OiBibG9jaztcbn1cblxuLnRsLXRleHRfX291dGxpbmUge1xuXHR0ZXh0LXNoYWRvdzogdmFyKC0tdGwtdGV4dC1vdXRsaW5lKTtcbn1cblxuLnRsLXRleHRfX25vLW91dGxpbmUge1xuXHR0ZXh0LXNoYWRvdzogbm9uZTtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tIExvYWRpbmcgLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLnRsLWxvYWRpbmcge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS10bC1jb2xvci1iYWNrZ3JvdW5kKTtcblx0Y29sb3I6IHZhcigtLXRsLWNvbG9yLXRleHQtMSk7XG5cdGhlaWdodDogMTAwJTtcblx0d2lkdGg6IDEwMCU7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cdGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRnYXA6IHZhcigtLXRsLXNwYWNlLTIpO1xuXHRmb250LXNpemU6IDE0cHg7XG5cdGZvbnQtd2VpZ2h0OiA1MDA7XG5cdG9wYWNpdHk6IDA7XG5cdGFuaW1hdGlvbjogdGwtZmFkZS1pbiAwLjJzIGVhc2UtaW4tb3V0IGZvcndhcmRzO1xuXHRhbmltYXRpb24tZGVsYXk6IDAuMnM7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0aW5zZXQ6IDBweDtcblx0ei1pbmRleDogdmFyKC0tdGwtbGF5ZXItY2FudmFzLWJsb2NrZXIpO1xufVxuXG5Aa2V5ZnJhbWVzIHRsLWZhZGUtaW4ge1xuXHQwJSB7XG5cdFx0b3BhY2l0eTogMDtcblx0fVxuXHQxMDAlIHtcblx0XHRvcGFjaXR5OiAxO1xuXHR9XG59XG5cbi50bC1zcGlubmVyIHtcblx0YW5pbWF0aW9uOiB0bC1zcGluIDFzIGxpbmVhciBpbmZpbml0ZTtcbn1cblxuQGtleWZyYW1lcyB0bC1zcGluIHtcblx0MCUge1xuXHRcdHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuXHR9XG5cdDEwMCUge1xuXHRcdHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG5cdH1cbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBCcnVzaCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLnRsLWJydXNoIHtcblx0c3Ryb2tlLXdpZHRoOiBjYWxjKHZhcigtLXRsLXNjYWxlKSAqIDFweCk7XG5cdGNvbnRhaW46IHNpemUgbGF5b3V0O1xufVxuXG4udGwtYnJ1c2hfX2RlZmF1bHQge1xuXHRzdHJva2U6IHZhcigtLXRsLWNvbG9yLWJydXNoLXN0cm9rZSk7XG5cdGZpbGw6IHZhcigtLXRsLWNvbG9yLWJydXNoLWZpbGwpO1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLSBTY3JpYmJsZSAtLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4udGwtc2NyaWJibGUge1xuXHRzdHJva2UtbGluZWpvaW46IHJvdW5kO1xuXHRzdHJva2UtbGluZWNhcDogcm91bmQ7XG5cdHBvaW50ZXItZXZlbnRzOiBub25lO1xuXHRjb250YWluOiBzaXplIGxheW91dDtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBTbmFwcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLnRsLXNuYXAtaW5kaWNhdG9yIHtcblx0c3Ryb2tlOiB2YXIoLS10bC1jb2xvci1zbmFwKTtcblx0c3Ryb2tlLXdpZHRoOiBjYWxjKDFweCAqIHZhcigtLXRsLXNjYWxlKSk7XG5cdGZpbGw6IG5vbmU7XG59XG5cbi50bC1zbmFwLXBvaW50IHtcblx0c3Ryb2tlOiB2YXIoLS10bC1jb2xvci1zbmFwKTtcblx0c3Ryb2tlLXdpZHRoOiBjYWxjKDFweCAqIHZhcigtLXRsLXNjYWxlKSk7XG5cdGZpbGw6IG5vbmU7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0gSHlwZXJsaW5rIEJ1dHRvbiAtLS0tLS0tLS0tLS0tLS0tICovXG5cbi50bC1oeXBlcmxpbmstYnV0dG9uIHtcblx0YmFja2dyb3VuZDogbm9uZTtcblx0bWFyZ2luOiAwcHg7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0dG9wOiAwcHg7XG5cdHJpZ2h0OiAwcHg7XG5cdGhlaWdodDogNDRweDtcblx0d2lkdGg6IDQ0cHg7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXHRmb250LXNpemU6IDEycHg7XG5cdGZvbnQtd2VpZ2h0OiA0MDA7XG5cdGNvbG9yOiB2YXIoLS10bC1jb2xvci10ZXh0LTEpO1xuXHRwYWRkaW5nOiAxM3B4O1xuXHRjdXJzb3I6IHZhcigtLXRsLWN1cnNvci1wb2ludGVyKTtcblx0Ym9yZGVyOiBub25lO1xuXHRvdXRsaW5lOiBub25lO1xuXHRwb2ludGVyLWV2ZW50czogYWxsO1xuXHR6LWluZGV4OiAxO1xufVxuXG4udGwtaHlwZXJsaW5rLWJ1dHRvbjo6YWZ0ZXIge1xuXHRjb250ZW50OiAnJztcblx0ei1pbmRleDogLTE7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0cmlnaHQ6IDZweDtcblx0Ym90dG9tOiA2cHg7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHR3aWR0aDogY2FsYygxMDAlIC0gMTJweCk7XG5cdGhlaWdodDogY2FsYygxMDAlIC0gMTJweCk7XG5cdGJvcmRlci1yYWRpdXM6IHZhcigtLXRsLXJhZGl1cy0xKTtcblx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdGwtY29sb3ItYmFja2dyb3VuZCk7XG5cdHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4udGwtaHlwZXJsaW5rLWJ1dHRvbjpmb2N1cy12aXNpYmxlIHtcblx0Y29sb3I6IHZhcigtLXRsLWNvbG9yLXNlbGVjdGVkKTtcbn1cblxuLnRsLWh5cGVybGlua19faWNvbiB7XG5cdHdpZHRoOiAxNXB4O1xuXHRoZWlnaHQ6IDE1cHg7XG5cdGJhY2tncm91bmQtY29sb3I6IGN1cnJlbnRDb2xvcjtcblx0cG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi50bC1oeXBlcmxpbmstYnV0dG9uX19oaWRkZW4ge1xuXHRkaXNwbGF5OiBub25lO1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0gSGFuZGxlcyAtLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4udGwtaGFuZGxlIHtcblx0cG9pbnRlci1ldmVudHM6IGFsbDtcbn1cblxuLnRsLWhhbmRsZV9fYmcge1xuXHRmaWxsOiB0cmFuc3BhcmVudDtcblx0c3Ryb2tlOiB0cmFuc3BhcmVudDtcblx0cG9pbnRlci1ldmVudHM6IGFsbDtcbn1cblxuLnRsLWhhbmRsZV9fZmcge1xuXHRmaWxsOiB2YXIoLS10bC1jb2xvci1zZWxlY3RlZC1jb250cmFzdCk7XG5cdHN0cm9rZTogdmFyKC0tdGwtY29sb3Itc2VsZWN0aW9uLXN0cm9rZSk7XG5cdHN0cm9rZS13aWR0aDogY2FsYygxLjVweCAqIHZhcigtLXRsLXNjYWxlKSk7XG5cdHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4udGwtaGFuZGxlX19jcmVhdGUge1xuXHRvcGFjaXR5OiAwO1xufVxuXG4udGwtaGFuZGxlX19jbG9uZSA+IC50bC1oYW5kbGVfX2ZnIHtcblx0ZmlsbDogdmFyKC0tdGwtY29sb3Itc2VsZWN0aW9uLXN0cm9rZSk7XG5cdHN0cm9rZTogbm9uZTtcbn1cblxuLnRsLWhhbmRsZV9fYmc6YWN0aXZlIHtcblx0ZmlsbDogbm9uZTtcbn1cblxuLnRsLWNvbnRhaW5lcltkYXRhLWNvYXJzZT0ndHJ1ZSddIC50bC1oYW5kbGVfX2JnOmFjdGl2ZSB7XG5cdGZpbGw6IHZhcigtLXRsLWNvbG9yLXNlbGVjdGlvbi1maWxsKTtcbn1cblxuLnRsLWNvbnRhaW5lcltkYXRhLWNvYXJzZT0ndHJ1ZSddIC50bC1oYW5kbGVfX2NyZWF0ZSB7XG5cdG9wYWNpdHk6IDE7XG59XG5cbi50bC1yb3RhdGUtY29ybmVyOm5vdCg6aG92ZXIpLFxuLnRsLXJlc2l6ZS1oYW5kbGU6bm90KDpob3Zlcikge1xuXHRjdXJzb3I6IG5vbmU7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tIFNoYXBlIGluZGljYXRvciAtLS0tLS0tLS0tLS0tLS0tICovXG5cbi50bC1zaGFwZS1pbmRpY2F0b3Ige1xuXHR0cmFuc2Zvcm0tb3JpZ2luOiB0b3AgbGVmdDtcblx0ZmlsbDogbm9uZTtcblx0c3Ryb2tlLXdpZHRoOiBjYWxjKDEuNXB4ICogdmFyKC0tdGwtc2NhbGUpKTtcblx0Y29udGFpbjogc2l6ZSBsYXlvdXQ7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gU2hhcGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi50bC1zaGFwZSB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0cG9pbnRlci1ldmVudHM6IG5vbmU7XG5cdG92ZXJmbG93OiB2aXNpYmxlO1xuXHR0cmFuc2Zvcm0tb3JpZ2luOiB0b3AgbGVmdDtcblx0Y29udGFpbjogc2l6ZSBsYXlvdXQ7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0gU2hhcGUgQ29udGFpbmVycyAtLS0tLS0tLS0tLS0tLS0tICovXG5cbi50bC1zdmctY29udGFpbmVyIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRpbnNldDogMHB4O1xuXHRoZWlnaHQ6IDEwMCU7XG5cdHdpZHRoOiAxMDAlO1xuXHRwb2ludGVyLWV2ZW50czogbm9uZTtcblx0c3Ryb2tlLWxpbmVjYXA6IHJvdW5kO1xuXHRzdHJva2UtbGluZWpvaW46IHJvdW5kO1xuXHR0cmFuc2Zvcm0tb3JpZ2luOiB0b3AgbGVmdDtcblx0b3ZlcmZsb3c6IHZpc2libGU7XG59XG5cbi50bC1odG1sLWNvbnRhaW5lciB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0aW5zZXQ6IDBweDtcblx0aGVpZ2h0OiAxMDAlO1xuXHR3aWR0aDogMTAwJTtcblx0cG9pbnRlci1ldmVudHM6IG5vbmU7XG5cdHN0cm9rZS1saW5lY2FwOiByb3VuZDtcblx0c3Ryb2tlLWxpbmVqb2luOiByb3VuZDtcblx0LyogY29udGVudC12aXNpYmlsaXR5OiBhdXRvOyAqL1xuXHR0cmFuc2Zvcm0tb3JpZ2luOiB0b3AgbGVmdDtcblx0Y29sb3I6IHZhcigtLXRsLWNvbG9yLXRleHQtMSk7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tIEdyb3VwIHNoYXBlIC0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4udGwtZ3JvdXAge1xuXHRzdHJva2U6IHZhcigtLXRsLWNvbG9yLXRleHQpO1xuXHRzdHJva2Utd2lkdGg6IGNhbGMoMXB4ICogdmFyKC0tdGwtc2NhbGUpKTtcblx0b3BhY2l0eTogMC41O1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0gQXJyb3cgc2hhcGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLnRsLXNoYXBlW2RhdGEtc2hhcGUtdHlwZT0nYXJyb3cnXSAudGwtdGV4dC1sYWJlbCB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0dG9wOiAtMXB4O1xuXHRsZWZ0OiAtMXB4O1xuXHR3aWR0aDogMnB4O1xuXHRoZWlnaHQ6IDJweDtcblx0cGFkZGluZzogMHB4O1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRjb2xvcjogdmFyKC0tdGwtY29sb3ItdGV4dCk7XG59XG5cbi50bC1zaGFwZVtkYXRhLXNoYXBlLXR5cGU9J2Fycm93J10gLnRsLXRleHQtbGFiZWxfX2lubmVyIHtcblx0Ym9yZGVyLXJhZGl1czogdmFyKC0tdGwtcmFkaXVzLTEpO1xuXHRib3gtc2l6aW5nOiBjb250ZW50LWJveDtcblx0aGVpZ2h0OiBtYXgtY29udGVudDtcblx0d2lkdGg6IG1heC1jb250ZW50O1xufVxuXG4udGwtc2hhcGVbZGF0YS1zaGFwZS10eXBlPSdhcnJvdyddIC50bC10ZXh0IHtcblx0aGVpZ2h0OiBtYXgtY29udGVudDtcbn1cblxuLnRsLWFycm93LWhpbnQge1xuXHRzdHJva2U6IHZhcigtLXRsLWNvbG9yLXRleHQtMSk7XG5cdGZpbGw6IG5vbmU7XG5cdHN0cm9rZS1saW5lY2FwOiByb3VuZDtcblx0b3ZlcmZsb3c6IHZpc2libGU7XG59XG5cbi50bC1hcnJvdy1oaW50LWhhbmRsZSB7XG5cdGZpbGw6IHZhcigtLXRsLWNvbG9yLXNlbGVjdGVkLWNvbnRyYXN0KTtcblx0c3Ryb2tlOiB2YXIoLS10bC1jb2xvci1zZWxlY3Rpb24tc3Ryb2tlKTtcblx0c3Ryb2tlLXdpZHRoOiBjYWxjKDEuNXB4ICogdmFyKC0tdGwtc2NhbGUpKTtcblx0cjogY2FsYyg0cHggKiB2YXIoLS10bC1zY2FsZSkpO1xufVxuXG4udGwtYXJyb3ctaGludC1zbmFwIHtcblx0c3Ryb2tlOiB0cmFuc3BhcmVudDtcblx0ZmlsbDogdmFyKC0tdGwtY29sb3Itc2VsZWN0aW9uLWZpbGwpO1xuXHRyOiBjYWxjKDEycHggKiB2YXIoLS10bC1zY2FsZSkpO1xufVxuXG4udGwtYXJyb3ctaGludC1zbmFwX19ub25lLFxuLnRsLWFycm93LWhpbnQtc25hcF9fY2VudGVyLFxuLnRsLWFycm93LWhpbnQtc25hcF9fYXhpcyB7XG5cdGRpc3BsYXk6IG5vbmU7XG59XG5cbi50bC1hcnJvdy1oaW50LXNuYXBfX2VkZ2Uge1xuXHRyOiBjYWxjKDhweCAqIHZhcigtLXRsLXNjYWxlKSk7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0gQm9va21hcmsgc2hhcGUgLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4udGwtYm9va21hcmtfX2NvbnRhaW5lciB7XG5cdHdpZHRoOiAxMDAlO1xuXHRoZWlnaHQ6IDEwMCU7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0Ym9yZGVyOiAxcHggc29saWQgdmFyKC0tdGwtY29sb3ItcGFuZWwtY29udHJhc3QpO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS10bC1jb2xvci1wYW5lbCk7XG5cdGJvcmRlci1yYWRpdXM6IHZhcigtLXRsLXJhZGl1cy0yKTtcblx0ZGlzcGxheTogZmxleDtcblx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLnRsLWJvb2ttYXJrX19jb250YWluZXItLXNhZmFyaUV4cG9ydCB7XG5cdGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXRsLWNvbG9yLWRpdmlkZXIpO1xufVxuXG4udGwtYm9va21hcmtfX2ltYWdlX2NvbnRhaW5lciB7XG5cdGZsZXg6IDEgMSAxMDAlO1xuXHRvdmVyZmxvdzogaGlkZGVuO1xuXHRib3JkZXItdG9wLWxlZnQtcmFkaXVzOiB2YXIoLS10bC1yYWRpdXMtMSk7XG5cdGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiB2YXIoLS10bC1yYWRpdXMtMSk7XG5cdHdpZHRoOiAxMDAlO1xuXHRoZWlnaHQ6IDEwMCU7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cdGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuXHRib3gtc2hhZG93OiBpbnNldCAwcHggMHB4IDBweCAxcHggdmFyKC0tdGwtY29sb3ItZGl2aWRlcik7XG59XG5cbi50bC1ib29rbWFya19faW1hZ2VfY29udGFpbmVyID4gLnRsLWh5cGVybGluay1idXR0b246OmFmdGVyIHtcblx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdGwtY29sb3ItcGFuZWwpO1xufVxuXG4udGwtYm9va21hcmtfX3BsYWNlaG9sZGVyIHtcblx0d2lkdGg6IDEwMCU7XG5cdGhlaWdodDogMTAwJTtcblx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdGwtY29sb3ItbXV0ZWQtMik7XG5cdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS10bC1jb2xvci1tdXRlZC0yKTtcbn1cblxuLnRsLWJvb2ttYXJrX19pbWFnZSB7XG5cdHdpZHRoOiAxMDAlO1xuXHRoZWlnaHQ6IDEwMCU7XG5cdG9iamVjdC1maXQ6IGNvdmVyO1xuXHRvYmplY3QtcG9zaXRpb246IGNlbnRlcjtcblx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLXRsLWNvbG9yLW11dGVkLTIpO1xufVxuXG4udGwtYm9va21hcmtfX2NvcHlfY29udGFpbmVyIHtcblx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdGwtY29sb3ItbXV0ZWQtMCk7XG5cdHBhZGRpbmc6IHZhcigtLXRsLXNwYWNlLTQpO1xuXHRwb2ludGVyLWV2ZW50czogYWxsO1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5cdGZsZXg6IDE7XG59XG5cbi50bC1ib29rbWFya19fY29weV9jb250YWluZXI6aGFzKC50bC1ib29rbWFya19fbGluazpvbmx5LWNoaWxkKSB7XG5cdGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuXG4udGwtYm9va21hcmtfX2hlYWRpbmcsXG4udGwtYm9va21hcmtfX2Rlc2NyaXB0aW9uLFxuLnRsLWJvb2ttYXJrX19saW5rIHtcblx0bWFyZ2luOiAwcHg7XG5cdHdpZHRoOiAxMDAlO1xuXHRmb250LWZhbWlseTogaW5oZXJpdDtcbn1cblxuLnRsLWJvb2ttYXJrX19oZWFkaW5nIHtcblx0Zm9udC1zaXplOiAxNnB4O1xuXHRsaW5lLWhlaWdodDogMS42O1xuXHRmb250LXdlaWdodDogYm9sZDtcblx0cGFkZGluZy1ib3R0b206IHZhcigtLXRsLXNwYWNlLTIpO1xuXHRvdmVyZmxvdzogaGlkZGVuO1xuXHRtYXgtaGVpZ2h0OiBjYWxjKCgxNnB4ICogMS42KSAqIDIpO1xuXHQtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuXHQtd2Via2l0LWxpbmUtY2xhbXA6IDI7XG5cdGxpbmUtY2xhbXA6IDI7XG5cdHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuXHRkaXNwbGF5OiAtd2Via2l0LWJveDtcbn1cblxuLnRsLWJvb2ttYXJrX19kZXNjcmlwdGlvbiB7XG5cdGZvbnQtc2l6ZTogMTJweDtcblx0bGluZS1oZWlnaHQ6IDEuNTtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0bWF4LWhlaWdodDogY2FsYygoMTJweCAqIDEuNSkgKiAzKTtcblx0LXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcblx0LXdlYmtpdC1saW5lLWNsYW1wOiAzO1xuXHRsaW5lLWNsYW1wOiAzO1xuXHR0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcblx0ZGlzcGxheTogLXdlYmtpdC1ib3g7XG5cdGNvbG9yOiB2YXIoLS10bC1jb2xvci10ZXh0LTEpO1xuXHRtYXJnaW46IHZhcigtLXRsLXNwYWNlLTIpIDBweDtcbn1cblxuLnRsLWJvb2ttYXJrX19oZWFkaW5nICsgLnRsLWJvb2ttYXJrX19saW5rLFxuLnRsLWJvb2ttYXJrX19kZXNjcmlwdGlvbiArIC50bC1ib29rbWFya19fbGluayB7XG5cdG1hcmdpbi10b3A6IHZhcigtLXRsLXNwYWNlLTMpO1xufVxuLnRsLWJvb2ttYXJrX19saW5rIHtcblx0Zm9udC1zaXplOiAxMnB4O1xuXHRwb2ludGVyLWV2ZW50czogYWxsO1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRjb2xvcjogdmFyKC0tdGwtY29sb3ItdGV4dC0xKTtcblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0Y3Vyc29yOiB2YXIoLS10bC1jdXJzb3ItcG9pbnRlcik7XG5cdHdpZHRoOiBmaXQtY29udGVudDtcblx0bWF4LXdpZHRoOiAxMDAlO1xuXHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbi50bC1ib29rbWFya19fbGluayA+IHNwYW4ge1xuXHRmbGV4LXNocmluazogMHB4O1xuXHR3aGl0ZS1zcGFjZTogbm93cmFwO1xuXHRvdmVyZmxvdzogaGlkZGVuO1xuXHR0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbn1cblxuLnRsLWJvb2ttYXJrX19saW5rID4gLnRsLWh5cGVybGlua19faWNvbiB7XG5cdG1hcmdpbi1yaWdodDogOHB4O1xuXHRmbGV4LXNocmluazogMDtcbn1cblxuLnRsLWJvb2ttYXJrX19saW5rID4gLnRsLWJvb2ttYXJrX19mYXZpY29uIHtcblx0bWFyZ2luLXJpZ2h0OiA4cHg7XG5cdHdpZHRoOiAxNnB4O1xuXHRoZWlnaHQ6IDE2cHg7XG5cdGZsZXgtc2hyaW5rOiAwO1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLSBJbWFnZSBhbmQgdmlkZW8gc2hhcGUgLS0tLS0tLS0tLS0tLSAqL1xuXG4udGwtaW1hZ2UsXG4udGwtdmlkZW8ge1xuXHRvYmplY3QtZml0OiBjb3Zlcjtcblx0YmFja2dyb3VuZC1zaXplOiBjb3Zlcjtcblx0d2lkdGg6IDEwMCU7XG5cdGhlaWdodDogMTAwJTtcbn1cblxuLnRsLXZpZGVvLWNvbnRhaW5lcixcbi50bC1pbWFnZS1jb250YWluZXIsXG4udGwtZW1iZWQtY29udGFpbmVyIHtcblx0d2lkdGg6IDEwMCU7XG5cdGhlaWdodDogMTAwJTtcblx0cG9pbnRlci1ldmVudHM6IGFsbDtcblx0LyogYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdGwtY29sb3ItYmFja2dyb3VuZCk7ICovXG5cblx0ZGlzcGxheTogZmxleDtcblx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi50bC1pbWFnZS1jb250YWluZXIge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi50bC1pbWFnZSB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0aW5zZXQ6IDA7XG59XG5cbi50bC12aWRlby50bC12aWRlby1pcy1mdWxsc2NyZWVuIHtcblx0b2JqZWN0LWZpdDogY29udGFpbjtcblx0YmFja2dyb3VuZC1zaXplOiBjb250YWluO1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLSBOb3RlIHNoYXBlIC0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLnRsLW5vdGVfX2NvbnRhaW5lciB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0d2lkdGg6IDEwMCU7XG5cdGhlaWdodDogMTAwJTtcblx0cG9pbnRlci1ldmVudHM6IGFsbDtcblx0b3BhY2l0eTogMTtcblx0ei1pbmRleDogdmFyKC0tdGwtbGF5ZXItdGV4dC1jb250YWluZXIpO1xuXHRib3JkZXItcmFkaXVzOiAxcHg7XG59XG5cbi50bC1ub3RlX19jb250YWluZXIgPiAudGwtdGV4dC1sYWJlbCB7XG5cdGNvbG9yOiBjdXJyZW50Q29sb3I7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0gRnJhbWUgc2hhcGUgLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4udGwtZnJhbWVfX2JvZHkge1xuXHRzdHJva2Utd2lkdGg6IGNhbGMoMXB4ICogdmFyKC0tdGwtc2NhbGUpKTtcbn1cblxuLnRsLWZyYW1lX19jcmVhdGluZyB7XG5cdHN0cm9rZTogdmFyKC0tdGwtY29sb3Itc2VsZWN0ZWQpO1xuXHRmaWxsOiBub25lO1xufVxuXG4udGwtZnJhbWUtaGVhZGluZyB7XG5cdC0tdGwtZnJhbWUtcGFkZGluZy14OiA2cHg7XG5cdC0tdGwtZnJhbWUtaGVpZ2h0OiAyNHB4O1xuXHQtLXRsLWZyYW1lLW1pbmltdW0td2lkdGg6IDMycHg7XG5cdC0tdGwtZnJhbWUtb2Zmc2V0LXdpZHRoOiAxNnB4O1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHRyYW5zZm9ybS1vcmlnaW46IDAlIDEwMCU7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdG1heC13aWR0aDogMTAwJTtcblx0bWluLXdpZHRoOiB2YXIoLS10bC1mcmFtZS1taW5pbXVtLXdpZHRoKTtcblx0aGVpZ2h0OiBhdXRvO1xuXHRmb250LXNpemU6IDEycHg7XG5cdHBhZGRpbmctYm90dG9tOiA0cHg7XG5cdHBvaW50ZXItZXZlbnRzOiBhbGw7XG59XG5cbi50bC1mcmFtZS1oZWFkaW5nLWhpdC1hcmVhIHtcblx0cG9pbnRlci1ldmVudHM6IGFsbDtcblx0Lyogc2NhbGUgZnJvbSBib3R0b20gbGVmdCBjb3JuZXIgc28gd2UgY2FuIHBpbiBpdCB0byB0aGUgdG9wIGxlZnQgY29ybmVyIG9mIHRoZSBmcmFtZSAqL1xuXHR0cmFuc2Zvcm0tb3JpZ2luOiAwJSAxMDAlO1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRoZWlnaHQ6IHZhcigtLXRsLWZyYW1lLWhlaWdodCk7XG5cdHdpZHRoOiAxMDAlO1xuXHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRib3JkZXItcmFkaXVzOiB2YXIoLS10bC1yYWRpdXMtMSk7XG59XG5cbi50bC1mcmFtZS1sYWJlbCB7XG5cdHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuXHRwYWRkaW5nOiAwcHggdmFyKC0tdGwtZnJhbWUtcGFkZGluZy14KTtcblx0Ym9yZGVyLXJhZGl1czogdmFyKC0tdGwtcmFkaXVzLTEpO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdGZvbnQtc2l6ZTogaW5oZXJpdDtcblx0d2hpdGUtc3BhY2U6IHByZTtcbn1cblxuLnRsLWZyYW1lLWxhYmVsX19lZGl0aW5nIHtcblx0Y29sb3I6IHRyYW5zcGFyZW50O1xuXHR3aGl0ZS1zcGFjZTogcHJlO1xuXHR3aWR0aDogYXV0bztcblx0bWluLXdpZHRoOiB2YXIoLS10bC1mcmFtZS1taW5pbXVtLXdpZHRoKTtcblx0aGVpZ2h0OiAxMDAlO1xuXHRvdmVyZmxvdzogdmlzaWJsZTtcblx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdGwtY29sb3ItcGFuZWwpO1xuXHRib3JkZXItY29sb3I6IHZhcigtLXRsLWNvbG9yLXNlbGVjdGVkKTtcblx0Ym94LXNoYWRvdzogaW5zZXQgMHB4IDBweCAwcHggMS41cHggdmFyKC0tdGwtY29sb3Itc2VsZWN0ZWQpO1xufVxuXG4udGwtZnJhbWUtbmFtZS1pbnB1dCB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0Ym9yZGVyOiBub25lO1xuXHRiYWNrZ3JvdW5kOiBub25lO1xuXHRvdXRsaW5lOiBub25lO1xuXHRwYWRkaW5nOiAwcHggdmFyKC0tdGwtZnJhbWUtcGFkZGluZy14KTtcblx0aW5zZXQ6IDBweDtcblx0aGVpZ2h0OiAxMDAlO1xuXHR3aWR0aDogMTAwJTtcblx0Zm9udC1zaXplOiBpbmhlcml0O1xuXHRmb250LWZhbWlseTogaW5oZXJpdDtcblx0Zm9udC13ZWlnaHQ6IGluaGVyaXQ7XG5cdHdpZHRoOiAxMDAlO1xuXHRjb2xvcjogdmFyKC0tdGwtY29sb3ItdGV4dC0xKTtcblx0Ym9yZGVyLXJhZGl1czogdmFyKC0tdGwtcmFkaXVzLTEpO1xuXHR1c2VyLXNlbGVjdDogYWxsO1xuXHQtd2Via2l0LXVzZXItc2VsZWN0OiB0ZXh0O1xuXHR3aGl0ZS1zcGFjZTogcHJlO1xuXHRjdXJzb3I6IHZhcigtLXRsLWN1cnNvci10ZXh0KTtcbn1cblxuLyogSWYgbW9iaWxlIHVzZSAxNnB4IGFzIGZvbnQgc2l6ZSAqL1xuLyogT24gaU9TLCBmb250IHNpemUgdW5kZXIgMTZweCBpbiBhbiBpbnB1dCB3aWxsIG1ha2UgdGhlIHBhZ2Ugem9vbSBpbnRvIHRoZSBpbnB1dCBcdUQ4M0VcdUREMjZcdTIwMERcdTI2NDJcdUZFMEYgKi9cbi8qIGh0dHBzOi8vY3NzLXRyaWNrcy5jb20vMTZweC1vci1sYXJnZXItdGV4dC1wcmV2ZW50cy1pb3MtZm9ybS16b29tLyAqL1xuQG1lZGlhIChtYXgtd2lkdGg6IDYwMHB4KSB7XG5cdC50bC1mcmFtZS1oZWFkaW5nIHtcblx0XHRmb250LXNpemU6IDE2cHg7XG5cdH1cbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLSBFbWJlZCBTaGFwZSAtLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLnRsLWVtYmVkIHtcblx0Ym9yZGVyOiBub25lO1xuXHRib3JkZXItcmFkaXVzOiB2YXIoLS10bC1yYWRpdXMtMik7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tIFNoYXBlIGVycm9yIGJvdW5kYXJ5IC0tLS0tLS0tLS0tLS0tICovXG5cbi50bC1zaGFwZS1lcnJvci1ib3VuZGFyeSB7XG5cdHdpZHRoOiAxMDAlO1xuXHRoZWlnaHQ6IDEwMCU7XG5cdGJhY2tncm91bmQtY29sb3I6IHZhcigtLXRsLWNvbG9yLW11dGVkLTEpO1xuXHRib3JkZXItd2lkdGg6IGNhbGMoMXB4ICogdmFyKC0tdGwtc2NhbGUpKTtcblx0Ym9yZGVyLWNvbG9yOiB2YXIoLS10bC1jb2xvci1tdXRlZC0xKTtcblx0Ym9yZGVyLXN0eWxlOiBzb2xpZDtcblx0Ym9yZGVyLXJhZGl1czogY2FsYyh2YXIoLS10bC1yYWRpdXMtMSkgKiB2YXIoLS10bC1zY2FsZSkpO1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblx0dGV4dC1hbGlnbjogbGVmdDtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRwb2ludGVyLWV2ZW50czogYWxsO1xuXHRvdmVyZmxvdzogaGlkZGVuO1xuXHRwYWRkaW5nOiB2YXIoLS10bC1zcGFjZS0yKTtcbn1cblxuLnRsLXNoYXBlLWVycm9yLWJvdW5kYXJ5OjpiZWZvcmUge1xuXHR0cmFuc2Zvcm06IHNjYWxlKHZhcigtLXRsLXNjYWxlKSk7XG5cdGNvbnRlbnQ6ICdFcnJvcic7XG5cdGZvbnQtc2l6ZTogMTJweDtcblx0Zm9udC1mYW1pbHk6IGluaGVyaXQ7XG5cdGNvbG9yOiB2YXIoLS10bC1jb2xvci10ZXh0LTApO1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLSBFcnJvciBib3VuZGFyeSAtLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4udGwtZXJyb3ItYm91bmRhcnkge1xuXHR3aWR0aDogMTAwJTtcblx0aGVpZ2h0OiAxMDAlO1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblx0cGFkZGluZzogdmFyKC0tdGwtc3BhY2UtNCk7XG5cdGJhY2tncm91bmQtY29sb3I6IHZhcigtLXRsLWNvbG9yLWJhY2tncm91bmQpO1xuXHRjb2xvcjogdmFyKC0tdGwtY29sb3ItdGV4dC0xKTtcblx0cG9zaXRpb246IGFic29sdXRlO1xufVxuXG4udGwtZXJyb3ItYm91bmRhcnlfX292ZXJsYXkge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdGluc2V0OiAwcHg7XG5cdGhlaWdodDogMTAwJTtcblx0d2lkdGg6IDEwMCU7XG5cdHotaW5kZXg6IHZhcigtLXRsLWxheWVyLWVycm9yLW92ZXJsYXkpO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS10bC1jb2xvci1vdmVybGF5KTtcbn1cblxuLnRsLWVycm9yLWJvdW5kYXJ5X19jb250ZW50ICoge1xuXHR1c2VyLXNlbGVjdDogYWxsO1xuXHQtd2Via2l0LXVzZXItc2VsZWN0OiB0ZXh0O1xuXHRwb2ludGVyLWV2ZW50czogYWxsO1xufVxuXG4udGwtZXJyb3ItYm91bmRhcnlfX2NhbnZhcyB7XG5cdHBvaW50ZXItZXZlbnRzOiBub25lO1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdGluc2V0OiAwcHg7XG5cdGhlaWdodDogMTAwJTtcblx0d2lkdGg6IDEwMCU7XG5cdHotaW5kZXg6IHZhcigtLXRsLWxheWVyLWVycm9yLWNhbnZhcyk7XG59XG5cbi8qIHNvbWUgYnJvd3NlcnMgc2VlbSB0byBoYXZlIHNvbWUgd2VpcmQgaW50ZXJhY3Rpb25zIGJldHdlZW4gc3RhY2tpbmcgY29udGV4dHNcbmFuZCBwb2ludGVyLWV2ZW50cy4gdGhpcyA6OmFmdGVyIHBzZXVkbyBlbGVtZW50IGNvdmVycyB0aGUgY2FudmFzIGFuZCBwcmV2ZW50c1xuaXQgZnJvbSByZWNlaXZpbmcgYW55IHBvaW50ZXIgZXZlbnRzIG9yIGFmZmVjdGluZyB0aGUgY3Vyc29yLiAqL1xuLnRsLWVycm9yLWJvdW5kYXJ5X19jYW52YXM6OmFmdGVyIHtcblx0Y29udGVudDogJyAnO1xuXHRkaXNwbGF5OiBibG9jaztcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRpbnNldDogMHB4O1xuXHRoZWlnaHQ6IDEwMCU7XG5cdHdpZHRoOiAxMDAlO1xuXHR6LWluZGV4OiB2YXIoLS10bC1sYXllci1lcnJvci1jYW52YXMtYWZ0ZXIpO1xuXHRwb2ludGVyLWV2ZW50czogYWxsO1xufVxuXG4udGwtZXJyb3ItYm91bmRhcnlfX2NvbnRlbnQge1xuXHR3aWR0aDogZml0LWNvbnRlbnQ7XG5cdGhlaWdodDogZml0LWNvbnRlbnQ7XG5cdG1heC13aWR0aDogMTAwJTtcblx0d2lkdGg6IDQwMHB4O1xuXHRtYXgtaGVpZ2h0OiAxMDAlO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS10bC1jb2xvci1wYW5lbCk7XG5cdHBhZGRpbmc6IDE2cHg7XG5cdGJvcmRlci1yYWRpdXM6IDE2cHg7XG5cdGJveC1zaGFkb3c6IHZhcigtLXRsLXNoYWRvdy0yKTtcblx0Zm9udC1zaXplOiAxNHB4O1xuXHRmb250LXdlaWdodDogNDAwO1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXHRvdmVyZmxvdzogYXV0bztcblx0ei1pbmRleDogdmFyKC0tdGwtbGF5ZXItZXJyb3ItY29udGVudCk7XG5cdGdhcDogMTJweDtcbn1cblxuLnRsLWVycm9yLWJvdW5kYXJ5X19jb250ZW50X19leHBhbmRlZCB7XG5cdHdpZHRoOiA2MDBweDtcbn1cblxuLnRsLWVycm9yLWJvdW5kYXJ5X19jb250ZW50IGgyIHtcblx0Zm9udC1zaXplOiAxNnB4O1xuXHRtYXJnaW46IDBweDtcblx0Zm9udC13ZWlnaHQ6IDUwMDtcbn1cblxuLnRsLWVycm9yLWJvdW5kYXJ5X19jb250ZW50IGg0IHtcblx0Ym9yZGVyOiAxcHggc29saWQgdmFyKC0tdGwtY29sb3ItbG93LWJvcmRlcik7XG5cdG1hcmdpbjogLTZweCAwIDAgMDtcblx0cGFkZGluZzogdmFyKC0tdGwtc3BhY2UtNSk7XG5cdGJvcmRlci1yYWRpdXM6IHZhcigtLXRsLXJhZGl1cy0yKTtcblx0Zm9udC13ZWlnaHQ6IG5vcm1hbDtcbn1cblxuLnRsLWVycm9yLWJvdW5kYXJ5X19jb250ZW50IHAge1xuXHRsaW5lLWhlaWdodDogMS41O1xuXHRtYXJnaW46IDBweDtcbn1cblxuLnRsLWVycm9yLWJvdW5kYXJ5X19jb250ZW50IHByZSB7XG5cdGJhY2tncm91bmQtY29sb3I6IHZhcigtLXRsLWNvbG9yLW11dGVkLTIpO1xuXHRtYXJnaW4tdG9wOiAwO1xuXHRwYWRkaW5nOiB2YXIoLS10bC1zcGFjZS01KTtcblx0Ym9yZGVyLXJhZGl1czogdmFyKC0tdGwtcmFkaXVzLTIpO1xuXHRvdmVyZmxvdzogYXV0bztcblx0Zm9udC1zaXplOiAxMnB4O1xuXHRtYXgtaGVpZ2h0OiAzMjBweDtcbn1cblxuLnRsLWVycm9yLWJvdW5kYXJ5X19jb250ZW50IGJ1dHRvbiB7XG5cdGJhY2tncm91bmQ6IG5vbmU7XG5cdGJvcmRlcjogbm9uZTtcblx0Zm9udC1mYW1pbHk6IGluaGVyaXQ7XG5cdGZvbnQtc2l6ZTogMTRweDtcblx0Zm9udC13ZWlnaHQ6IDUwMDtcblx0cGFkZGluZzogdmFyKC0tdGwtc3BhY2UtNCk7XG5cdGJvcmRlci1yYWRpdXM6IHZhcigtLXRsLXJhZGl1cy0zKTtcblx0Y3Vyc29yOiB2YXIoLS10bC1jdXJzb3ItcG9pbnRlcik7XG5cdGNvbG9yOiBpbmhlcml0O1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLnRsLWVycm9yLWJvdW5kYXJ5X19jb250ZW50IGEge1xuXHRjb2xvcjogdmFyKC0tdGwtY29sb3Itc2VsZWN0ZWQpO1xuXHRmb250LXdlaWdodDogNTAwO1xuXHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbi50bC1lcnJvci1ib3VuZGFyeV9fY29udGVudF9fZXJyb3Ige1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdG1hcmdpbjogLTZweCAwIDAgMDtcbn1cblxuLnRsLWVycm9yLWJvdW5kYXJ5X19jb250ZW50X19lcnJvciBidXR0b24ge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHRvcDogdmFyKC0tdGwtc3BhY2UtMik7XG5cdHJpZ2h0OiB2YXIoLS10bC1zcGFjZS0yKTtcblx0Zm9udC1zaXplOiAxMnB4O1xuXHRwYWRkaW5nOiB2YXIoLS10bC1zcGFjZS0yKSB2YXIoLS10bC1zcGFjZS0zKTtcblx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdGwtY29sb3ItcGFuZWwpO1xuXHRib3JkZXItcmFkaXVzOiB2YXIoLS10bC1yYWRpdXMtMSk7XG59XG5cbi50bC1lcnJvci1ib3VuZGFyeV9fY29udGVudF9fYWN0aW9ucyB7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcblx0Z2FwOiB2YXIoLS10bC1zcGFjZS00KTtcblx0bWFyZ2luOiAwcHg7XG5cdG1hcmdpbi1sZWZ0OiAtNHB4O1xufVxuLnRsLWVycm9yLWJvdW5kYXJ5X19jb250ZW50X19hY3Rpb25zX19ncm91cCB7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGdhcDogdmFyKC0tdGwtc3BhY2UtNCk7XG59XG4udGwtZXJyb3ItYm91bmRhcnlfX2NvbnRlbnQgLnRsLWVycm9yLWJvdW5kYXJ5X19yZXNldCB7XG5cdGNvbG9yOiB2YXIoLS10bC1jb2xvci1kYW5nZXIpO1xufVxuLnRsLWVycm9yLWJvdW5kYXJ5X19jb250ZW50IC50bC1lcnJvci1ib3VuZGFyeV9fcmVmcmVzaCB7XG5cdGJhY2tncm91bmQtY29sb3I6IHZhcigtLXRsLWNvbG9yLXByaW1hcnkpO1xuXHRjb2xvcjogdmFyKC0tdGwtY29sb3Itc2VsZWN0ZWQtY29udHJhc3QpO1xufVxuLnRsLWNvbnRhaW5lcl9fZm9jdXNlZDpub3QoLnRsLWNvbnRhaW5lcl9fbm8tZm9jdXMtcmluZylcblx0LnRsdWktYnV0dG9uLnRsLWVycm9yLWJvdW5kYXJ5X19yZWZyZXNoOmZvY3VzLXZpc2libGUge1xuXHRib3JkZXItcmFkaXVzOiA4cHg7XG5cdG91dGxpbmUtb2Zmc2V0OiAwO1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tIEhpdCB0ZXN0IGJsb2NrZXIgLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4udGwtaGl0LXRlc3QtYmxvY2tlciB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0ei1pbmRleDogdmFyKC0tdGwtbGF5ZXItY2FudmFzLWJsb2NrZXIpO1xuXHRpbnNldDogMHB4O1xuXHR3aWR0aDogMTAwJTtcblx0aGVpZ2h0OiAxMDAlO1xuXHRwb2ludGVyLWV2ZW50czogYWxsO1xufVxuXG4udGwtaGl0LXRlc3QtYmxvY2tlcl9faGlkZGVuIHtcblx0ZGlzcGxheTogbm9uZTtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tIEhvdmVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuQG1lZGlhIChob3ZlcjogaG92ZXIpIHtcblx0LnRsLWhhbmRsZV9fY3JlYXRlOmhvdmVyIHtcblx0XHRvcGFjaXR5OiAxO1xuXHR9XG5cblx0LnRsLWhhbmRsZV9fYmc6aG92ZXIge1xuXHRcdGN1cnNvcjogdmFyKC0tdGwtY3Vyc29yLWdyYWIpO1xuXHRcdGZpbGw6IHZhcigtLXRsLWNvbG9yLXNlbGVjdGlvbi1maWxsKTtcblx0fVxuXG5cdC50bC1ib29rbWFya19fbGluazpob3ZlciB7XG5cdFx0Y29sb3I6IHZhcigtLXRsLWNvbG9yLXNlbGVjdGVkKTtcblx0fVxuXG5cdC50bC1oeXBlcmxpbmstYnV0dG9uOmhvdmVyIHtcblx0XHRjb2xvcjogdmFyKC0tdGwtY29sb3Itc2VsZWN0ZWQpO1xuXHR9XG5cblx0LnRsLWVycm9yLWJvdW5kYXJ5X19jb250ZW50IGJ1dHRvbjpob3ZlciB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdGwtY29sb3ItbG93KTtcblx0fVxuXHQudGwtZXJyb3ItYm91bmRhcnlfX2NvbnRlbnQgYTpob3ZlciB7XG5cdFx0Y29sb3I6IHZhcigtLXRsLWNvbG9yLXRleHQtMSk7XG5cdH1cblx0LnRsLWVycm9yLWJvdW5kYXJ5X19jb250ZW50IC50bC1lcnJvci1ib3VuZGFyeV9fcmVmcmVzaDpob3ZlciB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdGwtY29sb3ItcHJpbWFyeSk7XG5cdFx0b3BhY2l0eTogMC45O1xuXHR9XG5cblx0LyogVGhlc2UgdGhyZWUgcnVsZXMgaGVscCBwcmVzZXJ2ZSBjbGlja2luZyBpbnRvIHNwZWNpZmljIHBvaW50cyBpbiB0ZXh0IGFyZWFzICp3aGlsZSpcbiAqIGFscmVhZHkgaW4gZWRpdCBtb2RlIHdoZW4ganVtcGluZyBmcm9tIHNoYXBlIHRvIHNoYXBlLiAqL1xuXHQudGwtY2FudmFzW2RhdGEtaXNlZGl0aW5nYW55dGhpbmc9J3RydWUnXSAudGwtdGV4dC13cmFwcGVyOmhvdmVyIC50bC10ZXh0LWlucHV0IHtcblx0XHR6LWluZGV4OiB2YXIoLS10bC1sYXllci10ZXh0LWVkaXRvcik7XG5cdFx0cG9pbnRlci1ldmVudHM6IGFsbDtcblx0fVxufVxuXG4vKiBAdGxkcmF3L3VpICovXG5cbi50bC1jb250YWluZXIge1xuXHQtLXRsLWxheWVyLWFib3ZlOiAxO1xuXHQtLXRsLWxheWVyLWZvY3VzZWQtaW5wdXQ6IDEwO1xuXHQtLXRsLWxheWVyLW1lbnUtY2xpY2stY2FwdHVyZTogMjUwO1xuXHQtLXRsLWxheWVyLXBhbmVsczogMzAwO1xuXHQtLXRsLWxheWVyLW1lbnVzOiA0MDA7XG5cdC0tdGwtbGF5ZXItdG9hc3RzOiA2NTA7XG5cdC0tdGwtbGF5ZXItY3Vyc29yOiA3MDA7XG5cdC0tdGwtbGF5ZXItaGVhZGVyLWZvb3RlcjogOTk5O1xuXHQtLXRsLWxheWVyLWZvbGxvd2luZy1pbmRpY2F0b3I6IDEwMDA7XG59XG5cbi8qIEJ1dHRvbiAqL1xuXG4udGx1aS1idXR0b24ge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdGhlaWdodDogNDBweDtcblx0bWluLXdpZHRoOiA0MHB4O1xuXHRwYWRkaW5nOiAwcHggMTJweDtcblx0ZGlzcGxheTogZmxleDtcblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cdGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuXHRib3JkZXI6IHRyYW5zcGFyZW50O1xuXHRjb2xvcjogY3VycmVudENvbG9yO1xuXHRjdXJzb3I6IHBvaW50ZXI7XG5cdHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cdGZvbnQtd2VpZ2h0OiBpbmhlcml0O1xuXHRmb250LWZhbWlseTogaW5oZXJpdDtcblx0bGluZS1oZWlnaHQ6IGluaGVyaXQ7XG5cdHRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHk7XG5cdGZvbnQtc2l6ZTogMTJweDtcblx0Z2FwOiAwcHg7XG5cdGNvbG9yOiB2YXIoLS10bC1jb2xvci10ZXh0LTEpO1xuXHR6LWluZGV4OiAwO1xufVxuXG4udGx1aS1idXR0b246ZGlzYWJsZWQge1xuXHRjb2xvcjogdmFyKC0tdGwtY29sb3ItdGV4dC0zKTtcblx0dGV4dC1zaGFkb3c6IG5vbmU7XG5cdGN1cnNvcjogZGVmYXVsdDtcbn1cblxuLnRsdWktYnV0dG9uOmRpc2FibGVkIC50bHVpLWtiZCB7XG5cdGNvbG9yOiB2YXIoLS10bC1jb2xvci10ZXh0LTMpO1xufVxuXG4udGx1aS1idXR0b24gPiAqIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR6LWluZGV4OiB2YXIoLS10bC1sYXllci1hYm92ZSk7XG59XG5cbi50bHVpLWJ1dHRvbl9fbGFiZWwge1xuXHRmb250LXNpemU6IDEycHg7XG5cdGZsZXgtZ3JvdzogMjtcblx0dGV4dC1hbGlnbjogbGVmdDtcbn1cblxuLypcbiAqIFdlIG9ubHkgd2FudCB0byBzaG93IHRoZSBmb2N1cyByaW5nIGlmOlxuICogLSB0aGUgY29udGFpbmVyIGlzIGZvY3VzZWRcbiAqIC0gd2UncmUgbm90IHVzaW5nIHRoZSBtb3VzZSB0byBpbnRlcmFjdCAod2hpY2ggaXMgdGhlIC50bC1jb250YWluZXJfX25vLWZvY3VzLXJpbmcpXG4gKi9cbi50bC1jb250YWluZXJfX2ZvY3VzZWQ6bm90KC50bC1jb250YWluZXJfX25vLWZvY3VzLXJpbmcpIC50bHVpLWJ1dHRvbjpmb2N1cy12aXNpYmxlIHtcblx0Ym9yZGVyLXJhZGl1czogMTBweDtcblx0b3V0bGluZTogMnB4IHNvbGlkIHZhcigtLXRsLWNvbG9yLWZvY3VzKTtcblx0b3V0bGluZS1vZmZzZXQ6IC01cHg7XG59XG4udGwtY29udGFpbmVyX19mb2N1c2VkOm5vdCgudGwtY29udGFpbmVyX19uby1mb2N1cy1yaW5nKSAudGx1aS1idXR0b25fX3Rvb2w6Zm9jdXMtdmlzaWJsZSB7XG5cdGJvcmRlci1yYWRpdXM6IDEycHg7XG59XG4udGx1aS1zbGlkZXJfX2NvbnRhaW5lcjpoYXMoLnRsdWktc2xpZGVyX190aHVtYjpmb2N1cy12aXNpYmxlKSB7XG5cdGJvcmRlci1yYWRpdXM6IDEwcHg7XG5cdG91dGxpbmU6IDJweCBzb2xpZCB2YXIoLS10bC1jb2xvci1mb2N1cyk7XG5cdG91dGxpbmUtb2Zmc2V0OiAtNXB4O1xufVxuXG4udGx1aS1idXR0b246OmFmdGVyIHtcblx0ZGlzcGxheTogYmxvY2s7XG5cdGNvbnRlbnQ6ICcnO1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdGluc2V0OiA0cHg7XG5cdGJvcmRlci1yYWRpdXM6IHZhcigtLXRsLXJhZGl1cy0yKTtcblx0YmFja2dyb3VuZDogdmFyKC0tdGwtY29sb3ItbXV0ZWQtMik7XG5cdG9wYWNpdHk6IDA7XG59XG5cbi50bHVpLWJ1dHRvbl9fbWVudVtkYXRhLWhpZ2hsaWdodGVkXTo6YWZ0ZXIge1xuXHRvcGFjaXR5OiAxO1xufVxuXG4udGx1aS1idXR0b25bZGF0YS1pc2FjdGl2ZT0ndHJ1ZSddOjphZnRlcixcbi50bHVpLWJ1dHRvbltkYXRhLWlzYWN0aXZlPSd0cnVlJ106bm90KDpkaXNhYmxlZCwgOmZvY3VzLXZpc2libGUpOmFjdGl2ZTphZnRlciB7XG5cdGJhY2tncm91bmQ6IHZhcigtLXRsLWNvbG9yLWhpbnQpO1xuXHRvcGFjaXR5OiAxO1xufVxuXG4udGx1aS1idXR0b25bYXJpYS1leHBhbmRlZD0ndHJ1ZSddW2RhdGEtZGlyZWN0aW9uPSdsZWZ0J10ge1xuXHRiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMjcwZGVnLCByZ2JhKDE0NCwgMTQ0LCAxNDQsIDApIDAlLCB2YXIoLS10bC1jb2xvci1tdXRlZC0yKSAxMDAlKTtcblx0b3BhY2l0eTogMTtcbn1cblxuQG1lZGlhIChob3ZlcjogaG92ZXIpIHtcblx0LnRsdWktYnV0dG9uW2FyaWEtZXhwYW5kZWQ9J3RydWUnXVtkYXRhLWRpcmVjdGlvbj0nbGVmdCddOm5vdCg6aG92ZXIpOjphZnRlciB7XG5cdFx0YmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDI3MGRlZywgcmdiYSgxNDQsIDE0NCwgMTQ0LCAwKSAwJSwgdmFyKC0tdGwtY29sb3ItbXV0ZWQtMikgMTAwJSk7XG5cdFx0b3BhY2l0eTogMTtcblx0fVxuXG5cdC50bHVpLWJ1dHRvbjpub3QoOmRpc2FibGVkKTpob3ZlciB7XG5cdFx0ei1pbmRleDogMTtcblx0fVxuXG5cdC50bHVpLWJ1dHRvbjpub3QoOmRpc2FibGVkKTpob3Zlcjo6YWZ0ZXIge1xuXHRcdG9wYWNpdHk6IDE7XG5cdH1cbn1cblxuLnRsdWktYnV0dG9uX19pY29uICsgLnRsdWktYnV0dG9uX19sYWJlbCB7XG5cdG1hcmdpbi1sZWZ0OiB2YXIoLS10bC1zcGFjZS0yKTtcbn1cblxuLyogTG93IGJ1dHRvbiAgKi9cblxuLnRsdWktYnV0dG9uX19sb3cge1xuXHRib3JkZXItcmFkaXVzOiB2YXIoLS10bC1yYWRpdXMtMyk7XG5cdGJhY2tncm91bmQtY29sb3I6IHZhcigtLXRsLWNvbG9yLWxvdyk7XG59XG5cbi50bHVpLWJ1dHRvbl9fbG93OjphZnRlciB7XG5cdGJhY2tncm91bmQtY29sb3I6IHZhcigtLXRsLWNvbG9yLW11dGVkLTIpO1xuXHRvcGFjaXR5OiAwO1xufVxuXG5AbWVkaWEgKGhvdmVyOiBob3Zlcikge1xuXHQudGx1aS1idXR0b25fX2xvdzpob3Zlcjo6YWZ0ZXIge1xuXHRcdG9wYWNpdHk6IDE7XG5cdH1cbn1cblxuLyogUHJpbWFyeSAvIGRhbmdlciBidXR0b25zICovXG5cbi50bHVpLWJ1dHRvbl9fcHJpbWFyeSB7XG5cdGNvbG9yOiB2YXIoLS10bC1jb2xvci1wcmltYXJ5KTtcbn1cblxuLnRsdWktYnV0dG9uX19kYW5nZXIge1xuXHRjb2xvcjogdmFyKC0tdGwtY29sb3ItZGFuZ2VyKTtcblx0dGV4dC1zaGFkb3c6IG5vbmU7XG59XG5cbkBtZWRpYSAoaG92ZXI6IGhvdmVyKSB7XG5cdC50bHVpLWJ1dHRvbl9fcHJpbWFyeTpub3QoOmRpc2FibGVkLCA6Zm9jdXMtdmlzaWJsZSk6aG92ZXIge1xuXHRcdGNvbG9yOiB2YXIoLS10bC1jb2xvci1wcmltYXJ5KTtcblx0fVxuXG5cdC50bHVpLWJ1dHRvbl9fZGFuZ2VyOm5vdCg6ZGlzYWJsZWQsIDpmb2N1cy12aXNpYmxlKTpob3ZlciB7XG5cdFx0Y29sb3I6IHZhcigtLXRsLWNvbG9yLWRhbmdlcik7XG5cdFx0dGV4dC1zaGFkb3c6IG5vbmU7XG5cdH1cbn1cblxuLyogTWVudSBidXR0b24gKi9cblxuLnRsdWktYnV0dG9uX19tZW51IHtcblx0aGVpZ2h0OiA0MHB4O1xuXHRtaW4taGVpZ2h0OiA0MHB4O1xuXHR3aWR0aDogMTAwJTtcblx0Z2FwOiA4cHg7XG5cdG1hcmdpbi10b3A6IC00cHg7XG59XG5cbi50bHVpLWJ1dHRvbl9fbWVudTo6YWZ0ZXIge1xuXHRpbnNldDogNHB4O1xuXHRib3JkZXItcmFkaXVzOiB2YXIoLS10bC1yYWRpdXMtMik7XG59XG5cbi50bHVpLWJ1dHRvbl9fbWVudSA+IC50bHVpLWljb24gKyAudGx1aS1idXR0b25fX2xhYmVsIHtcblx0bWFyZ2luLWxlZnQ6IDBweDtcbn1cblxuLnRsdWktYnV0dG9uX19tZW51Om50aC1jaGlsZCgxKSB7XG5cdG1hcmdpbi10b3A6IDBweDtcbn1cblxuLnRsdWktYnV0dG9uX19tZW51Om50aC1sYXN0LWNoaWxkKDEpIHtcblx0bWFyZ2luLWJvdHRvbTogMHB4O1xufVxuXG4vKiBNZW51IGNoZWNrYm94IGJ1dHRvbiAqL1xuXG4udGx1aS1idXR0b25fX2NoZWNrYm94IHtcblx0cGFkZGluZy1sZWZ0OiA4cHg7XG59XG5cbi50bHVpLWJ1dHRvbl9fY2hlY2tib3hfX2luZGljYXRvciB7XG5cdHdpZHRoOiAxNXB4O1xuXHRoZWlnaHQ6IDE1cHg7XG59XG5cbi8qIFRvb2wgbG9jayBidXR0b24gKi9cblxuLnRsdWktbWFpbi10b29sYmFyX19sb2NrLWJ1dHRvbiB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0cG9pbnRlci1ldmVudHM6IGFsbDtcblx0aGVpZ2h0OiA0MHB4O1xuXHR3aWR0aDogNDBweDtcblx0Ym9yZGVyLXJhZGl1czogdmFyKC0tdGwtcmFkaXVzLTIpO1xufVxuXG4udGx1aS1tYWluLXRvb2xiYXItLWhvcml6b250YWwgLnRsdWktbWFpbi10b29sYmFyX19sb2NrLWJ1dHRvbiB7XG5cdHRvcDogNHB4O1xuXHRyaWdodDogMHB4O1xuXHRtaW4td2lkdGg6IDBweDtcbn1cblxuLnRsdWktbWFpbi10b29sYmFyLS12ZXJ0aWNhbCAudGx1aS1tYWluLXRvb2xiYXJfX2xvY2stYnV0dG9uIHtcblx0Ym90dG9tOiAwcHg7XG5cdG1pbi1oZWlnaHQ6IDBweDtcbn1cblxuLnRsdWktbWFpbi10b29sYmFyX19sb2NrLWJ1dHRvbjo6YWZ0ZXIge1xuXHR0b3A6IDRweDtcblx0bGVmdDogOHB4O1xuXHRpbnNldDogNHB4O1xufVxuXG4vKiBUb29sIGJ1dHRvbiAgKi9cblxuLnRsdWktYnV0dG9uX190b29sIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRoZWlnaHQ6IDQ4cHg7XG5cdHdpZHRoOiA0OHB4O1xufVxuXG4udGx1aS1idXR0b25fX3Rvb2w6OmFmdGVyIHtcblx0aW5zZXQ6IDRweDtcblx0Ym9yZGVyLXJhZGl1czogOHB4O1xufVxuXG4udGx1aS1idXR0b25fX3Rvb2xbYXJpYS1wcmVzc2VkPSd0cnVlJ10ge1xuXHRjb2xvcjogdmFyKC0tdGwtY29sb3Itc2VsZWN0ZWQtY29udHJhc3QpO1xufVxuXG4udGx1aS1idXR0b25fX3Rvb2xbYXJpYS1wcmVzc2VkPSd0cnVlJ106bm90KDpkaXNhYmxlZCwgOmZvY3VzLXZpc2libGUpOmFjdGl2ZSB7XG5cdGNvbG9yOiB2YXIoLS10bC1jb2xvci1zZWxlY3RlZC1jb250cmFzdCk7XG59XG5cbi50bHVpLWJ1dHRvbl9fdG9vbFthcmlhLXByZXNzZWQ9J3RydWUnXTpub3QoOmRpc2FibGVkKTo6YWZ0ZXIge1xuXHRiYWNrZ3JvdW5kOiB2YXIoLS10bC1jb2xvci1zZWxlY3RlZCk7XG5cdG9wYWNpdHk6IDE7XG59XG5cbi50bHVpLWxheW91dF9fbW9iaWxlIC50bHVpLW1haW4tdG9vbGJhci0taG9yaXpvbnRhbCAudGx1aS1idXR0b25fX3Rvb2wge1xuXHRoZWlnaHQ6IDQ4cHg7XG5cdHdpZHRoOiA0M3B4O1xufVxuXG4udGx1aS1sYXlvdXRfX21vYmlsZSAudGx1aS1tYWluLXRvb2xiYXItLWhvcml6b250YWwgLnRsdWktYnV0dG9uX190b29sID4gLnRsdWktaWNvbiB7XG5cdGhlaWdodDogMTZweDtcblx0d2lkdGg6IDE2cHg7XG59XG5cbi8qIFJvdyBsYXlvdXQgKi9cblxuLnRsdWktcm93IHtcblx0ZGlzcGxheTogZmxleDtcblx0ZmxleC1kaXJlY3Rpb246IHJvdztcblx0cGFkZGluZzogMCAycHg7XG59XG4udGx1aS1yb3cgPiAqIHtcblx0bWFyZ2luLWxlZnQ6IC0ycHg7XG5cdG1hcmdpbi1yaWdodDogLTJweDtcbn1cblxuLyogQ29sdW1uIGxheW91dCAqL1xuXG4udGx1aS1jb2x1bW4ge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXHRwYWRkaW5nOiAycHggMDtcbn1cbi50bHVpLWNvbHVtbiA+ICoge1xuXHRtYXJnaW4tdG9wOiAtMnB4O1xuXHRtYXJnaW4tYm90dG9tOiAtMnB4O1xufVxuXG4vKiBHcmlkIGxheW91dCAqL1xuXG4udGx1aS1ncmlkIHtcblx0ZGlzcGxheTogZ3JpZDtcblx0Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNCwgMWZyKTtcblx0Z3JpZC1hdXRvLWZsb3c6IHJvdztcblx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0cGFkZGluZzogMnB4O1xufVxuLnRsdWktZ3JpZCA+ICoge1xuXHRtYXJnaW46IC0ycHg7XG59XG5cbi8qIFpvb20gYnV0dG9uICovXG5cbi50bHVpLXpvb20tbWVudV9fYnV0dG9uIHtcblx0d2lkdGg6IDYwcHg7XG5cdG1pbi13aWR0aDogNjBweDtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0gTGF5b3V0IC0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4udGx1aS1sYXlvdXQge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdGRpc3BsYXk6IGdyaWQ7XG5cdGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuXHRncmlkLXRlbXBsYXRlLXJvd3M6IG1pbm1heCgwcHgsIDFmcikgYXV0bztcblx0Z3JpZC1hdXRvLXJvd3M6IGF1dG87XG5cdGhlaWdodDogMTAwJTtcblx0bWF4LWhlaWdodDogMTAwJTtcblx0b3ZlcmZsb3c6IGNsaXA7XG5cdHBvaW50ZXItZXZlbnRzOiBub25lO1xuXHR1c2VyLXNlbGVjdDogbm9uZTtcblx0Y29udGFpbjogc3RyaWN0O1xuXHR6LWluZGV4OiB2YXIoLS10bC1sYXllci1wYW5lbHMpO1xuXHR0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuXHQtLXRsLXNhYjogZW52KHNhZmUtYXJlYS1pbnNldC1ib3R0b20pO1xuXHRmb250LXdlaWdodDogNTAwO1xuXHRsaW5lLWhlaWdodDogMS42O1xuXHQtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcblx0LW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcblx0Zm9udC1zbW9vdGg6IGFudGlhbGlhc2VkO1xuXHR0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5O1xufVxuXG4udGx1aS1sYXlvdXRfX3RvcCB7XG5cdGdyaWQtY29sdW1uOiAxO1xuXHRncmlkLXJvdzogMTtcblx0ZGlzcGxheTogZmxleDtcblx0bWluLXdpZHRoOiAwcHg7XG5cdGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcbn1cblxuLnRsdWktbGF5b3V0X190b3BfX2xlZnQge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXHRhbGlnbi1pdGVtczogZmxleC1zdGFydDtcblx0anVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuXHR3aWR0aDogMTAwJTtcblx0aGVpZ2h0OiAxMDAlO1xuXHRmbGV4OiAwIDEgMDtcbn1cblxuLnRsdWktbGF5b3V0X190b3BfX3JpZ2h0IHtcblx0ZGlzcGxheTogZmxleDtcblx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblx0YWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuXHRqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG5cdGhlaWdodDogMTAwJTtcblx0ZmxleDogMCAwIGF1dG87XG5cdG1pbi13aWR0aDogMHB4O1xufVxuXG4udGx1aS1zY3JvbGxhYmxlLFxuLnRsdWktc2Nyb2xsYWJsZSAqIHtcblx0cG9pbnRlci1ldmVudHM6IGFsbDtcblx0dG91Y2gtYWN0aW9uOiBhdXRvO1xuXHRvdmVyc2Nyb2xsLWJlaGF2aW9yOiBub25lO1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLSBIZWxwZXIgQnV0dG9ucyAtLS0tLS0tLS0tLS0tLS0tICovXG5cbi50bHVpLWhlbHBlci1idXR0b25zIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXHRqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG5cdGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuXHR3aWR0aDogbWluLWNvbnRlbnQ7XG5cdGdhcDogdmFyKC0tdGwtc3BhY2UtMyk7XG5cdG1hcmdpbjogdmFyKC0tdGwtc3BhY2UtMikgdmFyKC0tdGwtc3BhY2UtMyk7XG5cdHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cdHBvaW50ZXItZXZlbnRzOiBub25lO1xuXHR6LWluZGV4OiB2YXIoLS10bC1sYXllci1wYW5lbHMpO1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tIEljb24gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4udGx1aS1pY29uIHtcblx0ZmxleC1zaHJpbms6IDA7XG5cdHdpZHRoOiAxOHB4O1xuXHRoZWlnaHQ6IDE4cHg7XG5cdGJhY2tncm91bmQtY29sb3I6IGN1cnJlbnRDb2xvcjtcbn1cblxuLnRsdWktaWNvbl9fcGxhY2Vob2xkZXIge1xuXHRmbGV4LXNocmluazogMDtcblx0d2lkdGg6IDE4cHg7XG5cdGhlaWdodDogMThweDtcblx0YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbi50bHVpLWljb25fX3NtYWxsIHtcblx0d2lkdGg6IDE1cHg7XG5cdGhlaWdodDogMTVweDtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFNsaWRlciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLnRsdWktc2xpZGVyX19jb250YWluZXIge1xuXHR3aWR0aDogMTAwJTtcblx0cGFkZGluZzogMHB4IHZhcigtLXRsLXNwYWNlLTQpO1xufVxuXG4udGx1aS1zbGlkZXIge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdHVzZXItc2VsZWN0OiBub25lO1xuXHR0b3VjaC1hY3Rpb246IG5vbmU7XG5cdHdpZHRoOiAxMDAlO1xufVxuXG4udGx1aS1zbGlkZXJfX3RyYWNrIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRmbGV4LWdyb3c6IDE7XG5cdGhlaWdodDogNDRweDtcblx0Y3Vyc29yOiBwb2ludGVyO1xufVxuXG4udGx1aS1zbGlkZXJfX3RyYWNrOjphZnRlciB7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHRvcDogY2FsYyg1MCUgLSAycHgpO1xuXHRjb250ZW50OiAnJztcblx0aGVpZ2h0OiAzcHg7XG5cdHdpZHRoOiAxMDAlO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS10bC1jb2xvci1tdXRlZC0xKTtcblx0Ym9yZGVyLXJhZGl1czogMTRweDtcbn1cblxuLnRsdWktc2xpZGVyX19yYW5nZSB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0dG9wOiBjYWxjKDUwJSAtIDJweCk7XG5cdGxlZnQ6IDBweDtcblx0aGVpZ2h0OiAzcHg7XG5cdGJhY2tncm91bmQtY29sb3I6IHZhcigtLXRsLWNvbG9yLXNlbGVjdGVkKTtcblx0Ym9yZGVyLXJhZGl1czogMTRweDtcbn1cblxuLnRsdWktc2xpZGVyX190aHVtYiB7XG5cdGFsbDogdW5zZXQ7XG5cdGN1cnNvcjogZ3JhYjtcblx0ZGlzcGxheTogYmxvY2s7XG5cdHdpZHRoOiAxOHB4O1xuXHRoZWlnaHQ6IDE4cHg7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0dG9wOiAtMXB4O1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS10bC1jb2xvci1wYW5lbCk7XG5cdGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuXHRib3gtc2hhZG93OiBpbnNldCAwcHggMHB4IDBweCAycHggdmFyKC0tdGwtY29sb3ItdGV4dC0xKTtcbn1cblxuLnRsdWktc2xpZGVyX190aHVtYjphY3RpdmUge1xuXHRjdXJzb3I6IGdyYWJiaW5nO1xuXHRib3gtc2hhZG93OlxuXHRcdGluc2V0IDBweCAwcHggMHB4IDJweCB2YXIoLS10bC1jb2xvci10ZXh0LTEpLFxuXHRcdHZhcigtLXRsLXNoYWRvdy0xKTtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBJbnB1dCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLnRsdWktaW5wdXQge1xuXHRiYWNrZ3JvdW5kOiBub25lO1xuXHRtYXJnaW46IDBweDtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR6LWluZGV4OiB2YXIoLS10bC1sYXllci1hYm92ZSk7XG5cdGhlaWdodDogNDBweDtcblx0bWF4LWhlaWdodDogNDBweDtcblx0ZGlzcGxheTogZmxleDtcblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cdGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuXHRmb250LXNpemU6IDEycHg7XG5cdGZvbnQtd2VpZ2h0OiBpbmhlcml0O1xuXHRjb2xvcjogdmFyKC0tdGwtY29sb3ItdGV4dC0xKTtcblx0cGFkZGluZzogdmFyKC0tdGwtc3BhY2UtNCk7XG5cdHBhZGRpbmctbGVmdDogMHB4O1xuXHRib3JkZXI6IG5vbmU7XG5cdG91dGxpbmU6IG5vbmU7XG5cdHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuXHR3aWR0aDogMTAwJTtcblx0dXNlci1zZWxlY3Q6IGFsbDtcblx0dGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eTtcblx0LXdlYmtpdC11c2VyLXNlbGVjdDogYXV0byAhaW1wb3J0YW50O1xufVxuXG4udGx1aS1pbnB1dDo6cGxhY2Vob2xkZXIge1xuXHRjb2xvcjogdmFyKC0tdGwtY29sb3ItdGV4dC0zKTtcbn1cblxuLnRsdWktaW5wdXRfX3dyYXBwZXIge1xuXHR3aWR0aDogMTAwJTtcblx0aGVpZ2h0OiA0NHB4O1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRnYXA6IHZhcigtLXRsLXNwYWNlLTQpO1xuXHRjb2xvcjogdmFyKC0tdGwtY29sb3ItdGV4dCk7XG59XG5cbi50bHVpLWlucHV0X193cmFwcGVyID4gLnRsdWktaWNvbiB7XG5cdGZsZXgtc2hyaW5rOiAwO1xufVxuXG4vKiBJZiBtb2JpbGUgdXNlIDE2cHggYXMgZm9udCBzaXplICovXG4vKiBPbiBpT1MsIGZvbnQgc2l6ZSB1bmRlciAxNnB4IGluIGFuIGlucHV0IHdpbGwgbWFrZSB0aGUgcGFnZSB6b29tIGludG8gdGhlIGlucHV0IFx1RDgzRVx1REQyNlx1MjAwRFx1MjY0Mlx1RkUwRiAqL1xuLyogaHR0cHM6Ly9jc3MtdHJpY2tzLmNvbS8xNnB4LW9yLWxhcmdlci10ZXh0LXByZXZlbnRzLWlvcy1mb3JtLXpvb20vICovXG5Ac3VwcG9ydHMgKC13ZWJraXQtdG91Y2gtY2FsbG91dDogbm9uZSkge1xuXHQvKiBDU1Mgc3BlY2lmaWMgdG8gaU9TIGRldmljZXMgKi9cblx0LnRsdWktaW5wdXQge1xuXHRcdGZvbnQtc2l6ZTogMTZweDtcblx0fVxufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBLYmQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4udGx1aS1rYmQge1xuXHRmb250LWZhbWlseTogaW5oZXJpdDtcblx0Zm9udC1zaXplOiAxMXB4O1xuXHRsaW5lLWhlaWdodDogMTFweDtcblx0ZGlzcGxheTogZ3JpZDtcblx0anVzdGlmeS1pdGVtczogY2VudGVyO1xuXHRncmlkLWF1dG8tZmxvdzogY29sdW1uO1xuXHRncmlkLXRlbXBsYXRlLWNvbHVtbnM6IGF1dG87XG5cdGdyaWQtYXV0by1jb2x1bW5zOiBtaW5tYXgoMWVtLCBhdXRvKTtcblx0YWxpZ24tc2VsZjogYm90dG9tO1xuXHRjb2xvcjogY3VycmVudENvbG9yO1xuXHRtYXJnaW4tbGVmdDogdmFyKC0tdGwtc3BhY2UtNCk7XG59XG5cbi50bHVpLWtiZCA+IHNwYW4ge1xuXHR3aWR0aDogMTAwJTtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRkaXNwbGF5OiBpbmxpbmU7XG5cdG1hcmdpbjogMHB4O1xuXHRwYWRkaW5nOiAycHg7XG5cdGJvcmRlci1yYWRpdXM6IDJweDtcbn1cblxuLnRsdWkta2JkID4gc3BhbjpsYXN0LWNoaWxkIHtcblx0cGFkZGluZy1yaWdodDogMDtcbn1cblxuLnRsdWkta2JkOm5vdCg6bGFzdC1jaGlsZCkge1xuXHRtYXJnaW4tcmlnaHQ6IHZhcigtLXRsLXNwYWNlLTIpO1xufVxuXG4vKiBGb2N1cyBNb2RlIEJ1dHRvbiAqL1xuXG4udGx1aS1mb2N1cy1idXR0b24ge1xuXHR6LWluZGV4OiB2YXIoLS10bC1sYXllci1wYW5lbHMpO1xuXHRwb2ludGVyLWV2ZW50czogYWxsO1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tIE1lbnUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4udGx1aS1tZW51OmVtcHR5IHtcblx0ZGlzcGxheTogbm9uZTtcbn1cblxuLnRsdWktbWVudSB7XG5cdHotaW5kZXg6IHZhcigtLXRsLWxheWVyLW1lbnVzKTtcblx0aGVpZ2h0OiBmaXQtY29udGVudDtcblx0d2lkdGg6IGZpdC1jb250ZW50O1xuXHRib3JkZXItcmFkaXVzOiB2YXIoLS10bC1yYWRpdXMtMyk7XG5cdHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cdHRvdWNoLWFjdGlvbjogYXV0bztcblx0b3ZlcmZsb3cteTogYXV0bztcblx0b3ZlcnNjcm9sbC1iZWhhdmlvcjogbm9uZTtcblx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdGwtY29sb3ItcGFuZWwpO1xuXHRib3gtc2hhZG93OiB2YXIoLS10bC1zaGFkb3ctMyk7XG59XG5cbkBtZWRpYSAobWF4LWhlaWdodDogNjAwcHgpIHtcblx0LnRsdWktbWVudSB7XG5cdFx0bWF4LWhlaWdodDogNzB2aDtcblx0fVxufVxuXG4udGx1aS1tZW51Ojotd2Via2l0LXNjcm9sbGJhciB7XG5cdGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qIE1lbnUgZ3JvdXBzICovXG5cbi50bHVpLW1lbnVfX2dyb3VwIHtcblx0d2lkdGg6IDEwMCU7XG59XG5cbi50bHVpLW1lbnVfX2dyb3VwOmVtcHR5IHtcblx0ZGlzcGxheTogbm9uZTtcbn1cblxuLnRsdWktbWVudV9fZ3JvdXAge1xuXHRib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tdGwtY29sb3ItZGl2aWRlcik7XG59XG4udGx1aS1tZW51X19ncm91cDpudGgtbGFzdC1vZi10eXBlKDEpIHtcblx0Ym9yZGVyLWJvdHRvbTogbm9uZTtcbn1cblxuLyogU3VibWVudSB0cmlnZ2VycyAqL1xuXG4udGx1aS1tZW51X19zdWJtZW51X190cmlnZ2VyIHtcblx0LS1ncmFkaWVudC1hbmdsZTogOTBkZWc7XG59XG5cbi50bHVpLW1lbnVfX3N1Ym1lbnVfX3RyaWdnZXJbZGF0YS1kaXJlY3Rpb249J2xlZnQnXSB7XG5cdC0tZ3JhZGllbnQtYW5nbGU6IDI3MGRlZztcbn1cblxuLnRsdWktbWVudV9fc3VibWVudV9fdHJpZ2dlcltkYXRhLXN0YXRlPSdvcGVuJ106OmFmdGVyIHtcblx0b3BhY2l0eTogMTtcblx0YmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuXHRcdHZhcigtLWdyYWRpZW50LWFuZ2xlKSxcblx0XHRyZ2JhKDE0NCwgMTQ0LCAxNDQsIDApIDAlLFxuXHRcdHZhcigtLXRsLWNvbG9yLW11dGVkLTIpIDEwMCVcblx0KTtcbn1cblxuQG1lZGlhIChob3ZlcjogaG92ZXIpIHtcblx0LnRsdWktbWVudV9fc3VibWVudV9fdHJpZ2dlcjppcyg6aG92ZXIsIFtkYXRhLXN0YXRlPSdvcGVuJ10pOjphZnRlciB7XG5cdFx0b3BhY2l0eTogMTtcblx0XHRiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG5cdFx0XHR2YXIoLS1ncmFkaWVudC1hbmdsZSksXG5cdFx0XHRyZ2JhKDE0NCwgMTQ0LCAxNDQsIDApIDAlLFxuXHRcdFx0dmFyKC0tdGwtY29sb3ItbXV0ZWQtMikgMTAwJVxuXHRcdCk7XG5cdH1cbn1cblxuLyogTWVudSBTaXplcyAqL1xuXG4udGx1aS1tZW51W2RhdGEtc2l6ZT0nbGFyZ2UnXSA+IC50bHVpLW1lbnVfX2dyb3VwIHtcblx0bWluLXdpZHRoOiBpbml0aWFsO1xufVxuXG4udGx1aS1tZW51W2RhdGEtc2l6ZT0nbWVkaXVtJ10gPiAudGx1aS1tZW51X19ncm91cCB7XG5cdG1pbi13aWR0aDogMTQ0cHg7XG59XG5cbi50bHVpLW1lbnVbZGF0YS1zaXplPSdzbWFsbCddID4gLnRsdWktbWVudV9fZ3JvdXAge1xuXHRtaW4td2lkdGg6IDk2cHg7XG59XG5cbi50bHVpLW1lbnVbZGF0YS1zaXplPSd0aW55J10gPiAudGx1aS1tZW51X19ncm91cCB7XG5cdG1pbi13aWR0aDogMHB4O1xufVxuXG4udGx1aS1tZW51LWNsaWNrLWNhcHR1cmUge1xuXHRwb3NpdGlvbjogZml4ZWQ7XG5cdGluc2V0OiAwO1xuXHR6LWluZGV4OiB2YXIoLS10bC1sYXllci1tZW51LWNsaWNrLWNhcHR1cmUpO1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0gUG9wb3ZlciAtLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4udGx1aS1wb3BvdmVyIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRhbGlnbi1jb250ZW50OiBzdHJldGNoO1xufVxuXG4udGx1aS1wb3BvdmVyX19jb250ZW50IHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRtYXgtaGVpZ2h0OiBjYWxjKHZhcigtLXJhZGl4LXBvcG92ZXItY29udGVudC1hdmFpbGFibGUtaGVpZ2h0KSAtIDhweCk7XG5cdG1hcmdpbjogMHB4O1xuXHRib3JkZXI6IG5vbmU7XG5cdGJvcmRlci1yYWRpdXM6IHZhcigtLXRsLXJhZGl1cy0zKTtcblx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdGwtY29sb3ItcGFuZWwpO1xuXHRib3gtc2hhZG93OiB2YXIoLS10bC1zaGFkb3ctMyk7XG5cdHotaW5kZXg6IHZhcigtLXRsLWxheWVyLW1lbnVzKTtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0b3ZlcmZsb3cteTogYXV0bztcblx0dG91Y2gtYWN0aW9uOiBhdXRvO1xuXHRvdmVyc2Nyb2xsLWJlaGF2aW9yOiBub25lO1xuXHRzY3JvbGxiYXItd2lkdGg6IG5vbmU7XG5cdC1tcy1vdmVyZmxvdy1zdHlsZTogbm9uZTtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0gTWVudSBab25lIC0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLnRsdWktbWVudS16b25lIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR6LWluZGV4OiB2YXIoLS10bC1sYXllci1wYW5lbHMpO1xuXHR3aWR0aDogZml0LWNvbnRlbnQ7XG5cdGJvcmRlci1yaWdodDogMnB4IHNvbGlkIHZhcigtLXRsLWNvbG9yLWJhY2tncm91bmQpO1xuXHRib3JkZXItYm90dG9tOiAycHggc29saWQgdmFyKC0tdGwtY29sb3ItYmFja2dyb3VuZCk7XG5cdGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiB2YXIoLS10bC1yYWRpdXMtNCk7XG5cdGJhY2tncm91bmQtY29sb3I6IHZhcigtLXRsLWNvbG9yLWxvdyk7XG59XG5cbi50bHVpLW1lbnUtem9uZSAqW2RhdGEtc3RhdGU9J29wZW4nXTo6YWZ0ZXIge1xuXHRiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2JhKDE0NCwgMTQ0LCAxNDQsIDApIDAlLCB2YXIoLS10bC1jb2xvci1tdXRlZC0yKSAxMDAlKTtcblx0b3BhY2l0eTogMTtcbn1cblxuQG1lZGlhIChob3ZlcjogaG92ZXIpIHtcblx0LnRsdWktbWVudS16b25lICpbZGF0YS1zdGF0ZT0nb3BlbiddOm5vdCg6aG92ZXIpOjphZnRlciB7XG5cdFx0YmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE4MGRlZywgcmdiYSgxNDQsIDE0NCwgMTQ0LCAwKSAwJSwgdmFyKC0tdGwtY29sb3ItbXV0ZWQtMikgMTAwJSk7XG5cdFx0b3BhY2l0eTogMTtcblx0fVxufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tIFBhZ2UgU2VsZWN0IC0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4udGx1aS1wYWdlLW1lbnVfX3dyYXBwZXIge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cdHdpZHRoOiAyNjBweDtcblx0aGVpZ2h0OiBmaXQtY29udGVudDtcblx0bWF4LWhlaWdodDogNTB2aDtcbn1cblxuLnRsdWktcGFnZS1tZW51X190cmlnZ2VyIHtcblx0d2lkdGg6IGF1dG87XG59XG5cbi50bHVpLXBhZ2UtbWVudV9faGVhZGVyIHtcblx0ZGlzcGxheTogZmxleDtcblx0ZmxleC1kaXJlY3Rpb246IHJvdztcblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0d2lkdGg6IDEwMCU7XG5cdGhlaWdodDogNDBweDtcblx0cGFkZGluZy1sZWZ0OiB2YXIoLS10bC1zcGFjZS00KTtcblx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLXRsLWNvbG9yLWRpdmlkZXIpO1xufVxuXG4udGx1aS1wYWdlLW1lbnVfX2hlYWRlciA+IC50bHVpLWJ1dHRvbjpudGgtb2YtdHlwZSgxKSB7XG5cdG1hcmdpbi1yaWdodDogLTRweDtcbn1cblxuLnRsdWktcGFnZS1tZW51X19oZWFkZXJfX3RpdGxlIHtcblx0Y29sb3I6IHZhcigtLXRsLWNvbG9yLXRleHQpO1xuXHRmb250LXNpemU6IDEycHg7XG5cdGZsZXgtZ3JvdzogMjtcbn1cblxuLnRsdWktcGFnZS1tZW51X19uYW1lIHtcblx0ZmxleC1ncm93OiAyO1xuXHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHRvdmVyZmxvdzogaGlkZGVuO1xuXHR0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcblx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLnRsdWktcGFnZS1tZW51X19saXN0IHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR0b3VjaC1hY3Rpb246IGF1dG87XG5cdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cdG1heC1oZWlnaHQ6IDEwMCU7XG5cdG92ZXJmbG93LXg6IGhpZGRlbjtcblx0b3ZlcmZsb3cteTogYXV0bztcblx0dG91Y2gtYWN0aW9uOiBhdXRvO1xufVxuXG4udGx1aS1wYWdlLW1lbnVfX2l0ZW0ge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi50bHVpLXBhZ2VfbWVudV9faXRlbV9fc3VibWVudVtkYXRhLWlzZWRpdGluZz0ndHJ1ZSddID4gLnRsdWktYnV0dG9uW2RhdGEtc3RhdGU9J29wZW4nXSB7XG5cdG9wYWNpdHk6IDE7XG59XG5cbkBtZWRpYSAoaG92ZXI6IGhvdmVyKSB7XG5cdC50bHVpLXBhZ2UtbWVudV9faXRlbTpob3ZlciA+IC50bHVpLXBhZ2VfbWVudV9faXRlbV9fc3VibWVudSA+IC50bHVpLWJ1dHRvbiB7XG5cdFx0b3BhY2l0eTogMTtcblx0fVxufVxuXG4udGx1aS1wYWdlLW1lbnVfX2l0ZW06bnRoLW9mLXR5cGUobiArIDIpIHtcblx0bWFyZ2luLXRvcDogLTRweDtcbn1cblxuLnRsdWktcGFnZS1tZW51X19pdGVtX19idXR0b24ge1xuXHR3aWR0aDogMTAwJTtcbn1cblxuLnRsdWktcGFnZS1tZW51X19pdGVtX19idXR0b246bm90KDpvbmx5LWNoaWxkKSB7XG5cdGZsZXgtZ3JvdzogMjtcblx0bWFyZ2luLXJpZ2h0OiAtMnB4O1xufVxuXG4udGx1aS1wYWdlLW1lbnVfX2l0ZW1fX2J1dHRvbiA+IHNwYW4ge1xuXHRkaXNwbGF5OiBibG9jaztcblx0ZmxleC1ncm93OiAyO1xuXHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHRvdmVyZmxvdzogaGlkZGVuO1xuXHR0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcblx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLnRsdWktcGFnZS1tZW51X19pdGVtX19idXR0b24gPiBzcGFuIHtcblx0cGFkZGluZy1yaWdodDogY2FsYyg0MHB4IC0gMTJweCk7XG59XG5cbkBtZWRpYSAoaG92ZXI6IGhvdmVyKSB7XG5cdC50bHVpLXBhZ2UtbWVudV9faXRlbV9fYnV0dG9uID4gc3BhbiB7XG5cdFx0cGFkZGluZy1yaWdodDogMHB4O1xuXHR9XG5cblx0LnRsdWktcGFnZS1tZW51X19pdGVtOmhvdmVyID4gLnRsdWktcGFnZS1tZW51X19pdGVtX19idXR0b24gPiBzcGFuIHtcblx0XHRwYWRkaW5nLXJpZ2h0OiBjYWxjKDQwcHggLSAxMnB4KTtcblx0fVxufVxuXG4udGx1aS1wYWdlLW1lbnVfX2l0ZW1fX2J1dHRvbl9fY2hlY2tib3gge1xuXHRwYWRkaW5nLWxlZnQ6IDM1cHg7XG59XG5cbi50bHVpLXBhZ2UtbWVudV9faXRlbV9fYnV0dG9uX19jaGVjayB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0bGVmdDogMHB4O1xuXHR3aWR0aDogMjRweDtcblx0cGFkZGluZy1sZWZ0OiAxMHB4O1xuXHRkaXNwbGF5OiBpbmxpbmUtZmxleDtcblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cdGNvbG9yOiB2YXIoLS10bC1jb2xvci10ZXh0KTtcbn1cblxuLnRsdWktcGFnZV9tZW51X19pdGVtX19zb3J0YWJsZSB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0dG9wOiAwcHg7XG5cdGxlZnQ6IDBweDtcblx0d2lkdGg6IDEwMCU7XG5cdGhlaWdodDogZml0LWNvbnRlbnQ7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdHotaW5kZXg6IHZhcigtLXRsLWxheWVyLWFib3ZlKTtcbn1cblxuLnRsdWktcGFnZV9tZW51X19pdGVtX19zb3J0YWJsZV9fdGl0bGUge1xuXHRmbGV4OiAxO1xufVxuXG4udGx1aS1wYWdlX21lbnVfX2l0ZW1fX3NvcnRhYmxlX190aXRsZSA+IC50bHVpLWlucHV0X193cmFwcGVyIHtcblx0aGVpZ2h0OiAxMDAlO1xufVxuXG4udGx1aS1wYWdlX21lbnVfX2l0ZW1fX3NvcnRhYmxlOmZvY3VzLXZpc2libGUge1xuXHR6LWluZGV4OiB2YXIoLS10bC1sYXllci1mb2N1c2VkLWlucHV0KTtcbn1cblxuLnRsdWktcGFnZV9tZW51X19pdGVtX19zb3J0YWJsZV9faGFuZGxlIHtcblx0dG91Y2gtYWN0aW9uOiBub25lO1xuXHR3aWR0aDogMzJweDtcblx0bWluLXdpZHRoOiAwcHg7XG5cdGhlaWdodDogNDBweDtcblx0Y3Vyc29yOiBncmFiO1xuXHRjb2xvcjogdmFyKC0tdGwtY29sb3ItdGV4dC0zKTtcblx0ZmxleC1zaHJpbms6IDA7XG5cdG1hcmdpbi1yaWdodDogLTlweDtcbn1cblxuLnRsdWktcGFnZV9tZW51X19pdGVtX19zb3J0YWJsZV9faGFuZGxlOmFjdGl2ZSB7XG5cdGN1cnNvcjogZ3JhYmJpbmc7XG59XG5cbi50bHVpLXBhZ2UtbWVudV9faXRlbV9faW5wdXQge1xuXHRtYXJnaW4tbGVmdDogMTJweDtcblx0aGVpZ2h0OiAxMDAlO1xufVxuXG4vKiBUaGUgbW9yZSBtZW51IGhhcyBjb21wbGV4IENTUyBoZXJlOiAqL1xuLyogSWYgdGhlIHVzZXIgY2FuIGhvdmVyLCB0aGVuIHZpc2libGUgYnV0IG9wYWNpdHkgemVybyB1bnRpbCBob3ZlciAqL1xuLyogSWYgdGhlIHVzZXIgY2Fubm90IGhvdmVyLCB0aGVuIG5vdCBkaXNwbGF5ZWQgdW5sZXNzIGVkaXRpbmcsIGFuZCB0aGVuIG9wYWNpdHkgMSAqL1xuXG4udGx1aS1wYWdlX21lbnVfX2l0ZW1fX3N1Ym1lbnUge1xuXHRwb2ludGVyLWV2ZW50czogYWxsO1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHJpZ2h0OiAwcHg7XG5cdHRvcDogMHB4O1xuXHRoZWlnaHQ6IDEwMCU7XG5cdGN1cnNvcjogcG9pbnRlcjtcblx0bWFyZ2luOiAwcHg7XG5cdG1hcmdpbi1sZWZ0OiAtMnB4O1xuXHR6LWluZGV4OiAxMDtcbn1cblxuLnRsdWktcGFnZV9tZW51X19pdGVtX19zdWJtZW51ID4gLnRsdWktYnV0dG9uIHtcblx0b3BhY2l0eTogMDtcbn1cblxuLnRsdWktcGFnZV9tZW51X19pdGVtX19zb3J0YWJsZTpmb2N1cy12aXNpYmxlID4gLnRsdWktcGFnZV9tZW51X19pdGVtX19zdWJtZW51ID4gLnRsdWktYnV0dG9uLFxuLnRsdWktcGFnZV9tZW51X19pdGVtX19zdWJtZW51W2RhdGEtaXNlZGl0aW5nPSd0cnVlJ10sXG4udGx1aS1wYWdlX21lbnVfX2l0ZW1fX3N1Ym1lbnUgPiAudGx1aS1idXR0b25bZGF0YS1zdGF0ZT0nb3BlbiddLFxuLnRsdWktcGFnZV9tZW51X19pdGVtX19zdWJtZW51ID4gLnRsdWktYnV0dG9uOmZvY3VzLXZpc2libGUge1xuXHRvcGFjaXR5OiAxO1xufVxuXG4udGx1aS1wYWdlX21lbnVfX2l0ZW1fX3N1Ym1lbnUgPiAudGx1aS1idXR0b25bZGF0YS1zdGF0ZT0nb3BlbiddOjphZnRlciB7XG5cdGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgcmdiYSgxNDQsIDE0NCwgMTQ0LCAwKSAwJSwgdmFyKC0tdGwtY29sb3ItbXV0ZWQtMikgMTAwJSk7XG5cdG9wYWNpdHk6IDE7XG59XG5cbkBtZWRpYSAoaG92ZXI6IGhvdmVyKSB7XG5cdC50bHVpLXBhZ2VfbWVudV9faXRlbV9fc3VibWVudSA+IC50bHVpLWJ1dHRvbltkYXRhLXN0YXRlPSdvcGVuJ106bm90KDpob3Zlcik6OmFmdGVyIHtcblx0XHRiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHJnYmEoMTQ0LCAxNDQsIDE0NCwgMCkgMCUsIHZhcigtLXRsLWNvbG9yLW11dGVkLTIpIDEwMCUpO1xuXHRcdG9wYWNpdHk6IDE7XG5cdH1cbn1cblxuLnRsLWNvbnRhaW5lcltkYXRhLWNvYXJzZT0ndHJ1ZSddIC50bHVpLXBhZ2VfbWVudV9faXRlbV9fc3VibWVudSA+IC50bHVpLWJ1dHRvbiB7XG5cdG9wYWNpdHk6IDE7XG59XG5cbi50bHVpLWJ1dHRvbl9faWNvbiB7XG5cdHBhZGRpbmc6IDBweDtcbn1cblxuLnRsdWktcGFnZS1tZW51X19pdGVtX19idXR0b24gLnRsdWktYnV0dG9uX19pY29uIHtcblx0bWFyZ2luLXJpZ2h0OiA0cHg7XG59XG5cbkBtZWRpYSAoaG92ZXI6IGhvdmVyKSB7XG5cdC50bHVpLXBhZ2VfbWVudV9faXRlbV9fc3VibWVudVtkYXRhLWlzZWRpdGluZz0ndHJ1ZSddID4gLnRsdWktYnV0dG9uIHtcblx0XHRvcGFjaXR5OiAwO1xuXHR9XG5cblx0LnRsdWktcGFnZV9tZW51X19pdGVtX19zdWJtZW51OmhvdmVyID4gLnRsdWktYnV0dG9uIHtcblx0XHRvcGFjaXR5OiAxO1xuXHR9XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tIFNraXAgdG8gbWFpbiBjb250ZW50IC0tLS0tLS0tLS0tLS0tICovXG5cbi50bC1za2lwLXRvLW1haW4tY29udGVudCB7XG5cdHBvc2l0aW9uOiBmaXhlZDtcblx0dG9wOiA0OHB4O1xuXHRsZWZ0OiAtOTk5OXB4O1xuXHRwYWRkaW5nOiA4cHggMTZweDtcblx0ei1pbmRleDogdmFyKC0tdGwtbGF5ZXItdG9hc3RzKTtcbn1cblxuLnRsLXNraXAtdG8tbWFpbi1jb250ZW50OmZvY3VzIHtcblx0bGVmdDogOHB4O1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tIE9mZmxpbmUgaW5kaWNhdG9yIC0tLS0tLS0tLS0tLS0tLSAqL1xuXG4udGx1aS1vZmZsaW5lLWluZGljYXRvciB7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGNvbG9yOiB2YXIoLS10bC1jb2xvci1iYWNrZ3JvdW5kKTtcblx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdGwtY29sb3ItdGV4dCk7XG5cdGJvcmRlcjogbm9uZTtcblx0d2lkdGg6IDMycHg7XG5cdGhlaWdodDogMzJweDtcblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cdGJvcmRlci1yYWRpdXM6IDk5cHg7XG5cdGN1cnNvcjogZGVmYXVsdDtcblx0b3BhY2l0eTogMDtcblx0YW5pbWF0aW9uOiB0bC1mYWRlLWluO1xuXHRhbmltYXRpb24tZHVyYXRpb246IDAuMTJzO1xuXHRhbmltYXRpb24tZGVsYXk6IDJzO1xuXHRhbmltYXRpb24tZmlsbC1tb2RlOiBmb3J3YXJkcztcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLSBTdHlsZSBwYW5lbCAtLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLnRsdWktc3R5bGUtcGFuZWxfX3dyYXBwZXIge1xuXHRib3gtc2hhZG93OiB2YXIoLS10bC1zaGFkb3ctMik7XG5cdGJvcmRlci1yYWRpdXM6IHZhcigtLXRsLXJhZGl1cy0zKTtcblx0cG9pbnRlci1ldmVudHM6IGFsbDtcblx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdGwtY29sb3ItcGFuZWwpO1xuXHRoZWlnaHQ6IGZpdC1jb250ZW50O1xuXHRtYXgtaGVpZ2h0OiAxMDAlO1xuXHRtYXJnaW46IDhweDtcblx0bWFyZ2luLXRvcDogNHB4O1xuXHR0b3VjaC1hY3Rpb246IGF1dG87XG5cdG92ZXJzY3JvbGwtYmVoYXZpb3I6IG5vbmU7XG5cdG92ZXJmbG93LXk6IGF1dG87XG5cdG92ZXJmbG93LXg6IGhpZGRlbjtcblx0Y29sb3I6IHZhcigtLXRsLWNvbG9yLXRleHQpO1xufVxuLyogaWYgdGhlIHN0eWxlIHBhbmVsIGlzIHRoZSBvbmx5IGNoaWxkIChpZSBubyBzaGFyZSBtZW51KSwgaW5jcmVhc2UgdGhlIG1hcmdpbiAqL1xuLnRsdWktc3R5bGUtcGFuZWxfX3dyYXBwZXI6b25seS1jaGlsZCB7XG5cdG1hcmdpbi10b3A6IDhweDtcbn1cblxuLnRsdWktc3R5bGUtcGFuZWwge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdHotaW5kZXg6IHZhcigtLXRsLWxheWVyLXBhbmVscyk7XG5cdHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cdHdpZHRoOiAxNDhweDtcblx0bWF4LXdpZHRoOiAxNDhweDtcbn1cblxuLnRsdWktc3R5bGUtcGFuZWxbZGF0YS1lbmhhbmNlZC1hMTF5LW1vZGU9J3RydWUnXSAudGx1aS1idXR0b25bZGF0YS1pc2FjdGl2ZT0ndHJ1ZSddIHtcblx0Ym9yZGVyLXJhZGl1czogMTBweDtcblx0b3V0bGluZTogMnB4IHNvbGlkIHZhcigtLXRsLWNvbG9yLXRleHQpO1xuXHRvdXRsaW5lLW9mZnNldDogLTVweDtcbn1cblxuLnRsdWktc3R5bGUtcGFuZWw6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcblx0ZGlzcGxheTogbm9uZTtcbn1cblxuLnRsdWktc3R5bGUtcGFuZWwgLnRsdWktYnV0dG9uLnNlbGVjdCB7XG5cdHdpZHRoOiAxMDAlO1xufVxuXG4udGx1aS1zdHlsZS1wYW5lbF9fc2VjdGlvbiB7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cblxuLypcbmFkZCBhIGJvcmRlciB0byB0aGUgYm90dG9tIG9mIGFsbCBidXQgdGhlIGxhc3Qgc2VjdGlvbi4gd2UgaGF2ZSB0byBoYW5kbGUgZW1wdHkgc2VjdGlvbnMgdG9vLCB3aGljaFxuYXJlIGhpZGRlbiBhbmQgc2hvdWxkbid0IGJlIGNvdW50ZWRcbiovXG4udGx1aS1zdHlsZS1wYW5lbF9fc2VjdGlvbjpub3QoOm50aC1sYXN0LWNoaWxkKC1uICsgMSBvZiAudGx1aS1zdHlsZS1wYW5lbF9fc2VjdGlvbjpub3QoOmVtcHR5KSkpIHtcblx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLXRsLWNvbG9yLWRpdmlkZXIpO1xufVxuLypcbmlmIGEgc2VjdGlvbiBlbmRzIHdpdGggYSBzbGlkZXIgYW5kIHdlJ3JlIGFkZGluZyBhIGJvcmRlciwgd2UgbmVlZCBzb21lIGV4dHJhIHNwYWNlIGZvciB2aXN1YWxcbmJhbGFuY2UuIHdlIG5lZWQgdG8gaGFuZGxlIGVtcHR5IHNlY3Rpb25zIGFzIGFib3ZlLiBpcyB0aGlzIHRoZSBtb3N0IGNvbXBsZXggY3NzIHNlbGVjdG9yIGluIGFsbCBvZlxudGxkcmF3PyBwcm9iYWJseS5cbiovXG4udGx1aS1zdHlsZS1wYW5lbF9fc2VjdGlvbjpoYXMoLnRsdWktc2xpZGVyX19jb250YWluZXI6bGFzdC1jaGlsZCk6bm90KFxuXHRcdDpudGgtbGFzdC1jaGlsZCgtbiArIDEgb2YgLnRsdWktc3R5bGUtcGFuZWxfX3NlY3Rpb246bm90KDplbXB0eSkpXG5cdCkge1xuXHRtYXJnaW4tYm90dG9tOiA3cHg7XG59XG5cbi50bHVpLXN0eWxlLXBhbmVsX19zZWN0aW9uOmVtcHR5IHtcblx0ZGlzcGxheTogbm9uZTtcbn1cblxuLypcbiAqIFRoaXMgaXMgdXNlZCBpbiBhIGNvdXBsZSBwbGFjZXMsIGxpa2UgQWxpZ24gYW5kIFZlcnRpY2FsIEFsaWduLlxuICogSXQncyBiZWNhdXNlIHdlIGhhdmUgYSB0b29sYmFyIHdpdGggYSBUb2dnbGUgR3JvdXAgYnV0IHRoZW4gYW4gYWRqYWNlbnQgYnV0dG9uXG4gKiBuZXh0IHRvIGl0IHRoYXQgb3BlbnMgYSBwb3B1cC5cbiAqL1xuLnRsdWktc3R5bGUtcGFuZWxfX3NlY3Rpb24gLnRsdWktdG9vbGJhcjpoYXMoLnRsdWktdG9vbGJhcikge1xuXHRmbGV4LXdyYXA6IHdyYXA7XG59XG5cbi50bHVpLXN0eWxlLXBhbmVsX19zZWN0aW9uIC50bHVpLXRvb2xiYXI6aGFzKC50bHVpLXRvb2xiYXIpIC50bHVpLXN0eWxlLXBhbmVsX19zdWJoZWFkaW5nIHtcblx0bWFyZ2luLWxlZnQ6IC0ycHg7XG59XG5cbi50bHVpLXN0eWxlLXBhbmVsX19zZWN0aW9uX19jb21tb246bm90KDpvbmx5LWNoaWxkKSB7XG5cdG1hcmdpbi1ib3R0b206IDdweDtcblx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLXRsLWNvbG9yLWRpdmlkZXIpO1xufVxuXG4udGx1aS1zdHlsZS1wYW5lbF9fZHJvcGRvd24tcGlja2VyOm9ubHktY2hpbGQge1xuXHRmbGV4OiAxO1xufVxuXG4udGx1aS1zdHlsZS1wYW5lbF9fZG91YmxlLXNlbGVjdC1waWNrZXIge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciBhdXRvO1xuXHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRwYWRkaW5nLWxlZnQ6IHZhcigtLXRsLXNwYWNlLTQpO1xuXHRjb2xvcjogdmFyKC0tdGwtY29sb3ItdGV4dC0xKTtcblx0Zm9udC1zaXplOiAxMnB4O1xufVxuXG4udGx1aS1zdHlsZS1wYW5lbF9fZG91YmxlLXNlbGVjdC1waWNrZXItbGFiZWwge1xuXHR0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcblx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcblx0ZmxleC1ncm93OiAyO1xuXHRtYXgtd2lkdGg6IDEwMCU7XG59XG5cbi50bHVpLXN0eWxlLXBhbmVsIC50bHVpLWJ1dHRvbltkYXRhLXN0YXRlPSdvcGVuJ106OmFmdGVyIHtcblx0b3BhY2l0eTogMTtcblx0YmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDI3MGRlZywgcmdiYSgxNDQsIDE0NCwgMTQ0LCAwKSAwJSwgdmFyKC0tdGwtY29sb3ItbXV0ZWQtMikgMTAwJSk7XG59XG5cbkBtZWRpYSAoaG92ZXI6IGhvdmVyKSB7XG5cdC50bHVpLXN0eWxlLXBhbmVsIC50bHVpLWJ1dHRvblthcmlhLWV4cGFuZGVkPSd0cnVlJ10ge1xuXHRcdGJhY2tncm91bmQ6IG5vbmU7XG5cdH1cblx0LnRsdWktc3R5bGUtcGFuZWwgLnRsdWktYnV0dG9uW2RhdGEtc3RhdGU9J29wZW4nXTpub3QoOmhvdmVyKTo6YWZ0ZXIge1xuXHRcdG9wYWNpdHk6IDE7XG5cdFx0YmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDI3MGRlZywgcmdiYSgxNDQsIDE0NCwgMTQ0LCAwKSAwJSwgdmFyKC0tdGwtY29sb3ItbXV0ZWQtMikgMTAwJSk7XG5cdH1cbn1cblxuLyogQWNjZXNzaWJpbGl0eSBzdWJoZWFkaW5ncyAqL1xuXG4udGx1aS1zdHlsZS1wYW5lbF9fc2VjdGlvbiAudGx1aS1zdHlsZS1wYW5lbF9fc3ViaGVhZGluZyxcbi50bHVpLXN0eWxlLXBhbmVsX19zZWN0aW9uX19jb21tb24gLnRsdWktc3R5bGUtcGFuZWxfX3N1YmhlYWRpbmcsXG4udGx1aS1zdHlsZS1wYW5lbF9fc3ViaGVhZGluZyArIC50bHVpLXNsaWRlcl9fY29udGFpbmVyIHtcblx0bWFyZ2luOiAwO1xuXHRwYWRkaW5nOiB2YXIoLS10bC1zcGFjZS0yKSB2YXIoLS10bC1zcGFjZS0zKSAwcHggdmFyKC0tdGwtc3BhY2UtNCk7XG5cdGZvbnQtc2l6ZTogMTJweDtcblx0Zm9udC13ZWlnaHQ6IGluaGVyaXQ7XG5cdGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xufVxuXG4udGx1aS1zdHlsZS1wYW5lbCAudGx1aS1zdHlsZS1wYW5lbF9fc3ViaGVhZGluZzpudGgtb2YtdHlwZSgxKSB7XG5cdHBhZGRpbmctdG9wOiB2YXIoLS10bC1zcGFjZS0zKTtcbn1cblxuLnRsdWktc3R5bGUtcGFuZWxfX3N1YmhlYWRpbmcgKyAudGx1aS1zbGlkZXJfX2NvbnRhaW5lciB7XG5cdHBhZGRpbmctdG9wOiAwcHg7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLSBCb3R0b20gLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi50bHVpLWxheW91dF9fYm90dG9tIHtcblx0Z3JpZC1yb3c6IDI7XG5cdHdpZHRoOiAxMDAlO1xufVxuXG4udGx1aS1sYXlvdXRfX2JvdHRvbV9fbWFpbiB7XG5cdHdpZHRoOiAxMDAlO1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRhbGlnbi1pdGVtczogZmxleC1lbmQ7XG5cdGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tIE5hdmlnYXRpb24gLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4udGx1aS1uYXZpZ2F0aW9uLXBhbmVsIHtcblx0ZGlzcGxheTogZmxleDtcblx0d2lkdGg6IG1pbi1jb250ZW50O1xuXHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXHR6LWluZGV4OiB2YXIoLS10bC1sYXllci1wYW5lbHMpO1xuXHRwb2ludGVyLWV2ZW50czogYWxsO1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdGxlZnQ6IDBweDtcbn1cblxuLnRsdWktbmF2aWdhdGlvbi1wYW5lbDo6YmVmb3JlIHtcblx0Y29udGVudDogJyc7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHotaW5kZXg6IC0xO1xuXHRpbnNldDogLTJweCAtMnB4IDBweCAwcHg7XG5cdGJvcmRlci1yYWRpdXM6IDA7XG5cdGJvcmRlci10b3A6IDJweCBzb2xpZCB2YXIoLS10bC1jb2xvci1iYWNrZ3JvdW5kKTtcblx0Ym9yZGVyLXJpZ2h0OiAycHggc29saWQgdmFyKC0tdGwtY29sb3ItYmFja2dyb3VuZCk7XG5cdGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiB2YXIoLS10bC1yYWRpdXMtNCk7XG5cdGJhY2tncm91bmQtY29sb3I6IHZhcigtLXRsLWNvbG9yLWxvdyk7XG59XG5cbi50bHVpLW5hdmlnYXRpb24tcGFuZWxbZGF0YS1hMTF5PSd0cnVlJ106OmJlZm9yZSB7XG5cdGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qIE1pbmltYXAgKi9cblxuLnRsdWktbWluaW1hcCB7XG5cdHdpZHRoOiAxMDAlO1xuXHRoZWlnaHQ6IDk2cHg7XG5cdG1pbi1oZWlnaHQ6IDk2cHg7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdHBhZGRpbmc6IHZhcigtLXRsLXNwYWNlLTMpO1xuXHRwYWRkaW5nLXRvcDogMHB4O1xufVxuXG4udGx1aS1taW5pbWFwX19jYW52YXMge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdHdpZHRoOiAxMDAlO1xuXHRoZWlnaHQ6IDEwMCU7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLSBUb29sYmFyIC0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi8qIFdpZGUgY29udGFpbmVyICovXG4udGx1aS1tYWluLXRvb2xiYXIge1xuXHRncmlkLWNvbHVtbjogMSAvIHNwYW4gMztcblx0Z3JpZC1yb3c6IDE7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXHRmbGV4LWdyb3c6IDI7XG59XG5cbi50bHVpLW1haW4tdG9vbGJhci0taG9yaXpvbnRhbCB7XG5cdHBhZGRpbmctYm90dG9tOiBjYWxjKHZhcigtLXRsLXNwYWNlLTMpICsgdmFyKC0tdGwtc2FiKSk7XG5cdG1heC13aWR0aDogMTAwJTtcbn1cblxuLnRsdWktbWFpbi10b29sYmFyLS12ZXJ0aWNhbCB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0bGVmdDogMDtcblx0dG9wOiA5MHB4OyAvKiBoZWlnaHQgb2YgcGFnZSBtZW51ICsgJ2JhY2sgdG8gY29udGVudCcgYnV0dG9uICovXG5cdGJvdHRvbTogMTQwcHg7IC8qIGhlaWdodCBvZiBleHBhbmRlZCBtaW5pLW1hcCAqL1xuXHRwYWRkaW5nLWxlZnQ6IGNhbGModmFyKC0tdGwtc3BhY2UtMykgKyB2YXIoLS10bC1zYWIpKTtcbn1cblxuW2RhdGEtYnJlYWtwb2ludHMtYmVsb3cqPSc2J10gLnRsdWktbWFpbi10b29sYmFyLS12ZXJ0aWNhbCB7XG5cdGJvdHRvbTogOTBweDsgLyogY29sbGFwc2VkIG1pbmktbWFwLCBidXQgc2FtZSBhcyB0b3AgdG8ga2VlcCB0aGluZ3MgbG9va2luZyBldmVuICovXG59XG5cbi8qIENlbnRlcmVkIENvbnRlbnQgKi9cbi50bHVpLW1haW4tdG9vbGJhcl9faW5uZXIge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdHdpZHRoOiBmaXQtY29udGVudDtcblx0ZGlzcGxheTogZmxleDtcblx0Z2FwOiB2YXIoLS10bC1zcGFjZS0zKTtcblx0YWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG59XG5cbi50bHVpLW1haW4tdG9vbGJhci0tdmVydGljYWwgLnRsdWktbWFpbi10b29sYmFyX19pbm5lciB7XG5cdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG59XG5cbi50bHVpLW1haW4tdG9vbGJhci0taG9yaXpvbnRhbCAudGx1aS1tYWluLXRvb2xiYXJfX2xlZnQge1xuXHR3aWR0aDogZml0LWNvbnRlbnQ7XG59XG4udGx1aS1tYWluLXRvb2xiYXItLXZlcnRpY2FsIC50bHVpLW1haW4tdG9vbGJhcl9fbGVmdCB7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGhlaWdodDogZml0LWNvbnRlbnQ7XG59XG5cbi8qIFJvdyBvZiBjb250cm9scyArIGxvY2sgYnV0dG9uICovXG4udGx1aS1tYWluLXRvb2xiYXJfX2V4dHJhcyB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0ei1pbmRleDogdmFyKC0tdGwtbGF5ZXItYWJvdmUpO1xuXHRwb2ludGVyLWV2ZW50czogbm9uZTtcblx0YWxpZ24tc2VsZjogc3RyZXRjaDtcbn1cblxuLnRsdWktbWFpbi10b29sYmFyX19leHRyYXM6ZW1wdHkge1xuXHRkaXNwbGF5OiBub25lO1xufVxuXG4udGx1aS1tYWluLXRvb2xiYXItLWhvcml6b250YWwgLnRsdWktbWFpbi10b29sYmFyX19leHRyYXMge1xuXHRoZWlnaHQ6IDQ4cHg7XG5cdHRvcDogNnB4O1xufVxuXG4udGx1aS1tYWluLXRvb2xiYXItLXZlcnRpY2FsIC50bHVpLW1haW4tdG9vbGJhcl9fZXh0cmFzIHtcblx0d2lkdGg6IDQ4cHg7XG5cdG9yZGVyOiAxO1xufVxuXG4udGx1aS1tYWluLXRvb2xiYXJfX2V4dHJhc19fY29udHJvbHMge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdHotaW5kZXg6IHZhcigtLXRsLWxheWVyLWFib3ZlKTtcblx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdGwtY29sb3ItbG93KTtcblx0Ym9yZGVyOiAycHggc29saWQgdmFyKC0tdGwtY29sb3ItYmFja2dyb3VuZCk7XG5cdHBvaW50ZXItZXZlbnRzOiBhbGw7XG59XG5cbi50bHVpLW1haW4tdG9vbGJhci0taG9yaXpvbnRhbCAudGx1aS1tYWluLXRvb2xiYXJfX2V4dHJhc19fY29udHJvbHMge1xuXHRib3JkZXItdG9wLWxlZnQtcmFkaXVzOiB2YXIoLS10bC1yYWRpdXMtNCk7XG5cdGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiB2YXIoLS10bC1yYWRpdXMtNCk7XG5cdG1hcmdpbi1sZWZ0OiA4cHg7XG5cdG1hcmdpbi1yaWdodDogMHB4O1xuXHR3aWR0aDogZml0LWNvbnRlbnQ7XG59XG5cbi50bHVpLW1haW4tdG9vbGJhci0tdmVydGljYWwgLnRsdWktbWFpbi10b29sYmFyX19leHRyYXNfX2NvbnRyb2xzIHtcblx0Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IHZhcigtLXRsLXJhZGl1cy00KTtcblx0Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IHZhcigtLXRsLXJhZGl1cy00KTtcblx0bWFyZ2luLXRvcDogOHB4O1xuXHRtYXJnaW4tbGVmdDogLTJweDtcblx0bWFyZ2luLWJvdHRvbTogMHB4O1xuXHR3aWR0aDogZml0LWNvbnRlbnQ7XG59XG5cbi50bHVpLW1haW4tdG9vbGJhcl9fdG9vbHMge1xuXHRib3JkZXItcmFkaXVzOiB2YXIoLS10bC1yYWRpdXMtNCk7XG5cdHotaW5kZXg6IHZhcigtLXRsLWxheWVyLXBhbmVscyk7XG5cdHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0YmFja2dyb3VuZDogdmFyKC0tdGwtY29sb3ItcGFuZWwpO1xuXHRib3gtc2hhZG93OiB2YXIoLS10bC1zaGFkb3ctMik7XG5cdGNvbnRhaW46IGxheW91dCBzdHlsZSBwYWludDtcbn1cblxuLnRsdWktbWFpbi10b29sYmFyLS1ob3Jpem9udGFsIC50bHVpLW1haW4tdG9vbGJhcl9fbW9iaWxlLXN0eWxlLXBhbmVsIHtcblx0YWxpZ24tc2VsZjogZmxleC1lbmQ7XG59XG4udGx1aS1tYWluLXRvb2xiYXItLXZlcnRpY2FsIC50bHVpLW1haW4tdG9vbGJhcl9fbW9iaWxlLXN0eWxlLXBhbmVsIHtcblx0YWxpZ24tc2VsZjogZmxleC1zdGFydDtcbn1cblxuLnRsdWktbWFpbi10b29sYmFyLS1ob3Jpem9udGFsIC50bHVpLW1haW4tdG9vbGJhcl9fb3ZlcmZsb3cge1xuXHR3aWR0aDogNDBweDtcblx0bWFyZ2luLWxlZnQ6IDJweDtcbn1cbi50bHVpLW1haW4tdG9vbGJhci0tdmVydGljYWwgLnRsdWktbWFpbi10b29sYmFyX19vdmVyZmxvdyB7XG5cdGhlaWdodDogNDBweDtcblx0bWFyZ2luLXRvcDogMnB4O1xufVxuXG4udGx1aS1sYXlvdXRfX21vYmlsZSAudGx1aS1tYWluLXRvb2xiYXItLWhvcml6b250YWwgLnRsdWktbWFpbi10b29sYmFyX19vdmVyZmxvdyB7XG5cdHdpZHRoOiAzMnB4O1xuXHRwYWRkaW5nOiAwcHg7XG59XG5cbi50bHVpLW1haW4tdG9vbGJhci0taG9yaXpvbnRhbCAqW2RhdGEtc3RhdGU9J29wZW4nXTo6YWZ0ZXIge1xuXHRiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMGRlZywgcmdiYSgxNDQsIDE0NCwgMTQ0LCAwKSAwJSwgdmFyKC0tdGwtY29sb3ItbXV0ZWQtMikgMTAwJSk7XG5cdG9wYWNpdHk6IDE7XG59XG4udGx1aS1tYWluLXRvb2xiYXItLXZlcnRpY2FsICpbZGF0YS1zdGF0ZT0nb3BlbiddOjphZnRlciB7XG5cdGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgcmdiYSgxNDQsIDE0NCwgMTQ0LCAwKSAwJSwgdmFyKC0tdGwtY29sb3ItbXV0ZWQtMikgMTAwJSk7XG5cdG9wYWNpdHk6IDE7XG59XG5cbi50bHVpLW1haW4tdG9vbGJhcl9fb3ZlcmZsb3ctY29udGVudCB7XG5cdHRvdWNoLWFjdGlvbjogbm9uZTtcbn1cblxuLnRsdWktbWFpbi10b29sYmFyX190b29scyBbZGF0YS10b29sYmFyLXZpc2libGU9J2ZhbHNlJ10sXG4udGx1aS1tYWluLXRvb2xiYXJfX292ZXJmbG93LWNvbnRlbnQgW2RhdGEtdG9vbGJhci12aXNpYmxlPSdmYWxzZSddIHtcblx0ZGlzcGxheTogbm9uZTtcbn1cblxuLnRsdWktbWFpbi10b29sYmFyX19ncm91cDplbXB0eSB7XG5cdGRpc3BsYXk6IG5vbmU7XG59XG4udGx1aS1yb3cudGx1aS1tYWluLXRvb2xiYXJfX2dyb3VwOm5vdCg6bnRoLWxhc3QtY2hpbGQoLW4gKyAxIG9mIFtkYXRhLXRvb2xiYXItdmlzaWJsZT0ndHJ1ZSddKSkge1xuXHRib3JkZXItcmlnaHQ6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1kaXZpZGVyKTtcblx0bWFyZ2luLXJpZ2h0OiAycHg7XG59XG4udGx1aS1jb2x1bW4udGx1aS1tYWluLXRvb2xiYXJfX2dyb3VwOm5vdChcblx0XHQ6bnRoLWxhc3QtY2hpbGQoLW4gKyAxIG9mIFtkYXRhLXRvb2xiYXItdmlzaWJsZT0ndHJ1ZSddKVxuXHQpIHtcblx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWRpdmlkZXIpO1xuXHRtYXJnaW4tYm90dG9tOiAycHg7XG59XG4udGx1aS1ncmlkLnRsdWktbWFpbi10b29sYmFyX19ncm91cCB7XG5cdGdyaWQtY29sdW1uOiAxIC8gc3BhbiA0O1xufVxuLnRsdWktZ3JpZC50bHVpLW1haW4tdG9vbGJhcl9fZ3JvdXA6bm90KDpudGgtbGFzdC1jaGlsZCgtbiArIDEgb2YgW2RhdGEtdG9vbGJhci12aXNpYmxlPSd0cnVlJ10pKSB7XG5cdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1jb2xvci1kaXZpZGVyKTtcblx0bWFyZ2luLWJvdHRvbTogMnB4O1xufVxuXG5AbWVkaWEgKGhvdmVyOiBob3Zlcikge1xuXHQudGx1aS1tYWluLXRvb2xiYXItLWhvcml6b250YWwgKltkYXRhLXN0YXRlPSdvcGVuJ106bm90KDpob3Zlcik6OmFmdGVyIHtcblx0XHRiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMGRlZywgcmdiYSgxNDQsIDE0NCwgMTQ0LCAwKSAwJSwgdmFyKC0tdGwtY29sb3ItbXV0ZWQtMikgMTAwJSk7XG5cdFx0b3BhY2l0eTogMTtcblx0fVxuXHQudGx1aS1tYWluLXRvb2xiYXItLXZlcnRpY2FsICpbZGF0YS1zdGF0ZT0nb3BlbiddOm5vdCg6aG92ZXIpOjphZnRlciB7XG5cdFx0YmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCByZ2JhKDE0NCwgMTQ0LCAxNDQsIDApIDAlLCB2YXIoLS10bC1jb2xvci1tdXRlZC0yKSAxMDAlKTtcblx0XHRvcGFjaXR5OiAxO1xuXHR9XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0gVG9vbHRpcCAtLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4udGx1aS10b29sdGlwIHtcblx0Zm9udC1zaXplOiAxMnB4O1xuXHRwYWRkaW5nOiAycHggOHB4O1xuXHRib3JkZXItcmFkaXVzOiA0cHg7XG5cdGJhY2tncm91bmQtY29sb3I6IHZhcigtLXRsLWNvbG9yLXRvb2x0aXApO1xuXHRib3gtc2hhZG93OiBub25lO1xuXHRjb2xvcjogdmFyKC0tdGwtY29sb3ItdGV4dC1zaGFkb3cpO1xuXHRtYXgtd2lkdGg6IDQwMHB4O1xuXHR3aWR0aDogZml0LWNvbnRlbnQ7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0d2lsbC1jaGFuZ2U6IHRyYW5zZm9ybSwgb3BhY2l0eTtcblx0ei1pbmRleDogMjtcbn1cblxuLnRsdWktdG9vbHRpcF9fYXJyb3cge1xuXHRmaWxsOiB2YXIoLS10bC1jb2xvci10b29sdGlwKTtcblx0d2lsbC1jaGFuZ2U6IG9wYWNpdHk7XG59XG5cbltkYXRhLXJhZGl4LXBvcHBlci1jb250ZW50LXdyYXBwZXJdOmhhcygudGx1aS10b29sdGlwKSB7XG5cdHotaW5kZXg6IHZhcigtLXRsLWxheWVyLXRvYXN0cykgIWltcG9ydGFudDtcblx0cG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0gRGVidWcgcGFuZWwgLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi50bHVpLWRlYnVnLXBhbmVsIHtcblx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdGwtY29sb3ItbG93KTtcblx0d2lkdGg6IDEwMCU7XG5cdGRpc3BsYXk6IGdyaWQ7XG5cdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIGF1dG8gYXV0byBhdXRvO1xuXHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5cdHBhZGRpbmctbGVmdDogdmFyKC0tdGwtc3BhY2UtNCk7XG5cdGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS10bC1jb2xvci1iYWNrZ3JvdW5kKTtcblx0Zm9udC1zaXplOiAxMnB4O1xuXHRjb2xvcjogdmFyKC0tdGwtY29sb3ItdGV4dC0xKTtcblx0ei1pbmRleDogdmFyKC0tdGwtbGF5ZXItcGFuZWxzKTtcblx0cG9pbnRlci1ldmVudHM6IGFsbDtcbn1cblxuLnRsdWktZGVidWctcGFuZWxfX2N1cnJlbnQtc3RhdGUge1xuXHRvdmVyZmxvdzogaGlkZGVuO1xuXHR3aGl0ZS1zcGFjZTogbm93cmFwO1xuXHR0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbn1cblxuLnRsdWktZGVidWctcGFuZWxfX2ZwcyB7XG5cdG1hcmdpbi1yaWdodDogOHB4O1xufVxuXG4udGx1aS1kZWJ1Zy1wYW5lbF9fZnBzX19zbG93IHtcblx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdGNvbG9yOiB2YXIoLS10bC1jb2xvci1kYW5nZXIpO1xufVxuXG4udGx1aS1hMTF5LWF1ZGl0IHtcblx0Ym9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbn1cblxuLnRsdWktYTExeS1hdWRpdCB0aCxcbi50bHVpLWExMXktYXVkaXQgdGQge1xuXHRwYWRkaW5nOiA4cHg7XG5cdGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXRsLWNvbG9yLWxvdy1ib3JkZXIpO1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0gVG9hc3RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4udGx1aS10b2FzdF9fdmlld3BvcnQge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdGluc2V0OiAwcHg7XG5cdG1hcmdpbjogMHB4O1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRhbGlnbi1pdGVtczogZmxleC1lbmQ7XG5cdGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cdGdhcDogdmFyKC0tdGwtc3BhY2UtMyk7XG5cdHBvaW50ZXItZXZlbnRzOiBub25lO1xuXHRwYWRkaW5nOiAwcHggdmFyKC0tdGwtc3BhY2UtMykgNjRweCAwcHg7XG5cdHotaW5kZXg6IHZhcigtLXRsLWxheWVyLXRvYXN0cyk7XG59XG5cbi50bHVpLXRvYXN0X192aWV3cG9ydCA+ICoge1xuXHRwb2ludGVyLWV2ZW50czogYWxsO1xufVxuXG4udGx1aS10b2FzdF9faWNvbiB7XG5cdHBhZGRpbmctdG9wOiAxMXB4O1xuXHRwYWRkaW5nLWxlZnQ6IHZhcigtLXRsLXNwYWNlLTQpO1xuXHRjb2xvcjogdmFyKC0tdGwtY29sb3ItdGV4dC0xKTtcbn1cblxuLnRsdWktdG9hc3RfX2NvbnRhaW5lciB7XG5cdG1pbi13aWR0aDogMjAwcHg7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cdGJhY2tncm91bmQtY29sb3I6IHZhcigtLXRsLWNvbG9yLXBhbmVsKTtcblx0Ym94LXNoYWRvdzogdmFyKC0tdGwtc2hhZG93LTIpO1xuXHRib3JkZXItcmFkaXVzOiB2YXIoLS10bC1yYWRpdXMtMyk7XG5cdGZvbnQtc2l6ZTogMTJweDtcbn1cblxuLnRsdWktdG9hc3RfX2NvbnRhaW5lcltkYXRhLXNldmVyaXR5PSdzdWNjZXNzJ10gLnRsdWktaWNvbiB7XG5cdGNvbG9yOiB2YXIoLS10bC1jb2xvci1zdWNjZXNzKTtcbn1cblxuLnRsdWktdG9hc3RfX2NvbnRhaW5lcltkYXRhLXNldmVyaXR5PSdpbmZvJ10gLnRsdWktaWNvbiB7XG5cdGNvbG9yOiB2YXIoLS10bC1jb2xvci1pbmZvKTtcbn1cblxuLnRsdWktdG9hc3RfX2NvbnRhaW5lcltkYXRhLXNldmVyaXR5PSd3YXJuaW5nJ10gLnRsdWktaWNvbiB7XG5cdGNvbG9yOiB2YXIoLS10bC1jb2xvci13YXJuaW5nKTtcbn1cblxuLnRsdWktdG9hc3RfX2NvbnRhaW5lcltkYXRhLXNldmVyaXR5PSdlcnJvciddIC50bHVpLWljb24ge1xuXHRjb2xvcjogdmFyKC0tdGwtY29sb3ItZGFuZ2VyKTtcbn1cblxuLnRsdWktdG9hc3RfX21haW4ge1xuXHRmbGV4LWdyb3c6IDI7XG5cdG1heC13aWR0aDogMjgwcHg7XG59XG5cbi50bHVpLXRvYXN0X19jb250ZW50IHtcblx0cGFkZGluZzogdmFyKC0tdGwtc3BhY2UtNCk7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGxpbmUtaGVpZ2h0OiAxLjQ7XG5cdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cdGdhcDogdmFyKC0tdGwtc3BhY2UtMyk7XG59XG5cbi50bHVpLXRvYXN0X19tYWluW2RhdGEtYWN0aW9ucz0ndHJ1ZSddIC50bHVpLXRvYXN0X19jb250ZW50IHtcblx0cGFkZGluZy1ib3R0b206IHZhcigtLXRsLXNwYWNlLTIpO1xufVxuXG4udGx1aS10b2FzdF9fdGl0bGUge1xuXHRmb250LXdlaWdodDogYm9sZDtcblx0Y29sb3I6IHZhcigtLXRsLWNvbG9yLXRleHQtMSk7XG5cdC8qIHRoaXMgbWFrZXMgdGhlIGRlZmF1bHQgdG9hc3QgbG9vayBiZXR0ZXIgKi9cblx0bGluZS1oZWlnaHQ6IDE2cHg7XG59XG5cbi50bHVpLXRvYXN0X19kZXNjcmlwdGlvbiB7XG5cdGNvbG9yOiB2YXIoLS10bC1jb2xvci10ZXh0LTEpO1xuXHRwYWRkaW5nOiB2YXIoLS10bC1zcGFjZS0zKTtcblx0bWFyZ2luOiAwcHg7XG5cdHBhZGRpbmc6IDBweDtcbn1cblxuLnRsdWktdG9hc3RfX2ljb24gKyAudGx1aS10b2FzdF9fbWFpbiA+IC50bHVpLXRvYXN0X19hY3Rpb25zIHtcblx0cGFkZGluZy1sZWZ0OiAwcHg7XG59XG5cbi50bHVpLXRvYXN0X19hY3Rpb25zIHtcblx0ZGlzcGxheTogZmxleDtcblx0ZmxleC1kaXJlY3Rpb246IHJvdztcblx0anVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuXHRtYXJnaW4tbGVmdDogMDtcbn1cblxuLnRsdWktdG9hc3RfX2Nsb3NlIHtcblx0YWxpZ24tc2VsZjogZmxleC1lbmQ7XG5cdGZsZXgtc2hyaW5rOiAwO1xufVxuXG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IG5vLXByZWZlcmVuY2UpIHtcblx0LnRsdWktdG9hc3RfX2NvbnRhaW5lcltkYXRhLXN0YXRlPSdvcGVuJ10ge1xuXHRcdGFuaW1hdGlvbjogdGx1aS1zbGlkZS1pbiAyMDBtcyBjdWJpYy1iZXppZXIoMC43ODUsIDAuMTM1LCAwLjE1LCAwLjg2KTtcblx0fVxuXG5cdC50bHVpLXRvYXN0X19jb250YWluZXJbZGF0YS1zdGF0ZT0nY2xvc2VkJ10ge1xuXHRcdGFuaW1hdGlvbjogdGx1aS1mYWRlLW91dCAxMDBtcyBlYXNlLWluO1xuXHR9XG5cblx0LnRsdWktdG9hc3RfX2NvbnRhaW5lcltkYXRhLXN3aXBlPSdtb3ZlJ10ge1xuXHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWCh2YXIoLS1yYWRpeC10b2FzdC1zd2lwZS1tb3ZlLXgpKTtcblx0fVxuXG5cdC50bHVpLXRvYXN0X19jb250YWluZXJbZGF0YS1zd2lwZT0nY2FuY2VsJ10ge1xuXHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcblx0XHR0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMjAwbXMgZWFzZS1vdXQ7XG5cdH1cblxuXHQudGx1aS10b2FzdF9fY29udGFpbmVyW2RhdGEtc3dpcGU9J2VuZCddIHtcblx0XHRhbmltYXRpb246IHRsdWktc2xpZGUtb3V0IDEwMG1zIGVhc2Utb3V0O1xuXHR9XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0gRGlhbG9nIC0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLnRsdWktZGlhbG9nX19vdmVybGF5IHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR0b3A6IDBweDtcblx0bGVmdDogMHB4O1xuXHR3aWR0aDogMTAwJTtcblx0aGVpZ2h0OiAxMDAlO1xuXHR6LWluZGV4OiB2YXIoLS10bC1sYXllci1jYW52YXMtb3ZlcmxheXMpO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS10bC1jb2xvci1vdmVybGF5KTtcblx0cG9pbnRlci1ldmVudHM6IGFsbDtcblx0YW5pbWF0aW9uOiB0bC1mYWRlLWluIDAuMTJzIGVhc2Utb3V0O1xuXHRkaXNwbGF5OiBncmlkO1xuXHRwbGFjZS1pdGVtczogY2VudGVyO1xuXHRvdmVyZmxvdy15OiBhdXRvO1xuXHRwYWRkaW5nOiAwcHggdmFyKC0tdGwtc3BhY2UtMyk7XG59XG5cbi50bHVpLWRpYWxvZ19fY29udGVudCB7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0Y3Vyc29yOiBkZWZhdWx0O1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS10bC1jb2xvci1wYW5lbCk7XG5cdGJveC1zaGFkb3c6IHZhcigtLXRsLXNoYWRvdy0zKTtcblx0Ym9yZGVyLXJhZGl1czogdmFyKC0tdGwtcmFkaXVzLTMpO1xuXHRmb250LXNpemU6IDEycHg7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdG1pbi13aWR0aDogMzAwcHg7XG5cdG1heC13aWR0aDogMTAwJTtcblx0bWF4LWhlaWdodDogODAlO1xufVxuXG4udGx1aS1kaWFsb2dfX2hlYWRlciB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0ZGlzcGxheTogZmxleDtcblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0ZmxleDogMDtcblx0ei1pbmRleDogdmFyKC0tdGwtbGF5ZXItaGVhZGVyLWZvb3Rlcik7XG5cdHBhZGRpbmctbGVmdDogdmFyKC0tdGwtc3BhY2UtNCk7XG5cdGNvbG9yOiB2YXIoLS10bC1jb2xvci10ZXh0KTtcblx0aGVpZ2h0OiA0MHB4O1xufVxuXG4udGx1aS1kaWFsb2dfX2hlYWRlcl9fdGl0bGUge1xuXHRmbGV4OiAxO1xuXHRmb250LXdlaWdodDogaW5oZXJpdDtcblx0Zm9udC1zaXplOiAxMnB4O1xuXHRtYXJnaW46IDBweDtcblx0Y29sb3I6IHZhcigtLXRsLWNvbG9yLXRleHQtMSk7XG59XG5cbi50bHVpLWRpYWxvZ19faGVhZGVyX19jbG9zZSB7XG5cdGp1c3RpZnktc2VsZjogZmxleC1lbmQ7XG59XG5cbi50bHVpLWRpYWxvZ19fYm9keSB7XG5cdHBhZGRpbmc6IHZhcigtLXRsLXNwYWNlLTQpIHZhcigtLXRsLXNwYWNlLTQpO1xuXHRmbGV4OiAwIDE7XG5cdG92ZXJmbG93LXk6IGF1dG87XG5cdG92ZXJmbG93LXg6IGhpZGRlbjtcblx0Y29sb3I6IHZhcigtLXRsLWNvbG9yLXRleHQtMSk7XG5cdHVzZXItc2VsZWN0OiBhbGw7XG5cdC13ZWJraXQtdXNlci1zZWxlY3Q6IHRleHQ7XG59XG4udGx1aS1kaWFsb2dfX2JvZHkgYSB7XG5cdGNvbG9yOiB2YXIoLS10bC1jb2xvci1zZWxlY3RlZCk7XG59XG5cbi50bHVpLWRpYWxvZ19fYm9keSB1bCxcbi50bHVpLWRpYWxvZ19fYm9keSBvbCB7XG5cdHBhZGRpbmctbGVmdDogMTZweDtcblx0ZGlzcGxheTogZmxleDtcblx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblx0Z2FwOiB2YXIoLS10bC1zcGFjZS0yKTtcbn1cblxuLnRsdWktZGlhbG9nX19mb290ZXIge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdG1pbi1oZWlnaHQ6IDEycHg7XG5cdHotaW5kZXg6IHZhcigtLXRsLWxheWVyLWhlYWRlci1mb290ZXIpO1xufVxuXG4udGx1aS1kaWFsb2dfX2Zvb3Rlcl9fYWN0aW9ucyB7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG59XG5cbi50bHVpLWRpYWxvZ19fZm9vdGVyX19hY3Rpb25zID4gLnRsdWktYnV0dG9uOm50aC1sYXN0LWNoaWxkKG4gKyAyKSB7XG5cdG1hcmdpbi1yaWdodDogLTRweDtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tIERpYWxvZ3MgLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLyogRWRpdCBMaW5rIERpYWxvZyAqL1xuXG4udGx1aS1lZGl0LWxpbmstZGlhbG9nIHtcblx0ZGlzcGxheTogZmxleDtcblx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblx0Z2FwOiB2YXIoLS10bC1zcGFjZS00KTtcblx0Y29sb3I6IHZhcigtLXRsLWNvbG9yLXRleHQpO1xufVxuXG4udGx1aS1lZGl0LWxpbmstZGlhbG9nX19pbnB1dCB7XG5cdGJhY2tncm91bmQtY29sb3I6IHZhcigtLXRsLWNvbG9yLW11dGVkLTIpO1xuXHRmbGV4LWdyb3c6IDI7XG5cdGJvcmRlci1yYWRpdXM6IHZhcigtLXRsLXJhZGl1cy0yKTtcblx0cGFkZGluZzogMHB4IHZhcigtLXRsLXNwYWNlLTQpO1xufVxuXG4vKiBFbWJlZCBEaWFsb2cgKi9cblxuLnRsdWktZW1iZWRfX3NwYWNlciB7XG5cdGZsZXgtZ3JvdzogMjtcblx0bWluLWhlaWdodDogMHB4O1xuXHRtYXJnaW4tbGVmdDogY2FsYygtMSAqIHZhcigtLXRsLXNwYWNlLTQpKTtcblx0bWFyZ2luLXRvcDogY2FsYygtMSAqIHZhcigtLXRsLXNwYWNlLTQpKTtcblx0cG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi50bHVpLWVtYmVkLWRpYWxvZ19fbGlzdCB7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cdHBhZGRpbmc6IDBweCB2YXIoLS10bC1zcGFjZS0zKSB2YXIoLS10bC1zcGFjZS00KSB2YXIoLS10bC1zcGFjZS0zKTtcbn1cblxuLnRsdWktZW1iZWQtZGlhbG9nX19pdGVtX19pbWFnZSB7XG5cdHdpZHRoOiAyNHB4O1xuXHRoZWlnaHQ6IDI0cHg7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXHRiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG5cdGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG5cdGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7XG5cdGJhY2tncm91bmQtY29sb3I6IHZhcigtLXRsLWNvbG9yLXNlbGVjdGVkLWNvbnRyYXN0KTtcblx0Ym9yZGVyLXJhZGl1czogdmFyKC0tdGwtcmFkaXVzLTEpO1xufVxuXG4udGx1aS1lbWJlZC1kaWFsb2dfX2VudGVyIHtcblx0ZGlzcGxheTogZmxleDtcblx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblx0Z2FwOiB2YXIoLS10bC1zcGFjZS00KTtcblx0Y29sb3I6IHZhcigtLXRsLWNvbG9yLXRleHQtMSk7XG59XG5cbi50bHVpLWVtYmVkLWRpYWxvZ19faW5wdXQge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS10bC1jb2xvci1tdXRlZC0yKTtcblx0ZmxleC1ncm93OiAyO1xuXHRib3JkZXItcmFkaXVzOiB2YXIoLS10bC1yYWRpdXMtMik7XG5cdHBhZGRpbmc6IDBweCB2YXIoLS10bC1zcGFjZS00KTtcbn1cblxuLnRsdWktZW1iZWQtZGlhbG9nX193YXJuaW5nIHtcblx0Y29sb3I6IHZhcigtLXRsLWNvbG9yLWRhbmdlcik7XG5cdHRleHQtc2hhZG93OiBub25lO1xufVxuXG4udGx1aS1lbWJlZC1kaWFsb2dfX2luc3RydWN0aW9uX19saW5rIHtcblx0ZGlzcGxheTogZmxleDtcblx0Z2FwOiB2YXIoLS10bC1zcGFjZS0xKTtcblx0bWFyZ2luLXRvcDogdmFyKC0tdGwtc3BhY2UtNCk7XG59XG5cbi50bHVpLWVtYmVkLWRpYWxvZ19fZW50ZXIgYSB7XG5cdGNvbG9yOiB2YXIoLS10bC1jb2xvci10ZXh0LTEpO1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0gS2V5Ym9hcmQgc2hvcnRjdXRzIC0tLS0tLS0tLS0tLS0tLSAqL1xuXG4udGx1aS1zaG9ydGN1dHMtZGlhbG9nX19oZWFkZXIge1xuXHRib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tdGwtY29sb3ItZGl2aWRlcik7XG59XG5cbi50bHVpLXNob3J0Y3V0cy1kaWFsb2dfX2JvZHkge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdGNvbHVtbnM6IDM7XG5cdGNvbHVtbi1nYXA6IHZhcigtLXRsLXNwYWNlLTkpO1xuXHRwb2ludGVyLWV2ZW50czogYWxsO1xuXHR0b3VjaC1hY3Rpb246IGF1dG87XG5cblx0LyogVGVycmlibGUgZml4IHRvIGFsbG93IGZpcmVmb3ggdXNlcnMgdG8gc2Nyb2xsIHRoZSBkaWFsb2cgKi9cblx0b3ZlcmZsb3cteDogYXV0bztcbn1cblxuLnRsdWktc2hvcnRjdXRzLWRpYWxvZ19fYm9keV9fdGFibGV0IHtcblx0Y29sdW1uczogMjtcbn1cblxuLnRsdWktc2hvcnRjdXRzLWRpYWxvZ19fYm9keV9fbW9iaWxlIHtcblx0Y29sdW1uczogMTtcbn1cblxuLnRsdWktc2hvcnRjdXRzLWRpYWxvZ19fZ3JvdXAge1xuXHRicmVhay1pbnNpZGU6IGF2b2lkLWNvbHVtbjtcblx0cGFkZGluZy1ib3R0b206IHZhcigtLXRsLXNwYWNlLTYpO1xufVxuXG4udGx1aS1zaG9ydGN1dHMtZGlhbG9nX19ncm91cF9fdGl0bGUge1xuXHRmb250LXNpemU6IGluaGVyaXQ7XG5cdGZvbnQtd2VpZ2h0OiBpbmhlcml0O1xuXHRtYXJnaW46IDBweDtcblx0Y29sb3I6IHZhcigtLXRsLWNvbG9yLXRleHQtMyk7XG5cdGhlaWdodDogMzJweDtcblx0ZGlzcGxheTogZmxleDtcblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuLnRsdWktc2hvcnRjdXRzLWRpYWxvZ19fZ3JvdXBfX2NvbnRlbnQge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXHRjb2xvcjogdmFyKC0tdGwtY29sb3ItdGV4dC0xKTtcbn1cblxuLnRsdWktc2hvcnRjdXRzLWRpYWxvZ19fa2V5LXBhaXIge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRnYXA6IHZhcigtLXRsLXNwYWNlLTQpO1xuXHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5cdGhlaWdodDogMzJweDtcbn1cblxuLnRsdWktc2hvcnRjdXRzLWRpYWxvZ19fa2V5LXBhaXJfX2tleSB7XG5cdGZsZXg6IDE7XG5cdGZvbnQtc2l6ZTogMTJweDtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tIExhbmd1YWdlIG1lbnUgLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLnRsdWktbGFuZ3VhZ2UtbWVudSB7XG5cdG1heC1oZWlnaHQ6IDUwMHB4O1xufVxuXG4udGx1aS1sYW5ndWFnZS1tZW51OjphZnRlciB7XG5cdGNvbnRlbnQ6ICcnO1xuXHRkaXNwbGF5OiBibG9jaztcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRib3R0b206IDBweDtcblx0bGVmdDogMHB4O1xuXHRyaWdodDogMHB4O1xuXHRoZWlnaHQ6IDI0cHg7XG5cdGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcblx0XHR0byBib3R0b20sXG5cdFx0dmFyKC0tdGwtY29sb3ItcGFuZWwtdHJhbnNwYXJlbnQpIDAlLFxuXHRcdHZhcigtLXRsLWNvbG9yLXBhbmVsKSA5MCUsXG5cdFx0dmFyKC0tdGwtY29sb3ItcGFuZWwpIDEwMCVcblx0KTtcblx0Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogdmFyKC0tdGwtcmFkaXVzLTMpO1xuXHRib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogdmFyKC0tdGwtcmFkaXVzLTMpO1xuXHRwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tIEFjdGlvbnMgbWVudSAtLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLnRsdWktYWN0aW9ucy1tZW51IHtcblx0bWF4LWhlaWdodDogY2FsYygxMDB2aCAtIDE1MHB4KTtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0gSGVscCBtZW51IC0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLnRsdWktaGVscC1tZW51IHtcblx0cG9pbnRlci1ldmVudHM6IGFsbDtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRib3R0b206IHZhcigtLXRsLXNwYWNlLTIpO1xuXHRyaWdodDogdmFyKC0tdGwtc3BhY2UtMik7XG5cdHotaW5kZXg6IHZhcigtLXRsLWxheWVyLXBhbmVscyk7XG5cdGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLXRsLWNvbG9yLWJhY2tncm91bmQpO1xuXHRib3JkZXItcmFkaXVzOiAxMDAlO1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tIERhIHNoYXJlIHpvbmUgLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi50bHVpLXNoYXJlLXpvbmUge1xuXHRwYWRkaW5nOiAwcHggMHB4IDBweCAwcHg7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cdGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cdHotaW5kZXg6IHZhcigtLXRsLWxheWVyLXBhbmVscyk7XG5cdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdHBhZGRpbmctdG9wOiAycHg7XG5cdHBhZGRpbmctcmlnaHQ6IDRweDtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLSBQZW9wbGUgTWVudSAtLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi50bHVpLXBlb3BsZS1tZW51X19hdmF0YXJzLWJ1dHRvbiB7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cdGJhY2tncm91bmQ6IG5vbmU7XG5cdGJvcmRlcjogbm9uZTtcblx0Y3Vyc29yOiBwb2ludGVyO1xuXHRwb2ludGVyLWV2ZW50czogYWxsO1xuXHRib3JkZXItcmFkaXVzOiB2YXIoLS10bC1yYWRpdXMtMSk7XG5cdHBhZGRpbmctcmlnaHQ6IDFweDtcblx0aGVpZ2h0OiAxMDAlO1xufVxuXG4udGx1aS1wZW9wbGUtbWVudV9fYXZhdGFycyB7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGZsZXgtZGlyZWN0aW9uOiByb3c7XG59XG5cbi50bHVpLXBlb3BsZS1tZW51X19hdmF0YXIge1xuXHRoZWlnaHQ6IDI0cHg7XG5cdHdpZHRoOiAyNHB4O1xuXHRib3JkZXI6IDJweCBzb2xpZCB2YXIoLS10bC1jb2xvci1iYWNrZ3JvdW5kKTtcblx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdGwtY29sb3ItbG93KTtcblx0Ym9yZGVyLXJhZGl1czogMTAwJTtcblx0ZGlzcGxheTogZmxleDtcblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0Zm9udC1zaXplOiAxMHB4O1xuXHRmb250LXdlaWdodDogYm9sZDtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRjb2xvcjogdmFyKC0tdGwtY29sb3Itc2VsZWN0ZWQtY29udHJhc3QpO1xuXHR6LWluZGV4OiAyO1xufVxuXG4udGx1aS1wZW9wbGUtbWVudV9fYXZhdGFyOm50aC1vZi10eXBlKG4gKyAyKSB7XG5cdG1hcmdpbi1sZWZ0OiAtMTJweDtcbn1cblxuLnRsdWktcGVvcGxlLW1lbnVfX2F2YXRhcnMtYnV0dG9uW2RhdGEtc3RhdGU9J29wZW4nXSB7XG5cdG9wYWNpdHk6IDE7XG59XG5cbkBtZWRpYSAoaG92ZXI6IGhvdmVyKSB7XG5cdC50bHVpLXBlb3BsZS1tZW51X19hdmF0YXJzLWJ1dHRvbjpob3ZlciAudGx1aS1wZW9wbGUtbWVudV9fYXZhdGFyIHtcblx0XHRib3JkZXItY29sb3I6IHZhcigtLXRsLWNvbG9yLWxvdyk7XG5cdH1cbn1cblxuLnRsdWktcGVvcGxlLW1lbnVfX21vcmUge1xuXHRtaW4td2lkdGg6IDBweDtcblx0Zm9udC1zaXplOiAxMXB4O1xuXHRmb250LXdlaWdodDogNjAwO1xuXHRjb2xvcjogdmFyKC0tdGwtY29sb3ItdGV4dC0xKTtcblx0Zm9udC1mYW1pbHk6IGluaGVyaXQ7XG5cdHBhZGRpbmc6IDBweCA0cHg7XG59XG4udGx1aS1wZW9wbGUtbWVudV9fbW9yZTo6YWZ0ZXIge1xuXHRib3JkZXItcmFkaXVzOiB2YXIoLS10bC1yYWRpdXMtMik7XG5cdGluc2V0OiAwcHg7XG59XG5cbi50bHVpLXBlb3BsZS1tZW51X193cmFwcGVyIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXHR3aWR0aDogMjIwcHg7XG5cdGhlaWdodDogZml0LWNvbnRlbnQ7XG5cdG1heC1oZWlnaHQ6IDUwdmg7XG59XG5cbi50bHVpLXBlb3BsZS1tZW51X19zZWN0aW9uIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR0b3VjaC1hY3Rpb246IGF1dG87XG5cdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cdG1heC1oZWlnaHQ6IDEwMCU7XG5cdG92ZXJmbG93LXg6IGhpZGRlbjtcblx0b3ZlcmZsb3cteTogYXV0bztcblx0dG91Y2gtYWN0aW9uOiBhdXRvO1xufVxuXG4udGx1aS1wZW9wbGUtbWVudV9fc2VjdGlvbjpmaXJzdC1jaGlsZCxcbi50bHVpLXBlb3BsZS1tZW51X19zZWN0aW9uOmxhc3QtY2hpbGQge1xuXHRmbGV4LXNocmluazogMDtcbn1cblxuLnRsdWktcGVvcGxlLW1lbnVfX3NlY3Rpb246bm90KDpsYXN0LWNoaWxkKSB7XG5cdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS10bC1jb2xvci1kaXZpZGVyKTtcbn1cblxuLnRsdWktcGVvcGxlLW1lbnVfX3VzZXIge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG5cdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi50bHVpLXBlb3BsZS1tZW51X191c2VyX19jb2xvciB7XG5cdGZsZXgtc2hyaW5rOiAwO1xufVxuXG4udGx1aS1wZW9wbGUtbWVudV9fdXNlcl9fbmFtZSB7XG5cdHRleHQtYWxpZ246IGxlZnQ7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuXHR3aGl0ZS1zcGFjZTogbm93cmFwO1xuXHRmb250LXNpemU6IDEycHg7XG5cdGNvbG9yOiB2YXIoLS10bC1jb2xvci10ZXh0LTEpO1xuXHRtYXgtd2lkdGg6IDEwMCU7XG5cdGZsZXgtZ3JvdzogMTtcblx0ZmxleC1zaHJpbms6IDEwMDtcbn1cblxuLnRsdWktcGVvcGxlLW1lbnVfX3VzZXJfX2xhYmVsIHtcblx0dGV4dC1hbGlnbjogbGVmdDtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0dGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5cdHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cdGZvbnQtc2l6ZTogMTJweDtcblx0Y29sb3I6IHZhcigtLXRsLWNvbG9yLXRleHQtMyk7XG5cdGZsZXgtZ3JvdzogMTAwO1xuXHRmbGV4LXNocmluazogMDtcblx0bWFyZ2luLWxlZnQ6IDRweDtcbn1cblxuLnRsdWktcGVvcGxlLW1lbnVfX3VzZXJfX2lucHV0IHtcblx0ZmxleC1ncm93OiAyO1xuXHRoZWlnaHQ6IDEwMCU7XG5cdHBhZGRpbmc6IDBweDtcblx0bWFyZ2luOiAwcHg7XG59XG5cbi50bHVpLXBlb3BsZS1tZW51X191c2VyID4gLnRsdWktaW5wdXRfX3dyYXBwZXIge1xuXHR3aWR0aDogYXV0bztcblx0ZGlzcGxheTogZmxleDtcblx0YWxpZ24taXRlbXM6IGF1dG87XG5cdGZsZXgtZ3JvdzogMjtcblx0Z2FwOiA4cHg7XG5cdGhlaWdodDogMTAwJTtcblx0cGFkZGluZzogMHB4O1xufVxuXG4udGx1aS1wZW9wbGUtbWVudV9faXRlbSB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLnRsdWktcGVvcGxlLW1lbnVfX2l0ZW06bGFzdC1vZi10eXBlIC50bHVpLWJ1dHRvbl9fbWVudSB7XG5cdG1hcmdpbi1ib3R0b206IDA7XG59XG5cbi50bHVpLXBlb3BsZS1tZW51X19pdGVtX19idXR0b24ge1xuXHRwYWRkaW5nOiAwIDExcHg7XG5cdG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi50bHVpLXBlb3BsZS1tZW51X19pdGVtID4gLnRsdWktYnV0dG9uX19tZW51IHtcblx0d2lkdGg6IGF1dG87XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGFsaWduLWl0ZW1zOiBhdXRvO1xuXHRqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG5cdGZsZXgtZ3JvdzogMjtcblx0Z2FwOiAxMXB4O1xufVxuXG4udGx1aS1wZW9wbGUtbWVudV9fbmFtZSB7XG5cdHRleHQtYWxpZ246IGxlZnQ7XG5cdHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xufVxuXG4udGx1aS1wZW9wbGUtbWVudV9faXRlbV9fZm9sbG93IHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR0b3A6IDBweDtcblx0cmlnaHQ6IDBweDtcblx0bWF4LXdpZHRoOiA0MHB4O1xuXHRmbGV4LXNocmluazogMDtcbn1cblxuLnRsdWktcGVvcGxlLW1lbnVfX2l0ZW1bZGF0YS1mb2xsb3c9J3RydWUnXSxcbi50bHVpLXBlb3BsZS1tZW51X19pdGVtOmhhcygudGx1aS1idXR0b246Zm9jdXMtdmlzaWJsZSkge1xuXHRwYWRkaW5nLXJpZ2h0OiAzNnB4O1xufVxuXG4udGx1aS1wZW9wbGUtbWVudV9faXRlbVtkYXRhLWZvbGxvdz0ndHJ1ZSddIC50bHVpLXBlb3BsZS1tZW51X19pdGVtX19mb2xsb3csXG4udGx1aS1wZW9wbGUtbWVudV9faXRlbTpoYXMoLnRsdWktYnV0dG9uOmZvY3VzLXZpc2libGUpIC50bHVpLXBlb3BsZS1tZW51X19pdGVtX19mb2xsb3cge1xuXHRvcGFjaXR5OiAxO1xufVxuXG5AbWVkaWEgKGhvdmVyOiBob3Zlcikge1xuXHQudGx1aS1wZW9wbGUtbWVudV9faXRlbV9fZm9sbG93IHtcblx0XHRvcGFjaXR5OiAwO1xuXHR9XG5cblx0LnRsdWktcGVvcGxlLW1lbnVfX2l0ZW06aG92ZXIge1xuXHRcdHBhZGRpbmctcmlnaHQ6IDM2cHg7XG5cdH1cblx0LnRsdWktcGVvcGxlLW1lbnVfX2l0ZW06aG92ZXIgLnRsdWktcGVvcGxlLW1lbnVfX2l0ZW1fX2ZvbGxvdyB7XG5cdFx0b3BhY2l0eTogMTtcblx0fVxufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0gRm9sbG93aW5nIGluZGljYXRvciAtLS0tLS0tLS0tLS0tLSAqL1xuXG4udGx1aS1mb2xsb3dpbmctaW5kaWNhdG9yIHtcblx0ZGlzcGxheTogYmxvY2s7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0aW5zZXQ6IDBweDtcblx0Ym9yZGVyLXdpZHRoOiAycHg7XG5cdGJvcmRlci1zdHlsZTogc29saWQ7XG5cdHotaW5kZXg6IHZhcigtLXRsLWxheWVyLWZvbGxvd2luZy1pbmRpY2F0b3IpO1xuXHRwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tIENvbnRleHR1YWwgdG9vbGJhciAtLS0tLS0tLS0tLS0tLS0gKi9cblxuLnRsdWktY29udGV4dHVhbC10b29sYmFyIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xufVxuXG4vKipcbiAqIE4uQi4gV2UgaGlkZSB0aGUgdG9vbGJhciB3aGlsZSBtb3VzaW5nIGRvd24sIHNvIG5vIG5lZWQgdG8gdHVybiB0aGVzZSBvZmYuXG4gKi9cbi50bHVpLWNvbnRleHR1YWwtdG9vbGJhcixcbi50bHVpLWNvbnRleHR1YWwtdG9vbGJhciAqIHtcblx0cG9pbnRlci1ldmVudHM6IGFsbDtcbn1cblxuLnRsdWktY29udGV4dHVhbC10b29sYmFyIFtkYXRhLWlzYWN0aXZlPSd0cnVlJ106OmFmdGVyIHtcblx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdGwtY29sb3ItbXV0ZWQtMik7XG5cdG9wYWNpdHk6IDE7XG59XG5cbi50bHVpLWNvbnRleHR1YWwtdG9vbGJhciB7XG5cdG9wYWNpdHk6IDA7XG5cdHRyYW5zaXRpb246IG9wYWNpdHkgMC4wOHMgZWFzZS1pbi1vdXQ7XG59XG5cbi50bHVpLWNvbnRleHR1YWwtdG9vbGJhcixcbi50bHVpLWNvbnRleHR1YWwtdG9vbGJhciAqIHtcblx0cG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi50bHVpLWNvbnRleHR1YWwtdG9vbGJhcltkYXRhLXZpc2libGU9J3RydWUnXSB7XG5cdG9wYWNpdHk6IDE7XG5cdHotaW5kZXg6IHZhcigtLXRsLWxheWVyLW1lbnVzKTtcbn1cblxuLnRsdWktY29udGV4dHVhbC10b29sYmFyW2RhdGEtaW50ZXJhY3RpdmU9J3RydWUnXSxcbi50bHVpLWNvbnRleHR1YWwtdG9vbGJhcltkYXRhLWludGVyYWN0aXZlPSd0cnVlJ10gKiB7XG5cdHBvaW50ZXItZXZlbnRzOiBhbGw7XG59XG5cbi50bHVpLXJpY2gtdGV4dF9fdG9vbGJhci1saW5rLWlucHV0IHtcblx0bWFyZ2luLWxlZnQ6IDEycHg7XG5cdC8qXG5cdCAqIE5pY2UgdG91Y2ggdHdlYWs6IGtlZXAgdGhlIGxpbmsgZWRpdG9yIHRvb2xiYXIgdGhlIHNhbWUgYXMgdGhlIGRlZmF1bHQgdG9vbGJhci5cblx0ICogVGhpcyBpcyBzbyB0aGUgdG9vbGJhciBzaXplIHN0YXlzIHN0YWJsZSBnb2luZyBpbiBhbmQgb3V0IG9mIHRoZSBsaW5rIGVkaXRvci5cblx0ICovXG5cdHdpZHRoOiAxNDhweDtcbn1cblxuLnRsdWktbWVkaWFfX3Rvb2xiYXItYWx0LXRleHQtaW5wdXQge1xuXHRtYXJnaW4tbGVmdDogMTJweDtcblx0Lypcblx0ICogTmljZSB0b3VjaCB0d2Vhazoga2VlcCB0aGUgbGluayBlZGl0b3IgdG9vbGJhciB0aGUgc2FtZSBhcyB0aGUgZGVmYXVsdCB0b29sYmFyLlxuXHQgKiBUaGlzIGlzIHNvIHRoZSB0b29sYmFyIHNpemUgc3RheXMgc3RhYmxlIGdvaW5nIGluIGFuZCBvdXQgb2YgdGhlIGFsdCB0ZXh0IGVkaXRvci5cblx0ICovXG5cdG1pbi13aWR0aDogMjAwcHg7XG59XG5cbi50bHVpLWNvbnRleHR1YWwtdG9vbGJhciAudGx1aS1pbnB1dF9fd3JhcHBlciB7XG5cdGhlaWdodDogNDBweDtcbn1cblxuLnRsdWktaW1hZ2VfX3Rvb2xiYXIgLnRsdWktc2xpZGVyX19jb250YWluZXIge1xuXHR3aWR0aDogMTI1cHg7XG59XG5cbi50bHVpLWltYWdlX190b29sYmFyIC50bHVpLXNsaWRlciB7XG5cdGhlaWdodDogMTAwJTtcbn1cblxuLnRsdWktaW1hZ2VfX3Rvb2xiYXIgLnRsdWktc2xpZGVyX190cmFjayB7XG5cdGhlaWdodDogMzJweDtcbn1cblxuLnRsdWktaW1hZ2VfX3Rvb2xiYXIgLnRsdWktc2xpZGVyX190aHVtYiB7XG5cdHdpZHRoOiAxNHB4O1xuXHRoZWlnaHQ6IDE0cHg7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0gQW5pbWF0aW9ucyAtLS0tLS0tLS0tLS0tLS0tLS0tICovXG5Aa2V5ZnJhbWVzIHRsdWktZmFkZS1vdXQge1xuXHQwJSB7XG5cdFx0b3BhY2l0eTogMTtcblx0fVxuXHQxMDAlIHtcblx0XHRvcGFjaXR5OiAwO1xuXHR9XG59XG5cbkBrZXlmcmFtZXMgdGx1aS1zbGlkZS1pbiB7XG5cdGZyb20ge1xuXHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWChjYWxjKDEwMCUgKyB2YXIoLS10bC1zcGFjZS0zKSkpO1xuXHR9XG5cdHRvIHtcblx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMHB4KTtcblx0fVxufVxuXG5Aa2V5ZnJhbWVzIHRsdWktc2xpZGUtb3V0IHtcblx0ZnJvbSB7XG5cdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVYKHZhcigtLXJhZGl4LXRvYXN0LXN3aXBlLWVuZC14KSk7XG5cdH1cblx0dG8ge1xuXHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWChjYWxjKDEwMCUgKyB2YXIoLS10bC1zcGFjZS0zKSkpO1xuXHR9XG59XG5cbiJdLAogICJtYXBwaW5ncyI6ICI7QUFNQTtBQUNDO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBR0E7QUFDQTtBQUlBO0FBSUE7QUFJQTtBQUlBO0FBSUE7QUFJQTtBQUlBO0FBSUE7QUFPQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBRUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBS0Q7QUFFQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLRDtBQUNDO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFHRDtBQUFBO0FBRUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFBQTtBQUdEO0FBQ0M7QUFBQTtBQUdEO0FBQUE7QUFBQTtBQUdDO0FBQUE7QUFLRDtBQUNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFLRDtBQUNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQUE7QUFLRDtBQUNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFBQTtBQUtEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFNRDtBQUNDO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUFBO0FBSUQ7QUFDQztBQUFBO0FBR0Q7QUFDQztBQUFBO0FBR0Q7QUFDQztBQUFBO0FBS0Q7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQUE7QUFLRDtBQUNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUFBO0FBS0Q7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUFBO0FBR0Q7QUFDQztBQUFBO0FBR0Q7QUFDQztBQUFBO0FBR0Q7QUFDQztBQUFBO0FBR0Q7QUFBQTtBQUVDO0FBQUE7QUFHRDtBQUFBO0FBRUM7QUFBQTtBQUdEO0FBQUE7QUFFQztBQUFBO0FBR0Q7QUFDQztBQUFBO0FBR0Q7QUFDQztBQUFBO0FBR0Q7QUFFQztBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQ0E7QUFNQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFBQTtBQUdEO0FBQUE7QUFFQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBS0M7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQUE7QUFLRDtBQUNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUFBO0FBR0Q7QUFBQTtBQUVDO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUFBO0FBVUQ7QUFRQztBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQ0E7QUFTQTtBQUNBO0FBQ0E7QUFBQTtBQXlCRDtBQUNDO0FBRUE7QUFBQTtBQUdEO0FBQUE7QUFFQztBQUNBO0FBQ0E7QUFFQTtBQUFBO0FBR0Q7QUFDQztBQUFBO0FBR0Q7QUFDQztBQUFBO0FBR0Q7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUM7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQ0M7QUFDQztBQUFBO0FBQUE7QUFBQTtBQUtIO0FBQ0M7QUFBQTtBQUdEO0FBQ0M7QUFBQTtBQUdEO0FBQ0M7QUFBQTtBQUtEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFBQTtBQUVFO0FBQUE7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUlGO0FBQ0M7QUFBQTtBQUdEO0FBQUE7QUFFRTtBQUFBO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFNRjtBQUNDO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUFBO0FBS0Q7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBS0Q7QUFDQztBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQUE7QUFLRDtBQUNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFBQTtBQUtEO0FBQ0M7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFBQTtBQUdEO0FBQ0M7QUFBQTtBQUdEO0FBQ0M7QUFBQTtBQUdEO0FBQUE7QUFFQztBQUFBO0FBS0Q7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBS0Q7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFLRDtBQUNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFBQTtBQUtEO0FBQ0M7QUFDQTtBQUNBO0FBQUE7QUFLRDtBQUNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQUE7QUFHRDtBQUFBO0FBQUE7QUFHQztBQUFBO0FBR0Q7QUFDQztBQUFBO0FBS0Q7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUFBO0FBR0Q7QUFBQTtBQUFBO0FBR0M7QUFDQTtBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFBQTtBQUVDO0FBQUE7QUFFRDtBQUNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFLRDtBQUFBO0FBRUM7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQUE7QUFBQTtBQUdDO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFBQTtBQUtEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFBQTtBQUtEO0FBQ0M7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFNRDtBQUNDO0FBQ0M7QUFBQTtBQUFBO0FBTUY7QUFDQztBQUNBO0FBQUE7QUFLRDtBQUNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUtEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFNRDtBQUNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFFRDtBQUNDO0FBQ0E7QUFBQTtBQUVEO0FBQ0M7QUFBQTtBQUVEO0FBQ0M7QUFDQTtBQUFBO0FBRUQ7QUFFQztBQUNBO0FBQUE7QUFLRDtBQUNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUFBO0FBS0Q7QUFDQztBQUNDO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFBQTtBQUdEO0FBQ0M7QUFBQTtBQUdEO0FBQ0M7QUFBQTtBQUVEO0FBQ0M7QUFBQTtBQUVEO0FBQ0M7QUFDQTtBQUFBO0FBS0Q7QUFDQztBQUNBO0FBQUE7QUFBQTtBQU1GO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFLRDtBQUNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQUE7QUFRRDtBQUNDO0FBQ0E7QUFDQTtBQUFBO0FBRUQ7QUFDQztBQUFBO0FBRUQ7QUFDQztBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFBQTtBQUdEO0FBQUE7QUFFQztBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQztBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFBQTtBQUlGO0FBQ0M7QUFBQTtBQUtEO0FBQ0M7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQ0M7QUFBQTtBQUFBO0FBTUY7QUFDQztBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQ0M7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUFBO0FBQUE7QUFNRjtBQUNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUFBO0FBR0Q7QUFDQztBQUFBO0FBR0Q7QUFDQztBQUFBO0FBS0Q7QUFDQztBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQUE7QUFLRDtBQUNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQUE7QUFLRDtBQUNDO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQUE7QUFLRDtBQUNDO0FBQ0E7QUFDQTtBQUFBO0FBRUQ7QUFDQztBQUNBO0FBQUE7QUFLRDtBQUNDO0FBQ0E7QUFDQTtBQUFBO0FBRUQ7QUFDQztBQUNBO0FBQUE7QUFLRDtBQUNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUVEO0FBQ0M7QUFBQTtBQUtEO0FBQ0M7QUFDQTtBQUNBO0FBQUE7QUFLRDtBQUNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFBQTtBQUVDO0FBQ0E7QUFDQTtBQUFBO0FBS0Q7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFLRDtBQUNDO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFBQTtBQUtEO0FBQ0M7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUFBO0FBT0Q7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFBQTtBQU1EO0FBRUM7QUFDQztBQUFBO0FBQUE7QUFNRjtBQUNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFLRDtBQUNDO0FBQ0E7QUFBQTtBQUtEO0FBQ0M7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQztBQUFBO0FBQUE7QUFJRjtBQUNDO0FBQUE7QUFLRDtBQUNDO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFFRDtBQUNDO0FBQUE7QUFLRDtBQUNDO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFBQTtBQU9EO0FBQ0M7QUFDQztBQUNBO0FBQUE7QUFBQTtBQVVGO0FBQ0M7QUFBQTtBQUdEO0FBQ0M7QUFBQTtBQUdEO0FBQ0M7QUFBQTtBQUdEO0FBQ0M7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQUE7QUFLRDtBQUNDO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFLRDtBQUNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQztBQUNBO0FBQUE7QUFBQTtBQU1GO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFHRDtBQUNDO0FBQ0M7QUFBQTtBQUFBO0FBSUY7QUFDQztBQUFBO0FBR0Q7QUFDQztBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUFBO0FBR0Q7QUFDQztBQUNDO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFBQTtBQUlGO0FBQ0M7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUFBO0FBR0Q7QUFDQztBQUFBO0FBR0Q7QUFDQztBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFBQTtBQU9EO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFHRDtBQUFBO0FBQUE7QUFBQTtBQUlDO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQztBQUNBO0FBQUE7QUFBQTtBQUlGO0FBQ0M7QUFBQTtBQUdEO0FBQ0M7QUFBQTtBQUdEO0FBQ0M7QUFBQTtBQUdEO0FBQ0M7QUFDQztBQUFBO0FBR0Q7QUFDQztBQUFBO0FBQUE7QUFNRjtBQUNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFBQTtBQUtEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFLRDtBQUNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFDQTtBQUFBO0FBT0Q7QUFDQztBQUFBO0FBT0Q7QUFHQztBQUFBO0FBR0Q7QUFDQztBQUFBO0FBUUQ7QUFDQztBQUFBO0FBR0Q7QUFDQztBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQztBQUFBO0FBRUQ7QUFDQztBQUNBO0FBQUE7QUFBQTtBQU1GO0FBQUE7QUFBQTtBQUdDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFBQTtBQUdEO0FBQ0M7QUFBQTtBQUtEO0FBQ0M7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBS0Q7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUFBO0FBS0Q7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQUE7QUFNRDtBQUNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFBQTtBQUlEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUFBO0FBR0Q7QUFDQztBQUFBO0FBRUQ7QUFDQztBQUNBO0FBQUE7QUFJRDtBQUNDO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFFRDtBQUNDO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFBQTtBQUVEO0FBQ0M7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFBQTtBQUVEO0FBQ0M7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUFBO0FBR0Q7QUFBQTtBQUVDO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFFRDtBQUNDO0FBQ0E7QUFBQTtBQUVEO0FBR0M7QUFDQTtBQUFBO0FBRUQ7QUFDQztBQUFBO0FBRUQ7QUFDQztBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQ0M7QUFDQTtBQUFBO0FBRUQ7QUFDQztBQUNBO0FBQUE7QUFBQTtBQU1GO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFBQTtBQUtEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFHRDtBQUFBO0FBRUM7QUFDQTtBQUFBO0FBS0Q7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUFBO0FBR0Q7QUFDQztBQUFBO0FBR0Q7QUFDQztBQUFBO0FBR0Q7QUFDQztBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUVBO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQztBQUFBO0FBR0Q7QUFDQztBQUFBO0FBR0Q7QUFDQztBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFBQTtBQU1GO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBRUQ7QUFDQztBQUFBO0FBR0Q7QUFBQTtBQUVDO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFBQTtBQU9EO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUtEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFBQTtBQUtEO0FBQ0M7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUFBO0FBS0Q7QUFDQztBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBTUE7QUFDQTtBQUNBO0FBQUE7QUFLRDtBQUNDO0FBQUE7QUFLRDtBQUNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFLRDtBQUNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUtEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFHRDtBQUNDO0FBQ0M7QUFBQTtBQUFBO0FBSUY7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUVEO0FBQ0M7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQUE7QUFFQztBQUFBO0FBR0Q7QUFDQztBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUFBO0FBR0Q7QUFDQztBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFHRDtBQUFBO0FBRUM7QUFBQTtBQUdEO0FBQUE7QUFFQztBQUFBO0FBR0Q7QUFDQztBQUNDO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFFRDtBQUNDO0FBQUE7QUFBQTtBQU1GO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUtEO0FBQ0M7QUFBQTtBQU1EO0FBQUE7QUFFQztBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFBQTtBQUdEO0FBQUE7QUFFQztBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQUE7QUFHRDtBQUFBO0FBRUM7QUFBQTtBQUdEO0FBQ0M7QUFLQTtBQUFBO0FBR0Q7QUFDQztBQUtBO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFBQTtBQUlEO0FBQUE7QUFFRTtBQUFBO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFJRjtBQUFBO0FBRUU7QUFBQTtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBSUY7QUFBQTtBQUVFO0FBQUE7QUFBQTtBQUdBO0FBQUE7QUFBQTsiLAogICJuYW1lcyI6IFtdCn0K */ diff --git a/package-lock.json b/package-lock.json deleted file mode 100644 index 5f72716..0000000 --- a/package-lock.json +++ /dev/null @@ -1,8516 +0,0 @@ -{ - "name": "extension-base", - "version": "1.0.0", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "extension-base", - "version": "1.0.0", - "hasInstallScript": true, - "license": "MIT", - "dependencies": { - "roamjs-components": "^0.86.4" - } - }, - "node_modules/@alloc/quick-lru": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", - "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@aws-crypto/crc32": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@aws-crypto/crc32/-/crc32-5.2.0.tgz", - "integrity": "sha512-nLbCWqQNgUiwwtFsen1AdzAtvuLRsQS8rYgMuxCrdKf9kOssamGLuPwyTY9wyYblNr9+1XM8v6zoDTPPSIeANg==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@aws-crypto/util": "^5.2.0", - "@aws-sdk/types": "^3.222.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=16.0.0" - } - }, - "node_modules/@aws-crypto/crc32/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD", - "peer": true - }, - "node_modules/@aws-crypto/crc32c": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@aws-crypto/crc32c/-/crc32c-5.2.0.tgz", - "integrity": "sha512-+iWb8qaHLYKrNvGRbiYRHSdKRWhto5XlZUEBwDjYNf+ly5SVYG6zEoYIdxvf5R3zyeP16w4PLBn3rH1xc74Rag==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@aws-crypto/util": "^5.2.0", - "@aws-sdk/types": "^3.222.0", - "tslib": "^2.6.2" - } - }, - "node_modules/@aws-crypto/crc32c/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD", - "peer": true - }, - "node_modules/@aws-crypto/sha1-browser": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@aws-crypto/sha1-browser/-/sha1-browser-5.2.0.tgz", - "integrity": "sha512-OH6lveCFfcDjX4dbAvCFSYUjJZjDr/3XJ3xHtjn3Oj5b9RjojQo8npoLeA/bNwkOkrSQ0wgrHzXk4tDRxGKJeg==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@aws-crypto/supports-web-crypto": "^5.2.0", - "@aws-crypto/util": "^5.2.0", - "@aws-sdk/types": "^3.222.0", - "@aws-sdk/util-locate-window": "^3.0.0", - "@smithy/util-utf8": "^2.0.0", - "tslib": "^2.6.2" - } - }, - "node_modules/@aws-crypto/sha1-browser/node_modules/@smithy/is-array-buffer": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@smithy/is-array-buffer/-/is-array-buffer-2.2.0.tgz", - "integrity": "sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@aws-crypto/sha1-browser/node_modules/@smithy/util-buffer-from": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@smithy/util-buffer-from/-/util-buffer-from-2.2.0.tgz", - "integrity": "sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@smithy/is-array-buffer": "^2.2.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@aws-crypto/sha1-browser/node_modules/@smithy/util-utf8": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-2.3.0.tgz", - "integrity": "sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@smithy/util-buffer-from": "^2.2.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@aws-crypto/sha1-browser/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD", - "peer": true - }, - "node_modules/@aws-crypto/sha256-browser": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-browser/-/sha256-browser-5.2.0.tgz", - "integrity": "sha512-AXfN/lGotSQwu6HNcEsIASo7kWXZ5HYWvfOmSNKDsEqC4OashTp8alTmaz+F7TC2L083SFv5RdB+qU3Vs1kZqw==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@aws-crypto/sha256-js": "^5.2.0", - "@aws-crypto/supports-web-crypto": "^5.2.0", - "@aws-crypto/util": "^5.2.0", - "@aws-sdk/types": "^3.222.0", - "@aws-sdk/util-locate-window": "^3.0.0", - "@smithy/util-utf8": "^2.0.0", - "tslib": "^2.6.2" - } - }, - "node_modules/@aws-crypto/sha256-browser/node_modules/@smithy/is-array-buffer": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@smithy/is-array-buffer/-/is-array-buffer-2.2.0.tgz", - "integrity": "sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@aws-crypto/sha256-browser/node_modules/@smithy/util-buffer-from": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@smithy/util-buffer-from/-/util-buffer-from-2.2.0.tgz", - "integrity": "sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@smithy/is-array-buffer": "^2.2.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@aws-crypto/sha256-browser/node_modules/@smithy/util-utf8": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-2.3.0.tgz", - "integrity": "sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@smithy/util-buffer-from": "^2.2.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@aws-crypto/sha256-browser/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD", - "peer": true - }, - "node_modules/@aws-crypto/sha256-js": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-js/-/sha256-js-5.2.0.tgz", - "integrity": "sha512-FFQQyu7edu4ufvIZ+OadFpHHOt+eSTBaYaki44c+akjg7qZg9oOQeLlk77F6tSYqjDAFClrHJk9tMf0HdVyOvA==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@aws-crypto/util": "^5.2.0", - "@aws-sdk/types": "^3.222.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=16.0.0" - } - }, - "node_modules/@aws-crypto/sha256-js/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD", - "peer": true - }, - "node_modules/@aws-crypto/supports-web-crypto": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@aws-crypto/supports-web-crypto/-/supports-web-crypto-5.2.0.tgz", - "integrity": "sha512-iAvUotm021kM33eCdNfwIN//F77/IADDSs58i+MDaOqFrVjZo9bAal0NK7HurRuWLLpF1iLX7gbWrjHjeo+YFg==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "tslib": "^2.6.2" - } - }, - "node_modules/@aws-crypto/supports-web-crypto/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD", - "peer": true - }, - "node_modules/@aws-crypto/util": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@aws-crypto/util/-/util-5.2.0.tgz", - "integrity": "sha512-4RkU9EsI6ZpBve5fseQlGNUWKMa1RLPQ1dnjnQoe07ldfIzcsGb5hC5W0Dm7u423KWzawlrpbjXBrXCEv9zazQ==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@aws-sdk/types": "^3.222.0", - "@smithy/util-utf8": "^2.0.0", - "tslib": "^2.6.2" - } - }, - "node_modules/@aws-crypto/util/node_modules/@smithy/is-array-buffer": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@smithy/is-array-buffer/-/is-array-buffer-2.2.0.tgz", - "integrity": "sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@aws-crypto/util/node_modules/@smithy/util-buffer-from": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@smithy/util-buffer-from/-/util-buffer-from-2.2.0.tgz", - "integrity": "sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@smithy/is-array-buffer": "^2.2.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@aws-crypto/util/node_modules/@smithy/util-utf8": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-2.3.0.tgz", - "integrity": "sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@smithy/util-buffer-from": "^2.2.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@aws-crypto/util/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD", - "peer": true - }, - "node_modules/@aws-sdk/client-lambda": { - "version": "3.984.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-lambda/-/client-lambda-3.984.0.tgz", - "integrity": "sha512-kqwNBIGNxGVhINwgN/UQfdsQkaMjbu9PFV2EhATWouV+RT60uMjK9JENgLDwbgJmEVbbnPsh9HaZ5KKwPSdiDg==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@aws-crypto/sha256-browser": "5.2.0", - "@aws-crypto/sha256-js": "5.2.0", - "@aws-sdk/core": "^3.973.6", - "@aws-sdk/credential-provider-node": "^3.972.5", - "@aws-sdk/middleware-host-header": "^3.972.3", - "@aws-sdk/middleware-logger": "^3.972.3", - "@aws-sdk/middleware-recursion-detection": "^3.972.3", - "@aws-sdk/middleware-user-agent": "^3.972.6", - "@aws-sdk/region-config-resolver": "^3.972.3", - "@aws-sdk/types": "^3.973.1", - "@aws-sdk/util-endpoints": "3.984.0", - "@aws-sdk/util-user-agent-browser": "^3.972.3", - "@aws-sdk/util-user-agent-node": "^3.972.4", - "@smithy/config-resolver": "^4.4.6", - "@smithy/core": "^3.22.0", - "@smithy/eventstream-serde-browser": "^4.2.8", - "@smithy/eventstream-serde-config-resolver": "^4.3.8", - "@smithy/eventstream-serde-node": "^4.2.8", - "@smithy/fetch-http-handler": "^5.3.9", - "@smithy/hash-node": "^4.2.8", - "@smithy/invalid-dependency": "^4.2.8", - "@smithy/middleware-content-length": "^4.2.8", - "@smithy/middleware-endpoint": "^4.4.12", - "@smithy/middleware-retry": "^4.4.29", - "@smithy/middleware-serde": "^4.2.9", - "@smithy/middleware-stack": "^4.2.8", - "@smithy/node-config-provider": "^4.3.8", - "@smithy/node-http-handler": "^4.4.8", - "@smithy/protocol-http": "^5.3.8", - "@smithy/smithy-client": "^4.11.1", - "@smithy/types": "^4.12.0", - "@smithy/url-parser": "^4.2.8", - "@smithy/util-base64": "^4.3.0", - "@smithy/util-body-length-browser": "^4.2.0", - "@smithy/util-body-length-node": "^4.2.1", - "@smithy/util-defaults-mode-browser": "^4.3.28", - "@smithy/util-defaults-mode-node": "^4.2.31", - "@smithy/util-endpoints": "^3.2.8", - "@smithy/util-middleware": "^4.2.8", - "@smithy/util-retry": "^4.2.8", - "@smithy/util-stream": "^4.5.10", - "@smithy/util-utf8": "^4.2.0", - "@smithy/util-waiter": "^4.2.8", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=20.0.0" - } - }, - "node_modules/@aws-sdk/client-lambda/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD", - "peer": true - }, - "node_modules/@aws-sdk/client-s3": { - "version": "3.984.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-s3/-/client-s3-3.984.0.tgz", - "integrity": "sha512-7ny2Slr93Y+QniuluvcfWwyDi32zWQfznynL56Tk0vVh7bWrvS/odm8WP2nInKicRVNipcJHY2YInur6Q/9V0A==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@aws-crypto/sha1-browser": "5.2.0", - "@aws-crypto/sha256-browser": "5.2.0", - "@aws-crypto/sha256-js": "5.2.0", - "@aws-sdk/core": "^3.973.6", - "@aws-sdk/credential-provider-node": "^3.972.5", - "@aws-sdk/middleware-bucket-endpoint": "^3.972.3", - "@aws-sdk/middleware-expect-continue": "^3.972.3", - "@aws-sdk/middleware-flexible-checksums": "^3.972.4", - "@aws-sdk/middleware-host-header": "^3.972.3", - "@aws-sdk/middleware-location-constraint": "^3.972.3", - "@aws-sdk/middleware-logger": "^3.972.3", - "@aws-sdk/middleware-recursion-detection": "^3.972.3", - "@aws-sdk/middleware-sdk-s3": "^3.972.6", - "@aws-sdk/middleware-ssec": "^3.972.3", - "@aws-sdk/middleware-user-agent": "^3.972.6", - "@aws-sdk/region-config-resolver": "^3.972.3", - "@aws-sdk/signature-v4-multi-region": "3.984.0", - "@aws-sdk/types": "^3.973.1", - "@aws-sdk/util-endpoints": "3.984.0", - "@aws-sdk/util-user-agent-browser": "^3.972.3", - "@aws-sdk/util-user-agent-node": "^3.972.4", - "@smithy/config-resolver": "^4.4.6", - "@smithy/core": "^3.22.0", - "@smithy/eventstream-serde-browser": "^4.2.8", - "@smithy/eventstream-serde-config-resolver": "^4.3.8", - "@smithy/eventstream-serde-node": "^4.2.8", - "@smithy/fetch-http-handler": "^5.3.9", - "@smithy/hash-blob-browser": "^4.2.9", - "@smithy/hash-node": "^4.2.8", - "@smithy/hash-stream-node": "^4.2.8", - "@smithy/invalid-dependency": "^4.2.8", - "@smithy/md5-js": "^4.2.8", - "@smithy/middleware-content-length": "^4.2.8", - "@smithy/middleware-endpoint": "^4.4.12", - "@smithy/middleware-retry": "^4.4.29", - "@smithy/middleware-serde": "^4.2.9", - "@smithy/middleware-stack": "^4.2.8", - "@smithy/node-config-provider": "^4.3.8", - "@smithy/node-http-handler": "^4.4.8", - "@smithy/protocol-http": "^5.3.8", - "@smithy/smithy-client": "^4.11.1", - "@smithy/types": "^4.12.0", - "@smithy/url-parser": "^4.2.8", - "@smithy/util-base64": "^4.3.0", - "@smithy/util-body-length-browser": "^4.2.0", - "@smithy/util-body-length-node": "^4.2.1", - "@smithy/util-defaults-mode-browser": "^4.3.28", - "@smithy/util-defaults-mode-node": "^4.2.31", - "@smithy/util-endpoints": "^3.2.8", - "@smithy/util-middleware": "^4.2.8", - "@smithy/util-retry": "^4.2.8", - "@smithy/util-stream": "^4.5.10", - "@smithy/util-utf8": "^4.2.0", - "@smithy/util-waiter": "^4.2.8", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=20.0.0" - } - }, - "node_modules/@aws-sdk/client-s3/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD", - "peer": true - }, - "node_modules/@aws-sdk/client-sso": { - "version": "3.982.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.982.0.tgz", - "integrity": "sha512-qJrIiivmvujdGqJ0ldSUvhN3k3N7GtPesoOI1BSt0fNXovVnMz4C/JmnkhZihU7hJhDvxJaBROLYTU+lpild4w==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@aws-crypto/sha256-browser": "5.2.0", - "@aws-crypto/sha256-js": "5.2.0", - "@aws-sdk/core": "^3.973.6", - "@aws-sdk/middleware-host-header": "^3.972.3", - "@aws-sdk/middleware-logger": "^3.972.3", - "@aws-sdk/middleware-recursion-detection": "^3.972.3", - "@aws-sdk/middleware-user-agent": "^3.972.6", - "@aws-sdk/region-config-resolver": "^3.972.3", - "@aws-sdk/types": "^3.973.1", - "@aws-sdk/util-endpoints": "3.982.0", - "@aws-sdk/util-user-agent-browser": "^3.972.3", - "@aws-sdk/util-user-agent-node": "^3.972.4", - "@smithy/config-resolver": "^4.4.6", - "@smithy/core": "^3.22.0", - "@smithy/fetch-http-handler": "^5.3.9", - "@smithy/hash-node": "^4.2.8", - "@smithy/invalid-dependency": "^4.2.8", - "@smithy/middleware-content-length": "^4.2.8", - "@smithy/middleware-endpoint": "^4.4.12", - "@smithy/middleware-retry": "^4.4.29", - "@smithy/middleware-serde": "^4.2.9", - "@smithy/middleware-stack": "^4.2.8", - "@smithy/node-config-provider": "^4.3.8", - "@smithy/node-http-handler": "^4.4.8", - "@smithy/protocol-http": "^5.3.8", - "@smithy/smithy-client": "^4.11.1", - "@smithy/types": "^4.12.0", - "@smithy/url-parser": "^4.2.8", - "@smithy/util-base64": "^4.3.0", - "@smithy/util-body-length-browser": "^4.2.0", - "@smithy/util-body-length-node": "^4.2.1", - "@smithy/util-defaults-mode-browser": "^4.3.28", - "@smithy/util-defaults-mode-node": "^4.2.31", - "@smithy/util-endpoints": "^3.2.8", - "@smithy/util-middleware": "^4.2.8", - "@smithy/util-retry": "^4.2.8", - "@smithy/util-utf8": "^4.2.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=20.0.0" - } - }, - "node_modules/@aws-sdk/client-sso/node_modules/@aws-sdk/util-endpoints": { - "version": "3.982.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.982.0.tgz", - "integrity": "sha512-M27u8FJP7O0Of9hMWX5dipp//8iglmV9jr7R8SR8RveU+Z50/8TqH68Tu6wUWBGMfXjzbVwn1INIAO5lZrlxXQ==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@aws-sdk/types": "^3.973.1", - "@smithy/types": "^4.12.0", - "@smithy/url-parser": "^4.2.8", - "@smithy/util-endpoints": "^3.2.8", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=20.0.0" - } - }, - "node_modules/@aws-sdk/client-sso/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD", - "peer": true - }, - "node_modules/@aws-sdk/core": { - "version": "3.973.6", - "resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.973.6.tgz", - "integrity": "sha512-pz4ZOw3BLG0NdF25HoB9ymSYyPbMiIjwQJ2aROXRhAzt+b+EOxStfFv8s5iZyP6Kiw7aYhyWxj5G3NhmkoOTKw==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@aws-sdk/types": "^3.973.1", - "@aws-sdk/xml-builder": "^3.972.4", - "@smithy/core": "^3.22.0", - "@smithy/node-config-provider": "^4.3.8", - "@smithy/property-provider": "^4.2.8", - "@smithy/protocol-http": "^5.3.8", - "@smithy/signature-v4": "^5.3.8", - "@smithy/smithy-client": "^4.11.1", - "@smithy/types": "^4.12.0", - "@smithy/util-base64": "^4.3.0", - "@smithy/util-middleware": "^4.2.8", - "@smithy/util-utf8": "^4.2.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=20.0.0" - } - }, - "node_modules/@aws-sdk/core/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD", - "peer": true - }, - "node_modules/@aws-sdk/crc64-nvme": { - "version": "3.972.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/crc64-nvme/-/crc64-nvme-3.972.0.tgz", - "integrity": "sha512-ThlLhTqX68jvoIVv+pryOdb5coP1cX1/MaTbB9xkGDCbWbsqQcLqzPxuSoW1DCnAAIacmXCWpzUNOB9pv+xXQw==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@smithy/types": "^4.12.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=20.0.0" - } - }, - "node_modules/@aws-sdk/crc64-nvme/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD", - "peer": true - }, - "node_modules/@aws-sdk/credential-provider-env": { - "version": "3.972.4", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.972.4.tgz", - "integrity": "sha512-/8dnc7+XNMmViEom2xsNdArQxQPSgy4Z/lm6qaFPTrMFesT1bV3PsBhb19n09nmxHdrtQskYmViddUIjUQElXg==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@aws-sdk/core": "^3.973.6", - "@aws-sdk/types": "^3.973.1", - "@smithy/property-provider": "^4.2.8", - "@smithy/types": "^4.12.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=20.0.0" - } - }, - "node_modules/@aws-sdk/credential-provider-env/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD", - "peer": true - }, - "node_modules/@aws-sdk/credential-provider-http": { - "version": "3.972.6", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.972.6.tgz", - "integrity": "sha512-5ERWqRljiZv44AIdvIRQ3k+EAV0Sq2WeJHvXuK7gL7bovSxOf8Al7MLH7Eh3rdovH4KHFnlIty7J71mzvQBl5Q==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@aws-sdk/core": "^3.973.6", - "@aws-sdk/types": "^3.973.1", - "@smithy/fetch-http-handler": "^5.3.9", - "@smithy/node-http-handler": "^4.4.8", - "@smithy/property-provider": "^4.2.8", - "@smithy/protocol-http": "^5.3.8", - "@smithy/smithy-client": "^4.11.1", - "@smithy/types": "^4.12.0", - "@smithy/util-stream": "^4.5.10", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=20.0.0" - } - }, - "node_modules/@aws-sdk/credential-provider-http/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD", - "peer": true - }, - "node_modules/@aws-sdk/credential-provider-ini": { - "version": "3.972.4", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.972.4.tgz", - "integrity": "sha512-eRUg+3HaUKuXWn/lEMirdiA5HOKmEl8hEHVuszIDt2MMBUKgVX5XNGmb3XmbgU17h6DZ+RtjbxQpjhz3SbTjZg==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@aws-sdk/core": "^3.973.6", - "@aws-sdk/credential-provider-env": "^3.972.4", - "@aws-sdk/credential-provider-http": "^3.972.6", - "@aws-sdk/credential-provider-login": "^3.972.4", - "@aws-sdk/credential-provider-process": "^3.972.4", - "@aws-sdk/credential-provider-sso": "^3.972.4", - "@aws-sdk/credential-provider-web-identity": "^3.972.4", - "@aws-sdk/nested-clients": "3.982.0", - "@aws-sdk/types": "^3.973.1", - "@smithy/credential-provider-imds": "^4.2.8", - "@smithy/property-provider": "^4.2.8", - "@smithy/shared-ini-file-loader": "^4.4.3", - "@smithy/types": "^4.12.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=20.0.0" - } - }, - "node_modules/@aws-sdk/credential-provider-ini/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD", - "peer": true - }, - "node_modules/@aws-sdk/credential-provider-login": { - "version": "3.972.4", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-login/-/credential-provider-login-3.972.4.tgz", - "integrity": "sha512-nLGjXuvWWDlQAp505xIONI7Gam0vw2p7Qu3P6on/W2q7rjJXtYjtpHbcsaOjJ/pAju3eTvEQuSuRedcRHVQIAQ==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@aws-sdk/core": "^3.973.6", - "@aws-sdk/nested-clients": "3.982.0", - "@aws-sdk/types": "^3.973.1", - "@smithy/property-provider": "^4.2.8", - "@smithy/protocol-http": "^5.3.8", - "@smithy/shared-ini-file-loader": "^4.4.3", - "@smithy/types": "^4.12.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=20.0.0" - } - }, - "node_modules/@aws-sdk/credential-provider-login/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD", - "peer": true - }, - "node_modules/@aws-sdk/credential-provider-node": { - "version": "3.972.5", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.972.5.tgz", - "integrity": "sha512-VWXKgSISQCI2GKN3zakTNHSiZ0+mux7v6YHmmbLQp/o3fvYUQJmKGcLZZzg2GFA+tGGBStplra9VFNf/WwxpYg==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@aws-sdk/credential-provider-env": "^3.972.4", - "@aws-sdk/credential-provider-http": "^3.972.6", - "@aws-sdk/credential-provider-ini": "^3.972.4", - "@aws-sdk/credential-provider-process": "^3.972.4", - "@aws-sdk/credential-provider-sso": "^3.972.4", - "@aws-sdk/credential-provider-web-identity": "^3.972.4", - "@aws-sdk/types": "^3.973.1", - "@smithy/credential-provider-imds": "^4.2.8", - "@smithy/property-provider": "^4.2.8", - "@smithy/shared-ini-file-loader": "^4.4.3", - "@smithy/types": "^4.12.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=20.0.0" - } - }, - "node_modules/@aws-sdk/credential-provider-node/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD", - "peer": true - }, - "node_modules/@aws-sdk/credential-provider-process": { - "version": "3.972.4", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.972.4.tgz", - "integrity": "sha512-TCZpWUnBQN1YPk6grvd5x419OfXjHvhj5Oj44GYb84dOVChpg/+2VoEj+YVA4F4E/6huQPNnX7UYbTtxJqgihw==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@aws-sdk/core": "^3.973.6", - "@aws-sdk/types": "^3.973.1", - "@smithy/property-provider": "^4.2.8", - "@smithy/shared-ini-file-loader": "^4.4.3", - "@smithy/types": "^4.12.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=20.0.0" - } - }, - "node_modules/@aws-sdk/credential-provider-process/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD", - "peer": true - }, - "node_modules/@aws-sdk/credential-provider-sso": { - "version": "3.972.4", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.972.4.tgz", - "integrity": "sha512-wzsGwv9mKlwJ3vHLyembBvGE/5nPUIwRR2I51B1cBV4Cb4ql9nIIfpmHzm050XYTY5fqTOKJQnhLj7zj89VG8g==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@aws-sdk/client-sso": "3.982.0", - "@aws-sdk/core": "^3.973.6", - "@aws-sdk/token-providers": "3.982.0", - "@aws-sdk/types": "^3.973.1", - "@smithy/property-provider": "^4.2.8", - "@smithy/shared-ini-file-loader": "^4.4.3", - "@smithy/types": "^4.12.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=20.0.0" - } - }, - "node_modules/@aws-sdk/credential-provider-sso/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD", - "peer": true - }, - "node_modules/@aws-sdk/credential-provider-web-identity": { - "version": "3.972.4", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.972.4.tgz", - "integrity": "sha512-hIzw2XzrG8jzsUSEatehmpkd5rWzASg5IHUfA+m01k/RtvfAML7ZJVVohuKdhAYx+wV2AThLiQJVzqn7F0khrw==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@aws-sdk/core": "^3.973.6", - "@aws-sdk/nested-clients": "3.982.0", - "@aws-sdk/types": "^3.973.1", - "@smithy/property-provider": "^4.2.8", - "@smithy/shared-ini-file-loader": "^4.4.3", - "@smithy/types": "^4.12.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=20.0.0" - } - }, - "node_modules/@aws-sdk/credential-provider-web-identity/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD", - "peer": true - }, - "node_modules/@aws-sdk/middleware-bucket-endpoint": { - "version": "3.972.3", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.972.3.tgz", - "integrity": "sha512-fmbgWYirF67YF1GfD7cg5N6HHQ96EyRNx/rDIrTF277/zTWVuPI2qS/ZHgofwR1NZPe/NWvoppflQY01LrbVLg==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@aws-sdk/types": "^3.973.1", - "@aws-sdk/util-arn-parser": "^3.972.2", - "@smithy/node-config-provider": "^4.3.8", - "@smithy/protocol-http": "^5.3.8", - "@smithy/types": "^4.12.0", - "@smithy/util-config-provider": "^4.2.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=20.0.0" - } - }, - "node_modules/@aws-sdk/middleware-bucket-endpoint/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD", - "peer": true - }, - "node_modules/@aws-sdk/middleware-expect-continue": { - "version": "3.972.3", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.972.3.tgz", - "integrity": "sha512-4msC33RZsXQpUKR5QR4HnvBSNCPLGHmB55oDiROqqgyOc+TOfVu2xgi5goA7ms6MdZLeEh2905UfWMnMMF4mRg==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@aws-sdk/types": "^3.973.1", - "@smithy/protocol-http": "^5.3.8", - "@smithy/types": "^4.12.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=20.0.0" - } - }, - "node_modules/@aws-sdk/middleware-expect-continue/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD", - "peer": true - }, - "node_modules/@aws-sdk/middleware-flexible-checksums": { - "version": "3.972.4", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.972.4.tgz", - "integrity": "sha512-xOxsUkF3O3BtIe3tf54OpPo94eZepjFm3z0Dd2TZKbsPxMiRTFXurC04wJ58o/wPW9YHVO9VqZik3MfoPfrKlw==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@aws-crypto/crc32": "5.2.0", - "@aws-crypto/crc32c": "5.2.0", - "@aws-crypto/util": "5.2.0", - "@aws-sdk/core": "^3.973.6", - "@aws-sdk/crc64-nvme": "3.972.0", - "@aws-sdk/types": "^3.973.1", - "@smithy/is-array-buffer": "^4.2.0", - "@smithy/node-config-provider": "^4.3.8", - "@smithy/protocol-http": "^5.3.8", - "@smithy/types": "^4.12.0", - "@smithy/util-middleware": "^4.2.8", - "@smithy/util-stream": "^4.5.10", - "@smithy/util-utf8": "^4.2.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=20.0.0" - } - }, - "node_modules/@aws-sdk/middleware-flexible-checksums/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD", - "peer": true - }, - "node_modules/@aws-sdk/middleware-host-header": { - "version": "3.972.3", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.972.3.tgz", - "integrity": "sha512-aknPTb2M+G3s+0qLCx4Li/qGZH8IIYjugHMv15JTYMe6mgZO8VBpYgeGYsNMGCqCZOcWzuf900jFBG5bopfzmA==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@aws-sdk/types": "^3.973.1", - "@smithy/protocol-http": "^5.3.8", - "@smithy/types": "^4.12.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=20.0.0" - } - }, - "node_modules/@aws-sdk/middleware-host-header/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD", - "peer": true - }, - "node_modules/@aws-sdk/middleware-location-constraint": { - "version": "3.972.3", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.972.3.tgz", - "integrity": "sha512-nIg64CVrsXp67vbK0U1/Is8rik3huS3QkRHn2DRDx4NldrEFMgdkZGI/+cZMKD9k4YOS110Dfu21KZLHrFA/1g==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@aws-sdk/types": "^3.973.1", - "@smithy/types": "^4.12.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=20.0.0" - } - }, - "node_modules/@aws-sdk/middleware-location-constraint/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD", - "peer": true - }, - "node_modules/@aws-sdk/middleware-logger": { - "version": "3.972.3", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.972.3.tgz", - "integrity": "sha512-Ftg09xNNRqaz9QNzlfdQWfpqMCJbsQdnZVJP55jfhbKi1+FTWxGuvfPoBhDHIovqWKjqbuiew3HuhxbJ0+OjgA==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@aws-sdk/types": "^3.973.1", - "@smithy/types": "^4.12.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=20.0.0" - } - }, - "node_modules/@aws-sdk/middleware-logger/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD", - "peer": true - }, - "node_modules/@aws-sdk/middleware-recursion-detection": { - "version": "3.972.3", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.972.3.tgz", - "integrity": "sha512-PY57QhzNuXHnwbJgbWYTrqIDHYSeOlhfYERTAuc16LKZpTZRJUjzBFokp9hF7u1fuGeE3D70ERXzdbMBOqQz7Q==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@aws-sdk/types": "^3.973.1", - "@aws/lambda-invoke-store": "^0.2.2", - "@smithy/protocol-http": "^5.3.8", - "@smithy/types": "^4.12.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=20.0.0" - } - }, - "node_modules/@aws-sdk/middleware-recursion-detection/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD", - "peer": true - }, - "node_modules/@aws-sdk/middleware-sdk-s3": { - "version": "3.972.6", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.972.6.tgz", - "integrity": "sha512-Xq7wM6kbgJN1UO++8dvH/efPb1nTwWqFCpZCR7RCLOETP7xAUAhVo7JmsCnML5Di/iC4Oo5VrJ4QmkYcMZniLw==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@aws-sdk/core": "^3.973.6", - "@aws-sdk/types": "^3.973.1", - "@aws-sdk/util-arn-parser": "^3.972.2", - "@smithy/core": "^3.22.0", - "@smithy/node-config-provider": "^4.3.8", - "@smithy/protocol-http": "^5.3.8", - "@smithy/signature-v4": "^5.3.8", - "@smithy/smithy-client": "^4.11.1", - "@smithy/types": "^4.12.0", - "@smithy/util-config-provider": "^4.2.0", - "@smithy/util-middleware": "^4.2.8", - "@smithy/util-stream": "^4.5.10", - "@smithy/util-utf8": "^4.2.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=20.0.0" - } - }, - "node_modules/@aws-sdk/middleware-sdk-s3/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD", - "peer": true - }, - "node_modules/@aws-sdk/middleware-ssec": { - "version": "3.972.3", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-ssec/-/middleware-ssec-3.972.3.tgz", - "integrity": "sha512-dU6kDuULN3o3jEHcjm0c4zWJlY1zWVkjG9NPe9qxYLLpcbdj5kRYBS2DdWYD+1B9f910DezRuws7xDEqKkHQIg==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@aws-sdk/types": "^3.973.1", - "@smithy/types": "^4.12.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=20.0.0" - } - }, - "node_modules/@aws-sdk/middleware-ssec/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD", - "peer": true - }, - "node_modules/@aws-sdk/middleware-user-agent": { - "version": "3.972.6", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.972.6.tgz", - "integrity": "sha512-TehLN8W/kivl0U9HcS+keryElEWORROpghDXZBLfnb40DXM7hx/i+7OOjkogXQOF3QtUraJVRkHQ07bPhrWKlw==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@aws-sdk/core": "^3.973.6", - "@aws-sdk/types": "^3.973.1", - "@aws-sdk/util-endpoints": "3.982.0", - "@smithy/core": "^3.22.0", - "@smithy/protocol-http": "^5.3.8", - "@smithy/types": "^4.12.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=20.0.0" - } - }, - "node_modules/@aws-sdk/middleware-user-agent/node_modules/@aws-sdk/util-endpoints": { - "version": "3.982.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.982.0.tgz", - "integrity": "sha512-M27u8FJP7O0Of9hMWX5dipp//8iglmV9jr7R8SR8RveU+Z50/8TqH68Tu6wUWBGMfXjzbVwn1INIAO5lZrlxXQ==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@aws-sdk/types": "^3.973.1", - "@smithy/types": "^4.12.0", - "@smithy/url-parser": "^4.2.8", - "@smithy/util-endpoints": "^3.2.8", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=20.0.0" - } - }, - "node_modules/@aws-sdk/middleware-user-agent/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD", - "peer": true - }, - "node_modules/@aws-sdk/nested-clients": { - "version": "3.982.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/nested-clients/-/nested-clients-3.982.0.tgz", - "integrity": "sha512-VVkaH27digrJfdVrT64rjkllvOp4oRiZuuJvrylLXAKl18ujToJR7AqpDldL/LS63RVne3QWIpkygIymxFtliQ==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@aws-crypto/sha256-browser": "5.2.0", - "@aws-crypto/sha256-js": "5.2.0", - "@aws-sdk/core": "^3.973.6", - "@aws-sdk/middleware-host-header": "^3.972.3", - "@aws-sdk/middleware-logger": "^3.972.3", - "@aws-sdk/middleware-recursion-detection": "^3.972.3", - "@aws-sdk/middleware-user-agent": "^3.972.6", - "@aws-sdk/region-config-resolver": "^3.972.3", - "@aws-sdk/types": "^3.973.1", - "@aws-sdk/util-endpoints": "3.982.0", - "@aws-sdk/util-user-agent-browser": "^3.972.3", - "@aws-sdk/util-user-agent-node": "^3.972.4", - "@smithy/config-resolver": "^4.4.6", - "@smithy/core": "^3.22.0", - "@smithy/fetch-http-handler": "^5.3.9", - "@smithy/hash-node": "^4.2.8", - "@smithy/invalid-dependency": "^4.2.8", - "@smithy/middleware-content-length": "^4.2.8", - "@smithy/middleware-endpoint": "^4.4.12", - "@smithy/middleware-retry": "^4.4.29", - "@smithy/middleware-serde": "^4.2.9", - "@smithy/middleware-stack": "^4.2.8", - "@smithy/node-config-provider": "^4.3.8", - "@smithy/node-http-handler": "^4.4.8", - "@smithy/protocol-http": "^5.3.8", - "@smithy/smithy-client": "^4.11.1", - "@smithy/types": "^4.12.0", - "@smithy/url-parser": "^4.2.8", - "@smithy/util-base64": "^4.3.0", - "@smithy/util-body-length-browser": "^4.2.0", - "@smithy/util-body-length-node": "^4.2.1", - "@smithy/util-defaults-mode-browser": "^4.3.28", - "@smithy/util-defaults-mode-node": "^4.2.31", - "@smithy/util-endpoints": "^3.2.8", - "@smithy/util-middleware": "^4.2.8", - "@smithy/util-retry": "^4.2.8", - "@smithy/util-utf8": "^4.2.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=20.0.0" - } - }, - "node_modules/@aws-sdk/nested-clients/node_modules/@aws-sdk/util-endpoints": { - "version": "3.982.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.982.0.tgz", - "integrity": "sha512-M27u8FJP7O0Of9hMWX5dipp//8iglmV9jr7R8SR8RveU+Z50/8TqH68Tu6wUWBGMfXjzbVwn1INIAO5lZrlxXQ==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@aws-sdk/types": "^3.973.1", - "@smithy/types": "^4.12.0", - "@smithy/url-parser": "^4.2.8", - "@smithy/util-endpoints": "^3.2.8", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=20.0.0" - } - }, - "node_modules/@aws-sdk/nested-clients/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD", - "peer": true - }, - "node_modules/@aws-sdk/region-config-resolver": { - "version": "3.972.3", - "resolved": "https://registry.npmjs.org/@aws-sdk/region-config-resolver/-/region-config-resolver-3.972.3.tgz", - "integrity": "sha512-v4J8qYAWfOMcZ4MJUyatntOicTzEMaU7j3OpkRCGGFSL2NgXQ5VbxauIyORA+pxdKZ0qQG2tCQjQjZDlXEC3Ow==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@aws-sdk/types": "^3.973.1", - "@smithy/config-resolver": "^4.4.6", - "@smithy/node-config-provider": "^4.3.8", - "@smithy/types": "^4.12.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=20.0.0" - } - }, - "node_modules/@aws-sdk/region-config-resolver/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD", - "peer": true - }, - "node_modules/@aws-sdk/signature-v4-multi-region": { - "version": "3.984.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.984.0.tgz", - "integrity": "sha512-TaWbfYCwnuOSvDSrgs7QgoaoXse49E7LzUkVOUhoezwB7bkmhp+iojADm7UepCEu4021SquD7NG1xA+WCvmldA==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@aws-sdk/middleware-sdk-s3": "^3.972.6", - "@aws-sdk/types": "^3.973.1", - "@smithy/protocol-http": "^5.3.8", - "@smithy/signature-v4": "^5.3.8", - "@smithy/types": "^4.12.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=20.0.0" - } - }, - "node_modules/@aws-sdk/signature-v4-multi-region/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD", - "peer": true - }, - "node_modules/@aws-sdk/token-providers": { - "version": "3.982.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.982.0.tgz", - "integrity": "sha512-v3M0KYp2TVHYHNBT7jHD9lLTWAdS9CaWJ2jboRKt0WAB65bA7iUEpR+k4VqKYtpQN4+8kKSc4w+K6kUNZkHKQw==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@aws-sdk/core": "^3.973.6", - "@aws-sdk/nested-clients": "3.982.0", - "@aws-sdk/types": "^3.973.1", - "@smithy/property-provider": "^4.2.8", - "@smithy/shared-ini-file-loader": "^4.4.3", - "@smithy/types": "^4.12.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=20.0.0" - } - }, - "node_modules/@aws-sdk/token-providers/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD", - "peer": true - }, - "node_modules/@aws-sdk/types": { - "version": "3.973.1", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.973.1.tgz", - "integrity": "sha512-DwHBiMNOB468JiX6+i34c+THsKHErYUdNQ3HexeXZvVn4zouLjgaS4FejiGSi2HyBuzuyHg7SuOPmjSvoU9NRg==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@smithy/types": "^4.12.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=20.0.0" - } - }, - "node_modules/@aws-sdk/types/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD", - "peer": true - }, - "node_modules/@aws-sdk/util-arn-parser": { - "version": "3.972.2", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-arn-parser/-/util-arn-parser-3.972.2.tgz", - "integrity": "sha512-VkykWbqMjlSgBFDyrY3nOSqupMc6ivXuGmvci6Q3NnLq5kC+mKQe2QBZ4nrWRE/jqOxeFP2uYzLtwncYYcvQDg==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=20.0.0" - } - }, - "node_modules/@aws-sdk/util-arn-parser/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD", - "peer": true - }, - "node_modules/@aws-sdk/util-endpoints": { - "version": "3.984.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.984.0.tgz", - "integrity": "sha512-9ebjLA0hMKHeVvXEtTDCCOBtwjb0bOXiuUV06HNeVdgAjH6gj4x4Zwt4IBti83TiyTGOCl5YfZqGx4ehVsasbQ==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@aws-sdk/types": "^3.973.1", - "@smithy/types": "^4.12.0", - "@smithy/url-parser": "^4.2.8", - "@smithy/util-endpoints": "^3.2.8", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=20.0.0" - } - }, - "node_modules/@aws-sdk/util-endpoints/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD", - "peer": true - }, - "node_modules/@aws-sdk/util-locate-window": { - "version": "3.965.4", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-locate-window/-/util-locate-window-3.965.4.tgz", - "integrity": "sha512-H1onv5SkgPBK2P6JR2MjGgbOnttoNzSPIRoeZTNPZYyaplwGg50zS3amXvXqF0/qfXpWEC9rLWU564QTB9bSog==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=20.0.0" - } - }, - "node_modules/@aws-sdk/util-locate-window/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD", - "peer": true - }, - "node_modules/@aws-sdk/util-user-agent-browser": { - "version": "3.972.3", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.972.3.tgz", - "integrity": "sha512-JurOwkRUcXD/5MTDBcqdyQ9eVedtAsZgw5rBwktsPTN7QtPiS2Ld1jkJepNgYoCufz1Wcut9iup7GJDoIHp8Fw==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@aws-sdk/types": "^3.973.1", - "@smithy/types": "^4.12.0", - "bowser": "^2.11.0", - "tslib": "^2.6.2" - } - }, - "node_modules/@aws-sdk/util-user-agent-browser/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD", - "peer": true - }, - "node_modules/@aws-sdk/util-user-agent-node": { - "version": "3.972.4", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.972.4.tgz", - "integrity": "sha512-3WFCBLiM8QiHDfosQq3Py+lIMgWlFWwFQliUHUqwEiRqLnKyhgbU3AKa7AWJF7lW2Oc/2kFNY4MlAYVnVc0i8A==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@aws-sdk/middleware-user-agent": "^3.972.6", - "@aws-sdk/types": "^3.973.1", - "@smithy/node-config-provider": "^4.3.8", - "@smithy/types": "^4.12.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=20.0.0" - }, - "peerDependencies": { - "aws-crt": ">=1.0.0" - }, - "peerDependenciesMeta": { - "aws-crt": { - "optional": true - } - } - }, - "node_modules/@aws-sdk/util-user-agent-node/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD", - "peer": true - }, - "node_modules/@aws-sdk/xml-builder": { - "version": "3.972.4", - "resolved": "https://registry.npmjs.org/@aws-sdk/xml-builder/-/xml-builder-3.972.4.tgz", - "integrity": "sha512-0zJ05ANfYqI6+rGqj8samZBFod0dPPousBjLEqg8WdxSgbMAkRgLyn81lP215Do0rFJ/17LIXwr7q0yK24mP6Q==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@smithy/types": "^4.12.0", - "fast-xml-parser": "5.3.4", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=20.0.0" - } - }, - "node_modules/@aws-sdk/xml-builder/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD", - "peer": true - }, - "node_modules/@aws/lambda-invoke-store": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@aws/lambda-invoke-store/-/lambda-invoke-store-0.2.3.tgz", - "integrity": "sha512-oLvsaPMTBejkkmHhjf09xTgk71mOqyr/409NKhRIL08If7AhVfUsJhVsx386uJaqNd42v9kWamQ9lFbkoC2dYw==", - "license": "Apache-2.0", - "peer": true, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.29.0", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.0.tgz", - "integrity": "sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==", - "license": "MIT", - "peer": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.28.5", - "js-tokens": "^4.0.0", - "picocolors": "^1.1.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", - "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/runtime": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.6.tgz", - "integrity": "sha512-05WQkdpL9COIMz4LjTxGpPNCdlpyimKppYNoJ5Di5EUObifl8t4tuLuUBBZEpoLYOmfvIWrsp9fCl0HoPRVTdA==", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/runtime-corejs3": { - "version": "7.29.0", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.29.0.tgz", - "integrity": "sha512-TgUkdp71C9pIbBcHudc+gXZnihEDOjUAmXO1VO4HHGES7QLZcShR0stfKIxLSNIYx2fqhmJChOjm/wkF8wv4gA==", - "license": "MIT", - "dependencies": { - "core-js-pure": "^3.48.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@bcoe/v8-coverage": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", - "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", - "license": "MIT", - "peer": true - }, - "node_modules/@blueprintjs/colors": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@blueprintjs/colors/-/colors-4.2.1.tgz", - "integrity": "sha512-Cx7J2YnUuxn+fi+y5XtXnBB7+cFHN4xBrRkaAetp78i3VTCXjUk+d1omrOr8TqbRucUXTdrhbZOUHpzRLFcJpQ==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "tslib": "~2.5.0" - } - }, - "node_modules/@blueprintjs/colors/node_modules/tslib": { - "version": "2.5.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.3.tgz", - "integrity": "sha512-mSxlJJwl3BMEQCUNnxXBU9jP4JBktcEGhURcPR6VQVlnP0FdDEsIaz0C35dXNGLyRfrATNofF0F5p2KPxQgB+w==", - "license": "0BSD", - "peer": true - }, - "node_modules/@blueprintjs/core": { - "version": "3.50.4", - "resolved": "https://registry.npmjs.org/@blueprintjs/core/-/core-3.50.4.tgz", - "integrity": "sha512-FYGr1ZMH1si2acdZaTI4gqhvwgb0yOWcv7otYdi/tvC4ReId2gsm2i+bDw/eBMYsH+OSFYZT0C6hFvHV3HrkPA==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@blueprintjs/colors": "^4.0.0-alpha.1", - "@blueprintjs/icons": "^3.30.2", - "@types/dom4": "^2.0.1", - "classnames": "^2.2", - "dom4": "^2.1.5", - "normalize.css": "^8.0.1", - "popper.js": "^1.16.1", - "react-lifecycles-compat": "^3.0.4", - "react-popper": "^1.3.7", - "react-transition-group": "^2.9.0", - "resize-observer-polyfill": "^1.5.1", - "tslib": "~1.13.0" - }, - "bin": { - "upgrade-blueprint-2.0.0-rename": "scripts/upgrade-blueprint-2.0.0-rename.sh", - "upgrade-blueprint-3.0.0-rename": "scripts/upgrade-blueprint-3.0.0-rename.sh" - }, - "peerDependencies": { - "react": "^15.3.0 || 16 || 17", - "react-dom": "^15.3.0 || 16 || 17" - } - }, - "node_modules/@blueprintjs/core/node_modules/tslib": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz", - "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==", - "license": "0BSD", - "peer": true - }, - "node_modules/@blueprintjs/datetime": { - "version": "3.23.14", - "resolved": "https://registry.npmjs.org/@blueprintjs/datetime/-/datetime-3.23.14.tgz", - "integrity": "sha512-zunYX1pP1T7DiTljqOCyJkngIsus4VOy9ceCt9LHMt7nb1rBsV86jX57A3V/OCNedv+KPHL0KfPeCRCNU6o//A==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@blueprintjs/core": "^3.50.4", - "classnames": "^2.2", - "react-day-picker": "7.4.9", - "react-lifecycles-compat": "^3.0.4", - "tslib": "~1.13.0" - }, - "peerDependencies": { - "react": "^15.3.0 || 16 || 17", - "react-dom": "^15.3.0 || 16 || 17" - } - }, - "node_modules/@blueprintjs/datetime/node_modules/tslib": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz", - "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==", - "license": "0BSD", - "peer": true - }, - "node_modules/@blueprintjs/icons": { - "version": "3.33.0", - "resolved": "https://registry.npmjs.org/@blueprintjs/icons/-/icons-3.33.0.tgz", - "integrity": "sha512-Q6qoSDIm0kRYQZISm59UUcDCpV3oeHulkLuh3bSlw0HhcSjvEQh2PSYbtaifM60Q4aK4PCd6bwJHg7lvF1x5fQ==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "classnames": "^2.2", - "tslib": "~2.3.1" - } - }, - "node_modules/@blueprintjs/icons/node_modules/tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", - "license": "0BSD", - "peer": true - }, - "node_modules/@blueprintjs/select": { - "version": "3.18.6", - "resolved": "https://registry.npmjs.org/@blueprintjs/select/-/select-3.18.6.tgz", - "integrity": "sha512-xxhtxKIYxSDjnaUyzNAaM0ffHHW02FU0VuEG2A9IxueX3sfGNN5HQKKxFHIEfCWabRApEILGTzRx42uvfdSUww==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@blueprintjs/core": "^3.50.4", - "classnames": "^2.2", - "tslib": "~1.13.0" - }, - "peerDependencies": { - "react": "^15.3.0 || 16 || 17", - "react-dom": "^15.3.0 || 16 || 17" - } - }, - "node_modules/@blueprintjs/select/node_modules/tslib": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz", - "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==", - "license": "0BSD", - "peer": true - }, - "node_modules/@cspotcode/source-map-support": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", - "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", - "license": "MIT", - "peer": true, - "dependencies": { - "@jridgewell/trace-mapping": "0.3.9" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", - "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", - "license": "MIT", - "peer": true, - "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, - "node_modules/@esbuild/android-arm": { - "version": "0.17.14", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.14.tgz", - "integrity": "sha512-0CnlwnjDU8cks0yJLXfkaU/uoLyRf9VZJs4p1PskBr2AlAHeEsFEwJEo0of/Z3g+ilw5mpyDwThlxzNEIxOE4g==", - "cpu": [ - "arm" - ], - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "peer": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-arm64": { - "version": "0.17.14", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.17.14.tgz", - "integrity": "sha512-eLOpPO1RvtsP71afiFTvS7tVFShJBCT0txiv/xjFBo5a7R7Gjw7X0IgIaFoLKhqXYAXhahoXm7qAmRXhY4guJg==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "peer": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-x64": { - "version": "0.17.14", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.17.14.tgz", - "integrity": "sha512-nrfQYWBfLGfSGLvRVlt6xi63B5IbfHm3tZCdu/82zuFPQ7zez4XjmRtF/wIRYbJQ/DsZrxJdEvYFE67avYXyng==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "peer": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/darwin-arm64": { - "version": "0.17.14", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.17.14.tgz", - "integrity": "sha512-eoSjEuDsU1ROwgBH/c+fZzuSyJUVXQTOIN9xuLs9dE/9HbV/A5IqdXHU1p2OfIMwBwOYJ9SFVGGldxeRCUJFyw==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "peer": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/darwin-x64": { - "version": "0.17.14", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.17.14.tgz", - "integrity": "sha512-zN0U8RWfrDttdFNkHqFYZtOH8hdi22z0pFm0aIJPsNC4QQZv7je8DWCX5iA4Zx6tRhS0CCc0XC2m7wKsbWEo5g==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "peer": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/freebsd-arm64": { - "version": "0.17.14", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.14.tgz", - "integrity": "sha512-z0VcD4ibeZWVQCW1O7szaLxGsx54gcCnajEJMdYoYjLiq4g1jrP2lMq6pk71dbS5+7op/L2Aod+erw+EUr28/A==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "peer": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/freebsd-x64": { - "version": "0.17.14", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.17.14.tgz", - "integrity": "sha512-hd9mPcxfTgJlolrPlcXkQk9BMwNBvNBsVaUe5eNUqXut6weDQH8whcNaKNF2RO8NbpT6GY8rHOK2A9y++s+ehw==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "peer": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-arm": { - "version": "0.17.14", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.17.14.tgz", - "integrity": "sha512-BNTl+wSJ1omsH8s3TkQmIIIQHwvwJrU9u1ggb9XU2KTVM4TmthRIVyxSp2qxROJHhZuW/r8fht46/QE8hU8Qvg==", - "cpu": [ - "arm" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-arm64": { - "version": "0.17.14", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.17.14.tgz", - "integrity": "sha512-FhAMNYOq3Iblcj9i+K0l1Fp/MHt+zBeRu/Qkf0LtrcFu3T45jcwB6A1iMsemQ42vR3GBhjNZJZTaCe3VFPbn9g==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-ia32": { - "version": "0.17.14", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.17.14.tgz", - "integrity": "sha512-91OK/lQ5y2v7AsmnFT+0EyxdPTNhov3y2CWMdizyMfxSxRqHazXdzgBKtlmkU2KYIc+9ZK3Vwp2KyXogEATYxQ==", - "cpu": [ - "ia32" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-loong64": { - "version": "0.17.14", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.17.14.tgz", - "integrity": "sha512-vp15H+5NR6hubNgMluqqKza85HcGJgq7t6rMH7O3Y6ApiOWPkvW2AJfNojUQimfTp6OUrACUXfR4hmpcENXoMQ==", - "cpu": [ - "loong64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-mips64el": { - "version": "0.17.14", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.17.14.tgz", - "integrity": "sha512-90TOdFV7N+fgi6c2+GO9ochEkmm9kBAKnuD5e08GQMgMINOdOFHuYLPQ91RYVrnWwQ5683sJKuLi9l4SsbJ7Hg==", - "cpu": [ - "mips64el" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-ppc64": { - "version": "0.17.14", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.17.14.tgz", - "integrity": "sha512-NnBGeoqKkTugpBOBZZoktQQ1Yqb7aHKmHxsw43NddPB2YWLAlpb7THZIzsRsTr0Xw3nqiPxbA1H31ZMOG+VVPQ==", - "cpu": [ - "ppc64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-riscv64": { - "version": "0.17.14", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.17.14.tgz", - "integrity": "sha512-0qdlKScLXA8MGVy21JUKvMzCYWovctuP8KKqhtE5A6IVPq4onxXhSuhwDd2g5sRCzNDlDjitc5sX31BzDoL5Fw==", - "cpu": [ - "riscv64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-s390x": { - "version": "0.17.14", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.17.14.tgz", - "integrity": "sha512-Hdm2Jo1yaaOro4v3+6/zJk6ygCqIZuSDJHdHaf8nVH/tfOuoEX5Riv03Ka15LmQBYJObUTNS1UdyoMk0WUn9Ww==", - "cpu": [ - "s390x" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-x64": { - "version": "0.17.14", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.14.tgz", - "integrity": "sha512-8KHF17OstlK4DuzeF/KmSgzrTWQrkWj5boluiiq7kvJCiQVzUrmSkaBvcLB2UgHpKENO2i6BthPkmUhNDaJsVw==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/netbsd-x64": { - "version": "0.17.14", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.17.14.tgz", - "integrity": "sha512-nVwpqvb3yyXztxIT2+VsxJhB5GCgzPdk1n0HHSnchRAcxqKO6ghXwHhJnr0j/B+5FSyEqSxF4q03rbA2fKXtUQ==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "netbsd" - ], - "peer": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/openbsd-x64": { - "version": "0.17.14", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.17.14.tgz", - "integrity": "sha512-1RZ7uQQ9zcy/GSAJL1xPdN7NDdOOtNEGiJalg/MOzeakZeTrgH/DoCkbq7TaPDiPhWqnDF+4bnydxRqQD7il6g==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], - "peer": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/sunos-x64": { - "version": "0.17.14", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.17.14.tgz", - "integrity": "sha512-nqMjDsFwv7vp7msrwWRysnM38Sd44PKmW8EzV01YzDBTcTWUpczQg6mGao9VLicXSgW/iookNK6AxeogNVNDZA==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "sunos" - ], - "peer": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-arm64": { - "version": "0.17.14", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.17.14.tgz", - "integrity": "sha512-xrD0mccTKRBBIotrITV7WVQAwNJ5+1va6L0H9zN92v2yEdjfAN7864cUaZwJS7JPEs53bDTzKFbfqVlG2HhyKQ==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "peer": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-ia32": { - "version": "0.17.14", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.17.14.tgz", - "integrity": "sha512-nXpkz9bbJrLLyUTYtRotSS3t5b+FOuljg8LgLdINWFs3FfqZMtbnBCZFUmBzQPyxqU87F8Av+3Nco/M3hEcu1w==", - "cpu": [ - "ia32" - ], - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "peer": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-x64": { - "version": "0.17.14", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.17.14.tgz", - "integrity": "sha512-gPQmsi2DKTaEgG14hc3CHXHp62k8g6qr0Pas+I4lUxRMugGSATh/Bi8Dgusoz9IQ0IfdrvLpco6kujEIBoaogA==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "peer": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/@hypnosphi/create-react-context": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@hypnosphi/create-react-context/-/create-react-context-0.3.1.tgz", - "integrity": "sha512-V1klUed202XahrWJLLOT3EXNeCpFHCcJntdFGI15ntCwau+jfT386w7OFTMaCqOgXUH1fa0w/I1oZs+i/Rfr0A==", - "license": "MIT", - "peer": true, - "dependencies": { - "gud": "^1.0.0", - "warning": "^4.0.3" - }, - "peerDependencies": { - "prop-types": "^15.0.0", - "react": ">=0.14.0" - } - }, - "node_modules/@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jcubic/lily": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@jcubic/lily/-/lily-0.3.0.tgz", - "integrity": "sha512-4z6p4jLGSthc8gQ7wu4nHfGYn/IgCKFr+7hjuf80VdXUs7sm029mZGGDpS8sb29PVZWUBvMMTBCVGFhH2nN4Vw==", - "license": "MIT", - "peer": true - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.13", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", - "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", - "license": "MIT", - "peer": true, - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.5.0", - "@jridgewell/trace-mapping": "^0.3.24" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", - "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", - "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", - "license": "MIT", - "peer": true - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.31", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", - "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", - "license": "MIT", - "peer": true, - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "license": "MIT", - "peer": true, - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "license": "MIT", - "peer": true, - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@playwright/test": { - "version": "1.29.0", - "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.29.0.tgz", - "integrity": "sha512-gp5PVBenxTJsm2bATWDNc2CCnrL5OaA/MXQdJwwkGQtqTjmY+ZOqAdLqo49O9MLTDh2vYh+tHWDnmFsILnWaeA==", - "deprecated": "Please update to the latest version of Playwright to test up-to-date browsers.", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@types/node": "*", - "playwright-core": "1.29.0" - }, - "bin": { - "playwright": "cli.js" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@samepage/scripts": { - "version": "0.74.5", - "resolved": "https://registry.npmjs.org/@samepage/scripts/-/scripts-0.74.5.tgz", - "integrity": "sha512-0hy5IOG2+PXqetIQPuheTKYPnKxDHw4x0s9qjytlEgZC2faiYyMkAqK3MUumuocbz1OWX43+yPs7ujRAZqVl9g==", - "license": "MIT", - "bin": { - "samepage": "cli.js" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - }, - "peerDependencies": { - "@aws-sdk/client-lambda": "^3.278.0", - "@aws-sdk/client-s3": "^3.100.0", - "@samepage/testing": "0.74.5", - "archiver": "^5.3.1", - "axios": ">=0.26.0 <1", - "debug": "^4.3.4", - "dotenv": "^16.0.3", - "esbuild": "0.17.14", - "patch-package": "^6.5.0", - "tailwindcss": "3.3.2", - "ts-node": "^10.9.1", - "zod": "^3.19.1" - } - }, - "node_modules/@samepage/testing": { - "version": "0.74.5", - "resolved": "https://registry.npmjs.org/@samepage/testing/-/testing-0.74.5.tgz", - "integrity": "sha512-ZwO/02YK5DFVIJYH6eklAwDJ7W13Jtwvprf89EP/VRNN/GRP/GAwrgXc6eX5KdfocC9Lf5ovu84/6CWrO7qwmg==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - }, - "peerDependencies": { - "@playwright/test": "1.29.0", - "@testing-library/react": ">11.2.7", - "@testing-library/user-event": "^14.4.3", - "@types/jsdom": "^20.0.0", - "c8": "^7.12.0", - "debug": "^4.3.4", - "dotenv": "^16.0.3", - "jsdom": "^20.0.0", - "ts-node": "^10.9.1" - } - }, - "node_modules/@smithy/abort-controller": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/@smithy/abort-controller/-/abort-controller-4.2.8.tgz", - "integrity": "sha512-peuVfkYHAmS5ybKxWcfraK7WBBP0J+rkfUcbHJJKQ4ir3UAUNQI+Y4Vt/PqSzGqgloJ5O1dk7+WzNL8wcCSXbw==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@smithy/types": "^4.12.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@smithy/abort-controller/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD", - "peer": true - }, - "node_modules/@smithy/chunked-blob-reader": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@smithy/chunked-blob-reader/-/chunked-blob-reader-5.2.0.tgz", - "integrity": "sha512-WmU0TnhEAJLWvfSeMxBNe5xtbselEO8+4wG0NtZeL8oR21WgH1xiO37El+/Y+H/Ie4SCwBy3MxYWmOYaGgZueA==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@smithy/chunked-blob-reader-native": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@smithy/chunked-blob-reader-native/-/chunked-blob-reader-native-4.2.1.tgz", - "integrity": "sha512-lX9Ay+6LisTfpLid2zZtIhSEjHMZoAR5hHCR4H7tBz/Zkfr5ea8RcQ7Tk4mi0P76p4cN+Btz16Ffno7YHpKXnQ==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@smithy/util-base64": "^4.3.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@smithy/chunked-blob-reader-native/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD", - "peer": true - }, - "node_modules/@smithy/chunked-blob-reader/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD", - "peer": true - }, - "node_modules/@smithy/config-resolver": { - "version": "4.4.6", - "resolved": "https://registry.npmjs.org/@smithy/config-resolver/-/config-resolver-4.4.6.tgz", - "integrity": "sha512-qJpzYC64kaj3S0fueiu3kXm8xPrR3PcXDPEgnaNMRn0EjNSZFoFjvbUp0YUDsRhN1CB90EnHJtbxWKevnH99UQ==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@smithy/node-config-provider": "^4.3.8", - "@smithy/types": "^4.12.0", - "@smithy/util-config-provider": "^4.2.0", - "@smithy/util-endpoints": "^3.2.8", - "@smithy/util-middleware": "^4.2.8", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@smithy/config-resolver/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD", - "peer": true - }, - "node_modules/@smithy/core": { - "version": "3.22.1", - "resolved": "https://registry.npmjs.org/@smithy/core/-/core-3.22.1.tgz", - "integrity": "sha512-x3ie6Crr58MWrm4viHqqy2Du2rHYZjwu8BekasrQx4ca+Y24dzVAwq3yErdqIbc2G3I0kLQA13PQ+/rde+u65g==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@smithy/middleware-serde": "^4.2.9", - "@smithy/protocol-http": "^5.3.8", - "@smithy/types": "^4.12.0", - "@smithy/util-base64": "^4.3.0", - "@smithy/util-body-length-browser": "^4.2.0", - "@smithy/util-middleware": "^4.2.8", - "@smithy/util-stream": "^4.5.11", - "@smithy/util-utf8": "^4.2.0", - "@smithy/uuid": "^1.1.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@smithy/core/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD", - "peer": true - }, - "node_modules/@smithy/credential-provider-imds": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/@smithy/credential-provider-imds/-/credential-provider-imds-4.2.8.tgz", - "integrity": "sha512-FNT0xHS1c/CPN8upqbMFP83+ul5YgdisfCfkZ86Jh2NSmnqw/AJ6x5pEogVCTVvSm7j9MopRU89bmDelxuDMYw==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@smithy/node-config-provider": "^4.3.8", - "@smithy/property-provider": "^4.2.8", - "@smithy/types": "^4.12.0", - "@smithy/url-parser": "^4.2.8", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@smithy/credential-provider-imds/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD", - "peer": true - }, - "node_modules/@smithy/eventstream-codec": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/@smithy/eventstream-codec/-/eventstream-codec-4.2.8.tgz", - "integrity": "sha512-jS/O5Q14UsufqoGhov7dHLOPCzkYJl9QDzusI2Psh4wyYx/izhzvX9P4D69aTxcdfVhEPhjK+wYyn/PzLjKbbw==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@aws-crypto/crc32": "5.2.0", - "@smithy/types": "^4.12.0", - "@smithy/util-hex-encoding": "^4.2.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@smithy/eventstream-codec/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD", - "peer": true - }, - "node_modules/@smithy/eventstream-serde-browser": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-browser/-/eventstream-serde-browser-4.2.8.tgz", - "integrity": "sha512-MTfQT/CRQz5g24ayXdjg53V0mhucZth4PESoA5IhvaWVDTOQLfo8qI9vzqHcPsdd2v6sqfTYqF5L/l+pea5Uyw==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@smithy/eventstream-serde-universal": "^4.2.8", - "@smithy/types": "^4.12.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@smithy/eventstream-serde-browser/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD", - "peer": true - }, - "node_modules/@smithy/eventstream-serde-config-resolver": { - "version": "4.3.8", - "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-4.3.8.tgz", - "integrity": "sha512-ah12+luBiDGzBruhu3efNy1IlbwSEdNiw8fOZksoKoWW1ZHvO/04MQsdnws/9Aj+5b0YXSSN2JXKy/ClIsW8MQ==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@smithy/types": "^4.12.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@smithy/eventstream-serde-config-resolver/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD", - "peer": true - }, - "node_modules/@smithy/eventstream-serde-node": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-node/-/eventstream-serde-node-4.2.8.tgz", - "integrity": "sha512-cYpCpp29z6EJHa5T9WL0KAlq3SOKUQkcgSoeRfRVwjGgSFl7Uh32eYGt7IDYCX20skiEdRffyDpvF2efEZPC0A==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@smithy/eventstream-serde-universal": "^4.2.8", - "@smithy/types": "^4.12.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@smithy/eventstream-serde-node/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD", - "peer": true - }, - "node_modules/@smithy/eventstream-serde-universal": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-universal/-/eventstream-serde-universal-4.2.8.tgz", - "integrity": "sha512-iJ6YNJd0bntJYnX6s52NC4WFYcZeKrPUr1Kmmr5AwZcwCSzVpS7oavAmxMR7pMq7V+D1G4s9F5NJK0xwOsKAlQ==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@smithy/eventstream-codec": "^4.2.8", - "@smithy/types": "^4.12.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@smithy/eventstream-serde-universal/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD", - "peer": true - }, - "node_modules/@smithy/fetch-http-handler": { - "version": "5.3.9", - "resolved": "https://registry.npmjs.org/@smithy/fetch-http-handler/-/fetch-http-handler-5.3.9.tgz", - "integrity": "sha512-I4UhmcTYXBrct03rwzQX1Y/iqQlzVQaPxWjCjula++5EmWq9YGBrx6bbGqluGc1f0XEfhSkiY4jhLgbsJUMKRA==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@smithy/protocol-http": "^5.3.8", - "@smithy/querystring-builder": "^4.2.8", - "@smithy/types": "^4.12.0", - "@smithy/util-base64": "^4.3.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@smithy/fetch-http-handler/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD", - "peer": true - }, - "node_modules/@smithy/hash-blob-browser": { - "version": "4.2.9", - "resolved": "https://registry.npmjs.org/@smithy/hash-blob-browser/-/hash-blob-browser-4.2.9.tgz", - "integrity": "sha512-m80d/iicI7DlBDxyQP6Th7BW/ejDGiF0bgI754+tiwK0lgMkcaIBgvwwVc7OFbY4eUzpGtnig52MhPAEJ7iNYg==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@smithy/chunked-blob-reader": "^5.2.0", - "@smithy/chunked-blob-reader-native": "^4.2.1", - "@smithy/types": "^4.12.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@smithy/hash-blob-browser/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD", - "peer": true - }, - "node_modules/@smithy/hash-node": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/@smithy/hash-node/-/hash-node-4.2.8.tgz", - "integrity": "sha512-7ZIlPbmaDGxVoxErDZnuFG18WekhbA/g2/i97wGj+wUBeS6pcUeAym8u4BXh/75RXWhgIJhyC11hBzig6MljwA==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@smithy/types": "^4.12.0", - "@smithy/util-buffer-from": "^4.2.0", - "@smithy/util-utf8": "^4.2.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@smithy/hash-node/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD", - "peer": true - }, - "node_modules/@smithy/hash-stream-node": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/@smithy/hash-stream-node/-/hash-stream-node-4.2.8.tgz", - "integrity": "sha512-v0FLTXgHrTeheYZFGhR+ehX5qUm4IQsjAiL9qehad2cyjMWcN2QG6/4mSwbSgEQzI7jwfoXj7z4fxZUx/Mhj2w==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@smithy/types": "^4.12.0", - "@smithy/util-utf8": "^4.2.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@smithy/hash-stream-node/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD", - "peer": true - }, - "node_modules/@smithy/invalid-dependency": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/@smithy/invalid-dependency/-/invalid-dependency-4.2.8.tgz", - "integrity": "sha512-N9iozRybwAQ2dn9Fot9kI6/w9vos2oTXLhtK7ovGqwZjlOcxu6XhPlpLpC+INsxktqHinn5gS2DXDjDF2kG5sQ==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@smithy/types": "^4.12.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@smithy/invalid-dependency/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD", - "peer": true - }, - "node_modules/@smithy/is-array-buffer": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@smithy/is-array-buffer/-/is-array-buffer-4.2.0.tgz", - "integrity": "sha512-DZZZBvC7sjcYh4MazJSGiWMI2L7E0oCiRHREDzIxi/M2LY79/21iXt6aPLHge82wi5LsuRF5A06Ds3+0mlh6CQ==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@smithy/is-array-buffer/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD", - "peer": true - }, - "node_modules/@smithy/md5-js": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/@smithy/md5-js/-/md5-js-4.2.8.tgz", - "integrity": "sha512-oGMaLj4tVZzLi3itBa9TCswgMBr7k9b+qKYowQ6x1rTyTuO1IU2YHdHUa+891OsOH+wCsH7aTPRsTJO3RMQmjQ==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@smithy/types": "^4.12.0", - "@smithy/util-utf8": "^4.2.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@smithy/md5-js/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD", - "peer": true - }, - "node_modules/@smithy/middleware-content-length": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/@smithy/middleware-content-length/-/middleware-content-length-4.2.8.tgz", - "integrity": "sha512-RO0jeoaYAB1qBRhfVyq0pMgBoUK34YEJxVxyjOWYZiOKOq2yMZ4MnVXMZCUDenpozHue207+9P5ilTV1zeda0A==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@smithy/protocol-http": "^5.3.8", - "@smithy/types": "^4.12.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@smithy/middleware-content-length/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD", - "peer": true - }, - "node_modules/@smithy/middleware-endpoint": { - "version": "4.4.13", - "resolved": "https://registry.npmjs.org/@smithy/middleware-endpoint/-/middleware-endpoint-4.4.13.tgz", - "integrity": "sha512-x6vn0PjYmGdNuKh/juUJJewZh7MoQ46jYaJ2mvekF4EesMuFfrl4LaW/k97Zjf8PTCPQmPgMvwewg7eNoH9n5w==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@smithy/core": "^3.22.1", - "@smithy/middleware-serde": "^4.2.9", - "@smithy/node-config-provider": "^4.3.8", - "@smithy/shared-ini-file-loader": "^4.4.3", - "@smithy/types": "^4.12.0", - "@smithy/url-parser": "^4.2.8", - "@smithy/util-middleware": "^4.2.8", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@smithy/middleware-endpoint/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD", - "peer": true - }, - "node_modules/@smithy/middleware-retry": { - "version": "4.4.30", - "resolved": "https://registry.npmjs.org/@smithy/middleware-retry/-/middleware-retry-4.4.30.tgz", - "integrity": "sha512-CBGyFvN0f8hlnqKH/jckRDz78Snrp345+PVk8Ux7pnkUCW97Iinse59lY78hBt04h1GZ6hjBN94BRwZy1xC8Bg==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@smithy/node-config-provider": "^4.3.8", - "@smithy/protocol-http": "^5.3.8", - "@smithy/service-error-classification": "^4.2.8", - "@smithy/smithy-client": "^4.11.2", - "@smithy/types": "^4.12.0", - "@smithy/util-middleware": "^4.2.8", - "@smithy/util-retry": "^4.2.8", - "@smithy/uuid": "^1.1.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@smithy/middleware-retry/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD", - "peer": true - }, - "node_modules/@smithy/middleware-serde": { - "version": "4.2.9", - "resolved": "https://registry.npmjs.org/@smithy/middleware-serde/-/middleware-serde-4.2.9.tgz", - "integrity": "sha512-eMNiej0u/snzDvlqRGSN3Vl0ESn3838+nKyVfF2FKNXFbi4SERYT6PR392D39iczngbqqGG0Jl1DlCnp7tBbXQ==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@smithy/protocol-http": "^5.3.8", - "@smithy/types": "^4.12.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@smithy/middleware-serde/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD", - "peer": true - }, - "node_modules/@smithy/middleware-stack": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/@smithy/middleware-stack/-/middleware-stack-4.2.8.tgz", - "integrity": "sha512-w6LCfOviTYQjBctOKSwy6A8FIkQy7ICvglrZFl6Bw4FmcQ1Z420fUtIhxaUZZshRe0VCq4kvDiPiXrPZAe8oRA==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@smithy/types": "^4.12.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@smithy/middleware-stack/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD", - "peer": true - }, - "node_modules/@smithy/node-config-provider": { - "version": "4.3.8", - "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-4.3.8.tgz", - "integrity": "sha512-aFP1ai4lrbVlWjfpAfRSL8KFcnJQYfTl5QxLJXY32vghJrDuFyPZ6LtUL+JEGYiFRG1PfPLHLoxj107ulncLIg==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@smithy/property-provider": "^4.2.8", - "@smithy/shared-ini-file-loader": "^4.4.3", - "@smithy/types": "^4.12.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@smithy/node-config-provider/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD", - "peer": true - }, - "node_modules/@smithy/node-http-handler": { - "version": "4.4.9", - "resolved": "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-4.4.9.tgz", - "integrity": "sha512-KX5Wml5mF+luxm1szW4QDz32e3NObgJ4Fyw+irhph4I/2geXwUy4jkIMUs5ZPGflRBeR6BUkC2wqIab4Llgm3w==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@smithy/abort-controller": "^4.2.8", - "@smithy/protocol-http": "^5.3.8", - "@smithy/querystring-builder": "^4.2.8", - "@smithy/types": "^4.12.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@smithy/node-http-handler/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD", - "peer": true - }, - "node_modules/@smithy/property-provider": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/@smithy/property-provider/-/property-provider-4.2.8.tgz", - "integrity": "sha512-EtCTbyIveCKeOXDSWSdze3k612yCPq1YbXsbqX3UHhkOSW8zKsM9NOJG5gTIya0vbY2DIaieG8pKo1rITHYL0w==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@smithy/types": "^4.12.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@smithy/property-provider/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD", - "peer": true - }, - "node_modules/@smithy/protocol-http": { - "version": "5.3.8", - "resolved": "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-5.3.8.tgz", - "integrity": "sha512-QNINVDhxpZ5QnP3aviNHQFlRogQZDfYlCkQT+7tJnErPQbDhysondEjhikuANxgMsZrkGeiAxXy4jguEGsDrWQ==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@smithy/types": "^4.12.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@smithy/protocol-http/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD", - "peer": true - }, - "node_modules/@smithy/querystring-builder": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/@smithy/querystring-builder/-/querystring-builder-4.2.8.tgz", - "integrity": "sha512-Xr83r31+DrE8CP3MqPgMJl+pQlLLmOfiEUnoyAlGzzJIrEsbKsPy1hqH0qySaQm4oWrCBlUqRt+idEgunKB+iw==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@smithy/types": "^4.12.0", - "@smithy/util-uri-escape": "^4.2.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@smithy/querystring-builder/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD", - "peer": true - }, - "node_modules/@smithy/querystring-parser": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/@smithy/querystring-parser/-/querystring-parser-4.2.8.tgz", - "integrity": "sha512-vUurovluVy50CUlazOiXkPq40KGvGWSdmusa3130MwrR1UNnNgKAlj58wlOe61XSHRpUfIIh6cE0zZ8mzKaDPA==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@smithy/types": "^4.12.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@smithy/querystring-parser/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD", - "peer": true - }, - "node_modules/@smithy/service-error-classification": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/@smithy/service-error-classification/-/service-error-classification-4.2.8.tgz", - "integrity": "sha512-mZ5xddodpJhEt3RkCjbmUQuXUOaPNTkbMGR0bcS8FE0bJDLMZlhmpgrvPNCYglVw5rsYTpSnv19womw9WWXKQQ==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@smithy/types": "^4.12.0" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@smithy/shared-ini-file-loader": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-4.4.3.tgz", - "integrity": "sha512-DfQjxXQnzC5UbCUPeC3Ie8u+rIWZTvuDPAGU/BxzrOGhRvgUanaP68kDZA+jaT3ZI+djOf+4dERGlm9mWfFDrg==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@smithy/types": "^4.12.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@smithy/shared-ini-file-loader/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD", - "peer": true - }, - "node_modules/@smithy/signature-v4": { - "version": "5.3.8", - "resolved": "https://registry.npmjs.org/@smithy/signature-v4/-/signature-v4-5.3.8.tgz", - "integrity": "sha512-6A4vdGj7qKNRF16UIcO8HhHjKW27thsxYci+5r/uVRkdcBEkOEiY8OMPuydLX4QHSrJqGHPJzPRwwVTqbLZJhg==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@smithy/is-array-buffer": "^4.2.0", - "@smithy/protocol-http": "^5.3.8", - "@smithy/types": "^4.12.0", - "@smithy/util-hex-encoding": "^4.2.0", - "@smithy/util-middleware": "^4.2.8", - "@smithy/util-uri-escape": "^4.2.0", - "@smithy/util-utf8": "^4.2.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@smithy/signature-v4/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD", - "peer": true - }, - "node_modules/@smithy/smithy-client": { - "version": "4.11.2", - "resolved": "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-4.11.2.tgz", - "integrity": "sha512-SCkGmFak/xC1n7hKRsUr6wOnBTJ3L22Qd4e8H1fQIuKTAjntwgU8lrdMe7uHdiT2mJAOWA/60qaW9tiMu69n1A==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@smithy/core": "^3.22.1", - "@smithy/middleware-endpoint": "^4.4.13", - "@smithy/middleware-stack": "^4.2.8", - "@smithy/protocol-http": "^5.3.8", - "@smithy/types": "^4.12.0", - "@smithy/util-stream": "^4.5.11", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@smithy/smithy-client/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD", - "peer": true - }, - "node_modules/@smithy/types": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/@smithy/types/-/types-4.12.0.tgz", - "integrity": "sha512-9YcuJVTOBDjg9LWo23Qp0lTQ3D7fQsQtwle0jVfpbUHy9qBwCEgKuVH4FqFB3VYu0nwdHKiEMA+oXz7oV8X1kw==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@smithy/types/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD", - "peer": true - }, - "node_modules/@smithy/url-parser": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/@smithy/url-parser/-/url-parser-4.2.8.tgz", - "integrity": "sha512-NQho9U68TGMEU639YkXnVMV3GEFFULmmaWdlu1E9qzyIePOHsoSnagTGSDv1Zi8DCNN6btxOSdgmy5E/hsZwhA==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@smithy/querystring-parser": "^4.2.8", - "@smithy/types": "^4.12.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@smithy/url-parser/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD", - "peer": true - }, - "node_modules/@smithy/util-base64": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@smithy/util-base64/-/util-base64-4.3.0.tgz", - "integrity": "sha512-GkXZ59JfyxsIwNTWFnjmFEI8kZpRNIBfxKjv09+nkAWPt/4aGaEWMM04m4sxgNVWkbt2MdSvE3KF/PfX4nFedQ==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@smithy/util-buffer-from": "^4.2.0", - "@smithy/util-utf8": "^4.2.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@smithy/util-base64/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD", - "peer": true - }, - "node_modules/@smithy/util-body-length-browser": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@smithy/util-body-length-browser/-/util-body-length-browser-4.2.0.tgz", - "integrity": "sha512-Fkoh/I76szMKJnBXWPdFkQJl2r9SjPt3cMzLdOB6eJ4Pnpas8hVoWPYemX/peO0yrrvldgCUVJqOAjUrOLjbxg==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@smithy/util-body-length-browser/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD", - "peer": true - }, - "node_modules/@smithy/util-body-length-node": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@smithy/util-body-length-node/-/util-body-length-node-4.2.1.tgz", - "integrity": "sha512-h53dz/pISVrVrfxV1iqXlx5pRg3V2YWFcSQyPyXZRrZoZj4R4DeWRDo1a7dd3CPTcFi3kE+98tuNyD2axyZReA==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@smithy/util-body-length-node/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD", - "peer": true - }, - "node_modules/@smithy/util-buffer-from": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@smithy/util-buffer-from/-/util-buffer-from-4.2.0.tgz", - "integrity": "sha512-kAY9hTKulTNevM2nlRtxAG2FQ3B2OR6QIrPY3zE5LqJy1oxzmgBGsHLWTcNhWXKchgA0WHW+mZkQrng/pgcCew==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@smithy/is-array-buffer": "^4.2.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@smithy/util-buffer-from/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD", - "peer": true - }, - "node_modules/@smithy/util-config-provider": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@smithy/util-config-provider/-/util-config-provider-4.2.0.tgz", - "integrity": "sha512-YEjpl6XJ36FTKmD+kRJJWYvrHeUvm5ykaUS5xK+6oXffQPHeEM4/nXlZPe+Wu0lsgRUcNZiliYNh/y7q9c2y6Q==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@smithy/util-config-provider/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD", - "peer": true - }, - "node_modules/@smithy/util-defaults-mode-browser": { - "version": "4.3.29", - "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-4.3.29.tgz", - "integrity": "sha512-nIGy3DNRmOjaYaaKcQDzmWsro9uxlaqUOhZDHQed9MW/GmkBZPtnU70Pu1+GT9IBmUXwRdDuiyaeiy9Xtpn3+Q==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@smithy/property-provider": "^4.2.8", - "@smithy/smithy-client": "^4.11.2", - "@smithy/types": "^4.12.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@smithy/util-defaults-mode-browser/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD", - "peer": true - }, - "node_modules/@smithy/util-defaults-mode-node": { - "version": "4.2.32", - "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-4.2.32.tgz", - "integrity": "sha512-7dtFff6pu5fsjqrVve0YMhrnzJtccCWDacNKOkiZjJ++fmjGExmmSu341x+WU6Oc1IccL7lDuaUj7SfrHpWc5Q==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@smithy/config-resolver": "^4.4.6", - "@smithy/credential-provider-imds": "^4.2.8", - "@smithy/node-config-provider": "^4.3.8", - "@smithy/property-provider": "^4.2.8", - "@smithy/smithy-client": "^4.11.2", - "@smithy/types": "^4.12.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@smithy/util-defaults-mode-node/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD", - "peer": true - }, - "node_modules/@smithy/util-endpoints": { - "version": "3.2.8", - "resolved": "https://registry.npmjs.org/@smithy/util-endpoints/-/util-endpoints-3.2.8.tgz", - "integrity": "sha512-8JaVTn3pBDkhZgHQ8R0epwWt+BqPSLCjdjXXusK1onwJlRuN69fbvSK66aIKKO7SwVFM6x2J2ox5X8pOaWcUEw==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@smithy/node-config-provider": "^4.3.8", - "@smithy/types": "^4.12.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@smithy/util-endpoints/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD", - "peer": true - }, - "node_modules/@smithy/util-hex-encoding": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@smithy/util-hex-encoding/-/util-hex-encoding-4.2.0.tgz", - "integrity": "sha512-CCQBwJIvXMLKxVbO88IukazJD9a4kQ9ZN7/UMGBjBcJYvatpWk+9g870El4cB8/EJxfe+k+y0GmR9CAzkF+Nbw==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@smithy/util-hex-encoding/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD", - "peer": true - }, - "node_modules/@smithy/util-middleware": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/@smithy/util-middleware/-/util-middleware-4.2.8.tgz", - "integrity": "sha512-PMqfeJxLcNPMDgvPbbLl/2Vpin+luxqTGPpW3NAQVLbRrFRzTa4rNAASYeIGjRV9Ytuhzny39SpyU04EQreF+A==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@smithy/types": "^4.12.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@smithy/util-middleware/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD", - "peer": true - }, - "node_modules/@smithy/util-retry": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/@smithy/util-retry/-/util-retry-4.2.8.tgz", - "integrity": "sha512-CfJqwvoRY0kTGe5AkQokpURNCT1u/MkRzMTASWMPPo2hNSnKtF1D45dQl3DE2LKLr4m+PW9mCeBMJr5mCAVThg==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@smithy/service-error-classification": "^4.2.8", - "@smithy/types": "^4.12.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@smithy/util-retry/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD", - "peer": true - }, - "node_modules/@smithy/util-stream": { - "version": "4.5.11", - "resolved": "https://registry.npmjs.org/@smithy/util-stream/-/util-stream-4.5.11.tgz", - "integrity": "sha512-lKmZ0S/3Qj2OF5H1+VzvDLb6kRxGzZHq6f3rAsoSu5cTLGsn3v3VQBA8czkNNXlLjoFEtVu3OQT2jEeOtOE2CA==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@smithy/fetch-http-handler": "^5.3.9", - "@smithy/node-http-handler": "^4.4.9", - "@smithy/types": "^4.12.0", - "@smithy/util-base64": "^4.3.0", - "@smithy/util-buffer-from": "^4.2.0", - "@smithy/util-hex-encoding": "^4.2.0", - "@smithy/util-utf8": "^4.2.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@smithy/util-stream/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD", - "peer": true - }, - "node_modules/@smithy/util-uri-escape": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@smithy/util-uri-escape/-/util-uri-escape-4.2.0.tgz", - "integrity": "sha512-igZpCKV9+E/Mzrpq6YacdTQ0qTiLm85gD6N/IrmyDvQFA4UnU3d5g3m8tMT/6zG/vVkWSU+VxeUyGonL62DuxA==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@smithy/util-uri-escape/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD", - "peer": true - }, - "node_modules/@smithy/util-utf8": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-4.2.0.tgz", - "integrity": "sha512-zBPfuzoI8xyBtR2P6WQj63Rz8i3AmfAaJLuNG8dWsfvPe8lO4aCPYLn879mEgHndZH1zQ2oXmG8O1GGzzaoZiw==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@smithy/util-buffer-from": "^4.2.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@smithy/util-utf8/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD", - "peer": true - }, - "node_modules/@smithy/util-waiter": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/@smithy/util-waiter/-/util-waiter-4.2.8.tgz", - "integrity": "sha512-n+lahlMWk+aejGuax7DPWtqav8HYnWxQwR+LCG2BgCUmaGcTe9qZCFsmw8TMg9iG75HOwhrJCX9TCJRLH+Yzqg==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@smithy/abort-controller": "^4.2.8", - "@smithy/types": "^4.12.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@smithy/util-waiter/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD", - "peer": true - }, - "node_modules/@smithy/uuid": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@smithy/uuid/-/uuid-1.1.0.tgz", - "integrity": "sha512-4aUIteuyxtBUhVdiQqcDhKFitwfd9hqoSDYY2KRXiWtgoWJ9Bmise+KfEPDiVHWeJepvF8xJO9/9+WDIciMFFw==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@smithy/uuid/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD", - "peer": true - }, - "node_modules/@testing-library/dom": { - "version": "10.4.1", - "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-10.4.1.tgz", - "integrity": "sha512-o4PXJQidqJl82ckFaXUeoAW+XysPLauYI43Abki5hABd853iMhitooc6znOnczgbTYmEP6U6/y1ZyKAIsvMKGg==", - "license": "MIT", - "peer": true, - "dependencies": { - "@babel/code-frame": "^7.10.4", - "@babel/runtime": "^7.12.5", - "@types/aria-query": "^5.0.1", - "aria-query": "5.3.0", - "dom-accessibility-api": "^0.5.9", - "lz-string": "^1.5.0", - "picocolors": "1.1.1", - "pretty-format": "^27.0.2" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/@testing-library/react": { - "version": "16.3.2", - "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-16.3.2.tgz", - "integrity": "sha512-XU5/SytQM+ykqMnAnvB2umaJNIOsLF3PVv//1Ew4CTcpz0/BRyy/af40qqrt7SjKpDdT1saBMc42CUok5gaw+g==", - "license": "MIT", - "peer": true, - "dependencies": { - "@babel/runtime": "^7.12.5" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@testing-library/dom": "^10.0.0", - "@types/react": "^18.0.0 || ^19.0.0", - "@types/react-dom": "^18.0.0 || ^19.0.0", - "react": "^18.0.0 || ^19.0.0", - "react-dom": "^18.0.0 || ^19.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@testing-library/user-event": { - "version": "14.6.1", - "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-14.6.1.tgz", - "integrity": "sha512-vq7fv0rnt+QTXgPxr5Hjc210p6YKq2kmdziLgnsZGgLJ9e6VAShx1pACLuRjd/AS/sr7phAR58OIIpf0LlmQNw==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=12", - "npm": ">=6" - }, - "peerDependencies": { - "@testing-library/dom": ">=7.21.4" - } - }, - "node_modules/@tootallnate/once": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", - "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/@tsconfig/node10": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.12.tgz", - "integrity": "sha512-UCYBaeFvM11aU2y3YPZ//O5Rhj+xKyzy7mvcIoAjASbigy8mHMryP5cK7dgjlz2hWxh1g5pLw084E0a/wlUSFQ==", - "license": "MIT", - "peer": true - }, - "node_modules/@tsconfig/node12": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", - "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", - "license": "MIT", - "peer": true - }, - "node_modules/@tsconfig/node14": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", - "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", - "license": "MIT", - "peer": true - }, - "node_modules/@tsconfig/node16": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", - "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", - "license": "MIT", - "peer": true - }, - "node_modules/@types/aria-query": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.4.tgz", - "integrity": "sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==", - "license": "MIT", - "peer": true - }, - "node_modules/@types/crypto-js": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/@types/crypto-js/-/crypto-js-4.1.1.tgz", - "integrity": "sha512-BG7fQKZ689HIoc5h+6D2Dgq1fABRa0RbBWKBd9SP/MVRVXROflpm5fhwyATX5duFmbStzyzyycPB8qUYKDH3NA==", - "license": "MIT", - "peer": true - }, - "node_modules/@types/cytoscape": { - "version": "3.21.9", - "resolved": "https://registry.npmjs.org/@types/cytoscape/-/cytoscape-3.21.9.tgz", - "integrity": "sha512-JyrG4tllI6jvuISPjHK9j2Xv/LTbnLekLke5otGStjFluIyA9JjgnvgZrSBsp8cEDpiTjwgZUZwpPv8TSBcoLw==", - "license": "MIT", - "peer": true - }, - "node_modules/@types/dom4": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/dom4/-/dom4-2.0.4.tgz", - "integrity": "sha512-PD+wqNhrjWFjAlSVd18jvChZvOXB2SOwAILBmuYev5zswBats5qmzs/QFoooLKd2omj9BT05a8MeSeRmXLGY+Q==", - "license": "MIT", - "peer": true - }, - "node_modules/@types/file-saver": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@types/file-saver/-/file-saver-2.0.5.tgz", - "integrity": "sha512-zv9kNf3keYegP5oThGLaPk8E081DFDuwfqjtiTzm6PoxChdJ1raSuADf2YGCVIyrSynLrgc8JWv296s7Q7pQSQ==", - "license": "MIT", - "peer": true - }, - "node_modules/@types/hast": { - "version": "2.3.10", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-2.3.10.tgz", - "integrity": "sha512-McWspRw8xx8J9HurkVBfYj0xKoE25tOFlHGdx4MJ5xORQrMGZNqJhVQWaIbm6Oyla5kYOXtDiopzKRJzEOkwJw==", - "license": "MIT", - "dependencies": { - "@types/unist": "^2" - } - }, - "node_modules/@types/istanbul-lib-coverage": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", - "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", - "license": "MIT", - "peer": true - }, - "node_modules/@types/jquery": { - "version": "3.5.33", - "resolved": "https://registry.npmjs.org/@types/jquery/-/jquery-3.5.33.tgz", - "integrity": "sha512-SeyVJXlCZpEki5F0ghuYe+L+PprQta6nRZqhONt9F13dWBtR/ftoaIbdRQ7cis7womE+X2LKhsDdDtkkDhJS6g==", - "license": "MIT", - "peer": true, - "dependencies": { - "@types/sizzle": "*" - } - }, - "node_modules/@types/jsdom": { - "version": "20.0.1", - "resolved": "https://registry.npmjs.org/@types/jsdom/-/jsdom-20.0.1.tgz", - "integrity": "sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ==", - "license": "MIT", - "peer": true, - "dependencies": { - "@types/node": "*", - "@types/tough-cookie": "*", - "parse5": "^7.0.0" - } - }, - "node_modules/@types/marked": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/@types/marked/-/marked-4.3.2.tgz", - "integrity": "sha512-a79Yc3TOk6dGdituy8hmTTJXjOkZ7zsFYV10L337ttq/rec8lRMDBpV7fL3uLx6TgbFCa5DU/h8FmIBQPSbU0w==", - "license": "MIT", - "peer": true - }, - "node_modules/@types/nanoid": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@types/nanoid/-/nanoid-2.0.0.tgz", - "integrity": "sha512-NtwPHfAyU3IDXdKAB2OMPpAauHBg9gUjpOYr3FAzI84D70nWdS8k5mryteLvT/s1ACeAFAkGg132/XJVN4qx/w==", - "license": "MIT", - "peer": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/node": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-25.2.1.tgz", - "integrity": "sha512-CPrnr8voK8vC6eEtyRzvMpgp3VyVRhgclonE7qYi6P9sXwYb59ucfrnmFBTaP0yUi8Gk4yZg/LlTJULGxvTNsg==", - "license": "MIT", - "peer": true, - "dependencies": { - "undici-types": "~7.16.0" - } - }, - "node_modules/@types/prop-types": { - "version": "15.7.15", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.15.tgz", - "integrity": "sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==", - "license": "MIT", - "peer": true - }, - "node_modules/@types/react": { - "version": "17.0.39", - "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.39.tgz", - "integrity": "sha512-UVavlfAxDd/AgAacMa60Azl7ygyQNRwC/DsHZmKgNvPmRR5p70AJ5Q9EAmL2NWOJmeV+vVUI4IAP7GZrN8h8Ug==", - "license": "MIT", - "peer": true, - "dependencies": { - "@types/prop-types": "*", - "@types/scheduler": "*", - "csstype": "^3.0.2" - } - }, - "node_modules/@types/react-dom": { - "version": "17.0.13", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-17.0.13.tgz", - "integrity": "sha512-wEP+B8hzvy6ORDv1QBhcQia4j6ea4SFIBttHYpXKPFZRviBvknq0FRh3VrIxeXUmsPkwuXVZrVGG7KUVONmXCQ==", - "license": "MIT", - "peer": true, - "dependencies": { - "@types/react": "*" - } - }, - "node_modules/@types/scheduler": { - "version": "0.26.0", - "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.26.0.tgz", - "integrity": "sha512-WFHp9YUJQ6CKshqoC37iOlHnQSmxNc795UhB26CyBBttrN9svdIrUjl/NjnNmfcwtncN0h/0PPAFWv9ovP8mLA==", - "license": "MIT", - "peer": true - }, - "node_modules/@types/sizzle": { - "version": "2.3.10", - "resolved": "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.10.tgz", - "integrity": "sha512-TC0dmN0K8YcWEAEfiPi5gJP14eJe30TTGjkvek3iM/1NdHHsdCA/Td6GvNndMOo/iSnIsZ4HuuhrYPDAmbxzww==", - "license": "MIT", - "peer": true - }, - "node_modules/@types/tough-cookie": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.5.tgz", - "integrity": "sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==", - "license": "MIT", - "peer": true - }, - "node_modules/@types/unist": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", - "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==", - "license": "MIT" - }, - "node_modules/@types/use-sync-external-store": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/@types/use-sync-external-store/-/use-sync-external-store-0.0.3.tgz", - "integrity": "sha512-EwmlvuaxPNej9+T4v5AuBPJa2x2UOJVdjCtDHgcDqitUeOtjnJKJ+apYjVcAoBEMjKW1VVFGZLUb5+qqa09XFA==", - "license": "MIT", - "peer": true - }, - "node_modules/@yarnpkg/lockfile": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz", - "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==", - "license": "BSD-2-Clause", - "peer": true - }, - "node_modules/abab": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", - "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", - "deprecated": "Use your platform's native atob() and btoa() methods instead", - "license": "BSD-3-Clause", - "peer": true - }, - "node_modules/acorn": { - "version": "8.15.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", - "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", - "license": "MIT", - "peer": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-globals": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-7.0.1.tgz", - "integrity": "sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==", - "license": "MIT", - "peer": true, - "dependencies": { - "acorn": "^8.1.0", - "acorn-walk": "^8.0.2" - } - }, - "node_modules/acorn-walk": { - "version": "8.3.4", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz", - "integrity": "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==", - "license": "MIT", - "peer": true, - "dependencies": { - "acorn": "^8.11.0" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "license": "MIT", - "peer": true, - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "license": "MIT", - "peer": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/ansidec": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/ansidec/-/ansidec-0.3.4.tgz", - "integrity": "sha512-Ydgbey4zqUmmNN2i2OVeVHXig3PxHRbok2X6B2Sogmb92JzZUFfTL806dT7os6tBL1peXItfeFt76CP3zsoXUg==", - "license": "MIT", - "peer": true - }, - "node_modules/any-promise": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", - "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", - "license": "MIT", - "peer": true - }, - "node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "license": "ISC", - "peer": true, - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/arch": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/arch/-/arch-2.2.0.tgz", - "integrity": "sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "peer": true - }, - "node_modules/archiver": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/archiver/-/archiver-5.3.2.tgz", - "integrity": "sha512-+25nxyyznAXF7Nef3y0EbBeqmGZgeN/BxHX29Rs39djAfaFalmQ89SE6CWyDCHzGL0yt/ycBtNOmGTW0FyGWNw==", - "license": "MIT", - "peer": true, - "dependencies": { - "archiver-utils": "^2.1.0", - "async": "^3.2.4", - "buffer-crc32": "^0.2.1", - "readable-stream": "^3.6.0", - "readdir-glob": "^1.1.2", - "tar-stream": "^2.2.0", - "zip-stream": "^4.1.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/archiver-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-2.1.0.tgz", - "integrity": "sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==", - "license": "MIT", - "peer": true, - "dependencies": { - "glob": "^7.1.4", - "graceful-fs": "^4.2.0", - "lazystream": "^1.0.0", - "lodash.defaults": "^4.2.0", - "lodash.difference": "^4.5.0", - "lodash.flatten": "^4.4.0", - "lodash.isplainobject": "^4.0.6", - "lodash.union": "^4.6.0", - "normalize-path": "^3.0.0", - "readable-stream": "^2.0.0" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/archiver/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "license": "MIT", - "peer": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/arg": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", - "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", - "license": "MIT", - "peer": true - }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "license": "Python-2.0", - "peer": true - }, - "node_modules/aria-query": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", - "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "dequal": "^2.0.3" - } - }, - "node_modules/async": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", - "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", - "license": "MIT", - "peer": true - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", - "license": "MIT", - "peer": true - }, - "node_modules/at-least-node": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", - "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", - "license": "ISC", - "peer": true, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/axios": { - "version": "0.30.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.30.2.tgz", - "integrity": "sha512-0pE4RQ4UQi1jKY6p7u6i1Tkzqmu+d+/tHS7Q7rKunWLB9WyilBTpHHpXzPNMDj5hTbK0B0PTLSz07yqMBiF6xg==", - "license": "MIT", - "peer": true, - "dependencies": { - "follow-redirects": "^1.15.4", - "form-data": "^4.0.4", - "proxy-from-env": "^1.1.0" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "license": "MIT", - "peer": true - }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "peer": true - }, - "node_modules/binary-extensions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", - "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/bl": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", - "license": "MIT", - "peer": true, - "dependencies": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "node_modules/bl/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "license": "MIT", - "peer": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/bowser": { - "version": "2.13.1", - "resolved": "https://registry.npmjs.org/bowser/-/bowser-2.13.1.tgz", - "integrity": "sha512-OHawaAbjwx6rqICCKgSG0SAnT05bzd7ppyKLVUITZpANBaaMFBAsaNkto3LoQ31tyFP5kNujE8Cdx85G9VzOkw==", - "license": "MIT", - "peer": true - }, - "node_modules/brace-expansion": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", - "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", - "license": "MIT", - "peer": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", - "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", - "license": "MIT", - "peer": true, - "dependencies": { - "fill-range": "^7.1.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "peer": true, - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "node_modules/buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", - "license": "MIT", - "peer": true, - "engines": { - "node": "*" - } - }, - "node_modules/c8": { - "version": "7.14.0", - "resolved": "https://registry.npmjs.org/c8/-/c8-7.14.0.tgz", - "integrity": "sha512-i04rtkkcNcCf7zsQcSv/T9EbUn4RXQ6mropeMcjFOsQXQ0iGLAr/xT6TImQg4+U9hmNpN9XdvPkjUL1IzbgxJw==", - "license": "ISC", - "peer": true, - "dependencies": { - "@bcoe/v8-coverage": "^0.2.3", - "@istanbuljs/schema": "^0.1.3", - "find-up": "^5.0.0", - "foreground-child": "^2.0.0", - "istanbul-lib-coverage": "^3.2.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-reports": "^3.1.4", - "rimraf": "^3.0.2", - "test-exclude": "^6.0.0", - "v8-to-istanbul": "^9.0.0", - "yargs": "^16.2.0", - "yargs-parser": "^20.2.9" - }, - "bin": { - "c8": "bin/c8.js" - }, - "engines": { - "node": ">=10.12.0" - } - }, - "node_modules/call-bind": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", - "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", - "license": "MIT", - "peer": true, - "dependencies": { - "call-bind-apply-helpers": "^1.0.0", - "es-define-property": "^1.0.0", - "get-intrinsic": "^1.2.4", - "set-function-length": "^1.2.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/call-bind-apply-helpers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", - "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", - "license": "MIT", - "peer": true, - "dependencies": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/call-bound": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", - "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", - "license": "MIT", - "peer": true, - "dependencies": { - "call-bind-apply-helpers": "^1.0.2", - "get-intrinsic": "^1.3.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/camelcase-css": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", - "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/ccount": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/ccount/-/ccount-1.1.0.tgz", - "integrity": "sha512-vlNK021QdI7PNeiUh/lKkC/mNHHfV0m/Ad5JoI0TYtlBnJAslM/JIkm/tGC88bkLIwO6OQ5uV6ztS6kVAtCDlg==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "license": "MIT", - "peer": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/character-entities": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.4.tgz", - "integrity": "sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/character-entities-html4": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-1.1.4.tgz", - "integrity": "sha512-HRcDxZuZqMx3/a+qrzxdBKBPUpxWEq9xw2OPZ3a/174ihfrQKVsFhqtthBInFy1zZ9GgZyFXOatNujm8M+El3g==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/character-entities-legacy": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz", - "integrity": "sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/character-reference-invalid": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz", - "integrity": "sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/chokidar": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", - "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", - "license": "MIT", - "peer": true, - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/chokidar/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "license": "ISC", - "peer": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/chrono-node": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/chrono-node/-/chrono-node-2.3.0.tgz", - "integrity": "sha512-70DhMEY3RiwB/9+Fstpu9cbI+ycO/WNHxCOI1Lvo+LLiVdhMVOJ8B3jzXgZHCiGbZc7SKHFsP7apeeuP/EAw+Q==", - "license": "MIT", - "peer": true, - "dependencies": { - "dayjs": "^1.10.0" - } - }, - "node_modules/ci-info": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", - "license": "MIT", - "peer": true - }, - "node_modules/classnames": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.5.1.tgz", - "integrity": "sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==", - "license": "MIT", - "peer": true - }, - "node_modules/clipboardy": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/clipboardy/-/clipboardy-2.3.0.tgz", - "integrity": "sha512-mKhiIL2DrQIsuXMgBgnfEHOZOryC7kY7YO//TN6c63wlEm3NG5tz+YgY5rVi29KCmq/QQjKYvM7a19+MDOTHOQ==", - "license": "MIT", - "peer": true, - "dependencies": { - "arch": "^2.1.1", - "execa": "^1.0.0", - "is-wsl": "^2.1.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "license": "ISC", - "peer": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "node_modules/clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/color": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz", - "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==", - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1", - "color-string": "^1.9.0" - }, - "engines": { - "node": ">=12.5.0" - } - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "license": "MIT" - }, - "node_modules/color-string": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", - "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", - "license": "MIT", - "dependencies": { - "color-name": "^1.0.0", - "simple-swizzle": "^0.2.2" - } - }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "license": "MIT", - "peer": true, - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/comma-separated-tokens": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-1.0.8.tgz", - "integrity": "sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/commander": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/compress-commons": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-4.1.2.tgz", - "integrity": "sha512-D3uMHtGc/fcO1Gt1/L7i1e33VOvD4A9hfQLP+6ewd+BvG/gQ84Yh4oftEhAdjSMgBgwGL+jsppT7JYNpo6MHHg==", - "license": "MIT", - "peer": true, - "dependencies": { - "buffer-crc32": "^0.2.13", - "crc32-stream": "^4.0.2", - "normalize-path": "^3.0.0", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/compress-commons/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "license": "MIT", - "peer": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "license": "MIT", - "peer": true - }, - "node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "license": "MIT", - "peer": true - }, - "node_modules/core-js-pure": { - "version": "3.48.0", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.48.0.tgz", - "integrity": "sha512-1slJgk89tWC51HQ1AEqG+s2VuwpTRr8ocu4n20QUcH1v9lAN0RXen0Q0AABa/DK1I7RrNWLucplOHMx8hfTGTw==", - "hasInstallScript": true, - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", - "license": "MIT", - "peer": true - }, - "node_modules/coveralls-next": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/coveralls-next/-/coveralls-next-4.2.2.tgz", - "integrity": "sha512-Tw1TKXV0+aEfOgRYBN97RtEZlrLxBiZKFkngsupONkJwy0uYQNbB6VfAEnGnOUa5WkW5sBhjGB2tWha6ULrYkw==", - "license": "BSD-2-Clause", - "peer": true, - "dependencies": { - "form-data": "4.0.4", - "js-yaml": "4.1.0", - "lcov-parse": "1.0.0", - "log-driver": "1.2.7", - "minimist": "1.2.8" - }, - "bin": { - "coveralls": "bin/coveralls.js" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/crc-32": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", - "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==", - "license": "Apache-2.0", - "peer": true, - "bin": { - "crc32": "bin/crc32.njs" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/crc32-stream": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-4.0.3.tgz", - "integrity": "sha512-NT7w2JVU7DFroFdYkeq8cywxrgjPHWkdX1wjpRQXPX5Asews3tA+Ght6lddQO5Mkumffp3X7GEqku3epj2toIw==", - "license": "MIT", - "peer": true, - "dependencies": { - "crc-32": "^1.2.0", - "readable-stream": "^3.4.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/crc32-stream/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "license": "MIT", - "peer": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/create-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", - "license": "MIT", - "peer": true - }, - "node_modules/cross-spawn": { - "version": "6.0.6", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.6.tgz", - "integrity": "sha512-VqCUuhcd1iB+dsv8gxPttb5iZh/D0iubSP21g36KXdEuf6I5JiioesUVjpCdHV9MZRUfVFlvwtIUyPfxo5trtw==", - "license": "MIT", - "peer": true, - "dependencies": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - }, - "engines": { - "node": ">=4.8" - } - }, - "node_modules/crypto-js": { - "version": "3.1.9-1", - "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-3.1.9-1.tgz", - "integrity": "sha512-W93aKztssqf29OvUlqfikzGyYbD1rpkXvGP9IQ1JchLY3bxaLXZSWYbwrtib2vk8DobrDzX7PIXcDWHp0B6Ymw==", - "license": "MIT", - "peer": true - }, - "node_modules/cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "license": "MIT", - "peer": true, - "bin": { - "cssesc": "bin/cssesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/cssom": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.5.0.tgz", - "integrity": "sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==", - "license": "MIT", - "peer": true - }, - "node_modules/cssstyle": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", - "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", - "license": "MIT", - "peer": true, - "dependencies": { - "cssom": "~0.3.6" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cssstyle/node_modules/cssom": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", - "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", - "license": "MIT", - "peer": true - }, - "node_modules/csstype": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", - "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", - "license": "MIT", - "peer": true - }, - "node_modules/cytoscape": { - "version": "3.33.1", - "resolved": "https://registry.npmjs.org/cytoscape/-/cytoscape-3.33.1.tgz", - "integrity": "sha512-iJc4TwyANnOGR1OmWhsS9ayRS3s+XQ185FmuHObThD+5AeJCakAAbWv8KimMTt08xCCLNgneQwFp+JRJOr9qGQ==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/data-uri-to-buffer": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz", - "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">= 12" - } - }, - "node_modules/data-urls": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-3.0.2.tgz", - "integrity": "sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==", - "license": "MIT", - "peer": true, - "dependencies": { - "abab": "^2.0.6", - "whatwg-mimetype": "^3.0.0", - "whatwg-url": "^11.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/date-fns": { - "version": "2.30.0", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz", - "integrity": "sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.21.0" - }, - "engines": { - "node": ">=0.11" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/date-fns" - } - }, - "node_modules/dayjs": { - "version": "1.11.19", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.19.tgz", - "integrity": "sha512-t5EcLVS6QPBNqM2z8fakk/NKel+Xzshgt8FFKAn+qwlD1pzZWxh0nVCrvFK7ZDb6XucZeF9z8C7CBWTRIVApAw==", - "license": "MIT", - "peer": true - }, - "node_modules/debug": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", - "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", - "license": "MIT", - "peer": true, - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/decimal.js": { - "version": "10.3.1", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.3.1.tgz", - "integrity": "sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ==", - "license": "MIT", - "peer": true - }, - "node_modules/deep-equal": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.2.tgz", - "integrity": "sha512-5tdhKF6DbU7iIzrIOa1AOUt39ZRm13cmL1cGEh//aqR8x9+tNfbywRf0n5FD/18OKMdo7DNEtrX2t22ZAkI+eg==", - "license": "MIT", - "peer": true, - "dependencies": { - "is-arguments": "^1.1.1", - "is-date-object": "^1.0.5", - "is-regex": "^1.1.4", - "object-is": "^1.1.5", - "object-keys": "^1.1.1", - "regexp.prototype.flags": "^1.5.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/defaults": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", - "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", - "license": "MIT", - "peer": true, - "dependencies": { - "clone": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/define-data-property": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", - "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", - "license": "MIT", - "peer": true, - "dependencies": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "gopd": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/define-properties": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", - "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", - "license": "MIT", - "peer": true, - "dependencies": { - "define-data-property": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/dequal": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", - "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/didyoumean": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", - "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", - "license": "Apache-2.0", - "peer": true - }, - "node_modules/diff": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.4.tgz", - "integrity": "sha512-X07nttJQkwkfKfvTPG/KSnE2OMdcUCao6+eXF3wmnIQRn2aPAHH3VxDbDOdegkd6JbPsXqShpvEOHfAT+nCNwQ==", - "license": "BSD-3-Clause", - "peer": true, - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/dlv": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", - "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", - "license": "MIT", - "peer": true - }, - "node_modules/dom-accessibility-api": { - "version": "0.5.16", - "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz", - "integrity": "sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==", - "license": "MIT", - "peer": true - }, - "node_modules/dom-helpers": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-3.4.0.tgz", - "integrity": "sha512-LnuPJ+dwqKDIyotW1VzmOZ5TONUN7CwkCR5hrgawTUbkBGYdeoNLZo6nNfGkCrjtE1nXXaj7iMMpDa8/d9WoIA==", - "license": "MIT", - "peer": true, - "dependencies": { - "@babel/runtime": "^7.1.2" - } - }, - "node_modules/dom4": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/dom4/-/dom4-2.1.6.tgz", - "integrity": "sha512-JkCVGnN4ofKGbjf5Uvc8mmxaATIErKQKSgACdBXpsQ3fY6DlIpAyWfiBSrGkttATssbDCp3psiAKWXk5gmjycA==", - "peer": true - }, - "node_modules/domexception": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/domexception/-/domexception-4.0.0.tgz", - "integrity": "sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==", - "deprecated": "Use your platform's native DOMException instead", - "license": "MIT", - "peer": true, - "dependencies": { - "webidl-conversions": "^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/dotenv": { - "version": "16.6.1", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.6.1.tgz", - "integrity": "sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==", - "license": "BSD-2-Clause", - "peer": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://dotenvx.com" - } - }, - "node_modules/dunder-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", - "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", - "license": "MIT", - "peer": true, - "dependencies": { - "call-bind-apply-helpers": "^1.0.1", - "es-errors": "^1.3.0", - "gopd": "^1.2.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/edn-data": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/edn-data/-/edn-data-1.1.2.tgz", - "integrity": "sha512-RI1i17URvOrBtSNEccbsXkuUZdc67QUBMqXGF62KPek85EdFGS2UKw76hNhOBl5kK4h7V4d32Ut15b/XVwKEXA==", - "license": "MIT", - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "license": "MIT", - "peer": true - }, - "node_modules/end-of-stream": { - "version": "1.4.5", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.5.tgz", - "integrity": "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==", - "license": "MIT", - "peer": true, - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/entities": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz", - "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==", - "license": "BSD-2-Clause", - "peer": true, - "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/es-define-property": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", - "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-errors": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", - "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-object-atoms": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", - "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", - "license": "MIT", - "peer": true, - "dependencies": { - "es-errors": "^1.3.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-set-tostringtag": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", - "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", - "license": "MIT", - "peer": true, - "dependencies": { - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.6", - "has-tostringtag": "^1.0.2", - "hasown": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/esbuild": { - "version": "0.17.14", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.14.tgz", - "integrity": "sha512-vOO5XhmVj/1XQR9NQ1UPq6qvMYL7QFJU57J5fKBKBKxp17uDt5PgxFDb4A2nEiXhr1qQs4x0F5+66hVVw4ruNw==", - "hasInstallScript": true, - "license": "MIT", - "peer": true, - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=12" - }, - "optionalDependencies": { - "@esbuild/android-arm": "0.17.14", - "@esbuild/android-arm64": "0.17.14", - "@esbuild/android-x64": "0.17.14", - "@esbuild/darwin-arm64": "0.17.14", - "@esbuild/darwin-x64": "0.17.14", - "@esbuild/freebsd-arm64": "0.17.14", - "@esbuild/freebsd-x64": "0.17.14", - "@esbuild/linux-arm": "0.17.14", - "@esbuild/linux-arm64": "0.17.14", - "@esbuild/linux-ia32": "0.17.14", - "@esbuild/linux-loong64": "0.17.14", - "@esbuild/linux-mips64el": "0.17.14", - "@esbuild/linux-ppc64": "0.17.14", - "@esbuild/linux-riscv64": "0.17.14", - "@esbuild/linux-s390x": "0.17.14", - "@esbuild/linux-x64": "0.17.14", - "@esbuild/netbsd-x64": "0.17.14", - "@esbuild/openbsd-x64": "0.17.14", - "@esbuild/sunos-x64": "0.17.14", - "@esbuild/win32-arm64": "0.17.14", - "@esbuild/win32-ia32": "0.17.14", - "@esbuild/win32-x64": "0.17.14" - } - }, - "node_modules/escalade": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", - "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/escodegen": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", - "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", - "license": "BSD-2-Clause", - "peer": true, - "dependencies": { - "esprima": "^4.0.1", - "estraverse": "^5.2.0", - "esutils": "^2.0.2" - }, - "bin": { - "escodegen": "bin/escodegen.js", - "esgenerate": "bin/esgenerate.js" - }, - "engines": { - "node": ">=6.0" - }, - "optionalDependencies": { - "source-map": "~0.6.1" - } - }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "license": "BSD-2-Clause", - "peer": true, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "license": "BSD-2-Clause", - "peer": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "license": "BSD-2-Clause", - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", - "license": "MIT", - "peer": true, - "dependencies": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/fast-glob": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", - "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", - "license": "MIT", - "peer": true, - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.8" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/fast-glob/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "license": "ISC", - "peer": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/fast-xml-parser": { - "version": "5.3.4", - "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-5.3.4.tgz", - "integrity": "sha512-EFd6afGmXlCx8H8WTZHhAoDaWaGyuIBoZJ2mknrNxug+aZKjkp0a0dlars9Izl+jF+7Gu1/5f/2h68cQpe0IiA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/NaturalIntelligence" - } - ], - "license": "MIT", - "peer": true, - "dependencies": { - "strnum": "^2.1.0" - }, - "bin": { - "fxparser": "src/cli/cli.js" - } - }, - "node_modules/fastq": { - "version": "1.20.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.1.tgz", - "integrity": "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==", - "license": "ISC", - "peer": true, - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/fetch-blob": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz", - "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/jimmywarting" - }, - { - "type": "paypal", - "url": "https://paypal.me/jimmywarting" - } - ], - "license": "MIT", - "peer": true, - "dependencies": { - "node-domexception": "^1.0.0", - "web-streams-polyfill": "^3.0.3" - }, - "engines": { - "node": "^12.20 || >= 14.13" - } - }, - "node_modules/file-saver": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/file-saver/-/file-saver-2.0.2.tgz", - "integrity": "sha512-Wz3c3XQ5xroCxd1G8b7yL0Ehkf0TC9oYC6buPFkNnU9EnaPlifeAFCyCh+iewXTyFRcg0a6j3J7FmJsIhlhBdw==", - "license": "MIT", - "peer": true - }, - "node_modules/fill-range": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", - "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", - "license": "MIT", - "peer": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "license": "MIT", - "peer": true, - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/find-yarn-workspace-root": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/find-yarn-workspace-root/-/find-yarn-workspace-root-2.0.0.tgz", - "integrity": "sha512-1IMnbjt4KzsQfnhnzNd8wUEgXZ44IzZaZmnLYx7D5FZlaHt2gW20Cri8Q+E/t5tIj4+epTBub+2Zxu/vNILzqQ==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "micromatch": "^4.0.2" - } - }, - "node_modules/follow-redirects": { - "version": "1.15.11", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.11.tgz", - "integrity": "sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==", - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "license": "MIT", - "peer": true, - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } - } - }, - "node_modules/foreground-child": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz", - "integrity": "sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==", - "license": "ISC", - "peer": true, - "dependencies": { - "cross-spawn": "^7.0.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/foreground-child/node_modules/cross-spawn": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", - "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", - "license": "MIT", - "peer": true, - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/foreground-child/node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/foreground-child/node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "license": "MIT", - "peer": true, - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/foreground-child/node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/foreground-child/node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "license": "ISC", - "peer": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/form-data": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.4.tgz", - "integrity": "sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==", - "license": "MIT", - "peer": true, - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "es-set-tostringtag": "^2.1.0", - "hasown": "^2.0.2", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/formdata-polyfill": { - "version": "4.0.10", - "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", - "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", - "license": "MIT", - "peer": true, - "dependencies": { - "fetch-blob": "^3.1.2" - }, - "engines": { - "node": ">=12.20.0" - } - }, - "node_modules/fs-constants": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", - "license": "MIT", - "peer": true - }, - "node_modules/fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "license": "MIT", - "peer": true, - "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "license": "ISC", - "peer": true - }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "hasInstallScript": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "peer": true, - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "license": "MIT", - "peer": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/functions-have-names": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", - "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", - "license": "MIT", - "peer": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/fuzzy": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/fuzzy/-/fuzzy-0.1.3.tgz", - "integrity": "sha512-/gZffu4ykarLrCiP3Ygsa86UAo1E5vEVlvTrpkKywXSbP9Xhln3oSp9QSV57gEq3JFFpGJ4GZ+5zdEp3FcUh4w==", - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "license": "ISC", - "peer": true, - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/get-intrinsic": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", - "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", - "license": "MIT", - "peer": true, - "dependencies": { - "call-bind-apply-helpers": "^1.0.2", - "es-define-property": "^1.0.1", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.1.1", - "function-bind": "^1.1.2", - "get-proto": "^1.0.1", - "gopd": "^1.2.0", - "has-symbols": "^1.1.0", - "hasown": "^2.0.2", - "math-intrinsics": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", - "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", - "license": "MIT", - "peer": true, - "dependencies": { - "dunder-proto": "^1.0.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "license": "MIT", - "peer": true, - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", - "license": "ISC", - "peer": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "license": "ISC", - "peer": true, - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/gopd": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", - "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "license": "ISC", - "peer": true - }, - "node_modules/gud": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/gud/-/gud-1.0.0.tgz", - "integrity": "sha512-zGEOVKFM5sVPPrYs7J5/hYEw2Pof8KCyOwyhG8sAF26mCAeUFAcYPu1mwB7hhpIP29zOIBaDqwuHdLp0jvZXjw==", - "license": "MIT", - "peer": true - }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/has-property-descriptors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", - "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", - "license": "MIT", - "peer": true, - "dependencies": { - "es-define-property": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-symbols": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", - "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-tostringtag": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", - "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", - "license": "MIT", - "peer": true, - "dependencies": { - "has-symbols": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/hasown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", - "license": "MIT", - "peer": true, - "dependencies": { - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/hast-util-is-element": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/hast-util-is-element/-/hast-util-is-element-1.1.0.tgz", - "integrity": "sha512-oUmNua0bFbdrD/ELDSSEadRVtWZOf3iF6Lbv81naqsIV99RnSCieTbWuWCY8BAeEfKJTKl0gRdokv+dELutHGQ==", - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-parse-selector": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-2.2.5.tgz", - "integrity": "sha512-7j6mrk/qqkSehsM92wQjdIgWM2/BW61u/53G6xmC8i1OmEdKLHbk419QKQUjz6LglWsfqoiHmyMRkP1BGjecNQ==", - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-to-html": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/hast-util-to-html/-/hast-util-to-html-7.1.3.tgz", - "integrity": "sha512-yk2+1p3EJTEE9ZEUkgHsUSVhIpCsL/bvT8E5GzmWc+N1Po5gBw+0F8bo7dpxXR0nu0bQVxVZGX2lBGF21CmeDw==", - "license": "MIT", - "dependencies": { - "ccount": "^1.0.0", - "comma-separated-tokens": "^1.0.0", - "hast-util-is-element": "^1.0.0", - "hast-util-whitespace": "^1.0.0", - "html-void-elements": "^1.0.0", - "property-information": "^5.0.0", - "space-separated-tokens": "^1.0.0", - "stringify-entities": "^3.0.1", - "unist-util-is": "^4.0.0", - "xtend": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-whitespace": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-1.0.4.tgz", - "integrity": "sha512-I5GTdSfhYfAPNztx2xJRQpG8cuDSNt599/7YUn7Gx/WxNMsG+a835k97TDkFgk123cwjfwINaZknkKkphx/f2A==", - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hastscript": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-6.0.0.tgz", - "integrity": "sha512-nDM6bvd7lIqDUiYEiu5Sl/+6ReP0BMk/2f4U/Rooccxkj0P5nm+acM5PrGJ/t5I8qPGiqZSE6hVAwZEdZIvP4w==", - "license": "MIT", - "dependencies": { - "@types/hast": "^2.0.0", - "comma-separated-tokens": "^1.0.0", - "hast-util-parse-selector": "^2.0.0", - "property-information": "^5.0.0", - "space-separated-tokens": "^1.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/html-encoding-sniffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz", - "integrity": "sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==", - "license": "MIT", - "peer": true, - "dependencies": { - "whatwg-encoding": "^2.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "license": "MIT", - "peer": true - }, - "node_modules/html-void-elements": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-1.0.5.tgz", - "integrity": "sha512-uE/TxKuyNIcx44cIWnjr/rfIATDH7ZaOMmstu0CwhFG1Dunhlp4OC6/NMbhiwoq5BpW0ubi303qnEk/PZj614w==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/http-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", - "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", - "license": "MIT", - "peer": true, - "dependencies": { - "@tootallnate/once": "2", - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", - "license": "MIT", - "peer": true, - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "license": "MIT", - "peer": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/idb": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/idb/-/idb-6.0.0.tgz", - "integrity": "sha512-+M367poGtpzAylX4pwcrZIa7cFQLfNkAOlMMLN2kw/2jGfJP6h+TB/unQNSVYwNtP8XqkLYrfuiVnxLQNP1tjA==", - "license": "ISC", - "peer": true - }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "BSD-3-Clause", - "peer": true - }, - "node_modules/immediate": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", - "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==", - "license": "MIT", - "peer": true - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", - "license": "ISC", - "peer": true, - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "license": "ISC", - "peer": true - }, - "node_modules/insect": { - "version": "5.9.1", - "resolved": "https://registry.npmjs.org/insect/-/insect-5.9.1.tgz", - "integrity": "sha512-j3EQpWpKFDUi28S1uasGMs7KVmdQc2B/MLgzjGEgaBAvMGvexjRieWG7/Nae/j1GnCjtwqepEpplvgZ3u4QSag==", - "license": "MIT", - "peer": true, - "dependencies": { - "clipboardy": "^2.3.0", - "decimal.js": "10.3.1", - "jquery.terminal": "^2.18.0", - "keyboardevent-key-polyfill": "=1.1.0", - "line-reader": "^0.4.0", - "xdg-basedir": "^4.0.0" - }, - "bin": { - "insect": "index.cjs" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/is-alphabetical": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz", - "integrity": "sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/is-alphanumerical": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz", - "integrity": "sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==", - "license": "MIT", - "dependencies": { - "is-alphabetical": "^1.0.0", - "is-decimal": "^1.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/is-arguments": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.2.0.tgz", - "integrity": "sha512-7bVbi0huj/wrIAOzb8U1aszg9kdi3KN/CyU19CTI7tAoZYEZoL9yCDXpbXN+uPsuWnP02cyug1gleqq+TU+YCA==", - "license": "MIT", - "peer": true, - "dependencies": { - "call-bound": "^1.0.2", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-arrayish": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.4.tgz", - "integrity": "sha512-m6UrgzFVUYawGBh1dUsWR5M2Clqic9RVXC/9f8ceNlv2IcO9j9J/z8UoCLPqtsPBFNzEpfR3xftohbfqDx8EQA==", - "license": "MIT" - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "license": "MIT", - "peer": true, - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-ci": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", - "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", - "license": "MIT", - "peer": true, - "dependencies": { - "ci-info": "^2.0.0" - }, - "bin": { - "is-ci": "bin.js" - } - }, - "node_modules/is-core-module": { - "version": "2.16.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", - "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", - "license": "MIT", - "peer": true, - "dependencies": { - "hasown": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-date-object": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz", - "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==", - "license": "MIT", - "peer": true, - "dependencies": { - "call-bound": "^1.0.2", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-decimal": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.4.tgz", - "integrity": "sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/is-docker": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", - "license": "MIT", - "peer": true, - "bin": { - "is-docker": "cli.js" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "license": "MIT", - "peer": true, - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-hexadecimal": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz", - "integrity": "sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-potential-custom-element-name": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", - "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", - "license": "MIT", - "peer": true - }, - "node_modules/is-regex": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", - "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", - "license": "MIT", - "peer": true, - "dependencies": { - "call-bound": "^1.0.2", - "gopd": "^1.2.0", - "has-tostringtag": "^1.0.2", - "hasown": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", - "license": "MIT", - "peer": true, - "dependencies": { - "is-docker": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "license": "MIT", - "peer": true - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "license": "ISC", - "peer": true - }, - "node_modules/istanbul-lib-coverage": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", - "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", - "license": "BSD-3-Clause", - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-report": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", - "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", - "license": "BSD-3-Clause", - "peer": true, - "dependencies": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^4.0.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/istanbul-reports": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.2.0.tgz", - "integrity": "sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==", - "license": "BSD-3-Clause", - "peer": true, - "dependencies": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jiti": { - "version": "1.21.7", - "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.7.tgz", - "integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==", - "license": "MIT", - "peer": true, - "bin": { - "jiti": "bin/jiti.js" - } - }, - "node_modules/jquery": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.7.1.tgz", - "integrity": "sha512-m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg==", - "license": "MIT", - "peer": true - }, - "node_modules/jquery.terminal": { - "version": "2.45.2", - "resolved": "https://registry.npmjs.org/jquery.terminal/-/jquery.terminal-2.45.2.tgz", - "integrity": "sha512-7MtA3Hc8w+xSaANF5ZfN7ibDTp2DhecWsy4n8o+3+m62WDvg39gW6j+XcCQN6fc+b22Sy8m2jnKIJyb9nk4H5w==", - "license": "MIT", - "peer": true, - "dependencies": { - "@jcubic/lily": "^0.3.0", - "@types/jquery": "^3.5.29", - "ansidec": "^0.3.4", - "coveralls-next": "^4.2.1", - "iconv-lite": "^0.6.3", - "jquery": "^3.7.1", - "node-fetch": "^3.3.2", - "prismjs": "^1.30.0", - "wcwidth": "^1.0.1" - }, - "bin": { - "from-ansi": "bin/convert.js" - }, - "optionalDependencies": { - "fsevents": "^2.3.2" - } - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "license": "MIT", - "peer": true - }, - "node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "license": "MIT", - "peer": true, - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/jsdom": { - "version": "20.0.3", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-20.0.3.tgz", - "integrity": "sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==", - "license": "MIT", - "peer": true, - "dependencies": { - "abab": "^2.0.6", - "acorn": "^8.8.1", - "acorn-globals": "^7.0.0", - "cssom": "^0.5.0", - "cssstyle": "^2.3.0", - "data-urls": "^3.0.2", - "decimal.js": "^10.4.2", - "domexception": "^4.0.0", - "escodegen": "^2.0.0", - "form-data": "^4.0.0", - "html-encoding-sniffer": "^3.0.0", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.1", - "is-potential-custom-element-name": "^1.0.1", - "nwsapi": "^2.2.2", - "parse5": "^7.1.1", - "saxes": "^6.0.0", - "symbol-tree": "^3.2.4", - "tough-cookie": "^4.1.2", - "w3c-xmlserializer": "^4.0.0", - "webidl-conversions": "^7.0.0", - "whatwg-encoding": "^2.0.0", - "whatwg-mimetype": "^3.0.0", - "whatwg-url": "^11.0.0", - "ws": "^8.11.0", - "xml-name-validator": "^4.0.0" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "canvas": "^2.5.0" - }, - "peerDependenciesMeta": { - "canvas": { - "optional": true - } - } - }, - "node_modules/jsdom/node_modules/decimal.js": { - "version": "10.6.0", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.6.0.tgz", - "integrity": "sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==", - "license": "MIT", - "peer": true - }, - "node_modules/jsonfile": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.0.tgz", - "integrity": "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==", - "license": "MIT", - "peer": true, - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/jszip": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.0.tgz", - "integrity": "sha512-LDfVtOLtOxb9RXkYOwPyNBTQDL4eUbqahtoY6x07GiDJHwSYvn8sHHIw8wINImV3MqbMNve2gSuM1DDqEKk09Q==", - "license": "(MIT OR GPL-3.0-or-later)", - "peer": true, - "dependencies": { - "lie": "~3.3.0", - "pako": "~1.0.2", - "readable-stream": "~2.3.6", - "setimmediate": "^1.0.5" - } - }, - "node_modules/keyboardevent-key-polyfill": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/keyboardevent-key-polyfill/-/keyboardevent-key-polyfill-1.1.0.tgz", - "integrity": "sha512-NTDqo7XhzL1fqmUzYroiyK2qGua7sOMzLav35BfNA/mPUSCtw8pZghHFMTYR9JdnJ23IQz695FcaM6EE6bpbFQ==", - "license": "CC0-1.0", - "peer": true - }, - "node_modules/klaw-sync": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/klaw-sync/-/klaw-sync-6.0.0.tgz", - "integrity": "sha512-nIeuVSzdCCs6TDPTqI8w1Yre34sSq7AkZ4B3sfOBbI2CgVSB4Du4aLQijFU2+lhAFCwt9+42Hel6lQNIv6AntQ==", - "license": "MIT", - "peer": true, - "dependencies": { - "graceful-fs": "^4.1.11" - } - }, - "node_modules/lazystream": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.1.tgz", - "integrity": "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==", - "license": "MIT", - "peer": true, - "dependencies": { - "readable-stream": "^2.0.5" - }, - "engines": { - "node": ">= 0.6.3" - } - }, - "node_modules/lcov-parse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lcov-parse/-/lcov-parse-1.0.0.tgz", - "integrity": "sha512-aprLII/vPzuQvYZnDRU78Fns9I2Ag3gi4Ipga/hxnVMCZC8DnR2nI7XBqrPoywGfxqIx/DgarGvDJZAD3YBTgQ==", - "license": "BSD-3-Clause", - "peer": true, - "bin": { - "lcov-parse": "bin/cli.js" - } - }, - "node_modules/lie": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", - "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", - "license": "MIT", - "peer": true, - "dependencies": { - "immediate": "~3.0.5" - } - }, - "node_modules/lilconfig": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", - "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/line-reader": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/line-reader/-/line-reader-0.4.0.tgz", - "integrity": "sha512-AYJ8g+eE7v+Ba4s/cuYqzuNulH/WbjdKQ55fvx8fNVn8WQzTpioY6vI1MoxTuMgcHYX3VlmZWbVvnkIqkyJbCA==", - "license": "MIT", - "peer": true - }, - "node_modules/lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "license": "MIT", - "peer": true - }, - "node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "license": "MIT", - "peer": true, - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lodash.defaults": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", - "integrity": "sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==", - "license": "MIT", - "peer": true - }, - "node_modules/lodash.difference": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.difference/-/lodash.difference-4.5.0.tgz", - "integrity": "sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA==", - "license": "MIT", - "peer": true - }, - "node_modules/lodash.flatten": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", - "integrity": "sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==", - "license": "MIT", - "peer": true - }, - "node_modules/lodash.isplainobject": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", - "license": "MIT", - "peer": true - }, - "node_modules/lodash.union": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.union/-/lodash.union-4.6.0.tgz", - "integrity": "sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw==", - "license": "MIT", - "peer": true - }, - "node_modules/log-driver": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/log-driver/-/log-driver-1.2.7.tgz", - "integrity": "sha512-U7KCmLdqsGHBLeWqYlFA0V0Sl6P08EE1ZrmA9cxjUE0WVqT9qnyVDPz1kzpFEP0jdJuFnasWIfSd7fsaNXkpbg==", - "license": "ISC", - "peer": true, - "engines": { - "node": ">=0.8.6" - } - }, - "node_modules/loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "license": "MIT", - "peer": true, - "dependencies": { - "js-tokens": "^3.0.0 || ^4.0.0" - }, - "bin": { - "loose-envify": "cli.js" - } - }, - "node_modules/lz-string": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.5.0.tgz", - "integrity": "sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==", - "license": "MIT", - "peer": true, - "bin": { - "lz-string": "bin/bin.js" - } - }, - "node_modules/make-dir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", - "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", - "license": "MIT", - "peer": true, - "dependencies": { - "semver": "^7.5.3" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/make-dir/node_modules/semver": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", - "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", - "license": "ISC", - "peer": true, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "license": "ISC", - "peer": true - }, - "node_modules/marked": { - "version": "4.0.16", - "resolved": "https://registry.npmjs.org/marked/-/marked-4.0.16.tgz", - "integrity": "sha512-wahonIQ5Jnyatt2fn8KqF/nIqZM8mh3oRu2+l5EANGMhu6RFjiSG52QNE2eWzFMI94HqYSgN184NurgNG6CztA==", - "license": "MIT", - "peer": true, - "bin": { - "marked": "bin/marked.js" - }, - "engines": { - "node": ">= 12" - } - }, - "node_modules/marked-react": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/marked-react/-/marked-react-1.1.2.tgz", - "integrity": "sha512-GeeAB5iIH4FaSxoQn/pb9iXn1/1Go5Jpa9ZTtNHFRcZ6vpfYOhgWakFMK9fCfvUIHNMa1uh6MHcefgW1Ss5yKw==", - "license": "MIT", - "peer": true, - "dependencies": { - "marked": "^4.0.12" - }, - "peerDependencies": { - "react": "^16.8.0 || >=17.0.0" - } - }, - "node_modules/math-intrinsics": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", - "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/micromatch": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", - "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", - "license": "MIT", - "peer": true, - "dependencies": { - "braces": "^3.0.3", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "license": "MIT", - "peer": true, - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "license": "ISC", - "peer": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "license": "MIT", - "peer": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "license": "MIT", - "peer": true - }, - "node_modules/mz": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", - "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", - "license": "MIT", - "peer": true, - "dependencies": { - "any-promise": "^1.0.0", - "object-assign": "^4.0.1", - "thenify-all": "^1.0.0" - } - }, - "node_modules/nanoid": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-2.0.4.tgz", - "integrity": "sha512-sOJnBmY3TJQBVIBqKHoifuwygrocXg3NjS9rZSMnVl05XWSHK7Qxb177AIZQyMDjP86bz+yneozj/h9qsPLcCA==", - "license": "MIT", - "peer": true - }, - "node_modules/nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", - "license": "MIT", - "peer": true - }, - "node_modules/node-domexception": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", - "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", - "deprecated": "Use your platform's native DOMException instead", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/jimmywarting" - }, - { - "type": "github", - "url": "https://paypal.me/jimmywarting" - } - ], - "license": "MIT", - "peer": true, - "engines": { - "node": ">=10.5.0" - } - }, - "node_modules/node-fetch": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.2.tgz", - "integrity": "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==", - "license": "MIT", - "peer": true, - "dependencies": { - "data-uri-to-buffer": "^4.0.0", - "fetch-blob": "^3.1.4", - "formdata-polyfill": "^4.0.10" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/node-fetch" - } - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize.css": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/normalize.css/-/normalize.css-8.0.1.tgz", - "integrity": "sha512-qizSNPO93t1YUuUhP22btGOo3chcvDFqFaj2TRybP0DMxkHOCTYwp3n34fel4a31ORXy4m1Xq0Gyqpb5m33qIg==", - "license": "MIT", - "peer": true - }, - "node_modules/npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==", - "license": "MIT", - "peer": true, - "dependencies": { - "path-key": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/nwsapi": { - "version": "2.2.23", - "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.23.tgz", - "integrity": "sha512-7wfH4sLbt4M0gCDzGE6vzQBo0bfTKjU7Sfpqy/7gs1qBfYz2vEJH6vXcBKpO3+6Yu1telwd0t9HpyOoLEQQbIQ==", - "license": "MIT", - "peer": true - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-hash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", - "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/object-is": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.6.tgz", - "integrity": "sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==", - "license": "MIT", - "peer": true, - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "license": "ISC", - "peer": true, - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/open": { - "version": "7.4.2", - "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz", - "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==", - "license": "MIT", - "peer": true, - "dependencies": { - "is-docker": "^2.0.0", - "is-wsl": "^2.1.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "license": "MIT", - "peer": true, - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "license": "MIT", - "peer": true, - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pako": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", - "license": "(MIT AND Zlib)", - "peer": true - }, - "node_modules/parse-entities": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-2.0.0.tgz", - "integrity": "sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==", - "license": "MIT", - "dependencies": { - "character-entities": "^1.0.0", - "character-entities-legacy": "^1.0.0", - "character-reference-invalid": "^1.0.0", - "is-alphanumerical": "^1.0.0", - "is-decimal": "^1.0.0", - "is-hexadecimal": "^1.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/parse5": { - "version": "7.3.0", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.3.0.tgz", - "integrity": "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==", - "license": "MIT", - "peer": true, - "dependencies": { - "entities": "^6.0.0" - }, - "funding": { - "url": "https://github.com/inikulin/parse5?sponsor=1" - } - }, - "node_modules/patch-package": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/patch-package/-/patch-package-6.5.1.tgz", - "integrity": "sha512-I/4Zsalfhc6bphmJTlrLoOcAF87jcxko4q0qsv4bGcurbr8IskEOtdnt9iCmsQVGL1B+iUhSQqweyTLJfCF9rA==", - "license": "MIT", - "peer": true, - "dependencies": { - "@yarnpkg/lockfile": "^1.1.0", - "chalk": "^4.1.2", - "cross-spawn": "^6.0.5", - "find-yarn-workspace-root": "^2.0.0", - "fs-extra": "^9.0.0", - "is-ci": "^2.0.0", - "klaw-sync": "^6.0.0", - "minimist": "^1.2.6", - "open": "^7.4.2", - "rimraf": "^2.6.3", - "semver": "^5.6.0", - "slash": "^2.0.0", - "tmp": "^0.0.33", - "yaml": "^1.10.2" - }, - "bin": { - "patch-package": "index.js" - }, - "engines": { - "node": ">=10", - "npm": ">5" - } - }, - "node_modules/patch-package/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "deprecated": "Rimraf versions prior to v4 are no longer supported", - "license": "ISC", - "peer": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "license": "MIT", - "peer": true - }, - "node_modules/picocolors": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", - "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", - "license": "ISC", - "peer": true - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pirates": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.7.tgz", - "integrity": "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/playwright-core": { - "version": "1.29.0", - "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.29.0.tgz", - "integrity": "sha512-pboOm1m0RD6z1GtwAbEH60PYRfF87vKdzOSRw2RyO0Y0a7utrMyWN2Au1ojGvQr4umuBMODkKTv607YIRypDSQ==", - "license": "Apache-2.0", - "peer": true, - "bin": { - "playwright": "cli.js" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/popper.js": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.16.1.tgz", - "integrity": "sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ==", - "deprecated": "You can find the new Popper v2 at @popperjs/core, this package is dedicated to the legacy v1", - "license": "MIT", - "peer": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/popperjs" - } - }, - "node_modules/postcss": { - "version": "8.5.6", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", - "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "peer": true, - "dependencies": { - "nanoid": "^3.3.11", - "picocolors": "^1.1.1", - "source-map-js": "^1.2.1" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/postcss-import": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", - "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", - "license": "MIT", - "peer": true, - "dependencies": { - "postcss-value-parser": "^4.0.0", - "read-cache": "^1.0.0", - "resolve": "^1.1.7" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "postcss": "^8.0.0" - } - }, - "node_modules/postcss-js": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.1.0.tgz", - "integrity": "sha512-oIAOTqgIo7q2EOwbhb8UalYePMvYoIeRY2YKntdpFQXNosSu3vLrniGgmH9OKs/qAkfoj5oB3le/7mINW1LCfw==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "peer": true, - "dependencies": { - "camelcase-css": "^2.0.1" - }, - "engines": { - "node": "^12 || ^14 || >= 16" - }, - "peerDependencies": { - "postcss": "^8.4.21" - } - }, - "node_modules/postcss-load-config": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz", - "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "peer": true, - "dependencies": { - "lilconfig": "^3.0.0", - "yaml": "^2.3.4" - }, - "engines": { - "node": ">= 14" - }, - "peerDependencies": { - "postcss": ">=8.0.9", - "ts-node": ">=9.0.0" - }, - "peerDependenciesMeta": { - "postcss": { - "optional": true - }, - "ts-node": { - "optional": true - } - } - }, - "node_modules/postcss-load-config/node_modules/lilconfig": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", - "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/antonk52" - } - }, - "node_modules/postcss-load-config/node_modules/yaml": { - "version": "2.8.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.2.tgz", - "integrity": "sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A==", - "license": "ISC", - "peer": true, - "bin": { - "yaml": "bin.mjs" - }, - "engines": { - "node": ">= 14.6" - }, - "funding": { - "url": "https://github.com/sponsors/eemeli" - } - }, - "node_modules/postcss-nested": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz", - "integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "peer": true, - "dependencies": { - "postcss-selector-parser": "^6.1.1" - }, - "engines": { - "node": ">=12.0" - }, - "peerDependencies": { - "postcss": "^8.2.14" - } - }, - "node_modules/postcss-selector-parser": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", - "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", - "license": "MIT", - "peer": true, - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-value-parser": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", - "license": "MIT", - "peer": true - }, - "node_modules/postcss/node_modules/nanoid": { - "version": "3.3.11", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", - "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "peer": true, - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/pretty-format": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", - "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", - "license": "MIT", - "peer": true, - "dependencies": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/pretty-format/node_modules/react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "license": "MIT", - "peer": true - }, - "node_modules/prismjs": { - "version": "1.30.0", - "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.30.0.tgz", - "integrity": "sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "license": "MIT", - "peer": true - }, - "node_modules/prop-types": { - "version": "15.8.1", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", - "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", - "license": "MIT", - "peer": true, - "dependencies": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.13.1" - } - }, - "node_modules/property-information": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/property-information/-/property-information-5.6.0.tgz", - "integrity": "sha512-YUHSPk+A30YPv+0Qf8i9Mbfe/C0hdPXk1s1jPVToV8pk8BQtpw10ct89Eo7OWkutrwqvT0eicAxlOg3dOAu8JA==", - "license": "MIT", - "dependencies": { - "xtend": "^4.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", - "license": "MIT", - "peer": true - }, - "node_modules/psl": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.15.0.tgz", - "integrity": "sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==", - "license": "MIT", - "peer": true, - "dependencies": { - "punycode": "^2.3.1" - }, - "funding": { - "url": "https://github.com/sponsors/lupomontero" - } - }, - "node_modules/pump": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.3.tgz", - "integrity": "sha512-todwxLMY7/heScKmntwQG8CXVkWUOdYxIvY2s0VWAAMh/nd8SoYiRaKjlr7+iCs984f2P8zvrfWcDDYVb73NfA==", - "license": "MIT", - "peer": true, - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/punycode": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/querystringify": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", - "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", - "license": "MIT", - "peer": true - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "peer": true - }, - "node_modules/react": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz", - "integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==", - "license": "MIT", - "peer": true, - "dependencies": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react-day-picker": { - "version": "7.4.9", - "resolved": "https://registry.npmjs.org/react-day-picker/-/react-day-picker-7.4.9.tgz", - "integrity": "sha512-CcXf0p7p6gTYnG0+n/4wNGljZuQDXl4HhgcxsXB0nX+8D4LnRho9EclPA/aLz4WlvvVpfY+AEgj2ylgPj4nm/g==", - "license": "MIT", - "peer": true, - "dependencies": { - "prop-types": "^15.6.2" - }, - "peerDependencies": { - "react": "~0.13.x || ~0.14.x || ^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, - "node_modules/react-dom": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz", - "integrity": "sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==", - "license": "MIT", - "peer": true, - "dependencies": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "scheduler": "^0.20.2" - }, - "peerDependencies": { - "react": "17.0.2" - } - }, - "node_modules/react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", - "license": "MIT", - "peer": true - }, - "node_modules/react-lifecycles-compat": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz", - "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==", - "license": "MIT", - "peer": true - }, - "node_modules/react-popper": { - "version": "1.3.11", - "resolved": "https://registry.npmjs.org/react-popper/-/react-popper-1.3.11.tgz", - "integrity": "sha512-VSA/bS+pSndSF2fiasHK/PTEEAyOpX60+H5EPAjoArr8JGm+oihu4UbrqcEBpQibJxBVCpYyjAX7abJ+7DoYVg==", - "license": "MIT", - "peer": true, - "dependencies": { - "@babel/runtime": "^7.1.2", - "@hypnosphi/create-react-context": "^0.3.1", - "deep-equal": "^1.1.1", - "popper.js": "^1.14.4", - "prop-types": "^15.6.1", - "typed-styles": "^0.0.7", - "warning": "^4.0.2" - }, - "peerDependencies": { - "react": "0.14.x || ^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, - "node_modules/react-transition-group": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-2.9.0.tgz", - "integrity": "sha512-+HzNTCHpeQyl4MJ/bdE0u6XRMe9+XG/+aL4mCxVN4DnPBQ0/5bfHWPDuOZUzYdMj94daZaZdCCc1Dzt9R/xSSg==", - "license": "BSD-3-Clause", - "peer": true, - "dependencies": { - "dom-helpers": "^3.4.0", - "loose-envify": "^1.4.0", - "prop-types": "^15.6.2", - "react-lifecycles-compat": "^3.0.4" - }, - "peerDependencies": { - "react": ">=15.0.0", - "react-dom": ">=15.0.0" - } - }, - "node_modules/read-cache": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", - "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", - "license": "MIT", - "peer": true, - "dependencies": { - "pify": "^2.3.0" - } - }, - "node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "license": "MIT", - "peer": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/readdir-glob": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/readdir-glob/-/readdir-glob-1.1.3.tgz", - "integrity": "sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "minimatch": "^5.1.0" - } - }, - "node_modules/readdir-glob/node_modules/brace-expansion": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", - "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", - "license": "MIT", - "peer": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/readdir-glob/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "license": "ISC", - "peer": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "license": "MIT", - "peer": true, - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/refractor": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/refractor/-/refractor-3.6.0.tgz", - "integrity": "sha512-MY9W41IOWxxk31o+YvFCNyNzdkc9M20NoZK5vq6jkv4I/uh2zkWcfudj0Q1fovjUQJrNewS9NMzeTtqPf+n5EA==", - "license": "MIT", - "dependencies": { - "hastscript": "^6.0.0", - "parse-entities": "^2.0.0", - "prismjs": "~1.27.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/refractor/node_modules/prismjs": { - "version": "1.27.0", - "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.27.0.tgz", - "integrity": "sha512-t13BGPUlFDR7wRB5kQDG4jjl7XeuH6jbJGt11JHPL96qwsEHNX2+68tFXqc1/k+/jALsbSWJKUOT/hcYAZ5LkA==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/regexp.prototype.flags": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz", - "integrity": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==", - "license": "MIT", - "peer": true, - "dependencies": { - "call-bind": "^1.0.8", - "define-properties": "^1.2.1", - "es-errors": "^1.3.0", - "get-proto": "^1.0.1", - "gopd": "^1.2.0", - "set-function-name": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", - "license": "MIT", - "peer": true - }, - "node_modules/resize-observer-polyfill": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz", - "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==", - "license": "MIT", - "peer": true - }, - "node_modules/resolve": { - "version": "1.22.11", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.11.tgz", - "integrity": "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==", - "license": "MIT", - "peer": true, - "dependencies": { - "is-core-module": "^2.16.1", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/reusify": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", - "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", - "license": "MIT", - "peer": true, - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "deprecated": "Rimraf versions prior to v4 are no longer supported", - "license": "ISC", - "peer": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/roamjs-components": { - "version": "0.86.5", - "resolved": "https://registry.npmjs.org/roamjs-components/-/roamjs-components-0.86.5.tgz", - "integrity": "sha512-twr7oh/mYqGomQ2z7XqAeBb3rKZM+xKfu9+TY9Lpzogabpf5VT03Wi45l8Xl4AjAp2cQPdt1A+7ahR1mJNuRlQ==", - "hasInstallScript": true, - "license": "MIT", - "dependencies": { - "@samepage/scripts": "^0.74.2", - "color": "^4.0.1", - "date-fns": "^2.27.0", - "edn-data": "^1.0.0", - "fuzzy": "^0.1.3", - "hast-util-to-html": "^7.1.3", - "refractor": "^3.3.1", - "xregexp": "^5.0.1" - }, - "bin": { - "roamjs": "scripts/index.js" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - }, - "peerDependencies": { - "@blueprintjs/core": "3.50.4", - "@blueprintjs/datetime": "3.23.14", - "@blueprintjs/select": "3.18.6", - "@types/crypto-js": "4.1.1", - "@types/cytoscape": "^3.19.9", - "@types/file-saver": "2.0.5", - "@types/jsdom": "^20.0.1", - "@types/marked": "^4.0.3", - "@types/nanoid": "2.0.0", - "@types/react": "17.0.39", - "@types/react-dom": "17.0.13", - "@types/use-sync-external-store": "^0.0.3", - "chrono-node": "2.3.0", - "crypto-js": "3.1.9-1", - "cytoscape": "^3.21.0", - "file-saver": "2.0.2", - "idb": "6.0.0", - "insect": "^5.6.0", - "jsdom": "^20.0.3", - "jszip": "3.10.0", - "marked": "4.0.16", - "marked-react": "1.1.2", - "nanoid": "2.0.4", - "react": "17.0.2", - "react-dom": "17.0.2", - "tslib": "2.2.0", - "use-sync-external-store": "^1.2.0" - } - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "peer": true, - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "license": "MIT", - "peer": true - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "license": "MIT", - "peer": true - }, - "node_modules/saxes": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz", - "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==", - "license": "ISC", - "peer": true, - "dependencies": { - "xmlchars": "^2.2.0" - }, - "engines": { - "node": ">=v12.22.7" - } - }, - "node_modules/scheduler": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz", - "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==", - "license": "MIT", - "peer": true, - "dependencies": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" - } - }, - "node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "license": "ISC", - "peer": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/set-function-length": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", - "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", - "license": "MIT", - "peer": true, - "dependencies": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/set-function-name": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", - "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", - "license": "MIT", - "peer": true, - "dependencies": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "functions-have-names": "^1.2.3", - "has-property-descriptors": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", - "license": "MIT", - "peer": true - }, - "node_modules/shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", - "license": "MIT", - "peer": true, - "dependencies": { - "shebang-regex": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "license": "ISC", - "peer": true - }, - "node_modules/simple-swizzle": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.4.tgz", - "integrity": "sha512-nAu1WFPQSMNr2Zn9PGSZK9AGn4t/y97lEm+MXTtUDwfP0ksAIX4nO+6ruD9Jwut4C49SB1Ws+fbXsm/yScWOHw==", - "license": "MIT", - "dependencies": { - "is-arrayish": "^0.3.1" - } - }, - "node_modules/slash": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", - "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "license": "BSD-3-Clause", - "optional": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-js": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", - "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", - "license": "BSD-3-Clause", - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/space-separated-tokens": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz", - "integrity": "sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "license": "MIT", - "peer": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "license": "MIT", - "peer": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/stringify-entities": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-3.1.0.tgz", - "integrity": "sha512-3FP+jGMmMV/ffZs86MoghGqAoqXAdxLrJP4GUdrDN1aIScYih5tuIO3eF4To5AJZ79KDZ8Fpdy7QJnK8SsL1Vg==", - "license": "MIT", - "dependencies": { - "character-entities-html4": "^1.0.0", - "character-entities-legacy": "^1.0.0", - "xtend": "^4.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "license": "MIT", - "peer": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-eof": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/strnum": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/strnum/-/strnum-2.1.2.tgz", - "integrity": "sha512-l63NF9y/cLROq/yqKXSLtcMeeyOfnSQlfMSlzFt/K73oIaD8DGaQWd7Z34X9GPiKqP5rbSh84Hl4bOlLcjiSrQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/NaturalIntelligence" - } - ], - "license": "MIT", - "peer": true - }, - "node_modules/sucrase": { - "version": "3.35.1", - "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.1.tgz", - "integrity": "sha512-DhuTmvZWux4H1UOnWMB3sk0sbaCVOoQZjv8u1rDoTV0HTdGem9hkAZtl4JZy8P2z4Bg0nT+YMeOFyVr4zcG5Tw==", - "license": "MIT", - "peer": true, - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.2", - "commander": "^4.0.0", - "lines-and-columns": "^1.1.6", - "mz": "^2.7.0", - "pirates": "^4.0.1", - "tinyglobby": "^0.2.11", - "ts-interface-checker": "^0.1.9" - }, - "bin": { - "sucrase": "bin/sucrase", - "sucrase-node": "bin/sucrase-node" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "license": "MIT", - "peer": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/symbol-tree": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", - "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", - "license": "MIT", - "peer": true - }, - "node_modules/tailwindcss": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.3.2.tgz", - "integrity": "sha512-9jPkMiIBXvPc2KywkraqsUfbfj+dHDb+JPWtSJa9MLFdrPyazI7q6WX2sUrm7R9eVR7qqv3Pas7EvQFzxKnI6w==", - "license": "MIT", - "peer": true, - "dependencies": { - "@alloc/quick-lru": "^5.2.0", - "arg": "^5.0.2", - "chokidar": "^3.5.3", - "didyoumean": "^1.2.2", - "dlv": "^1.1.3", - "fast-glob": "^3.2.12", - "glob-parent": "^6.0.2", - "is-glob": "^4.0.3", - "jiti": "^1.18.2", - "lilconfig": "^2.1.0", - "micromatch": "^4.0.5", - "normalize-path": "^3.0.0", - "object-hash": "^3.0.0", - "picocolors": "^1.0.0", - "postcss": "^8.4.23", - "postcss-import": "^15.1.0", - "postcss-js": "^4.0.1", - "postcss-load-config": "^4.0.1", - "postcss-nested": "^6.0.1", - "postcss-selector-parser": "^6.0.11", - "postcss-value-parser": "^4.2.0", - "resolve": "^1.22.2", - "sucrase": "^3.32.0" - }, - "bin": { - "tailwind": "lib/cli.js", - "tailwindcss": "lib/cli.js" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/tar-stream": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", - "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", - "license": "MIT", - "peer": true, - "dependencies": { - "bl": "^4.0.3", - "end-of-stream": "^1.4.1", - "fs-constants": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/tar-stream/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "license": "MIT", - "peer": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/test-exclude": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", - "license": "ISC", - "peer": true, - "dependencies": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/thenify": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", - "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", - "license": "MIT", - "peer": true, - "dependencies": { - "any-promise": "^1.0.0" - } - }, - "node_modules/thenify-all": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", - "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", - "license": "MIT", - "peer": true, - "dependencies": { - "thenify": ">= 3.1.0 < 4" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/tinyglobby": { - "version": "0.2.15", - "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", - "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", - "license": "MIT", - "peer": true, - "dependencies": { - "fdir": "^6.5.0", - "picomatch": "^4.0.3" - }, - "engines": { - "node": ">=12.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/SuperchupuDev" - } - }, - "node_modules/tinyglobby/node_modules/fdir": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", - "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "picomatch": "^3 || ^4" - }, - "peerDependenciesMeta": { - "picomatch": { - "optional": true - } - } - }, - "node_modules/tinyglobby/node_modules/picomatch": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", - "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "license": "MIT", - "peer": true, - "dependencies": { - "os-tmpdir": "~1.0.2" - }, - "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "license": "MIT", - "peer": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/tough-cookie": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.4.tgz", - "integrity": "sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==", - "license": "BSD-3-Clause", - "peer": true, - "dependencies": { - "psl": "^1.1.33", - "punycode": "^2.1.1", - "universalify": "^0.2.0", - "url-parse": "^1.5.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/tough-cookie/node_modules/universalify": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", - "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/tr46": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", - "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", - "license": "MIT", - "peer": true, - "dependencies": { - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/ts-interface-checker": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", - "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", - "license": "Apache-2.0", - "peer": true - }, - "node_modules/ts-node": { - "version": "10.9.2", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz", - "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", - "license": "MIT", - "peer": true, - "dependencies": { - "@cspotcode/source-map-support": "^0.8.0", - "@tsconfig/node10": "^1.0.7", - "@tsconfig/node12": "^1.0.7", - "@tsconfig/node14": "^1.0.0", - "@tsconfig/node16": "^1.0.2", - "acorn": "^8.4.1", - "acorn-walk": "^8.1.1", - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "v8-compile-cache-lib": "^3.0.1", - "yn": "3.1.1" - }, - "bin": { - "ts-node": "dist/bin.js", - "ts-node-cwd": "dist/bin-cwd.js", - "ts-node-esm": "dist/bin-esm.js", - "ts-node-script": "dist/bin-script.js", - "ts-node-transpile-only": "dist/bin-transpile.js", - "ts-script": "dist/bin-script-deprecated.js" - }, - "peerDependencies": { - "@swc/core": ">=1.2.50", - "@swc/wasm": ">=1.2.50", - "@types/node": "*", - "typescript": ">=2.7" - }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "@swc/wasm": { - "optional": true - } - } - }, - "node_modules/ts-node/node_modules/arg": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "license": "MIT", - "peer": true - }, - "node_modules/tslib": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz", - "integrity": "sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==", - "license": "0BSD", - "peer": true - }, - "node_modules/typed-styles": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/typed-styles/-/typed-styles-0.0.7.tgz", - "integrity": "sha512-pzP0PWoZUhsECYjABgCGQlRGL1n7tOHsgwYv3oIiEpJwGhFTuty/YNeduxQYzXXa3Ge5BdT6sHYIQYpl4uJ+5Q==", - "license": "MIT", - "peer": true - }, - "node_modules/typescript": { - "version": "5.9.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", - "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", - "license": "Apache-2.0", - "peer": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } - }, - "node_modules/undici-types": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz", - "integrity": "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==", - "license": "MIT", - "peer": true - }, - "node_modules/unist-util-is": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.1.0.tgz", - "integrity": "sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg==", - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/universalify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", - "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/url-parse": { - "version": "1.5.10", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", - "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", - "license": "MIT", - "peer": true, - "dependencies": { - "querystringify": "^2.1.1", - "requires-port": "^1.0.0" - } - }, - "node_modules/use-sync-external-store": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.6.0.tgz", - "integrity": "sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==", - "license": "MIT", - "peer": true, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "license": "MIT", - "peer": true - }, - "node_modules/v8-compile-cache-lib": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", - "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", - "license": "MIT", - "peer": true - }, - "node_modules/v8-to-istanbul": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz", - "integrity": "sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==", - "license": "ISC", - "peer": true, - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.12", - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^2.0.0" - }, - "engines": { - "node": ">=10.12.0" - } - }, - "node_modules/w3c-xmlserializer": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-4.0.0.tgz", - "integrity": "sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==", - "license": "MIT", - "peer": true, - "dependencies": { - "xml-name-validator": "^4.0.0" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/warning": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz", - "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==", - "license": "MIT", - "peer": true, - "dependencies": { - "loose-envify": "^1.0.0" - } - }, - "node_modules/wcwidth": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", - "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", - "license": "MIT", - "peer": true, - "dependencies": { - "defaults": "^1.0.3" - } - }, - "node_modules/web-streams-polyfill": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz", - "integrity": "sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/webidl-conversions": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", - "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", - "license": "BSD-2-Clause", - "peer": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/whatwg-encoding": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz", - "integrity": "sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==", - "deprecated": "Use @exodus/bytes instead for a more spec-conformant and faster implementation", - "license": "MIT", - "peer": true, - "dependencies": { - "iconv-lite": "0.6.3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/whatwg-mimetype": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz", - "integrity": "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/whatwg-url": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz", - "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==", - "license": "MIT", - "peer": true, - "dependencies": { - "tr46": "^3.0.0", - "webidl-conversions": "^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "license": "ISC", - "peer": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "license": "MIT", - "peer": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "license": "ISC", - "peer": true - }, - "node_modules/ws": { - "version": "8.19.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.19.0.tgz", - "integrity": "sha512-blAT2mjOEIi0ZzruJfIhb3nps74PRWTCz1IjglWEEpQl5XS/UNama6u2/rjFkDDouqr4L67ry+1aGIALViWjDg==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/xdg-basedir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", - "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/xml-name-validator": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz", - "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==", - "license": "Apache-2.0", - "peer": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/xmlchars": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", - "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", - "license": "MIT", - "peer": true - }, - "node_modules/xregexp": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-5.1.2.tgz", - "integrity": "sha512-6hGgEMCGhqCTFEJbqmWrNIPqfpdirdGWkqshu7fFZddmTSfgv5Sn9D2SaKloR79s5VUiUlpwzg3CM3G6D3VIlw==", - "license": "MIT", - "dependencies": { - "@babel/runtime-corejs3": "^7.26.9" - } - }, - "node_modules/xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "license": "MIT", - "engines": { - "node": ">=0.4" - } - }, - "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "license": "ISC", - "peer": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", - "license": "ISC", - "peer": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "license": "MIT", - "peer": true, - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "license": "ISC", - "peer": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/yn": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/zip-stream": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-4.1.1.tgz", - "integrity": "sha512-9qv4rlDiopXg4E69k+vMHjNN63YFMe9sZMrdlvKnCjlCRWeCBswPPMPUfx+ipsAWq1LXHe70RcbaHdJJpS6hyQ==", - "license": "MIT", - "peer": true, - "dependencies": { - "archiver-utils": "^3.0.4", - "compress-commons": "^4.1.2", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/zip-stream/node_modules/archiver-utils": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-3.0.4.tgz", - "integrity": "sha512-KVgf4XQVrTjhyWmx6cte4RxonPLR9onExufI1jhvw/MQ4BB6IsZD5gT8Lq+u/+pRkWna/6JoHpiQioaqFP5Rzw==", - "license": "MIT", - "peer": true, - "dependencies": { - "glob": "^7.2.3", - "graceful-fs": "^4.2.0", - "lazystream": "^1.0.0", - "lodash.defaults": "^4.2.0", - "lodash.difference": "^4.5.0", - "lodash.flatten": "^4.4.0", - "lodash.isplainobject": "^4.0.6", - "lodash.union": "^4.6.0", - "normalize-path": "^3.0.0", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/zip-stream/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "license": "MIT", - "peer": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/zod": { - "version": "3.25.76", - "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", - "integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==", - "license": "MIT", - "peer": true, - "funding": { - "url": "https://github.com/sponsors/colinhacks" - } - } - } -} diff --git a/package.json b/package.json index b2c6884..76b686e 100644 --- a/package.json +++ b/package.json @@ -4,18 +4,28 @@ "description": "Stock RoamJS Roam Research Extension base — fork this repo to start new extensions.", "main": "index.js", "scripts": { - "postinstall": "patch-package", + "dev": "tsx scripts/dev.ts", "start": "samepage dev", - "prebuild:roam": "npm install", + "prebuild:roam": "pnpm install", "build:roam": "samepage build --dry", "test": "samepage test" }, - "keywords": ["roam", "roam-research", "roamjs"], + "keywords": [ + "roam", + "roam-research", + "roamjs" + ], "license": "MIT", + "packageManager": "pnpm@9.15.0", "dependencies": { - "roamjs-components": "^0.86.4" + "roamjs-components": "0.86.4", + "tldraw": "3.15.5" }, "samepage": { "extends": "node_modules/roamjs-components/package.json" + }, + "devDependencies": { + "tsx": "^4.21.0", + "typescript": "^5.9.3" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml new file mode 100644 index 0000000..afd40ef --- /dev/null +++ b/pnpm-lock.yaml @@ -0,0 +1,7567 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + + .: + dependencies: + roamjs-components: + specifier: 0.86.4 + version: 0.86.4(tfys6nz3gwc4z5ufdlt2gh6ina) + tldraw: + specifier: 3.15.5 + version: 3.15.5(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + devDependencies: + tsx: + specifier: ^4.21.0 + version: 4.21.0 + typescript: + specifier: ^5.9.3 + version: 5.9.3 + +packages: + + '@alloc/quick-lru@5.2.0': + resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} + engines: {node: '>=10'} + + '@aws-crypto/crc32@5.2.0': + resolution: {integrity: sha512-nLbCWqQNgUiwwtFsen1AdzAtvuLRsQS8rYgMuxCrdKf9kOssamGLuPwyTY9wyYblNr9+1XM8v6zoDTPPSIeANg==} + engines: {node: '>=16.0.0'} + + '@aws-crypto/crc32c@5.2.0': + resolution: {integrity: sha512-+iWb8qaHLYKrNvGRbiYRHSdKRWhto5XlZUEBwDjYNf+ly5SVYG6zEoYIdxvf5R3zyeP16w4PLBn3rH1xc74Rag==} + + '@aws-crypto/sha1-browser@5.2.0': + resolution: {integrity: sha512-OH6lveCFfcDjX4dbAvCFSYUjJZjDr/3XJ3xHtjn3Oj5b9RjojQo8npoLeA/bNwkOkrSQ0wgrHzXk4tDRxGKJeg==} + + '@aws-crypto/sha256-browser@5.2.0': + resolution: {integrity: sha512-AXfN/lGotSQwu6HNcEsIASo7kWXZ5HYWvfOmSNKDsEqC4OashTp8alTmaz+F7TC2L083SFv5RdB+qU3Vs1kZqw==} + + '@aws-crypto/sha256-js@5.2.0': + resolution: {integrity: sha512-FFQQyu7edu4ufvIZ+OadFpHHOt+eSTBaYaki44c+akjg7qZg9oOQeLlk77F6tSYqjDAFClrHJk9tMf0HdVyOvA==} + engines: {node: '>=16.0.0'} + + '@aws-crypto/supports-web-crypto@5.2.0': + resolution: {integrity: sha512-iAvUotm021kM33eCdNfwIN//F77/IADDSs58i+MDaOqFrVjZo9bAal0NK7HurRuWLLpF1iLX7gbWrjHjeo+YFg==} + + '@aws-crypto/util@5.2.0': + resolution: {integrity: sha512-4RkU9EsI6ZpBve5fseQlGNUWKMa1RLPQ1dnjnQoe07ldfIzcsGb5hC5W0Dm7u423KWzawlrpbjXBrXCEv9zazQ==} + + '@aws-sdk/client-lambda@3.985.0': + resolution: {integrity: sha512-RFQVkOn9wn4LAYBDpOXyN+qY/akpGN1zJrEHkWbE+cXx/ypKo7nRt/r5jSTW2k0MttuI9ViVFemtGn69z22uBA==} + engines: {node: '>=20.0.0'} + + '@aws-sdk/client-s3@3.985.0': + resolution: {integrity: sha512-S9TqjzzZEEIKBnC7yFpvqM7CG9ALpY5qhQ5BnDBJtdG20NoGpjKLGUUfD2wmZItuhbrcM4Z8c6m6Fg0XYIOVvw==} + engines: {node: '>=20.0.0'} + + '@aws-sdk/client-sso@3.985.0': + resolution: {integrity: sha512-81J8iE8MuXhdbMfIz4sWFj64Pe41bFi/uqqmqOC5SlGv+kwoyLsyKS/rH2tW2t5buih4vTUxskRjxlqikTD4oQ==} + engines: {node: '>=20.0.0'} + + '@aws-sdk/core@3.973.7': + resolution: {integrity: sha512-wNZZQQNlJ+hzD49cKdo+PY6rsTDElO8yDImnrI69p2PLBa7QomeUKAJWYp9xnaR38nlHqWhMHZuYLCQ3oSX+xg==} + engines: {node: '>=20.0.0'} + + '@aws-sdk/crc64-nvme@3.972.0': + resolution: {integrity: sha512-ThlLhTqX68jvoIVv+pryOdb5coP1cX1/MaTbB9xkGDCbWbsqQcLqzPxuSoW1DCnAAIacmXCWpzUNOB9pv+xXQw==} + engines: {node: '>=20.0.0'} + + '@aws-sdk/credential-provider-env@3.972.5': + resolution: {integrity: sha512-LxJ9PEO4gKPXzkufvIESUysykPIdrV7+Ocb9yAhbhJLE4TiAYqbCVUE+VuKP1leGR1bBfjWjYgSV5MxprlX3mQ==} + engines: {node: '>=20.0.0'} + + '@aws-sdk/credential-provider-http@3.972.7': + resolution: {integrity: sha512-L2uOGtvp2x3bTcxFTpSM+GkwFIPd8pHfGWO1764icMbo7e5xJh0nfhx1UwkXLnwvocTNEf8A7jISZLYjUSNaTg==} + engines: {node: '>=20.0.0'} + + '@aws-sdk/credential-provider-ini@3.972.5': + resolution: {integrity: sha512-SdDTYE6jkARzOeL7+kudMIM4DaFnP5dZVeatzw849k4bSXDdErDS188bgeNzc/RA2WGrlEpsqHUKP6G7sVXhZg==} + engines: {node: '>=20.0.0'} + + '@aws-sdk/credential-provider-login@3.972.5': + resolution: {integrity: sha512-uYq1ILyTSI6ZDCMY5+vUsRM0SOCVI7kaW4wBrehVVkhAxC6y+e9rvGtnoZqCOWL1gKjTMouvsf4Ilhc5NCg1Aw==} + engines: {node: '>=20.0.0'} + + '@aws-sdk/credential-provider-node@3.972.6': + resolution: {integrity: sha512-DZ3CnAAtSVtVz+G+ogqecaErMLgzph4JH5nYbHoBMgBkwTUV+SUcjsjOJwdBJTHu3Dm6l5LBYekZoU2nDqQk2A==} + engines: {node: '>=20.0.0'} + + '@aws-sdk/credential-provider-process@3.972.5': + resolution: {integrity: sha512-HDKF3mVbLnuqGg6dMnzBf1VUOywE12/N286msI9YaK9mEIzdsGCtLTvrDhe3Up0R9/hGFbB+9l21/TwF5L1C6g==} + engines: {node: '>=20.0.0'} + + '@aws-sdk/credential-provider-sso@3.972.5': + resolution: {integrity: sha512-8urj3AoeNeQisjMmMBhFeiY2gxt6/7wQQbEGun0YV/OaOOiXrIudTIEYF8ZfD+NQI6X1FY5AkRsx6O/CaGiybA==} + engines: {node: '>=20.0.0'} + + '@aws-sdk/credential-provider-web-identity@3.972.5': + resolution: {integrity: sha512-OK3cULuJl6c+RcDZfPpaK5o3deTOnKZbxm7pzhFNGA3fI2hF9yDih17fGRazJzGGWaDVlR9ejZrpDef4DJCEsw==} + engines: {node: '>=20.0.0'} + + '@aws-sdk/middleware-bucket-endpoint@3.972.3': + resolution: {integrity: sha512-fmbgWYirF67YF1GfD7cg5N6HHQ96EyRNx/rDIrTF277/zTWVuPI2qS/ZHgofwR1NZPe/NWvoppflQY01LrbVLg==} + engines: {node: '>=20.0.0'} + + '@aws-sdk/middleware-expect-continue@3.972.3': + resolution: {integrity: sha512-4msC33RZsXQpUKR5QR4HnvBSNCPLGHmB55oDiROqqgyOc+TOfVu2xgi5goA7ms6MdZLeEh2905UfWMnMMF4mRg==} + engines: {node: '>=20.0.0'} + + '@aws-sdk/middleware-flexible-checksums@3.972.5': + resolution: {integrity: sha512-SF/1MYWx67OyCrLA4icIpWUfCkdlOi8Y1KecQ9xYxkL10GMjVdPTGPnYhAg0dw5U43Y9PVUWhAV2ezOaG+0BLg==} + engines: {node: '>=20.0.0'} + + '@aws-sdk/middleware-host-header@3.972.3': + resolution: {integrity: sha512-aknPTb2M+G3s+0qLCx4Li/qGZH8IIYjugHMv15JTYMe6mgZO8VBpYgeGYsNMGCqCZOcWzuf900jFBG5bopfzmA==} + engines: {node: '>=20.0.0'} + + '@aws-sdk/middleware-location-constraint@3.972.3': + resolution: {integrity: sha512-nIg64CVrsXp67vbK0U1/Is8rik3huS3QkRHn2DRDx4NldrEFMgdkZGI/+cZMKD9k4YOS110Dfu21KZLHrFA/1g==} + engines: {node: '>=20.0.0'} + + '@aws-sdk/middleware-logger@3.972.3': + resolution: {integrity: sha512-Ftg09xNNRqaz9QNzlfdQWfpqMCJbsQdnZVJP55jfhbKi1+FTWxGuvfPoBhDHIovqWKjqbuiew3HuhxbJ0+OjgA==} + engines: {node: '>=20.0.0'} + + '@aws-sdk/middleware-recursion-detection@3.972.3': + resolution: {integrity: sha512-PY57QhzNuXHnwbJgbWYTrqIDHYSeOlhfYERTAuc16LKZpTZRJUjzBFokp9hF7u1fuGeE3D70ERXzdbMBOqQz7Q==} + engines: {node: '>=20.0.0'} + + '@aws-sdk/middleware-sdk-s3@3.972.7': + resolution: {integrity: sha512-VtZ7tMIw18VzjG+I6D6rh2eLkJfTtByiFoCIauGDtTTPBEUMQUiGaJ/zZrPlCY6BsvLLeFKz3+E5mntgiOWmIg==} + engines: {node: '>=20.0.0'} + + '@aws-sdk/middleware-ssec@3.972.3': + resolution: {integrity: sha512-dU6kDuULN3o3jEHcjm0c4zWJlY1zWVkjG9NPe9qxYLLpcbdj5kRYBS2DdWYD+1B9f910DezRuws7xDEqKkHQIg==} + engines: {node: '>=20.0.0'} + + '@aws-sdk/middleware-user-agent@3.972.7': + resolution: {integrity: sha512-HUD+geASjXSCyL/DHPQc/Ua7JhldTcIglVAoCV8kiVm99IaFSlAbTvEnyhZwdE6bdFyTL+uIaWLaCFSRsglZBQ==} + engines: {node: '>=20.0.0'} + + '@aws-sdk/nested-clients@3.985.0': + resolution: {integrity: sha512-TsWwKzb/2WHafAY0CE7uXgLj0FmnkBTgfioG9HO+7z/zCPcl1+YU+i7dW4o0y+aFxFgxTMG+ExBQpqT/k2ao8g==} + engines: {node: '>=20.0.0'} + + '@aws-sdk/region-config-resolver@3.972.3': + resolution: {integrity: sha512-v4J8qYAWfOMcZ4MJUyatntOicTzEMaU7j3OpkRCGGFSL2NgXQ5VbxauIyORA+pxdKZ0qQG2tCQjQjZDlXEC3Ow==} + engines: {node: '>=20.0.0'} + + '@aws-sdk/signature-v4-multi-region@3.985.0': + resolution: {integrity: sha512-W6hTSOPiSbh4IdTYVxN7xHjpCh0qvfQU1GKGBzGQm0ZEIOaMmWqiDEvFfyGYKmfBvumT8vHKxQRTX0av9omtIg==} + engines: {node: '>=20.0.0'} + + '@aws-sdk/token-providers@3.985.0': + resolution: {integrity: sha512-+hwpHZyEq8k+9JL2PkE60V93v2kNhUIv7STFt+EAez1UJsJOQDhc5LpzEX66pNjclI5OTwBROs/DhJjC/BtMjQ==} + engines: {node: '>=20.0.0'} + + '@aws-sdk/types@3.973.1': + resolution: {integrity: sha512-DwHBiMNOB468JiX6+i34c+THsKHErYUdNQ3HexeXZvVn4zouLjgaS4FejiGSi2HyBuzuyHg7SuOPmjSvoU9NRg==} + engines: {node: '>=20.0.0'} + + '@aws-sdk/util-arn-parser@3.972.2': + resolution: {integrity: sha512-VkykWbqMjlSgBFDyrY3nOSqupMc6ivXuGmvci6Q3NnLq5kC+mKQe2QBZ4nrWRE/jqOxeFP2uYzLtwncYYcvQDg==} + engines: {node: '>=20.0.0'} + + '@aws-sdk/util-endpoints@3.985.0': + resolution: {integrity: sha512-vth7UfGSUR3ljvaq8V4Rc62FsM7GUTH/myxPWkaEgOrprz1/Pc72EgTXxj+cPPPDAfHFIpjhkB7T7Td0RJx+BA==} + engines: {node: '>=20.0.0'} + + '@aws-sdk/util-locate-window@3.965.4': + resolution: {integrity: sha512-H1onv5SkgPBK2P6JR2MjGgbOnttoNzSPIRoeZTNPZYyaplwGg50zS3amXvXqF0/qfXpWEC9rLWU564QTB9bSog==} + engines: {node: '>=20.0.0'} + + '@aws-sdk/util-user-agent-browser@3.972.3': + resolution: {integrity: sha512-JurOwkRUcXD/5MTDBcqdyQ9eVedtAsZgw5rBwktsPTN7QtPiS2Ld1jkJepNgYoCufz1Wcut9iup7GJDoIHp8Fw==} + + '@aws-sdk/util-user-agent-node@3.972.5': + resolution: {integrity: sha512-GsUDF+rXyxDZkkJxUsDxnA67FG+kc5W1dnloCFLl6fWzceevsCYzJpASBzT+BPjwUgREE6FngfJYYYMQUY5fZQ==} + engines: {node: '>=20.0.0'} + peerDependencies: + aws-crt: '>=1.0.0' + peerDependenciesMeta: + aws-crt: + optional: true + + '@aws-sdk/xml-builder@3.972.4': + resolution: {integrity: sha512-0zJ05ANfYqI6+rGqj8samZBFod0dPPousBjLEqg8WdxSgbMAkRgLyn81lP215Do0rFJ/17LIXwr7q0yK24mP6Q==} + engines: {node: '>=20.0.0'} + + '@aws/lambda-invoke-store@0.2.3': + resolution: {integrity: sha512-oLvsaPMTBejkkmHhjf09xTgk71mOqyr/409NKhRIL08If7AhVfUsJhVsx386uJaqNd42v9kWamQ9lFbkoC2dYw==} + engines: {node: '>=18.0.0'} + + '@babel/code-frame@7.29.0': + resolution: {integrity: sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-identifier@7.28.5': + resolution: {integrity: sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==} + engines: {node: '>=6.9.0'} + + '@babel/runtime-corejs3@7.29.0': + resolution: {integrity: sha512-TgUkdp71C9pIbBcHudc+gXZnihEDOjUAmXO1VO4HHGES7QLZcShR0stfKIxLSNIYx2fqhmJChOjm/wkF8wv4gA==} + engines: {node: '>=6.9.0'} + + '@babel/runtime@7.28.6': + resolution: {integrity: sha512-05WQkdpL9COIMz4LjTxGpPNCdlpyimKppYNoJ5Di5EUObifl8t4tuLuUBBZEpoLYOmfvIWrsp9fCl0HoPRVTdA==} + engines: {node: '>=6.9.0'} + + '@bcoe/v8-coverage@0.2.3': + resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} + + '@blueprintjs/colors@4.2.1': + resolution: {integrity: sha512-Cx7J2YnUuxn+fi+y5XtXnBB7+cFHN4xBrRkaAetp78i3VTCXjUk+d1omrOr8TqbRucUXTdrhbZOUHpzRLFcJpQ==} + + '@blueprintjs/core@3.50.4': + resolution: {integrity: sha512-FYGr1ZMH1si2acdZaTI4gqhvwgb0yOWcv7otYdi/tvC4ReId2gsm2i+bDw/eBMYsH+OSFYZT0C6hFvHV3HrkPA==} + hasBin: true + peerDependencies: + react: ^15.3.0 || 16 || 17 + react-dom: ^15.3.0 || 16 || 17 + + '@blueprintjs/datetime@3.23.14': + resolution: {integrity: sha512-zunYX1pP1T7DiTljqOCyJkngIsus4VOy9ceCt9LHMt7nb1rBsV86jX57A3V/OCNedv+KPHL0KfPeCRCNU6o//A==} + peerDependencies: + react: ^15.3.0 || 16 || 17 + react-dom: ^15.3.0 || 16 || 17 + + '@blueprintjs/icons@3.33.0': + resolution: {integrity: sha512-Q6qoSDIm0kRYQZISm59UUcDCpV3oeHulkLuh3bSlw0HhcSjvEQh2PSYbtaifM60Q4aK4PCd6bwJHg7lvF1x5fQ==} + + '@blueprintjs/select@3.18.6': + resolution: {integrity: sha512-xxhtxKIYxSDjnaUyzNAaM0ffHHW02FU0VuEG2A9IxueX3sfGNN5HQKKxFHIEfCWabRApEILGTzRx42uvfdSUww==} + peerDependencies: + react: ^15.3.0 || 16 || 17 + react-dom: ^15.3.0 || 16 || 17 + + '@cspotcode/source-map-support@0.8.1': + resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} + engines: {node: '>=12'} + + '@esbuild/aix-ppc64@0.27.3': + resolution: {integrity: sha512-9fJMTNFTWZMh5qwrBItuziu834eOCUcEqymSH7pY+zoMVEZg3gcPuBNxH1EvfVYe9h0x/Ptw8KBzv7qxb7l8dg==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [aix] + + '@esbuild/android-arm64@0.27.3': + resolution: {integrity: sha512-YdghPYUmj/FX2SYKJ0OZxf+iaKgMsKHVPF1MAq/P8WirnSpCStzKJFjOjzsW0QQ7oIAiccHdcqjbHmJxRb/dmg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [android] + + '@esbuild/android-arm@0.27.3': + resolution: {integrity: sha512-i5D1hPY7GIQmXlXhs2w8AWHhenb00+GxjxRncS2ZM7YNVGNfaMxgzSGuO8o8SJzRc/oZwU2bcScvVERk03QhzA==} + engines: {node: '>=18'} + cpu: [arm] + os: [android] + + '@esbuild/android-x64@0.27.3': + resolution: {integrity: sha512-IN/0BNTkHtk8lkOM8JWAYFg4ORxBkZQf9zXiEOfERX/CzxW3Vg1ewAhU7QSWQpVIzTW+b8Xy+lGzdYXV6UZObQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [android] + + '@esbuild/darwin-arm64@0.27.3': + resolution: {integrity: sha512-Re491k7ByTVRy0t3EKWajdLIr0gz2kKKfzafkth4Q8A5n1xTHrkqZgLLjFEHVD+AXdUGgQMq+Godfq45mGpCKg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [darwin] + + '@esbuild/darwin-x64@0.27.3': + resolution: {integrity: sha512-vHk/hA7/1AckjGzRqi6wbo+jaShzRowYip6rt6q7VYEDX4LEy1pZfDpdxCBnGtl+A5zq8iXDcyuxwtv3hNtHFg==} + engines: {node: '>=18'} + cpu: [x64] + os: [darwin] + + '@esbuild/freebsd-arm64@0.27.3': + resolution: {integrity: sha512-ipTYM2fjt3kQAYOvo6vcxJx3nBYAzPjgTCk7QEgZG8AUO3ydUhvelmhrbOheMnGOlaSFUoHXB6un+A7q4ygY9w==} + engines: {node: '>=18'} + cpu: [arm64] + os: [freebsd] + + '@esbuild/freebsd-x64@0.27.3': + resolution: {integrity: sha512-dDk0X87T7mI6U3K9VjWtHOXqwAMJBNN2r7bejDsc+j03SEjtD9HrOl8gVFByeM0aJksoUuUVU9TBaZa2rgj0oA==} + engines: {node: '>=18'} + cpu: [x64] + os: [freebsd] + + '@esbuild/linux-arm64@0.27.3': + resolution: {integrity: sha512-sZOuFz/xWnZ4KH3YfFrKCf1WyPZHakVzTiqji3WDc0BCl2kBwiJLCXpzLzUBLgmp4veFZdvN5ChW4Eq/8Fc2Fg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [linux] + + '@esbuild/linux-arm@0.27.3': + resolution: {integrity: sha512-s6nPv2QkSupJwLYyfS+gwdirm0ukyTFNl3KTgZEAiJDd+iHZcbTPPcWCcRYH+WlNbwChgH2QkE9NSlNrMT8Gfw==} + engines: {node: '>=18'} + cpu: [arm] + os: [linux] + + '@esbuild/linux-ia32@0.27.3': + resolution: {integrity: sha512-yGlQYjdxtLdh0a3jHjuwOrxQjOZYD/C9PfdbgJJF3TIZWnm/tMd/RcNiLngiu4iwcBAOezdnSLAwQDPqTmtTYg==} + engines: {node: '>=18'} + cpu: [ia32] + os: [linux] + + '@esbuild/linux-loong64@0.27.3': + resolution: {integrity: sha512-WO60Sn8ly3gtzhyjATDgieJNet/KqsDlX5nRC5Y3oTFcS1l0KWba+SEa9Ja1GfDqSF1z6hif/SkpQJbL63cgOA==} + engines: {node: '>=18'} + cpu: [loong64] + os: [linux] + + '@esbuild/linux-mips64el@0.27.3': + resolution: {integrity: sha512-APsymYA6sGcZ4pD6k+UxbDjOFSvPWyZhjaiPyl/f79xKxwTnrn5QUnXR5prvetuaSMsb4jgeHewIDCIWljrSxw==} + engines: {node: '>=18'} + cpu: [mips64el] + os: [linux] + + '@esbuild/linux-ppc64@0.27.3': + resolution: {integrity: sha512-eizBnTeBefojtDb9nSh4vvVQ3V9Qf9Df01PfawPcRzJH4gFSgrObw+LveUyDoKU3kxi5+9RJTCWlj4FjYXVPEA==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [linux] + + '@esbuild/linux-riscv64@0.27.3': + resolution: {integrity: sha512-3Emwh0r5wmfm3ssTWRQSyVhbOHvqegUDRd0WhmXKX2mkHJe1SFCMJhagUleMq+Uci34wLSipf8Lagt4LlpRFWQ==} + engines: {node: '>=18'} + cpu: [riscv64] + os: [linux] + + '@esbuild/linux-s390x@0.27.3': + resolution: {integrity: sha512-pBHUx9LzXWBc7MFIEEL0yD/ZVtNgLytvx60gES28GcWMqil8ElCYR4kvbV2BDqsHOvVDRrOxGySBM9Fcv744hw==} + engines: {node: '>=18'} + cpu: [s390x] + os: [linux] + + '@esbuild/linux-x64@0.27.3': + resolution: {integrity: sha512-Czi8yzXUWIQYAtL/2y6vogER8pvcsOsk5cpwL4Gk5nJqH5UZiVByIY8Eorm5R13gq+DQKYg0+JyQoytLQas4dA==} + engines: {node: '>=18'} + cpu: [x64] + os: [linux] + + '@esbuild/netbsd-arm64@0.27.3': + resolution: {integrity: sha512-sDpk0RgmTCR/5HguIZa9n9u+HVKf40fbEUt+iTzSnCaGvY9kFP0YKBWZtJaraonFnqef5SlJ8/TiPAxzyS+UoA==} + engines: {node: '>=18'} + cpu: [arm64] + os: [netbsd] + + '@esbuild/netbsd-x64@0.27.3': + resolution: {integrity: sha512-P14lFKJl/DdaE00LItAukUdZO5iqNH7+PjoBm+fLQjtxfcfFE20Xf5CrLsmZdq5LFFZzb5JMZ9grUwvtVYzjiA==} + engines: {node: '>=18'} + cpu: [x64] + os: [netbsd] + + '@esbuild/openbsd-arm64@0.27.3': + resolution: {integrity: sha512-AIcMP77AvirGbRl/UZFTq5hjXK+2wC7qFRGoHSDrZ5v5b8DK/GYpXW3CPRL53NkvDqb9D+alBiC/dV0Fb7eJcw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openbsd] + + '@esbuild/openbsd-x64@0.27.3': + resolution: {integrity: sha512-DnW2sRrBzA+YnE70LKqnM3P+z8vehfJWHXECbwBmH/CU51z6FiqTQTHFenPlHmo3a8UgpLyH3PT+87OViOh1AQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [openbsd] + + '@esbuild/openharmony-arm64@0.27.3': + resolution: {integrity: sha512-NinAEgr/etERPTsZJ7aEZQvvg/A6IsZG/LgZy+81wON2huV7SrK3e63dU0XhyZP4RKGyTm7aOgmQk0bGp0fy2g==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openharmony] + + '@esbuild/sunos-x64@0.27.3': + resolution: {integrity: sha512-PanZ+nEz+eWoBJ8/f8HKxTTD172SKwdXebZ0ndd953gt1HRBbhMsaNqjTyYLGLPdoWHy4zLU7bDVJztF5f3BHA==} + engines: {node: '>=18'} + cpu: [x64] + os: [sunos] + + '@esbuild/win32-arm64@0.27.3': + resolution: {integrity: sha512-B2t59lWWYrbRDw/tjiWOuzSsFh1Y/E95ofKz7rIVYSQkUYBjfSgf6oeYPNWHToFRr2zx52JKApIcAS/D5TUBnA==} + engines: {node: '>=18'} + cpu: [arm64] + os: [win32] + + '@esbuild/win32-ia32@0.27.3': + resolution: {integrity: sha512-QLKSFeXNS8+tHW7tZpMtjlNb7HKau0QDpwm49u0vUp9y1WOF+PEzkU84y9GqYaAVW8aH8f3GcBck26jh54cX4Q==} + engines: {node: '>=18'} + cpu: [ia32] + os: [win32] + + '@esbuild/win32-x64@0.27.3': + resolution: {integrity: sha512-4uJGhsxuptu3OcpVAzli+/gWusVGwZZHTlS63hh++ehExkVT8SgiEf7/uC/PclrPPkLhZqGgCTjd0VWLo6xMqA==} + engines: {node: '>=18'} + cpu: [x64] + os: [win32] + + '@floating-ui/core@1.7.4': + resolution: {integrity: sha512-C3HlIdsBxszvm5McXlB8PeOEWfBhcGBTZGkGlWc2U0KFY5IwG5OQEuQ8rq52DZmcHDlPLd+YFBK+cZcytwIFWg==} + + '@floating-ui/dom@1.7.5': + resolution: {integrity: sha512-N0bD2kIPInNHUHehXhMke1rBGs1dwqvC9O9KYMyyjK7iXt7GAhnro7UlcuYcGdS/yYOlq0MAVgrow8IbWJwyqg==} + + '@floating-ui/react-dom@2.1.7': + resolution: {integrity: sha512-0tLRojf/1Go2JgEVm+3Frg9A3IW8bJgKgdO0BN5RkF//ufuz2joZM63Npau2ff3J6lUVYgDSNzNkR+aH3IVfjg==} + peerDependencies: + react: '>=16.8.0' + react-dom: '>=16.8.0' + + '@floating-ui/utils@0.2.10': + resolution: {integrity: sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ==} + + '@hypnosphi/create-react-context@0.3.1': + resolution: {integrity: sha512-V1klUed202XahrWJLLOT3EXNeCpFHCcJntdFGI15ntCwau+jfT386w7OFTMaCqOgXUH1fa0w/I1oZs+i/Rfr0A==} + peerDependencies: + prop-types: ^15.0.0 + react: '>=0.14.0' + + '@istanbuljs/schema@0.1.3': + resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} + engines: {node: '>=8'} + + '@jcubic/lily@0.3.0': + resolution: {integrity: sha512-4z6p4jLGSthc8gQ7wu4nHfGYn/IgCKFr+7hjuf80VdXUs7sm029mZGGDpS8sb29PVZWUBvMMTBCVGFhH2nN4Vw==} + + '@jridgewell/gen-mapping@0.3.13': + resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==} + + '@jridgewell/resolve-uri@3.1.2': + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} + engines: {node: '>=6.0.0'} + + '@jridgewell/sourcemap-codec@1.5.5': + resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} + + '@jridgewell/trace-mapping@0.3.31': + resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==} + + '@jridgewell/trace-mapping@0.3.9': + resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} + + '@nodelib/fs.scandir@2.1.5': + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} + + '@nodelib/fs.stat@2.0.5': + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + + '@nodelib/fs.walk@1.2.8': + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + + '@playwright/test@1.29.0': + resolution: {integrity: sha512-gp5PVBenxTJsm2bATWDNc2CCnrL5OaA/MXQdJwwkGQtqTjmY+ZOqAdLqo49O9MLTDh2vYh+tHWDnmFsILnWaeA==} + engines: {node: '>=14'} + deprecated: Please update to the latest version of Playwright to test up-to-date browsers. + hasBin: true + + '@popperjs/core@2.11.8': + resolution: {integrity: sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==} + + '@radix-ui/number@1.1.1': + resolution: {integrity: sha512-MkKCwxlXTgz6CFoJx3pCwn07GKp36+aZyu/u2Ln2VrA5DcdyCZkASEDBTd8x5whTQQL5CiYf4prXKLcgQdv29g==} + + '@radix-ui/primitive@1.1.3': + resolution: {integrity: sha512-JTF99U/6XIjCBo0wqkU5sK10glYe27MRRsfwoiq5zzOEZLHU3A3KCMa5X/azekYRCJ0HlwI0crAXS/5dEHTzDg==} + + '@radix-ui/react-accessible-icon@1.1.7': + resolution: {integrity: sha512-XM+E4WXl0OqUJFovy6GjmxxFyx9opfCAIUku4dlKRd5YEPqt4kALOkQOp0Of6reHuUkJuiPBEc5k0o4z4lTC8A==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-accordion@1.2.12': + resolution: {integrity: sha512-T4nygeh9YE9dLRPhAHSeOZi7HBXo+0kYIPJXayZfvWOWA0+n3dESrZbjfDPUABkUNym6Hd+f2IR113To8D2GPA==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-alert-dialog@1.1.15': + resolution: {integrity: sha512-oTVLkEw5GpdRe29BqJ0LSDFWI3qu0vR1M0mUkOQWDIUnY/QIkLpgDMWuKxP94c2NAC2LGcgVhG1ImF3jkZ5wXw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-arrow@1.1.7': + resolution: {integrity: sha512-F+M1tLhO+mlQaOWspE8Wstg+z6PwxwRd8oQ8IXceWz92kfAmalTRf0EjrouQeo7QssEPfCn05B4Ihs1K9WQ/7w==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-aspect-ratio@1.1.7': + resolution: {integrity: sha512-Yq6lvO9HQyPwev1onK1daHCHqXVLzPhSVjmsNjCa2Zcxy2f7uJD2itDtxknv6FzAKCwD1qQkeVDmX/cev13n/g==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-avatar@1.1.10': + resolution: {integrity: sha512-V8piFfWapM5OmNCXTzVQY+E1rDa53zY+MQ4Y7356v4fFz6vqCyUtIz2rUD44ZEdwg78/jKmMJHj07+C/Z/rcog==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-checkbox@1.3.3': + resolution: {integrity: sha512-wBbpv+NQftHDdG86Qc0pIyXk5IR3tM8Vd0nWLKDcX8nNn4nXFOFwsKuqw2okA/1D/mpaAkmuyndrPJTYDNZtFw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-collapsible@1.1.12': + resolution: {integrity: sha512-Uu+mSh4agx2ib1uIGPP4/CKNULyajb3p92LsVXmH2EHVMTfZWpll88XJ0j4W0z3f8NK1eYl1+Mf/szHPmcHzyA==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-collection@1.1.7': + resolution: {integrity: sha512-Fh9rGN0MoI4ZFUNyfFVNU4y9LUz93u9/0K+yLgA2bwRojxM8JU1DyvvMBabnZPBgMWREAJvU2jjVzq+LrFUglw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-compose-refs@1.1.2': + resolution: {integrity: sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-context-menu@2.2.16': + resolution: {integrity: sha512-O8morBEW+HsVG28gYDZPTrT9UUovQUlJue5YO836tiTJhuIWBm/zQHc7j388sHWtdH/xUZurK9olD2+pcqx5ww==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-context@1.1.2': + resolution: {integrity: sha512-jCi/QKUM2r1Ju5a3J64TH2A5SpKAgh0LpknyqdQ4m6DCV0xJ2HG1xARRwNGPQfi1SLdLWZ1OJz6F4OMBBNiGJA==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-dialog@1.1.15': + resolution: {integrity: sha512-TCglVRtzlffRNxRMEyR36DGBLJpeusFcgMVD9PZEzAKnUs1lKCgX5u9BmC2Yg+LL9MgZDugFFs1Vl+Jp4t/PGw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-direction@1.1.1': + resolution: {integrity: sha512-1UEWRX6jnOA2y4H5WczZ44gOOjTEmlqv1uNW4GAJEO5+bauCBhv8snY65Iw5/VOS/ghKN9gr2KjnLKxrsvoMVw==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-dismissable-layer@1.1.11': + resolution: {integrity: sha512-Nqcp+t5cTB8BinFkZgXiMJniQH0PsUt2k51FUhbdfeKvc4ACcG2uQniY/8+h1Yv6Kza4Q7lD7PQV0z0oicE0Mg==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-dropdown-menu@2.1.16': + resolution: {integrity: sha512-1PLGQEynI/3OX/ftV54COn+3Sud/Mn8vALg2rWnBLnRaGtJDduNW/22XjlGgPdpcIbiQxjKtb7BkcjP00nqfJw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-focus-guards@1.1.3': + resolution: {integrity: sha512-0rFg/Rj2Q62NCm62jZw0QX7a3sz6QCQU0LpZdNrJX8byRGaGVTqbrW9jAoIAHyMQqsNpeZ81YgSizOt5WXq0Pw==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-focus-scope@1.1.7': + resolution: {integrity: sha512-t2ODlkXBQyn7jkl6TNaw/MtVEVvIGelJDCG41Okq/KwUsJBwQ4XVZsHAVUkK4mBv3ewiAS3PGuUWuY2BoK4ZUw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-form@0.1.8': + resolution: {integrity: sha512-QM70k4Zwjttifr5a4sZFts9fn8FzHYvQ5PiB19O2HsYibaHSVt9fH9rzB0XZo/YcM+b7t/p7lYCT/F5eOeF5yQ==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-hover-card@1.1.15': + resolution: {integrity: sha512-qgTkjNT1CfKMoP0rcasmlH2r1DAiYicWsDsufxl940sT2wHNEWWv6FMWIQXWhVdmC1d/HYfbhQx60KYyAtKxjg==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-id@1.1.1': + resolution: {integrity: sha512-kGkGegYIdQsOb4XjsfM97rXsiHaBwco+hFI66oO4s9LU+PLAC5oJ7khdOVFxkhsmlbpUqDAvXw11CluXP+jkHg==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-label@2.1.7': + resolution: {integrity: sha512-YT1GqPSL8kJn20djelMX7/cTRp/Y9w5IZHvfxQTVHrOqa2yMl7i/UfMqKRU5V7mEyKTrUVgJXhNQPVCG8PBLoQ==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-menu@2.1.16': + resolution: {integrity: sha512-72F2T+PLlphrqLcAotYPp0uJMr5SjP5SL01wfEspJbru5Zs5vQaSHb4VB3ZMJPimgHHCHG7gMOeOB9H3Hdmtxg==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-menubar@1.1.16': + resolution: {integrity: sha512-EB1FktTz5xRRi2Er974AUQZWg2yVBb1yjip38/lgwtCVRd3a+maUoGHN/xs9Yv8SY8QwbSEb+YrxGadVWbEutA==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-navigation-menu@1.2.14': + resolution: {integrity: sha512-YB9mTFQvCOAQMHU+C/jVl96WmuWeltyUEpRJJky51huhds5W2FQr1J8D/16sQlf0ozxkPK8uF3niQMdUwZPv5w==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-one-time-password-field@0.1.8': + resolution: {integrity: sha512-ycS4rbwURavDPVjCb5iS3aG4lURFDILi6sKI/WITUMZ13gMmn/xGjpLoqBAalhJaDk8I3UbCM5GzKHrnzwHbvg==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-password-toggle-field@0.1.3': + resolution: {integrity: sha512-/UuCrDBWravcaMix4TdT+qlNdVwOM1Nck9kWx/vafXsdfj1ChfhOdfi3cy9SGBpWgTXwYCuboT/oYpJy3clqfw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-popover@1.1.15': + resolution: {integrity: sha512-kr0X2+6Yy/vJzLYJUPCZEc8SfQcf+1COFoAqauJm74umQhta9M7lNJHP7QQS3vkvcGLQUbWpMzwrXYwrYztHKA==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-popper@1.2.8': + resolution: {integrity: sha512-0NJQ4LFFUuWkE7Oxf0htBKS6zLkkjBH+hM1uk7Ng705ReR8m/uelduy1DBo0PyBXPKVnBA6YBlU94MBGXrSBCw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-portal@1.1.9': + resolution: {integrity: sha512-bpIxvq03if6UNwXZ+HTK71JLh4APvnXntDc6XOX8UVq4XQOVl7lwok0AvIl+b8zgCw3fSaVTZMpAPPagXbKmHQ==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-presence@1.1.5': + resolution: {integrity: sha512-/jfEwNDdQVBCNvjkGit4h6pMOzq8bHkopq458dPt2lMjx+eBQUohZNG9A7DtO/O5ukSbxuaNGXMjHicgwy6rQQ==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-primitive@2.1.3': + resolution: {integrity: sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-progress@1.1.7': + resolution: {integrity: sha512-vPdg/tF6YC/ynuBIJlk1mm7Le0VgW6ub6J2UWnTQ7/D23KXcPI1qy+0vBkgKgd38RCMJavBXpB83HPNFMTb0Fg==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-radio-group@1.3.8': + resolution: {integrity: sha512-VBKYIYImA5zsxACdisNQ3BjCBfmbGH3kQlnFVqlWU4tXwjy7cGX8ta80BcrO+WJXIn5iBylEH3K6ZTlee//lgQ==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-roving-focus@1.1.11': + resolution: {integrity: sha512-7A6S9jSgm/S+7MdtNDSb+IU859vQqJ/QAtcYQcfFC6W8RS4IxIZDldLR0xqCFZ6DCyrQLjLPsxtTNch5jVA4lA==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-scroll-area@1.2.10': + resolution: {integrity: sha512-tAXIa1g3sM5CGpVT0uIbUx/U3Gs5N8T52IICuCtObaos1S8fzsrPXG5WObkQN3S6NVl6wKgPhAIiBGbWnvc97A==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-select@2.2.6': + resolution: {integrity: sha512-I30RydO+bnn2PQztvo25tswPH+wFBjehVGtmagkU78yMdwTwVf12wnAOF+AeP8S2N8xD+5UPbGhkUfPyvT+mwQ==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-separator@1.1.7': + resolution: {integrity: sha512-0HEb8R9E8A+jZjvmFCy/J4xhbXy3TV+9XSnGJ3KvTtjlIUy/YQ/p6UYZvi7YbeoeXdyU9+Y3scizK6hkY37baA==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-slider@1.3.6': + resolution: {integrity: sha512-JPYb1GuM1bxfjMRlNLE+BcmBC8onfCi60Blk7OBqi2MLTFdS+8401U4uFjnwkOr49BLmXxLC6JHkvAsx5OJvHw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-slot@1.2.3': + resolution: {integrity: sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-switch@1.2.6': + resolution: {integrity: sha512-bByzr1+ep1zk4VubeEVViV592vu2lHE2BZY5OnzehZqOOgogN80+mNtCqPkhn2gklJqOpxWgPoYTSnhBCqpOXQ==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-tabs@1.1.13': + resolution: {integrity: sha512-7xdcatg7/U+7+Udyoj2zodtI9H/IIopqo+YOIcZOq1nJwXWBZ9p8xiu5llXlekDbZkca79a/fozEYQXIA4sW6A==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-toast@1.2.15': + resolution: {integrity: sha512-3OSz3TacUWy4WtOXV38DggwxoqJK4+eDkNMl5Z/MJZaoUPaP4/9lf81xXMe1I2ReTAptverZUpbPY4wWwWyL5g==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-toggle-group@1.1.11': + resolution: {integrity: sha512-5umnS0T8JQzQT6HbPyO7Hh9dgd82NmS36DQr+X/YJ9ctFNCiiQd6IJAYYZ33LUwm8M+taCz5t2ui29fHZc4Y6Q==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-toggle@1.1.10': + resolution: {integrity: sha512-lS1odchhFTeZv3xwHH31YPObmJn8gOg7Lq12inrr0+BH/l3Tsq32VfjqH1oh80ARM3mlkfMic15n0kg4sD1poQ==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-toolbar@1.1.11': + resolution: {integrity: sha512-4ol06/1bLoFu1nwUqzdD4Y5RZ9oDdKeiHIsntug54Hcr1pgaHiPqHFEaXI1IFP/EsOfROQZ8Mig9VTIRza6Tjg==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-tooltip@1.2.8': + resolution: {integrity: sha512-tY7sVt1yL9ozIxvmbtN5qtmH2krXcBCfjEiCgKGLqunJHvgvZG2Pcl2oQ3kbcZARb1BGEHdkLzcYGO8ynVlieg==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-use-callback-ref@1.1.1': + resolution: {integrity: sha512-FkBMwD+qbGQeMu1cOHnuGB6x4yzPjho8ap5WtbEJ26umhgqVXbhekKUQO+hZEL1vU92a3wHwdp0HAcqAUF5iDg==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-controllable-state@1.2.2': + resolution: {integrity: sha512-BjasUjixPFdS+NKkypcyyN5Pmg83Olst0+c6vGov0diwTEo6mgdqVR6hxcEgFuh4QrAs7Rc+9KuGJ9TVCj0Zzg==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-effect-event@0.0.2': + resolution: {integrity: sha512-Qp8WbZOBe+blgpuUT+lw2xheLP8q0oatc9UpmiemEICxGvFLYmHm9QowVZGHtJlGbS6A6yJ3iViad/2cVjnOiA==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-escape-keydown@1.1.1': + resolution: {integrity: sha512-Il0+boE7w/XebUHyBjroE+DbByORGR9KKmITzbR7MyQ4akpORYP/ZmbhAr0DG7RmmBqoOnZdy2QlvajJ2QA59g==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-is-hydrated@0.1.0': + resolution: {integrity: sha512-U+UORVEq+cTnRIaostJv9AGdV3G6Y+zbVd+12e18jQ5A3c0xL03IhnHuiU4UV69wolOQp5GfR58NW/EgdQhwOA==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-layout-effect@1.1.1': + resolution: {integrity: sha512-RbJRS4UWQFkzHTTwVymMTUv8EqYhOp8dOOviLj2ugtTiXRaRQS7GLGxZTLL1jWhMeoSCf5zmcZkqTl9IiYfXcQ==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-previous@1.1.1': + resolution: {integrity: sha512-2dHfToCj/pzca2Ck724OZ5L0EVrr3eHRNsG/b3xQJLA2hZpVCS99bLAX+hm1IHXDEnzU6by5z/5MIY794/a8NQ==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-rect@1.1.1': + resolution: {integrity: sha512-QTYuDesS0VtuHNNvMh+CjlKJ4LJickCMUAqjlE3+j8w+RlRpwyX3apEQKGFzbZGdo7XNG1tXa+bQqIE7HIXT2w==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-size@1.1.1': + resolution: {integrity: sha512-ewrXRDTAqAXlkl6t/fkXWNAhFX9I+CkKlw6zjEwk86RSPKwZr3xpBRso655aqYafwtnbpHLj6toFzmd6xdVptQ==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-visually-hidden@1.2.3': + resolution: {integrity: sha512-pzJq12tEaaIhqjbzpCuv/OypJY/BPavOofm+dbab+MHLajy277+1lLm6JFcGgF5eskJ6mquGirhXY2GD/8u8Ug==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/rect@1.1.1': + resolution: {integrity: sha512-HPwpGIzkl28mWyZqG52jiqDJ12waP11Pa1lGoiyUkIEuMLBP0oeK/C89esbXrxsky5we7dfd8U58nm0SgAWpVw==} + + '@remirror/core-constants@3.0.0': + resolution: {integrity: sha512-42aWfPrimMfDKDi4YegyS7x+/0tlzaqwPQCULLanv3DMIlu96KTJR0fM5isWX2UViOqlGnX6YFgqWepcX+XMNg==} + + '@samepage/scripts@0.74.5': + resolution: {integrity: sha512-0hy5IOG2+PXqetIQPuheTKYPnKxDHw4x0s9qjytlEgZC2faiYyMkAqK3MUumuocbz1OWX43+yPs7ujRAZqVl9g==} + engines: {node: '>=16.0.0', npm: '>=7.0.0'} + hasBin: true + peerDependencies: + '@aws-sdk/client-lambda': ^3.278.0 + '@aws-sdk/client-s3': ^3.100.0 + '@samepage/testing': 0.74.5 + archiver: ^5.3.1 + axios: '>=0.26.0 <1' + debug: ^4.3.4 + dotenv: ^16.0.3 + esbuild: 0.17.14 + patch-package: ^6.5.0 + tailwindcss: 3.3.2 + ts-node: ^10.9.1 + zod: ^3.19.1 + + '@samepage/testing@0.74.5': + resolution: {integrity: sha512-ZwO/02YK5DFVIJYH6eklAwDJ7W13Jtwvprf89EP/VRNN/GRP/GAwrgXc6eX5KdfocC9Lf5ovu84/6CWrO7qwmg==} + engines: {node: '>=16.0.0', npm: '>=7.0.0'} + peerDependencies: + '@playwright/test': 1.29.0 + '@testing-library/react': '>11.2.7' + '@testing-library/user-event': ^14.4.3 + '@types/jsdom': ^20.0.0 + c8: ^7.12.0 + debug: ^4.3.4 + dotenv: ^16.0.3 + jsdom: ^20.0.0 + ts-node: ^10.9.1 + + '@smithy/abort-controller@4.2.8': + resolution: {integrity: sha512-peuVfkYHAmS5ybKxWcfraK7WBBP0J+rkfUcbHJJKQ4ir3UAUNQI+Y4Vt/PqSzGqgloJ5O1dk7+WzNL8wcCSXbw==} + engines: {node: '>=18.0.0'} + + '@smithy/chunked-blob-reader-native@4.2.1': + resolution: {integrity: sha512-lX9Ay+6LisTfpLid2zZtIhSEjHMZoAR5hHCR4H7tBz/Zkfr5ea8RcQ7Tk4mi0P76p4cN+Btz16Ffno7YHpKXnQ==} + engines: {node: '>=18.0.0'} + + '@smithy/chunked-blob-reader@5.2.0': + resolution: {integrity: sha512-WmU0TnhEAJLWvfSeMxBNe5xtbselEO8+4wG0NtZeL8oR21WgH1xiO37El+/Y+H/Ie4SCwBy3MxYWmOYaGgZueA==} + engines: {node: '>=18.0.0'} + + '@smithy/config-resolver@4.4.6': + resolution: {integrity: sha512-qJpzYC64kaj3S0fueiu3kXm8xPrR3PcXDPEgnaNMRn0EjNSZFoFjvbUp0YUDsRhN1CB90EnHJtbxWKevnH99UQ==} + engines: {node: '>=18.0.0'} + + '@smithy/core@3.22.1': + resolution: {integrity: sha512-x3ie6Crr58MWrm4viHqqy2Du2rHYZjwu8BekasrQx4ca+Y24dzVAwq3yErdqIbc2G3I0kLQA13PQ+/rde+u65g==} + engines: {node: '>=18.0.0'} + + '@smithy/credential-provider-imds@4.2.8': + resolution: {integrity: sha512-FNT0xHS1c/CPN8upqbMFP83+ul5YgdisfCfkZ86Jh2NSmnqw/AJ6x5pEogVCTVvSm7j9MopRU89bmDelxuDMYw==} + engines: {node: '>=18.0.0'} + + '@smithy/eventstream-codec@4.2.8': + resolution: {integrity: sha512-jS/O5Q14UsufqoGhov7dHLOPCzkYJl9QDzusI2Psh4wyYx/izhzvX9P4D69aTxcdfVhEPhjK+wYyn/PzLjKbbw==} + engines: {node: '>=18.0.0'} + + '@smithy/eventstream-serde-browser@4.2.8': + resolution: {integrity: sha512-MTfQT/CRQz5g24ayXdjg53V0mhucZth4PESoA5IhvaWVDTOQLfo8qI9vzqHcPsdd2v6sqfTYqF5L/l+pea5Uyw==} + engines: {node: '>=18.0.0'} + + '@smithy/eventstream-serde-config-resolver@4.3.8': + resolution: {integrity: sha512-ah12+luBiDGzBruhu3efNy1IlbwSEdNiw8fOZksoKoWW1ZHvO/04MQsdnws/9Aj+5b0YXSSN2JXKy/ClIsW8MQ==} + engines: {node: '>=18.0.0'} + + '@smithy/eventstream-serde-node@4.2.8': + resolution: {integrity: sha512-cYpCpp29z6EJHa5T9WL0KAlq3SOKUQkcgSoeRfRVwjGgSFl7Uh32eYGt7IDYCX20skiEdRffyDpvF2efEZPC0A==} + engines: {node: '>=18.0.0'} + + '@smithy/eventstream-serde-universal@4.2.8': + resolution: {integrity: sha512-iJ6YNJd0bntJYnX6s52NC4WFYcZeKrPUr1Kmmr5AwZcwCSzVpS7oavAmxMR7pMq7V+D1G4s9F5NJK0xwOsKAlQ==} + engines: {node: '>=18.0.0'} + + '@smithy/fetch-http-handler@5.3.9': + resolution: {integrity: sha512-I4UhmcTYXBrct03rwzQX1Y/iqQlzVQaPxWjCjula++5EmWq9YGBrx6bbGqluGc1f0XEfhSkiY4jhLgbsJUMKRA==} + engines: {node: '>=18.0.0'} + + '@smithy/hash-blob-browser@4.2.9': + resolution: {integrity: sha512-m80d/iicI7DlBDxyQP6Th7BW/ejDGiF0bgI754+tiwK0lgMkcaIBgvwwVc7OFbY4eUzpGtnig52MhPAEJ7iNYg==} + engines: {node: '>=18.0.0'} + + '@smithy/hash-node@4.2.8': + resolution: {integrity: sha512-7ZIlPbmaDGxVoxErDZnuFG18WekhbA/g2/i97wGj+wUBeS6pcUeAym8u4BXh/75RXWhgIJhyC11hBzig6MljwA==} + engines: {node: '>=18.0.0'} + + '@smithy/hash-stream-node@4.2.8': + resolution: {integrity: sha512-v0FLTXgHrTeheYZFGhR+ehX5qUm4IQsjAiL9qehad2cyjMWcN2QG6/4mSwbSgEQzI7jwfoXj7z4fxZUx/Mhj2w==} + engines: {node: '>=18.0.0'} + + '@smithy/invalid-dependency@4.2.8': + resolution: {integrity: sha512-N9iozRybwAQ2dn9Fot9kI6/w9vos2oTXLhtK7ovGqwZjlOcxu6XhPlpLpC+INsxktqHinn5gS2DXDjDF2kG5sQ==} + engines: {node: '>=18.0.0'} + + '@smithy/is-array-buffer@2.2.0': + resolution: {integrity: sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==} + engines: {node: '>=14.0.0'} + + '@smithy/is-array-buffer@4.2.0': + resolution: {integrity: sha512-DZZZBvC7sjcYh4MazJSGiWMI2L7E0oCiRHREDzIxi/M2LY79/21iXt6aPLHge82wi5LsuRF5A06Ds3+0mlh6CQ==} + engines: {node: '>=18.0.0'} + + '@smithy/md5-js@4.2.8': + resolution: {integrity: sha512-oGMaLj4tVZzLi3itBa9TCswgMBr7k9b+qKYowQ6x1rTyTuO1IU2YHdHUa+891OsOH+wCsH7aTPRsTJO3RMQmjQ==} + engines: {node: '>=18.0.0'} + + '@smithy/middleware-content-length@4.2.8': + resolution: {integrity: sha512-RO0jeoaYAB1qBRhfVyq0pMgBoUK34YEJxVxyjOWYZiOKOq2yMZ4MnVXMZCUDenpozHue207+9P5ilTV1zeda0A==} + engines: {node: '>=18.0.0'} + + '@smithy/middleware-endpoint@4.4.13': + resolution: {integrity: sha512-x6vn0PjYmGdNuKh/juUJJewZh7MoQ46jYaJ2mvekF4EesMuFfrl4LaW/k97Zjf8PTCPQmPgMvwewg7eNoH9n5w==} + engines: {node: '>=18.0.0'} + + '@smithy/middleware-retry@4.4.30': + resolution: {integrity: sha512-CBGyFvN0f8hlnqKH/jckRDz78Snrp345+PVk8Ux7pnkUCW97Iinse59lY78hBt04h1GZ6hjBN94BRwZy1xC8Bg==} + engines: {node: '>=18.0.0'} + + '@smithy/middleware-serde@4.2.9': + resolution: {integrity: sha512-eMNiej0u/snzDvlqRGSN3Vl0ESn3838+nKyVfF2FKNXFbi4SERYT6PR392D39iczngbqqGG0Jl1DlCnp7tBbXQ==} + engines: {node: '>=18.0.0'} + + '@smithy/middleware-stack@4.2.8': + resolution: {integrity: sha512-w6LCfOviTYQjBctOKSwy6A8FIkQy7ICvglrZFl6Bw4FmcQ1Z420fUtIhxaUZZshRe0VCq4kvDiPiXrPZAe8oRA==} + engines: {node: '>=18.0.0'} + + '@smithy/node-config-provider@4.3.8': + resolution: {integrity: sha512-aFP1ai4lrbVlWjfpAfRSL8KFcnJQYfTl5QxLJXY32vghJrDuFyPZ6LtUL+JEGYiFRG1PfPLHLoxj107ulncLIg==} + engines: {node: '>=18.0.0'} + + '@smithy/node-http-handler@4.4.9': + resolution: {integrity: sha512-KX5Wml5mF+luxm1szW4QDz32e3NObgJ4Fyw+irhph4I/2geXwUy4jkIMUs5ZPGflRBeR6BUkC2wqIab4Llgm3w==} + engines: {node: '>=18.0.0'} + + '@smithy/property-provider@4.2.8': + resolution: {integrity: sha512-EtCTbyIveCKeOXDSWSdze3k612yCPq1YbXsbqX3UHhkOSW8zKsM9NOJG5gTIya0vbY2DIaieG8pKo1rITHYL0w==} + engines: {node: '>=18.0.0'} + + '@smithy/protocol-http@5.3.8': + resolution: {integrity: sha512-QNINVDhxpZ5QnP3aviNHQFlRogQZDfYlCkQT+7tJnErPQbDhysondEjhikuANxgMsZrkGeiAxXy4jguEGsDrWQ==} + engines: {node: '>=18.0.0'} + + '@smithy/querystring-builder@4.2.8': + resolution: {integrity: sha512-Xr83r31+DrE8CP3MqPgMJl+pQlLLmOfiEUnoyAlGzzJIrEsbKsPy1hqH0qySaQm4oWrCBlUqRt+idEgunKB+iw==} + engines: {node: '>=18.0.0'} + + '@smithy/querystring-parser@4.2.8': + resolution: {integrity: sha512-vUurovluVy50CUlazOiXkPq40KGvGWSdmusa3130MwrR1UNnNgKAlj58wlOe61XSHRpUfIIh6cE0zZ8mzKaDPA==} + engines: {node: '>=18.0.0'} + + '@smithy/service-error-classification@4.2.8': + resolution: {integrity: sha512-mZ5xddodpJhEt3RkCjbmUQuXUOaPNTkbMGR0bcS8FE0bJDLMZlhmpgrvPNCYglVw5rsYTpSnv19womw9WWXKQQ==} + engines: {node: '>=18.0.0'} + + '@smithy/shared-ini-file-loader@4.4.3': + resolution: {integrity: sha512-DfQjxXQnzC5UbCUPeC3Ie8u+rIWZTvuDPAGU/BxzrOGhRvgUanaP68kDZA+jaT3ZI+djOf+4dERGlm9mWfFDrg==} + engines: {node: '>=18.0.0'} + + '@smithy/signature-v4@5.3.8': + resolution: {integrity: sha512-6A4vdGj7qKNRF16UIcO8HhHjKW27thsxYci+5r/uVRkdcBEkOEiY8OMPuydLX4QHSrJqGHPJzPRwwVTqbLZJhg==} + engines: {node: '>=18.0.0'} + + '@smithy/smithy-client@4.11.2': + resolution: {integrity: sha512-SCkGmFak/xC1n7hKRsUr6wOnBTJ3L22Qd4e8H1fQIuKTAjntwgU8lrdMe7uHdiT2mJAOWA/60qaW9tiMu69n1A==} + engines: {node: '>=18.0.0'} + + '@smithy/types@4.12.0': + resolution: {integrity: sha512-9YcuJVTOBDjg9LWo23Qp0lTQ3D7fQsQtwle0jVfpbUHy9qBwCEgKuVH4FqFB3VYu0nwdHKiEMA+oXz7oV8X1kw==} + engines: {node: '>=18.0.0'} + + '@smithy/url-parser@4.2.8': + resolution: {integrity: sha512-NQho9U68TGMEU639YkXnVMV3GEFFULmmaWdlu1E9qzyIePOHsoSnagTGSDv1Zi8DCNN6btxOSdgmy5E/hsZwhA==} + engines: {node: '>=18.0.0'} + + '@smithy/util-base64@4.3.0': + resolution: {integrity: sha512-GkXZ59JfyxsIwNTWFnjmFEI8kZpRNIBfxKjv09+nkAWPt/4aGaEWMM04m4sxgNVWkbt2MdSvE3KF/PfX4nFedQ==} + engines: {node: '>=18.0.0'} + + '@smithy/util-body-length-browser@4.2.0': + resolution: {integrity: sha512-Fkoh/I76szMKJnBXWPdFkQJl2r9SjPt3cMzLdOB6eJ4Pnpas8hVoWPYemX/peO0yrrvldgCUVJqOAjUrOLjbxg==} + engines: {node: '>=18.0.0'} + + '@smithy/util-body-length-node@4.2.1': + resolution: {integrity: sha512-h53dz/pISVrVrfxV1iqXlx5pRg3V2YWFcSQyPyXZRrZoZj4R4DeWRDo1a7dd3CPTcFi3kE+98tuNyD2axyZReA==} + engines: {node: '>=18.0.0'} + + '@smithy/util-buffer-from@2.2.0': + resolution: {integrity: sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==} + engines: {node: '>=14.0.0'} + + '@smithy/util-buffer-from@4.2.0': + resolution: {integrity: sha512-kAY9hTKulTNevM2nlRtxAG2FQ3B2OR6QIrPY3zE5LqJy1oxzmgBGsHLWTcNhWXKchgA0WHW+mZkQrng/pgcCew==} + engines: {node: '>=18.0.0'} + + '@smithy/util-config-provider@4.2.0': + resolution: {integrity: sha512-YEjpl6XJ36FTKmD+kRJJWYvrHeUvm5ykaUS5xK+6oXffQPHeEM4/nXlZPe+Wu0lsgRUcNZiliYNh/y7q9c2y6Q==} + engines: {node: '>=18.0.0'} + + '@smithy/util-defaults-mode-browser@4.3.29': + resolution: {integrity: sha512-nIGy3DNRmOjaYaaKcQDzmWsro9uxlaqUOhZDHQed9MW/GmkBZPtnU70Pu1+GT9IBmUXwRdDuiyaeiy9Xtpn3+Q==} + engines: {node: '>=18.0.0'} + + '@smithy/util-defaults-mode-node@4.2.32': + resolution: {integrity: sha512-7dtFff6pu5fsjqrVve0YMhrnzJtccCWDacNKOkiZjJ++fmjGExmmSu341x+WU6Oc1IccL7lDuaUj7SfrHpWc5Q==} + engines: {node: '>=18.0.0'} + + '@smithy/util-endpoints@3.2.8': + resolution: {integrity: sha512-8JaVTn3pBDkhZgHQ8R0epwWt+BqPSLCjdjXXusK1onwJlRuN69fbvSK66aIKKO7SwVFM6x2J2ox5X8pOaWcUEw==} + engines: {node: '>=18.0.0'} + + '@smithy/util-hex-encoding@4.2.0': + resolution: {integrity: sha512-CCQBwJIvXMLKxVbO88IukazJD9a4kQ9ZN7/UMGBjBcJYvatpWk+9g870El4cB8/EJxfe+k+y0GmR9CAzkF+Nbw==} + engines: {node: '>=18.0.0'} + + '@smithy/util-middleware@4.2.8': + resolution: {integrity: sha512-PMqfeJxLcNPMDgvPbbLl/2Vpin+luxqTGPpW3NAQVLbRrFRzTa4rNAASYeIGjRV9Ytuhzny39SpyU04EQreF+A==} + engines: {node: '>=18.0.0'} + + '@smithy/util-retry@4.2.8': + resolution: {integrity: sha512-CfJqwvoRY0kTGe5AkQokpURNCT1u/MkRzMTASWMPPo2hNSnKtF1D45dQl3DE2LKLr4m+PW9mCeBMJr5mCAVThg==} + engines: {node: '>=18.0.0'} + + '@smithy/util-stream@4.5.11': + resolution: {integrity: sha512-lKmZ0S/3Qj2OF5H1+VzvDLb6kRxGzZHq6f3rAsoSu5cTLGsn3v3VQBA8czkNNXlLjoFEtVu3OQT2jEeOtOE2CA==} + engines: {node: '>=18.0.0'} + + '@smithy/util-uri-escape@4.2.0': + resolution: {integrity: sha512-igZpCKV9+E/Mzrpq6YacdTQ0qTiLm85gD6N/IrmyDvQFA4UnU3d5g3m8tMT/6zG/vVkWSU+VxeUyGonL62DuxA==} + engines: {node: '>=18.0.0'} + + '@smithy/util-utf8@2.3.0': + resolution: {integrity: sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==} + engines: {node: '>=14.0.0'} + + '@smithy/util-utf8@4.2.0': + resolution: {integrity: sha512-zBPfuzoI8xyBtR2P6WQj63Rz8i3AmfAaJLuNG8dWsfvPe8lO4aCPYLn879mEgHndZH1zQ2oXmG8O1GGzzaoZiw==} + engines: {node: '>=18.0.0'} + + '@smithy/util-waiter@4.2.8': + resolution: {integrity: sha512-n+lahlMWk+aejGuax7DPWtqav8HYnWxQwR+LCG2BgCUmaGcTe9qZCFsmw8TMg9iG75HOwhrJCX9TCJRLH+Yzqg==} + engines: {node: '>=18.0.0'} + + '@smithy/uuid@1.1.0': + resolution: {integrity: sha512-4aUIteuyxtBUhVdiQqcDhKFitwfd9hqoSDYY2KRXiWtgoWJ9Bmise+KfEPDiVHWeJepvF8xJO9/9+WDIciMFFw==} + engines: {node: '>=18.0.0'} + + '@testing-library/dom@10.4.1': + resolution: {integrity: sha512-o4PXJQidqJl82ckFaXUeoAW+XysPLauYI43Abki5hABd853iMhitooc6znOnczgbTYmEP6U6/y1ZyKAIsvMKGg==} + engines: {node: '>=18'} + + '@testing-library/react@16.3.2': + resolution: {integrity: sha512-XU5/SytQM+ykqMnAnvB2umaJNIOsLF3PVv//1Ew4CTcpz0/BRyy/af40qqrt7SjKpDdT1saBMc42CUok5gaw+g==} + engines: {node: '>=18'} + peerDependencies: + '@testing-library/dom': ^10.0.0 + '@types/react': ^18.0.0 || ^19.0.0 + '@types/react-dom': ^18.0.0 || ^19.0.0 + react: ^18.0.0 || ^19.0.0 + react-dom: ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@testing-library/user-event@14.6.1': + resolution: {integrity: sha512-vq7fv0rnt+QTXgPxr5Hjc210p6YKq2kmdziLgnsZGgLJ9e6VAShx1pACLuRjd/AS/sr7phAR58OIIpf0LlmQNw==} + engines: {node: '>=12', npm: '>=6'} + peerDependencies: + '@testing-library/dom': '>=7.21.4' + + '@tiptap/core@2.27.2': + resolution: {integrity: sha512-ABL1N6eoxzDzC1bYvkMbvyexHacszsKdVPYqhl5GwHLOvpZcv9VE9QaKwDILTyz5voCA0lGcAAXZp+qnXOk5lQ==} + peerDependencies: + '@tiptap/pm': ^2.7.0 + + '@tiptap/extension-blockquote@2.27.2': + resolution: {integrity: sha512-oIGZgiAeA4tG3YxbTDfrmENL4/CIwGuP3THtHsNhwRqwsl9SfMk58Ucopi2GXTQSdYXpRJ0ahE6nPqB5D6j/Zw==} + peerDependencies: + '@tiptap/core': ^2.7.0 + + '@tiptap/extension-bold@2.27.2': + resolution: {integrity: sha512-bR7J5IwjCGQ0s3CIxyMvOCnMFMzIvsc5OVZKscTN5UkXzFsaY6muUAIqtKxayBUucjtUskm5qZowJITCeCb1/A==} + peerDependencies: + '@tiptap/core': ^2.7.0 + + '@tiptap/extension-bubble-menu@2.27.2': + resolution: {integrity: sha512-VkwlCOcr0abTBGzjPXklJ92FCowG7InU8+Od9FyApdLNmn0utRYGRhw0Zno6VgE9EYr1JY4BRnuSa5f9wlR72w==} + peerDependencies: + '@tiptap/core': ^2.7.0 + '@tiptap/pm': ^2.7.0 + + '@tiptap/extension-bullet-list@2.27.2': + resolution: {integrity: sha512-gmFuKi97u5f8uFc/GQs+zmezjiulZmFiDYTh3trVoLRoc2SAHOjGEB7qxdx7dsqmMN7gwiAWAEVurLKIi1lnnw==} + peerDependencies: + '@tiptap/core': ^2.7.0 + + '@tiptap/extension-code-block@2.27.2': + resolution: {integrity: sha512-KgvdQHS4jXr79aU3wZOGBIZYYl9vCB7uDEuRFV4so2rYrfmiYMw3T8bTnlNEEGe4RUeAms1i4fdwwvQp9nR1Dw==} + peerDependencies: + '@tiptap/core': ^2.7.0 + '@tiptap/pm': ^2.7.0 + + '@tiptap/extension-code@2.27.2': + resolution: {integrity: sha512-7X9AgwqiIGXoZX7uvdHQsGsjILnN/JaEVtqfXZnPECzKGaWHeK/Ao4sYvIIIffsyZJA8k5DC7ny2/0sAgr2TuA==} + peerDependencies: + '@tiptap/core': ^2.7.0 + + '@tiptap/extension-document@2.27.2': + resolution: {integrity: sha512-CFhAYsPnyYnosDC4639sCJnBUnYH4Cat9qH5NZWHVvdgtDwu8GZgZn2eSzaKSYXWH1vJ9DSlCK+7UyC3SNXIBA==} + peerDependencies: + '@tiptap/core': ^2.7.0 + + '@tiptap/extension-dropcursor@2.27.2': + resolution: {integrity: sha512-oEu/OrktNoQXq1x29NnH/GOIzQZm8ieTQl3FK27nxfBPA89cNoH4mFEUmBL5/OFIENIjiYG3qWpg6voIqzswNw==} + peerDependencies: + '@tiptap/core': ^2.7.0 + '@tiptap/pm': ^2.7.0 + + '@tiptap/extension-floating-menu@2.27.2': + resolution: {integrity: sha512-GUN6gPIGXS7ngRJOwdSmtBRBDt9Kt9CM/9pSwKebhLJ+honFoNA+Y6IpVyDvvDMdVNgBchiJLs6qA5H97gAePQ==} + peerDependencies: + '@tiptap/core': ^2.7.0 + '@tiptap/pm': ^2.7.0 + + '@tiptap/extension-gapcursor@2.27.2': + resolution: {integrity: sha512-/c9VF1HBxj+AP54XGVgCmD9bEGYc5w5OofYCFQgM7l7PB1J00A4vOke0oPkHJnqnOOyPlFaxO/7N6l3XwFcnKA==} + peerDependencies: + '@tiptap/core': ^2.7.0 + '@tiptap/pm': ^2.7.0 + + '@tiptap/extension-hard-break@2.27.2': + resolution: {integrity: sha512-kSRVGKlCYK6AGR0h8xRkk0WOFGXHIIndod3GKgWU49APuIGDiXd8sziXsSlniUsWmqgDmDXcNnSzPcV7AQ8YNg==} + peerDependencies: + '@tiptap/core': ^2.7.0 + + '@tiptap/extension-heading@2.27.2': + resolution: {integrity: sha512-iM3yeRWuuQR/IRQ1djwNooJGfn9Jts9zF43qZIUf+U2NY8IlvdNsk2wTOdBgh6E0CamrStPxYGuln3ZS4fuglw==} + peerDependencies: + '@tiptap/core': ^2.7.0 + + '@tiptap/extension-highlight@2.27.2': + resolution: {integrity: sha512-ZjlktDdMjruMJFAVz0TbQf0v92Jqkc7Ri1iZJqBXuLid+r+GxUzl2CVAV7qq5yagkGQgvAG+WGsMk880HgR3MA==} + peerDependencies: + '@tiptap/core': ^2.7.0 + + '@tiptap/extension-history@2.27.2': + resolution: {integrity: sha512-+hSyqERoFNTWPiZx4/FCyZ/0eFqB9fuMdTB4AC/q9iwu3RNWAQtlsJg5230bf/qmyO6bZxRUc0k8p4hrV6ybAw==} + peerDependencies: + '@tiptap/core': ^2.7.0 + '@tiptap/pm': ^2.7.0 + + '@tiptap/extension-horizontal-rule@2.27.2': + resolution: {integrity: sha512-WGWUSgX+jCsbtf9Y9OCUUgRZYuwjVoieW5n6mAUohJ9/6gc6sGIOrUpBShf+HHo6WD+gtQjRd+PssmX3NPWMpg==} + peerDependencies: + '@tiptap/core': ^2.7.0 + '@tiptap/pm': ^2.7.0 + + '@tiptap/extension-italic@2.27.2': + resolution: {integrity: sha512-1OFsw2SZqfaqx5Fa5v90iNlPRcqyt+lVSjBwTDzuPxTPFY4Q0mL89mKgkq2gVHYNCiaRkXvFLDxaSvBWbmthgg==} + peerDependencies: + '@tiptap/core': ^2.7.0 + + '@tiptap/extension-link@2.27.2': + resolution: {integrity: sha512-bnP61qkr0Kj9Cgnop1hxn2zbOCBzNtmawxr92bVTOE31fJv6FhtCnQiD6tuPQVGMYhcmAj7eihtvuEMFfqEPcQ==} + peerDependencies: + '@tiptap/core': ^2.7.0 + '@tiptap/pm': ^2.7.0 + + '@tiptap/extension-list-item@2.27.2': + resolution: {integrity: sha512-eJNee7IEGXMnmygM5SdMGDC8m/lMWmwNGf9fPCK6xk0NxuQRgmZHL6uApKcdH6gyNcRPHCqvTTkhEP7pbny/fg==} + peerDependencies: + '@tiptap/core': ^2.7.0 + + '@tiptap/extension-ordered-list@2.27.2': + resolution: {integrity: sha512-M7A4tLGJcLPYdLC4CI2Gwl8LOrENQW59u3cMVa+KkwG1hzSJyPsbDpa1DI6oXPC2WtYiTf22zrbq3gVvH+KA2w==} + peerDependencies: + '@tiptap/core': ^2.7.0 + + '@tiptap/extension-paragraph@2.27.2': + resolution: {integrity: sha512-elYVn2wHJJ+zB9LESENWOAfI4TNT0jqEN34sMA/hCtA4im1ZG2DdLHwkHIshj/c4H0dzQhmsS/YmNC5Vbqab/A==} + peerDependencies: + '@tiptap/core': ^2.7.0 + + '@tiptap/extension-strike@2.27.2': + resolution: {integrity: sha512-HHIjhafLhS2lHgfAsCwC1okqMsQzR4/mkGDm4M583Yftyjri1TNA7lzhzXWRFWiiMfJxKtdjHjUAQaHuteRTZw==} + peerDependencies: + '@tiptap/core': ^2.7.0 + + '@tiptap/extension-text-style@2.27.2': + resolution: {integrity: sha512-Omk+uxjJLyEY69KStpCw5fA9asvV+MGcAX2HOxyISDFoLaL49TMrNjhGAuz09P1L1b0KGXo4ml7Q3v/Lfy4WPA==} + peerDependencies: + '@tiptap/core': ^2.7.0 + + '@tiptap/extension-text@2.27.2': + resolution: {integrity: sha512-Xk7nYcigljAY0GO9hAQpZ65ZCxqOqaAlTPDFcKerXmlkQZP/8ndx95OgUb1Xf63kmPOh3xypurGS2is3v0MXSA==} + peerDependencies: + '@tiptap/core': ^2.7.0 + + '@tiptap/pm@2.27.2': + resolution: {integrity: sha512-kaEg7BfiJPDQMKbjVIzEPO3wlcA+pZb2tlcK9gPrdDnEFaec2QTF1sXz2ak2IIb2curvnIrQ4yrfHgLlVA72wA==} + + '@tiptap/react@2.27.2': + resolution: {integrity: sha512-0EAs8Cpkfbvben1PZ34JN2Nd79Dhioynm2jML27DBbf1VWPk+FFWFGTMLUT0bu+Np5iVxio8fqV9t0mc4D6thA==} + peerDependencies: + '@tiptap/core': ^2.7.0 + '@tiptap/pm': ^2.7.0 + react: ^17.0.0 || ^18.0.0 || ^19.0.0 + react-dom: ^17.0.0 || ^18.0.0 || ^19.0.0 + + '@tiptap/starter-kit@2.27.2': + resolution: {integrity: sha512-bb0gJvPoDuyRUQ/iuN52j1//EtWWttw+RXAv1uJxfR0uKf8X7uAqzaOOgwjknoCIDC97+1YHwpGdnRjpDkOBxw==} + + '@tldraw/editor@3.15.5': + resolution: {integrity: sha512-/PGs/SOfuJw5FOgmfqlwVcS887mK4DOHQjxEchS3pg/R/80KTA6j7BNpiHxWQ1FhYHGg+A2QEAijKNcscyK8zw==} + peerDependencies: + react: ^18.2.0 || ^19.0.0 + react-dom: ^18.2.0 || ^19.0.0 + + '@tldraw/state-react@3.15.5': + resolution: {integrity: sha512-KuiDJm4mAgdbuboowGv2hrG6tq9p7+OpatSMgJW8ZEezFJEcGcvQSeL+RWdu0lgj41pRdyg/i64ZIKWOeTpriQ==} + peerDependencies: + react: ^18.2.0 || ^19.0.0 + react-dom: ^18.2.0 || ^19.0.0 + + '@tldraw/state@3.15.5': + resolution: {integrity: sha512-wqa6zWzfz09lV/QOgxRYpbD5nrBl+2Q43eGtM+sFJB4WclTIGQXP6m5VYns3VmEafzJuVFLmUq3RBcK/lEELxw==} + + '@tldraw/store@3.15.5': + resolution: {integrity: sha512-I0khxAsRVtXbScZqsEo6aAtyyb/Mb65xl/aAMvFqH/9iNGT18pWJqgEu0i1VrXAnXA4IBjjivhhS8WhSzlEOZA==} + peerDependencies: + react: ^18.2.0 || ^19.0.0 + + '@tldraw/tlschema@3.15.5': + resolution: {integrity: sha512-IHOhwXYDdq6+IDkFOXb5rI/O5KAFs/Kq3p9QIK174LvUbsT27Xlzv/ikZe68OafvonNo1QIXuOqQSv+Q40+7Wg==} + peerDependencies: + react: ^18.2.0 || ^19.0.0 + react-dom: ^18.2.0 || ^19.0.0 + + '@tldraw/utils@3.15.5': + resolution: {integrity: sha512-kdRLl2oMCbN5i2agVJ1ZsL3/ipiBGVQiS33/0NrqijoA9zFyM7sNgr8sb+6vjNbV1HrXHHSxeBHVCusBlZu8iQ==} + + '@tldraw/validate@3.15.5': + resolution: {integrity: sha512-DyvEySVHJ7cCqCMd5stDTYllEZGHZEEpAuQQeb+fQTsxf9X+iO3la6hjnLbALewsBFakzma6r1M9aDrA3LSGkA==} + + '@tootallnate/once@2.0.0': + resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==} + engines: {node: '>= 10'} + + '@tsconfig/node10@1.0.12': + resolution: {integrity: sha512-UCYBaeFvM11aU2y3YPZ//O5Rhj+xKyzy7mvcIoAjASbigy8mHMryP5cK7dgjlz2hWxh1g5pLw084E0a/wlUSFQ==} + + '@tsconfig/node12@1.0.11': + resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==} + + '@tsconfig/node14@1.0.3': + resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==} + + '@tsconfig/node16@1.0.4': + resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} + + '@types/aria-query@5.0.4': + resolution: {integrity: sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==} + + '@types/core-js@2.5.8': + resolution: {integrity: sha512-VgnAj6tIAhJhZdJ8/IpxdatM8G4OD3VWGlp6xIxUGENZlpbob9Ty4VVdC1FIEp0aK6DBscDDjyzy5FB60TuNqg==} + + '@types/crypto-js@4.1.1': + resolution: {integrity: sha512-BG7fQKZ689HIoc5h+6D2Dgq1fABRa0RbBWKBd9SP/MVRVXROflpm5fhwyATX5duFmbStzyzyycPB8qUYKDH3NA==} + + '@types/cytoscape@3.31.0': + resolution: {integrity: sha512-EXHOHxqQjGxLDEh5cP4te6J0bi7LbCzmZkzsR6f703igUac8UGMdEohMyU3GHAayCTZrLQOMnaE/lqB2Ekh8Ww==} + deprecated: This is a stub types definition. cytoscape provides its own type definitions, so you do not need this installed. + + '@types/dom4@2.0.4': + resolution: {integrity: sha512-PD+wqNhrjWFjAlSVd18jvChZvOXB2SOwAILBmuYev5zswBats5qmzs/QFoooLKd2omj9BT05a8MeSeRmXLGY+Q==} + + '@types/file-saver@2.0.5': + resolution: {integrity: sha512-zv9kNf3keYegP5oThGLaPk8E081DFDuwfqjtiTzm6PoxChdJ1raSuADf2YGCVIyrSynLrgc8JWv296s7Q7pQSQ==} + + '@types/hast@2.3.10': + resolution: {integrity: sha512-McWspRw8xx8J9HurkVBfYj0xKoE25tOFlHGdx4MJ5xORQrMGZNqJhVQWaIbm6Oyla5kYOXtDiopzKRJzEOkwJw==} + + '@types/istanbul-lib-coverage@2.0.6': + resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==} + + '@types/jquery@3.5.33': + resolution: {integrity: sha512-SeyVJXlCZpEki5F0ghuYe+L+PprQta6nRZqhONt9F13dWBtR/ftoaIbdRQ7cis7womE+X2LKhsDdDtkkDhJS6g==} + + '@types/jsdom@20.0.1': + resolution: {integrity: sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ==} + + '@types/linkify-it@5.0.0': + resolution: {integrity: sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==} + + '@types/markdown-it@14.1.2': + resolution: {integrity: sha512-promo4eFwuiW+TfGxhi+0x3czqTYJkG8qB17ZUJiVF10Xm7NLVRSLUsfRTU/6h1e24VvRnXCx+hG7li58lkzog==} + + '@types/marked@4.3.2': + resolution: {integrity: sha512-a79Yc3TOk6dGdituy8hmTTJXjOkZ7zsFYV10L337ttq/rec8lRMDBpV7fL3uLx6TgbFCa5DU/h8FmIBQPSbU0w==} + + '@types/mdurl@2.0.0': + resolution: {integrity: sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==} + + '@types/nanoid@2.0.0': + resolution: {integrity: sha512-NtwPHfAyU3IDXdKAB2OMPpAauHBg9gUjpOYr3FAzI84D70nWdS8k5mryteLvT/s1ACeAFAkGg132/XJVN4qx/w==} + + '@types/node@25.2.1': + resolution: {integrity: sha512-CPrnr8voK8vC6eEtyRzvMpgp3VyVRhgclonE7qYi6P9sXwYb59ucfrnmFBTaP0yUi8Gk4yZg/LlTJULGxvTNsg==} + + '@types/prop-types@15.7.15': + resolution: {integrity: sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==} + + '@types/react-dom@17.0.13': + resolution: {integrity: sha512-wEP+B8hzvy6ORDv1QBhcQia4j6ea4SFIBttHYpXKPFZRviBvknq0FRh3VrIxeXUmsPkwuXVZrVGG7KUVONmXCQ==} + + '@types/react@17.0.39': + resolution: {integrity: sha512-UVavlfAxDd/AgAacMa60Azl7ygyQNRwC/DsHZmKgNvPmRR5p70AJ5Q9EAmL2NWOJmeV+vVUI4IAP7GZrN8h8Ug==} + + '@types/scheduler@0.26.0': + resolution: {integrity: sha512-WFHp9YUJQ6CKshqoC37iOlHnQSmxNc795UhB26CyBBttrN9svdIrUjl/NjnNmfcwtncN0h/0PPAFWv9ovP8mLA==} + + '@types/sizzle@2.3.10': + resolution: {integrity: sha512-TC0dmN0K8YcWEAEfiPi5gJP14eJe30TTGjkvek3iM/1NdHHsdCA/Td6GvNndMOo/iSnIsZ4HuuhrYPDAmbxzww==} + + '@types/tough-cookie@4.0.5': + resolution: {integrity: sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==} + + '@types/unist@2.0.11': + resolution: {integrity: sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==} + + '@types/use-sync-external-store@0.0.6': + resolution: {integrity: sha512-zFDAD+tlpf2r4asuHEj0XH6pY6i0g5NeAHPn+15wk3BV6JA69eERFXC1gyGThDkVa1zCyKr5jox1+2LbV/AMLg==} + + '@use-gesture/core@10.3.1': + resolution: {integrity: sha512-WcINiDt8WjqBdUXye25anHiNxPc0VOrlT8F6LLkU6cycrOGUDyY/yyFmsg3k8i5OLvv25llc0QC45GhR/C8llw==} + + '@use-gesture/react@10.3.1': + resolution: {integrity: sha512-Yy19y6O2GJq8f7CHf7L0nxL8bf4PZCPaVOCgJrusOeFHY1LvHgYXnmnXg6N5iwAnbgbZCDjo60SiM6IPJi9C5g==} + peerDependencies: + react: '>= 16.8.0' + + '@yarnpkg/lockfile@1.1.0': + resolution: {integrity: sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==} + + abab@2.0.6: + resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==} + deprecated: Use your platform's native atob() and btoa() methods instead + + acorn-globals@7.0.1: + resolution: {integrity: sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==} + + acorn-walk@8.3.4: + resolution: {integrity: sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==} + engines: {node: '>=0.4.0'} + + acorn@8.15.0: + resolution: {integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==} + engines: {node: '>=0.4.0'} + hasBin: true + + agent-base@6.0.2: + resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} + engines: {node: '>= 6.0.0'} + + ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + + ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + + ansi-styles@5.2.0: + resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} + engines: {node: '>=10'} + + ansidec@0.3.4: + resolution: {integrity: sha512-Ydgbey4zqUmmNN2i2OVeVHXig3PxHRbok2X6B2Sogmb92JzZUFfTL806dT7os6tBL1peXItfeFt76CP3zsoXUg==} + + any-promise@1.3.0: + resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} + + anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} + + arch@2.2.0: + resolution: {integrity: sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==} + + archiver-utils@2.1.0: + resolution: {integrity: sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==} + engines: {node: '>= 6'} + + archiver-utils@3.0.4: + resolution: {integrity: sha512-KVgf4XQVrTjhyWmx6cte4RxonPLR9onExufI1jhvw/MQ4BB6IsZD5gT8Lq+u/+pRkWna/6JoHpiQioaqFP5Rzw==} + engines: {node: '>= 10'} + + archiver@5.3.2: + resolution: {integrity: sha512-+25nxyyznAXF7Nef3y0EbBeqmGZgeN/BxHX29Rs39djAfaFalmQ89SE6CWyDCHzGL0yt/ycBtNOmGTW0FyGWNw==} + engines: {node: '>= 10'} + + arg@4.1.3: + resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} + + arg@5.0.2: + resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} + + argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + + aria-hidden@1.2.6: + resolution: {integrity: sha512-ik3ZgC9dY/lYVVM++OISsaYDeg1tb0VtP5uL3ouh1koGOaUMDPpbFIei4JkFimWUFPn90sbMNMXQAIVOlnYKJA==} + engines: {node: '>=10'} + + aria-query@5.3.0: + resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} + + async@3.2.6: + resolution: {integrity: sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==} + + asynckit@0.4.0: + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + + at-least-node@1.0.0: + resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==} + engines: {node: '>= 4.0.0'} + + axios@0.30.2: + resolution: {integrity: sha512-0pE4RQ4UQi1jKY6p7u6i1Tkzqmu+d+/tHS7Q7rKunWLB9WyilBTpHHpXzPNMDj5hTbK0B0PTLSz07yqMBiF6xg==} + + balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + + base64-js@1.5.1: + resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + + binary-extensions@2.3.0: + resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} + engines: {node: '>=8'} + + bl@4.1.0: + resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} + + bowser@2.13.1: + resolution: {integrity: sha512-OHawaAbjwx6rqICCKgSG0SAnT05bzd7ppyKLVUITZpANBaaMFBAsaNkto3LoQ31tyFP5kNujE8Cdx85G9VzOkw==} + + brace-expansion@1.1.12: + resolution: {integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==} + + brace-expansion@2.0.2: + resolution: {integrity: sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==} + + braces@3.0.3: + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} + engines: {node: '>=8'} + + buffer-crc32@0.2.13: + resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} + + buffer@5.7.1: + resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} + + c8@7.14.0: + resolution: {integrity: sha512-i04rtkkcNcCf7zsQcSv/T9EbUn4RXQ6mropeMcjFOsQXQ0iGLAr/xT6TImQg4+U9hmNpN9XdvPkjUL1IzbgxJw==} + engines: {node: '>=10.12.0'} + hasBin: true + + call-bind-apply-helpers@1.0.2: + resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} + engines: {node: '>= 0.4'} + + call-bind@1.0.8: + resolution: {integrity: sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==} + engines: {node: '>= 0.4'} + + call-bound@1.0.4: + resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==} + engines: {node: '>= 0.4'} + + camelcase-css@2.0.1: + resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} + engines: {node: '>= 6'} + + ccount@1.1.0: + resolution: {integrity: sha512-vlNK021QdI7PNeiUh/lKkC/mNHHfV0m/Ad5JoI0TYtlBnJAslM/JIkm/tGC88bkLIwO6OQ5uV6ztS6kVAtCDlg==} + + chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} + + character-entities-html4@1.1.4: + resolution: {integrity: sha512-HRcDxZuZqMx3/a+qrzxdBKBPUpxWEq9xw2OPZ3a/174ihfrQKVsFhqtthBInFy1zZ9GgZyFXOatNujm8M+El3g==} + + character-entities-legacy@1.1.4: + resolution: {integrity: sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==} + + character-entities@1.2.4: + resolution: {integrity: sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==} + + character-reference-invalid@1.1.4: + resolution: {integrity: sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==} + + chokidar@3.6.0: + resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} + engines: {node: '>= 8.10.0'} + + chrono-node@2.3.0: + resolution: {integrity: sha512-70DhMEY3RiwB/9+Fstpu9cbI+ycO/WNHxCOI1Lvo+LLiVdhMVOJ8B3jzXgZHCiGbZc7SKHFsP7apeeuP/EAw+Q==} + + ci-info@2.0.0: + resolution: {integrity: sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==} + + classnames@2.5.1: + resolution: {integrity: sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==} + + clipboardy@2.3.0: + resolution: {integrity: sha512-mKhiIL2DrQIsuXMgBgnfEHOZOryC7kY7YO//TN6c63wlEm3NG5tz+YgY5rVi29KCmq/QQjKYvM7a19+MDOTHOQ==} + engines: {node: '>=8'} + + cliui@7.0.4: + resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} + + clone@1.0.4: + resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} + engines: {node: '>=0.8'} + + color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + + color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + + color-string@1.9.1: + resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==} + + color@4.2.3: + resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==} + engines: {node: '>=12.5.0'} + + combined-stream@1.0.8: + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} + engines: {node: '>= 0.8'} + + comma-separated-tokens@1.0.8: + resolution: {integrity: sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw==} + + commander@4.1.1: + resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} + engines: {node: '>= 6'} + + compress-commons@4.1.2: + resolution: {integrity: sha512-D3uMHtGc/fcO1Gt1/L7i1e33VOvD4A9hfQLP+6ewd+BvG/gQ84Yh4oftEhAdjSMgBgwGL+jsppT7JYNpo6MHHg==} + engines: {node: '>= 10'} + + concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + + convert-source-map@2.0.0: + resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + + core-js-pure@3.48.0: + resolution: {integrity: sha512-1slJgk89tWC51HQ1AEqG+s2VuwpTRr8ocu4n20QUcH1v9lAN0RXen0Q0AABa/DK1I7RrNWLucplOHMx8hfTGTw==} + + core-js@3.48.0: + resolution: {integrity: sha512-zpEHTy1fjTMZCKLHUZoVeylt9XrzaIN2rbPXEt0k+q7JE5CkCZdo6bNq55bn24a69CH7ErAVLKijxJja4fw+UQ==} + + core-util-is@1.0.3: + resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} + + coveralls-next@4.2.2: + resolution: {integrity: sha512-Tw1TKXV0+aEfOgRYBN97RtEZlrLxBiZKFkngsupONkJwy0uYQNbB6VfAEnGnOUa5WkW5sBhjGB2tWha6ULrYkw==} + engines: {node: '>=18'} + hasBin: true + + crc-32@1.2.2: + resolution: {integrity: sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==} + engines: {node: '>=0.8'} + hasBin: true + + crc32-stream@4.0.3: + resolution: {integrity: sha512-NT7w2JVU7DFroFdYkeq8cywxrgjPHWkdX1wjpRQXPX5Asews3tA+Ght6lddQO5Mkumffp3X7GEqku3epj2toIw==} + engines: {node: '>= 10'} + + create-require@1.1.1: + resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} + + crelt@1.0.6: + resolution: {integrity: sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g==} + + cross-spawn@6.0.6: + resolution: {integrity: sha512-VqCUuhcd1iB+dsv8gxPttb5iZh/D0iubSP21g36KXdEuf6I5JiioesUVjpCdHV9MZRUfVFlvwtIUyPfxo5trtw==} + engines: {node: '>=4.8'} + + cross-spawn@7.0.6: + resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} + engines: {node: '>= 8'} + + crypto-js@3.1.9-1: + resolution: {integrity: sha512-W93aKztssqf29OvUlqfikzGyYbD1rpkXvGP9IQ1JchLY3bxaLXZSWYbwrtib2vk8DobrDzX7PIXcDWHp0B6Ymw==} + + cssesc@3.0.0: + resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} + engines: {node: '>=4'} + hasBin: true + + cssom@0.3.8: + resolution: {integrity: sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==} + + cssom@0.5.0: + resolution: {integrity: sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==} + + cssstyle@2.3.0: + resolution: {integrity: sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==} + engines: {node: '>=8'} + + csstype@3.2.3: + resolution: {integrity: sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==} + + cytoscape@3.33.1: + resolution: {integrity: sha512-iJc4TwyANnOGR1OmWhsS9ayRS3s+XQ185FmuHObThD+5AeJCakAAbWv8KimMTt08xCCLNgneQwFp+JRJOr9qGQ==} + engines: {node: '>=0.10'} + + data-uri-to-buffer@4.0.1: + resolution: {integrity: sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==} + engines: {node: '>= 12'} + + data-urls@3.0.2: + resolution: {integrity: sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==} + engines: {node: '>=12'} + + date-fns@2.30.0: + resolution: {integrity: sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==} + engines: {node: '>=0.11'} + + dayjs@1.11.19: + resolution: {integrity: sha512-t5EcLVS6QPBNqM2z8fakk/NKel+Xzshgt8FFKAn+qwlD1pzZWxh0nVCrvFK7ZDb6XucZeF9z8C7CBWTRIVApAw==} + + debug@4.4.3: + resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + decimal.js@10.3.1: + resolution: {integrity: sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ==} + + decimal.js@10.6.0: + resolution: {integrity: sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==} + + deep-equal@1.1.2: + resolution: {integrity: sha512-5tdhKF6DbU7iIzrIOa1AOUt39ZRm13cmL1cGEh//aqR8x9+tNfbywRf0n5FD/18OKMdo7DNEtrX2t22ZAkI+eg==} + engines: {node: '>= 0.4'} + + defaults@1.0.4: + resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} + + define-data-property@1.1.4: + resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} + engines: {node: '>= 0.4'} + + define-properties@1.2.1: + resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} + engines: {node: '>= 0.4'} + + delayed-stream@1.0.0: + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} + engines: {node: '>=0.4.0'} + + dequal@2.0.3: + resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} + engines: {node: '>=6'} + + detect-node-es@1.1.0: + resolution: {integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==} + + didyoumean@1.2.2: + resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} + + diff@4.0.4: + resolution: {integrity: sha512-X07nttJQkwkfKfvTPG/KSnE2OMdcUCao6+eXF3wmnIQRn2aPAHH3VxDbDOdegkd6JbPsXqShpvEOHfAT+nCNwQ==} + engines: {node: '>=0.3.1'} + + dlv@1.1.3: + resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} + + dom-accessibility-api@0.5.16: + resolution: {integrity: sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==} + + dom-helpers@3.4.0: + resolution: {integrity: sha512-LnuPJ+dwqKDIyotW1VzmOZ5TONUN7CwkCR5hrgawTUbkBGYdeoNLZo6nNfGkCrjtE1nXXaj7iMMpDa8/d9WoIA==} + + dom4@2.1.6: + resolution: {integrity: sha512-JkCVGnN4ofKGbjf5Uvc8mmxaATIErKQKSgACdBXpsQ3fY6DlIpAyWfiBSrGkttATssbDCp3psiAKWXk5gmjycA==} + + domexception@4.0.0: + resolution: {integrity: sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==} + engines: {node: '>=12'} + deprecated: Use your platform's native DOMException instead + + dotenv@16.6.1: + resolution: {integrity: sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==} + engines: {node: '>=12'} + + dunder-proto@1.0.1: + resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} + engines: {node: '>= 0.4'} + + edn-data@1.1.2: + resolution: {integrity: sha512-RI1i17URvOrBtSNEccbsXkuUZdc67QUBMqXGF62KPek85EdFGS2UKw76hNhOBl5kK4h7V4d32Ut15b/XVwKEXA==} + engines: {node: '>=12.0.0'} + + emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + + end-of-stream@1.4.5: + resolution: {integrity: sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==} + + entities@4.5.0: + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} + engines: {node: '>=0.12'} + + entities@6.0.1: + resolution: {integrity: sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==} + engines: {node: '>=0.12'} + + es-define-property@1.0.1: + resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} + engines: {node: '>= 0.4'} + + es-errors@1.3.0: + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} + engines: {node: '>= 0.4'} + + es-object-atoms@1.1.1: + resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} + engines: {node: '>= 0.4'} + + es-set-tostringtag@2.1.0: + resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==} + engines: {node: '>= 0.4'} + + esbuild@0.27.3: + resolution: {integrity: sha512-8VwMnyGCONIs6cWue2IdpHxHnAjzxnw2Zr7MkVxB2vjmQ2ivqGFb4LEG3SMnv0Gb2F/G/2yA8zUaiL1gywDCCg==} + engines: {node: '>=18'} + hasBin: true + + escalade@3.2.0: + resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} + engines: {node: '>=6'} + + escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + + escodegen@2.1.0: + resolution: {integrity: sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==} + engines: {node: '>=6.0'} + hasBin: true + + esprima@4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} + hasBin: true + + estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + + esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} + + eventemitter3@4.0.7: + resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} + + execa@1.0.0: + resolution: {integrity: sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==} + engines: {node: '>=6'} + + fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + + fast-glob@3.3.3: + resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} + engines: {node: '>=8.6.0'} + + fast-xml-parser@5.3.4: + resolution: {integrity: sha512-EFd6afGmXlCx8H8WTZHhAoDaWaGyuIBoZJ2mknrNxug+aZKjkp0a0dlars9Izl+jF+7Gu1/5f/2h68cQpe0IiA==} + hasBin: true + + fastq@1.20.1: + resolution: {integrity: sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==} + + fdir@6.5.0: + resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} + engines: {node: '>=12.0.0'} + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + + fetch-blob@3.2.0: + resolution: {integrity: sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==} + engines: {node: ^12.20 || >= 14.13} + + file-saver@2.0.2: + resolution: {integrity: sha512-Wz3c3XQ5xroCxd1G8b7yL0Ehkf0TC9oYC6buPFkNnU9EnaPlifeAFCyCh+iewXTyFRcg0a6j3J7FmJsIhlhBdw==} + + fill-range@7.1.1: + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} + engines: {node: '>=8'} + + find-up@5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} + + find-yarn-workspace-root@2.0.0: + resolution: {integrity: sha512-1IMnbjt4KzsQfnhnzNd8wUEgXZ44IzZaZmnLYx7D5FZlaHt2gW20Cri8Q+E/t5tIj4+epTBub+2Zxu/vNILzqQ==} + + follow-redirects@1.15.11: + resolution: {integrity: sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==} + engines: {node: '>=4.0'} + peerDependencies: + debug: '*' + peerDependenciesMeta: + debug: + optional: true + + foreground-child@2.0.0: + resolution: {integrity: sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==} + engines: {node: '>=8.0.0'} + + form-data@4.0.4: + resolution: {integrity: sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==} + engines: {node: '>= 6'} + + form-data@4.0.5: + resolution: {integrity: sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==} + engines: {node: '>= 6'} + + formdata-polyfill@4.0.10: + resolution: {integrity: sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==} + engines: {node: '>=12.20.0'} + + fractional-indexing-jittered@1.0.0: + resolution: {integrity: sha512-0tLU0FOedVY7lrvN4LK0DVj6FTuYM0pWDpN97/8UTZE2lx1+OwX8+2uL7IOWc2PmktYTHQjMT6FvZZ3SGCdZdg==} + + fs-constants@1.0.0: + resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} + + fs-extra@9.1.0: + resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==} + engines: {node: '>=10'} + + fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + + fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + + function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + + functions-have-names@1.2.3: + resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} + + fuzzy@0.1.3: + resolution: {integrity: sha512-/gZffu4ykarLrCiP3Ygsa86UAo1E5vEVlvTrpkKywXSbP9Xhln3oSp9QSV57gEq3JFFpGJ4GZ+5zdEp3FcUh4w==} + engines: {node: '>= 0.6.0'} + + get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + + get-intrinsic@1.3.0: + resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==} + engines: {node: '>= 0.4'} + + get-nonce@1.0.1: + resolution: {integrity: sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==} + engines: {node: '>=6'} + + get-proto@1.0.1: + resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} + engines: {node: '>= 0.4'} + + get-stream@4.1.0: + resolution: {integrity: sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==} + engines: {node: '>=6'} + + get-tsconfig@4.13.6: + resolution: {integrity: sha512-shZT/QMiSHc/YBLxxOkMtgSid5HFoauqCE3/exfsEcwg1WkeqjG+V40yBbBrsD+jW2HDXcs28xOfcbm2jI8Ddw==} + + glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + + glob-parent@6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} + + glob@7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me + + gopd@1.2.0: + resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} + engines: {node: '>= 0.4'} + + graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + + gud@1.0.0: + resolution: {integrity: sha512-zGEOVKFM5sVPPrYs7J5/hYEw2Pof8KCyOwyhG8sAF26mCAeUFAcYPu1mwB7hhpIP29zOIBaDqwuHdLp0jvZXjw==} + + has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + + has-property-descriptors@1.0.2: + resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} + + has-symbols@1.1.0: + resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} + engines: {node: '>= 0.4'} + + has-tostringtag@1.0.2: + resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} + engines: {node: '>= 0.4'} + + hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + engines: {node: '>= 0.4'} + + hast-util-is-element@1.1.0: + resolution: {integrity: sha512-oUmNua0bFbdrD/ELDSSEadRVtWZOf3iF6Lbv81naqsIV99RnSCieTbWuWCY8BAeEfKJTKl0gRdokv+dELutHGQ==} + + hast-util-parse-selector@2.2.5: + resolution: {integrity: sha512-7j6mrk/qqkSehsM92wQjdIgWM2/BW61u/53G6xmC8i1OmEdKLHbk419QKQUjz6LglWsfqoiHmyMRkP1BGjecNQ==} + + hast-util-to-html@7.1.3: + resolution: {integrity: sha512-yk2+1p3EJTEE9ZEUkgHsUSVhIpCsL/bvT8E5GzmWc+N1Po5gBw+0F8bo7dpxXR0nu0bQVxVZGX2lBGF21CmeDw==} + + hast-util-whitespace@1.0.4: + resolution: {integrity: sha512-I5GTdSfhYfAPNztx2xJRQpG8cuDSNt599/7YUn7Gx/WxNMsG+a835k97TDkFgk123cwjfwINaZknkKkphx/f2A==} + + hastscript@6.0.0: + resolution: {integrity: sha512-nDM6bvd7lIqDUiYEiu5Sl/+6ReP0BMk/2f4U/Rooccxkj0P5nm+acM5PrGJ/t5I8qPGiqZSE6hVAwZEdZIvP4w==} + + hotkeys-js@3.13.15: + resolution: {integrity: sha512-gHh8a/cPTCpanraePpjRxyIlxDFrIhYqjuh01UHWEwDpglJKCnvLW8kqSx5gQtOuSsJogNZXLhOdbSExpgUiqg==} + + html-encoding-sniffer@3.0.0: + resolution: {integrity: sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==} + engines: {node: '>=12'} + + html-escaper@2.0.2: + resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} + + html-void-elements@1.0.5: + resolution: {integrity: sha512-uE/TxKuyNIcx44cIWnjr/rfIATDH7ZaOMmstu0CwhFG1Dunhlp4OC6/NMbhiwoq5BpW0ubi303qnEk/PZj614w==} + + http-proxy-agent@5.0.0: + resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==} + engines: {node: '>= 6'} + + https-proxy-agent@5.0.1: + resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} + engines: {node: '>= 6'} + + iconv-lite@0.6.3: + resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} + engines: {node: '>=0.10.0'} + + idb@7.1.1: + resolution: {integrity: sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ==} + + ieee754@1.2.1: + resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} + + immediate@3.0.6: + resolution: {integrity: sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==} + + inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. + + inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + + insect@5.9.1: + resolution: {integrity: sha512-j3EQpWpKFDUi28S1uasGMs7KVmdQc2B/MLgzjGEgaBAvMGvexjRieWG7/Nae/j1GnCjtwqepEpplvgZ3u4QSag==} + engines: {node: '>=10'} + hasBin: true + + is-alphabetical@1.0.4: + resolution: {integrity: sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==} + + is-alphanumerical@1.0.4: + resolution: {integrity: sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==} + + is-arguments@1.2.0: + resolution: {integrity: sha512-7bVbi0huj/wrIAOzb8U1aszg9kdi3KN/CyU19CTI7tAoZYEZoL9yCDXpbXN+uPsuWnP02cyug1gleqq+TU+YCA==} + engines: {node: '>= 0.4'} + + is-arrayish@0.3.4: + resolution: {integrity: sha512-m6UrgzFVUYawGBh1dUsWR5M2Clqic9RVXC/9f8ceNlv2IcO9j9J/z8UoCLPqtsPBFNzEpfR3xftohbfqDx8EQA==} + + is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + + is-ci@2.0.0: + resolution: {integrity: sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==} + hasBin: true + + is-core-module@2.16.1: + resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} + engines: {node: '>= 0.4'} + + is-date-object@1.1.0: + resolution: {integrity: sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==} + engines: {node: '>= 0.4'} + + is-decimal@1.0.4: + resolution: {integrity: sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==} + + is-docker@2.2.1: + resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} + engines: {node: '>=8'} + hasBin: true + + is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + + is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + + is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + + is-hexadecimal@1.0.4: + resolution: {integrity: sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==} + + is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + + is-plain-object@5.0.0: + resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==} + engines: {node: '>=0.10.0'} + + is-potential-custom-element-name@1.0.1: + resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} + + is-regex@1.2.1: + resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==} + engines: {node: '>= 0.4'} + + is-stream@1.1.0: + resolution: {integrity: sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==} + engines: {node: '>=0.10.0'} + + is-wsl@2.2.0: + resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} + engines: {node: '>=8'} + + isarray@1.0.0: + resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} + + isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + + istanbul-lib-coverage@3.2.2: + resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} + engines: {node: '>=8'} + + istanbul-lib-report@3.0.1: + resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} + engines: {node: '>=10'} + + istanbul-reports@3.2.0: + resolution: {integrity: sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==} + engines: {node: '>=8'} + + jiti@1.21.7: + resolution: {integrity: sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==} + hasBin: true + + jquery.terminal@2.45.2: + resolution: {integrity: sha512-7MtA3Hc8w+xSaANF5ZfN7ibDTp2DhecWsy4n8o+3+m62WDvg39gW6j+XcCQN6fc+b22Sy8m2jnKIJyb9nk4H5w==} + hasBin: true + + jquery@3.7.1: + resolution: {integrity: sha512-m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg==} + + js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + + js-yaml@4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true + + jsdom@20.0.3: + resolution: {integrity: sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==} + engines: {node: '>=14'} + peerDependencies: + canvas: ^2.5.0 + peerDependenciesMeta: + canvas: + optional: true + + jsonfile@6.2.0: + resolution: {integrity: sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==} + + jszip@3.10.0: + resolution: {integrity: sha512-LDfVtOLtOxb9RXkYOwPyNBTQDL4eUbqahtoY6x07GiDJHwSYvn8sHHIw8wINImV3MqbMNve2gSuM1DDqEKk09Q==} + + keyboardevent-key-polyfill@1.1.0: + resolution: {integrity: sha512-NTDqo7XhzL1fqmUzYroiyK2qGua7sOMzLav35BfNA/mPUSCtw8pZghHFMTYR9JdnJ23IQz695FcaM6EE6bpbFQ==} + + klaw-sync@6.0.0: + resolution: {integrity: sha512-nIeuVSzdCCs6TDPTqI8w1Yre34sSq7AkZ4B3sfOBbI2CgVSB4Du4aLQijFU2+lhAFCwt9+42Hel6lQNIv6AntQ==} + + lazystream@1.0.1: + resolution: {integrity: sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==} + engines: {node: '>= 0.6.3'} + + lcov-parse@1.0.0: + resolution: {integrity: sha512-aprLII/vPzuQvYZnDRU78Fns9I2Ag3gi4Ipga/hxnVMCZC8DnR2nI7XBqrPoywGfxqIx/DgarGvDJZAD3YBTgQ==} + hasBin: true + + lie@3.3.0: + resolution: {integrity: sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==} + + lilconfig@2.1.0: + resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} + engines: {node: '>=10'} + + lilconfig@3.1.3: + resolution: {integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==} + engines: {node: '>=14'} + + line-reader@0.4.0: + resolution: {integrity: sha512-AYJ8g+eE7v+Ba4s/cuYqzuNulH/WbjdKQ55fvx8fNVn8WQzTpioY6vI1MoxTuMgcHYX3VlmZWbVvnkIqkyJbCA==} + + lines-and-columns@1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + + linkify-it@5.0.0: + resolution: {integrity: sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==} + + linkifyjs@4.3.2: + resolution: {integrity: sha512-NT1CJtq3hHIreOianA8aSXn6Cw0JzYOuDQbOrSPe7gqFnCpKP++MQe3ODgO3oh2GJFORkAAdqredOa60z63GbA==} + + locate-path@6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} + + lodash.defaults@4.2.0: + resolution: {integrity: sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==} + + lodash.difference@4.5.0: + resolution: {integrity: sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA==} + + lodash.flatten@4.4.0: + resolution: {integrity: sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==} + + lodash.isequal@4.5.0: + resolution: {integrity: sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==} + deprecated: This package is deprecated. Use require('node:util').isDeepStrictEqual instead. + + lodash.isequalwith@4.4.0: + resolution: {integrity: sha512-dcZON0IalGBpRmJBmMkaoV7d3I80R2O+FrzsZyHdNSFrANq/cgDqKQNmAHE8UEj4+QYWwwhkQOVdLHiAopzlsQ==} + + lodash.isplainobject@4.0.6: + resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} + + lodash.throttle@4.1.1: + resolution: {integrity: sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==} + + lodash.union@4.6.0: + resolution: {integrity: sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw==} + + lodash.uniq@4.5.0: + resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==} + + log-driver@1.2.7: + resolution: {integrity: sha512-U7KCmLdqsGHBLeWqYlFA0V0Sl6P08EE1ZrmA9cxjUE0WVqT9qnyVDPz1kzpFEP0jdJuFnasWIfSd7fsaNXkpbg==} + engines: {node: '>=0.8.6'} + + loose-envify@1.4.0: + resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} + hasBin: true + + lz-string@1.5.0: + resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==} + hasBin: true + + make-dir@4.0.0: + resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} + engines: {node: '>=10'} + + make-error@1.3.6: + resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} + + markdown-it@14.1.0: + resolution: {integrity: sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==} + hasBin: true + + marked-react@1.1.2: + resolution: {integrity: sha512-GeeAB5iIH4FaSxoQn/pb9iXn1/1Go5Jpa9ZTtNHFRcZ6vpfYOhgWakFMK9fCfvUIHNMa1uh6MHcefgW1Ss5yKw==} + peerDependencies: + react: ^16.8.0 || >=17.0.0 + + marked@4.0.16: + resolution: {integrity: sha512-wahonIQ5Jnyatt2fn8KqF/nIqZM8mh3oRu2+l5EANGMhu6RFjiSG52QNE2eWzFMI94HqYSgN184NurgNG6CztA==} + engines: {node: '>= 12'} + hasBin: true + + math-intrinsics@1.1.0: + resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} + engines: {node: '>= 0.4'} + + mdurl@2.0.0: + resolution: {integrity: sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==} + + merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + + micromatch@4.0.8: + resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} + engines: {node: '>=8.6'} + + mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} + + mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} + + minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + + minimatch@5.1.6: + resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} + engines: {node: '>=10'} + + minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + + ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + + mz@2.7.0: + resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} + + nanoid@3.3.11: + resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + + nice-try@1.0.5: + resolution: {integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==} + + node-domexception@1.0.0: + resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} + engines: {node: '>=10.5.0'} + deprecated: Use your platform's native DOMException instead + + node-fetch@3.3.2: + resolution: {integrity: sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + + normalize.css@8.0.1: + resolution: {integrity: sha512-qizSNPO93t1YUuUhP22btGOo3chcvDFqFaj2TRybP0DMxkHOCTYwp3n34fel4a31ORXy4m1Xq0Gyqpb5m33qIg==} + + npm-run-path@2.0.2: + resolution: {integrity: sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==} + engines: {node: '>=4'} + + nwsapi@2.2.23: + resolution: {integrity: sha512-7wfH4sLbt4M0gCDzGE6vzQBo0bfTKjU7Sfpqy/7gs1qBfYz2vEJH6vXcBKpO3+6Yu1telwd0t9HpyOoLEQQbIQ==} + + object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} + + object-hash@3.0.0: + resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} + engines: {node: '>= 6'} + + object-is@1.1.6: + resolution: {integrity: sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==} + engines: {node: '>= 0.4'} + + object-keys@1.1.1: + resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} + engines: {node: '>= 0.4'} + + once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + + open@7.4.2: + resolution: {integrity: sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==} + engines: {node: '>=8'} + + orderedmap@2.1.1: + resolution: {integrity: sha512-TvAWxi0nDe1j/rtMcWcIj94+Ffe6n7zhow33h40SKxmsmozs6dz/e+EajymfoFcHd7sxNn8yHM8839uixMOV6g==} + + os-tmpdir@1.0.2: + resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} + engines: {node: '>=0.10.0'} + + p-finally@1.0.0: + resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==} + engines: {node: '>=4'} + + p-limit@3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} + + p-locate@5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} + + pako@1.0.11: + resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==} + + parse-entities@2.0.0: + resolution: {integrity: sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==} + + parse5@7.3.0: + resolution: {integrity: sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==} + + patch-package@6.5.1: + resolution: {integrity: sha512-I/4Zsalfhc6bphmJTlrLoOcAF87jcxko4q0qsv4bGcurbr8IskEOtdnt9iCmsQVGL1B+iUhSQqweyTLJfCF9rA==} + engines: {node: '>=10', npm: '>5'} + hasBin: true + + path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + + path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} + + path-key@2.0.1: + resolution: {integrity: sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==} + engines: {node: '>=4'} + + path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + + path-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + + picocolors@1.1.1: + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} + + picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + + picomatch@4.0.3: + resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==} + engines: {node: '>=12'} + + pify@2.3.0: + resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} + engines: {node: '>=0.10.0'} + + pirates@4.0.7: + resolution: {integrity: sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==} + engines: {node: '>= 6'} + + playwright-core@1.29.0: + resolution: {integrity: sha512-pboOm1m0RD6z1GtwAbEH60PYRfF87vKdzOSRw2RyO0Y0a7utrMyWN2Au1ojGvQr4umuBMODkKTv607YIRypDSQ==} + engines: {node: '>=14'} + hasBin: true + + popper.js@1.16.1: + resolution: {integrity: sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ==} + deprecated: You can find the new Popper v2 at @popperjs/core, this package is dedicated to the legacy v1 + + postcss-import@15.1.0: + resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} + engines: {node: '>=14.0.0'} + peerDependencies: + postcss: ^8.0.0 + + postcss-js@4.1.0: + resolution: {integrity: sha512-oIAOTqgIo7q2EOwbhb8UalYePMvYoIeRY2YKntdpFQXNosSu3vLrniGgmH9OKs/qAkfoj5oB3le/7mINW1LCfw==} + engines: {node: ^12 || ^14 || >= 16} + peerDependencies: + postcss: ^8.4.21 + + postcss-load-config@4.0.2: + resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==} + engines: {node: '>= 14'} + peerDependencies: + postcss: '>=8.0.9' + ts-node: '>=9.0.0' + peerDependenciesMeta: + postcss: + optional: true + ts-node: + optional: true + + postcss-nested@6.2.0: + resolution: {integrity: sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==} + engines: {node: '>=12.0'} + peerDependencies: + postcss: ^8.2.14 + + postcss-selector-parser@6.1.2: + resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==} + engines: {node: '>=4'} + + postcss-value-parser@4.2.0: + resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} + + postcss@8.5.6: + resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==} + engines: {node: ^10 || ^12 || >=14} + + pretty-format@27.5.1: + resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + + prismjs@1.27.0: + resolution: {integrity: sha512-t13BGPUlFDR7wRB5kQDG4jjl7XeuH6jbJGt11JHPL96qwsEHNX2+68tFXqc1/k+/jALsbSWJKUOT/hcYAZ5LkA==} + engines: {node: '>=6'} + + prismjs@1.30.0: + resolution: {integrity: sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==} + engines: {node: '>=6'} + + process-nextick-args@2.0.1: + resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} + + prop-types@15.8.1: + resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} + + property-information@5.6.0: + resolution: {integrity: sha512-YUHSPk+A30YPv+0Qf8i9Mbfe/C0hdPXk1s1jPVToV8pk8BQtpw10ct89Eo7OWkutrwqvT0eicAxlOg3dOAu8JA==} + + prosemirror-changeset@2.3.1: + resolution: {integrity: sha512-j0kORIBm8ayJNl3zQvD1TTPHJX3g042et6y/KQhZhnPrruO8exkTgG8X+NRpj7kIyMMEx74Xb3DyMIBtO0IKkQ==} + + prosemirror-collab@1.3.1: + resolution: {integrity: sha512-4SnynYR9TTYaQVXd/ieUvsVV4PDMBzrq2xPUWutHivDuOshZXqQ5rGbZM84HEaXKbLdItse7weMGOUdDVcLKEQ==} + + prosemirror-commands@1.7.1: + resolution: {integrity: sha512-rT7qZnQtx5c0/y/KlYaGvtG411S97UaL6gdp6RIZ23DLHanMYLyfGBV5DtSnZdthQql7W+lEVbpSfwtO8T+L2w==} + + prosemirror-dropcursor@1.8.2: + resolution: {integrity: sha512-CCk6Gyx9+Tt2sbYk5NK0nB1ukHi2ryaRgadV/LvyNuO3ena1payM2z6Cg0vO1ebK8cxbzo41ku2DE5Axj1Zuiw==} + + prosemirror-gapcursor@1.4.0: + resolution: {integrity: sha512-z00qvurSdCEWUIulij/isHaqu4uLS8r/Fi61IbjdIPJEonQgggbJsLnstW7Lgdk4zQ68/yr6B6bf7sJXowIgdQ==} + + prosemirror-history@1.5.0: + resolution: {integrity: sha512-zlzTiH01eKA55UAf1MEjtssJeHnGxO0j4K4Dpx+gnmX9n+SHNlDqI2oO1Kv1iPN5B1dm5fsljCfqKF9nFL6HRg==} + + prosemirror-inputrules@1.5.1: + resolution: {integrity: sha512-7wj4uMjKaXWAQ1CDgxNzNtR9AlsuwzHfdFH1ygEHA2KHF2DOEaXl1CJfNPAKCg9qNEh4rum975QLaCiQPyY6Fw==} + + prosemirror-keymap@1.2.3: + resolution: {integrity: sha512-4HucRlpiLd1IPQQXNqeo81BGtkY8Ai5smHhKW9jjPKRc2wQIxksg7Hl1tTI2IfT2B/LgX6bfYvXxEpJl7aKYKw==} + + prosemirror-markdown@1.13.4: + resolution: {integrity: sha512-D98dm4cQ3Hs6EmjK500TdAOew4Z03EV71ajEFiWra3Upr7diytJsjF4mPV2dW+eK5uNectiRj0xFxYI9NLXDbw==} + + prosemirror-menu@1.2.5: + resolution: {integrity: sha512-qwXzynnpBIeg1D7BAtjOusR+81xCp53j7iWu/IargiRZqRjGIlQuu1f3jFi+ehrHhWMLoyOQTSRx/IWZJqOYtQ==} + + prosemirror-model@1.25.4: + resolution: {integrity: sha512-PIM7E43PBxKce8OQeezAs9j4TP+5yDpZVbuurd1h5phUxEKIu+G2a+EUZzIC5nS1mJktDJWzbqS23n1tsAf5QA==} + + prosemirror-schema-basic@1.2.4: + resolution: {integrity: sha512-ELxP4TlX3yr2v5rM7Sb70SqStq5NvI15c0j9j/gjsrO5vaw+fnnpovCLEGIcpeGfifkuqJwl4fon6b+KdrODYQ==} + + prosemirror-schema-list@1.5.1: + resolution: {integrity: sha512-927lFx/uwyQaGwJxLWCZRkjXG0p48KpMj6ueoYiu4JX05GGuGcgzAy62dfiV8eFZftgyBUvLx76RsMe20fJl+Q==} + + prosemirror-state@1.4.4: + resolution: {integrity: sha512-6jiYHH2CIGbCfnxdHbXZ12gySFY/fz/ulZE333G6bPqIZ4F+TXo9ifiR86nAHpWnfoNjOb3o5ESi7J8Uz1jXHw==} + + prosemirror-tables@1.8.5: + resolution: {integrity: sha512-V/0cDCsHKHe/tfWkeCmthNUcEp1IVO3p6vwN8XtwE9PZQLAZJigbw3QoraAdfJPir4NKJtNvOB8oYGKRl+t0Dw==} + + prosemirror-trailing-node@3.0.0: + resolution: {integrity: sha512-xiun5/3q0w5eRnGYfNlW1uU9W6x5MoFKWwq/0TIRgt09lv7Hcser2QYV8t4muXbEr+Fwo0geYn79Xs4GKywrRQ==} + peerDependencies: + prosemirror-model: ^1.22.1 + prosemirror-state: ^1.4.2 + prosemirror-view: ^1.33.8 + + prosemirror-transform@1.11.0: + resolution: {integrity: sha512-4I7Ce4KpygXb9bkiPS3hTEk4dSHorfRw8uI0pE8IhxlK2GXsqv5tIA7JUSxtSu7u8APVOTtbUBxTmnHIxVkIJw==} + + prosemirror-view@1.41.6: + resolution: {integrity: sha512-mxpcDG4hNQa/CPtzxjdlir5bJFDlm0/x5nGBbStB2BWX+XOQ9M8ekEG+ojqB5BcVu2Rc80/jssCMZzSstJuSYg==} + + proxy-from-env@1.1.0: + resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} + + psl@1.15.0: + resolution: {integrity: sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==} + + pump@3.0.3: + resolution: {integrity: sha512-todwxLMY7/heScKmntwQG8CXVkWUOdYxIvY2s0VWAAMh/nd8SoYiRaKjlr7+iCs984f2P8zvrfWcDDYVb73NfA==} + + punycode.js@2.3.1: + resolution: {integrity: sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==} + engines: {node: '>=6'} + + punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} + + querystringify@2.2.0: + resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} + + queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + + radix-ui@1.4.3: + resolution: {integrity: sha512-aWizCQiyeAenIdUbqEpXgRA1ya65P13NKn/W8rWkcN0OPkRDxdBVLWnIEDsS2RpwCK2nobI7oMUSmexzTDyAmA==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + react-day-picker@7.4.9: + resolution: {integrity: sha512-CcXf0p7p6gTYnG0+n/4wNGljZuQDXl4HhgcxsXB0nX+8D4LnRho9EclPA/aLz4WlvvVpfY+AEgj2ylgPj4nm/g==} + peerDependencies: + react: ~0.13.x || ~0.14.x || ^15.0.0 || ^16.0.0 || ^17.0.0 + + react-dom@17.0.2: + resolution: {integrity: sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==} + peerDependencies: + react: 17.0.2 + + react-is@16.13.1: + resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} + + react-is@17.0.2: + resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==} + + react-lifecycles-compat@3.0.4: + resolution: {integrity: sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==} + + react-popper@1.3.11: + resolution: {integrity: sha512-VSA/bS+pSndSF2fiasHK/PTEEAyOpX60+H5EPAjoArr8JGm+oihu4UbrqcEBpQibJxBVCpYyjAX7abJ+7DoYVg==} + peerDependencies: + react: 0.14.x || ^15.0.0 || ^16.0.0 || ^17.0.0 + + react-remove-scroll-bar@2.3.8: + resolution: {integrity: sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': '*' + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + + react-remove-scroll@2.7.2: + resolution: {integrity: sha512-Iqb9NjCCTt6Hf+vOdNIZGdTiH1QSqr27H/Ek9sv/a97gfueI/5h1s3yRi1nngzMUaOOToin5dI1dXKdXiF+u0Q==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': '*' + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + react-style-singleton@2.2.3: + resolution: {integrity: sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': '*' + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + react-transition-group@2.9.0: + resolution: {integrity: sha512-+HzNTCHpeQyl4MJ/bdE0u6XRMe9+XG/+aL4mCxVN4DnPBQ0/5bfHWPDuOZUzYdMj94daZaZdCCc1Dzt9R/xSSg==} + peerDependencies: + react: '>=15.0.0' + react-dom: '>=15.0.0' + + react@17.0.2: + resolution: {integrity: sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==} + engines: {node: '>=0.10.0'} + + read-cache@1.0.0: + resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} + + readable-stream@2.3.8: + resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} + + readable-stream@3.6.2: + resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} + engines: {node: '>= 6'} + + readdir-glob@1.1.3: + resolution: {integrity: sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==} + + readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + + refractor@3.6.0: + resolution: {integrity: sha512-MY9W41IOWxxk31o+YvFCNyNzdkc9M20NoZK5vq6jkv4I/uh2zkWcfudj0Q1fovjUQJrNewS9NMzeTtqPf+n5EA==} + + regexp.prototype.flags@1.5.4: + resolution: {integrity: sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==} + engines: {node: '>= 0.4'} + + require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + + requires-port@1.0.0: + resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} + + resize-observer-polyfill@1.5.1: + resolution: {integrity: sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==} + + resolve-pkg-maps@1.0.0: + resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} + + resolve@1.22.11: + resolution: {integrity: sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==} + engines: {node: '>= 0.4'} + hasBin: true + + reusify@1.1.0: + resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + + rimraf@2.7.1: + resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==} + deprecated: Rimraf versions prior to v4 are no longer supported + hasBin: true + + rimraf@3.0.2: + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + deprecated: Rimraf versions prior to v4 are no longer supported + hasBin: true + + roamjs-components@0.86.4: + resolution: {integrity: sha512-1v9HhrUSGxTN7GsohsqC5ZCAmADwecKBZAYnxn72RXPIdrltaiEL9v6xrgi+M8tfENEODY+KcvnjZVsz7vOERQ==} + engines: {node: '>=16.0.0', npm: '>=7.0.0'} + hasBin: true + peerDependencies: + '@blueprintjs/core': 3.50.4 + '@blueprintjs/datetime': 3.23.14 + '@blueprintjs/select': 3.18.6 + '@types/crypto-js': 4.1.1 + '@types/cytoscape': ^3.19.9 + '@types/file-saver': 2.0.5 + '@types/jsdom': ^20.0.1 + '@types/marked': ^4.0.3 + '@types/nanoid': 2.0.0 + '@types/react': 17.0.39 + '@types/react-dom': 17.0.13 + '@types/use-sync-external-store': ^0.0.3 + chrono-node: 2.3.0 + crypto-js: 3.1.9-1 + cytoscape: ^3.21.0 + file-saver: 2.0.2 + idb: 6.0.0 + insect: ^5.6.0 + jsdom: ^20.0.3 + jszip: 3.10.0 + marked: 4.0.16 + marked-react: 1.1.2 + nanoid: 2.0.4 + react: 17.0.2 + react-dom: 17.0.2 + tslib: 2.2.0 + use-sync-external-store: ^1.2.0 + + rope-sequence@1.3.4: + resolution: {integrity: sha512-UT5EDe2cu2E/6O4igUr5PSFs23nvvukicWHx6GnOPlHAiiYbzNuCRQCuiUdHJQcqKalLKlrYJnjY0ySGsXNQXQ==} + + run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + + safe-buffer@5.1.2: + resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} + + safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + + safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + + saxes@6.0.0: + resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==} + engines: {node: '>=v12.22.7'} + + scheduler@0.20.2: + resolution: {integrity: sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==} + + semver@5.7.2: + resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} + hasBin: true + + semver@7.7.4: + resolution: {integrity: sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==} + engines: {node: '>=10'} + hasBin: true + + set-function-length@1.2.2: + resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} + engines: {node: '>= 0.4'} + + set-function-name@2.0.2: + resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} + engines: {node: '>= 0.4'} + + setimmediate@1.0.5: + resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==} + + shebang-command@1.2.0: + resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==} + engines: {node: '>=0.10.0'} + + shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + + shebang-regex@1.0.0: + resolution: {integrity: sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==} + engines: {node: '>=0.10.0'} + + shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + + signal-exit@3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + + simple-swizzle@0.2.4: + resolution: {integrity: sha512-nAu1WFPQSMNr2Zn9PGSZK9AGn4t/y97lEm+MXTtUDwfP0ksAIX4nO+6ruD9Jwut4C49SB1Ws+fbXsm/yScWOHw==} + + slash@2.0.0: + resolution: {integrity: sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==} + engines: {node: '>=6'} + + source-map-js@1.2.1: + resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} + engines: {node: '>=0.10.0'} + + source-map@0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} + + space-separated-tokens@1.1.5: + resolution: {integrity: sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==} + + string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + + string_decoder@1.1.1: + resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} + + string_decoder@1.3.0: + resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + + stringify-entities@3.1.0: + resolution: {integrity: sha512-3FP+jGMmMV/ffZs86MoghGqAoqXAdxLrJP4GUdrDN1aIScYih5tuIO3eF4To5AJZ79KDZ8Fpdy7QJnK8SsL1Vg==} + + strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + + strip-eof@1.0.0: + resolution: {integrity: sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==} + engines: {node: '>=0.10.0'} + + strnum@2.1.2: + resolution: {integrity: sha512-l63NF9y/cLROq/yqKXSLtcMeeyOfnSQlfMSlzFt/K73oIaD8DGaQWd7Z34X9GPiKqP5rbSh84Hl4bOlLcjiSrQ==} + + sucrase@3.35.1: + resolution: {integrity: sha512-DhuTmvZWux4H1UOnWMB3sk0sbaCVOoQZjv8u1rDoTV0HTdGem9hkAZtl4JZy8P2z4Bg0nT+YMeOFyVr4zcG5Tw==} + engines: {node: '>=16 || 14 >=14.17'} + hasBin: true + + supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + + supports-preserve-symlinks-flag@1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} + + symbol-tree@3.2.4: + resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} + + tailwindcss@3.3.2: + resolution: {integrity: sha512-9jPkMiIBXvPc2KywkraqsUfbfj+dHDb+JPWtSJa9MLFdrPyazI7q6WX2sUrm7R9eVR7qqv3Pas7EvQFzxKnI6w==} + engines: {node: '>=14.0.0'} + hasBin: true + + tar-stream@2.2.0: + resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} + engines: {node: '>=6'} + + test-exclude@6.0.0: + resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} + engines: {node: '>=8'} + + thenify-all@1.6.0: + resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} + engines: {node: '>=0.8'} + + thenify@3.3.1: + resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} + + tinyglobby@0.2.15: + resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==} + engines: {node: '>=12.0.0'} + + tippy.js@6.3.7: + resolution: {integrity: sha512-E1d3oP2emgJ9dRQZdf3Kkn0qJgI6ZLpyS5z6ZkY1DF3kaQaBsGZsndEpHwx+eC+tYM41HaSNvNtLx8tU57FzTQ==} + + tldraw@3.15.5: + resolution: {integrity: sha512-lzi69i4aMDRf3edC6DZrbSqYOcQWv0n0QwxfUC1QI7fHfXN5aqEc3ni3SxPfvFNuzwYWyOwZRUWUtoI1MsKRzw==} + peerDependencies: + react: ^18.2.0 || ^19.0.0 + react-dom: ^18.2.0 || ^19.0.0 + + tmp@0.0.33: + resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} + engines: {node: '>=0.6.0'} + + to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + + tough-cookie@4.1.4: + resolution: {integrity: sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==} + engines: {node: '>=6'} + + tr46@3.0.0: + resolution: {integrity: sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==} + engines: {node: '>=12'} + + ts-interface-checker@0.1.13: + resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} + + ts-node@10.9.2: + resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} + hasBin: true + peerDependencies: + '@swc/core': '>=1.2.50' + '@swc/wasm': '>=1.2.50' + '@types/node': '*' + typescript: '>=2.7' + peerDependenciesMeta: + '@swc/core': + optional: true + '@swc/wasm': + optional: true + + tslib@1.13.0: + resolution: {integrity: sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==} + + tslib@2.3.1: + resolution: {integrity: sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==} + + tslib@2.5.3: + resolution: {integrity: sha512-mSxlJJwl3BMEQCUNnxXBU9jP4JBktcEGhURcPR6VQVlnP0FdDEsIaz0C35dXNGLyRfrATNofF0F5p2KPxQgB+w==} + + tslib@2.8.1: + resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} + + tsx@4.21.0: + resolution: {integrity: sha512-5C1sg4USs1lfG0GFb2RLXsdpXqBSEhAaA/0kPL01wxzpMqLILNxIxIOKiILz+cdg/pLnOUxFYOR5yhHU666wbw==} + engines: {node: '>=18.0.0'} + hasBin: true + + typed-styles@0.0.7: + resolution: {integrity: sha512-pzP0PWoZUhsECYjABgCGQlRGL1n7tOHsgwYv3oIiEpJwGhFTuty/YNeduxQYzXXa3Ge5BdT6sHYIQYpl4uJ+5Q==} + + typescript@5.9.3: + resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==} + engines: {node: '>=14.17'} + hasBin: true + + uc.micro@2.1.0: + resolution: {integrity: sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==} + + undici-types@7.16.0: + resolution: {integrity: sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==} + + unist-util-is@4.1.0: + resolution: {integrity: sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg==} + + universalify@0.2.0: + resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==} + engines: {node: '>= 4.0.0'} + + universalify@2.0.1: + resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} + engines: {node: '>= 10.0.0'} + + url-parse@1.5.10: + resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} + + use-callback-ref@1.3.3: + resolution: {integrity: sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': '*' + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + use-sidecar@1.1.3: + resolution: {integrity: sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': '*' + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + use-sync-external-store@1.6.0: + resolution: {integrity: sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + + util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + + v8-compile-cache-lib@3.0.1: + resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} + + v8-to-istanbul@9.3.0: + resolution: {integrity: sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==} + engines: {node: '>=10.12.0'} + + w3c-keyname@2.2.8: + resolution: {integrity: sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==} + + w3c-xmlserializer@4.0.0: + resolution: {integrity: sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==} + engines: {node: '>=14'} + + warning@4.0.3: + resolution: {integrity: sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==} + + wcwidth@1.0.1: + resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} + + web-streams-polyfill@3.3.3: + resolution: {integrity: sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==} + engines: {node: '>= 8'} + + webidl-conversions@7.0.0: + resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} + engines: {node: '>=12'} + + whatwg-encoding@2.0.0: + resolution: {integrity: sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==} + engines: {node: '>=12'} + deprecated: Use @exodus/bytes instead for a more spec-conformant and faster implementation + + whatwg-mimetype@3.0.0: + resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==} + engines: {node: '>=12'} + + whatwg-url@11.0.0: + resolution: {integrity: sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==} + engines: {node: '>=12'} + + which@1.3.1: + resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} + hasBin: true + + which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + + wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + + wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + + ws@8.19.0: + resolution: {integrity: sha512-blAT2mjOEIi0ZzruJfIhb3nps74PRWTCz1IjglWEEpQl5XS/UNama6u2/rjFkDDouqr4L67ry+1aGIALViWjDg==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + + xdg-basedir@4.0.0: + resolution: {integrity: sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==} + engines: {node: '>=8'} + + xml-name-validator@4.0.0: + resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==} + engines: {node: '>=12'} + + xmlchars@2.2.0: + resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} + + xregexp@5.1.2: + resolution: {integrity: sha512-6hGgEMCGhqCTFEJbqmWrNIPqfpdirdGWkqshu7fFZddmTSfgv5Sn9D2SaKloR79s5VUiUlpwzg3CM3G6D3VIlw==} + + xtend@4.0.2: + resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} + engines: {node: '>=0.4'} + + y18n@5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} + + yaml@1.10.2: + resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} + engines: {node: '>= 6'} + + yaml@2.8.2: + resolution: {integrity: sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A==} + engines: {node: '>= 14.6'} + hasBin: true + + yargs-parser@20.2.9: + resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} + engines: {node: '>=10'} + + yargs@16.2.0: + resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} + engines: {node: '>=10'} + + yn@3.1.1: + resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} + engines: {node: '>=6'} + + yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + + zip-stream@4.1.1: + resolution: {integrity: sha512-9qv4rlDiopXg4E69k+vMHjNN63YFMe9sZMrdlvKnCjlCRWeCBswPPMPUfx+ipsAWq1LXHe70RcbaHdJJpS6hyQ==} + engines: {node: '>= 10'} + + zod@3.25.76: + resolution: {integrity: sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==} + +snapshots: + + '@alloc/quick-lru@5.2.0': {} + + '@aws-crypto/crc32@5.2.0': + dependencies: + '@aws-crypto/util': 5.2.0 + '@aws-sdk/types': 3.973.1 + tslib: 2.8.1 + + '@aws-crypto/crc32c@5.2.0': + dependencies: + '@aws-crypto/util': 5.2.0 + '@aws-sdk/types': 3.973.1 + tslib: 2.8.1 + + '@aws-crypto/sha1-browser@5.2.0': + dependencies: + '@aws-crypto/supports-web-crypto': 5.2.0 + '@aws-crypto/util': 5.2.0 + '@aws-sdk/types': 3.973.1 + '@aws-sdk/util-locate-window': 3.965.4 + '@smithy/util-utf8': 2.3.0 + tslib: 2.8.1 + + '@aws-crypto/sha256-browser@5.2.0': + dependencies: + '@aws-crypto/sha256-js': 5.2.0 + '@aws-crypto/supports-web-crypto': 5.2.0 + '@aws-crypto/util': 5.2.0 + '@aws-sdk/types': 3.973.1 + '@aws-sdk/util-locate-window': 3.965.4 + '@smithy/util-utf8': 2.3.0 + tslib: 2.8.1 + + '@aws-crypto/sha256-js@5.2.0': + dependencies: + '@aws-crypto/util': 5.2.0 + '@aws-sdk/types': 3.973.1 + tslib: 2.8.1 + + '@aws-crypto/supports-web-crypto@5.2.0': + dependencies: + tslib: 2.8.1 + + '@aws-crypto/util@5.2.0': + dependencies: + '@aws-sdk/types': 3.973.1 + '@smithy/util-utf8': 2.3.0 + tslib: 2.8.1 + + '@aws-sdk/client-lambda@3.985.0': + dependencies: + '@aws-crypto/sha256-browser': 5.2.0 + '@aws-crypto/sha256-js': 5.2.0 + '@aws-sdk/core': 3.973.7 + '@aws-sdk/credential-provider-node': 3.972.6 + '@aws-sdk/middleware-host-header': 3.972.3 + '@aws-sdk/middleware-logger': 3.972.3 + '@aws-sdk/middleware-recursion-detection': 3.972.3 + '@aws-sdk/middleware-user-agent': 3.972.7 + '@aws-sdk/region-config-resolver': 3.972.3 + '@aws-sdk/types': 3.973.1 + '@aws-sdk/util-endpoints': 3.985.0 + '@aws-sdk/util-user-agent-browser': 3.972.3 + '@aws-sdk/util-user-agent-node': 3.972.5 + '@smithy/config-resolver': 4.4.6 + '@smithy/core': 3.22.1 + '@smithy/eventstream-serde-browser': 4.2.8 + '@smithy/eventstream-serde-config-resolver': 4.3.8 + '@smithy/eventstream-serde-node': 4.2.8 + '@smithy/fetch-http-handler': 5.3.9 + '@smithy/hash-node': 4.2.8 + '@smithy/invalid-dependency': 4.2.8 + '@smithy/middleware-content-length': 4.2.8 + '@smithy/middleware-endpoint': 4.4.13 + '@smithy/middleware-retry': 4.4.30 + '@smithy/middleware-serde': 4.2.9 + '@smithy/middleware-stack': 4.2.8 + '@smithy/node-config-provider': 4.3.8 + '@smithy/node-http-handler': 4.4.9 + '@smithy/protocol-http': 5.3.8 + '@smithy/smithy-client': 4.11.2 + '@smithy/types': 4.12.0 + '@smithy/url-parser': 4.2.8 + '@smithy/util-base64': 4.3.0 + '@smithy/util-body-length-browser': 4.2.0 + '@smithy/util-body-length-node': 4.2.1 + '@smithy/util-defaults-mode-browser': 4.3.29 + '@smithy/util-defaults-mode-node': 4.2.32 + '@smithy/util-endpoints': 3.2.8 + '@smithy/util-middleware': 4.2.8 + '@smithy/util-retry': 4.2.8 + '@smithy/util-stream': 4.5.11 + '@smithy/util-utf8': 4.2.0 + '@smithy/util-waiter': 4.2.8 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt + + '@aws-sdk/client-s3@3.985.0': + dependencies: + '@aws-crypto/sha1-browser': 5.2.0 + '@aws-crypto/sha256-browser': 5.2.0 + '@aws-crypto/sha256-js': 5.2.0 + '@aws-sdk/core': 3.973.7 + '@aws-sdk/credential-provider-node': 3.972.6 + '@aws-sdk/middleware-bucket-endpoint': 3.972.3 + '@aws-sdk/middleware-expect-continue': 3.972.3 + '@aws-sdk/middleware-flexible-checksums': 3.972.5 + '@aws-sdk/middleware-host-header': 3.972.3 + '@aws-sdk/middleware-location-constraint': 3.972.3 + '@aws-sdk/middleware-logger': 3.972.3 + '@aws-sdk/middleware-recursion-detection': 3.972.3 + '@aws-sdk/middleware-sdk-s3': 3.972.7 + '@aws-sdk/middleware-ssec': 3.972.3 + '@aws-sdk/middleware-user-agent': 3.972.7 + '@aws-sdk/region-config-resolver': 3.972.3 + '@aws-sdk/signature-v4-multi-region': 3.985.0 + '@aws-sdk/types': 3.973.1 + '@aws-sdk/util-endpoints': 3.985.0 + '@aws-sdk/util-user-agent-browser': 3.972.3 + '@aws-sdk/util-user-agent-node': 3.972.5 + '@smithy/config-resolver': 4.4.6 + '@smithy/core': 3.22.1 + '@smithy/eventstream-serde-browser': 4.2.8 + '@smithy/eventstream-serde-config-resolver': 4.3.8 + '@smithy/eventstream-serde-node': 4.2.8 + '@smithy/fetch-http-handler': 5.3.9 + '@smithy/hash-blob-browser': 4.2.9 + '@smithy/hash-node': 4.2.8 + '@smithy/hash-stream-node': 4.2.8 + '@smithy/invalid-dependency': 4.2.8 + '@smithy/md5-js': 4.2.8 + '@smithy/middleware-content-length': 4.2.8 + '@smithy/middleware-endpoint': 4.4.13 + '@smithy/middleware-retry': 4.4.30 + '@smithy/middleware-serde': 4.2.9 + '@smithy/middleware-stack': 4.2.8 + '@smithy/node-config-provider': 4.3.8 + '@smithy/node-http-handler': 4.4.9 + '@smithy/protocol-http': 5.3.8 + '@smithy/smithy-client': 4.11.2 + '@smithy/types': 4.12.0 + '@smithy/url-parser': 4.2.8 + '@smithy/util-base64': 4.3.0 + '@smithy/util-body-length-browser': 4.2.0 + '@smithy/util-body-length-node': 4.2.1 + '@smithy/util-defaults-mode-browser': 4.3.29 + '@smithy/util-defaults-mode-node': 4.2.32 + '@smithy/util-endpoints': 3.2.8 + '@smithy/util-middleware': 4.2.8 + '@smithy/util-retry': 4.2.8 + '@smithy/util-stream': 4.5.11 + '@smithy/util-utf8': 4.2.0 + '@smithy/util-waiter': 4.2.8 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt + + '@aws-sdk/client-sso@3.985.0': + dependencies: + '@aws-crypto/sha256-browser': 5.2.0 + '@aws-crypto/sha256-js': 5.2.0 + '@aws-sdk/core': 3.973.7 + '@aws-sdk/middleware-host-header': 3.972.3 + '@aws-sdk/middleware-logger': 3.972.3 + '@aws-sdk/middleware-recursion-detection': 3.972.3 + '@aws-sdk/middleware-user-agent': 3.972.7 + '@aws-sdk/region-config-resolver': 3.972.3 + '@aws-sdk/types': 3.973.1 + '@aws-sdk/util-endpoints': 3.985.0 + '@aws-sdk/util-user-agent-browser': 3.972.3 + '@aws-sdk/util-user-agent-node': 3.972.5 + '@smithy/config-resolver': 4.4.6 + '@smithy/core': 3.22.1 + '@smithy/fetch-http-handler': 5.3.9 + '@smithy/hash-node': 4.2.8 + '@smithy/invalid-dependency': 4.2.8 + '@smithy/middleware-content-length': 4.2.8 + '@smithy/middleware-endpoint': 4.4.13 + '@smithy/middleware-retry': 4.4.30 + '@smithy/middleware-serde': 4.2.9 + '@smithy/middleware-stack': 4.2.8 + '@smithy/node-config-provider': 4.3.8 + '@smithy/node-http-handler': 4.4.9 + '@smithy/protocol-http': 5.3.8 + '@smithy/smithy-client': 4.11.2 + '@smithy/types': 4.12.0 + '@smithy/url-parser': 4.2.8 + '@smithy/util-base64': 4.3.0 + '@smithy/util-body-length-browser': 4.2.0 + '@smithy/util-body-length-node': 4.2.1 + '@smithy/util-defaults-mode-browser': 4.3.29 + '@smithy/util-defaults-mode-node': 4.2.32 + '@smithy/util-endpoints': 3.2.8 + '@smithy/util-middleware': 4.2.8 + '@smithy/util-retry': 4.2.8 + '@smithy/util-utf8': 4.2.0 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt + + '@aws-sdk/core@3.973.7': + dependencies: + '@aws-sdk/types': 3.973.1 + '@aws-sdk/xml-builder': 3.972.4 + '@smithy/core': 3.22.1 + '@smithy/node-config-provider': 4.3.8 + '@smithy/property-provider': 4.2.8 + '@smithy/protocol-http': 5.3.8 + '@smithy/signature-v4': 5.3.8 + '@smithy/smithy-client': 4.11.2 + '@smithy/types': 4.12.0 + '@smithy/util-base64': 4.3.0 + '@smithy/util-middleware': 4.2.8 + '@smithy/util-utf8': 4.2.0 + tslib: 2.8.1 + + '@aws-sdk/crc64-nvme@3.972.0': + dependencies: + '@smithy/types': 4.12.0 + tslib: 2.8.1 + + '@aws-sdk/credential-provider-env@3.972.5': + dependencies: + '@aws-sdk/core': 3.973.7 + '@aws-sdk/types': 3.973.1 + '@smithy/property-provider': 4.2.8 + '@smithy/types': 4.12.0 + tslib: 2.8.1 + + '@aws-sdk/credential-provider-http@3.972.7': + dependencies: + '@aws-sdk/core': 3.973.7 + '@aws-sdk/types': 3.973.1 + '@smithy/fetch-http-handler': 5.3.9 + '@smithy/node-http-handler': 4.4.9 + '@smithy/property-provider': 4.2.8 + '@smithy/protocol-http': 5.3.8 + '@smithy/smithy-client': 4.11.2 + '@smithy/types': 4.12.0 + '@smithy/util-stream': 4.5.11 + tslib: 2.8.1 + + '@aws-sdk/credential-provider-ini@3.972.5': + dependencies: + '@aws-sdk/core': 3.973.7 + '@aws-sdk/credential-provider-env': 3.972.5 + '@aws-sdk/credential-provider-http': 3.972.7 + '@aws-sdk/credential-provider-login': 3.972.5 + '@aws-sdk/credential-provider-process': 3.972.5 + '@aws-sdk/credential-provider-sso': 3.972.5 + '@aws-sdk/credential-provider-web-identity': 3.972.5 + '@aws-sdk/nested-clients': 3.985.0 + '@aws-sdk/types': 3.973.1 + '@smithy/credential-provider-imds': 4.2.8 + '@smithy/property-provider': 4.2.8 + '@smithy/shared-ini-file-loader': 4.4.3 + '@smithy/types': 4.12.0 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt + + '@aws-sdk/credential-provider-login@3.972.5': + dependencies: + '@aws-sdk/core': 3.973.7 + '@aws-sdk/nested-clients': 3.985.0 + '@aws-sdk/types': 3.973.1 + '@smithy/property-provider': 4.2.8 + '@smithy/protocol-http': 5.3.8 + '@smithy/shared-ini-file-loader': 4.4.3 + '@smithy/types': 4.12.0 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt + + '@aws-sdk/credential-provider-node@3.972.6': + dependencies: + '@aws-sdk/credential-provider-env': 3.972.5 + '@aws-sdk/credential-provider-http': 3.972.7 + '@aws-sdk/credential-provider-ini': 3.972.5 + '@aws-sdk/credential-provider-process': 3.972.5 + '@aws-sdk/credential-provider-sso': 3.972.5 + '@aws-sdk/credential-provider-web-identity': 3.972.5 + '@aws-sdk/types': 3.973.1 + '@smithy/credential-provider-imds': 4.2.8 + '@smithy/property-provider': 4.2.8 + '@smithy/shared-ini-file-loader': 4.4.3 + '@smithy/types': 4.12.0 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt + + '@aws-sdk/credential-provider-process@3.972.5': + dependencies: + '@aws-sdk/core': 3.973.7 + '@aws-sdk/types': 3.973.1 + '@smithy/property-provider': 4.2.8 + '@smithy/shared-ini-file-loader': 4.4.3 + '@smithy/types': 4.12.0 + tslib: 2.8.1 + + '@aws-sdk/credential-provider-sso@3.972.5': + dependencies: + '@aws-sdk/client-sso': 3.985.0 + '@aws-sdk/core': 3.973.7 + '@aws-sdk/token-providers': 3.985.0 + '@aws-sdk/types': 3.973.1 + '@smithy/property-provider': 4.2.8 + '@smithy/shared-ini-file-loader': 4.4.3 + '@smithy/types': 4.12.0 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt + + '@aws-sdk/credential-provider-web-identity@3.972.5': + dependencies: + '@aws-sdk/core': 3.973.7 + '@aws-sdk/nested-clients': 3.985.0 + '@aws-sdk/types': 3.973.1 + '@smithy/property-provider': 4.2.8 + '@smithy/shared-ini-file-loader': 4.4.3 + '@smithy/types': 4.12.0 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt + + '@aws-sdk/middleware-bucket-endpoint@3.972.3': + dependencies: + '@aws-sdk/types': 3.973.1 + '@aws-sdk/util-arn-parser': 3.972.2 + '@smithy/node-config-provider': 4.3.8 + '@smithy/protocol-http': 5.3.8 + '@smithy/types': 4.12.0 + '@smithy/util-config-provider': 4.2.0 + tslib: 2.8.1 + + '@aws-sdk/middleware-expect-continue@3.972.3': + dependencies: + '@aws-sdk/types': 3.973.1 + '@smithy/protocol-http': 5.3.8 + '@smithy/types': 4.12.0 + tslib: 2.8.1 + + '@aws-sdk/middleware-flexible-checksums@3.972.5': + dependencies: + '@aws-crypto/crc32': 5.2.0 + '@aws-crypto/crc32c': 5.2.0 + '@aws-crypto/util': 5.2.0 + '@aws-sdk/core': 3.973.7 + '@aws-sdk/crc64-nvme': 3.972.0 + '@aws-sdk/types': 3.973.1 + '@smithy/is-array-buffer': 4.2.0 + '@smithy/node-config-provider': 4.3.8 + '@smithy/protocol-http': 5.3.8 + '@smithy/types': 4.12.0 + '@smithy/util-middleware': 4.2.8 + '@smithy/util-stream': 4.5.11 + '@smithy/util-utf8': 4.2.0 + tslib: 2.8.1 + + '@aws-sdk/middleware-host-header@3.972.3': + dependencies: + '@aws-sdk/types': 3.973.1 + '@smithy/protocol-http': 5.3.8 + '@smithy/types': 4.12.0 + tslib: 2.8.1 + + '@aws-sdk/middleware-location-constraint@3.972.3': + dependencies: + '@aws-sdk/types': 3.973.1 + '@smithy/types': 4.12.0 + tslib: 2.8.1 + + '@aws-sdk/middleware-logger@3.972.3': + dependencies: + '@aws-sdk/types': 3.973.1 + '@smithy/types': 4.12.0 + tslib: 2.8.1 + + '@aws-sdk/middleware-recursion-detection@3.972.3': + dependencies: + '@aws-sdk/types': 3.973.1 + '@aws/lambda-invoke-store': 0.2.3 + '@smithy/protocol-http': 5.3.8 + '@smithy/types': 4.12.0 + tslib: 2.8.1 + + '@aws-sdk/middleware-sdk-s3@3.972.7': + dependencies: + '@aws-sdk/core': 3.973.7 + '@aws-sdk/types': 3.973.1 + '@aws-sdk/util-arn-parser': 3.972.2 + '@smithy/core': 3.22.1 + '@smithy/node-config-provider': 4.3.8 + '@smithy/protocol-http': 5.3.8 + '@smithy/signature-v4': 5.3.8 + '@smithy/smithy-client': 4.11.2 + '@smithy/types': 4.12.0 + '@smithy/util-config-provider': 4.2.0 + '@smithy/util-middleware': 4.2.8 + '@smithy/util-stream': 4.5.11 + '@smithy/util-utf8': 4.2.0 + tslib: 2.8.1 + + '@aws-sdk/middleware-ssec@3.972.3': + dependencies: + '@aws-sdk/types': 3.973.1 + '@smithy/types': 4.12.0 + tslib: 2.8.1 + + '@aws-sdk/middleware-user-agent@3.972.7': + dependencies: + '@aws-sdk/core': 3.973.7 + '@aws-sdk/types': 3.973.1 + '@aws-sdk/util-endpoints': 3.985.0 + '@smithy/core': 3.22.1 + '@smithy/protocol-http': 5.3.8 + '@smithy/types': 4.12.0 + tslib: 2.8.1 + + '@aws-sdk/nested-clients@3.985.0': + dependencies: + '@aws-crypto/sha256-browser': 5.2.0 + '@aws-crypto/sha256-js': 5.2.0 + '@aws-sdk/core': 3.973.7 + '@aws-sdk/middleware-host-header': 3.972.3 + '@aws-sdk/middleware-logger': 3.972.3 + '@aws-sdk/middleware-recursion-detection': 3.972.3 + '@aws-sdk/middleware-user-agent': 3.972.7 + '@aws-sdk/region-config-resolver': 3.972.3 + '@aws-sdk/types': 3.973.1 + '@aws-sdk/util-endpoints': 3.985.0 + '@aws-sdk/util-user-agent-browser': 3.972.3 + '@aws-sdk/util-user-agent-node': 3.972.5 + '@smithy/config-resolver': 4.4.6 + '@smithy/core': 3.22.1 + '@smithy/fetch-http-handler': 5.3.9 + '@smithy/hash-node': 4.2.8 + '@smithy/invalid-dependency': 4.2.8 + '@smithy/middleware-content-length': 4.2.8 + '@smithy/middleware-endpoint': 4.4.13 + '@smithy/middleware-retry': 4.4.30 + '@smithy/middleware-serde': 4.2.9 + '@smithy/middleware-stack': 4.2.8 + '@smithy/node-config-provider': 4.3.8 + '@smithy/node-http-handler': 4.4.9 + '@smithy/protocol-http': 5.3.8 + '@smithy/smithy-client': 4.11.2 + '@smithy/types': 4.12.0 + '@smithy/url-parser': 4.2.8 + '@smithy/util-base64': 4.3.0 + '@smithy/util-body-length-browser': 4.2.0 + '@smithy/util-body-length-node': 4.2.1 + '@smithy/util-defaults-mode-browser': 4.3.29 + '@smithy/util-defaults-mode-node': 4.2.32 + '@smithy/util-endpoints': 3.2.8 + '@smithy/util-middleware': 4.2.8 + '@smithy/util-retry': 4.2.8 + '@smithy/util-utf8': 4.2.0 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt + + '@aws-sdk/region-config-resolver@3.972.3': + dependencies: + '@aws-sdk/types': 3.973.1 + '@smithy/config-resolver': 4.4.6 + '@smithy/node-config-provider': 4.3.8 + '@smithy/types': 4.12.0 + tslib: 2.8.1 + + '@aws-sdk/signature-v4-multi-region@3.985.0': + dependencies: + '@aws-sdk/middleware-sdk-s3': 3.972.7 + '@aws-sdk/types': 3.973.1 + '@smithy/protocol-http': 5.3.8 + '@smithy/signature-v4': 5.3.8 + '@smithy/types': 4.12.0 + tslib: 2.8.1 + + '@aws-sdk/token-providers@3.985.0': + dependencies: + '@aws-sdk/core': 3.973.7 + '@aws-sdk/nested-clients': 3.985.0 + '@aws-sdk/types': 3.973.1 + '@smithy/property-provider': 4.2.8 + '@smithy/shared-ini-file-loader': 4.4.3 + '@smithy/types': 4.12.0 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt + + '@aws-sdk/types@3.973.1': + dependencies: + '@smithy/types': 4.12.0 + tslib: 2.8.1 + + '@aws-sdk/util-arn-parser@3.972.2': + dependencies: + tslib: 2.8.1 + + '@aws-sdk/util-endpoints@3.985.0': + dependencies: + '@aws-sdk/types': 3.973.1 + '@smithy/types': 4.12.0 + '@smithy/url-parser': 4.2.8 + '@smithy/util-endpoints': 3.2.8 + tslib: 2.8.1 + + '@aws-sdk/util-locate-window@3.965.4': + dependencies: + tslib: 2.8.1 + + '@aws-sdk/util-user-agent-browser@3.972.3': + dependencies: + '@aws-sdk/types': 3.973.1 + '@smithy/types': 4.12.0 + bowser: 2.13.1 + tslib: 2.8.1 + + '@aws-sdk/util-user-agent-node@3.972.5': + dependencies: + '@aws-sdk/middleware-user-agent': 3.972.7 + '@aws-sdk/types': 3.973.1 + '@smithy/node-config-provider': 4.3.8 + '@smithy/types': 4.12.0 + tslib: 2.8.1 + + '@aws-sdk/xml-builder@3.972.4': + dependencies: + '@smithy/types': 4.12.0 + fast-xml-parser: 5.3.4 + tslib: 2.8.1 + + '@aws/lambda-invoke-store@0.2.3': {} + + '@babel/code-frame@7.29.0': + dependencies: + '@babel/helper-validator-identifier': 7.28.5 + js-tokens: 4.0.0 + picocolors: 1.1.1 + + '@babel/helper-validator-identifier@7.28.5': {} + + '@babel/runtime-corejs3@7.29.0': + dependencies: + core-js-pure: 3.48.0 + + '@babel/runtime@7.28.6': {} + + '@bcoe/v8-coverage@0.2.3': {} + + '@blueprintjs/colors@4.2.1': + dependencies: + tslib: 2.5.3 + + '@blueprintjs/core@3.50.4(react-dom@17.0.2(react@17.0.2))(react@17.0.2)': + dependencies: + '@blueprintjs/colors': 4.2.1 + '@blueprintjs/icons': 3.33.0 + '@types/dom4': 2.0.4 + classnames: 2.5.1 + dom4: 2.1.6 + normalize.css: 8.0.1 + popper.js: 1.16.1 + react: 17.0.2 + react-dom: 17.0.2(react@17.0.2) + react-lifecycles-compat: 3.0.4 + react-popper: 1.3.11(react@17.0.2) + react-transition-group: 2.9.0(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + resize-observer-polyfill: 1.5.1 + tslib: 1.13.0 + + '@blueprintjs/datetime@3.23.14(react-dom@17.0.2(react@17.0.2))(react@17.0.2)': + dependencies: + '@blueprintjs/core': 3.50.4(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + classnames: 2.5.1 + react: 17.0.2 + react-day-picker: 7.4.9(react@17.0.2) + react-dom: 17.0.2(react@17.0.2) + react-lifecycles-compat: 3.0.4 + tslib: 1.13.0 + + '@blueprintjs/icons@3.33.0': + dependencies: + classnames: 2.5.1 + tslib: 2.3.1 + + '@blueprintjs/select@3.18.6(react-dom@17.0.2(react@17.0.2))(react@17.0.2)': + dependencies: + '@blueprintjs/core': 3.50.4(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + classnames: 2.5.1 + react: 17.0.2 + react-dom: 17.0.2(react@17.0.2) + tslib: 1.13.0 + + '@cspotcode/source-map-support@0.8.1': + dependencies: + '@jridgewell/trace-mapping': 0.3.9 + + '@esbuild/aix-ppc64@0.27.3': + optional: true + + '@esbuild/android-arm64@0.27.3': + optional: true + + '@esbuild/android-arm@0.27.3': + optional: true + + '@esbuild/android-x64@0.27.3': + optional: true + + '@esbuild/darwin-arm64@0.27.3': + optional: true + + '@esbuild/darwin-x64@0.27.3': + optional: true + + '@esbuild/freebsd-arm64@0.27.3': + optional: true + + '@esbuild/freebsd-x64@0.27.3': + optional: true + + '@esbuild/linux-arm64@0.27.3': + optional: true + + '@esbuild/linux-arm@0.27.3': + optional: true + + '@esbuild/linux-ia32@0.27.3': + optional: true + + '@esbuild/linux-loong64@0.27.3': + optional: true + + '@esbuild/linux-mips64el@0.27.3': + optional: true + + '@esbuild/linux-ppc64@0.27.3': + optional: true + + '@esbuild/linux-riscv64@0.27.3': + optional: true + + '@esbuild/linux-s390x@0.27.3': + optional: true + + '@esbuild/linux-x64@0.27.3': + optional: true + + '@esbuild/netbsd-arm64@0.27.3': + optional: true + + '@esbuild/netbsd-x64@0.27.3': + optional: true + + '@esbuild/openbsd-arm64@0.27.3': + optional: true + + '@esbuild/openbsd-x64@0.27.3': + optional: true + + '@esbuild/openharmony-arm64@0.27.3': + optional: true + + '@esbuild/sunos-x64@0.27.3': + optional: true + + '@esbuild/win32-arm64@0.27.3': + optional: true + + '@esbuild/win32-ia32@0.27.3': + optional: true + + '@esbuild/win32-x64@0.27.3': + optional: true + + '@floating-ui/core@1.7.4': + dependencies: + '@floating-ui/utils': 0.2.10 + + '@floating-ui/dom@1.7.5': + dependencies: + '@floating-ui/core': 1.7.4 + '@floating-ui/utils': 0.2.10 + + '@floating-ui/react-dom@2.1.7(react-dom@17.0.2(react@17.0.2))(react@17.0.2)': + dependencies: + '@floating-ui/dom': 1.7.5 + react: 17.0.2 + react-dom: 17.0.2(react@17.0.2) + + '@floating-ui/utils@0.2.10': {} + + '@hypnosphi/create-react-context@0.3.1(prop-types@15.8.1)(react@17.0.2)': + dependencies: + gud: 1.0.0 + prop-types: 15.8.1 + react: 17.0.2 + warning: 4.0.3 + + '@istanbuljs/schema@0.1.3': {} + + '@jcubic/lily@0.3.0': {} + + '@jridgewell/gen-mapping@0.3.13': + dependencies: + '@jridgewell/sourcemap-codec': 1.5.5 + '@jridgewell/trace-mapping': 0.3.31 + + '@jridgewell/resolve-uri@3.1.2': {} + + '@jridgewell/sourcemap-codec@1.5.5': {} + + '@jridgewell/trace-mapping@0.3.31': + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.5 + + '@jridgewell/trace-mapping@0.3.9': + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.5 + + '@nodelib/fs.scandir@2.1.5': + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + + '@nodelib/fs.stat@2.0.5': {} + + '@nodelib/fs.walk@1.2.8': + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.20.1 + + '@playwright/test@1.29.0': + dependencies: + '@types/node': 25.2.1 + playwright-core: 1.29.0 + + '@popperjs/core@2.11.8': {} + + '@radix-ui/number@1.1.1': {} + + '@radix-ui/primitive@1.1.3': {} + + '@radix-ui/react-accessible-icon@1.1.7(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2)': + dependencies: + '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + react: 17.0.2 + react-dom: 17.0.2(react@17.0.2) + optionalDependencies: + '@types/react': 17.0.39 + '@types/react-dom': 17.0.13 + + '@radix-ui/react-accordion@1.2.12(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2)': + dependencies: + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-collapsible': 1.1.12(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-collection': 1.1.7(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-context': 1.1.2(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-direction': 1.1.1(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-id': 1.1.1(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@17.0.39)(react@17.0.2) + react: 17.0.2 + react-dom: 17.0.2(react@17.0.2) + optionalDependencies: + '@types/react': 17.0.39 + '@types/react-dom': 17.0.13 + + '@radix-ui/react-alert-dialog@1.1.15(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2)': + dependencies: + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-context': 1.1.2(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-dialog': 1.1.15(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-slot': 1.2.3(@types/react@17.0.39)(react@17.0.2) + react: 17.0.2 + react-dom: 17.0.2(react@17.0.2) + optionalDependencies: + '@types/react': 17.0.39 + '@types/react-dom': 17.0.13 + + '@radix-ui/react-arrow@1.1.7(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2)': + dependencies: + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + react: 17.0.2 + react-dom: 17.0.2(react@17.0.2) + optionalDependencies: + '@types/react': 17.0.39 + '@types/react-dom': 17.0.13 + + '@radix-ui/react-aspect-ratio@1.1.7(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2)': + dependencies: + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + react: 17.0.2 + react-dom: 17.0.2(react@17.0.2) + optionalDependencies: + '@types/react': 17.0.39 + '@types/react-dom': 17.0.13 + + '@radix-ui/react-avatar@1.1.10(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2)': + dependencies: + '@radix-ui/react-context': 1.1.2(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-use-is-hydrated': 0.1.0(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@17.0.39)(react@17.0.2) + react: 17.0.2 + react-dom: 17.0.2(react@17.0.2) + optionalDependencies: + '@types/react': 17.0.39 + '@types/react-dom': 17.0.13 + + '@radix-ui/react-checkbox@1.3.3(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2)': + dependencies: + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-context': 1.1.2(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-use-previous': 1.1.1(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-use-size': 1.1.1(@types/react@17.0.39)(react@17.0.2) + react: 17.0.2 + react-dom: 17.0.2(react@17.0.2) + optionalDependencies: + '@types/react': 17.0.39 + '@types/react-dom': 17.0.13 + + '@radix-ui/react-collapsible@1.1.12(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2)': + dependencies: + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-context': 1.1.2(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-id': 1.1.1(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@17.0.39)(react@17.0.2) + react: 17.0.2 + react-dom: 17.0.2(react@17.0.2) + optionalDependencies: + '@types/react': 17.0.39 + '@types/react-dom': 17.0.13 + + '@radix-ui/react-collection@1.1.7(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.2(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-context': 1.1.2(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-slot': 1.2.3(@types/react@17.0.39)(react@17.0.2) + react: 17.0.2 + react-dom: 17.0.2(react@17.0.2) + optionalDependencies: + '@types/react': 17.0.39 + '@types/react-dom': 17.0.13 + + '@radix-ui/react-compose-refs@1.1.2(@types/react@17.0.39)(react@17.0.2)': + dependencies: + react: 17.0.2 + optionalDependencies: + '@types/react': 17.0.39 + + '@radix-ui/react-context-menu@2.2.16(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2)': + dependencies: + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-context': 1.1.2(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-menu': 2.1.16(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@17.0.39)(react@17.0.2) + react: 17.0.2 + react-dom: 17.0.2(react@17.0.2) + optionalDependencies: + '@types/react': 17.0.39 + '@types/react-dom': 17.0.13 + + '@radix-ui/react-context@1.1.2(@types/react@17.0.39)(react@17.0.2)': + dependencies: + react: 17.0.2 + optionalDependencies: + '@types/react': 17.0.39 + + '@radix-ui/react-dialog@1.1.15(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2)': + dependencies: + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-context': 1.1.2(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-focus-guards': 1.1.3(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-id': 1.1.1(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-slot': 1.2.3(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@17.0.39)(react@17.0.2) + aria-hidden: 1.2.6 + react: 17.0.2 + react-dom: 17.0.2(react@17.0.2) + react-remove-scroll: 2.7.2(@types/react@17.0.39)(react@17.0.2) + optionalDependencies: + '@types/react': 17.0.39 + '@types/react-dom': 17.0.13 + + '@radix-ui/react-direction@1.1.1(@types/react@17.0.39)(react@17.0.2)': + dependencies: + react: 17.0.2 + optionalDependencies: + '@types/react': 17.0.39 + + '@radix-ui/react-dismissable-layer@1.1.11(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2)': + dependencies: + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-use-escape-keydown': 1.1.1(@types/react@17.0.39)(react@17.0.2) + react: 17.0.2 + react-dom: 17.0.2(react@17.0.2) + optionalDependencies: + '@types/react': 17.0.39 + '@types/react-dom': 17.0.13 + + '@radix-ui/react-dropdown-menu@2.1.16(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2)': + dependencies: + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-context': 1.1.2(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-id': 1.1.1(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-menu': 2.1.16(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@17.0.39)(react@17.0.2) + react: 17.0.2 + react-dom: 17.0.2(react@17.0.2) + optionalDependencies: + '@types/react': 17.0.39 + '@types/react-dom': 17.0.13 + + '@radix-ui/react-focus-guards@1.1.3(@types/react@17.0.39)(react@17.0.2)': + dependencies: + react: 17.0.2 + optionalDependencies: + '@types/react': 17.0.39 + + '@radix-ui/react-focus-scope@1.1.7(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.2(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@17.0.39)(react@17.0.2) + react: 17.0.2 + react-dom: 17.0.2(react@17.0.2) + optionalDependencies: + '@types/react': 17.0.39 + '@types/react-dom': 17.0.13 + + '@radix-ui/react-form@0.1.8(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2)': + dependencies: + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-context': 1.1.2(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-id': 1.1.1(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-label': 2.1.7(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + react: 17.0.2 + react-dom: 17.0.2(react@17.0.2) + optionalDependencies: + '@types/react': 17.0.39 + '@types/react-dom': 17.0.13 + + '@radix-ui/react-hover-card@1.1.15(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2)': + dependencies: + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-context': 1.1.2(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-popper': 1.2.8(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@17.0.39)(react@17.0.2) + react: 17.0.2 + react-dom: 17.0.2(react@17.0.2) + optionalDependencies: + '@types/react': 17.0.39 + '@types/react-dom': 17.0.13 + + '@radix-ui/react-id@1.1.1(@types/react@17.0.39)(react@17.0.2)': + dependencies: + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@17.0.39)(react@17.0.2) + react: 17.0.2 + optionalDependencies: + '@types/react': 17.0.39 + + '@radix-ui/react-label@2.1.7(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2)': + dependencies: + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + react: 17.0.2 + react-dom: 17.0.2(react@17.0.2) + optionalDependencies: + '@types/react': 17.0.39 + '@types/react-dom': 17.0.13 + + '@radix-ui/react-menu@2.1.16(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2)': + dependencies: + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-collection': 1.1.7(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-context': 1.1.2(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-direction': 1.1.1(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-focus-guards': 1.1.3(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-id': 1.1.1(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-popper': 1.2.8(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-slot': 1.2.3(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@17.0.39)(react@17.0.2) + aria-hidden: 1.2.6 + react: 17.0.2 + react-dom: 17.0.2(react@17.0.2) + react-remove-scroll: 2.7.2(@types/react@17.0.39)(react@17.0.2) + optionalDependencies: + '@types/react': 17.0.39 + '@types/react-dom': 17.0.13 + + '@radix-ui/react-menubar@1.1.16(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2)': + dependencies: + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-collection': 1.1.7(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-context': 1.1.2(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-direction': 1.1.1(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-id': 1.1.1(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-menu': 2.1.16(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@17.0.39)(react@17.0.2) + react: 17.0.2 + react-dom: 17.0.2(react@17.0.2) + optionalDependencies: + '@types/react': 17.0.39 + '@types/react-dom': 17.0.13 + + '@radix-ui/react-navigation-menu@1.2.14(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2)': + dependencies: + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-collection': 1.1.7(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-context': 1.1.2(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-direction': 1.1.1(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-id': 1.1.1(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-use-previous': 1.1.1(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + react: 17.0.2 + react-dom: 17.0.2(react@17.0.2) + optionalDependencies: + '@types/react': 17.0.39 + '@types/react-dom': 17.0.13 + + '@radix-ui/react-one-time-password-field@0.1.8(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2)': + dependencies: + '@radix-ui/number': 1.1.1 + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-collection': 1.1.7(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-context': 1.1.2(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-direction': 1.1.1(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-use-effect-event': 0.0.2(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-use-is-hydrated': 0.1.0(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@17.0.39)(react@17.0.2) + react: 17.0.2 + react-dom: 17.0.2(react@17.0.2) + optionalDependencies: + '@types/react': 17.0.39 + '@types/react-dom': 17.0.13 + + '@radix-ui/react-password-toggle-field@0.1.3(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2)': + dependencies: + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-context': 1.1.2(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-id': 1.1.1(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-use-effect-event': 0.0.2(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-use-is-hydrated': 0.1.0(@types/react@17.0.39)(react@17.0.2) + react: 17.0.2 + react-dom: 17.0.2(react@17.0.2) + optionalDependencies: + '@types/react': 17.0.39 + '@types/react-dom': 17.0.13 + + '@radix-ui/react-popover@1.1.15(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2)': + dependencies: + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-context': 1.1.2(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-focus-guards': 1.1.3(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-id': 1.1.1(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-popper': 1.2.8(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-slot': 1.2.3(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@17.0.39)(react@17.0.2) + aria-hidden: 1.2.6 + react: 17.0.2 + react-dom: 17.0.2(react@17.0.2) + react-remove-scroll: 2.7.2(@types/react@17.0.39)(react@17.0.2) + optionalDependencies: + '@types/react': 17.0.39 + '@types/react-dom': 17.0.13 + + '@radix-ui/react-popper@1.2.8(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2)': + dependencies: + '@floating-ui/react-dom': 2.1.7(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-arrow': 1.1.7(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-context': 1.1.2(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-use-rect': 1.1.1(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-use-size': 1.1.1(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/rect': 1.1.1 + react: 17.0.2 + react-dom: 17.0.2(react@17.0.2) + optionalDependencies: + '@types/react': 17.0.39 + '@types/react-dom': 17.0.13 + + '@radix-ui/react-portal@1.1.9(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2)': + dependencies: + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@17.0.39)(react@17.0.2) + react: 17.0.2 + react-dom: 17.0.2(react@17.0.2) + optionalDependencies: + '@types/react': 17.0.39 + '@types/react-dom': 17.0.13 + + '@radix-ui/react-presence@1.1.5(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.2(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@17.0.39)(react@17.0.2) + react: 17.0.2 + react-dom: 17.0.2(react@17.0.2) + optionalDependencies: + '@types/react': 17.0.39 + '@types/react-dom': 17.0.13 + + '@radix-ui/react-primitive@2.1.3(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2)': + dependencies: + '@radix-ui/react-slot': 1.2.3(@types/react@17.0.39)(react@17.0.2) + react: 17.0.2 + react-dom: 17.0.2(react@17.0.2) + optionalDependencies: + '@types/react': 17.0.39 + '@types/react-dom': 17.0.13 + + '@radix-ui/react-progress@1.1.7(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2)': + dependencies: + '@radix-ui/react-context': 1.1.2(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + react: 17.0.2 + react-dom: 17.0.2(react@17.0.2) + optionalDependencies: + '@types/react': 17.0.39 + '@types/react-dom': 17.0.13 + + '@radix-ui/react-radio-group@1.3.8(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2)': + dependencies: + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-context': 1.1.2(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-direction': 1.1.1(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-use-previous': 1.1.1(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-use-size': 1.1.1(@types/react@17.0.39)(react@17.0.2) + react: 17.0.2 + react-dom: 17.0.2(react@17.0.2) + optionalDependencies: + '@types/react': 17.0.39 + '@types/react-dom': 17.0.13 + + '@radix-ui/react-roving-focus@1.1.11(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2)': + dependencies: + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-collection': 1.1.7(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-context': 1.1.2(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-direction': 1.1.1(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-id': 1.1.1(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@17.0.39)(react@17.0.2) + react: 17.0.2 + react-dom: 17.0.2(react@17.0.2) + optionalDependencies: + '@types/react': 17.0.39 + '@types/react-dom': 17.0.13 + + '@radix-ui/react-scroll-area@1.2.10(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2)': + dependencies: + '@radix-ui/number': 1.1.1 + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-context': 1.1.2(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-direction': 1.1.1(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@17.0.39)(react@17.0.2) + react: 17.0.2 + react-dom: 17.0.2(react@17.0.2) + optionalDependencies: + '@types/react': 17.0.39 + '@types/react-dom': 17.0.13 + + '@radix-ui/react-select@2.2.6(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2)': + dependencies: + '@radix-ui/number': 1.1.1 + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-collection': 1.1.7(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-context': 1.1.2(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-direction': 1.1.1(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-focus-guards': 1.1.3(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-id': 1.1.1(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-popper': 1.2.8(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-slot': 1.2.3(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-use-previous': 1.1.1(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + aria-hidden: 1.2.6 + react: 17.0.2 + react-dom: 17.0.2(react@17.0.2) + react-remove-scroll: 2.7.2(@types/react@17.0.39)(react@17.0.2) + optionalDependencies: + '@types/react': 17.0.39 + '@types/react-dom': 17.0.13 + + '@radix-ui/react-separator@1.1.7(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2)': + dependencies: + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + react: 17.0.2 + react-dom: 17.0.2(react@17.0.2) + optionalDependencies: + '@types/react': 17.0.39 + '@types/react-dom': 17.0.13 + + '@radix-ui/react-slider@1.3.6(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2)': + dependencies: + '@radix-ui/number': 1.1.1 + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-collection': 1.1.7(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-context': 1.1.2(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-direction': 1.1.1(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-use-previous': 1.1.1(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-use-size': 1.1.1(@types/react@17.0.39)(react@17.0.2) + react: 17.0.2 + react-dom: 17.0.2(react@17.0.2) + optionalDependencies: + '@types/react': 17.0.39 + '@types/react-dom': 17.0.13 + + '@radix-ui/react-slot@1.2.3(@types/react@17.0.39)(react@17.0.2)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.2(@types/react@17.0.39)(react@17.0.2) + react: 17.0.2 + optionalDependencies: + '@types/react': 17.0.39 + + '@radix-ui/react-switch@1.2.6(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2)': + dependencies: + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-context': 1.1.2(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-use-previous': 1.1.1(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-use-size': 1.1.1(@types/react@17.0.39)(react@17.0.2) + react: 17.0.2 + react-dom: 17.0.2(react@17.0.2) + optionalDependencies: + '@types/react': 17.0.39 + '@types/react-dom': 17.0.13 + + '@radix-ui/react-tabs@1.1.13(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2)': + dependencies: + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-context': 1.1.2(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-direction': 1.1.1(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-id': 1.1.1(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@17.0.39)(react@17.0.2) + react: 17.0.2 + react-dom: 17.0.2(react@17.0.2) + optionalDependencies: + '@types/react': 17.0.39 + '@types/react-dom': 17.0.13 + + '@radix-ui/react-toast@1.2.15(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2)': + dependencies: + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-collection': 1.1.7(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-context': 1.1.2(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + react: 17.0.2 + react-dom: 17.0.2(react@17.0.2) + optionalDependencies: + '@types/react': 17.0.39 + '@types/react-dom': 17.0.13 + + '@radix-ui/react-toggle-group@1.1.11(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2)': + dependencies: + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-context': 1.1.2(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-direction': 1.1.1(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-toggle': 1.1.10(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@17.0.39)(react@17.0.2) + react: 17.0.2 + react-dom: 17.0.2(react@17.0.2) + optionalDependencies: + '@types/react': 17.0.39 + '@types/react-dom': 17.0.13 + + '@radix-ui/react-toggle@1.1.10(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2)': + dependencies: + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@17.0.39)(react@17.0.2) + react: 17.0.2 + react-dom: 17.0.2(react@17.0.2) + optionalDependencies: + '@types/react': 17.0.39 + '@types/react-dom': 17.0.13 + + '@radix-ui/react-toolbar@1.1.11(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2)': + dependencies: + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-context': 1.1.2(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-direction': 1.1.1(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-separator': 1.1.7(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-toggle-group': 1.1.11(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + react: 17.0.2 + react-dom: 17.0.2(react@17.0.2) + optionalDependencies: + '@types/react': 17.0.39 + '@types/react-dom': 17.0.13 + + '@radix-ui/react-tooltip@1.2.8(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2)': + dependencies: + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-context': 1.1.2(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-id': 1.1.1(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-popper': 1.2.8(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-slot': 1.2.3(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + react: 17.0.2 + react-dom: 17.0.2(react@17.0.2) + optionalDependencies: + '@types/react': 17.0.39 + '@types/react-dom': 17.0.13 + + '@radix-ui/react-use-callback-ref@1.1.1(@types/react@17.0.39)(react@17.0.2)': + dependencies: + react: 17.0.2 + optionalDependencies: + '@types/react': 17.0.39 + + '@radix-ui/react-use-controllable-state@1.2.2(@types/react@17.0.39)(react@17.0.2)': + dependencies: + '@radix-ui/react-use-effect-event': 0.0.2(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@17.0.39)(react@17.0.2) + react: 17.0.2 + optionalDependencies: + '@types/react': 17.0.39 + + '@radix-ui/react-use-effect-event@0.0.2(@types/react@17.0.39)(react@17.0.2)': + dependencies: + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@17.0.39)(react@17.0.2) + react: 17.0.2 + optionalDependencies: + '@types/react': 17.0.39 + + '@radix-ui/react-use-escape-keydown@1.1.1(@types/react@17.0.39)(react@17.0.2)': + dependencies: + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@17.0.39)(react@17.0.2) + react: 17.0.2 + optionalDependencies: + '@types/react': 17.0.39 + + '@radix-ui/react-use-is-hydrated@0.1.0(@types/react@17.0.39)(react@17.0.2)': + dependencies: + react: 17.0.2 + use-sync-external-store: 1.6.0(react@17.0.2) + optionalDependencies: + '@types/react': 17.0.39 + + '@radix-ui/react-use-layout-effect@1.1.1(@types/react@17.0.39)(react@17.0.2)': + dependencies: + react: 17.0.2 + optionalDependencies: + '@types/react': 17.0.39 + + '@radix-ui/react-use-previous@1.1.1(@types/react@17.0.39)(react@17.0.2)': + dependencies: + react: 17.0.2 + optionalDependencies: + '@types/react': 17.0.39 + + '@radix-ui/react-use-rect@1.1.1(@types/react@17.0.39)(react@17.0.2)': + dependencies: + '@radix-ui/rect': 1.1.1 + react: 17.0.2 + optionalDependencies: + '@types/react': 17.0.39 + + '@radix-ui/react-use-size@1.1.1(@types/react@17.0.39)(react@17.0.2)': + dependencies: + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@17.0.39)(react@17.0.2) + react: 17.0.2 + optionalDependencies: + '@types/react': 17.0.39 + + '@radix-ui/react-visually-hidden@1.2.3(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2)': + dependencies: + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + react: 17.0.2 + react-dom: 17.0.2(react@17.0.2) + optionalDependencies: + '@types/react': 17.0.39 + '@types/react-dom': 17.0.13 + + '@radix-ui/rect@1.1.1': {} + + '@remirror/core-constants@3.0.0': {} + + '@samepage/scripts@0.74.5(@aws-sdk/client-lambda@3.985.0)(@aws-sdk/client-s3@3.985.0)(@samepage/testing@0.74.5(@playwright/test@1.29.0)(@testing-library/react@16.3.2(@testing-library/dom@10.4.1)(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2))(@testing-library/user-event@14.6.1(@testing-library/dom@10.4.1))(@types/jsdom@20.0.1)(c8@7.14.0)(debug@4.4.3)(dotenv@16.6.1)(jsdom@20.0.3)(ts-node@10.9.2(@types/node@25.2.1)(typescript@5.9.3)))(archiver@5.3.2)(axios@0.30.2(debug@4.4.3))(debug@4.4.3)(dotenv@16.6.1)(esbuild@0.27.3)(patch-package@6.5.1)(tailwindcss@3.3.2(ts-node@10.9.2(@types/node@25.2.1)(typescript@5.9.3)))(ts-node@10.9.2(@types/node@25.2.1)(typescript@5.9.3))(zod@3.25.76)': + dependencies: + '@aws-sdk/client-lambda': 3.985.0 + '@aws-sdk/client-s3': 3.985.0 + '@samepage/testing': 0.74.5(@playwright/test@1.29.0)(@testing-library/react@16.3.2(@testing-library/dom@10.4.1)(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2))(@testing-library/user-event@14.6.1(@testing-library/dom@10.4.1))(@types/jsdom@20.0.1)(c8@7.14.0)(debug@4.4.3)(dotenv@16.6.1)(jsdom@20.0.3)(ts-node@10.9.2(@types/node@25.2.1)(typescript@5.9.3)) + archiver: 5.3.2 + axios: 0.30.2(debug@4.4.3) + debug: 4.4.3 + dotenv: 16.6.1 + esbuild: 0.27.3 + patch-package: 6.5.1 + tailwindcss: 3.3.2(ts-node@10.9.2(@types/node@25.2.1)(typescript@5.9.3)) + ts-node: 10.9.2(@types/node@25.2.1)(typescript@5.9.3) + zod: 3.25.76 + + '@samepage/testing@0.74.5(@playwright/test@1.29.0)(@testing-library/react@16.3.2(@testing-library/dom@10.4.1)(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2))(@testing-library/user-event@14.6.1(@testing-library/dom@10.4.1))(@types/jsdom@20.0.1)(c8@7.14.0)(debug@4.4.3)(dotenv@16.6.1)(jsdom@20.0.3)(ts-node@10.9.2(@types/node@25.2.1)(typescript@5.9.3))': + dependencies: + '@playwright/test': 1.29.0 + '@testing-library/react': 16.3.2(@testing-library/dom@10.4.1)(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@testing-library/user-event': 14.6.1(@testing-library/dom@10.4.1) + '@types/jsdom': 20.0.1 + c8: 7.14.0 + debug: 4.4.3 + dotenv: 16.6.1 + jsdom: 20.0.3 + ts-node: 10.9.2(@types/node@25.2.1)(typescript@5.9.3) + + '@smithy/abort-controller@4.2.8': + dependencies: + '@smithy/types': 4.12.0 + tslib: 2.8.1 + + '@smithy/chunked-blob-reader-native@4.2.1': + dependencies: + '@smithy/util-base64': 4.3.0 + tslib: 2.8.1 + + '@smithy/chunked-blob-reader@5.2.0': + dependencies: + tslib: 2.8.1 + + '@smithy/config-resolver@4.4.6': + dependencies: + '@smithy/node-config-provider': 4.3.8 + '@smithy/types': 4.12.0 + '@smithy/util-config-provider': 4.2.0 + '@smithy/util-endpoints': 3.2.8 + '@smithy/util-middleware': 4.2.8 + tslib: 2.8.1 + + '@smithy/core@3.22.1': + dependencies: + '@smithy/middleware-serde': 4.2.9 + '@smithy/protocol-http': 5.3.8 + '@smithy/types': 4.12.0 + '@smithy/util-base64': 4.3.0 + '@smithy/util-body-length-browser': 4.2.0 + '@smithy/util-middleware': 4.2.8 + '@smithy/util-stream': 4.5.11 + '@smithy/util-utf8': 4.2.0 + '@smithy/uuid': 1.1.0 + tslib: 2.8.1 + + '@smithy/credential-provider-imds@4.2.8': + dependencies: + '@smithy/node-config-provider': 4.3.8 + '@smithy/property-provider': 4.2.8 + '@smithy/types': 4.12.0 + '@smithy/url-parser': 4.2.8 + tslib: 2.8.1 + + '@smithy/eventstream-codec@4.2.8': + dependencies: + '@aws-crypto/crc32': 5.2.0 + '@smithy/types': 4.12.0 + '@smithy/util-hex-encoding': 4.2.0 + tslib: 2.8.1 + + '@smithy/eventstream-serde-browser@4.2.8': + dependencies: + '@smithy/eventstream-serde-universal': 4.2.8 + '@smithy/types': 4.12.0 + tslib: 2.8.1 + + '@smithy/eventstream-serde-config-resolver@4.3.8': + dependencies: + '@smithy/types': 4.12.0 + tslib: 2.8.1 + + '@smithy/eventstream-serde-node@4.2.8': + dependencies: + '@smithy/eventstream-serde-universal': 4.2.8 + '@smithy/types': 4.12.0 + tslib: 2.8.1 + + '@smithy/eventstream-serde-universal@4.2.8': + dependencies: + '@smithy/eventstream-codec': 4.2.8 + '@smithy/types': 4.12.0 + tslib: 2.8.1 + + '@smithy/fetch-http-handler@5.3.9': + dependencies: + '@smithy/protocol-http': 5.3.8 + '@smithy/querystring-builder': 4.2.8 + '@smithy/types': 4.12.0 + '@smithy/util-base64': 4.3.0 + tslib: 2.8.1 + + '@smithy/hash-blob-browser@4.2.9': + dependencies: + '@smithy/chunked-blob-reader': 5.2.0 + '@smithy/chunked-blob-reader-native': 4.2.1 + '@smithy/types': 4.12.0 + tslib: 2.8.1 + + '@smithy/hash-node@4.2.8': + dependencies: + '@smithy/types': 4.12.0 + '@smithy/util-buffer-from': 4.2.0 + '@smithy/util-utf8': 4.2.0 + tslib: 2.8.1 + + '@smithy/hash-stream-node@4.2.8': + dependencies: + '@smithy/types': 4.12.0 + '@smithy/util-utf8': 4.2.0 + tslib: 2.8.1 + + '@smithy/invalid-dependency@4.2.8': + dependencies: + '@smithy/types': 4.12.0 + tslib: 2.8.1 + + '@smithy/is-array-buffer@2.2.0': + dependencies: + tslib: 2.8.1 + + '@smithy/is-array-buffer@4.2.0': + dependencies: + tslib: 2.8.1 + + '@smithy/md5-js@4.2.8': + dependencies: + '@smithy/types': 4.12.0 + '@smithy/util-utf8': 4.2.0 + tslib: 2.8.1 + + '@smithy/middleware-content-length@4.2.8': + dependencies: + '@smithy/protocol-http': 5.3.8 + '@smithy/types': 4.12.0 + tslib: 2.8.1 + + '@smithy/middleware-endpoint@4.4.13': + dependencies: + '@smithy/core': 3.22.1 + '@smithy/middleware-serde': 4.2.9 + '@smithy/node-config-provider': 4.3.8 + '@smithy/shared-ini-file-loader': 4.4.3 + '@smithy/types': 4.12.0 + '@smithy/url-parser': 4.2.8 + '@smithy/util-middleware': 4.2.8 + tslib: 2.8.1 + + '@smithy/middleware-retry@4.4.30': + dependencies: + '@smithy/node-config-provider': 4.3.8 + '@smithy/protocol-http': 5.3.8 + '@smithy/service-error-classification': 4.2.8 + '@smithy/smithy-client': 4.11.2 + '@smithy/types': 4.12.0 + '@smithy/util-middleware': 4.2.8 + '@smithy/util-retry': 4.2.8 + '@smithy/uuid': 1.1.0 + tslib: 2.8.1 + + '@smithy/middleware-serde@4.2.9': + dependencies: + '@smithy/protocol-http': 5.3.8 + '@smithy/types': 4.12.0 + tslib: 2.8.1 + + '@smithy/middleware-stack@4.2.8': + dependencies: + '@smithy/types': 4.12.0 + tslib: 2.8.1 + + '@smithy/node-config-provider@4.3.8': + dependencies: + '@smithy/property-provider': 4.2.8 + '@smithy/shared-ini-file-loader': 4.4.3 + '@smithy/types': 4.12.0 + tslib: 2.8.1 + + '@smithy/node-http-handler@4.4.9': + dependencies: + '@smithy/abort-controller': 4.2.8 + '@smithy/protocol-http': 5.3.8 + '@smithy/querystring-builder': 4.2.8 + '@smithy/types': 4.12.0 + tslib: 2.8.1 + + '@smithy/property-provider@4.2.8': + dependencies: + '@smithy/types': 4.12.0 + tslib: 2.8.1 + + '@smithy/protocol-http@5.3.8': + dependencies: + '@smithy/types': 4.12.0 + tslib: 2.8.1 + + '@smithy/querystring-builder@4.2.8': + dependencies: + '@smithy/types': 4.12.0 + '@smithy/util-uri-escape': 4.2.0 + tslib: 2.8.1 + + '@smithy/querystring-parser@4.2.8': + dependencies: + '@smithy/types': 4.12.0 + tslib: 2.8.1 + + '@smithy/service-error-classification@4.2.8': + dependencies: + '@smithy/types': 4.12.0 + + '@smithy/shared-ini-file-loader@4.4.3': + dependencies: + '@smithy/types': 4.12.0 + tslib: 2.8.1 + + '@smithy/signature-v4@5.3.8': + dependencies: + '@smithy/is-array-buffer': 4.2.0 + '@smithy/protocol-http': 5.3.8 + '@smithy/types': 4.12.0 + '@smithy/util-hex-encoding': 4.2.0 + '@smithy/util-middleware': 4.2.8 + '@smithy/util-uri-escape': 4.2.0 + '@smithy/util-utf8': 4.2.0 + tslib: 2.8.1 + + '@smithy/smithy-client@4.11.2': + dependencies: + '@smithy/core': 3.22.1 + '@smithy/middleware-endpoint': 4.4.13 + '@smithy/middleware-stack': 4.2.8 + '@smithy/protocol-http': 5.3.8 + '@smithy/types': 4.12.0 + '@smithy/util-stream': 4.5.11 + tslib: 2.8.1 + + '@smithy/types@4.12.0': + dependencies: + tslib: 2.8.1 + + '@smithy/url-parser@4.2.8': + dependencies: + '@smithy/querystring-parser': 4.2.8 + '@smithy/types': 4.12.0 + tslib: 2.8.1 + + '@smithy/util-base64@4.3.0': + dependencies: + '@smithy/util-buffer-from': 4.2.0 + '@smithy/util-utf8': 4.2.0 + tslib: 2.8.1 + + '@smithy/util-body-length-browser@4.2.0': + dependencies: + tslib: 2.8.1 + + '@smithy/util-body-length-node@4.2.1': + dependencies: + tslib: 2.8.1 + + '@smithy/util-buffer-from@2.2.0': + dependencies: + '@smithy/is-array-buffer': 2.2.0 + tslib: 2.8.1 + + '@smithy/util-buffer-from@4.2.0': + dependencies: + '@smithy/is-array-buffer': 4.2.0 + tslib: 2.8.1 + + '@smithy/util-config-provider@4.2.0': + dependencies: + tslib: 2.8.1 + + '@smithy/util-defaults-mode-browser@4.3.29': + dependencies: + '@smithy/property-provider': 4.2.8 + '@smithy/smithy-client': 4.11.2 + '@smithy/types': 4.12.0 + tslib: 2.8.1 + + '@smithy/util-defaults-mode-node@4.2.32': + dependencies: + '@smithy/config-resolver': 4.4.6 + '@smithy/credential-provider-imds': 4.2.8 + '@smithy/node-config-provider': 4.3.8 + '@smithy/property-provider': 4.2.8 + '@smithy/smithy-client': 4.11.2 + '@smithy/types': 4.12.0 + tslib: 2.8.1 + + '@smithy/util-endpoints@3.2.8': + dependencies: + '@smithy/node-config-provider': 4.3.8 + '@smithy/types': 4.12.0 + tslib: 2.8.1 + + '@smithy/util-hex-encoding@4.2.0': + dependencies: + tslib: 2.8.1 + + '@smithy/util-middleware@4.2.8': + dependencies: + '@smithy/types': 4.12.0 + tslib: 2.8.1 + + '@smithy/util-retry@4.2.8': + dependencies: + '@smithy/service-error-classification': 4.2.8 + '@smithy/types': 4.12.0 + tslib: 2.8.1 + + '@smithy/util-stream@4.5.11': + dependencies: + '@smithy/fetch-http-handler': 5.3.9 + '@smithy/node-http-handler': 4.4.9 + '@smithy/types': 4.12.0 + '@smithy/util-base64': 4.3.0 + '@smithy/util-buffer-from': 4.2.0 + '@smithy/util-hex-encoding': 4.2.0 + '@smithy/util-utf8': 4.2.0 + tslib: 2.8.1 + + '@smithy/util-uri-escape@4.2.0': + dependencies: + tslib: 2.8.1 + + '@smithy/util-utf8@2.3.0': + dependencies: + '@smithy/util-buffer-from': 2.2.0 + tslib: 2.8.1 + + '@smithy/util-utf8@4.2.0': + dependencies: + '@smithy/util-buffer-from': 4.2.0 + tslib: 2.8.1 + + '@smithy/util-waiter@4.2.8': + dependencies: + '@smithy/abort-controller': 4.2.8 + '@smithy/types': 4.12.0 + tslib: 2.8.1 + + '@smithy/uuid@1.1.0': + dependencies: + tslib: 2.8.1 + + '@testing-library/dom@10.4.1': + dependencies: + '@babel/code-frame': 7.29.0 + '@babel/runtime': 7.28.6 + '@types/aria-query': 5.0.4 + aria-query: 5.3.0 + dom-accessibility-api: 0.5.16 + lz-string: 1.5.0 + picocolors: 1.1.1 + pretty-format: 27.5.1 + + '@testing-library/react@16.3.2(@testing-library/dom@10.4.1)(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2)': + dependencies: + '@babel/runtime': 7.28.6 + '@testing-library/dom': 10.4.1 + react: 17.0.2 + react-dom: 17.0.2(react@17.0.2) + optionalDependencies: + '@types/react': 17.0.39 + '@types/react-dom': 17.0.13 + + '@testing-library/user-event@14.6.1(@testing-library/dom@10.4.1)': + dependencies: + '@testing-library/dom': 10.4.1 + + '@tiptap/core@2.27.2(@tiptap/pm@2.27.2)': + dependencies: + '@tiptap/pm': 2.27.2 + + '@tiptap/extension-blockquote@2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))': + dependencies: + '@tiptap/core': 2.27.2(@tiptap/pm@2.27.2) + + '@tiptap/extension-bold@2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))': + dependencies: + '@tiptap/core': 2.27.2(@tiptap/pm@2.27.2) + + '@tiptap/extension-bubble-menu@2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))(@tiptap/pm@2.27.2)': + dependencies: + '@tiptap/core': 2.27.2(@tiptap/pm@2.27.2) + '@tiptap/pm': 2.27.2 + tippy.js: 6.3.7 + + '@tiptap/extension-bullet-list@2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))': + dependencies: + '@tiptap/core': 2.27.2(@tiptap/pm@2.27.2) + + '@tiptap/extension-code-block@2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))(@tiptap/pm@2.27.2)': + dependencies: + '@tiptap/core': 2.27.2(@tiptap/pm@2.27.2) + '@tiptap/pm': 2.27.2 + + '@tiptap/extension-code@2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))': + dependencies: + '@tiptap/core': 2.27.2(@tiptap/pm@2.27.2) + + '@tiptap/extension-document@2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))': + dependencies: + '@tiptap/core': 2.27.2(@tiptap/pm@2.27.2) + + '@tiptap/extension-dropcursor@2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))(@tiptap/pm@2.27.2)': + dependencies: + '@tiptap/core': 2.27.2(@tiptap/pm@2.27.2) + '@tiptap/pm': 2.27.2 + + '@tiptap/extension-floating-menu@2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))(@tiptap/pm@2.27.2)': + dependencies: + '@tiptap/core': 2.27.2(@tiptap/pm@2.27.2) + '@tiptap/pm': 2.27.2 + tippy.js: 6.3.7 + + '@tiptap/extension-gapcursor@2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))(@tiptap/pm@2.27.2)': + dependencies: + '@tiptap/core': 2.27.2(@tiptap/pm@2.27.2) + '@tiptap/pm': 2.27.2 + + '@tiptap/extension-hard-break@2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))': + dependencies: + '@tiptap/core': 2.27.2(@tiptap/pm@2.27.2) + + '@tiptap/extension-heading@2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))': + dependencies: + '@tiptap/core': 2.27.2(@tiptap/pm@2.27.2) + + '@tiptap/extension-highlight@2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))': + dependencies: + '@tiptap/core': 2.27.2(@tiptap/pm@2.27.2) + + '@tiptap/extension-history@2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))(@tiptap/pm@2.27.2)': + dependencies: + '@tiptap/core': 2.27.2(@tiptap/pm@2.27.2) + '@tiptap/pm': 2.27.2 + + '@tiptap/extension-horizontal-rule@2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))(@tiptap/pm@2.27.2)': + dependencies: + '@tiptap/core': 2.27.2(@tiptap/pm@2.27.2) + '@tiptap/pm': 2.27.2 + + '@tiptap/extension-italic@2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))': + dependencies: + '@tiptap/core': 2.27.2(@tiptap/pm@2.27.2) + + '@tiptap/extension-link@2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))(@tiptap/pm@2.27.2)': + dependencies: + '@tiptap/core': 2.27.2(@tiptap/pm@2.27.2) + '@tiptap/pm': 2.27.2 + linkifyjs: 4.3.2 + + '@tiptap/extension-list-item@2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))': + dependencies: + '@tiptap/core': 2.27.2(@tiptap/pm@2.27.2) + + '@tiptap/extension-ordered-list@2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))': + dependencies: + '@tiptap/core': 2.27.2(@tiptap/pm@2.27.2) + + '@tiptap/extension-paragraph@2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))': + dependencies: + '@tiptap/core': 2.27.2(@tiptap/pm@2.27.2) + + '@tiptap/extension-strike@2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))': + dependencies: + '@tiptap/core': 2.27.2(@tiptap/pm@2.27.2) + + '@tiptap/extension-text-style@2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))': + dependencies: + '@tiptap/core': 2.27.2(@tiptap/pm@2.27.2) + + '@tiptap/extension-text@2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))': + dependencies: + '@tiptap/core': 2.27.2(@tiptap/pm@2.27.2) + + '@tiptap/pm@2.27.2': + dependencies: + prosemirror-changeset: 2.3.1 + prosemirror-collab: 1.3.1 + prosemirror-commands: 1.7.1 + prosemirror-dropcursor: 1.8.2 + prosemirror-gapcursor: 1.4.0 + prosemirror-history: 1.5.0 + prosemirror-inputrules: 1.5.1 + prosemirror-keymap: 1.2.3 + prosemirror-markdown: 1.13.4 + prosemirror-menu: 1.2.5 + prosemirror-model: 1.25.4 + prosemirror-schema-basic: 1.2.4 + prosemirror-schema-list: 1.5.1 + prosemirror-state: 1.4.4 + prosemirror-tables: 1.8.5 + prosemirror-trailing-node: 3.0.0(prosemirror-model@1.25.4)(prosemirror-state@1.4.4)(prosemirror-view@1.41.6) + prosemirror-transform: 1.11.0 + prosemirror-view: 1.41.6 + + '@tiptap/react@2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))(@tiptap/pm@2.27.2)(react-dom@17.0.2(react@17.0.2))(react@17.0.2)': + dependencies: + '@tiptap/core': 2.27.2(@tiptap/pm@2.27.2) + '@tiptap/extension-bubble-menu': 2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))(@tiptap/pm@2.27.2) + '@tiptap/extension-floating-menu': 2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))(@tiptap/pm@2.27.2) + '@tiptap/pm': 2.27.2 + '@types/use-sync-external-store': 0.0.6 + fast-deep-equal: 3.1.3 + react: 17.0.2 + react-dom: 17.0.2(react@17.0.2) + use-sync-external-store: 1.6.0(react@17.0.2) + + '@tiptap/starter-kit@2.27.2': + dependencies: + '@tiptap/core': 2.27.2(@tiptap/pm@2.27.2) + '@tiptap/extension-blockquote': 2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2)) + '@tiptap/extension-bold': 2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2)) + '@tiptap/extension-bullet-list': 2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2)) + '@tiptap/extension-code': 2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2)) + '@tiptap/extension-code-block': 2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))(@tiptap/pm@2.27.2) + '@tiptap/extension-document': 2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2)) + '@tiptap/extension-dropcursor': 2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))(@tiptap/pm@2.27.2) + '@tiptap/extension-gapcursor': 2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))(@tiptap/pm@2.27.2) + '@tiptap/extension-hard-break': 2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2)) + '@tiptap/extension-heading': 2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2)) + '@tiptap/extension-history': 2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))(@tiptap/pm@2.27.2) + '@tiptap/extension-horizontal-rule': 2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))(@tiptap/pm@2.27.2) + '@tiptap/extension-italic': 2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2)) + '@tiptap/extension-list-item': 2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2)) + '@tiptap/extension-ordered-list': 2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2)) + '@tiptap/extension-paragraph': 2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2)) + '@tiptap/extension-strike': 2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2)) + '@tiptap/extension-text': 2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2)) + '@tiptap/extension-text-style': 2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2)) + '@tiptap/pm': 2.27.2 + + '@tldraw/editor@3.15.5(react-dom@17.0.2(react@17.0.2))(react@17.0.2)': + dependencies: + '@tiptap/core': 2.27.2(@tiptap/pm@2.27.2) + '@tiptap/pm': 2.27.2 + '@tiptap/react': 2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))(@tiptap/pm@2.27.2)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@tldraw/state': 3.15.5 + '@tldraw/state-react': 3.15.5(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@tldraw/store': 3.15.5(react@17.0.2) + '@tldraw/tlschema': 3.15.5(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@tldraw/utils': 3.15.5 + '@tldraw/validate': 3.15.5 + '@types/core-js': 2.5.8 + '@use-gesture/react': 10.3.1(react@17.0.2) + classnames: 2.5.1 + core-js: 3.48.0 + eventemitter3: 4.0.7 + idb: 7.1.1 + is-plain-object: 5.0.0 + react: 17.0.2 + react-dom: 17.0.2(react@17.0.2) + + '@tldraw/state-react@3.15.5(react-dom@17.0.2(react@17.0.2))(react@17.0.2)': + dependencies: + '@tldraw/state': 3.15.5 + '@tldraw/utils': 3.15.5 + react: 17.0.2 + react-dom: 17.0.2(react@17.0.2) + + '@tldraw/state@3.15.5': + dependencies: + '@tldraw/utils': 3.15.5 + + '@tldraw/store@3.15.5(react@17.0.2)': + dependencies: + '@tldraw/state': 3.15.5 + '@tldraw/utils': 3.15.5 + react: 17.0.2 + + '@tldraw/tlschema@3.15.5(react-dom@17.0.2(react@17.0.2))(react@17.0.2)': + dependencies: + '@tldraw/state': 3.15.5 + '@tldraw/store': 3.15.5(react@17.0.2) + '@tldraw/utils': 3.15.5 + '@tldraw/validate': 3.15.5 + react: 17.0.2 + react-dom: 17.0.2(react@17.0.2) + + '@tldraw/utils@3.15.5': + dependencies: + fractional-indexing-jittered: 1.0.0 + lodash.isequal: 4.5.0 + lodash.isequalwith: 4.4.0 + lodash.throttle: 4.1.1 + lodash.uniq: 4.5.0 + + '@tldraw/validate@3.15.5': + dependencies: + '@tldraw/utils': 3.15.5 + + '@tootallnate/once@2.0.0': {} + + '@tsconfig/node10@1.0.12': {} + + '@tsconfig/node12@1.0.11': {} + + '@tsconfig/node14@1.0.3': {} + + '@tsconfig/node16@1.0.4': {} + + '@types/aria-query@5.0.4': {} + + '@types/core-js@2.5.8': {} + + '@types/crypto-js@4.1.1': {} + + '@types/cytoscape@3.31.0': + dependencies: + cytoscape: 3.33.1 + + '@types/dom4@2.0.4': {} + + '@types/file-saver@2.0.5': {} + + '@types/hast@2.3.10': + dependencies: + '@types/unist': 2.0.11 + + '@types/istanbul-lib-coverage@2.0.6': {} + + '@types/jquery@3.5.33': + dependencies: + '@types/sizzle': 2.3.10 + + '@types/jsdom@20.0.1': + dependencies: + '@types/node': 25.2.1 + '@types/tough-cookie': 4.0.5 + parse5: 7.3.0 + + '@types/linkify-it@5.0.0': {} + + '@types/markdown-it@14.1.2': + dependencies: + '@types/linkify-it': 5.0.0 + '@types/mdurl': 2.0.0 + + '@types/marked@4.3.2': {} + + '@types/mdurl@2.0.0': {} + + '@types/nanoid@2.0.0': + dependencies: + '@types/node': 25.2.1 + + '@types/node@25.2.1': + dependencies: + undici-types: 7.16.0 + + '@types/prop-types@15.7.15': {} + + '@types/react-dom@17.0.13': + dependencies: + '@types/react': 17.0.39 + + '@types/react@17.0.39': + dependencies: + '@types/prop-types': 15.7.15 + '@types/scheduler': 0.26.0 + csstype: 3.2.3 + + '@types/scheduler@0.26.0': {} + + '@types/sizzle@2.3.10': {} + + '@types/tough-cookie@4.0.5': {} + + '@types/unist@2.0.11': {} + + '@types/use-sync-external-store@0.0.6': {} + + '@use-gesture/core@10.3.1': {} + + '@use-gesture/react@10.3.1(react@17.0.2)': + dependencies: + '@use-gesture/core': 10.3.1 + react: 17.0.2 + + '@yarnpkg/lockfile@1.1.0': {} + + abab@2.0.6: {} + + acorn-globals@7.0.1: + dependencies: + acorn: 8.15.0 + acorn-walk: 8.3.4 + + acorn-walk@8.3.4: + dependencies: + acorn: 8.15.0 + + acorn@8.15.0: {} + + agent-base@6.0.2: + dependencies: + debug: 4.4.3 + transitivePeerDependencies: + - supports-color + + ansi-regex@5.0.1: {} + + ansi-styles@4.3.0: + dependencies: + color-convert: 2.0.1 + + ansi-styles@5.2.0: {} + + ansidec@0.3.4: {} + + any-promise@1.3.0: {} + + anymatch@3.1.3: + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.1 + + arch@2.2.0: {} + + archiver-utils@2.1.0: + dependencies: + glob: 7.2.3 + graceful-fs: 4.2.11 + lazystream: 1.0.1 + lodash.defaults: 4.2.0 + lodash.difference: 4.5.0 + lodash.flatten: 4.4.0 + lodash.isplainobject: 4.0.6 + lodash.union: 4.6.0 + normalize-path: 3.0.0 + readable-stream: 2.3.8 + + archiver-utils@3.0.4: + dependencies: + glob: 7.2.3 + graceful-fs: 4.2.11 + lazystream: 1.0.1 + lodash.defaults: 4.2.0 + lodash.difference: 4.5.0 + lodash.flatten: 4.4.0 + lodash.isplainobject: 4.0.6 + lodash.union: 4.6.0 + normalize-path: 3.0.0 + readable-stream: 3.6.2 + + archiver@5.3.2: + dependencies: + archiver-utils: 2.1.0 + async: 3.2.6 + buffer-crc32: 0.2.13 + readable-stream: 3.6.2 + readdir-glob: 1.1.3 + tar-stream: 2.2.0 + zip-stream: 4.1.1 + + arg@4.1.3: {} + + arg@5.0.2: {} + + argparse@2.0.1: {} + + aria-hidden@1.2.6: + dependencies: + tslib: 2.8.1 + + aria-query@5.3.0: + dependencies: + dequal: 2.0.3 + + async@3.2.6: {} + + asynckit@0.4.0: {} + + at-least-node@1.0.0: {} + + axios@0.30.2(debug@4.4.3): + dependencies: + follow-redirects: 1.15.11(debug@4.4.3) + form-data: 4.0.5 + proxy-from-env: 1.1.0 + transitivePeerDependencies: + - debug + + balanced-match@1.0.2: {} + + base64-js@1.5.1: {} + + binary-extensions@2.3.0: {} + + bl@4.1.0: + dependencies: + buffer: 5.7.1 + inherits: 2.0.4 + readable-stream: 3.6.2 + + bowser@2.13.1: {} + + brace-expansion@1.1.12: + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + + brace-expansion@2.0.2: + dependencies: + balanced-match: 1.0.2 + + braces@3.0.3: + dependencies: + fill-range: 7.1.1 + + buffer-crc32@0.2.13: {} + + buffer@5.7.1: + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + + c8@7.14.0: + dependencies: + '@bcoe/v8-coverage': 0.2.3 + '@istanbuljs/schema': 0.1.3 + find-up: 5.0.0 + foreground-child: 2.0.0 + istanbul-lib-coverage: 3.2.2 + istanbul-lib-report: 3.0.1 + istanbul-reports: 3.2.0 + rimraf: 3.0.2 + test-exclude: 6.0.0 + v8-to-istanbul: 9.3.0 + yargs: 16.2.0 + yargs-parser: 20.2.9 + + call-bind-apply-helpers@1.0.2: + dependencies: + es-errors: 1.3.0 + function-bind: 1.1.2 + + call-bind@1.0.8: + dependencies: + call-bind-apply-helpers: 1.0.2 + es-define-property: 1.0.1 + get-intrinsic: 1.3.0 + set-function-length: 1.2.2 + + call-bound@1.0.4: + dependencies: + call-bind-apply-helpers: 1.0.2 + get-intrinsic: 1.3.0 + + camelcase-css@2.0.1: {} + + ccount@1.1.0: {} + + chalk@4.1.2: + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + + character-entities-html4@1.1.4: {} + + character-entities-legacy@1.1.4: {} + + character-entities@1.2.4: {} + + character-reference-invalid@1.1.4: {} + + chokidar@3.6.0: + dependencies: + anymatch: 3.1.3 + braces: 3.0.3 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.3 + + chrono-node@2.3.0: + dependencies: + dayjs: 1.11.19 + + ci-info@2.0.0: {} + + classnames@2.5.1: {} + + clipboardy@2.3.0: + dependencies: + arch: 2.2.0 + execa: 1.0.0 + is-wsl: 2.2.0 + + cliui@7.0.4: + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + + clone@1.0.4: {} + + color-convert@2.0.1: + dependencies: + color-name: 1.1.4 + + color-name@1.1.4: {} + + color-string@1.9.1: + dependencies: + color-name: 1.1.4 + simple-swizzle: 0.2.4 + + color@4.2.3: + dependencies: + color-convert: 2.0.1 + color-string: 1.9.1 + + combined-stream@1.0.8: + dependencies: + delayed-stream: 1.0.0 + + comma-separated-tokens@1.0.8: {} + + commander@4.1.1: {} + + compress-commons@4.1.2: + dependencies: + buffer-crc32: 0.2.13 + crc32-stream: 4.0.3 + normalize-path: 3.0.0 + readable-stream: 3.6.2 + + concat-map@0.0.1: {} + + convert-source-map@2.0.0: {} + + core-js-pure@3.48.0: {} + + core-js@3.48.0: {} + + core-util-is@1.0.3: {} + + coveralls-next@4.2.2: + dependencies: + form-data: 4.0.4 + js-yaml: 4.1.0 + lcov-parse: 1.0.0 + log-driver: 1.2.7 + minimist: 1.2.8 + + crc-32@1.2.2: {} + + crc32-stream@4.0.3: + dependencies: + crc-32: 1.2.2 + readable-stream: 3.6.2 + + create-require@1.1.1: {} + + crelt@1.0.6: {} + + cross-spawn@6.0.6: + dependencies: + nice-try: 1.0.5 + path-key: 2.0.1 + semver: 5.7.2 + shebang-command: 1.2.0 + which: 1.3.1 + + cross-spawn@7.0.6: + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + + crypto-js@3.1.9-1: {} + + cssesc@3.0.0: {} + + cssom@0.3.8: {} + + cssom@0.5.0: {} + + cssstyle@2.3.0: + dependencies: + cssom: 0.3.8 + + csstype@3.2.3: {} + + cytoscape@3.33.1: {} + + data-uri-to-buffer@4.0.1: {} + + data-urls@3.0.2: + dependencies: + abab: 2.0.6 + whatwg-mimetype: 3.0.0 + whatwg-url: 11.0.0 + + date-fns@2.30.0: + dependencies: + '@babel/runtime': 7.28.6 + + dayjs@1.11.19: {} + + debug@4.4.3: + dependencies: + ms: 2.1.3 + + decimal.js@10.3.1: {} + + decimal.js@10.6.0: {} + + deep-equal@1.1.2: + dependencies: + is-arguments: 1.2.0 + is-date-object: 1.1.0 + is-regex: 1.2.1 + object-is: 1.1.6 + object-keys: 1.1.1 + regexp.prototype.flags: 1.5.4 + + defaults@1.0.4: + dependencies: + clone: 1.0.4 + + define-data-property@1.1.4: + dependencies: + es-define-property: 1.0.1 + es-errors: 1.3.0 + gopd: 1.2.0 + + define-properties@1.2.1: + dependencies: + define-data-property: 1.1.4 + has-property-descriptors: 1.0.2 + object-keys: 1.1.1 + + delayed-stream@1.0.0: {} + + dequal@2.0.3: {} + + detect-node-es@1.1.0: {} + + didyoumean@1.2.2: {} + + diff@4.0.4: {} + + dlv@1.1.3: {} + + dom-accessibility-api@0.5.16: {} + + dom-helpers@3.4.0: + dependencies: + '@babel/runtime': 7.28.6 + + dom4@2.1.6: {} + + domexception@4.0.0: + dependencies: + webidl-conversions: 7.0.0 + + dotenv@16.6.1: {} + + dunder-proto@1.0.1: + dependencies: + call-bind-apply-helpers: 1.0.2 + es-errors: 1.3.0 + gopd: 1.2.0 + + edn-data@1.1.2: {} + + emoji-regex@8.0.0: {} + + end-of-stream@1.4.5: + dependencies: + once: 1.4.0 + + entities@4.5.0: {} + + entities@6.0.1: {} + + es-define-property@1.0.1: {} + + es-errors@1.3.0: {} + + es-object-atoms@1.1.1: + dependencies: + es-errors: 1.3.0 + + es-set-tostringtag@2.1.0: + dependencies: + es-errors: 1.3.0 + get-intrinsic: 1.3.0 + has-tostringtag: 1.0.2 + hasown: 2.0.2 + + esbuild@0.27.3: + optionalDependencies: + '@esbuild/aix-ppc64': 0.27.3 + '@esbuild/android-arm': 0.27.3 + '@esbuild/android-arm64': 0.27.3 + '@esbuild/android-x64': 0.27.3 + '@esbuild/darwin-arm64': 0.27.3 + '@esbuild/darwin-x64': 0.27.3 + '@esbuild/freebsd-arm64': 0.27.3 + '@esbuild/freebsd-x64': 0.27.3 + '@esbuild/linux-arm': 0.27.3 + '@esbuild/linux-arm64': 0.27.3 + '@esbuild/linux-ia32': 0.27.3 + '@esbuild/linux-loong64': 0.27.3 + '@esbuild/linux-mips64el': 0.27.3 + '@esbuild/linux-ppc64': 0.27.3 + '@esbuild/linux-riscv64': 0.27.3 + '@esbuild/linux-s390x': 0.27.3 + '@esbuild/linux-x64': 0.27.3 + '@esbuild/netbsd-arm64': 0.27.3 + '@esbuild/netbsd-x64': 0.27.3 + '@esbuild/openbsd-arm64': 0.27.3 + '@esbuild/openbsd-x64': 0.27.3 + '@esbuild/openharmony-arm64': 0.27.3 + '@esbuild/sunos-x64': 0.27.3 + '@esbuild/win32-arm64': 0.27.3 + '@esbuild/win32-ia32': 0.27.3 + '@esbuild/win32-x64': 0.27.3 + + escalade@3.2.0: {} + + escape-string-regexp@4.0.0: {} + + escodegen@2.1.0: + dependencies: + esprima: 4.0.1 + estraverse: 5.3.0 + esutils: 2.0.3 + optionalDependencies: + source-map: 0.6.1 + + esprima@4.0.1: {} + + estraverse@5.3.0: {} + + esutils@2.0.3: {} + + eventemitter3@4.0.7: {} + + execa@1.0.0: + dependencies: + cross-spawn: 6.0.6 + get-stream: 4.1.0 + is-stream: 1.1.0 + npm-run-path: 2.0.2 + p-finally: 1.0.0 + signal-exit: 3.0.7 + strip-eof: 1.0.0 + + fast-deep-equal@3.1.3: {} + + fast-glob@3.3.3: + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.8 + + fast-xml-parser@5.3.4: + dependencies: + strnum: 2.1.2 + + fastq@1.20.1: + dependencies: + reusify: 1.1.0 + + fdir@6.5.0(picomatch@4.0.3): + optionalDependencies: + picomatch: 4.0.3 + + fetch-blob@3.2.0: + dependencies: + node-domexception: 1.0.0 + web-streams-polyfill: 3.3.3 + + file-saver@2.0.2: {} + + fill-range@7.1.1: + dependencies: + to-regex-range: 5.0.1 + + find-up@5.0.0: + dependencies: + locate-path: 6.0.0 + path-exists: 4.0.0 + + find-yarn-workspace-root@2.0.0: + dependencies: + micromatch: 4.0.8 + + follow-redirects@1.15.11(debug@4.4.3): + optionalDependencies: + debug: 4.4.3 + + foreground-child@2.0.0: + dependencies: + cross-spawn: 7.0.6 + signal-exit: 3.0.7 + + form-data@4.0.4: + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + es-set-tostringtag: 2.1.0 + hasown: 2.0.2 + mime-types: 2.1.35 + + form-data@4.0.5: + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + es-set-tostringtag: 2.1.0 + hasown: 2.0.2 + mime-types: 2.1.35 + + formdata-polyfill@4.0.10: + dependencies: + fetch-blob: 3.2.0 + + fractional-indexing-jittered@1.0.0: {} + + fs-constants@1.0.0: {} + + fs-extra@9.1.0: + dependencies: + at-least-node: 1.0.0 + graceful-fs: 4.2.11 + jsonfile: 6.2.0 + universalify: 2.0.1 + + fs.realpath@1.0.0: {} + + fsevents@2.3.3: + optional: true + + function-bind@1.1.2: {} + + functions-have-names@1.2.3: {} + + fuzzy@0.1.3: {} + + get-caller-file@2.0.5: {} + + get-intrinsic@1.3.0: + dependencies: + call-bind-apply-helpers: 1.0.2 + es-define-property: 1.0.1 + es-errors: 1.3.0 + es-object-atoms: 1.1.1 + function-bind: 1.1.2 + get-proto: 1.0.1 + gopd: 1.2.0 + has-symbols: 1.1.0 + hasown: 2.0.2 + math-intrinsics: 1.1.0 + + get-nonce@1.0.1: {} + + get-proto@1.0.1: + dependencies: + dunder-proto: 1.0.1 + es-object-atoms: 1.1.1 + + get-stream@4.1.0: + dependencies: + pump: 3.0.3 + + get-tsconfig@4.13.6: + dependencies: + resolve-pkg-maps: 1.0.0 + + glob-parent@5.1.2: + dependencies: + is-glob: 4.0.3 + + glob-parent@6.0.2: + dependencies: + is-glob: 4.0.3 + + glob@7.2.3: + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + + gopd@1.2.0: {} + + graceful-fs@4.2.11: {} + + gud@1.0.0: {} + + has-flag@4.0.0: {} + + has-property-descriptors@1.0.2: + dependencies: + es-define-property: 1.0.1 + + has-symbols@1.1.0: {} + + has-tostringtag@1.0.2: + dependencies: + has-symbols: 1.1.0 + + hasown@2.0.2: + dependencies: + function-bind: 1.1.2 + + hast-util-is-element@1.1.0: {} + + hast-util-parse-selector@2.2.5: {} + + hast-util-to-html@7.1.3: + dependencies: + ccount: 1.1.0 + comma-separated-tokens: 1.0.8 + hast-util-is-element: 1.1.0 + hast-util-whitespace: 1.0.4 + html-void-elements: 1.0.5 + property-information: 5.6.0 + space-separated-tokens: 1.1.5 + stringify-entities: 3.1.0 + unist-util-is: 4.1.0 + xtend: 4.0.2 + + hast-util-whitespace@1.0.4: {} + + hastscript@6.0.0: + dependencies: + '@types/hast': 2.3.10 + comma-separated-tokens: 1.0.8 + hast-util-parse-selector: 2.2.5 + property-information: 5.6.0 + space-separated-tokens: 1.1.5 + + hotkeys-js@3.13.15: {} + + html-encoding-sniffer@3.0.0: + dependencies: + whatwg-encoding: 2.0.0 + + html-escaper@2.0.2: {} + + html-void-elements@1.0.5: {} + + http-proxy-agent@5.0.0: + dependencies: + '@tootallnate/once': 2.0.0 + agent-base: 6.0.2 + debug: 4.4.3 + transitivePeerDependencies: + - supports-color + + https-proxy-agent@5.0.1: + dependencies: + agent-base: 6.0.2 + debug: 4.4.3 + transitivePeerDependencies: + - supports-color + + iconv-lite@0.6.3: + dependencies: + safer-buffer: 2.1.2 + + idb@7.1.1: {} + + ieee754@1.2.1: {} + + immediate@3.0.6: {} + + inflight@1.0.6: + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + + inherits@2.0.4: {} + + insect@5.9.1: + dependencies: + clipboardy: 2.3.0 + decimal.js: 10.3.1 + jquery.terminal: 2.45.2 + keyboardevent-key-polyfill: 1.1.0 + line-reader: 0.4.0 + xdg-basedir: 4.0.0 + + is-alphabetical@1.0.4: {} + + is-alphanumerical@1.0.4: + dependencies: + is-alphabetical: 1.0.4 + is-decimal: 1.0.4 + + is-arguments@1.2.0: + dependencies: + call-bound: 1.0.4 + has-tostringtag: 1.0.2 + + is-arrayish@0.3.4: {} + + is-binary-path@2.1.0: + dependencies: + binary-extensions: 2.3.0 + + is-ci@2.0.0: + dependencies: + ci-info: 2.0.0 + + is-core-module@2.16.1: + dependencies: + hasown: 2.0.2 + + is-date-object@1.1.0: + dependencies: + call-bound: 1.0.4 + has-tostringtag: 1.0.2 + + is-decimal@1.0.4: {} + + is-docker@2.2.1: {} + + is-extglob@2.1.1: {} + + is-fullwidth-code-point@3.0.0: {} + + is-glob@4.0.3: + dependencies: + is-extglob: 2.1.1 + + is-hexadecimal@1.0.4: {} + + is-number@7.0.0: {} + + is-plain-object@5.0.0: {} + + is-potential-custom-element-name@1.0.1: {} + + is-regex@1.2.1: + dependencies: + call-bound: 1.0.4 + gopd: 1.2.0 + has-tostringtag: 1.0.2 + hasown: 2.0.2 + + is-stream@1.1.0: {} + + is-wsl@2.2.0: + dependencies: + is-docker: 2.2.1 + + isarray@1.0.0: {} + + isexe@2.0.0: {} + + istanbul-lib-coverage@3.2.2: {} + + istanbul-lib-report@3.0.1: + dependencies: + istanbul-lib-coverage: 3.2.2 + make-dir: 4.0.0 + supports-color: 7.2.0 + + istanbul-reports@3.2.0: + dependencies: + html-escaper: 2.0.2 + istanbul-lib-report: 3.0.1 + + jiti@1.21.7: {} + + jquery.terminal@2.45.2: + dependencies: + '@jcubic/lily': 0.3.0 + '@types/jquery': 3.5.33 + ansidec: 0.3.4 + coveralls-next: 4.2.2 + iconv-lite: 0.6.3 + jquery: 3.7.1 + node-fetch: 3.3.2 + prismjs: 1.30.0 + wcwidth: 1.0.1 + optionalDependencies: + fsevents: 2.3.3 + + jquery@3.7.1: {} + + js-tokens@4.0.0: {} + + js-yaml@4.1.0: + dependencies: + argparse: 2.0.1 + + jsdom@20.0.3: + dependencies: + abab: 2.0.6 + acorn: 8.15.0 + acorn-globals: 7.0.1 + cssom: 0.5.0 + cssstyle: 2.3.0 + data-urls: 3.0.2 + decimal.js: 10.6.0 + domexception: 4.0.0 + escodegen: 2.1.0 + form-data: 4.0.5 + html-encoding-sniffer: 3.0.0 + http-proxy-agent: 5.0.0 + https-proxy-agent: 5.0.1 + is-potential-custom-element-name: 1.0.1 + nwsapi: 2.2.23 + parse5: 7.3.0 + saxes: 6.0.0 + symbol-tree: 3.2.4 + tough-cookie: 4.1.4 + w3c-xmlserializer: 4.0.0 + webidl-conversions: 7.0.0 + whatwg-encoding: 2.0.0 + whatwg-mimetype: 3.0.0 + whatwg-url: 11.0.0 + ws: 8.19.0 + xml-name-validator: 4.0.0 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + jsonfile@6.2.0: + dependencies: + universalify: 2.0.1 + optionalDependencies: + graceful-fs: 4.2.11 + + jszip@3.10.0: + dependencies: + lie: 3.3.0 + pako: 1.0.11 + readable-stream: 2.3.8 + setimmediate: 1.0.5 + + keyboardevent-key-polyfill@1.1.0: {} + + klaw-sync@6.0.0: + dependencies: + graceful-fs: 4.2.11 + + lazystream@1.0.1: + dependencies: + readable-stream: 2.3.8 + + lcov-parse@1.0.0: {} + + lie@3.3.0: + dependencies: + immediate: 3.0.6 + + lilconfig@2.1.0: {} + + lilconfig@3.1.3: {} + + line-reader@0.4.0: {} + + lines-and-columns@1.2.4: {} + + linkify-it@5.0.0: + dependencies: + uc.micro: 2.1.0 + + linkifyjs@4.3.2: {} + + locate-path@6.0.0: + dependencies: + p-locate: 5.0.0 + + lodash.defaults@4.2.0: {} + + lodash.difference@4.5.0: {} + + lodash.flatten@4.4.0: {} + + lodash.isequal@4.5.0: {} + + lodash.isequalwith@4.4.0: {} + + lodash.isplainobject@4.0.6: {} + + lodash.throttle@4.1.1: {} + + lodash.union@4.6.0: {} + + lodash.uniq@4.5.0: {} + + log-driver@1.2.7: {} + + loose-envify@1.4.0: + dependencies: + js-tokens: 4.0.0 + + lz-string@1.5.0: {} + + make-dir@4.0.0: + dependencies: + semver: 7.7.4 + + make-error@1.3.6: {} + + markdown-it@14.1.0: + dependencies: + argparse: 2.0.1 + entities: 4.5.0 + linkify-it: 5.0.0 + mdurl: 2.0.0 + punycode.js: 2.3.1 + uc.micro: 2.1.0 + + marked-react@1.1.2(react@17.0.2): + dependencies: + marked: 4.0.16 + react: 17.0.2 + + marked@4.0.16: {} + + math-intrinsics@1.1.0: {} + + mdurl@2.0.0: {} + + merge2@1.4.1: {} + + micromatch@4.0.8: + dependencies: + braces: 3.0.3 + picomatch: 2.3.1 + + mime-db@1.52.0: {} + + mime-types@2.1.35: + dependencies: + mime-db: 1.52.0 + + minimatch@3.1.2: + dependencies: + brace-expansion: 1.1.12 + + minimatch@5.1.6: + dependencies: + brace-expansion: 2.0.2 + + minimist@1.2.8: {} + + ms@2.1.3: {} + + mz@2.7.0: + dependencies: + any-promise: 1.3.0 + object-assign: 4.1.1 + thenify-all: 1.6.0 + + nanoid@3.3.11: {} + + nice-try@1.0.5: {} + + node-domexception@1.0.0: {} + + node-fetch@3.3.2: + dependencies: + data-uri-to-buffer: 4.0.1 + fetch-blob: 3.2.0 + formdata-polyfill: 4.0.10 + + normalize-path@3.0.0: {} + + normalize.css@8.0.1: {} + + npm-run-path@2.0.2: + dependencies: + path-key: 2.0.1 + + nwsapi@2.2.23: {} + + object-assign@4.1.1: {} + + object-hash@3.0.0: {} + + object-is@1.1.6: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + + object-keys@1.1.1: {} + + once@1.4.0: + dependencies: + wrappy: 1.0.2 + + open@7.4.2: + dependencies: + is-docker: 2.2.1 + is-wsl: 2.2.0 + + orderedmap@2.1.1: {} + + os-tmpdir@1.0.2: {} + + p-finally@1.0.0: {} + + p-limit@3.1.0: + dependencies: + yocto-queue: 0.1.0 + + p-locate@5.0.0: + dependencies: + p-limit: 3.1.0 + + pako@1.0.11: {} + + parse-entities@2.0.0: + dependencies: + character-entities: 1.2.4 + character-entities-legacy: 1.1.4 + character-reference-invalid: 1.1.4 + is-alphanumerical: 1.0.4 + is-decimal: 1.0.4 + is-hexadecimal: 1.0.4 + + parse5@7.3.0: + dependencies: + entities: 6.0.1 + + patch-package@6.5.1: + dependencies: + '@yarnpkg/lockfile': 1.1.0 + chalk: 4.1.2 + cross-spawn: 6.0.6 + find-yarn-workspace-root: 2.0.0 + fs-extra: 9.1.0 + is-ci: 2.0.0 + klaw-sync: 6.0.0 + minimist: 1.2.8 + open: 7.4.2 + rimraf: 2.7.1 + semver: 5.7.2 + slash: 2.0.0 + tmp: 0.0.33 + yaml: 1.10.2 + + path-exists@4.0.0: {} + + path-is-absolute@1.0.1: {} + + path-key@2.0.1: {} + + path-key@3.1.1: {} + + path-parse@1.0.7: {} + + picocolors@1.1.1: {} + + picomatch@2.3.1: {} + + picomatch@4.0.3: {} + + pify@2.3.0: {} + + pirates@4.0.7: {} + + playwright-core@1.29.0: {} + + popper.js@1.16.1: {} + + postcss-import@15.1.0(postcss@8.5.6): + dependencies: + postcss: 8.5.6 + postcss-value-parser: 4.2.0 + read-cache: 1.0.0 + resolve: 1.22.11 + + postcss-js@4.1.0(postcss@8.5.6): + dependencies: + camelcase-css: 2.0.1 + postcss: 8.5.6 + + postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@25.2.1)(typescript@5.9.3)): + dependencies: + lilconfig: 3.1.3 + yaml: 2.8.2 + optionalDependencies: + postcss: 8.5.6 + ts-node: 10.9.2(@types/node@25.2.1)(typescript@5.9.3) + + postcss-nested@6.2.0(postcss@8.5.6): + dependencies: + postcss: 8.5.6 + postcss-selector-parser: 6.1.2 + + postcss-selector-parser@6.1.2: + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + + postcss-value-parser@4.2.0: {} + + postcss@8.5.6: + dependencies: + nanoid: 3.3.11 + picocolors: 1.1.1 + source-map-js: 1.2.1 + + pretty-format@27.5.1: + dependencies: + ansi-regex: 5.0.1 + ansi-styles: 5.2.0 + react-is: 17.0.2 + + prismjs@1.27.0: {} + + prismjs@1.30.0: {} + + process-nextick-args@2.0.1: {} + + prop-types@15.8.1: + dependencies: + loose-envify: 1.4.0 + object-assign: 4.1.1 + react-is: 16.13.1 + + property-information@5.6.0: + dependencies: + xtend: 4.0.2 + + prosemirror-changeset@2.3.1: + dependencies: + prosemirror-transform: 1.11.0 + + prosemirror-collab@1.3.1: + dependencies: + prosemirror-state: 1.4.4 + + prosemirror-commands@1.7.1: + dependencies: + prosemirror-model: 1.25.4 + prosemirror-state: 1.4.4 + prosemirror-transform: 1.11.0 + + prosemirror-dropcursor@1.8.2: + dependencies: + prosemirror-state: 1.4.4 + prosemirror-transform: 1.11.0 + prosemirror-view: 1.41.6 + + prosemirror-gapcursor@1.4.0: + dependencies: + prosemirror-keymap: 1.2.3 + prosemirror-model: 1.25.4 + prosemirror-state: 1.4.4 + prosemirror-view: 1.41.6 + + prosemirror-history@1.5.0: + dependencies: + prosemirror-state: 1.4.4 + prosemirror-transform: 1.11.0 + prosemirror-view: 1.41.6 + rope-sequence: 1.3.4 + + prosemirror-inputrules@1.5.1: + dependencies: + prosemirror-state: 1.4.4 + prosemirror-transform: 1.11.0 + + prosemirror-keymap@1.2.3: + dependencies: + prosemirror-state: 1.4.4 + w3c-keyname: 2.2.8 + + prosemirror-markdown@1.13.4: + dependencies: + '@types/markdown-it': 14.1.2 + markdown-it: 14.1.0 + prosemirror-model: 1.25.4 + + prosemirror-menu@1.2.5: + dependencies: + crelt: 1.0.6 + prosemirror-commands: 1.7.1 + prosemirror-history: 1.5.0 + prosemirror-state: 1.4.4 + + prosemirror-model@1.25.4: + dependencies: + orderedmap: 2.1.1 + + prosemirror-schema-basic@1.2.4: + dependencies: + prosemirror-model: 1.25.4 + + prosemirror-schema-list@1.5.1: + dependencies: + prosemirror-model: 1.25.4 + prosemirror-state: 1.4.4 + prosemirror-transform: 1.11.0 + + prosemirror-state@1.4.4: + dependencies: + prosemirror-model: 1.25.4 + prosemirror-transform: 1.11.0 + prosemirror-view: 1.41.6 + + prosemirror-tables@1.8.5: + dependencies: + prosemirror-keymap: 1.2.3 + prosemirror-model: 1.25.4 + prosemirror-state: 1.4.4 + prosemirror-transform: 1.11.0 + prosemirror-view: 1.41.6 + + prosemirror-trailing-node@3.0.0(prosemirror-model@1.25.4)(prosemirror-state@1.4.4)(prosemirror-view@1.41.6): + dependencies: + '@remirror/core-constants': 3.0.0 + escape-string-regexp: 4.0.0 + prosemirror-model: 1.25.4 + prosemirror-state: 1.4.4 + prosemirror-view: 1.41.6 + + prosemirror-transform@1.11.0: + dependencies: + prosemirror-model: 1.25.4 + + prosemirror-view@1.41.6: + dependencies: + prosemirror-model: 1.25.4 + prosemirror-state: 1.4.4 + prosemirror-transform: 1.11.0 + + proxy-from-env@1.1.0: {} + + psl@1.15.0: + dependencies: + punycode: 2.3.1 + + pump@3.0.3: + dependencies: + end-of-stream: 1.4.5 + once: 1.4.0 + + punycode.js@2.3.1: {} + + punycode@2.3.1: {} + + querystringify@2.2.0: {} + + queue-microtask@1.2.3: {} + + radix-ui@1.4.3(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2): + dependencies: + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-accessible-icon': 1.1.7(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-accordion': 1.2.12(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-alert-dialog': 1.1.15(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-arrow': 1.1.7(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-aspect-ratio': 1.1.7(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-avatar': 1.1.10(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-checkbox': 1.3.3(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-collapsible': 1.1.12(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-collection': 1.1.7(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-context': 1.1.2(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-context-menu': 2.2.16(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-dialog': 1.1.15(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-direction': 1.1.1(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-dropdown-menu': 2.1.16(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-focus-guards': 1.1.3(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-form': 0.1.8(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-hover-card': 1.1.15(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-label': 2.1.7(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-menu': 2.1.16(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-menubar': 1.1.16(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-navigation-menu': 1.2.14(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-one-time-password-field': 0.1.8(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-password-toggle-field': 0.1.3(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-popover': 1.1.15(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-popper': 1.2.8(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-progress': 1.1.7(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-radio-group': 1.3.8(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-scroll-area': 1.2.10(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-select': 2.2.6(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-separator': 1.1.7(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-slider': 1.3.6(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-slot': 1.2.3(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-switch': 1.2.6(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-tabs': 1.1.13(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-toast': 1.2.15(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-toggle': 1.1.10(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-toggle-group': 1.1.11(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-toolbar': 1.1.11(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-tooltip': 1.2.8(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-use-effect-event': 0.0.2(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-use-escape-keydown': 1.1.1(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-use-is-hydrated': 0.1.0(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-use-size': 1.1.1(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + react: 17.0.2 + react-dom: 17.0.2(react@17.0.2) + optionalDependencies: + '@types/react': 17.0.39 + '@types/react-dom': 17.0.13 + + react-day-picker@7.4.9(react@17.0.2): + dependencies: + prop-types: 15.8.1 + react: 17.0.2 + + react-dom@17.0.2(react@17.0.2): + dependencies: + loose-envify: 1.4.0 + object-assign: 4.1.1 + react: 17.0.2 + scheduler: 0.20.2 + + react-is@16.13.1: {} + + react-is@17.0.2: {} + + react-lifecycles-compat@3.0.4: {} + + react-popper@1.3.11(react@17.0.2): + dependencies: + '@babel/runtime': 7.28.6 + '@hypnosphi/create-react-context': 0.3.1(prop-types@15.8.1)(react@17.0.2) + deep-equal: 1.1.2 + popper.js: 1.16.1 + prop-types: 15.8.1 + react: 17.0.2 + typed-styles: 0.0.7 + warning: 4.0.3 + + react-remove-scroll-bar@2.3.8(@types/react@17.0.39)(react@17.0.2): + dependencies: + react: 17.0.2 + react-style-singleton: 2.2.3(@types/react@17.0.39)(react@17.0.2) + tslib: 2.8.1 + optionalDependencies: + '@types/react': 17.0.39 + + react-remove-scroll@2.7.2(@types/react@17.0.39)(react@17.0.2): + dependencies: + react: 17.0.2 + react-remove-scroll-bar: 2.3.8(@types/react@17.0.39)(react@17.0.2) + react-style-singleton: 2.2.3(@types/react@17.0.39)(react@17.0.2) + tslib: 2.8.1 + use-callback-ref: 1.3.3(@types/react@17.0.39)(react@17.0.2) + use-sidecar: 1.1.3(@types/react@17.0.39)(react@17.0.2) + optionalDependencies: + '@types/react': 17.0.39 + + react-style-singleton@2.2.3(@types/react@17.0.39)(react@17.0.2): + dependencies: + get-nonce: 1.0.1 + react: 17.0.2 + tslib: 2.8.1 + optionalDependencies: + '@types/react': 17.0.39 + + react-transition-group@2.9.0(react-dom@17.0.2(react@17.0.2))(react@17.0.2): + dependencies: + dom-helpers: 3.4.0 + loose-envify: 1.4.0 + prop-types: 15.8.1 + react: 17.0.2 + react-dom: 17.0.2(react@17.0.2) + react-lifecycles-compat: 3.0.4 + + react@17.0.2: + dependencies: + loose-envify: 1.4.0 + object-assign: 4.1.1 + + read-cache@1.0.0: + dependencies: + pify: 2.3.0 + + readable-stream@2.3.8: + dependencies: + core-util-is: 1.0.3 + inherits: 2.0.4 + isarray: 1.0.0 + process-nextick-args: 2.0.1 + safe-buffer: 5.1.2 + string_decoder: 1.1.1 + util-deprecate: 1.0.2 + + readable-stream@3.6.2: + dependencies: + inherits: 2.0.4 + string_decoder: 1.3.0 + util-deprecate: 1.0.2 + + readdir-glob@1.1.3: + dependencies: + minimatch: 5.1.6 + + readdirp@3.6.0: + dependencies: + picomatch: 2.3.1 + + refractor@3.6.0: + dependencies: + hastscript: 6.0.0 + parse-entities: 2.0.0 + prismjs: 1.27.0 + + regexp.prototype.flags@1.5.4: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-errors: 1.3.0 + get-proto: 1.0.1 + gopd: 1.2.0 + set-function-name: 2.0.2 + + require-directory@2.1.1: {} + + requires-port@1.0.0: {} + + resize-observer-polyfill@1.5.1: {} + + resolve-pkg-maps@1.0.0: {} + + resolve@1.22.11: + dependencies: + is-core-module: 2.16.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + + reusify@1.1.0: {} + + rimraf@2.7.1: + dependencies: + glob: 7.2.3 + + rimraf@3.0.2: + dependencies: + glob: 7.2.3 + + roamjs-components@0.86.4(tfys6nz3gwc4z5ufdlt2gh6ina): + dependencies: + '@blueprintjs/core': 3.50.4(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@blueprintjs/datetime': 3.23.14(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@blueprintjs/select': 3.18.6(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@samepage/scripts': 0.74.5(@aws-sdk/client-lambda@3.985.0)(@aws-sdk/client-s3@3.985.0)(@samepage/testing@0.74.5(@playwright/test@1.29.0)(@testing-library/react@16.3.2(@testing-library/dom@10.4.1)(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2))(@testing-library/user-event@14.6.1(@testing-library/dom@10.4.1))(@types/jsdom@20.0.1)(c8@7.14.0)(debug@4.4.3)(dotenv@16.6.1)(jsdom@20.0.3)(ts-node@10.9.2(@types/node@25.2.1)(typescript@5.9.3)))(archiver@5.3.2)(axios@0.30.2(debug@4.4.3))(debug@4.4.3)(dotenv@16.6.1)(esbuild@0.27.3)(patch-package@6.5.1)(tailwindcss@3.3.2(ts-node@10.9.2(@types/node@25.2.1)(typescript@5.9.3)))(ts-node@10.9.2(@types/node@25.2.1)(typescript@5.9.3))(zod@3.25.76) + '@types/crypto-js': 4.1.1 + '@types/cytoscape': 3.31.0 + '@types/file-saver': 2.0.5 + '@types/jsdom': 20.0.1 + '@types/marked': 4.3.2 + '@types/nanoid': 2.0.0 + '@types/react': 17.0.39 + '@types/react-dom': 17.0.13 + '@types/use-sync-external-store': 0.0.6 + chrono-node: 2.3.0 + color: 4.2.3 + crypto-js: 3.1.9-1 + cytoscape: 3.33.1 + date-fns: 2.30.0 + edn-data: 1.1.2 + file-saver: 2.0.2 + fuzzy: 0.1.3 + hast-util-to-html: 7.1.3 + idb: 7.1.1 + insect: 5.9.1 + jsdom: 20.0.3 + jszip: 3.10.0 + marked: 4.0.16 + marked-react: 1.1.2(react@17.0.2) + nanoid: 3.3.11 + react: 17.0.2 + react-dom: 17.0.2(react@17.0.2) + refractor: 3.6.0 + tslib: 2.8.1 + use-sync-external-store: 1.6.0(react@17.0.2) + xregexp: 5.1.2 + transitivePeerDependencies: + - '@aws-sdk/client-lambda' + - '@aws-sdk/client-s3' + - '@samepage/testing' + - archiver + - axios + - debug + - dotenv + - esbuild + - patch-package + - tailwindcss + - ts-node + - zod + + rope-sequence@1.3.4: {} + + run-parallel@1.2.0: + dependencies: + queue-microtask: 1.2.3 + + safe-buffer@5.1.2: {} + + safe-buffer@5.2.1: {} + + safer-buffer@2.1.2: {} + + saxes@6.0.0: + dependencies: + xmlchars: 2.2.0 + + scheduler@0.20.2: + dependencies: + loose-envify: 1.4.0 + object-assign: 4.1.1 + + semver@5.7.2: {} + + semver@7.7.4: {} + + set-function-length@1.2.2: + dependencies: + define-data-property: 1.1.4 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.3.0 + gopd: 1.2.0 + has-property-descriptors: 1.0.2 + + set-function-name@2.0.2: + dependencies: + define-data-property: 1.1.4 + es-errors: 1.3.0 + functions-have-names: 1.2.3 + has-property-descriptors: 1.0.2 + + setimmediate@1.0.5: {} + + shebang-command@1.2.0: + dependencies: + shebang-regex: 1.0.0 + + shebang-command@2.0.0: + dependencies: + shebang-regex: 3.0.0 + + shebang-regex@1.0.0: {} + + shebang-regex@3.0.0: {} + + signal-exit@3.0.7: {} + + simple-swizzle@0.2.4: + dependencies: + is-arrayish: 0.3.4 + + slash@2.0.0: {} + + source-map-js@1.2.1: {} + + source-map@0.6.1: + optional: true + + space-separated-tokens@1.1.5: {} + + string-width@4.2.3: + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + + string_decoder@1.1.1: + dependencies: + safe-buffer: 5.1.2 + + string_decoder@1.3.0: + dependencies: + safe-buffer: 5.2.1 + + stringify-entities@3.1.0: + dependencies: + character-entities-html4: 1.1.4 + character-entities-legacy: 1.1.4 + xtend: 4.0.2 + + strip-ansi@6.0.1: + dependencies: + ansi-regex: 5.0.1 + + strip-eof@1.0.0: {} + + strnum@2.1.2: {} + + sucrase@3.35.1: + dependencies: + '@jridgewell/gen-mapping': 0.3.13 + commander: 4.1.1 + lines-and-columns: 1.2.4 + mz: 2.7.0 + pirates: 4.0.7 + tinyglobby: 0.2.15 + ts-interface-checker: 0.1.13 + + supports-color@7.2.0: + dependencies: + has-flag: 4.0.0 + + supports-preserve-symlinks-flag@1.0.0: {} + + symbol-tree@3.2.4: {} + + tailwindcss@3.3.2(ts-node@10.9.2(@types/node@25.2.1)(typescript@5.9.3)): + dependencies: + '@alloc/quick-lru': 5.2.0 + arg: 5.0.2 + chokidar: 3.6.0 + didyoumean: 1.2.2 + dlv: 1.1.3 + fast-glob: 3.3.3 + glob-parent: 6.0.2 + is-glob: 4.0.3 + jiti: 1.21.7 + lilconfig: 2.1.0 + micromatch: 4.0.8 + normalize-path: 3.0.0 + object-hash: 3.0.0 + picocolors: 1.1.1 + postcss: 8.5.6 + postcss-import: 15.1.0(postcss@8.5.6) + postcss-js: 4.1.0(postcss@8.5.6) + postcss-load-config: 4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@25.2.1)(typescript@5.9.3)) + postcss-nested: 6.2.0(postcss@8.5.6) + postcss-selector-parser: 6.1.2 + postcss-value-parser: 4.2.0 + resolve: 1.22.11 + sucrase: 3.35.1 + transitivePeerDependencies: + - ts-node + + tar-stream@2.2.0: + dependencies: + bl: 4.1.0 + end-of-stream: 1.4.5 + fs-constants: 1.0.0 + inherits: 2.0.4 + readable-stream: 3.6.2 + + test-exclude@6.0.0: + dependencies: + '@istanbuljs/schema': 0.1.3 + glob: 7.2.3 + minimatch: 3.1.2 + + thenify-all@1.6.0: + dependencies: + thenify: 3.3.1 + + thenify@3.3.1: + dependencies: + any-promise: 1.3.0 + + tinyglobby@0.2.15: + dependencies: + fdir: 6.5.0(picomatch@4.0.3) + picomatch: 4.0.3 + + tippy.js@6.3.7: + dependencies: + '@popperjs/core': 2.11.8 + + tldraw@3.15.5(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2): + dependencies: + '@tiptap/core': 2.27.2(@tiptap/pm@2.27.2) + '@tiptap/extension-code': 2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2)) + '@tiptap/extension-highlight': 2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2)) + '@tiptap/extension-link': 2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))(@tiptap/pm@2.27.2) + '@tiptap/pm': 2.27.2 + '@tiptap/react': 2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))(@tiptap/pm@2.27.2)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@tiptap/starter-kit': 2.27.2 + '@tldraw/editor': 3.15.5(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@tldraw/store': 3.15.5(react@17.0.2) + classnames: 2.5.1 + hotkeys-js: 3.13.15 + idb: 7.1.1 + lz-string: 1.5.0 + radix-ui: 1.4.3(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + react: 17.0.2 + react-dom: 17.0.2(react@17.0.2) + transitivePeerDependencies: + - '@types/react' + - '@types/react-dom' + + tmp@0.0.33: + dependencies: + os-tmpdir: 1.0.2 + + to-regex-range@5.0.1: + dependencies: + is-number: 7.0.0 + + tough-cookie@4.1.4: + dependencies: + psl: 1.15.0 + punycode: 2.3.1 + universalify: 0.2.0 + url-parse: 1.5.10 + + tr46@3.0.0: + dependencies: + punycode: 2.3.1 + + ts-interface-checker@0.1.13: {} + + ts-node@10.9.2(@types/node@25.2.1)(typescript@5.9.3): + dependencies: + '@cspotcode/source-map-support': 0.8.1 + '@tsconfig/node10': 1.0.12 + '@tsconfig/node12': 1.0.11 + '@tsconfig/node14': 1.0.3 + '@tsconfig/node16': 1.0.4 + '@types/node': 25.2.1 + acorn: 8.15.0 + acorn-walk: 8.3.4 + arg: 4.1.3 + create-require: 1.1.1 + diff: 4.0.4 + make-error: 1.3.6 + typescript: 5.9.3 + v8-compile-cache-lib: 3.0.1 + yn: 3.1.1 + + tslib@1.13.0: {} + + tslib@2.3.1: {} + + tslib@2.5.3: {} + + tslib@2.8.1: {} + + tsx@4.21.0: + dependencies: + esbuild: 0.27.3 + get-tsconfig: 4.13.6 + optionalDependencies: + fsevents: 2.3.3 + + typed-styles@0.0.7: {} + + typescript@5.9.3: {} + + uc.micro@2.1.0: {} + + undici-types@7.16.0: {} + + unist-util-is@4.1.0: {} + + universalify@0.2.0: {} + + universalify@2.0.1: {} + + url-parse@1.5.10: + dependencies: + querystringify: 2.2.0 + requires-port: 1.0.0 + + use-callback-ref@1.3.3(@types/react@17.0.39)(react@17.0.2): + dependencies: + react: 17.0.2 + tslib: 2.8.1 + optionalDependencies: + '@types/react': 17.0.39 + + use-sidecar@1.1.3(@types/react@17.0.39)(react@17.0.2): + dependencies: + detect-node-es: 1.1.0 + react: 17.0.2 + tslib: 2.8.1 + optionalDependencies: + '@types/react': 17.0.39 + + use-sync-external-store@1.6.0(react@17.0.2): + dependencies: + react: 17.0.2 + + util-deprecate@1.0.2: {} + + v8-compile-cache-lib@3.0.1: {} + + v8-to-istanbul@9.3.0: + dependencies: + '@jridgewell/trace-mapping': 0.3.31 + '@types/istanbul-lib-coverage': 2.0.6 + convert-source-map: 2.0.0 + + w3c-keyname@2.2.8: {} + + w3c-xmlserializer@4.0.0: + dependencies: + xml-name-validator: 4.0.0 + + warning@4.0.3: + dependencies: + loose-envify: 1.4.0 + + wcwidth@1.0.1: + dependencies: + defaults: 1.0.4 + + web-streams-polyfill@3.3.3: {} + + webidl-conversions@7.0.0: {} + + whatwg-encoding@2.0.0: + dependencies: + iconv-lite: 0.6.3 + + whatwg-mimetype@3.0.0: {} + + whatwg-url@11.0.0: + dependencies: + tr46: 3.0.0 + webidl-conversions: 7.0.0 + + which@1.3.1: + dependencies: + isexe: 2.0.0 + + which@2.0.2: + dependencies: + isexe: 2.0.0 + + wrap-ansi@7.0.0: + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + + wrappy@1.0.2: {} + + ws@8.19.0: {} + + xdg-basedir@4.0.0: {} + + xml-name-validator@4.0.0: {} + + xmlchars@2.2.0: {} + + xregexp@5.1.2: + dependencies: + '@babel/runtime-corejs3': 7.29.0 + + xtend@4.0.2: {} + + y18n@5.0.8: {} + + yaml@1.10.2: {} + + yaml@2.8.2: {} + + yargs-parser@20.2.9: {} + + yargs@16.2.0: + dependencies: + cliui: 7.0.4 + escalade: 3.2.0 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 20.2.9 + + yn@3.1.1: {} + + yocto-queue@0.1.0: {} + + zip-stream@4.1.1: + dependencies: + archiver-utils: 3.0.4 + compress-commons: 4.1.2 + readable-stream: 3.6.2 + + zod@3.25.76: {} diff --git a/scripts/build.ts b/scripts/build.ts new file mode 100644 index 0000000..975de29 --- /dev/null +++ b/scripts/build.ts @@ -0,0 +1,27 @@ +import { compile } from "./compile"; + +const build = async () => { + process.env = { + ...process.env, + NODE_ENV: process.env.NODE_ENV || "production", + }; + + console.log("Compiling ..."); + try { + await compile({}); + console.log("Compiling complete"); + } catch (error) { + console.error("Build failed on compile:", error); + process.exit(1); + } +}; + +const main = async () => { + try { + await build(); + } catch (error) { + console.error(error); + process.exit(1); + } +}; +if (require.main === module) main(); diff --git a/scripts/compile.ts b/scripts/compile.ts new file mode 100644 index 0000000..bda5ae0 --- /dev/null +++ b/scripts/compile.ts @@ -0,0 +1,213 @@ +import esbuild from "esbuild"; +import fs from "fs"; +import path from "path"; +import { z } from "zod"; + +const getVersion = (): string => { + try { + const packageJson = JSON.parse( + fs.readFileSync(path.join(process.cwd(), "package.json"), "utf8"), + ) as { version?: string }; + return packageJson.version || "-"; + } catch (error) { + console.warn("Failed to read version from package.json:", error); + return "-"; + } +}; + +const getBuildDate = (): string => { + return new Date().toISOString().split("T")[0]; // YYYY-MM-DD format +}; +let envContents = null; + +// https://github.com/evanw/esbuild/issues/337#issuecomment-954633403 +const importAsGlobals = ( + mapping: Record = {}, +): esbuild.Plugin => { + const escRe = (s: string) => s.replace(/[-\/\\^$*+?.()|[\]{}]/g, "\\$&"); + const filter = new RegExp( + Object.keys(mapping).length + ? Object.keys(mapping) + .map((mod) => `^${escRe(mod)}$`) + .join("|") + : /$^/, + ); + + return { + name: "global-imports", + setup(build) { + build.onResolve({ filter }, (args) => { + if (!mapping[args.path]) { + throw new Error("Unknown global: " + args.path); + } + return { + path: args.path, + namespace: "external-global", + }; + }); + + build.onLoad( + { + filter, + namespace: "external-global", + }, + async (args) => { + const global = mapping[args.path]; + if (fs.existsSync(global)) { + return { + contents: fs.readFileSync(global).toString(), + loader: "js", + resolveDir: path.dirname(global), + }; + } + return { + contents: `module.exports = ${global};`, + loader: "js", + resolveDir: process.cwd(), + }; + }, + ); + }, + }; +}; + +const DEFAULT_FILES_INCLUDED = ["package.json", "README.md"]; + +const addPlaceholderChangelogPlugin = (outdir: string): esbuild.Plugin => ({ + name: "add-changelog", + setup(build) { + build.onEnd(async () => { + fs.writeFileSync(path.join(outdir, "CHANGELOG.md"), "placeholder"); + }); + }, +}); + +const cliArgs = z.object({ + out: z.string().optional(), + root: z.string().optional(), + format: z.enum(["esm"]).optional(), + external: z.array(z.string()), +}); + +type Builder = (opts: esbuild.BuildOptions) => Promise; +export type CliOpts = Record; + +export const args = { + out: "extension", + format: "esm", + root: ".", + mirror: ".", + external: [ + "react-dom/client=window.ReactDOM", + "@blueprintjs/core=window.Blueprint.Core", + "@blueprintjs/datetime=window.Blueprint.DateTime", + "@blueprintjs/select=window.Blueprint.Select", + "chrono-node=window.ChronoNode", + "crypto-js=window.CryptoJS", + "cytoscape=window.RoamLazy.Cytoscape", + "file-saver=window.FileSaver", + "jszip=window.RoamLazy.JSZip", + "idb=window.idb", + "insect=window.RoamLazy.Insect", + "marked=window.RoamLazy.Marked", + "marked-react=window.RoamLazy.MarkedReact", + "nanoid=window.Nanoid;module.exports.nanoid=window.Nanoid", + 'react=window.React;module.exports.useSyncExternalStore=require("use-sync-external-store/shim").useSyncExternalStore', + "react/jsx-runtime=./node_modules/react/jsx-runtime.js", + "react-dom=window.ReactDOM", + "react-youtube=window.ReactYoutube", + "tslib=window.TSLib", + ], +} as CliOpts; + +export const compile = ({ + opts = args, + builder = async (opts) => { + await esbuild.build(opts); + }, +}: { + opts?: CliOpts; + builder?: Builder; +}) => { + const { root = ".", out, format, external } = cliArgs.parse(opts); + + const externalModules = external.map((e) => e.split("=")); + const srcRoot = path.join(root, "src"); + const entryTs = "index.ts"; + const outdir = path.resolve(process.cwd(), root, "dist"); + + fs.mkdirSync(outdir, { recursive: true }); + + const buildPromises = [] as Promise[]; + buildPromises.push( + builder({ + absWorkingDir: process.cwd(), + entryPoints: [path.join(srcRoot, entryTs)], + outdir, + bundle: true, + format, + define: { + "process.env.SUPABASE_URL": process.env.SUPABASE_URL + ? `"${process.env.SUPABASE_URL}"` + : "null", + "process.env.SUPABASE_ANON_KEY": process.env.SUPABASE_ANON_KEY + ? `"${process.env.SUPABASE_ANON_KEY}"` + : "null", + "process.env.NEXT_API_ROOT": `"${process.env.NEXT_API_ROOT || ""}"`, + "window.__DISCOURSE_GRAPH_VERSION__": `"${getVersion()}"`, + "window.__DISCOURSE_GRAPH_BUILD_DATE__": `"${getBuildDate()}"`, + }, + sourcemap: process.env.NODE_ENV === "production" ? "external" : "inline", + minify: process.env.NODE_ENV === "production", + entryNames: out, + external: externalModules.map(([e]) => e).concat(["crypto"]), + plugins: [ + importAsGlobals( + Object.fromEntries( + externalModules + .filter((e) => e.length > 1) + .map(([e, ...g]) => [e, g.join("=")]), + ), + ), + { + name: "log", + setup: (build) => { + build.onEnd((result) => { + console.log(`built with ${result.errors.length} errors`); + }); + }, + }, + addPlaceholderChangelogPlugin(outdir), + { + name: "onFinish", + setup(build) { + build.onEnd(async () => { + DEFAULT_FILES_INCLUDED.map((f) => path.join(root, f)) + .filter((f) => fs.existsSync(f)) + .forEach((f) => { + fs.cpSync(f, path.join(outdir, path.basename(f))); + }); + }); + }, + }, + ], + loader: { + ".woff": "file", + ".woff2": "file", + ".yaml": "text", + }, + }), + ); + + return Promise.all(buildPromises); +}; + +const main = async () => { + try { + await compile({}); + } catch (error) { + console.error(error); + process.exit(1); + } +}; +if (require.main === module) main(); diff --git a/scripts/dev.ts b/scripts/dev.ts new file mode 100644 index 0000000..3b5e789 --- /dev/null +++ b/scripts/dev.ts @@ -0,0 +1,27 @@ +import esbuild from "esbuild"; +import dotenv from "dotenv"; +import { compile, args } from "./compile"; + +dotenv.config(); + +const dev = () => { + process.env.NODE_ENV = process.env.NODE_ENV || "development"; + return new Promise((resolve) => { + compile({ + opts: args, + builder: (opts: esbuild.BuildOptions) => + esbuild.context(opts).then((esb) => esb.watch()), + }); + process.on("exit", resolve); + }); +}; + +const main = async () => { + try { + await dev(); + } catch (error) { + console.error(error); + process.exit(1); + } +}; +if (require.main === module) main(); diff --git a/src/components/canvas/DefaultNodeUtil.tsx b/src/components/canvas/DefaultNodeUtil.tsx new file mode 100644 index 0000000..6e95dac --- /dev/null +++ b/src/components/canvas/DefaultNodeUtil.tsx @@ -0,0 +1,177 @@ +import React from "react"; +import { + BaseBoxShapeUtil, + HTMLContainer, + StateNode, + T, + TLStateNodeConstructor, + toDomPrecision, +} from "tldraw"; +import getPageUidByPageTitle from "roamjs-components/queries/getPageUidByPageTitle"; + +export type DefaultNodeType = "page-node" | "blck-node"; + +export type RoamNodeShape = { + id: string; + type: DefaultNodeType; + props: { + w: number; + h: number; + uid: string; + title: string; + }; +}; + +const createShapeId = (): string => + `shape:${window.roamAlphaAPI.util.generateUID()}`; + +const TYPE_STYLES: Record = { + "page-node": { bg: "#111827", color: "#f9fafb" }, + "blck-node": { bg: "#334155", color: "#f8fafc" }, +}; + +const DEFAULT_TITLES: Record = { + "page-node": "Page", + "blck-node": "Block", +}; + +export const DEFAULT_NODE_TOOLS: { + id: DefaultNodeType; + label: string; + kbd: string; +}[] = [ + { id: "page-node", label: "Page", kbd: "p" }, + { id: "blck-node", label: "Block", kbd: "b" }, +]; + +class BaseRoamNodeShapeUtil extends BaseBoxShapeUtil { + static override props = { + w: T.number, + h: T.number, + uid: T.string, + title: T.string, + }; + + override canEdit = () => true; + override canResize = () => true; + + override getDefaultProps(): RoamNodeShape["props"] { + return { + w: 220, + h: 92, + uid: window.roamAlphaAPI.util.generateUID(), + title: "Node", + }; + } + + override indicator(shape: RoamNodeShape): JSX.Element { + const { bounds } = this.editor.getShapeGeometry(shape); + return ( + + ); + } + + override component(shape: RoamNodeShape): JSX.Element { + const style = TYPE_STYLES[shape.type as DefaultNodeType]; + return ( + +
+ {shape.props.title} +
+
+ ); + } +} + +export const createDefaultNodeShapeTools = (): TLStateNodeConstructor[] => + DEFAULT_NODE_TOOLS.map( + ({ id }) => + class DefaultNodeTool extends StateNode { + static override id = id; + static override initial = "idle"; + shapeType = id; + + override onEnter = (): void => { + this.editor.setCursor({ type: "cross", rotation: 0 }); + }; + + override onPointerDown = (): void => { + const { currentPagePoint } = this.editor.inputs; + this.editor.createShape({ + id: createShapeId(), + type: this.shapeType as any, + x: currentPagePoint.x, + y: currentPagePoint.y, + props: { + title: DEFAULT_TITLES[this.shapeType], + uid: window.roamAlphaAPI.util.generateUID(), + w: 220, + h: 92, + }, + }); + this.editor.setCurrentTool("select"); + }; + }, + ); + +export const createDefaultNodeShapeUtils = () => { + class PageNodeUtil extends BaseRoamNodeShapeUtil { + static override type = "page-node"; + override getDefaultProps(): RoamNodeShape["props"] { + return { + ...super.getDefaultProps(), + title: "Page", + }; + } + } + + class BlockNodeUtil extends BaseRoamNodeShapeUtil { + static override type = "blck-node"; + override getDefaultProps(): RoamNodeShape["props"] { + return { + ...super.getDefaultProps(), + title: "Block", + }; + } + } + + return [PageNodeUtil, BlockNodeUtil]; +}; + +export const getNodeTypeFromRoamRefText = ( + text: string, +): { type: DefaultNodeType; uid: string; title: string } | null => { + const pageMatch = text.match(/^\[\[(.+)\]\]$/); + if (pageMatch?.[1]) { + const title = pageMatch[1].trim(); + const uid = getPageUidByPageTitle(title); + if (!uid) return null; + return { type: "page-node", uid, title }; + } + + const blockMatch = text.match(/^\(\(([a-zA-Z0-9_-]{9})\)\)$/); + if (blockMatch?.[1]) { + const uid = blockMatch[1]; + const textOrPage = + window.roamAlphaAPI.pull("[:block/string :node/title]", [ + ":block/uid", + uid, + ]) || {}; + const title = + (textOrPage[":node/title"] as string | undefined) || + (textOrPage[":block/string"] as string | undefined) || + uid; + return { type: "blck-node", uid, title }; + } + + return null; +}; diff --git a/src/components/canvas/Tldraw.tsx b/src/components/canvas/Tldraw.tsx new file mode 100644 index 0000000..5cbba8c --- /dev/null +++ b/src/components/canvas/Tldraw.tsx @@ -0,0 +1,197 @@ +import React, { useMemo, useRef } from "react"; +import { OnloadArgs } from "roamjs-components/types"; +import renderWithUnmount from "roamjs-components/util/renderWithUnmount"; +import getPageUidByPageTitle from "roamjs-components/queries/getPageUidByPageTitle"; +import { + Box, + Editor, + Tldraw, + defaultShapeTools, + defaultShapeUtils, + defaultTools, +} from "tldraw"; +import "tldraw/tldraw.css"; +import { useRoamStore } from "./useRoamStore"; +import { + createDefaultNodeShapeTools, + createDefaultNodeShapeUtils, + getNodeTypeFromRoamRefText, +} from "./DefaultNodeUtil"; +import { CANVAS_MAXIMIZE_HOTKEY_KEY, createUiOverrides } from "./uiOverrides"; +import tldrawStyles from "./tldrawStyles"; + +const createShapeId = (): string => + `shape:${window.roamAlphaAPI.util.generateUID()}`; + +const TldrawCanvas = ({ + title, + extensionAPI, +}: { + title: string; + extensionAPI: OnloadArgs["extensionAPI"]; +}) => { + const pageUid = getPageUidByPageTitle(title) || window.roamAlphaAPI.util.generateUID(); + const appRef = useRef(null); + const containerRef = useRef(null); + + const shapeUtils = useMemo( + () => [...defaultShapeUtils, ...createDefaultNodeShapeUtils()], + [], + ); + const tools = useMemo( + () => [...defaultTools, ...defaultShapeTools, ...createDefaultNodeShapeTools()], + [], + ); + + const { store } = useRoamStore({ + customShapeUtils: shapeUtils, + pageUid, + }); + + const updateViewportBounds = () => { + if (!containerRef.current || !appRef.current) return; + const rect = containerRef.current.getBoundingClientRect(); + appRef.current.updateViewportScreenBounds( + new Box(rect.left, rect.top, rect.width, rect.height), + true, + ); + }; + + const toggleMaximized = () => { + if (!containerRef.current) return; + const tldrawEl = containerRef.current; + const wrapper = tldrawEl.closest(".roam-article, .rm-sidebar-outline"); + if (tldrawEl.classList.contains("relative")) { + wrapper?.classList.add("rjs-tldraw-maximized"); + tldrawEl.classList.remove("relative"); + tldrawEl.classList.add("absolute", "inset-0"); + } else { + wrapper?.classList.remove("rjs-tldraw-maximized"); + tldrawEl.classList.add("relative"); + tldrawEl.classList.remove("absolute", "inset-0"); + } + requestAnimationFrame(updateViewportBounds); + }; + + const maximizeKbd = + (extensionAPI.settings.get(CANVAS_MAXIMIZE_HOTKEY_KEY) as string) || "!3"; + const uiOverrides = useMemo( + () => createUiOverrides({ toggleMaximized, maximizeKbd }), + [maximizeKbd], + ); + + return ( +
+ + { + appRef.current = editor; + editor.registerExternalContentHandler("text", (content) => { + if (content.type !== "text") return; + const match = getNodeTypeFromRoamRefText(content.text.trim()); + if (!match) return; + const point = content.point ?? editor.getViewportPageBounds().center; + editor.createShape({ + id: createShapeId(), + type: match.type as any, + x: point.x, + y: point.y, + props: { + uid: match.uid, + title: match.title, + w: 220, + h: 92, + }, + }); + }); + }} + /> +
+ ); +}; + +const renderTldrawCanvasHelper = ({ + title, + onloadArgs, + h1, + rootSelector, + minHeight, + height, +}: { + title: string; + onloadArgs: OnloadArgs; + h1: HTMLHeadingElement; + rootSelector: string; + minHeight: string; + height: string; +}) => { + const rootElement = h1.closest(rootSelector) as HTMLDivElement | null; + if (!rootElement) return () => {}; + + const childFromRoot = + rootElement.querySelector(".rm-block-children"); + if (!childFromRoot?.parentElement) return () => {}; + + const parentEl = childFromRoot.parentElement; + if (parentEl.querySelector(".roamjs-tldraw-canvas-container")) return () => {}; + + const canvasWrapperEl = document.createElement("div"); + parentEl.appendChild(canvasWrapperEl); + canvasWrapperEl.style.minHeight = minHeight; + canvasWrapperEl.style.height = height; + + const unmount = renderWithUnmount( + , + canvasWrapperEl, + ); + + return () => { + unmount(); + canvasWrapperEl.remove(); + }; +}; + +export const renderTldrawCanvas = ({ + title, + onloadArgs, + h1, +}: { + title: string; + onloadArgs: OnloadArgs; + h1: HTMLHeadingElement; +}) => + renderTldrawCanvasHelper({ + title, + onloadArgs, + h1, + rootSelector: ".roam-article", + minHeight: "500px", + height: "70vh", + }); + +export const renderTldrawCanvasInSidebar = ({ + title, + onloadArgs, + h1, +}: { + title: string; + onloadArgs: OnloadArgs; + h1: HTMLHeadingElement; +}) => + renderTldrawCanvasHelper({ + title, + onloadArgs, + h1, + rootSelector: ".rm-sidebar-outline", + minHeight: "400px", + height: "60vh", + }); diff --git a/src/components/canvas/tldrawStyles.ts b/src/components/canvas/tldrawStyles.ts new file mode 100644 index 0000000..664f64a --- /dev/null +++ b/src/components/canvas/tldrawStyles.ts @@ -0,0 +1,18 @@ +export default /* css */ ` +.roam-article:has(.roamjs-tldraw-canvas-container) .rm-block-children { + display: none; +} + +.rm-sidebar-outline:has(.roamjs-tldraw-canvas-container) .rm-block-children { + display: none; +} + +.roamjs-tldraw-canvas-container svg { + overflow: visible; +} + +.roam-body .roam-app .roam-main .roam-article.rjs-tldraw-maximized, +.roam-body .roam-app .roam-main .rm-sidebar-outline.rjs-tldraw-maximized { + position: static; +} +`; diff --git a/src/components/canvas/uiOverrides.tsx b/src/components/canvas/uiOverrides.tsx new file mode 100644 index 0000000..3fc8b88 --- /dev/null +++ b/src/components/canvas/uiOverrides.tsx @@ -0,0 +1,43 @@ +import { TLUiOverrides, TLUiTranslationKey } from "tldraw"; +import { DEFAULT_NODE_TOOLS } from "./DefaultNodeUtil"; + +export const CANVAS_MAXIMIZE_HOTKEY_KEY = "canvas-maximize-hotkey"; + +export const createUiOverrides = ({ + toggleMaximized, + maximizeKbd, +}: { + toggleMaximized: () => void; + maximizeKbd: string; +}): TLUiOverrides => ({ + tools: (editor, tools) => { + DEFAULT_NODE_TOOLS.forEach((tool) => { + tools[tool.id] = { + id: tool.id, + icon: "tool-text", + label: `tool.${tool.id}` as TLUiTranslationKey, + kbd: tool.kbd, + onSelect: () => editor.setCurrentTool(tool.id), + readonlyOk: true, + }; + }); + return tools; + }, + actions: (_editor, actions) => { + actions["toggle-full-screen"] = { + id: "toggle-full-screen", + label: "action.toggle-full-screen" as TLUiTranslationKey, + kbd: maximizeKbd, + onSelect: () => toggleMaximized(), + readonlyOk: true, + }; + return actions; + }, + translations: { + en: { + "tool.page-node": "Page", + "tool.blck-node": "Block", + "action.toggle-full-screen": "Toggle Full Screen", + }, + }, +}); diff --git a/src/components/canvas/useRoamStore.ts b/src/components/canvas/useRoamStore.ts new file mode 100644 index 0000000..fe963bc --- /dev/null +++ b/src/components/canvas/useRoamStore.ts @@ -0,0 +1,120 @@ +import { TLAnyShapeUtilConstructor, createTLStore, loadSnapshot } from "tldraw"; +import { useEffect, useMemo, useRef } from "react"; + +const THROTTLE_MS = 350; +export const ROAM_TLDRAW_KEY = "roamjs-tldraw"; + +type RoamTldrawState = { + stateId: string; + tldraw: any; +}; + +const getPageProps = (pageUid: string): Record => + (window.roamAlphaAPI.pull("[:block/props]", [":block/uid", pageUid])?.[ + ":block/props" + ] as Record | undefined) || {}; + +const getPersistedSnapshot = (pageUid: string): RoamTldrawState | null => { + const props = getPageProps(pageUid); + const persisted = props[ROAM_TLDRAW_KEY] as RoamTldrawState | undefined; + if (!persisted?.tldraw) return null; + return persisted; +}; + +const setPersistedSnapshot = ({ + pageUid, + state, +}: { + pageUid: string; + state: RoamTldrawState; +}): void => { + const props = getPageProps(pageUid); + void window.roamAlphaAPI.data.page.update({ + page: { + uid: pageUid, + props: { + ...props, + [ROAM_TLDRAW_KEY]: state, + }, + }, + }); +}; + +export const useRoamStore = ({ + customShapeUtils, + pageUid, +}: { + customShapeUtils: readonly TLAnyShapeUtilConstructor[]; + pageUid: string; +}) => { + const localStateIds = useRef>(new Set()); + const serializeTimeout = useRef(0); + const deserializeTimeout = useRef(0); + + const store = useMemo(() => { + const tlStore = createTLStore({ + shapeUtils: customShapeUtils, + }); + + const persisted = getPersistedSnapshot(pageUid); + if (persisted?.tldraw) { + loadSnapshot(tlStore, persisted.tldraw); + } + return tlStore; + }, [customShapeUtils, pageUid]); + + useEffect(() => { + const dispose = store.listen((entry: { source: string }) => { + if (entry.source !== "user") return; + window.clearTimeout(serializeTimeout.current); + serializeTimeout.current = window.setTimeout(() => { + const stateId = window.roamAlphaAPI.util.generateUID(); + localStateIds.current.add(stateId); + if (localStateIds.current.size > 25) { + const first = localStateIds.current.values().next().value as + | string + | undefined; + if (first) localStateIds.current.delete(first); + } + setPersistedSnapshot({ + pageUid, + state: { stateId, tldraw: store.getStoreSnapshot() }, + }); + }, THROTTLE_MS); + }); + return () => { + dispose(); + window.clearTimeout(serializeTimeout.current); + }; + }, [pageUid, store]); + + useEffect(() => { + const pullWatchProps = [ + "[:edit/user :block/props]", + `[:block/uid "${pageUid}"]`, + (_before: unknown, after: Record | null) => { + const props = + (after?.[":block/props"] as Record | undefined) || + {}; + const state = props[ROAM_TLDRAW_KEY] as RoamTldrawState | undefined; + if (!state?.tldraw) return; + if (localStateIds.current.has(state.stateId)) return; + + window.clearTimeout(deserializeTimeout.current); + deserializeTimeout.current = window.setTimeout(() => { + store.mergeRemoteChanges(() => { + loadSnapshot(store, state.tldraw); + }); + }, THROTTLE_MS); + }, + ] as const; + + window.roamAlphaAPI.data.addPullWatch(...pullWatchProps); + return () => { + window.clearTimeout(deserializeTimeout.current); + window.roamAlphaAPI.data.removePullWatch(...pullWatchProps); + }; + }, [pageUid, store]); + + return { store }; +}; diff --git a/src/index.ts b/src/index.ts index 6ffa421..7549d29 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,8 +1,24 @@ +import { + createHTMLObserver, + getPageTitleValueByHtmlElement, +} from "roamjs-components/dom"; import runExtension from "roamjs-components/util/runExtension"; +import { + DEFAULT_CANVAS_PAGE_PATTERNS, + CANVAS_PAGE_PATTERNS_KEY, + isCurrentPageCanvas, + isSidebarCanvas, +} from "~/utils/isCanvasPage"; +import { + renderTldrawCanvas, + renderTldrawCanvasInSidebar, +} from "~/components/canvas/Tldraw"; +import { CANVAS_MAXIMIZE_HOTKEY_KEY } from "~/components/canvas/uiOverrides"; -export default runExtension(async ({ extensionAPI }) => { +export default runExtension(async (onloadArgs) => { + const { extensionAPI } = onloadArgs; extensionAPI.settings.panel.create({ - tabTitle: "Extension", + tabTitle: "TLDraw", settings: [ { id: "enabled", @@ -10,18 +26,48 @@ export default runExtension(async ({ extensionAPI }) => { description: "Turn the extension on or off", action: { type: "switch" }, }, + { + id: CANVAS_PAGE_PATTERNS_KEY, + name: "Canvas Page Patterns", + description: + "Comma/newline-separated wildcard patterns. Example: Canvas/*, Whiteboard/*", + action: { type: "input", placeholder: DEFAULT_CANVAS_PAGE_PATTERNS }, + }, + { + id: CANVAS_MAXIMIZE_HOTKEY_KEY, + name: "Maximize Hotkey", + description: "TLDraw keybinding syntax. Example: !3 for Alt+3", + action: { type: "input", placeholder: "!3" }, + }, ], }); const enabled = extensionAPI.settings.get("enabled") as boolean | undefined; if (enabled === false) return; - // Add your extension logic here. - // Use roamjs-components: dom/*, queries/*, writes/*, util/*, components/* + const pageTitleObserver = createHTMLObserver({ + tag: "H1", + className: "rm-title-display", + callback: (element) => { + const h1 = element as HTMLHeadingElement; + const title = getPageTitleValueByHtmlElement(h1); + if (!title) return; + if (isCurrentPageCanvas({ title, h1, extensionAPI })) { + renderTldrawCanvas({ title, onloadArgs, h1 }); + } else if (isSidebarCanvas({ title, h1, extensionAPI })) { + renderTldrawCanvasInSidebar({ title, onloadArgs, h1 }); + } + }, + }); return { + observers: [pageTitleObserver].filter( + (o): o is MutationObserver => !!o, + ), unload: () => { - // Clean up observers, listeners, command palette, etc. + // TODO: Add migration/import from `roamjs-query-builder.tldraw` to `roamjs-tldraw`. + // @ts-expect-error tldraw warns on multiple loads without resetting signia symbol. + delete window[Symbol.for("__signia__")]; }, }; }); diff --git a/src/tldraw-shapes.d.ts b/src/tldraw-shapes.d.ts new file mode 100644 index 0000000..386c86a --- /dev/null +++ b/src/tldraw-shapes.d.ts @@ -0,0 +1,16 @@ +declare module "@tldraw/tlschema" { + interface TLGlobalShapePropsMap { + "page-node": { + w: number; + h: number; + uid: string; + title: string; + }; + "blck-node": { + w: number; + h: number; + uid: string; + title: string; + }; + } +} diff --git a/src/utils/isCanvasPage.ts b/src/utils/isCanvasPage.ts new file mode 100644 index 0000000..293d762 --- /dev/null +++ b/src/utils/isCanvasPage.ts @@ -0,0 +1,64 @@ +import type { OnloadArgs } from "roamjs-components/types"; + +export const DEFAULT_CANVAS_PAGE_PATTERNS = "Canvas/*"; +export const CANVAS_PAGE_PATTERNS_KEY = "canvas-page-patterns"; + +const escapeRegex = (value: string): string => + value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"); + +const parsePatterns = (raw: string): string[] => + raw + .split(/[\n,]/) + .map((p) => p.trim()) + .filter(Boolean); + +const patternToRegex = (pattern: string): RegExp => { + const escaped = escapeRegex(pattern).replace(/\\\*/g, ".+"); + return new RegExp(`^${escaped}$`); +}; + +export const getCanvasPatterns = ({ + extensionAPI, +}: { + extensionAPI: OnloadArgs["extensionAPI"]; +}): string[] => { + const configured = extensionAPI.settings.get(CANVAS_PAGE_PATTERNS_KEY); + const raw = + typeof configured === "string" && configured.trim() + ? configured + : DEFAULT_CANVAS_PAGE_PATTERNS; + return parsePatterns(raw); +}; + +export const isCanvasPage = ({ + title, + extensionAPI, +}: { + title: string; + extensionAPI: OnloadArgs["extensionAPI"]; +}): boolean => + getCanvasPatterns({ extensionAPI }).some((pattern) => + patternToRegex(pattern).test(title), + ); + +export const isCurrentPageCanvas = ({ + title, + h1, + extensionAPI, +}: { + title: string; + h1: HTMLHeadingElement; + extensionAPI: OnloadArgs["extensionAPI"]; +}): boolean => + isCanvasPage({ title, extensionAPI }) && !!h1.closest(".roam-article"); + +export const isSidebarCanvas = ({ + title, + h1, + extensionAPI, +}: { + title: string; + h1: HTMLHeadingElement; + extensionAPI: OnloadArgs["extensionAPI"]; +}): boolean => + isCanvasPage({ title, extensionAPI }) && !!h1.closest(".rm-sidebar-outline"); diff --git a/tsconfig.json b/tsconfig.json index aa5fe56..ad6853b 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -6,6 +6,6 @@ "~/*": ["./src/*"] } }, - "include": ["src"], + "include": ["src", "scripts"], "exclude": ["node_modules"] } From 09a0eb74849e4255f5d10c07a386a884f846aba0 Mon Sep 17 00:00:00 2001 From: Michael Gartner Date: Fri, 6 Feb 2026 21:59:43 -0600 Subject: [PATCH 02/21] Stabilize canvas tools, picker UX, and Roam prop persistence --- src/components/canvas/DefaultNodeUtil.tsx | 212 +++++++++++++++++----- src/components/canvas/Tldraw.tsx | 25 ++- src/components/canvas/uiOverrides.tsx | 30 ++- src/components/canvas/useRoamStore.ts | 26 ++- src/utils/getBlockProps.ts | 33 ++++ 5 files changed, 267 insertions(+), 59 deletions(-) create mode 100644 src/utils/getBlockProps.ts diff --git a/src/components/canvas/DefaultNodeUtil.tsx b/src/components/canvas/DefaultNodeUtil.tsx index 6e95dac..5dfeda7 100644 --- a/src/components/canvas/DefaultNodeUtil.tsx +++ b/src/components/canvas/DefaultNodeUtil.tsx @@ -1,4 +1,4 @@ -import React from "react"; +import React, { useEffect, useState } from "react"; import { BaseBoxShapeUtil, HTMLContainer, @@ -6,8 +6,9 @@ import { T, TLStateNodeConstructor, toDomPrecision, + useEditor, } from "tldraw"; -import getPageUidByPageTitle from "roamjs-components/queries/getPageUidByPageTitle"; +import { Button, Dialog, InputGroup, Menu, MenuItem } from "@blueprintjs/core"; export type DefaultNodeType = "page-node" | "blck-node"; @@ -22,19 +23,50 @@ export type RoamNodeShape = { }; }; +type SearchResult = { + uid: string; + title: string; +}; + const createShapeId = (): string => `shape:${window.roamAlphaAPI.util.generateUID()}`; +const escapeRegex = (value: string): string => + value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"); + +const searchPages = ({ query }: { query: string }): SearchResult[] => { + const pattern = escapeRegex(query.trim()); + if (!pattern) return []; + const rows = window.roamAlphaAPI.q( + `[:find ?uid ?title + :where + [?e :node/title ?title] + [?e :block/uid ?uid] + [(re-pattern "(?i)${pattern}") ?re] + [(re-find ?re ?title)]]`, + ) as [string, string][]; + return rows.map(([uid, title]) => ({ uid, title })); +}; + +const searchBlocks = ({ query }: { query: string }): SearchResult[] => { + const pattern = escapeRegex(query.trim()); + if (!pattern) return []; + const rows = window.roamAlphaAPI.q( + `[:find ?uid ?text + :where + [?e :block/string ?text] + [?e :block/uid ?uid] + [(re-pattern "(?i)${pattern}") ?re] + [(re-find ?re ?text)]]`, + ) as [string, string][]; + return rows.map(([uid, title]) => ({ uid, title })); +}; + const TYPE_STYLES: Record = { "page-node": { bg: "#111827", color: "#f9fafb" }, "blck-node": { bg: "#334155", color: "#f8fafc" }, }; -const DEFAULT_TITLES: Record = { - "page-node": "Page", - "blck-node": "Block", -}; - export const DEFAULT_NODE_TOOLS: { id: DefaultNodeType; label: string; @@ -44,6 +76,104 @@ export const DEFAULT_NODE_TOOLS: { { id: "blck-node", label: "Block", kbd: "b" }, ]; +const NodePickerDialog = ({ shape }: { shape: RoamNodeShape }): JSX.Element => { + const editor = useEditor(); + const [isOpen, setIsOpen] = useState(false); + const [query, setQuery] = useState(shape.props.title || ""); + const [results, setResults] = useState([]); + + const isEditing = editor.getEditingShapeId() === (shape.id as any); + const needsSelection = !shape.props.uid; + + useEffect(() => { + if (isEditing || needsSelection) setIsOpen(true); + }, [isEditing, needsSelection]); + + useEffect(() => { + if (!isOpen) return; + if (!query.trim()) { + setResults([]); + return; + } + const timeout = window.setTimeout(() => { + const r = + shape.type === "page-node" + ? searchPages({ query }).slice(0, 20) + : searchBlocks({ query }).slice(0, 20); + setResults(r); + }, 120); + return () => window.clearTimeout(timeout); + }, [isOpen, query, shape.type]); + + const closeDialog = (): void => { + setIsOpen(false); + editor.setEditingShape(null); + if (!shape.props.uid) { + editor.deleteShapes([shape.id as any]); + } + editor.setCurrentTool("select"); + }; + + const applySelection = ({ uid, title }: SearchResult): void => { + editor.updateShapes([ + { + id: shape.id as any, + type: shape.type as any, + props: { + ...shape.props, + uid, + title, + }, + }, + ]); + setIsOpen(false); + editor.setEditingShape(null); + editor.setCurrentTool("select"); + }; + + return ( + +
+ ) => + setQuery(e.target.value) + } + /> +
+ + {results.map((result) => ( + applySelection(result)} + /> + ))} + +
+
+
+
+
+
+
+ ); +}; + class BaseRoamNodeShapeUtil extends BaseBoxShapeUtil { static override props = { w: T.number, @@ -57,10 +187,10 @@ class BaseRoamNodeShapeUtil extends BaseBoxShapeUtil { override getDefaultProps(): RoamNodeShape["props"] { return { - w: 220, - h: 92, - uid: window.roamAlphaAPI.util.generateUID(), - title: "Node", + w: 260, + h: 120, + uid: "", + title: "", }; } @@ -75,19 +205,22 @@ class BaseRoamNodeShapeUtil extends BaseBoxShapeUtil { } override component(shape: RoamNodeShape): JSX.Element { - const style = TYPE_STYLES[shape.type as DefaultNodeType]; + const style = TYPE_STYLES[shape.type]; return ( - -
- {shape.props.title} -
-
+ <> + + +
+ {shape.props.title || (shape.type === "page-node" ? "Page" : "Block")} +
+
+ ); } } @@ -106,18 +239,20 @@ export const createDefaultNodeShapeTools = (): TLStateNodeConstructor[] => override onPointerDown = (): void => { const { currentPagePoint } = this.editor.inputs; + const shapeId = createShapeId(); this.editor.createShape({ - id: createShapeId(), + id: shapeId, type: this.shapeType as any, x: currentPagePoint.x, y: currentPagePoint.y, props: { - title: DEFAULT_TITLES[this.shapeType], - uid: window.roamAlphaAPI.util.generateUID(), - w: 220, - h: 92, + uid: "", + title: "", + w: 260, + h: 120, }, }); + this.editor.setEditingShape(shapeId as any); this.editor.setCurrentTool("select"); }; }, @@ -126,22 +261,10 @@ export const createDefaultNodeShapeTools = (): TLStateNodeConstructor[] => export const createDefaultNodeShapeUtils = () => { class PageNodeUtil extends BaseRoamNodeShapeUtil { static override type = "page-node"; - override getDefaultProps(): RoamNodeShape["props"] { - return { - ...super.getDefaultProps(), - title: "Page", - }; - } } class BlockNodeUtil extends BaseRoamNodeShapeUtil { static override type = "blck-node"; - override getDefaultProps(): RoamNodeShape["props"] { - return { - ...super.getDefaultProps(), - title: "Block", - }; - } } return [PageNodeUtil, BlockNodeUtil]; @@ -153,9 +276,12 @@ export const getNodeTypeFromRoamRefText = ( const pageMatch = text.match(/^\[\[(.+)\]\]$/); if (pageMatch?.[1]) { const title = pageMatch[1].trim(); - const uid = getPageUidByPageTitle(title); - if (!uid) return null; - return { type: "page-node", uid, title }; + const result = window.roamAlphaAPI.q( + `[:find ?uid . :where [?e :node/title "${title.replace(/"/g, '\\"')}"] [?e :block/uid ?uid]]`, + ) as unknown; + const pageUid = typeof result === "string" ? result : null; + if (!pageUid) return null; + return { type: "page-node", uid: pageUid, title }; } const blockMatch = text.match(/^\(\(([a-zA-Z0-9_-]{9})\)\)$/); diff --git a/src/components/canvas/Tldraw.tsx b/src/components/canvas/Tldraw.tsx index 5cbba8c..4f4f216 100644 --- a/src/components/canvas/Tldraw.tsx +++ b/src/components/canvas/Tldraw.tsx @@ -6,6 +6,7 @@ import { Box, Editor, Tldraw, + defaultHandleExternalTextContent, defaultShapeTools, defaultShapeUtils, defaultTools, @@ -17,7 +18,11 @@ import { createDefaultNodeShapeUtils, getNodeTypeFromRoamRefText, } from "./DefaultNodeUtil"; -import { CANVAS_MAXIMIZE_HOTKEY_KEY, createUiOverrides } from "./uiOverrides"; +import { + CANVAS_MAXIMIZE_HOTKEY_KEY, + createUiComponents, + createUiOverrides, +} from "./uiOverrides"; import tldrawStyles from "./tldrawStyles"; const createShapeId = (): string => @@ -30,7 +35,7 @@ const TldrawCanvas = ({ title: string; extensionAPI: OnloadArgs["extensionAPI"]; }) => { - const pageUid = getPageUidByPageTitle(title) || window.roamAlphaAPI.util.generateUID(); + const pageUid = getPageUidByPageTitle(title); const appRef = useRef(null); const containerRef = useRef(null); @@ -45,7 +50,7 @@ const TldrawCanvas = ({ const { store } = useRoamStore({ customShapeUtils: shapeUtils, - pageUid, + pageUid: pageUid || "", }); const updateViewportBounds = () => { @@ -79,6 +84,9 @@ const TldrawCanvas = ({ () => createUiOverrides({ toggleMaximized, maximizeKbd }), [maximizeKbd], ); + const uiComponents = useMemo(() => createUiComponents(), []); + + if (!pageUid) return null; return (
{ appRef.current = editor; - editor.registerExternalContentHandler("text", (content) => { + editor.registerExternalContentHandler("text", async (content) => { if (content.type !== "text") return; const match = getNodeTypeFromRoamRefText(content.text.trim()); - if (!match) return; + if (!match) { + await defaultHandleExternalTextContent(editor, { + point: content.point, + text: content.text, + }); + return; + } const point = content.point ?? editor.getViewportPageBounds().center; editor.createShape({ id: createShapeId(), diff --git a/src/components/canvas/uiOverrides.tsx b/src/components/canvas/uiOverrides.tsx index 3fc8b88..125799f 100644 --- a/src/components/canvas/uiOverrides.tsx +++ b/src/components/canvas/uiOverrides.tsx @@ -1,4 +1,14 @@ -import { TLUiOverrides, TLUiTranslationKey } from "tldraw"; +import React from "react"; +import { + DefaultToolbar, + DefaultToolbarContent, + TLUiComponents, + TLUiOverrides, + TLUiTranslationKey, + TldrawUiMenuItem, + useIsToolSelected, + useTools, +} from "tldraw"; import { DEFAULT_NODE_TOOLS } from "./DefaultNodeUtil"; export const CANVAS_MAXIMIZE_HOTKEY_KEY = "canvas-maximize-hotkey"; @@ -41,3 +51,21 @@ export const createUiOverrides = ({ }, }, }); + +export const createUiComponents = (): TLUiComponents => ({ + Toolbar: () => { + const tools = useTools(); + return ( + + {DEFAULT_NODE_TOOLS.map((tool) => ( + + ))} + + + ); + }, +}); diff --git a/src/components/canvas/useRoamStore.ts b/src/components/canvas/useRoamStore.ts index fe963bc..7fa0722 100644 --- a/src/components/canvas/useRoamStore.ts +++ b/src/components/canvas/useRoamStore.ts @@ -1,18 +1,17 @@ import { TLAnyShapeUtilConstructor, createTLStore, loadSnapshot } from "tldraw"; import { useEffect, useMemo, useRef } from "react"; +import getBlockProps, { JsonValue, normalizeProps } from "~/utils/getBlockProps"; const THROTTLE_MS = 350; export const ROAM_TLDRAW_KEY = "roamjs-tldraw"; type RoamTldrawState = { stateId: string; - tldraw: any; + tldraw: JsonValue; }; const getPageProps = (pageUid: string): Record => - (window.roamAlphaAPI.pull("[:block/props]", [":block/uid", pageUid])?.[ - ":block/props" - ] as Record | undefined) || {}; + getBlockProps(pageUid) as Record; const getPersistedSnapshot = (pageUid: string): RoamTldrawState | null => { const props = getPageProps(pageUid); @@ -56,6 +55,8 @@ export const useRoamStore = ({ shapeUtils: customShapeUtils, }); + if (!pageUid) return tlStore; + const persisted = getPersistedSnapshot(pageUid); if (persisted?.tldraw) { loadSnapshot(tlStore, persisted.tldraw); @@ -64,8 +65,9 @@ export const useRoamStore = ({ }, [customShapeUtils, pageUid]); useEffect(() => { + if (!pageUid) return; const dispose = store.listen((entry: { source: string }) => { - if (entry.source !== "user") return; + if (entry.source === "remote") return; window.clearTimeout(serializeTimeout.current); serializeTimeout.current = window.setTimeout(() => { const stateId = window.roamAlphaAPI.util.generateUID(); @@ -78,7 +80,10 @@ export const useRoamStore = ({ } setPersistedSnapshot({ pageUid, - state: { stateId, tldraw: store.getStoreSnapshot() }, + state: { + stateId, + tldraw: store.getStoreSnapshot() as unknown as JsonValue, + }, }); }, THROTTLE_MS); }); @@ -89,13 +94,14 @@ export const useRoamStore = ({ }, [pageUid, store]); useEffect(() => { + if (!pageUid) return; const pullWatchProps = [ "[:edit/user :block/props]", `[:block/uid "${pageUid}"]`, (_before: unknown, after: Record | null) => { - const props = - (after?.[":block/props"] as Record | undefined) || - {}; + const props = normalizeProps( + ((after?.[":block/props"] || {}) as JsonValue), + ) as Record; const state = props[ROAM_TLDRAW_KEY] as RoamTldrawState | undefined; if (!state?.tldraw) return; if (localStateIds.current.has(state.stateId)) return; @@ -103,7 +109,7 @@ export const useRoamStore = ({ window.clearTimeout(deserializeTimeout.current); deserializeTimeout.current = window.setTimeout(() => { store.mergeRemoteChanges(() => { - loadSnapshot(store, state.tldraw); + loadSnapshot(store, state.tldraw as unknown as object); }); }, THROTTLE_MS); }, diff --git a/src/utils/getBlockProps.ts b/src/utils/getBlockProps.ts new file mode 100644 index 0000000..ada51c4 --- /dev/null +++ b/src/utils/getBlockProps.ts @@ -0,0 +1,33 @@ +export type JsonValue = + | string + | number + | boolean + | null + | JsonValue[] + | { [key: string]: JsonValue }; + +export const normalizeProps = (props: JsonValue): JsonValue => + typeof props === "object" + ? props === null + ? null + : Array.isArray(props) + ? props.map(normalizeProps) + : Object.fromEntries( + Object.entries(props).map(([key, value]) => [ + key.replace(/^:+/, ""), + typeof value === "object" && value !== null + ? normalizeProps(value as JsonValue) + : value, + ]), + ) + : props; + +export const getRawBlockProps = (uid: string): Record => + ((window.roamAlphaAPI.pull("[:block/props]", [":block/uid", uid])?.[ + ":block/props" + ] || {}) as Record); + +const getBlockProps = (uid: string): Record => + normalizeProps(getRawBlockProps(uid)) as Record; + +export default getBlockProps; From c842b887a9fa14fc549de58781912dc618dabf66 Mon Sep 17 00:00:00 2001 From: Michael Gartner Date: Fri, 6 Feb 2026 22:56:25 -0600 Subject: [PATCH 03/21] Enhance NodePickerDialog with escape key handling, selection state management, and improve Tldraw canvas interaction with keyboard shortcuts and maximization styles. --- src/components/canvas/DefaultNodeUtil.tsx | 95 +++++++++++++++++------ src/components/canvas/Tldraw.tsx | 58 ++++++++++++-- src/components/canvas/tldrawStyles.ts | 63 ++++++++++++--- 3 files changed, 174 insertions(+), 42 deletions(-) diff --git a/src/components/canvas/DefaultNodeUtil.tsx b/src/components/canvas/DefaultNodeUtil.tsx index 5dfeda7..5716606 100644 --- a/src/components/canvas/DefaultNodeUtil.tsx +++ b/src/components/canvas/DefaultNodeUtil.tsx @@ -81,6 +81,7 @@ const NodePickerDialog = ({ shape }: { shape: RoamNodeShape }): JSX.Element => { const [isOpen, setIsOpen] = useState(false); const [query, setQuery] = useState(shape.props.title || ""); const [results, setResults] = useState([]); + const [selectedUid, setSelectedUid] = useState(""); const isEditing = editor.getEditingShapeId() === (shape.id as any); const needsSelection = !shape.props.uid; @@ -89,6 +90,19 @@ const NodePickerDialog = ({ shape }: { shape: RoamNodeShape }): JSX.Element => { if (isEditing || needsSelection) setIsOpen(true); }, [isEditing, needsSelection]); + useEffect(() => { + if (!isOpen) return; + const onKeyDownCapture = (e: KeyboardEvent): void => { + if (e.key !== "Escape") return; + e.stopPropagation(); + closeDialog(); + }; + document.addEventListener("keydown", onKeyDownCapture, true); + return () => { + document.removeEventListener("keydown", onKeyDownCapture, true); + }; + }, [isOpen]); + useEffect(() => { if (!isOpen) return; if (!query.trim()) { @@ -107,6 +121,7 @@ const NodePickerDialog = ({ shape }: { shape: RoamNodeShape }): JSX.Element => { const closeDialog = (): void => { setIsOpen(false); + setSelectedUid(""); editor.setEditingShape(null); if (!shape.props.uid) { editor.deleteShapes([shape.id as any]); @@ -131,6 +146,14 @@ const NodePickerDialog = ({ shape }: { shape: RoamNodeShape }): JSX.Element => { editor.setCurrentTool("select"); }; + const selectedResult = results.find((r) => r.uid === selectedUid) || null; + const handleEscape = (e: React.KeyboardEvent | KeyboardEvent): void => { + if (e.key !== "Escape") return; + e.stopPropagation(); + if ("preventDefault" in e) e.preventDefault(); + closeDialog(); + }; + return ( { enforceFocus autoFocus > -
- ) => - setQuery(e.target.value) - } - /> -
- - {results.map((result) => ( - applySelection(result)} - /> - ))} - +
e.stopPropagation()} + onKeyDownCapture={handleEscape} + style={{ pointerEvents: "all" }} + > +
+ ) => + setQuery(e.target.value) + } + onKeyDown={handleEscape} + /> +
+ + {results.map((result) => ( + { + e.preventDefault(); + e.stopPropagation(); + setSelectedUid(result.uid); + }} + onClick={() => setSelectedUid(result.uid)} + /> + ))} + +
-
-
-
-
@@ -184,6 +226,9 @@ class BaseRoamNodeShapeUtil extends BaseBoxShapeUtil { override canEdit = () => true; override canResize = () => true; + override onDoubleClick(shape: RoamNodeShape): void { + this.editor.setEditingShape(shape.id as any); + } override getDefaultProps(): RoamNodeShape["props"] { return { diff --git a/src/components/canvas/Tldraw.tsx b/src/components/canvas/Tldraw.tsx index 4f4f216..2fad751 100644 --- a/src/components/canvas/Tldraw.tsx +++ b/src/components/canvas/Tldraw.tsx @@ -5,12 +5,14 @@ import getPageUidByPageTitle from "roamjs-components/queries/getPageUidByPageTit import { Box, Editor, + TLPointerEventInfo, Tldraw, defaultHandleExternalTextContent, defaultShapeTools, defaultShapeUtils, defaultTools, } from "tldraw"; +import openBlockInSidebar from "roamjs-components/writes/openBlockInSidebar"; import "tldraw/tldraw.css"; import { useRoamStore } from "./useRoamStore"; import { @@ -44,7 +46,11 @@ const TldrawCanvas = ({ [], ); const tools = useMemo( - () => [...defaultTools, ...defaultShapeTools, ...createDefaultNodeShapeTools()], + () => [ + ...defaultTools, + ...defaultShapeTools, + ...createDefaultNodeShapeTools(), + ], [], ); @@ -63,15 +69,18 @@ const TldrawCanvas = ({ }; const toggleMaximized = () => { + // Direct DOM manipulation to avoid React re-renders if (!containerRef.current) return; const tldrawEl = containerRef.current; const wrapper = tldrawEl.closest(".roam-article, .rm-sidebar-outline"); if (tldrawEl.classList.contains("relative")) { - wrapper?.classList.add("rjs-tldraw-maximized"); - tldrawEl.classList.remove("relative"); + // Going to fullscreen + if (wrapper) wrapper.classList.add("rjs-tldraw-maximized"); tldrawEl.classList.add("absolute", "inset-0"); + tldrawEl.classList.remove("relative"); } else { - wrapper?.classList.remove("rjs-tldraw-maximized"); + // Going back to normal + if (wrapper) wrapper.classList.remove("rjs-tldraw-maximized"); tldrawEl.classList.add("relative"); tldrawEl.classList.remove("absolute", "inset-0"); } @@ -104,6 +113,41 @@ const TldrawCanvas = ({ initialState="select" onMount={(editor) => { appRef.current = editor; + editor.on("event", (event) => { + const e = event as TLPointerEventInfo; + const validModifier = e.shiftKey || e.ctrlKey; + if (!(e.name === "pointer_up" && validModifier)) return; + + const shape = editor.getShapeAtPoint( + editor.inputs.currentPagePoint, + ) as { props?: { uid?: string } } | undefined; + const shapeUid = shape?.props?.uid; + if (!shapeUid) return; + + if (e.shiftKey) { + if (editor.getSelectedShapes().length > 1) return; + void openBlockInSidebar(shapeUid); + editor.selectNone(); + return; + } + + if (e.ctrlKey) { + const isPage = !!window.roamAlphaAPI.pull("[:node/title]", [ + ":block/uid", + shapeUid, + ])?.[":node/title"]; + if (isPage) { + void window.roamAlphaAPI.ui.mainWindow.openPage({ + page: { uid: shapeUid }, + }); + } else { + void window.roamAlphaAPI.ui.mainWindow.openBlock({ + block: { uid: shapeUid }, + }); + } + } + }); + editor.registerExternalContentHandler("text", async (content) => { if (content.type !== "text") return; const match = getNodeTypeFromRoamRefText(content.text.trim()); @@ -114,7 +158,8 @@ const TldrawCanvas = ({ }); return; } - const point = content.point ?? editor.getViewportPageBounds().center; + const point = + content.point ?? editor.getViewportPageBounds().center; editor.createShape({ id: createShapeId(), type: match.type as any, @@ -157,7 +202,8 @@ const renderTldrawCanvasHelper = ({ if (!childFromRoot?.parentElement) return () => {}; const parentEl = childFromRoot.parentElement; - if (parentEl.querySelector(".roamjs-tldraw-canvas-container")) return () => {}; + if (parentEl.querySelector(".roamjs-tldraw-canvas-container")) + return () => {}; const canvasWrapperEl = document.createElement("div"); parentEl.appendChild(canvasWrapperEl); diff --git a/src/components/canvas/tldrawStyles.ts b/src/components/canvas/tldrawStyles.ts index 664f64a..adb0a18 100644 --- a/src/components/canvas/tldrawStyles.ts +++ b/src/components/canvas/tldrawStyles.ts @@ -1,18 +1,59 @@ +// tldrawStyles.ts because some of these styles need to be inlined export default /* css */ ` -.roam-article:has(.roamjs-tldraw-canvas-container) .rm-block-children { - display: none; -} - -.rm-sidebar-outline:has(.roamjs-tldraw-canvas-container) .rm-block-children { - display: none; -} - -.roamjs-tldraw-canvas-container svg { - overflow: visible; -} + /* Hide Roam Blocks only when a canvas is present under the root */ + .roam-article:has(.roamjs-tldraw-canvas-container) .rm-block-children { + display: none; + } + + /* Hide Roam Blocks in sidebar when a canvas is present */ + .rm-sidebar-outline:has(.roamjs-tldraw-canvas-container) .rm-block-children { + display: none; + } + + /* Shape Render Fix */ + svg.tl-svg-container { + overflow: visible; + } + + /* CANVAS */ + /* fixes drawing arrows in north-west direction */ + /* and selection context not being shown */ + .roamjs-tldraw-canvas-container svg { + overflow: visible; + } + + /* Roam's font-family is hijacking tldraw's */ + .tl-text-wrapper[data-font="draw"] div { + font-family: var(--tl-font-draw); + } + .tl-text-wrapper[data-font="sans"] div { + font-family: var(--tl-font-sans); + } + .tl-text-wrapper[data-font="serif"] div { + font-family: var(--tl-font-serif); + } + .tl-text-wrapper[data-font="mono"] div { + font-family: var(--tl-font-mono); + } + + /* Keyboard Shortcuts */ + kbd.tlui-kbd { + background-color: initial; + box-shadow: initial; + border-radius: initial; + padding: initial; + } +/* Maximize Tldraw Canvas */ +/* Used in conjunction with tailwind classes on the canvas container */ .roam-body .roam-app .roam-main .roam-article.rjs-tldraw-maximized, .roam-body .roam-app .roam-main .rm-sidebar-outline.rjs-tldraw-maximized { position: static; } + +/* Clipboard toggle button in toolbar */ +.tlui-toolbar__lock-button[data-clipboard-open="true"]::after { + background-color: var(--color-muted-2); + opacity: 1; +} `; From 31c53ab3a25887eedecd3d35c25e080e2696df50 Mon Sep 17 00:00:00 2001 From: Michael Gartner Date: Fri, 6 Feb 2026 23:09:48 -0600 Subject: [PATCH 04/21] Remove unused type definitions from tldraw-shapes.d.ts and refactor DefaultNodeUtil and Tldraw components to utilize TLShape and TLShapeId for better type safety. Update Roam store handling to ensure correct type parsing for tldraw state. --- src/components/canvas/DefaultNodeUtil.tsx | 31 ++++++++++++++++------- src/components/canvas/Tldraw.tsx | 13 +++++++--- src/components/canvas/tldrawStyles.ts | 5 ++++ src/components/canvas/useRoamStore.ts | 31 +++++++++++++++++------ src/tldraw-shapes.d.ts | 16 ------------ 5 files changed, 59 insertions(+), 37 deletions(-) delete mode 100644 src/tldraw-shapes.d.ts diff --git a/src/components/canvas/DefaultNodeUtil.tsx b/src/components/canvas/DefaultNodeUtil.tsx index 5716606..1111bbb 100644 --- a/src/components/canvas/DefaultNodeUtil.tsx +++ b/src/components/canvas/DefaultNodeUtil.tsx @@ -4,6 +4,8 @@ import { HTMLContainer, StateNode, T, + TLShape, + TLShapeId, TLStateNodeConstructor, toDomPrecision, useEditor, @@ -15,6 +17,15 @@ export type DefaultNodeType = "page-node" | "blck-node"; export type RoamNodeShape = { id: string; type: DefaultNodeType; + x: number; + y: number; + rotation: number; + index: string; + parentId: string; + typeName: "shape"; + isLocked: boolean; + opacity: number; + meta: Record; props: { w: number; h: number; @@ -30,6 +41,7 @@ type SearchResult = { const createShapeId = (): string => `shape:${window.roamAlphaAPI.util.generateUID()}`; +const toShapeId = (id: string): TLShapeId => id as TLShapeId; const escapeRegex = (value: string): string => value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"); @@ -83,7 +95,8 @@ const NodePickerDialog = ({ shape }: { shape: RoamNodeShape }): JSX.Element => { const [results, setResults] = useState([]); const [selectedUid, setSelectedUid] = useState(""); - const isEditing = editor.getEditingShapeId() === (shape.id as any); + const shapeId = toShapeId(shape.id); + const isEditing = editor.getEditingShapeId() === shapeId; const needsSelection = !shape.props.uid; useEffect(() => { @@ -124,7 +137,7 @@ const NodePickerDialog = ({ shape }: { shape: RoamNodeShape }): JSX.Element => { setSelectedUid(""); editor.setEditingShape(null); if (!shape.props.uid) { - editor.deleteShapes([shape.id as any]); + editor.deleteShapes([shapeId]); } editor.setCurrentTool("select"); }; @@ -132,8 +145,8 @@ const NodePickerDialog = ({ shape }: { shape: RoamNodeShape }): JSX.Element => { const applySelection = ({ uid, title }: SearchResult): void => { editor.updateShapes([ { - id: shape.id as any, - type: shape.type as any, + id: shapeId, + type: shape.type as unknown as TLShape["type"], props: { ...shape.props, uid, @@ -227,7 +240,7 @@ class BaseRoamNodeShapeUtil extends BaseBoxShapeUtil { override canEdit = () => true; override canResize = () => true; override onDoubleClick(shape: RoamNodeShape): void { - this.editor.setEditingShape(shape.id as any); + this.editor.setEditingShape(toShapeId(shape.id)); } override getDefaultProps(): RoamNodeShape["props"] { @@ -240,7 +253,7 @@ class BaseRoamNodeShapeUtil extends BaseBoxShapeUtil { } override indicator(shape: RoamNodeShape): JSX.Element { - const { bounds } = this.editor.getShapeGeometry(shape); + const { bounds } = this.editor.getShapeGeometry(toShapeId(shape.id)); return ( const { currentPagePoint } = this.editor.inputs; const shapeId = createShapeId(); this.editor.createShape({ - id: shapeId, - type: this.shapeType as any, + id: toShapeId(shapeId), + type: this.shapeType as unknown as TLShape["type"], x: currentPagePoint.x, y: currentPagePoint.y, props: { @@ -297,7 +310,7 @@ export const createDefaultNodeShapeTools = (): TLStateNodeConstructor[] => h: 120, }, }); - this.editor.setEditingShape(shapeId as any); + this.editor.setEditingShape(toShapeId(shapeId)); this.editor.setCurrentTool("select"); }; }, diff --git a/src/components/canvas/Tldraw.tsx b/src/components/canvas/Tldraw.tsx index 2fad751..57d39b2 100644 --- a/src/components/canvas/Tldraw.tsx +++ b/src/components/canvas/Tldraw.tsx @@ -5,6 +5,8 @@ import getPageUidByPageTitle from "roamjs-components/queries/getPageUidByPageTit import { Box, Editor, + TLShape, + TLShapeId, TLPointerEventInfo, Tldraw, defaultHandleExternalTextContent, @@ -29,6 +31,9 @@ import tldrawStyles from "./tldrawStyles"; const createShapeId = (): string => `shape:${window.roamAlphaAPI.util.generateUID()}`; +const toShapeId = (id: string): TLShapeId => id as TLShapeId; +const toShapeType = (type: string): TLShape["type"] => + type as unknown as TLShape["type"]; const TldrawCanvas = ({ title, @@ -75,12 +80,12 @@ const TldrawCanvas = ({ const wrapper = tldrawEl.closest(".roam-article, .rm-sidebar-outline"); if (tldrawEl.classList.contains("relative")) { // Going to fullscreen - if (wrapper) wrapper.classList.add("rjs-tldraw-maximized"); + if (wrapper) wrapper.classList.add("dg-tldraw-maximized"); tldrawEl.classList.add("absolute", "inset-0"); tldrawEl.classList.remove("relative"); } else { // Going back to normal - if (wrapper) wrapper.classList.remove("rjs-tldraw-maximized"); + if (wrapper) wrapper.classList.remove("dg-tldraw-maximized"); tldrawEl.classList.add("relative"); tldrawEl.classList.remove("absolute", "inset-0"); } @@ -161,8 +166,8 @@ const TldrawCanvas = ({ const point = content.point ?? editor.getViewportPageBounds().center; editor.createShape({ - id: createShapeId(), - type: match.type as any, + id: toShapeId(createShapeId()), + type: toShapeType(match.type), x: point.x, y: point.y, props: { diff --git a/src/components/canvas/tldrawStyles.ts b/src/components/canvas/tldrawStyles.ts index adb0a18..2f67b30 100644 --- a/src/components/canvas/tldrawStyles.ts +++ b/src/components/canvas/tldrawStyles.ts @@ -56,4 +56,9 @@ export default /* css */ ` background-color: var(--color-muted-2); opacity: 1; } + +/* Roam's main container should be static when tldraw is maximized */ +.roam-main { + position: relative; +} `; diff --git a/src/components/canvas/useRoamStore.ts b/src/components/canvas/useRoamStore.ts index 7fa0722..6a7e57c 100644 --- a/src/components/canvas/useRoamStore.ts +++ b/src/components/canvas/useRoamStore.ts @@ -7,15 +7,30 @@ export const ROAM_TLDRAW_KEY = "roamjs-tldraw"; type RoamTldrawState = { stateId: string; - tldraw: JsonValue; + tldraw: Parameters[1]; }; -const getPageProps = (pageUid: string): Record => - getBlockProps(pageUid) as Record; +const parseRoamTldrawState = ( + value: JsonValue | undefined, +): RoamTldrawState | undefined => { + if (!value || typeof value !== "object" || Array.isArray(value)) return; + const stateId = value["stateId"]; + const tldraw = value["tldraw"]; + if (typeof stateId !== "string" || !tldraw || typeof tldraw !== "object") { + return; + } + return { + stateId, + tldraw: tldraw as Parameters[1], + }; +}; + +const getPageProps = (pageUid: string): Record => + getBlockProps(pageUid); const getPersistedSnapshot = (pageUid: string): RoamTldrawState | null => { const props = getPageProps(pageUid); - const persisted = props[ROAM_TLDRAW_KEY] as RoamTldrawState | undefined; + const persisted = parseRoamTldrawState(props[ROAM_TLDRAW_KEY]); if (!persisted?.tldraw) return null; return persisted; }; @@ -82,7 +97,7 @@ export const useRoamStore = ({ pageUid, state: { stateId, - tldraw: store.getStoreSnapshot() as unknown as JsonValue, + tldraw: store.getStoreSnapshot() as Parameters[1], }, }); }, THROTTLE_MS); @@ -101,15 +116,15 @@ export const useRoamStore = ({ (_before: unknown, after: Record | null) => { const props = normalizeProps( ((after?.[":block/props"] || {}) as JsonValue), - ) as Record; - const state = props[ROAM_TLDRAW_KEY] as RoamTldrawState | undefined; + ) as Record; + const state = parseRoamTldrawState(props[ROAM_TLDRAW_KEY]); if (!state?.tldraw) return; if (localStateIds.current.has(state.stateId)) return; window.clearTimeout(deserializeTimeout.current); deserializeTimeout.current = window.setTimeout(() => { store.mergeRemoteChanges(() => { - loadSnapshot(store, state.tldraw as unknown as object); + loadSnapshot(store, state.tldraw); }); }, THROTTLE_MS); }, diff --git a/src/tldraw-shapes.d.ts b/src/tldraw-shapes.d.ts deleted file mode 100644 index 386c86a..0000000 --- a/src/tldraw-shapes.d.ts +++ /dev/null @@ -1,16 +0,0 @@ -declare module "@tldraw/tlschema" { - interface TLGlobalShapePropsMap { - "page-node": { - w: number; - h: number; - uid: string; - title: string; - }; - "blck-node": { - w: number; - h: number; - uid: string; - title: string; - }; - } -} From a069dbac50067a48f36a21199978ec3b20e5f575 Mon Sep 17 00:00:00 2001 From: Michael Gartner Date: Sat, 7 Feb 2026 00:26:22 -0600 Subject: [PATCH 05/21] Add Tailwind CSS as a dev dependency and create initial Tailwind configuration file --- package.json | 1 + tailwind.config.js | 8 ++++++++ 2 files changed, 9 insertions(+) create mode 100644 tailwind.config.js diff --git a/package.json b/package.json index 76b686e..5529d73 100644 --- a/package.json +++ b/package.json @@ -25,6 +25,7 @@ "extends": "node_modules/roamjs-components/package.json" }, "devDependencies": { + "tailwindcss": "^3.4.0", "tsx": "^4.21.0", "typescript": "^5.9.3" } diff --git a/tailwind.config.js b/tailwind.config.js new file mode 100644 index 0000000..54331dc --- /dev/null +++ b/tailwind.config.js @@ -0,0 +1,8 @@ +/** @type {import('tailwindcss').Config} */ +module.exports = { + content: ["./src/**/*.{js,ts,jsx,tsx}"], + theme: { + extend: {}, + }, + plugins: [], +}; From 25a04b3b3293fbe08365b05ba1a04aae5438faa2 Mon Sep 17 00:00:00 2001 From: Michael Gartner Date: Sat, 7 Feb 2026 00:27:02 -0600 Subject: [PATCH 06/21] Refactor DefaultNodeUtil and Tldraw components to improve type safety and enhance inspector functionality. Add Tailwind CSS version update and adjust styles for node inspector. Implement snapshot sanitization for tldraw state to ensure consistent node properties. --- pnpm-lock.yaml | 28 +-- src/components/canvas/DefaultNodeUtil.tsx | 226 +++--------------- src/components/canvas/Tldraw.tsx | 269 ++++++++++++++++++++-- src/components/canvas/tldrawStyles.ts | 15 ++ src/components/canvas/uiOverrides.tsx | 14 +- src/components/canvas/useRoamStore.ts | 39 +++- 6 files changed, 364 insertions(+), 227 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index afd40ef..cf60e95 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -10,11 +10,14 @@ importers: dependencies: roamjs-components: specifier: 0.86.4 - version: 0.86.4(tfys6nz3gwc4z5ufdlt2gh6ina) + version: 0.86.4(mggo34u4bryga6uulzi23dduue) tldraw: specifier: 3.15.5 version: 3.15.5(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) devDependencies: + tailwindcss: + specifier: ^3.4.0 + version: 3.4.19(ts-node@10.9.2(@types/node@25.2.1)(typescript@5.9.3)) tsx: specifier: ^4.21.0 version: 4.21.0 @@ -2505,10 +2508,6 @@ packages: lie@3.3.0: resolution: {integrity: sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==} - lilconfig@2.1.0: - resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} - engines: {node: '>=10'} - lilconfig@3.1.3: resolution: {integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==} engines: {node: '>=14'} @@ -3191,8 +3190,8 @@ packages: symbol-tree@3.2.4: resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} - tailwindcss@3.3.2: - resolution: {integrity: sha512-9jPkMiIBXvPc2KywkraqsUfbfj+dHDb+JPWtSJa9MLFdrPyazI7q6WX2sUrm7R9eVR7qqv3Pas7EvQFzxKnI6w==} + tailwindcss@3.4.19: + resolution: {integrity: sha512-3ofp+LL8E+pK/JuPLPggVAIaEuhvIz4qNcf3nA1Xn2o/7fb7s/TYpHhwGDv1ZU3PkBluUVaF8PyCHcm48cKLWQ==} engines: {node: '>=14.0.0'} hasBin: true @@ -4948,7 +4947,7 @@ snapshots: '@remirror/core-constants@3.0.0': {} - '@samepage/scripts@0.74.5(@aws-sdk/client-lambda@3.985.0)(@aws-sdk/client-s3@3.985.0)(@samepage/testing@0.74.5(@playwright/test@1.29.0)(@testing-library/react@16.3.2(@testing-library/dom@10.4.1)(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2))(@testing-library/user-event@14.6.1(@testing-library/dom@10.4.1))(@types/jsdom@20.0.1)(c8@7.14.0)(debug@4.4.3)(dotenv@16.6.1)(jsdom@20.0.3)(ts-node@10.9.2(@types/node@25.2.1)(typescript@5.9.3)))(archiver@5.3.2)(axios@0.30.2(debug@4.4.3))(debug@4.4.3)(dotenv@16.6.1)(esbuild@0.27.3)(patch-package@6.5.1)(tailwindcss@3.3.2(ts-node@10.9.2(@types/node@25.2.1)(typescript@5.9.3)))(ts-node@10.9.2(@types/node@25.2.1)(typescript@5.9.3))(zod@3.25.76)': + '@samepage/scripts@0.74.5(@aws-sdk/client-lambda@3.985.0)(@aws-sdk/client-s3@3.985.0)(@samepage/testing@0.74.5(@playwright/test@1.29.0)(@testing-library/react@16.3.2(@testing-library/dom@10.4.1)(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2))(@testing-library/user-event@14.6.1(@testing-library/dom@10.4.1))(@types/jsdom@20.0.1)(c8@7.14.0)(debug@4.4.3)(dotenv@16.6.1)(jsdom@20.0.3)(ts-node@10.9.2(@types/node@25.2.1)(typescript@5.9.3)))(archiver@5.3.2)(axios@0.30.2(debug@4.4.3))(debug@4.4.3)(dotenv@16.6.1)(esbuild@0.27.3)(patch-package@6.5.1)(tailwindcss@3.4.19(ts-node@10.9.2(@types/node@25.2.1)(typescript@5.9.3)))(ts-node@10.9.2(@types/node@25.2.1)(typescript@5.9.3))(zod@3.25.76)': dependencies: '@aws-sdk/client-lambda': 3.985.0 '@aws-sdk/client-s3': 3.985.0 @@ -4959,7 +4958,7 @@ snapshots: dotenv: 16.6.1 esbuild: 0.27.3 patch-package: 6.5.1 - tailwindcss: 3.3.2(ts-node@10.9.2(@types/node@25.2.1)(typescript@5.9.3)) + tailwindcss: 3.4.19(ts-node@10.9.2(@types/node@25.2.1)(typescript@5.9.3)) ts-node: 10.9.2(@types/node@25.2.1)(typescript@5.9.3) zod: 3.25.76 @@ -6532,8 +6531,6 @@ snapshots: dependencies: immediate: 3.0.6 - lilconfig@2.1.0: {} - lilconfig@3.1.3: {} line-reader@0.4.0: {} @@ -7127,12 +7124,12 @@ snapshots: dependencies: glob: 7.2.3 - roamjs-components@0.86.4(tfys6nz3gwc4z5ufdlt2gh6ina): + roamjs-components@0.86.4(mggo34u4bryga6uulzi23dduue): dependencies: '@blueprintjs/core': 3.50.4(react-dom@17.0.2(react@17.0.2))(react@17.0.2) '@blueprintjs/datetime': 3.23.14(react-dom@17.0.2(react@17.0.2))(react@17.0.2) '@blueprintjs/select': 3.18.6(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@samepage/scripts': 0.74.5(@aws-sdk/client-lambda@3.985.0)(@aws-sdk/client-s3@3.985.0)(@samepage/testing@0.74.5(@playwright/test@1.29.0)(@testing-library/react@16.3.2(@testing-library/dom@10.4.1)(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2))(@testing-library/user-event@14.6.1(@testing-library/dom@10.4.1))(@types/jsdom@20.0.1)(c8@7.14.0)(debug@4.4.3)(dotenv@16.6.1)(jsdom@20.0.3)(ts-node@10.9.2(@types/node@25.2.1)(typescript@5.9.3)))(archiver@5.3.2)(axios@0.30.2(debug@4.4.3))(debug@4.4.3)(dotenv@16.6.1)(esbuild@0.27.3)(patch-package@6.5.1)(tailwindcss@3.3.2(ts-node@10.9.2(@types/node@25.2.1)(typescript@5.9.3)))(ts-node@10.9.2(@types/node@25.2.1)(typescript@5.9.3))(zod@3.25.76) + '@samepage/scripts': 0.74.5(@aws-sdk/client-lambda@3.985.0)(@aws-sdk/client-s3@3.985.0)(@samepage/testing@0.74.5(@playwright/test@1.29.0)(@testing-library/react@16.3.2(@testing-library/dom@10.4.1)(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2))(@testing-library/user-event@14.6.1(@testing-library/dom@10.4.1))(@types/jsdom@20.0.1)(c8@7.14.0)(debug@4.4.3)(dotenv@16.6.1)(jsdom@20.0.3)(ts-node@10.9.2(@types/node@25.2.1)(typescript@5.9.3)))(archiver@5.3.2)(axios@0.30.2(debug@4.4.3))(debug@4.4.3)(dotenv@16.6.1)(esbuild@0.27.3)(patch-package@6.5.1)(tailwindcss@3.4.19(ts-node@10.9.2(@types/node@25.2.1)(typescript@5.9.3)))(ts-node@10.9.2(@types/node@25.2.1)(typescript@5.9.3))(zod@3.25.76) '@types/crypto-js': 4.1.1 '@types/cytoscape': 3.31.0 '@types/file-saver': 2.0.5 @@ -7294,7 +7291,7 @@ snapshots: symbol-tree@3.2.4: {} - tailwindcss@3.3.2(ts-node@10.9.2(@types/node@25.2.1)(typescript@5.9.3)): + tailwindcss@3.4.19(ts-node@10.9.2(@types/node@25.2.1)(typescript@5.9.3)): dependencies: '@alloc/quick-lru': 5.2.0 arg: 5.0.2 @@ -7305,7 +7302,7 @@ snapshots: glob-parent: 6.0.2 is-glob: 4.0.3 jiti: 1.21.7 - lilconfig: 2.1.0 + lilconfig: 3.1.3 micromatch: 4.0.8 normalize-path: 3.0.0 object-hash: 3.0.0 @@ -7316,7 +7313,6 @@ snapshots: postcss-load-config: 4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@25.2.1)(typescript@5.9.3)) postcss-nested: 6.2.0(postcss@8.5.6) postcss-selector-parser: 6.1.2 - postcss-value-parser: 4.2.0 resolve: 1.22.11 sucrase: 3.35.1 transitivePeerDependencies: diff --git a/src/components/canvas/DefaultNodeUtil.tsx b/src/components/canvas/DefaultNodeUtil.tsx index 1111bbb..cd9d6c3 100644 --- a/src/components/canvas/DefaultNodeUtil.tsx +++ b/src/components/canvas/DefaultNodeUtil.tsx @@ -1,52 +1,35 @@ -import React, { useEffect, useState } from "react"; +import React from "react"; import { BaseBoxShapeUtil, HTMLContainer, StateNode, T, - TLShape, - TLShapeId, + TLBaseShape, TLStateNodeConstructor, + createShapeId, toDomPrecision, - useEditor, } from "tldraw"; -import { Button, Dialog, InputGroup, Menu, MenuItem } from "@blueprintjs/core"; export type DefaultNodeType = "page-node" | "blck-node"; -export type RoamNodeShape = { - id: string; - type: DefaultNodeType; - x: number; - y: number; - rotation: number; - index: string; - parentId: string; - typeName: "shape"; - isLocked: boolean; - opacity: number; - meta: Record; - props: { - w: number; - h: number; - uid: string; - title: string; - }; +type RoamNodeShapeProps = { + w: number; + h: number; + uid: string; + title: string; }; -type SearchResult = { +export type RoamNodeShape = TLBaseShape; + +export type SearchResult = { uid: string; title: string; }; -const createShapeId = (): string => - `shape:${window.roamAlphaAPI.util.generateUID()}`; -const toShapeId = (id: string): TLShapeId => id as TLShapeId; - const escapeRegex = (value: string): string => value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"); -const searchPages = ({ query }: { query: string }): SearchResult[] => { +export const searchPages = ({ query }: { query: string }): SearchResult[] => { const pattern = escapeRegex(query.trim()); if (!pattern) return []; const rows = window.roamAlphaAPI.q( @@ -60,7 +43,7 @@ const searchPages = ({ query }: { query: string }): SearchResult[] => { return rows.map(([uid, title]) => ({ uid, title })); }; -const searchBlocks = ({ query }: { query: string }): SearchResult[] => { +export const searchBlocks = ({ query }: { query: string }): SearchResult[] => { const pattern = escapeRegex(query.trim()); if (!pattern) return []; const rows = window.roamAlphaAPI.q( @@ -88,148 +71,7 @@ export const DEFAULT_NODE_TOOLS: { { id: "blck-node", label: "Block", kbd: "b" }, ]; -const NodePickerDialog = ({ shape }: { shape: RoamNodeShape }): JSX.Element => { - const editor = useEditor(); - const [isOpen, setIsOpen] = useState(false); - const [query, setQuery] = useState(shape.props.title || ""); - const [results, setResults] = useState([]); - const [selectedUid, setSelectedUid] = useState(""); - - const shapeId = toShapeId(shape.id); - const isEditing = editor.getEditingShapeId() === shapeId; - const needsSelection = !shape.props.uid; - - useEffect(() => { - if (isEditing || needsSelection) setIsOpen(true); - }, [isEditing, needsSelection]); - - useEffect(() => { - if (!isOpen) return; - const onKeyDownCapture = (e: KeyboardEvent): void => { - if (e.key !== "Escape") return; - e.stopPropagation(); - closeDialog(); - }; - document.addEventListener("keydown", onKeyDownCapture, true); - return () => { - document.removeEventListener("keydown", onKeyDownCapture, true); - }; - }, [isOpen]); - - useEffect(() => { - if (!isOpen) return; - if (!query.trim()) { - setResults([]); - return; - } - const timeout = window.setTimeout(() => { - const r = - shape.type === "page-node" - ? searchPages({ query }).slice(0, 20) - : searchBlocks({ query }).slice(0, 20); - setResults(r); - }, 120); - return () => window.clearTimeout(timeout); - }, [isOpen, query, shape.type]); - - const closeDialog = (): void => { - setIsOpen(false); - setSelectedUid(""); - editor.setEditingShape(null); - if (!shape.props.uid) { - editor.deleteShapes([shapeId]); - } - editor.setCurrentTool("select"); - }; - - const applySelection = ({ uid, title }: SearchResult): void => { - editor.updateShapes([ - { - id: shapeId, - type: shape.type as unknown as TLShape["type"], - props: { - ...shape.props, - uid, - title, - }, - }, - ]); - setIsOpen(false); - editor.setEditingShape(null); - editor.setCurrentTool("select"); - }; - - const selectedResult = results.find((r) => r.uid === selectedUid) || null; - const handleEscape = (e: React.KeyboardEvent | KeyboardEvent): void => { - if (e.key !== "Escape") return; - e.stopPropagation(); - if ("preventDefault" in e) e.preventDefault(); - closeDialog(); - }; - - return ( - -
e.stopPropagation()} - onKeyDownCapture={handleEscape} - style={{ pointerEvents: "all" }} - > -
- ) => - setQuery(e.target.value) - } - onKeyDown={handleEscape} - /> -
- - {results.map((result) => ( - { - e.preventDefault(); - e.stopPropagation(); - setSelectedUid(result.uid); - }} - onClick={() => setSelectedUid(result.uid)} - /> - ))} - -
-
-
-
-
-
-
-
- ); -}; - -class BaseRoamNodeShapeUtil extends BaseBoxShapeUtil { +class BaseRoamNodeShapeUtil extends BaseBoxShapeUtil { static override props = { w: T.number, h: T.number, @@ -237,11 +79,8 @@ class BaseRoamNodeShapeUtil extends BaseBoxShapeUtil { title: T.string, }; - override canEdit = () => true; + override canEdit = () => false; override canResize = () => true; - override onDoubleClick(shape: RoamNodeShape): void { - this.editor.setEditingShape(toShapeId(shape.id)); - } override getDefaultProps(): RoamNodeShape["props"] { return { @@ -253,7 +92,7 @@ class BaseRoamNodeShapeUtil extends BaseBoxShapeUtil { } override indicator(shape: RoamNodeShape): JSX.Element { - const { bounds } = this.editor.getShapeGeometry(toShapeId(shape.id)); + const { bounds } = this.editor.getShapeGeometry(shape); return ( { override component(shape: RoamNodeShape): JSX.Element { const style = TYPE_STYLES[shape.type]; return ( - <> - - -
- {shape.props.title || (shape.type === "page-node" ? "Page" : "Block")} -
-
- + +
+ {shape.props.title || (shape.type === "page-node" ? "Page" : "Block")} +
+
); } } @@ -298,9 +134,9 @@ export const createDefaultNodeShapeTools = (): TLStateNodeConstructor[] => override onPointerDown = (): void => { const { currentPagePoint } = this.editor.inputs; const shapeId = createShapeId(); - this.editor.createShape({ - id: toShapeId(shapeId), - type: this.shapeType as unknown as TLShape["type"], + this.editor.createShape({ + id: shapeId, + type: this.shapeType, x: currentPagePoint.x, y: currentPagePoint.y, props: { @@ -310,7 +146,7 @@ export const createDefaultNodeShapeTools = (): TLStateNodeConstructor[] => h: 120, }, }); - this.editor.setEditingShape(toShapeId(shapeId)); + this.editor.select(shapeId); this.editor.setCurrentTool("select"); }; }, diff --git a/src/components/canvas/Tldraw.tsx b/src/components/canvas/Tldraw.tsx index 57d39b2..dc4dbaf 100644 --- a/src/components/canvas/Tldraw.tsx +++ b/src/components/canvas/Tldraw.tsx @@ -1,39 +1,54 @@ -import React, { useMemo, useRef } from "react"; +import React, { useEffect, useMemo, useState, useRef } from "react"; import { OnloadArgs } from "roamjs-components/types"; import renderWithUnmount from "roamjs-components/util/renderWithUnmount"; import getPageUidByPageTitle from "roamjs-components/queries/getPageUidByPageTitle"; import { Box, Editor, - TLShape, - TLShapeId, TLPointerEventInfo, Tldraw, + createShapeId, defaultHandleExternalTextContent, defaultShapeTools, defaultShapeUtils, defaultTools, } from "tldraw"; import openBlockInSidebar from "roamjs-components/writes/openBlockInSidebar"; +import { + Button, + FocusStyleManager, + InputGroup, + Menu, + MenuItem, +} from "@blueprintjs/core"; import "tldraw/tldraw.css"; import { useRoamStore } from "./useRoamStore"; import { createDefaultNodeShapeTools, createDefaultNodeShapeUtils, + DefaultNodeType, getNodeTypeFromRoamRefText, + RoamNodeShape, + searchBlocks, + searchPages, + SearchResult, } from "./DefaultNodeUtil"; import { CANVAS_MAXIMIZE_HOTKEY_KEY, + customAssetUrls, createUiComponents, createUiOverrides, } from "./uiOverrides"; import tldrawStyles from "./tldrawStyles"; -const createShapeId = (): string => - `shape:${window.roamAlphaAPI.util.generateUID()}`; -const toShapeId = (id: string): TLShapeId => id as TLShapeId; -const toShapeType = (type: string): TLShape["type"] => - type as unknown as TLShape["type"]; +type InspectorTarget = { + id: RoamNodeShape["id"]; + type: DefaultNodeType; + uid: string; + title: string; + w: number; + h: number; +}; const TldrawCanvas = ({ title, @@ -45,6 +60,12 @@ const TldrawCanvas = ({ const pageUid = getPageUidByPageTitle(title); const appRef = useRef(null); const containerRef = useRef(null); + const inspectorInputRef = useRef(null); + const [inspectorTarget, setInspectorTarget] = + useState(null); + const [query, setQuery] = useState(""); + const [results, setResults] = useState([]); + const [selectedUid, setSelectedUid] = useState(""); const shapeUtils = useMemo( () => [...defaultShapeUtils, ...createDefaultNodeShapeUtils()], @@ -80,12 +101,12 @@ const TldrawCanvas = ({ const wrapper = tldrawEl.closest(".roam-article, .rm-sidebar-outline"); if (tldrawEl.classList.contains("relative")) { // Going to fullscreen - if (wrapper) wrapper.classList.add("dg-tldraw-maximized"); + if (wrapper) wrapper.classList.add("rjs-tldraw-maximized"); tldrawEl.classList.add("absolute", "inset-0"); tldrawEl.classList.remove("relative"); } else { // Going back to normal - if (wrapper) wrapper.classList.remove("dg-tldraw-maximized"); + if (wrapper) wrapper.classList.remove("rjs-tldraw-maximized"); tldrawEl.classList.add("relative"); tldrawEl.classList.remove("absolute", "inset-0"); } @@ -100,8 +121,112 @@ const TldrawCanvas = ({ ); const uiComponents = useMemo(() => createUiComponents(), []); + useEffect(() => { + if (!inspectorTarget) { + setQuery(""); + setResults([]); + setSelectedUid(""); + return; + } + setQuery(inspectorTarget.title || ""); + setSelectedUid(""); + }, [inspectorTarget?.id]); + + useEffect(() => { + if (!inspectorTarget) return; + if (!query.trim()) { + setResults([]); + return; + } + const timeout = window.setTimeout(() => { + const r = + inspectorTarget.type === "page-node" + ? searchPages({ query }).slice(0, 30) + : searchBlocks({ query }).slice(0, 30); + setResults(r); + }, 120); + return () => window.clearTimeout(timeout); + }, [inspectorTarget, query]); + + useEffect(() => { + if (!results.length) { + setSelectedUid(""); + return; + } + if (!selectedUid || !results.some((r) => r.uid === selectedUid)) { + setSelectedUid(results[0].uid); + } + }, [results, selectedUid]); + + useEffect(() => { + if (!inspectorTarget) return; + FocusStyleManager.onlyShowFocusOnTabs(); + return () => { + FocusStyleManager.alwaysShowFocus(); + }; + }, [inspectorTarget]); + + useEffect(() => { + if (!inspectorTarget) return; + const timeout = window.setTimeout(() => { + inspectorInputRef.current?.focus(); + inspectorInputRef.current?.select(); + }, 0); + return () => window.clearTimeout(timeout); + }, [inspectorTarget?.id]); + if (!pageUid) return null; + const cancelInspector = (): void => { + const editor = appRef.current; + if (!editor || !inspectorTarget) { + setInspectorTarget(null); + return; + } + if (!inspectorTarget.uid) { + editor.deleteShapes([inspectorTarget.id]); + } + editor.selectNone(); + setInspectorTarget(null); + }; + + const selectedResult = results.find((r) => r.uid === selectedUid) || null; + + const moveSelection = (delta: 1 | -1): void => { + if (!results.length) return; + const currentIndex = results.findIndex((r) => r.uid === selectedUid); + const nextIndex = + currentIndex < 0 + ? delta === 1 + ? 0 + : results.length - 1 + : (currentIndex + delta + results.length) % results.length; + setSelectedUid(results[nextIndex].uid); + }; + + const applyInspectorResult = (result: SearchResult): void => { + const editor = appRef.current; + if (!editor || !inspectorTarget) return; + editor.updateShapes([ + { + id: inspectorTarget.id, + type: inspectorTarget.type, + props: { + uid: result.uid, + title: result.title, + w: inspectorTarget.w, + h: inspectorTarget.h, + }, + }, + ]); + setInspectorTarget(null); + }; + + const applyInspector = (): void => { + if (!selectedResult) return; + applyInspectorResult(selectedResult); + }; + return (
{ appRef.current = editor; + const refreshInspectorTarget = (): void => { + const selected = editor.getOnlySelectedShape() as + | { + id: RoamNodeShape["id"]; + type: string; + props?: { + uid?: string; + title?: string; + w?: number; + h?: number; + }; + } + | undefined; + if (!selected) { + setInspectorTarget(null); + return; + } + if ( + selected.type !== "page-node" && + selected.type !== "blck-node" + ) { + setInspectorTarget(null); + return; + } + if (selected.props?.uid) { + setInspectorTarget(null); + return; + } + setInspectorTarget({ + id: selected.id, + type: selected.type as DefaultNodeType, + uid: selected.props?.uid || "", + title: selected.props?.title || "", + w: selected.props?.w || 260, + h: selected.props?.h || 120, + }); + }; + editor.on("event", (event) => { const e = event as TLPointerEventInfo; + refreshInspectorTarget(); const validModifier = e.shiftKey || e.ctrlKey; if (!(e.name === "pointer_up" && validModifier)) return; @@ -165,9 +330,9 @@ const TldrawCanvas = ({ } const point = content.point ?? editor.getViewportPageBounds().center; - editor.createShape({ - id: toShapeId(createShapeId()), - type: toShapeType(match.type), + editor.createShape({ + id: createShapeId(), + type: match.type, x: point.x, y: point.y, props: { @@ -180,6 +345,84 @@ const TldrawCanvas = ({ }); }} /> + {inspectorTarget && ( +
+ )} + {inspectorTarget && ( +
e.stopPropagation()} + style={{ pointerEvents: "all" }} + > +
+
+
+ {inspectorTarget.type === "page-node" + ? "Select Page" + : "Select Block"} +
+
+
+
+ ) => + setQuery(e.target.value) + } + onKeyDown={(e) => { + if (e.key === "Escape") { + e.preventDefault(); + cancelInspector(); + } else if (e.key === "ArrowDown") { + e.preventDefault(); + moveSelection(1); + } else if (e.key === "ArrowUp") { + e.preventDefault(); + moveSelection(-1); + } else if (e.key === "Enter" && selectedResult) { + e.preventDefault(); + applyInspector(); + } + }} + /> +
+ + {results.map((result) => ( + ) => { + setSelectedUid(result.uid); + if (e.detail === 2) { + applyInspectorResult(result); + } + }} + /> + ))} + +
+
+
+ )}
); }; diff --git a/src/components/canvas/tldrawStyles.ts b/src/components/canvas/tldrawStyles.ts index 2f67b30..15f638d 100644 --- a/src/components/canvas/tldrawStyles.ts +++ b/src/components/canvas/tldrawStyles.ts @@ -1,5 +1,7 @@ // tldrawStyles.ts because some of these styles need to be inlined export default /* css */ ` + + /* Hide Roam Blocks only when a canvas is present under the root */ .roam-article:has(.roamjs-tldraw-canvas-container) .rm-block-children { display: none; @@ -61,4 +63,17 @@ export default /* css */ ` .roam-main { position: relative; } + +/* Node inspector active row style */ +.roamjs-node-inspector .bp3-menu-item, +.roamjs-node-inspector .bp3-menu-item:hover { + text-decoration: none; +} + +.roamjs-node-inspector .bp3-menu-item.bp3-active, +.roamjs-node-inspector .bp3-menu-item.bp3-active:hover { + background-color: #f3f4f6; + color: inherit; + text-decoration: none; +} `; diff --git a/src/components/canvas/uiOverrides.tsx b/src/components/canvas/uiOverrides.tsx index 125799f..ea00f6e 100644 --- a/src/components/canvas/uiOverrides.tsx +++ b/src/components/canvas/uiOverrides.tsx @@ -2,6 +2,7 @@ import React from "react"; import { DefaultToolbar, DefaultToolbarContent, + TLUiAssetUrlOverrides, TLUiComponents, TLUiOverrides, TLUiTranslationKey, @@ -12,6 +13,17 @@ import { import { DEFAULT_NODE_TOOLS } from "./DefaultNodeUtil"; export const CANVAS_MAXIMIZE_HOTKEY_KEY = "canvas-maximize-hotkey"; +const PAGE_NODE_ICON = + "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE3LjEuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHZpZXdCb3g9IjAgMCAyMCAyMCIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgMjAgMjAiIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8ZyBpZD0iZG9jdW1lbnRfM18iPgoJPGc+CgkJPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMS45OCwwaC04Yy0wLjU1LDAtMSwwLjQ1LTEsMXYxOGMwLDAuNTUsMC40NSwxLDEsMWgxM2MwLjU1LDAsMS0wLjQ1LDEtMVY2CgkJCUwxMS45OCwweiBNMTUuOTgsMThoLTExVjJoNnY1aDVWMTh6Ii8+Cgk8L2c+CjwvZz4KPC9zdmc+Cg=="; +const BLOCK_NODE_ICON = + "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE3LjEuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHZpZXdCb3g9IjAgMCAxNiAxNiIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgMTYgMTYiIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8ZyBpZD0ibGFiZWxfMl8iPgoJPGc+CgkJPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMSwySDFDMC40NSwyLDAsMi40NSwwLDN2MTBjMCwwLjU1LDAuNDUsMSwxLDFoMTRjMC41NSwwLDEtMC40NSwxLTFWN0wxMSwyegoJCQkgTTE0LDEySDJWNGg4djJIM3YxaDd2MWg0VjEyeiBNMTEsN1Y0bDMsM0gxMXogTTMsMTBoMTBWOUgzVjEweiIvPgoJPC9nPgo8L2c+Cjwvc3ZnPgo="; + +export const customAssetUrls: TLUiAssetUrlOverrides = { + icons: { + "page-node-icon": PAGE_NODE_ICON, + "block-node-icon": BLOCK_NODE_ICON, + }, +}; export const createUiOverrides = ({ toggleMaximized, @@ -24,7 +36,7 @@ export const createUiOverrides = ({ DEFAULT_NODE_TOOLS.forEach((tool) => { tools[tool.id] = { id: tool.id, - icon: "tool-text", + icon: tool.id === "page-node" ? "page-node-icon" : "block-node-icon", label: `tool.${tool.id}` as TLUiTranslationKey, kbd: tool.kbd, onSelect: () => editor.setCurrentTool(tool.id), diff --git a/src/components/canvas/useRoamStore.ts b/src/components/canvas/useRoamStore.ts index 6a7e57c..60a387c 100644 --- a/src/components/canvas/useRoamStore.ts +++ b/src/components/canvas/useRoamStore.ts @@ -10,6 +10,33 @@ type RoamTldrawState = { tldraw: Parameters[1]; }; +const sanitizeNodePropsInSnapshot = ( + snapshot: Parameters[1], +): Parameters[1] => { + const cloned = JSON.parse(JSON.stringify(snapshot)) as Record; + + const visit = (value: unknown): void => { + if (!value || typeof value !== "object") return; + const record = value as Record; + const isTargetNode = + record.typeName === "shape" && + (record.type === "page-node" || record.type === "blck-node"); + if (isTargetNode && record.props && typeof record.props === "object") { + const props = record.props as Record; + record.props = { + w: typeof props.w === "number" ? props.w : 260, + h: typeof props.h === "number" ? props.h : 120, + uid: typeof props.uid === "string" ? props.uid : "", + title: typeof props.title === "string" ? props.title : "", + }; + } + Object.values(record).forEach(visit); + }; + + visit(cloned); + return cloned as Parameters[1]; +}; + const parseRoamTldrawState = ( value: JsonValue | undefined, ): RoamTldrawState | undefined => { @@ -74,7 +101,11 @@ export const useRoamStore = ({ const persisted = getPersistedSnapshot(pageUid); if (persisted?.tldraw) { - loadSnapshot(tlStore, persisted.tldraw); + try { + loadSnapshot(tlStore, persisted.tldraw); + } catch { + loadSnapshot(tlStore, sanitizeNodePropsInSnapshot(persisted.tldraw)); + } } return tlStore; }, [customShapeUtils, pageUid]); @@ -124,7 +155,11 @@ export const useRoamStore = ({ window.clearTimeout(deserializeTimeout.current); deserializeTimeout.current = window.setTimeout(() => { store.mergeRemoteChanges(() => { - loadSnapshot(store, state.tldraw); + try { + loadSnapshot(store, state.tldraw); + } catch { + loadSnapshot(store, sanitizeNodePropsInSnapshot(state.tldraw)); + } }); }, THROTTLE_MS); }, From 93bbfc684b045b0bfc257400403a176c1662385b Mon Sep 17 00:00:00 2001 From: Michael Gartner Date: Sat, 7 Feb 2026 00:38:33 -0600 Subject: [PATCH 07/21] Enhance search functionality in DefaultNodeUtil and Tldraw components by adding edit time to search results and improving loading state management. Refactor result handling to limit visible results and ensure consistent user experience during searches. --- src/components/canvas/DefaultNodeUtil.tsx | 79 +++++++++---- src/components/canvas/Tldraw.tsx | 129 +++++++++++++--------- 2 files changed, 135 insertions(+), 73 deletions(-) diff --git a/src/components/canvas/DefaultNodeUtil.tsx b/src/components/canvas/DefaultNodeUtil.tsx index cd9d6c3..f01a544 100644 --- a/src/components/canvas/DefaultNodeUtil.tsx +++ b/src/components/canvas/DefaultNodeUtil.tsx @@ -24,37 +24,72 @@ export type RoamNodeShape = TLBaseShape; export type SearchResult = { uid: string; title: string; + editTime: number; }; const escapeRegex = (value: string): string => value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"); -export const searchPages = ({ query }: { query: string }): SearchResult[] => { +export const searchPages = ({ + query, +}: { + query: string; +}): SearchResult[] => { const pattern = escapeRegex(query.trim()); - if (!pattern) return []; - const rows = window.roamAlphaAPI.q( - `[:find ?uid ?title - :where - [?e :node/title ?title] - [?e :block/uid ?uid] - [(re-pattern "(?i)${pattern}") ?re] - [(re-find ?re ?title)]]`, - ) as [string, string][]; - return rows.map(([uid, title]) => ({ uid, title })); + const rows = ( + pattern + ? window.roamAlphaAPI.q( + `[:find ?uid ?title ?time + :where + [?e :node/title ?title] + [?e :block/uid ?uid] + [(get-else $ ?e :edit/time 0) ?time] + [(re-pattern "(?i)${pattern}") ?re] + [(re-find ?re ?title)]]`, + ) + : window.roamAlphaAPI.q( + `[:find ?uid ?title ?time + :where + [?e :node/title ?title] + [?e :block/uid ?uid] + [(get-else $ ?e :edit/time 0) ?time]]`, + ) + ) as [string, string, number][]; + + return rows + .map(([uid, title, editTime]) => ({ uid, title, editTime: editTime || 0 })) + .sort((a, b) => b.editTime - a.editTime); }; -export const searchBlocks = ({ query }: { query: string }): SearchResult[] => { +export const searchBlocks = ({ + query, +}: { + query: string; +}): SearchResult[] => { const pattern = escapeRegex(query.trim()); - if (!pattern) return []; - const rows = window.roamAlphaAPI.q( - `[:find ?uid ?text - :where - [?e :block/string ?text] - [?e :block/uid ?uid] - [(re-pattern "(?i)${pattern}") ?re] - [(re-find ?re ?text)]]`, - ) as [string, string][]; - return rows.map(([uid, title]) => ({ uid, title })); + const rows = ( + pattern + ? window.roamAlphaAPI.q( + `[:find ?uid ?text ?time + :where + [?e :block/string ?text] + [?e :block/uid ?uid] + [(get-else $ ?e :edit/time 0) ?time] + [(re-pattern "(?i)${pattern}") ?re] + [(re-find ?re ?text)]]`, + ) + : window.roamAlphaAPI.q( + `[:find ?uid ?text ?time + :where + [?e :block/string ?text] + [?e :block/uid ?uid] + [(get-else $ ?e :edit/time 0) ?time]]`, + ) + ) as [string, string, number][]; + + return rows + .map(([uid, title, editTime]) => ({ uid, title, editTime: editTime || 0 })) + .sort((a, b) => b.editTime - a.editTime); }; const TYPE_STYLES: Record = { diff --git a/src/components/canvas/Tldraw.tsx b/src/components/canvas/Tldraw.tsx index dc4dbaf..34e45a6 100644 --- a/src/components/canvas/Tldraw.tsx +++ b/src/components/canvas/Tldraw.tsx @@ -20,6 +20,7 @@ import { InputGroup, Menu, MenuItem, + Spinner, } from "@blueprintjs/core"; import "tldraw/tldraw.css"; import { useRoamStore } from "./useRoamStore"; @@ -50,6 +51,8 @@ type InspectorTarget = { h: number; }; +const INSPECTOR_DOM_RESULT_LIMIT = 50; + const TldrawCanvas = ({ title, extensionAPI, @@ -66,6 +69,7 @@ const TldrawCanvas = ({ const [query, setQuery] = useState(""); const [results, setResults] = useState([]); const [selectedUid, setSelectedUid] = useState(""); + const [isLoadingResults, setIsLoadingResults] = useState(false); const shapeUtils = useMemo( () => [...defaultShapeUtils, ...createDefaultNodeShapeUtils()], @@ -126,6 +130,7 @@ const TldrawCanvas = ({ setQuery(""); setResults([]); setSelectedUid(""); + setIsLoadingResults(false); return; } setQuery(inspectorTarget.title || ""); @@ -134,29 +139,35 @@ const TldrawCanvas = ({ useEffect(() => { if (!inspectorTarget) return; - if (!query.trim()) { - setResults([]); - return; - } + setIsLoadingResults(true); const timeout = window.setTimeout(() => { const r = inspectorTarget.type === "page-node" - ? searchPages({ query }).slice(0, 30) - : searchBlocks({ query }).slice(0, 30); + ? searchPages({ query }) + : searchBlocks({ query }); setResults(r); + setIsLoadingResults(false); }, 120); - return () => window.clearTimeout(timeout); + return () => { + window.clearTimeout(timeout); + setIsLoadingResults(false); + }; }, [inspectorTarget, query]); + const visibleResults = useMemo( + () => results.slice(0, INSPECTOR_DOM_RESULT_LIMIT), + [results], + ); + useEffect(() => { - if (!results.length) { + if (!visibleResults.length) { setSelectedUid(""); return; } - if (!selectedUid || !results.some((r) => r.uid === selectedUid)) { - setSelectedUid(results[0].uid); + if (!selectedUid || !visibleResults.some((r) => r.uid === selectedUid)) { + setSelectedUid(visibleResults[0].uid); } - }, [results, selectedUid]); + }, [visibleResults, selectedUid]); useEffect(() => { if (!inspectorTarget) return; @@ -190,18 +201,19 @@ const TldrawCanvas = ({ setInspectorTarget(null); }; - const selectedResult = results.find((r) => r.uid === selectedUid) || null; + const selectedResult = + visibleResults.find((r) => r.uid === selectedUid) || null; const moveSelection = (delta: 1 | -1): void => { - if (!results.length) return; - const currentIndex = results.findIndex((r) => r.uid === selectedUid); + if (!visibleResults.length) return; + const currentIndex = visibleResults.findIndex((r) => r.uid === selectedUid); const nextIndex = currentIndex < 0 ? delta === 1 ? 0 - : results.length - 1 - : (currentIndex + delta + results.length) % results.length; - setSelectedUid(results[nextIndex].uid); + : visibleResults.length - 1 + : (currentIndex + delta + visibleResults.length) % visibleResults.length; + setSelectedUid(visibleResults[nextIndex].uid); }; const applyInspectorResult = (result: SearchResult): void => { @@ -353,28 +365,37 @@ const TldrawCanvas = ({ )} {inspectorTarget && (
e.stopPropagation()} - style={{ pointerEvents: "all" }} + style={{ + top: "3.25rem", + height: "calc(100% - 50px)", + boxShadow: + "0px 0px 2px hsl(0, 0%, 0%, 16%), 0px 2px 3px hsl(0, 0%, 0%, 24%), 0px 2px 6px hsl(0, 0%, 0%, 0.1), inset 0px 0px 0px 1px hsl(0, 0%, 100%)", + }} > -
-
-
- {inspectorTarget.type === "page-node" - ? "Select Page" - : "Select Block"} -
-
-
+
+

+ {inspectorTarget.type === "page-node" ? "Select Page" : "Select Block"} +

+
+
+
+
- - {results.map((result) => ( - ) => { - setSelectedUid(result.uid); - if (e.detail === 2) { - applyInspectorResult(result); - } - }} - /> - ))} - + {isLoadingResults ? ( +
+ +
+ ) : ( + + {visibleResults.map((result) => ( + ) => { + setSelectedUid(result.uid); + if (e.detail === 2) { + applyInspectorResult(result); + } + }} + /> + ))} + + )}
From 716d3fb9f4685b069aef5e8ca8219ba5ac793cab Mon Sep 17 00:00:00 2001 From: Michael Gartner Date: Sat, 7 Feb 2026 00:41:31 -0600 Subject: [PATCH 08/21] Refactor Tldraw component to improve inspector target management and debounce search functionality. Introduce a constant for debounce time and enhance state handling to prevent unnecessary updates when the selected target remains unchanged. --- src/components/canvas/Tldraw.tsx | 58 +++++++++++++++++++------------- 1 file changed, 34 insertions(+), 24 deletions(-) diff --git a/src/components/canvas/Tldraw.tsx b/src/components/canvas/Tldraw.tsx index 34e45a6..e0db1ea 100644 --- a/src/components/canvas/Tldraw.tsx +++ b/src/components/canvas/Tldraw.tsx @@ -52,6 +52,7 @@ type InspectorTarget = { }; const INSPECTOR_DOM_RESULT_LIMIT = 50; +const INSPECTOR_SEARCH_DEBOUNCE_MS = 250; const TldrawCanvas = ({ title, @@ -147,12 +148,12 @@ const TldrawCanvas = ({ : searchBlocks({ query }); setResults(r); setIsLoadingResults(false); - }, 120); + }, INSPECTOR_SEARCH_DEBOUNCE_MS); return () => { window.clearTimeout(timeout); setIsLoadingResults(false); }; - }, [inspectorTarget, query]); + }, [inspectorTarget?.id, inspectorTarget?.type, query]); const visibleResults = useMemo( () => results.slice(0, INSPECTOR_DOM_RESULT_LIMIT), @@ -269,28 +270,37 @@ const TldrawCanvas = ({ }; } | undefined; - if (!selected) { - setInspectorTarget(null); - return; - } - if ( - selected.type !== "page-node" && - selected.type !== "blck-node" - ) { - setInspectorTarget(null); - return; - } - if (selected.props?.uid) { - setInspectorTarget(null); - return; - } - setInspectorTarget({ - id: selected.id, - type: selected.type as DefaultNodeType, - uid: selected.props?.uid || "", - title: selected.props?.title || "", - w: selected.props?.w || 260, - h: selected.props?.h || 120, + setInspectorTarget((prev) => { + if ( + !selected || + (selected.type !== "page-node" && selected.type !== "blck-node") || + selected.props?.uid + ) { + return prev ? null : prev; + } + + const nextTarget: InspectorTarget = { + id: selected.id, + type: selected.type as DefaultNodeType, + uid: selected.props?.uid || "", + title: selected.props?.title || "", + w: selected.props?.w || 260, + h: selected.props?.h || 120, + }; + + if ( + prev && + prev.id === nextTarget.id && + prev.type === nextTarget.type && + prev.uid === nextTarget.uid && + prev.title === nextTarget.title && + prev.w === nextTarget.w && + prev.h === nextTarget.h + ) { + return prev; + } + + return nextTarget; }); }; From 2474e14a254d8df7c18a8f7ae7a47ccbbc45f560 Mon Sep 17 00:00:00 2001 From: Michael Gartner Date: Sat, 7 Feb 2026 01:00:42 -0600 Subject: [PATCH 09/21] Refactor search functionality in DefaultNodeUtil and Tldraw components to return promises for search results. Improve loading state management and prevent unnecessary updates during search requests by implementing request cancellation and debounce logic. --- src/components/canvas/DefaultNodeUtil.tsx | 44 +++++++++++++---------- src/components/canvas/Tldraw.tsx | 41 ++++++++++++++++++--- 2 files changed, 62 insertions(+), 23 deletions(-) diff --git a/src/components/canvas/DefaultNodeUtil.tsx b/src/components/canvas/DefaultNodeUtil.tsx index f01a544..7c8c7cc 100644 --- a/src/components/canvas/DefaultNodeUtil.tsx +++ b/src/components/canvas/DefaultNodeUtil.tsx @@ -34,11 +34,11 @@ export const searchPages = ({ query, }: { query: string; -}): SearchResult[] => { +}): Promise => { const pattern = escapeRegex(query.trim()); - const rows = ( + return (( pattern - ? window.roamAlphaAPI.q( + ? window.roamAlphaAPI.data.async.q( `[:find ?uid ?title ?time :where [?e :node/title ?title] @@ -47,29 +47,33 @@ export const searchPages = ({ [(re-pattern "(?i)${pattern}") ?re] [(re-find ?re ?title)]]`, ) - : window.roamAlphaAPI.q( + : window.roamAlphaAPI.data.async.q( `[:find ?uid ?title ?time :where [?e :node/title ?title] [?e :block/uid ?uid] [(get-else $ ?e :edit/time 0) ?time]]`, ) - ) as [string, string, number][]; - - return rows - .map(([uid, title, editTime]) => ({ uid, title, editTime: editTime || 0 })) - .sort((a, b) => b.editTime - a.editTime); + ) as Promise<[string, string, number][]>).then((rows) => + rows + .map(([uid, title, editTime]) => ({ + uid, + title, + editTime: editTime || 0, + })) + .sort((a, b) => b.editTime - a.editTime), + ); }; export const searchBlocks = ({ query, }: { query: string; -}): SearchResult[] => { +}): Promise => { const pattern = escapeRegex(query.trim()); - const rows = ( + return (( pattern - ? window.roamAlphaAPI.q( + ? window.roamAlphaAPI.data.async.q( `[:find ?uid ?text ?time :where [?e :block/string ?text] @@ -78,18 +82,22 @@ export const searchBlocks = ({ [(re-pattern "(?i)${pattern}") ?re] [(re-find ?re ?text)]]`, ) - : window.roamAlphaAPI.q( + : window.roamAlphaAPI.data.async.q( `[:find ?uid ?text ?time :where [?e :block/string ?text] [?e :block/uid ?uid] [(get-else $ ?e :edit/time 0) ?time]]`, ) - ) as [string, string, number][]; - - return rows - .map(([uid, title, editTime]) => ({ uid, title, editTime: editTime || 0 })) - .sort((a, b) => b.editTime - a.editTime); + ) as Promise<[string, string, number][]>).then((rows) => + rows + .map(([uid, title, editTime]) => ({ + uid, + title, + editTime: editTime || 0, + })) + .sort((a, b) => b.editTime - a.editTime), + ); }; const TYPE_STYLES: Record = { diff --git a/src/components/canvas/Tldraw.tsx b/src/components/canvas/Tldraw.tsx index e0db1ea..981cb6a 100644 --- a/src/components/canvas/Tldraw.tsx +++ b/src/components/canvas/Tldraw.tsx @@ -65,6 +65,8 @@ const TldrawCanvas = ({ const appRef = useRef(null); const containerRef = useRef(null); const inspectorInputRef = useRef(null); + const searchRequestIdRef = useRef(0); + const lastSearchTargetIdRef = useRef(null); const [inspectorTarget, setInspectorTarget] = useState(null); const [query, setQuery] = useState(""); @@ -132,6 +134,7 @@ const TldrawCanvas = ({ setResults([]); setSelectedUid(""); setIsLoadingResults(false); + lastSearchTargetIdRef.current = null; return; } setQuery(inspectorTarget.title || ""); @@ -140,18 +143,46 @@ const TldrawCanvas = ({ useEffect(() => { if (!inspectorTarget) return; - setIsLoadingResults(true); + const requestId = ++searchRequestIdRef.current; + let cancelled = false; + const isNewTarget = lastSearchTargetIdRef.current !== inspectorTarget.id; + lastSearchTargetIdRef.current = inspectorTarget.id; + if (isNewTarget) { + setIsLoadingResults(true); + } const timeout = window.setTimeout(() => { - const r = + if (!isNewTarget) { + setIsLoadingResults(true); + } + const promise = inspectorTarget.type === "page-node" ? searchPages({ query }) : searchBlocks({ query }); - setResults(r); - setIsLoadingResults(false); + void promise + .then((r) => { + if ( + cancelled || + requestId !== searchRequestIdRef.current + ) { + return; + } + setResults(r); + setIsLoadingResults(false); + }) + .catch(() => { + if ( + cancelled || + requestId !== searchRequestIdRef.current + ) { + return; + } + setResults([]); + setIsLoadingResults(false); + }); }, INSPECTOR_SEARCH_DEBOUNCE_MS); return () => { + cancelled = true; window.clearTimeout(timeout); - setIsLoadingResults(false); }; }, [inspectorTarget?.id, inspectorTarget?.type, query]); From 6d8c96365d73557d6a549326af60f5de8c8bd9e3 Mon Sep 17 00:00:00 2001 From: Michael Gartner Date: Sat, 7 Feb 2026 01:19:38 -0600 Subject: [PATCH 10/21] Implement inspector maximization feature in Tldraw component, enhancing user experience with dynamic panel resizing. Update styles for improved visual feedback on inspector interactions. --- src/components/canvas/Tldraw.tsx | 62 ++++++++++++++++++--------- src/components/canvas/tldrawStyles.ts | 7 ++- 2 files changed, 46 insertions(+), 23 deletions(-) diff --git a/src/components/canvas/Tldraw.tsx b/src/components/canvas/Tldraw.tsx index 981cb6a..da4a6c1 100644 --- a/src/components/canvas/Tldraw.tsx +++ b/src/components/canvas/Tldraw.tsx @@ -73,6 +73,8 @@ const TldrawCanvas = ({ const [results, setResults] = useState([]); const [selectedUid, setSelectedUid] = useState(""); const [isLoadingResults, setIsLoadingResults] = useState(false); + const [isInspectorMaximized, setIsInspectorMaximized] = + useState(false); const shapeUtils = useMemo( () => [...defaultShapeUtils, ...createDefaultNodeShapeUtils()], @@ -134,6 +136,7 @@ const TldrawCanvas = ({ setResults([]); setSelectedUid(""); setIsLoadingResults(false); + setIsInspectorMaximized(false); lastSearchTargetIdRef.current = null; return; } @@ -160,20 +163,14 @@ const TldrawCanvas = ({ : searchBlocks({ query }); void promise .then((r) => { - if ( - cancelled || - requestId !== searchRequestIdRef.current - ) { + if (cancelled || requestId !== searchRequestIdRef.current) { return; } setResults(r); setIsLoadingResults(false); }) .catch(() => { - if ( - cancelled || - requestId !== searchRequestIdRef.current - ) { + if (cancelled || requestId !== searchRequestIdRef.current) { return; } setResults([]); @@ -244,7 +241,8 @@ const TldrawCanvas = ({ ? delta === 1 ? 0 : visibleResults.length - 1 - : (currentIndex + delta + visibleResults.length) % visibleResults.length; + : (currentIndex + delta + visibleResults.length) % + visibleResults.length; setSelectedUid(visibleResults[nextIndex].uid); }; @@ -304,7 +302,8 @@ const TldrawCanvas = ({ setInspectorTarget((prev) => { if ( !selected || - (selected.type !== "page-node" && selected.type !== "blck-node") || + (selected.type !== "page-node" && + selected.type !== "blck-node") || selected.props?.uid ) { return prev ? null : prev; @@ -406,9 +405,12 @@ const TldrawCanvas = ({ )} {inspectorTarget && (
e.stopPropagation()} style={{ + zIndex: 300, top: "3.25rem", height: "calc(100% - 50px)", boxShadow: @@ -419,24 +421,42 @@ const TldrawCanvas = ({ className="flex max-h-10 flex-shrink-0 items-center rounded-t-lg bg-white px-3" style={{ minHeight: "35px" }} > -

- {inspectorTarget.type === "page-node" ? "Select Page" : "Select Block"} -

-
-
+
+
-
+
Date: Sat, 7 Feb 2026 01:33:07 -0600 Subject: [PATCH 11/21] Enhance DefaultNodeUtil and Tldraw components by adding buttons for opening blocks in the main window and sidebar. Improve user interaction with dynamic labels and refined styles for better visual feedback in the inspector panel. --- src/components/canvas/DefaultNodeUtil.tsx | 71 ++++++++++++++++++++++- src/components/canvas/Tldraw.tsx | 70 +++++++++++----------- 2 files changed, 105 insertions(+), 36 deletions(-) diff --git a/src/components/canvas/DefaultNodeUtil.tsx b/src/components/canvas/DefaultNodeUtil.tsx index 7c8c7cc..76fc811 100644 --- a/src/components/canvas/DefaultNodeUtil.tsx +++ b/src/components/canvas/DefaultNodeUtil.tsx @@ -1,4 +1,6 @@ import React from "react"; +import { Button } from "@blueprintjs/core"; +import openBlockInSidebar from "roamjs-components/writes/openBlockInSidebar"; import { BaseBoxShapeUtil, HTMLContainer, @@ -146,16 +148,79 @@ class BaseRoamNodeShapeUtil extends BaseBoxShapeUtil { override component(shape: RoamNodeShape): JSX.Element { const style = TYPE_STYLES[shape.type]; + const isConfigured = Boolean(shape.props.uid); + const emptyLabel = + shape.type === "page-node" ? "Click to set page" : "Click to set block"; + const openInMainWindow = (): void => { + if (!shape.props.uid) return; + const isPage = Boolean( + window.roamAlphaAPI.pull("[:node/title]", [":block/uid", shape.props.uid])?.[ + ":node/title" + ], + ); + if (isPage) { + void window.roamAlphaAPI.ui.mainWindow.openPage({ + page: { uid: shape.props.uid }, + }); + return; + } + void window.roamAlphaAPI.ui.mainWindow.openBlock({ + block: { uid: shape.props.uid }, + }); + }; return ( -
- {shape.props.title || (shape.type === "page-node" ? "Page" : "Block")} +
+ {isConfigured && ( +
+
+ )} +
+ {shape.props.title || emptyLabel} +
); diff --git a/src/components/canvas/Tldraw.tsx b/src/components/canvas/Tldraw.tsx index da4a6c1..ffff30c 100644 --- a/src/components/canvas/Tldraw.tsx +++ b/src/components/canvas/Tldraw.tsx @@ -418,42 +418,46 @@ const TldrawCanvas = ({ }} >
-
-
- {inspectorTarget.type === "page-node" - ? "Select Page" - : "Select Block"} +
+
+
+ {inspectorTarget.type === "page-node" + ? "Select Page" + : "Select Block"} +
+
+
+
-
-
-
From 9097d3bdd9dd88457967af51f5522b9d8999a9fd Mon Sep 17 00:00:00 2001 From: Michael Gartner Date: Sat, 7 Feb 2026 01:41:31 -0600 Subject: [PATCH 12/21] Add Prettier configuration and plugins for improved code formatting - Introduced a Prettier configuration file to enforce consistent code styling. - Added Prettier and Prettier Tailwind CSS plugin as development dependencies. - Updated VSCode settings to integrate Prettier for automatic formatting on save. --- .prettierrc | 3 +++ .vscode/settings.json | 9 +++++++++ package.json | 2 ++ 3 files changed, 14 insertions(+) create mode 100644 .prettierrc create mode 100644 .vscode/settings.json diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 0000000..b4bfed3 --- /dev/null +++ b/.prettierrc @@ -0,0 +1,3 @@ +{ + "plugins": ["prettier-plugin-tailwindcss"] +} diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..f3b295c --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,9 @@ +{ + "editor.formatOnSave": true, + "prettier.requireConfig": true, + "prettier.prettierPath": "./node_modules/prettier", + "editor.defaultFormatter": "esbenp.prettier-vscode", + "eslint.useFlatConfig": true, + "eslint.workingDirectories": [{ "mode": "auto" }] + } + \ No newline at end of file diff --git a/package.json b/package.json index 5529d73..bd95ec5 100644 --- a/package.json +++ b/package.json @@ -25,6 +25,8 @@ "extends": "node_modules/roamjs-components/package.json" }, "devDependencies": { + "prettier": "^3.4.2", + "prettier-plugin-tailwindcss": "^0.6.9", "tailwindcss": "^3.4.0", "tsx": "^4.21.0", "typescript": "^5.9.3" From 1f1b3511a20a869798f217dfa62bf7240cf35751 Mon Sep 17 00:00:00 2001 From: Michael Gartner Date: Sat, 7 Feb 2026 01:43:01 -0600 Subject: [PATCH 13/21] Update DefaultNodeUtil and uiOverrides components to enhance node styling and introduce keyboard shortcuts dialog. Refactor TYPE_STYLES to include border properties for improved visual design, and implement a new MainMenu and KeyboardShortcutsDialog for better user interaction. --- src/components/canvas/DefaultNodeUtil.tsx | 18 ++++++-- src/components/canvas/uiOverrides.tsx | 52 +++++++++++++++++++++++ 2 files changed, 67 insertions(+), 3 deletions(-) diff --git a/src/components/canvas/DefaultNodeUtil.tsx b/src/components/canvas/DefaultNodeUtil.tsx index 76fc811..deed376 100644 --- a/src/components/canvas/DefaultNodeUtil.tsx +++ b/src/components/canvas/DefaultNodeUtil.tsx @@ -102,9 +102,20 @@ export const searchBlocks = ({ ); }; -const TYPE_STYLES: Record = { - "page-node": { bg: "#111827", color: "#f9fafb" }, - "blck-node": { bg: "#334155", color: "#f8fafc" }, +const TYPE_STYLES: Record< + DefaultNodeType, + { bg: string; color: string; border: string } +> = { + "page-node": { + bg: "#ffffff", + color: "#182026", + border: "1px solid rgba(92, 112, 128, 0.25)", + }, + "blck-node": { + bg: "rgba(92,112,128,0.05)", + color: "#182026", + border: "1px solid rgba(92, 112, 128, 0.2)", + }, }; export const DEFAULT_NODE_TOOLS: { @@ -174,6 +185,7 @@ class BaseRoamNodeShapeUtil extends BaseBoxShapeUtil { style={{ backgroundColor: style.bg, color: style.color, + border: style.border, }} >
({ ); }, + KeyboardShortcutsDialog: (props) => { + const tools = useTools(); + const actions = useActions(); + return ( + + {DEFAULT_NODE_TOOLS.map((tool) => ( + + ))} + + + + ); + }, + MainMenu: () => { + const ViewMenu = () => { + const actions = useActions(); + return ( + + + + + + + + + + + ); + }; + return ( + + + + + + + + ); + }, }); From 46f6a70f77a74a4dbcd1018d93e3d2bdf943712a Mon Sep 17 00:00:00 2001 From: Michael Gartner Date: Sat, 7 Feb 2026 02:05:13 -0600 Subject: [PATCH 14/21] Add Prettier and Prettier Tailwind CSS plugin updates in pnpm-lock.yaml - Updated Prettier to version 3.8.1 and added prettier-plugin-tailwindcss version 0.6.14 as development dependencies. - Enhanced lockfile with new resolutions and peer dependencies for improved code formatting and compatibility. --- pnpm-lock.yaml | 78 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index cf60e95..ea53d10 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -15,6 +15,12 @@ importers: specifier: 3.15.5 version: 3.15.5(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) devDependencies: + prettier: + specifier: ^3.4.2 + version: 3.8.1 + prettier-plugin-tailwindcss: + specifier: ^0.6.9 + version: 0.6.14(prettier@3.8.1) tailwindcss: specifier: ^3.4.0 version: 3.4.19(ts-node@10.9.2(@types/node@25.2.1)(typescript@5.9.3)) @@ -2803,6 +2809,72 @@ packages: resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==} engines: {node: ^10 || ^12 || >=14} + prettier-plugin-tailwindcss@0.6.14: + resolution: {integrity: sha512-pi2e/+ZygeIqntN+vC573BcW5Cve8zUB0SSAGxqpB4f96boZF4M3phPVoOFCeypwkpRYdi7+jQ5YJJUwrkGUAg==} + engines: {node: '>=14.21.3'} + peerDependencies: + '@ianvs/prettier-plugin-sort-imports': '*' + '@prettier/plugin-hermes': '*' + '@prettier/plugin-oxc': '*' + '@prettier/plugin-pug': '*' + '@shopify/prettier-plugin-liquid': '*' + '@trivago/prettier-plugin-sort-imports': '*' + '@zackad/prettier-plugin-twig': '*' + prettier: ^3.0 + prettier-plugin-astro: '*' + prettier-plugin-css-order: '*' + prettier-plugin-import-sort: '*' + prettier-plugin-jsdoc: '*' + prettier-plugin-marko: '*' + prettier-plugin-multiline-arrays: '*' + prettier-plugin-organize-attributes: '*' + prettier-plugin-organize-imports: '*' + prettier-plugin-sort-imports: '*' + prettier-plugin-style-order: '*' + prettier-plugin-svelte: '*' + peerDependenciesMeta: + '@ianvs/prettier-plugin-sort-imports': + optional: true + '@prettier/plugin-hermes': + optional: true + '@prettier/plugin-oxc': + optional: true + '@prettier/plugin-pug': + optional: true + '@shopify/prettier-plugin-liquid': + optional: true + '@trivago/prettier-plugin-sort-imports': + optional: true + '@zackad/prettier-plugin-twig': + optional: true + prettier-plugin-astro: + optional: true + prettier-plugin-css-order: + optional: true + prettier-plugin-import-sort: + optional: true + prettier-plugin-jsdoc: + optional: true + prettier-plugin-marko: + optional: true + prettier-plugin-multiline-arrays: + optional: true + prettier-plugin-organize-attributes: + optional: true + prettier-plugin-organize-imports: + optional: true + prettier-plugin-sort-imports: + optional: true + prettier-plugin-style-order: + optional: true + prettier-plugin-svelte: + optional: true + + prettier@3.8.1: + resolution: {integrity: sha512-UOnG6LftzbdaHZcKoPFtOcCKztrQ57WkHDeRD9t/PTQtmT0NHSeWWepj6pS0z/N7+08BHFDQVUrfmfMRcZwbMg==} + engines: {node: '>=14'} + hasBin: true + pretty-format@27.5.1: resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} @@ -6780,6 +6852,12 @@ snapshots: picocolors: 1.1.1 source-map-js: 1.2.1 + prettier-plugin-tailwindcss@0.6.14(prettier@3.8.1): + dependencies: + prettier: 3.8.1 + + prettier@3.8.1: {} + pretty-format@27.5.1: dependencies: ansi-regex: 5.0.1 From 02839877bdae4214109b65175e3e1faa9180fe97 Mon Sep 17 00:00:00 2001 From: Michael Gartner Date: Sat, 7 Feb 2026 02:05:24 -0600 Subject: [PATCH 15/21] Add RoamRenderedString component to DefaultNodeUtil for improved rendering of node titles - Introduced RoamRenderedString to handle rendering of node titles with fallback for errors. - Updated getNodeTypeFromRoamRefText to use BLOCK_REF_REGEX for block matching. - Refactored title display in BaseRoamNodeShapeUtil to utilize the new component for better readability. --- src/components/canvas/DefaultNodeUtil.tsx | 49 +++++++++++++++++++---- 1 file changed, 42 insertions(+), 7 deletions(-) diff --git a/src/components/canvas/DefaultNodeUtil.tsx b/src/components/canvas/DefaultNodeUtil.tsx index deed376..f1a48a1 100644 --- a/src/components/canvas/DefaultNodeUtil.tsx +++ b/src/components/canvas/DefaultNodeUtil.tsx @@ -1,6 +1,7 @@ import React from "react"; import { Button } from "@blueprintjs/core"; import openBlockInSidebar from "roamjs-components/writes/openBlockInSidebar"; +import { BLOCK_REF_REGEX } from "roamjs-components/dom/constants"; import { BaseBoxShapeUtil, HTMLContainer, @@ -29,6 +30,38 @@ export type SearchResult = { editTime: number; }; +const RoamRenderedString = ({ value }: { value: string }): JSX.Element => { + const contentRef = React.useRef(null); + + React.useEffect(() => { + const el = contentRef.current; + if (!el) return; + + if (!value) { + el.textContent = ""; + return; + } + + el.innerHTML = ""; + void window.roamAlphaAPI.ui.components + .renderString({ + el, + string: value, + }) + .catch(() => { + // Fallback keeps node readable if Roam renderer errors. + el.textContent = value; + }); + }, [value]); + + return ( +
+ ); +}; + const escapeRegex = (value: string): string => value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"); @@ -165,9 +198,10 @@ class BaseRoamNodeShapeUtil extends BaseBoxShapeUtil { const openInMainWindow = (): void => { if (!shape.props.uid) return; const isPage = Boolean( - window.roamAlphaAPI.pull("[:node/title]", [":block/uid", shape.props.uid])?.[ - ":node/title" - ], + window.roamAlphaAPI.pull("[:node/title]", [ + ":block/uid", + shape.props.uid, + ])?.[":node/title"], ); if (isPage) { void window.roamAlphaAPI.ui.mainWindow.openPage({ @@ -181,7 +215,7 @@ class BaseRoamNodeShapeUtil extends BaseBoxShapeUtil { }; return ( { />
)} +
- {shape.props.title || emptyLabel} +
@@ -287,7 +322,7 @@ export const createDefaultNodeShapeUtils = () => { export const getNodeTypeFromRoamRefText = ( text: string, ): { type: DefaultNodeType; uid: string; title: string } | null => { - const pageMatch = text.match(/^\[\[(.+)\]\]$/); + const pageMatch = text.match(/^\[\[(.+?)\]\]$/); if (pageMatch?.[1]) { const title = pageMatch[1].trim(); const result = window.roamAlphaAPI.q( @@ -298,7 +333,7 @@ export const getNodeTypeFromRoamRefText = ( return { type: "page-node", uid: pageUid, title }; } - const blockMatch = text.match(/^\(\(([a-zA-Z0-9_-]{9})\)\)$/); + const blockMatch = text.match(BLOCK_REF_REGEX); if (blockMatch?.[1]) { const uid = blockMatch[1]; const textOrPage = From 53328d67dfceb4dab98682c269f819f28dfd656f Mon Sep 17 00:00:00 2001 From: Michael Gartner Date: Sat, 7 Feb 2026 02:05:31 -0600 Subject: [PATCH 16/21] Enhance Tldraw component with drag-and-drop functionality for block UIDs - Added methods to retrieve block UIDs from DOM elements and handle dropped text. - Implemented drag event listeners to support transferring UIDs during drag-and-drop actions. - Updated external content handling to process dropped text and UIDs effectively, improving user interaction with the canvas. --- src/components/canvas/Tldraw.tsx | 124 ++++++++++++++++++++++++++++++- 1 file changed, 123 insertions(+), 1 deletion(-) diff --git a/src/components/canvas/Tldraw.tsx b/src/components/canvas/Tldraw.tsx index ffff30c..d89c761 100644 --- a/src/components/canvas/Tldraw.tsx +++ b/src/components/canvas/Tldraw.tsx @@ -2,6 +2,7 @@ import React, { useEffect, useMemo, useState, useRef } from "react"; import { OnloadArgs } from "roamjs-components/types"; import renderWithUnmount from "roamjs-components/util/renderWithUnmount"; import getPageUidByPageTitle from "roamjs-components/queries/getPageUidByPageTitle"; +import getUids from "roamjs-components/dom/getUids"; import { Box, Editor, @@ -53,6 +54,7 @@ type InspectorTarget = { const INSPECTOR_DOM_RESULT_LIMIT = 50; const INSPECTOR_SEARCH_DEBOUNCE_MS = 250; +const ROAM_URL_UID_REGEX = /(?:\/page\/|\/block\/)([\w\d_-]{9,10})/i; const TldrawCanvas = ({ title, @@ -76,6 +78,36 @@ const TldrawCanvas = ({ const [isInspectorMaximized, setIsInspectorMaximized] = useState(false); + const getBlockUidFromBullet = (bulletEl: HTMLElement): string | undefined => { + try { + const uidFromTarget = getUids(bulletEl as HTMLDivElement).blockUid; + if (uidFromTarget) return uidFromTarget; + } catch { + // continue to DOM fallback + } + const blockMain = + bulletEl.closest(".rm-block-main") || bulletEl.closest(".rm-block__self"); + if (!blockMain) return undefined; + const blockInput = blockMain.querySelector(".rm-block__input"); + if (!blockInput) return undefined; + return getUids(blockInput as HTMLDivElement).blockUid; + }; + + const getUidFromDroppedText = ({ text }: { text: string }): string => { + const trimmed = text.trim(); + const blockRefMatch = trimmed.match(/^\(\(([\w\d_-]{9,10})\)\)$/); + if (blockRefMatch?.[1]) return blockRefMatch[1]; + + const markdownLinkMatch = trimmed.match( + /^\[[^\]]*\]\((https?:\/\/[^\s)]+)\)$/i, + ); + const urlCandidate = markdownLinkMatch?.[1] || trimmed; + const urlMatch = urlCandidate.match(ROAM_URL_UID_REGEX); + if (urlMatch?.[1]) return urlMatch[1]; + + return ""; + }; + const shapeUtils = useMemo( () => [...defaultShapeUtils, ...createDefaultNodeShapeUtils()], [], @@ -215,6 +247,20 @@ const TldrawCanvas = ({ return () => window.clearTimeout(timeout); }, [inspectorTarget?.id]); + useEffect(() => { + const handleDragStart = (e: DragEvent): void => { + const target = e.target as HTMLElement | null; + if (!target) return; + const uid = getBlockUidFromBullet(target); + if (uid) { + e.dataTransfer?.setData("application/x-roam-uid", uid); + e.dataTransfer?.setData("text/x-roam-uid", uid); + } + }; + document.addEventListener("dragstart", handleDragStart); + return () => document.removeEventListener("dragstart", handleDragStart); + }, []); + if (!pageUid) return null; const cancelInspector = (): void => { @@ -269,6 +315,81 @@ const TldrawCanvas = ({ applyInspectorResult(selectedResult); }; + const handleDropPayload = ({ + dataTransfer, + clientX, + clientY, + }: { + dataTransfer: DataTransfer; + clientX: number; + clientY: number; + }): void => { + const editor = appRef.current; + if (!editor) return; + const dropPoint = editor.screenToPage({ x: clientX, y: clientY }); + const droppedText = dataTransfer.getData("text/plain") || ""; + const appUid = dataTransfer.getData("application/x-roam-uid"); + const textUid = dataTransfer.getData("text/x-roam-uid"); + const parsedUid = getUidFromDroppedText({ text: droppedText }); + const uid = appUid || textUid || parsedUid; + if (uid) { + const match = getNodeTypeFromRoamRefText(`((${uid}))`); + if (match) { + editor.createShape({ + id: createShapeId(), + type: match.type, + x: dropPoint.x, + y: dropPoint.y, + props: { + uid: match.uid, + title: match.title, + w: 220, + h: 92, + }, + }); + } + return; + } + + void editor.putExternalContent({ + type: "text", + text: droppedText, + point: dropPoint, + }); + }; + + useEffect(() => { + const container = containerRef.current; + if (!container) return; + + const onDragOverNative = (e: DragEvent): void => { + const target = e.target as Node | null; + if (!target || !container.contains(target)) return; + e.preventDefault(); + }; + + const onDropNative = (e: DragEvent): void => { + const target = e.target as Node | null; + if (!target || !container.contains(target)) return; + e.preventDefault(); + e.stopPropagation(); + (e as Event).stopImmediatePropagation?.(); + if (!e.dataTransfer) return; + handleDropPayload({ + dataTransfer: e.dataTransfer, + clientX: e.clientX, + clientY: e.clientY, + }); + }; + + container.addEventListener("dragover", onDragOverNative, true); + container.addEventListener("drop", onDropNative, true); + return () => { + container.removeEventListener("dragover", onDragOverNative, true); + container.removeEventListener("drop", onDropNative, true); + }; + }, []); + return (
{ if (content.type !== "text") return; - const match = getNodeTypeFromRoamRefText(content.text.trim()); + const trimmedText = content.text.trim(); + const match = getNodeTypeFromRoamRefText(trimmedText); if (!match) { await defaultHandleExternalTextContent(editor, { point: content.point, From 3f53fadc612e1b65d8b456114103309e99207834 Mon Sep 17 00:00:00 2001 From: Michael Gartner Date: Sat, 7 Feb 2026 03:11:08 -0600 Subject: [PATCH 17/21] Update tldrawStyles to prevent host CSS from overriding tldraw cursor styles - Added CSS rules to ensure tldraw cursors are not affected by external styles, specifically for elements with role="button". - Improved user experience by maintaining consistent cursor behavior within the tldraw canvas. --- src/components/canvas/tldrawStyles.ts | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/components/canvas/tldrawStyles.ts b/src/components/canvas/tldrawStyles.ts index 247b823..459bcd2 100644 --- a/src/components/canvas/tldrawStyles.ts +++ b/src/components/canvas/tldrawStyles.ts @@ -23,6 +23,15 @@ export default /* css */ ` .roamjs-tldraw-canvas-container svg { overflow: visible; } + + /* Prevent host CSS like [role=button]{cursor:pointer} from hijacking tldraw cursors */ + .roamjs-tldraw-canvas-container .tl-canvas, + .roamjs-tldraw-canvas-container .tl-canvas [role="button"], + .roamjs-tldraw-canvas-container .tl-canvas [role="button"]:hover, + .roamjs-tldraw-canvas-container .tl-canvas [role="button"]:focus, + .roamjs-tldraw-canvas-container .tl-canvas [role="button"]:active { + cursor: var(--tl-cursor) !important; + } /* Roam's font-family is hijacking tldraw's */ .tl-text-wrapper[data-font="draw"] div { From 296c01787276b7d69556fcf146681c2c6b620a9a Mon Sep 17 00:00:00 2001 From: Michael Gartner Date: Mon, 9 Feb 2026 21:01:25 -0600 Subject: [PATCH 18/21] Update tldraw dependency to version 3.15.1 and enhance package.json configuration - Downgraded tldraw from version 3.15.5 to 3.15.1 to address compatibility issues. - Updated package.json to include an external dependency for react-dom/client, improving integration with the global ReactDOM object. --- package.json | 7 ++-- pnpm-lock.yaml | 88 +++++++++++++++++++++++++------------------------- 2 files changed, 49 insertions(+), 46 deletions(-) diff --git a/package.json b/package.json index bd95ec5..ce54af1 100644 --- a/package.json +++ b/package.json @@ -19,10 +19,13 @@ "packageManager": "pnpm@9.15.0", "dependencies": { "roamjs-components": "0.86.4", - "tldraw": "3.15.5" + "tldraw": "3.15.1" }, "samepage": { - "extends": "node_modules/roamjs-components/package.json" + "extends": "node_modules/roamjs-components/package.json", + "external": [ + "react-dom/client=window.ReactDOM" + ] }, "devDependencies": { "prettier": "^3.4.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ea53d10..c63226e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -12,8 +12,8 @@ importers: specifier: 0.86.4 version: 0.86.4(mggo34u4bryga6uulzi23dduue) tldraw: - specifier: 3.15.5 - version: 3.15.5(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + specifier: 3.15.1 + version: 3.15.1(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) devDependencies: prettier: specifier: ^3.4.2 @@ -1581,37 +1581,37 @@ packages: '@tiptap/starter-kit@2.27.2': resolution: {integrity: sha512-bb0gJvPoDuyRUQ/iuN52j1//EtWWttw+RXAv1uJxfR0uKf8X7uAqzaOOgwjknoCIDC97+1YHwpGdnRjpDkOBxw==} - '@tldraw/editor@3.15.5': - resolution: {integrity: sha512-/PGs/SOfuJw5FOgmfqlwVcS887mK4DOHQjxEchS3pg/R/80KTA6j7BNpiHxWQ1FhYHGg+A2QEAijKNcscyK8zw==} + '@tldraw/editor@3.15.1': + resolution: {integrity: sha512-M1sYYmOUP0jC00WUhZQRXJnVagvBCzgQEjxSz7YSzyzekbv8GbhGvUpvFOgPrhPr3oS5v4YDNfTKfzXElu9ZEA==} peerDependencies: react: ^18.2.0 || ^19.0.0 react-dom: ^18.2.0 || ^19.0.0 - '@tldraw/state-react@3.15.5': - resolution: {integrity: sha512-KuiDJm4mAgdbuboowGv2hrG6tq9p7+OpatSMgJW8ZEezFJEcGcvQSeL+RWdu0lgj41pRdyg/i64ZIKWOeTpriQ==} + '@tldraw/state-react@3.15.1': + resolution: {integrity: sha512-TZQG+Slx2A5RhaonyU9mk4sqTwTNP1lyapU2cT5BG9SfpYdH8YoHmVa5DVlVjl8m/+onsKH12wKBPTJsNYEZgQ==} peerDependencies: react: ^18.2.0 || ^19.0.0 react-dom: ^18.2.0 || ^19.0.0 - '@tldraw/state@3.15.5': - resolution: {integrity: sha512-wqa6zWzfz09lV/QOgxRYpbD5nrBl+2Q43eGtM+sFJB4WclTIGQXP6m5VYns3VmEafzJuVFLmUq3RBcK/lEELxw==} + '@tldraw/state@3.15.1': + resolution: {integrity: sha512-+idRW1KmphL6POQCVYFDi0nJ30OU+YwD1eitVWc/vPVWrq1sZAnHPcH2JhB+8eky5fnSOh9Utx4/xOZdK37sWw==} - '@tldraw/store@3.15.5': - resolution: {integrity: sha512-I0khxAsRVtXbScZqsEo6aAtyyb/Mb65xl/aAMvFqH/9iNGT18pWJqgEu0i1VrXAnXA4IBjjivhhS8WhSzlEOZA==} + '@tldraw/store@3.15.1': + resolution: {integrity: sha512-EbP0QXMlqZmTOD4j3hdyKo2kofzYPXDTVEXOngW48dSy/krvErDy04sx2DyMCZKxEqv6r/zR1hwzaxXr0ByGqQ==} peerDependencies: react: ^18.2.0 || ^19.0.0 - '@tldraw/tlschema@3.15.5': - resolution: {integrity: sha512-IHOhwXYDdq6+IDkFOXb5rI/O5KAFs/Kq3p9QIK174LvUbsT27Xlzv/ikZe68OafvonNo1QIXuOqQSv+Q40+7Wg==} + '@tldraw/tlschema@3.15.1': + resolution: {integrity: sha512-l9qA5K9EqQCCiWv0JhjPX1kCpw9QIxj6RUFsz1J4B7sE2hc0l12szaMbtgruJGHgc841uOfb+W7DjCNAt22PeQ==} peerDependencies: react: ^18.2.0 || ^19.0.0 react-dom: ^18.2.0 || ^19.0.0 - '@tldraw/utils@3.15.5': - resolution: {integrity: sha512-kdRLl2oMCbN5i2agVJ1ZsL3/ipiBGVQiS33/0NrqijoA9zFyM7sNgr8sb+6vjNbV1HrXHHSxeBHVCusBlZu8iQ==} + '@tldraw/utils@3.15.1': + resolution: {integrity: sha512-70W70qta3AtYEqzfi3KAUcW+tu55RER1qGCsaNrkBRLRn9LCl98PfWsrklSNjJ/smdm9riFDpMabYYvNRAbyjw==} - '@tldraw/validate@3.15.5': - resolution: {integrity: sha512-DyvEySVHJ7cCqCMd5stDTYllEZGHZEEpAuQQeb+fQTsxf9X+iO3la6hjnLbALewsBFakzma6r1M9aDrA3LSGkA==} + '@tldraw/validate@3.15.1': + resolution: {integrity: sha512-4r4/E7tHrPQ4T4cF7vQjJecyCI1GDHA+wLdkW+XEtCUd04SX/rbee5iqHFhW4NU6gpvGLAxxaLxeVQh/5rhqfQ==} '@tootallnate/once@2.0.0': resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==} @@ -3289,8 +3289,8 @@ packages: tippy.js@6.3.7: resolution: {integrity: sha512-E1d3oP2emgJ9dRQZdf3Kkn0qJgI6ZLpyS5z6ZkY1DF3kaQaBsGZsndEpHwx+eC+tYM41HaSNvNtLx8tU57FzTQ==} - tldraw@3.15.5: - resolution: {integrity: sha512-lzi69i4aMDRf3edC6DZrbSqYOcQWv0n0QwxfUC1QI7fHfXN5aqEc3ni3SxPfvFNuzwYWyOwZRUWUtoI1MsKRzw==} + tldraw@3.15.1: + resolution: {integrity: sha512-r2dUNhDoGDP2eEZrb2c4MQgxzpQPcrsZoVdiyD4LL9GcXc+K7p3yo/8/jn8pad0bFlXXq8ov9ioL0C/k2RNcnA==} peerDependencies: react: ^18.2.0 || ^19.0.0 react-dom: ^18.2.0 || ^19.0.0 @@ -5573,17 +5573,17 @@ snapshots: '@tiptap/extension-text-style': 2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2)) '@tiptap/pm': 2.27.2 - '@tldraw/editor@3.15.5(react-dom@17.0.2(react@17.0.2))(react@17.0.2)': + '@tldraw/editor@3.15.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2)': dependencies: '@tiptap/core': 2.27.2(@tiptap/pm@2.27.2) '@tiptap/pm': 2.27.2 '@tiptap/react': 2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))(@tiptap/pm@2.27.2)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@tldraw/state': 3.15.5 - '@tldraw/state-react': 3.15.5(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@tldraw/store': 3.15.5(react@17.0.2) - '@tldraw/tlschema': 3.15.5(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@tldraw/utils': 3.15.5 - '@tldraw/validate': 3.15.5 + '@tldraw/state': 3.15.1 + '@tldraw/state-react': 3.15.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@tldraw/store': 3.15.1(react@17.0.2) + '@tldraw/tlschema': 3.15.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@tldraw/utils': 3.15.1 + '@tldraw/validate': 3.15.1 '@types/core-js': 2.5.8 '@use-gesture/react': 10.3.1(react@17.0.2) classnames: 2.5.1 @@ -5594,33 +5594,33 @@ snapshots: react: 17.0.2 react-dom: 17.0.2(react@17.0.2) - '@tldraw/state-react@3.15.5(react-dom@17.0.2(react@17.0.2))(react@17.0.2)': + '@tldraw/state-react@3.15.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2)': dependencies: - '@tldraw/state': 3.15.5 - '@tldraw/utils': 3.15.5 + '@tldraw/state': 3.15.1 + '@tldraw/utils': 3.15.1 react: 17.0.2 react-dom: 17.0.2(react@17.0.2) - '@tldraw/state@3.15.5': + '@tldraw/state@3.15.1': dependencies: - '@tldraw/utils': 3.15.5 + '@tldraw/utils': 3.15.1 - '@tldraw/store@3.15.5(react@17.0.2)': + '@tldraw/store@3.15.1(react@17.0.2)': dependencies: - '@tldraw/state': 3.15.5 - '@tldraw/utils': 3.15.5 + '@tldraw/state': 3.15.1 + '@tldraw/utils': 3.15.1 react: 17.0.2 - '@tldraw/tlschema@3.15.5(react-dom@17.0.2(react@17.0.2))(react@17.0.2)': + '@tldraw/tlschema@3.15.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2)': dependencies: - '@tldraw/state': 3.15.5 - '@tldraw/store': 3.15.5(react@17.0.2) - '@tldraw/utils': 3.15.5 - '@tldraw/validate': 3.15.5 + '@tldraw/state': 3.15.1 + '@tldraw/store': 3.15.1(react@17.0.2) + '@tldraw/utils': 3.15.1 + '@tldraw/validate': 3.15.1 react: 17.0.2 react-dom: 17.0.2(react@17.0.2) - '@tldraw/utils@3.15.5': + '@tldraw/utils@3.15.1': dependencies: fractional-indexing-jittered: 1.0.0 lodash.isequal: 4.5.0 @@ -5628,9 +5628,9 @@ snapshots: lodash.throttle: 4.1.1 lodash.uniq: 4.5.0 - '@tldraw/validate@3.15.5': + '@tldraw/validate@3.15.1': dependencies: - '@tldraw/utils': 3.15.5 + '@tldraw/utils': 3.15.1 '@tootallnate/once@2.0.0': {} @@ -7427,7 +7427,7 @@ snapshots: dependencies: '@popperjs/core': 2.11.8 - tldraw@3.15.5(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2): + tldraw@3.15.1(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2): dependencies: '@tiptap/core': 2.27.2(@tiptap/pm@2.27.2) '@tiptap/extension-code': 2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2)) @@ -7436,8 +7436,8 @@ snapshots: '@tiptap/pm': 2.27.2 '@tiptap/react': 2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))(@tiptap/pm@2.27.2)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) '@tiptap/starter-kit': 2.27.2 - '@tldraw/editor': 3.15.5(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@tldraw/store': 3.15.5(react@17.0.2) + '@tldraw/editor': 3.15.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@tldraw/store': 3.15.1(react@17.0.2) classnames: 2.5.1 hotkeys-js: 3.13.15 idb: 7.1.1 From 65c67fd5426ae0d1340a11ff19e07319195c28d8 Mon Sep 17 00:00:00 2001 From: Michael Gartner Date: Mon, 9 Feb 2026 22:20:04 -0600 Subject: [PATCH 19/21] a bunch of fixes --- package.json | 26 +- patches/@blueprintjs__core@3.50.4.patch | 384 ++++ pnpm-lock.yaml | 2092 ++++++++++++--------- scripts/compile.ts | 2 +- src/components/canvas/DefaultNodeUtil.tsx | 18 +- tsconfig.json | 32 +- 6 files changed, 1626 insertions(+), 928 deletions(-) create mode 100644 patches/@blueprintjs__core@3.50.4.patch diff --git a/package.json b/package.json index ce54af1..50156fc 100644 --- a/package.json +++ b/package.json @@ -19,12 +19,13 @@ "packageManager": "pnpm@9.15.0", "dependencies": { "roamjs-components": "0.86.4", - "tldraw": "3.15.1" + "tldraw": "3.15.5" }, "samepage": { "extends": "node_modules/roamjs-components/package.json", "external": [ - "react-dom/client=window.ReactDOM" + "react-dom/client=window.ReactDOM", + "react=window.React;module.exports.useSyncExternalStore=window.React.useSyncExternalStore" ] }, "devDependencies": { @@ -32,6 +33,25 @@ "prettier-plugin-tailwindcss": "^0.6.9", "tailwindcss": "^3.4.0", "tsx": "^4.21.0", - "typescript": "^5.9.3" + "typescript": "^5.9.3", + "@types/react": "18.2.0", + "@types/react-dom": "18.2.0", + "esbuild": "0.17.14", + "zod": "^3.23.8", + "dotenv": "^16.0.3" + }, + "peerDependencies": { + "react": "18.2.0", + "react-dom": "18.2.0", + "@blueprintjs/core": "3.50.4" + }, + "pnpm": { + "patchedDependencies": { + "@blueprintjs/core@3.50.4": "patches/@blueprintjs__core@3.50.4.patch" + }, + "overrides": { + "@types/react": "18.2.0", + "@types/react-dom": "18.2.0" + } } } diff --git a/patches/@blueprintjs__core@3.50.4.patch b/patches/@blueprintjs__core@3.50.4.patch new file mode 100644 index 0000000..704e20a --- /dev/null +++ b/patches/@blueprintjs__core@3.50.4.patch @@ -0,0 +1,384 @@ +diff --git a/lib/cjs/components/alert/alert.d.ts b/lib/cjs/components/alert/alert.d.ts +index 09b06be01bbe6d22a7dda4aa1652a19b50ff77ec..f74f6a34012e1fa97761bfec2f78fa6ba6dfb0d1 100644 +--- a/lib/cjs/components/alert/alert.d.ts ++++ b/lib/cjs/components/alert/alert.d.ts +@@ -5,6 +5,7 @@ import { IOverlayLifecycleProps } from "../overlay/overlay"; + export declare type AlertProps = IAlertProps; + /** @deprecated use AlertProps */ + export interface IAlertProps extends IOverlayLifecycleProps, Props { ++ children?: React.ReactNode; + /** + * Whether pressing escape when focused on the Alert should cancel the alert. + * If this prop is enabled, then either `onCancel` or `onClose` must also be defined. +diff --git a/lib/cjs/components/collapse/collapse.d.ts b/lib/cjs/components/collapse/collapse.d.ts +index 7f4ef301528cfa44000c9f330dc0e9bd4d26aa63..a93bb0951783f56799a16431110ac280a38ffba9 100644 +--- a/lib/cjs/components/collapse/collapse.d.ts ++++ b/lib/cjs/components/collapse/collapse.d.ts +@@ -4,6 +4,7 @@ import { Props } from "../../common/props"; + export declare type CollapseProps = ICollapseProps; + /** @deprecated use CollapseProps */ + export interface ICollapseProps extends Props { ++ children?: React.ReactNode; + /** + * Component to render as the root element. + * Useful when rendering a `Collapse` inside a ``, for instance. +diff --git a/lib/cjs/components/dialog/dialog.d.ts b/lib/cjs/components/dialog/dialog.d.ts +index e90ee312da59d1e7a404dd029a79af640a9c3ea4..3e4f4ef68fd429fb9e272df3c730e556c163dca4 100644 +--- a/lib/cjs/components/dialog/dialog.d.ts ++++ b/lib/cjs/components/dialog/dialog.d.ts +@@ -6,6 +6,7 @@ import { IBackdropProps, OverlayableProps } from "../overlay/overlay"; + export declare type DialogProps = IDialogProps; + /** @deprecated use DialogProps */ + export interface IDialogProps extends OverlayableProps, IBackdropProps, Props { ++ children?: React.ReactNode; + /** + * Toggles the visibility of the overlay and its children. + * This prop is required because the component is controlled. +diff --git a/lib/cjs/components/drawer/drawer.d.ts b/lib/cjs/components/drawer/drawer.d.ts +index 301ed2e66dfb42850c5671220b8c5241df560e9a..24d4b161d42d201f9f45f9ab8f1f874746db4430 100644 +--- a/lib/cjs/components/drawer/drawer.d.ts ++++ b/lib/cjs/components/drawer/drawer.d.ts +@@ -12,6 +12,7 @@ export declare enum DrawerSize { + export declare type DrawerProps = IDrawerProps; + /** @deprecated use DrawerProps */ + export interface IDrawerProps extends OverlayableProps, IBackdropProps, Props { ++ children?: React.ReactNode; + /** + * Name of a Blueprint UI icon (or an icon element) to render in the + * drawer's header. Note that the header will only be rendered if `title` is +diff --git a/lib/cjs/components/forms/formGroup.d.ts b/lib/cjs/components/forms/formGroup.d.ts +index 1b69eeb6f353e44c1400a223c129cba88738e655..961ba5ef85105aed8db86c7d64254d468baa3b7f 100644 +--- a/lib/cjs/components/forms/formGroup.d.ts ++++ b/lib/cjs/components/forms/formGroup.d.ts +@@ -4,6 +4,7 @@ import { IntentProps, Props } from "../../common/props"; + export declare type FormGroupProps = IFormGroupProps; + /** @deprecated use FormGroupProps */ + export interface IFormGroupProps extends IntentProps, Props { ++ children?: React.ReactNode; + /** + * A space-delimited list of class names to pass along to the + * `Classes.FORM_CONTENT` element that contains `children`. +diff --git a/lib/cjs/components/forms/radioGroup.d.ts b/lib/cjs/components/forms/radioGroup.d.ts +index 2f21804fca8599d6d98a6be80473d03a52419196..e96697514e15a44aa614e4086503848614956210 100644 +--- a/lib/cjs/components/forms/radioGroup.d.ts ++++ b/lib/cjs/components/forms/radioGroup.d.ts +@@ -4,6 +4,7 @@ import { OptionProps, Props } from "../../common/props"; + export declare type RadioGroupProps = IRadioGroupProps; + /** @deprecated use RadioGroupProps */ + export interface IRadioGroupProps extends Props { ++ children?: React.ReactNode; + /** + * Whether the group and _all_ its radios are disabled. + * Individual radios can be disabled using their `disabled` prop. +diff --git a/lib/cjs/components/popover/popover.d.ts b/lib/cjs/components/popover/popover.d.ts +index e1490579f16bbc57b9bd37e0d782a4c7c55196fa..f3cdf4a9fe3bd32e19bd9220662115930a94e03f 100644 +--- a/lib/cjs/components/popover/popover.d.ts ++++ b/lib/cjs/components/popover/popover.d.ts +@@ -9,6 +9,7 @@ export declare const PopoverInteractionKind: { + }; + export declare type PopoverInteractionKind = typeof PopoverInteractionKind[keyof typeof PopoverInteractionKind]; + export interface IPopoverProps extends IPopoverSharedProps { ++ children?: React.ReactNode; + /** HTML props for the backdrop element. Can be combined with `backdropClassName`. */ + backdropProps?: React.HTMLProps; + /** +diff --git a/lib/cjs/components/portal/portal.d.ts b/lib/cjs/components/portal/portal.d.ts +index 9e3460b460c48dad99ef04c26261094bb5c4a5d3..5ffb40eeb79c6fc838d63b1261eafc964bd26b14 100644 +--- a/lib/cjs/components/portal/portal.d.ts ++++ b/lib/cjs/components/portal/portal.d.ts +@@ -3,6 +3,7 @@ import { ValidationMap } from "../../common/context"; + import { Props } from "../../common/props"; + export declare type PortalProps = IPortalProps; + export interface IPortalProps extends Props { ++ children?: React.ReactNode; + /** + * Callback invoked when the children of this `Portal` have been added to the DOM. + */ +diff --git a/lib/cjs/components/tabs/tabs.d.ts b/lib/cjs/components/tabs/tabs.d.ts +index 2ca5fe5b4bed0871154292aa3248af1f2ea8331d..870a32ee7d2bd6c934216e268016b4b2d2e2b514 100644 +--- a/lib/cjs/components/tabs/tabs.d.ts ++++ b/lib/cjs/components/tabs/tabs.d.ts +@@ -6,6 +6,7 @@ export declare const Expander: React.FunctionComponent; + export declare type TabsProps = ITabsProps; + /** @deprecated use TabsProps */ + export interface ITabsProps extends Props { ++ children?: React.ReactNode; + /** + * Whether the selected tab indicator should animate its movement. + * +diff --git a/lib/cjs/components/toast/toaster.d.ts b/lib/cjs/components/toast/toaster.d.ts +index a6c712467c7ac81aed9ea00207aeaaeb14bd9337..353621182cb1c4d8c5ea6430504ab0ed38fec195 100644 +--- a/lib/cjs/components/toast/toaster.d.ts ++++ b/lib/cjs/components/toast/toaster.d.ts +@@ -26,6 +26,7 @@ export interface IToaster { + * These props can be passed as an argument to the static `Toaster.create(props?, container?)` method. + */ + export interface IToasterProps extends Props { ++ children?: React.ReactNode; + /** + * Whether a toast should acquire application focus when it first opens. + * This is disabled by default so that toasts do not interrupt the user's flow. +diff --git a/lib/cjs/components/tooltip/tooltip.d.ts b/lib/cjs/components/tooltip/tooltip.d.ts +index 94f4af9427a35ad9333f2bfd30ab712499efcd57..4db48a9bc4cac14aacd90535f403f87b76445815 100644 +--- a/lib/cjs/components/tooltip/tooltip.d.ts ++++ b/lib/cjs/components/tooltip/tooltip.d.ts +@@ -6,6 +6,7 @@ import { IPopoverSharedProps } from "../popover/popoverSharedProps"; + export declare type TooltipProps = ITooltipProps; + /** @deprecated use TooltipProps */ + export interface ITooltipProps extends IPopoverSharedProps, IntentProps { ++ children?: React.ReactNode; + /** + * The content that will be displayed inside of the tooltip. + */ +diff --git a/lib/esm/components/alert/alert.d.ts b/lib/esm/components/alert/alert.d.ts +index 09b06be01bbe6d22a7dda4aa1652a19b50ff77ec..f74f6a34012e1fa97761bfec2f78fa6ba6dfb0d1 100644 +--- a/lib/esm/components/alert/alert.d.ts ++++ b/lib/esm/components/alert/alert.d.ts +@@ -5,6 +5,7 @@ import { IOverlayLifecycleProps } from "../overlay/overlay"; + export declare type AlertProps = IAlertProps; + /** @deprecated use AlertProps */ + export interface IAlertProps extends IOverlayLifecycleProps, Props { ++ children?: React.ReactNode; + /** + * Whether pressing escape when focused on the Alert should cancel the alert. + * If this prop is enabled, then either `onCancel` or `onClose` must also be defined. +diff --git a/lib/esm/components/collapse/collapse.d.ts b/lib/esm/components/collapse/collapse.d.ts +index 7f4ef301528cfa44000c9f330dc0e9bd4d26aa63..a93bb0951783f56799a16431110ac280a38ffba9 100644 +--- a/lib/esm/components/collapse/collapse.d.ts ++++ b/lib/esm/components/collapse/collapse.d.ts +@@ -4,6 +4,7 @@ import { Props } from "../../common/props"; + export declare type CollapseProps = ICollapseProps; + /** @deprecated use CollapseProps */ + export interface ICollapseProps extends Props { ++ children?: React.ReactNode; + /** + * Component to render as the root element. + * Useful when rendering a `Collapse` inside a `
`, for instance. +diff --git a/lib/esm/components/dialog/dialog.d.ts b/lib/esm/components/dialog/dialog.d.ts +index e90ee312da59d1e7a404dd029a79af640a9c3ea4..3e4f4ef68fd429fb9e272df3c730e556c163dca4 100644 +--- a/lib/esm/components/dialog/dialog.d.ts ++++ b/lib/esm/components/dialog/dialog.d.ts +@@ -6,6 +6,7 @@ import { IBackdropProps, OverlayableProps } from "../overlay/overlay"; + export declare type DialogProps = IDialogProps; + /** @deprecated use DialogProps */ + export interface IDialogProps extends OverlayableProps, IBackdropProps, Props { ++ children?: React.ReactNode; + /** + * Toggles the visibility of the overlay and its children. + * This prop is required because the component is controlled. +diff --git a/lib/esm/components/drawer/drawer.d.ts b/lib/esm/components/drawer/drawer.d.ts +index 301ed2e66dfb42850c5671220b8c5241df560e9a..24d4b161d42d201f9f45f9ab8f1f874746db4430 100644 +--- a/lib/esm/components/drawer/drawer.d.ts ++++ b/lib/esm/components/drawer/drawer.d.ts +@@ -12,6 +12,7 @@ export declare enum DrawerSize { + export declare type DrawerProps = IDrawerProps; + /** @deprecated use DrawerProps */ + export interface IDrawerProps extends OverlayableProps, IBackdropProps, Props { ++ children?: React.ReactNode; + /** + * Name of a Blueprint UI icon (or an icon element) to render in the + * drawer's header. Note that the header will only be rendered if `title` is +diff --git a/lib/esm/components/forms/formGroup.d.ts b/lib/esm/components/forms/formGroup.d.ts +index 1b69eeb6f353e44c1400a223c129cba88738e655..961ba5ef85105aed8db86c7d64254d468baa3b7f 100644 +--- a/lib/esm/components/forms/formGroup.d.ts ++++ b/lib/esm/components/forms/formGroup.d.ts +@@ -4,6 +4,7 @@ import { IntentProps, Props } from "../../common/props"; + export declare type FormGroupProps = IFormGroupProps; + /** @deprecated use FormGroupProps */ + export interface IFormGroupProps extends IntentProps, Props { ++ children?: React.ReactNode; + /** + * A space-delimited list of class names to pass along to the + * `Classes.FORM_CONTENT` element that contains `children`. +diff --git a/lib/esm/components/forms/radioGroup.d.ts b/lib/esm/components/forms/radioGroup.d.ts +index 2f21804fca8599d6d98a6be80473d03a52419196..e96697514e15a44aa614e4086503848614956210 100644 +--- a/lib/esm/components/forms/radioGroup.d.ts ++++ b/lib/esm/components/forms/radioGroup.d.ts +@@ -4,6 +4,7 @@ import { OptionProps, Props } from "../../common/props"; + export declare type RadioGroupProps = IRadioGroupProps; + /** @deprecated use RadioGroupProps */ + export interface IRadioGroupProps extends Props { ++ children?: React.ReactNode; + /** + * Whether the group and _all_ its radios are disabled. + * Individual radios can be disabled using their `disabled` prop. +diff --git a/lib/esm/components/popover/popover.d.ts b/lib/esm/components/popover/popover.d.ts +index e1490579f16bbc57b9bd37e0d782a4c7c55196fa..f3cdf4a9fe3bd32e19bd9220662115930a94e03f 100644 +--- a/lib/esm/components/popover/popover.d.ts ++++ b/lib/esm/components/popover/popover.d.ts +@@ -9,6 +9,7 @@ export declare const PopoverInteractionKind: { + }; + export declare type PopoverInteractionKind = typeof PopoverInteractionKind[keyof typeof PopoverInteractionKind]; + export interface IPopoverProps extends IPopoverSharedProps { ++ children?: React.ReactNode; + /** HTML props for the backdrop element. Can be combined with `backdropClassName`. */ + backdropProps?: React.HTMLProps; + /** +diff --git a/lib/esm/components/portal/portal.d.ts b/lib/esm/components/portal/portal.d.ts +index 9e3460b460c48dad99ef04c26261094bb5c4a5d3..5ffb40eeb79c6fc838d63b1261eafc964bd26b14 100644 +--- a/lib/esm/components/portal/portal.d.ts ++++ b/lib/esm/components/portal/portal.d.ts +@@ -3,6 +3,7 @@ import { ValidationMap } from "../../common/context"; + import { Props } from "../../common/props"; + export declare type PortalProps = IPortalProps; + export interface IPortalProps extends Props { ++ children?: React.ReactNode; + /** + * Callback invoked when the children of this `Portal` have been added to the DOM. + */ +diff --git a/lib/esm/components/tabs/tabs.d.ts b/lib/esm/components/tabs/tabs.d.ts +index 2ca5fe5b4bed0871154292aa3248af1f2ea8331d..870a32ee7d2bd6c934216e268016b4b2d2e2b514 100644 +--- a/lib/esm/components/tabs/tabs.d.ts ++++ b/lib/esm/components/tabs/tabs.d.ts +@@ -6,6 +6,7 @@ export declare const Expander: React.FunctionComponent; + export declare type TabsProps = ITabsProps; + /** @deprecated use TabsProps */ + export interface ITabsProps extends Props { ++ children?: React.ReactNode; + /** + * Whether the selected tab indicator should animate its movement. + * +diff --git a/lib/esm/components/toast/toaster.d.ts b/lib/esm/components/toast/toaster.d.ts +index a6c712467c7ac81aed9ea00207aeaaeb14bd9337..353621182cb1c4d8c5ea6430504ab0ed38fec195 100644 +--- a/lib/esm/components/toast/toaster.d.ts ++++ b/lib/esm/components/toast/toaster.d.ts +@@ -26,6 +26,7 @@ export interface IToaster { + * These props can be passed as an argument to the static `Toaster.create(props?, container?)` method. + */ + export interface IToasterProps extends Props { ++ children?: React.ReactNode; + /** + * Whether a toast should acquire application focus when it first opens. + * This is disabled by default so that toasts do not interrupt the user's flow. +diff --git a/lib/esm/components/tooltip/tooltip.d.ts b/lib/esm/components/tooltip/tooltip.d.ts +index 94f4af9427a35ad9333f2bfd30ab712499efcd57..4db48a9bc4cac14aacd90535f403f87b76445815 100644 +--- a/lib/esm/components/tooltip/tooltip.d.ts ++++ b/lib/esm/components/tooltip/tooltip.d.ts +@@ -6,6 +6,7 @@ import { IPopoverSharedProps } from "../popover/popoverSharedProps"; + export declare type TooltipProps = ITooltipProps; + /** @deprecated use TooltipProps */ + export interface ITooltipProps extends IPopoverSharedProps, IntentProps { ++ children?: React.ReactNode; + /** + * The content that will be displayed inside of the tooltip. + */ +diff --git a/lib/esnext/components/alert/alert.d.ts b/lib/esnext/components/alert/alert.d.ts +index 09b06be01bbe6d22a7dda4aa1652a19b50ff77ec..f74f6a34012e1fa97761bfec2f78fa6ba6dfb0d1 100644 +--- a/lib/esnext/components/alert/alert.d.ts ++++ b/lib/esnext/components/alert/alert.d.ts +@@ -5,6 +5,7 @@ import { IOverlayLifecycleProps } from "../overlay/overlay"; + export declare type AlertProps = IAlertProps; + /** @deprecated use AlertProps */ + export interface IAlertProps extends IOverlayLifecycleProps, Props { ++ children?: React.ReactNode; + /** + * Whether pressing escape when focused on the Alert should cancel the alert. + * If this prop is enabled, then either `onCancel` or `onClose` must also be defined. +diff --git a/lib/esnext/components/collapse/collapse.d.ts b/lib/esnext/components/collapse/collapse.d.ts +index 7f4ef301528cfa44000c9f330dc0e9bd4d26aa63..a93bb0951783f56799a16431110ac280a38ffba9 100644 +--- a/lib/esnext/components/collapse/collapse.d.ts ++++ b/lib/esnext/components/collapse/collapse.d.ts +@@ -4,6 +4,7 @@ import { Props } from "../../common/props"; + export declare type CollapseProps = ICollapseProps; + /** @deprecated use CollapseProps */ + export interface ICollapseProps extends Props { ++ children?: React.ReactNode; + /** + * Component to render as the root element. + * Useful when rendering a `Collapse` inside a `
`, for instance. +diff --git a/lib/esnext/components/dialog/dialog.d.ts b/lib/esnext/components/dialog/dialog.d.ts +index e90ee312da59d1e7a404dd029a79af640a9c3ea4..3e4f4ef68fd429fb9e272df3c730e556c163dca4 100644 +--- a/lib/esnext/components/dialog/dialog.d.ts ++++ b/lib/esnext/components/dialog/dialog.d.ts +@@ -6,6 +6,7 @@ import { IBackdropProps, OverlayableProps } from "../overlay/overlay"; + export declare type DialogProps = IDialogProps; + /** @deprecated use DialogProps */ + export interface IDialogProps extends OverlayableProps, IBackdropProps, Props { ++ children?: React.ReactNode; + /** + * Toggles the visibility of the overlay and its children. + * This prop is required because the component is controlled. +diff --git a/lib/esnext/components/drawer/drawer.d.ts b/lib/esnext/components/drawer/drawer.d.ts +index 301ed2e66dfb42850c5671220b8c5241df560e9a..24d4b161d42d201f9f45f9ab8f1f874746db4430 100644 +--- a/lib/esnext/components/drawer/drawer.d.ts ++++ b/lib/esnext/components/drawer/drawer.d.ts +@@ -12,6 +12,7 @@ export declare enum DrawerSize { + export declare type DrawerProps = IDrawerProps; + /** @deprecated use DrawerProps */ + export interface IDrawerProps extends OverlayableProps, IBackdropProps, Props { ++ children?: React.ReactNode; + /** + * Name of a Blueprint UI icon (or an icon element) to render in the + * drawer's header. Note that the header will only be rendered if `title` is +diff --git a/lib/esnext/components/forms/formGroup.d.ts b/lib/esnext/components/forms/formGroup.d.ts +index 1b69eeb6f353e44c1400a223c129cba88738e655..961ba5ef85105aed8db86c7d64254d468baa3b7f 100644 +--- a/lib/esnext/components/forms/formGroup.d.ts ++++ b/lib/esnext/components/forms/formGroup.d.ts +@@ -4,6 +4,7 @@ import { IntentProps, Props } from "../../common/props"; + export declare type FormGroupProps = IFormGroupProps; + /** @deprecated use FormGroupProps */ + export interface IFormGroupProps extends IntentProps, Props { ++ children?: React.ReactNode; + /** + * A space-delimited list of class names to pass along to the + * `Classes.FORM_CONTENT` element that contains `children`. +diff --git a/lib/esnext/components/forms/radioGroup.d.ts b/lib/esnext/components/forms/radioGroup.d.ts +index 2f21804fca8599d6d98a6be80473d03a52419196..e96697514e15a44aa614e4086503848614956210 100644 +--- a/lib/esnext/components/forms/radioGroup.d.ts ++++ b/lib/esnext/components/forms/radioGroup.d.ts +@@ -4,6 +4,7 @@ import { OptionProps, Props } from "../../common/props"; + export declare type RadioGroupProps = IRadioGroupProps; + /** @deprecated use RadioGroupProps */ + export interface IRadioGroupProps extends Props { ++ children?: React.ReactNode; + /** + * Whether the group and _all_ its radios are disabled. + * Individual radios can be disabled using their `disabled` prop. +diff --git a/lib/esnext/components/popover/popover.d.ts b/lib/esnext/components/popover/popover.d.ts +index e1490579f16bbc57b9bd37e0d782a4c7c55196fa..f3cdf4a9fe3bd32e19bd9220662115930a94e03f 100644 +--- a/lib/esnext/components/popover/popover.d.ts ++++ b/lib/esnext/components/popover/popover.d.ts +@@ -9,6 +9,7 @@ export declare const PopoverInteractionKind: { + }; + export declare type PopoverInteractionKind = typeof PopoverInteractionKind[keyof typeof PopoverInteractionKind]; + export interface IPopoverProps extends IPopoverSharedProps { ++ children?: React.ReactNode; + /** HTML props for the backdrop element. Can be combined with `backdropClassName`. */ + backdropProps?: React.HTMLProps; + /** +diff --git a/lib/esnext/components/portal/portal.d.ts b/lib/esnext/components/portal/portal.d.ts +index 9e3460b460c48dad99ef04c26261094bb5c4a5d3..5ffb40eeb79c6fc838d63b1261eafc964bd26b14 100644 +--- a/lib/esnext/components/portal/portal.d.ts ++++ b/lib/esnext/components/portal/portal.d.ts +@@ -3,6 +3,7 @@ import { ValidationMap } from "../../common/context"; + import { Props } from "../../common/props"; + export declare type PortalProps = IPortalProps; + export interface IPortalProps extends Props { ++ children?: React.ReactNode; + /** + * Callback invoked when the children of this `Portal` have been added to the DOM. + */ +diff --git a/lib/esnext/components/tabs/tabs.d.ts b/lib/esnext/components/tabs/tabs.d.ts +index 2ca5fe5b4bed0871154292aa3248af1f2ea8331d..870a32ee7d2bd6c934216e268016b4b2d2e2b514 100644 +--- a/lib/esnext/components/tabs/tabs.d.ts ++++ b/lib/esnext/components/tabs/tabs.d.ts +@@ -6,6 +6,7 @@ export declare const Expander: React.FunctionComponent; + export declare type TabsProps = ITabsProps; + /** @deprecated use TabsProps */ + export interface ITabsProps extends Props { ++ children?: React.ReactNode; + /** + * Whether the selected tab indicator should animate its movement. + * +diff --git a/lib/esnext/components/toast/toaster.d.ts b/lib/esnext/components/toast/toaster.d.ts +index a6c712467c7ac81aed9ea00207aeaaeb14bd9337..353621182cb1c4d8c5ea6430504ab0ed38fec195 100644 +--- a/lib/esnext/components/toast/toaster.d.ts ++++ b/lib/esnext/components/toast/toaster.d.ts +@@ -26,6 +26,7 @@ export interface IToaster { + * These props can be passed as an argument to the static `Toaster.create(props?, container?)` method. + */ + export interface IToasterProps extends Props { ++ children?: React.ReactNode; + /** + * Whether a toast should acquire application focus when it first opens. + * This is disabled by default so that toasts do not interrupt the user's flow. diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c63226e..26bce54 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -4,17 +4,47 @@ settings: autoInstallPeers: true excludeLinksFromLockfile: false +overrides: + '@types/react': 18.2.0 + '@types/react-dom': 18.2.0 + +patchedDependencies: + '@blueprintjs/core@3.50.4': + hash: x3zagppzlahhgxgudquqcrc5xa + path: patches/@blueprintjs__core@3.50.4.patch + importers: .: dependencies: + '@blueprintjs/core': + specifier: 3.50.4 + version: 3.50.4(patch_hash=x3zagppzlahhgxgudquqcrc5xa)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + react: + specifier: 18.2.0 + version: 18.2.0 + react-dom: + specifier: 18.2.0 + version: 18.2.0(react@18.2.0) roamjs-components: specifier: 0.86.4 - version: 0.86.4(mggo34u4bryga6uulzi23dduue) + version: 0.86.4(57ar6pdrfdo2g72yznpvnggqdm) tldraw: - specifier: 3.15.1 - version: 3.15.1(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + specifier: 3.15.5 + version: 3.15.5(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) devDependencies: + '@types/react': + specifier: 18.2.0 + version: 18.2.0 + '@types/react-dom': + specifier: 18.2.0 + version: 18.2.0 + dotenv: + specifier: ^16.0.3 + version: 16.6.1 + esbuild: + specifier: 0.17.14 + version: 0.17.14 prettier: specifier: ^3.4.2 version: 3.8.1 @@ -23,13 +53,16 @@ importers: version: 0.6.14(prettier@3.8.1) tailwindcss: specifier: ^3.4.0 - version: 3.4.19(ts-node@10.9.2(@types/node@25.2.1)(typescript@5.9.3)) + version: 3.4.19(tsx@4.21.0) tsx: specifier: ^4.21.0 version: 4.21.0 typescript: specifier: ^5.9.3 version: 5.9.3 + zod: + specifier: ^3.23.8 + version: 3.25.76 packages: @@ -60,12 +93,12 @@ packages: '@aws-crypto/util@5.2.0': resolution: {integrity: sha512-4RkU9EsI6ZpBve5fseQlGNUWKMa1RLPQ1dnjnQoe07ldfIzcsGb5hC5W0Dm7u423KWzawlrpbjXBrXCEv9zazQ==} - '@aws-sdk/client-lambda@3.985.0': - resolution: {integrity: sha512-RFQVkOn9wn4LAYBDpOXyN+qY/akpGN1zJrEHkWbE+cXx/ypKo7nRt/r5jSTW2k0MttuI9ViVFemtGn69z22uBA==} + '@aws-sdk/client-lambda@3.986.0': + resolution: {integrity: sha512-R0VrqSH622b0MmIULLCNbupyU9qqEn+vofIeKng+ALPJY6U7pq7MG0p+bbxLCGztLl0u2vmO237SPZYcFm3hCQ==} engines: {node: '>=20.0.0'} - '@aws-sdk/client-s3@3.985.0': - resolution: {integrity: sha512-S9TqjzzZEEIKBnC7yFpvqM7CG9ALpY5qhQ5BnDBJtdG20NoGpjKLGUUfD2wmZItuhbrcM4Z8c6m6Fg0XYIOVvw==} + '@aws-sdk/client-s3@3.986.0': + resolution: {integrity: sha512-IcDJ8shVVvbxgMe8+dLWcv6uhSwmX65PHTVGX81BhWAElPnp3CL8w/5uzOPRo4n4/bqIk9eskGVEIicw2o+SrA==} engines: {node: '>=20.0.0'} '@aws-sdk/client-sso@3.985.0': @@ -160,8 +193,8 @@ packages: resolution: {integrity: sha512-v4J8qYAWfOMcZ4MJUyatntOicTzEMaU7j3OpkRCGGFSL2NgXQ5VbxauIyORA+pxdKZ0qQG2tCQjQjZDlXEC3Ow==} engines: {node: '>=20.0.0'} - '@aws-sdk/signature-v4-multi-region@3.985.0': - resolution: {integrity: sha512-W6hTSOPiSbh4IdTYVxN7xHjpCh0qvfQU1GKGBzGQm0ZEIOaMmWqiDEvFfyGYKmfBvumT8vHKxQRTX0av9omtIg==} + '@aws-sdk/signature-v4-multi-region@3.986.0': + resolution: {integrity: sha512-Upw+rw7wCH93E6QWxqpAqJLrUmJYVUAWrk4tCOBnkeuwzGERZvJFL5UQ6TAJFj9T18Ih+vNFaACh8J5aP4oTBw==} engines: {node: '>=20.0.0'} '@aws-sdk/token-providers@3.985.0': @@ -180,6 +213,10 @@ packages: resolution: {integrity: sha512-vth7UfGSUR3ljvaq8V4Rc62FsM7GUTH/myxPWkaEgOrprz1/Pc72EgTXxj+cPPPDAfHFIpjhkB7T7Td0RJx+BA==} engines: {node: '>=20.0.0'} + '@aws-sdk/util-endpoints@3.986.0': + resolution: {integrity: sha512-Mqi79L38qi1gCG3adlVdbNrSxvcm1IPDLiJPA3OBypY5ewxUyWbaA3DD4goG+EwET6LSFgZJcRSIh6KBNpP5pA==} + engines: {node: '>=20.0.0'} + '@aws-sdk/util-locate-window@3.965.4': resolution: {integrity: sha512-H1onv5SkgPBK2P6JR2MjGgbOnttoNzSPIRoeZTNPZYyaplwGg50zS3amXvXqF0/qfXpWEC9rLWU564QTB9bSog==} engines: {node: '>=20.0.0'} @@ -258,96 +295,192 @@ packages: cpu: [ppc64] os: [aix] + '@esbuild/android-arm64@0.17.14': + resolution: {integrity: sha512-eLOpPO1RvtsP71afiFTvS7tVFShJBCT0txiv/xjFBo5a7R7Gjw7X0IgIaFoLKhqXYAXhahoXm7qAmRXhY4guJg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + '@esbuild/android-arm64@0.27.3': resolution: {integrity: sha512-YdghPYUmj/FX2SYKJ0OZxf+iaKgMsKHVPF1MAq/P8WirnSpCStzKJFjOjzsW0QQ7oIAiccHdcqjbHmJxRb/dmg==} engines: {node: '>=18'} cpu: [arm64] os: [android] + '@esbuild/android-arm@0.17.14': + resolution: {integrity: sha512-0CnlwnjDU8cks0yJLXfkaU/uoLyRf9VZJs4p1PskBr2AlAHeEsFEwJEo0of/Z3g+ilw5mpyDwThlxzNEIxOE4g==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + '@esbuild/android-arm@0.27.3': resolution: {integrity: sha512-i5D1hPY7GIQmXlXhs2w8AWHhenb00+GxjxRncS2ZM7YNVGNfaMxgzSGuO8o8SJzRc/oZwU2bcScvVERk03QhzA==} engines: {node: '>=18'} cpu: [arm] os: [android] + '@esbuild/android-x64@0.17.14': + resolution: {integrity: sha512-nrfQYWBfLGfSGLvRVlt6xi63B5IbfHm3tZCdu/82zuFPQ7zez4XjmRtF/wIRYbJQ/DsZrxJdEvYFE67avYXyng==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + '@esbuild/android-x64@0.27.3': resolution: {integrity: sha512-IN/0BNTkHtk8lkOM8JWAYFg4ORxBkZQf9zXiEOfERX/CzxW3Vg1ewAhU7QSWQpVIzTW+b8Xy+lGzdYXV6UZObQ==} engines: {node: '>=18'} cpu: [x64] os: [android] + '@esbuild/darwin-arm64@0.17.14': + resolution: {integrity: sha512-eoSjEuDsU1ROwgBH/c+fZzuSyJUVXQTOIN9xuLs9dE/9HbV/A5IqdXHU1p2OfIMwBwOYJ9SFVGGldxeRCUJFyw==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + '@esbuild/darwin-arm64@0.27.3': resolution: {integrity: sha512-Re491k7ByTVRy0t3EKWajdLIr0gz2kKKfzafkth4Q8A5n1xTHrkqZgLLjFEHVD+AXdUGgQMq+Godfq45mGpCKg==} engines: {node: '>=18'} cpu: [arm64] os: [darwin] + '@esbuild/darwin-x64@0.17.14': + resolution: {integrity: sha512-zN0U8RWfrDttdFNkHqFYZtOH8hdi22z0pFm0aIJPsNC4QQZv7je8DWCX5iA4Zx6tRhS0CCc0XC2m7wKsbWEo5g==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + '@esbuild/darwin-x64@0.27.3': resolution: {integrity: sha512-vHk/hA7/1AckjGzRqi6wbo+jaShzRowYip6rt6q7VYEDX4LEy1pZfDpdxCBnGtl+A5zq8iXDcyuxwtv3hNtHFg==} engines: {node: '>=18'} cpu: [x64] os: [darwin] + '@esbuild/freebsd-arm64@0.17.14': + resolution: {integrity: sha512-z0VcD4ibeZWVQCW1O7szaLxGsx54gcCnajEJMdYoYjLiq4g1jrP2lMq6pk71dbS5+7op/L2Aod+erw+EUr28/A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + '@esbuild/freebsd-arm64@0.27.3': resolution: {integrity: sha512-ipTYM2fjt3kQAYOvo6vcxJx3nBYAzPjgTCk7QEgZG8AUO3ydUhvelmhrbOheMnGOlaSFUoHXB6un+A7q4ygY9w==} engines: {node: '>=18'} cpu: [arm64] os: [freebsd] + '@esbuild/freebsd-x64@0.17.14': + resolution: {integrity: sha512-hd9mPcxfTgJlolrPlcXkQk9BMwNBvNBsVaUe5eNUqXut6weDQH8whcNaKNF2RO8NbpT6GY8rHOK2A9y++s+ehw==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + '@esbuild/freebsd-x64@0.27.3': resolution: {integrity: sha512-dDk0X87T7mI6U3K9VjWtHOXqwAMJBNN2r7bejDsc+j03SEjtD9HrOl8gVFByeM0aJksoUuUVU9TBaZa2rgj0oA==} engines: {node: '>=18'} cpu: [x64] os: [freebsd] + '@esbuild/linux-arm64@0.17.14': + resolution: {integrity: sha512-FhAMNYOq3Iblcj9i+K0l1Fp/MHt+zBeRu/Qkf0LtrcFu3T45jcwB6A1iMsemQ42vR3GBhjNZJZTaCe3VFPbn9g==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + '@esbuild/linux-arm64@0.27.3': resolution: {integrity: sha512-sZOuFz/xWnZ4KH3YfFrKCf1WyPZHakVzTiqji3WDc0BCl2kBwiJLCXpzLzUBLgmp4veFZdvN5ChW4Eq/8Fc2Fg==} engines: {node: '>=18'} cpu: [arm64] os: [linux] + '@esbuild/linux-arm@0.17.14': + resolution: {integrity: sha512-BNTl+wSJ1omsH8s3TkQmIIIQHwvwJrU9u1ggb9XU2KTVM4TmthRIVyxSp2qxROJHhZuW/r8fht46/QE8hU8Qvg==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + '@esbuild/linux-arm@0.27.3': resolution: {integrity: sha512-s6nPv2QkSupJwLYyfS+gwdirm0ukyTFNl3KTgZEAiJDd+iHZcbTPPcWCcRYH+WlNbwChgH2QkE9NSlNrMT8Gfw==} engines: {node: '>=18'} cpu: [arm] os: [linux] + '@esbuild/linux-ia32@0.17.14': + resolution: {integrity: sha512-91OK/lQ5y2v7AsmnFT+0EyxdPTNhov3y2CWMdizyMfxSxRqHazXdzgBKtlmkU2KYIc+9ZK3Vwp2KyXogEATYxQ==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + '@esbuild/linux-ia32@0.27.3': resolution: {integrity: sha512-yGlQYjdxtLdh0a3jHjuwOrxQjOZYD/C9PfdbgJJF3TIZWnm/tMd/RcNiLngiu4iwcBAOezdnSLAwQDPqTmtTYg==} engines: {node: '>=18'} cpu: [ia32] os: [linux] + '@esbuild/linux-loong64@0.17.14': + resolution: {integrity: sha512-vp15H+5NR6hubNgMluqqKza85HcGJgq7t6rMH7O3Y6ApiOWPkvW2AJfNojUQimfTp6OUrACUXfR4hmpcENXoMQ==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + '@esbuild/linux-loong64@0.27.3': resolution: {integrity: sha512-WO60Sn8ly3gtzhyjATDgieJNet/KqsDlX5nRC5Y3oTFcS1l0KWba+SEa9Ja1GfDqSF1z6hif/SkpQJbL63cgOA==} engines: {node: '>=18'} cpu: [loong64] os: [linux] + '@esbuild/linux-mips64el@0.17.14': + resolution: {integrity: sha512-90TOdFV7N+fgi6c2+GO9ochEkmm9kBAKnuD5e08GQMgMINOdOFHuYLPQ91RYVrnWwQ5683sJKuLi9l4SsbJ7Hg==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + '@esbuild/linux-mips64el@0.27.3': resolution: {integrity: sha512-APsymYA6sGcZ4pD6k+UxbDjOFSvPWyZhjaiPyl/f79xKxwTnrn5QUnXR5prvetuaSMsb4jgeHewIDCIWljrSxw==} engines: {node: '>=18'} cpu: [mips64el] os: [linux] + '@esbuild/linux-ppc64@0.17.14': + resolution: {integrity: sha512-NnBGeoqKkTugpBOBZZoktQQ1Yqb7aHKmHxsw43NddPB2YWLAlpb7THZIzsRsTr0Xw3nqiPxbA1H31ZMOG+VVPQ==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + '@esbuild/linux-ppc64@0.27.3': resolution: {integrity: sha512-eizBnTeBefojtDb9nSh4vvVQ3V9Qf9Df01PfawPcRzJH4gFSgrObw+LveUyDoKU3kxi5+9RJTCWlj4FjYXVPEA==} engines: {node: '>=18'} cpu: [ppc64] os: [linux] + '@esbuild/linux-riscv64@0.17.14': + resolution: {integrity: sha512-0qdlKScLXA8MGVy21JUKvMzCYWovctuP8KKqhtE5A6IVPq4onxXhSuhwDd2g5sRCzNDlDjitc5sX31BzDoL5Fw==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + '@esbuild/linux-riscv64@0.27.3': resolution: {integrity: sha512-3Emwh0r5wmfm3ssTWRQSyVhbOHvqegUDRd0WhmXKX2mkHJe1SFCMJhagUleMq+Uci34wLSipf8Lagt4LlpRFWQ==} engines: {node: '>=18'} cpu: [riscv64] os: [linux] + '@esbuild/linux-s390x@0.17.14': + resolution: {integrity: sha512-Hdm2Jo1yaaOro4v3+6/zJk6ygCqIZuSDJHdHaf8nVH/tfOuoEX5Riv03Ka15LmQBYJObUTNS1UdyoMk0WUn9Ww==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + '@esbuild/linux-s390x@0.27.3': resolution: {integrity: sha512-pBHUx9LzXWBc7MFIEEL0yD/ZVtNgLytvx60gES28GcWMqil8ElCYR4kvbV2BDqsHOvVDRrOxGySBM9Fcv744hw==} engines: {node: '>=18'} cpu: [s390x] os: [linux] + '@esbuild/linux-x64@0.17.14': + resolution: {integrity: sha512-8KHF17OstlK4DuzeF/KmSgzrTWQrkWj5boluiiq7kvJCiQVzUrmSkaBvcLB2UgHpKENO2i6BthPkmUhNDaJsVw==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + '@esbuild/linux-x64@0.27.3': resolution: {integrity: sha512-Czi8yzXUWIQYAtL/2y6vogER8pvcsOsk5cpwL4Gk5nJqH5UZiVByIY8Eorm5R13gq+DQKYg0+JyQoytLQas4dA==} engines: {node: '>=18'} @@ -360,6 +493,12 @@ packages: cpu: [arm64] os: [netbsd] + '@esbuild/netbsd-x64@0.17.14': + resolution: {integrity: sha512-nVwpqvb3yyXztxIT2+VsxJhB5GCgzPdk1n0HHSnchRAcxqKO6ghXwHhJnr0j/B+5FSyEqSxF4q03rbA2fKXtUQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + '@esbuild/netbsd-x64@0.27.3': resolution: {integrity: sha512-P14lFKJl/DdaE00LItAukUdZO5iqNH7+PjoBm+fLQjtxfcfFE20Xf5CrLsmZdq5LFFZzb5JMZ9grUwvtVYzjiA==} engines: {node: '>=18'} @@ -372,6 +511,12 @@ packages: cpu: [arm64] os: [openbsd] + '@esbuild/openbsd-x64@0.17.14': + resolution: {integrity: sha512-1RZ7uQQ9zcy/GSAJL1xPdN7NDdOOtNEGiJalg/MOzeakZeTrgH/DoCkbq7TaPDiPhWqnDF+4bnydxRqQD7il6g==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + '@esbuild/openbsd-x64@0.27.3': resolution: {integrity: sha512-DnW2sRrBzA+YnE70LKqnM3P+z8vehfJWHXECbwBmH/CU51z6FiqTQTHFenPlHmo3a8UgpLyH3PT+87OViOh1AQ==} engines: {node: '>=18'} @@ -384,24 +529,48 @@ packages: cpu: [arm64] os: [openharmony] + '@esbuild/sunos-x64@0.17.14': + resolution: {integrity: sha512-nqMjDsFwv7vp7msrwWRysnM38Sd44PKmW8EzV01YzDBTcTWUpczQg6mGao9VLicXSgW/iookNK6AxeogNVNDZA==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + '@esbuild/sunos-x64@0.27.3': resolution: {integrity: sha512-PanZ+nEz+eWoBJ8/f8HKxTTD172SKwdXebZ0ndd953gt1HRBbhMsaNqjTyYLGLPdoWHy4zLU7bDVJztF5f3BHA==} engines: {node: '>=18'} cpu: [x64] os: [sunos] + '@esbuild/win32-arm64@0.17.14': + resolution: {integrity: sha512-xrD0mccTKRBBIotrITV7WVQAwNJ5+1va6L0H9zN92v2yEdjfAN7864cUaZwJS7JPEs53bDTzKFbfqVlG2HhyKQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + '@esbuild/win32-arm64@0.27.3': resolution: {integrity: sha512-B2t59lWWYrbRDw/tjiWOuzSsFh1Y/E95ofKz7rIVYSQkUYBjfSgf6oeYPNWHToFRr2zx52JKApIcAS/D5TUBnA==} engines: {node: '>=18'} cpu: [arm64] os: [win32] + '@esbuild/win32-ia32@0.17.14': + resolution: {integrity: sha512-nXpkz9bbJrLLyUTYtRotSS3t5b+FOuljg8LgLdINWFs3FfqZMtbnBCZFUmBzQPyxqU87F8Av+3Nco/M3hEcu1w==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + '@esbuild/win32-ia32@0.27.3': resolution: {integrity: sha512-QLKSFeXNS8+tHW7tZpMtjlNb7HKau0QDpwm49u0vUp9y1WOF+PEzkU84y9GqYaAVW8aH8f3GcBck26jh54cX4Q==} engines: {node: '>=18'} cpu: [ia32] os: [win32] + '@esbuild/win32-x64@0.17.14': + resolution: {integrity: sha512-gPQmsi2DKTaEgG14hc3CHXHp62k8g6qr0Pas+I4lUxRMugGSATh/Bi8Dgusoz9IQ0IfdrvLpco6kujEIBoaogA==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + '@esbuild/win32-x64@0.27.3': resolution: {integrity: sha512-4uJGhsxuptu3OcpVAzli+/gWusVGwZZHTlS63hh++ehExkVT8SgiEf7/uC/PclrPPkLhZqGgCTjd0VWLo6xMqA==} engines: {node: '>=18'} @@ -482,8 +651,8 @@ packages: '@radix-ui/react-accessible-icon@1.1.7': resolution: {integrity: sha512-XM+E4WXl0OqUJFovy6GjmxxFyx9opfCAIUku4dlKRd5YEPqt4kALOkQOp0Of6reHuUkJuiPBEc5k0o4z4lTC8A==} peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' + '@types/react': 18.2.0 + '@types/react-dom': 18.2.0 react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: @@ -495,8 +664,8 @@ packages: '@radix-ui/react-accordion@1.2.12': resolution: {integrity: sha512-T4nygeh9YE9dLRPhAHSeOZi7HBXo+0kYIPJXayZfvWOWA0+n3dESrZbjfDPUABkUNym6Hd+f2IR113To8D2GPA==} peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' + '@types/react': 18.2.0 + '@types/react-dom': 18.2.0 react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: @@ -508,8 +677,8 @@ packages: '@radix-ui/react-alert-dialog@1.1.15': resolution: {integrity: sha512-oTVLkEw5GpdRe29BqJ0LSDFWI3qu0vR1M0mUkOQWDIUnY/QIkLpgDMWuKxP94c2NAC2LGcgVhG1ImF3jkZ5wXw==} peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' + '@types/react': 18.2.0 + '@types/react-dom': 18.2.0 react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: @@ -521,8 +690,8 @@ packages: '@radix-ui/react-arrow@1.1.7': resolution: {integrity: sha512-F+M1tLhO+mlQaOWspE8Wstg+z6PwxwRd8oQ8IXceWz92kfAmalTRf0EjrouQeo7QssEPfCn05B4Ihs1K9WQ/7w==} peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' + '@types/react': 18.2.0 + '@types/react-dom': 18.2.0 react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: @@ -534,8 +703,8 @@ packages: '@radix-ui/react-aspect-ratio@1.1.7': resolution: {integrity: sha512-Yq6lvO9HQyPwev1onK1daHCHqXVLzPhSVjmsNjCa2Zcxy2f7uJD2itDtxknv6FzAKCwD1qQkeVDmX/cev13n/g==} peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' + '@types/react': 18.2.0 + '@types/react-dom': 18.2.0 react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: @@ -547,8 +716,8 @@ packages: '@radix-ui/react-avatar@1.1.10': resolution: {integrity: sha512-V8piFfWapM5OmNCXTzVQY+E1rDa53zY+MQ4Y7356v4fFz6vqCyUtIz2rUD44ZEdwg78/jKmMJHj07+C/Z/rcog==} peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' + '@types/react': 18.2.0 + '@types/react-dom': 18.2.0 react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: @@ -560,8 +729,8 @@ packages: '@radix-ui/react-checkbox@1.3.3': resolution: {integrity: sha512-wBbpv+NQftHDdG86Qc0pIyXk5IR3tM8Vd0nWLKDcX8nNn4nXFOFwsKuqw2okA/1D/mpaAkmuyndrPJTYDNZtFw==} peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' + '@types/react': 18.2.0 + '@types/react-dom': 18.2.0 react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: @@ -573,8 +742,8 @@ packages: '@radix-ui/react-collapsible@1.1.12': resolution: {integrity: sha512-Uu+mSh4agx2ib1uIGPP4/CKNULyajb3p92LsVXmH2EHVMTfZWpll88XJ0j4W0z3f8NK1eYl1+Mf/szHPmcHzyA==} peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' + '@types/react': 18.2.0 + '@types/react-dom': 18.2.0 react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: @@ -586,8 +755,8 @@ packages: '@radix-ui/react-collection@1.1.7': resolution: {integrity: sha512-Fh9rGN0MoI4ZFUNyfFVNU4y9LUz93u9/0K+yLgA2bwRojxM8JU1DyvvMBabnZPBgMWREAJvU2jjVzq+LrFUglw==} peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' + '@types/react': 18.2.0 + '@types/react-dom': 18.2.0 react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: @@ -599,7 +768,7 @@ packages: '@radix-ui/react-compose-refs@1.1.2': resolution: {integrity: sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==} peerDependencies: - '@types/react': '*' + '@types/react': 18.2.0 react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: '@types/react': @@ -608,8 +777,8 @@ packages: '@radix-ui/react-context-menu@2.2.16': resolution: {integrity: sha512-O8morBEW+HsVG28gYDZPTrT9UUovQUlJue5YO836tiTJhuIWBm/zQHc7j388sHWtdH/xUZurK9olD2+pcqx5ww==} peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' + '@types/react': 18.2.0 + '@types/react-dom': 18.2.0 react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: @@ -621,7 +790,7 @@ packages: '@radix-ui/react-context@1.1.2': resolution: {integrity: sha512-jCi/QKUM2r1Ju5a3J64TH2A5SpKAgh0LpknyqdQ4m6DCV0xJ2HG1xARRwNGPQfi1SLdLWZ1OJz6F4OMBBNiGJA==} peerDependencies: - '@types/react': '*' + '@types/react': 18.2.0 react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: '@types/react': @@ -630,8 +799,8 @@ packages: '@radix-ui/react-dialog@1.1.15': resolution: {integrity: sha512-TCglVRtzlffRNxRMEyR36DGBLJpeusFcgMVD9PZEzAKnUs1lKCgX5u9BmC2Yg+LL9MgZDugFFs1Vl+Jp4t/PGw==} peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' + '@types/react': 18.2.0 + '@types/react-dom': 18.2.0 react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: @@ -643,7 +812,7 @@ packages: '@radix-ui/react-direction@1.1.1': resolution: {integrity: sha512-1UEWRX6jnOA2y4H5WczZ44gOOjTEmlqv1uNW4GAJEO5+bauCBhv8snY65Iw5/VOS/ghKN9gr2KjnLKxrsvoMVw==} peerDependencies: - '@types/react': '*' + '@types/react': 18.2.0 react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: '@types/react': @@ -652,8 +821,8 @@ packages: '@radix-ui/react-dismissable-layer@1.1.11': resolution: {integrity: sha512-Nqcp+t5cTB8BinFkZgXiMJniQH0PsUt2k51FUhbdfeKvc4ACcG2uQniY/8+h1Yv6Kza4Q7lD7PQV0z0oicE0Mg==} peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' + '@types/react': 18.2.0 + '@types/react-dom': 18.2.0 react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: @@ -665,8 +834,8 @@ packages: '@radix-ui/react-dropdown-menu@2.1.16': resolution: {integrity: sha512-1PLGQEynI/3OX/ftV54COn+3Sud/Mn8vALg2rWnBLnRaGtJDduNW/22XjlGgPdpcIbiQxjKtb7BkcjP00nqfJw==} peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' + '@types/react': 18.2.0 + '@types/react-dom': 18.2.0 react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: @@ -678,7 +847,7 @@ packages: '@radix-ui/react-focus-guards@1.1.3': resolution: {integrity: sha512-0rFg/Rj2Q62NCm62jZw0QX7a3sz6QCQU0LpZdNrJX8byRGaGVTqbrW9jAoIAHyMQqsNpeZ81YgSizOt5WXq0Pw==} peerDependencies: - '@types/react': '*' + '@types/react': 18.2.0 react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: '@types/react': @@ -687,8 +856,8 @@ packages: '@radix-ui/react-focus-scope@1.1.7': resolution: {integrity: sha512-t2ODlkXBQyn7jkl6TNaw/MtVEVvIGelJDCG41Okq/KwUsJBwQ4XVZsHAVUkK4mBv3ewiAS3PGuUWuY2BoK4ZUw==} peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' + '@types/react': 18.2.0 + '@types/react-dom': 18.2.0 react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: @@ -700,8 +869,8 @@ packages: '@radix-ui/react-form@0.1.8': resolution: {integrity: sha512-QM70k4Zwjttifr5a4sZFts9fn8FzHYvQ5PiB19O2HsYibaHSVt9fH9rzB0XZo/YcM+b7t/p7lYCT/F5eOeF5yQ==} peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' + '@types/react': 18.2.0 + '@types/react-dom': 18.2.0 react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: @@ -713,8 +882,8 @@ packages: '@radix-ui/react-hover-card@1.1.15': resolution: {integrity: sha512-qgTkjNT1CfKMoP0rcasmlH2r1DAiYicWsDsufxl940sT2wHNEWWv6FMWIQXWhVdmC1d/HYfbhQx60KYyAtKxjg==} peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' + '@types/react': 18.2.0 + '@types/react-dom': 18.2.0 react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: @@ -726,7 +895,7 @@ packages: '@radix-ui/react-id@1.1.1': resolution: {integrity: sha512-kGkGegYIdQsOb4XjsfM97rXsiHaBwco+hFI66oO4s9LU+PLAC5oJ7khdOVFxkhsmlbpUqDAvXw11CluXP+jkHg==} peerDependencies: - '@types/react': '*' + '@types/react': 18.2.0 react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: '@types/react': @@ -735,8 +904,8 @@ packages: '@radix-ui/react-label@2.1.7': resolution: {integrity: sha512-YT1GqPSL8kJn20djelMX7/cTRp/Y9w5IZHvfxQTVHrOqa2yMl7i/UfMqKRU5V7mEyKTrUVgJXhNQPVCG8PBLoQ==} peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' + '@types/react': 18.2.0 + '@types/react-dom': 18.2.0 react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: @@ -748,8 +917,8 @@ packages: '@radix-ui/react-menu@2.1.16': resolution: {integrity: sha512-72F2T+PLlphrqLcAotYPp0uJMr5SjP5SL01wfEspJbru5Zs5vQaSHb4VB3ZMJPimgHHCHG7gMOeOB9H3Hdmtxg==} peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' + '@types/react': 18.2.0 + '@types/react-dom': 18.2.0 react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: @@ -761,8 +930,8 @@ packages: '@radix-ui/react-menubar@1.1.16': resolution: {integrity: sha512-EB1FktTz5xRRi2Er974AUQZWg2yVBb1yjip38/lgwtCVRd3a+maUoGHN/xs9Yv8SY8QwbSEb+YrxGadVWbEutA==} peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' + '@types/react': 18.2.0 + '@types/react-dom': 18.2.0 react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: @@ -774,8 +943,8 @@ packages: '@radix-ui/react-navigation-menu@1.2.14': resolution: {integrity: sha512-YB9mTFQvCOAQMHU+C/jVl96WmuWeltyUEpRJJky51huhds5W2FQr1J8D/16sQlf0ozxkPK8uF3niQMdUwZPv5w==} peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' + '@types/react': 18.2.0 + '@types/react-dom': 18.2.0 react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: @@ -787,8 +956,8 @@ packages: '@radix-ui/react-one-time-password-field@0.1.8': resolution: {integrity: sha512-ycS4rbwURavDPVjCb5iS3aG4lURFDILi6sKI/WITUMZ13gMmn/xGjpLoqBAalhJaDk8I3UbCM5GzKHrnzwHbvg==} peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' + '@types/react': 18.2.0 + '@types/react-dom': 18.2.0 react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: @@ -800,8 +969,8 @@ packages: '@radix-ui/react-password-toggle-field@0.1.3': resolution: {integrity: sha512-/UuCrDBWravcaMix4TdT+qlNdVwOM1Nck9kWx/vafXsdfj1ChfhOdfi3cy9SGBpWgTXwYCuboT/oYpJy3clqfw==} peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' + '@types/react': 18.2.0 + '@types/react-dom': 18.2.0 react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: @@ -813,8 +982,8 @@ packages: '@radix-ui/react-popover@1.1.15': resolution: {integrity: sha512-kr0X2+6Yy/vJzLYJUPCZEc8SfQcf+1COFoAqauJm74umQhta9M7lNJHP7QQS3vkvcGLQUbWpMzwrXYwrYztHKA==} peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' + '@types/react': 18.2.0 + '@types/react-dom': 18.2.0 react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: @@ -826,8 +995,8 @@ packages: '@radix-ui/react-popper@1.2.8': resolution: {integrity: sha512-0NJQ4LFFUuWkE7Oxf0htBKS6zLkkjBH+hM1uk7Ng705ReR8m/uelduy1DBo0PyBXPKVnBA6YBlU94MBGXrSBCw==} peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' + '@types/react': 18.2.0 + '@types/react-dom': 18.2.0 react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: @@ -839,8 +1008,8 @@ packages: '@radix-ui/react-portal@1.1.9': resolution: {integrity: sha512-bpIxvq03if6UNwXZ+HTK71JLh4APvnXntDc6XOX8UVq4XQOVl7lwok0AvIl+b8zgCw3fSaVTZMpAPPagXbKmHQ==} peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' + '@types/react': 18.2.0 + '@types/react-dom': 18.2.0 react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: @@ -852,8 +1021,8 @@ packages: '@radix-ui/react-presence@1.1.5': resolution: {integrity: sha512-/jfEwNDdQVBCNvjkGit4h6pMOzq8bHkopq458dPt2lMjx+eBQUohZNG9A7DtO/O5ukSbxuaNGXMjHicgwy6rQQ==} peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' + '@types/react': 18.2.0 + '@types/react-dom': 18.2.0 react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: @@ -865,8 +1034,8 @@ packages: '@radix-ui/react-primitive@2.1.3': resolution: {integrity: sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ==} peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' + '@types/react': 18.2.0 + '@types/react-dom': 18.2.0 react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: @@ -878,8 +1047,8 @@ packages: '@radix-ui/react-progress@1.1.7': resolution: {integrity: sha512-vPdg/tF6YC/ynuBIJlk1mm7Le0VgW6ub6J2UWnTQ7/D23KXcPI1qy+0vBkgKgd38RCMJavBXpB83HPNFMTb0Fg==} peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' + '@types/react': 18.2.0 + '@types/react-dom': 18.2.0 react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: @@ -891,8 +1060,8 @@ packages: '@radix-ui/react-radio-group@1.3.8': resolution: {integrity: sha512-VBKYIYImA5zsxACdisNQ3BjCBfmbGH3kQlnFVqlWU4tXwjy7cGX8ta80BcrO+WJXIn5iBylEH3K6ZTlee//lgQ==} peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' + '@types/react': 18.2.0 + '@types/react-dom': 18.2.0 react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: @@ -904,8 +1073,8 @@ packages: '@radix-ui/react-roving-focus@1.1.11': resolution: {integrity: sha512-7A6S9jSgm/S+7MdtNDSb+IU859vQqJ/QAtcYQcfFC6W8RS4IxIZDldLR0xqCFZ6DCyrQLjLPsxtTNch5jVA4lA==} peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' + '@types/react': 18.2.0 + '@types/react-dom': 18.2.0 react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: @@ -917,8 +1086,8 @@ packages: '@radix-ui/react-scroll-area@1.2.10': resolution: {integrity: sha512-tAXIa1g3sM5CGpVT0uIbUx/U3Gs5N8T52IICuCtObaos1S8fzsrPXG5WObkQN3S6NVl6wKgPhAIiBGbWnvc97A==} peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' + '@types/react': 18.2.0 + '@types/react-dom': 18.2.0 react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: @@ -930,8 +1099,8 @@ packages: '@radix-ui/react-select@2.2.6': resolution: {integrity: sha512-I30RydO+bnn2PQztvo25tswPH+wFBjehVGtmagkU78yMdwTwVf12wnAOF+AeP8S2N8xD+5UPbGhkUfPyvT+mwQ==} peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' + '@types/react': 18.2.0 + '@types/react-dom': 18.2.0 react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: @@ -943,8 +1112,8 @@ packages: '@radix-ui/react-separator@1.1.7': resolution: {integrity: sha512-0HEb8R9E8A+jZjvmFCy/J4xhbXy3TV+9XSnGJ3KvTtjlIUy/YQ/p6UYZvi7YbeoeXdyU9+Y3scizK6hkY37baA==} peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' + '@types/react': 18.2.0 + '@types/react-dom': 18.2.0 react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: @@ -956,8 +1125,8 @@ packages: '@radix-ui/react-slider@1.3.6': resolution: {integrity: sha512-JPYb1GuM1bxfjMRlNLE+BcmBC8onfCi60Blk7OBqi2MLTFdS+8401U4uFjnwkOr49BLmXxLC6JHkvAsx5OJvHw==} peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' + '@types/react': 18.2.0 + '@types/react-dom': 18.2.0 react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: @@ -969,7 +1138,7 @@ packages: '@radix-ui/react-slot@1.2.3': resolution: {integrity: sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==} peerDependencies: - '@types/react': '*' + '@types/react': 18.2.0 react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: '@types/react': @@ -978,8 +1147,8 @@ packages: '@radix-ui/react-switch@1.2.6': resolution: {integrity: sha512-bByzr1+ep1zk4VubeEVViV592vu2lHE2BZY5OnzehZqOOgogN80+mNtCqPkhn2gklJqOpxWgPoYTSnhBCqpOXQ==} peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' + '@types/react': 18.2.0 + '@types/react-dom': 18.2.0 react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: @@ -991,8 +1160,8 @@ packages: '@radix-ui/react-tabs@1.1.13': resolution: {integrity: sha512-7xdcatg7/U+7+Udyoj2zodtI9H/IIopqo+YOIcZOq1nJwXWBZ9p8xiu5llXlekDbZkca79a/fozEYQXIA4sW6A==} peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' + '@types/react': 18.2.0 + '@types/react-dom': 18.2.0 react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: @@ -1004,8 +1173,8 @@ packages: '@radix-ui/react-toast@1.2.15': resolution: {integrity: sha512-3OSz3TacUWy4WtOXV38DggwxoqJK4+eDkNMl5Z/MJZaoUPaP4/9lf81xXMe1I2ReTAptverZUpbPY4wWwWyL5g==} peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' + '@types/react': 18.2.0 + '@types/react-dom': 18.2.0 react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: @@ -1017,8 +1186,8 @@ packages: '@radix-ui/react-toggle-group@1.1.11': resolution: {integrity: sha512-5umnS0T8JQzQT6HbPyO7Hh9dgd82NmS36DQr+X/YJ9ctFNCiiQd6IJAYYZ33LUwm8M+taCz5t2ui29fHZc4Y6Q==} peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' + '@types/react': 18.2.0 + '@types/react-dom': 18.2.0 react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: @@ -1030,8 +1199,8 @@ packages: '@radix-ui/react-toggle@1.1.10': resolution: {integrity: sha512-lS1odchhFTeZv3xwHH31YPObmJn8gOg7Lq12inrr0+BH/l3Tsq32VfjqH1oh80ARM3mlkfMic15n0kg4sD1poQ==} peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' + '@types/react': 18.2.0 + '@types/react-dom': 18.2.0 react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: @@ -1043,8 +1212,8 @@ packages: '@radix-ui/react-toolbar@1.1.11': resolution: {integrity: sha512-4ol06/1bLoFu1nwUqzdD4Y5RZ9oDdKeiHIsntug54Hcr1pgaHiPqHFEaXI1IFP/EsOfROQZ8Mig9VTIRza6Tjg==} peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' + '@types/react': 18.2.0 + '@types/react-dom': 18.2.0 react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: @@ -1056,8 +1225,8 @@ packages: '@radix-ui/react-tooltip@1.2.8': resolution: {integrity: sha512-tY7sVt1yL9ozIxvmbtN5qtmH2krXcBCfjEiCgKGLqunJHvgvZG2Pcl2oQ3kbcZARb1BGEHdkLzcYGO8ynVlieg==} peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' + '@types/react': 18.2.0 + '@types/react-dom': 18.2.0 react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: @@ -1069,7 +1238,7 @@ packages: '@radix-ui/react-use-callback-ref@1.1.1': resolution: {integrity: sha512-FkBMwD+qbGQeMu1cOHnuGB6x4yzPjho8ap5WtbEJ26umhgqVXbhekKUQO+hZEL1vU92a3wHwdp0HAcqAUF5iDg==} peerDependencies: - '@types/react': '*' + '@types/react': 18.2.0 react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: '@types/react': @@ -1078,7 +1247,7 @@ packages: '@radix-ui/react-use-controllable-state@1.2.2': resolution: {integrity: sha512-BjasUjixPFdS+NKkypcyyN5Pmg83Olst0+c6vGov0diwTEo6mgdqVR6hxcEgFuh4QrAs7Rc+9KuGJ9TVCj0Zzg==} peerDependencies: - '@types/react': '*' + '@types/react': 18.2.0 react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: '@types/react': @@ -1087,7 +1256,7 @@ packages: '@radix-ui/react-use-effect-event@0.0.2': resolution: {integrity: sha512-Qp8WbZOBe+blgpuUT+lw2xheLP8q0oatc9UpmiemEICxGvFLYmHm9QowVZGHtJlGbS6A6yJ3iViad/2cVjnOiA==} peerDependencies: - '@types/react': '*' + '@types/react': 18.2.0 react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: '@types/react': @@ -1096,7 +1265,7 @@ packages: '@radix-ui/react-use-escape-keydown@1.1.1': resolution: {integrity: sha512-Il0+boE7w/XebUHyBjroE+DbByORGR9KKmITzbR7MyQ4akpORYP/ZmbhAr0DG7RmmBqoOnZdy2QlvajJ2QA59g==} peerDependencies: - '@types/react': '*' + '@types/react': 18.2.0 react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: '@types/react': @@ -1105,7 +1274,7 @@ packages: '@radix-ui/react-use-is-hydrated@0.1.0': resolution: {integrity: sha512-U+UORVEq+cTnRIaostJv9AGdV3G6Y+zbVd+12e18jQ5A3c0xL03IhnHuiU4UV69wolOQp5GfR58NW/EgdQhwOA==} peerDependencies: - '@types/react': '*' + '@types/react': 18.2.0 react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: '@types/react': @@ -1114,7 +1283,7 @@ packages: '@radix-ui/react-use-layout-effect@1.1.1': resolution: {integrity: sha512-RbJRS4UWQFkzHTTwVymMTUv8EqYhOp8dOOviLj2ugtTiXRaRQS7GLGxZTLL1jWhMeoSCf5zmcZkqTl9IiYfXcQ==} peerDependencies: - '@types/react': '*' + '@types/react': 18.2.0 react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: '@types/react': @@ -1123,7 +1292,7 @@ packages: '@radix-ui/react-use-previous@1.1.1': resolution: {integrity: sha512-2dHfToCj/pzca2Ck724OZ5L0EVrr3eHRNsG/b3xQJLA2hZpVCS99bLAX+hm1IHXDEnzU6by5z/5MIY794/a8NQ==} peerDependencies: - '@types/react': '*' + '@types/react': 18.2.0 react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: '@types/react': @@ -1132,7 +1301,7 @@ packages: '@radix-ui/react-use-rect@1.1.1': resolution: {integrity: sha512-QTYuDesS0VtuHNNvMh+CjlKJ4LJickCMUAqjlE3+j8w+RlRpwyX3apEQKGFzbZGdo7XNG1tXa+bQqIE7HIXT2w==} peerDependencies: - '@types/react': '*' + '@types/react': 18.2.0 react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: '@types/react': @@ -1141,7 +1310,7 @@ packages: '@radix-ui/react-use-size@1.1.1': resolution: {integrity: sha512-ewrXRDTAqAXlkl6t/fkXWNAhFX9I+CkKlw6zjEwk86RSPKwZr3xpBRso655aqYafwtnbpHLj6toFzmd6xdVptQ==} peerDependencies: - '@types/react': '*' + '@types/react': 18.2.0 react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: '@types/react': @@ -1150,8 +1319,8 @@ packages: '@radix-ui/react-visually-hidden@1.2.3': resolution: {integrity: sha512-pzJq12tEaaIhqjbzpCuv/OypJY/BPavOofm+dbab+MHLajy277+1lLm6JFcGgF5eskJ6mquGirhXY2GD/8u8Ug==} peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' + '@types/react': 18.2.0 + '@types/react-dom': 18.2.0 react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: @@ -1423,8 +1592,8 @@ packages: engines: {node: '>=18'} peerDependencies: '@testing-library/dom': ^10.0.0 - '@types/react': ^18.0.0 || ^19.0.0 - '@types/react-dom': ^18.0.0 || ^19.0.0 + '@types/react': 18.2.0 + '@types/react-dom': 18.2.0 react: ^18.0.0 || ^19.0.0 react-dom: ^18.0.0 || ^19.0.0 peerDependenciesMeta: @@ -1581,37 +1750,37 @@ packages: '@tiptap/starter-kit@2.27.2': resolution: {integrity: sha512-bb0gJvPoDuyRUQ/iuN52j1//EtWWttw+RXAv1uJxfR0uKf8X7uAqzaOOgwjknoCIDC97+1YHwpGdnRjpDkOBxw==} - '@tldraw/editor@3.15.1': - resolution: {integrity: sha512-M1sYYmOUP0jC00WUhZQRXJnVagvBCzgQEjxSz7YSzyzekbv8GbhGvUpvFOgPrhPr3oS5v4YDNfTKfzXElu9ZEA==} + '@tldraw/editor@3.15.5': + resolution: {integrity: sha512-/PGs/SOfuJw5FOgmfqlwVcS887mK4DOHQjxEchS3pg/R/80KTA6j7BNpiHxWQ1FhYHGg+A2QEAijKNcscyK8zw==} peerDependencies: react: ^18.2.0 || ^19.0.0 react-dom: ^18.2.0 || ^19.0.0 - '@tldraw/state-react@3.15.1': - resolution: {integrity: sha512-TZQG+Slx2A5RhaonyU9mk4sqTwTNP1lyapU2cT5BG9SfpYdH8YoHmVa5DVlVjl8m/+onsKH12wKBPTJsNYEZgQ==} + '@tldraw/state-react@3.15.5': + resolution: {integrity: sha512-KuiDJm4mAgdbuboowGv2hrG6tq9p7+OpatSMgJW8ZEezFJEcGcvQSeL+RWdu0lgj41pRdyg/i64ZIKWOeTpriQ==} peerDependencies: react: ^18.2.0 || ^19.0.0 react-dom: ^18.2.0 || ^19.0.0 - '@tldraw/state@3.15.1': - resolution: {integrity: sha512-+idRW1KmphL6POQCVYFDi0nJ30OU+YwD1eitVWc/vPVWrq1sZAnHPcH2JhB+8eky5fnSOh9Utx4/xOZdK37sWw==} + '@tldraw/state@3.15.5': + resolution: {integrity: sha512-wqa6zWzfz09lV/QOgxRYpbD5nrBl+2Q43eGtM+sFJB4WclTIGQXP6m5VYns3VmEafzJuVFLmUq3RBcK/lEELxw==} - '@tldraw/store@3.15.1': - resolution: {integrity: sha512-EbP0QXMlqZmTOD4j3hdyKo2kofzYPXDTVEXOngW48dSy/krvErDy04sx2DyMCZKxEqv6r/zR1hwzaxXr0ByGqQ==} + '@tldraw/store@3.15.5': + resolution: {integrity: sha512-I0khxAsRVtXbScZqsEo6aAtyyb/Mb65xl/aAMvFqH/9iNGT18pWJqgEu0i1VrXAnXA4IBjjivhhS8WhSzlEOZA==} peerDependencies: react: ^18.2.0 || ^19.0.0 - '@tldraw/tlschema@3.15.1': - resolution: {integrity: sha512-l9qA5K9EqQCCiWv0JhjPX1kCpw9QIxj6RUFsz1J4B7sE2hc0l12szaMbtgruJGHgc841uOfb+W7DjCNAt22PeQ==} + '@tldraw/tlschema@3.15.5': + resolution: {integrity: sha512-IHOhwXYDdq6+IDkFOXb5rI/O5KAFs/Kq3p9QIK174LvUbsT27Xlzv/ikZe68OafvonNo1QIXuOqQSv+Q40+7Wg==} peerDependencies: react: ^18.2.0 || ^19.0.0 react-dom: ^18.2.0 || ^19.0.0 - '@tldraw/utils@3.15.1': - resolution: {integrity: sha512-70W70qta3AtYEqzfi3KAUcW+tu55RER1qGCsaNrkBRLRn9LCl98PfWsrklSNjJ/smdm9riFDpMabYYvNRAbyjw==} + '@tldraw/utils@3.15.5': + resolution: {integrity: sha512-kdRLl2oMCbN5i2agVJ1ZsL3/ipiBGVQiS33/0NrqijoA9zFyM7sNgr8sb+6vjNbV1HrXHHSxeBHVCusBlZu8iQ==} - '@tldraw/validate@3.15.1': - resolution: {integrity: sha512-4r4/E7tHrPQ4T4cF7vQjJecyCI1GDHA+wLdkW+XEtCUd04SX/rbee5iqHFhW4NU6gpvGLAxxaLxeVQh/5rhqfQ==} + '@tldraw/validate@3.15.5': + resolution: {integrity: sha512-DyvEySVHJ7cCqCMd5stDTYllEZGHZEEpAuQQeb+fQTsxf9X+iO3la6hjnLbALewsBFakzma6r1M9aDrA3LSGkA==} '@tootallnate/once@2.0.0': resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==} @@ -1675,17 +1844,17 @@ packages: '@types/nanoid@2.0.0': resolution: {integrity: sha512-NtwPHfAyU3IDXdKAB2OMPpAauHBg9gUjpOYr3FAzI84D70nWdS8k5mryteLvT/s1ACeAFAkGg132/XJVN4qx/w==} - '@types/node@25.2.1': - resolution: {integrity: sha512-CPrnr8voK8vC6eEtyRzvMpgp3VyVRhgclonE7qYi6P9sXwYb59ucfrnmFBTaP0yUi8Gk4yZg/LlTJULGxvTNsg==} + '@types/node@25.2.2': + resolution: {integrity: sha512-BkmoP5/FhRYek5izySdkOneRyXYN35I860MFAGupTdebyE66uZaR+bXLHq8k4DirE5DwQi3NuhvRU1jqTVwUrQ==} '@types/prop-types@15.7.15': resolution: {integrity: sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==} - '@types/react-dom@17.0.13': - resolution: {integrity: sha512-wEP+B8hzvy6ORDv1QBhcQia4j6ea4SFIBttHYpXKPFZRviBvknq0FRh3VrIxeXUmsPkwuXVZrVGG7KUVONmXCQ==} + '@types/react-dom@18.2.0': + resolution: {integrity: sha512-8yQrvS6sMpSwIovhPOwfyNf2Wz6v/B62LFSVYQ85+Rq3tLsBIG7rP5geMxaijTUxSkrO6RzN/IRuIAADYQsleA==} - '@types/react@17.0.39': - resolution: {integrity: sha512-UVavlfAxDd/AgAacMa60Azl7ygyQNRwC/DsHZmKgNvPmRR5p70AJ5Q9EAmL2NWOJmeV+vVUI4IAP7GZrN8h8Ug==} + '@types/react@18.2.0': + resolution: {integrity: sha512-0FLj93y5USLHdnhIhABk83rm8XEGA7kH3cr+YUlvxoUGp1xNt/DINUMvqPxLyOQMzLmZe8i4RTHbvb8MC7NmrA==} '@types/scheduler@0.26.0': resolution: {integrity: sha512-WFHp9YUJQ6CKshqoC37iOlHnQSmxNc795UhB26CyBBttrN9svdIrUjl/NjnNmfcwtncN0h/0PPAFWv9ovP8mLA==} @@ -1812,8 +1981,8 @@ packages: bl@4.1.0: resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} - bowser@2.13.1: - resolution: {integrity: sha512-OHawaAbjwx6rqICCKgSG0SAnT05bzd7ppyKLVUITZpANBaaMFBAsaNkto3LoQ31tyFP5kNujE8Cdx85G9VzOkw==} + bowser@2.14.1: + resolution: {integrity: sha512-tzPjzCxygAKWFOJP011oxFHs57HzIhOEracIgAePE4pqB3LikALKnSzUyU4MGs9/iCEUuHlAJTjTc5M+u7YEGg==} brace-expansion@1.1.12: resolution: {integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==} @@ -2114,6 +2283,11 @@ packages: resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==} engines: {node: '>= 0.4'} + esbuild@0.17.14: + resolution: {integrity: sha512-vOO5XhmVj/1XQR9NQ1UPq6qvMYL7QFJU57J5fKBKBKxp17uDt5PgxFDb4A2nEiXhr1qQs4x0F5+66hVVw4ruNw==} + engines: {node: '>=12'} + hasBin: true + esbuild@0.27.3: resolution: {integrity: sha512-8VwMnyGCONIs6cWue2IdpHxHnAjzxnw2Zr7MkVxB2vjmQ2ivqGFb4LEG3SMnv0Gb2F/G/2yA8zUaiL1gywDCCg==} engines: {node: '>=18'} @@ -2780,16 +2954,22 @@ packages: peerDependencies: postcss: ^8.4.21 - postcss-load-config@4.0.2: - resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==} - engines: {node: '>= 14'} + postcss-load-config@6.0.1: + resolution: {integrity: sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==} + engines: {node: '>= 18'} peerDependencies: + jiti: '>=1.21.0' postcss: '>=8.0.9' - ts-node: '>=9.0.0' + tsx: ^4.8.1 + yaml: ^2.4.2 peerDependenciesMeta: + jiti: + optional: true postcss: optional: true - ts-node: + tsx: + optional: true + yaml: optional: true postcss-nested@6.2.0: @@ -2980,8 +3160,8 @@ packages: radix-ui@1.4.3: resolution: {integrity: sha512-aWizCQiyeAenIdUbqEpXgRA1ya65P13NKn/W8rWkcN0OPkRDxdBVLWnIEDsS2RpwCK2nobI7oMUSmexzTDyAmA==} peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' + '@types/react': 18.2.0 + '@types/react-dom': 18.2.0 react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: @@ -2995,10 +3175,10 @@ packages: peerDependencies: react: ~0.13.x || ~0.14.x || ^15.0.0 || ^16.0.0 || ^17.0.0 - react-dom@17.0.2: - resolution: {integrity: sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==} + react-dom@18.2.0: + resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==} peerDependencies: - react: 17.0.2 + react: ^18.2.0 react-is@16.13.1: resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} @@ -3018,7 +3198,7 @@ packages: resolution: {integrity: sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q==} engines: {node: '>=10'} peerDependencies: - '@types/react': '*' + '@types/react': 18.2.0 react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 peerDependenciesMeta: '@types/react': @@ -3028,7 +3208,7 @@ packages: resolution: {integrity: sha512-Iqb9NjCCTt6Hf+vOdNIZGdTiH1QSqr27H/Ek9sv/a97gfueI/5h1s3yRi1nngzMUaOOToin5dI1dXKdXiF+u0Q==} engines: {node: '>=10'} peerDependencies: - '@types/react': '*' + '@types/react': 18.2.0 react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc peerDependenciesMeta: '@types/react': @@ -3038,7 +3218,7 @@ packages: resolution: {integrity: sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ==} engines: {node: '>=10'} peerDependencies: - '@types/react': '*' + '@types/react': 18.2.0 react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc peerDependenciesMeta: '@types/react': @@ -3050,8 +3230,8 @@ packages: react: '>=15.0.0' react-dom: '>=15.0.0' - react@17.0.2: - resolution: {integrity: sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==} + react@18.2.0: + resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==} engines: {node: '>=0.10.0'} read-cache@1.0.0: @@ -3124,8 +3304,8 @@ packages: '@types/jsdom': ^20.0.1 '@types/marked': ^4.0.3 '@types/nanoid': 2.0.0 - '@types/react': 17.0.39 - '@types/react-dom': 17.0.13 + '@types/react': 18.2.0 + '@types/react-dom': 18.2.0 '@types/use-sync-external-store': ^0.0.3 chrono-node: 2.3.0 crypto-js: 3.1.9-1 @@ -3162,8 +3342,8 @@ packages: resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==} engines: {node: '>=v12.22.7'} - scheduler@0.20.2: - resolution: {integrity: sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==} + scheduler@0.23.2: + resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==} semver@5.7.2: resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} @@ -3289,8 +3469,8 @@ packages: tippy.js@6.3.7: resolution: {integrity: sha512-E1d3oP2emgJ9dRQZdf3Kkn0qJgI6ZLpyS5z6ZkY1DF3kaQaBsGZsndEpHwx+eC+tYM41HaSNvNtLx8tU57FzTQ==} - tldraw@3.15.1: - resolution: {integrity: sha512-r2dUNhDoGDP2eEZrb2c4MQgxzpQPcrsZoVdiyD4LL9GcXc+K7p3yo/8/jn8pad0bFlXXq8ov9ioL0C/k2RNcnA==} + tldraw@3.15.5: + resolution: {integrity: sha512-lzi69i4aMDRf3edC6DZrbSqYOcQWv0n0QwxfUC1QI7fHfXN5aqEc3ni3SxPfvFNuzwYWyOwZRUWUtoI1MsKRzw==} peerDependencies: react: ^18.2.0 || ^19.0.0 react-dom: ^18.2.0 || ^19.0.0 @@ -3377,7 +3557,7 @@ packages: resolution: {integrity: sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==} engines: {node: '>=10'} peerDependencies: - '@types/react': '*' + '@types/react': 18.2.0 react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc peerDependenciesMeta: '@types/react': @@ -3387,7 +3567,7 @@ packages: resolution: {integrity: sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ==} engines: {node: '>=10'} peerDependencies: - '@types/react': '*' + '@types/react': 18.2.0 react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc peerDependenciesMeta: '@types/react': @@ -3496,11 +3676,6 @@ packages: resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} engines: {node: '>= 6'} - yaml@2.8.2: - resolution: {integrity: sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A==} - engines: {node: '>= 14.6'} - hasBin: true - yargs-parser@20.2.9: resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} engines: {node: '>=10'} @@ -3575,7 +3750,7 @@ snapshots: '@smithy/util-utf8': 2.3.0 tslib: 2.8.1 - '@aws-sdk/client-lambda@3.985.0': + '@aws-sdk/client-lambda@3.986.0': dependencies: '@aws-crypto/sha256-browser': 5.2.0 '@aws-crypto/sha256-js': 5.2.0 @@ -3587,7 +3762,7 @@ snapshots: '@aws-sdk/middleware-user-agent': 3.972.7 '@aws-sdk/region-config-resolver': 3.972.3 '@aws-sdk/types': 3.973.1 - '@aws-sdk/util-endpoints': 3.985.0 + '@aws-sdk/util-endpoints': 3.986.0 '@aws-sdk/util-user-agent-browser': 3.972.3 '@aws-sdk/util-user-agent-node': 3.972.5 '@smithy/config-resolver': 4.4.6 @@ -3624,7 +3799,7 @@ snapshots: transitivePeerDependencies: - aws-crt - '@aws-sdk/client-s3@3.985.0': + '@aws-sdk/client-s3@3.986.0': dependencies: '@aws-crypto/sha1-browser': 5.2.0 '@aws-crypto/sha256-browser': 5.2.0 @@ -3642,9 +3817,9 @@ snapshots: '@aws-sdk/middleware-ssec': 3.972.3 '@aws-sdk/middleware-user-agent': 3.972.7 '@aws-sdk/region-config-resolver': 3.972.3 - '@aws-sdk/signature-v4-multi-region': 3.985.0 + '@aws-sdk/signature-v4-multi-region': 3.986.0 '@aws-sdk/types': 3.973.1 - '@aws-sdk/util-endpoints': 3.985.0 + '@aws-sdk/util-endpoints': 3.986.0 '@aws-sdk/util-user-agent-browser': 3.972.3 '@aws-sdk/util-user-agent-node': 3.972.5 '@smithy/config-resolver': 4.4.6 @@ -3997,7 +4172,7 @@ snapshots: '@smithy/types': 4.12.0 tslib: 2.8.1 - '@aws-sdk/signature-v4-multi-region@3.985.0': + '@aws-sdk/signature-v4-multi-region@3.986.0': dependencies: '@aws-sdk/middleware-sdk-s3': 3.972.7 '@aws-sdk/types': 3.973.1 @@ -4035,6 +4210,14 @@ snapshots: '@smithy/util-endpoints': 3.2.8 tslib: 2.8.1 + '@aws-sdk/util-endpoints@3.986.0': + dependencies: + '@aws-sdk/types': 3.973.1 + '@smithy/types': 4.12.0 + '@smithy/url-parser': 4.2.8 + '@smithy/util-endpoints': 3.2.8 + tslib: 2.8.1 + '@aws-sdk/util-locate-window@3.965.4': dependencies: tslib: 2.8.1 @@ -4043,7 +4226,7 @@ snapshots: dependencies: '@aws-sdk/types': 3.973.1 '@smithy/types': 4.12.0 - bowser: 2.13.1 + bowser: 2.14.1 tslib: 2.8.1 '@aws-sdk/util-user-agent-node@3.972.5': @@ -4082,7 +4265,7 @@ snapshots: dependencies: tslib: 2.5.3 - '@blueprintjs/core@3.50.4(react-dom@17.0.2(react@17.0.2))(react@17.0.2)': + '@blueprintjs/core@3.50.4(patch_hash=x3zagppzlahhgxgudquqcrc5xa)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@blueprintjs/colors': 4.2.1 '@blueprintjs/icons': 3.33.0 @@ -4091,21 +4274,21 @@ snapshots: dom4: 2.1.6 normalize.css: 8.0.1 popper.js: 1.16.1 - react: 17.0.2 - react-dom: 17.0.2(react@17.0.2) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) react-lifecycles-compat: 3.0.4 - react-popper: 1.3.11(react@17.0.2) - react-transition-group: 2.9.0(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + react-popper: 1.3.11(react@18.2.0) + react-transition-group: 2.9.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) resize-observer-polyfill: 1.5.1 tslib: 1.13.0 - '@blueprintjs/datetime@3.23.14(react-dom@17.0.2(react@17.0.2))(react@17.0.2)': + '@blueprintjs/datetime@3.23.14(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: - '@blueprintjs/core': 3.50.4(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@blueprintjs/core': 3.50.4(patch_hash=x3zagppzlahhgxgudquqcrc5xa)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) classnames: 2.5.1 - react: 17.0.2 - react-day-picker: 7.4.9(react@17.0.2) - react-dom: 17.0.2(react@17.0.2) + react: 18.2.0 + react-day-picker: 7.4.9(react@18.2.0) + react-dom: 18.2.0(react@18.2.0) react-lifecycles-compat: 3.0.4 tslib: 1.13.0 @@ -4114,12 +4297,12 @@ snapshots: classnames: 2.5.1 tslib: 2.3.1 - '@blueprintjs/select@3.18.6(react-dom@17.0.2(react@17.0.2))(react@17.0.2)': + '@blueprintjs/select@3.18.6(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: - '@blueprintjs/core': 3.50.4(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@blueprintjs/core': 3.50.4(patch_hash=x3zagppzlahhgxgudquqcrc5xa)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) classnames: 2.5.1 - react: 17.0.2 - react-dom: 17.0.2(react@17.0.2) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) tslib: 1.13.0 '@cspotcode/source-map-support@0.8.1': @@ -4129,78 +4312,144 @@ snapshots: '@esbuild/aix-ppc64@0.27.3': optional: true + '@esbuild/android-arm64@0.17.14': + optional: true + '@esbuild/android-arm64@0.27.3': optional: true + '@esbuild/android-arm@0.17.14': + optional: true + '@esbuild/android-arm@0.27.3': optional: true + '@esbuild/android-x64@0.17.14': + optional: true + '@esbuild/android-x64@0.27.3': optional: true + '@esbuild/darwin-arm64@0.17.14': + optional: true + '@esbuild/darwin-arm64@0.27.3': optional: true + '@esbuild/darwin-x64@0.17.14': + optional: true + '@esbuild/darwin-x64@0.27.3': optional: true + '@esbuild/freebsd-arm64@0.17.14': + optional: true + '@esbuild/freebsd-arm64@0.27.3': optional: true + '@esbuild/freebsd-x64@0.17.14': + optional: true + '@esbuild/freebsd-x64@0.27.3': optional: true + '@esbuild/linux-arm64@0.17.14': + optional: true + '@esbuild/linux-arm64@0.27.3': optional: true + '@esbuild/linux-arm@0.17.14': + optional: true + '@esbuild/linux-arm@0.27.3': optional: true + '@esbuild/linux-ia32@0.17.14': + optional: true + '@esbuild/linux-ia32@0.27.3': optional: true + '@esbuild/linux-loong64@0.17.14': + optional: true + '@esbuild/linux-loong64@0.27.3': optional: true + '@esbuild/linux-mips64el@0.17.14': + optional: true + '@esbuild/linux-mips64el@0.27.3': optional: true + '@esbuild/linux-ppc64@0.17.14': + optional: true + '@esbuild/linux-ppc64@0.27.3': optional: true + '@esbuild/linux-riscv64@0.17.14': + optional: true + '@esbuild/linux-riscv64@0.27.3': optional: true + '@esbuild/linux-s390x@0.17.14': + optional: true + '@esbuild/linux-s390x@0.27.3': optional: true + '@esbuild/linux-x64@0.17.14': + optional: true + '@esbuild/linux-x64@0.27.3': optional: true '@esbuild/netbsd-arm64@0.27.3': optional: true + '@esbuild/netbsd-x64@0.17.14': + optional: true + '@esbuild/netbsd-x64@0.27.3': optional: true '@esbuild/openbsd-arm64@0.27.3': optional: true + '@esbuild/openbsd-x64@0.17.14': + optional: true + '@esbuild/openbsd-x64@0.27.3': optional: true '@esbuild/openharmony-arm64@0.27.3': optional: true + '@esbuild/sunos-x64@0.17.14': + optional: true + '@esbuild/sunos-x64@0.27.3': optional: true + '@esbuild/win32-arm64@0.17.14': + optional: true + '@esbuild/win32-arm64@0.27.3': optional: true + '@esbuild/win32-ia32@0.17.14': + optional: true + '@esbuild/win32-ia32@0.27.3': optional: true + '@esbuild/win32-x64@0.17.14': + optional: true + '@esbuild/win32-x64@0.27.3': optional: true @@ -4213,19 +4462,19 @@ snapshots: '@floating-ui/core': 1.7.4 '@floating-ui/utils': 0.2.10 - '@floating-ui/react-dom@2.1.7(react-dom@17.0.2(react@17.0.2))(react@17.0.2)': + '@floating-ui/react-dom@2.1.7(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@floating-ui/dom': 1.7.5 - react: 17.0.2 - react-dom: 17.0.2(react@17.0.2) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) '@floating-ui/utils@0.2.10': {} - '@hypnosphi/create-react-context@0.3.1(prop-types@15.8.1)(react@17.0.2)': + '@hypnosphi/create-react-context@0.3.1(prop-types@15.8.1)(react@18.2.0)': dependencies: gud: 1.0.0 prop-types: 15.8.1 - react: 17.0.2 + react: 18.2.0 warning: 4.0.3 '@istanbuljs/schema@0.1.3': {} @@ -4265,7 +4514,7 @@ snapshots: '@playwright/test@1.29.0': dependencies: - '@types/node': 25.2.1 + '@types/node': 25.2.2 playwright-core: 1.29.0 '@popperjs/core@2.11.8': {} @@ -4274,777 +4523,777 @@ snapshots: '@radix-ui/primitive@1.1.3': {} - '@radix-ui/react-accessible-icon@1.1.7(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2)': + '@radix-ui/react-accessible-icon@1.1.7(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: - '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - react: 17.0.2 - react-dom: 17.0.2(react@17.0.2) + '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) optionalDependencies: - '@types/react': 17.0.39 - '@types/react-dom': 17.0.13 + '@types/react': 18.2.0 + '@types/react-dom': 18.2.0 - '@radix-ui/react-accordion@1.2.12(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2)': + '@radix-ui/react-accordion@1.2.12(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-collapsible': 1.1.12(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-collection': 1.1.7(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-context': 1.1.2(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-direction': 1.1.1(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-id': 1.1.1(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@17.0.39)(react@17.0.2) - react: 17.0.2 - react-dom: 17.0.2(react@17.0.2) + '@radix-ui/react-collapsible': 1.1.12(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-collection': 1.1.7(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-context': 1.1.2(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-direction': 1.1.1(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-id': 1.1.1(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) optionalDependencies: - '@types/react': 17.0.39 - '@types/react-dom': 17.0.13 + '@types/react': 18.2.0 + '@types/react-dom': 18.2.0 - '@radix-ui/react-alert-dialog@1.1.15(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2)': + '@radix-ui/react-alert-dialog@1.1.15(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-context': 1.1.2(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-dialog': 1.1.15(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-slot': 1.2.3(@types/react@17.0.39)(react@17.0.2) - react: 17.0.2 - react-dom: 17.0.2(react@17.0.2) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-context': 1.1.2(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-dialog': 1.1.15(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-slot': 1.2.3(@types/react@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) optionalDependencies: - '@types/react': 17.0.39 - '@types/react-dom': 17.0.13 + '@types/react': 18.2.0 + '@types/react-dom': 18.2.0 - '@radix-ui/react-arrow@1.1.7(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2)': + '@radix-ui/react-arrow@1.1.7(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - react: 17.0.2 - react-dom: 17.0.2(react@17.0.2) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) optionalDependencies: - '@types/react': 17.0.39 - '@types/react-dom': 17.0.13 + '@types/react': 18.2.0 + '@types/react-dom': 18.2.0 - '@radix-ui/react-aspect-ratio@1.1.7(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2)': + '@radix-ui/react-aspect-ratio@1.1.7(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - react: 17.0.2 - react-dom: 17.0.2(react@17.0.2) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) optionalDependencies: - '@types/react': 17.0.39 - '@types/react-dom': 17.0.13 - - '@radix-ui/react-avatar@1.1.10(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2)': - dependencies: - '@radix-ui/react-context': 1.1.2(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-use-is-hydrated': 0.1.0(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@17.0.39)(react@17.0.2) - react: 17.0.2 - react-dom: 17.0.2(react@17.0.2) + '@types/react': 18.2.0 + '@types/react-dom': 18.2.0 + + '@radix-ui/react-avatar@1.1.10(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@radix-ui/react-context': 1.1.2(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-use-is-hydrated': 0.1.0(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) optionalDependencies: - '@types/react': 17.0.39 - '@types/react-dom': 17.0.13 + '@types/react': 18.2.0 + '@types/react-dom': 18.2.0 - '@radix-ui/react-checkbox@1.3.3(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2)': + '@radix-ui/react-checkbox@1.3.3(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-context': 1.1.2(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-use-previous': 1.1.1(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-use-size': 1.1.1(@types/react@17.0.39)(react@17.0.2) - react: 17.0.2 - react-dom: 17.0.2(react@17.0.2) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-context': 1.1.2(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-use-previous': 1.1.1(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-use-size': 1.1.1(@types/react@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) optionalDependencies: - '@types/react': 17.0.39 - '@types/react-dom': 17.0.13 + '@types/react': 18.2.0 + '@types/react-dom': 18.2.0 - '@radix-ui/react-collapsible@1.1.12(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2)': + '@radix-ui/react-collapsible@1.1.12(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-context': 1.1.2(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-id': 1.1.1(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@17.0.39)(react@17.0.2) - react: 17.0.2 - react-dom: 17.0.2(react@17.0.2) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-context': 1.1.2(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-id': 1.1.1(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) optionalDependencies: - '@types/react': 17.0.39 - '@types/react-dom': 17.0.13 + '@types/react': 18.2.0 + '@types/react-dom': 18.2.0 - '@radix-ui/react-collection@1.1.7(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2)': + '@radix-ui/react-collection@1.1.7(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-context': 1.1.2(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-slot': 1.2.3(@types/react@17.0.39)(react@17.0.2) - react: 17.0.2 - react-dom: 17.0.2(react@17.0.2) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-context': 1.1.2(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-slot': 1.2.3(@types/react@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) optionalDependencies: - '@types/react': 17.0.39 - '@types/react-dom': 17.0.13 + '@types/react': 18.2.0 + '@types/react-dom': 18.2.0 - '@radix-ui/react-compose-refs@1.1.2(@types/react@17.0.39)(react@17.0.2)': + '@radix-ui/react-compose-refs@1.1.2(@types/react@18.2.0)(react@18.2.0)': dependencies: - react: 17.0.2 + react: 18.2.0 optionalDependencies: - '@types/react': 17.0.39 + '@types/react': 18.2.0 - '@radix-ui/react-context-menu@2.2.16(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2)': + '@radix-ui/react-context-menu@2.2.16(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-context': 1.1.2(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-menu': 2.1.16(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@17.0.39)(react@17.0.2) - react: 17.0.2 - react-dom: 17.0.2(react@17.0.2) + '@radix-ui/react-context': 1.1.2(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-menu': 2.1.16(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) optionalDependencies: - '@types/react': 17.0.39 - '@types/react-dom': 17.0.13 + '@types/react': 18.2.0 + '@types/react-dom': 18.2.0 - '@radix-ui/react-context@1.1.2(@types/react@17.0.39)(react@17.0.2)': + '@radix-ui/react-context@1.1.2(@types/react@18.2.0)(react@18.2.0)': dependencies: - react: 17.0.2 + react: 18.2.0 optionalDependencies: - '@types/react': 17.0.39 + '@types/react': 18.2.0 - '@radix-ui/react-dialog@1.1.15(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2)': + '@radix-ui/react-dialog@1.1.15(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-context': 1.1.2(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-focus-guards': 1.1.3(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-id': 1.1.1(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-portal': 1.1.9(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-slot': 1.2.3(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-context': 1.1.2(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-focus-guards': 1.1.3(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-id': 1.1.1(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-slot': 1.2.3(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.2.0)(react@18.2.0) aria-hidden: 1.2.6 - react: 17.0.2 - react-dom: 17.0.2(react@17.0.2) - react-remove-scroll: 2.7.2(@types/react@17.0.39)(react@17.0.2) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + react-remove-scroll: 2.7.2(@types/react@18.2.0)(react@18.2.0) optionalDependencies: - '@types/react': 17.0.39 - '@types/react-dom': 17.0.13 + '@types/react': 18.2.0 + '@types/react-dom': 18.2.0 - '@radix-ui/react-direction@1.1.1(@types/react@17.0.39)(react@17.0.2)': + '@radix-ui/react-direction@1.1.1(@types/react@18.2.0)(react@18.2.0)': dependencies: - react: 17.0.2 + react: 18.2.0 optionalDependencies: - '@types/react': 17.0.39 + '@types/react': 18.2.0 - '@radix-ui/react-dismissable-layer@1.1.11(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2)': + '@radix-ui/react-dismissable-layer@1.1.11(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-use-escape-keydown': 1.1.1(@types/react@17.0.39)(react@17.0.2) - react: 17.0.2 - react-dom: 17.0.2(react@17.0.2) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-use-escape-keydown': 1.1.1(@types/react@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) optionalDependencies: - '@types/react': 17.0.39 - '@types/react-dom': 17.0.13 + '@types/react': 18.2.0 + '@types/react-dom': 18.2.0 - '@radix-ui/react-dropdown-menu@2.1.16(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2)': + '@radix-ui/react-dropdown-menu@2.1.16(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-context': 1.1.2(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-id': 1.1.1(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-menu': 2.1.16(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@17.0.39)(react@17.0.2) - react: 17.0.2 - react-dom: 17.0.2(react@17.0.2) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-context': 1.1.2(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-id': 1.1.1(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-menu': 2.1.16(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) optionalDependencies: - '@types/react': 17.0.39 - '@types/react-dom': 17.0.13 + '@types/react': 18.2.0 + '@types/react-dom': 18.2.0 - '@radix-ui/react-focus-guards@1.1.3(@types/react@17.0.39)(react@17.0.2)': + '@radix-ui/react-focus-guards@1.1.3(@types/react@18.2.0)(react@18.2.0)': dependencies: - react: 17.0.2 + react: 18.2.0 optionalDependencies: - '@types/react': 17.0.39 + '@types/react': 18.2.0 - '@radix-ui/react-focus-scope@1.1.7(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2)': + '@radix-ui/react-focus-scope@1.1.7(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@17.0.39)(react@17.0.2) - react: 17.0.2 - react-dom: 17.0.2(react@17.0.2) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) optionalDependencies: - '@types/react': 17.0.39 - '@types/react-dom': 17.0.13 + '@types/react': 18.2.0 + '@types/react-dom': 18.2.0 - '@radix-ui/react-form@0.1.8(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2)': + '@radix-ui/react-form@0.1.8(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-context': 1.1.2(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-id': 1.1.1(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-label': 2.1.7(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - react: 17.0.2 - react-dom: 17.0.2(react@17.0.2) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-context': 1.1.2(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-id': 1.1.1(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-label': 2.1.7(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) optionalDependencies: - '@types/react': 17.0.39 - '@types/react-dom': 17.0.13 + '@types/react': 18.2.0 + '@types/react-dom': 18.2.0 - '@radix-ui/react-hover-card@1.1.15(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2)': + '@radix-ui/react-hover-card@1.1.15(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-context': 1.1.2(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-popper': 1.2.8(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-portal': 1.1.9(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@17.0.39)(react@17.0.2) - react: 17.0.2 - react-dom: 17.0.2(react@17.0.2) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-context': 1.1.2(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-popper': 1.2.8(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) optionalDependencies: - '@types/react': 17.0.39 - '@types/react-dom': 17.0.13 + '@types/react': 18.2.0 + '@types/react-dom': 18.2.0 - '@radix-ui/react-id@1.1.1(@types/react@17.0.39)(react@17.0.2)': + '@radix-ui/react-id@1.1.1(@types/react@18.2.0)(react@18.2.0)': dependencies: - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@17.0.39)(react@17.0.2) - react: 17.0.2 + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.2.0)(react@18.2.0) + react: 18.2.0 optionalDependencies: - '@types/react': 17.0.39 + '@types/react': 18.2.0 - '@radix-ui/react-label@2.1.7(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2)': + '@radix-ui/react-label@2.1.7(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - react: 17.0.2 - react-dom: 17.0.2(react@17.0.2) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) optionalDependencies: - '@types/react': 17.0.39 - '@types/react-dom': 17.0.13 + '@types/react': 18.2.0 + '@types/react-dom': 18.2.0 - '@radix-ui/react-menu@2.1.16(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2)': + '@radix-ui/react-menu@2.1.16(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-collection': 1.1.7(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-context': 1.1.2(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-direction': 1.1.1(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-focus-guards': 1.1.3(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-id': 1.1.1(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-popper': 1.2.8(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-portal': 1.1.9(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-slot': 1.2.3(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-collection': 1.1.7(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-context': 1.1.2(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-direction': 1.1.1(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-focus-guards': 1.1.3(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-id': 1.1.1(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-popper': 1.2.8(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-slot': 1.2.3(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@18.2.0)(react@18.2.0) aria-hidden: 1.2.6 - react: 17.0.2 - react-dom: 17.0.2(react@17.0.2) - react-remove-scroll: 2.7.2(@types/react@17.0.39)(react@17.0.2) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + react-remove-scroll: 2.7.2(@types/react@18.2.0)(react@18.2.0) optionalDependencies: - '@types/react': 17.0.39 - '@types/react-dom': 17.0.13 + '@types/react': 18.2.0 + '@types/react-dom': 18.2.0 - '@radix-ui/react-menubar@1.1.16(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2)': + '@radix-ui/react-menubar@1.1.16(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-collection': 1.1.7(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-context': 1.1.2(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-direction': 1.1.1(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-id': 1.1.1(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-menu': 2.1.16(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@17.0.39)(react@17.0.2) - react: 17.0.2 - react-dom: 17.0.2(react@17.0.2) + '@radix-ui/react-collection': 1.1.7(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-context': 1.1.2(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-direction': 1.1.1(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-id': 1.1.1(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-menu': 2.1.16(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) optionalDependencies: - '@types/react': 17.0.39 - '@types/react-dom': 17.0.13 + '@types/react': 18.2.0 + '@types/react-dom': 18.2.0 - '@radix-ui/react-navigation-menu@1.2.14(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2)': + '@radix-ui/react-navigation-menu@1.2.14(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-collection': 1.1.7(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-context': 1.1.2(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-direction': 1.1.1(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-id': 1.1.1(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-use-previous': 1.1.1(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - react: 17.0.2 - react-dom: 17.0.2(react@17.0.2) + '@radix-ui/react-collection': 1.1.7(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-context': 1.1.2(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-direction': 1.1.1(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-id': 1.1.1(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-use-previous': 1.1.1(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) optionalDependencies: - '@types/react': 17.0.39 - '@types/react-dom': 17.0.13 + '@types/react': 18.2.0 + '@types/react-dom': 18.2.0 - '@radix-ui/react-one-time-password-field@0.1.8(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2)': + '@radix-ui/react-one-time-password-field@0.1.8(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@radix-ui/number': 1.1.1 '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-collection': 1.1.7(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-context': 1.1.2(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-direction': 1.1.1(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-use-effect-event': 0.0.2(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-use-is-hydrated': 0.1.0(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@17.0.39)(react@17.0.2) - react: 17.0.2 - react-dom: 17.0.2(react@17.0.2) + '@radix-ui/react-collection': 1.1.7(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-context': 1.1.2(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-direction': 1.1.1(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-use-effect-event': 0.0.2(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-use-is-hydrated': 0.1.0(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) optionalDependencies: - '@types/react': 17.0.39 - '@types/react-dom': 17.0.13 + '@types/react': 18.2.0 + '@types/react-dom': 18.2.0 - '@radix-ui/react-password-toggle-field@0.1.3(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2)': + '@radix-ui/react-password-toggle-field@0.1.3(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-context': 1.1.2(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-id': 1.1.1(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-use-effect-event': 0.0.2(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-use-is-hydrated': 0.1.0(@types/react@17.0.39)(react@17.0.2) - react: 17.0.2 - react-dom: 17.0.2(react@17.0.2) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-context': 1.1.2(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-id': 1.1.1(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-use-effect-event': 0.0.2(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-use-is-hydrated': 0.1.0(@types/react@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) optionalDependencies: - '@types/react': 17.0.39 - '@types/react-dom': 17.0.13 + '@types/react': 18.2.0 + '@types/react-dom': 18.2.0 - '@radix-ui/react-popover@1.1.15(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2)': + '@radix-ui/react-popover@1.1.15(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-context': 1.1.2(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-focus-guards': 1.1.3(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-id': 1.1.1(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-popper': 1.2.8(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-portal': 1.1.9(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-slot': 1.2.3(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@17.0.39)(react@17.0.2) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-context': 1.1.2(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-focus-guards': 1.1.3(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-id': 1.1.1(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-popper': 1.2.8(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-slot': 1.2.3(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.2.0)(react@18.2.0) aria-hidden: 1.2.6 - react: 17.0.2 - react-dom: 17.0.2(react@17.0.2) - react-remove-scroll: 2.7.2(@types/react@17.0.39)(react@17.0.2) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + react-remove-scroll: 2.7.2(@types/react@18.2.0)(react@18.2.0) optionalDependencies: - '@types/react': 17.0.39 - '@types/react-dom': 17.0.13 - - '@radix-ui/react-popper@1.2.8(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2)': - dependencies: - '@floating-ui/react-dom': 2.1.7(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-arrow': 1.1.7(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-context': 1.1.2(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-use-rect': 1.1.1(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-use-size': 1.1.1(@types/react@17.0.39)(react@17.0.2) + '@types/react': 18.2.0 + '@types/react-dom': 18.2.0 + + '@radix-ui/react-popper@1.2.8(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@floating-ui/react-dom': 2.1.7(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-arrow': 1.1.7(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-context': 1.1.2(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-use-rect': 1.1.1(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-use-size': 1.1.1(@types/react@18.2.0)(react@18.2.0) '@radix-ui/rect': 1.1.1 - react: 17.0.2 - react-dom: 17.0.2(react@17.0.2) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) optionalDependencies: - '@types/react': 17.0.39 - '@types/react-dom': 17.0.13 + '@types/react': 18.2.0 + '@types/react-dom': 18.2.0 - '@radix-ui/react-portal@1.1.9(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2)': + '@radix-ui/react-portal@1.1.9(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@17.0.39)(react@17.0.2) - react: 17.0.2 - react-dom: 17.0.2(react@17.0.2) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) optionalDependencies: - '@types/react': 17.0.39 - '@types/react-dom': 17.0.13 + '@types/react': 18.2.0 + '@types/react-dom': 18.2.0 - '@radix-ui/react-presence@1.1.5(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2)': + '@radix-ui/react-presence@1.1.5(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@17.0.39)(react@17.0.2) - react: 17.0.2 - react-dom: 17.0.2(react@17.0.2) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) optionalDependencies: - '@types/react': 17.0.39 - '@types/react-dom': 17.0.13 + '@types/react': 18.2.0 + '@types/react-dom': 18.2.0 - '@radix-ui/react-primitive@2.1.3(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2)': + '@radix-ui/react-primitive@2.1.3(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: - '@radix-ui/react-slot': 1.2.3(@types/react@17.0.39)(react@17.0.2) - react: 17.0.2 - react-dom: 17.0.2(react@17.0.2) + '@radix-ui/react-slot': 1.2.3(@types/react@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) optionalDependencies: - '@types/react': 17.0.39 - '@types/react-dom': 17.0.13 + '@types/react': 18.2.0 + '@types/react-dom': 18.2.0 - '@radix-ui/react-progress@1.1.7(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2)': + '@radix-ui/react-progress@1.1.7(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: - '@radix-ui/react-context': 1.1.2(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - react: 17.0.2 - react-dom: 17.0.2(react@17.0.2) + '@radix-ui/react-context': 1.1.2(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) optionalDependencies: - '@types/react': 17.0.39 - '@types/react-dom': 17.0.13 + '@types/react': 18.2.0 + '@types/react-dom': 18.2.0 - '@radix-ui/react-radio-group@1.3.8(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2)': + '@radix-ui/react-radio-group@1.3.8(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-context': 1.1.2(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-direction': 1.1.1(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-use-previous': 1.1.1(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-use-size': 1.1.1(@types/react@17.0.39)(react@17.0.2) - react: 17.0.2 - react-dom: 17.0.2(react@17.0.2) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-context': 1.1.2(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-direction': 1.1.1(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-use-previous': 1.1.1(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-use-size': 1.1.1(@types/react@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) optionalDependencies: - '@types/react': 17.0.39 - '@types/react-dom': 17.0.13 + '@types/react': 18.2.0 + '@types/react-dom': 18.2.0 - '@radix-ui/react-roving-focus@1.1.11(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2)': + '@radix-ui/react-roving-focus@1.1.11(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-collection': 1.1.7(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-context': 1.1.2(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-direction': 1.1.1(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-id': 1.1.1(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@17.0.39)(react@17.0.2) - react: 17.0.2 - react-dom: 17.0.2(react@17.0.2) + '@radix-ui/react-collection': 1.1.7(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-context': 1.1.2(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-direction': 1.1.1(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-id': 1.1.1(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) optionalDependencies: - '@types/react': 17.0.39 - '@types/react-dom': 17.0.13 + '@types/react': 18.2.0 + '@types/react-dom': 18.2.0 - '@radix-ui/react-scroll-area@1.2.10(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2)': + '@radix-ui/react-scroll-area@1.2.10(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@radix-ui/number': 1.1.1 '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-context': 1.1.2(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-direction': 1.1.1(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@17.0.39)(react@17.0.2) - react: 17.0.2 - react-dom: 17.0.2(react@17.0.2) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-context': 1.1.2(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-direction': 1.1.1(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) optionalDependencies: - '@types/react': 17.0.39 - '@types/react-dom': 17.0.13 + '@types/react': 18.2.0 + '@types/react-dom': 18.2.0 - '@radix-ui/react-select@2.2.6(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2)': + '@radix-ui/react-select@2.2.6(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@radix-ui/number': 1.1.1 '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-collection': 1.1.7(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-context': 1.1.2(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-direction': 1.1.1(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-focus-guards': 1.1.3(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-id': 1.1.1(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-popper': 1.2.8(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-portal': 1.1.9(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-slot': 1.2.3(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-use-previous': 1.1.1(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@radix-ui/react-collection': 1.1.7(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-context': 1.1.2(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-direction': 1.1.1(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-focus-guards': 1.1.3(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-id': 1.1.1(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-popper': 1.2.8(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-slot': 1.2.3(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-use-previous': 1.1.1(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) aria-hidden: 1.2.6 - react: 17.0.2 - react-dom: 17.0.2(react@17.0.2) - react-remove-scroll: 2.7.2(@types/react@17.0.39)(react@17.0.2) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + react-remove-scroll: 2.7.2(@types/react@18.2.0)(react@18.2.0) optionalDependencies: - '@types/react': 17.0.39 - '@types/react-dom': 17.0.13 + '@types/react': 18.2.0 + '@types/react-dom': 18.2.0 - '@radix-ui/react-separator@1.1.7(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2)': + '@radix-ui/react-separator@1.1.7(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - react: 17.0.2 - react-dom: 17.0.2(react@17.0.2) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) optionalDependencies: - '@types/react': 17.0.39 - '@types/react-dom': 17.0.13 + '@types/react': 18.2.0 + '@types/react-dom': 18.2.0 - '@radix-ui/react-slider@1.3.6(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2)': + '@radix-ui/react-slider@1.3.6(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@radix-ui/number': 1.1.1 '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-collection': 1.1.7(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-context': 1.1.2(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-direction': 1.1.1(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-use-previous': 1.1.1(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-use-size': 1.1.1(@types/react@17.0.39)(react@17.0.2) - react: 17.0.2 - react-dom: 17.0.2(react@17.0.2) + '@radix-ui/react-collection': 1.1.7(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-context': 1.1.2(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-direction': 1.1.1(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-use-previous': 1.1.1(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-use-size': 1.1.1(@types/react@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) optionalDependencies: - '@types/react': 17.0.39 - '@types/react-dom': 17.0.13 + '@types/react': 18.2.0 + '@types/react-dom': 18.2.0 - '@radix-ui/react-slot@1.2.3(@types/react@17.0.39)(react@17.0.2)': + '@radix-ui/react-slot@1.2.3(@types/react@18.2.0)(react@18.2.0)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@17.0.39)(react@17.0.2) - react: 17.0.2 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.2.0)(react@18.2.0) + react: 18.2.0 optionalDependencies: - '@types/react': 17.0.39 + '@types/react': 18.2.0 - '@radix-ui/react-switch@1.2.6(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2)': + '@radix-ui/react-switch@1.2.6(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-context': 1.1.2(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-use-previous': 1.1.1(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-use-size': 1.1.1(@types/react@17.0.39)(react@17.0.2) - react: 17.0.2 - react-dom: 17.0.2(react@17.0.2) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-context': 1.1.2(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-use-previous': 1.1.1(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-use-size': 1.1.1(@types/react@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) optionalDependencies: - '@types/react': 17.0.39 - '@types/react-dom': 17.0.13 + '@types/react': 18.2.0 + '@types/react-dom': 18.2.0 - '@radix-ui/react-tabs@1.1.13(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2)': + '@radix-ui/react-tabs@1.1.13(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-context': 1.1.2(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-direction': 1.1.1(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-id': 1.1.1(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@17.0.39)(react@17.0.2) - react: 17.0.2 - react-dom: 17.0.2(react@17.0.2) + '@radix-ui/react-context': 1.1.2(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-direction': 1.1.1(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-id': 1.1.1(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) optionalDependencies: - '@types/react': 17.0.39 - '@types/react-dom': 17.0.13 + '@types/react': 18.2.0 + '@types/react-dom': 18.2.0 - '@radix-ui/react-toast@1.2.15(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2)': + '@radix-ui/react-toast@1.2.15(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-collection': 1.1.7(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-context': 1.1.2(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-portal': 1.1.9(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - react: 17.0.2 - react-dom: 17.0.2(react@17.0.2) + '@radix-ui/react-collection': 1.1.7(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-context': 1.1.2(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) optionalDependencies: - '@types/react': 17.0.39 - '@types/react-dom': 17.0.13 + '@types/react': 18.2.0 + '@types/react-dom': 18.2.0 - '@radix-ui/react-toggle-group@1.1.11(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2)': + '@radix-ui/react-toggle-group@1.1.11(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-context': 1.1.2(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-direction': 1.1.1(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-toggle': 1.1.10(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@17.0.39)(react@17.0.2) - react: 17.0.2 - react-dom: 17.0.2(react@17.0.2) + '@radix-ui/react-context': 1.1.2(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-direction': 1.1.1(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-toggle': 1.1.10(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) optionalDependencies: - '@types/react': 17.0.39 - '@types/react-dom': 17.0.13 + '@types/react': 18.2.0 + '@types/react-dom': 18.2.0 - '@radix-ui/react-toggle@1.1.10(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2)': + '@radix-ui/react-toggle@1.1.10(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@17.0.39)(react@17.0.2) - react: 17.0.2 - react-dom: 17.0.2(react@17.0.2) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) optionalDependencies: - '@types/react': 17.0.39 - '@types/react-dom': 17.0.13 + '@types/react': 18.2.0 + '@types/react-dom': 18.2.0 - '@radix-ui/react-toolbar@1.1.11(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2)': + '@radix-ui/react-toolbar@1.1.11(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-context': 1.1.2(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-direction': 1.1.1(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-separator': 1.1.7(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-toggle-group': 1.1.11(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - react: 17.0.2 - react-dom: 17.0.2(react@17.0.2) + '@radix-ui/react-context': 1.1.2(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-direction': 1.1.1(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-separator': 1.1.7(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-toggle-group': 1.1.11(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) optionalDependencies: - '@types/react': 17.0.39 - '@types/react-dom': 17.0.13 + '@types/react': 18.2.0 + '@types/react-dom': 18.2.0 - '@radix-ui/react-tooltip@1.2.8(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2)': + '@radix-ui/react-tooltip@1.2.8(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-context': 1.1.2(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-id': 1.1.1(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-popper': 1.2.8(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-portal': 1.1.9(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-slot': 1.2.3(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - react: 17.0.2 - react-dom: 17.0.2(react@17.0.2) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-context': 1.1.2(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-id': 1.1.1(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-popper': 1.2.8(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-slot': 1.2.3(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) optionalDependencies: - '@types/react': 17.0.39 - '@types/react-dom': 17.0.13 + '@types/react': 18.2.0 + '@types/react-dom': 18.2.0 - '@radix-ui/react-use-callback-ref@1.1.1(@types/react@17.0.39)(react@17.0.2)': + '@radix-ui/react-use-callback-ref@1.1.1(@types/react@18.2.0)(react@18.2.0)': dependencies: - react: 17.0.2 + react: 18.2.0 optionalDependencies: - '@types/react': 17.0.39 + '@types/react': 18.2.0 - '@radix-ui/react-use-controllable-state@1.2.2(@types/react@17.0.39)(react@17.0.2)': + '@radix-ui/react-use-controllable-state@1.2.2(@types/react@18.2.0)(react@18.2.0)': dependencies: - '@radix-ui/react-use-effect-event': 0.0.2(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@17.0.39)(react@17.0.2) - react: 17.0.2 + '@radix-ui/react-use-effect-event': 0.0.2(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.2.0)(react@18.2.0) + react: 18.2.0 optionalDependencies: - '@types/react': 17.0.39 + '@types/react': 18.2.0 - '@radix-ui/react-use-effect-event@0.0.2(@types/react@17.0.39)(react@17.0.2)': + '@radix-ui/react-use-effect-event@0.0.2(@types/react@18.2.0)(react@18.2.0)': dependencies: - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@17.0.39)(react@17.0.2) - react: 17.0.2 + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.2.0)(react@18.2.0) + react: 18.2.0 optionalDependencies: - '@types/react': 17.0.39 + '@types/react': 18.2.0 - '@radix-ui/react-use-escape-keydown@1.1.1(@types/react@17.0.39)(react@17.0.2)': + '@radix-ui/react-use-escape-keydown@1.1.1(@types/react@18.2.0)(react@18.2.0)': dependencies: - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@17.0.39)(react@17.0.2) - react: 17.0.2 + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@18.2.0)(react@18.2.0) + react: 18.2.0 optionalDependencies: - '@types/react': 17.0.39 + '@types/react': 18.2.0 - '@radix-ui/react-use-is-hydrated@0.1.0(@types/react@17.0.39)(react@17.0.2)': + '@radix-ui/react-use-is-hydrated@0.1.0(@types/react@18.2.0)(react@18.2.0)': dependencies: - react: 17.0.2 - use-sync-external-store: 1.6.0(react@17.0.2) + react: 18.2.0 + use-sync-external-store: 1.6.0(react@18.2.0) optionalDependencies: - '@types/react': 17.0.39 + '@types/react': 18.2.0 - '@radix-ui/react-use-layout-effect@1.1.1(@types/react@17.0.39)(react@17.0.2)': + '@radix-ui/react-use-layout-effect@1.1.1(@types/react@18.2.0)(react@18.2.0)': dependencies: - react: 17.0.2 + react: 18.2.0 optionalDependencies: - '@types/react': 17.0.39 + '@types/react': 18.2.0 - '@radix-ui/react-use-previous@1.1.1(@types/react@17.0.39)(react@17.0.2)': + '@radix-ui/react-use-previous@1.1.1(@types/react@18.2.0)(react@18.2.0)': dependencies: - react: 17.0.2 + react: 18.2.0 optionalDependencies: - '@types/react': 17.0.39 + '@types/react': 18.2.0 - '@radix-ui/react-use-rect@1.1.1(@types/react@17.0.39)(react@17.0.2)': + '@radix-ui/react-use-rect@1.1.1(@types/react@18.2.0)(react@18.2.0)': dependencies: '@radix-ui/rect': 1.1.1 - react: 17.0.2 + react: 18.2.0 optionalDependencies: - '@types/react': 17.0.39 + '@types/react': 18.2.0 - '@radix-ui/react-use-size@1.1.1(@types/react@17.0.39)(react@17.0.2)': + '@radix-ui/react-use-size@1.1.1(@types/react@18.2.0)(react@18.2.0)': dependencies: - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@17.0.39)(react@17.0.2) - react: 17.0.2 + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.2.0)(react@18.2.0) + react: 18.2.0 optionalDependencies: - '@types/react': 17.0.39 + '@types/react': 18.2.0 - '@radix-ui/react-visually-hidden@1.2.3(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2)': + '@radix-ui/react-visually-hidden@1.2.3(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - react: 17.0.2 - react-dom: 17.0.2(react@17.0.2) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) optionalDependencies: - '@types/react': 17.0.39 - '@types/react-dom': 17.0.13 + '@types/react': 18.2.0 + '@types/react-dom': 18.2.0 '@radix-ui/rect@1.1.1': {} '@remirror/core-constants@3.0.0': {} - '@samepage/scripts@0.74.5(@aws-sdk/client-lambda@3.985.0)(@aws-sdk/client-s3@3.985.0)(@samepage/testing@0.74.5(@playwright/test@1.29.0)(@testing-library/react@16.3.2(@testing-library/dom@10.4.1)(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2))(@testing-library/user-event@14.6.1(@testing-library/dom@10.4.1))(@types/jsdom@20.0.1)(c8@7.14.0)(debug@4.4.3)(dotenv@16.6.1)(jsdom@20.0.3)(ts-node@10.9.2(@types/node@25.2.1)(typescript@5.9.3)))(archiver@5.3.2)(axios@0.30.2(debug@4.4.3))(debug@4.4.3)(dotenv@16.6.1)(esbuild@0.27.3)(patch-package@6.5.1)(tailwindcss@3.4.19(ts-node@10.9.2(@types/node@25.2.1)(typescript@5.9.3)))(ts-node@10.9.2(@types/node@25.2.1)(typescript@5.9.3))(zod@3.25.76)': + '@samepage/scripts@0.74.5(@aws-sdk/client-lambda@3.986.0)(@aws-sdk/client-s3@3.986.0)(@samepage/testing@0.74.5(@playwright/test@1.29.0)(@testing-library/react@16.3.2(@testing-library/dom@10.4.1)(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@testing-library/user-event@14.6.1(@testing-library/dom@10.4.1))(@types/jsdom@20.0.1)(c8@7.14.0)(debug@4.4.3)(dotenv@16.6.1)(jsdom@20.0.3)(ts-node@10.9.2(@types/node@25.2.2)(typescript@5.9.3)))(archiver@5.3.2)(axios@0.30.2(debug@4.4.3))(debug@4.4.3)(dotenv@16.6.1)(esbuild@0.17.14)(patch-package@6.5.1)(tailwindcss@3.4.19(tsx@4.21.0))(ts-node@10.9.2(@types/node@25.2.2)(typescript@5.9.3))(zod@3.25.76)': dependencies: - '@aws-sdk/client-lambda': 3.985.0 - '@aws-sdk/client-s3': 3.985.0 - '@samepage/testing': 0.74.5(@playwright/test@1.29.0)(@testing-library/react@16.3.2(@testing-library/dom@10.4.1)(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2))(@testing-library/user-event@14.6.1(@testing-library/dom@10.4.1))(@types/jsdom@20.0.1)(c8@7.14.0)(debug@4.4.3)(dotenv@16.6.1)(jsdom@20.0.3)(ts-node@10.9.2(@types/node@25.2.1)(typescript@5.9.3)) + '@aws-sdk/client-lambda': 3.986.0 + '@aws-sdk/client-s3': 3.986.0 + '@samepage/testing': 0.74.5(@playwright/test@1.29.0)(@testing-library/react@16.3.2(@testing-library/dom@10.4.1)(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@testing-library/user-event@14.6.1(@testing-library/dom@10.4.1))(@types/jsdom@20.0.1)(c8@7.14.0)(debug@4.4.3)(dotenv@16.6.1)(jsdom@20.0.3)(ts-node@10.9.2(@types/node@25.2.2)(typescript@5.9.3)) archiver: 5.3.2 axios: 0.30.2(debug@4.4.3) debug: 4.4.3 dotenv: 16.6.1 - esbuild: 0.27.3 + esbuild: 0.17.14 patch-package: 6.5.1 - tailwindcss: 3.4.19(ts-node@10.9.2(@types/node@25.2.1)(typescript@5.9.3)) - ts-node: 10.9.2(@types/node@25.2.1)(typescript@5.9.3) + tailwindcss: 3.4.19(tsx@4.21.0) + ts-node: 10.9.2(@types/node@25.2.2)(typescript@5.9.3) zod: 3.25.76 - '@samepage/testing@0.74.5(@playwright/test@1.29.0)(@testing-library/react@16.3.2(@testing-library/dom@10.4.1)(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2))(@testing-library/user-event@14.6.1(@testing-library/dom@10.4.1))(@types/jsdom@20.0.1)(c8@7.14.0)(debug@4.4.3)(dotenv@16.6.1)(jsdom@20.0.3)(ts-node@10.9.2(@types/node@25.2.1)(typescript@5.9.3))': + '@samepage/testing@0.74.5(@playwright/test@1.29.0)(@testing-library/react@16.3.2(@testing-library/dom@10.4.1)(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@testing-library/user-event@14.6.1(@testing-library/dom@10.4.1))(@types/jsdom@20.0.1)(c8@7.14.0)(debug@4.4.3)(dotenv@16.6.1)(jsdom@20.0.3)(ts-node@10.9.2(@types/node@25.2.2)(typescript@5.9.3))': dependencies: '@playwright/test': 1.29.0 - '@testing-library/react': 16.3.2(@testing-library/dom@10.4.1)(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@testing-library/react': 16.3.2(@testing-library/dom@10.4.1)(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@testing-library/user-event': 14.6.1(@testing-library/dom@10.4.1) '@types/jsdom': 20.0.1 c8: 7.14.0 debug: 4.4.3 dotenv: 16.6.1 jsdom: 20.0.3 - ts-node: 10.9.2(@types/node@25.2.1)(typescript@5.9.3) + ts-node: 10.9.2(@types/node@25.2.2)(typescript@5.9.3) '@smithy/abort-controller@4.2.8': dependencies: @@ -5395,15 +5644,15 @@ snapshots: picocolors: 1.1.1 pretty-format: 27.5.1 - '@testing-library/react@16.3.2(@testing-library/dom@10.4.1)(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2)': + '@testing-library/react@16.3.2(@testing-library/dom@10.4.1)(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@babel/runtime': 7.28.6 '@testing-library/dom': 10.4.1 - react: 17.0.2 - react-dom: 17.0.2(react@17.0.2) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) optionalDependencies: - '@types/react': 17.0.39 - '@types/react-dom': 17.0.13 + '@types/react': 18.2.0 + '@types/react-dom': 18.2.0 '@testing-library/user-event@14.6.1(@testing-library/dom@10.4.1)': dependencies: @@ -5537,7 +5786,7 @@ snapshots: prosemirror-transform: 1.11.0 prosemirror-view: 1.41.6 - '@tiptap/react@2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))(@tiptap/pm@2.27.2)(react-dom@17.0.2(react@17.0.2))(react@17.0.2)': + '@tiptap/react@2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))(@tiptap/pm@2.27.2)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@tiptap/core': 2.27.2(@tiptap/pm@2.27.2) '@tiptap/extension-bubble-menu': 2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))(@tiptap/pm@2.27.2) @@ -5545,9 +5794,9 @@ snapshots: '@tiptap/pm': 2.27.2 '@types/use-sync-external-store': 0.0.6 fast-deep-equal: 3.1.3 - react: 17.0.2 - react-dom: 17.0.2(react@17.0.2) - use-sync-external-store: 1.6.0(react@17.0.2) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + use-sync-external-store: 1.6.0(react@18.2.0) '@tiptap/starter-kit@2.27.2': dependencies: @@ -5573,54 +5822,54 @@ snapshots: '@tiptap/extension-text-style': 2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2)) '@tiptap/pm': 2.27.2 - '@tldraw/editor@3.15.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2)': + '@tldraw/editor@3.15.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@tiptap/core': 2.27.2(@tiptap/pm@2.27.2) '@tiptap/pm': 2.27.2 - '@tiptap/react': 2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))(@tiptap/pm@2.27.2)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@tldraw/state': 3.15.1 - '@tldraw/state-react': 3.15.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@tldraw/store': 3.15.1(react@17.0.2) - '@tldraw/tlschema': 3.15.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@tldraw/utils': 3.15.1 - '@tldraw/validate': 3.15.1 + '@tiptap/react': 2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))(@tiptap/pm@2.27.2)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@tldraw/state': 3.15.5 + '@tldraw/state-react': 3.15.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@tldraw/store': 3.15.5(react@18.2.0) + '@tldraw/tlschema': 3.15.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@tldraw/utils': 3.15.5 + '@tldraw/validate': 3.15.5 '@types/core-js': 2.5.8 - '@use-gesture/react': 10.3.1(react@17.0.2) + '@use-gesture/react': 10.3.1(react@18.2.0) classnames: 2.5.1 core-js: 3.48.0 eventemitter3: 4.0.7 idb: 7.1.1 is-plain-object: 5.0.0 - react: 17.0.2 - react-dom: 17.0.2(react@17.0.2) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) - '@tldraw/state-react@3.15.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2)': + '@tldraw/state-react@3.15.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: - '@tldraw/state': 3.15.1 - '@tldraw/utils': 3.15.1 - react: 17.0.2 - react-dom: 17.0.2(react@17.0.2) + '@tldraw/state': 3.15.5 + '@tldraw/utils': 3.15.5 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) - '@tldraw/state@3.15.1': + '@tldraw/state@3.15.5': dependencies: - '@tldraw/utils': 3.15.1 + '@tldraw/utils': 3.15.5 - '@tldraw/store@3.15.1(react@17.0.2)': + '@tldraw/store@3.15.5(react@18.2.0)': dependencies: - '@tldraw/state': 3.15.1 - '@tldraw/utils': 3.15.1 - react: 17.0.2 + '@tldraw/state': 3.15.5 + '@tldraw/utils': 3.15.5 + react: 18.2.0 - '@tldraw/tlschema@3.15.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2)': + '@tldraw/tlschema@3.15.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: - '@tldraw/state': 3.15.1 - '@tldraw/store': 3.15.1(react@17.0.2) - '@tldraw/utils': 3.15.1 - '@tldraw/validate': 3.15.1 - react: 17.0.2 - react-dom: 17.0.2(react@17.0.2) + '@tldraw/state': 3.15.5 + '@tldraw/store': 3.15.5(react@18.2.0) + '@tldraw/utils': 3.15.5 + '@tldraw/validate': 3.15.5 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) - '@tldraw/utils@3.15.1': + '@tldraw/utils@3.15.5': dependencies: fractional-indexing-jittered: 1.0.0 lodash.isequal: 4.5.0 @@ -5628,9 +5877,9 @@ snapshots: lodash.throttle: 4.1.1 lodash.uniq: 4.5.0 - '@tldraw/validate@3.15.1': + '@tldraw/validate@3.15.5': dependencies: - '@tldraw/utils': 3.15.1 + '@tldraw/utils': 3.15.5 '@tootallnate/once@2.0.0': {} @@ -5668,7 +5917,7 @@ snapshots: '@types/jsdom@20.0.1': dependencies: - '@types/node': 25.2.1 + '@types/node': 25.2.2 '@types/tough-cookie': 4.0.5 parse5: 7.3.0 @@ -5685,19 +5934,19 @@ snapshots: '@types/nanoid@2.0.0': dependencies: - '@types/node': 25.2.1 + '@types/node': 25.2.2 - '@types/node@25.2.1': + '@types/node@25.2.2': dependencies: undici-types: 7.16.0 '@types/prop-types@15.7.15': {} - '@types/react-dom@17.0.13': + '@types/react-dom@18.2.0': dependencies: - '@types/react': 17.0.39 + '@types/react': 18.2.0 - '@types/react@17.0.39': + '@types/react@18.2.0': dependencies: '@types/prop-types': 15.7.15 '@types/scheduler': 0.26.0 @@ -5715,10 +5964,10 @@ snapshots: '@use-gesture/core@10.3.1': {} - '@use-gesture/react@10.3.1(react@17.0.2)': + '@use-gesture/react@10.3.1(react@18.2.0)': dependencies: '@use-gesture/core': 10.3.1 - react: 17.0.2 + react: 18.2.0 '@yarnpkg/lockfile@1.1.0': {} @@ -5836,7 +6085,7 @@ snapshots: inherits: 2.0.4 readable-stream: 3.6.2 - bowser@2.13.1: {} + bowser@2.14.1: {} brace-expansion@1.1.12: dependencies: @@ -6137,6 +6386,31 @@ snapshots: has-tostringtag: 1.0.2 hasown: 2.0.2 + esbuild@0.17.14: + optionalDependencies: + '@esbuild/android-arm': 0.17.14 + '@esbuild/android-arm64': 0.17.14 + '@esbuild/android-x64': 0.17.14 + '@esbuild/darwin-arm64': 0.17.14 + '@esbuild/darwin-x64': 0.17.14 + '@esbuild/freebsd-arm64': 0.17.14 + '@esbuild/freebsd-x64': 0.17.14 + '@esbuild/linux-arm': 0.17.14 + '@esbuild/linux-arm64': 0.17.14 + '@esbuild/linux-ia32': 0.17.14 + '@esbuild/linux-loong64': 0.17.14 + '@esbuild/linux-mips64el': 0.17.14 + '@esbuild/linux-ppc64': 0.17.14 + '@esbuild/linux-riscv64': 0.17.14 + '@esbuild/linux-s390x': 0.17.14 + '@esbuild/linux-x64': 0.17.14 + '@esbuild/netbsd-x64': 0.17.14 + '@esbuild/openbsd-x64': 0.17.14 + '@esbuild/sunos-x64': 0.17.14 + '@esbuild/win32-arm64': 0.17.14 + '@esbuild/win32-ia32': 0.17.14 + '@esbuild/win32-x64': 0.17.14 + esbuild@0.27.3: optionalDependencies: '@esbuild/aix-ppc64': 0.27.3 @@ -6660,10 +6934,10 @@ snapshots: punycode.js: 2.3.1 uc.micro: 2.1.0 - marked-react@1.1.2(react@17.0.2): + marked-react@1.1.2(react@18.2.0): dependencies: marked: 4.0.16 - react: 17.0.2 + react: 18.2.0 marked@4.0.16: {} @@ -6826,13 +7100,13 @@ snapshots: camelcase-css: 2.0.1 postcss: 8.5.6 - postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@25.2.1)(typescript@5.9.3)): + postcss-load-config@6.0.1(jiti@1.21.7)(postcss@8.5.6)(tsx@4.21.0): dependencies: lilconfig: 3.1.3 - yaml: 2.8.2 optionalDependencies: + jiti: 1.21.7 postcss: 8.5.6 - ts-node: 10.9.2(@types/node@25.2.1)(typescript@5.9.3) + tsx: 4.21.0 postcss-nested@6.2.0(postcss@8.5.6): dependencies: @@ -7002,80 +7276,79 @@ snapshots: queue-microtask@1.2.3: {} - radix-ui@1.4.3(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2): + radix-ui@1.4.3(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-accessible-icon': 1.1.7(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-accordion': 1.2.12(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-alert-dialog': 1.1.15(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-arrow': 1.1.7(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-aspect-ratio': 1.1.7(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-avatar': 1.1.10(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-checkbox': 1.3.3(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-collapsible': 1.1.12(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-collection': 1.1.7(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-context': 1.1.2(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-context-menu': 2.2.16(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-dialog': 1.1.15(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-direction': 1.1.1(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-dropdown-menu': 2.1.16(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-focus-guards': 1.1.3(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-form': 0.1.8(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-hover-card': 1.1.15(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-label': 2.1.7(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-menu': 2.1.16(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-menubar': 1.1.16(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-navigation-menu': 1.2.14(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-one-time-password-field': 0.1.8(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-password-toggle-field': 0.1.3(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-popover': 1.1.15(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-popper': 1.2.8(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-portal': 1.1.9(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-progress': 1.1.7(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-radio-group': 1.3.8(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-scroll-area': 1.2.10(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-select': 2.2.6(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-separator': 1.1.7(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-slider': 1.3.6(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-slot': 1.2.3(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-switch': 1.2.6(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-tabs': 1.1.13(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-toast': 1.2.15(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-toggle': 1.1.10(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-toggle-group': 1.1.11(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-toolbar': 1.1.11(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-tooltip': 1.2.8(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-use-effect-event': 0.0.2(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-use-escape-keydown': 1.1.1(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-use-is-hydrated': 0.1.0(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-use-size': 1.1.1(@types/react@17.0.39)(react@17.0.2) - '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - react: 17.0.2 - react-dom: 17.0.2(react@17.0.2) + '@radix-ui/react-accessible-icon': 1.1.7(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-accordion': 1.2.12(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-alert-dialog': 1.1.15(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-arrow': 1.1.7(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-aspect-ratio': 1.1.7(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-avatar': 1.1.10(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-checkbox': 1.3.3(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-collapsible': 1.1.12(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-collection': 1.1.7(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-context': 1.1.2(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-context-menu': 2.2.16(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-dialog': 1.1.15(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-direction': 1.1.1(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-dropdown-menu': 2.1.16(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-focus-guards': 1.1.3(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-form': 0.1.8(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-hover-card': 1.1.15(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-label': 2.1.7(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-menu': 2.1.16(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-menubar': 1.1.16(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-navigation-menu': 1.2.14(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-one-time-password-field': 0.1.8(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-password-toggle-field': 0.1.3(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-popover': 1.1.15(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-popper': 1.2.8(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-progress': 1.1.7(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-radio-group': 1.3.8(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-scroll-area': 1.2.10(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-select': 2.2.6(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-separator': 1.1.7(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-slider': 1.3.6(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-slot': 1.2.3(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-switch': 1.2.6(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-tabs': 1.1.13(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-toast': 1.2.15(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-toggle': 1.1.10(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-toggle-group': 1.1.11(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-toolbar': 1.1.11(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-tooltip': 1.2.8(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-use-effect-event': 0.0.2(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-use-escape-keydown': 1.1.1(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-use-is-hydrated': 0.1.0(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-use-size': 1.1.1(@types/react@18.2.0)(react@18.2.0) + '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) optionalDependencies: - '@types/react': 17.0.39 - '@types/react-dom': 17.0.13 + '@types/react': 18.2.0 + '@types/react-dom': 18.2.0 - react-day-picker@7.4.9(react@17.0.2): + react-day-picker@7.4.9(react@18.2.0): dependencies: prop-types: 15.8.1 - react: 17.0.2 + react: 18.2.0 - react-dom@17.0.2(react@17.0.2): + react-dom@18.2.0(react@18.2.0): dependencies: loose-envify: 1.4.0 - object-assign: 4.1.1 - react: 17.0.2 - scheduler: 0.20.2 + react: 18.2.0 + scheduler: 0.23.2 react-is@16.13.1: {} @@ -7083,57 +7356,56 @@ snapshots: react-lifecycles-compat@3.0.4: {} - react-popper@1.3.11(react@17.0.2): + react-popper@1.3.11(react@18.2.0): dependencies: '@babel/runtime': 7.28.6 - '@hypnosphi/create-react-context': 0.3.1(prop-types@15.8.1)(react@17.0.2) + '@hypnosphi/create-react-context': 0.3.1(prop-types@15.8.1)(react@18.2.0) deep-equal: 1.1.2 popper.js: 1.16.1 prop-types: 15.8.1 - react: 17.0.2 + react: 18.2.0 typed-styles: 0.0.7 warning: 4.0.3 - react-remove-scroll-bar@2.3.8(@types/react@17.0.39)(react@17.0.2): + react-remove-scroll-bar@2.3.8(@types/react@18.2.0)(react@18.2.0): dependencies: - react: 17.0.2 - react-style-singleton: 2.2.3(@types/react@17.0.39)(react@17.0.2) + react: 18.2.0 + react-style-singleton: 2.2.3(@types/react@18.2.0)(react@18.2.0) tslib: 2.8.1 optionalDependencies: - '@types/react': 17.0.39 + '@types/react': 18.2.0 - react-remove-scroll@2.7.2(@types/react@17.0.39)(react@17.0.2): + react-remove-scroll@2.7.2(@types/react@18.2.0)(react@18.2.0): dependencies: - react: 17.0.2 - react-remove-scroll-bar: 2.3.8(@types/react@17.0.39)(react@17.0.2) - react-style-singleton: 2.2.3(@types/react@17.0.39)(react@17.0.2) + react: 18.2.0 + react-remove-scroll-bar: 2.3.8(@types/react@18.2.0)(react@18.2.0) + react-style-singleton: 2.2.3(@types/react@18.2.0)(react@18.2.0) tslib: 2.8.1 - use-callback-ref: 1.3.3(@types/react@17.0.39)(react@17.0.2) - use-sidecar: 1.1.3(@types/react@17.0.39)(react@17.0.2) + use-callback-ref: 1.3.3(@types/react@18.2.0)(react@18.2.0) + use-sidecar: 1.1.3(@types/react@18.2.0)(react@18.2.0) optionalDependencies: - '@types/react': 17.0.39 + '@types/react': 18.2.0 - react-style-singleton@2.2.3(@types/react@17.0.39)(react@17.0.2): + react-style-singleton@2.2.3(@types/react@18.2.0)(react@18.2.0): dependencies: get-nonce: 1.0.1 - react: 17.0.2 + react: 18.2.0 tslib: 2.8.1 optionalDependencies: - '@types/react': 17.0.39 + '@types/react': 18.2.0 - react-transition-group@2.9.0(react-dom@17.0.2(react@17.0.2))(react@17.0.2): + react-transition-group@2.9.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: dom-helpers: 3.4.0 loose-envify: 1.4.0 prop-types: 15.8.1 - react: 17.0.2 - react-dom: 17.0.2(react@17.0.2) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) react-lifecycles-compat: 3.0.4 - react@17.0.2: + react@18.2.0: dependencies: loose-envify: 1.4.0 - object-assign: 4.1.1 read-cache@1.0.0: dependencies: @@ -7202,20 +7474,20 @@ snapshots: dependencies: glob: 7.2.3 - roamjs-components@0.86.4(mggo34u4bryga6uulzi23dduue): + roamjs-components@0.86.4(57ar6pdrfdo2g72yznpvnggqdm): dependencies: - '@blueprintjs/core': 3.50.4(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@blueprintjs/datetime': 3.23.14(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@blueprintjs/select': 3.18.6(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@samepage/scripts': 0.74.5(@aws-sdk/client-lambda@3.985.0)(@aws-sdk/client-s3@3.985.0)(@samepage/testing@0.74.5(@playwright/test@1.29.0)(@testing-library/react@16.3.2(@testing-library/dom@10.4.1)(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2))(@testing-library/user-event@14.6.1(@testing-library/dom@10.4.1))(@types/jsdom@20.0.1)(c8@7.14.0)(debug@4.4.3)(dotenv@16.6.1)(jsdom@20.0.3)(ts-node@10.9.2(@types/node@25.2.1)(typescript@5.9.3)))(archiver@5.3.2)(axios@0.30.2(debug@4.4.3))(debug@4.4.3)(dotenv@16.6.1)(esbuild@0.27.3)(patch-package@6.5.1)(tailwindcss@3.4.19(ts-node@10.9.2(@types/node@25.2.1)(typescript@5.9.3)))(ts-node@10.9.2(@types/node@25.2.1)(typescript@5.9.3))(zod@3.25.76) + '@blueprintjs/core': 3.50.4(patch_hash=x3zagppzlahhgxgudquqcrc5xa)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@blueprintjs/datetime': 3.23.14(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@blueprintjs/select': 3.18.6(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@samepage/scripts': 0.74.5(@aws-sdk/client-lambda@3.986.0)(@aws-sdk/client-s3@3.986.0)(@samepage/testing@0.74.5(@playwright/test@1.29.0)(@testing-library/react@16.3.2(@testing-library/dom@10.4.1)(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@testing-library/user-event@14.6.1(@testing-library/dom@10.4.1))(@types/jsdom@20.0.1)(c8@7.14.0)(debug@4.4.3)(dotenv@16.6.1)(jsdom@20.0.3)(ts-node@10.9.2(@types/node@25.2.2)(typescript@5.9.3)))(archiver@5.3.2)(axios@0.30.2(debug@4.4.3))(debug@4.4.3)(dotenv@16.6.1)(esbuild@0.17.14)(patch-package@6.5.1)(tailwindcss@3.4.19(tsx@4.21.0))(ts-node@10.9.2(@types/node@25.2.2)(typescript@5.9.3))(zod@3.25.76) '@types/crypto-js': 4.1.1 '@types/cytoscape': 3.31.0 '@types/file-saver': 2.0.5 '@types/jsdom': 20.0.1 '@types/marked': 4.3.2 '@types/nanoid': 2.0.0 - '@types/react': 17.0.39 - '@types/react-dom': 17.0.13 + '@types/react': 18.2.0 + '@types/react-dom': 18.2.0 '@types/use-sync-external-store': 0.0.6 chrono-node: 2.3.0 color: 4.2.3 @@ -7231,13 +7503,13 @@ snapshots: jsdom: 20.0.3 jszip: 3.10.0 marked: 4.0.16 - marked-react: 1.1.2(react@17.0.2) + marked-react: 1.1.2(react@18.2.0) nanoid: 3.3.11 - react: 17.0.2 - react-dom: 17.0.2(react@17.0.2) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) refractor: 3.6.0 tslib: 2.8.1 - use-sync-external-store: 1.6.0(react@17.0.2) + use-sync-external-store: 1.6.0(react@18.2.0) xregexp: 5.1.2 transitivePeerDependencies: - '@aws-sdk/client-lambda' @@ -7269,10 +7541,9 @@ snapshots: dependencies: xmlchars: 2.2.0 - scheduler@0.20.2: + scheduler@0.23.2: dependencies: loose-envify: 1.4.0 - object-assign: 4.1.1 semver@5.7.2: {} @@ -7369,7 +7640,7 @@ snapshots: symbol-tree@3.2.4: {} - tailwindcss@3.4.19(ts-node@10.9.2(@types/node@25.2.1)(typescript@5.9.3)): + tailwindcss@3.4.19(tsx@4.21.0): dependencies: '@alloc/quick-lru': 5.2.0 arg: 5.0.2 @@ -7388,13 +7659,14 @@ snapshots: postcss: 8.5.6 postcss-import: 15.1.0(postcss@8.5.6) postcss-js: 4.1.0(postcss@8.5.6) - postcss-load-config: 4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@25.2.1)(typescript@5.9.3)) + postcss-load-config: 6.0.1(jiti@1.21.7)(postcss@8.5.6)(tsx@4.21.0) postcss-nested: 6.2.0(postcss@8.5.6) postcss-selector-parser: 6.1.2 resolve: 1.22.11 sucrase: 3.35.1 transitivePeerDependencies: - - ts-node + - tsx + - yaml tar-stream@2.2.0: dependencies: @@ -7427,24 +7699,24 @@ snapshots: dependencies: '@popperjs/core': 2.11.8 - tldraw@3.15.1(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2): + tldraw@3.15.5(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: '@tiptap/core': 2.27.2(@tiptap/pm@2.27.2) '@tiptap/extension-code': 2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2)) '@tiptap/extension-highlight': 2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2)) '@tiptap/extension-link': 2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))(@tiptap/pm@2.27.2) '@tiptap/pm': 2.27.2 - '@tiptap/react': 2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))(@tiptap/pm@2.27.2)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@tiptap/react': 2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))(@tiptap/pm@2.27.2)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@tiptap/starter-kit': 2.27.2 - '@tldraw/editor': 3.15.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@tldraw/store': 3.15.1(react@17.0.2) + '@tldraw/editor': 3.15.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@tldraw/store': 3.15.5(react@18.2.0) classnames: 2.5.1 hotkeys-js: 3.13.15 idb: 7.1.1 lz-string: 1.5.0 - radix-ui: 1.4.3(@types/react-dom@17.0.13)(@types/react@17.0.39)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - react: 17.0.2 - react-dom: 17.0.2(react@17.0.2) + radix-ui: 1.4.3(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) transitivePeerDependencies: - '@types/react' - '@types/react-dom' @@ -7470,14 +7742,14 @@ snapshots: ts-interface-checker@0.1.13: {} - ts-node@10.9.2(@types/node@25.2.1)(typescript@5.9.3): + ts-node@10.9.2(@types/node@25.2.2)(typescript@5.9.3): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.12 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 25.2.1 + '@types/node': 25.2.2 acorn: 8.15.0 acorn-walk: 8.3.4 arg: 4.1.3 @@ -7522,24 +7794,24 @@ snapshots: querystringify: 2.2.0 requires-port: 1.0.0 - use-callback-ref@1.3.3(@types/react@17.0.39)(react@17.0.2): + use-callback-ref@1.3.3(@types/react@18.2.0)(react@18.2.0): dependencies: - react: 17.0.2 + react: 18.2.0 tslib: 2.8.1 optionalDependencies: - '@types/react': 17.0.39 + '@types/react': 18.2.0 - use-sidecar@1.1.3(@types/react@17.0.39)(react@17.0.2): + use-sidecar@1.1.3(@types/react@18.2.0)(react@18.2.0): dependencies: detect-node-es: 1.1.0 - react: 17.0.2 + react: 18.2.0 tslib: 2.8.1 optionalDependencies: - '@types/react': 17.0.39 + '@types/react': 18.2.0 - use-sync-external-store@1.6.0(react@17.0.2): + use-sync-external-store@1.6.0(react@18.2.0): dependencies: - react: 17.0.2 + react: 18.2.0 util-deprecate@1.0.2: {} @@ -7614,8 +7886,6 @@ snapshots: yaml@1.10.2: {} - yaml@2.8.2: {} - yargs-parser@20.2.9: {} yargs@16.2.0: diff --git a/scripts/compile.ts b/scripts/compile.ts index bda5ae0..38ccd91 100644 --- a/scripts/compile.ts +++ b/scripts/compile.ts @@ -112,7 +112,7 @@ export const args = { "marked=window.RoamLazy.Marked", "marked-react=window.RoamLazy.MarkedReact", "nanoid=window.Nanoid;module.exports.nanoid=window.Nanoid", - 'react=window.React;module.exports.useSyncExternalStore=require("use-sync-external-store/shim").useSyncExternalStore', + "react=window.React;module.exports.useSyncExternalStore=window.React.useSyncExternalStore", "react/jsx-runtime=./node_modules/react/jsx-runtime.js", "react-dom=window.ReactDOM", "react-youtube=window.ReactYoutube", diff --git a/src/components/canvas/DefaultNodeUtil.tsx b/src/components/canvas/DefaultNodeUtil.tsx index f1a48a1..6efdfcb 100644 --- a/src/components/canvas/DefaultNodeUtil.tsx +++ b/src/components/canvas/DefaultNodeUtil.tsx @@ -63,7 +63,7 @@ const RoamRenderedString = ({ value }: { value: string }): JSX.Element => { }; const escapeRegex = (value: string): string => - value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"); + value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&").replace(/"/g, '\\"'); export const searchPages = ({ query, @@ -71,8 +71,8 @@ export const searchPages = ({ query: string; }): Promise => { const pattern = escapeRegex(query.trim()); - return (( - pattern + return ( + (pattern ? window.roamAlphaAPI.data.async.q( `[:find ?uid ?title ?time :where @@ -88,8 +88,8 @@ export const searchPages = ({ [?e :node/title ?title] [?e :block/uid ?uid] [(get-else $ ?e :edit/time 0) ?time]]`, - ) - ) as Promise<[string, string, number][]>).then((rows) => + )) as Promise<[string, string, number][]> + ).then((rows) => rows .map(([uid, title, editTime]) => ({ uid, @@ -106,8 +106,8 @@ export const searchBlocks = ({ query: string; }): Promise => { const pattern = escapeRegex(query.trim()); - return (( - pattern + return ( + (pattern ? window.roamAlphaAPI.data.async.q( `[:find ?uid ?text ?time :where @@ -123,8 +123,8 @@ export const searchBlocks = ({ [?e :block/string ?text] [?e :block/uid ?uid] [(get-else $ ?e :edit/time 0) ?time]]`, - ) - ) as Promise<[string, string, number][]>).then((rows) => + )) as Promise<[string, string, number][]> + ).then((rows) => rows .map(([uid, title, editTime]) => ({ uid, diff --git a/tsconfig.json b/tsconfig.json index ad6853b..d7b8565 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,11 +1,35 @@ { - "extends": "./node_modules/@samepage/scripts/tsconfig", + "$schema": "https://json.schemastore.org/tsconfig", + "include": [ + "src", + "src/types.d.ts", + "tailwind.config.ts", + "tests", + "scripts" + ], "compilerOptions": { + "declaration": true, + "declarationMap": true, + "esModuleInterop": true, + "incremental": false, + "isolatedModules": true, + "lib": ["es2022", "DOM", "DOM.Iterable"], + "module": "nodenext", + "moduleDetection": "force", + "moduleResolution": "nodenext", + "resolveJsonModule": true, + "skipLibCheck": true, + "strict": true, + "target": "ES2022", + "forceConsistentCasingInFileNames": true, + "allowSyntheticDefaultImports": true, "baseUrl": ".", + "outDir": "dist", + "allowJs": false, + "jsx": "react", + "noUncheckedIndexedAccess": false, "paths": { "~/*": ["./src/*"] } - }, - "include": ["src", "scripts"], - "exclude": ["node_modules"] + } } From b3c607c377ec47254974acc2d2b3cc52b1de5fac Mon Sep 17 00:00:00 2001 From: Michael Gartner Date: Tue, 10 Feb 2026 00:43:22 -0600 Subject: [PATCH 20/21] Refactor RoamRenderedString component in DefaultNodeUtil for improved rendering - Simplified the rendering logic by utilizing the BlockString component from roamAlphaAPI. - Replaced the contentRef and innerHTML manipulation with a more straightforward React.createElement approach. - Updated the return structure to use a span for better styling and text handling. --- src/components/canvas/DefaultNodeUtil.tsx | 40 +++++++++-------------- 1 file changed, 15 insertions(+), 25 deletions(-) diff --git a/src/components/canvas/DefaultNodeUtil.tsx b/src/components/canvas/DefaultNodeUtil.tsx index 6efdfcb..3fed7d5 100644 --- a/src/components/canvas/DefaultNodeUtil.tsx +++ b/src/components/canvas/DefaultNodeUtil.tsx @@ -31,34 +31,24 @@ export type SearchResult = { }; const RoamRenderedString = ({ value }: { value: string }): JSX.Element => { - const contentRef = React.useRef(null); - - React.useEffect(() => { - const el = contentRef.current; - if (!el) return; - - if (!value) { - el.textContent = ""; - return; - } + const roamUi = window.roamAlphaAPI.ui as { + react?: { + BlockString?: React.ComponentType<{ string: string }>; + String?: React.ComponentType<{ string: string }>; + }; + }; + const BlockString = roamUi.react?.BlockString || roamUi.react?.String; - el.innerHTML = ""; - void window.roamAlphaAPI.ui.components - .renderString({ - el, - string: value, - }) - .catch(() => { - // Fallback keeps node readable if Roam renderer errors. - el.textContent = value; - }); - }, [value]); + if (BlockString) { + return React.createElement(BlockString, { + string: value || "", + }); + } return ( -
+ + {value} + ); }; From 62bc836ae7709deeba8b1d41d56c09fe2958c5fa Mon Sep 17 00:00:00 2001 From: Michael Gartner Date: Tue, 10 Feb 2026 00:47:46 -0600 Subject: [PATCH 21/21] Update package.json and pnpm-lock.yaml for dependency management - Removed unnecessary external dependencies from the samepage configuration in package.json. - Added new dependencies for @blueprintjs/core and @juggle/resize-observer in pnpm-lock.yaml to ensure compatibility with React 18. - Updated existing @blueprintjs/core references to the latest version for improved functionality. --- package.json | 6 +----- pnpm-lock.yaml | 33 +++++++++++++++++++++++++++++++-- 2 files changed, 32 insertions(+), 7 deletions(-) diff --git a/package.json b/package.json index 50156fc..4eb1a08 100644 --- a/package.json +++ b/package.json @@ -22,11 +22,7 @@ "tldraw": "3.15.5" }, "samepage": { - "extends": "node_modules/roamjs-components/package.json", - "external": [ - "react-dom/client=window.ReactDOM", - "react=window.React;module.exports.useSyncExternalStore=window.React.useSyncExternalStore" - ] + "extends": "node_modules/roamjs-components/package.json" }, "devDependencies": { "prettier": "^3.4.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 26bce54..07beeb4 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -270,6 +270,13 @@ packages: react: ^15.3.0 || 16 || 17 react-dom: ^15.3.0 || 16 || 17 + '@blueprintjs/core@3.54.0': + resolution: {integrity: sha512-u2c1s6MNn0ocxhnC6CuiG5g3KV6b4cKUvSobznepA9SC3/AL1s3XOvT7DLWoHRv2B/vBOHFYEDzLw2/vlcGGZg==} + hasBin: true + peerDependencies: + react: ^15.3.0 || 16 || 17 + react-dom: ^15.3.0 || 16 || 17 + '@blueprintjs/datetime@3.23.14': resolution: {integrity: sha512-zunYX1pP1T7DiTljqOCyJkngIsus4VOy9ceCt9LHMt7nb1rBsV86jX57A3V/OCNedv+KPHL0KfPeCRCNU6o//A==} peerDependencies: @@ -621,6 +628,9 @@ packages: '@jridgewell/trace-mapping@0.3.9': resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} + '@juggle/resize-observer@3.4.0': + resolution: {integrity: sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA==} + '@nodelib/fs.scandir@2.1.5': resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} @@ -4282,9 +4292,26 @@ snapshots: resize-observer-polyfill: 1.5.1 tslib: 1.13.0 + '@blueprintjs/core@3.54.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@blueprintjs/colors': 4.2.1 + '@blueprintjs/icons': 3.33.0 + '@juggle/resize-observer': 3.4.0 + '@types/dom4': 2.0.4 + classnames: 2.5.1 + dom4: 2.1.6 + normalize.css: 8.0.1 + popper.js: 1.16.1 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + react-lifecycles-compat: 3.0.4 + react-popper: 1.3.11(react@18.2.0) + react-transition-group: 2.9.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + tslib: 2.3.1 + '@blueprintjs/datetime@3.23.14(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: - '@blueprintjs/core': 3.50.4(patch_hash=x3zagppzlahhgxgudquqcrc5xa)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@blueprintjs/core': 3.54.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) classnames: 2.5.1 react: 18.2.0 react-day-picker: 7.4.9(react@18.2.0) @@ -4299,7 +4326,7 @@ snapshots: '@blueprintjs/select@3.18.6(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: - '@blueprintjs/core': 3.50.4(patch_hash=x3zagppzlahhgxgudquqcrc5xa)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@blueprintjs/core': 3.54.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) classnames: 2.5.1 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) @@ -4500,6 +4527,8 @@ snapshots: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.5 + '@juggle/resize-observer@3.4.0': {} + '@nodelib/fs.scandir@2.1.5': dependencies: '@nodelib/fs.stat': 2.0.5