@lumiastream/ui 0.7.6 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ChatMessageItem.d.ts +45 -0
- package/dist/ChatMessageItem.js +432 -0
- package/dist/ChatboxPanel.d.ts +54 -0
- package/dist/ChatboxPanel.js +635 -0
- package/dist/EventList.d.ts +77 -0
- package/dist/EventList.js +284 -0
- package/dist/EventListItem.d.ts +28 -0
- package/dist/EventListItem.js +139 -0
- package/dist/GoalsList.d.ts +28 -0
- package/dist/GoalsList.js +84 -0
- package/dist/LSButton.d.ts +5 -13
- package/dist/LSButton.js +4 -2
- package/dist/LSCheckbox.js +2 -2
- package/dist/LSColorPicker.js +20 -9
- package/dist/LSDatePicker.js +19 -8
- package/dist/LSFontPicker.js +2 -2
- package/dist/LSInput.d.ts +8 -1
- package/dist/LSInput.js +19 -8
- package/dist/LSMultiSelect.js +37 -22
- package/dist/LSRadio.js +1 -1
- package/dist/LSSelect.d.ts +5 -1
- package/dist/LSSelect.js +39 -22
- package/dist/LSSliderInput.js +19 -8
- package/dist/LSSwitch.d.ts +24 -0
- package/dist/LSSwitch.js +51 -0
- package/dist/LSTextField.js +1 -1
- package/dist/LSVariableInputField.js +19 -8
- package/dist/ModActivityLog.d.ts +26 -0
- package/dist/ModActivityLog.js +58 -0
- package/dist/ModQueueItem.d.ts +21 -0
- package/dist/ModQueueItem.js +101 -0
- package/dist/ModQueueList.d.ts +40 -0
- package/dist/ModQueueList.js +361 -0
- package/dist/ModalChrome.d.ts +87 -0
- package/dist/ModalChrome.js +265 -0
- package/dist/PlatformIcon.d.ts +19 -0
- package/dist/PlatformIcon.js +86 -0
- package/dist/ShortcutDockGrid.d.ts +41 -0
- package/dist/ShortcutDockGrid.js +121 -0
- package/dist/SongRequestList.d.ts +40 -0
- package/dist/SongRequestList.js +313 -0
- package/dist/StreamStatusPanel.d.ts +45 -0
- package/dist/StreamStatusPanel.js +190 -0
- package/dist/ViewersList.d.ts +40 -0
- package/dist/ViewersList.js +167 -0
- package/dist/WidgetChrome.d.ts +30 -0
- package/dist/WidgetChrome.js +48 -0
- package/dist/components.d.ts +18 -0
- package/dist/components.js +1902 -107
- package/dist/index.d.ts +18 -0
- package/dist/index.js +2234 -442
- package/dist/se-import.js +2192 -423
- package/dist/utils/chatMedia.js +0 -2
- package/dist/utils.js +0 -3
- package/package.json +67 -3
package/dist/index.js
CHANGED
|
@@ -21,7 +21,7 @@ function styleInject(css, { insertAt } = {}) {
|
|
|
21
21
|
}
|
|
22
22
|
|
|
23
23
|
// src/lumia-ui.css
|
|
24
|
-
styleInject(".ls-color-picker,\n.ls-color-picker *,\n.mui-multi-select,\n.mui-multi-select *,\n.ls-multi-select-value,\n.ls-multi-select-value *,\n.ls-variable-picker,\n.ls-variable-picker *,\n.ls-variable-token,\n.ls-variable-token *,\n.ls-font-picker,\n.ls-font-picker *,\n.mui-ls-input,\n.mui-ls-input * {\n box-sizing: border-box;\n}\n.ls-color-picker button,\n.mui-multi-select button {\n font: inherit;\n letter-spacing: inherit;\n color: inherit;\n margin: 0;\n}\n.ls-color-picker__preview {\n appearance: none;\n -webkit-appearance: none;\n background-color: transparent;\n background-image: none;\n cursor: pointer;\n text-transform: uppercase;\n user-select: none;\n}\n.mui-ls-button.Mui-disabled {\n color: var(--neutralLight2, var(--white2, #cac9d5));\n opacity: 0.45;\n background-color: var(--separator, #0a0821);\n cursor: not-allowed;\n}\n.mui-ls-button {\n border-radius: var(--radius, 1rem);\n padding: 0.375rem 1.5rem;\n text-transform: uppercase;\n}\n.mui-ls-button.MuiButton-sizeSmall {\n padding: 0.25rem 1rem;\n}\n.mui-ls-button.MuiButton-sizeLarge {\n padding: 0.625rem 2rem;\n}\n.mui-ls-button--extended {\n padding-inline: 3rem;\n}\n.mui-ls-button.MuiButton-containedPrimary,\n.mui-ls-button.Mui-disabled.MuiButton-containedPrimary {\n background: var(--primary, #ff4076);\n color: var(--alwayswhite, #fff) !important;\n}\n.mui-ls-button.MuiButton-containedSecondary {\n background-color: var(--secondary, #535395);\n color: var(--alwayswhite, #fff) !important;\n}\n.mui-ls-button.Mui-disabled.MuiButton-containedSecondary {\n background-color: var(--secondary, #535395);\n color: var(--neutralLight2, var(--white2, #cac9d5));\n opacity: 0.4;\n}\n.mui-ls-button.MuiButton-outlinedPrimary {\n color: var(--primary, #ff4076);\n border-color: var(--primary, #ff4076);\n}\n.mui-ls-button.MuiButton-outlinedPrimary:hover {\n border-color: var(--primary, #ff4076);\n background-color: color-mix(in srgb, var(--primary, #ff4076) 12%, transparent);\n}\n.mui-ls-button.MuiButton-outlinedSecondary {\n color: var(--neutralLight1, var(--white, #fff));\n border-color: var(--secondary, #535395);\n}\n.mui-ls-button.MuiButton-outlinedSecondary.Mui-disabled {\n color: var(--neutralLight2, var(--white2, #cac9d5));\n border-color: var(--neutralDark4, var(--cardborder, #393853));\n background-color: var(--transwhite, rgba(255, 255, 255, 0.05));\n opacity: 0.5;\n}\n.mui-ls-button.MuiButton-outlinedSecondary:hover {\n border-color: var(--secondary, #535395);\n background-color: var(--transwhite, rgba(255, 255, 255, 0.05));\n}\n.mui-ls-button.MuiButton-containedError {\n color: var(--alwayswhite, #fff) !important;\n}\n.mui-ls-button.MuiButton-outlinedError {\n color: var(--error, #fd5454);\n border-color: var(--error, #fd5454);\n}\n.mui-ls-button.MuiButton-outlinedError:hover {\n border-color: var(--error, #fd5454);\n background-color: color-mix(in srgb, var(--error, #fd5454) 12%, transparent);\n}\n.mui-ls-button--neutral.mui-ls-button--contained {\n background-color: var(--neutralDark4, var(--cardborder, #393853));\n color: var(--neutralLight1, var(--white, #fff)) !important;\n}\n.mui-ls-button--neutral.mui-ls-button--contained:hover {\n background-color: color-mix(in srgb, var(--neutralDark4, var(--cardborder, #393853)) 82%, var(--neutralLight1, #fff));\n}\n.mui-ls-button--neutral.mui-ls-button--outlined {\n color: var(--neutralLight1, var(--white, #fff));\n border-color: var(--neutralDark4, var(--cardborder, #393853));\n background-color: transparent;\n}\n.mui-ls-button--neutral.mui-ls-button--outlined:hover {\n border-color: var(--neutralLight3, var(--grey, #9392a1));\n background-color: var(--transwhite, rgba(255, 255, 255, 0.05));\n}\n.mui-ls-button--neutral.mui-ls-button--text {\n color: var(--neutralLight1, var(--white, #fff));\n}\n.mui-ls-button--neutral.mui-ls-button--text:hover {\n background-color: var(--transwhite, rgba(255, 255, 255, 0.05));\n}\n.mui-ls-button svg {\n max-height: 24px;\n max-width: 24px;\n}\n.mui-ls-input,\n.ls-font-picker,\n.ls-color-picker__input {\n width: 100%;\n}\n.mui-ls-input,\n.mui-ls-select-form-control,\n.mui-multi-select,\n.ls-font-picker,\n.mui-ls-slider-input-root {\n --ls-control-height: 55px;\n}\n.mui-ls-input .MuiOutlinedInput-root,\n.mui-ls-input .MuiInputBase-root,\n.mui-ls-input .MuiOutlinedInput-notchedOutline,\n.mui-ls-select.MuiOutlinedInput-root,\n.mui-ls-select .MuiOutlinedInput-notchedOutline,\n.mui-multi-select .mui-ls-select.MuiOutlinedInput-root,\n.mui-multi-select .mui-ls-select .MuiOutlinedInput-notchedOutline,\n.ls-font-picker .MuiOutlinedInput-root,\n.ls-font-picker .MuiInputBase-root,\n.ls-font-picker .MuiOutlinedInput-notchedOutline,\n.ls-color-picker__input .MuiOutlinedInput-root,\n.ls-color-picker__input .MuiInputBase-root,\n.ls-color-picker__input .MuiOutlinedInput-notchedOutline {\n border-radius: var(--radius) !important;\n}\n.mui-ls-input .MuiInputBase-root,\n.mui-ls-select.MuiInputBase-root,\n.mui-multi-select .mui-ls-select.MuiInputBase-root,\n.ls-font-picker .MuiInputBase-root {\n min-height: var(--ls-control-height);\n}\n.mui-ls-input.small .MuiInputBase-root {\n min-height: 25px;\n}\n.mui-ls-input.medium .MuiInputBase-root {\n min-height: 35px;\n}\n.mui-ls-input.noMinHeight .MuiInputBase-root {\n min-height: unset;\n}\n.mui-ls-date-picker input[type=datetime-local]::-webkit-calendar-picker-indicator {\n cursor: pointer;\n opacity: 0.9;\n filter: invert(1);\n}\n.mui-ls-select .MuiSelect-select,\n.mui-multi-select .MuiSelect-select {\n display: flex;\n min-height: calc(var(--ls-control-height) - 2px);\n align-items: center;\n box-sizing: border-box;\n border-radius: var(--radius);\n}\n.mui-multi-select .MuiSelect-select {\n min-width: 0;\n}\n.MuiSvgIcon-root svg {\n color: var(--neutralLight1, var(--white, #fff)) !important;\n}\n.mui-ls-input .MuiSvgIcon-root svg path {\n fill: currentcolor;\n stroke: currentcolor;\n}\n.mui-ls-input .MuiInputLabel-root,\n.mui-ls-select-form-control .MuiInputLabel-root {\n display: inline-flex;\n align-items: center;\n gap: 0.35rem;\n line-height: 1;\n}\n.mui-ls-input .MuiInputLabel-root svg,\n.mui-ls-select-form-control .MuiInputLabel-root svg {\n display: block;\n flex: 0 0 auto;\n}\n.mui-ls-input input::placeholder,\n.mui-ls-input textarea::placeholder {\n color: var(--neutralLight3, var(--grey, #9392a1));\n opacity: 0.55;\n font-style: italic;\n}\n.mui-ls-input .MuiInputBase-input,\n.mui-ls-input .MuiInputAdornment-root,\n.mui-ls-input .MuiSvgIcon-root,\n.mui-ls-input .MuiFormHelperText-root {\n color: var(--neutralLight1, var(--white, #fff));\n opacity: 1;\n}\n.mui-ls-input .Mui-focused .MuiOutlinedInput-notchedOutline,\n.mui-ls-input .MuiOutlinedInput-root.Mui-focused .MuiOutlinedInput-notchedOutline {\n border-color: var(--primary, #ff4076) !important;\n}\n.ls-variable-autocomplete-popper .MuiAutocomplete-paper,\n.ls-variable-autocomplete-paper {\n border: 1px solid var(--neutralDark4, var(--cardborder, #393853)) !important;\n border-radius: var(--radius, 1rem) !important;\n background: var(--neutralDark2, var(--cardbackground, #211f45)) !important;\n color: var(--neutralLight1, var(--white, #fff)) !important;\n box-shadow: 0 16px 32px rgba(0, 0, 0, 0.32) !important;\n overflow: hidden !important;\n}\n.ls-variable-autocomplete-popper .MuiAutocomplete-listbox,\n.ls-variable-autocomplete-listbox {\n padding: 0.25rem 0 !important;\n background: var(--neutralDark2, var(--cardbackground, #211f45)) !important;\n color: var(--neutralLight1, var(--white, #fff)) !important;\n}\n.ls-variable-autocomplete-popper .MuiAutocomplete-groupLabel,\n.ls-variable-autocomplete-listbox .MuiAutocomplete-groupLabel {\n position: sticky;\n top: 0;\n z-index: 1;\n min-height: 32px;\n padding: 0.45rem 1rem 0.25rem !important;\n background: var(--neutralDark1, var(--background, #18162f)) !important;\n color: var(--neutralLight3, var(--grey, #9392a1)) !important;\n font-size: 0.75rem !important;\n font-weight: 700 !important;\n letter-spacing: 0 !important;\n line-height: 1.2 !important;\n text-transform: uppercase;\n}\n.ls-variable-autocomplete-popper .MuiAutocomplete-groupUl,\n.ls-variable-autocomplete-listbox .MuiAutocomplete-groupUl {\n padding: 0 !important;\n}\n.ls-variable-autocomplete-popper .MuiAutocomplete-option,\n.ls-variable-autocomplete-listbox .MuiAutocomplete-option {\n display: flex !important;\n min-height: 44px !important;\n align-items: center !important;\n padding: 0.625rem 1rem !important;\n color: var(--neutralLight1, var(--white, #fff)) !important;\n font-size: 1rem !important;\n line-height: 1.35 !important;\n cursor: pointer !important;\n transition: background-color 120ms ease, color 120ms ease !important;\n}\n.ls-variable-autocomplete-popper .MuiAutocomplete-option > *,\n.ls-variable-autocomplete-listbox .MuiAutocomplete-option > * {\n min-width: 0;\n}\n.ls-variable-autocomplete-popper .MuiAutocomplete-option:hover,\n.ls-variable-autocomplete-popper .MuiAutocomplete-option.Mui-focused,\n.ls-variable-autocomplete-popper .MuiAutocomplete-option[data-focus=true],\n.ls-variable-autocomplete-popper .MuiAutocomplete-option[aria-selected=true],\n.ls-variable-autocomplete-listbox .MuiAutocomplete-option:hover,\n.ls-variable-autocomplete-listbox .MuiAutocomplete-option.Mui-focused,\n.ls-variable-autocomplete-listbox .MuiAutocomplete-option[data-focus=true],\n.ls-variable-autocomplete-listbox .MuiAutocomplete-option[aria-selected=true] {\n background: var( --cardHover, var(--transwhite, rgba(255, 255, 255, 0.05)) ) !important;\n color: var(--neutralLight1, var(--white, #fff)) !important;\n}\n.ls-variable-option {\n gap: 0.75rem;\n}\n.ls-variable-option__thumb {\n width: 40px;\n height: 40px;\n flex: 0 0 40px;\n border-radius: var(--radius, 1rem);\n object-fit: cover;\n}\n.ls-variable-option__thumb--placeholder {\n background: var(--neutralDark4, var(--cardborder, #393853));\n}\n.ls-variable-option__body {\n min-width: 0;\n}\n.ls-variable-option__label {\n color: var(--neutralLight1, var(--white, #fff));\n font-weight: 500;\n line-height: 1.25;\n}\n.ls-variable-option__helper {\n margin-top: 0.125rem;\n color: var(--neutralLight3, var(--grey, #9392a1));\n font-size: 0.875rem;\n line-height: 1.25;\n}\n.ls-variable-autocomplete-popup-indicator,\n.ls-variable-autocomplete-popup-indicator.MuiIconButton-root,\n.ls-variable-autocomplete-popup-indicator svg {\n color: var(--neutralLight1, var(--white, #fff)) !important;\n}\n.ls-variable-autocomplete-popup-indicator svg path {\n fill: currentcolor !important;\n stroke: currentcolor !important;\n}\n.ls-color-picker .MuiInputLabel-root .MuiSvgIcon-root,\n.ls-color-picker .MuiInputLabel-root svg,\n.ls-color-picker .MuiInputLabel-root svg path,\n.ls-color-picker__gradient button,\n.ls-color-picker__gradient button svg,\n.ls-color-picker__gradient button svg path,\n.ls-color-picker__gradient button svg line,\n.ls-color-picker__gradient button svg polyline,\n.ls-color-picker__gradient button svg polygon,\n.ls-color-picker__gradient button svg circle,\n.ls-color-picker__gradient button svg rect {\n color: var(--neutralLight1, var(--white, #fff)) !important;\n fill: currentcolor !important;\n stroke: currentcolor !important;\n}\n.ls-color-picker__gradient button[aria-pressed=true] svg,\n.ls-color-picker__gradient button[aria-selected=true] svg,\n.ls-color-picker__gradient button[data-active=true] svg,\n.ls-color-picker__gradient button[aria-pressed=true] svg *,\n.ls-color-picker__gradient button[aria-selected=true] svg *,\n.ls-color-picker__gradient button[data-active=true] svg * {\n color: var(--neutralLight1, var(--white, #fff)) !important;\n fill: currentcolor !important;\n stroke: currentcolor !important;\n}\n.ls-color-picker__picker--inline {\n max-height: none !important;\n}\n.ls-color-picker__gradient {\n color: var(--neutralLight1, var(--white, #fff)) !important;\n}\n.ls-variable-input-adornment,\n.ls-variable-input-adornment.MuiInputAdornment-root {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n height: 24px;\n width: 24px;\n min-width: 24px;\n margin-left: 0.35rem;\n border-radius: var(--radius, 1rem);\n background: var(--primary, #ff4076) !important;\n color: var(--alwayswhite, var(--white, #fff)) !important;\n font-weight: 800;\n line-height: 1;\n letter-spacing: 0;\n cursor: pointer;\n user-select: none;\n}\n.ls-variable-input-adornment svg,\n.ls-variable-input-adornment path {\n color: currentcolor !important;\n fill: currentcolor !important;\n stroke: currentcolor !important;\n}\n.ls-variable-input-adornment:hover,\n.ls-variable-input-adornment.MuiInputAdornment-root:hover {\n filter: brightness(1.08);\n}\n.ls-variable-input-adornment:active,\n.ls-variable-input-adornment.MuiInputAdornment-root:active {\n filter: brightness(0.96);\n}\n.mui-ls-slider-input-root {\n width: 100%;\n}\n.mui-ls-slider-input-fieldset {\n position: relative;\n min-width: 0;\n width: 100%;\n min-height: var(--ls-control-height);\n margin: 0;\n border: 2px solid var(--neutralDark4, var(--cardborder, #393853));\n border-radius: var(--radius, 1rem);\n padding: 0 0.875rem 0.5rem 0.875rem;\n background: transparent;\n color: var(--neutralLight1, var(--white, #fff));\n}\n.mui-ls-slider-input-fieldset:hover {\n border-color: var(--primary, #ff4076);\n}\n.mui-ls-slider-input-legend {\n display: block;\n width: auto;\n max-width: calc(100% - 1rem);\n margin: 0;\n padding: 0 0.25rem;\n color: var(--neutralLight1, var(--white, #fff));\n font-size: 0.875rem;\n line-height: 1.1;\n white-space: nowrap;\n}\n.mui-ls-slider-input-row {\n display: flex;\n min-width: 0;\n min-height: calc(var(--ls-control-height) - 14px);\n align-items: center;\n gap: 1rem;\n}\n.mui-ls-slider-input-row--slider {\n flex-wrap: nowrap;\n}\n.mui-ls-slider-input-row--input {\n justify-content: stretch;\n}\n.mui-ls-slider-input-value.mui-ls-input {\n margin: 0;\n}\n.mui-ls-slider-input-value.mui-ls-input .MuiFormControl-root,\n.mui-ls-slider-input-value.mui-ls-input .MuiTextField-root {\n margin: 0;\n}\n.mui-ls-slider-input-value.mui-ls-input .MuiInputBase-root {\n min-height: 36px;\n}\n.mui-ls-slider-input-value.mui-ls-input .MuiOutlinedInput-notchedOutline {\n border-color: var(--neutralDark4, var(--cardborder, #393853));\n}\n.mui-ls-slider-input-helper {\n display: block;\n margin-top: 0.25rem;\n color: var(--neutralLight3, var(--grey, #9392a1));\n font-size: 0.75rem;\n line-height: 1.25;\n}\n.ls-multi-select-value {\n display: flex;\n width: 100%;\n min-width: 0;\n flex-wrap: nowrap;\n align-items: center;\n justify-content: space-between;\n gap: 0.5rem;\n overflow: hidden;\n white-space: nowrap;\n}\n.ls-multi-select-value__label {\n min-width: 0;\n flex: 1 1 0%;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.ls-multi-select-value__count {\n flex-shrink: 0;\n white-space: nowrap;\n}\n.ls-color-picker__preview {\n position: relative;\n display: inline-block;\n width: 1.5rem;\n height: 1.5rem;\n flex-shrink: 0;\n padding: 0;\n border: 1px solid color-mix(in srgb, #fff 25%, transparent);\n border-radius: var(--radius, 1rem);\n background-size: cover;\n background-position: center;\n background-repeat: no-repeat;\n box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.25);\n color: transparent;\n line-height: 0;\n}\n.ls-color-picker__preview:disabled {\n cursor: not-allowed;\n opacity: 0.5;\n}\n.ls-color-picker__preview:focus {\n outline: none;\n}\n.ls-color-picker__preview:focus-visible {\n box-shadow:\n 0 0 0 2px var(--primary, #ff4076),\n 0 0 0 4px var(--neutralDark1, #1b1a28),\n 0 0 0 1px rgba(0, 0, 0, 0.25);\n}\n.ls-color-picker__gradient circle,\n.ls-color-picker__gradient polyline {\n stroke: #fff !important;\n}\n.ls-variable-picker {\n --variable-custom-color: var(--customVariables, #69ffd2);\n --variable-function-color: var( --functionVariables, var(--semanticPurple, #b489ff) );\n --variable-normal-color: var(--normalVariables, var(--semanticBlue, #65b8ff));\n display: flex;\n width: 92vw;\n max-width: 1100px;\n min-height: 50vh;\n max-height: 55vh;\n flex-direction: column;\n overflow: hidden;\n padding: 1rem;\n}\n.ls-variable-picker__field {\n margin: 0 0 0.75rem;\n border: 1px solid color-mix(in srgb, var(--primary, #ff4076) 42%, var(--neutralDark4, #393853));\n border-radius: var(--radius, 1rem);\n padding: 0.5rem;\n}\n.ls-variable-picker__legend {\n padding-inline: 0.375rem;\n color: var(--primary, #ff4076);\n font-size: 0.75rem;\n font-weight: 700;\n}\n.ls-variable-picker__intro {\n margin-bottom: 1rem;\n color: var(--neutralLight2, #cac9d5);\n}\n.ls-variable-picker__header,\n.ls-variable-picker__row {\n display: grid;\n grid-template-columns: minmax(300px, 1.5fr) 1fr 1fr;\n gap: 2rem;\n}\n.ls-variable-picker__header {\n margin-bottom: 0.25rem;\n padding-inline: 0.25rem;\n padding-right: 1.7rem;\n color: var(--neutralLight3, #9392a1);\n}\n.ls-variable-picker__list {\n height: 100%;\n overflow: auto;\n padding-right: 1rem;\n}\n.ls-variable-picker__row {\n cursor: pointer;\n align-items: start;\n border-bottom: 1px solid color-mix(in srgb, var(--neutralDark4, #393853) 70%, transparent);\n padding: 1rem 0.25rem;\n}\n.ls-variable-picker__row--no-border {\n border-bottom: 0;\n}\n.ls-variable-picker__token-cell {\n display: flex;\n min-width: 0;\n align-items: center;\n gap: 0.375rem;\n}\n.ls-variable-picker__expand-toggle,\n.ls-variable-picker__expand-spacer {\n width: 24px;\n height: 24px;\n flex: 0 0 24px;\n}\n.ls-variable-picker__expand-toggle {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n border: 1px solid color-mix(in srgb, var(--neutralDark4, #393853) 75%, transparent);\n border-radius: var(--radius, 1rem);\n padding: 0;\n background: var(--neutralDark3, var(--containerbackground, #1f1f3a));\n color: var(--neutralLight2, #cac9d5);\n transition:\n background-color 140ms ease,\n border-color 140ms ease,\n color 140ms ease,\n transform 140ms ease;\n}\n.ls-variable-picker__expand-toggle:hover {\n border-color: var(--primary, #ff4076);\n background: color-mix(in srgb, var(--primary, #ff4076) 16%, var(--neutralDark3, #1f1f3a));\n color: var(--neutralLight1, #fff);\n}\n.ls-variable-picker__expand-toggle svg {\n transform: rotate(-90deg);\n transition: transform 140ms ease;\n}\n.ls-variable-picker__expand-toggle--expanded svg {\n transform: rotate(0deg);\n}\n.ls-variable-picker__row:active {\n opacity: 0.8;\n}\n.ls-variable-picker__description {\n max-width: 600px;\n overflow-wrap: break-word;\n line-height: 1.25;\n word-break: break-all;\n}\n.ls-variable-picker__value {\n min-width: 0;\n}\n.ls-variable-picker__value-input {\n width: 100%;\n min-width: 0;\n cursor: text;\n overflow: hidden;\n border: 0;\n background: transparent;\n color: var(--neutralLight1, var(--white, #fff));\n caret-color: transparent;\n font: inherit;\n font-size: 1rem;\n line-height: 1.25;\n outline: 0;\n padding: 0;\n text-overflow: ellipsis;\n}\n.ls-variable-picker__value-input:focus {\n outline: 0;\n}\n.ls-variable-picker__value-input::selection {\n background: color-mix(in srgb, var(--primary, #ff4076) 45%, transparent);\n color: var(--alwayswhite, var(--white, #fff));\n}\n.ls-variable-token {\n display: flex;\n min-width: 0;\n align-items: center;\n}\n.ls-variable-token--suggested {\n color: var(--suggestedVariables, #ffb469);\n}\n.ls-variable-token--custom {\n color: var(--customVariables, #69ffd2);\n}\n.ls-variable-token--function {\n color: var(--functionVariables, var(--semanticPurple, #b489ff));\n}\n.ls-variable-token--system {\n color: var(--normalVariables, var(--semanticBlue, #65b8ff));\n}\n.ls-variable-token__name {\n min-width: 0;\n word-break: break-all;\n}\n.ls-variable-token__badge {\n display: inline-flex;\n margin-left: 0.5rem;\n flex-shrink: 0;\n align-items: center;\n border: 1px solid currentcolor;\n border-radius: var(--radius, 1rem);\n padding-inline: 0.25rem;\n padding-block: 0;\n font-size: 10px;\n font-weight: 600;\n line-height: 1;\n text-transform: uppercase;\n}\n");
|
|
24
|
+
styleInject(".ls-color-picker,\n.ls-color-picker *,\n.mui-multi-select,\n.mui-multi-select *,\n.ls-multi-select-value,\n.ls-multi-select-value *,\n.ls-variable-picker,\n.ls-variable-picker *,\n.ls-variable-token,\n.ls-variable-token *,\n.ls-font-picker,\n.ls-font-picker *,\n.mui-ls-input,\n.mui-ls-input * {\n box-sizing: border-box;\n}\n.ls-color-picker button,\n.mui-multi-select button {\n font: inherit;\n letter-spacing: inherit;\n color: inherit;\n margin: 0;\n}\n.ls-color-picker__preview {\n appearance: none;\n -webkit-appearance: none;\n background-color: transparent;\n background-image: none;\n cursor: pointer;\n text-transform: uppercase;\n user-select: none;\n}\n.mui-ls-button.Mui-disabled {\n color: var(--neutralLight2, var(--white2, #cac9d5));\n opacity: 0.45;\n background-color: var(--separator, #0a0821);\n cursor: not-allowed;\n}\n.mui-ls-button {\n border-radius: var(--radius, 1rem);\n padding: 0.375rem 1.5rem;\n text-transform: uppercase;\n}\n.mui-ls-button.MuiButton-sizeSmall {\n padding: 0.25rem 1rem;\n}\n.mui-ls-button.MuiButton-sizeLarge {\n padding: 0.625rem 2rem;\n}\n.mui-ls-button--extended {\n padding-inline: 3rem;\n}\n.mui-ls-button.MuiButton-containedPrimary,\n.mui-ls-button.Mui-disabled.MuiButton-containedPrimary {\n background: var(--primary, #ff4076);\n color: var(--alwayswhite, #fff) !important;\n}\n.mui-ls-button.MuiButton-containedSecondary {\n background-color: var(--secondary, #535395);\n color: var(--alwayswhite, #fff) !important;\n}\n.mui-ls-button.Mui-disabled.MuiButton-containedSecondary {\n background-color: var(--secondary, #535395);\n color: var(--neutralLight2, var(--white2, #cac9d5));\n opacity: 0.4;\n}\n.mui-ls-button.MuiButton-outlinedPrimary {\n color: var(--primary, #ff4076);\n border-color: var(--primary, #ff4076);\n}\n.mui-ls-button.MuiButton-outlinedPrimary:hover {\n border-color: var(--primary, #ff4076);\n background-color: color-mix(in srgb, var(--primary, #ff4076) 12%, transparent);\n}\n.mui-ls-button.MuiButton-outlinedSecondary {\n color: var(--neutralLight1, var(--white, #fff));\n border-color: var(--secondary, #535395);\n}\n.mui-ls-button.MuiButton-outlinedSecondary.Mui-disabled {\n color: var(--neutralLight2, var(--white2, #cac9d5));\n border-color: var(--neutralDark4, var(--cardborder, #393853));\n background-color: var(--transwhite, rgba(255, 255, 255, 0.05));\n opacity: 0.5;\n}\n.mui-ls-button.MuiButton-outlinedSecondary:hover {\n border-color: var(--secondary, #535395);\n background-color: var(--transwhite, rgba(255, 255, 255, 0.05));\n}\n.mui-ls-button.MuiButton-containedError {\n color: var(--alwayswhite, #fff) !important;\n}\n.mui-ls-button.MuiButton-outlinedError {\n color: var(--error, #fd5454);\n border-color: var(--error, #fd5454);\n}\n.mui-ls-button.MuiButton-outlinedError:hover {\n border-color: var(--error, #fd5454);\n background-color: color-mix(in srgb, var(--error, #fd5454) 12%, transparent);\n}\n.mui-ls-button--neutral.mui-ls-button--contained {\n background-color: var(--neutralDark4, var(--cardborder, #393853));\n color: var(--neutralLight1, var(--white, #fff)) !important;\n}\n.mui-ls-button--neutral.mui-ls-button--contained:hover {\n background-color: color-mix(in srgb, var(--neutralDark4, var(--cardborder, #393853)) 82%, var(--neutralLight1, #fff));\n}\n.mui-ls-button--neutral.mui-ls-button--outlined {\n color: var(--neutralLight1, var(--white, #fff));\n border-color: var(--neutralDark4, var(--cardborder, #393853));\n background-color: transparent;\n}\n.mui-ls-button--neutral.mui-ls-button--outlined:hover {\n border-color: var(--neutralLight3, var(--grey, #9392a1));\n background-color: var(--transwhite, rgba(255, 255, 255, 0.05));\n}\n.mui-ls-button--neutral.mui-ls-button--text {\n color: var(--neutralLight1, var(--white, #fff));\n}\n.mui-ls-button--neutral.mui-ls-button--text:hover {\n background-color: var(--transwhite, rgba(255, 255, 255, 0.05));\n}\n.mui-ls-button svg {\n max-height: 24px;\n max-width: 24px;\n}\n.mui-ls-input,\n.ls-font-picker,\n.ls-color-picker__input {\n width: 100%;\n}\n.mui-ls-input,\n.mui-ls-select-form-control,\n.mui-multi-select,\n.ls-font-picker,\n.mui-ls-slider-input-root {\n --ls-control-height: 55px;\n}\n.mui-ls-input .MuiOutlinedInput-root,\n.mui-ls-input .MuiInputBase-root,\n.mui-ls-input .MuiOutlinedInput-notchedOutline,\n.mui-ls-select.MuiOutlinedInput-root,\n.mui-ls-select .MuiOutlinedInput-notchedOutline,\n.mui-multi-select .mui-ls-select.MuiOutlinedInput-root,\n.mui-multi-select .mui-ls-select .MuiOutlinedInput-notchedOutline,\n.ls-font-picker .MuiOutlinedInput-root,\n.ls-font-picker .MuiInputBase-root,\n.ls-font-picker .MuiOutlinedInput-notchedOutline,\n.ls-color-picker__input .MuiOutlinedInput-root,\n.ls-color-picker__input .MuiInputBase-root,\n.ls-color-picker__input .MuiOutlinedInput-notchedOutline {\n border-radius: var(--radius) !important;\n}\n.mui-ls-input .MuiInputBase-root,\n.mui-ls-select.MuiInputBase-root,\n.mui-multi-select .mui-ls-select.MuiInputBase-root,\n.ls-font-picker .MuiInputBase-root {\n min-height: var(--ls-control-height);\n}\n.mui-ls-input.small .MuiInputBase-root {\n min-height: 25px;\n}\n.mui-ls-input.medium .MuiInputBase-root {\n min-height: 35px;\n}\n.mui-ls-input.noMinHeight .MuiInputBase-root {\n min-height: unset;\n}\n.mui-ls-date-picker input[type=datetime-local]::-webkit-calendar-picker-indicator {\n cursor: pointer;\n opacity: 0.9;\n filter: invert(1);\n}\n.mui-ls-select .MuiSelect-select,\n.mui-multi-select .MuiSelect-select {\n display: flex;\n min-height: calc(var(--ls-control-height) - 2px);\n align-items: center;\n box-sizing: border-box;\n border-radius: var(--radius);\n}\n.mui-multi-select .MuiSelect-select {\n min-width: 0;\n}\n.MuiSvgIcon-root svg {\n color: var(--neutralLight1, var(--white, #fff)) !important;\n}\n.mui-ls-input .MuiSvgIcon-root svg path {\n fill: currentcolor;\n stroke: currentcolor;\n}\n.mui-ls-input .MuiInputLabel-root,\n.mui-ls-select-form-control .MuiInputLabel-root {\n display: inline-flex;\n align-items: center;\n gap: 0.35rem;\n line-height: 1;\n}\n.mui-ls-input .MuiInputLabel-root svg,\n.mui-ls-select-form-control .MuiInputLabel-root svg {\n display: block;\n flex: 0 0 auto;\n}\n.mui-ls-input input::placeholder,\n.mui-ls-input textarea::placeholder {\n color: var(--neutralLight3, var(--grey, #9392a1));\n opacity: 0.55;\n font-style: italic;\n}\n.mui-ls-input .MuiInputBase-input,\n.mui-ls-input .MuiInputAdornment-root,\n.mui-ls-input .MuiSvgIcon-root,\n.mui-ls-input .MuiFormHelperText-root {\n color: var(--neutralLight1, var(--white, #fff));\n opacity: 1;\n}\n.mui-ls-input .Mui-focused .MuiOutlinedInput-notchedOutline,\n.mui-ls-input .MuiOutlinedInput-root.Mui-focused .MuiOutlinedInput-notchedOutline {\n border-color: var(--primary, #ff4076) !important;\n}\n.ls-variable-autocomplete-popper .MuiAutocomplete-paper,\n.ls-variable-autocomplete-paper {\n border: 1px solid var(--neutralDark4, var(--cardborder, #393853)) !important;\n border-radius: var(--radius, 1rem) !important;\n background: var(--neutralDark2, var(--cardbackground, #211f45)) !important;\n color: var(--neutralLight1, var(--white, #fff)) !important;\n box-shadow: 0 16px 32px rgba(0, 0, 0, 0.32) !important;\n overflow: hidden !important;\n}\n.ls-variable-autocomplete-popper .MuiAutocomplete-listbox,\n.ls-variable-autocomplete-listbox {\n padding: 0.25rem 0 !important;\n background: var(--neutralDark2, var(--cardbackground, #211f45)) !important;\n color: var(--neutralLight1, var(--white, #fff)) !important;\n}\n.ls-variable-autocomplete-popper .MuiAutocomplete-groupLabel,\n.ls-variable-autocomplete-listbox .MuiAutocomplete-groupLabel {\n position: sticky;\n top: 0;\n z-index: 1;\n min-height: 32px;\n padding: 0.45rem 1rem 0.25rem !important;\n background: var(--neutralDark1, var(--background, #18162f)) !important;\n color: var(--neutralLight3, var(--grey, #9392a1)) !important;\n font-size: 0.75rem !important;\n font-weight: 700 !important;\n letter-spacing: 0 !important;\n line-height: 1.2 !important;\n text-transform: uppercase;\n}\n.ls-variable-autocomplete-popper .MuiAutocomplete-groupUl,\n.ls-variable-autocomplete-listbox .MuiAutocomplete-groupUl {\n padding: 0 !important;\n}\n.ls-variable-autocomplete-popper .MuiAutocomplete-option,\n.ls-variable-autocomplete-listbox .MuiAutocomplete-option {\n display: flex !important;\n min-height: 44px !important;\n align-items: center !important;\n padding: 0.625rem 1rem !important;\n color: var(--neutralLight1, var(--white, #fff)) !important;\n font-size: 1rem !important;\n line-height: 1.35 !important;\n cursor: pointer !important;\n transition: background-color 120ms ease, color 120ms ease !important;\n}\n.ls-variable-autocomplete-popper .MuiAutocomplete-option > *,\n.ls-variable-autocomplete-listbox .MuiAutocomplete-option > * {\n min-width: 0;\n}\n.ls-variable-autocomplete-popper .MuiAutocomplete-option:hover,\n.ls-variable-autocomplete-popper .MuiAutocomplete-option.Mui-focused,\n.ls-variable-autocomplete-popper .MuiAutocomplete-option[data-focus=true],\n.ls-variable-autocomplete-popper .MuiAutocomplete-option[aria-selected=true],\n.ls-variable-autocomplete-listbox .MuiAutocomplete-option:hover,\n.ls-variable-autocomplete-listbox .MuiAutocomplete-option.Mui-focused,\n.ls-variable-autocomplete-listbox .MuiAutocomplete-option[data-focus=true],\n.ls-variable-autocomplete-listbox .MuiAutocomplete-option[aria-selected=true] {\n background: var( --cardHover, var(--transwhite, rgba(255, 255, 255, 0.05)) ) !important;\n color: var(--neutralLight1, var(--white, #fff)) !important;\n}\n.ls-variable-option {\n gap: 0.75rem;\n}\n.ls-variable-option__thumb {\n width: 40px;\n height: 40px;\n flex: 0 0 40px;\n border-radius: var(--radius, 1rem);\n object-fit: cover;\n}\n.ls-variable-option__thumb--placeholder {\n background: var(--neutralDark4, var(--cardborder, #393853));\n}\n.ls-variable-option__body {\n min-width: 0;\n}\n.ls-variable-option__label {\n color: var(--neutralLight1, var(--white, #fff));\n font-weight: 500;\n line-height: 1.25;\n}\n.ls-variable-option__helper {\n margin-top: 0.125rem;\n color: var(--neutralLight3, var(--grey, #9392a1));\n font-size: 0.875rem;\n line-height: 1.25;\n}\n.ls-variable-autocomplete-popup-indicator,\n.ls-variable-autocomplete-popup-indicator.MuiIconButton-root,\n.ls-variable-autocomplete-popup-indicator svg {\n color: var(--neutralLight1, var(--white, #fff)) !important;\n}\n.ls-variable-autocomplete-popup-indicator svg path {\n fill: currentcolor !important;\n stroke: currentcolor !important;\n}\n.ls-color-picker .MuiInputLabel-root .MuiSvgIcon-root,\n.ls-color-picker .MuiInputLabel-root svg,\n.ls-color-picker .MuiInputLabel-root svg path,\n.ls-color-picker__gradient button,\n.ls-color-picker__gradient button svg,\n.ls-color-picker__gradient button svg path,\n.ls-color-picker__gradient button svg line,\n.ls-color-picker__gradient button svg polyline,\n.ls-color-picker__gradient button svg polygon,\n.ls-color-picker__gradient button svg circle,\n.ls-color-picker__gradient button svg rect {\n color: var(--neutralLight1, var(--white, #fff)) !important;\n fill: currentcolor !important;\n stroke: currentcolor !important;\n}\n.ls-color-picker__gradient button[aria-pressed=true] svg,\n.ls-color-picker__gradient button[aria-selected=true] svg,\n.ls-color-picker__gradient button[data-active=true] svg,\n.ls-color-picker__gradient button[aria-pressed=true] svg *,\n.ls-color-picker__gradient button[aria-selected=true] svg *,\n.ls-color-picker__gradient button[data-active=true] svg * {\n color: var(--neutralLight1, var(--white, #fff)) !important;\n fill: currentcolor !important;\n stroke: currentcolor !important;\n}\n.ls-color-picker__picker--inline {\n max-height: none !important;\n}\n.ls-color-picker__gradient {\n color: var(--neutralLight1, var(--white, #fff)) !important;\n}\n.ls-variable-input-adornment,\n.ls-variable-input-adornment.MuiInputAdornment-root {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n height: 24px;\n width: 24px;\n min-width: 24px;\n margin-left: 0.35rem;\n border-radius: var(--radius, 1rem);\n background: var(--primary, #ff4076) !important;\n color: var(--alwayswhite, var(--white, #fff)) !important;\n font-weight: 800;\n line-height: 1;\n letter-spacing: 0;\n cursor: pointer;\n user-select: none;\n}\n.ls-variable-input-adornment svg,\n.ls-variable-input-adornment path {\n color: currentcolor !important;\n fill: currentcolor !important;\n stroke: currentcolor !important;\n}\n.ls-variable-input-adornment:hover,\n.ls-variable-input-adornment.MuiInputAdornment-root:hover {\n filter: brightness(1.08);\n}\n.ls-variable-input-adornment:active,\n.ls-variable-input-adornment.MuiInputAdornment-root:active {\n filter: brightness(0.96);\n}\n.mui-ls-slider-input-root {\n width: 100%;\n}\n.mui-ls-slider-input-fieldset {\n position: relative;\n min-width: 0;\n width: 100%;\n min-height: var(--ls-control-height);\n margin: 0;\n border: 2px solid var(--neutralDark4, var(--cardborder, #393853));\n border-radius: var(--radius, 1rem);\n padding: 0 0.875rem 0.5rem 0.875rem;\n background: transparent;\n color: var(--neutralLight1, var(--white, #fff));\n}\n.mui-ls-slider-input-fieldset:hover {\n border-color: var(--primary, #ff4076);\n}\n.mui-ls-slider-input-legend {\n display: block;\n width: auto;\n max-width: calc(100% - 1rem);\n margin: 0;\n padding: 0 0.25rem;\n color: var(--neutralLight1, var(--white, #fff));\n font-size: 0.875rem;\n line-height: 1.1;\n white-space: nowrap;\n}\n.mui-ls-slider-input-row {\n display: flex;\n min-width: 0;\n min-height: calc(var(--ls-control-height) - 14px);\n align-items: center;\n gap: 1rem;\n}\n.mui-ls-slider-input-row--slider {\n flex-wrap: nowrap;\n}\n.mui-ls-slider-input-row--input {\n justify-content: stretch;\n}\n.mui-ls-slider-input-value.mui-ls-input {\n margin: 0;\n}\n.mui-ls-slider-input-value.mui-ls-input .MuiFormControl-root,\n.mui-ls-slider-input-value.mui-ls-input .MuiTextField-root {\n margin: 0;\n}\n.mui-ls-slider-input-value.mui-ls-input .MuiInputBase-root {\n min-height: 36px;\n}\n.mui-ls-slider-input-value.mui-ls-input .MuiOutlinedInput-notchedOutline {\n border-color: var(--neutralDark4, var(--cardborder, #393853));\n}\n.mui-ls-slider-input-helper {\n display: block;\n margin-top: 0.25rem;\n color: var(--neutralLight3, var(--grey, #9392a1));\n font-size: 0.75rem;\n line-height: 1.25;\n}\n.ls-multi-select-value {\n display: flex;\n width: 100%;\n min-width: 0;\n flex-wrap: nowrap;\n align-items: center;\n justify-content: space-between;\n gap: 0.5rem;\n overflow: hidden;\n white-space: nowrap;\n}\n.ls-multi-select-value__label {\n min-width: 0;\n flex: 1 1 0%;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.ls-multi-select-value__count {\n flex-shrink: 0;\n white-space: nowrap;\n}\n.ls-color-picker__preview {\n position: relative;\n display: inline-block;\n width: 1.5rem;\n height: 1.5rem;\n flex-shrink: 0;\n padding: 0;\n border: 1px solid color-mix(in srgb, #fff 25%, transparent);\n border-radius: var(--radius, 1rem);\n background-size: cover;\n background-position: center;\n background-repeat: no-repeat;\n box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.25);\n color: transparent;\n line-height: 0;\n}\n.ls-color-picker__preview:disabled {\n cursor: not-allowed;\n opacity: 0.5;\n}\n.ls-color-picker__preview:focus {\n outline: none;\n}\n.ls-color-picker__preview:focus-visible {\n box-shadow:\n 0 0 0 2px var(--primary, #ff4076),\n 0 0 0 4px var(--neutralDark1, #1b1a28),\n 0 0 0 1px rgba(0, 0, 0, 0.25);\n}\n.ls-color-picker__gradient circle,\n.ls-color-picker__gradient polyline {\n stroke: #fff !important;\n}\n.ls-variable-picker {\n --variable-custom-color: var(--customVariables, #69ffd2);\n --variable-function-color: var( --functionVariables, var(--semanticPurple, #b489ff) );\n --variable-normal-color: var(--normalVariables, var(--semanticBlue, #65b8ff));\n display: flex;\n width: 92vw;\n max-width: 1100px;\n min-height: 50vh;\n max-height: 55vh;\n flex-direction: column;\n overflow: hidden;\n padding: 1rem;\n}\n.ls-variable-picker__field {\n margin: 0 0 0.75rem;\n border: 1px solid color-mix(in srgb, var(--primary, #ff4076) 42%, var(--neutralDark4, #393853));\n border-radius: var(--radius, 1rem);\n padding: 0.5rem;\n}\n.ls-variable-picker__legend {\n padding-inline: 0.375rem;\n color: var(--primary, #ff4076);\n font-size: 0.75rem;\n font-weight: 700;\n}\n.ls-variable-picker__intro {\n margin-bottom: 1rem;\n color: var(--neutralLight2, #cac9d5);\n}\n.ls-variable-picker__header,\n.ls-variable-picker__row {\n display: grid;\n grid-template-columns: minmax(300px, 1.5fr) 1fr 1fr;\n gap: 2rem;\n}\n.ls-variable-picker__header {\n margin-bottom: 0.25rem;\n padding-inline: 0.25rem;\n padding-right: 1.7rem;\n color: var(--neutralLight3, #9392a1);\n}\n.ls-variable-picker__list {\n height: 100%;\n overflow: auto;\n padding-right: 1rem;\n}\n.ls-variable-picker__row {\n cursor: pointer;\n align-items: start;\n border-bottom: 1px solid color-mix(in srgb, var(--neutralDark4, #393853) 70%, transparent);\n padding: 1rem 0.25rem;\n}\n.ls-variable-picker__row--no-border {\n border-bottom: 0;\n}\n.ls-variable-picker__token-cell {\n display: flex;\n min-width: 0;\n align-items: center;\n gap: 0.375rem;\n}\n.ls-variable-picker__expand-toggle,\n.ls-variable-picker__expand-spacer {\n width: 24px;\n height: 24px;\n flex: 0 0 24px;\n}\n.ls-variable-picker__expand-toggle {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n border: 1px solid color-mix(in srgb, var(--neutralDark4, #393853) 75%, transparent);\n border-radius: var(--radius, 1rem);\n padding: 0;\n background: var(--neutralDark3, var(--containerbackground, #1f1f3a));\n color: var(--neutralLight2, #cac9d5);\n transition:\n background-color 140ms ease,\n border-color 140ms ease,\n color 140ms ease,\n transform 140ms ease;\n}\n.ls-variable-picker__expand-toggle:hover {\n border-color: var(--primary, #ff4076);\n background: color-mix(in srgb, var(--primary, #ff4076) 16%, var(--neutralDark3, #1f1f3a));\n color: var(--neutralLight1, #fff);\n}\n.ls-variable-picker__expand-toggle svg {\n transform: rotate(-90deg);\n transition: transform 140ms ease;\n}\n.ls-variable-picker__expand-toggle--expanded svg {\n transform: rotate(0deg);\n}\n.ls-variable-picker__row:active {\n opacity: 0.8;\n}\n.ls-variable-picker__description {\n max-width: 600px;\n overflow-wrap: break-word;\n line-height: 1.25;\n word-break: break-all;\n}\n.ls-variable-picker__value {\n min-width: 0;\n}\n.ls-variable-picker__value-input {\n width: 100%;\n min-width: 0;\n cursor: text;\n overflow: hidden;\n border: 0;\n background: transparent;\n color: var(--neutralLight1, var(--white, #fff));\n caret-color: transparent;\n font: inherit;\n font-size: 1rem;\n line-height: 1.25;\n outline: 0;\n padding: 0;\n text-overflow: ellipsis;\n}\n.ls-variable-picker__value-input:focus {\n outline: 0;\n}\n.ls-variable-picker__value-input::selection {\n background: color-mix(in srgb, var(--primary, #ff4076) 45%, transparent);\n color: var(--alwayswhite, var(--white, #fff));\n}\n.ls-variable-token {\n display: flex;\n min-width: 0;\n align-items: center;\n}\n.ls-variable-token--suggested {\n color: var(--suggestedVariables, #ffb469);\n}\n.ls-variable-token--custom {\n color: var(--customVariables, #69ffd2);\n}\n.ls-variable-token--function {\n color: var(--functionVariables, var(--semanticPurple, #b489ff));\n}\n.ls-variable-token--system {\n color: var(--normalVariables, var(--semanticBlue, #65b8ff));\n}\n.ls-variable-token__name {\n min-width: 0;\n word-break: break-all;\n}\n.ls-variable-token__badge {\n display: inline-flex;\n margin-left: 0.5rem;\n flex-shrink: 0;\n align-items: center;\n border: 1px solid currentcolor;\n border-radius: var(--radius, 1rem);\n padding-inline: 0.25rem;\n padding-block: 0;\n font-size: 10px;\n font-weight: 600;\n line-height: 1;\n text-transform: uppercase;\n}\n.ls-chat-message {\n position: relative;\n font-size: 0.95em;\n line-height: 1.4;\n color: var(--white, var(--neutralLight1, #fff));\n overflow-wrap: break-word;\n word-break: break-word;\n}\n.ls-chat-message img {\n display: inline-block;\n}\n.ls-chat-message__reply {\n display: block;\n margin-bottom: 0.15em;\n font-size: 0.82em;\n color: var(--white2, var(--neutralLight3, #9392a1));\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.ls-chat-message__avatar-prefix {\n vertical-align: middle;\n}\n.ls-chat-message__avatar {\n width: 1.3em;\n height: 1.3em;\n border-radius: 9999px;\n vertical-align: middle;\n margin-right: 0.35em;\n}\n.ls-chat-message__site {\n display: inline-block;\n vertical-align: middle;\n margin-right: 0.35em;\n}\n.ls-chat-message__site img,\n.ls-chat-message__site svg {\n width: 1.2em;\n height: 1.2em;\n vertical-align: middle;\n}\n.ls-chat-message__time {\n margin-right: 0.35em;\n font-weight: 700;\n vertical-align: middle;\n}\n.ls-chat-message__badges {\n vertical-align: middle;\n}\n.ls-chat-message__badges img {\n height: 1.05em;\n vertical-align: middle;\n margin-right: 0.25em;\n}\n.ls-chat-message__username {\n font-weight: 700;\n vertical-align: middle;\n}\n.ls-chat-message__username--clickable {\n cursor: pointer;\n background: none;\n border: 0;\n padding: 0;\n font: inherit;\n}\n.ls-chat-message__username--clickable:hover {\n text-decoration: underline;\n}\n.ls-viewerslist__username--clickable,\n.ls-eventlist-item__username--clickable {\n cursor: pointer;\n}\n.ls-viewerslist__username--clickable:hover,\n.ls-eventlist-item__username--clickable:hover {\n text-decoration: underline;\n}\n.ls-chat-message__text {\n vertical-align: middle;\n}\n.ls-chat-message__text img {\n vertical-align: middle;\n}\n.ls-chat-message__actions {\n position: absolute;\n top: 0;\n right: 0;\n}\n.ls-chat-message__modbar {\n display: flex;\n overflow: hidden;\n border-radius: 0.75rem;\n background-color: var(--separator, #0a0821);\n transition-duration: 300ms;\n}\n.ls-chat-message__modbtn {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 0.5rem;\n cursor: pointer;\n color: var(--grey, var(--neutralLight3, #9392a1));\n transition-duration: 300ms;\n}\n.ls-chat-message__modbtn:hover {\n background-color: var(--cardborder, var(--neutralDark4, #393853));\n}\n.ls-chat-message__modbtn--danger:hover {\n color: var(--error, #fd5454);\n}\n.ls-chat-message__menu-icon {\n display: flex;\n color: var(--white, var(--neutralLight1, #fff));\n}\n.ls-eventlist-item {\n display: grid;\n grid-template-columns: minmax(0, 1fr) auto;\n align-items: center;\n gap: 1em;\n border: 1px solid var(--cardborder, var(--neutralDark4, #393853));\n border-left: 4px solid var(--primary, #ff4076);\n border-radius: 1em;\n background-color: var(--cardbackground, var(--neutralDark2, #211d3e));\n color: var(--white, var(--neutralLight1, #fff));\n padding: 1em;\n line-height: 1.35;\n}\n.ls-eventlist-item__main {\n display: flex;\n flex-direction: column;\n gap: 0.2em;\n min-width: 0;\n}\n.ls-eventlist-item__identity {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n column-gap: 0.75em;\n row-gap: 0.35em;\n min-width: 0;\n}\n.ls-eventlist-item__avatar,\n.ls-eventlist-item__icon {\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: 1.5em;\n min-width: 1.5em;\n height: 1.5em;\n overflow: hidden;\n}\n.ls-eventlist-item__avatar {\n border-radius: 1em;\n background-color: var(--background, transparent);\n}\n.ls-eventlist-item__avatar img,\n.ls-eventlist-item__icon img,\n.ls-eventlist-item__icon svg {\n width: 100%;\n height: 100%;\n object-fit: contain;\n}\n.ls-eventlist-item__username {\n min-width: 0;\n font-weight: 700;\n font-size: 0.875em;\n word-break: break-all;\n}\n.ls-eventlist-item__body {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n column-gap: 0.75em;\n row-gap: 0.35em;\n min-width: 0;\n}\n.ls-eventlist-item__message {\n min-width: 0;\n word-break: break-all;\n}\n.ls-eventlist-item__usermessage {\n min-width: 0;\n font-style: italic;\n color: var(--white2, var(--neutralLight2, #cac9d5));\n word-break: break-all;\n}\n.ls-eventlist-item__time {\n flex-shrink: 0;\n color: var(--grey, var(--neutralLight3, #9392a1));\n font-size: 0.875em;\n white-space: nowrap;\n}\n.ls-eventlist-item__actions {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n align-self: center;\n gap: 0.5em;\n flex-shrink: 0;\n}\n.ls-modqueue-item {\n display: flex;\n align-items: stretch;\n gap: 0.5rem;\n border-radius: 1rem;\n background-color: color-mix(in srgb, var(--secondary, #535395) 20%, transparent);\n padding: 0.5rem;\n}\n.ls-modqueue-item__preview {\n display: flex;\n height: 4rem;\n width: 4rem;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n overflow: hidden;\n border-radius: 1rem;\n background-color: var(--separator, #0a0821);\n color: var(--primary, #ff4076);\n font-size: 1.75rem;\n line-height: 1;\n}\n.ls-modqueue-item__preview > * {\n display: flex;\n max-height: 100%;\n max-width: 100%;\n align-items: center;\n justify-content: center;\n line-height: 1;\n}\n.ls-modqueue-item__preview img,\n.ls-modqueue-item__preview svg {\n max-height: 100%;\n max-width: 100%;\n object-fit: contain;\n}\n.ls-modqueue-item__body {\n display: flex;\n min-width: 0;\n flex: 1;\n flex-direction: column;\n gap: 0.25rem;\n justify-content: flex-start;\n padding-top: 0.25rem;\n}\n.ls-modqueue-item__head {\n display: flex;\n align-items: center;\n gap: 0.375rem;\n flex-wrap: wrap;\n}\n.ls-modqueue-item__avatar {\n height: 1.5rem;\n width: 1.5rem;\n border-radius: 9999px;\n border: 1px solid var(--separator, #322c52);\n}\n.ls-modqueue-item__username {\n font-weight: 700;\n color: var(--white, var(--neutralLight1, #fff));\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: 12rem;\n}\n.ls-modqueue-item__command {\n display: inline-flex;\n align-items: center;\n border-radius: 1rem;\n background-color: var(--separator, #0a0821);\n padding: 0.05rem 0.5rem;\n font-size: 0.8125rem;\n color: var(--white, var(--neutralLight1, #fff));\n}\n.ls-modqueue-item__message {\n font-size: 0.875rem;\n font-style: italic;\n color: var(--white2, var(--neutralLight2, #cac9d5));\n word-break: break-all;\n}\n.ls-modqueue-item__actions {\n display: flex;\n flex-shrink: 0;\n align-items: flex-start;\n gap: 0.5rem;\n padding-top: 0.25rem;\n}\n.ls-modqueue-item .ls-modqueue-item__iconbtn {\n padding: 0;\n border-radius: 0.5rem;\n transition: opacity 300ms ease;\n}\n.ls-modqueue-item .ls-modqueue-item__iconbtn:hover {\n background-color: transparent;\n opacity: 0.7;\n}\n.ls-modqueue-item__action-icon {\n height: 1.5rem;\n width: 1.5rem;\n flex-shrink: 0;\n}\n.ls-modlog {\n display: flex;\n height: 100%;\n flex-direction: column;\n gap: 0.5rem;\n overflow: hidden;\n color: var(--white, var(--neutralLight1, #fff));\n}\n.ls-modlog__toolbar {\n display: flex;\n justify-content: flex-end;\n}\n.ls-modlog__clear {\n display: inline-flex;\n align-items: center;\n gap: 0.375rem;\n border: 0;\n border-radius: 0.75rem;\n background: transparent;\n padding: 0.25rem 0.625rem;\n font-size: 0.75rem;\n color: var(--grey, var(--neutralLight3, #9392a1));\n cursor: pointer;\n transition: background-color 150ms ease, color 150ms ease;\n}\n.ls-modlog__clear:hover {\n background-color: color-mix(in srgb, var(--white, #fff) 8%, transparent);\n color: var(--white, #fff);\n}\n.ls-modlog__empty {\n display: flex;\n height: 100%;\n flex: 1;\n align-items: center;\n justify-content: center;\n border-radius: 1rem;\n text-align: center;\n color: var(--white2, var(--neutralLight3, #9392a1));\n}\n.ls-modlog__list {\n display: flex;\n min-height: 0;\n flex: 1;\n flex-direction: column;\n gap: 0.375rem;\n overflow: auto;\n}\n.ls-modlog__row {\n display: flex;\n flex-direction: column;\n gap: 0.25rem;\n border-radius: 0.625rem;\n border-left: 3px solid var(--ls-modlog-accent, var(--primary, #ff4076));\n padding: 0.5rem 0.625rem;\n font-size: 0.8125rem;\n background-color: var(--separator, var(--neutralDark2, #1b1834));\n background-image: linear-gradient(var(--ls-modlog-bar, transparent), var(--ls-modlog-bar, transparent));\n}\n.ls-modlog__head {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n.ls-modlog__avatar {\n height: 1.25rem;\n width: 1.25rem;\n border-radius: 9999px;\n}\n.ls-modlog__title {\n display: inline-flex;\n align-items: center;\n border-radius: 0.375rem;\n padding: 0.05rem 0.4rem;\n font-size: 0.625rem;\n font-weight: 700;\n text-transform: uppercase;\n letter-spacing: 0.04em;\n color: var(--ls-modlog-accent, var(--primary, #ff4076));\n background-color: color-mix(in srgb, var(--ls-modlog-accent, #ff4076) 18%, transparent);\n}\n.ls-modlog__time {\n margin-left: auto;\n flex-shrink: 0;\n color: var(--grey, var(--neutralLight3, #9392a1));\n font-size: 0.6875rem;\n font-variant-numeric: tabular-nums;\n}\n.ls-modlog__message {\n word-break: break-word;\n overflow-wrap: anywhere;\n line-height: 1.35;\n color: var(--white, var(--neutralLight1, #fff));\n}\n.ls-songreq {\n display: flex;\n height: 100%;\n flex-direction: column;\n gap: 0.75rem;\n overflow: hidden;\n color: var(--white, var(--neutralLight1, #fff));\n}\n.ls-songreq--empty {\n align-items: center;\n justify-content: center;\n text-align: center;\n color: var(--white2, var(--neutralLight3, #9392a1));\n}\n.ls-songreq__addbar {\n display: flex;\n flex-shrink: 0;\n align-items: center;\n gap: 0.5rem;\n}\n.ls-songreq__addbar .ls-songreq__addinput {\n flex: 1;\n}\n.ls-songreq__empty {\n display: flex;\n flex: 1;\n align-items: center;\n justify-content: center;\n text-align: center;\n color: var(--white2, var(--neutralLight3, #9392a1));\n}\n.ls-songreq__now {\n display: flex;\n align-items: center;\n gap: 0.75rem;\n border: 1px solid color-mix(in srgb, var(--white, #fff) 5%, transparent);\n border-radius: 1rem;\n padding: 0.75rem;\n background-color: var(--separator, var(--neutralDark2, #1b1834));\n}\n.ls-songreq__art {\n height: 3.5rem;\n width: 3.5rem;\n flex-shrink: 0;\n border-radius: 0.75rem;\n object-fit: cover;\n}\n.ls-songreq__nowbody {\n display: flex;\n min-width: 0;\n flex: 1;\n flex-direction: column;\n gap: 0.1rem;\n}\n.ls-songreq__title {\n overflow: hidden;\n font-size: 0.875rem;\n font-weight: 700;\n text-overflow: ellipsis;\n white-space: nowrap;\n color: var(--white, #fff);\n}\n.ls-songreq__artist {\n overflow: hidden;\n font-size: 0.75rem;\n text-overflow: ellipsis;\n white-space: nowrap;\n color: var(--grey, var(--neutralLight3, #9392a1));\n}\n.ls-songreq__requester {\n overflow: hidden;\n font-size: 0.6875rem;\n text-overflow: ellipsis;\n white-space: nowrap;\n color: var(--grey, var(--neutralLight3, #9392a1));\n}\n.ls-songreq__progress {\n margin-top: 0.375rem;\n height: 0.375rem;\n width: 100%;\n overflow: hidden;\n border-radius: 9999px;\n background-color: color-mix(in srgb, var(--white, #fff) 10%, transparent);\n}\n.ls-songreq__progressbar {\n height: 100%;\n border-radius: 9999px;\n background-color: var(--success, #1db954);\n transition: width 1000ms linear;\n}\n.ls-songreq__controls {\n display: flex;\n flex-shrink: 0;\n align-items: center;\n gap: 0.375rem;\n}\n.ls-songreq__btn {\n display: inline-flex;\n height: 2rem;\n width: 2rem;\n cursor: pointer;\n align-items: center;\n justify-content: center;\n border-radius: 0.625rem;\n border: 1px solid color-mix(in srgb, var(--white, #fff) 10%, transparent);\n background: transparent;\n font-size: 0.875rem;\n line-height: 1;\n color: var(--grey, var(--neutralLight3, #9392a1));\n transition: background-color 120ms ease, color 120ms ease;\n}\n.ls-songreq__btn:hover {\n background-color: color-mix(in srgb, var(--white, #fff) 10%, transparent);\n color: var(--white, #fff);\n}\n.ls-songreq__queue {\n display: flex;\n min-height: 0;\n flex: 1;\n flex-direction: column;\n}\n.ls-songreq__queuehead {\n margin-bottom: 0.25rem;\n padding: 0 0.25rem;\n font-size: 0.6875rem;\n font-weight: 700;\n letter-spacing: 0.05em;\n text-transform: uppercase;\n color: var(--grey, var(--neutralLight3, #9392a1));\n}\n.ls-songreq__queuelist {\n display: flex;\n min-height: 0;\n flex: 1;\n flex-direction: column;\n gap: 0.25rem;\n overflow: auto;\n}\n.ls-songreq__queueempty {\n padding: 0.5rem 0.25rem;\n font-size: 0.75rem;\n color: var(--grey, var(--neutralLight3, #9392a1));\n}\n.ls-songreq__item {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n border-radius: 0.75rem;\n padding: 0.375rem 0.5rem;\n transition: background-color 120ms ease;\n}\n.ls-songreq__item:hover {\n background-color: color-mix(in srgb, var(--white, #fff) 4%, transparent);\n}\n.ls-songreq__itemart {\n height: 2.25rem;\n width: 2.25rem;\n flex-shrink: 0;\n border-radius: 0.5rem;\n object-fit: cover;\n}\n.ls-songreq__itembody {\n min-width: 0;\n flex: 1;\n}\n.ls-songreq__itemtitle {\n overflow: hidden;\n font-size: 0.875rem;\n text-overflow: ellipsis;\n white-space: nowrap;\n color: var(--white, #fff);\n}\n.ls-songreq__itemmeta {\n overflow: hidden;\n font-size: 0.75rem;\n text-overflow: ellipsis;\n white-space: nowrap;\n color: var(--grey, var(--neutralLight3, #9392a1));\n}\n.ls-songreq__remove {\n flex-shrink: 0;\n cursor: pointer;\n border: 0;\n background: transparent;\n font-size: 0.875rem;\n color: var(--grey, var(--neutralLight3, #9392a1));\n transition: color 120ms ease;\n}\n.ls-songreq__remove:hover {\n color: var(--error, #fd5454);\n}\n.ls-modqueue {\n display: flex;\n height: 100%;\n flex-direction: column;\n gap: 0.5rem;\n overflow: hidden;\n}\n.ls-modqueue__search-icon {\n height: 1rem;\n width: 1rem;\n flex-shrink: 0;\n margin-right: 0.5rem;\n color: var(--white2, var(--neutralLight2, #cac9d5));\n}\n.ls-modqueue__empty {\n display: flex;\n height: 100%;\n flex: 1;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 0.5rem;\n text-align: center;\n color: var(--white2, var(--neutralLight3, #9392a1));\n}\n.ls-modqueue__empty-icon {\n font-size: 1.875rem;\n}\n.ls-modqueue__bulk {\n display: flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: flex-end;\n gap: 0.5rem;\n}\n.ls-modqueue .ls-modqueue__bulk-btn {\n display: inline-flex;\n align-items: center;\n gap: 0.25rem;\n cursor: pointer;\n border-radius: 0.5rem;\n border: 1px solid currentcolor;\n background: transparent;\n padding: 0.25rem 0.5rem;\n font-size: 0.75rem;\n font-weight: 600;\n transition: opacity 120ms ease;\n}\n.ls-modqueue .ls-modqueue__bulk-btn:hover {\n opacity: 0.7;\n}\n.ls-modqueue .ls-modqueue__bulk-btn--deny {\n color: var(--error, #fd5454);\n}\n.ls-modqueue .ls-modqueue__bulk-btn--approve {\n color: var(--success, #7ed187);\n}\n.ls-modqueue__bulk-icon {\n height: 1rem;\n width: 1rem;\n flex-shrink: 0;\n}\n.ls-modqueue__list {\n display: flex;\n min-height: 0;\n flex: 1;\n flex-direction: column;\n gap: 0.5rem;\n overflow: auto;\n}\n.ls-modqueue__readonly {\n font-size: 0.625rem;\n text-transform: uppercase;\n letter-spacing: 0.05em;\n color: var(--grey, var(--neutralLight3, #9392a1));\n}\n.ls-modqueue__search-slot {\n flex-shrink: 0;\n}\n.ls-chatbox {\n display: flex;\n height: 100%;\n flex-direction: column;\n overflow: hidden;\n color: var(--white, var(--neutralLight1, #fff));\n}\n.ls-chatbox__viewport {\n position: relative;\n flex: 1;\n min-height: 0;\n overflow: hidden;\n}\n.ls-chatbox__list {\n display: flex;\n height: 100%;\n flex-direction: column;\n overflow-y: auto;\n padding: 0.75rem;\n}\n.ls-chatbox__jump {\n position: absolute;\n bottom: 0.75rem;\n right: 0.75rem;\n display: flex;\n align-items: center;\n gap: 0.5rem;\n cursor: pointer;\n border-radius: 9999px;\n border: 1px solid color-mix(in srgb, var(--white, #fff) 10%, transparent);\n background-color: color-mix(in srgb, var(--white, #fff) 5%, transparent);\n padding: 0.5rem 0.75rem;\n font-size: 0.75rem;\n color: color-mix(in srgb, var(--white, #fff) 80%, transparent);\n box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);\n backdrop-filter: blur(4px);\n transition: background-color 150ms ease, color 150ms ease;\n}\n.ls-chatbox__jump:hover {\n background-color: color-mix(in srgb, var(--white, #fff) 10%, transparent);\n color: var(--white, #fff);\n}\n.ls-chatbox__jump-arrow {\n height: 0.875rem;\n width: 0.875rem;\n}\n.ls-chatbox__jump-arrow--up {\n transform: rotate(180deg);\n}\n.ls-chatbox__jump-badge {\n margin-left: 0.25rem;\n border-radius: 9999px;\n background-color: var(--primary, #ff4076);\n padding: 0.125rem 0.5rem;\n font-size: 0.625rem;\n font-weight: 600;\n color: var(--alwayswhite, #fff);\n}\n.ls-chatbox__sendbar {\n display: flex;\n flex-shrink: 0;\n align-items: center;\n gap: 0.5rem;\n padding: 0 0.75rem 0.75rem;\n}\n.ls-chatbox__sendbar .ls-chatbox__input {\n flex: 2 1 0%;\n min-width: 100px;\n width: 100%;\n}\n.ls-chatbox__sendbar .ls-chatbox__platform {\n flex: 1 1 0%;\n min-width: 7.5rem;\n height: 55px;\n}\n.ls-chatbox__sendbar .ls-chatbox__chatas {\n flex: 0 1 auto;\n min-width: 5.5rem;\n height: 55px;\n}\n.ls-chatbox__sendbar .ls-chatbox__send {\n height: 55px;\n flex-shrink: 0;\n}\n.ls-panel {\n --ls-panel-padding: 0.75rem;\n display: flex;\n flex-direction: column;\n border-radius: 1rem;\n border: 1px solid color-mix(in srgb, var(--white, #fff) 10%, transparent);\n background-color: var(--ls-panel-bg, #1b1834);\n box-shadow: 0 25px 50px -12px rgb(0 0 0 / 0.55);\n color: var(--white, var(--neutralLight1, #fff));\n}\n.ls-panel__clickaway {\n position: fixed;\n inset: 0;\n z-index: 20;\n}\n.ls-panel__header {\n display: flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: space-between;\n gap: 0.5rem;\n padding: var(--ls-panel-padding) var(--ls-panel-padding) 0.5rem;\n}\n.ls-panel__title {\n min-width: 0;\n font-size: 1rem;\n font-weight: 700;\n color: var(--white, #fff);\n}\n.ls-panel__title--label {\n font-size: 0.75rem;\n text-transform: uppercase;\n letter-spacing: 0.05em;\n color: var(--grey, var(--neutralLight3, #9392a1));\n}\n.ls-panel__header-actions {\n display: flex;\n flex-shrink: 0;\n align-items: center;\n gap: 0.25rem;\n}\n.ls-panel__close {\n display: flex;\n height: 1.5rem;\n width: 1.5rem;\n cursor: pointer;\n align-items: center;\n justify-content: center;\n border: 0;\n border-radius: 0.5rem;\n background: transparent;\n font-size: 0.875rem;\n color: var(--grey, var(--neutralLight3, #9392a1));\n transition: background-color 150ms ease, color 150ms ease;\n}\n.ls-panel__close:hover {\n background-color: color-mix(in srgb, var(--white, #fff) 10%, transparent);\n color: var(--white, #fff);\n}\n.ls-panel__body {\n min-height: 0;\n flex: 1;\n overflow: auto;\n padding: 0 var(--ls-panel-padding) var(--ls-panel-padding);\n}\n.ls-panel--no-header .ls-panel__body {\n padding-top: var(--ls-panel-padding);\n}\n.ls-panel__footer {\n flex-shrink: 0;\n padding: 0.5rem var(--ls-panel-padding) var(--ls-panel-padding);\n}\n.ls-modal {\n position: fixed;\n inset: 0;\n z-index: 2000;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 1rem;\n}\n.ls-modal--absolute {\n position: absolute;\n}\n.ls-modal__backdrop {\n position: absolute;\n inset: 0;\n background-color: color-mix(in srgb, var(--ls-modal-backdrop, var(--separator, #0a0821)) 75%, transparent);\n backdrop-filter: blur(4px);\n}\n.ls-modal__card {\n position: relative;\n width: 100%;\n max-width: var(--ls-modal-max-width, min(560px, 92vw));\n max-height: 85vh;\n}\n.ls-modal__card--fit {\n width: auto;\n}\n.ls-modal__card--center .ls-panel__body {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n}\n.ls-dialog {\n margin-top: 0.5rem;\n display: flex;\n height: 100%;\n width: 100%;\n align-items: center;\n justify-content: center;\n}\n.ls-dialog__card {\n position: relative;\n z-index: 10;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: space-between;\n gap: 0.5rem;\n overflow: hidden;\n border-radius: 1rem;\n outline: none;\n color: var(--white, var(--neutralLight1, #fff));\n}\n.ls-dialog__card--pad {\n padding: 1rem;\n}\n.ls-dialog__card--full {\n border-radius: 0;\n}\n.ls-dialog__top {\n display: flex;\n width: 100%;\n align-items: flex-start;\n justify-content: space-between;\n}\n.ls-dialog__top--full {\n margin-top: 2rem;\n}\n.ls-dialog__top-side {\n flex: 1;\n}\n.ls-dialog__title {\n font-size: 1.25rem;\n color: var(--white, #fff);\n}\n.ls-dialog__close {\n display: flex;\n flex: 1;\n justify-content: flex-end;\n user-select: none;\n font-weight: 700;\n color: var(--white, #fff);\n}\n.ls-dialog__close-btn {\n display: flex;\n cursor: pointer;\n align-items: center;\n gap: 0.5rem;\n}\n.ls-dialog__close-label {\n cursor: pointer;\n font-size: 1rem;\n font-weight: 700;\n color: var(--grey, var(--neutralLight3, #9392a1));\n}\n.ls-dialog__body {\n display: flex;\n width: 100%;\n flex: 1;\n min-height: 0;\n flex-direction: column;\n align-items: center;\n justify-content: space-between;\n overflow: auto;\n}\n.ls-dialog__bottom {\n display: flex;\n width: 100%;\n align-items: center;\n justify-content: center;\n gap: 1rem;\n padding-bottom: 1rem;\n}\n.ls-eventlist {\n display: flex;\n height: 100%;\n min-height: 0;\n flex-direction: column;\n overflow: hidden;\n color: var(--white, var(--neutralLight1, #fff));\n line-height: 1.35;\n}\n.ls-eventlist__list {\n display: flex;\n min-height: 0;\n flex: 1;\n flex-direction: column;\n gap: 0.5em;\n overflow-y: auto;\n}\n.ls-eventlist__row {\n flex-shrink: 0;\n animation: ls-eventlist-enter 250ms ease;\n}\n.ls-eventlist__empty {\n display: flex;\n height: 100%;\n flex: 1;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 0.75em;\n border-radius: 1em;\n padding: 1em;\n text-align: center;\n color: var(--white2, var(--neutralLight3, #9392a1));\n}\n.ls-eventlist__empty-icon {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n font-size: 1.875em;\n}\n.ls-eventlist__empty-icon img,\n.ls-eventlist__empty-icon svg {\n width: 1.6em;\n height: 1.6em;\n}\n@keyframes ls-eventlist-enter {\n from {\n opacity: 0;\n transform: translateX(-1.5em);\n }\n to {\n opacity: 1;\n transform: translateX(0);\n }\n}\n.ls-streamstatus {\n display: flex;\n height: 100%;\n flex-direction: column;\n gap: 0.75rem;\n overflow: auto;\n color: var(--white, var(--neutralLight1, #fff));\n}\n.ls-streamstatus--empty {\n align-items: center;\n justify-content: center;\n text-align: center;\n color: var(--white2, var(--neutralLight3, #9392a1));\n}\n.ls-streamstatus__status {\n display: flex;\n flex-shrink: 0;\n align-items: center;\n gap: 0.75rem;\n border: 1px solid color-mix(in srgb, var(--white, #fff) 5%, transparent);\n border-radius: 1rem;\n padding: 0.625rem 0.75rem;\n background-color: color-mix(in srgb, var(--white, #fff) 3%, transparent);\n}\n.ls-streamstatus__indicator {\n position: relative;\n display: inline-flex;\n height: 0.75rem;\n width: 0.75rem;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n}\n.ls-streamstatus__indicator-ping {\n position: absolute;\n height: 100%;\n width: 100%;\n border-radius: 9999px;\n background-color: color-mix(in srgb, var(--success, #7ed187) 60%, transparent);\n animation: ls-streamstatus-ping 1.2s cubic-bezier(0, 0, 0.2, 1) infinite;\n}\n@keyframes ls-streamstatus-ping {\n 75%, 100% {\n transform: scale(2);\n opacity: 0;\n }\n}\n.ls-streamstatus__indicator-dot {\n position: relative;\n height: 0.75rem;\n width: 0.75rem;\n border-radius: 9999px;\n background-color: var(--grey, var(--neutralLight3, #9392a1));\n}\n.ls-streamstatus__indicator-dot--online {\n background-color: var(--success, #7ed187);\n}\n.ls-streamstatus__status-body {\n display: flex;\n min-width: 0;\n flex-direction: column;\n}\n.ls-streamstatus__status-label {\n overflow: hidden;\n font-size: 0.875rem;\n font-weight: 700;\n text-overflow: ellipsis;\n white-space: nowrap;\n color: var(--white, #fff);\n}\n.ls-streamstatus__status-sublabel {\n overflow: hidden;\n font-size: 0.75rem;\n text-overflow: ellipsis;\n white-space: nowrap;\n color: var(--grey, var(--neutralLight3, #9392a1));\n}\n.ls-streamstatus__overview {\n display: flex;\n flex-shrink: 0;\n align-items: stretch;\n gap: 0.5rem;\n}\n.ls-streamstatus__total {\n display: flex;\n flex-shrink: 0;\n flex-direction: column;\n justify-content: center;\n border: 1px solid color-mix(in srgb, var(--white, #fff) 5%, transparent);\n border-radius: 1rem;\n padding: 0.5rem 0.75rem;\n background-color: color-mix(in srgb, var(--white, #fff) 3%, transparent);\n}\n.ls-streamstatus__total-value {\n font-size: 1.875rem;\n font-weight: 700;\n line-height: 1;\n color: var(--primary, #ff4076);\n}\n.ls-streamstatus__total-label {\n margin-top: 0.25rem;\n font-size: 0.6875rem;\n letter-spacing: 0.05em;\n text-transform: uppercase;\n color: var(--grey, var(--neutralLight3, #9392a1));\n}\n.ls-streamstatus__platforms {\n display: flex;\n min-width: 0;\n flex: 1;\n flex-direction: column;\n justify-content: center;\n gap: 0.25rem;\n border: 1px solid color-mix(in srgb, var(--white, #fff) 5%, transparent);\n border-radius: 1rem;\n padding: 0.5rem 0.75rem;\n background-color: color-mix(in srgb, var(--white, #fff) 3%, transparent);\n}\n.ls-streamstatus__platforms-empty {\n font-size: 0.75rem;\n color: var(--grey, var(--neutralLight3, #9392a1));\n}\n.ls-streamstatus__platform {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 0.5rem;\n}\n.ls-streamstatus__platform-info {\n display: inline-flex;\n min-width: 0;\n align-items: center;\n gap: 0.375rem;\n font-size: 0.75rem;\n color: color-mix(in srgb, var(--white, #fff) 80%, transparent);\n}\n.ls-streamstatus__platform-icon {\n display: inline-flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n}\n.ls-streamstatus__platform-icon img,\n.ls-streamstatus__platform-icon svg {\n height: 0.875rem;\n width: 0.875rem;\n}\n.ls-streamstatus__platform-dot {\n height: 0.5rem;\n width: 0.5rem;\n flex-shrink: 0;\n border-radius: 9999px;\n background-color: var(--grey, var(--neutralLight3, #9392a1));\n}\n.ls-streamstatus__platform-label {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.ls-streamstatus__platform-value {\n flex-shrink: 0;\n font-size: 0.75rem;\n font-weight: 600;\n font-variant-numeric: tabular-nums;\n color: var(--white, #fff);\n}\n.ls-streamstatus__stats {\n display: grid;\n flex-shrink: 0;\n grid-template-columns: repeat(auto-fit, minmax(7.5rem, 1fr));\n gap: 0.5rem;\n}\n.ls-streamstatus__stat {\n display: flex;\n min-width: 0;\n flex-direction: column;\n gap: 0.125rem;\n border: 1px solid color-mix(in srgb, var(--white, #fff) 5%, transparent);\n border-radius: 1rem;\n padding: 0.5rem 0.75rem;\n background-color: color-mix(in srgb, var(--white, #fff) 3%, transparent);\n}\n.ls-streamstatus__stat-head {\n display: flex;\n align-items: center;\n gap: 0.375rem;\n}\n.ls-streamstatus__stat-icon {\n display: inline-flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n}\n.ls-streamstatus__stat-icon img,\n.ls-streamstatus__stat-icon svg {\n height: 1rem;\n width: 1rem;\n}\n.ls-streamstatus__stat-actions {\n display: inline-flex;\n margin-left: auto;\n flex-shrink: 0;\n align-items: center;\n gap: 0.25rem;\n}\n.ls-streamstatus__stat-value {\n overflow: hidden;\n font-size: 1.125rem;\n font-weight: 700;\n text-overflow: ellipsis;\n white-space: nowrap;\n color: var(--white, #fff);\n}\n.ls-streamstatus__stat-trendrow {\n display: flex;\n align-items: center;\n gap: 0.25rem;\n}\n.ls-streamstatus__stat-trendrow svg {\n width: 10px;\n flex-shrink: 0;\n}\n.ls-streamstatus__stat-label {\n min-width: 0;\n overflow: hidden;\n font-size: 0.6875rem;\n letter-spacing: 0.05em;\n text-overflow: ellipsis;\n text-transform: uppercase;\n white-space: nowrap;\n color: var(--grey, var(--neutralLight3, #9392a1));\n}\n.ls-streamstatus__stat-sub {\n font-size: 0.75rem;\n color: var(--grey, var(--neutralLight3, #9392a1));\n}\n.ls-viewerslist {\n display: flex;\n height: 100%;\n flex-direction: column;\n gap: 0.5rem;\n overflow: hidden;\n}\n.ls-viewerslist__head {\n display: flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: space-between;\n gap: 0.5rem;\n}\n.ls-viewerslist__count {\n flex-shrink: 0;\n font-size: 0.875rem;\n font-weight: 700;\n color: var(--white, #fff);\n}\n.ls-viewerslist__search {\n min-width: 0;\n flex: 1;\n border-radius: 0.75rem;\n border: 1px solid color-mix(in srgb, var(--white, #fff) 10%, transparent);\n background-color: color-mix(in srgb, var(--black, #000) 20%, transparent);\n padding: 0.375rem 0.75rem;\n font-size: 0.8125rem;\n color: var(--white, #fff);\n outline: none;\n}\n.ls-viewerslist__search:focus {\n border-color: var(--primary, #ff4076);\n}\n.ls-viewerslist__search::placeholder {\n color: color-mix(in srgb, var(--grey, var(--neutralLight3, #9392a1)) 60%, transparent);\n}\n.ls-viewerslist__search-slot {\n min-width: 0;\n flex: 1;\n}\n.ls-viewerslist__hint {\n flex-shrink: 0;\n font-size: 0.75rem;\n color: var(--grey, var(--neutralLight3, #9392a1));\n}\n.ls-viewerslist__empty {\n display: flex;\n height: 100%;\n flex: 1;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 0.5rem;\n text-align: center;\n color: var(--white2, var(--neutralLight3, #9392a1));\n}\n.ls-viewerslist__empty-icon {\n font-size: 1.875rem;\n}\n.ls-viewerslist__list {\n display: flex;\n min-height: 0;\n flex: 1;\n flex-direction: column;\n gap: 0.125rem;\n overflow: auto;\n}\n.ls-viewerslist__group {\n margin-top: 0.375rem;\n flex-shrink: 0;\n padding: 0 0.25rem;\n font-size: 0.6875rem;\n font-weight: 700;\n letter-spacing: 0.05em;\n text-transform: uppercase;\n color: var(--grey, var(--neutralLight3, #9392a1));\n}\n.ls-viewerslist__group:first-child {\n margin-top: 0;\n}\n.ls-viewerslist__viewer {\n display: flex;\n flex-shrink: 0;\n align-items: center;\n gap: 0.5rem;\n border-radius: 0.5rem;\n padding: 0.25rem 0.375rem;\n transition: background-color 120ms ease;\n}\n.ls-viewerslist__viewer:hover {\n background-color: color-mix(in srgb, var(--white, #fff) 4%, transparent);\n}\n.ls-viewerslist__avatar {\n height: 1.5rem;\n width: 1.5rem;\n flex-shrink: 0;\n border-radius: 9999px;\n object-fit: cover;\n}\n.ls-viewerslist__platform {\n display: inline-flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n color: var(--grey, var(--neutralLight3, #9392a1));\n}\n.ls-viewerslist__platform img,\n.ls-viewerslist__platform svg {\n height: 0.875rem;\n width: 0.875rem;\n}\n.ls-viewerslist__username {\n min-width: 0;\n flex: 1;\n overflow: hidden;\n font-size: 0.875rem;\n text-overflow: ellipsis;\n white-space: nowrap;\n color: color-mix(in srgb, var(--white, #fff) 90%, transparent);\n}\n.ls-viewerslist__badges {\n display: inline-flex;\n flex-shrink: 0;\n align-items: center;\n gap: 0.25rem;\n}\n.ls-viewerslist__actions {\n display: inline-flex;\n flex-shrink: 0;\n align-items: center;\n gap: 0.25rem;\n}\n.ls-shortcutdock,\n.ls-shortcutdock * {\n box-sizing: border-box;\n}\n.ls-shortcutdock {\n display: grid;\n width: 100%;\n align-content: start;\n gap: 0.5rem;\n overflow: auto;\n}\n.ls-shortcutdock--disabled {\n opacity: 0.55;\n}\n.ls-shortcutdock__empty {\n grid-column: 1 / -1;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 1rem;\n text-align: center;\n font-size: 0.875rem;\n color: var(--grey, var(--neutralLight3, #9392a1));\n}\n.ls-shortcutdock__cell {\n position: relative;\n min-width: 0;\n}\n.ls-shortcutdock__btn {\n display: flex;\n height: 100%;\n width: 100%;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 0.25rem;\n cursor: pointer;\n border-radius: 0.75rem;\n border: 1px solid color-mix(in srgb, var(--white, #fff) 12%, transparent);\n background-color: transparent;\n padding: 0.25rem;\n font: inherit;\n color: var(--white, #fff);\n box-shadow: inset 0 -2px 0 var(--ls-shortcutdock-accent-soft, transparent) !important;\n transition:\n background-color 150ms ease,\n border-color 150ms ease,\n opacity 150ms ease;\n}\n.ls-shortcutdock__btn:hover {\n border-color: color-mix(in srgb, var(--white, #fff) 20%, transparent);\n background-color: color-mix(in srgb, var(--white, #fff) 7%, transparent);\n}\n.ls-shortcutdock__btn--selected,\n.ls-shortcutdock__btn--selected:hover {\n border-color: var(--primary, #ff4076);\n}\n.ls-shortcutdock__btn:disabled {\n cursor: not-allowed;\n opacity: 0.5;\n}\n.ls-shortcutdock--readonly .ls-shortcutdock__btn {\n cursor: default;\n}\n.ls-shortcutdock--readonly .ls-shortcutdock__btn:hover {\n border-color: color-mix(in srgb, var(--white, #fff) 10%, transparent);\n background-color: color-mix(in srgb, var(--white, #fff) 3%, transparent);\n}\n.ls-shortcutdock__icon {\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 1.15rem;\n line-height: 1;\n}\n.ls-shortcutdock__btn--lg .ls-shortcutdock__icon {\n font-size: 1.5rem;\n}\n.ls-shortcutdock__btn-image {\n width: 1.5rem;\n height: 1.5rem;\n flex-shrink: 0;\n border-radius: 0.375rem;\n object-fit: cover;\n}\n.ls-shortcutdock__btn--lg .ls-shortcutdock__btn-image {\n width: 2rem;\n height: 2rem;\n}\n.ls-shortcutdock__btn--icon-only .ls-shortcutdock__btn-image {\n width: 60%;\n height: 60%;\n border-radius: 0.5rem;\n}\n.ls-shortcutdock__label {\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 2;\n overflow: hidden;\n padding-inline: 0.125rem;\n text-align: center;\n font-size: 0.625rem;\n font-weight: 600;\n line-height: 1.2;\n color: color-mix(in srgb, var(--white, #fff) 90%, transparent);\n}\n.ls-shortcutdock__btn--icon-only {\n font-size: clamp(1rem, 1.4vw, 1.5rem);\n font-weight: 700;\n}\n.ls-shortcutdock__btn--icon-only .ls-shortcutdock__icon {\n width: 100%;\n height: 100%;\n font-size: inherit;\n}\n.ls-shortcutdock__btn--icon-only .ls-shortcutdock__icon svg {\n width: 60%;\n height: 60%;\n}\n.ls-shortcutdock__remove {\n position: absolute;\n top: -0.375rem;\n right: -0.375rem;\n z-index: 1;\n display: flex;\n height: 1.25rem;\n width: 1.25rem;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n border: none;\n border-radius: 9999px;\n background-color: var(--error, #fd5454);\n padding: 0;\n font: inherit;\n font-size: 0.75rem;\n line-height: 1;\n color: var(--white, #fff);\n box-shadow: 0 1px 3px color-mix(in srgb, var(--black, #000) 30%, transparent);\n transition: opacity 120ms ease;\n}\n.ls-shortcutdock__remove:hover {\n opacity: 0.8;\n}\n.ls-shortcutdock__add {\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n border-radius: 0.75rem;\n border: 1px dashed color-mix(in srgb, var(--white, #fff) 20%, transparent);\n background: transparent;\n padding: 0.25rem;\n font: inherit;\n font-size: 1.5rem;\n color: var(--grey, var(--neutralLight3, #9392a1));\n transition: border-color 150ms ease, color 150ms ease;\n}\n.ls-shortcutdock__add:hover {\n border-color: color-mix(in srgb, var(--white, #fff) 40%, transparent);\n color: var(--white, #fff);\n}\n.ls-goals,\n.ls-goals * {\n box-sizing: border-box;\n}\n.ls-goals {\n display: flex;\n width: 100%;\n flex-direction: column;\n gap: 1rem;\n}\n.ls-goals__empty {\n font-size: 0.875rem;\n color: var(--grey, var(--neutralLight3, #9392a1));\n}\n.ls-goals__head {\n display: flex;\n align-items: baseline;\n gap: 0.375rem;\n font-size: 0.875rem;\n}\n.ls-goals__icon {\n display: flex;\n align-self: center;\n align-items: center;\n line-height: 1;\n}\n.ls-goals__label {\n flex: 1;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n font-weight: 600;\n color: var(--white, #fff);\n}\n.ls-goals__value {\n flex-shrink: 0;\n color: var(--grey, var(--neutralLight3, #9392a1));\n}\n.ls-goals__target {\n opacity: 0.6;\n}\n.ls-goals__bar {\n margin-top: 0.375rem;\n height: 0.625rem;\n width: 100%;\n overflow: hidden;\n border-radius: 9999px;\n background-color: color-mix(in srgb, var(--white, #fff) 10%, transparent);\n}\n.ls-goals__fill {\n height: 100%;\n border-radius: 9999px;\n background-image:\n linear-gradient(\n 90deg,\n color-mix(in srgb, var(--ls-goals-accent, var(--primary, #ff4076)) 80%, transparent),\n var(--ls-goals-accent, var(--primary, #ff4076)));\n transition: width 700ms ease-out;\n}\n.ls-goals__percent {\n flex-shrink: 0;\n min-width: 2.75rem;\n text-align: right;\n font-weight: 700;\n font-variant-numeric: tabular-nums;\n color: var(--ls-goals-accent, var(--primary, #ff4076));\n}\n.ls-platform-icon {\n display: inline-block;\n height: 1.15em;\n width: auto;\n max-width: 1.5em;\n vertical-align: middle;\n object-fit: contain;\n}\n.ls-chatbox__platform-option {\n display: inline-flex;\n align-items: center;\n gap: 0.5rem;\n min-width: 0;\n}\n.ls-shortcutdock__btn--colored {\n border-color: color-mix(in srgb, var(--ls-shortcutdock-accent, var(--white, #fff)) 70%, transparent);\n box-shadow: inset 0 -2px 0 var(--ls-shortcutdock-accent-soft, transparent);\n}\n.ls-shortcutdock__btn--colored:hover {\n border-color: var(--ls-shortcutdock-accent, var(--white, #fff));\n background-color: color-mix(in srgb, var(--ls-shortcutdock-accent, var(--white, #fff)) 12%, transparent);\n}\n.ls-widget {\n position: relative;\n display: flex;\n height: 100%;\n flex-direction: column;\n overflow: hidden;\n border-radius: var(--radius, 1rem);\n border: 1px solid color-mix(in srgb, var(--cardborder, #393853) 50%, transparent);\n background-image: var(--gradientBg, linear-gradient(180deg, #1b1834 0%, #151230 100%));\n background-color: var(--background, #151230);\n color: var(--white, var(--neutralLight1, #fff));\n}\n.ls-widget__header {\n position: relative;\n display: flex;\n min-height: 2.75rem;\n width: 100%;\n flex-shrink: 0;\n align-items: center;\n gap: 0.5rem;\n border-bottom: 1px solid color-mix(in srgb, var(--white, #fff) 10%, transparent);\n padding-inline: 0.5rem;\n}\n.ls-widget__side {\n display: flex;\n z-index: 10;\n align-items: center;\n gap: 0.25rem;\n}\n.ls-widget__side--right {\n margin-left: auto;\n}\n.ls-widget__title {\n position: absolute;\n left: 50%;\n top: 50%;\n transform: translate(-50%, -50%);\n pointer-events: none;\n display: flex;\n align-items: center;\n justify-content: center;\n text-align: center;\n font-size: 0.875rem;\n font-weight: 600;\n letter-spacing: 0.025em;\n white-space: nowrap;\n}\n.ls-widget__btn {\n display: flex;\n height: 2rem;\n width: 2rem;\n flex-shrink: 0;\n cursor: pointer;\n align-items: center;\n justify-content: center;\n border: 0;\n border-radius: 0.375rem;\n background-color: color-mix(in srgb, var(--white, #fff) 5%, transparent);\n color: color-mix(in srgb, var(--white, #fff) 70%, transparent);\n font: inherit;\n transition: background-color 150ms ease, color 150ms ease;\n}\n.ls-widget__btn:hover {\n background-color: color-mix(in srgb, var(--white, #fff) 10%, transparent);\n color: var(--white, #fff);\n}\n.ls-widget__btn--active {\n background-color: color-mix(in srgb, var(--primary, #ff4076) 20%, transparent);\n color: var(--primary, #ff4076);\n}\n.ls-widget__btn--active:hover {\n background-color: color-mix(in srgb, var(--primary, #ff4076) 30%, transparent);\n color: var(--primary, #ff4076);\n}\n.ls-widget__btn svg {\n height: 1rem;\n width: 1rem;\n}\n.ls-widget__body {\n display: flex;\n min-height: 0;\n flex: 1;\n flex-direction: column;\n overflow: auto;\n}\n");
|
|
25
25
|
|
|
26
26
|
// src/components/LSButton/LSButton.tsx
|
|
27
27
|
import Button from "@mui/material/Button";
|
|
@@ -39,6 +39,7 @@ var LSButton = ({
|
|
|
39
39
|
className,
|
|
40
40
|
sx,
|
|
41
41
|
style,
|
|
42
|
+
noSvgColorOverride,
|
|
42
43
|
...props
|
|
43
44
|
}) => {
|
|
44
45
|
const resolvedColor = color ?? (primary ? "primary" : "primary");
|
|
@@ -64,7 +65,8 @@ var LSButton = ({
|
|
|
64
65
|
...secondaryOutlinedStyles ? [secondaryOutlinedStyles] : []
|
|
65
66
|
],
|
|
66
67
|
className: classNames(
|
|
67
|
-
"mui-ls-button cursor-pointer rounded-2xl pb-1.5 pt-1.5 hover:opacity-80
|
|
68
|
+
"mui-ls-button cursor-pointer rounded-2xl pb-1.5 pt-1.5 hover:opacity-80",
|
|
69
|
+
!noSvgColorOverride && "svg-current-color",
|
|
68
70
|
extended ? "pl-12 pr-12 mui-ls-button--extended" : "pl-6 pr-6",
|
|
69
71
|
`mui-ls-button--${resolvedColor}`,
|
|
70
72
|
`mui-ls-button--${variant}`,
|
|
@@ -93,7 +95,12 @@ var LSInput = forwardRef(
|
|
|
93
95
|
inputAfterText,
|
|
94
96
|
maxWidth,
|
|
95
97
|
className = "",
|
|
98
|
+
inputRef: inputRefProp,
|
|
99
|
+
inputProps: htmlInputPropsProp,
|
|
100
|
+
InputProps: inputPropsProp,
|
|
101
|
+
InputLabelProps: inputLabelPropsProp,
|
|
96
102
|
slotProps: slotPropsProp,
|
|
103
|
+
showborder,
|
|
97
104
|
onChange,
|
|
98
105
|
onChangeStart,
|
|
99
106
|
onChangeEnd,
|
|
@@ -104,6 +111,7 @@ var LSInput = forwardRef(
|
|
|
104
111
|
style,
|
|
105
112
|
centerText,
|
|
106
113
|
$noMinHeight,
|
|
114
|
+
color,
|
|
107
115
|
bypasscolor,
|
|
108
116
|
textColor,
|
|
109
117
|
fullWidth = true,
|
|
@@ -130,21 +138,24 @@ var LSInput = forwardRef(
|
|
|
130
138
|
const callerInputSlot = slotPropsProp?.input ?? {};
|
|
131
139
|
const callerHtmlInputSlot = slotPropsProp?.htmlInput ?? {};
|
|
132
140
|
const callerInputLabelSlot = slotPropsProp?.inputLabel ?? {};
|
|
133
|
-
const resolvedStartAdornment = callerInputSlot.startAdornment ?? (startAdornment ? /* @__PURE__ */ jsx2(InputAdornment, { position: "start", children: startAdornment }) : inputBeforeText ? /* @__PURE__ */ jsx2(InputAdornment, { position: "start", children: /* @__PURE__ */ jsx2("span", { className: "mui-ls-input-affix", children: inputBeforeText }) }) : void 0);
|
|
134
|
-
const resolvedEndAdornment = callerInputSlot.endAdornment ?? (endAdornment ? /* @__PURE__ */ jsx2(InputAdornment, { position: "end", children: endAdornment }) : inputAfterText ? /* @__PURE__ */ jsx2(InputAdornment, { position: "end", children: /* @__PURE__ */ jsx2("span", { className: "mui-ls-input-affix", children: inputAfterText }) }) : void 0);
|
|
141
|
+
const resolvedStartAdornment = inputPropsProp?.startAdornment ?? callerInputSlot.startAdornment ?? (startAdornment ? /* @__PURE__ */ jsx2(InputAdornment, { position: "start", children: startAdornment }) : inputBeforeText ? /* @__PURE__ */ jsx2(InputAdornment, { position: "start", children: /* @__PURE__ */ jsx2("span", { className: "mui-ls-input-affix", children: inputBeforeText }) }) : void 0);
|
|
142
|
+
const resolvedEndAdornment = inputPropsProp?.endAdornment ?? callerInputSlot.endAdornment ?? (endAdornment ? /* @__PURE__ */ jsx2(InputAdornment, { position: "end", children: endAdornment }) : inputAfterText ? /* @__PURE__ */ jsx2(InputAdornment, { position: "end", children: /* @__PURE__ */ jsx2("span", { className: "mui-ls-input-affix", children: inputAfterText }) }) : void 0);
|
|
135
143
|
const helperContent = helperText ?? (typeof error === "string" ? error : "");
|
|
136
144
|
const hasError = typeof error === "string" ? true : Boolean(error);
|
|
137
145
|
const resolvedMaxWidth = maxWidth ?? style?.maxWidth;
|
|
146
|
+
const resolvedColor = color ?? bypasscolor;
|
|
138
147
|
const valueProps = hasExplicitValue ? { value: normalizedValue } : {};
|
|
139
148
|
const slotProps = {
|
|
140
149
|
...slotPropsProp ?? {},
|
|
141
150
|
input: {
|
|
142
151
|
...callerInputSlot,
|
|
152
|
+
...inputPropsProp ?? {},
|
|
143
153
|
startAdornment: resolvedStartAdornment,
|
|
144
154
|
endAdornment: resolvedEndAdornment,
|
|
145
|
-
readOnly: rest.readOnly ?? callerInputSlot.readOnly,
|
|
155
|
+
readOnly: rest.readOnly ?? inputPropsProp?.readOnly ?? callerInputSlot.readOnly,
|
|
146
156
|
sx: {
|
|
147
157
|
...callerInputSlot.sx ?? {},
|
|
158
|
+
...inputPropsProp?.sx ?? {},
|
|
148
159
|
"& input, & textarea": {
|
|
149
160
|
textAlign: centerText ? "center" : void 0,
|
|
150
161
|
color: textColor ?? void 0
|
|
@@ -153,10 +164,12 @@ var LSInput = forwardRef(
|
|
|
153
164
|
},
|
|
154
165
|
inputLabel: {
|
|
155
166
|
shrink: true,
|
|
156
|
-
...callerInputLabelSlot
|
|
167
|
+
...callerInputLabelSlot,
|
|
168
|
+
...inputLabelPropsProp ?? {}
|
|
157
169
|
},
|
|
158
170
|
htmlInput: {
|
|
159
|
-
...callerHtmlInputSlot
|
|
171
|
+
...callerHtmlInputSlot,
|
|
172
|
+
...htmlInputPropsProp ?? {}
|
|
160
173
|
}
|
|
161
174
|
};
|
|
162
175
|
const TextFieldComponent = TextField;
|
|
@@ -180,11 +193,11 @@ var LSInput = forwardRef(
|
|
|
180
193
|
size: rest.size,
|
|
181
194
|
margin: "dense",
|
|
182
195
|
variant: "outlined",
|
|
183
|
-
color:
|
|
196
|
+
color: resolvedColor === "default" || resolvedColor === "inherit" ? "primary" : resolvedColor,
|
|
184
197
|
fullWidth,
|
|
185
198
|
onChange: handleChange,
|
|
186
199
|
slotProps,
|
|
187
|
-
inputRef: ref,
|
|
200
|
+
inputRef: ref ?? inputRefProp,
|
|
188
201
|
helperText: helperContent,
|
|
189
202
|
error: hasError
|
|
190
203
|
}
|
|
@@ -376,21 +389,52 @@ var LSSliderInput = ({
|
|
|
376
389
|
};
|
|
377
390
|
LSSliderInput.displayName = "LSSliderInput";
|
|
378
391
|
|
|
392
|
+
// src/components/LSSwitch/LSSwitch.tsx
|
|
393
|
+
import MatSwitch from "@mui/material/Switch";
|
|
394
|
+
import { forwardRef as forwardRef2 } from "react";
|
|
395
|
+
import { jsx as jsx4 } from "react/jsx-runtime";
|
|
396
|
+
var LSSwitch = forwardRef2(({ slotProps, ...rest }, ref) => /* @__PURE__ */ jsx4(
|
|
397
|
+
MatSwitch,
|
|
398
|
+
{
|
|
399
|
+
sx: {
|
|
400
|
+
"& .MuiSwitch-switchBase.Mui-checked+.MuiSwitch-track": { backgroundColor: "var(--white, #ffffff)", opacity: 1 },
|
|
401
|
+
"& .MuiSwitch-switchBase": { color: "var(--primaryDark, #923553)" },
|
|
402
|
+
"& .MuiSwitch-switchBase.Mui-checked": { color: "var(--primary, #FF4076)" }
|
|
403
|
+
},
|
|
404
|
+
...rest,
|
|
405
|
+
slotProps: {
|
|
406
|
+
...slotProps,
|
|
407
|
+
input: {
|
|
408
|
+
...slotProps?.input ?? {},
|
|
409
|
+
ref
|
|
410
|
+
}
|
|
411
|
+
}
|
|
412
|
+
}
|
|
413
|
+
));
|
|
414
|
+
LSSwitch.displayName = "LSSwitch";
|
|
415
|
+
|
|
379
416
|
// src/components/LSSelect/LSSelect.tsx
|
|
380
417
|
import FormControl2 from "@mui/material/FormControl";
|
|
381
418
|
import InputLabel from "@mui/material/InputLabel";
|
|
382
419
|
import Select from "@mui/material/Select";
|
|
383
|
-
import
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
420
|
+
import Tooltip from "@mui/material/Tooltip";
|
|
421
|
+
import { forwardRef as forwardRef3 } from "react";
|
|
422
|
+
import { jsx as jsx5, jsxs as jsxs2 } from "react/jsx-runtime";
|
|
423
|
+
var InfoIcon = () => /* @__PURE__ */ jsx5("svg", { width: "14", height: "14", viewBox: "0 0 14 14", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: /* @__PURE__ */ jsx5(
|
|
424
|
+
"path",
|
|
425
|
+
{
|
|
426
|
+
d: "M7 0C3.1402 0 0 3.1402 0 7C0 10.8598 3.1402 14 7 14C10.8598 14 14 10.8598 14 7C14 3.1402 10.8598 0 7 0ZM7.7 11.2H6.3V9.8H7.7V11.2ZM8.3832 7.7805C8.246 7.8911 8.1137 7.9968 8.0087 8.1018C7.7231 8.3867 7.7007 8.6457 7.7 8.6569V8.75H6.3V8.6331C6.3 8.5505 6.3203 7.8092 7.0182 7.1113C7.1547 6.9748 7.3241 6.8362 7.5019 6.692C8.0157 6.2755 8.3531 5.9717 8.3531 5.5531C8.34497 5.19947 8.19875 4.86308 7.94574 4.61588C7.69273 4.36869 7.35303 4.23034 6.99931 4.23043C6.64559 4.23052 6.30595 4.36905 6.05307 4.61637C5.80019 4.8637 5.65415 5.20017 5.6462 5.5538H4.2462C4.2462 4.0355 5.4817 2.8 7 2.8C8.5183 2.8 9.7538 4.0355 9.7538 5.5538C9.7538 6.6717 8.9285 7.3388 8.3832 7.7805Z",
|
|
427
|
+
fill: "#CAC9D5"
|
|
428
|
+
}
|
|
429
|
+
) });
|
|
430
|
+
var LSSelect = forwardRef3(({ className = "", style, ...props }, ref) => {
|
|
389
431
|
const {
|
|
390
432
|
placeholder,
|
|
433
|
+
info,
|
|
434
|
+
inputRef: inputRefProp,
|
|
391
435
|
displayEmpty: displayEmptyProp,
|
|
392
436
|
renderValue: renderValueProp,
|
|
393
|
-
variant
|
|
437
|
+
variant = "outlined",
|
|
394
438
|
MenuProps,
|
|
395
439
|
...rest
|
|
396
440
|
} = props;
|
|
@@ -401,7 +445,7 @@ var LSSelect = ({
|
|
|
401
445
|
const value = rest.multiple === true ? Array.isArray(rest.value) ? rest.value : rest.value === void 0 || rest.value === null || rest.value === "" ? [] : [rest.value] : rest.value ?? "";
|
|
402
446
|
const renderValue = renderValueProp ?? (placeholderText ? (selected) => {
|
|
403
447
|
if (selected === "" || Array.isArray(selected) && selected.length === 0) {
|
|
404
|
-
return /* @__PURE__ */
|
|
448
|
+
return /* @__PURE__ */ jsx5("span", { style: { color: "var(--neutralLight3, var(--grey, #9392a1))" }, children: placeholderText });
|
|
405
449
|
}
|
|
406
450
|
return Array.isArray(selected) ? selected.join(", ") : selected;
|
|
407
451
|
} : void 0);
|
|
@@ -412,21 +456,21 @@ var LSSelect = ({
|
|
|
412
456
|
paper: {
|
|
413
457
|
...MenuProps?.slotProps?.paper ?? {},
|
|
414
458
|
sx: {
|
|
415
|
-
background: "var(--neutralDark2) !important",
|
|
416
|
-
backgroundColor: "var(--neutralDark2)",
|
|
417
|
-
color: "var(--neutralLight1)",
|
|
418
|
-
border: "1px solid var(--neutralDark4)",
|
|
459
|
+
background: "var(--neutralDark2, var(--cardbackground, #211f45)) !important",
|
|
460
|
+
backgroundColor: "var(--neutralDark2, var(--cardbackground, #211f45))",
|
|
461
|
+
color: "var(--neutralLight1, var(--white, #fff))",
|
|
462
|
+
border: "1px solid var(--neutralDark4, var(--cardborder, #393853))",
|
|
419
463
|
borderRadius: "var(--radius, 1rem)",
|
|
420
464
|
boxShadow: "0 16px 32px rgba(0, 0, 0, 0.32)",
|
|
421
465
|
"& .MuiList-root": {
|
|
422
|
-
backgroundColor: "var(--neutralDark2)"
|
|
466
|
+
backgroundColor: "var(--neutralDark2, var(--cardbackground, #211f45))"
|
|
423
467
|
},
|
|
424
468
|
"& .MuiListSubheader-root": {
|
|
425
|
-
backgroundColor: "var(--neutralDark1)",
|
|
426
|
-
color: "var(--neutralLight2)"
|
|
469
|
+
backgroundColor: "var(--neutralDark1, var(--darkerbg, #18162f))",
|
|
470
|
+
color: "var(--neutralLight2, var(--white2, #cac9d5))"
|
|
427
471
|
},
|
|
428
472
|
"& .MuiMenuItem-root": {
|
|
429
|
-
color: "var(--neutralLight1)"
|
|
473
|
+
color: "var(--neutralLight1, var(--white, #fff))"
|
|
430
474
|
},
|
|
431
475
|
...MenuProps?.slotProps?.paper?.sx
|
|
432
476
|
}
|
|
@@ -434,8 +478,8 @@ var LSSelect = ({
|
|
|
434
478
|
list: {
|
|
435
479
|
...MenuProps?.slotProps?.list ?? {},
|
|
436
480
|
sx: {
|
|
437
|
-
backgroundColor: "var(--neutralDark2)",
|
|
438
|
-
color: "var(--neutralLight1)",
|
|
481
|
+
backgroundColor: "var(--neutralDark2, var(--cardbackground, #211f45))",
|
|
482
|
+
color: "var(--neutralLight1, var(--white, #fff))",
|
|
439
483
|
...MenuProps?.slotProps?.list?.sx
|
|
440
484
|
}
|
|
441
485
|
}
|
|
@@ -455,42 +499,50 @@ var LSSelect = ({
|
|
|
455
499
|
size: rest.size,
|
|
456
500
|
style,
|
|
457
501
|
children: [
|
|
458
|
-
props.label && /* @__PURE__ */
|
|
459
|
-
|
|
502
|
+
props.label && /* @__PURE__ */ jsxs2(InputLabel, { shrink: true, id: labelId, children: [
|
|
503
|
+
props.label,
|
|
504
|
+
info && /* @__PURE__ */ jsx5(Tooltip, { title: info, placement: "right", children: /* @__PURE__ */ jsx5("span", { style: { display: "inline-flex", alignItems: "center", cursor: "pointer" }, children: /* @__PURE__ */ jsx5(InfoIcon, {}) }) })
|
|
505
|
+
] }),
|
|
506
|
+
/* @__PURE__ */ jsx5(
|
|
460
507
|
Select,
|
|
461
508
|
{
|
|
462
509
|
MenuProps: mergedMenuProps,
|
|
463
510
|
className: "mui-ls-select",
|
|
464
|
-
variant: "outlined",
|
|
465
511
|
labelId,
|
|
466
512
|
label: props.label,
|
|
467
513
|
displayEmpty,
|
|
468
514
|
renderValue,
|
|
515
|
+
variant,
|
|
469
516
|
...rest,
|
|
470
517
|
value,
|
|
518
|
+
inputRef: ref ?? inputRefProp,
|
|
471
519
|
children: props.children
|
|
472
520
|
}
|
|
473
521
|
)
|
|
474
522
|
]
|
|
475
523
|
}
|
|
476
524
|
);
|
|
477
|
-
};
|
|
525
|
+
});
|
|
478
526
|
LSSelect.displayName = "LSSelect";
|
|
479
527
|
|
|
528
|
+
// src/components/LSSelect/index.ts
|
|
529
|
+
import { default as default2 } from "@mui/material/MenuItem";
|
|
530
|
+
import { default as default3 } from "@mui/material/ListSubheader";
|
|
531
|
+
|
|
480
532
|
// src/components/LSCheckbox/LSCheckbox.tsx
|
|
481
533
|
import Checkbox from "@mui/material/Checkbox";
|
|
482
534
|
import FormControlLabel from "@mui/material/FormControlLabel";
|
|
483
|
-
import { forwardRef as
|
|
535
|
+
import { forwardRef as forwardRef4 } from "react";
|
|
484
536
|
import { useController, useFormContext } from "react-hook-form";
|
|
485
537
|
import classNames4 from "classnames";
|
|
486
|
-
import { Fragment, jsx as
|
|
487
|
-
var LSCheckbox =
|
|
538
|
+
import { Fragment, jsx as jsx6 } from "react/jsx-runtime";
|
|
539
|
+
var LSCheckbox = forwardRef4(({ className = "", checked, inputRef, slotProps, ...props }, ref) => {
|
|
488
540
|
const CheckboxComponent = Checkbox;
|
|
489
|
-
return /* @__PURE__ */
|
|
541
|
+
return /* @__PURE__ */ jsx6(
|
|
490
542
|
CheckboxComponent,
|
|
491
543
|
{
|
|
492
544
|
...props,
|
|
493
|
-
checked,
|
|
545
|
+
checked: checked ?? false,
|
|
494
546
|
className: classNames4("ls-checkbox", className, { "Mui-disabled": props.disabled }),
|
|
495
547
|
ref,
|
|
496
548
|
slotProps: {
|
|
@@ -515,8 +567,8 @@ function LSCheckboxField({
|
|
|
515
567
|
}) {
|
|
516
568
|
const formContext = useFormContext();
|
|
517
569
|
const resolvedControl = control ?? formContext?.control;
|
|
518
|
-
if (!resolvedControl) return /* @__PURE__ */
|
|
519
|
-
return /* @__PURE__ */
|
|
570
|
+
if (!resolvedControl) return /* @__PURE__ */ jsx6(Fragment, {});
|
|
571
|
+
return /* @__PURE__ */ jsx6(
|
|
520
572
|
LSCheckboxFieldInner,
|
|
521
573
|
{
|
|
522
574
|
name,
|
|
@@ -539,13 +591,13 @@ function LSCheckboxFieldInner({
|
|
|
539
591
|
checkboxProps
|
|
540
592
|
}) {
|
|
541
593
|
const { field } = useController({ name, control });
|
|
542
|
-
return /* @__PURE__ */
|
|
594
|
+
return /* @__PURE__ */ jsx6(
|
|
543
595
|
FormControlLabel,
|
|
544
596
|
{
|
|
545
597
|
className: classNames4("ls-checkbox-row", className),
|
|
546
598
|
labelPlacement,
|
|
547
599
|
disabled,
|
|
548
|
-
control: /* @__PURE__ */
|
|
600
|
+
control: /* @__PURE__ */ jsx6(
|
|
549
601
|
LSCheckbox,
|
|
550
602
|
{
|
|
551
603
|
...checkboxProps,
|
|
@@ -565,7 +617,7 @@ function LSCheckboxFieldInner({
|
|
|
565
617
|
// src/components/LSColorPicker/LSColorPicker.tsx
|
|
566
618
|
import { useEffect as useEffect2, useRef, useState as useState2 } from "react";
|
|
567
619
|
import GradientColorPicker from "react-best-gradient-color-picker";
|
|
568
|
-
import { jsx as
|
|
620
|
+
import { jsx as jsx7, jsxs as jsxs3 } from "react/jsx-runtime";
|
|
569
621
|
var DEFAULT_COLOR = "#ff4076";
|
|
570
622
|
var LSColorPicker = ({ value = DEFAULT_COLOR, onChange, onBlur, className, name, label, helperText, placeholder, hideGradientControls = false, usePopup = false, disabled = false }) => {
|
|
571
623
|
const isPopupMode = usePopup === true;
|
|
@@ -603,7 +655,7 @@ var LSColorPicker = ({ value = DEFAULT_COLOR, onChange, onBlur, className, name,
|
|
|
603
655
|
if (!node) return void 0;
|
|
604
656
|
const updateWidth = () => {
|
|
605
657
|
const nextWidth = Math.max(node.clientWidth - 16, 220);
|
|
606
|
-
setPickerWidth(nextWidth);
|
|
658
|
+
setPickerWidth((prev) => prev === nextWidth ? prev : nextWidth);
|
|
607
659
|
};
|
|
608
660
|
updateWidth();
|
|
609
661
|
const observer = new ResizeObserver(() => {
|
|
@@ -642,7 +694,7 @@ var LSColorPicker = ({ value = DEFAULT_COLOR, onChange, onBlur, className, name,
|
|
|
642
694
|
overflow: "visible"
|
|
643
695
|
},
|
|
644
696
|
children: [
|
|
645
|
-
/* @__PURE__ */
|
|
697
|
+
/* @__PURE__ */ jsx7(
|
|
646
698
|
LSInput,
|
|
647
699
|
{
|
|
648
700
|
className: "ls-color-picker__input",
|
|
@@ -654,7 +706,7 @@ var LSColorPicker = ({ value = DEFAULT_COLOR, onChange, onBlur, className, name,
|
|
|
654
706
|
onBlur,
|
|
655
707
|
placeholder,
|
|
656
708
|
disabled,
|
|
657
|
-
endAdornment: /* @__PURE__ */
|
|
709
|
+
endAdornment: /* @__PURE__ */ jsx7(
|
|
658
710
|
"button",
|
|
659
711
|
{
|
|
660
712
|
type: "button",
|
|
@@ -667,12 +719,12 @@ var LSColorPicker = ({ value = DEFAULT_COLOR, onChange, onBlur, className, name,
|
|
|
667
719
|
)
|
|
668
720
|
}
|
|
669
721
|
),
|
|
670
|
-
showPicker && /* @__PURE__ */
|
|
722
|
+
showPicker && /* @__PURE__ */ jsx7(
|
|
671
723
|
"div",
|
|
672
724
|
{
|
|
673
725
|
className: isPopupMode ? "ls-color-picker__picker ls-color-picker__picker--popup" : "ls-color-picker__picker ls-color-picker__picker--inline",
|
|
674
726
|
style: pickerContainerStyle,
|
|
675
|
-
children: /* @__PURE__ */
|
|
727
|
+
children: /* @__PURE__ */ jsx7(
|
|
676
728
|
GradientColorPicker,
|
|
677
729
|
{
|
|
678
730
|
hidePresets: true,
|
|
@@ -721,8 +773,8 @@ var LSColorPicker = ({ value = DEFAULT_COLOR, onChange, onBlur, className, name,
|
|
|
721
773
|
};
|
|
722
774
|
|
|
723
775
|
// src/components/LSDatePicker/LSDatePicker.tsx
|
|
724
|
-
import { forwardRef as
|
|
725
|
-
import { jsx as
|
|
776
|
+
import { forwardRef as forwardRef5 } from "react";
|
|
777
|
+
import { jsx as jsx8 } from "react/jsx-runtime";
|
|
726
778
|
var toDateTimeLocalValue = (value) => {
|
|
727
779
|
if (!value) return "";
|
|
728
780
|
const date = new Date(value);
|
|
@@ -734,7 +786,7 @@ var fromDateTimeLocalValue = (value) => {
|
|
|
734
786
|
if (!value) return "";
|
|
735
787
|
return new Date(value).toISOString();
|
|
736
788
|
};
|
|
737
|
-
var LSDatePicker =
|
|
789
|
+
var LSDatePicker = forwardRef5(
|
|
738
790
|
({ value, onChange, onChangeStart, onChangeEnd, className, ...rest }, ref) => {
|
|
739
791
|
const handleChange = (event) => {
|
|
740
792
|
const nextValue = fromDateTimeLocalValue(event.target.value);
|
|
@@ -742,7 +794,7 @@ var LSDatePicker = forwardRef3(
|
|
|
742
794
|
onChange?.(event, nextValue);
|
|
743
795
|
onChangeEnd?.(event, nextValue);
|
|
744
796
|
};
|
|
745
|
-
return /* @__PURE__ */
|
|
797
|
+
return /* @__PURE__ */ jsx8(
|
|
746
798
|
LSInput,
|
|
747
799
|
{
|
|
748
800
|
...rest,
|
|
@@ -762,7 +814,7 @@ import { KeyboardArrowDown } from "@mui/icons-material";
|
|
|
762
814
|
import Autocomplete from "@mui/material/Autocomplete";
|
|
763
815
|
import TextField2 from "@mui/material/TextField";
|
|
764
816
|
import { memo, startTransition, useEffect as useEffect3, useMemo as useMemo2, useRef as useRef2, useState as useState3 } from "react";
|
|
765
|
-
import { jsx as
|
|
817
|
+
import { jsx as jsx9 } from "react/jsx-runtime";
|
|
766
818
|
var LSFontPicker = memo(function LSFontPicker2({
|
|
767
819
|
value,
|
|
768
820
|
onChange,
|
|
@@ -790,7 +842,7 @@ var LSFontPicker = memo(function LSFontPicker2({
|
|
|
790
842
|
onChangeRef.current = onChange;
|
|
791
843
|
}, [onLoadFonts, onChange]);
|
|
792
844
|
useEffect3(() => {
|
|
793
|
-
setInputValue(currentValue);
|
|
845
|
+
setInputValue((prev) => prev === currentValue ? prev : currentValue);
|
|
794
846
|
}, [currentValue]);
|
|
795
847
|
useEffect3(() => {
|
|
796
848
|
if (!currentValue || isAlertManager) return;
|
|
@@ -806,7 +858,7 @@ var LSFontPicker = memo(function LSFontPicker2({
|
|
|
806
858
|
onLoadFontsRef.current?.([nextValue]);
|
|
807
859
|
});
|
|
808
860
|
};
|
|
809
|
-
return /* @__PURE__ */
|
|
861
|
+
return /* @__PURE__ */ jsx9("div", { className: "ls-font-picker", children: /* @__PURE__ */ jsx9(
|
|
810
862
|
AutocompleteComponent,
|
|
811
863
|
{
|
|
812
864
|
freeSolo: true,
|
|
@@ -816,7 +868,7 @@ var LSFontPicker = memo(function LSFontPicker2({
|
|
|
816
868
|
options: combinedFonts,
|
|
817
869
|
value: currentValue,
|
|
818
870
|
inputValue,
|
|
819
|
-
popupIcon: /* @__PURE__ */
|
|
871
|
+
popupIcon: /* @__PURE__ */ jsx9(KeyboardArrowDown, {}),
|
|
820
872
|
isOptionEqualToValue: (option, selectedValue) => option === selectedValue,
|
|
821
873
|
onChange: (_event, newValue) => {
|
|
822
874
|
handleValueChange(typeof newValue === "string" ? newValue : `${newValue ?? ""}`);
|
|
@@ -858,7 +910,7 @@ var LSFontPicker = memo(function LSFontPicker2({
|
|
|
858
910
|
noOptionsText: "No fonts found",
|
|
859
911
|
renderOption: (props, option) => {
|
|
860
912
|
const { key, ...optionProps } = props;
|
|
861
|
-
return /* @__PURE__ */
|
|
913
|
+
return /* @__PURE__ */ jsx9(
|
|
862
914
|
"li",
|
|
863
915
|
{
|
|
864
916
|
...optionProps,
|
|
@@ -877,7 +929,7 @@ var LSFontPicker = memo(function LSFontPicker2({
|
|
|
877
929
|
},
|
|
878
930
|
renderInput: (params) => {
|
|
879
931
|
const { slotProps: paramsSlotProps = {}, ...restParams } = params;
|
|
880
|
-
return /* @__PURE__ */
|
|
932
|
+
return /* @__PURE__ */ jsx9(
|
|
881
933
|
TextFieldComponent,
|
|
882
934
|
{
|
|
883
935
|
...restParams,
|
|
@@ -914,7 +966,7 @@ var LSFontPicker = memo(function LSFontPicker2({
|
|
|
914
966
|
|
|
915
967
|
// src/components/LSMultiSelect/LSMultiSelect.tsx
|
|
916
968
|
import { MenuItem } from "@mui/material";
|
|
917
|
-
import { jsx as
|
|
969
|
+
import { jsx as jsx10, jsxs as jsxs4 } from "react/jsx-runtime";
|
|
918
970
|
var LSMultiSelect = ({
|
|
919
971
|
options,
|
|
920
972
|
placeholder = "Select...",
|
|
@@ -928,7 +980,7 @@ var LSMultiSelect = ({
|
|
|
928
980
|
} = event;
|
|
929
981
|
onChange(typeof value2 === "string" ? value2.split(",") : value2);
|
|
930
982
|
};
|
|
931
|
-
return /* @__PURE__ */
|
|
983
|
+
return /* @__PURE__ */ jsx10(
|
|
932
984
|
LSSelect,
|
|
933
985
|
{
|
|
934
986
|
multiple: true,
|
|
@@ -939,10 +991,10 @@ var LSMultiSelect = ({
|
|
|
939
991
|
onChange: handleChange,
|
|
940
992
|
displayEmpty: true,
|
|
941
993
|
renderValue: (selected) => /* @__PURE__ */ jsxs4("div", { className: "ls-multi-select-value", children: [
|
|
942
|
-
/* @__PURE__ */
|
|
994
|
+
/* @__PURE__ */ jsx10("div", { className: "ls-multi-select-value__label", children: selected.length > 0 ? selected.map(
|
|
943
995
|
(val) => options.find((opt) => opt.value === val)?.label ?? val
|
|
944
996
|
).join(", ") : placeholder }),
|
|
945
|
-
/* @__PURE__ */
|
|
997
|
+
/* @__PURE__ */ jsx10("div", { className: "ls-multi-select-value__count", children: `(${selected.length})` })
|
|
946
998
|
] }),
|
|
947
999
|
MenuProps: {
|
|
948
1000
|
// The previous version of this also set `PaperProps` here — that
|
|
@@ -993,7 +1045,7 @@ var LSMultiSelect = ({
|
|
|
993
1045
|
}
|
|
994
1046
|
},
|
|
995
1047
|
children: [
|
|
996
|
-
/* @__PURE__ */
|
|
1048
|
+
/* @__PURE__ */ jsx10(
|
|
997
1049
|
LSCheckbox,
|
|
998
1050
|
{
|
|
999
1051
|
checked: (value ?? []).includes(option.value),
|
|
@@ -1001,7 +1053,7 @@ var LSMultiSelect = ({
|
|
|
1001
1053
|
disableRipple: true
|
|
1002
1054
|
}
|
|
1003
1055
|
),
|
|
1004
|
-
/* @__PURE__ */
|
|
1056
|
+
/* @__PURE__ */ jsx10("span", { children: option.label })
|
|
1005
1057
|
]
|
|
1006
1058
|
},
|
|
1007
1059
|
option.value
|
|
@@ -1015,18 +1067,18 @@ import FormControlLabel2 from "@mui/material/FormControlLabel";
|
|
|
1015
1067
|
import Radio from "@mui/material/Radio";
|
|
1016
1068
|
import RadioGroup from "@mui/material/RadioGroup";
|
|
1017
1069
|
import classNames5 from "classnames";
|
|
1018
|
-
import { jsx as
|
|
1070
|
+
import { jsx as jsx11 } from "react/jsx-runtime";
|
|
1019
1071
|
var LSRadio = ({ className = "", ...props }) => {
|
|
1020
|
-
return /* @__PURE__ */
|
|
1072
|
+
return /* @__PURE__ */ jsx11(Radio, { ...props, className: classNames5("ls-radio", className) });
|
|
1021
1073
|
};
|
|
1022
1074
|
var LSRadioGroup = ({ selections, className = "", optionClassName = "", row, ...props }) => {
|
|
1023
|
-
return /* @__PURE__ */
|
|
1075
|
+
return /* @__PURE__ */ jsx11(RadioGroup, { ...props, row, className: classNames5("ls-radio-group", className, { row }), children: selections.map((selection) => /* @__PURE__ */ jsx11(
|
|
1024
1076
|
FormControlLabel2,
|
|
1025
1077
|
{
|
|
1026
1078
|
className: classNames5("ls-radio-row", optionClassName),
|
|
1027
1079
|
value: selection.value,
|
|
1028
1080
|
disabled: selection.disabled,
|
|
1029
|
-
control: /* @__PURE__ */
|
|
1081
|
+
control: /* @__PURE__ */ jsx11(LSRadio, {}),
|
|
1030
1082
|
label: selection.label
|
|
1031
1083
|
},
|
|
1032
1084
|
selection.value
|
|
@@ -1036,13 +1088,13 @@ LSRadioGroup.displayName = "LSRadioGroup";
|
|
|
1036
1088
|
|
|
1037
1089
|
// src/components/LSTextField/LSTextField.tsx
|
|
1038
1090
|
import TextField3 from "@mui/material/TextField";
|
|
1039
|
-
import { forwardRef as
|
|
1040
|
-
import { jsx as
|
|
1041
|
-
var LSTextField =
|
|
1091
|
+
import { forwardRef as forwardRef6 } from "react";
|
|
1092
|
+
import { jsx as jsx12 } from "react/jsx-runtime";
|
|
1093
|
+
var LSTextField = forwardRef6(
|
|
1042
1094
|
(props, ref) => {
|
|
1043
1095
|
const { slotProps, ...rest } = props;
|
|
1044
1096
|
const paramsInputLabel = slotProps?.inputLabel ?? {};
|
|
1045
|
-
return /* @__PURE__ */
|
|
1097
|
+
return /* @__PURE__ */ jsx12(
|
|
1046
1098
|
TextField3,
|
|
1047
1099
|
{
|
|
1048
1100
|
...rest,
|
|
@@ -1070,11 +1122,11 @@ import InputAdornment2 from "@mui/material/InputAdornment";
|
|
|
1070
1122
|
import Popover from "@mui/material/Popover";
|
|
1071
1123
|
import Search from "@mui/icons-material/Search";
|
|
1072
1124
|
import KeyboardArrowDown2 from "@mui/icons-material/KeyboardArrowDown";
|
|
1073
|
-
import
|
|
1125
|
+
import Tooltip2 from "@mui/material/Tooltip";
|
|
1074
1126
|
import {
|
|
1075
1127
|
Fragment as Fragment2,
|
|
1076
1128
|
createContext,
|
|
1077
|
-
forwardRef as
|
|
1129
|
+
forwardRef as forwardRef7,
|
|
1078
1130
|
useCallback as useCallback2,
|
|
1079
1131
|
useContext,
|
|
1080
1132
|
useEffect as useEffect4,
|
|
@@ -1082,14 +1134,14 @@ import {
|
|
|
1082
1134
|
useRef as useRef3,
|
|
1083
1135
|
useState as useState4
|
|
1084
1136
|
} from "react";
|
|
1085
|
-
import { Fragment as Fragment3, jsx as
|
|
1137
|
+
import { Fragment as Fragment3, jsx as jsx13, jsxs as jsxs5 } from "react/jsx-runtime";
|
|
1086
1138
|
import { createElement } from "react";
|
|
1087
1139
|
var LSVariableInputContext = createContext({});
|
|
1088
1140
|
var LSVariableInputProvider = ({
|
|
1089
1141
|
children,
|
|
1090
1142
|
value
|
|
1091
1143
|
}) => {
|
|
1092
|
-
return /* @__PURE__ */
|
|
1144
|
+
return /* @__PURE__ */ jsx13(LSVariableInputContext.Provider, { value, children });
|
|
1093
1145
|
};
|
|
1094
1146
|
var DEFAULT_FUNCTION_VARIABLES = [
|
|
1095
1147
|
"sum_variables",
|
|
@@ -1308,7 +1360,7 @@ var getVariableColorClass = (variableType, isSuggested) => {
|
|
|
1308
1360
|
return "ls-variable-token--custom";
|
|
1309
1361
|
};
|
|
1310
1362
|
var CHILD_VARIABLE_COLOR_CLASS = "ls-variable-token--child";
|
|
1311
|
-
var LSVariableInputField =
|
|
1363
|
+
var LSVariableInputField = forwardRef7((props, ref) => {
|
|
1312
1364
|
const context = useContext(LSVariableInputContext);
|
|
1313
1365
|
const {
|
|
1314
1366
|
name,
|
|
@@ -1785,8 +1837,8 @@ var LSVariableInputField = forwardRef5((props, ref) => {
|
|
|
1785
1837
|
{
|
|
1786
1838
|
className: `ls-variable-token ${getVariableColorClass(variableType, isSuggested)}`,
|
|
1787
1839
|
children: [
|
|
1788
|
-
/* @__PURE__ */
|
|
1789
|
-
variableType === "func" && /* @__PURE__ */
|
|
1840
|
+
/* @__PURE__ */ jsx13("span", { className: "ls-variable-token__name", children: `{{${variableName}}}` }),
|
|
1841
|
+
variableType === "func" && /* @__PURE__ */ jsx13(
|
|
1790
1842
|
"span",
|
|
1791
1843
|
{
|
|
1792
1844
|
className: "ls-variable-token__badge",
|
|
@@ -1797,7 +1849,7 @@ var LSVariableInputField = forwardRef5((props, ref) => {
|
|
|
1797
1849
|
]
|
|
1798
1850
|
}
|
|
1799
1851
|
);
|
|
1800
|
-
const renderExpandToggle = (path, expanded) => /* @__PURE__ */
|
|
1852
|
+
const renderExpandToggle = (path, expanded) => /* @__PURE__ */ jsx13(
|
|
1801
1853
|
"button",
|
|
1802
1854
|
{
|
|
1803
1855
|
type: "button",
|
|
@@ -1808,15 +1860,15 @@ var LSVariableInputField = forwardRef5((props, ref) => {
|
|
|
1808
1860
|
className: `ls-variable-picker__expand-toggle${expanded ? " ls-variable-picker__expand-toggle--expanded" : ""}`,
|
|
1809
1861
|
"aria-label": expanded ? "Collapse" : "Expand",
|
|
1810
1862
|
"aria-expanded": expanded,
|
|
1811
|
-
children: /* @__PURE__ */
|
|
1863
|
+
children: /* @__PURE__ */ jsx13(KeyboardArrowDown2, { style: { width: 16, height: 16 } })
|
|
1812
1864
|
}
|
|
1813
1865
|
);
|
|
1814
|
-
const renderExpandSpacer = () => /* @__PURE__ */
|
|
1866
|
+
const renderExpandSpacer = () => /* @__PURE__ */ jsx13("span", { className: "ls-variable-picker__expand-spacer", "aria-hidden": true });
|
|
1815
1867
|
const getVariableValuePreview = (variableValue) => {
|
|
1816
1868
|
const { displayValue, fullValue } = getVariableValueDisplay(variableValue);
|
|
1817
1869
|
return { displayValue, fullValue };
|
|
1818
1870
|
};
|
|
1819
|
-
const renderVariableValueInput = (displayValue, fullValue) => /* @__PURE__ */
|
|
1871
|
+
const renderVariableValueInput = (displayValue, fullValue) => /* @__PURE__ */ jsx13(
|
|
1820
1872
|
"input",
|
|
1821
1873
|
{
|
|
1822
1874
|
className: "ls-variable-picker__value-input",
|
|
@@ -1850,18 +1902,18 @@ var LSVariableInputField = forwardRef5((props, ref) => {
|
|
|
1850
1902
|
style: { paddingLeft: `${node.depth * 1.25}rem` },
|
|
1851
1903
|
children: [
|
|
1852
1904
|
node.isExpandable ? renderExpandToggle(fullToken, expanded) : renderExpandSpacer(),
|
|
1853
|
-
/* @__PURE__ */
|
|
1905
|
+
/* @__PURE__ */ jsx13(
|
|
1854
1906
|
"div",
|
|
1855
1907
|
{
|
|
1856
1908
|
className: `ls-variable-token ${CHILD_VARIABLE_COLOR_CLASS}`,
|
|
1857
|
-
children: /* @__PURE__ */
|
|
1909
|
+
children: /* @__PURE__ */ jsx13("span", { className: "ls-variable-token__name", children: `{{${fullToken}}}` })
|
|
1858
1910
|
}
|
|
1859
1911
|
)
|
|
1860
1912
|
]
|
|
1861
1913
|
}
|
|
1862
1914
|
),
|
|
1863
|
-
/* @__PURE__ */
|
|
1864
|
-
/* @__PURE__ */
|
|
1915
|
+
/* @__PURE__ */ jsx13("div", { className: "ls-variable-picker__description", children: node.displayKey }),
|
|
1916
|
+
/* @__PURE__ */ jsx13("div", { className: "ls-variable-picker__value", title: fullValue, children: renderVariableValueInput(displayValue, fullValue) })
|
|
1865
1917
|
]
|
|
1866
1918
|
}
|
|
1867
1919
|
),
|
|
@@ -1919,7 +1971,7 @@ var LSVariableInputField = forwardRef5((props, ref) => {
|
|
|
1919
1971
|
isSelected ? "ls-variable-option--selected" : ""
|
|
1920
1972
|
].filter(Boolean).join(" ")
|
|
1921
1973
|
},
|
|
1922
|
-
thumb ? /* @__PURE__ */
|
|
1974
|
+
thumb ? /* @__PURE__ */ jsx13(
|
|
1923
1975
|
"img",
|
|
1924
1976
|
{
|
|
1925
1977
|
src: thumb,
|
|
@@ -1928,23 +1980,23 @@ var LSVariableInputField = forwardRef5((props, ref) => {
|
|
|
1928
1980
|
}
|
|
1929
1981
|
) : null,
|
|
1930
1982
|
/* @__PURE__ */ jsxs5("div", { className: "ls-variable-option__body", children: [
|
|
1931
|
-
/* @__PURE__ */
|
|
1932
|
-
helperText ? /* @__PURE__ */
|
|
1983
|
+
/* @__PURE__ */ jsx13("div", { className: "ls-variable-option__label", children: resolveOptionLabel(opt) }),
|
|
1984
|
+
helperText ? /* @__PURE__ */ jsx13("div", { className: "ls-variable-option__helper", children: helperText }) : null
|
|
1933
1985
|
] })
|
|
1934
1986
|
);
|
|
1935
1987
|
};
|
|
1936
1988
|
const showSuggestedSection = shouldRenderPicker && allowedVariableNames.length > 0 && filteredAllowedVariables.length > 0;
|
|
1937
1989
|
const pickerBody = shouldRenderPicker ? /* @__PURE__ */ jsxs5("div", { className: "ls-variable-picker ls-variable-picker--three-col", children: [
|
|
1938
1990
|
/* @__PURE__ */ jsxs5("div", { className: "ls-variable-picker__intro", children: [
|
|
1939
|
-
/* @__PURE__ */
|
|
1991
|
+
/* @__PURE__ */ jsx13("div", { className: "ls-variable-picker__intro-text", children: t(
|
|
1940
1992
|
"overlay-variables.variables-description",
|
|
1941
1993
|
"Use variables that will automatically be replaced before sending out the text"
|
|
1942
1994
|
) }),
|
|
1943
|
-
/* @__PURE__ */
|
|
1995
|
+
/* @__PURE__ */ jsx13(
|
|
1944
1996
|
LSInput,
|
|
1945
1997
|
{
|
|
1946
1998
|
autoFocus: true,
|
|
1947
|
-
startAdornment: /* @__PURE__ */
|
|
1999
|
+
startAdornment: /* @__PURE__ */ jsx13(Search, { style: { color: "#fff", width: 20, height: 20 } }),
|
|
1948
2000
|
placeholder: t("common.search", "Search"),
|
|
1949
2001
|
value: searchQuery,
|
|
1950
2002
|
onChange: (e) => setSearchQuery(e.target.value),
|
|
@@ -1953,13 +2005,13 @@ var LSVariableInputField = forwardRef5((props, ref) => {
|
|
|
1953
2005
|
)
|
|
1954
2006
|
] }),
|
|
1955
2007
|
/* @__PURE__ */ jsxs5("div", { className: "ls-variable-picker__header", children: [
|
|
1956
|
-
/* @__PURE__ */
|
|
1957
|
-
/* @__PURE__ */
|
|
1958
|
-
/* @__PURE__ */
|
|
2008
|
+
/* @__PURE__ */ jsx13("div", { style: { paddingLeft: "2.2rem" }, children: t("commands.variable", "Variable") }),
|
|
2009
|
+
/* @__PURE__ */ jsx13("div", { children: t("commands.description", "Description") }),
|
|
2010
|
+
/* @__PURE__ */ jsx13("div", { children: t("common.value", "Value") })
|
|
1959
2011
|
] }),
|
|
1960
2012
|
/* @__PURE__ */ jsxs5("div", { className: "ls-variable-picker__list", children: [
|
|
1961
2013
|
showSuggestedSection && /* @__PURE__ */ jsxs5("fieldset", { className: "ls-variable-picker__field", children: [
|
|
1962
|
-
/* @__PURE__ */
|
|
2014
|
+
/* @__PURE__ */ jsx13("legend", { className: "ls-variable-picker__legend", children: t("commands.suggested-variables", "Suggested Variables") }),
|
|
1963
2015
|
filteredAllowedVariables.map((definition, idx) => {
|
|
1964
2016
|
const variableType = getAllowedVariableVisualType(
|
|
1965
2017
|
definition.name
|
|
@@ -1987,8 +2039,8 @@ var LSVariableInputField = forwardRef5((props, ref) => {
|
|
|
1987
2039
|
expandable ? renderExpandToggle(definition.name, expanded) : renderExpandSpacer(),
|
|
1988
2040
|
renderVariableToken(definition.name, variableType, true)
|
|
1989
2041
|
] }),
|
|
1990
|
-
/* @__PURE__ */
|
|
1991
|
-
/* @__PURE__ */
|
|
2042
|
+
/* @__PURE__ */ jsx13("div", { className: "ls-variable-picker__description", children: getAllowedVariableDescription(definition.name) }),
|
|
2043
|
+
/* @__PURE__ */ jsx13(
|
|
1992
2044
|
"div",
|
|
1993
2045
|
{
|
|
1994
2046
|
className: "ls-variable-picker__value",
|
|
@@ -2026,8 +2078,8 @@ var LSVariableInputField = forwardRef5((props, ref) => {
|
|
|
2026
2078
|
expandable ? renderExpandToggle(rootToken, expanded) : renderExpandSpacer(),
|
|
2027
2079
|
renderVariableToken(variable.name, variableType)
|
|
2028
2080
|
] }),
|
|
2029
|
-
/* @__PURE__ */
|
|
2030
|
-
/* @__PURE__ */
|
|
2081
|
+
/* @__PURE__ */ jsx13("div", { className: "ls-variable-picker__description", children: getSystemVariableDescription(variable) }),
|
|
2082
|
+
/* @__PURE__ */ jsx13("div", { className: "ls-variable-picker__value", title: fullValue, children: renderVariableValueInput(displayValue, fullValue) })
|
|
2031
2083
|
]
|
|
2032
2084
|
}
|
|
2033
2085
|
),
|
|
@@ -2036,7 +2088,7 @@ var LSVariableInputField = forwardRef5((props, ref) => {
|
|
|
2036
2088
|
})
|
|
2037
2089
|
] })
|
|
2038
2090
|
] }) : null;
|
|
2039
|
-
const textField = (params = {}) => /* @__PURE__ */
|
|
2091
|
+
const textField = (params = {}) => /* @__PURE__ */ jsx13(
|
|
2040
2092
|
VariableInputTextField,
|
|
2041
2093
|
{
|
|
2042
2094
|
t,
|
|
@@ -2063,7 +2115,7 @@ var LSVariableInputField = forwardRef5((props, ref) => {
|
|
|
2063
2115
|
}
|
|
2064
2116
|
);
|
|
2065
2117
|
return /* @__PURE__ */ jsxs5(Fragment3, { children: [
|
|
2066
|
-
/* @__PURE__ */
|
|
2118
|
+
/* @__PURE__ */ jsx13(
|
|
2067
2119
|
Popover,
|
|
2068
2120
|
{
|
|
2069
2121
|
anchorEl: containerRef.current,
|
|
@@ -2089,7 +2141,7 @@ var LSVariableInputField = forwardRef5((props, ref) => {
|
|
|
2089
2141
|
children: pickerBody
|
|
2090
2142
|
}
|
|
2091
2143
|
),
|
|
2092
|
-
isAutoComplete ? /* @__PURE__ */
|
|
2144
|
+
isAutoComplete ? /* @__PURE__ */ jsx13(
|
|
2093
2145
|
Autocomplete2,
|
|
2094
2146
|
{
|
|
2095
2147
|
disableClearable: true,
|
|
@@ -2189,7 +2241,7 @@ var LSVariableInputField = forwardRef5((props, ref) => {
|
|
|
2189
2241
|
] });
|
|
2190
2242
|
});
|
|
2191
2243
|
LSVariableInputField.displayName = "LSVariableInputField";
|
|
2192
|
-
var VariableInputTextField =
|
|
2244
|
+
var VariableInputTextField = forwardRef7(
|
|
2193
2245
|
({
|
|
2194
2246
|
t,
|
|
2195
2247
|
id,
|
|
@@ -2214,10 +2266,10 @@ var VariableInputTextField = forwardRef5(
|
|
|
2214
2266
|
const inputPropsSlotInput = inputProps?.slotProps?.input ?? {};
|
|
2215
2267
|
const paramsSlotInput = params?.slotProps?.input ?? {};
|
|
2216
2268
|
const explicitStartAdornment = inputProps?.startAdornment;
|
|
2217
|
-
const resolvedExplicitStartAdornment = explicitStartAdornment ? /* @__PURE__ */
|
|
2269
|
+
const resolvedExplicitStartAdornment = explicitStartAdornment ? /* @__PURE__ */ jsx13(InputAdornment2, { position: "start", children: explicitStartAdornment }) : void 0;
|
|
2218
2270
|
const startAdornment = paramsSlotInput.startAdornment ?? inputPropsSlotInput.startAdornment ?? resolvedExplicitStartAdornment;
|
|
2219
2271
|
const endAdornment = paramsSlotInput.endAdornment ?? inputPropsSlotInput.endAdornment;
|
|
2220
|
-
return /* @__PURE__ */
|
|
2272
|
+
return /* @__PURE__ */ jsx13(
|
|
2221
2273
|
LSTextField,
|
|
2222
2274
|
{
|
|
2223
2275
|
id,
|
|
@@ -2247,7 +2299,7 @@ var VariableInputTextField = forwardRef5(
|
|
|
2247
2299
|
startAdornment,
|
|
2248
2300
|
endAdornment: /* @__PURE__ */ jsxs5(Fragment3, { children: [
|
|
2249
2301
|
endAdornment ?? null,
|
|
2250
|
-
showVariableIcon ? /* @__PURE__ */
|
|
2302
|
+
showVariableIcon ? /* @__PURE__ */ jsx13(Tooltip2, { title: t("chatbot.allowed-variables", "Allowed Variables"), children: /* @__PURE__ */ jsx13(
|
|
2251
2303
|
InputAdornment2,
|
|
2252
2304
|
{
|
|
2253
2305
|
position: "end",
|
|
@@ -2267,6 +2319,1723 @@ var VariableInputTextField = forwardRef5(
|
|
|
2267
2319
|
);
|
|
2268
2320
|
VariableInputTextField.displayName = "VariableInputTextField";
|
|
2269
2321
|
|
|
2322
|
+
// src/components/ChatMessageItem/ChatMessageItem.tsx
|
|
2323
|
+
import { useState as useState5 } from "react";
|
|
2324
|
+
import ListItemIcon from "@mui/material/ListItemIcon";
|
|
2325
|
+
import ListItemText from "@mui/material/ListItemText";
|
|
2326
|
+
import Menu from "@mui/material/Menu";
|
|
2327
|
+
import MenuItem2 from "@mui/material/MenuItem";
|
|
2328
|
+
import Tooltip3 from "@mui/material/Tooltip";
|
|
2329
|
+
import classNames7 from "classnames";
|
|
2330
|
+
|
|
2331
|
+
// src/components/PlatformIcon/PlatformIcon.tsx
|
|
2332
|
+
import classNames6 from "classnames";
|
|
2333
|
+
|
|
2334
|
+
// src/assets/platforms/discord.svg
|
|
2335
|
+
var discord_default = 'data:image/svg+xml,<svg width="106" height="84" viewBox="0 0 106 84" fill="none" xmlns="http://www.w3.org/2000/svg">%0A<path d="M87.6564 10.3044C81.1722 7.33742 74.33 5.21982 67.3004 4.00432C67.2367 3.99362 67.1713 4.00292 67.1131 4.03082C67.0549 4.05872 67.0068 4.10392 66.9754 4.16012C66.0941 5.71802 65.1192 7.75572 64.4379 9.35102C56.8605 8.20442 49.153 8.20442 41.5757 9.35102C40.8157 7.57392 39.956 5.84082 39.0007 4.16012C38.9686 4.10452 38.9204 4.05982 38.8624 4.03202C38.8044 4.00422 38.7393 3.99452 38.6757 4.00432C31.6445 5.21322 24.8008 7.33202 18.3196 10.3044C18.2642 10.3255 18.2178 10.3652 18.1884 10.4166C5.22598 29.7281 1.66978 48.5661 3.41358 67.1673C3.41978 67.2545 3.47608 67.3418 3.54478 67.3978C11.093 72.9727 19.5358 77.229 28.5133 79.986C28.5767 80.005 28.6448 80.005 28.7077 79.983C28.7707 79.962 28.8252 79.921 28.8633 79.867C30.7883 77.25 32.5007 74.4893 33.9757 71.5854C34.0065 71.5256 34.017 71.4575 34.0057 71.3913C33.9945 71.325 33.962 71.2641 33.9132 71.2178C33.8809 71.1874 33.8426 71.164 33.8007 71.1492C31.108 70.1174 28.5001 68.8777 26.0008 67.4415C25.931 67.402 25.8791 67.3373 25.8558 67.2607C25.8325 67.1842 25.8397 67.1016 25.8758 67.0302C25.8971 66.9838 25.9292 66.9432 25.9696 66.9118C26.4946 66.5192 27.0196 66.1079 27.5195 65.6966C27.5637 65.6612 27.6167 65.6385 27.6729 65.6308C27.729 65.6231 27.7862 65.6308 27.8383 65.653C44.2069 73.1059 61.9254 73.1059 78.094 65.653C78.148 65.6297 78.2074 65.6214 78.2657 65.6291C78.324 65.6368 78.3792 65.6601 78.4253 65.6966C78.9253 66.1079 79.4503 66.5192 79.9753 66.9118C80.0178 66.9428 80.052 66.9838 80.0747 67.0312C80.0975 67.0786 80.1081 67.1308 80.1056 67.1833C80.1031 67.2358 80.0876 67.2868 80.0605 67.3319C80.0334 67.3769 79.9955 67.4146 79.9503 67.4415C77.4566 68.8909 74.8454 70.1291 72.1441 71.143C72.101 71.1585 72.0619 71.1834 72.0295 71.2157C71.9971 71.248 71.9722 71.287 71.9566 71.3299C71.9421 71.3716 71.9363 71.4157 71.9396 71.4596C71.9428 71.5035 71.955 71.5464 71.9753 71.5854C73.4753 74.4831 75.194 77.25 77.0815 79.867C77.1197 79.921 77.1741 79.962 77.2371 79.983C77.3 80.005 77.3681 80.005 77.4315 79.986C86.424 77.238 94.881 72.9807 102.438 67.3978C102.475 67.3717 102.507 67.3374 102.53 67.2975C102.552 67.2576 102.566 67.2131 102.569 67.1673C104.656 45.6622 99.075 26.98 87.7814 10.4228C87.77 10.3955 87.753 10.3708 87.7315 10.3504C87.71 10.33 87.6844 10.3144 87.6564 10.3044ZM36.4195 55.8383C31.4883 55.8383 27.432 51.3267 27.432 45.7931C27.432 40.2532 31.4133 35.7416 36.4195 35.7416C41.4632 35.7416 45.4819 40.2906 45.4069 45.7931C45.4069 51.3267 41.4257 55.8383 36.4195 55.8383ZM69.6441 55.8383C64.7192 55.8383 60.6567 51.3267 60.6567 45.7931C60.6567 40.2532 64.6379 35.7416 69.6441 35.7416C74.6878 35.7416 78.7128 40.2906 78.6315 45.7931C78.6315 51.3267 74.6878 55.8383 69.6441 55.8383Z" fill="%235C65EB"/>%0A</svg>%0A';
|
|
2336
|
+
|
|
2337
|
+
// src/assets/platforms/facebook.svg
|
|
2338
|
+
var facebook_default = 'data:image/svg+xml,<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">%0A<path fill-rule="evenodd" clip-rule="evenodd" d="M15.725 22V14.255H18.325L18.714 11.237H15.724V9.31C15.724 8.436 15.967 7.83999 17.221 7.83999H18.819V5.14C18.0451 5.05764 17.2673 5.01758 16.489 5.02C14.185 5.02 12.608 6.427 12.608 9.01001V11.237H9.99998V14.255H12.607V22H3.104C2.494 22 2 21.506 2 20.896V3.104C2 2.494 2.494 2 3.104 2H20.896C21.506 2 22 2.494 22 3.104V20.896C22 21.506 21.506 22 20.896 22H15.725Z" fill="%23087BEA"/>%0A<path fill-rule="evenodd" clip-rule="evenodd" d="M15.725 22V14.255H18.325L18.714 11.237H15.724V9.31C15.724 8.436 15.967 7.83999 17.221 7.83999H18.819V5.14C18.0451 5.05764 17.2673 5.01758 16.489 5.02C14.185 5.02 12.608 6.427 12.608 9.01001V11.237H9.99998V14.255H12.607V22H3.104C2.494 22 2 21.506 2 20.896V3.104C2 2.494 2.494 2 3.104 2H20.896C21.506 2 22 2.494 22 3.104V20.896C22 21.506 21.506 22 20.896 22H15.725Z" fill="url(%23paint0_linear_2516_9002)"/>%0A<defs>%0A<linearGradient id="paint0_linear_2516_9002" x1="12" y1="21.4156" x2="12" y2="2" gradientUnits="userSpaceOnUse">%0A<stop stop-color="%230062E0"/>%0A<stop offset="1" stop-color="%2319AFFF"/>%0A</linearGradient>%0A</defs>%0A</svg>%0A';
|
|
2339
|
+
|
|
2340
|
+
// src/assets/platforms/kick.svg
|
|
2341
|
+
var kick_default = 'data:image/svg+xml,<svg width="24" height="26" viewBox="0 0 24 26" fill="none" xmlns="http://www.w3.org/2000/svg">%0A<path fill-rule="evenodd" clip-rule="evenodd" d="M4 4H9.62501V8H11.5V6H13.375V4H19V10H17.125V12H15.2501V14H17.125V16H19V22H13.375V20H11.5V18H9.62501V22H4V4Z" fill="%2342FD0A"/>%0A</svg>%0A';
|
|
2342
|
+
|
|
2343
|
+
// src/assets/platforms/lumiaLogo.svg
|
|
2344
|
+
var lumiaLogo_default = 'data:image/svg+xml,<svg width="310" height="310" viewBox="0 0 310 310" fill="none" xmlns="http://www.w3.org/2000/svg">%0A<path fill-rule="evenodd" clip-rule="evenodd" d="M126.553 283.309C127.43 287.957 131.415 291.316 136.051 291.316H169.708C175.05 291.316 179.381 286.894 179.381 281.44C179.381 275.986 175.05 271.564 169.708 271.564H144.039L143.398 268.171H175.938C181.167 268.171 185.449 263.929 185.607 258.593C186.654 223.171 200.493 199.947 215.267 176.455C215.835 175.551 216.406 174.646 216.978 173.739C231.175 151.218 246.29 127.243 246.29 93.0565C246.29 62.8306 234.545 39.9721 216.68 24.8443C199.061 9.92486 176.088 3 153.931 3C111.466 3 64 34.5184 64 94.0485C64 125.271 77.7676 152.459 90.9936 175.734C93.021 179.302 95.0189 182.748 96.9655 186.105C101.552 194.017 105.855 201.438 109.59 208.807C114.864 219.212 118.437 228.471 119.591 237.069C120.254 242.013 124.426 245.675 129.313 245.603C134.2 245.532 138.268 241.75 138.792 236.788C139.637 228.792 143.857 219.28 150.879 208.043C156.859 198.472 164.275 188.55 172.113 178.062C173.39 176.353 174.678 174.629 175.974 172.889C185.05 160.696 194.398 147.799 201.456 134.841C208.481 121.94 213.766 108.051 213.766 93.8831C213.766 76.7114 207.388 62.1228 196.289 51.9119C185.292 41.7953 170.319 36.5602 153.931 36.5602C121.603 36.5602 96.5239 63.0978 96.5239 93.8831C96.5239 102.894 98.2899 116.42 103.002 128.055C107.497 139.153 116.502 152.529 132.734 152.529C140.658 152.529 147.148 149.581 151.972 144.611C156.532 139.912 159.099 133.942 160.625 128.478C163.474 118.279 163.454 106.831 163.444 100.801C163.444 100.461 163.443 100.139 163.443 99.8347C163.443 94.3804 159.112 89.9589 153.77 89.9589C148.427 89.9589 144.096 94.3804 144.096 99.8347L144.096 100.278C144.097 106.623 144.099 115.617 142.02 123.061C140.977 126.793 139.63 129.264 138.229 130.709C137.091 131.881 135.571 132.777 132.734 132.777C128.902 132.777 124.639 129.786 120.881 120.508C117.341 111.767 115.871 100.908 115.871 93.8831C115.871 74.0802 132.215 56.3118 153.931 56.3118C166.346 56.3118 176.454 60.252 183.337 66.5848C190.118 72.8234 194.419 81.9583 194.419 93.8831C194.419 103.191 190.885 113.604 184.547 125.243C178.239 136.824 169.677 148.705 160.57 160.938C159.324 162.612 158.067 164.294 156.804 165.983C149.006 176.413 141.025 187.088 134.568 197.42C132.864 200.148 131.222 202.918 129.687 205.719C128.753 203.708 127.777 201.712 126.773 199.73C122.771 191.834 118.024 183.646 113.312 175.518C111.429 172.269 109.551 169.03 107.728 165.822C94.5791 142.683 83.3469 119.531 83.3469 94.0485C83.3469 47.7729 119.698 22.7516 153.931 22.7516C172.389 22.7516 190.759 28.5564 204.329 40.047C217.653 51.3293 226.943 68.5611 226.943 93.0565C226.943 121.353 214.634 140.915 199.947 164.257C199.628 164.764 199.308 165.273 198.986 165.784C185.181 187.737 170.104 212.49 166.842 248.419H131.683C128.796 248.419 126.061 249.735 124.223 252.007C122.386 254.279 121.638 257.27 122.184 260.164L126.553 283.309Z" fill="%23FF4469"/>%0A<path d="M167.2 295.575C167.2 304.617 160.299 306.817 151.787 306.817C143.275 306.817 136.375 304.617 136.375 295.575H167.2Z" fill="%23FF4469"/>%0A<path fill-rule="evenodd" clip-rule="evenodd" d="M185.804 111.539C186.466 109.832 185.647 107.901 183.975 107.226L172.394 102.546C170.722 101.87 168.83 102.706 168.169 104.413C167.507 106.119 168.326 108.051 169.998 108.726L181.579 113.406C183.251 114.082 185.142 113.246 185.804 111.539Z" fill="%23FF4469"/>%0A<path fill-rule="evenodd" clip-rule="evenodd" d="M123.949 113.947C124.697 115.616 126.628 116.35 128.263 115.587L139.59 110.297C141.225 109.533 141.944 107.561 141.196 105.892C140.448 104.222 138.516 103.488 136.881 104.252L125.555 109.542C123.92 110.306 123.201 112.278 123.949 113.947Z" fill="%23FF4469"/>%0A<path fill-rule="evenodd" clip-rule="evenodd" d="M141.106 94.8617C141.679 93.122 140.762 91.2371 139.058 90.6518L127.254 86.5969C125.55 86.0115 123.703 86.9473 123.13 88.687C122.557 90.4268 123.473 92.3116 125.177 92.897L136.982 96.9519C138.686 97.5372 140.532 96.6014 141.106 94.8617Z" fill="%23FF4469"/>%0A<path fill-rule="evenodd" clip-rule="evenodd" d="M147.751 87.1376C149.438 86.5012 150.3 84.5896 149.676 82.8679L145.355 70.9337C144.732 69.212 142.86 68.3322 141.173 68.9686C139.487 69.605 138.625 71.5166 139.248 73.2383L143.569 85.1725C144.193 86.8942 146.065 87.774 147.751 87.1376Z" fill="%23FF4469"/>%0A<path fill-rule="evenodd" clip-rule="evenodd" d="M159.968 86.4852C161.656 87.1168 163.526 86.2316 164.145 84.5081L168.433 72.5617C169.052 70.8382 168.185 68.9291 166.496 68.2975C164.808 67.666 162.938 68.5511 162.32 70.2746L158.032 82.221C157.413 83.9445 158.28 85.8537 159.968 86.4852Z" fill="%23FF4469"/>%0A<path fill-rule="evenodd" clip-rule="evenodd" d="M167.942 93.9614C168.717 95.6179 170.66 96.3197 172.283 95.5289L183.524 90.0507C185.146 89.26 185.834 87.2761 185.059 85.6196C184.285 83.9631 182.341 83.2613 180.719 84.052L169.478 89.5302C167.855 90.321 167.168 92.3049 167.942 93.9614Z" fill="%23FF4469"/>%0A</svg>%0A';
|
|
2345
|
+
|
|
2346
|
+
// src/assets/platforms/tiktok.svg
|
|
2347
|
+
var tiktok_default = 'data:image/svg+xml,<svg width="70" height="70" viewBox="0 0 70 70" fill="none" xmlns="http://www.w3.org/2000/svg">%0A<path d="M47.163 27.1414C50.7816 29.7268 55.2145 31.2479 60.0023 31.2479V22.0395C59.0962 22.0397 58.1924 21.9452 57.306 21.7575V29.0059C52.5185 29.0059 48.0862 27.4847 44.4666 24.8995V43.6913C44.4666 53.0918 36.8421 60.712 27.4372 60.712C23.9281 60.712 20.6665 59.6516 17.957 57.8331C21.0494 60.9934 25.3619 62.9538 30.133 62.9538C39.5384 62.9538 47.1633 55.3337 47.1633 45.9327V27.1414H47.163V27.1414ZM50.4892 17.8512C48.6399 15.8319 47.4257 13.2223 47.163 10.3372V9.15283H44.6078C45.251 12.8197 47.4447 15.9525 50.4892 17.8512ZM23.9056 50.6194C22.8724 49.2653 22.314 47.6089 22.3165 45.9058C22.3165 41.6063 25.8039 38.1203 30.1065 38.1203C30.9083 38.1201 31.7054 38.2428 32.4695 38.4851V29.0709C31.5765 28.9486 30.6752 28.8966 29.7743 28.9157V36.2433C29.0096 36.0009 28.2122 35.8778 27.4101 35.8786C23.1076 35.8786 19.6203 39.3643 19.6203 43.6643C19.6203 46.7048 21.3635 49.3371 23.9056 50.6194Z" fill="%23FF004F"/>%0A<path d="M44.4647 24.8993C48.0843 27.4845 52.5166 29.0057 57.3041 29.0057V21.7573C54.6318 21.1884 52.266 19.7926 50.4873 17.8512C47.4427 15.9523 45.2491 12.8195 44.6059 9.15283H37.8942V45.9323C37.879 50.2201 34.3975 53.6919 30.1042 53.6919C27.5742 53.6919 25.3266 52.4866 23.9031 50.6194C21.3612 49.3371 19.6181 46.7046 19.6181 43.6645C19.6181 39.3649 23.1053 35.8788 27.4079 35.8788C28.2322 35.8788 29.0267 36.0071 29.772 36.2435V28.9159C20.5324 29.1067 13.1016 36.6524 13.1016 45.9325C13.1016 50.5651 14.952 54.7648 17.9553 57.8333C20.6648 59.6516 23.9264 60.7122 27.4355 60.7122C36.8406 60.7122 44.4649 53.0916 44.4649 43.6913V24.8993H44.4647Z" fill="white"/>%0A<path d="M57.3049 21.7573V19.7974C54.8951 19.8011 52.5327 19.1265 50.4882 17.851C52.298 19.8315 54.6813 21.197 57.3049 21.7573ZM44.6067 9.1528C44.5454 8.80237 44.4983 8.44962 44.4656 8.09553V6.91113H35.1985V43.691C35.1837 47.9782 31.7024 51.45 27.4087 51.45C26.1481 51.45 24.958 51.151 23.904 50.6195C25.3274 52.4865 27.5751 53.6917 30.105 53.6917C34.398 53.6917 37.88 50.2202 37.895 45.9325V9.1528H44.6067ZM29.7733 28.9158V26.8294C28.9989 26.7236 28.2182 26.6705 27.4366 26.6709C18.0308 26.6707 10.4062 34.2912 10.4062 43.691C10.4062 49.5842 13.4028 54.7778 17.9564 57.8329C14.9531 54.7646 13.1026 50.5647 13.1026 45.9323C13.1026 36.6523 20.5333 29.1066 29.7733 28.9158Z" fill="%2300F2EA"/>%0A</svg>%0A';
|
|
2348
|
+
|
|
2349
|
+
// src/assets/platforms/twitch.svg
|
|
2350
|
+
var twitch_default = 'data:image/svg+xml,<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">%0A<path d="M4.875 4L3 7.125V21.5H8V24H10.5L13 21.5H16.125L21.75 15.875V4H4.875ZM19.25 14.625L16.125 17.75H13L10.5 20.25V17.75H6.75V6.5H19.25V14.625Z" fill="%23874BF6"/>%0A<path d="M14.875 9H16.75V14H14.875V9Z" fill="%23874BF6"/>%0A<path d="M11.125 9H13V14H11.125V9Z" fill="%23874BF6"/>%0A</svg>%0A';
|
|
2351
|
+
|
|
2352
|
+
// src/assets/platforms/twitter.svg
|
|
2353
|
+
var twitter_default = 'data:image/svg+xml,<svg width="400" height="400" viewBox="0 0 400 400" fill="none" xmlns="http://www.w3.org/2000/svg">%0A<path d="M387.014 83.988C376.599 99.48 363.821 112.686 348.68 123.607C348.83 126.535 348.905 129.846 348.905 133.537C348.905 154.05 345.914 174.587 339.933 195.149C333.952 215.711 324.816 235.392 312.524 254.193C300.233 272.994 285.591 289.65 268.6 304.161C251.609 318.672 231.185 330.243 207.327 338.872C183.47 347.502 157.902 351.817 130.622 351.817C88.0468 351.817 48.8396 340.323 13 317.336C19.3611 318.044 25.4619 318.398 31.3025 318.398C66.8703 318.398 98.6381 307.442 126.606 285.532C110.022 285.228 95.1701 280.123 82.0499 270.217C68.9297 260.311 59.9007 247.653 54.9628 232.243C59.8435 233.173 64.6607 233.638 69.4142 233.638C76.2565 233.638 82.9893 232.745 89.6125 230.96C71.9146 227.416 57.2326 218.601 45.5667 204.516C33.9012 190.432 28.0684 174.175 28.0684 155.747V154.797C38.9314 160.812 50.5186 164.011 62.8299 164.395C52.3458 157.406 44.0334 148.291 37.8929 137.052C31.752 125.813 28.6815 113.65 28.6815 100.563C28.6815 86.761 32.14 73.9088 39.0571 62.0062C58.3033 85.6243 81.6241 104.501 109.019 118.635C136.415 132.77 165.806 140.62 197.191 142.185C195.852 136.607 195.181 130.785 195.179 124.72C195.179 103.545 202.673 85.4646 217.66 70.4788C232.647 55.4929 250.728 48 271.903 48C294.073 48 312.747 56.0725 327.925 72.2175C345.266 68.7826 361.503 62.5696 376.636 53.5787C370.806 71.9272 359.572 86.0818 342.933 96.0425C358.226 94.2253 372.92 90.2071 387.014 83.988Z" fill="%231D9BF0"/>%0A</svg>%0A';
|
|
2354
|
+
|
|
2355
|
+
// src/assets/platforms/youtube.svg
|
|
2356
|
+
var youtube_default = 'data:image/svg+xml,<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">%0A<path d="M12.5612 5H12.6669C13.643 5.00347 18.5892 5.03817 19.9229 5.38749C20.3261 5.4941 20.6935 5.7019 20.9884 5.99013C21.2833 6.27836 21.4953 6.63692 21.6033 7.02998C21.7233 7.46952 21.8076 8.05133 21.8646 8.65166L21.8765 8.77195L21.9026 9.0727L21.9121 9.19298C21.9893 10.2502 21.9988 11.2403 22 11.4566V11.5434C21.9988 11.7678 21.9882 12.825 21.9026 13.9262L21.8931 14.0476L21.8825 14.1679C21.823 14.8295 21.7352 15.4865 21.6033 15.97C21.4957 16.3632 21.2837 16.722 20.9888 17.0102C20.6939 17.2985 20.3262 17.5062 19.9229 17.6125C18.5454 17.9734 13.3093 17.9988 12.5837 18H12.4151C12.0481 18 10.5304 17.9931 8.93906 17.9399L8.73717 17.9329L8.63385 17.9283L8.43078 17.9202L8.2277 17.9121C6.90949 17.8554 5.65423 17.764 5.07589 17.6114C4.67269 17.5052 4.30522 17.2976 4.0103 17.0096C3.71538 16.7215 3.50335 16.363 3.39546 15.97C3.26364 15.4877 3.17576 14.8295 3.11638 14.1679L3.10688 14.0464L3.09738 13.9262C3.03877 13.1424 3.00629 12.357 3 11.5711V11.43C3.00238 11.1813 3.01188 10.3219 3.076 9.37343L3.08432 9.25429L3.08788 9.19415L3.09738 9.07385L3.12351 8.77311L3.13538 8.65281C3.19239 8.0525 3.27671 7.46952 3.39665 7.03115C3.50435 6.63792 3.7163 6.27919 4.01124 5.99091C4.30617 5.70263 4.67374 5.49494 5.07707 5.38865C5.65541 5.23828 6.91069 5.14574 8.22889 5.08791L8.43078 5.07981L8.63503 5.07287L8.73717 5.0694L8.94024 5.0613C10.0705 5.02549 11.2011 5.00544 12.332 5.00116H12.5612V5ZM10.6005 8.71297V14.2859L15.5372 11.5006L10.6005 8.71297Z" fill="%23FF0000"/>%0A</svg>%0A';
|
|
2357
|
+
|
|
2358
|
+
// src/components/PlatformIcon/PlatformIcon.tsx
|
|
2359
|
+
import { jsx as jsx14 } from "react/jsx-runtime";
|
|
2360
|
+
var PLATFORM_ICON_URLS = {
|
|
2361
|
+
twitch: twitch_default,
|
|
2362
|
+
youtube: youtube_default,
|
|
2363
|
+
kick: kick_default,
|
|
2364
|
+
tiktok: tiktok_default,
|
|
2365
|
+
facebook: facebook_default,
|
|
2366
|
+
twitter: twitter_default,
|
|
2367
|
+
x: twitter_default,
|
|
2368
|
+
discord: discord_default,
|
|
2369
|
+
lumia: lumiaLogo_default,
|
|
2370
|
+
lumiastream: lumiaLogo_default
|
|
2371
|
+
};
|
|
2372
|
+
var getPlatformIconUrl = (platform) => {
|
|
2373
|
+
if (!platform) {
|
|
2374
|
+
return void 0;
|
|
2375
|
+
}
|
|
2376
|
+
return PLATFORM_ICON_URLS[String(platform).trim().toLowerCase()];
|
|
2377
|
+
};
|
|
2378
|
+
function PlatformIcon({ platform, fallback = true, size, className, title, style }) {
|
|
2379
|
+
const url = getPlatformIconUrl(platform) ?? (fallback ? lumiaLogo_default : void 0);
|
|
2380
|
+
if (!url) {
|
|
2381
|
+
return null;
|
|
2382
|
+
}
|
|
2383
|
+
const sizeStyle = size !== void 0 ? { height: typeof size === "number" ? `${size}px` : size } : void 0;
|
|
2384
|
+
return /* @__PURE__ */ jsx14("img", { className: classNames6("ls-platform-icon", className), src: url, alt: "", title: title ?? (platform ? String(platform) : void 0), style: { ...sizeStyle, ...style } });
|
|
2385
|
+
}
|
|
2386
|
+
PlatformIcon.displayName = "PlatformIcon";
|
|
2387
|
+
|
|
2388
|
+
// src/components/ChatMessageItem/modActionIcons.tsx
|
|
2389
|
+
import { jsx as jsx15, jsxs as jsxs6 } from "react/jsx-runtime";
|
|
2390
|
+
var DeleteIcon = () => /* @__PURE__ */ jsx15("svg", { width: "15", height: "15", viewBox: "0 0 15 15", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: /* @__PURE__ */ jsx15(
|
|
2391
|
+
"path",
|
|
2392
|
+
{
|
|
2393
|
+
d: "M14.375 2.7H11.875V1.2C11.875 0.538125 11.3145 0 10.625 0H4.375C3.68555 0 3.125 0.538125 3.125 1.2V2.7H0.625C0.279297 2.7 0 2.96813 0 3.3V3.9C0 3.9825 0.0703125 4.05 0.15625 4.05H1.33594L1.81836 13.8563C1.84961 14.4956 2.40039 15 3.06641 15H11.9336C12.6016 15 13.1504 14.4975 13.1816 13.8563L13.6641 4.05H14.8438C14.9297 4.05 15 3.9825 15 3.9V3.3C15 2.96813 14.7207 2.7 14.375 2.7ZM10.4688 2.7H4.53125V1.35H10.4688V2.7Z",
|
|
2394
|
+
fill: "currentColor"
|
|
2395
|
+
}
|
|
2396
|
+
) });
|
|
2397
|
+
var CopyIcon = () => /* @__PURE__ */ jsxs6("svg", { width: "12", height: "12", viewBox: "0 0 12 12", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [
|
|
2398
|
+
/* @__PURE__ */ jsx15(
|
|
2399
|
+
"path",
|
|
2400
|
+
{
|
|
2401
|
+
d: "M11.3569 12.0002H2.78544C2.61494 12.0002 2.45143 11.9325 2.33087 11.8119C2.21031 11.6914 2.14258 11.5278 2.14258 11.3574V2.57164C2.14258 2.45797 2.18773 2.34896 2.2681 2.26859C2.34848 2.18822 2.45749 2.14307 2.57115 2.14307H11.3569C11.5274 2.14307 11.6909 2.2108 11.8114 2.33135C11.932 2.45191 11.9997 2.61543 11.9997 2.78592V11.3574C11.9997 11.5278 11.932 11.6914 11.8114 11.8119C11.6909 11.9325 11.5274 12.0002 11.3569 12.0002Z",
|
|
2402
|
+
fill: "currentColor"
|
|
2403
|
+
}
|
|
2404
|
+
),
|
|
2405
|
+
/* @__PURE__ */ jsx15(
|
|
2406
|
+
"path",
|
|
2407
|
+
{
|
|
2408
|
+
d: "M2.14286 1.28571H9.85714V0.642857C9.85714 0.472361 9.78941 0.308848 9.66885 0.188289C9.54829 0.0677294 9.38478 0 9.21428 0H0.75C0.551088 0 0.360322 0.0790177 0.21967 0.21967C0.0790177 0.360322 0 0.551088 0 0.75V9.21428C0 9.38478 0.0677294 9.54829 0.188289 9.66885C0.308848 9.78941 0.472361 9.85714 0.642857 9.85714H1.28571V2.14286C1.28571 1.91553 1.37602 1.69751 1.53677 1.53677C1.69751 1.37602 1.91553 1.28571 2.14286 1.28571Z",
|
|
2409
|
+
fill: "currentColor"
|
|
2410
|
+
}
|
|
2411
|
+
)
|
|
2412
|
+
] });
|
|
2413
|
+
var PinOnIcon = () => /* @__PURE__ */ jsx15("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: /* @__PURE__ */ jsx15("path", { d: "M10.6667 7.99992V2.66659H11.3333V1.33325H4.66667V2.66659H5.33333V7.99992L4 9.33325V10.6666H7.46667V14.6666H8.53333V10.6666H12V9.33325L10.6667 7.99992Z", fill: "currentColor" }) });
|
|
2414
|
+
var PinOffIcon = () => /* @__PURE__ */ jsx15("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: /* @__PURE__ */ jsx15(
|
|
2415
|
+
"path",
|
|
2416
|
+
{
|
|
2417
|
+
d: "M10.6667 7.99992V2.66659H11.3333V1.33325H4.66667V2.66659H5.33333V7.99992L4 9.33325V10.6666H7.46667V14.6666H8.53333V10.6666H12V9.33325L10.6667 7.99992ZM5.86667 9.33325L6.66667 8.53325V2.66659H9.33333V8.53325L10.1333 9.33325H5.86667Z",
|
|
2418
|
+
fill: "currentColor"
|
|
2419
|
+
}
|
|
2420
|
+
) });
|
|
2421
|
+
var TranslateIcon = () => /* @__PURE__ */ jsxs6("svg", { width: "16", height: "16", viewBox: "0 0 107 107", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [
|
|
2422
|
+
/* @__PURE__ */ jsxs6("g", { clipPath: "url(#ls-chat-translate-clip)", children: [
|
|
2423
|
+
/* @__PURE__ */ jsx15("path", { d: "M34.9975 45.927L32.605 53H26.5L36.741 25.5H43.803L54 53H47.5815L45.189 45.927H34.9975ZM43.9845 41.879L40.25 30.758H39.9805L36.246 41.879H43.9845Z", fill: "currentColor" }),
|
|
2424
|
+
/* @__PURE__ */ jsx15(
|
|
2425
|
+
"path",
|
|
2426
|
+
{
|
|
2427
|
+
d: "M10 20C10 17.0826 11.1589 14.2847 13.2218 12.2218C15.2847 10.1589 18.0826 9 21 9H59.5C62.4174 9 65.2153 10.1589 67.2782 12.2218C69.3411 14.2847 70.5 17.0826 70.5 20V36.5H87C89.9174 36.5 92.7153 37.6589 94.7782 39.7218C96.8411 41.7847 98 44.5826 98 47.5V86C98 88.9174 96.8411 91.7153 94.7782 93.7782C92.7153 95.8411 89.9174 97 87 97H48.5C45.5826 97 42.7847 95.8411 40.7218 93.7782C38.6589 91.7153 37.5 88.9174 37.5 86V69.5H21C18.0826 69.5 15.2847 68.3411 13.2218 66.2782C11.1589 64.2153 10 61.4174 10 58.5V20ZM21 14.5C19.5413 14.5 18.1424 15.0795 17.1109 16.1109C16.0795 17.1424 15.5 18.5413 15.5 20V58.5C15.5 59.9587 16.0795 61.3576 17.1109 62.3891C18.1424 63.4205 19.5413 64 21 64H59.5C60.9587 64 62.3576 63.4205 63.3891 62.3891C64.4205 61.3576 65 59.9587 65 58.5V20C65 18.5413 64.4205 17.1424 63.3891 16.1109C62.3576 15.0795 60.9587 14.5 59.5 14.5H21ZM60.259 69.4725C61.3187 71.1262 62.4737 72.6772 63.724 74.1255C59.61 77.288 54.5225 79.631 48.5 81.2315C49.479 82.425 50.9805 84.724 51.5525 86C57.74 84.0255 62.9925 81.358 67.4255 77.783C71.699 81.4405 76.99 84.1905 83.5405 85.879C84.272 84.482 85.8175 82.1775 87 80.984C80.8125 79.5925 75.6865 77.167 71.49 73.922C75.2355 69.8135 78.211 64.8415 80.4055 58.7585H87V53H70.5V58.7585H74.7075C72.9585 63.4005 70.6375 67.2615 67.7115 70.4735C66.9028 69.613 66.1409 68.7097 65.429 67.7675C63.8757 68.76 62.098 69.3463 60.259 69.4725Z",
|
|
2428
|
+
fill: "currentColor"
|
|
2429
|
+
}
|
|
2430
|
+
)
|
|
2431
|
+
] }),
|
|
2432
|
+
/* @__PURE__ */ jsx15("defs", { children: /* @__PURE__ */ jsx15("clipPath", { id: "ls-chat-translate-clip", children: /* @__PURE__ */ jsx15("rect", { width: "88", height: "88", fill: "#fff", transform: "translate(10 9)" }) }) })
|
|
2433
|
+
] });
|
|
2434
|
+
var BanUserIcon = () => /* @__PURE__ */ jsxs6("svg", { width: "16", height: "16", viewBox: "0 0 107 107", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [
|
|
2435
|
+
/* @__PURE__ */ jsx15(
|
|
2436
|
+
"path",
|
|
2437
|
+
{
|
|
2438
|
+
d: "M71.333 62.417C72.1697 62.417 73.0017 62.465 73.8252 62.5576C65.2189 65.3659 59 73.4561 59 83C59 88.8767 61.3585 94.202 65.1797 98.083H13.375V84.708C13.3751 78.7961 15.724 73.1267 19.9043 68.9463C24.0848 64.7658 29.7549 62.417 35.667 62.417H71.333ZM53.5 8.91699C60.0033 8.91699 66.2403 11.5001 70.8389 16.0986C75.4374 20.6972 78.0205 26.9342 78.0205 33.4375C78.0205 39.9408 75.4374 46.1778 70.8389 50.7764C66.2403 55.3749 60.0033 57.958 53.5 57.958C46.9967 57.958 40.7597 55.3749 36.1611 50.7764C31.5626 46.1778 28.9795 39.9408 28.9795 33.4375C28.9795 26.9342 31.5626 20.6972 36.1611 16.0986C40.7597 11.5001 46.9967 8.91699 53.5 8.91699Z",
|
|
2439
|
+
fill: "currentColor"
|
|
2440
|
+
}
|
|
2441
|
+
),
|
|
2442
|
+
/* @__PURE__ */ jsx15(
|
|
2443
|
+
"path",
|
|
2444
|
+
{
|
|
2445
|
+
d: "M72.4414 77.9153C71.0064 79.9384 70.3336 82.4041 70.5422 84.8757C70.7508 87.3473 71.8274 89.6654 73.5814 91.4193C75.3353 93.1732 77.6533 94.2498 80.1249 94.4584C82.5965 94.6671 85.0622 93.9943 87.0853 92.5592L72.4414 77.9153ZM74.9159 75.4426L89.5598 90.0865C90.9949 88.0634 91.6677 85.5977 91.4591 83.126C91.2504 80.6544 90.1738 78.3364 88.4199 76.5825C86.666 74.8286 84.348 73.752 81.8764 73.5433C79.4047 73.3347 76.939 74.0075 74.9159 75.4426ZM71.101 93.9014C68.4752 91.2759 66.9999 87.7148 66.9998 84.0015C66.9996 80.2882 68.4745 76.727 71.1001 74.1012C73.7256 71.4754 77.2868 70.0002 81 70C84.7133 69.9998 88.2745 71.4748 90.9003 74.1003C93.5259 76.7259 95.0009 80.2869 95.0009 84C95.0009 87.7131 93.5259 91.2741 90.9003 93.8997C88.2748 96.5252 84.7137 98.0003 81.0006 98.0003C77.2875 98.0003 73.7265 96.5252 71.101 93.8997V93.9014Z",
|
|
2446
|
+
fill: "currentColor"
|
|
2447
|
+
}
|
|
2448
|
+
)
|
|
2449
|
+
] });
|
|
2450
|
+
var TimeoutUserIcon = () => /* @__PURE__ */ jsxs6("svg", { width: "16", height: "16", viewBox: "0 0 107 108", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [
|
|
2451
|
+
/* @__PURE__ */ jsx15(
|
|
2452
|
+
"path",
|
|
2453
|
+
{
|
|
2454
|
+
d: "M71.333 62.917C72.1697 62.917 73.0017 62.965 73.8252 63.0576C65.2189 65.8659 59 73.9561 59 83.5C59 89.3767 61.3585 94.702 65.1797 98.583H13.375V85.208C13.3751 79.2961 15.724 73.6267 19.9043 69.4463C24.0848 65.2658 29.7549 62.917 35.667 62.917H71.333ZM53.5 9.41699C60.0033 9.41699 66.2403 12.0001 70.8389 16.5986C75.4374 21.1972 78.0205 27.4342 78.0205 33.9375C78.0205 40.4408 75.4374 46.6778 70.8389 51.2764C66.2403 55.8749 60.0033 58.458 53.5 58.458C46.9967 58.458 40.7597 55.8749 36.1611 51.2764C31.5626 46.6778 28.9795 40.4408 28.9795 33.9375C28.9795 27.4342 31.5626 21.1972 36.1611 16.5986C40.7597 12.0001 46.9967 9.41699 53.5 9.41699Z",
|
|
2455
|
+
fill: "currentColor"
|
|
2456
|
+
}
|
|
2457
|
+
),
|
|
2458
|
+
/* @__PURE__ */ jsx15(
|
|
2459
|
+
"path",
|
|
2460
|
+
{
|
|
2461
|
+
d: "M81.1936 70.3225C88.8545 70.3225 95.0646 76.5325 95.0646 84.1935C95.0646 91.8544 88.8545 98.0644 81.1936 98.0644C73.5327 98.0644 67.3226 91.8544 67.3226 84.1935C67.3226 76.5325 73.5327 70.3225 81.1936 70.3225ZM81.1936 75.8709C80.8257 75.8709 80.4729 76.017 80.2128 76.2772C79.9526 76.5373 79.8065 76.8901 79.8065 77.258V84.1935C79.8066 84.5613 79.9528 84.9141 80.2129 85.1742L84.3742 89.3354C84.6358 89.5881 84.9862 89.7279 85.3499 89.7248C85.7136 89.7216 86.0615 89.5757 86.3187 89.3185C86.5758 89.0614 86.7217 88.7135 86.7249 88.3498C86.728 87.9861 86.5882 87.6357 86.3356 87.3741L82.5807 83.6192V77.258C82.5807 76.8901 82.4346 76.5373 82.1744 76.2772C81.9143 76.017 81.5615 75.8709 81.1936 75.8709Z",
|
|
2462
|
+
fill: "currentColor"
|
|
2463
|
+
}
|
|
2464
|
+
)
|
|
2465
|
+
] });
|
|
2466
|
+
var MenuDotsIcon = () => /* @__PURE__ */ jsxs6("svg", { width: "16", height: "16", viewBox: "0 0 3 19", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [
|
|
2467
|
+
/* @__PURE__ */ jsx15(
|
|
2468
|
+
"path",
|
|
2469
|
+
{
|
|
2470
|
+
d: "M1.47273 0.727539C1.90909 0.727539 2.27273 0.854812 2.56364 1.10936C2.85455 1.373 3 1.7639 3 2.28209C3 2.80027 2.85455 3.19118 2.56364 3.45481C2.27273 3.72754 1.90909 3.8639 1.47273 3.8639C1.05455 3.8639 0.704544 3.72754 0.422727 3.45481C0.140909 3.19118 -2.265e-08 2.80027 0 2.28209C2.265e-08 1.7639 0.140909 1.373 0.422728 1.10936C0.704544 0.854812 1.05455 0.727539 1.47273 0.727539Z",
|
|
2471
|
+
fill: "currentColor"
|
|
2472
|
+
}
|
|
2473
|
+
),
|
|
2474
|
+
/* @__PURE__ */ jsx15(
|
|
2475
|
+
"path",
|
|
2476
|
+
{
|
|
2477
|
+
d: "M1.47273 7.86426C1.90909 7.86426 2.27273 7.99152 2.56364 8.2461C2.85455 8.50974 3 8.90064 3 9.4188C3 9.93702 2.85455 10.3279 2.56364 10.5916C2.27273 10.8643 1.90909 11.0006 1.47273 11.0006C1.05455 11.0006 0.704544 10.8643 0.422727 10.5916C0.140909 10.3279 -2.265e-08 9.93702 0 9.4188C2.26506e-08 8.90064 0.140909 8.50974 0.422727 8.2461C0.704544 7.99152 1.05455 7.86426 1.47273 7.86426Z",
|
|
2478
|
+
fill: "currentColor"
|
|
2479
|
+
}
|
|
2480
|
+
),
|
|
2481
|
+
/* @__PURE__ */ jsx15(
|
|
2482
|
+
"path",
|
|
2483
|
+
{
|
|
2484
|
+
d: "M1.47273 15C1.90909 15 2.27273 15.1273 2.56364 15.3818C2.85455 15.6454 3 16.0363 3 16.5545C3 17.0727 2.85455 17.4636 2.56364 17.7272C2.27273 18 1.90909 18.1363 1.47273 18.1363C1.05455 18.1363 0.704544 18 0.422727 17.7272C0.140909 17.4636 -2.26494e-08 17.0727 0 16.5545C2.26515e-08 16.0363 0.140909 15.6454 0.422727 15.3818C0.704544 15.1273 1.05455 15 1.47273 15Z",
|
|
2485
|
+
fill: "currentColor"
|
|
2486
|
+
}
|
|
2487
|
+
)
|
|
2488
|
+
] });
|
|
2489
|
+
var ShoutoutIcon = () => /* @__PURE__ */ jsx15("svg", { width: "16", height: "16", viewBox: "0 0 100 100", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: /* @__PURE__ */ jsx15(
|
|
2490
|
+
"path",
|
|
2491
|
+
{
|
|
2492
|
+
fillRule: "evenodd",
|
|
2493
|
+
clipRule: "evenodd",
|
|
2494
|
+
d: "M8.41744 57.156C8.37638 53.1769 9.89556 49.6483 13.4609 48.4949L13.5498 48.3446C13.6541 48.1403 13.793 47.9557 13.9604 47.7987C14.1762 47.6409 14.42 47.5249 14.679 47.4573L14.8774 47.3823C32.1633 41.0487 39.9576 31.5414 44.44 25.0849C44.44 31.4254 46.0343 39.6905 48.8401 47.6896C51.7212 55.8795 55.8816 63.8716 60.9595 69.3659C55.6696 67.8643 49.0317 65.9535 38.2332 67.4208C37.7811 68.5196 37.5217 69.6878 37.4669 70.8741C37.4311 71.2442 37.4735 71.6177 37.5914 71.9704C37.7094 72.3228 37.8998 72.647 38.1509 72.9216L38.3154 73.072C38.9997 73.6929 39.335 74.0002 39.4856 74.5531C39.5861 75.285 39.5559 76.0289 39.3965 76.7506L39.335 77.208C39.0817 79.2076 40.0534 79.6171 41.0185 80.0265C41.9833 80.4363 42.736 80.7638 43.1261 81.8625C43.1535 81.9514 43.1535 82.0467 43.1261 82.1355C42.7291 84.183 41.4152 85.3023 40.0947 86.4285C39.773 86.7084 39.4443 86.9883 39.1639 87.2543H39.1229C36.4403 89.3974 34.6268 88.824 33.2513 87.1043C32.1701 85.7392 31.4174 83.6917 30.7194 81.774L30.4183 80.9412C29.2879 77.5695 28.3736 74.1295 27.681 70.6421L27.4483 69.6183C26.853 69.7822 26.2303 69.9666 25.5801 70.1576C24.759 70.3965 23.9378 70.656 23.1234 70.9151L22.8634 71.0109C22.7283 71.0995 22.5701 71.1465 22.4083 71.1465C22.2466 71.1465 22.0884 71.0995 21.9532 71.0109C17.6352 72.4441 14.0288 70.3965 11.6201 66.9839C10.6031 65.5438 9.81597 63.9552 9.28652 62.2745C8.74424 60.6207 8.45135 58.8957 8.41744 57.156ZM68.5073 22.0478C68.2911 22.2123 68.0442 22.3323 67.7809 22.4008C67.5179 22.4693 67.2435 22.485 66.9742 22.4469C66.7048 22.4088 66.4459 22.3177 66.212 22.1789C65.9784 22.04 65.7746 21.8563 65.6127 21.6383L65.5648 21.5768C65.2511 21.1374 65.1207 20.5936 65.2013 20.0601C65.2815 19.5267 65.5667 19.0452 65.9961 18.7171C69.3218 16.2669 72.6339 13.7963 75.9597 11.4007C76.3982 11.084 76.9422 10.9472 77.479 11.0185C78.0266 11.1023 78.5188 11.3992 78.8474 11.8443V11.8784C79.1633 12.3189 79.2912 12.8661 79.2034 13.4004C79.1638 13.6716 79.0703 13.9322 78.928 14.1667C78.7859 14.4011 78.598 14.6048 78.3754 14.7654L68.5073 22.0478ZM79.3128 61.4282C79.042 61.4227 78.7751 61.3637 78.5274 61.2549C78.2793 61.1458 78.0556 60.9891 77.8688 60.7937C77.6802 60.6005 77.5318 60.3718 77.4319 60.1212C77.3322 59.8707 77.283 59.6027 77.2871 59.3331V59.2852C77.2871 59.0122 77.3419 58.742 77.448 58.4906C77.554 58.239 77.7096 58.0111 77.9053 57.8204C78.101 57.6297 78.333 57.4796 78.5877 57.3797C78.8424 57.2797 79.1146 57.2313 79.3881 57.2377C83.0629 57.2377 86.7992 57.3741 90.474 57.4425C91.0266 57.455 91.5517 57.6842 91.936 58.0801C92.3202 58.4762 92.5326 59.0072 92.527 59.5581C92.5162 60.1118 92.2876 60.6387 91.8906 61.0257C91.6957 61.2167 91.4648 61.367 91.2109 61.4678C90.9571 61.5686 90.6855 61.6179 90.4125 61.6126L79.3333 61.4011L79.3128 61.4282ZM79.6345 50.7061C79.3632 50.7293 79.0896 50.6986 78.8305 50.6156C78.5711 50.5325 78.3308 50.3988 78.124 50.2222C77.9169 50.0455 77.7472 49.8296 77.6249 49.5871C77.5022 49.3443 77.4294 49.0799 77.4103 48.8089V48.761C77.3796 48.2206 77.5598 47.6891 77.9131 47.2782C78.2666 46.8671 78.7657 46.6085 79.3059 46.5565C82.7276 46.2835 86.2109 45.9901 89.6393 45.7716C90.1872 45.7376 90.7265 45.9198 91.1409 46.2783C91.5556 46.6371 91.8125 47.1437 91.8563 47.6896C91.8781 47.9615 91.8449 48.235 91.7594 48.4938C91.6735 48.753 91.5365 48.9922 91.3568 49.1979C90.9958 49.6159 90.4848 49.8758 89.9333 49.9212C86.6145 50.249 82.9671 50.522 79.6345 50.6994V50.7061ZM78.1564 40.7483C77.8917 40.8234 77.6149 40.8455 77.3417 40.8137C77.0684 40.7818 76.804 40.6966 76.5637 40.5628C76.3234 40.4291 76.1122 40.2495 75.9414 40.0344C75.7709 39.819 75.6446 39.5723 75.5696 39.3085C75.4946 39.0474 75.4721 38.7744 75.504 38.5051C75.5358 38.2354 75.6208 37.9749 75.7542 37.7385C76.0253 37.256 76.4746 36.8983 77.0067 36.7421C80.5719 35.807 84.1235 34.6606 87.6889 33.7049C87.9503 33.6301 88.2241 33.608 88.4943 33.6396C88.7645 33.6711 89.0258 33.7561 89.2628 33.8893C89.7409 34.1548 90.0966 34.5952 90.255 35.1176C90.4053 35.65 90.3383 36.2197 90.0692 36.7028C89.8001 37.1862 89.3503 37.5436 88.8179 37.6975L78.1495 40.7348L78.1564 40.7483ZM73.8451 30.9749C73.5998 31.0968 73.3327 31.1693 73.0595 31.1883C72.7859 31.2073 72.5113 31.1724 72.2516 31.0855C71.9917 30.9987 71.7514 30.8617 71.5446 30.6823C71.3378 30.5029 71.1683 30.2846 71.0463 30.0399C70.9211 29.7961 70.8464 29.5297 70.8264 29.2566C70.8065 28.9834 70.8417 28.709 70.93 28.4497C71.1066 27.9257 71.4826 27.4919 71.977 27.2416L82.2418 22.1297C82.4862 22.0031 82.7537 21.9268 83.028 21.9055C83.3026 21.8841 83.5787 21.918 83.84 22.0053C84.1011 22.0925 84.3419 22.2313 84.5482 22.4133C84.7544 22.5953 84.9219 22.8168 85.0407 23.0647C85.1644 23.309 85.238 23.5756 85.2569 23.8488C85.2757 24.1219 85.2394 24.396 85.15 24.655C84.9731 25.1771 84.5969 25.6087 84.103 25.8561L73.8382 30.9749H73.8451ZM48.6211 19.2085C48.71 19.1062 48.8058 19.0106 48.8949 18.9219C49.1757 18.6015 49.5206 18.3435 49.9076 18.1643C50.3495 18.0167 50.8243 17.9978 51.2763 18.1097C52.8161 18.3554 54.4653 19.4747 56.1419 21.1878C60.2477 25.4125 64.5726 33.4729 67.6522 41.9429C70.7315 50.4126 72.5791 59.2511 71.6553 64.9909C71.3062 67.1273 70.5809 68.854 69.3902 69.9937L69.3287 70.0416C68.8279 70.4004 68.2485 70.6346 67.6383 70.7241C67.5843 70.6748 67.5273 70.6294 67.4672 70.5876C63.3683 67.6663 59.7414 62.8207 56.6892 57.1217C57.4693 57.272 58.4684 56.6917 59.4266 55.702C64.2168 50.6651 61.8628 41.861 55.8885 39.8204C53.4523 39.0012 51.03 39.0012 50.0718 39.4721L49.9694 39.5266C47.7795 31.0978 47.1566 23.3036 48.6211 19.2085Z",
|
|
2495
|
+
fill: "currentColor"
|
|
2496
|
+
}
|
|
2497
|
+
) });
|
|
2498
|
+
var VipIcon = () => /* @__PURE__ */ jsx15("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: /* @__PURE__ */ jsx15(
|
|
2499
|
+
"path",
|
|
2500
|
+
{
|
|
2501
|
+
fillRule: "evenodd",
|
|
2502
|
+
clipRule: "evenodd",
|
|
2503
|
+
d: "M17.42 3C17.7447 2.99997 18.0645 3.07898 18.3518 3.23021C18.6391 3.38144 18.8853 3.60034 19.069 3.868L19.156 4.008L22.49 9.84C22.6936 10.196 22.7828 10.6059 22.7456 11.0143C22.7084 11.4226 22.5466 11.8097 22.282 12.123L22.168 12.246L12.885 21.529C12.6673 21.7467 12.3769 21.8764 12.0694 21.8931C11.762 21.9099 11.4592 21.8127 11.219 21.62L11.117 21.53L1.83403 12.246C1.54405 11.9562 1.35016 11.5842 1.27861 11.1805C1.20707 10.7768 1.26132 10.3608 1.43403 9.989L1.51203 9.839L4.84503 4.007C5.00611 3.72508 5.23342 3.48661 5.50731 3.31221C5.78119 3.13781 6.09342 3.03271 6.41703 3.006L6.58003 3H17.42ZM7.29303 9.293C7.10555 9.48053 7.00024 9.73484 7.00024 10C7.00024 10.2652 7.10555 10.5195 7.29303 10.707L11.116 14.53C11.2321 14.6461 11.3699 14.7382 11.5216 14.8011C11.6733 14.8639 11.8358 14.8962 12 14.8962C12.1642 14.8962 12.3268 14.8639 12.4785 14.8011C12.6301 14.7382 12.7679 14.6461 12.884 14.53L16.707 10.707C16.8025 10.6148 16.8787 10.5044 16.9311 10.3824C16.9835 10.2604 17.0111 10.1292 17.0123 9.9964C17.0134 9.86362 16.9881 9.73194 16.9378 9.60905C16.8876 9.48615 16.8133 9.3745 16.7194 9.28061C16.6255 9.18671 16.5139 9.11246 16.391 9.06218C16.2681 9.0119 16.1364 8.9866 16.0036 8.98775C15.8708 8.9889 15.7396 9.01649 15.6176 9.0689C15.4956 9.12131 15.3853 9.19749 15.293 9.293L12 12.586L8.70703 9.293C8.5195 9.10553 8.26519 9.00021 8.00003 9.00021C7.73486 9.00021 7.48055 9.10553 7.29303 9.293Z",
|
|
2504
|
+
fill: "currentColor"
|
|
2505
|
+
}
|
|
2506
|
+
) });
|
|
2507
|
+
var RemoveVipIcon = () => /* @__PURE__ */ jsx15("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: /* @__PURE__ */ jsx15(
|
|
2508
|
+
"path",
|
|
2509
|
+
{
|
|
2510
|
+
d: "M17.9995 13C18.6561 13 19.3069 13.1296 19.9136 13.3809C20.5201 13.6321 21.0714 14.0006 21.5356 14.4648C21.9998 14.9291 22.3684 15.4804 22.6196 16.0869C22.8708 16.6934 22.9995 17.3435 22.9995 18C22.9995 18.6565 22.8708 19.3066 22.6196 19.9131C22.3684 20.5196 21.9998 21.0709 21.5356 21.5352C21.0714 21.9994 20.5201 22.3679 19.9136 22.6191C19.3069 22.8704 18.6561 23 17.9995 23C16.6736 22.9999 15.4019 22.4727 14.4644 21.5352C13.5268 20.5975 12.9995 19.326 12.9995 18C12.9995 16.674 13.5268 15.4025 14.4644 14.4648C15.4019 13.5273 16.6736 13.0001 17.9995 13ZM17.4204 3C17.7449 3.00004 18.0649 3.07933 18.3521 3.23047C18.6392 3.38169 18.8852 3.60063 19.0688 3.86816L19.1558 4.00781L22.4897 9.83984C22.6933 10.1958 22.7828 10.6063 22.7456 11.0146C22.7083 11.4229 22.5462 11.8098 22.2817 12.123L22.1675 12.2461L21.3745 13.0381C20.413 12.3829 19.2507 12 17.9995 12C14.686 12.0003 11.9995 14.6864 11.9995 18C11.9995 19.2515 12.3832 20.4134 13.0386 21.375L12.8853 21.5293C12.6676 21.7469 12.3771 21.8767 12.0698 21.8936C11.7625 21.9103 11.4593 21.8127 11.2192 21.6201L11.1167 21.5303L1.8335 12.2461C1.54369 11.9563 1.35037 11.5842 1.27881 11.1807C1.20728 10.777 1.26145 10.3611 1.43408 9.98926L1.51221 9.83887L4.84521 4.00684C5.00627 3.72505 5.23356 3.48685 5.50732 3.3125C5.78107 3.13819 6.09308 3.03263 6.4165 3.00586L6.57959 3H17.4204ZM15.2222 18.5557H20.7778V17.4443H15.2222V18.5557ZM16.0034 8.9873C15.8707 8.98848 15.7396 9.01695 15.6177 9.06934C15.4957 9.12174 15.3847 9.19748 15.2925 9.29297L11.9995 12.5859L8.70654 9.29297C8.51904 9.10565 8.26456 9 7.99951 9C7.73453 9.00013 7.47989 9.10561 7.29248 9.29297C7.10516 9.48047 7.00049 9.73495 7.00049 10C7.00049 10.265 7.10516 10.5195 7.29248 10.707L11.1157 14.5303C11.2318 14.6464 11.3703 14.7379 11.522 14.8008C11.6734 14.8635 11.8356 14.8964 11.9995 14.8965C12.1636 14.8965 12.3264 14.8636 12.478 14.8008C12.6297 14.7379 12.7682 14.6464 12.8843 14.5303L16.7065 10.707C16.802 10.6149 16.8787 10.5047 16.9312 10.3828C16.9836 10.2608 17.0111 10.1289 17.0122 9.99609C17.0133 9.86355 16.9881 9.73207 16.938 9.60938C16.8877 9.48649 16.8131 9.37416 16.7192 9.28027C16.6255 9.18657 16.5138 9.11273 16.3911 9.0625C16.2682 9.01223 16.1362 8.98615 16.0034 8.9873Z",
|
|
2511
|
+
fill: "currentColor"
|
|
2512
|
+
}
|
|
2513
|
+
) });
|
|
2514
|
+
var ModeratorIcon = () => /* @__PURE__ */ jsx15("svg", { width: "16", height: "16", viewBox: "0 0 20 17", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: /* @__PURE__ */ jsx15(
|
|
2515
|
+
"path",
|
|
2516
|
+
{
|
|
2517
|
+
fillRule: "evenodd",
|
|
2518
|
+
clipRule: "evenodd",
|
|
2519
|
+
d: "M10 2.13654C9.51779 2.13654 9.05533 2.3281 8.71435 2.66907C8.37338 3.01005 8.18182 3.47251 8.18182 3.95472C8.18182 4.43693 8.37338 4.8994 8.71435 5.24037C9.05533 5.58135 9.51779 5.7729 10 5.7729C10.4822 5.7729 10.9447 5.58135 11.2856 5.24037C11.6266 4.8994 11.8182 4.43693 11.8182 3.95472C11.8182 3.47251 11.6266 3.01005 11.2856 2.66907C10.9447 2.3281 10.4822 2.13654 10 2.13654ZM7.4287 1.38343C8.11065 0.701475 9.03558 0.318359 10 0.318359C10.9644 0.318359 11.8893 0.701475 12.5713 1.38343C13.2532 2.06538 13.6364 2.9903 13.6364 3.95472C13.6364 4.91915 13.2532 5.84407 12.5713 6.52602C11.8893 7.20797 10.9644 7.59109 10 7.59109C9.03558 7.59109 8.11065 7.20797 7.4287 6.52602C6.74675 5.84407 6.36364 4.91915 6.36364 3.95472C6.36364 2.9903 6.74675 2.06538 7.4287 1.38343ZM3.63636 5.7729C3.39526 5.7729 3.16403 5.86868 2.99354 6.03917C2.82305 6.20966 2.72727 6.44089 2.72727 6.682C2.72727 6.9231 2.82305 7.15433 2.99354 7.32482C3.16403 7.49531 3.39526 7.59109 3.63636 7.59109C3.87747 7.59109 4.1087 7.49531 4.27919 7.32482C4.44968 7.15433 4.54545 6.9231 4.54545 6.682C4.54545 6.44089 4.44968 6.20966 4.27919 6.03917C4.1087 5.86868 3.87747 5.7729 3.63636 5.7729ZM1.70789 4.75352C2.21935 4.24206 2.91305 3.95472 3.63636 3.95472C4.35968 3.95472 5.05337 4.24206 5.56484 4.75352C6.0763 5.26499 6.36364 5.95868 6.36364 6.682C6.36364 7.40531 6.0763 8.09901 5.56484 8.61047C5.05337 9.12193 4.35968 9.40927 3.63636 9.40927C2.91305 9.40927 2.21935 9.12193 1.70789 8.61047C1.19643 8.09901 0.909091 7.40531 0.909091 6.682C0.909091 5.95868 1.19643 5.26499 1.70789 4.75352ZM16.3636 5.7729C16.1225 5.7729 15.8913 5.86868 15.7208 6.03917C15.5503 6.20966 15.4545 6.44089 15.4545 6.682C15.4545 6.9231 15.5503 7.15433 15.7208 7.32482C15.8913 7.49531 16.1225 7.59109 16.3636 7.59109C16.6047 7.59109 16.836 7.49531 17.0065 7.32482C17.1769 7.15433 17.2727 6.9231 17.2727 6.682C17.2727 6.44089 17.1769 6.20966 17.0065 6.03917C16.836 5.86868 16.6047 5.7729 16.3636 5.7729ZM14.4352 4.75352C14.9466 4.24206 15.6403 3.95472 16.3636 3.95472C17.087 3.95472 17.7806 4.24206 18.2921 4.75352C18.8036 5.26499 19.0909 5.95868 19.0909 6.682C19.0909 7.40531 18.8036 8.09901 18.2921 8.61047C17.7806 9.12193 17.087 9.40927 16.3636 9.40927C15.6403 9.40927 14.9466 9.12193 14.4352 8.61047C13.9237 8.09901 13.6364 7.40531 13.6364 6.682C13.6364 5.95868 13.9237 5.26499 14.4352 4.75352ZM10 10.3177C9.27296 10.3177 8.56259 10.5355 7.96053 10.9431C7.39298 11.3273 6.94622 11.8635 6.67059 12.4891L6.45141 14.8638H13.6364V14.0048C13.5338 13.0925 13.3802 12.5464 13.157 12.1348C12.9377 11.7303 12.6105 11.3803 12.0198 10.9299C11.422 10.5308 10.7191 10.3177 10 10.3177ZM15.4545 14.8638H18.1818V13.9548C18.1818 13.9548 18.1818 13.9548 18.1818 13.9548C18.1818 13.577 18.064 13.2085 17.8449 12.9006C17.6258 12.5928 17.3162 12.3608 16.9592 12.2371C16.708 12.15 16.1524 12.1222 15.4066 12.4951C15.3508 12.523 15.2936 12.5446 15.2356 12.5602C15.3305 12.9552 15.3978 13.384 15.4492 13.8563C15.4528 13.889 15.4545 13.9219 15.4545 13.9547V14.8638ZM14.5331 10.9019C14.16 10.3498 13.6784 9.90601 13.0986 9.46605C13.0855 9.45617 13.0722 9.44664 13.0587 9.43747C12.1558 8.82623 11.0904 8.49954 10 8.49954C8.90962 8.49954 7.84425 8.82623 6.9413 9.43747C6.38148 9.81643 5.90002 10.294 5.5184 10.8435C5.25068 10.6815 4.96166 10.5539 4.65786 10.465C3.93258 10.2527 3.15917 10.2716 2.44515 10.5192C1.73113 10.7668 1.11198 11.2306 0.673772 11.8463C0.235558 12.462 5.52698e-05 13.1989 0 13.9547V15.7729C0 16.275 0.407014 16.682 0.909091 16.682H19.0909C19.593 16.682 20 16.275 20 15.7729V13.9547C19.9999 13.199 19.7644 12.462 19.3262 11.8463C18.888 11.2306 18.2689 10.7668 17.5548 10.5192C16.7351 10.235 15.6658 10.3327 14.5934 10.8689C14.5728 10.8792 14.5526 10.8903 14.5331 10.9019ZM4.83553 12.5883C4.63736 12.4144 4.40269 12.2848 4.14711 12.21C3.78447 12.1038 3.39777 12.1133 3.04076 12.2371C2.68375 12.3608 2.37417 12.5928 2.15507 12.9006C1.93597 13.2085 1.81822 13.5769 1.81818 13.9547C1.81818 13.9547 1.81818 13.9547 1.81818 13.9547V14.8638H4.6255L4.83553 12.5883Z",
|
|
2520
|
+
fill: "currentColor"
|
|
2521
|
+
}
|
|
2522
|
+
) });
|
|
2523
|
+
|
|
2524
|
+
// src/components/ChatMessageItem/ChatMessageItem.tsx
|
|
2525
|
+
import { jsx as jsx16, jsxs as jsxs7 } from "react/jsx-runtime";
|
|
2526
|
+
var DEFAULT_MOD_ACTION_LABELS = {
|
|
2527
|
+
delete: "Delete Message",
|
|
2528
|
+
copy: "Copy to clipboard",
|
|
2529
|
+
translate: "Translate message",
|
|
2530
|
+
pin: "Pin Message",
|
|
2531
|
+
unpin: "Unpin Message",
|
|
2532
|
+
shoutout: "Shoutout",
|
|
2533
|
+
ban: "Ban User",
|
|
2534
|
+
unban: "Unban User",
|
|
2535
|
+
timeout: "Timeout User",
|
|
2536
|
+
warn: "Warn User",
|
|
2537
|
+
"add-vip": "Add VIP",
|
|
2538
|
+
"remove-vip": "Remove VIP",
|
|
2539
|
+
"add-moderator": "Add Moderator",
|
|
2540
|
+
"remove-moderator": "Remove Moderator",
|
|
2541
|
+
profile: "View Profile"
|
|
2542
|
+
};
|
|
2543
|
+
function ModActionButton({
|
|
2544
|
+
title,
|
|
2545
|
+
placement,
|
|
2546
|
+
danger,
|
|
2547
|
+
onClick,
|
|
2548
|
+
children
|
|
2549
|
+
}) {
|
|
2550
|
+
return /* @__PURE__ */ jsx16(Tooltip3, { title, placement, children: /* @__PURE__ */ jsx16(
|
|
2551
|
+
"span",
|
|
2552
|
+
{
|
|
2553
|
+
className: classNames7("ls-chat-message__modbtn", { "ls-chat-message__modbtn--danger": danger }),
|
|
2554
|
+
onClick,
|
|
2555
|
+
children
|
|
2556
|
+
}
|
|
2557
|
+
) });
|
|
2558
|
+
}
|
|
2559
|
+
function ChatMessageItem({
|
|
2560
|
+
username,
|
|
2561
|
+
displayname,
|
|
2562
|
+
message,
|
|
2563
|
+
avatar,
|
|
2564
|
+
fallbackAvatar,
|
|
2565
|
+
avatarPrefix,
|
|
2566
|
+
color,
|
|
2567
|
+
timestamp,
|
|
2568
|
+
reply,
|
|
2569
|
+
badges,
|
|
2570
|
+
platform,
|
|
2571
|
+
platformIcon,
|
|
2572
|
+
actions,
|
|
2573
|
+
showAvatar = true,
|
|
2574
|
+
showTimestamp = false,
|
|
2575
|
+
showBadges = true,
|
|
2576
|
+
className,
|
|
2577
|
+
title,
|
|
2578
|
+
data,
|
|
2579
|
+
modActions,
|
|
2580
|
+
onModAction,
|
|
2581
|
+
modActionLabels,
|
|
2582
|
+
modActionsTooltipPlacement = "top",
|
|
2583
|
+
modMenuAnchor = "pointer",
|
|
2584
|
+
isSelf = false,
|
|
2585
|
+
isVip = false,
|
|
2586
|
+
isMod = false,
|
|
2587
|
+
isPinned = false,
|
|
2588
|
+
onUsernameClick,
|
|
2589
|
+
onClick,
|
|
2590
|
+
onMouseEnter,
|
|
2591
|
+
onMouseLeave
|
|
2592
|
+
}) {
|
|
2593
|
+
const [hovered, setHovered] = useState5(false);
|
|
2594
|
+
const [menuPosition, setMenuPosition] = useState5(null);
|
|
2595
|
+
const [menuAnchorEl, setMenuAnchorEl] = useState5(null);
|
|
2596
|
+
const name = displayname || username;
|
|
2597
|
+
const siteIcon = platformIcon ?? (platform ? /* @__PURE__ */ jsx16(PlatformIcon, { platform }) : null);
|
|
2598
|
+
const has = (action) => Boolean(modActions?.includes(action));
|
|
2599
|
+
const label = (action) => modActionLabels?.[action] ?? DEFAULT_MOD_ACTION_LABELS[action];
|
|
2600
|
+
const vipAction = isVip ? "remove-vip" : "add-vip";
|
|
2601
|
+
const moderatorAction = isMod ? "remove-moderator" : "add-moderator";
|
|
2602
|
+
const overflowActions = ["shoutout", vipAction, moderatorAction, "unban"];
|
|
2603
|
+
const hasOverflowMenuItems = overflowActions.some((action) => has(action));
|
|
2604
|
+
const hasVisibleModActions = Boolean(onModAction && modActions?.some((action) => action !== "profile"));
|
|
2605
|
+
const closeMenu = () => {
|
|
2606
|
+
setMenuPosition(null);
|
|
2607
|
+
setMenuAnchorEl(null);
|
|
2608
|
+
};
|
|
2609
|
+
const fire = (action) => {
|
|
2610
|
+
onModAction?.(action, data);
|
|
2611
|
+
};
|
|
2612
|
+
const handleMenuOpen = (event) => {
|
|
2613
|
+
if (!hasOverflowMenuItems) {
|
|
2614
|
+
return;
|
|
2615
|
+
}
|
|
2616
|
+
event.preventDefault();
|
|
2617
|
+
event.stopPropagation();
|
|
2618
|
+
if (modMenuAnchor === "element") {
|
|
2619
|
+
setMenuAnchorEl((prev) => prev ? null : event.currentTarget);
|
|
2620
|
+
} else {
|
|
2621
|
+
setMenuPosition((prev) => prev === null ? { top: event.clientY - 4, left: event.clientX - 2 } : null);
|
|
2622
|
+
}
|
|
2623
|
+
};
|
|
2624
|
+
const menuItem = (action, icon) => has(action) ? /* @__PURE__ */ jsxs7(
|
|
2625
|
+
MenuItem2,
|
|
2626
|
+
{
|
|
2627
|
+
onClick: () => {
|
|
2628
|
+
fire(action);
|
|
2629
|
+
closeMenu();
|
|
2630
|
+
},
|
|
2631
|
+
children: [
|
|
2632
|
+
/* @__PURE__ */ jsx16(ListItemIcon, { children: /* @__PURE__ */ jsx16("span", { className: "ls-chat-message__menu-icon", children: icon }) }),
|
|
2633
|
+
/* @__PURE__ */ jsx16(ListItemText, { children: label(action) })
|
|
2634
|
+
]
|
|
2635
|
+
},
|
|
2636
|
+
action
|
|
2637
|
+
) : null;
|
|
2638
|
+
const builtInActions = hasVisibleModActions && hovered && !actions ? /* @__PURE__ */ jsxs7("span", { className: "ls-chat-message__modbar", children: [
|
|
2639
|
+
has("delete") && /* @__PURE__ */ jsx16(ModActionButton, { title: label("delete"), placement: modActionsTooltipPlacement, danger: true, onClick: () => fire("delete"), children: /* @__PURE__ */ jsx16(DeleteIcon, {}) }),
|
|
2640
|
+
has("pin") && /* @__PURE__ */ jsx16(
|
|
2641
|
+
ModActionButton,
|
|
2642
|
+
{
|
|
2643
|
+
title: label(isPinned ? "unpin" : "pin"),
|
|
2644
|
+
placement: modActionsTooltipPlacement,
|
|
2645
|
+
onClick: () => fire(isPinned ? "unpin" : "pin"),
|
|
2646
|
+
children: isPinned ? /* @__PURE__ */ jsx16(PinOffIcon, {}) : /* @__PURE__ */ jsx16(PinOnIcon, {})
|
|
2647
|
+
}
|
|
2648
|
+
),
|
|
2649
|
+
has("copy") && /* @__PURE__ */ jsx16(ModActionButton, { title: label("copy"), placement: modActionsTooltipPlacement, onClick: () => fire("copy"), children: /* @__PURE__ */ jsx16(CopyIcon, {}) }),
|
|
2650
|
+
has("translate") && /* @__PURE__ */ jsx16(ModActionButton, { title: label("translate"), placement: modActionsTooltipPlacement, onClick: () => fire("translate"), children: /* @__PURE__ */ jsx16(TranslateIcon, {}) }),
|
|
2651
|
+
has("ban") && !isSelf && /* @__PURE__ */ jsx16(ModActionButton, { title: label("ban"), placement: modActionsTooltipPlacement, onClick: () => fire("ban"), children: /* @__PURE__ */ jsx16(BanUserIcon, {}) }),
|
|
2652
|
+
has("timeout") && /* @__PURE__ */ jsx16(ModActionButton, { title: label("timeout"), placement: modActionsTooltipPlacement, onClick: () => fire("timeout"), children: /* @__PURE__ */ jsx16(TimeoutUserIcon, {}) }),
|
|
2653
|
+
hasOverflowMenuItems && /* @__PURE__ */ jsx16("span", { className: "ls-chat-message__modbtn", onClick: handleMenuOpen, children: /* @__PURE__ */ jsx16(MenuDotsIcon, {}) })
|
|
2654
|
+
] }) : null;
|
|
2655
|
+
const actionsNode = actions ?? builtInActions;
|
|
2656
|
+
return /* @__PURE__ */ jsxs7(
|
|
2657
|
+
"div",
|
|
2658
|
+
{
|
|
2659
|
+
className: classNames7("ls-chat-message", className),
|
|
2660
|
+
title,
|
|
2661
|
+
onClick: () => {
|
|
2662
|
+
closeMenu();
|
|
2663
|
+
onClick?.();
|
|
2664
|
+
},
|
|
2665
|
+
onMouseEnter: () => {
|
|
2666
|
+
setHovered(true);
|
|
2667
|
+
onMouseEnter?.();
|
|
2668
|
+
},
|
|
2669
|
+
onMouseLeave: () => {
|
|
2670
|
+
setHovered(false);
|
|
2671
|
+
closeMenu();
|
|
2672
|
+
onMouseLeave?.();
|
|
2673
|
+
},
|
|
2674
|
+
children: [
|
|
2675
|
+
reply ? /* @__PURE__ */ jsx16("span", { className: "ls-chat-message__reply", children: reply }) : null,
|
|
2676
|
+
showAvatar && avatarPrefix ? /* @__PURE__ */ jsx16("span", { className: "ls-chat-message__avatar-prefix", children: avatarPrefix }) : null,
|
|
2677
|
+
showAvatar && (avatar || fallbackAvatar) ? /* @__PURE__ */ jsx16("img", { className: "ls-chat-message__avatar", src: avatar || fallbackAvatar, alt: "" }) : null,
|
|
2678
|
+
siteIcon ? /* @__PURE__ */ jsx16("span", { className: "ls-chat-message__site", children: siteIcon }) : null,
|
|
2679
|
+
showTimestamp && timestamp ? /* @__PURE__ */ jsx16("span", { className: "ls-chat-message__time", children: timestamp }) : null,
|
|
2680
|
+
showBadges && badges ? /* @__PURE__ */ jsx16("span", { className: "ls-chat-message__badges", children: badges }) : null,
|
|
2681
|
+
onUsernameClick ? /* @__PURE__ */ jsxs7(
|
|
2682
|
+
"button",
|
|
2683
|
+
{
|
|
2684
|
+
type: "button",
|
|
2685
|
+
className: "ls-chat-message__username ls-chat-message__username--clickable",
|
|
2686
|
+
style: color ? { color } : void 0,
|
|
2687
|
+
onClick: (e) => {
|
|
2688
|
+
e.stopPropagation();
|
|
2689
|
+
onUsernameClick();
|
|
2690
|
+
},
|
|
2691
|
+
children: [
|
|
2692
|
+
name,
|
|
2693
|
+
":"
|
|
2694
|
+
]
|
|
2695
|
+
}
|
|
2696
|
+
) : /* @__PURE__ */ jsxs7("span", { className: "ls-chat-message__username", style: color ? { color } : void 0, children: [
|
|
2697
|
+
name,
|
|
2698
|
+
":"
|
|
2699
|
+
] }),
|
|
2700
|
+
" ",
|
|
2701
|
+
/* @__PURE__ */ jsx16("span", { className: "ls-chat-message__text", children: message }),
|
|
2702
|
+
actionsNode ? /* @__PURE__ */ jsx16("span", { className: "ls-chat-message__actions", children: actionsNode }) : null,
|
|
2703
|
+
onModAction && hasOverflowMenuItems ? /* @__PURE__ */ jsxs7(
|
|
2704
|
+
Menu,
|
|
2705
|
+
{
|
|
2706
|
+
open: modMenuAnchor === "element" ? menuAnchorEl !== null : menuPosition !== null,
|
|
2707
|
+
onClose: closeMenu,
|
|
2708
|
+
anchorEl: modMenuAnchor === "element" ? menuAnchorEl : void 0,
|
|
2709
|
+
anchorReference: modMenuAnchor === "element" ? "anchorEl" : "anchorPosition",
|
|
2710
|
+
anchorPosition: modMenuAnchor === "pointer" && menuPosition !== null ? menuPosition : void 0,
|
|
2711
|
+
anchorOrigin: modMenuAnchor === "element" ? { vertical: "bottom", horizontal: "right" } : void 0,
|
|
2712
|
+
transformOrigin: modMenuAnchor === "element" ? { vertical: "top", horizontal: "right" } : void 0,
|
|
2713
|
+
children: [
|
|
2714
|
+
menuItem("shoutout", /* @__PURE__ */ jsx16(ShoutoutIcon, {})),
|
|
2715
|
+
menuItem(vipAction, isVip ? /* @__PURE__ */ jsx16(RemoveVipIcon, {}) : /* @__PURE__ */ jsx16(VipIcon, {})),
|
|
2716
|
+
menuItem(moderatorAction, /* @__PURE__ */ jsx16(ModeratorIcon, {})),
|
|
2717
|
+
menuItem("unban", /* @__PURE__ */ jsx16(BanUserIcon, {}))
|
|
2718
|
+
]
|
|
2719
|
+
}
|
|
2720
|
+
) : null
|
|
2721
|
+
]
|
|
2722
|
+
}
|
|
2723
|
+
);
|
|
2724
|
+
}
|
|
2725
|
+
ChatMessageItem.displayName = "ChatMessageItem";
|
|
2726
|
+
|
|
2727
|
+
// src/components/ChatboxPanel/ChatboxPanel.tsx
|
|
2728
|
+
import { useEffect as useEffect5, useRef as useRef5, useState as useState7 } from "react";
|
|
2729
|
+
import MenuItem3 from "@mui/material/MenuItem";
|
|
2730
|
+
import classNames8 from "classnames";
|
|
2731
|
+
|
|
2732
|
+
// src/components/ChatboxPanel/useAutoScroll.ts
|
|
2733
|
+
import { useCallback as useCallback3, useRef as useRef4, useState as useState6 } from "react";
|
|
2734
|
+
var useAutoScroll = (threshold = 24, options) => {
|
|
2735
|
+
const containerRef = useRef4(null);
|
|
2736
|
+
const shouldAutoScrollRef = useRef4(true);
|
|
2737
|
+
const [isAtBottom, setIsAtBottom] = useState6(true);
|
|
2738
|
+
const reverse = options?.reverse ?? false;
|
|
2739
|
+
const isNearBottom = useCallback3(() => {
|
|
2740
|
+
if (!containerRef.current) return true;
|
|
2741
|
+
if (reverse) {
|
|
2742
|
+
return containerRef.current.scrollTop <= threshold;
|
|
2743
|
+
}
|
|
2744
|
+
const { scrollHeight, scrollTop, clientHeight } = containerRef.current;
|
|
2745
|
+
return scrollHeight - scrollTop - clientHeight <= threshold;
|
|
2746
|
+
}, [reverse, threshold]);
|
|
2747
|
+
const updateAutoScroll = useCallback3(() => {
|
|
2748
|
+
const near = isNearBottom();
|
|
2749
|
+
shouldAutoScrollRef.current = near;
|
|
2750
|
+
setIsAtBottom(near);
|
|
2751
|
+
}, [isNearBottom]);
|
|
2752
|
+
const scrollToBottom = useCallback3(
|
|
2753
|
+
(force = false) => {
|
|
2754
|
+
if (!containerRef.current) return;
|
|
2755
|
+
if (force || shouldAutoScrollRef.current) {
|
|
2756
|
+
containerRef.current.scrollTop = reverse ? 0 : containerRef.current.scrollHeight;
|
|
2757
|
+
shouldAutoScrollRef.current = true;
|
|
2758
|
+
setIsAtBottom(true);
|
|
2759
|
+
}
|
|
2760
|
+
},
|
|
2761
|
+
[reverse]
|
|
2762
|
+
);
|
|
2763
|
+
return {
|
|
2764
|
+
containerRef,
|
|
2765
|
+
isAtBottom,
|
|
2766
|
+
onScroll: updateAutoScroll,
|
|
2767
|
+
scrollToBottom,
|
|
2768
|
+
updateAutoScroll
|
|
2769
|
+
};
|
|
2770
|
+
};
|
|
2771
|
+
|
|
2772
|
+
// src/components/ChatboxPanel/ChatboxPanel.tsx
|
|
2773
|
+
import { jsx as jsx17, jsxs as jsxs8 } from "react/jsx-runtime";
|
|
2774
|
+
function ChatboxPanel({
|
|
2775
|
+
children,
|
|
2776
|
+
messageCount,
|
|
2777
|
+
lastMessageKey,
|
|
2778
|
+
reverse = false,
|
|
2779
|
+
fontSize = 14,
|
|
2780
|
+
fontFamily,
|
|
2781
|
+
spaceBetweenMessages = 14,
|
|
2782
|
+
showSendBar = true,
|
|
2783
|
+
sendValue,
|
|
2784
|
+
onSendValueChange,
|
|
2785
|
+
onSend,
|
|
2786
|
+
sendDisabled,
|
|
2787
|
+
inputDisabled,
|
|
2788
|
+
inputPlaceholder = "send message",
|
|
2789
|
+
platform = "",
|
|
2790
|
+
onPlatformChange,
|
|
2791
|
+
platforms,
|
|
2792
|
+
allPlatformsLabel,
|
|
2793
|
+
platformLabel = "Platform",
|
|
2794
|
+
chatAs,
|
|
2795
|
+
onChatAsChange,
|
|
2796
|
+
chatAsLabel = "Chat as",
|
|
2797
|
+
chatAsSelfLabel = "Self",
|
|
2798
|
+
chatAsBotLabel = "Bot",
|
|
2799
|
+
sendLabel = "Send",
|
|
2800
|
+
jumpToLatestLabel = "Jump to latest",
|
|
2801
|
+
id,
|
|
2802
|
+
className
|
|
2803
|
+
}) {
|
|
2804
|
+
const { containerRef, isAtBottom, onScroll, scrollToBottom } = useAutoScroll(24, { reverse });
|
|
2805
|
+
const [unreadCount, setUnreadCount] = useState7(0);
|
|
2806
|
+
const [internalValue, setInternalValue] = useState7("");
|
|
2807
|
+
const prevCountRef = useRef5(0);
|
|
2808
|
+
const prevLastKeyRef = useRef5(null);
|
|
2809
|
+
const hasInitializedRef = useRef5(false);
|
|
2810
|
+
const lineHeight = Math.round(fontSize * 1.35);
|
|
2811
|
+
const isControlled = sendValue !== void 0 || onSendValueChange !== void 0;
|
|
2812
|
+
const inputValue = (isControlled ? sendValue : internalValue) ?? "";
|
|
2813
|
+
useEffect5(() => {
|
|
2814
|
+
scrollToBottom(true);
|
|
2815
|
+
}, [scrollToBottom]);
|
|
2816
|
+
useEffect5(() => {
|
|
2817
|
+
scrollToBottom();
|
|
2818
|
+
}, [messageCount, lastMessageKey, scrollToBottom]);
|
|
2819
|
+
useEffect5(() => {
|
|
2820
|
+
scrollToBottom(true);
|
|
2821
|
+
}, [reverse, scrollToBottom]);
|
|
2822
|
+
useEffect5(() => {
|
|
2823
|
+
const prevCount = prevCountRef.current;
|
|
2824
|
+
const prevLastKey = prevLastKeyRef.current;
|
|
2825
|
+
const nextLastKey = lastMessageKey === void 0 || lastMessageKey === null ? null : String(lastMessageKey);
|
|
2826
|
+
prevCountRef.current = messageCount;
|
|
2827
|
+
prevLastKeyRef.current = nextLastKey;
|
|
2828
|
+
if (!hasInitializedRef.current) {
|
|
2829
|
+
hasInitializedRef.current = true;
|
|
2830
|
+
return;
|
|
2831
|
+
}
|
|
2832
|
+
if (messageCount === 0 || isAtBottom) {
|
|
2833
|
+
setUnreadCount(0);
|
|
2834
|
+
return;
|
|
2835
|
+
}
|
|
2836
|
+
let delta = 0;
|
|
2837
|
+
if (messageCount > prevCount) {
|
|
2838
|
+
delta = messageCount - prevCount;
|
|
2839
|
+
} else if (messageCount === prevCount && nextLastKey && nextLastKey !== prevLastKey) {
|
|
2840
|
+
delta = 1;
|
|
2841
|
+
}
|
|
2842
|
+
if (delta > 0) {
|
|
2843
|
+
setUnreadCount((count) => count + delta);
|
|
2844
|
+
}
|
|
2845
|
+
}, [messageCount, lastMessageKey, isAtBottom]);
|
|
2846
|
+
useEffect5(() => {
|
|
2847
|
+
if (isAtBottom && unreadCount !== 0) {
|
|
2848
|
+
setUnreadCount(0);
|
|
2849
|
+
}
|
|
2850
|
+
}, [isAtBottom, unreadCount]);
|
|
2851
|
+
const hasPlatformSelect = Boolean(onPlatformChange && (allPlatformsLabel != null || platforms && platforms.length > 0));
|
|
2852
|
+
const handleInputChange = (value) => {
|
|
2853
|
+
if (!isControlled) {
|
|
2854
|
+
setInternalValue(value);
|
|
2855
|
+
}
|
|
2856
|
+
onSendValueChange?.(value);
|
|
2857
|
+
};
|
|
2858
|
+
const handleSend = () => {
|
|
2859
|
+
if (!onSend) return;
|
|
2860
|
+
if (!isControlled && !inputValue.trim()) return;
|
|
2861
|
+
onSend(inputValue, platform, chatAs);
|
|
2862
|
+
if (!isControlled) {
|
|
2863
|
+
setInternalValue("");
|
|
2864
|
+
}
|
|
2865
|
+
};
|
|
2866
|
+
return /* @__PURE__ */ jsxs8("div", { className: classNames8("ls-chatbox", className), id, children: [
|
|
2867
|
+
/* @__PURE__ */ jsxs8("div", { className: "ls-chatbox__viewport", children: [
|
|
2868
|
+
/* @__PURE__ */ jsx17(
|
|
2869
|
+
"div",
|
|
2870
|
+
{
|
|
2871
|
+
className: "ls-chatbox__list",
|
|
2872
|
+
ref: containerRef,
|
|
2873
|
+
onScroll,
|
|
2874
|
+
style: {
|
|
2875
|
+
fontSize: `${fontSize}px`,
|
|
2876
|
+
lineHeight: `${lineHeight}px`,
|
|
2877
|
+
gap: `${spaceBetweenMessages}px`,
|
|
2878
|
+
fontFamily: fontFamily || "inherit"
|
|
2879
|
+
},
|
|
2880
|
+
children
|
|
2881
|
+
}
|
|
2882
|
+
),
|
|
2883
|
+
!isAtBottom && /* @__PURE__ */ jsxs8(
|
|
2884
|
+
"button",
|
|
2885
|
+
{
|
|
2886
|
+
type: "button",
|
|
2887
|
+
className: "ls-chatbox__jump",
|
|
2888
|
+
onClick: () => {
|
|
2889
|
+
scrollToBottom(true);
|
|
2890
|
+
setUnreadCount(0);
|
|
2891
|
+
},
|
|
2892
|
+
children: [
|
|
2893
|
+
/* @__PURE__ */ jsxs8(
|
|
2894
|
+
"svg",
|
|
2895
|
+
{
|
|
2896
|
+
className: classNames8("ls-chatbox__jump-arrow", { "ls-chatbox__jump-arrow--up": reverse }),
|
|
2897
|
+
width: "14",
|
|
2898
|
+
height: "14",
|
|
2899
|
+
viewBox: "0 0 24 24",
|
|
2900
|
+
fill: "none",
|
|
2901
|
+
stroke: "currentColor",
|
|
2902
|
+
strokeWidth: "2.5",
|
|
2903
|
+
strokeLinecap: "round",
|
|
2904
|
+
strokeLinejoin: "round",
|
|
2905
|
+
children: [
|
|
2906
|
+
/* @__PURE__ */ jsx17("line", { x1: "12", y1: "5", x2: "12", y2: "19" }),
|
|
2907
|
+
/* @__PURE__ */ jsx17("polyline", { points: "19 12 12 19 5 12" })
|
|
2908
|
+
]
|
|
2909
|
+
}
|
|
2910
|
+
),
|
|
2911
|
+
jumpToLatestLabel,
|
|
2912
|
+
unreadCount > 0 && /* @__PURE__ */ jsx17("span", { className: "ls-chatbox__jump-badge", children: unreadCount > 99 ? "99+" : unreadCount })
|
|
2913
|
+
]
|
|
2914
|
+
}
|
|
2915
|
+
)
|
|
2916
|
+
] }),
|
|
2917
|
+
showSendBar && onSend ? /* @__PURE__ */ jsxs8("div", { className: "ls-chatbox__sendbar", children: [
|
|
2918
|
+
/* @__PURE__ */ jsx17(
|
|
2919
|
+
LSInput,
|
|
2920
|
+
{
|
|
2921
|
+
className: "ls-chatbox__input",
|
|
2922
|
+
placeholder: inputPlaceholder,
|
|
2923
|
+
value: inputValue,
|
|
2924
|
+
disabled: inputDisabled,
|
|
2925
|
+
onChange: (e) => handleInputChange(e.target.value),
|
|
2926
|
+
onKeyUp: (e) => {
|
|
2927
|
+
if (e.key === "Enter") handleSend();
|
|
2928
|
+
}
|
|
2929
|
+
}
|
|
2930
|
+
),
|
|
2931
|
+
hasPlatformSelect ? /* @__PURE__ */ jsxs8(
|
|
2932
|
+
LSSelect,
|
|
2933
|
+
{
|
|
2934
|
+
className: "ls-chatbox__platform",
|
|
2935
|
+
label: platformLabel,
|
|
2936
|
+
value: platform,
|
|
2937
|
+
displayEmpty: true,
|
|
2938
|
+
onChange: (e) => onPlatformChange?.(String(e.target.value)),
|
|
2939
|
+
children: [
|
|
2940
|
+
allPlatformsLabel != null && /* @__PURE__ */ jsx17(MenuItem3, { value: "", children: allPlatformsLabel }),
|
|
2941
|
+
platforms?.map((option) => /* @__PURE__ */ jsx17(MenuItem3, { value: option.value, children: /* @__PURE__ */ jsxs8("span", { className: "ls-chatbox__platform-option", children: [
|
|
2942
|
+
/* @__PURE__ */ jsx17(PlatformIcon, { platform: option.value, fallback: false }),
|
|
2943
|
+
option.label
|
|
2944
|
+
] }) }, option.value))
|
|
2945
|
+
]
|
|
2946
|
+
}
|
|
2947
|
+
) : null,
|
|
2948
|
+
onChatAsChange ? /* @__PURE__ */ jsxs8(
|
|
2949
|
+
LSSelect,
|
|
2950
|
+
{
|
|
2951
|
+
className: "ls-chatbox__chatas",
|
|
2952
|
+
label: chatAsLabel,
|
|
2953
|
+
value: chatAs ?? "self",
|
|
2954
|
+
onChange: (e) => onChatAsChange(e.target.value === "bot" ? "bot" : "self"),
|
|
2955
|
+
children: [
|
|
2956
|
+
/* @__PURE__ */ jsx17(MenuItem3, { value: "self", children: chatAsSelfLabel }),
|
|
2957
|
+
/* @__PURE__ */ jsx17(MenuItem3, { value: "bot", children: chatAsBotLabel })
|
|
2958
|
+
]
|
|
2959
|
+
}
|
|
2960
|
+
) : null,
|
|
2961
|
+
/* @__PURE__ */ jsx17(
|
|
2962
|
+
LSButton,
|
|
2963
|
+
{
|
|
2964
|
+
className: "ls-chatbox__send",
|
|
2965
|
+
label: sendLabel,
|
|
2966
|
+
color: "secondary",
|
|
2967
|
+
disabled: sendDisabled ?? (!isControlled ? !inputValue.trim() : void 0),
|
|
2968
|
+
onClick: handleSend
|
|
2969
|
+
}
|
|
2970
|
+
)
|
|
2971
|
+
] }) : null
|
|
2972
|
+
] });
|
|
2973
|
+
}
|
|
2974
|
+
ChatboxPanel.displayName = "ChatboxPanel";
|
|
2975
|
+
|
|
2976
|
+
// src/components/ModalChrome/DialogChrome.tsx
|
|
2977
|
+
import Fade from "@mui/material/Fade";
|
|
2978
|
+
import Modal from "@mui/material/Modal";
|
|
2979
|
+
import classNames9 from "classnames";
|
|
2980
|
+
import { jsx as jsx18, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
2981
|
+
var DIMENSIONS = {
|
|
2982
|
+
small: { width: "30%", height: "30%" },
|
|
2983
|
+
longS: { width: "50%", height: "30%" },
|
|
2984
|
+
medium: { width: "50%", height: "50%" },
|
|
2985
|
+
longM: { width: "70%", height: "50%" },
|
|
2986
|
+
large: { width: "80%", height: "80%" },
|
|
2987
|
+
longL: { width: "90%", height: "80%" },
|
|
2988
|
+
tall: { width: "40%", height: "70%" },
|
|
2989
|
+
full: { width: "100%", height: "calc(100% - 1rem)" }
|
|
2990
|
+
};
|
|
2991
|
+
var DefaultCloseIcon = () => /* @__PURE__ */ jsxs9("svg", { width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "1.5", "aria-hidden": "true", children: [
|
|
2992
|
+
/* @__PURE__ */ jsx18("circle", { cx: "12", cy: "12", r: "10" }),
|
|
2993
|
+
/* @__PURE__ */ jsx18("line", { x1: "9", y1: "9", x2: "15", y2: "15", strokeLinecap: "round" }),
|
|
2994
|
+
/* @__PURE__ */ jsx18("line", { x1: "15", y1: "9", x2: "9", y2: "15", strokeLinecap: "round" })
|
|
2995
|
+
] });
|
|
2996
|
+
var DialogChrome = ({ children, overlayProps, closeIcon, ...props }) => {
|
|
2997
|
+
const modalBackground = overlayProps?.background ? overlayProps.background : !overlayProps?.noBackground ? "var(--gradientBg, var(--background, #151230))" : void 0;
|
|
2998
|
+
const dimensions = overlayProps?.size && DIMENSIONS[overlayProps.size] || { width: "90%", height: "90%" };
|
|
2999
|
+
return /* @__PURE__ */ jsx18(
|
|
3000
|
+
Modal,
|
|
3001
|
+
{
|
|
3002
|
+
disableEnforceFocus: true,
|
|
3003
|
+
open: props.open ?? true,
|
|
3004
|
+
onClose: (_e, reason) => {
|
|
3005
|
+
if (props.$disableBackdropClose && (reason === "backdropClick" || reason === "escapeKeyDown")) return;
|
|
3006
|
+
props.close?.();
|
|
3007
|
+
},
|
|
3008
|
+
className: "ls-dialog",
|
|
3009
|
+
style: { ...props.style, zIndex: `${props.zIndex ? props.zIndex : "2500"} !important` },
|
|
3010
|
+
children: /* @__PURE__ */ jsx18(Fade, { in: props.open, children: /* @__PURE__ */ jsxs9(
|
|
3011
|
+
"div",
|
|
3012
|
+
{
|
|
3013
|
+
className: classNames9("ls-dialog__card", {
|
|
3014
|
+
"ls-dialog__card--pad": !overlayProps?.noOuterPadding,
|
|
3015
|
+
"ls-dialog__card--full": overlayProps?.size === "full"
|
|
3016
|
+
}),
|
|
3017
|
+
style: overlayProps?.noStyle ? {} : {
|
|
3018
|
+
backgroundImage: props.backgroundImage ? `url(${props.backgroundImage})` : "",
|
|
3019
|
+
background: modalBackground,
|
|
3020
|
+
width: dimensions.width,
|
|
3021
|
+
height: dimensions.height
|
|
3022
|
+
},
|
|
3023
|
+
title: "",
|
|
3024
|
+
children: [
|
|
3025
|
+
!props.$hideTop && /* @__PURE__ */ jsxs9(
|
|
3026
|
+
"div",
|
|
3027
|
+
{
|
|
3028
|
+
className: classNames9("ls-dialog__top", { "ls-dialog__top--full": overlayProps?.size === "full" }),
|
|
3029
|
+
style: { padding: props.$noPadTitle ? "0" : "1rem" },
|
|
3030
|
+
children: [
|
|
3031
|
+
/* @__PURE__ */ jsx18("div", { className: "ls-dialog__top-side", children: props.$leftText }),
|
|
3032
|
+
/* @__PURE__ */ jsx18("div", { className: "ls-dialog__title", role: "heading", children: props.title }),
|
|
3033
|
+
props.hideClose ? /* @__PURE__ */ jsx18("div", { className: "ls-dialog__top-side" }) : /* @__PURE__ */ jsx18("div", { className: "ls-dialog__close", children: /* @__PURE__ */ jsxs9("span", { onClick: props.close, className: "ls-dialog__close-btn", children: [
|
|
3034
|
+
/* @__PURE__ */ jsx18("div", { className: "ls-dialog__close-label", children: props.closeLabel }),
|
|
3035
|
+
closeIcon ?? /* @__PURE__ */ jsx18(DefaultCloseIcon, {})
|
|
3036
|
+
] }) })
|
|
3037
|
+
]
|
|
3038
|
+
}
|
|
3039
|
+
),
|
|
3040
|
+
/* @__PURE__ */ jsx18(
|
|
3041
|
+
"div",
|
|
3042
|
+
{
|
|
3043
|
+
className: classNames9("ls-dialog__body", props.containerClass),
|
|
3044
|
+
style: { backgroundImage: props.backgroundImage ? `url(${props.backgroundImage})` : "", padding: props.noPadding ? 0 : "20px 0" },
|
|
3045
|
+
children
|
|
3046
|
+
}
|
|
3047
|
+
),
|
|
3048
|
+
!props.$hideBottom && /* @__PURE__ */ jsxs9("div", { className: "ls-dialog__bottom", children: [
|
|
3049
|
+
/* @__PURE__ */ jsx18(LSButton, { style: props.buttonStyle && props.buttonStyle, color: props.color, label: props.saveLabel, onClick: props.save, disabled: props.saveDisabled }),
|
|
3050
|
+
props.showTest && /* @__PURE__ */ jsx18(LSButton, { color: "secondary", label: props.testLabel, onClick: props.test, disabled: props.testDisabled })
|
|
3051
|
+
] })
|
|
3052
|
+
]
|
|
3053
|
+
}
|
|
3054
|
+
) })
|
|
3055
|
+
}
|
|
3056
|
+
);
|
|
3057
|
+
};
|
|
3058
|
+
DialogChrome.displayName = "DialogChrome";
|
|
3059
|
+
|
|
3060
|
+
// src/components/ModalChrome/ModalChrome.tsx
|
|
3061
|
+
import classNames11 from "classnames";
|
|
3062
|
+
|
|
3063
|
+
// src/components/ModalChrome/PanelChrome.tsx
|
|
3064
|
+
import classNames10 from "classnames";
|
|
3065
|
+
import { Fragment as Fragment4, jsx as jsx19, jsxs as jsxs10 } from "react/jsx-runtime";
|
|
3066
|
+
function PanelChrome({
|
|
3067
|
+
title,
|
|
3068
|
+
titleVariant = "heading",
|
|
3069
|
+
onClose,
|
|
3070
|
+
showClose = true,
|
|
3071
|
+
onClickAway,
|
|
3072
|
+
headerActions,
|
|
3073
|
+
footer,
|
|
3074
|
+
padding,
|
|
3075
|
+
className,
|
|
3076
|
+
bodyClassName,
|
|
3077
|
+
style,
|
|
3078
|
+
children
|
|
3079
|
+
}) {
|
|
3080
|
+
const hasHeader = Boolean(title || headerActions || onClose && showClose);
|
|
3081
|
+
const mergedStyle = padding ? { ...style, ["--ls-panel-padding"]: padding } : style;
|
|
3082
|
+
const panel = /* @__PURE__ */ jsxs10("div", { className: classNames10("ls-panel", { "ls-panel--no-header": !hasHeader }, className), style: mergedStyle, children: [
|
|
3083
|
+
hasHeader ? /* @__PURE__ */ jsxs10("div", { className: "ls-panel__header", children: [
|
|
3084
|
+
title ? /* @__PURE__ */ jsx19("span", { className: classNames10("ls-panel__title", { "ls-panel__title--label": titleVariant === "label" }), children: title }) : /* @__PURE__ */ jsx19("span", {}),
|
|
3085
|
+
/* @__PURE__ */ jsxs10("span", { className: "ls-panel__header-actions", children: [
|
|
3086
|
+
headerActions,
|
|
3087
|
+
onClose && showClose ? /* @__PURE__ */ jsx19("button", { type: "button", className: "ls-panel__close", onClick: onClose, "aria-label": "Close", children: "\u2715" }) : null
|
|
3088
|
+
] })
|
|
3089
|
+
] }) : null,
|
|
3090
|
+
/* @__PURE__ */ jsx19("div", { className: classNames10("ls-panel__body", bodyClassName), children }),
|
|
3091
|
+
footer ? /* @__PURE__ */ jsx19("div", { className: "ls-panel__footer", children: footer }) : null
|
|
3092
|
+
] });
|
|
3093
|
+
if (onClickAway) {
|
|
3094
|
+
return /* @__PURE__ */ jsxs10(Fragment4, { children: [
|
|
3095
|
+
/* @__PURE__ */ jsx19("div", { className: "ls-panel__clickaway", onClick: onClickAway }),
|
|
3096
|
+
panel
|
|
3097
|
+
] });
|
|
3098
|
+
}
|
|
3099
|
+
return panel;
|
|
3100
|
+
}
|
|
3101
|
+
PanelChrome.displayName = "PanelChrome";
|
|
3102
|
+
|
|
3103
|
+
// src/components/ModalChrome/ModalChrome.tsx
|
|
3104
|
+
import { jsx as jsx20, jsxs as jsxs11 } from "react/jsx-runtime";
|
|
3105
|
+
function ModalChrome({
|
|
3106
|
+
open = true,
|
|
3107
|
+
onClose,
|
|
3108
|
+
position = "fixed",
|
|
3109
|
+
title,
|
|
3110
|
+
titleVariant,
|
|
3111
|
+
showClose,
|
|
3112
|
+
headerActions,
|
|
3113
|
+
footer,
|
|
3114
|
+
maxWidth,
|
|
3115
|
+
fitContent,
|
|
3116
|
+
centerContent,
|
|
3117
|
+
padding = "1.25rem",
|
|
3118
|
+
cardClassName,
|
|
3119
|
+
bodyClassName,
|
|
3120
|
+
backdropClassName,
|
|
3121
|
+
cardStyle,
|
|
3122
|
+
className,
|
|
3123
|
+
children
|
|
3124
|
+
}) {
|
|
3125
|
+
if (!open) {
|
|
3126
|
+
return null;
|
|
3127
|
+
}
|
|
3128
|
+
const mergedCardStyle = maxWidth ? { ...cardStyle, ["--ls-modal-max-width"]: maxWidth } : cardStyle;
|
|
3129
|
+
return /* @__PURE__ */ jsxs11("div", { className: classNames11("ls-modal", { "ls-modal--absolute": position === "absolute" }, className), role: "dialog", "aria-modal": "true", children: [
|
|
3130
|
+
/* @__PURE__ */ jsx20("div", { className: classNames11("ls-modal__backdrop", backdropClassName), onClick: onClose }),
|
|
3131
|
+
/* @__PURE__ */ jsx20(
|
|
3132
|
+
PanelChrome,
|
|
3133
|
+
{
|
|
3134
|
+
className: classNames11(
|
|
3135
|
+
"ls-modal__card",
|
|
3136
|
+
{ "ls-modal__card--fit": fitContent, "ls-modal__card--center": centerContent },
|
|
3137
|
+
cardClassName
|
|
3138
|
+
),
|
|
3139
|
+
style: mergedCardStyle,
|
|
3140
|
+
title,
|
|
3141
|
+
titleVariant,
|
|
3142
|
+
onClose,
|
|
3143
|
+
showClose,
|
|
3144
|
+
headerActions,
|
|
3145
|
+
footer,
|
|
3146
|
+
padding,
|
|
3147
|
+
bodyClassName,
|
|
3148
|
+
children
|
|
3149
|
+
}
|
|
3150
|
+
)
|
|
3151
|
+
] });
|
|
3152
|
+
}
|
|
3153
|
+
ModalChrome.displayName = "ModalChrome";
|
|
3154
|
+
|
|
3155
|
+
// src/components/WidgetChrome/WidgetChrome.tsx
|
|
3156
|
+
import classNames12 from "classnames";
|
|
3157
|
+
import { jsx as jsx21, jsxs as jsxs12 } from "react/jsx-runtime";
|
|
3158
|
+
function WidgetChromeButton({ active, buttonRef, className, children, ...rest }) {
|
|
3159
|
+
return /* @__PURE__ */ jsx21("button", { ref: buttonRef, type: "button", className: classNames12("ls-widget__btn", { "ls-widget__btn--active": active }, className), ...rest, children });
|
|
3160
|
+
}
|
|
3161
|
+
WidgetChromeButton.displayName = "WidgetChromeButton";
|
|
3162
|
+
function WidgetChrome({ title, leftActions, rightActions, headerExtra, showHeader = true, className, headerClassName, bodyClassName, style, id, children }) {
|
|
3163
|
+
return /* @__PURE__ */ jsxs12("div", { className: classNames12("ls-widget", className), style, id, children: [
|
|
3164
|
+
showHeader ? /* @__PURE__ */ jsxs12("div", { className: classNames12("ls-widget__header", headerClassName), children: [
|
|
3165
|
+
/* @__PURE__ */ jsx21("div", { className: "ls-widget__side", children: leftActions }),
|
|
3166
|
+
/* @__PURE__ */ jsx21("div", { className: "ls-widget__title", children: /* @__PURE__ */ jsx21("span", { children: title }) }),
|
|
3167
|
+
/* @__PURE__ */ jsx21("div", { className: "ls-widget__side ls-widget__side--right", children: rightActions }),
|
|
3168
|
+
headerExtra
|
|
3169
|
+
] }) : null,
|
|
3170
|
+
/* @__PURE__ */ jsx21("div", { className: classNames12("ls-widget__body", bodyClassName), children })
|
|
3171
|
+
] });
|
|
3172
|
+
}
|
|
3173
|
+
WidgetChrome.displayName = "WidgetChrome";
|
|
3174
|
+
|
|
3175
|
+
// src/components/EventListItem/EventListItem.tsx
|
|
3176
|
+
import classNames13 from "classnames";
|
|
3177
|
+
|
|
3178
|
+
// src/components/EventList/EventTypeIcon.tsx
|
|
3179
|
+
import { jsx as jsx22 } from "react/jsx-runtime";
|
|
3180
|
+
var createEventIcon = (def) => {
|
|
3181
|
+
const Icon = (props) => /* @__PURE__ */ jsx22("svg", { width: def.width, height: def.height, viewBox: def.viewBox, fill: "none", xmlns: "http://www.w3.org/2000/svg", ...props, children: def.paths.map((path, index) => /* @__PURE__ */ jsx22("path", { fill: "currentColor", ...path }, index)) });
|
|
3182
|
+
return Icon;
|
|
3183
|
+
};
|
|
3184
|
+
var EVENT_TYPE_FALLBACK_ICON = createEventIcon({ width: "77", height: "77", viewBox: "0 0 77 77", paths: [{ d: "M32.0348 67.8488C32.2317 68.9076 33.1257 69.6727 34.166 69.6727H41.7175C42.9162 69.6727 43.8879 68.6655 43.8879 67.4232C43.8879 66.1808 42.9162 65.1736 41.7175 65.1736H35.9581L35.8144 64.4007H43.1152C44.2884 64.4007 45.2493 63.4344 45.2847 62.219C45.5196 54.1506 48.6247 48.8606 51.9394 43.5096C52.0669 43.3038 52.1949 43.0976 52.3233 42.8909C55.5088 37.7611 58.9 32.3001 58.9 24.5131C58.9 17.6282 56.2649 12.4215 52.2565 8.9757C48.3033 5.57735 43.149 4 38.1777 4C28.6499 4 18 11.1793 18 24.739C18 31.851 21.089 38.0439 24.0565 43.3454C24.5114 44.1581 24.9596 44.943 25.3964 45.7078C26.4256 47.5099 27.3909 49.2003 28.229 50.8789C29.4122 53.2488 30.2139 55.3578 30.4727 57.3163C30.6216 58.4425 31.5576 59.2766 32.6541 59.2603C33.7507 59.244 34.6633 58.3825 34.7809 57.2524C34.9706 55.4309 35.9174 53.2643 37.4928 50.7048C38.8347 48.5248 40.4985 46.2646 42.2571 43.8756C42.5436 43.4864 42.8327 43.0937 43.1233 42.6975C45.1598 39.9201 47.2572 36.9825 48.8406 34.0308C50.417 31.0923 51.6027 27.9286 51.6027 24.7014C51.6027 20.79 50.1716 17.467 47.6813 15.1412C45.2141 12.8368 41.8546 11.6443 38.1777 11.6443C30.9242 11.6443 25.2973 17.6891 25.2973 24.7014C25.2973 26.7539 25.6936 29.8348 26.7508 32.4851C27.7593 35.0129 29.7798 38.0597 33.4218 38.0597C35.1995 38.0597 36.6557 37.3883 37.738 36.2561C38.7611 35.1859 39.3371 33.826 39.6795 32.5814C40.3187 30.2583 40.3144 27.6507 40.3121 26.2771C40.312 26.1997 40.3118 26.1263 40.3118 26.057C40.3118 24.8147 39.3401 23.8075 38.1414 23.8075C36.9427 23.8075 35.971 24.8147 35.971 26.057L35.971 26.1579C35.9713 27.6034 35.9717 29.6519 35.5051 31.3476C35.2712 32.1976 34.969 32.7605 34.6545 33.0895C34.3992 33.3566 34.0583 33.5607 33.4218 33.5607C32.5619 33.5607 31.6054 32.8794 30.7623 30.766C29.968 28.7751 29.6382 26.3016 29.6382 24.7014C29.6382 20.1907 33.3053 16.1434 38.1777 16.1434C40.9631 16.1434 43.231 17.0409 44.7754 18.4834C46.2969 19.9044 47.2619 21.9851 47.2619 24.7014C47.2619 26.8215 46.469 29.1934 45.0468 31.8445C43.6316 34.4825 41.7105 37.1887 39.6673 39.9752C39.3877 40.3564 39.1055 40.7396 38.8222 41.1243C37.0726 43.5001 35.2818 45.9317 33.8333 48.2851C33.4508 48.9065 33.0824 49.5373 32.7382 50.1753C32.5285 49.7174 32.3096 49.2626 32.0842 48.8112C31.1862 47.0126 30.1213 45.1476 29.064 43.2961C28.6415 42.5561 28.2201 41.8183 27.8112 41.0877C24.861 35.817 22.3408 30.5434 22.3408 24.739C22.3408 14.1984 30.497 8.49902 38.1777 8.49902C42.3191 8.49902 46.4406 9.82125 49.4853 12.4386C52.4747 15.0085 54.5592 18.9335 54.5592 24.5131C54.5592 30.9585 51.7975 35.4143 48.5022 40.7311C48.4306 40.8466 48.3587 40.9625 48.2866 41.0789C45.1891 46.0794 41.8063 51.7178 41.0743 59.9017H33.1858C32.5382 59.9017 31.9245 60.2014 31.5122 60.7189C31.0998 61.2365 30.932 61.9178 31.0546 62.5769L32.0348 67.8488Z", fillRule: "evenodd", clipRule: "evenodd" }, { d: "M41.1547 70.6428C41.1547 72.7023 39.6065 73.2035 37.6967 73.2035C35.7868 73.2035 34.2386 72.7023 34.2386 70.6428H41.1547Z" }, { d: "M45.3289 28.7231C45.4774 28.3343 45.2937 27.8944 44.9186 27.7405L42.3201 26.6745C41.945 26.5206 41.5206 26.7111 41.3721 27.0998C41.2237 27.4886 41.4074 27.9285 41.7825 28.0823L44.381 29.1484C44.7561 29.3022 45.1805 29.1118 45.3289 28.7231Z", fillRule: "evenodd", clipRule: "evenodd" }, { d: "M31.4505 29.2716C31.6184 29.6518 32.0518 29.819 32.4186 29.6451L34.96 28.44C35.3268 28.2661 35.4881 27.8169 35.3203 27.4367C35.1525 27.0565 34.7191 26.8893 34.3522 27.0632L31.8109 28.2682C31.444 28.4422 31.2827 28.8914 31.4505 29.2716Z", fillRule: "evenodd", clipRule: "evenodd" }, { d: "M35.3 24.9243C35.4287 24.528 35.223 24.0987 34.8407 23.9653L32.1921 23.0417C31.8098 22.9084 31.3955 23.1215 31.2669 23.5178C31.1382 23.9141 31.3439 24.3434 31.7262 24.4768L34.3748 25.4004C34.7571 25.5337 35.1714 25.3206 35.3 24.9243Z", fillRule: "evenodd", clipRule: "evenodd" }, { d: "M36.7911 23.1649C37.1695 23.0199 37.3629 22.5845 37.223 22.1923L36.2535 19.474C36.1137 19.0818 35.6936 18.8814 35.3152 19.0263C34.9368 19.1713 34.7434 19.6067 34.8833 19.9989L35.8528 22.7173C35.9926 23.1094 36.4127 23.3098 36.7911 23.1649Z", fillRule: "evenodd", clipRule: "evenodd" }, { d: "M39.5322 23.0163C39.911 23.1602 40.3305 22.9585 40.4693 22.5659L41.4314 19.8448C41.5702 19.4522 41.3757 19.0173 40.9969 18.8735C40.6181 18.7296 40.1986 18.9313 40.0598 19.3238L39.0977 22.045C38.9589 22.4376 39.1534 22.8724 39.5322 23.0163Z", fillRule: "evenodd", clipRule: "evenodd" }, { d: "M41.3214 24.7192C41.4951 25.0965 41.9311 25.2564 42.2952 25.0763L44.8173 23.8284C45.1813 23.6483 45.3356 23.1964 45.1618 22.8191C44.988 22.4418 44.552 22.2819 44.1879 22.4621L41.6659 23.7099C41.3018 23.89 41.1476 24.3419 41.3214 24.7192Z", fillRule: "evenodd", clipRule: "evenodd" }] });
|
|
3185
|
+
var EVENT_TYPE_ICONS = {
|
|
3186
|
+
follower: createEventIcon({ width: "24", height: "24", viewBox: "0 0 24 24", paths: [{ d: "M12.027 21.9999C11.8 22.0004 11.5751 21.9485 11.3653 21.8473C11.1556 21.7461 10.965 21.5975 10.8046 21.41L3.62036 13.0238C3.08903 12.4036 2.67151 11.6635 2.39327 10.8488C2.11502 10.034 1.98189 9.1616 2.00198 8.28479C2.02207 7.40799 2.19497 6.54514 2.51013 5.7489C2.82529 4.95266 3.2761 4.23971 3.83507 3.65353C4.37293 3.09266 5.00222 2.66427 5.68527 2.39401C6.36831 2.12376 7.09106 2.01719 7.81022 2.0807C9.24938 2.19144 10.6049 2.90962 11.6237 4.10122L12.027 4.57192L12.61 3.89135C13.1413 3.27115 13.7753 2.7838 14.4733 2.45902C15.1713 2.13425 15.9187 1.97885 16.6698 2.00231C17.421 2.02577 18.1601 2.2276 18.8423 2.59549C19.5244 2.96338 20.1351 3.48961 20.6373 4.14209C21.1178 4.7699 21.4848 5.50446 21.7163 6.30176C21.9479 7.09907 22.0391 7.94272 21.9847 8.78218C21.8898 10.4621 21.2746 12.0443 20.2539 13.2337L13.2496 21.4099H13.2495C13.089 21.5974 12.8984 21.7461 12.6886 21.8473C12.4789 21.9486 12.254 22.0005 12.027 22V21.9999ZM7.4451 4.49251C6.62811 4.48009 5.83631 4.82243 5.22337 5.45308C4.87364 5.81932 4.59152 6.26491 4.39423 6.76266C4.19694 7.26041 4.08863 7.79987 4.0759 8.34811C4.06316 8.89635 4.14628 9.44186 4.32018 9.95136C4.49407 10.4608 4.75509 10.9236 5.08731 11.3114L12.027 19.4123L18.7868 11.5215C20.1654 9.91226 20.304 7.32882 19.0958 5.76265C18.782 5.3544 18.4003 5.02508 17.9739 4.79479C17.5474 4.56449 17.0853 4.43806 16.6156 4.42319C16.1459 4.40833 15.6786 4.50536 15.2421 4.70834C14.8057 4.91133 14.4092 5.21603 14.077 5.60383L12.7605 7.14054C12.6642 7.25298 12.5498 7.34217 12.424 7.40302C12.2981 7.46387 12.1632 7.49519 12.027 7.49519C11.8908 7.49519 11.7559 7.46387 11.6301 7.40302C11.5042 7.34217 11.3899 7.25298 11.2935 7.14054L10.1569 5.8137C9.43779 4.97274 8.46298 4.49784 7.4451 4.49261V4.49251Z" }] }),
|
|
3187
|
+
subscribers: createEventIcon({ width: "24", height: "24", viewBox: "0 0 24 24", paths: [{ d: "M12 7.58534L13.193 11.5042H16.7718L13.891 13.5455L15.0712 17.3384L12 15.0199L8.92878 17.3384L10.109 13.5455L7.22818 11.5042H10.807L12 7.58534ZM8.92878 8.98403H3.26859C2.03756 8.98403 1.52992 10.5591 2.53251 11.2648L7.15204 14.541L5.33722 20.35C4.96918 21.5219 6.33981 22.467 7.31702 21.7235L12 18.1953L16.683 21.7361C17.6602 22.4796 19.0308 21.5345 18.6628 20.3626L16.848 14.5536L21.4675 11.2774C22.4701 10.5591 21.9624 8.99664 20.7314 8.99664H15.0712L13.2056 2.89781C12.8376 1.70073 11.137 1.70073 10.7817 2.89781L8.92878 8.98403Z" }] }),
|
|
3188
|
+
gifts: createEventIcon({ width: "40", height: "40", viewBox: "0 0 40 40", paths: [{ d: "M10 9C10 7.67392 10.5268 6.40215 11.4645 5.46447C12.4021 4.52678 13.6739 4 15 4C16.3261 4 17.5979 4.52678 18.5355 5.46447C19.4732 6.40215 20 7.67392 20 9C20 7.67392 20.5268 6.40215 21.4645 5.46447C22.4021 4.52678 23.6739 4 25 4C26.3261 4 27.5979 4.52678 28.5355 5.46447C29.4732 6.40215 30 7.67392 30 9V9.012C30 9.152 30 9.552 29.924 10H34C34.5304 10 35.0391 10.2107 35.4142 10.5858C35.7893 10.9609 36 11.4696 36 12V14C36 14.5304 35.7893 15.0391 35.4142 15.4142C35.0391 15.7893 34.5304 16 34 16H6C5.46957 16 4.96086 15.7893 4.58579 15.4142C4.21071 15.0391 4 14.5304 4 14V12C4 11.4696 4.21071 10.9609 4.58579 10.5858C4.96086 10.2107 5.46957 10 6 10H10.076C10.0232 9.67336 9.99775 9.34288 10 9.012V9ZM12.136 10H18V9C18 8.60603 17.9224 8.21593 17.7716 7.85195C17.6209 7.48797 17.3999 7.15726 17.1213 6.87868C16.8427 6.6001 16.512 6.37913 16.1481 6.22836C15.7841 6.0776 15.394 6 15 6C14.606 6 14.2159 6.0776 13.8519 6.22836C13.488 6.37913 13.1573 6.6001 12.8787 6.87868C12.6001 7.15726 12.3791 7.48797 12.2284 7.85195C12.0776 8.21593 12 8.60603 12 9C12 9.17 12.004 9.548 12.09 9.86C12.102 9.90769 12.1174 9.95448 12.136 10V10ZM22 10H27.864C27.8824 9.95439 27.8978 9.90763 27.91 9.86C27.996 9.548 28 9.17 28 9C28 8.20435 27.6839 7.44129 27.1213 6.87868C26.5587 6.31607 25.7956 6 25 6C24.2044 6 23.4413 6.31607 22.8787 6.87868C22.3161 7.44129 22 8.20435 22 9V10ZM34 18V33C34 33.7956 33.6839 34.5587 33.1213 35.1213C32.5587 35.6839 31.7956 36 31 36H22V18H34ZM9 36C8.20435 36 7.44129 35.6839 6.87868 35.1213C6.31607 34.5587 6 33.7956 6 33V18H18V36H9Z" }] }),
|
|
3189
|
+
redemption: createEventIcon({ width: "24", height: "24", viewBox: "0 0 24 24", paths: [{ d: "M4.29091 1.74561L2.83636 4.14459V15.1799H6.71515V17.0991H8.65454L10.5939 15.1799H13.0182L17.3818 10.8618V1.74561H4.29091ZM15.4424 9.90218L13.0182 12.3012H10.5939L8.65454 14.2204V12.3012H5.74546V3.6648H15.4424V9.90218Z" }, { d: "M12.0472 5.58398H13.5017V9.42238H12.0472V5.58398Z" }, { d: "M9.14003 5.58398H10.5946V9.42238H9.14003V5.58398Z" }, { d: "M17.3825 22.3945C19.4147 22.3945 21.0621 20.747 21.0621 18.7148C21.0621 16.6826 19.4147 15.0352 17.3825 15.0352C15.3503 15.0352 13.7028 16.6826 13.7028 18.7148C13.7028 20.747 15.3503 22.3945 17.3825 22.3945Z", stroke: "white", strokeWidth: "1.5" }, { d: "M17.7877 16.6938C18.6549 17.0695 19.0541 17.3742 19.4038 18.31", stroke: "white", strokeLinecap: "round" }] }),
|
|
3190
|
+
donation: createEventIcon({ width: "24", height: "24", viewBox: "0 0 24 24", paths: [{ d: "M12 22C6.477 22 2 17.523 2 12C2 6.477 6.477 2 12 2C17.523 2 22 6.477 22 12C22 17.523 17.523 22 12 22ZM8.5 14V16H11V18H13V16H14C14.663 16 15.2989 15.7366 15.7678 15.2678C16.2366 14.7989 16.5 14.163 16.5 13.5C16.5 12.837 16.2366 12.2011 15.7678 11.7322C15.2989 11.2634 14.663 11 14 11H10C9.86739 11 9.74021 10.9473 9.64645 10.8536C9.55268 10.7598 9.5 10.6326 9.5 10.5C9.5 10.3674 9.55268 10.2402 9.64645 10.1464C9.74021 10.0527 9.86739 10 10 10H15.5V8H13V6H11V8H10C9.33696 8 8.70107 8.26339 8.23223 8.73223C7.76339 9.20107 7.5 9.83696 7.5 10.5C7.5 11.163 7.76339 11.7989 8.23223 12.2678C8.70107 12.7366 9.33696 13 10 13H14C14.1326 13 14.2598 13.0527 14.3536 13.1464C14.4473 13.2402 14.5 13.3674 14.5 13.5C14.5 13.6326 14.4473 13.7598 14.3536 13.8536C14.2598 13.9473 14.1326 14 14 14H8.5Z" }] }),
|
|
3191
|
+
bits: createEventIcon({ width: "24", height: "24", viewBox: "0 0 24 24", paths: [{ d: "M11.9643 21.9696C11.9576 21.9524 10.6184 19.981 8.98838 17.5888C7.35834 15.1965 6.02743 13.2363 6.03081 13.2328C6.03418 13.2293 7.36412 14.0442 8.9862 15.0438C10.6083 16.0434 11.9571 16.8618 11.9834 16.8624C12.0098 16.8631 13.365 16.0436 14.9949 15.0413C16.6247 14.0391 17.9685 13.2132 17.9809 13.2059C18.0087 13.1898 18.3202 12.7302 14.8869 17.7713C13.3032 20.0966 12.0005 21.9995 11.992 22C11.9835 22.0005 11.9711 21.9867 11.9643 21.9696ZM9.30797 14.3989C7.83646 13.4917 6.49018 12.6623 6.31624 12.5558L6 12.362L8.98571 7.20124C10.6278 4.36279 11.9753 2.02918 11.9801 2.01543C11.9849 2.00168 11.9941 1.99606 12.0005 2.00293C12.0242 2.02827 17.9949 12.3594 17.9887 12.3643C17.9625 12.3849 11.9958 16.0511 11.9904 16.0499C11.9866 16.0491 10.7795 15.3061 9.30797 14.3989Z" }] }),
|
|
3192
|
+
kicks: createEventIcon({ width: "79", height: "79", viewBox: "0 0 79 79", paths: [{ d: "M37.9846 4.24886C38.9663 3.88709 39.9927 3.88711 40.9299 4.24886L61.3693 11.7557C62.3059 12.1175 63.1091 12.7508 63.5998 13.6551L74.4445 32.6942C74.9356 33.5985 75.1141 34.6389 74.9357 35.6336L71.1867 57.2498C71.0083 58.2447 70.4729 59.1947 69.7141 59.828L53.1135 73.9373C52.3103 74.5706 51.3723 74.9325 50.3459 74.9325H28.6584C27.632 74.9325 26.6494 74.5706 25.8908 73.9373L9.29023 59.828C8.53159 59.1495 7.99608 58.2447 7.81757 57.2498L4.06855 35.6336C3.89007 34.5936 4.06902 33.5985 4.55976 32.6942L15.4045 13.6551C15.8953 12.796 16.698 12.1175 17.635 11.7557L38.0295 4.24886H37.9846ZM21.0275 18.3123V60.4149H34.8615V51.0535H39.4582V55.7117H44.0549V60.37H57.8889V46.3504H53.2922V41.6922H48.6516V37.034H53.2922V32.3768H57.8889V18.3573H44.0549V23.0155H39.4582V27.6737H34.8615V18.3123H21.0275Z" }] }),
|
|
3193
|
+
extension: createEventIcon({ width: "69", height: "69", viewBox: "0 0 69 69", paths: [{ d: "M58.5636 46.1921L34.7814 5L11 46.1921L34.7814 32.4614L58.5636 46.1921Z" }, { d: "M58.5636 50.7695L34.7814 37.0388L11 50.769L34.7814 64.5002L58.5636 50.7695Z" }] }),
|
|
3194
|
+
points: createEventIcon({ width: "40", height: "40", viewBox: "0 0 40 40", paths: [{ d: "M32.474 19.9999C32.474 13.1107 26.8892 7.52589 19.9999 7.52589C13.1107 7.52591 7.52591 13.1107 7.52589 19.9999C7.52589 26.8892 13.1107 32.474 19.9999 32.474C26.8892 32.474 32.474 26.8892 32.474 19.9999ZM34.9999 19.9999C34.9999 28.2842 28.2842 34.9999 19.9999 34.9999C11.7157 34.9999 5 28.2842 5 19.9999C5.00002 11.7157 11.7157 5.00002 19.9999 5C28.2842 5 34.9999 11.7157 34.9999 19.9999Z" }, { d: "M20.3537 11.9525C20.6223 11.3325 21.3286 11.037 21.9544 11.2712L22.0146 11.2957L22.3204 11.4296C23.8327 12.1001 25.0862 12.7827 26.1251 13.7727C27.1799 14.778 27.9368 16.0246 28.5982 17.7041L28.7291 18.046L28.7504 18.1074C28.9523 18.7443 28.6213 19.4345 27.9884 19.6711C27.3555 19.9076 26.6528 19.6037 26.3875 18.9905L26.3631 18.9301L26.2481 18.6304C25.6733 17.1703 25.0912 16.2766 24.3826 15.6013C23.6579 14.9106 22.7234 14.3721 21.3014 13.7409L21.0106 13.6134L20.9517 13.586C20.3528 13.2897 20.0852 12.5726 20.3537 11.9525Z" }] }),
|
|
3195
|
+
raids: createEventIcon({ width: "24", height: "24", viewBox: "0 0 24 24", paths: [{ d: "M14.75 15C15.716 15 16.5 15.784 16.5 16.75L16.499 17.712C16.616 19.902 14.988 21.009 12.067 21.009C9.157 21.009 7.5 19.919 7.5 17.75V16.75C7.5 15.784 8.284 15 9.25 15H14.75V15ZM3.75 10H8.126C7.95152 10.679 7.95823 11.3919 8.14546 12.0675C8.3327 12.743 8.6939 13.3577 9.193 13.85L9.355 14.001L9.25 14C8.64983 13.9998 8.06606 14.1959 7.58778 14.5585C7.10949 14.921 6.76294 15.4301 6.601 16.008L6.567 16.009C3.657 16.009 2 14.919 2 12.75V11.75C2 10.784 2.784 10 3.75 10ZM20.25 10C21.216 10 22 10.784 22 11.75L21.999 12.712C22.116 14.902 20.488 16.009 17.567 16.009L17.398 16.007C17.2443 15.4623 16.9265 14.9781 16.488 14.6203C16.0495 14.2625 15.5115 14.0484 14.947 14.007L14.75 14L14.645 14.001C15.2001 13.5134 15.6089 12.8813 15.8259 12.175C16.0429 11.4688 16.0596 10.7162 15.874 10.001L20.25 10ZM12 8C12.394 8 12.7841 8.0776 13.1481 8.22836C13.512 8.37913 13.8427 8.6001 14.1213 8.87868C14.3999 9.15726 14.6209 9.48797 14.7716 9.85195C14.9224 10.2159 15 10.606 15 11C15 11.394 14.9224 11.7841 14.7716 12.1481C14.6209 12.512 14.3999 12.8427 14.1213 13.1213C13.8427 13.3999 13.512 13.6209 13.1481 13.7716C12.7841 13.9224 12.394 14 12 14C11.2044 14 10.4413 13.6839 9.87868 13.1213C9.31607 12.5587 9 11.7956 9 11C9 10.2044 9.31607 9.44129 9.87868 8.87868C10.4413 8.31607 11.2044 8 12 8V8ZM6.5 3C7.29565 3 8.05871 3.31607 8.62132 3.87868C9.18393 4.44129 9.5 5.20435 9.5 6C9.5 6.79565 9.18393 7.55871 8.62132 8.12132C8.05871 8.68393 7.29565 9 6.5 9C5.70435 9 4.94129 8.68393 4.37868 8.12132C3.81607 7.55871 3.5 6.79565 3.5 6C3.5 5.20435 3.81607 4.44129 4.37868 3.87868C4.94129 3.31607 5.70435 3 6.5 3V3ZM17.5 3C18.2956 3 19.0587 3.31607 19.6213 3.87868C20.1839 4.44129 20.5 5.20435 20.5 6C20.5 6.79565 20.1839 7.55871 19.6213 8.12132C19.0587 8.68393 18.2956 9 17.5 9C16.7044 9 15.9413 8.68393 15.3787 8.12132C14.8161 7.55871 14.5 6.79565 14.5 6C14.5 5.20435 14.8161 4.44129 15.3787 3.87868C15.9413 3.31607 16.7044 3 17.5 3Z" }] }),
|
|
3196
|
+
hypetrain: createEventIcon({ width: "239", height: "239", viewBox: "0 0 239 239", paths: [{ d: "M7 78.6188V75.3315C7 74.3002 7.35948 73.4461 8.07843 72.7693C8.79739 72.0925 9.67974 71.7541 10.7255 71.7541H90.0392C91.085 71.7541 91.9673 72.0925 92.6863 72.7693C93.4052 73.4461 93.7647 74.3002 93.7647 75.3315V78.6188C93.7647 79.6501 93.4052 80.5041 92.6863 81.1809C91.9673 81.8577 91.085 82.1961 90.0392 82.1961H85.4314V99.2127H107.588C107.85 96.3122 109.075 93.8628 111.265 91.8646C113.454 89.8665 116.052 88.8674 119.059 88.8674C122.065 88.8674 124.647 89.8665 126.804 91.8646C128.961 93.8628 130.17 96.3122 130.431 99.2127H144.255V64.2127C142.817 64.1482 141.592 63.5843 140.578 62.5207C139.565 61.4572 139.059 60.1842 139.059 58.7017V55.511C139.059 54.0285 139.631 52.7394 140.775 51.6436C141.918 50.5479 143.275 50 144.843 50H165.627C167.196 50 168.52 50.5479 169.598 51.6436C170.676 52.7394 171.216 54.0285 171.216 55.511V58.7017C171.216 60.1842 170.742 61.4572 169.794 62.5207C168.846 63.5843 167.654 64.1482 166.216 64.2127V99.2127H182.49C185.366 99.2127 187.833 100.244 189.892 102.307C191.951 104.369 192.98 106.819 192.98 109.655V139.82L232 190H182.392V158.674H174.941C176.052 161.381 176.608 164.25 176.608 167.279C176.608 173.531 174.369 178.881 169.892 183.329C165.415 187.776 160.007 190 153.667 190C147.327 190 141.902 187.776 137.392 183.329C132.882 178.881 130.627 173.531 130.627 167.279C130.627 164.25 131.183 161.381 132.294 158.674H121.804C122.98 161.51 123.569 164.378 123.569 167.279C123.569 173.531 121.297 178.881 116.755 183.329C112.212 187.776 106.771 190 100.431 190C94.0915 190 88.683 187.776 84.2059 183.329C79.7288 178.881 77.4902 173.531 77.4902 167.279C77.4902 164.25 78.0457 161.381 79.1569 158.674H66.8039C68.0458 161.704 68.6667 164.572 68.6667 167.279C68.6667 173.531 66.3954 178.881 61.8529 183.329C57.3105 187.776 51.8693 190 45.5294 190C39.1895 190 33.7647 187.776 29.2549 183.329C24.7451 178.881 22.4902 173.531 22.4902 167.279C22.4902 164.314 23.0784 161.413 24.2549 158.577C21.7059 158.191 19.5817 157.03 17.8824 155.097C16.183 153.163 15.3333 150.907 15.3333 148.329L15.1373 82.1961H10.7255C9.67974 82.1961 8.79739 81.8577 8.07843 81.1809C7.35948 80.5041 7 79.6501 7 78.6188ZM28.4706 119.323C28.4706 121.515 29.2549 123.368 30.8235 124.883C32.3922 126.397 34.2876 127.155 36.5098 127.155H51.6078C53.8301 127.155 55.6928 126.397 57.1961 124.883C58.6994 123.368 59.451 121.515 59.451 119.323V95.6354C59.451 93.5083 58.683 91.6874 57.1471 90.1727C55.6111 88.6579 53.7647 87.9006 51.6078 87.9006H36.5098C34.2876 87.9006 32.3922 88.674 30.8235 90.221C29.2549 91.768 28.4706 93.5727 28.4706 95.6354V119.323Z" }] }),
|
|
3197
|
+
retweets: createEventIcon({ width: "24", height: "24", viewBox: "0 0 24 24", paths: [{ d: "M4.49841 3.88L8.93041 8.02001L7.56641 9.48L5.49841 7.55V16C5.49841 17.1 6.39441 18 7.49841 18H12.9984V20H7.49841C5.28941 20 3.49841 18.21 3.49841 16V7.55L1.43041 9.48L0.0664062 8.02001L4.49841 3.88ZM16.4984 6H10.9984V4H16.4984C18.7074 4 20.4984 5.79 20.4984 8V16.45L22.5664 14.52L23.9304 15.98L19.4984 20.12L15.0664 15.98L16.4304 14.52L18.4984 16.45V8C18.4984 6.9 17.6024 6 16.4984 6Z" }] }),
|
|
3198
|
+
likes: createEventIcon({ width: "40", height: "40", viewBox: "0 0 40 40", paths: [{ d: "M34.6055 20.8477C35.2617 19.9805 35.625 18.918 35.625 17.8125C35.625 16.0586 34.6445 14.3985 33.0664 13.4727C32.6601 13.2344 32.1976 13.109 31.7266 13.1094H22.3594L22.5938 8.30862C22.6484 7.14847 22.2383 6.0469 21.4414 5.20706C21.0503 4.79311 20.5785 4.46375 20.0551 4.23935C19.5318 4.01494 18.9679 3.90025 18.3984 3.90237C16.3672 3.90237 14.5703 5.26956 14.0313 7.22659L10.6758 19.375H10.6641V36.0938H29.1133C29.4727 36.0938 29.8242 36.0235 30.1484 35.8828C32.0078 35.0899 33.207 33.2735 33.207 31.2578C33.207 30.7657 33.1367 30.2813 32.9961 29.8125C33.6523 28.9453 34.0156 27.8828 34.0156 26.7774C34.0156 26.2852 33.9453 25.8008 33.8047 25.3321C34.4609 24.4649 34.8242 23.4024 34.8242 22.2969C34.8164 21.8047 34.7461 21.3164 34.6055 20.8477V20.8477ZM4.375 20.625V34.8438C4.375 35.5352 4.93359 36.0938 5.625 36.0938H8.16406V19.375H5.625C4.93359 19.375 4.375 19.9336 4.375 20.625Z" }] }),
|
|
3199
|
+
purchases: createEventIcon({ width: "40", height: "40", viewBox: "0 0 40 40", paths: [{ d: "M2 10.6667C2 9.42899 2.47411 8.242 3.31802 7.36683C4.16193 6.49167 5.30653 6 6.5 6H33.5C34.6935 6 35.8381 6.49167 36.682 7.36683C37.5259 8.242 38 9.42899 38 10.6667V22.3333H2V10.6667ZM27.875 13C27.5766 13 27.2905 13.1229 27.0795 13.3417C26.8685 13.5605 26.75 13.8572 26.75 14.1667V16.5C26.75 16.8094 26.8685 17.1062 27.0795 17.325C27.2905 17.5437 27.5766 17.6667 27.875 17.6667H32.375C32.6734 17.6667 32.9595 17.5437 33.1705 17.325C33.3815 17.1062 33.5 16.8094 33.5 16.5V14.1667C33.5 13.8572 33.3815 13.5605 33.1705 13.3417C32.9595 13.1229 32.6734 13 32.375 13H27.875ZM2 27V29.3333C2 30.571 2.47411 31.758 3.31802 32.6332C4.16193 33.5083 5.30653 34 6.5 34H33.5C34.6935 34 35.8381 33.5083 36.682 32.6332C37.5259 31.758 38 30.571 38 29.3333V27H2Z" }] }),
|
|
3200
|
+
superstickers: createEventIcon({ width: "40", height: "40", viewBox: "0 0 40 40", paths: [{ d: "M19.5 4C10.9394 4 4 10.9394 4 19.5C4 28.0606 10.9394 35 19.5 35C28.0606 35 35 28.0606 35 19.5C35 19.0596 34.825 18.6371 34.5136 18.3257L20.6743 4.48641C20.3629 4.17497 19.9404 4 19.5 4ZM20.5259 9.03526C20.5191 9.15866 20.5142 9.28475 20.5117 9.41323C20.4743 11.2826 20.9189 13.584 22.7929 15.6021C24.631 17.5817 27.0717 18.1953 29.2046 18.2729C29.398 18.2799 29.5874 18.2824 29.7719 18.2812L20.5259 9.03526ZM21.0503 6.25626L21.0495 6.25835C21.0503 6.25618 21.0505 6.25558 21.0503 6.25626Z", fillRule: "evenodd", clipRule: "evenodd" }] }),
|
|
3201
|
+
superchats: createEventIcon({ width: "40", height: "40", viewBox: "0 0 40 40", paths: [{ d: "M20 34.1289C28.836 34.1289 36 27.832 36 20.0644C36 12.2968 28.836 6 20 6C11.164 6 4 12.2968 4 20.0644C4 23.6006 5.486 26.8355 7.94 29.3068C7.746 31.3481 7.106 33.5864 6.398 35.2661C6.24 35.6398 6.546 36.0577 6.944 35.9934C11.456 35.25 14.138 34.1088 15.304 33.514C16.8358 33.9245 18.4146 34.1312 20 34.1289V34.1289Z" }] }),
|
|
3202
|
+
stars: createEventIcon({ width: "40", height: "40", viewBox: "0 0 40 40", paths: [{ d: "M35.4727 13.793L25.5547 12.3516L21.1211 3.3633C21 3.1172 20.8008 2.91798 20.5547 2.79689C19.9375 2.4922 19.1875 2.74611 18.8789 3.3633L14.4453 12.3516L4.52736 13.793C4.25392 13.832 4.00392 13.961 3.81251 14.1563C3.58111 14.3941 3.4536 14.7141 3.458 15.0459C3.46239 15.3777 3.59833 15.6942 3.83595 15.9258L11.0117 22.9219L9.31642 32.8008C9.27666 33.0306 9.30209 33.2669 9.38982 33.483C9.47756 33.6991 9.62408 33.8863 9.81278 34.0234C10.0015 34.1604 10.2248 34.2418 10.4574 34.2584C10.6901 34.275 10.9227 34.2261 11.1289 34.1172L20 29.4531L28.8711 34.1172C29.1133 34.2461 29.3945 34.2891 29.6641 34.2422C30.3438 34.125 30.8008 33.4805 30.6836 32.8008L28.9883 22.9219L36.1641 15.9258C36.3594 15.7344 36.4883 15.4844 36.5274 15.211C36.6328 14.5274 36.1563 13.8945 35.4727 13.793V13.793Z" }] }),
|
|
3203
|
+
fans: createEventIcon({ width: "40", height: "40", viewBox: "0 0 40 40", paths: [{ d: "M15 13.75C15 14.7446 14.605 15.6984 13.9017 16.4016C13.1984 17.1049 12.2446 17.5 11.25 17.5C10.7576 17.5001 10.2699 17.4032 9.81485 17.2148C9.35983 17.0264 8.94639 16.7501 8.59815 16.4019C8.2499 16.0537 7.97369 15.6402 7.78527 15.1852C7.59685 14.7302 7.49993 14.2425 7.50004 13.75C7.50004 11.6783 9.17837 10 11.25 10C13.3217 10 15 11.6783 15 13.75ZM3.33337 23.6108C3.33337 20.6558 8.60837 19.1667 11.25 19.1667C13.8917 19.1667 19.1667 20.6558 19.1667 23.6108V30H3.33337V23.6108ZM32.5 13.75C32.5 14.7446 32.105 15.6984 31.4017 16.4016C30.6984 17.1049 29.7446 17.5 28.75 17.5C28.2576 17.5001 27.7699 17.4032 27.3148 17.2148C26.8598 17.0264 26.4464 16.7501 26.0981 16.4019C25.7499 16.0537 25.4737 15.6402 25.2853 15.1852C25.0969 14.7302 24.9999 14.2425 25 13.75C25 11.6783 26.6784 10 28.75 10C30.8217 10 32.5 11.6783 32.5 13.75ZM22.5 12.5C22.5 13.163 22.2366 13.7989 21.7678 14.2678C21.299 14.7366 20.6631 15 20 15C19.337 15 18.7011 14.7366 18.2323 14.2678C17.7634 13.7989 17.5 13.163 17.5 12.5C17.5 11.837 17.7634 11.2011 18.2323 10.7322C18.7011 10.2634 19.337 10 20 10C20.6631 10 21.299 10.2634 21.7678 10.7322C22.2366 11.2011 22.5 11.837 22.5 12.5V12.5ZM20.8334 23.6108C20.8334 20.6558 26.1084 19.1667 28.75 19.1667C31.3917 19.1667 36.6667 20.6558 36.6667 23.6108V30H20.8334V23.6108Z" }, { d: "M23.9584 18.4875C23.7367 18.5692 23.5167 18.6558 23.3017 18.7483C22.3267 19.165 21.3409 19.7283 20.5751 20.4817C20.3701 20.6842 20.1751 20.905 20.0001 21.1458C19.8267 20.9092 19.6344 20.6871 19.4251 20.4817C18.6592 19.7283 17.6742 19.165 16.6976 18.7483C16.4809 18.6558 16.262 18.5688 16.0409 18.4875C17.3101 17.83 18.9417 17.5 20.0001 17.5C21.0584 17.5 22.6901 17.83 23.9584 18.4875Z", fillRule: "evenodd", clipRule: "evenodd" }] }),
|
|
3204
|
+
shares: createEventIcon({ width: "40", height: "40", viewBox: "0 0 40 40", paths: [{ d: "M28.7857 24.25C27.3222 24.25 25.9772 24.7692 24.9154 25.6376L18.2812 21.384C18.4777 20.4723 18.4777 19.5276 18.2812 18.616L24.9154 14.3624C25.9772 15.2308 27.3222 15.75 28.7857 15.75C32.2177 15.75 35 12.8958 35 9.375C35 5.85421 32.2177 3 28.7857 3C25.3537 3 22.5714 5.85421 22.5714 9.375C22.5714 9.85034 22.6226 10.3133 22.7188 10.759L16.0846 15.0126C15.0228 14.1442 13.6777 13.625 12.2143 13.625C8.78225 13.625 6 16.4792 6 20C6 23.5208 8.78225 26.375 12.2143 26.375C13.6777 26.375 15.0228 25.8558 16.0846 24.9874L22.7188 29.241C22.6207 29.6955 22.5713 30.1596 22.5714 30.625C22.5714 34.1458 25.3537 37 28.7857 37C32.2177 37 35 34.1458 35 30.625C35 27.1042 32.2177 24.25 28.7857 24.25Z" }] }),
|
|
3205
|
+
loyalty: createEventIcon({ width: "20", height: "20", viewBox: "0 0 20 20", paths: [{ d: "M16.5045 9.99998C16.5045 13.5923 13.5923 16.5045 9.99998 16.5045C6.40761 16.5045 3.49542 13.5923 3.49542 9.99998C3.49542 6.40761 6.40761 3.49542 9.99998 3.49542C13.5923 3.49542 16.5045 6.40761 16.5045 9.99998ZM18 9.99998C18 14.4182 14.4182 18 9.99998 18C5.58172 18 2 14.4182 2 9.99998C2 5.58172 5.58172 2 9.99998 2C14.4182 2 18 5.58172 18 9.99998ZM9.99998 16.2442C13.4486 16.2442 16.2442 13.4486 16.2442 9.99998C16.2442 6.55139 13.4486 3.75577 9.99998 3.75577C6.55139 3.75577 3.75577 6.55139 3.75577 9.99998C3.75577 13.4486 6.55139 16.2442 9.99998 16.2442ZM8.09761 6.5488H6.80644V7.30459H7.99759V7.75807H6.80644V8.51388H7.99759V13.4511H12.8894V12.432H9.08042V6.5505H8.09761V6.5488ZM10.137 6.5488H13.1936V7.30459H10.137V6.5488ZM13.1936 7.75807H10.137V8.51388H13.1936V7.75807Z", fillRule: "evenodd", clipRule: "evenodd" }] })
|
|
3206
|
+
};
|
|
3207
|
+
function EventTypeIcon({ type, ...props }) {
|
|
3208
|
+
const Icon = (type != null ? EVENT_TYPE_ICONS[String(type).trim().toLowerCase()] : void 0) ?? EVENT_TYPE_FALLBACK_ICON;
|
|
3209
|
+
return /* @__PURE__ */ jsx22(Icon, { ...props });
|
|
3210
|
+
}
|
|
3211
|
+
EventTypeIcon.displayName = "EventTypeIcon";
|
|
3212
|
+
|
|
3213
|
+
// src/components/EventListItem/EventListItem.tsx
|
|
3214
|
+
import { jsx as jsx23, jsxs as jsxs13 } from "react/jsx-runtime";
|
|
3215
|
+
function EventListItem({
|
|
3216
|
+
username,
|
|
3217
|
+
message,
|
|
3218
|
+
userMessage,
|
|
3219
|
+
avatar,
|
|
3220
|
+
fallbackAvatar,
|
|
3221
|
+
timestamp,
|
|
3222
|
+
platformIcon,
|
|
3223
|
+
alertIcon,
|
|
3224
|
+
eventType,
|
|
3225
|
+
accentColor,
|
|
3226
|
+
colorFullBackground,
|
|
3227
|
+
showAvatar = true,
|
|
3228
|
+
showTimestamp = true,
|
|
3229
|
+
showMessage = true,
|
|
3230
|
+
actions,
|
|
3231
|
+
onUsernameClick,
|
|
3232
|
+
className
|
|
3233
|
+
}) {
|
|
3234
|
+
const resolvedAlertIcon = alertIcon ?? (eventType !== void 0 ? /* @__PURE__ */ jsx23(EventTypeIcon, { type: eventType }) : null);
|
|
3235
|
+
const style = {};
|
|
3236
|
+
if (accentColor) {
|
|
3237
|
+
style.borderLeftColor = accentColor;
|
|
3238
|
+
}
|
|
3239
|
+
if (colorFullBackground && accentColor) {
|
|
3240
|
+
style.backgroundColor = `color-mix(in srgb, ${accentColor} 22%, var(--cardbackground, var(--neutralDark2, #211d3e)))`;
|
|
3241
|
+
}
|
|
3242
|
+
return /* @__PURE__ */ jsxs13("div", { className: classNames13("ls-eventlist-item", className), style, children: [
|
|
3243
|
+
/* @__PURE__ */ jsxs13("div", { className: "ls-eventlist-item__main", children: [
|
|
3244
|
+
/* @__PURE__ */ jsxs13("div", { className: "ls-eventlist-item__identity", children: [
|
|
3245
|
+
/* @__PURE__ */ jsx23(
|
|
3246
|
+
"span",
|
|
3247
|
+
{
|
|
3248
|
+
className: classNames13("ls-eventlist-item__username", { "ls-eventlist-item__username--clickable": onUsernameClick }),
|
|
3249
|
+
role: onUsernameClick ? "button" : void 0,
|
|
3250
|
+
tabIndex: onUsernameClick ? 0 : void 0,
|
|
3251
|
+
onClick: onUsernameClick,
|
|
3252
|
+
onKeyDown: onUsernameClick ? (e) => {
|
|
3253
|
+
if (e.key === "Enter" || e.key === " ") {
|
|
3254
|
+
e.preventDefault();
|
|
3255
|
+
onUsernameClick();
|
|
3256
|
+
}
|
|
3257
|
+
} : void 0,
|
|
3258
|
+
children: username
|
|
3259
|
+
}
|
|
3260
|
+
),
|
|
3261
|
+
platformIcon ? /* @__PURE__ */ jsx23("span", { className: "ls-eventlist-item__icon", children: platformIcon }) : null,
|
|
3262
|
+
showAvatar && (avatar || fallbackAvatar) ? /* @__PURE__ */ jsx23("span", { className: "ls-eventlist-item__avatar", children: /* @__PURE__ */ jsx23("img", { src: avatar || fallbackAvatar, alt: "" }) }) : null,
|
|
3263
|
+
resolvedAlertIcon ? /* @__PURE__ */ jsx23(
|
|
3264
|
+
"span",
|
|
3265
|
+
{
|
|
3266
|
+
className: "ls-eventlist-item__icon",
|
|
3267
|
+
style: accentColor ? { color: accentColor } : void 0,
|
|
3268
|
+
children: resolvedAlertIcon
|
|
3269
|
+
}
|
|
3270
|
+
) : null
|
|
3271
|
+
] }),
|
|
3272
|
+
/* @__PURE__ */ jsxs13("div", { className: "ls-eventlist-item__body", children: [
|
|
3273
|
+
message ? /* @__PURE__ */ jsx23("span", { className: "ls-eventlist-item__message", children: message }) : null,
|
|
3274
|
+
showMessage && userMessage ? /* @__PURE__ */ jsxs13("span", { className: "ls-eventlist-item__usermessage", children: [
|
|
3275
|
+
"\u201C",
|
|
3276
|
+
userMessage,
|
|
3277
|
+
"\u201D"
|
|
3278
|
+
] }) : null
|
|
3279
|
+
] }),
|
|
3280
|
+
showTimestamp && timestamp ? /* @__PURE__ */ jsx23("span", { className: "ls-eventlist-item__time", children: timestamp }) : null
|
|
3281
|
+
] }),
|
|
3282
|
+
actions ? /* @__PURE__ */ jsx23("div", { className: "ls-eventlist-item__actions", children: actions }) : null
|
|
3283
|
+
] });
|
|
3284
|
+
}
|
|
3285
|
+
EventListItem.displayName = "EventListItem";
|
|
3286
|
+
|
|
3287
|
+
// src/components/EventList/EventList.tsx
|
|
3288
|
+
import { useEffect as useEffect6, useRef as useRef6 } from "react";
|
|
3289
|
+
import classNames14 from "classnames";
|
|
3290
|
+
import { jsx as jsx24, jsxs as jsxs14 } from "react/jsx-runtime";
|
|
3291
|
+
var PIN_THRESHOLD = 24;
|
|
3292
|
+
function EventList({
|
|
3293
|
+
items,
|
|
3294
|
+
id,
|
|
3295
|
+
showAvatars = true,
|
|
3296
|
+
showTimestamps = true,
|
|
3297
|
+
showMessages = true,
|
|
3298
|
+
showPlatformIcons = true,
|
|
3299
|
+
showActions = true,
|
|
3300
|
+
colorFullBackground = false,
|
|
3301
|
+
fallbackAvatar,
|
|
3302
|
+
itemGap,
|
|
3303
|
+
emptyText = "No events yet",
|
|
3304
|
+
emptyIcon = "\u{1F389}",
|
|
3305
|
+
emptyClassName,
|
|
3306
|
+
autoScroll = true,
|
|
3307
|
+
newestAt = "top",
|
|
3308
|
+
onEndReached,
|
|
3309
|
+
endReachedThreshold = 24,
|
|
3310
|
+
className
|
|
3311
|
+
}) {
|
|
3312
|
+
const listRef = useRef6(null);
|
|
3313
|
+
const pinnedRef = useRef6(true);
|
|
3314
|
+
useEffect6(() => {
|
|
3315
|
+
const el = listRef.current;
|
|
3316
|
+
if (!autoScroll || !el || !pinnedRef.current) {
|
|
3317
|
+
return;
|
|
3318
|
+
}
|
|
3319
|
+
el.scrollTop = newestAt === "top" ? 0 : el.scrollHeight;
|
|
3320
|
+
}, [items, autoScroll, newestAt]);
|
|
3321
|
+
const handleScroll = () => {
|
|
3322
|
+
const el = listRef.current;
|
|
3323
|
+
if (!el) {
|
|
3324
|
+
return;
|
|
3325
|
+
}
|
|
3326
|
+
const distanceFromEnd = el.scrollHeight - el.scrollTop - el.clientHeight;
|
|
3327
|
+
const distanceFromNewest = newestAt === "top" ? el.scrollTop : distanceFromEnd;
|
|
3328
|
+
const distanceFromOldest = newestAt === "top" ? distanceFromEnd : el.scrollTop;
|
|
3329
|
+
pinnedRef.current = distanceFromNewest <= PIN_THRESHOLD;
|
|
3330
|
+
if (onEndReached && distanceFromOldest <= endReachedThreshold) {
|
|
3331
|
+
onEndReached();
|
|
3332
|
+
}
|
|
3333
|
+
};
|
|
3334
|
+
return /* @__PURE__ */ jsx24("div", { className: classNames14("ls-eventlist", className), id, children: items.length === 0 ? /* @__PURE__ */ jsxs14("div", { className: classNames14("ls-eventlist__empty", emptyClassName), children: [
|
|
3335
|
+
emptyIcon ? /* @__PURE__ */ jsx24("span", { className: "ls-eventlist__empty-icon", children: emptyIcon }) : null,
|
|
3336
|
+
/* @__PURE__ */ jsx24("span", { children: emptyText })
|
|
3337
|
+
] }) : /* @__PURE__ */ jsx24(
|
|
3338
|
+
"div",
|
|
3339
|
+
{
|
|
3340
|
+
className: "ls-eventlist__list",
|
|
3341
|
+
ref: listRef,
|
|
3342
|
+
onScroll: handleScroll,
|
|
3343
|
+
style: itemGap != null ? { gap: typeof itemGap === "number" ? `${itemGap}px` : itemGap } : void 0,
|
|
3344
|
+
children: items.map((item) => /* @__PURE__ */ jsx24("div", { className: "ls-eventlist__row", children: /* @__PURE__ */ jsx24(
|
|
3345
|
+
EventListItem,
|
|
3346
|
+
{
|
|
3347
|
+
username: item.username,
|
|
3348
|
+
message: item.message,
|
|
3349
|
+
userMessage: item.userMessage,
|
|
3350
|
+
avatar: item.avatar,
|
|
3351
|
+
fallbackAvatar: item.fallbackAvatar ?? fallbackAvatar,
|
|
3352
|
+
timestamp: item.timestamp,
|
|
3353
|
+
platformIcon: showPlatformIcons ? item.platformIcon ?? (item.platform ? /* @__PURE__ */ jsx24(PlatformIcon, { platform: item.platform }) : void 0) : void 0,
|
|
3354
|
+
alertIcon: item.alertIcon,
|
|
3355
|
+
eventType: item.eventType,
|
|
3356
|
+
accentColor: item.accentColor,
|
|
3357
|
+
colorFullBackground,
|
|
3358
|
+
showAvatar: showAvatars,
|
|
3359
|
+
showTimestamp: showTimestamps,
|
|
3360
|
+
showMessage: showMessages,
|
|
3361
|
+
actions: showActions ? item.actions : void 0,
|
|
3362
|
+
onUsernameClick: item.onUsernameClick
|
|
3363
|
+
}
|
|
3364
|
+
) }, item.id))
|
|
3365
|
+
}
|
|
3366
|
+
) });
|
|
3367
|
+
}
|
|
3368
|
+
EventList.displayName = "EventList";
|
|
3369
|
+
|
|
3370
|
+
// src/components/StreamStatusPanel/StreamStatusPanel.tsx
|
|
3371
|
+
import Tooltip4 from "@mui/material/Tooltip";
|
|
3372
|
+
import classNames15 from "classnames";
|
|
3373
|
+
import { Fragment as Fragment5, jsx as jsx25, jsxs as jsxs15 } from "react/jsx-runtime";
|
|
3374
|
+
var LS_INFO_TOOLTIP_SX = {
|
|
3375
|
+
backgroundColor: "#1b1834",
|
|
3376
|
+
border: "1px solid #393853",
|
|
3377
|
+
borderRadius: "0.75rem",
|
|
3378
|
+
padding: "0.55rem 0.7rem",
|
|
3379
|
+
maxWidth: 300,
|
|
3380
|
+
color: "#ffffff",
|
|
3381
|
+
fontSize: "0.75rem",
|
|
3382
|
+
lineHeight: 1.5,
|
|
3383
|
+
boxShadow: "0 10px 30px rgba(0, 0, 0, 0.45)"
|
|
3384
|
+
};
|
|
3385
|
+
var formatStatValue = (value) => value >= 1e3 ? `${value.toString().slice(0, -3)} K` : value.toString();
|
|
3386
|
+
var TrendUpArrow = () => /* @__PURE__ */ jsx25("svg", { viewBox: "0 0 8 8", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: /* @__PURE__ */ jsx25("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M3.50059 8C3.36798 8 3.2408 7.94732 3.14704 7.85355C3.05327 7.75978 3.00059 7.63261 3.00059 7.5L3.00059 1.707L0.854589 3.854C0.808102 3.90049 0.752912 3.93736 0.692173 3.96252C0.631433 3.98768 0.566333 4.00063 0.500589 4.00063C0.434845 4.00063 0.369745 3.98768 0.309006 3.96252C0.248266 3.93736 0.193077 3.90049 0.146589 3.854C0.100101 3.80751 0.0632247 3.75232 0.0380658 3.69158C0.0129069 3.63084 -4.20509e-05 3.56574 -4.20451e-05 3.5C-4.20394e-05 3.43426 0.012907 3.36916 0.0380658 3.30842C0.0632247 3.24768 0.100101 3.19249 0.146589 3.146L3.14659 0.146C3.19304 0.0994364 3.24821 0.0624939 3.30896 0.0372874C3.3697 0.0120808 3.43482 -0.000893905 3.50059 -0.000893899C3.56636 -0.000893893 3.63148 0.0120809 3.69222 0.0372874C3.75297 0.062494 3.80814 0.0994365 3.85459 0.146L6.85459 3.146C6.90108 3.19249 6.93795 3.24768 6.96311 3.30842C6.98827 3.36916 7.00122 3.43426 7.00122 3.5C7.00122 3.56574 6.98827 3.63084 6.96311 3.69158C6.93795 3.75232 6.90108 3.80751 6.85459 3.854C6.7607 3.94789 6.63336 4.00063 6.50059 4.00063C6.43485 4.00063 6.36975 3.98768 6.30901 3.96252C6.24827 3.93736 6.19308 3.90049 6.14659 3.854L4.00059 1.707L4.00059 7.5C4.00059 7.63261 3.94791 7.75978 3.85414 7.85355C3.76037 7.94732 3.6332 8 3.50059 8Z", fill: "currentColor" }) });
|
|
3387
|
+
var TrendDownArrow = () => /* @__PURE__ */ jsx25("svg", { viewBox: "0 0 8 8", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: /* @__PURE__ */ jsx25("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M3.50063 0C3.63324 0 3.76042 0.0526785 3.85419 0.146447C3.94795 0.240215 4.00063 0.367392 4.00063 0.5L4.00063 6.293L6.14663 4.146C6.19312 4.09951 6.24831 4.06264 6.30905 4.03748C6.36979 4.01232 6.43489 3.99937 6.50063 3.99937C6.56638 3.99937 6.63148 4.01232 6.69222 4.03748C6.75295 4.06264 6.80814 4.09951 6.85463 4.146C6.90112 4.19249 6.938 4.24768 6.96316 4.30842C6.98831 4.36916 7.00126 4.43426 7.00126 4.5C7.00126 4.56574 6.98831 4.63084 6.96316 4.69158C6.938 4.75232 6.90112 4.80751 6.85463 4.854L3.85463 7.854C3.80819 7.90056 3.75301 7.93751 3.69227 7.96271C3.63152 7.98792 3.5664 8.00089 3.50063 8.00089C3.43486 8.00089 3.36974 7.98792 3.309 7.96271C3.24825 7.93751 3.19308 7.90056 3.14663 7.854L0.146632 4.854C0.100144 4.80751 0.0632674 4.75232 0.0381083 4.69158C0.0129493 4.63084 0 4.56574 0 4.5C0 4.43426 0.0129493 4.36916 0.0381083 4.30842C0.0632674 4.24768 0.100144 4.19249 0.146632 4.146C0.240518 4.05211 0.367856 3.99937 0.500632 3.99937C0.566376 3.99937 0.631476 4.01232 0.692215 4.03748C0.752955 4.06264 0.808144 4.09951 0.854632 4.146L3.00063 6.293L3.00063 0.5C3.00063 0.367392 3.05331 0.240215 3.14708 0.146447C3.24085 0.0526785 3.36802 0 3.50063 0Z", fill: "currentColor" }) });
|
|
3388
|
+
function StreamStatusPanel({
|
|
3389
|
+
online = false,
|
|
3390
|
+
statusLabel,
|
|
3391
|
+
statusSublabel,
|
|
3392
|
+
statusSlot,
|
|
3393
|
+
totalLabel,
|
|
3394
|
+
totalValue,
|
|
3395
|
+
totalAccentColor,
|
|
3396
|
+
platforms,
|
|
3397
|
+
platformsEmptyText = "No platforms connected",
|
|
3398
|
+
stats = [],
|
|
3399
|
+
statsLabelPosition = "bottom",
|
|
3400
|
+
statsColumns,
|
|
3401
|
+
emptyText = "No stream data",
|
|
3402
|
+
id,
|
|
3403
|
+
className
|
|
3404
|
+
}) {
|
|
3405
|
+
const hasStatus = statusSlot != null || statusLabel != null;
|
|
3406
|
+
const hasTotal = totalValue != null;
|
|
3407
|
+
const hasPlatforms = platforms != null;
|
|
3408
|
+
const hasStats = stats.length > 0;
|
|
3409
|
+
if (!hasStatus && !hasTotal && !hasPlatforms && !hasStats) {
|
|
3410
|
+
return /* @__PURE__ */ jsx25("div", { className: classNames15("ls-streamstatus", "ls-streamstatus--empty", className), id, children: emptyText });
|
|
3411
|
+
}
|
|
3412
|
+
return /* @__PURE__ */ jsxs15("div", { className: classNames15("ls-streamstatus", className), id, children: [
|
|
3413
|
+
hasStatus ? /* @__PURE__ */ jsx25("div", { className: "ls-streamstatus__status", children: statusSlot ?? /* @__PURE__ */ jsxs15(Fragment5, { children: [
|
|
3414
|
+
/* @__PURE__ */ jsxs15("span", { className: "ls-streamstatus__indicator", children: [
|
|
3415
|
+
online ? /* @__PURE__ */ jsx25("span", { className: "ls-streamstatus__indicator-ping" }) : null,
|
|
3416
|
+
/* @__PURE__ */ jsx25("span", { className: classNames15("ls-streamstatus__indicator-dot", { "ls-streamstatus__indicator-dot--online": online }) })
|
|
3417
|
+
] }),
|
|
3418
|
+
/* @__PURE__ */ jsxs15("span", { className: "ls-streamstatus__status-body", children: [
|
|
3419
|
+
/* @__PURE__ */ jsx25("span", { className: "ls-streamstatus__status-label", children: statusLabel }),
|
|
3420
|
+
statusSublabel != null ? /* @__PURE__ */ jsx25("span", { className: "ls-streamstatus__status-sublabel", children: statusSublabel }) : null
|
|
3421
|
+
] })
|
|
3422
|
+
] }) }) : null,
|
|
3423
|
+
hasTotal || hasPlatforms ? /* @__PURE__ */ jsxs15("div", { className: "ls-streamstatus__overview", children: [
|
|
3424
|
+
hasTotal ? /* @__PURE__ */ jsxs15("div", { className: "ls-streamstatus__total", children: [
|
|
3425
|
+
/* @__PURE__ */ jsx25("span", { className: "ls-streamstatus__total-value", style: totalAccentColor ? { color: totalAccentColor } : void 0, children: totalValue }),
|
|
3426
|
+
totalLabel != null ? /* @__PURE__ */ jsx25("span", { className: "ls-streamstatus__total-label", children: totalLabel }) : null
|
|
3427
|
+
] }) : null,
|
|
3428
|
+
hasPlatforms ? /* @__PURE__ */ jsx25("div", { className: "ls-streamstatus__platforms", children: platforms.length === 0 ? /* @__PURE__ */ jsx25("span", { className: "ls-streamstatus__platforms-empty", children: platformsEmptyText }) : platforms.map((platform) => /* @__PURE__ */ jsxs15("div", { className: "ls-streamstatus__platform", children: [
|
|
3429
|
+
/* @__PURE__ */ jsxs15("span", { className: "ls-streamstatus__platform-info", children: [
|
|
3430
|
+
platform.icon != null ? /* @__PURE__ */ jsx25("span", { className: "ls-streamstatus__platform-icon", children: platform.icon }) : getPlatformIconUrl(String(platform.id)) ? /* @__PURE__ */ jsx25("span", { className: "ls-streamstatus__platform-icon", children: /* @__PURE__ */ jsx25(PlatformIcon, { platform: String(platform.id) }) }) : /* @__PURE__ */ jsx25(
|
|
3431
|
+
"span",
|
|
3432
|
+
{
|
|
3433
|
+
className: "ls-streamstatus__platform-dot",
|
|
3434
|
+
style: platform.accentColor ? { backgroundColor: platform.accentColor } : void 0
|
|
3435
|
+
}
|
|
3436
|
+
),
|
|
3437
|
+
/* @__PURE__ */ jsx25("span", { className: "ls-streamstatus__platform-label", children: platform.label })
|
|
3438
|
+
] }),
|
|
3439
|
+
/* @__PURE__ */ jsx25("span", { className: "ls-streamstatus__platform-value", children: platform.value })
|
|
3440
|
+
] }, platform.id)) }) : null
|
|
3441
|
+
] }) : null,
|
|
3442
|
+
hasStats ? /* @__PURE__ */ jsx25(
|
|
3443
|
+
"div",
|
|
3444
|
+
{
|
|
3445
|
+
className: "ls-streamstatus__stats",
|
|
3446
|
+
style: statsColumns ? { gridTemplateColumns: `repeat(${statsColumns}, minmax(0, 1fr))` } : void 0,
|
|
3447
|
+
children: stats.map((stat) => {
|
|
3448
|
+
const label = stat.label != null ? /* @__PURE__ */ jsx25("span", { className: "ls-streamstatus__stat-label", children: stat.label }) : null;
|
|
3449
|
+
const showHead = stat.icon != null || stat.actions != null || statsLabelPosition === "top" && label != null;
|
|
3450
|
+
const displayValue = typeof stat.value === "number" ? formatStatValue(stat.value) : stat.value;
|
|
3451
|
+
const trend = typeof stat.value === "number" && stat.previousValue != null ? stat.value - stat.previousValue >= 0 ? "up" : "down" : void 0;
|
|
3452
|
+
const node = /* @__PURE__ */ jsxs15("div", { className: "ls-streamstatus__stat", style: stat.tooltip != null ? { cursor: "help" } : void 0, children: [
|
|
3453
|
+
showHead ? /* @__PURE__ */ jsxs15("div", { className: "ls-streamstatus__stat-head", children: [
|
|
3454
|
+
stat.icon != null ? /* @__PURE__ */ jsx25("span", { className: "ls-streamstatus__stat-icon", children: stat.icon }) : null,
|
|
3455
|
+
statsLabelPosition === "top" ? label : null,
|
|
3456
|
+
stat.actions != null ? /* @__PURE__ */ jsx25("span", { className: "ls-streamstatus__stat-actions", children: stat.actions }) : null
|
|
3457
|
+
] }) : null,
|
|
3458
|
+
/* @__PURE__ */ jsx25("span", { className: "ls-streamstatus__stat-value", style: stat.accentColor ? { color: stat.accentColor } : void 0, children: trend ? /* @__PURE__ */ jsxs15("span", { className: "ls-streamstatus__stat-trendrow", children: [
|
|
3459
|
+
displayValue,
|
|
3460
|
+
trend === "up" ? /* @__PURE__ */ jsx25(TrendUpArrow, {}) : /* @__PURE__ */ jsx25(TrendDownArrow, {})
|
|
3461
|
+
] }) : displayValue }),
|
|
3462
|
+
statsLabelPosition === "bottom" ? label : null,
|
|
3463
|
+
stat.sub != null ? /* @__PURE__ */ jsx25("span", { className: "ls-streamstatus__stat-sub", children: stat.sub }) : null
|
|
3464
|
+
] }, stat.id);
|
|
3465
|
+
return stat.tooltip != null ? /* @__PURE__ */ jsx25(Tooltip4, { title: stat.tooltip, placement: "top", enterDelay: 120, slotProps: { tooltip: { sx: LS_INFO_TOOLTIP_SX } }, children: node }, stat.id) : node;
|
|
3466
|
+
})
|
|
3467
|
+
}
|
|
3468
|
+
) : null
|
|
3469
|
+
] });
|
|
3470
|
+
}
|
|
3471
|
+
StreamStatusPanel.displayName = "StreamStatusPanel";
|
|
3472
|
+
|
|
3473
|
+
// src/components/ViewersList/ViewersList.tsx
|
|
3474
|
+
import * as React from "react";
|
|
3475
|
+
import { useMemo as useMemo4, useState as useState8 } from "react";
|
|
3476
|
+
import classNames16 from "classnames";
|
|
3477
|
+
import { jsx as jsx26, jsxs as jsxs16 } from "react/jsx-runtime";
|
|
3478
|
+
function ViewersList({
|
|
3479
|
+
viewers,
|
|
3480
|
+
groups,
|
|
3481
|
+
countLabel,
|
|
3482
|
+
showSearch = true,
|
|
3483
|
+
searchPlaceholder = "Search\u2026",
|
|
3484
|
+
searchSlot,
|
|
3485
|
+
showAvatars = true,
|
|
3486
|
+
fallbackAvatar,
|
|
3487
|
+
hint,
|
|
3488
|
+
emptyText = "No viewers",
|
|
3489
|
+
emptyIcon = "\u{1F440}",
|
|
3490
|
+
onUsernameClick,
|
|
3491
|
+
id,
|
|
3492
|
+
className
|
|
3493
|
+
}) {
|
|
3494
|
+
const [query, setQuery] = useState8("");
|
|
3495
|
+
const internalSearch = showSearch && !searchSlot;
|
|
3496
|
+
const filtered = useMemo4(
|
|
3497
|
+
() => internalSearch && query ? viewers.filter((viewer) => viewer.username.toLowerCase().includes(query.toLowerCase())) : viewers,
|
|
3498
|
+
[internalSearch, viewers, query]
|
|
3499
|
+
);
|
|
3500
|
+
const sections = useMemo4(() => {
|
|
3501
|
+
if (!groups || groups.length === 0) {
|
|
3502
|
+
return [{ key: "", viewers: filtered }];
|
|
3503
|
+
}
|
|
3504
|
+
const known = new Set(groups.map((group) => group.key));
|
|
3505
|
+
const grouped = groups.map((group) => ({ key: group.key, label: group.label, viewers: filtered.filter((viewer) => viewer.group === group.key) }));
|
|
3506
|
+
const rest = filtered.filter((viewer) => !viewer.group || !known.has(viewer.group));
|
|
3507
|
+
return [...grouped, { key: "", viewers: rest }].filter((section) => section.viewers.length > 0);
|
|
3508
|
+
}, [groups, filtered]);
|
|
3509
|
+
const showHead = countLabel != null || searchSlot != null || internalSearch;
|
|
3510
|
+
return /* @__PURE__ */ jsxs16("div", { className: classNames16("ls-viewerslist", className), id, children: [
|
|
3511
|
+
showHead ? /* @__PURE__ */ jsxs16("div", { className: "ls-viewerslist__head", children: [
|
|
3512
|
+
countLabel != null ? /* @__PURE__ */ jsx26("span", { className: "ls-viewerslist__count", children: countLabel }) : null,
|
|
3513
|
+
searchSlot ? /* @__PURE__ */ jsx26("div", { className: "ls-viewerslist__search-slot", children: searchSlot }) : null,
|
|
3514
|
+
internalSearch ? /* @__PURE__ */ jsx26("input", { className: "ls-viewerslist__search", value: query, placeholder: searchPlaceholder, onChange: (e) => setQuery(e.target.value) }) : null
|
|
3515
|
+
] }) : null,
|
|
3516
|
+
hint != null ? /* @__PURE__ */ jsx26("div", { className: "ls-viewerslist__hint", children: hint }) : null,
|
|
3517
|
+
filtered.length === 0 ? /* @__PURE__ */ jsxs16("div", { className: "ls-viewerslist__empty", children: [
|
|
3518
|
+
emptyIcon ? /* @__PURE__ */ jsx26("span", { className: "ls-viewerslist__empty-icon", children: emptyIcon }) : null,
|
|
3519
|
+
/* @__PURE__ */ jsx26("span", { children: emptyText })
|
|
3520
|
+
] }) : /* @__PURE__ */ jsx26("div", { className: "ls-viewerslist__list", children: sections.map((section) => /* @__PURE__ */ jsxs16(React.Fragment, { children: [
|
|
3521
|
+
section.label != null ? /* @__PURE__ */ jsx26("div", { className: "ls-viewerslist__group", children: section.label }) : null,
|
|
3522
|
+
section.viewers.map((viewer) => {
|
|
3523
|
+
const avatarSrc = viewer.avatar || viewer.fallbackAvatar || fallbackAvatar;
|
|
3524
|
+
const platformIcon = viewer.platformIcon ?? (viewer.platform ? /* @__PURE__ */ jsx26(PlatformIcon, { platform: viewer.platform }) : null);
|
|
3525
|
+
return /* @__PURE__ */ jsxs16("div", { className: "ls-viewerslist__viewer", children: [
|
|
3526
|
+
showAvatars && avatarSrc ? /* @__PURE__ */ jsx26("img", { className: "ls-viewerslist__avatar", src: avatarSrc, alt: "" }) : null,
|
|
3527
|
+
platformIcon != null ? /* @__PURE__ */ jsx26("span", { className: "ls-viewerslist__platform", children: platformIcon }) : null,
|
|
3528
|
+
/* @__PURE__ */ jsx26(
|
|
3529
|
+
"span",
|
|
3530
|
+
{
|
|
3531
|
+
className: classNames16("ls-viewerslist__username", { "ls-viewerslist__username--clickable": onUsernameClick }),
|
|
3532
|
+
title: viewer.username,
|
|
3533
|
+
role: onUsernameClick ? "button" : void 0,
|
|
3534
|
+
tabIndex: onUsernameClick ? 0 : void 0,
|
|
3535
|
+
onClick: onUsernameClick ? () => onUsernameClick(viewer) : void 0,
|
|
3536
|
+
onKeyDown: onUsernameClick ? (e) => {
|
|
3537
|
+
if (e.key === "Enter" || e.key === " ") {
|
|
3538
|
+
e.preventDefault();
|
|
3539
|
+
onUsernameClick(viewer);
|
|
3540
|
+
}
|
|
3541
|
+
} : void 0,
|
|
3542
|
+
children: viewer.username
|
|
3543
|
+
}
|
|
3544
|
+
),
|
|
3545
|
+
viewer.badges != null ? /* @__PURE__ */ jsx26("span", { className: "ls-viewerslist__badges", children: viewer.badges }) : null,
|
|
3546
|
+
viewer.actions != null ? /* @__PURE__ */ jsx26("span", { className: "ls-viewerslist__actions", children: viewer.actions }) : null
|
|
3547
|
+
] }, viewer.id);
|
|
3548
|
+
})
|
|
3549
|
+
] }, section.key || "__ungrouped")) })
|
|
3550
|
+
] });
|
|
3551
|
+
}
|
|
3552
|
+
ViewersList.displayName = "ViewersList";
|
|
3553
|
+
|
|
3554
|
+
// src/components/ShortcutDockGrid/ShortcutDockGrid.tsx
|
|
3555
|
+
import classNames17 from "classnames";
|
|
3556
|
+
import { Fragment as Fragment7, jsx as jsx27, jsxs as jsxs17 } from "react/jsx-runtime";
|
|
3557
|
+
var softAccent = (color) => /^#[0-9a-fA-F]{6}$/.test(color) ? `${color}66` : color;
|
|
3558
|
+
function ShortcutDockGrid({
|
|
3559
|
+
buttons,
|
|
3560
|
+
onTrigger,
|
|
3561
|
+
editMode = false,
|
|
3562
|
+
onRemove,
|
|
3563
|
+
onAdd,
|
|
3564
|
+
addLabel = "\uFF0B",
|
|
3565
|
+
addTitle = "Add button",
|
|
3566
|
+
removeTitle = "Remove",
|
|
3567
|
+
selectedId = null,
|
|
3568
|
+
minButtonSize = 70,
|
|
3569
|
+
rowHeight,
|
|
3570
|
+
useColors = true,
|
|
3571
|
+
disabled = false,
|
|
3572
|
+
readOnly = false,
|
|
3573
|
+
emptyText,
|
|
3574
|
+
renderButton,
|
|
3575
|
+
id,
|
|
3576
|
+
className
|
|
3577
|
+
}) {
|
|
3578
|
+
const showAdd = editMode && Boolean(onAdd);
|
|
3579
|
+
return /* @__PURE__ */ jsxs17(
|
|
3580
|
+
"div",
|
|
3581
|
+
{
|
|
3582
|
+
className: classNames17(
|
|
3583
|
+
"ls-shortcutdock",
|
|
3584
|
+
{ "ls-shortcutdock--disabled": disabled, "ls-shortcutdock--readonly": readOnly },
|
|
3585
|
+
className
|
|
3586
|
+
),
|
|
3587
|
+
id,
|
|
3588
|
+
style: {
|
|
3589
|
+
gridTemplateColumns: `repeat(auto-fill, minmax(${minButtonSize}px, 1fr))`,
|
|
3590
|
+
gridAutoRows: rowHeight ? `${rowHeight}px` : "auto"
|
|
3591
|
+
},
|
|
3592
|
+
children: [
|
|
3593
|
+
buttons.length === 0 && !showAdd && emptyText != null ? /* @__PURE__ */ jsx27("div", { className: "ls-shortcutdock__empty", children: emptyText }) : null,
|
|
3594
|
+
buttons.map((button) => {
|
|
3595
|
+
const large = (button.w ?? 1) > 1 || (button.h ?? 1) > 1;
|
|
3596
|
+
const selected = selectedId != null && selectedId === button.id;
|
|
3597
|
+
const colored = useColors && Boolean(button.color);
|
|
3598
|
+
const cellStyle = {
|
|
3599
|
+
gridColumn: `span ${button.w ?? 1}`,
|
|
3600
|
+
gridRow: `span ${button.h ?? 1}`,
|
|
3601
|
+
...rowHeight ? {} : { minHeight: minButtonSize },
|
|
3602
|
+
...colored ? { ["--ls-shortcutdock-accent"]: button.color, ["--ls-shortcutdock-accent-soft"]: softAccent(button.color) } : {}
|
|
3603
|
+
};
|
|
3604
|
+
const node = /* @__PURE__ */ jsx27(
|
|
3605
|
+
"button",
|
|
3606
|
+
{
|
|
3607
|
+
type: "button",
|
|
3608
|
+
className: classNames17("ls-shortcutdock__btn", {
|
|
3609
|
+
"ls-shortcutdock__btn--selected": selected,
|
|
3610
|
+
"ls-shortcutdock__btn--colored": colored && !selected,
|
|
3611
|
+
"ls-shortcutdock__btn--icon-only": button.label == null && button.content == null,
|
|
3612
|
+
"ls-shortcutdock__btn--lg": large
|
|
3613
|
+
}),
|
|
3614
|
+
disabled: disabled || button.disabled,
|
|
3615
|
+
onClick: () => {
|
|
3616
|
+
if (!disabled && !readOnly) {
|
|
3617
|
+
onTrigger?.(button.id);
|
|
3618
|
+
}
|
|
3619
|
+
},
|
|
3620
|
+
children: button.content ?? /* @__PURE__ */ jsxs17(Fragment7, { children: [
|
|
3621
|
+
button.image ? /* @__PURE__ */ jsx27("img", { className: "ls-shortcutdock__btn-image", src: button.image, alt: "" }) : button.icon != null ? /* @__PURE__ */ jsx27("span", { className: "ls-shortcutdock__icon", children: button.icon }) : null,
|
|
3622
|
+
button.label != null ? /* @__PURE__ */ jsx27("span", { className: "ls-shortcutdock__label", children: button.label }) : null
|
|
3623
|
+
] })
|
|
3624
|
+
}
|
|
3625
|
+
);
|
|
3626
|
+
return /* @__PURE__ */ jsxs17("div", { className: "ls-shortcutdock__cell", style: cellStyle, title: button.title, children: [
|
|
3627
|
+
renderButton ? renderButton(button, node) : node,
|
|
3628
|
+
editMode && onRemove ? /* @__PURE__ */ jsx27("button", { type: "button", className: "ls-shortcutdock__remove", title: removeTitle, onClick: () => onRemove(button.id), children: "\u2715" }) : null
|
|
3629
|
+
] }, button.id);
|
|
3630
|
+
}),
|
|
3631
|
+
showAdd ? /* @__PURE__ */ jsx27(
|
|
3632
|
+
"button",
|
|
3633
|
+
{
|
|
3634
|
+
type: "button",
|
|
3635
|
+
className: "ls-shortcutdock__add",
|
|
3636
|
+
style: rowHeight ? void 0 : { minHeight: minButtonSize },
|
|
3637
|
+
title: addTitle,
|
|
3638
|
+
onClick: onAdd,
|
|
3639
|
+
children: addLabel
|
|
3640
|
+
}
|
|
3641
|
+
) : null
|
|
3642
|
+
]
|
|
3643
|
+
}
|
|
3644
|
+
);
|
|
3645
|
+
}
|
|
3646
|
+
ShortcutDockGrid.displayName = "ShortcutDockGrid";
|
|
3647
|
+
|
|
3648
|
+
// src/components/GoalsList/GoalsList.tsx
|
|
3649
|
+
import Tooltip5 from "@mui/material/Tooltip";
|
|
3650
|
+
import classNames18 from "classnames";
|
|
3651
|
+
import { Fragment as Fragment8, jsx as jsx28, jsxs as jsxs18 } from "react/jsx-runtime";
|
|
3652
|
+
var GOAL_TOOLTIP_SX = {
|
|
3653
|
+
backgroundColor: "#1b1834",
|
|
3654
|
+
border: "1px solid #393853",
|
|
3655
|
+
borderRadius: "0.75rem",
|
|
3656
|
+
padding: "0.55rem 0.7rem",
|
|
3657
|
+
maxWidth: 300,
|
|
3658
|
+
color: "#ffffff",
|
|
3659
|
+
fontSize: "0.75rem",
|
|
3660
|
+
lineHeight: 1.5,
|
|
3661
|
+
boxShadow: "0 10px 30px rgba(0, 0, 0, 0.45)"
|
|
3662
|
+
};
|
|
3663
|
+
var clampPercent = (value) => Math.max(0, Math.min(100, Math.round(value)));
|
|
3664
|
+
var resolvePercent = (goal) => {
|
|
3665
|
+
if (goal.percent != null) {
|
|
3666
|
+
return clampPercent(goal.percent);
|
|
3667
|
+
}
|
|
3668
|
+
if (!goal.target) {
|
|
3669
|
+
return 0;
|
|
3670
|
+
}
|
|
3671
|
+
return clampPercent((goal.current ?? 0) / goal.target * 100);
|
|
3672
|
+
};
|
|
3673
|
+
function GoalsList({ goals, formatValue, showPercent = true, emptyText = "No goal data yet", id, className }) {
|
|
3674
|
+
const fmt = (value, goal) => formatValue ? formatValue(value, goal) : value;
|
|
3675
|
+
return /* @__PURE__ */ jsx28("div", { className: classNames18("ls-goals", className), id, children: goals.length === 0 ? /* @__PURE__ */ jsx28("div", { className: "ls-goals__empty", children: emptyText }) : goals.map((goal) => {
|
|
3676
|
+
const percent = resolvePercent(goal);
|
|
3677
|
+
const rowStyle = {
|
|
3678
|
+
...goal.accentColor ? { ["--ls-goals-accent"]: goal.accentColor } : {},
|
|
3679
|
+
...goal.tooltip != null ? { cursor: "help" } : {}
|
|
3680
|
+
};
|
|
3681
|
+
const node = /* @__PURE__ */ jsxs18("div", { className: "ls-goals__row", style: rowStyle, children: [
|
|
3682
|
+
/* @__PURE__ */ jsxs18("div", { className: "ls-goals__head", children: [
|
|
3683
|
+
goal.icon != null ? /* @__PURE__ */ jsx28("span", { className: "ls-goals__icon", children: goal.icon }) : null,
|
|
3684
|
+
/* @__PURE__ */ jsx28("span", { className: "ls-goals__label", children: goal.label }),
|
|
3685
|
+
/* @__PURE__ */ jsx28("span", { className: "ls-goals__value", children: goal.valueText ?? /* @__PURE__ */ jsxs18(Fragment8, { children: [
|
|
3686
|
+
fmt(goal.current ?? 0, goal),
|
|
3687
|
+
" ",
|
|
3688
|
+
/* @__PURE__ */ jsxs18("span", { className: "ls-goals__target", children: [
|
|
3689
|
+
"/ ",
|
|
3690
|
+
fmt(goal.target ?? 0, goal)
|
|
3691
|
+
] })
|
|
3692
|
+
] }) }),
|
|
3693
|
+
showPercent ? /* @__PURE__ */ jsxs18("span", { className: "ls-goals__percent", children: [
|
|
3694
|
+
percent,
|
|
3695
|
+
"%"
|
|
3696
|
+
] }) : null
|
|
3697
|
+
] }),
|
|
3698
|
+
/* @__PURE__ */ jsx28("div", { className: "ls-goals__bar", children: /* @__PURE__ */ jsx28("div", { className: "ls-goals__fill", style: { width: `${percent}%` } }) })
|
|
3699
|
+
] }, goal.id);
|
|
3700
|
+
return goal.tooltip != null ? /* @__PURE__ */ jsx28(Tooltip5, { title: goal.tooltip, placement: "top", enterDelay: 120, slotProps: { tooltip: { sx: GOAL_TOOLTIP_SX } }, children: node }, goal.id) : node;
|
|
3701
|
+
}) });
|
|
3702
|
+
}
|
|
3703
|
+
GoalsList.displayName = "GoalsList";
|
|
3704
|
+
|
|
3705
|
+
// src/components/ModQueueItem/ModQueueItem.tsx
|
|
3706
|
+
import IconButton from "@mui/material/IconButton";
|
|
3707
|
+
import classNames19 from "classnames";
|
|
3708
|
+
|
|
3709
|
+
// src/components/ModQueueItem/icons.tsx
|
|
3710
|
+
import { jsx as jsx29, jsxs as jsxs19 } from "react/jsx-runtime";
|
|
3711
|
+
function CrossBoxIcon({ className }) {
|
|
3712
|
+
return /* @__PURE__ */ jsxs19("svg", { className, width: "21", height: "21", viewBox: "0 0 21 21", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [
|
|
3713
|
+
/* @__PURE__ */ jsx29("rect", { x: "0.484367", y: "0.509025", width: "19.6005", height: "19.6005", rx: "3.43645", stroke: "#E76E6E", strokeWidth: "0.763655" }),
|
|
3714
|
+
/* @__PURE__ */ jsx29(
|
|
3715
|
+
"path",
|
|
3716
|
+
{
|
|
3717
|
+
d: "M14.3571 7.71806L12.8756 6.23657L10.2843 8.82791L7.69292 6.23657L6.21143 7.71806L8.80276 10.3094L6.21143 12.9007L7.69292 14.3822L10.2843 11.7909L12.8756 14.3822L14.3571 12.9007L11.7657 10.3094L14.3571 7.71806Z",
|
|
3718
|
+
fill: "#E76E6E"
|
|
3719
|
+
}
|
|
3720
|
+
)
|
|
3721
|
+
] });
|
|
3722
|
+
}
|
|
3723
|
+
function TickBoxIcon({ className }) {
|
|
3724
|
+
return /* @__PURE__ */ jsxs19("svg", { className, width: "22", height: "21", viewBox: "0 0 22 21", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [
|
|
3725
|
+
/* @__PURE__ */ jsx29("rect", { x: "0.381828", y: "0.381828", width: "21.2296", height: "19.855", rx: "3.43645", stroke: "#93F0A2", strokeWidth: "0.763655" }),
|
|
3726
|
+
/* @__PURE__ */ jsx29(
|
|
3727
|
+
"path",
|
|
3728
|
+
{
|
|
3729
|
+
d: "M14.8908 5.49829L9.85209 12.1414L6.87311 9.16455L5.49854 10.5391L10.0798 15.1203L16.4952 6.87287L14.8908 5.49829Z",
|
|
3730
|
+
fill: "#93F0A2"
|
|
3731
|
+
}
|
|
3732
|
+
)
|
|
3733
|
+
] });
|
|
3734
|
+
}
|
|
3735
|
+
|
|
3736
|
+
// src/components/ModQueueItem/ModQueueItem.tsx
|
|
3737
|
+
import { Fragment as Fragment9, jsx as jsx30, jsxs as jsxs20 } from "react/jsx-runtime";
|
|
3738
|
+
function ModQueueItem({
|
|
3739
|
+
username,
|
|
3740
|
+
avatar,
|
|
3741
|
+
fallbackAvatar,
|
|
3742
|
+
command,
|
|
3743
|
+
message,
|
|
3744
|
+
icon,
|
|
3745
|
+
actions,
|
|
3746
|
+
onApprove,
|
|
3747
|
+
onDeny,
|
|
3748
|
+
className
|
|
3749
|
+
}) {
|
|
3750
|
+
return /* @__PURE__ */ jsxs20("div", { className: classNames19("ls-modqueue-item", className), children: [
|
|
3751
|
+
icon ? /* @__PURE__ */ jsx30("div", { className: "ls-modqueue-item__preview", children: icon }) : null,
|
|
3752
|
+
/* @__PURE__ */ jsxs20("div", { className: "ls-modqueue-item__body", children: [
|
|
3753
|
+
/* @__PURE__ */ jsxs20("div", { className: "ls-modqueue-item__head", children: [
|
|
3754
|
+
avatar || fallbackAvatar ? /* @__PURE__ */ jsx30("img", { className: "ls-modqueue-item__avatar", src: avatar || fallbackAvatar, alt: "" }) : null,
|
|
3755
|
+
username ? /* @__PURE__ */ jsx30(
|
|
3756
|
+
"span",
|
|
3757
|
+
{
|
|
3758
|
+
className: "ls-modqueue-item__username",
|
|
3759
|
+
title: typeof username === "string" ? username : void 0,
|
|
3760
|
+
children: username
|
|
3761
|
+
}
|
|
3762
|
+
) : null,
|
|
3763
|
+
command ? /* @__PURE__ */ jsx30("span", { className: "ls-modqueue-item__command", children: command }) : null
|
|
3764
|
+
] }),
|
|
3765
|
+
message ? /* @__PURE__ */ jsxs20("div", { className: "ls-modqueue-item__message", children: [
|
|
3766
|
+
"\u201C",
|
|
3767
|
+
message,
|
|
3768
|
+
"\u201D"
|
|
3769
|
+
] }) : null
|
|
3770
|
+
] }),
|
|
3771
|
+
/* @__PURE__ */ jsx30("div", { className: "ls-modqueue-item__actions", children: actions ?? /* @__PURE__ */ jsxs20(Fragment9, { children: [
|
|
3772
|
+
/* @__PURE__ */ jsx30(IconButton, { className: "ls-modqueue-item__iconbtn", disableRipple: true, onClick: onDeny, "aria-label": "Deny", children: /* @__PURE__ */ jsx30(CrossBoxIcon, { className: "ls-modqueue-item__action-icon" }) }),
|
|
3773
|
+
/* @__PURE__ */ jsx30(IconButton, { className: "ls-modqueue-item__iconbtn", disableRipple: true, onClick: onApprove, "aria-label": "Approve", children: /* @__PURE__ */ jsx30(TickBoxIcon, { className: "ls-modqueue-item__action-icon" }) })
|
|
3774
|
+
] }) })
|
|
3775
|
+
] });
|
|
3776
|
+
}
|
|
3777
|
+
ModQueueItem.displayName = "ModQueueItem";
|
|
3778
|
+
|
|
3779
|
+
// src/components/ModQueueList/ModQueueList.tsx
|
|
3780
|
+
import { useMemo as useMemo5, useState as useState9 } from "react";
|
|
3781
|
+
import ButtonBase from "@mui/material/ButtonBase";
|
|
3782
|
+
import classNames20 from "classnames";
|
|
3783
|
+
|
|
3784
|
+
// src/components/ModQueueList/icons.tsx
|
|
3785
|
+
import { jsx as jsx31, jsxs as jsxs21 } from "react/jsx-runtime";
|
|
3786
|
+
function SearchIcon({ className }) {
|
|
3787
|
+
return /* @__PURE__ */ jsx31("svg", { className, width: "14", height: "14", viewBox: "0 0 14 14", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: /* @__PURE__ */ jsx31(
|
|
3788
|
+
"path",
|
|
3789
|
+
{
|
|
3790
|
+
fillRule: "evenodd",
|
|
3791
|
+
clipRule: "evenodd",
|
|
3792
|
+
d: "M5.6 1.4C4.48609 1.4 3.4178 1.8425 2.63015 2.63015C1.8425 3.4178 1.4 4.48609 1.4 5.6C1.4 6.15155 1.50864 6.6977 1.71971 7.20727C1.93078 7.71684 2.24015 8.17984 2.63015 8.56985C3.02016 8.95986 3.48316 9.26923 3.99273 9.48029C4.5023 9.69136 5.04845 9.8 5.6 9.8C6.15155 9.8 6.6977 9.69136 7.20727 9.48029C7.71684 9.26923 8.17984 8.95986 8.56985 8.56985C8.95986 8.17984 9.26923 7.71684 9.48029 7.20727C9.69136 6.6977 9.8 6.15155 9.8 5.6C9.8 4.48609 9.3575 3.4178 8.56985 2.63015C7.7822 1.8425 6.71391 1.4 5.6 1.4ZM1.6402 1.6402C2.69041 0.589998 4.11479 0 5.6 0C7.08521 0 8.50959 0.589998 9.5598 1.6402C10.61 2.69041 11.2 4.11479 11.2 5.6C11.2 6.3354 11.0552 7.0636 10.7737 7.74303C10.582 8.20579 10.3296 8.63975 10.0237 9.03377L13.795 12.805C14.0683 13.0784 14.0683 13.5216 13.795 13.795C13.5216 14.0683 13.0784 14.0683 12.805 13.795L9.03377 10.0237C8.63975 10.3296 8.20579 10.582 7.74303 10.7737C7.0636 11.0552 6.3354 11.2 5.6 11.2C4.8646 11.2 4.1364 11.0552 3.45697 10.7737C2.77755 10.4923 2.16021 10.0798 1.6402 9.5598C1.12019 9.03979 0.707701 8.42245 0.426275 7.74303C0.144848 7.0636 0 6.3354 0 5.6C4.20903e-08 4.11479 0.589998 2.69041 1.6402 1.6402Z",
|
|
3793
|
+
fill: "currentColor"
|
|
3794
|
+
}
|
|
3795
|
+
) });
|
|
3796
|
+
}
|
|
3797
|
+
function EmptyModQueueIcon({ className }) {
|
|
3798
|
+
return /* @__PURE__ */ jsxs21("svg", { className, width: "39", height: "39", viewBox: "0 0 39 39", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [
|
|
3799
|
+
/* @__PURE__ */ jsx31(
|
|
3800
|
+
"path",
|
|
3801
|
+
{
|
|
3802
|
+
d: "M17.8486 23.9297C17.8487 26.2984 19.0186 28.5764 20.8398 30H11V26.25C11.002 24.8582 11.5559 23.5242 12.54 22.54C13.5242 21.5559 14.8582 21.0019 16.25 21H17.8486V23.9297Z",
|
|
3803
|
+
fill: "#CAC9D5"
|
|
3804
|
+
}
|
|
3805
|
+
),
|
|
3806
|
+
/* @__PURE__ */ jsx31(
|
|
3807
|
+
"path",
|
|
3808
|
+
{
|
|
3809
|
+
d: "M24.9043 19.7451C24.6452 20.2749 24.5 20.8705 24.5 21.5C24.5 23.3373 25.7389 24.8844 27.4268 25.3535C26.8965 27.1804 25.5079 28.7064 23.75 29.1641C21.4908 28.5758 19.84 26.2235 19.8398 23.7354V21.0205L23.75 19.2109L24.9043 19.7451Z",
|
|
3810
|
+
fill: "#CAC9D5"
|
|
3811
|
+
}
|
|
3812
|
+
),
|
|
3813
|
+
/* @__PURE__ */ jsx31("path", { d: "M30.5908 18.3184L28.2861 21.0459H30.5908V22.4092H26.5V21.0459L28.8115 18.3184H26.5V16.9541H30.5908V18.3184Z", fill: "#CAC9D5" }),
|
|
3814
|
+
/* @__PURE__ */ jsx31("path", { d: "M36.0459 15.5908L33.7412 18.3184H36.0459V19.6816H31.9541V18.3184L34.2656 15.5908H31.9541V14.2275H36.0459V15.5908Z", fill: "#CAC9D5" }),
|
|
3815
|
+
/* @__PURE__ */ jsx31(
|
|
3816
|
+
"path",
|
|
3817
|
+
{
|
|
3818
|
+
d: "M18.5 9C19.5384 9 20.5536 9.30789 21.417 9.88477C22.2802 10.4616 22.9532 11.282 23.3506 12.2412C23.7478 13.2004 23.852 14.2561 23.6494 15.2744C23.4468 16.2928 22.9461 17.2278 22.2119 17.9619C21.8356 18.3383 21.4066 18.6536 20.9404 18.8984L20.248 19.2002C20.0129 19.2832 19.771 19.3504 19.5244 19.3994C18.5062 19.602 17.4504 19.4978 16.4912 19.1006C15.5319 18.7032 14.7117 18.0302 14.1348 17.167C13.5579 16.3036 13.25 15.2884 13.25 14.25C13.25 12.8576 13.8035 11.5227 14.7881 10.5381C15.7726 9.55352 17.1076 9 18.5 9Z",
|
|
3819
|
+
fill: "#CAC9D5"
|
|
3820
|
+
}
|
|
3821
|
+
)
|
|
3822
|
+
] });
|
|
3823
|
+
}
|
|
3824
|
+
|
|
3825
|
+
// src/components/ModQueueList/ModQueueList.tsx
|
|
3826
|
+
import { Fragment as Fragment10, jsx as jsx32, jsxs as jsxs22 } from "react/jsx-runtime";
|
|
3827
|
+
var matches = (item, q) => {
|
|
3828
|
+
if (!q) {
|
|
3829
|
+
return true;
|
|
3830
|
+
}
|
|
3831
|
+
const hay = item.searchText ?? `${item.username ?? ""} ${typeof item.command === "string" ? item.command : ""} ${typeof item.message === "string" ? item.message : ""}`;
|
|
3832
|
+
return hay.toLowerCase().includes(q.toLowerCase());
|
|
3833
|
+
};
|
|
3834
|
+
function ModQueueList({
|
|
3835
|
+
items,
|
|
3836
|
+
id,
|
|
3837
|
+
showSearch = true,
|
|
3838
|
+
searchPlaceholder = "Search by username or command ...",
|
|
3839
|
+
searchValue,
|
|
3840
|
+
onSearchChange,
|
|
3841
|
+
searchSlot,
|
|
3842
|
+
canModerate = true,
|
|
3843
|
+
showAvatars = true,
|
|
3844
|
+
showMessages = true,
|
|
3845
|
+
fallbackAvatar,
|
|
3846
|
+
emptyText = "Mod queue is empty",
|
|
3847
|
+
emptyIcon,
|
|
3848
|
+
approveAllLabel = "Approve all",
|
|
3849
|
+
denyAllLabel = "Deny all",
|
|
3850
|
+
onApprove,
|
|
3851
|
+
onDeny,
|
|
3852
|
+
className
|
|
3853
|
+
}) {
|
|
3854
|
+
const [internalQuery, setInternalQuery] = useState9("");
|
|
3855
|
+
const query = searchValue !== void 0 ? searchValue : internalQuery;
|
|
3856
|
+
const handleSearchChange = (value) => {
|
|
3857
|
+
if (searchValue === void 0) {
|
|
3858
|
+
setInternalQuery(value);
|
|
3859
|
+
}
|
|
3860
|
+
onSearchChange?.(value);
|
|
3861
|
+
};
|
|
3862
|
+
const internalSearch = showSearch && !searchSlot;
|
|
3863
|
+
const filtered = useMemo5(() => internalSearch ? items.filter((item) => matches(item, query)) : items, [internalSearch, items, query]);
|
|
3864
|
+
return /* @__PURE__ */ jsxs22("div", { className: classNames20("ls-modqueue", className), id, children: [
|
|
3865
|
+
searchSlot ? /* @__PURE__ */ jsx32("div", { className: "ls-modqueue__search-slot", children: searchSlot }) : showSearch ? /* @__PURE__ */ jsx32("div", { className: "ls-modqueue__search-slot", children: /* @__PURE__ */ jsx32(
|
|
3866
|
+
LSInput,
|
|
3867
|
+
{
|
|
3868
|
+
size: "small",
|
|
3869
|
+
placeholder: searchPlaceholder,
|
|
3870
|
+
startAdornment: /* @__PURE__ */ jsx32(SearchIcon, { className: "ls-modqueue__search-icon" }),
|
|
3871
|
+
value: query,
|
|
3872
|
+
onChange: (e) => handleSearchChange(String(e.target.value ?? ""))
|
|
3873
|
+
}
|
|
3874
|
+
) }) : null,
|
|
3875
|
+
filtered.length === 0 ? /* @__PURE__ */ jsxs22("div", { className: "ls-modqueue__empty", children: [
|
|
3876
|
+
/* @__PURE__ */ jsx32("span", { className: "ls-modqueue__empty-icon", children: emptyIcon ?? /* @__PURE__ */ jsx32(EmptyModQueueIcon, {}) }),
|
|
3877
|
+
/* @__PURE__ */ jsx32("span", { children: emptyText })
|
|
3878
|
+
] }) : /* @__PURE__ */ jsxs22(Fragment10, { children: [
|
|
3879
|
+
canModerate && (onDeny || onApprove) ? /* @__PURE__ */ jsxs22("div", { className: "ls-modqueue__bulk", children: [
|
|
3880
|
+
onDeny ? /* @__PURE__ */ jsxs22(ButtonBase, { className: "ls-modqueue__bulk-btn ls-modqueue__bulk-btn--deny", disableRipple: true, onClick: () => onDeny("all"), children: [
|
|
3881
|
+
/* @__PURE__ */ jsx32(CrossBoxIcon, { className: "ls-modqueue__bulk-icon" }),
|
|
3882
|
+
denyAllLabel
|
|
3883
|
+
] }) : null,
|
|
3884
|
+
onApprove ? /* @__PURE__ */ jsxs22(ButtonBase, { className: "ls-modqueue__bulk-btn ls-modqueue__bulk-btn--approve", disableRipple: true, onClick: () => onApprove("all"), children: [
|
|
3885
|
+
/* @__PURE__ */ jsx32(TickBoxIcon, { className: "ls-modqueue__bulk-icon" }),
|
|
3886
|
+
approveAllLabel
|
|
3887
|
+
] }) : null
|
|
3888
|
+
] }) : null,
|
|
3889
|
+
/* @__PURE__ */ jsx32("div", { className: "ls-modqueue__list", children: filtered.map((item) => /* @__PURE__ */ jsx32(
|
|
3890
|
+
ModQueueItem,
|
|
3891
|
+
{
|
|
3892
|
+
icon: item.icon,
|
|
3893
|
+
avatar: showAvatars ? item.avatar : void 0,
|
|
3894
|
+
fallbackAvatar: showAvatars ? item.fallbackAvatar ?? fallbackAvatar : void 0,
|
|
3895
|
+
username: item.username,
|
|
3896
|
+
command: item.command,
|
|
3897
|
+
message: showMessages ? item.message : void 0,
|
|
3898
|
+
onApprove: () => onApprove?.(item.id),
|
|
3899
|
+
onDeny: () => onDeny?.(item.id),
|
|
3900
|
+
actions: item.actions ?? (canModerate ? void 0 : /* @__PURE__ */ jsx32("span", { className: "ls-modqueue__readonly", children: "read-only" }))
|
|
3901
|
+
},
|
|
3902
|
+
item.id
|
|
3903
|
+
)) })
|
|
3904
|
+
] })
|
|
3905
|
+
] });
|
|
3906
|
+
}
|
|
3907
|
+
ModQueueList.displayName = "ModQueueList";
|
|
3908
|
+
|
|
3909
|
+
// src/components/ModActivityLog/ModActivityLog.tsx
|
|
3910
|
+
import { useEffect as useEffect7, useRef as useRef7 } from "react";
|
|
3911
|
+
import classNames21 from "classnames";
|
|
3912
|
+
import { jsx as jsx33, jsxs as jsxs23 } from "react/jsx-runtime";
|
|
3913
|
+
function ModActivityLog({ logs, emptyText, onClear, clearLabel = "Clear logs", autoScroll, className }) {
|
|
3914
|
+
const listRef = useRef7(null);
|
|
3915
|
+
useEffect7(() => {
|
|
3916
|
+
if (autoScroll && listRef.current) {
|
|
3917
|
+
listRef.current.scrollTop = listRef.current.scrollHeight;
|
|
3918
|
+
}
|
|
3919
|
+
}, [logs, autoScroll]);
|
|
3920
|
+
return /* @__PURE__ */ jsxs23("div", { className: classNames21("ls-modlog", className), children: [
|
|
3921
|
+
onClear && logs.length > 0 ? /* @__PURE__ */ jsx33("div", { className: "ls-modlog__toolbar", children: /* @__PURE__ */ jsx33("button", { type: "button", className: "ls-modlog__clear", onClick: onClear, children: clearLabel }) }) : null,
|
|
3922
|
+
logs.length === 0 ? /* @__PURE__ */ jsx33("div", { className: "ls-modlog__empty", children: emptyText ?? "No activity yet" }) : /* @__PURE__ */ jsx33("div", { className: "ls-modlog__list", ref: listRef, children: logs.map((log, i) => {
|
|
3923
|
+
const rowStyle = {
|
|
3924
|
+
...log.tabColor ? { ["--ls-modlog-accent"]: log.tabColor } : {},
|
|
3925
|
+
...log.barColor ? { ["--ls-modlog-bar"]: log.barColor } : {}
|
|
3926
|
+
};
|
|
3927
|
+
return /* @__PURE__ */ jsxs23("div", { className: "ls-modlog__row", style: rowStyle, children: [
|
|
3928
|
+
/* @__PURE__ */ jsxs23("div", { className: "ls-modlog__head", children: [
|
|
3929
|
+
log.avatar ? /* @__PURE__ */ jsx33("img", { className: "ls-modlog__avatar", src: log.avatar, alt: "" }) : null,
|
|
3930
|
+
log.title ? /* @__PURE__ */ jsx33("span", { className: "ls-modlog__title", children: log.title }) : null,
|
|
3931
|
+
log.time ? /* @__PURE__ */ jsx33("span", { className: "ls-modlog__time", children: log.time }) : null
|
|
3932
|
+
] }),
|
|
3933
|
+
log.message ? /* @__PURE__ */ jsx33("div", { className: "ls-modlog__message", children: log.message }) : null
|
|
3934
|
+
] }, log.id ?? i);
|
|
3935
|
+
}) })
|
|
3936
|
+
] });
|
|
3937
|
+
}
|
|
3938
|
+
ModActivityLog.displayName = "ModActivityLog";
|
|
3939
|
+
|
|
3940
|
+
// src/components/SongRequestList/SongRequestList.tsx
|
|
3941
|
+
import { useState as useState10 } from "react";
|
|
3942
|
+
import classNames22 from "classnames";
|
|
3943
|
+
import { jsx as jsx34, jsxs as jsxs24 } from "react/jsx-runtime";
|
|
3944
|
+
function SongRequestList({
|
|
3945
|
+
nowPlaying,
|
|
3946
|
+
progress = 0,
|
|
3947
|
+
isPlaying = true,
|
|
3948
|
+
queue,
|
|
3949
|
+
showArt = true,
|
|
3950
|
+
showRequester = true,
|
|
3951
|
+
showQueue = true,
|
|
3952
|
+
onPlayPause,
|
|
3953
|
+
onSkip,
|
|
3954
|
+
onRemove,
|
|
3955
|
+
onAddSong,
|
|
3956
|
+
addPlaceholder = "Add a song or paste a link...",
|
|
3957
|
+
addLabel = "Add",
|
|
3958
|
+
addDisabled = false,
|
|
3959
|
+
emptyText,
|
|
3960
|
+
className
|
|
3961
|
+
}) {
|
|
3962
|
+
const [addValue, setAddValue] = useState10("");
|
|
3963
|
+
const submitAdd = () => {
|
|
3964
|
+
const query = addValue.trim();
|
|
3965
|
+
if (!query || addDisabled || !onAddSong) {
|
|
3966
|
+
return;
|
|
3967
|
+
}
|
|
3968
|
+
onAddSong(query);
|
|
3969
|
+
setAddValue("");
|
|
3970
|
+
};
|
|
3971
|
+
const addBar = onAddSong ? /* @__PURE__ */ jsxs24("div", { className: "ls-songreq__addbar", children: [
|
|
3972
|
+
/* @__PURE__ */ jsx34(
|
|
3973
|
+
LSInput,
|
|
3974
|
+
{
|
|
3975
|
+
className: "ls-songreq__addinput",
|
|
3976
|
+
size: "small",
|
|
3977
|
+
placeholder: addPlaceholder,
|
|
3978
|
+
value: addValue,
|
|
3979
|
+
disabled: addDisabled,
|
|
3980
|
+
onChange: (event) => setAddValue(event.target.value),
|
|
3981
|
+
onKeyDown: (event) => {
|
|
3982
|
+
if (event.key === "Enter") {
|
|
3983
|
+
submitAdd();
|
|
3984
|
+
}
|
|
3985
|
+
}
|
|
3986
|
+
}
|
|
3987
|
+
),
|
|
3988
|
+
/* @__PURE__ */ jsx34(LSButton, { size: "small", label: addLabel, disabled: addDisabled || !addValue.trim(), onClick: submitAdd })
|
|
3989
|
+
] }) : null;
|
|
3990
|
+
if (!nowPlaying) {
|
|
3991
|
+
if (!addBar) {
|
|
3992
|
+
return /* @__PURE__ */ jsx34("div", { className: classNames22("ls-songreq", "ls-songreq--empty", className), children: emptyText ?? "Nothing playing" });
|
|
3993
|
+
}
|
|
3994
|
+
return /* @__PURE__ */ jsxs24("div", { className: classNames22("ls-songreq", className), children: [
|
|
3995
|
+
addBar,
|
|
3996
|
+
/* @__PURE__ */ jsx34("div", { className: "ls-songreq__empty", children: emptyText ?? "Nothing playing" })
|
|
3997
|
+
] });
|
|
3998
|
+
}
|
|
3999
|
+
const clampedProgress = Math.min(100, Math.max(0, progress));
|
|
4000
|
+
return /* @__PURE__ */ jsxs24("div", { className: classNames22("ls-songreq", className), children: [
|
|
4001
|
+
addBar,
|
|
4002
|
+
/* @__PURE__ */ jsxs24("div", { className: "ls-songreq__now", children: [
|
|
4003
|
+
showArt && nowPlaying.art ? /* @__PURE__ */ jsx34("img", { className: "ls-songreq__art", src: nowPlaying.art, alt: "" }) : null,
|
|
4004
|
+
/* @__PURE__ */ jsxs24("div", { className: "ls-songreq__nowbody", children: [
|
|
4005
|
+
/* @__PURE__ */ jsx34("div", { className: "ls-songreq__title", children: nowPlaying.title }),
|
|
4006
|
+
nowPlaying.artist ? /* @__PURE__ */ jsx34("div", { className: "ls-songreq__artist", children: nowPlaying.artist }) : null,
|
|
4007
|
+
showRequester && nowPlaying.requester ? /* @__PURE__ */ jsxs24("div", { className: "ls-songreq__requester", children: [
|
|
4008
|
+
"requested by ",
|
|
4009
|
+
nowPlaying.requester
|
|
4010
|
+
] }) : null,
|
|
4011
|
+
/* @__PURE__ */ jsx34("div", { className: "ls-songreq__progress", children: /* @__PURE__ */ jsx34("div", { className: "ls-songreq__progressbar", style: { width: `${clampedProgress}%` } }) })
|
|
4012
|
+
] }),
|
|
4013
|
+
/* @__PURE__ */ jsxs24("div", { className: "ls-songreq__controls", children: [
|
|
4014
|
+
onPlayPause ? /* @__PURE__ */ jsx34("button", { type: "button", className: "ls-songreq__btn", onClick: onPlayPause, title: isPlaying ? "Pause" : "Play", "aria-label": isPlaying ? "Pause" : "Play", children: isPlaying ? "\u23F8" : "\u25B6" }) : null,
|
|
4015
|
+
onSkip ? /* @__PURE__ */ jsx34("button", { type: "button", className: "ls-songreq__btn", onClick: onSkip, title: "Skip", "aria-label": "Skip", children: "\u23ED" }) : null
|
|
4016
|
+
] })
|
|
4017
|
+
] }),
|
|
4018
|
+
showQueue ? /* @__PURE__ */ jsxs24("div", { className: "ls-songreq__queue", children: [
|
|
4019
|
+
/* @__PURE__ */ jsxs24("div", { className: "ls-songreq__queuehead", children: [
|
|
4020
|
+
"Up next \xB7 ",
|
|
4021
|
+
queue.length
|
|
4022
|
+
] }),
|
|
4023
|
+
/* @__PURE__ */ jsx34("div", { className: "ls-songreq__queuelist", children: queue.length === 0 ? /* @__PURE__ */ jsx34("div", { className: "ls-songreq__queueempty", children: "Queue is empty" }) : queue.map((item) => /* @__PURE__ */ jsxs24("div", { className: "ls-songreq__item", children: [
|
|
4024
|
+
showArt && item.art ? /* @__PURE__ */ jsx34("img", { className: "ls-songreq__itemart", src: item.art, alt: "" }) : null,
|
|
4025
|
+
/* @__PURE__ */ jsxs24("div", { className: "ls-songreq__itembody", children: [
|
|
4026
|
+
/* @__PURE__ */ jsx34("div", { className: "ls-songreq__itemtitle", children: item.title }),
|
|
4027
|
+
/* @__PURE__ */ jsxs24("div", { className: "ls-songreq__itemmeta", children: [
|
|
4028
|
+
item.artist,
|
|
4029
|
+
showRequester && item.requester ? ` \xB7 ${item.requester}` : ""
|
|
4030
|
+
] })
|
|
4031
|
+
] }),
|
|
4032
|
+
onRemove ? /* @__PURE__ */ jsx34("button", { type: "button", className: "ls-songreq__remove", onClick: () => onRemove(item.id), title: "Remove", "aria-label": "Remove", children: "\u2715" }) : null
|
|
4033
|
+
] }, item.id)) })
|
|
4034
|
+
] }) : null
|
|
4035
|
+
] });
|
|
4036
|
+
}
|
|
4037
|
+
SongRequestList.displayName = "SongRequestList";
|
|
4038
|
+
|
|
2270
4039
|
// src/utils/variableCompletionOptions.ts
|
|
2271
4040
|
function variableCompletionOptions(context, variables) {
|
|
2272
4041
|
const before = context.state.sliceDoc(0, context.pos);
|
|
@@ -2427,7 +4196,6 @@ var globalOptions = {
|
|
|
2427
4196
|
callCommand: "readonly",
|
|
2428
4197
|
callTwitchPoint: "readonly",
|
|
2429
4198
|
callTwitchExtension: "readonly",
|
|
2430
|
-
callTrovoSpell: "readonly",
|
|
2431
4199
|
readFile: "readonly",
|
|
2432
4200
|
writeFile: "readonly",
|
|
2433
4201
|
hexToRgb: "readonly",
|
|
@@ -3024,8 +4792,6 @@ var resolvePlatformChatterProfileUrl = ({ platform, username, displayname, userI
|
|
|
3024
4792
|
return normalizedUsername ? `https://kick.com/${encodeURIComponent(normalizedUsername)}` : null;
|
|
3025
4793
|
case "discord":
|
|
3026
4794
|
return normalizedUserId ? `https://discord.com/users/${encodeURIComponent(normalizedUserId)}` : null;
|
|
3027
|
-
case "trovo":
|
|
3028
|
-
return normalizedUsername ? `https://trovo.live/${encodeURIComponent(normalizedUsername)}` : null;
|
|
3029
4795
|
default:
|
|
3030
4796
|
return null;
|
|
3031
4797
|
}
|
|
@@ -6227,7 +7993,7 @@ function mapNowPlaying(widget, ctx) {
|
|
|
6227
7993
|
source,
|
|
6228
7994
|
theme: isMarquee ? "marquee" : "basic",
|
|
6229
7995
|
borderRadius: "30px",
|
|
6230
|
-
songTitle: `{{${source}_now_playing_song
|
|
7996
|
+
songTitle: `{{${source}_now_playing_song}}`,
|
|
6231
7997
|
songArtist: `{{${source}_now_playing_artist}}`,
|
|
6232
7998
|
songImg: `{{${source}_now_playing_image}}`,
|
|
6233
7999
|
showImg: true,
|
|
@@ -7922,17 +9688,17 @@ async function diagnoseSEAuth(jwt) {
|
|
|
7922
9688
|
}
|
|
7923
9689
|
|
|
7924
9690
|
// src/se-import/ui/SEImportWizard.tsx
|
|
7925
|
-
import { useCallback as
|
|
9691
|
+
import { useCallback as useCallback4, useEffect as useEffect9, useMemo as useMemo7, useRef as useRef8, useState as useState12 } from "react";
|
|
7926
9692
|
|
|
7927
9693
|
// src/se-import/ui/MarketplacePicker.tsx
|
|
7928
|
-
import { useEffect as
|
|
7929
|
-
import { jsx as
|
|
9694
|
+
import { useEffect as useEffect8, useMemo as useMemo6, useState as useState11 } from "react";
|
|
9695
|
+
import { jsx as jsx35, jsxs as jsxs25 } from "react/jsx-runtime";
|
|
7930
9696
|
function MarketplacePicker({ seWidgetType, fetchMarketplaceOverlay, CustomEmbed, onPick, onCancel }) {
|
|
7931
|
-
const candidateIds =
|
|
7932
|
-
const [candidates, setCandidates] =
|
|
7933
|
-
const [activeId, setActiveId] =
|
|
7934
|
-
const [activeLayerId, setActiveLayerId] =
|
|
7935
|
-
|
|
9697
|
+
const candidateIds = useMemo6(() => getMarketplaceCandidates(seWidgetType), [seWidgetType]);
|
|
9698
|
+
const [candidates, setCandidates] = useState11(() => candidateIds.map((id) => ({ id, loading: true })));
|
|
9699
|
+
const [activeId, setActiveId] = useState11(candidateIds[0] ?? null);
|
|
9700
|
+
const [activeLayerId, setActiveLayerId] = useState11(null);
|
|
9701
|
+
useEffect8(() => {
|
|
7936
9702
|
let cancelled = false;
|
|
7937
9703
|
candidateIds.forEach(async (id) => {
|
|
7938
9704
|
try {
|
|
@@ -7949,8 +9715,8 @@ function MarketplacePicker({ seWidgetType, fetchMarketplaceOverlay, CustomEmbed,
|
|
|
7949
9715
|
};
|
|
7950
9716
|
}, [candidateIds, fetchMarketplaceOverlay]);
|
|
7951
9717
|
const activeCandidate = candidates.find((c) => c.id === activeId);
|
|
7952
|
-
const activeLayers =
|
|
7953
|
-
|
|
9718
|
+
const activeLayers = useMemo6(() => activeCandidate?.overlay ? listTransplantableLayers(activeCandidate.overlay) : [], [activeCandidate?.overlay]);
|
|
9719
|
+
useEffect8(() => {
|
|
7954
9720
|
if (activeLayers.length > 0 && !activeLayerId) {
|
|
7955
9721
|
setActiveLayerId(activeLayers[0].id);
|
|
7956
9722
|
}
|
|
@@ -7962,24 +9728,24 @@ function MarketplacePicker({ seWidgetType, fetchMarketplaceOverlay, CustomEmbed,
|
|
|
7962
9728
|
onPick(transplant);
|
|
7963
9729
|
};
|
|
7964
9730
|
if (candidateIds.length === 0) {
|
|
7965
|
-
return /* @__PURE__ */
|
|
7966
|
-
/* @__PURE__ */
|
|
7967
|
-
/* @__PURE__ */
|
|
9731
|
+
return /* @__PURE__ */ jsxs25("div", { className: "ui-flex-column ui-gap-2", style: { padding: 16 }, children: [
|
|
9732
|
+
/* @__PURE__ */ jsx35("div", { style: { fontWeight: 600 }, children: "No marketplace replacements yet" }),
|
|
9733
|
+
/* @__PURE__ */ jsxs25("div", { style: { fontSize: 13, opacity: 0.8 }, children: [
|
|
7968
9734
|
"No curated marketplace overlays are listed for ",
|
|
7969
|
-
/* @__PURE__ */
|
|
9735
|
+
/* @__PURE__ */ jsx35("code", { children: seWidgetType }),
|
|
7970
9736
|
" yet. Use AI generation or skip the widget for now."
|
|
7971
9737
|
] }),
|
|
7972
|
-
/* @__PURE__ */
|
|
9738
|
+
/* @__PURE__ */ jsx35("div", { className: "ui-flex-row", style: { marginTop: 8 }, children: /* @__PURE__ */ jsx35(LSButton, { type: "button", color: "secondary", onClick: onCancel, label: "Close" }) })
|
|
7973
9739
|
] });
|
|
7974
9740
|
}
|
|
7975
|
-
return /* @__PURE__ */
|
|
7976
|
-
/* @__PURE__ */
|
|
7977
|
-
/* @__PURE__ */
|
|
9741
|
+
return /* @__PURE__ */ jsxs25("div", { className: "ui-flex-column ui-gap-2", style: { padding: 16, minHeight: 420 }, children: [
|
|
9742
|
+
/* @__PURE__ */ jsx35("div", { style: { fontWeight: 600, fontSize: 16 }, children: "Pick a marketplace replacement" }),
|
|
9743
|
+
/* @__PURE__ */ jsxs25("div", { style: { fontSize: 13, opacity: 0.8 }, children: [
|
|
7978
9744
|
"Replacing ",
|
|
7979
|
-
/* @__PURE__ */
|
|
9745
|
+
/* @__PURE__ */ jsx35("code", { children: seWidgetType }),
|
|
7980
9746
|
" with a layer from a curated Lumia Marketplace overlay."
|
|
7981
9747
|
] }),
|
|
7982
|
-
/* @__PURE__ */
|
|
9748
|
+
/* @__PURE__ */ jsx35("div", { className: "ui-flex-row ui-gap-2", style: { flexWrap: "wrap", marginTop: 4 }, children: candidates.map((c) => /* @__PURE__ */ jsx35(
|
|
7983
9749
|
LSButton,
|
|
7984
9750
|
{
|
|
7985
9751
|
type: "button",
|
|
@@ -7992,37 +9758,37 @@ function MarketplacePicker({ seWidgetType, fetchMarketplaceOverlay, CustomEmbed,
|
|
|
7992
9758
|
},
|
|
7993
9759
|
c.id
|
|
7994
9760
|
)) }),
|
|
7995
|
-
activeCandidate?.error && /* @__PURE__ */
|
|
9761
|
+
activeCandidate?.error && /* @__PURE__ */ jsxs25("div", { style: { padding: 12, borderRadius: 6, background: "rgba(220,38,38,0.15)", color: "#fecaca", fontSize: 13 }, children: [
|
|
7996
9762
|
"Failed to load overlay #",
|
|
7997
9763
|
activeCandidate.id,
|
|
7998
9764
|
": ",
|
|
7999
9765
|
activeCandidate.error
|
|
8000
9766
|
] }),
|
|
8001
|
-
activeCandidate?.loading && /* @__PURE__ */
|
|
8002
|
-
activeCandidate?.overlay && /* @__PURE__ */
|
|
8003
|
-
/* @__PURE__ */
|
|
8004
|
-
/* @__PURE__ */
|
|
8005
|
-
activeLayers.map((l) => /* @__PURE__ */
|
|
9767
|
+
activeCandidate?.loading && /* @__PURE__ */ jsx35("div", { style: { padding: 12, fontSize: 13, opacity: 0.8 }, children: "Loading overlay\u2026" }),
|
|
9768
|
+
activeCandidate?.overlay && /* @__PURE__ */ jsxs25("div", { className: "ui-flex-row ui-gap-2", style: { alignItems: "stretch" }, children: [
|
|
9769
|
+
/* @__PURE__ */ jsxs25("div", { style: { flex: "0 0 200px", display: "flex", flexDirection: "column", gap: 4, maxHeight: 320, overflowY: "auto" }, children: [
|
|
9770
|
+
/* @__PURE__ */ jsx35("div", { style: { fontSize: 12, fontWeight: 600, opacity: 0.8 }, children: "Layers" }),
|
|
9771
|
+
activeLayers.map((l) => /* @__PURE__ */ jsx35(
|
|
8006
9772
|
LSButton,
|
|
8007
9773
|
{
|
|
8008
9774
|
type: "button",
|
|
8009
9775
|
color: l.id === activeLayerId ? "primary" : "secondary",
|
|
8010
9776
|
style: { justifyContent: "flex-start", textAlign: "left" },
|
|
8011
9777
|
onClick: () => setActiveLayerId(l.id),
|
|
8012
|
-
label: /* @__PURE__ */
|
|
8013
|
-
/* @__PURE__ */
|
|
8014
|
-
/* @__PURE__ */
|
|
9778
|
+
label: /* @__PURE__ */ jsxs25("div", { style: { overflow: "hidden", textOverflow: "ellipsis", whiteSpace: "nowrap" }, children: [
|
|
9779
|
+
/* @__PURE__ */ jsx35("div", { style: { fontSize: 12, fontWeight: 600 }, children: l.label }),
|
|
9780
|
+
/* @__PURE__ */ jsx35("div", { style: { fontSize: 10, opacity: 0.7 }, children: l.type })
|
|
8015
9781
|
] })
|
|
8016
9782
|
},
|
|
8017
9783
|
l.id
|
|
8018
9784
|
)),
|
|
8019
|
-
activeLayers.length === 0 && /* @__PURE__ */
|
|
9785
|
+
activeLayers.length === 0 && /* @__PURE__ */ jsx35("div", { style: { fontSize: 12, opacity: 0.7 }, children: "No transplantable layers." })
|
|
8020
9786
|
] }),
|
|
8021
|
-
/* @__PURE__ */
|
|
9787
|
+
/* @__PURE__ */ jsx35("div", { style: { flex: 1, minHeight: 240, background: "rgba(0,0,0,0.3)", borderRadius: 6, overflow: "hidden" }, children: /* @__PURE__ */ jsx35(ActiveLayerPreview, { overlay: activeCandidate.overlay, layerId: activeLayerId, CustomEmbed }) })
|
|
8022
9788
|
] }),
|
|
8023
|
-
/* @__PURE__ */
|
|
8024
|
-
/* @__PURE__ */
|
|
8025
|
-
/* @__PURE__ */
|
|
9789
|
+
/* @__PURE__ */ jsxs25("div", { className: "ui-flex-row ui-gap-2", style: { marginTop: 12, justifyContent: "flex-end" }, children: [
|
|
9790
|
+
/* @__PURE__ */ jsx35(LSButton, { type: "button", color: "secondary", variant: "outlined", onClick: onCancel, label: "Cancel" }),
|
|
9791
|
+
/* @__PURE__ */ jsx35(
|
|
8026
9792
|
LSButton,
|
|
8027
9793
|
{
|
|
8028
9794
|
type: "button",
|
|
@@ -8036,13 +9802,13 @@ function MarketplacePicker({ seWidgetType, fetchMarketplaceOverlay, CustomEmbed,
|
|
|
8036
9802
|
] });
|
|
8037
9803
|
}
|
|
8038
9804
|
function ActiveLayerPreview({ overlay, layerId, CustomEmbed }) {
|
|
8039
|
-
if (!layerId) return /* @__PURE__ */
|
|
9805
|
+
if (!layerId) return /* @__PURE__ */ jsx35("div", { style: { padding: 16, fontSize: 12, opacity: 0.7 }, children: "Select a layer to preview." });
|
|
8040
9806
|
const module = overlay.settings?.modules?.[layerId];
|
|
8041
|
-
if (!module) return /* @__PURE__ */
|
|
9807
|
+
if (!module) return /* @__PURE__ */ jsx35("div", { style: { padding: 16, fontSize: 12, opacity: 0.7 }, children: "Layer not found." });
|
|
8042
9808
|
const type = module.settings?.type;
|
|
8043
9809
|
if (type === "custom" && module.content && CustomEmbed) {
|
|
8044
9810
|
const c = module.content;
|
|
8045
|
-
return /* @__PURE__ */
|
|
9811
|
+
return /* @__PURE__ */ jsx35(
|
|
8046
9812
|
CustomEmbed,
|
|
8047
9813
|
{
|
|
8048
9814
|
codeId: c.codeId ?? layerId,
|
|
@@ -8053,11 +9819,11 @@ function ActiveLayerPreview({ overlay, layerId, CustomEmbed }) {
|
|
|
8053
9819
|
}
|
|
8054
9820
|
);
|
|
8055
9821
|
}
|
|
8056
|
-
return /* @__PURE__ */
|
|
8057
|
-
/* @__PURE__ */
|
|
8058
|
-
/* @__PURE__ */
|
|
9822
|
+
return /* @__PURE__ */ jsxs25("div", { style: { padding: 16, fontSize: 12 }, children: [
|
|
9823
|
+
/* @__PURE__ */ jsx35("div", { style: { fontWeight: 600, marginBottom: 8 }, children: module.settings?.title ?? type }),
|
|
9824
|
+
/* @__PURE__ */ jsxs25("div", { style: { opacity: 0.8 }, children: [
|
|
8059
9825
|
"Preview not available for module type ",
|
|
8060
|
-
/* @__PURE__ */
|
|
9826
|
+
/* @__PURE__ */ jsx35("code", { children: String(type) }),
|
|
8061
9827
|
'. Click "Use this layer" to transplant it anyway.'
|
|
8062
9828
|
] })
|
|
8063
9829
|
] });
|
|
@@ -9193,7 +10959,7 @@ var custom_widget_default = 'data:image/svg+xml,<svg width="16" height="16" view
|
|
|
9193
10959
|
var assets_default = 'data:image/svg+xml,<svg width="48" height="59" viewBox="0 0 48 59" fill="none" xmlns="http://www.w3.org/2000/svg">%0A<path fill-rule="evenodd" clip-rule="evenodd" d="M47.6196 24.5513V41.5869C47.6196 42.3399 47.3199 43.0622 46.7862 43.5946C46.2525 44.1271 45.5285 44.426 44.7738 44.4261H27.6978C26.9431 44.426 26.2191 44.1271 25.6854 43.5946C25.1518 43.0622 24.8521 42.3399 24.8521 41.5869V18.8726C24.8521 18.1197 25.1517 17.3974 25.6854 16.8649C26.2191 16.3325 26.9431 16.0335 27.6978 16.0335H39.0818L47.6196 24.5513ZM32.7518 30.6559C32.3012 30.6559 31.8691 30.8348 31.5504 31.1534C31.2317 31.4721 31.0525 31.9044 31.0525 32.3551V36.9898C31.0525 37.4405 31.2317 37.8728 31.5504 38.1915C31.8691 38.5101 32.3012 38.689 32.7518 38.6891H38.0045C38.4552 38.6891 38.8876 38.5102 39.2063 38.1915C39.525 37.8728 39.7038 37.4405 39.7038 36.9898V36.0049L41.8168 37.8866C42.3143 38.3295 43.1027 37.976 43.1027 37.3092V31.8083C43.1027 31.1409 42.3143 30.788 41.8168 31.2309L39.7038 33.1126V32.3551C39.7038 31.9044 39.525 31.4721 39.2063 31.1534C38.8876 30.8347 38.4552 30.6559 38.0045 30.6559H32.7518ZM37.6589 25.9711H45.485L37.6589 18.163V25.9711Z" fill="white"/>%0A<path fill-rule="evenodd" clip-rule="evenodd" d="M22.7675 8.51781V25.5534C22.7675 26.3064 22.4678 27.0287 21.9341 27.5611C21.4004 28.0936 20.6765 28.3925 19.9217 28.3926H2.84579C2.09106 28.3925 1.36706 28.0936 0.833383 27.5611C0.299704 27.0287 0 26.3064 0 25.5534V2.83914C3.46516e-05 2.08616 0.299694 1.36386 0.833383 0.831425C1.36706 0.298996 2.09106 4.12048e-05 2.84579 0H14.2297L22.7675 8.51781ZM15.5614 14.0434C15.4739 14.0241 15.383 14.0247 15.2956 14.045L9.28308 15.4475C9.1509 15.4784 9.03315 15.5534 8.94878 15.6597C8.86444 15.766 8.81842 15.8978 8.81843 16.0335V21.3474C8.45759 21.2198 8.06549 21.2104 7.6989 21.3203C7.33226 21.4304 7.01003 21.6543 6.77901 21.9596C6.54799 22.2648 6.42011 22.6357 6.4138 23.0184C6.4075 23.4012 6.52298 23.776 6.74378 24.0886C6.96461 24.4013 7.27932 24.6355 7.64215 24.7576C8.00495 24.8797 8.39716 24.8834 8.76206 24.7678C9.12698 24.6522 9.44546 24.4232 9.67178 24.1145C9.8981 23.8057 10.0205 23.433 10.0209 23.0501V18.9157L14.831 17.7934V20.1445C14.47 20.0168 14.0778 20.0074 13.7111 20.1174C13.3444 20.2275 13.0222 20.4514 12.7912 20.7567C12.5603 21.0619 12.4326 21.4328 12.4264 21.8155C12.4201 22.1983 12.5358 22.5734 12.7567 22.8861C12.9777 23.1987 13.2923 23.4328 13.6551 23.5547C14.018 23.6766 14.4105 23.6799 14.7754 23.5641C15.1403 23.4483 15.459 23.2193 15.6851 22.9104C15.9112 22.6015 16.0333 22.2288 16.0335 21.8461C16.0335 21.8032 16.032 21.7605 16.0292 21.7184C16.032 21.694 16.0335 21.6697 16.0335 21.6456V14.6306C16.0335 14.5401 16.013 14.4506 15.9736 14.3691C15.9343 14.2876 15.8769 14.216 15.8061 14.1597L15.8022 14.1569C15.7315 14.1017 15.649 14.0628 15.5614 14.0434ZM12.8068 9.93757H20.633L12.8068 2.12945V9.93757Z" fill="white"/>%0A<path fill-rule="evenodd" clip-rule="evenodd" d="M11.7445 43.2905C13.0784 43.2905 14.0388 43.2912 14.7699 43.3896C15.4894 43.4863 15.9266 43.6711 16.2504 43.9951C16.5743 44.3193 16.7591 44.7569 16.8559 45.4763C16.9544 46.2074 16.9554 47.1675 16.9554 48.5014V49.9043C16.9554 51.2383 16.9547 52.1987 16.8563 52.9298C16.7595 53.6493 16.5748 54.0865 16.2508 54.4102C15.9265 54.7342 15.489 54.9189 14.7695 55.0158C14.0385 55.1142 13.0784 55.1152 11.7445 55.1152H10.3415C9.00759 55.1152 8.04722 55.1145 7.31607 55.0162C6.59659 54.9194 6.1594 54.7346 5.83564 54.4106C5.51168 54.0864 5.32694 53.6489 5.23007 52.9294C5.13166 52.1984 5.13065 51.2382 5.13065 49.9043V48.5014C5.13065 47.1675 5.13135 46.2071 5.22968 45.4759C5.32646 44.7565 5.51124 44.3193 5.83524 43.9955C6.15948 43.6715 6.597 43.4868 7.31646 43.3899C8.04751 43.2915 9.00765 43.2905 10.3415 43.2905H11.7445ZM8.28842 47.459C7.82545 47.4976 7.44577 47.7298 7.10626 48.0027C6.82149 48.2321 6.50307 48.5428 6.13274 48.9124V49.9043C6.13274 50.2663 6.13329 50.5964 6.1347 50.8943L6.91641 50.1126C7.40027 49.6287 7.72283 49.3081 7.98583 49.0956C8.24538 48.8866 8.35792 48.8607 8.40703 48.8572C8.53557 48.8463 8.66468 48.8708 8.78007 48.9285C8.82286 48.9502 8.91773 49.0156 9.08187 49.3074C9.2474 49.602 9.42752 50.0201 9.69683 50.6485L9.73402 50.7358L9.74615 50.7624C9.85061 51.0064 9.94729 51.2321 10.044 51.4102C10.1458 51.5961 10.2932 51.8195 10.5416 51.9731C10.8341 52.1543 11.1831 52.2215 11.5221 52.1622C11.8097 52.111 12.0292 51.959 12.1927 51.8244C12.3484 51.6953 12.5226 51.5211 12.7106 51.3331L12.7313 51.3124C13.0294 51.0143 13.2231 50.8212 13.3823 50.6872C13.5351 50.5582 13.6068 50.5273 13.6461 50.5154C13.7783 50.4755 13.9194 50.4755 14.0516 50.5154C14.0909 50.5273 14.1626 50.5582 14.3155 50.6872C14.4747 50.8212 14.6682 51.0141 14.9668 51.3128L15.9141 52.26C15.9464 51.7564 15.9519 51.1304 15.9533 50.3146L15.9392 50.3009C15.6656 50.0273 15.4301 49.7914 15.2197 49.6139C14.9973 49.4266 14.7552 49.2617 14.4564 49.172C14.0602 49.0525 13.6375 49.0525 13.2413 49.172C12.9425 49.2624 12.7011 49.4266 12.478 49.6139C12.2676 49.7913 12.0321 50.0278 11.7593 50.3013L11.739 50.3208C11.5237 50.5355 11.3971 50.6618 11.2982 50.7424L11.2841 50.7546L11.2759 50.7385C11.2149 50.6263 11.1434 50.4625 11.0234 50.1827L10.9862 50.0958L10.9706 50.0594C10.7209 49.4772 10.5113 48.9874 10.3044 48.6184C10.0904 48.239 9.82392 47.8819 9.40873 47.6743C9.06229 47.5007 8.67451 47.4263 8.28842 47.459ZM14.1996 44.9941C13.6185 44.9941 13.1474 45.4652 13.1474 46.0463C13.1474 46.6274 13.6185 47.0985 14.1996 47.0985C14.7807 47.0985 15.2518 46.6274 15.2518 46.0463C15.2518 45.4652 14.7807 44.9941 14.1996 44.9941Z" fill="white"/>%0A<path fill-rule="evenodd" clip-rule="evenodd" d="M22.7675 38.5807V55.6163C22.7675 56.3693 22.4678 57.0915 21.9341 57.624C21.4004 58.1564 20.6765 58.4554 19.9217 58.4554H2.84579C2.09106 58.4554 1.36706 58.1564 0.833383 57.624C0.299704 57.0915 0 56.3693 0 55.6163V32.902C3.46516e-05 32.149 0.299694 31.4267 0.833383 30.8943C1.36706 30.3619 2.09106 30.0629 2.84579 30.0629H14.2297L22.7675 38.5807ZM10.3415 42.4888C9.03021 42.4888 8.00652 42.488 7.2096 42.5953C6.40115 42.7042 5.76631 42.9309 5.26843 43.4283C4.77051 43.9259 4.54419 44.5607 4.43544 45.3691C4.32825 46.1661 4.32897 47.1901 4.32897 48.5014V49.9043C4.32897 51.2157 4.32816 52.2394 4.43544 53.0363C4.54428 53.8447 4.77099 54.4796 5.26843 54.9774C5.766 55.4754 6.40083 55.7017 7.20921 55.8104C8.00621 55.9176 9.03026 55.9169 10.3415 55.9169H11.7445C13.0558 55.9169 14.0795 55.9177 14.8764 55.8104C15.6849 55.7016 16.3197 55.4749 16.8176 54.9774C17.3155 54.4799 17.5418 53.845 17.6506 53.0367C17.7578 52.2397 17.757 51.2156 17.757 49.9043V48.5014C17.757 47.1901 17.7578 46.1664 17.6506 45.3695C17.5417 44.561 17.315 43.9262 16.8176 43.4283C16.32 42.9304 15.6852 42.7041 14.8768 42.5953C14.0798 42.4881 13.0557 42.4888 11.7445 42.4888H10.3415ZM12.8068 40.0004H20.633L12.8068 32.1923V40.0004Z" fill="white"/>%0A</svg>%0A';
|
|
9194
10960
|
|
|
9195
10961
|
// src/se-import/ui/jwtInstructions.ts
|
|
9196
|
-
import { Fragment as
|
|
10962
|
+
import { Fragment as Fragment11, createElement as createElement2 } from "react";
|
|
9197
10963
|
|
|
9198
10964
|
// src/assets/png/streamElements_copy_jwt.png
|
|
9199
10965
|
var streamElements_copy_jwt_default = "data:image/png;base64,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ypP/UqSnMHP00Uejb9++uPvuu/H333/bfqHwwsGnWMq+GzlypBWdKEBtbap77/MzRdNoHP90CoPMyqUoRHF+0qRJVkC777771sq45vEUeB0hy4F9yW0b8q9n+znhr7rqKuy77762LIrGo0aNwgEHHGAnP0Uz2uzsueeeuPXWW202P8Xo2bNn28xaPoXwyiuvYLfddsPtt99uRdwJEybg6aeftmIZ602R78ADD7RBB4rRf/75J1588UU77hTC7r//fnz99de2DPpKcXzuueceaxFC64kVK1bgzTfftAEe9glFZGZzM+u1adOmNnjA8/Fc1WH7eTwzu1kHXniffPIJvvjiCyuuUgy96aabbDtofdSlSxd89NFH9ny0Gdp///1te1hf9hX7lXOFdRs6bBh85kbw3Xff4Y033rBzijeVRx991D4F0bNnT3vOqVOn2vpRROR4nnHGGbZfmY0+f/58K35SIGRbWQf22zfffIPPPvvM1rH6teGsUcA5QluOJUuWWKGU+7MObCOFUta/T58+tv9Znx9//NEK69XbzCdauL22NvNmx7nJc40ePdpeH6w/7arYD6wjzx3t3cV5yvnFJxk4VkuXLsXPP/2EcUa05vzh8R07dMAQc7Nl4IdiNu9XFLQdeC3wSSD24cyZM219o6OlvK57mvvI6aY/yQ8//IBffvnFtpHn5vF8moKLiXCe/f777/j222/tdsJ5dNxxx9m5TRGYbeMTNewfCtGHHXYYfv75Z/vOYBX7hvWjYN21a1fMmDHDjn30Ncn+4rXDMeI85zvnPP9R6dixI6ZMmWLPwUAH5z/bw39oGAlmP3COs0z2F+c6x5njM8zMNY4tg2Wff/65PQ//AWIbeM0w6MPyGDx5++23qwJeLJdjx76j6M+5RVsalsMAIK97Bi1//fVX21ec35wnbDf76c4777TXT7du3ew1yX9XHCGdfcAAIuHc5lzi3OE2ls99eW+yc8L8xn4677zzbOY92/nee+9VBU42NBaO9RjHok2bNjbAyuO5nW3i2Hxvxp9Z+iyf97K33nrLXgtsE/txr732sk8msV95/P/+97+quVD9Hlzb3KxLllRCCCGEEEIIIcSODv+m33vvvW2SHf9ep47Az9RQqKdQ6yH8e576IzUKagjUPPn3O1/UEatrrBuLo19VZ7MEekecp3hKQYzZ1vRVZyZnTdngFEXY2G0lijtZoTWJGRT7KN5QOKFwRra1SM+OpvD+zz//WFHKEecJ63naaadZUYgvin41RU62lKrM0iic7M7qv1EwpzBGAYpZ8xSwKWpSxI6Gx1J0i7bJcX5nORsSkyiqUZijCMVz0eKBIjEF+YCpb7NmzWyf8AkMQsGPAhwFU5ZPEYzjyO0UPgkvCgrQfCKBgh3FYQZAKO5TqKawzycVDjroICu68QKiyMsACkVH2vpwO8VgCrsUXHnOI4880o4h5zkFS0fkZP+wv3gx0/YkWuBl+1euXGn7j8IgRTle6Lyg2W8U4jkXTjzxRPvYzDRTvwQj+D388MPWuoNWNBT/GQig6Mr+Idz24IMP2sAJ+4dPMFBk5W88v9MeCpkUTNkfPJ7znVm77C/2G4VHvrOPWAbLZeCAYvALL7xghdO77rprLRGRAuKyZcus+Mlx4JymCM9rn97wvO7Zbgr8FFD/+OMPK65S4GX5FDl5X9jYNlPAdYIELIdP5TAIwUDM66+/bj9TTL333nttvdhmwnZRaOZ9hpnXbDvFdgZKOEfoH/baa6/ZdR/+/fdfG+yhmEyx2cmmZoCI84Nt5GfWh33r+PgzOPOGCSpQCOccZgCIQQsG2jiXnnjiCXsD5xxnn7Nv6tWrZ4VbnuP555+385D143f2AfdjMIUiL/uIwjrLmmrmGTPnGcTgPOB95GDT/yw/+h7L67Bt27Z2bvLVu3dvO1YMonAsKEKzDfTPZ9+xb1kfitQMjHGusK28J/FaYD9TcOc/PrxvXnzxxbafKKZzbjMgS7skBlR4PV9//fX2umGQln3Ha5Bznde3I9DzGI4nRXsGxTjWp5r585cZF87Jxx9/HNdcc4299ugz7zy9wD7mdc/+YLvYZwxSsB2sD+cqrwmO3S233GKDBrzuOH9Zt4vN2JSafXnN8p7AgClt2DieGxoLzlWK84sWLbLnZ4CJdWPQkn3H641tLTb374mmDryP9e/f3/YV5yLPxfnGc3Oe3njjjdYTn/WMDuyxLQwS1DY32Q9CCCGEEEIIIYTYOlAToP7BxFc+Oc+/2ZnMSA3mww8/xOLFi62Wwb/TqZNRtKdO6LgCUCfZknNHOxJEs1kCPUVlCiEUMSkEUYCjwFcbFCTokVxTxvHWgOIZRaz1+Ws7tgWMiFDUpEi/pb7ptUHBh6IZRV2eK1rMZgYm+815hIJ14nYO+JYutBqNY/UQ/b0mL28nC5ZiFAWxefPmWVGZfcO6OrBvnf6qqZ6OHUNtIj1FK2ZAU+xmRi2zuBkEYJYsI1bMMl9lBMARI0bg2muvtRnWrIdjLULxjdnAhNEsinIUwSgkskyK4RRjKTyzfhTomVnOi4pBpGeeecbOU4rTFP55UVFoZv9z7lKkpCBGcZViPwMAFPCY1c3MVwpnXIiTghoFPAqmFDWdx10Iy+Q8ZD247gDbyP54+eWXrd0RL3TH8oViJa8hXhMUOylUU0SmCEoxj4IghUa2nX1EoZr9wrbddtttVhh9ydQt39Sffcv5TMGQ85z+2zwfBUMKvGwjxW2KtNyP/U0Bklm6jijNMaGYXz1YxExgCqosmyIsb1BsA4Ny9G2nsMmABZ9QoWBNUZgww519zrFieze2zRRJeVPk0wAUQllftpnn4Fyg8M8x5PVCIdpZYIPXG4MBfCKDgRmKwxTSKfhTuGdfcD8GVXj/Yl0osrIc3ox5nTpPBHGMmf3O+cN6MIDAOlCgZZudTHX2AQNbnIcUwjl/2I8MenB/jhvHjHOF4jkDTDyG2eLsDwZYeBzFYo4by+SxFIEJBXvWnwEk1pfbKSA7gRvC+cWx4Xx1rI3Y75x7PCevaQYQ9jPXzzvvvmvFcO7HQAD7kdcYj2W7mRXOIAOfHmBwg9cOj2eduD9Fd44Rbcy4L8eH943nnnvOCsoU/qNtXZz68bpgWdyffcv7COcor3X+xv5g8Oenn36yQRteaxxHtoFBO/Ylg0F8Hzt2rLXkotDN64nCPq8Rzgte+xTyOf68d3Hc+A8nj+M1yWuG1xTrsKljwaAbgyO8rgjLYLCA9eX+DBhwLvCJGN6nnnrySdsGPrXCece5xn7i0whsQ/Q9Y31z07E3EkIIIYQQQgghxJZDDYw6FHUEamb825t6BrU7JllSM6MYT32AOhH1DmoC1ACoMVBTpOawuRpubcdtsQc9cVT/2jLS/wvLm/Wdw6knhRTaNPwX1CSGE8d6h1DIouhDUY0iWXQ29payPrE8GtaRE8/xMqdoHn28E9igmLpw4UIrrjGrc1MnIi8Aiv88B0UvZt1SpKVNDc9DYdbxeGb/OP7mPB8FVAq1zGCmYEWhf7w5ltnLrAvFegpmFFM5vg888IDNSmWmL9vhiHu86HgRUvBiNjvHiH2/YMGCquxz7susXMdqhQImRT2KahT4eBEyO5cXJEXh6H6g0EexlkIyM4NZD/Yf20PBuEvlopXsCwrZjjUK28d3zgdm2PPxGdaRx1CgZRt4XtolOf7znCsHmgACRUq2g+I0284MafYV92NZ0YEW9ilfbBsDGhQVWQcKmRRfeePhOEc/fcHPzKqmmEtBn+IooWhMcdTxBufcYEY2282+pIjLQAefNOC4b2ybeTPkNgbSeG7OEdafQj7byrIZaGFdaY3CpyLYTzwHM9YpJPPFsjkn2F4GBHgj5TsDBhRJmVVPkZeiO8/LczBznJ85T5j5zLpxznEM2c7ly5fb47id9eATJrQx4XjwiQb+xuuYnznOFFr5dAgDOvzMjG8GeTiPnNXBeT7nOuU4MqObY8i6OwItz0OhmuItA1cUs52x4fzl/k5gjVnonMd8woFt4j6cj3GVc5CBFP4DxDnMa47bWR7Hh23lbxSu+TvHxQmEsb7MxOe7Y4XE+UZR3Zk3G3NPYBs5/5x+ZPvY1+wL9oOTMc76RK8RwD5ku9ivnFMUtHkNO/Xg3OI9hW3md44156OzjgDnJ+tOuxoK+BsaC77TxonzkcEFCvrR92de0wy88Fyc0+x/zheej9c5nwhiHRmoY1tYBuvOp0LYdgeOyfrmZk1PPQkhhBBCCCGEEGLz4N/Y/Fuef6dTs2FyJZN8qe1QL3H85qkLMFmUiZdMwHYSz521DjeX2rTazRLoWRlGFigY0TKA4giFDooctYkJ29LihiIGszFrg4IQs6xpe0EvYgqY21Kop7hFMYkZ2o69RfXBcxZUpDUCRTAKeFtLoHey5aufr7YFQDkpq1sEOYEE1onCKEUn+lRTUKf1RfTTEE7ZGwoIUIxiljE9tZltzcx2iugUEymKR587Wiij0BVtq2MXXDTiHTPcHVGNQi6FQs5JZhCzbNaXoir357HOYyQkur4U0PjZWSjT8X6mcOeInBSpOb8dKx8K9s6CpNXrzXcGCHidEPYts5hZFucicYRHZ5FMntdZiNN5GoHtZp34ToHaWcST9WJ5zgKWpCa/6mih3ekDQkGRmfPMZmemNIVKZuXzhsSs9OgnJxzRNLp+Tp9R+HWEVAq+/OwEVZz1CKKjihvTZtaZv1GE5Zg6beL1ynM4x/EcDPbwnf1LgZhPO1Cw5qNK3Ba9CCqfjGD2O2++nH8UTpkJz4z3GlbPrjqvM2e4D8fbeSKG56Xg6gR+OE60O3GuYb7z6QPH/onXOjOqGUTiOgCcl/ydom71+eO82O8lZr44C+dyf9bBGQPOJQYo+J1iNOvK7Hpm2TOoxsATAx/83RkDlsv7jSP88t0JlNDqyJl30Yv98pqi4OyMr3O8007WwxHWnUWZo9tU/b7vLOAb/Xv1+4ezzbm38N7NjHrnSR5nQeDq9XC2R/elU44zvzguGzMWzsrqznyNrm+0rZfTRr54bbIvOCcZ7GPAyplfDIQx0BXdzg3NTVncCCGEEEIIIYQQWxdnLU1qCbTE5RPvdDGgQO/YCvNvd7oN0JWBmfNMnKyuDWwOW1WgZ2WYacksWX5mJjOFBseHvqbKbusswNrEbYqYzFqkGMPF97a1OE84YBSxaW9AoTZ6kVhCwYZiMq1umG1L+5GaRMLNxRGUoheKdYQ3R+xzoJBEb2S+ogUqik/MUKVtBAVYCrkU0mmBQb/26qzPXsiBc4TjQQGKliYUVSlOMRub9hKOlQNFLoptFPFIdRGcIhvFR1q2UJDl/sx0ZdsY8WI9aeVB0ZltokULRctoNtTfzqK6FNRYL2aoM1rGLGX2GUVZJ8M++hgKowwm0A6G/veOoOtkVTMr1tl3fecmPD8zfxkooQUHI3acu05mN9vgLEqxvvKcIIaTxcsy2E/sI77Yh/TeYrCEmfQcS96QnP5noIPt5Bym8M3ttBJhkIUBG2ZA0+qE8DgKoAzocJxo9+EEczamzQ4UZHmDdMRe9gOtQBw/f56HTxdQPOb48/xsE3/j+R2vesI5Q/GZ32lpwjFhgIJBRdrDsF+rC7rV4Tk4X7md5+Q5mI3NMaAlDIXxDDMHOccpHHMfWpawrrPnzLF+9sy2Z+CIWe6sH+2BKOJG90H0+VcacZ1lsu9ZJtvM+jpzl33DOnEbgxc8lvdiZmTz3PzO68IJXnJ/WkKxrgywsm6cr7RqcrL/Q2Yf1ollcm7xOqQ9zLh//7XzmXOH91NaUlE85tiyb/nUA/uQ7aYozXce76xOHh0c3NA8cF4sg+UzOMU5PMv0M89JPzj+zqcBKLSzzzn2tM3h+NJ2LVxZVvV/ddiHHAvHj359YxF9j9hQ8NGpM/uU/8aw33lt8R93G2gx110Tc89gO6JtpDY0N/mUSHTATAghhBBCCCGEEFsH/t3Pv7mpB1A7obZBjZLaAS2eqVky+Zq62dYQ50ltNrabrQo7Ij0FPYqf9ORh6j8zNjfGWuW/gMIL7VD+S3GecHBpA0FhnqInBSEKvRTD+OJnCkRcDJCZ47SJ2NqZkjX560d7Qzsws5f1o7c0bRWcFwV07s9JSnGaghy92Nl/jv2MA8vkvuubqBTbuIgoxUOKrIw8UcijIMWMZ05QBi0oItIHigIwRdGabJTox859GCzg2DL71FkMlu2hgMxzsY8p1tNqhsJ0dH03hHM+lkdbEdq5sF96GlGQwj/PR8sPbnfKo/DGDHSKt3wiggEYirIU3hz//Noeg6mpTpxHjNTRkoPeV2wLRUmOBReU5PXHPlpfWbzZsI7sX/YTAzGcg3wCgOIk+4nBBoqEzCRmP7FcPmlCf232A9vPcaEYune/ftaWie3kO7fzKRE+LcCAHcVbCox8BIjzn+J1bStb19RmBhG4kCjnL9voBAk4B7kOwXXXXWdFaT6CRBscZ1w5v3gMbXUYHKC472TvU3xmsIxtZsY520pBl33C+bgpa1FwHHhPYcCK/cmnh9gHtCfhWDz55JN2jPikCEVWjt2fI0dWBRI4J9k+3ispolMIrwn25whzHOcyA5+0b+H+bAfbw77jtcOnH3hu5wkJXkO8PtkPzuKjvA8SlkVhngE2zmXaFTFSTC81Bl9YR44rF45ldJj+83yqgvO9nukztpX3K44B+9FZxJfnpjUPRXPeY/m0Eq9P9jNF6k3594BlMSjAp2NovcPPHE/rP2+CBHz6g0+P8AklzrEhRxxh5zBts9gWJ6BWG+wz2lyxLzZ2LDYFziUGEPiPOAN6tJHifLnn7rtt0JYLzDjjQXivWN/cdOa/EEIIIYQQQgghti7UaZgAy6RaJvtRr6S2yGRU6lBMDqZ+yWT0mvS3TcV5Gr8mtsiDPlqkJxRIKCxRUNreWX8UYCiG8PVfivOEYhKFJC4yyYGlwMVsSAou3OYIQxQwmbnJSMzWXCCWUBSNtkChUEsxs3oggIIQFzplkKW6kEahj/Y2FJo4IZnBzExmZuFSRIq2oeC51peVzvNSqKZgx4xcCpyc3BT9mKXPebRo0SLrt81saAqMvEAoUEULbjwvRVCK+xRImalOUZeCOC8gnoe/Ubxn4IOiIzOkKaYT52Jg/zi2FI7FTXQQgPtQzOPYMCuZGbHsB/7GfmR/sd+Y3czjObccOx56oDNAQ09zwv6iWM/jnIib8+7YiDiZ9s7TD9HtpXjI7GZauLCPKbDTGom+2KynU1enPY6lEsvh9ch+GGkigSyH4iwFT4rvFFcZIeS+HFeKiSyHc5ftopjP+jCDnk8rUID/2AQH2EYGVfioDz3Amf3LbGSWxxsYt1PIpWUH+82p18a0mWNJYZkBAYqWvI+wPfRFp80QbXl4Lor39OvmYpqcIwwi8Lqi2MwyeW3x5srj+eIcY104Lxw7J16XbDfrEd2HDhScHasX9geDDRSMOa7cj0EMisTsL0ZZzz7rLLxo5gTnBevM8WEQjudlfzCbmuNGAZwi7jfffGNFWaf9zpMGLJt14T60OeH9lMI696N9E21Q+Jlzjv9I8Dz8zuO5L4MTXPiYZfAfFwZPnbUIGGThdcVMfl6DrCf3Z90o2N9vgllppj0UrZ3FUinmM5Obx/HapejPe5vj88/xYF15L6HAz/sEx4Fl8/rmQsaOPQ7fq/9jxHqzLc6cZX0YEOOYMwDBDHo+peH0Da9JXvts26NmXDnfeJ2zX3lt2DUfnPNUjifr4njTU9zflLFwxiPaD57fo+eLMx48ltcsx41jxsABg5dsG+cKrzenHuyLDc1Nzrtt/fSZEEIIIYQQQgixK8K/1+mOwMRWahv8Tm2bMDmR+iK3MUGRmubW0LprTWI1YsoW//VPQYGZm2wMxREKOP+VGF4bjkBPkYlC2n9dH0espfUERUQupMlFRSkUUSCiYEdRmeLetloIkGMSLZpTJKJ45HitbwgeS0sTZm5TbKVgShGJxzvl8p2iEjNBN2Qbw+3sD75T/KUwRmHNeVSEcDsnvJMhTEGUYm30GgY8Pov7GfGZWb4Ui7kf+9LJGA9WWnXQY5pzgL9TrHZ8vNkGimQsk/Wn0Mh6OFYnLIPbnb5ivVg+s80piPKi5Xfuy0dfeJwT/GBZ9CNvW2kbxMADy+J2zgmKiJyPTmCA3/nueNazvuwXinOsN49h1jTbyvqzvayX0yesa3R7HMHSWUOAv+WY+idXLsLL33gMz0NRlvtyrrDfeQzr7/iWO2PBfdhPzoKxfLF+ToYv28D92ecMSDAb3xkP/r6xbSYULCn8U0R2+tTxTqeQyWPYp86ccdYJYJsoErN9FMx5LkeYdfqdQSdeAzye21g+y+accMbbCSLYxVUr68z55Xi1O/ZGnL/RC5lyH7aDwSO+M7DB8h2vcl4j7F+K6pyXznGsP+vHfmfbHD9+vrNP+JnjxICD44vu2Ppw4WAGhFhXJ3jEclgHttdZJ4Htcv4R4G9sFwV3RoPZd2yHM/fZz/zOMXDq6QjFjv0R28AynACHY2PDV/Vx4DvPzf5l/TiPnLnr9Bs/O4tVO+sX8DvnEoMtDHrQCozXqHNvZfsY6eY5mRXP8/AY55pwRHDi9C/ryfHYlLFw5md0gLN6+exDtoN9Eu2Rz8Ajj2E/O4/OEbaR+3F/ZyHumuamxHkhhBBCCCGEEGLbwL/bmexL3ZYJxUxA59/o/Jue+gPdAZhsxwRCalX8m31LYLnUCaKThB22ikBvC6oU8YgjkmxPnEU+yaZYWGxtKLRQjHEW+CTOQpjbsp9YPsWtaJsYws+cDNELOa4PR/B2FlnlBHUERMenmeLYpuD4oVNQc8qKJjoTfH2wTmyfI8RGl+Oco7bI1KbC8th+incbU6Zj++MEGrbGIhJORrOT/b+pRAc4nPFzghc1LYJZ/YkKp03ctzbvLWf75gadisy1woz8Z557Dq+8/PJaNz9HmHUysde5mVVudzKeazq/M483tw83dI7o+05N26PXgtgUWKYj9BMKzHyig1nfDP5Vf6KltnHd2Hqsr5+ix6Gm4zdmHDYGCt580ohrYTDTfcyYMWv5t2/peTZ3LDaWDfVTdbZ0bgohhBBCCCGEEGLjoW5Ii28+yc8kSyfRlDiJgUxupAPBs88+u0U2tI52wXPUlDS91QR6sWPBCUWxlCJ9tGUKJwQzPynobczCruuD5TLbdkP2NkJsDI4NDp/Y4KNDzCTeVuJpXYfXNhfpZVCUfuc7o1c528h1BhiA4FNZWyvYJoQQQgghhBBCCOHYSFNvqC1BMfqJ+i1JpqMoT6eC2hJaJdDvxNSWRc9Jwex9WipsjkjvZM5zEvPpAInzYmtCOyHe+DbWimlXxHmyhTf16os27yw49lm8zzDCLIQQQgghhBBCCFHX2FD2PJFAvxPjeBrRR766XQknBP2PUyp9yTdW4HPEePo0KXNeCCGEEEIIIYQQQgghaobaLNfqq8l73mH7mbOLbY5jGcIFHmlFE211Q2GdAjszVCnSOxYZjv+7gyPs850vPtbhLMIqcV4IIYQQQgghhBBCCCHWhQnR1F2poa4vOVoC/U4OhXQurMh3WkVUF+kJF5ykBxK96em5xM/ONk4e2uDQD5riPD9zm8R5IYQQQgghhBBCCCGEWBdqsbRwdnTZ9SGBfhfAmRCkukhPnCgO/eRretzC+U3CvBBCCCGEEEIIIYQQQtSOo8XytSFxnkig30VwJgbFeVrUkOq+9I74Xv332n4TQgghhBBCCCGEEEIIgaqk59TU1I3KnHeQQL8LwUnBhWHpN09PevrPU5SX+C6EEEIIIYQQQgghhBCbjrOmJ63DKc5Tb91YcZ5IoN/FoJUNBfmMjAzrK09bGwr1xFkIVgghhBBCCCGEEEIIIUTNOKI8tVQK8wkJCfadv61vQdiakEC/C8KJwigOF4NNS0uznynW88VFYPm9ug+9EEIIIYQQQgghhBBC7MpQkKeFOHVVCvJ8Oet9bqow7yCBfhcmOtJD6xu+hBBCCCGEEEIIIYQQQmyYzcmYr44EemHZ0okkhBBCCCGEEEIIIYQQYtNwQwghhBBCCCGEEEIIIYQQ/zkS6IUQQgghhBBCCCGEEEKI7YAEeiGEEEIIIYQQQgghhBBiOyCBXgghhBBCCCGEEEIIIYTYDngTU5IghNiGhE0kzO22qzoLIYQQYgfHhZ0f/V8SIYQQYtdjV/j/OFsL/X8l8R/jat2mg6adENsIavLx8bFYsngRXG49sCKEEEIIIYQQQgghhFiD1y3RUIhtitvtgtvjga41IYQQQgghhBBCCCFENFIMhRBCCCGEEEIIIYQQQojtgAR6IYQQQgghhBBCCCGEEGI7IIFeCCGEEEIIIYQQQgghhNgOSKAXQgghhBBCCCGEEEIIIbYDEuiFEEIIIYQQQgghhBBCiO2ABHohhBBCCCGEEEIIIYQQYjsggV4IIYQQQgghhBBCCCGE2A5IoBdCCCGEEEIIIYQQQgghtgMS6IUQQgghhBBCCCGEEEKI7YAEeiGEEEIIIYQQQgghhBBiOyCBXgghhBBCCCGEEEIIIYTYDkigF0IIIYQQQgghhBBCCCG2AxLohRBCCCGEEEIIIYQQQojtgAR6IYQQQgghhBBCCCGEEFufcDjqhWqvyO/hcAj/GS6XOWfI/LfMfnS7Ij+5TIUiL353md/Nt2CZ3Rf2122HF0IIIYQQQgghhBBCCCHEViJshHePxwOvNxYer88o4W6jc1OQjxK7zfdwMIxQsByB8jIEQ0Erjm8TrOBeDpdR5L0xGQjH1kN50FQnLg2B4jxUlOZyJ7MtBb7EVKA4GzEe80tZJoJl2QgZnd7l9iESWdi6SKAXQgghhBBCCCGEEEIIsZUIIyYmHt64OAQSXKjwAyGrQruwRuCOfHYHAE+5FzFFcQiWlqCstMho6VvT9MUI82Ej/Icq4E1qgXJPGorKShEsKgCCFUBhphHeqcRHzhkoXY2KkpWg8Uyxx2+CC2mIS24KfzAHgYJFJr7g3cr1k0AvhBBCCCGEEEIIIYQQYmsQDiM2PgmuxBiUJlvvGLjMby7rYmPevR7zkwuhQCCyu9HGy+PNL3Eu+PPjEWfE8pKSArvPFlNpU+ONSUUosR1yi7IRLlphBXYrsjOrv7oDvLPNVi6EUEU+Csvy4PInICWjN1wFsxEozze7+bG1sunlQS+EEEIIIYQQQgghhBBii6CtTUxsPFxJRpxPdUU83UOV3vNuFzwxfpRnF6BoySprNRM5yGwy+1DEL01zWWE/1h9vtPEt9KWnOB8ohT+pKYpiWiA3ZxFQUVyZLR+dyb/eFrHi9hiXKSvHlFEY2wL+xKZG+C/B1vKml0AvhBBCCCGEEEIIIYQQYoug57wnNg5lSS4ruldp4BTjywPInjAXuTMXoXhFFlxm33WOD4RRnmKE/Lg4uD1bYPxSKc57jZCe58pAecEyUzdvpTBfbVcbRgBY3aD5FLYZ9OvuZ6V6txcVhcuR786AL7HZVhPpJdALIYQQQgghhBBCCCGE2GyYPe/1xSCYYARvKs5RCeoU4wuWZCJYUQFvfExEFA/XnMHOX+lb7/PF1rrP+jGCeaAc/qTmKPTUR8CI8y6vf52yrM2OOVu5Edm94Qo0Nfs09/jhDQZRXlFuBft1dfqwtbapKFyKAnd9+JObIxwqx5YiD3ohhBBCCCGEEEIIIYQQmwUzzkOhEDweHyr8ldnzUYQrAkhq09ha3ORMnmf08+LaCzNCesiU4fP64CrDJhNGEL6YJCOgp6GiYKkV51FNnHeb+pYHK5Bm6vtK0gAMTmiBmHhzMm8xQq48DC9cjnMyl2FBeRgxXhfWbk6lSF9kRPrEJkiIKTTt2bKFbZVBL4QQQgghhBBCCCGEEGKToThfUVFh37kAbGmorOYFXo1IHg4EEbZqd+22MC6zOUQ3Gs/mWMeYM4cCCCV1QFnhSrhrEOdZt4pgOXb3pGJZ0vkY6G2JS4tHoceyn9Fz8Uict3w+2sTFYf7uLXBokhdlgXANAnpEpC8rXGHO1d7UuQJbYnUjgV4IIYQQQgghhBBCCGGzgIPlxSgvykNFcRbKivPN98KaBVchDAEjusfExuKhB+5HeXk59u7TFyWlpevuuIluNZtjboNQObxJLZBXuBpuM5drssihrU1C2IWxMedhTNl8NMp9B/28afglfW/80LAHBscloOvcuXhzWT6+65aOJiZQEKilhm63G/mFWfCYc4bDm291I4sbIYQQQgghhBBCCCF2ZWi2HQqiNC8TGZ0OQ3qnYxGX1hYlWTORNeszZM3+EbEJaUxrxqZKp9b+JFiBQGkxPH4fPL4E+3ugrADhUAje2OR1yoxYpphjSorN9jhz2hgbIqgozV/XrsTng9sTW+N5g4EyhCrMKxiGx+uG22/KcnmrzufULVhWsnYCtPns8fG8PvtzjftEY4rj4qgut2+d+u3MsP8KCvJwwuATTP96EOuLQcfWbTH899/hM+Pi9XiqRHKXEbOZYW/7kC/z2cWs+mCoWqFmTKmIBzexH5nBT+saTyrCFSvM+dZdhNZmz4eK8GTMIahwhTGg+EsszTgZib4A7i76F+GCClzboBFW1UtEvcnTcXBGKt5qFYMDZpXA63cjVEOJ4fIiVMQ2ghtLEWnYpo+/BHohhBBCCCGEEEIIIXZljDgfNEJj9wtGoHGf/sidtwRlBfmo17Ql2g47H0uG/4gZHx5jBPYYKq2bWDQX7GyGhr2OROGSUShc/i8oZKa1OQgxKa2xfNxz8MWmGSE3FHVMwIjpiWja80Lkzvra1GURQmZ7vc7HGMGe+wZBY5CwEfGLlo9F4YpJpoxEqvWwAqnRScsKshFfrx1SW++PmNQ2KF45Adlzf0ZFSS788am2DKduKd0ONkJxZda3CUIES3ORv3gUyvIWwBuXAn+y2afVQWv2qYbLBAhy536HiuIVlQGAnR+K4TnZ2RgyZAj2HTAARUVFaNqkEWZPnY3rr7kaz7/0CsoDAfiMSM99AyWm7wpMkKMiaEX7QFaBiWqY/8bFrhXUCLtd8JaEETRjE6aVzMY+vWHmsCc2HYVlpbX6wbs4N8y5ji7bE4+7fsMDCb2Q4PajzYoP0Tm2Hlr5gUbTRmN51y54rXkj3LRsNV7o6EbsbI/NvK+xTFPfEnPOlJgME3TK2eTrg2z1GWM7PGAuanMhxcTEbOZqu0IIIYQQQgghhBBCiG2OERRLCzKx+6k/IGO33vj7nn2RM/9Pq3WHAjCi+BHodt77iM/4C6Me3R2xifFwe5mJvnHZ9MGKUiQ06o5u59yLWR++gJwFo4y0XoGGfa9B84H9UfboUmTP/MoI70mR6hhtsbQwB7uf/DaaH3QYxj+9DMVZs4wYH0TrQx82ZTWCy7vGx9xt1M3cOfMw/vnecIUDViAvL1yNNoc+hlaDL4fb6KU81mWE4kB+ENPeOwOZUz6ELyG9qm5dTnkURuu3ZYUjXYKQiRfM/fxezP3hFmR0PAZ7nP+oKTfSpkBpZRJ4XERbNrEEjGU7Zi2AJyYROzscIwrygw8/HEcccTiyjVDv9fowaFB/PPXcy9h/yAG44Jyz8MRzLxjB3Q2X34ei2UtRlpNvj2XnZU+bD39CHNK6t0OovKKyYNCDBp6iMEoryjZp4dUwfeBj6iNYWFB53Lpzk2GdZFccUlwJ+DO0BE+79sZ75dPQP6Eh2hihPt9M+P9r3BxP5azGlRlJeD47hBgz11LMtbAatXnFm4BOoAjhhAyESzLNPPNjU9nqAj1X7PWbTk9Lq48VK1aawVGSvhBCCCGEEEIIIYQQOyKB0nw07Ho8mg06GL9e1QaB4mWITalvM9opdK6e+QPGPNQP+9w9Hh0OeQA5C39F0YqpqChZCX98xlqZ7zViRNdwsMKK28GKooisTmuZsnyUGtWz/REvYNSUL+CLc9lE32BFCZIadUGDPQ9DcSaPLa+yRaHlTTgQwG83NoKHi4iGXWjc+//Q+aS70f7wVzD9kxNs4KDFgJvR7ujLkTN1Pqa+OwRl+SuQ1KQ7up7znRHa38Y/D8xFUeaUqrrxfd63D2Pe8Hvg9/mN4F4PXU76Dh2OvhlZ0z5C1sxP8cf1I20WdbC0FHteNdnUvxx/Pt8TXn+c9TsPlObA40/ArgD139jYWOyz997Iy8sHOzAQqEDzZk3Rq1tXvPX0m7jk1sswoF8//DZyJBLMeKd0aGYU7rXz4RncCBpxPjInTLlme2xu2PRlCYLBYETM30g8nhiUcSpSqK81gz7iQR92h+ELR6yOKMpXmA2Xx7bGMlcubi9ejEY+D8rM3LLr1IbcCIaDnGq1wEYEUWbUf59385LVt+oisew0RkwuvvgC3HTj9Vi1KtOa5QshhBBCCCGEEEIIIXY8QsEyNOx1MVZPnYbygvmV9i8R0Z3vsYkpyF82EctG/Yr2x1+PXpf/gP0eXYKW+92HsoLMTcpyXufcASChSTqa7XUhyotybFkVRQVoN/R/VrytSRO1QqkR1d30KveEjah+HwqX5yC59T5Gl/XC7UtEm8F3oGhZCca90BdleQvhMYJrzoI/MfmVQ6ilov2Rr9tAQDTUNV3BUtC6vHD1XCz6/TarnCY139sIxgUmwLAMgaLlpp4rrVVK2Ei9FfnL7W9lBUsrhf5dQwetqDBifPMWSE1JNsK8s4SqC4WFhTjhhGOQu2QVXnzgeXTs2MEo5+5IIMSI+uFA0Iz5mlfYivARWxua2VCcDxeWoby0eJPEecLjEZturW5qx4WicCnySnLR19ME/7qWY1i4GSYWm7nnAxaHyjC5uAjnZmTgl4JS9E7yosjEh7IDIXjWe3Jzzrj0zV5KectnDSdveTF7GRVmQOrXq4cjhgzG4MGHYUD/vc3AFEX2KeUzIFrxWQghhBBCCCGEEEKIHQVmnCc0aY2c6T8bfTl2nYx4K9Kn1seUtw/FT5em4rdr0jH708fR+eRrkdp6IAJlhdgcmEsdrCjA8r9/RLuj7jEqpd8uHJvaZl/U79ETy0a8jRrW+bTieIUR0stLckxAIRtxqc1M/VJQmrscwfJSJDXuAk+sG3lz/0GwLBPemEhWe0xiKnIX/YWynGLbXpc7IbpQhIxgXxEotx717IKMLidavT1v4R/w+mOtdYnL1JHZ8pU293CbCtrfaGvi2rwFQusizKBPMeJ8yD5lsUbvZVCluLgY111zBeICHrx6/8tIDcebwAdF+Eoh3r32Z27zFocRuzqEYF4xSksKKvtyEzEnryjOrXFxWIdIYCWMnxNm4sxgNzxYPh0d4lvitoQOaBFfHy+Y4Es7vxfNEhNxU2YOLmwYi1+z3Ka9LhsQqrVcc86AOffmjv9mC/Rhc/F6C3MQk7UURW36IpTUAPk52Tj1tFOQbqIMq1evxnXXX4OCggK4TeQiu/cx8OesgKcoZ5eJJgkhhBBCCCGEEEIIsUMTDqI8PwexGe1hjdidBFuj3wXL8lFRVmHe8+CPS4cvJgZenwdzvrkKmeOno82hTyAUKMHm4jVC+szPToY/NREtB92JosJidDr+NWRPn4CV41+wHu/VCVZ40fW4D9D5+M/R5ZRvsc/NM+Dxu7F05D226rEZna2wX2wtbPxrLEeMmOwxanDxyoXwxscYwT7DZnCTQBHQtN+l6H/dHPS6dAb635yJxnsOxvxv/4eS1dPsIrBiDdbixsyFmreFUVRchJNOOgaXnHcWChasgC8zgJiVwcpXqPIVsO++VQFgdQlKC3JRVlaMzU/wNgJ9ad56dWfOBI8nDjeF/kSTxFZGs/bgqqKfcUZKV7ySPRW/5WTi11a7463lK7F7bBitU2Jw6aJyM+9dJhixnlPzyQ9z7s1di3XTlXJzQldZERJWzcOifc/EtBdnYvlFz8C7aAoaNGyMCy44D1mrs+wjDX379EG/fn1RnrkE2X2OwvQvVmLFYVchbuUCeAqz7SIBQgghhBBCCCGEEEKI7YUP2dO+QOM++8ETk1DlPV+al4lG3c/DQc/koOEe56Ekv9LOxi76GYvMKZ/Al5JmtELPZp/Z5fWjxIi5C398H60O/j+06HMGUtu3xcwPzjYiej3UpHeGQy6ktOxhXt2R2HQ3ZE74DWOfOBirZ3wJf3wSSnPmWRubuPQOET/ySsGXmd6hkBtx9RojUFphLXXcldnWbEJJ9jJkTf8Z5YU5iG+UgoU/PIkpH50Bf2JD7CqZ8RuNGZiMjHTUtvwAx41J282bN0N6ejIKcleb+ZNjXtlRr8rvRbkoN1ozRX+Xa9u7r/jhxezyFRhbPg6f+Q/C4zkTEb/obZy3+F/80bIXSk2bTl+6BB+2a46P55dgYVnQBHY2ol5bUPdNUsjD5iL0ZS9FmbkIJj89HSXX3gf3pDFoe+dgrA66cdNN19spT+8hdmpubi6uu/YaFHqT0OXZk+H65ivkn3IVpny2Apn9Tkbs6iW2TCGEEEIIIYQQQgghxH+PLz4RS/96BMHycrQ/4mUESvJQVrAaTXqfjS7nPI3CJSF0Ne9Ne55jRXqqr14jrLc48BIULZu/Ac/vDRGGz+fHvG8vNsV4sftZb2DZX6OQs3g8PP6kGo/wxlTgz0c64Z9H2mLMY20x7YOhyF88CjGJ6XCbehWtmIBQIISUNv0AT7wRkcsj3valBUho0AmxGakoXmk0yWBB1cKfTJDPnvExpn15IcY+uyeWj/4JbY+6HE27H20tb8QaKKKXlVegceMm1hJoPXtajXj33buhuKQYLiZqU8Su7bXlFYMvJhnYwKLFATPn3N4EnFz+A5r5muGM1N3M3AviskadMaBea/SbMwmPNW6IeKNtn7E0Fz4/F4ndQIDGnNOeezOz/zdeHTeNjM1cgJWHX4vFr39hwiA56HRyV3R6+hS4inNNhC0ODRo2QFFRsRXn+SotLUWDBvXg8flQGpeEjq+eh66nNof/l1+R89jjWHzSw4hbOV8ivRBCCCGEEEIIIYQQ2wWP0f3CGP1QX7sYaigYQv3dj0fPy1/Ggm/fgMvjxnzz3v2yl9Ci7yUozs5Et7N/NAK6D7M+OxHe2GRsCfT2pvf8wh8eNWUBs784HTFxbqAWUTRsVHW/Nwa+uBT78iekmbrEV3rnu60X+OJfnkdS8yR0O/M3IxK7UVqYY/Zrij3O+4NW9yYgcAncniiLljAt8BMQYzTMhLRUzP3iHFQUhdDh6NcQDGhVTQeK88yMP2D//dC+fXuUlZWvd3/60XPfNm3a2oVlt2ndzMtr5kJ4IwJGXpcHswM5+LTiHzzm74t2sUl4smFv3Ld0ElYGS3Blk8a42IjzxSHPRonnPKc3IXWzAw0bp4ybwmNWzsOSkx9Fzh03I+Wee9H1+j5mgpejrH5zhD0+G2lYsHAhPB5PlUDv9nowb/6CyKMx5j8VyQ1RnJCCti+chqanHomCs8/D1Cf+RcKSGUak11QXQgghhBBCCCGEEOK/JQy3Lx7lxcsx97sLjHAdQuuD78GM95/Dgl9uRWwGsODnmzHzg2fQoPc5Ru9zYfWkj4yg3wuhsjzzPWZDxdsFVv1Gx/f4EyM/GfHdE2PE9UQvKK0y+33JX/fix0vSEChZbfaPsS9fEiJCOsV6Zu7HxcKf5DFF1q4j+hPTMO/HK7H49x/RsMee2P+RLAy6JwsD7plt2pKCWe/fiew535tgQFKNdeN5ywqWY9EvLyGto9ExD37I9E1udHPgTYyBNz7WBgt2JZgR37BhQ5x5xhlGnC9BTIzpOxOoqe3l80XG9847bjNa8ZY8abFhbDinJGujLJe4r9sVgwtLRyM56MG0pEMxLz8bNy+fhkcatsTq4gq8kp0Dr5nroY05OS3hS7I3O5Dj3eAe5gTenKVYcspjyL/iArQ4fSjiZ/yO4sbtTXAtVPXYgNuEu6ZNmYYjDh9sxflIa8MoNFGVNQGvsBXqyzOaI27eP+hybCdMe3Uipt/8Azo+PAQlDdvCFdqoZgshhBBCCCGEEEIIIbYGRt9zu/1wx/ltlvTYp/dAqLwIyU16gQplbGpTzPv+Uni88YhLbYRlY56Fx+c3IntSZeZ67dB2pjRrJuZ8+g5y5/1ghHDKkV5kTn7T6KkzjAAftmV4fIlYI62GzbZpmPP52yhePd2eKxwKY9lfzyFrWit4PLVbjnALM+unvn0IVowZjJQ2B5r6t0PxyglYPf0jFK6cjpik+vacNdbN/O5PSMGi32+JiL2hCnv+qvb4PVj48zMIB8rN/pvvv18XYWJ2dnY2vv72WzRr2tQK9lSly8vKUV5RbucO/xMfH191DIX6b7/7bpsHM0JmPPweF4rdnF9hbGjdAK/RvFcFi/CxazZOTO6CE1b+bsY5DkelZOD53OWgRO11b8zqA6bF5trxG208ECw1n2OwqaxfoDed6i7KRWHH/si/6iKk3nMf4qf+hop6zSPifBRutxvFJSWmIoEqgZ4eUtNnzFg3QmKODSfWQ0VBFlrdciwWvPU1Fs6+FU2/fRSB1MYb9AoSQgghhBBCCCGEEEJsfZjd7vXHIUjfDaMNeuIizh3MOHd7Y41sF4hkn9t9N6zhub1xKDYi+Mwvzjbl+uCNiWSur5r8FpaPfx2xienrlOPhMUaYn/XFOfDFxtnAAIXgJaMetXYiMTUcszYuxKY0RN6i4cie+7PRMY2Q7Dbn9scgNimj6tia6hamrklhPhzEnG8vNYJrGDHxaVXHeM0x83+62RwcWuv3XYXY2Fh8/vnnVriOrEVajt1264qBAweiorwC+QX5eO31V+06BYSJ20zspmgfDm+7xXZdRph3l602InuaCS7lb9BuxtbE5cXnFctwYHEjjC1Yjvr+ZCR7YvFZUYG1dtqo2jLQ40+Eq4yLKPuwOaxfoDcT0m8qM/uO94H3R6L5p3ejuFGbGgX0mJgYzJo1CxWBCgQqBfqK8nLMmDHLbItFTZUPmQsidtZIJN31IAouvAn46z24KkqtZc7GwKhMMBhEWVmZeTeRNlNX1oPRnG054Nsap13FxSXrnUtJSUm27Xz5fD57gdTldgshhBBCCCGEEEKIHQMPrV4Kl2HlqD/N+3JrBbNZUMA0x8YkVAq2lbqhNyYR3piaRf5w9WOsiwcz4zc+MBDJyk9AdZlxrWNrqZt1AXEZnTEheZ1jwjbDfuPrsbNB7TE6Q764KIyWLVqib589UVJSigULaIHuW2sf57htigmqBEqzTGCmMYrKcs34bfjpBo/Z5+eKVZgXzMHE5gch1V1qBO0gVgbK4N5IZ3jOgTgGtPKzbRAIm9HO9Qr0nuIcLB1wtik4Hp3/dwGK6zWtNbvd6/ViydJlRpxHZca8EZnNpC4oLrVRkppbEEJFelO0+uwOTD78HMw89Vl0fupIlKc2xYYeIGDG/qpVmUhNTUXXrl2RkZGOrKxszJ49G8uXL0O9evXh90curvz8fCtm1xXxmuJ8YmIi+piJXdsCCuzvkSNHoUOHdmjcqDEyV2eats+xv9c1GJDgIzFsN4MMIdkcCSGEEEIIIYQQQmxfjHgZDpRi4hv7Wl93l9uzWeKj2LmJT0jA73/8Yb3pE5MS8e577yMuLg7/PZF1CmKM2F7sTzBCe8mGs+jN/hkuP/r4myGveBEKfUG8bY5fWmECNxuzXqo53uWLhz+Ugwp+3szro3Y110SJPCZakHvirUh+61GE8pYCKU1qFeh9HjdW5BTBU5BrPXq4HzPpF8+eZaJh6/HeMfuUpNRH8yfPxeLbPgMS0iPnWE8nUNBdvXo1LrvsYtxy841VQrzDN99+j7vvvhcrVqww+2Vh6JFD8M/osagrlJSUWHH+/ffeXu9+9es3Qs+ePfHoIw/igw8+wvnn/x/qN2iIugQDLTk5OTbQ0qZNG8yZM7dyAQkhhBBCCCGEEEIIsf0IW33Qn5hR+VXivKgZ6nv/e+st+5ni/HZzN3H7EShYhOSMPZGbs8iI7I4ffS27m/m9IFCIzFAuUvyxSIl3I6/MiO2BAGKM3hxaTxuoTzNJPTWpHgKZY+3iwsBWFuhdJbnI7H0ikBqPRqPfRoAX43oe28gMenBJwiqkrVqAZY07wR12oUF+Fm4sm4kLfF3R1FVRaxXDsUlInDUCMAGBeQMuROufH0GFc/HXQGlJKXbruhvuuvN2+3348D/w199/20cpdt+9Kw4ffCjGjB6D++6/H48++gguveQiNGjYCLGxifB6PZUCf6b57DMid33k5uairKzcfK5nJw8zufPy8xHkYg8en82+ZxDAyezmpCssLERJcbHdn4+8JKckW3sd7mOz+1eutEGGRo0aIi8vH8VmX5KWlmbL4nHcNyc7C8FQ2GaOJycnV01eu8iCYebMWfjss8/XeSyE+wfNeNDehhQXFVWtUuxY5NTUhsh5gzbA4bQ/Ly9vk+vnnIfBBD6+Egyuex5m/+fkZJt+iUN6elrleYrM5PdU9VdBQSH69++Pjz96D7fdfgfGjh2NlJR0u4BEdD/zguD+cXHxdoVoZdkLIYQQQgghhBBCCLH9oUaYkJBQ9X37uZgwqOSDp3AOYhJboLxwmV3AtTbh3Hrom/89IHcUfq/fG6OCebguc7Fdj2B94jw135DRQv2JTeAumI2gx2tK2fw21yrQ+ypKsbrzEGDiHHhzFiKYUru9DR15SkNe3BwsQ/7i+WicX4S0OSOxsvsQnGoqd52bjQVqdf5huWYf7w/foqzviXD/8gjWR15+Hq684jL7+bvvvsfgww83wnKGEbWDRiBOxrnnnoUXX3zFCMppOOP001BeXo56GfWRZATm3Nw8G8V58onHMXvOXDz00IM47tjj0blzR7z40itGEC5CqhGPzz/3bLRu0wbz58/H119/i8WLl6BhwwZWdF6xYjkOOeQQ7Nm7t838zi/Iw9tvv4sVK1eZY1OsaP3Iow8ZcTsHt912u63fIYccbK1+nn76WSxZssxa0fhMsOCGG2+wx4wd+y/ee/89I+g3WautEyZOwq233oKExOR1+sFfg7d/lfVPLW2gFRBF7uj2Dx06DAcffFBl/Z7D0qVLbf0okt9ww/W2jWPHjjX1+xCNGje2fly88JYvX4699uqLnj16oF37dliwYAG++OIrZGZm2ouyWbNmuOfuO/H336Px/PPP4aijj8bgww7F6qzVtr+WLVtuhP0AjjxisB0TriPQqFFjI96n2L7j9oMPPhB99tzTCvzjxo3H3/+MNu1bZcuX374QQgghhBBCCCGEEKIKlxsVZXlI8mchP6EpKoqWrlek97s8mBwsxKBVo7ECZSjjgshhI8DXJrgbTTRsxfmmSAplobw0b4uy522Rbdt1qvFoX3EOZtw2Efj3e3T68mpUJNWvtZBMI85fE78ct2ZnIeuq/4Nr6QIkzpqDJWfehTbXnIK3U5JwQWFLNHIHai3DXZKDlb3PQf6pd6Dj5c0RsFY3NTcsywi8N990I6655iqUlpaiZ689jTi8CImJSUaUT0J2VjbSjRDNzPhpUyehQYM1df/1t+FGwD8f8+bOwhgjOk+bNsOI+Kda//wWzZvjpptvsbY5zBhn2XwnF19yOd555z3Uq5eBsWP+sqI1s7gpKjuWLIcPGWpE5AlGwK4w4vISI8Qvxeeff4HLLrtkrfpffc11+P33kfhz5HCbDe6wbNkytO/Q2ZSdhn799sLHH72Pjz/+FCefcooNNjhw8QEbGMgvwAknHIdnnn4Cr7/2Bq665nqbeX/55ZfU2oa33nobnTp1xuh/RmL0mLF2Yd9TTzl5rfpdfsXVmDlzJr7/7uu1fh8xYiQOG3wEmjZtivnz5uOVV17A6SYAQpzzMEv+gAMPsVY1hx56iLXpeevtd7DbbrsZIb/7WuWdfMrp+OD99/H444/h0ksvtqK/Q7oJqNxyyy246srLbT/z5fjrH3LoEEyZMtUEGmJRF4iLizFzYYkNngghhBBCCCGEEEIIIbYlFNFL4E1shkJPPVRsKJPeSJJBuqQg8jRA7dp8JHPel9AEieHVCBQY8d8bu8X2T7UqhmFWxojyGQv/RtC3fiG0whSzlzvftAT4JrY70n/7Ff7xczEppwTl5gwHugsQeWigdkIxiWgw+0e72m1FRmu4AuW17puSkoo3//e2tXehKDx50gS89947OOywQ5C5aoXpcNdaYihF60MOG4KTTj4N1193o7VqoeDLzO9TTj4Rjz32BE477UxceNHFNuM7Ozsbffrug8aNm6JvvwHWI/2xRx8y502ytjHTp0/H/Q88hG579EKLlq1x19332vO8+MKzKCoqsmNIi5mmzZrioosuwI033YoDDzoUX34VEbzvvON2I87/hi+//BLHHHsCLrjwIpv936RJExN4uMnazzg0b9EMZ555Js4449Sq1/nnnWstb3iOaPJys3DeeWevtw1JJoARCFTY9vfq2QNHHzUMN9x4M/bb/yCMHPmnLef+++7B5599bBd1OPqY4/HQw4/a/QcM6I+TTjoJCxcuxEMP3W/F+Tf/9xY6d+mGho2a4NLLrrSZ7b/8/AMCFWU2O54cd+wxaNK4Ec4553wcd/xJGDXqL/v7C88/Y32pOLn5eumlV3DQIYNxwomngE0795yz7NMIbdt2QLv2nXDCSafikUceN+L8lDojzgshhBBCCCGEEEIIIf5LjNjuiUOgcAmSQ1nwJTYx2mag1kVc+bPHaNf8T+0e7WEjzgesrU0ysreaOE9qtbgJcWVmrxsxhVkoC4XhZ/p+LSf0hUNYGo7FpNQK3PrNSJyeEbaNeeK3v5Hn8qJ1iC4861/0NRCkd7uXaj8qYtMQU7CCJde4Pz3OKWL36LknPv3kI3Tq1NEuBMtX5sMP4I4777YWKn5/ZHFaisv//PU3YivF4ObNm9nfaavSdffu1pqFYvfzzz1lf9+zz15G4M4xYnMixo8ba4V9ZpOffNKJePW1NzBov/0RY8r2+WJs9vyDD9xvxWQK7FyxOC83O1K+CRLsPWAQJk2aZIMKxx5zHGbMmGoXQ/3xx59w4oknoX6DRmb/HHRo3wFXXXUFWrZqbuqypp/79uljX9VZsnQJZs+es9ZvHq8X5517znrbcOLxx+Obb76pan+v3n1t5n5CQhIOOeRQrFy5HImJifjhxx9x2qmn2fp9/fVXduViPrHQu1d3fPD+u7jwwguwePFinHnGmUhMSrH+8M8++wzS0lLt2gDd9uiO4uJSex5aDPUfsJ998oE+9cN/+w2LFs2350lJSakS8idOnIS/Rv2JJFMe+5X141gfNngw3n33HXz84SemDd+jUaNG6wQnhBBCCCGEEEIIIYQQIkJEpKcPfZK/EKG09sgrWo1webFdT5RWONFqfK0u9Ub3ppuJy2d0zMR0uAtnR2xttpI4T2oW6HniuFRrHB/rcaN71xb4e/pqxMXUvHuMO4hJ4WSEY8JYNnECZrf2o2m6GxPGTcTcuPomOpEP73oWmKWAnpyciFLTSTxnRXx9xISmrHd/LkZaVFSMnr36on37tjj4oINx9jlnoHOnTnj2madQWFCEzz//tPIIF2JiY6wgTA/5UCjSefPmzbPWOE2aNEWuEcmbN29uFyX95puvkWg9zkN2X8cipp0R0bOyMvHYY49Zb3uKx8zkdhaGJekZaTaTndDuhdn2jRs3scGNeCOC0wKHAv0bb76FevUb2jpx2/gJE+0xFPKjrV7++Wc0Xn31ddveqv42bVm0aLEVxaNJiI9HixYbaEO7tlXiNtu/ePFS0/7Gtg0lJXGYPmMm9uzdC0899RwaNGxihPtIpv7CRYvsMbmmTR06drTWPKzT1OlT4fNEVhfgkwr16kfshPrt1RfjKtvENtBPvlmzprat9Min/Q/rkpiUaIIzkfrEmr6MjU2wWfg5ubl45NHHcfttt+C5Z5/Cww/dj99//wNXXnWdGfdCm3kvD3ohhBBCCCGEEEIIIUTNGJHe7UOgogjIGov0pBYoi22M0rIS81uxEZnLrQ7uYqK6q9KNhbp4yGiVLvObx2f+m4jYmFj4gzkIZo1BwOWLeM5vRV2yZsXdVMBdtAoorECJEdgbZqww4qupbC2BgURXGL9XJKHcF4uwz4WReW7sXlKOwmAJxniSkR2ONyJ+7QJ9XmEZjty3Nb6dFWttcuKz55ia+Wvdn2J4fn6+tYVhNnxeXj5ee/11I+g+gg/efw/HH38srrzyUrz//rtYH1wwlguhUpwmzNimyEzhmpndYSNsUyungDzX/Pbrr7/g6quvxuWXXYKpU6fZRVMLCvKt//qtt9xshe5gYE1md0lJqX0qYI2QHIbP76vcVmLP55y3oKDQfq6eGb7YCNmvm7alpKZX/RYJUCSu5V9vcUW1Ya5pQ+q6bRg3fkLVeau3n4EBny/ynQvAOuWz+n6fv6quDIywTfw8a+YsK9Tb87hdmDt3PuLi40wfLrBPGZACEzCIPo/bBH0KCgoi7bXBknWfrshIT8ejjz6Bjz76BDdcf61dLHbw4MMwaNBAEyDoYsuKDmQIIYQQQgghhBBCCCHEOtiM+RiUFyyBx70EyTEZCCfWQ7mRYcPxaagozEWgLB9Wu41Lhzc+Ba6SbPg9LrhKVyOQl4UAPeo9sZU2OVs3abgWi5sw3Kx4cQCZRX6ceHJL/DpuNcqN+OwxImxxSQBxsZ6qvfkpK+jClwE/kkqKETdkHxT5KhD7yVLMKHNjGvxIdq0t0JeWBW0Z1t6mPIQrTtsN71w516jPplLZ8xFkBn8tjV25chXGjx+D4cOH4+KLLkFMXDyt/+HzeqpsX2iZQ+HX7XbZckpLS1BeXmGz3iO/UShe04by8oARl+dht9264KEHH8bo0f8gNi4B5WVlRoh22WBAbGwcJk8eb73ve/Xe0y5aSs25rLQYt9xy0zr19Bgh2uWquQ20v3GEe757vZ4a97OCPQX2irU9+WmL4zFBjGiNutgI51VteKjmNmTUq49WrVut0/61cEU8/GvKUGf/LVu6xPYBBfqLL74EK1asNGJ+rOnDEqSZQAL971PTMrD//oMq+8Gzlpjuqjy3I817Kp8+KDSifXFxgW0zrXIaNWqIefPn48wzz4bX58HDDz+ESy+5GFddeQXuvudeZGTUgxBCCCGEEEIIIYQQQqwfJhd7rQ17oDQH4eJVRkuONe+0b48S3UtWGXHe6KLmP4FAuT2Ga6ZaYX4buXl4a69zAFixAIH6fbBw/nN44rZ9MOSsb9CgQRx2b18fk2dnITHeY+1TwragSAZ1VmkAXY/aDW3apcD75uvw1Y+rspQhFGqLzD777tkUI8csM2JuCR64rh+yMxcgM6UHkGN6xYr5NTeYmed799sLbVq3Mq8zMfiwwzB16lT8++84pKWn47xzz7b7vfPOuzZrO2iEeorK119/PdLT0vDpp59j+Yrl65RLq5prr7sB337zJX766Qdcf+NNGD9uAnp03wNXXHkZ8vPy0bdvP8yfv8Ba1DzwwAP43//eQnp6Bh588D40b9asKkN8a7JHt2646667kRAft9bvtKy555771sq4D4Xdtbbhyisvt5Y7gwYdiFBwC+pphqWwsAj33f8Q7rrzNkybOgU33Xwrxo0bj9133w2PPfoIvv/+B5x62hkbZUHDQMCSpUvt5+uvv9Z6QHXv3h0vvPQSxv8bsff59LPPMX3adDPere1+/4webYMlQgghhBBCCCGEEEIIsfGEbUY9bWpCa2mXrqrN4Upd2uWpdC/ZxjbbtS8SayoVO+NblB5wMe6843zMWX4AHpnVA3c+NQlfv98fDz86Bfe9OB1NGq4R4MsrQmjRNAlde5sv7gIM6N0AY6flICEukqlNcb6gOID0JD/ef7cfWnf6BKcf0waX3bY7jt7nWaDvfcDMsfCY4EBtS4DGx8dj4qRJ6NipKx5//BEj0B9qM60POGD/SB3Ky3H3PffjlVdet4uX3nf/A3jyicdw043X2+2dOnXCOeecY4VherQ7dadNy99/j8ZFF1+Ge+6+E88981TVORkUuPLRa5CeUQ+XXnYlfvv1J1xx+aX2RcaO/RerVq0ywYsGto1MFqdVDEX06OAEPyclJUc63rfGnsauFFyZQc96cFVhZudH6tsBN95wbY198eSTT8FbmQUfb9rC9tTWhuLiYtx8y22IT0ywba/e/kg9wtYT312VQV9Z73DI+t47/Z+UnGKCEo8gzQQ8rrziUjz7zJNVZdBu6KWXX7EZ9dFtCkYFBaLPw/549533rI0NAx8vvPCsreuTTz2NH374CeeagMu5lUEX8uWXX+O7735Ew4YN5EEvhBBCCCGEEEIIIYSo07jatutUi8oZgjcYxMzr5yDuocEY+0whugxsjUBJCJ6SCq4ei70Om4oZswuNWOq3KvPchSX47qWuOPgII0KXBzF9agW6Dh6Pti3jbBAiKyeA1GQvJv68BxK85rRxPrh8QObSPHTZdyZW3zsTzV45FnGZoxHyJtRaaYrHFOJXrVyJ3bp2Rdu2bYy42xpjjFA+e9YcIxLnon7lYqWZmZlo1aolhg0diilTp+Knn34231thyOGH2YVIv/76WyumO+VmGqE9JTUVffv2seWOHjMW/44ZA58/1tqu0G+eC8oefMghaN+uLcaM+Rd//DECAwb0RwMjGv858k9b1qmnnGytXr757nv4K8svKyvHvvv2R7t2bTB8+B9YsGBhlec7F2M9atgw6xPPxVDpwd6pcyfrJ18TFPB//30EenTvho4dO2LW7NmYMmWaCQrE1NKG0dbuhgJ7ghHpjxxy+Drtp21N//77oEP7dvjs8y/tYrPsEy6sS6//gw46EGNGj8GEiZPtEwdZWdlISUlGnz572uz2H03fzpkzzwj4iYjx+8254qraxD5yFrWNPs/nX3xly+H8GHbkEfb9q6++sX2Sk52Fvffpj+TkJHTo0N709Vj89fc/aNyoUZ0S5+PiYrBkyZKqhYSFEEIIIYQQQgghhBCCrEegd8FXshwzThoPlAZx1JjO+PT3bsDiWLPNiMZ+L0LxXlx5XQFe+biQ6eF4+LoMXHSVD+EVlQt41g/h2cfDuO6R1XB53BiwZxw+fjEFCfEhoLBSeG7mw9WnT8Rjri+Abj3R6flWqIhrhI0x26fgSbGXYj1fcXFx1s6GnueOgOvsk59fYMVrZnNT9M414jRF7lQjZEdb07DetI0pLi4xwnSkTL6iBWHuQ5uX8vIyu42iNxdODQYDtnxuz8rKsvWILp914eKoZUbkT0pOtoK1s9gpz8k68Tenjszcr2kB1Qhhux8XouV+sUYwj4+LW6u8mtoQfa7q7XfqR896CvxOP67pw3wTSIiI/DWdh1nxjthfU5vWdx7u6ywcm2z6xhGzWTaPc/q6+ljsiDh949QzPj4GixcvtvY9hG3TArdCCCGEEEIIIYQQQoj1CPRGSKwoQnH9Xlh69mfwP3A4vrn0Wxx4jhfhPB9cBUY8jjWCYxM3lkxNNqJqOZLrFQM55sCQ+b0iYDPkkRw0wm4iirN8aNTRbMwxv+WXASnJRrksw6LJZegytAOKHpyJ1I+vRsM5byEQkwEh6hIU4yOL/XptECPGH2MtfpxAAwMQDDIUFhbYJyvKykpNYMIroV4IIYQQQgghhBBCiF2Y9Qr0NMz3FczD3EO/RkXrfkh8ojemPzMdzbqbbdnmtdq8uphXPOiIA2scX2FeMyqP72ReTKh2Vb4Xmdesys9NgMIsoPdxsZh55lyueorOr7ZEWWILuMJbf7FVIbYVzJinEJ+enm7XHSgqKrJWSHwKwlnEl08J+HwR2x/uQ6F+0aIFqDCBLD51ID99IYQQQgghhBBCCCF2PdYv0BMjlvsr8jD9jNlGkM9Cp4/a4/eHA2iQbrYVIiLK1zMvWsaXm9cq83JXvkrNq37ltjLzMoK8FfLjgAKzbc/LPJi5z6dAr8PQ8Y0uCNDWxu2DEHUFCvDMmKc4T8/+vLy8Kiuh6tnx/J1iPsV62vjQXmj+gnnIXr0aXp/mvRBCCCGEEEIIIYQQuxobFujhgjtYArfbi5knTgYWT0fKZ0Pww6XL0LcXIqK7BxHLeFfl53xEMukp3EevcUrBvgGwaAnQ/+44LN7nbWDfo9Hq1X7wlSxEyJ9mAwJC1AUozicnJVkf/RUrVtjFdCm+bwwU6mmH07RpMyxdutgcv7zKv18IIYQQQgghhBBCCLFrsBECPXHDHSiA2xODmcdNMupiGO5X98bpHSfh4d5h1GMJKebFNU1zEbG+IfUqf/fDZtAXGbH+4QXAA8NbouyEX4AmbdD8yyMRmz0aoZh6EudFnYECe1x8PDLSM7Bs2dKqrPlNIXIM0Lx5CyxcON8uLEzRXgghhBBCCCGEEEIIsWuwkQI9iYj0Lm88Zu37BdCyIzDuTySOuwxDPFNwfHI5BiQbTT4FEXsbYvT2kiJgvHl9kO3G22WtkN32ZmDvM4DSInT4sg/CgRyE/BLnRd2C4nrz5s2xfPly6zVPD/ry8nKUlJRULQzrcrmrRPjo40ImwBUXF4uYmBibhU9RvlGjxpg6daLdpoVjhRBCCCGEEEIIIYTYNdgEgZ644QqVwVuyBCvbXIyc3rcBfqPIL50KzPsA6XljEJc3CX5PmEn2MNIjymKaITu+LYLtLwRa9zJFeJD876NoOv0uVMQ1RtgTI3Fe1CkCRlRvUL++FeZzc3OtIE97G/rQ33XnbUZ8j7fbPB63EeBDawn0tMApKS3DbbfdiezsLGtrQ5Gex4bNdTB37mwj2MvqRgghhBBCCCGEEEKIXYFNFOido9xwl2fCGyjBstaXoqjRkQg062PEd3fEi76Iq8caVTIhIeJLTx/63IVIXPwhmi54FuFgIYL+RoisMCtE3YIZ7g0bNrS+8w75+fl49ZWXMHPWTPz6y3D06tUTgwbti2eefR6xsbGR48yrpKQU++yzNzp27IBzzj3fLhZLnIz8aVMn2wCAsuiFEEIIIYQQQgghhNj52TzD63AIIV8Gyv1uNFz8KlyLXgRGe1Ca2hdhbzLyEjqCcmSsEfHjSubCVzQb7orVRrv3IuBPBzzxkDgv6iLMdk9JSUFpaan97CwKyyz6uLg4/DlyFH7+5RdrYTOg/974+edfkZSUWHV8UVExGMXq3r1blRUOoUBfWFiI9Ix6WL58mbzohRBCCCGEEEIIIYTYBdgyFdAI9UFfeuSzywVf4WTzWxANs36JbHZ5EHb7EHLHIGQz5p1k/U1P2hdiR4He8RTTowV2EgoFEGtEei4e6zf7kISEeMTHx6+1H/cJBdcOUDFjvqysDIkJiVDuvBBCCCGEEEIIIYQQuwZbL003HDZifJz9GPTUuAOEqPMY9ZzZ7fSY35o2NCyLi8zS8ibEhWVDWpdBCCGEEEIIIYQQQoidHfloCLEphCN2NsHg1rdoYplutwctWjRfJztfCCGEEEIIIYQQQgix8yGBXohNxOX8zzZ4KMTtdmHxosVw04M+rKdOhBBCCCGEEEIIIYTYmZFAL8QmEgyF4XF7tnoWPRecDVRErHPctM9xyY1eCCGEEEIIIYQQQoidGfloCLEJMKk9EKiAz+czn7dehjvLYpmlZaVarUEIIYQQQgghhBBCiF0EZdALsQkwqb3MiOgxMTEoLi6uWijWZr27PSgtKUFpcRHKy8usmM99ov3ki4qK7T5uz9orKYdCIcTHxyMvPxdCCCGEEEIIIYQQQohdAwn0QmwCFNsLC4vQpEkT5OauEdODwRBKSkqxd/99jIBfhi6dO8Pr8+GAA/ZHbGxs1X6lpSXYZ++9jUhfakV5B9rbcL/587PsZyGEEEIIIYQQQgghxM6Pq227TnLUEGITCAQCaNCgASoqKqxIT0Gdn9PTM3DXnbchLi7OCPYB+3t1n3r+VmJE+ttvvxtZWVnW1oZCfWpqGhAOYfacWfD7/RBCCCGEEEIIIYQQQuz8SKAXYhOhXzxfzZo1w4oVK6wIT+GdmfPMone719je0Oam+lqv3J8iPm1ynGNZ1oQJ46qOE0IIIYQQQgghhBBC7PzI4kaIzYBZ78yAb9SoEZYtW2aFdmbD87Wx8Bhq8U2bNsW8eXNtZv6mHC+EEEIIIYQQQgghhKjbuCGE2CSY4c6s96KiQmtxQ4Gd36M95TeEkznfvHlLLF26BKtXZ0qcF0IIIYQQQgghhBBiF0MZ9EJsBhGR3ou8vDyb+c5FY/Pz8+0rkhnvsgvKRuNY43Bbeno6EhMTsWDBXGRmZlq7GyGEEEIIIYQQQgghxK6FPOiF2AIouFOQdxvRvV79evD7Y6wXfXFxsV041smqp1hPET42NhYJCQnIN8L+goULjLhfocx5IYQQQgghhBBCCCF2USTQC7GFUKQnzKT3er02Mz42NsZ89sHj9iBs/hMyIn6pEe6LCguwOivLiPildt/qWfZCCCGEEEIIIYQQQohdB1ncCLGF0LKGIj0Fd0Lbm9zccOU2WLF+6dKldj9+dxvR3u9n1rwLQgghhBBCCCGEEEKIXRcJ9EJsBSi+O3DxVwdHuPd6PVaYF0IIIYQQQgghhBBCCAcJ9EJsZaLFembJ2+8uWdkIIYQQQgghhBBCCCHWRqqhENuQKq0+rKUehBBCCCGEEEIIIYQQayOBXgghhBBCCCGEEEIIIYTYDkigF0IIIYQQQgghhBBCCCG2AxLohRBCCCGEEEIIIYQQQojtgAR6IYQQQgghhBBCCCGEEGI7IIFeCCGEEEIIIYQQQgghhNgOSKAXQgghhBBCCCGEEEIIIbYDEuiFEEIIIYQQQgghhBBCiO2ABHohhBBCCCGEEEIIIYQQYjvghRBis3G5XCguLqp1ezgcRnx8LIQQQgghhBBCCCGEEKI6EuiF2AKKi4rwyjsfoKSoZpE+Lj4el553BoQQQgghhBBCCCGEEKI6EuiF2BJcFOmLUVpSUuPmMHdxQQghhBBCCCGEEEIIIdZBHvRCiCpo2UNbnhITcODTAXwPBoP2d74qKipQXFxi99nRYP3Ky8ttnes6bAv7vbi4uKr/6zKsf2lpKQoLC3eK9mwtOF9pkcVrjZ+3R7841zXHhnVwu3e+/1uwoXuDc9/j9RYKhbbbOJSVldk67ijXB+tRUlJs54YQQgghhBBCiG2HMuiFEBaKMRRiEhMT0adPHyQnJ6EgvwALFi7E0qVLER8fj5YtW6JhwwaYMmXqdhMUayMQCKB9+/ZIS0vF+PET6rQIzLbUq1cPrVu3wty585CdnQ2Px7PeY+x6CEbodZv9YmNjt1sQxRFDKfrGxcVVfe/TZ080adwEo/76Czk5ORtsz86K0x+hUBBt27RF02ZN7W+LFi7CzFmz7PX3X85d1qV169bovkc3TJk6DbNnz7ZjU1paAr8/Bj6fb4cMyG0KnItt27ZBakoqxowda+dldJsYNPL7/OjVvydmzZqN/Pz8/zxQwWu+c+fOSEpKxLhx4//z68MJELAevNcTzo1Bg/ZDSnIyfhs+fIe75wshhBBCCCHEzoIEeiGEFV3y8vJw4IEH4qhhQxEbE4OgERDp4ePxePHHH7/jzTffRO/evXHYoQfjhhtvspmeXu+Ocwthhvb++w1Cz549cNHFlxiBzVNnxSQKZe3atcN5556NZ559HitWrLCi4vpg5m///vtY8XvW7DnbbWwohrZo0QLNmjbB5ClTzDwpRZkR9vbq2xd79+uH6TNmIDMzc5cV6CmAxsXH4ZKLLkKrVq1Mf5WDD7P5fF4sWLAAjz72uBWH/6u5W2HGpk2bNjjllJPxxpv/w6RJE9GkSVP07dsH8+cvsHNvR7rON4fS0jL0M3Nvv0ED8eCDD2PGzJk2iEUigckCnHbaaTj0kINN/z+B1atXV23/L+t48EEHomPHThg9esx/fn3wumWAs169DBsg4P2Evx2w/35oYwI4o0b9tcPd84UQQgghhBBiZ0F/aQkhUGyEl7326ouTTjwey4wg9/FHn2DpkiWIT0gwoupeRrBrYrNMy8pKUVBQaLNPK8orUG6EZJ/fD7958TfHmoWCbNi8M5s7xoj9jkUOhWcKPxS/+DloxEp/TKwVJwkzNK2AacRo+9kIRNHlk6pMT7PNZYRMluWUT5GL9bOLA1Tuy/PZ81arz46NC4FgwLYlEKiosiGpqW/Ynsi2Cpx11ln4Z/RoI7CNMyJwQpXIyOM4diyXv1H8c8aL/cPgRpjjUplZzPK5H4Vi2n54vT47RiXmM8/JrGqWyfHnsHiMaBcT449k8RcXYrcuXXD88cfimmuvN2L8aiSYefTW22/jnXfftWPE8XTaVF5eZhdr8MesydaOWGuU2PNzX4r84XDItp2/Ofs4mfrEX1mvHT3bm3PxissvQ4OGDUzw5TlMmzbNtquDEUf3Hbiv7VdnjtY2btFl8RpyrgP2DcfI+U4iZXA8Y6y4yn5lGTyn7WNT5t9//23mzL+mPyNzLTU1Feefdx5efuVVzJs729wHkmw53OY8neGMH1/ONbij4na7bB+sXp2FYUcNw91331OVRc/6N27cGH323BOrVmXa39hW9k10u+ycLC4xfeta6wkVZx4616a9FisCps/WZKEzCMLFSKrPX3vtlRSb6e8yr8h1WFhUAFQru/rxxI59MIR4E+zhmPMIZw6wHM4L595JIvfvMju3eF5eu87TNjZIUZCPfnvthQED9sGYMaNN+8tt2Y8/+SRMk833MhusXd91S9hv/G6fwqClUOWcie7HunjdCiGEEEIIIcS2RAK9EMKI6SEMHjzY+ss/8/SzWJ2ZaQTeeCvcf/zJp1bYi4ldk8FdVFSM1m1a2wxgWmIsoZhv9qfoQiG3d8+eSE9Px4pVKzF92vQqcaZt27ZITknGP3//g267d0O9+vUwffp0K+LyuGbNmqFBgwZGIBqLdu3amO/NTflzTPmLq2wXCgoK0KFDB/Nqj7y8fPzzzz81Zps6QhLp3r07GjZsiJUrV1h7nrqWBUrxj/ZCNfXNokUL0KhRYzRv3gxZWVm2bT179TKCexhz582zYl39+vVNH+wLKmrMzi0oLEScEc1Ybsjst5cR5pKTEjH233HmeI+1PJk+fYbtP1rTrFix0tocDdh3X3O+RZg/f74ts5MRNSm+8beZM2cZATEWXbp0tTZDFDs5Tk2aNMb8efPNtnhT//q2zhyboqIiOya77dbFCIAuTJsx0waFaPFCMbGnmUO5ubk2q5x1YLsmTJhQOcd81o6JmfqcByxv8uQp9umBHV3s81bO87lz52L0P38jKTnFtmm8adu/JrDCYAZh/9Q2bhRYGTjp2nU3NG3SFLl5ubb9HM/ee/ZGfn6BHSPCjOhmzZsboX2e7c8uJnjC/powfgJ69+ltxeSFCxfa+cRxbNmylb1OOX71zfXZo2cve73Tcon9y/FwAjQZGRloY+4DtIXhdblj+9eHbRCrqZmPzKYfbQJZ7GvOozPPPAORJb3DVZY/jRo1svcmjo0NCprfe/buiTITYJo1a1bVPYf9UHXfGjsWLc2cbNmyBf7662+UmGuP33fr0tke//c/o235FKX5zn7cd+BA+MzcHj7898i5KmvLc3K8azqe/cx+ZyDln3/G2CAqAwcTJkwyY5+Hbt32MEGHRuaaNNfU0mVWlE9JSbFPSnCeZGSkWzudFSuWm2Mm2u29eve29crOysZuXXe3QQJe0ylmfvJY9gXbvL7rltAebdmyZfYphH3697f1nThxom0Pj3eu2/bmunXXoetWCCGEEEIIIbYlEuiF2MUJGDG0vhFO66VnYPac2Vi1cpUV0SmWUAhyxGxH7Oailqedego6dupkBBe3FZSef+ElTJo8GS2NEHj77behyIiHOdnZVtRbtnw5Hn/8CSvsHHDA/lZQ7W4EpG57dLMCDUUz2kpQ6D/6qGHo338Adt+9K/Yw+7jckVz4F0z5tEah2HzsMcfgiCOGYIb5TvGRZd53/wPriDsUeSkeX331VVZgWrJ4MQ4ffBgWG7H//vsfrBKU6gLMdt2rb58a++axx59EUlISLvi//8Ni00YK4hdfdKFdO+Cee+61wYkrLr/cBlE4hsOGDrUZxKuNmM+4ydVXX422RuxbZYIkBx10EBYakbabOcett91hxUdmUv/++x9GkOtsn6Tg+Si0X3zRRUaEyzSCW7Fdl+BvI0i+/MrLOOP0063QRzF46JFH2L6/29SD1kPDjjwSN958sxGCF6O3CSJceOH/meOL7NidcMLxeO31N/Dnn6OsYHnmGafbAEOyaVtqaprN0KfdxoMPPWLn0kEHHYjjjjvWjOsSe/xpp52K++57wArfTtbwjggFcQqYFIGHDh2GSVOmmGtuRVXmPGH7KIDWNG7ZRszkdfB/559nxVD2MzOrKdhfedVVOO/cc2wQ6oknn7Lzo0P7Djjn7LPwyGOP2wDVMUcfbbPy9xs0yAY+vvn2W5tZfeUVl5uxfQLt2rbBfvvtZ4MyHKNDDzkUH374oZ13FIuvvubaqjpeesnFth1XXnWNvRfs2DBzO4BRZp4ed9wxRkwfY9vdtm079DJz89vvvsfAfSNPMNAH/vLLLsGb/3sL33//vbkH+q0gfsVll+Ld997HpEmTqgIpzBinHdCA/vvYfQ421xDF6Z9//gmDBu1v+v5MzJ41xwQ4Y0wQ9DDcddfdVU+R3HD9dfZayjKi+AEHHmjmwUpz/qDNOmfAY19Tn5qOz8nNs+PXpctu5p7Q31rQUADn/mNNkID3SN7/eF08/fQzmDJ1qg3MnGUCEVPMfGttAqvlZh6mp6eZa/t3087/4eKLL7LifL4576knn4zEhERcdc01OOjAA+zTBRddcqkV13t072Gu2/PtdRuKum5HjvzTBmXPPecc/PvvvzagyDozoDRnzhw7t0hdvW6FEEIIIYQQYlsigV6IXRxam1CQoliba4Qfj9ez3kxGioEUcS4xgk6jxk1w+223oa8RCicbgT7LiPIvvfSyzU4tryi3fsq33HwjunXb3Qg4I2z2qcv8Z9nyZXjuuWexW9euRhi8Ar1798KsmUaAtxY4AZSWlOKiiy6oKr+PEcD+Hfcv+vXb24iaR+L+Bx7E5EkT4PX5cd+991oh+L1331urniUlxUYgG4QmjRoZAfFKU7ccK/Yym3hDfu47HGZsausbCnUvvPgiLjSC+SMPP2z6aTxef/01m5HKzPrLL78MX339NT7+6CMjqIWM8H0Wzjfi7q3m2KOPPsaKe6+8+jpGjBiBDBPwuOmGG+w8sHPAvCg2du++h7WnmTRpsv2dgvy9992P6dOnIWgCLEceOcyKnl+a81x/w3UYMuQIMyZH4vY770TmqlVWdOzVs6fNCC43YjMzwynOT5g4Gc89+yyYuXzOuefi7LPOMoL0UhtMofDconkLPPvcc5g2dTKGDjvaiNRHmDnV3oqMxxx9FH77dTjeePN1m5nbrl17ZGczE3fHFvkoQr762ms28HGUCUgNGzbMCu5TjYj67Xff2ScVMkxga33jNmzYUUZc74sPP/oQ35tj4k2wqZ0RminwM2BCAdh5aqXCCM4FhQWVa0rA+q0z0EJP8XPOfdEK+72MEE/xlZYm77z7DsaNH49rjTj71tvvYOSIP2xuOa/t/zv/XJuh/8cfI9C8WTP7hMQnn35qBX9HsN6Roc3Pxx9/gkEDB+LAAw7A1199iVNOvhLTpk23tlD0oOe9YeLECSYAOBP999kHP/z4o7Vz2XfAAGRmZuHnn36uepqHOJZbFUbwZhb9FVdehby8XNM3nXDOWWdam6DffvuVe+Laa6/FqaecagKWj5mxPN9eB488+jimmvnczvTllWbMmXVvbsp2DYpaj3/iscoxhr0mH7j/Phxz7HHWwz5oAnLnm2Adn4i4+cYbsKcR1ydNnmgFewZVWPdrrrvejtkppqwDTdBr3PgJRlg/F6edfoa1ubnOBA6Y+U4LHQZwed2GzfyJXLfn13jdMuiWa4JHOTlZJujR2rTrMSvCn2naMMD0I+fcCnPfP7qOXrdCCCGEEEIIsS2RQC/ELg6z5GlhQRGOmdi0z6DoVJtIz8VXf/7pF8TFJxrxNdPazKSmpVqxhUIVs/APOvggpKWlwevxIj8/H/Xr1afmVMVPRuSitQetNSh+pSQnW59opz4//fzz2uWnptpttPSgjUvnTp3QfY9uVkQqM8d3MuIWEFqrnvRNZyCA7bjkkkttAGHOnHlGjJuK5JSUOmmnUFPfpKSm2Kcc6A/NNnnMPvwcMuJal86drW82s9hPPOkkG4zh5+YmSMEsdWZEUwj/++9RdrxyjVD299//4OCDD6w6J0Vfisd/GUE3xYyD2+PG4iVL0KplKxMsGYq4mFikZ6SbcS40AYGGWLZsue37kBH0YvwxVngLhcrM/Ir0N/20d9ttN2uzPXLkSOuDzXaNMKJvHyP+0npj8eJFNsDApx1mzJhuPdBp2UI7nrTUNLuw6oIFC03AZi9rGcPP48ePs171jrf4jgrblZOTi7vuvsdaoTDTuE3rNvYJAwaybrv9dnQ087m2caMFUXsj3tLK5JdffjZzOdVes1z4dI3FTGX7qeBW6wq7ToQR7T/6+CNrO8TscKe7IkEZtx1zev5zXrlcbvu0CbOiV68eZkTr/hj+228YsO8Am9k/YsSfawnWOzLs+5LiInz33fc45OCDsXLlKrRv39EElW6w2d/OvGH//Db8d5x+2qnmXtMZixYusAtk//jTjzZQlhS1JoYDAy8U//Pz8mx/djVzPM/c+xjIoBDONTt4bbZq387eK2nzwnk7Y/p0c/1kYP68ufaJEdqGBc14ru94n7m+CM8zatQo+GPi7L2U1xqfQOE9mmI4bXGSkpPMfThix0MLKj4Nw6eW4uMTzOfhGGgCD63MHOT1461c48Bry6eXfUnV/GG2fOfOnWq9bruYbSNGjDRzJ9YuMrvUBNr8MX7MmzffzhkG/xYtWoiFa123CzDBBIOK68B1K4QQQgghhBDbkh39mXQhxDaGYtGqVauM2JtnfeVpb0PbBmcRQ36m8O5k5FJEYUYvv0cWPIwI4xR9OnbsYLM5u+7W1WZr5lf6UoejVMLoxRUjx1f+XrUdVYsoRpfPHTxWgAwbkazUZpDyGHowD//jD3i8/qo6MluUgs+kiZPwwEMPG/FqEbp374ErrrgMl112ma1bXaTWvqmEQQ6Oje1T7lNpO8JABoXFoBG4aWHz3vvvw+ePsUI3x58irDOufv/aXtBuV2SBTX/lwqWFBYUYesRQm51LL+q8gnybfe0EWDgEkWGILBhcE+7KcXSCQXZBVGvJETlfpJzIeSk62sCDJ3JM2JbvwaOPPmYzzJMSk3D00cPMvLvfCtfMRt/RcXzIKRDTGuSVV17Ga2+8gVjTx7uZa4fj4uxXfdxijBhrdXfTJ1xngFh/70pxnmPOzGcL54IJXLmwZgFXHkvh1lMpsK6j4CNceR257MLKqAzWcayGG3G3bds25j7R1tqeUAwuMOO/Y3vPr4H9xfn0zTff2Ll5/rnnYuSfI7Fk8cIqeyHCBZZH//OPtZmh/Q19+NnE4b8Nr1VIZv9wAvsqbVrclfZf7Gs7J82XqdOm4etvvrVP/jBYEAwGqvrXuV7sSNFebD3Hu6ICMZFL3WUFc94P1lxTbqwZdufeHbmnc7zs/T0cOZ5PTdm9IieP1KP6mr/h9V+3LrfHbuN9oML8W+CxnvKo9Oqv7BvT7rWv26Nwf9V1WwYhhBBCCCGE2FVRBr0Qwoo0v/76G0488QRcdMEF+N//3sKqzFU2G5J+1PQ1f/XVV6r2d7nXVW8o6uzRrZsVb1586UVkZ63GHt17Ysjhh9WYxRsRmmuuT03lU+iZt2CB9VymncLECeO4o836j42Nq1wUttxmj6elpmLFypXWcmLJ4kWYNnWKLeX4E06w1iuOyOaqrQI7MDX1jRXKKiqMoF1hM249nsgCuVwYNDEhwVoLff7ppzzaCsNcG4AWQMxupb3QkMOHGOHva3To0NEuGMvFgteUvkY0t+c3n7t372bXFnj+uWfteJ944sk229oKdQygmPNxHLhw7cKF862g7vQ1s3Pnmnp5PD67EOz4cf/a33v16gm/EfU4xs753O51x4diM8V6PgXx7bffmfN/heTkFDz5xJPouvvumD5j+lpi644GRffzzzvXZp7Pnj3T/uY3wZK2rdvYOc4nTpYvX1bruBWb4NKixYvRpUtn9OpNkfxPe53y6YUVK1bYJyL4mZYkfIqhR48e9ikTB3sprmfeM/u6uKjECqotWjS3gTfWmVnyf5pgAj3WaWnCp2N+/e23upf5bNrOAN/33/+AU089GZ9++hli4xLWaQMXyGZG+IAB/dGpcyeMHfsvMlevtk8y1NZeZ45zHDnHjzziCGsR9esvP9t7FfswKSnZ3is5hj1N0JCLuS42wZeGjRqjXZs21hqMAvz6jqfQXv2cThCm6p621hhH6sunlfbcszdGjfrTiv6DBg00c8dnzr/YtomBWF6fXPR2ugkGuDxrrlvedyLXrbfm63bePDt3eCor3qNmks29ufbrVjY3QgghhBBCiF2TbSrQW9EoEKjMoBJC7KgkGOHnp19+sTYE+xtBngu9UqyhlYLfCDiTJ0+x4guFQAri7sqMa4pAtL/gvtxOL+N99x1g/auZtU5LDt4H/FZ4CVuLBR7vwG3JyclWYKews77yPUYA/u3XX+0Ch1dfdSXmzJltrRF279oVw3//Ha++8iqmzZiBfv364dZbb8FPP/9ihVxaWYwZM9bqVfRS/+uvv6zv9g7tmR0O2b5n39hFek1f1No3RnRj5mxFIITxE8ZjoOn/hx58EDlGqL3rzrvw5ltv4fTTTkOPnj2w0gi49LampdGtt95q/bWZEc1Fd7kAJZ+iGD1mDPbZu19Vhix9+2PNuEWLkhQrmf167bURr+rGTZpYewze65mZP2HCBBuYOe3UU+1+7777vvWhZ/0pwi0wc4P+6SeecDyaNW1iBUs+ffHFl19ZYZCCH9dFcMTfSAa9x/YHxzTGiNWPPPyg9QnnIqpcqDQQKDfjPMb2044KgxkxsbF2oWQKpSUlZcjNy7WiLxfT/PHnn60VE9u7vnH7/PMvbJu5UCzHOzUlFYmmvy677HJrGTL4sMNw2223WbGVNiWxsfFVNie0NuG8iRZQaZuTTCsUsz+tRxYuWoily5Zhn332sYsMT5w0CW+//Y4dp39GjzbzY2+7qDP7PqUO2EWxfnGxMZX3nrBpfxJGmGDDiBF88sZn5xZfSUkp9p37UwznfYV2LMlmf95PuOh09baGK69NXidOZjvn7YQJE/HlV1/hrLPOtGth5ObkWosY9tvDjzyKr7762trY3HzTjZg5a7YNhnDthyZNG9t7ac3HdzTHz8EDDzxg68JzIvr6MOK9z7fmCZgkM86cV06NGbSjXdhdd99trXh269IFEydOxoSJE839MMmuX7HvvgNx6aUXmyBNMZ5/4UV737T3HVOnRYt43X5srtvj7HUbCAbQqWNHfMnrlot2Z2TYeej0E+cY68PrlveSGL8Pjzz0QJ27boUQQgghhBBiW+NJT693B7YRXDStffv2WL06a4sfgecfd8z4ohjEcvmi2LHmMf3/nkidyqzvMf+ItUKa2KVgdulhRwyz7zXhNeLEz99/Y7Mxd/RsbYoqXCiRtjC5RrzJzMzE5ClT8N33P1gBhn7VhFm6zKR0bA4YhJtjvq9cudIeM8mI+SyL4s1bb79tr9U5RlTKzsm2WaBcBJN+4k5/lJdXWNFqxapV1qajtvKXL19uy/3nn3/sPrSJKCostH72P5vgQpIRgVju8uUrrHUE9+Hvq7OyjIAZyVr9/Y8RVgSmQLlDY8VxICsr2wpyRUUl9j5Xe9+ssH0z3gRIOHYMQNADmrYoc0zfMnDBvqWHOxfbff/9D6wVB++fvw8fbseZIux7776LNm3aWgGZIrDb3NMYHJllBERmD3N/ZnLTamPJ0iVWeOPTDF988aV9emHOnLlWBKSF0Hgj0vMzffJnzZxpM8NXmfnB+lMs5sKc8xcstLYuXITym2++xS+//mbXI6CgyLax7XasrRc6bNtmz5lj/01hkIBiNzOK6b/97nvv2X3ZDzsq1v/dzMMffvjRBilyzDVRkF9g+n4ivv3ue/xqAlCcm2zDzBmzzLhNr3HcWA4XeWWfUlTnvH//gw+tZcnUqdPMnM+2TyGM/XccfvzpJ/t0Ba8xCvwUqOfPX2Dnxpp/O102oMNx5tzhOHMtAv57y7Hhkxh8IoVe+A0bNUTPHt1Nf79vAzp1IQBvn9gxfcinPuaZvnLbdRo8Nujn2L3wbsT2zDHzK5JJ7jX3lwIccsih9p71lRHLawrqOfex5ZXXJuctf+OCtBPM9UifdT5twOz1ESNH2nspxX+OHUX4iL1UCG+/864NivAamWfGJ54ify3HO7ZPS5cttWNp62D+a8dwdmQM2S7nGlps6t+4cWMbbHjHXCezZ86y60n8be6lH3/8sb2maW1FqzMK7eVl5Xbh1lmzZtlrmf3GOcZ5yfUonOu2sKAI33wbuW55L2Ad7DokvF+Y+661zzJ9w3vw3LlzTZsLbLB07ev2/R3+uhVCCCGEEEKIbY2rbbtOm536VpnEuW6hlcJRenoa9tqrL3788WcrSmyJkM7yuuzWBelpaRHvZfPHdl5+ns3E4iP99o/DjSBigxGwwlF8/OY/ms9yKDz17bunzSAbPWa0+UN4rv0Dvi487s/68w9v/lHsZAyKTYc2IU+9+DpKS4pr3B5rRJYbrrgwIpjVAZ/myPVRYUUWB2ZAOpYhDJI5Cww67aFITvsD/kYo6pVXWmpQ1C8tKTJieozNKqVXOa03EhKTquZccVEB3B6fzeJnIGN95Tu2NBSgIp7PEf9kR9xxtvF+Q4GN5+Q8p3DpCkd8oSmO7ejznW2n/3p5WakVsyiglWxk37C9TvucQATHM+Jr7rb3bPYL76ltWrfG4MGDTdDiSyPIZdkFKs85+ywjps3H4088Ye9nxUWFpt+8a1mZ8DyR+gSNgOyy/vSl5nusXXQ0IthG5hH94F12/nC8WIfo+jO4aQVNRMYx2nqI4ih9rZ0FSLkfs8FpB8Py2CbONQufvjD95PN568y9jNdSyASSwi63tQWi0B5ZnHVNH9c0bpG1ByJZ05zrDrwGnCCxnfOVAWzOncjYxNlrmdcg//FmFrmzloQzVsxi5j4Rn/FI+daj3IxDQkK8ObYAd9x+uy37zrvusvOrLnS3M1/Z39H3nujtdn5V9pMV500f9u3b114PL7z4EsaNH29F85rKjtwXA3auOuMTfd5gILIWg9vjsvdER9S3/W6OZa45ny7i9+g61nY8z2HvgUHeSxPXKityHUQWkeU1xMx3Zvbvvvvu9omLt95+B3/8Ptzec1kNXuNrLMcq55y5rtgCtofXmHOeNXUqtQFYV3jt65Y493P+ZsvjvwemXs78W+u6BSrnXN25boUQQgghhBBiW7DZKd/8Y4p/xNa0CCD/UG3atIn1KaaIfcghB2LChMlYtmzZZouU/AP4+GOPsefjo9E+68ebgauuvBwj/xyFZ555bqOyYlm3Ro0a2GwyZptubtY7/3g//bRT0KfPniYA8ROuu/Za+zg4M+LqQiYY/5jv338fm13HrMG6ssif2LY413X168IRTyggOmK981t8ZVap850ijCMQRbZHLG2chVuj911rO+0/NqJ8a1dRg1BW0zbHqqL6Pjs6FEApWvl8iVXfN7Zvotvr/B7JkF3X37nE3FcZtKAlUSgUsD7WM2bNsoKk04/xCYlrleV8rn6fc4RCZ7/IPFr7nuzUwdmHWcZmVq1TX9uOauel2JyQkBjVP2vPs+p13NGp6d+J6n1c07hFi7/VM7qr5kW1Oe+MDfvN2RaqXGB4zTWfuN7y+W9ev357W0uk5194qTLzG3WC6Pla0xxxLGKi5zDbN/TIIcjKyjL/X2GcEefjay27pmuz+nmrH0Nsv0f9/xbnaYTo66Cm4zmO1dsTXdaa+0PkO0V+jw1Oxtl3BoPio8Y2+nzV51z180TqVPN1GzlnUtVvfPlMvXyJO891K4QQQgghhBDbgk3OoHey7erXr2//mHTsBxz4dxYX9mP2Z2pqCgYOHIDvv//RHsP9KJDzjzEKwpFFBTfu9EXFxbjvnrvw1dffWEsLCgcU9JISE/DAA/dh6ZJluPe++5GWlmb35x+CtJ/hInnRGcB8bPuAA/fHUcOG4oILL7YerfwD1LEeYCAgbL2w/Wt5uVaHf/C++cZruPSyK7FwwVwMG3aUXWzxgYceifjC1tBvTp34RzLPQ5w/fnnukkobFCfzzKkT+477OVnD3B6d9V6V/Vdautbxzjb+7vxBzHNQoOEj5++98xaeePIp/PvvuCqva2ehOJbH7zV57tZV2CXsf7K12rWzZdCLXYfopyUoyNGbmsE6fq+eCSwEcRZi5rTgnNmZ50ckqzzyb3Zdt1+x//8jGDL/nylgM+r11JwQQgghhBBC7FhssmJIwTgjI90uVtauXVs0bNjAPgpPaB1DcZ6PL1Pg5qP048dPtGIvBWJu79Chg11EsmnTplYc2hScxdjoNc1s+dSUFGuxcPPNt6Fv3z62PiyT56OlBYMDw4wQ36ZNa+v3yt/32KMb2rZubes4aOC+6LfXXrZN/M46HnjgARg6dIhpV0Nb/9p8wymU02+7ffu29vHxIUMOt36/zEBlWdWPczLeevTYAzk5OejZo4etM/el8E5RfeiRR2Dw4EPtvrYN5p0L8HXq1NHW5SBTNy7myGCDI8Y7lhYU2IcOPQKHHHKw7SenDiyHi2hSbGNQ46ijhkXauf9+tkyOxwH7749Gpr3su4KCAlPH7jjm6KNsX7FuO7p3+sbANtD/lk88dOu2u2l70U7RLiE2FydzmvcF3hN4j4xkqa+xvBAimsic8a03eL2zEGmfa6fwRrdPBJj/b8axU+BNCCGEEEIIIXY8Nlmgp4CTlZVjF/ibN48LMq60j0xT3N1zz55G4N7fCuL8zn25uBrfKRRTbG7TppX1KO7YsT22FOfRcmZ9cgEyCsoFBYUmgJCBl196Hp07dbIC1OWXXWqFae7XulVLNGvW1D523W33ruhkAg1cOK9z50549pmn0LJlC8T4Y3DH7bdgn332thnnNUGB4uFHH8P555+LJx5/3PrT/vDDT2jSpDFat25l2xtNBT3509LN/ufhrjtvx6GHHWLq4LPiert27fD4Y4/YR87TUtPw6CMP2T6jON62bWvrgXv77beiiQlqNDOvl0zb+ASDI+53NQL8008+juSkZOsp/dKLz5sARoIdA3rFnnzyibjowgtww/XXmPJTbd336L6HrVeL5s1Mv+2OtPQ05Obm4c47TN2MyM+nEwYfdiguvuQiK9zVZZz1AgYM6I9DDj4Iw0wgY++997K/SaQXIoJd0FHXgxBCCCGEEEIIIcR/yiYbsEcy6DzWKoYeyX6/r1J8T7XCOLOy27dvb73NKQQ7nqoUi9PTU+2+fDQ+Kyt7q2RxOXY59IlNTk6xdaOg/H//dxFWrVplrXZ++OEHI4A/iq+++hqffva5tXc5YsjheOzxp5GYlGCOS8KCBQtx1jnnITcnFyWlxZgwcSLOPedsjBw5ap1zOgtRDujfH2EjZDdv3hw33XKrtVDpb0T9ho0a4qmnnllr4VrKXhWBCpv1/+KLL2HEiD+tiM597rrjNpx/wQVYuHCJXQRy0aJFOPvsM/Hgg49YgZ3lP/nU05g+fSaCwQBmz5mDG264FpdccgWSTP3vMOL9ZZdfYQMm7OejTTDirjvvwMWXXg6P6RsGB9jTF150qc3U59MHDz/0CF559WV88+33GD9hgl2gk0J9KxPAOHLoULNfovWZpWVQUg2WPXUFR5zfd9/+GHL4Yfjkk89sXxx7zFF2TP4w45CSkqyMQiGEEEIIIYQQQgghxH/OZi8SS1Gc9jIUQJnJ3bRpY+vXyox2vrdv386K9BSEi4tL0KFDO3Tt2sWI5pnm97koKMhfZ6GwzcGxYqB/8sxZs229mPUeFxdv7W3izflZJ56Li77RW5m+4FTTU1KSqryWaX/CRWcP2H8/u289E2xg8KEm33DawJx99lnoulsXnHTyqTjl5JPx5uuv4fgTTrL2PwuN2O8EJtaqq/lPaVkpxowZa62BWM/dunS25fXu1RsD9x1kBfgU0xZmwrvtI+le+xTCnDlzUb9+PWt7M2LESJx15hnwed02e56L5i5YsMgGSJj5/vsfI2z9mC2fYwIODKSMHDnSCu3Owo9JNngQWVAzxXxmmxcvXoIKM5Z33XU3/vn7H0ycPAm5ubk2iMDz1jU4N9i3zJynOP/1199itOl7EmvmxJAhg+1nLjLMvpFIL4QQQgghhBBCCCGE+C/Z4lUrKTLTWoZe7DNnzsHvv4+wWfRdjPDMTHoKpBTnu3Xrirlz5xtxeZT1YHd867cEx2OdAjxtdWi7Q5GVn59+6nEr2ufm5WH16tURD1ZX5SK2lQumhSoFWdrM9NurDx64/17rnc/6FRYVWkG/OiyHnrRHHjEYt952Bxo0aIgPPvwYf44ahUcefsi0uQN+NwI6hf916wsE7eKrEf9e+zSCEcZZj5LSUpu5X1ZRjpUrV+Kdd9+rWuy13Bzj1MVZOJZtcHu8NhDArHm3p3I7IovROv7SYf4nXLmlmn0F92VZ/N3xpb3ksiswZ/Zs9O27J155+UUccshBtn/qIpybAwYMwFHDjsBXRpz/w4wLgw18MXP+q6++xbChR1oBvzYrIyGEEEIIIYQQQgghhNhWbFYGPYVcZs8zA7t79z2sT/rkyVOtDzzta0aN+tt6fPP31q1bWqGYWfMTJ04ywnUcNhcKyWVGyC4syLdCt1MX+qbPnTffCPTTrNB80AEHYOSff+K555419YlDr149rIgfKQPWNqZRo4Yo4QKolSI1F1f9+NNP8c5bb8Hl9uCIIUfYttRkyRzJjndb4ZtWN2zTww8/jA8++AClpSVYvnw5GjZoUFsrqj6xTrNmzUa9eun4559/kJdXUGUZxIUa2W8U31s2b2aCDSnWI55PK/Tr19cEEIqsqM/j2c9JiYn2KYCysjLb92Vlpdb2J1LXyuBEtZowMJBuvedzbTCDmfZFRSX4+JNPbTkMsDz5xGP46adfUBfxmAAGg0Xvf/AR/v13nF0DwcmSp63NqL/+Qll5mQ3W1PTEgxBCCCGEEEIIIYQQQmxLNkugp9hLKxdmzTdoUN+K87Nm0c4mtmqfsWP/xaBB+1qxmeIns9sde5XNIRyKZIQPHLgvmjZtghj6o6emGfG9J5YuW4rbb7vT2pSUl1fYDPabb7oeC+YvtJ7u/QfsY+tAcdbvj8GUKVPsvhdddKH1qf/119/Ma7j1fc/Py7fi+P6DBtrzVs/0Z5CAou+3332HJx5/xIrZtIcZNHAgxo8bZ61jHrjvHtx3/4M20z46a91thP+I33mo8nvEO//5F17Ga6+8jA8++tg+cbDP3v2Qm5eLxx9/yi7Au3LlKlx77VX49ZffTLtjcfZZZ+LBhx5GnPmcmbkar772Jp568nG8/sabNjv89NNOxu133GOz8ynwJyUm2QVpEWXhwnaNHj0Gp512CvwmUJBp+oF1Pe7YY0zbvrdWNwcddKDNOq+r1i8MdkyZOtWuE0Df/eh28DN/mzBhoh2HiDWTLG6EEEIIIYQQQgghhBD/HZ709Hp3bMoBFHwpirdr19YK0zNmzLT+6NHiPIVe7te0aTObXU7Rmf7mW5al7EJ5WZn1WI/x+611C/3sP/7kE7z//oeIM+dh+cwCpyf7pEmTseeevZEQn4BXXnnNZtzTE5+LyDIL/Y8/RmD3rl2sbzsXXZ00ebKp42JzzJ7WB/6NN9+ymfULFixYx4eeYi6fEuBCuZ07dzBBiga2vA8//Nj6y7du3crawtAqx2mzFerNfwsLCjF37ryqMrkQ69Sp0zB//nzsscce1md+ivn+6adfWLudps2aoUWLFnjggYcwaL+BaNSwEd783/8wfvxEG0hgEIAL2jLQ0Lt3LxsAePGlV+zTDLTZYXiAbWf5rJNzXj4d8O+48TZTvtvuXVFggg4jR/6JIvNOyyKO3ZSpU/Deex9YIbuu4jX9z8BOrdu93i2alwwAHXbEMPteY/nmGvn5+29QXFKyjsWQEEIIIYQQQgghhBBi18bVtl2nTUobZkb8gQfub8Vrirx//fWPFeCri5wRz3eXFZGZcb6l4iSFZZbD80b/xjrwFZ39bK1wjPBcWlpmPyclJSIvPx+plRYnTgDBiqZmfwrQrD/taqyfuymX2f4UtGmLUtMCqSyDvuXcnzBYwWNYfr45F8Vx/ubUy/GOZxuirVacbaWlpabO5fYz68LjaZdD0f3YY4/CVVddX2W3w/ZSmI8uO7ou3Ob0SWQB3Hz7W3R9nONolRMy9aJQzbFinzB7ntEEZu/zN2WW105JSTGeevF1lJr3muCCxDdccSFWZ2XXuOCwEEIIIYQQQgghhBBi12WzLG5mzJhls8SXLVuIvLw8K/xWxxHkKd5vDWGSInlNC6+S6gJyxMomItw7pCQnV+3nLKCanJS0VvkUsflyoA1OTeK8U0b1/Z3yaTNTvV6OWJ4cVY/obczKd3zyK3+N1NOI9bExcfbYxMSEdc61obqEKu1dqh/jfE+I6lPbB6YOsVH1kDi/48MFhANl+SbQYq4zN69Fjdk2g4s1B3Lgi6+HyBrb6mshhBBCCCGEEEIIsflsskBPMX7p0qXWssb5vj6UNbz5MCAxbvwEjB471j4FILFc1ESgNB/pnY5Bl5NetgJ9OKR5sq3weN3InTMBk97cFx4f19SQbZEQQgghhBBCCCGE2Hw2WaCnSEwLli2ykxcbhZN173f7Jc6LWgmFPehyyusIlnsRCkCa8TYkUApk7NYTzfa+EYt+vwu++BQIIYQQQgghhBBCCLG5KL1diDqO1ePDwagvYlsSdv43rM4WQgghhBBCCCGEEFvGZnnQCyF2INwBTH/3XHQ68VV4/CbmFoLYRrh8bmRNHYfFox6ELz4JQgghhBBCCCGEEEJsCRLohajj+GJSkDXzE4y4/XO4XLykZYe0zXC5EQ7kGXE+LbJgrKynhBBCCCGEEEIIIcQWIIFeiDpOOByCx58ILQvxH+HPiLxLnBdCCCGEEEIIIYQQW4g86IUQQgghhBBCCCGEEEKI7YAEeiGEEEIIIYQQQgghhBBiOyCBXgghhBBCCCGEEEIIIYTYDkigF0IIIYQQQgghhBBCCCG2AxLohRBCCCGEEEIIIYQQQojtgAR6IYQQQgghhBBCCCGEEGI7IIFeCCGEEEIIIYQQQgghhNgOSKAXQgghhBBCCCGEEEIIIbYDEuiFEEIIIYQQQgghhBBCiO2ABHohhBBCCCGEEEIIIYQQYjsggV4IIYQQQgghhBBCCCGE2A5IoBdCCCGEEEIIIYQQQgghtgMS6IUQQgghhBBCCCGEEEKI7YAXQog6Qzgctu8uCCGEEEIIIYQQQgghdlSsjudymf+uX8mTQC9EHSEcCsHr8yE2IRE+r7l03W6EIYQQQgghhBBCCCGE2JFwGXG+oqICpUWFCJh3l7t2IxsJ9ELUAcLhEGLjExCXlGSjbyEj1oMvIYQQQgghhBBCCCHEDgWTaplom5xRD8X5eSgpLoa7FpFeHvRC7OBQkPd6fVacDwWDNpNeCCGEEEIIIYQQQgix40JNLxgIID45BX6/r8q6ujoS6IXY0TEXL21tJMwLIYQQQgghhBBCCFG3oBNGTHyiBHoh6iwuF3y+2qNsQgghhBBCCCGEEEKIHRMm3VLbq22xWAn0QuzwRFZ8FkIIIYQQQgghhBBC1D3C69H26uwisYw4lJSURBbLRKSBHo8bfr/fGu5vjWxj5xwej8eWW71MbudqvIFAEHFxsdstw5n1CAaDKCsrQ3x8vDKtd0I0okIIIYQQQgghhBBC1FHCzv+sK9TXWYGewni3PbohPS0tIsiHwsjLz8OMGTORm5uL5ORkbCk8xx7mHHl5+ViyZAm8Xu8625s2bYqUlBRMmzZtne3/FRTnU1NT0bp1K4wbN94GFIQQQgghhBBCCCGEEELs2NRZi5vS0lIcf+wx2G/QQLRt0xqdu3TCkCGD8dKLz+Gyyy5BYWEhthSe46hhQ9Gjxx42k76m7T17dMdRQ4+scft/RXk5AwVNcNaZZ9g6CSGEEEIIIYQQQgghhNjxqbsWN5U2Nt98+x1++ulnJCQkIBgKISkxAQ88cB+uv+5a3Hvf/UhLS7P70wqntLTMvAetKX9MTEyVFYxjVUOLGJfLbe1q+BtfRcXFRgAvN8eFUVRUZLPTY2Njq47jtpJSivNm36JiaxUeFxe3ls2Osx9f/J3HV18UgNtYB5bPujnnZ3Y8f+cxDAI4x7NsivGBQMB+DgZDJihRVOtiA0IIIYQQQgghhBBCCCF2LOqsQE8oTMfExCIpORnxRhSnOE2R/eabb8Obb7yGdu3aYsWKlRHR2rwGDhxg7WimT59uXjOqbHCYbd+8eXN0776HFcNHjBhR6W1P2T0ivNerl4H9998PCxYswPjxE6zXu91uxfcKW5chhx+GUDiE33773dSj3NTNb/cpKChAq1Yt0atnT+Tl5WH473/YIAEtcXgchf/du3ZFu/ZtkZm5Gn//Pdps99qzs771MjIwYeIkHHDAfsjPz8eUKVOtON+7Vy97zD//jEZ+Qb4R7yXOCyGEEEIIIYQQQgghRF2hzlrc1EREsI+xIvjcuXOtf3xBQSEyjMD98kvPo3OnTlYUv/yyS3HUUcOsMF5cXIz99huEW26+0Yr8DRrUxxNPPGaFd4r0JSXF6Nu3D66+6grEmrLPPfdsXHLJhbZcwgz25OQk3H/fPdYHnud48YXnrDjP7HeK8wcesD/uufsuW7eePXvguWefttv4YnDgnnvuxPHHHwu/PwZ9+vTBgw/ea0X/MiPCt23bGmeddQYefvh+7N2vn82wz8nJwcUXXYgLLzgfFPHPOP00DD3iCBQVFkEIIYQQQgghhBBCCCFE3aBOZ9DXBEV62sBkZWUZ4TzFCPIem3X+f/93EVatWmUz23/44Qc8/tij+OLLrxA2IvwJRhy/7/4HMW7cv0hMTMLHH39my+CLMYyUlGRcccXVoBj+2edf4u233sArr7xu7W+Ycd+lcyecc94FWL06C6VlpVY8v/zyy3D77XeidauWuOii/8Opp51tF7EtLSnFZZdejOuuu9YI8/ea8yXikUcex/LlK4zYX4HS0iK89urr6NatK8aM+dcECErRokULXHX1NZg9e67NrN9nn33Mqx9OPuUMhM1/GGS447ZbbQBACCGEEEIIIYQQQgghRN1gp8qgJ8x8p0jPbHZmp1Nkp3e7x+PFsGFDceaZp+PQQw6xFjMetwd0if9n9Fhcd+1VOOmkk9CmTRvk5uVW+cfTj37UqL/t/hkZ6UYML0JBQb7NtA8GAtZiZ+KUKTarPT09zdrR/DZ8OFq1bGHE/wB69+6N8RMmmboUID0tzVrl/PzLL+jUsYPNhifZ2dkYuO8Ac/4TcdaZZ1sRnt75zM5nxv/SpUswf/4Ceyzbs/vuXTBy5ChzpGlnSop5pWL477/D493p4i1CCCGEEEIIIYQQQgix07JTCfQU5wNWNI8xQntrTJs23Qrt/Pz0U49b0Z72N6tXr7a/05o+KTERr732Ol559Q00b94MN954Pe675y67aGtEpA8jFAxWLfpKUT0cDqFSv4fL9GCwPGAXl42U6UKwIiKs8wQejxsB89053m4PRMrjZwYRnnj8Uey9Tz9rp5Np6wabGR+xzucCtkFTns8eb218/DEIBNc+p+OZL4QQQgghhBBCCCGEEKJuUKcFersobGkpCgvyrdc7rWzoK3/jDddj7rz5RqCfZgXsgw44ACP//BPPPfcsvvzyayxavLjKDoZCOMXyv/76C8888zxOO+00NGrUED169LALsYYrz1PtzFWfykrL0GW3LnYfnjsrKwfde3THsmXLzLldmDZ9Onbv1hXBYKhyezZ69OyB5cuX2cz+1q1aoWnTprjj9jvw7bff4+effkJSUgLCwTWCu9uU7VSBmfwMPHDBWQr6rCOz97nALQMHQgghhBBCCCGEEEIIIeoGddYTJRwK2yz1gQP3NQJ3E8TExiAtNQ29evXE0mVLcfttdxqhO8kutvr7iJG4+abrsWD+Quvz3n/APpWZ8GGUl5XhkYcfxB9/jLDCfdu2bY1g78GUKVPg9/uREJ9gF3x1LG9C5rzJyclmn0jWelx8nBHeC3HrrTfh11+Ho2HD+jjpxBNx7XU32MVjp0yZit/M78zg/+DDj9CsWVMMGzoUV19zna3fwkWLkLV6NW6+5RaMGDEC+++/nz2/3wQQKOqzjYlJiVXnj42NxZ+j/sbgwwfjoQfvx3ff/4AunTvbxWmdLH0hhBBCCCGEEEIIIYQQOz6e9PR6d6BO4rLietCI5DFGSGcm/KpVmfj4k0/w/vsfWuGcIjz93JcsWYJJkyZjzz17W8H9lVdes/7xXHSVovb48RPQqXNHtG/fzv7+zLPPW4sbZquHjEi+cNFi5Obm2vIozFcYkX/2rNmoCAbtPlOmTDMC/x82WEDR/bnnX8AiI7zHxcVZQZ3Z+0Gzb4/ue1irmqefeRaZmZl2G8//w48/2cVkO3fuhG+++Q7Tp8+w2/lUAC1ycsy5FyxYWOVZzzb9/POvqF+/Hrru1gVz580z4v+HNmBAr3pnP7HtYcDnsCOG2fea8Jr58fP336C4pKSGJzE2ljBiExIBBV+EEEIIIYQQQgghhKhzUBcsLS6qUR90tW3XqU6qfhS26d9O4Tv6N2a98xWdSW6tcIyYX1paZj8nJSUiLz/fLrBK6FtfXFxSuXcYCQkJVuRmdxUWFdksdorpFMB5PH3sKcRzn5KSUvN70J6zqKjYWtFw3+g6OPY3Tl0p3FPYr/Kkp/2NGSAKsNzG4ACF/NjYGPu5pLQUyeZ80W3iZ5bJd9aPlj08f0pKsvzo/0NoM/TUi6+j1LzXRKwZzxuuuBCrs7Lt/NwcaF2UWr8hwhpXIYQQQgghhBBCCCHqHFxLNHf1SvtenTprcUMROj4+vsZt1W1e+N0R7h1SkpOr9qPQTtG++jHc6pzDEb35Oy1unN9of+NAS5ua6sDP1evqbOc7s/K5WK2DXWC2snx+5rbqbaKwn5i4dp3ZBonzQgghhBBCCCGEEEIIUTeo04vECiGEEEIIIYQQQgghhBB1FQn0QgghhBBCCCGEEEIIIcR2QAK9EEIIIYQQQgghhBBCCLEdkEAvhBBCCCGEEEIIIYQQQmwHJNALIYQQQgghhBBCCCGEENsBCfRCCCGEEEIIIYQQQgghxHZAAr0QQgghhBBCCCGEEEIIsR2QQC/ELozL5UIoFEJeXh4KCgvt9+htYfOfvLx8FBQUrLXtv8TtdqOktBS5ubkIh8PbrR61wfoUFxfbPhRCCCGEEEIIIYQQYlOQQC/ELkxFRQUyMjJw/jln49ADD7AiOAVxQuG+vKwcp5x0Ak464XiUlZVhe1BqxPlePbrjzNNPQ1xcrK3XjkRZeTn27b8PTjvl5B2ubkIIIYQQQgghhBBix0YCvRC7MF6vF/PnL8CJJx6Pt//3Bg46YH9kZ2dbkX758uW4+/bb8PQTjyExIdFmsW8PmL1/wjHH4NGHHkBqSqoNKuxIFBYW4qILL8BD99+LYCBgs/yFEEIIIYQQQgghhNgYJNALsYuTmJiAI4ceg5ycHLzw7NNITkrCqlWZGHr44Tjn7DPx+Rdf4tEnnkBaaqoVyyng5+cXVAnRFPOZ5e5YvNDyhS9a45SUlNjt5eUVyDXbeUx5ebktoyarGv7GsnLMdmbzU4x3uz0oKi5GaVkZwqEQik2Z2dk5dj+nDMeqJz8/35ZNux7HDsda0JhjuI2fC4uKkG3ayno426PrFzl/jrWtqW75U2LPnW3b6pTvNq+CgvxI/Vxr9uX2fKe/Cgok3AshhBBCCCGEEEKIdZBAL8Qujs/nQ0FRIS648BKkGhH+5ReeQ4zPi+eff8Zm0Z9nfm/QoIEVsI8Ycjiuv/oqHH3UUJQYAZsCOq1venTvjpOOP85m5AeDQStGn3jcMdirz55W1G/bpjVOP/kk62nfrGlTXHvlFea48rXqQVF79eosdO7UCZdfejHOPfssZKSnR6x1KoVvCuss8/KLL0Snjh2NiJ9XGQAoh8e8H3v00bj26isx+NBDbN34O9/79e2D44452pS/Ggfutx8uufD/TD2aWOGc21m/00z9mAHfuVNHXGrK72vOw0AAy2fdVmVmolevnrjp+mtx5hmn2ScKWH5V5aLaQbG+woj+Rx15hNn/Ogw1/cbzSKQXQgghhBBCCCGEENF4IYTYpaFonG6E8M+//hqvv/k/nHLSiRj910ikpqTg8KFHGcE9gLLSMH745gv02KM7Fi9ZghbNm+PKSy/BAYcebkTufJx9+mkYNuxI9Oq7N4qKiuDz+/DEY4/g99//wDfffI2DDrgI11x9OXr17IlTTznJZqI/89zzgNmPUARfuXIVrrz8Etxx6y1G1C804ncZHrj3bnTcrZsV83nM8888ib369rUi+G1+P04982x8+9336NGjh6nflwgYEXzlqlVobuo3d+5cHDJkqM3Gv9zUtfse3XDE4YOx74D+NihB4XzIsGMwatQonH/OObju2itx0P7748CDDjDiejmSk5Nx7Q032T4pLi6xdbnskosw9t9/0aRxY1xw3nkYuP+BCIWCa/UnhfjkxER8//WXqF+/HqbPnImLLjjf1Gce9j3wYBt0EEIIIYQQQgghhBCCKINeCGHtYRob0fnq627AkiVL0aRJE7xhhOnhw4cjZAT8p598zIrzw445Du07dsagAw9B27Zt8OrLL6C0sNDaxnCx1FCl7QvCXNy1zFrNOLY1Pq8Pe/bpjT57D0Crth0Ql5BQdX76uNP//u47bsf3P/yIlm3bmfN0wZnnnI9MI7jHxvqtxc7KVZmoV78h+g8chIpABU458USmrGPRwoW48qpr0LRFS3Tu3AVDhh5tM/GHHHYoyo2wTwuapKQkTJ8+Axn1G+CEk09DTEwMjj/2GLvdqV9yShLqN2qMbj16I8sI+6ecfBJKiwpw6sknWnF+6NHHoU+fvdDB9IHX68Edt92C4oKCtfoyLzcPp596iunDxth9j57Yq98+6Nh5N9x0621IMsK9EEIIIYQQQgghhBAOyqAXQlgopNPi5ePPPsdVl1+Kdz/4EKlp6QiY3wYO6I9pRtz+5dff0LJ1G/w79l/8PXo09tmrLxIT4tcpi1Y2VqWPgvY3d997P2bOnGFE9gZrbSs1IvnAQQPtuZ54+hn4Y2JtBvt3P/4Il8eDcAgor6iw29IaNMTcefOtT3yTJo1sNjwDBH+MHIGrr7oKTZs2NeK73/rWt23dGmEebKCn/ONPP42GTZph7Phx9nvDRg3gM/s67X/qmecRG5eAbCOyz5o1C23btAFdaQ456ABr8XPA/oNwxBGH27JDwSAG9N+nsq1riImNwdRp02y9Pv/0E9OGH/DX36Pxo2lLYxP4YDBECCGEEEIIIYQQQgiiDHohRBUUw2NjYiq90l1Vi6RyoVbavrjNdgrv3I8e61aaNncRl9ttjwkEgpEFUkPh6tbsCIaCVtSOi09Y57wsx1250CvL8FCUN+XF+P1V8jetZFguy/f6/FXHlhcXYdDAfTFh7BgcesjB1qeei9zy+GBUoIALzPI32ul4PZWxyfCa7axf0Ij5PLfHttNlxXfu4q7cv6CwyHrq88d33v8AL7/2Bvxx8bZM/hasCCAlJQVfffsdBh8xDBMnTcSRQw7HZx+9j2+//MJm5de0OK4QQgghhBBCCCGE2DWRQC+EqBErOiPiqT5h4gR06dIFnTp0wPz5C9G8aWP06bMnZs2ciZKSMqzKXGWF/VbNm2LpwvkYdsQQJCasbedi5H5bZk3LpPqNED96zBj7fvpppyA7a7UV2Vu1aIFQIGACAK41dQqvEf/5kfU74vDDbPb9CSedguuuvgojR45CQjwz+6MCBUYYdwIJTo2iK8P6eVxuVMYm7P786PN7MXrsv0hJTsaECRNw7TVX49prr8XLL7+K73/4wQQW3CgtLoU/xm+96VeuXIk2rVtj/Ph/cfoZZ5l+2w1PPv0s9tmnH5ITk5RBL4QQQgghhBBCCCGqkMWNEKIKZpknJCZYO5pIFjus1czFl1+F3376Hr/9/AP+GT0GfY04X1JainPOvxBJKWn49vsf8f/snQdgFdUShv/03hN676D0phTpKkgHFZFmFxV712fvYAVFEQVsgNIVBQVE6R0rvXcICek9eTNzszGEgICABP/Pd9+92XL27LLn7Nl/5szcfded+PSTsdizZw+8ZH8NAxMcFGyCuJ+fr4nrXl7e+QTyv9BjTJ0+Ax+O/hi33Hyjhc6JT0xEowYNUK1mLfN495Z9PTxyBf6sHBHzfaT8IHh6eWHKtOno26cP5sz+Dmt//RX169VDWlqaiPQB5nWv4rp64yOfOO/t45VbP1j99HxVjLcAPbIwLCTE9veS47w78gM0btgQX034Ar/9/jgS4uPRQOo2WY47YMBAzPnxR/Tu3RPz536Pj8aMtXj2Awb0w1xZ7uHuYfH1Z3//gyXUDQsLAyGEEEIIIYQQQgghikd4eOQzIIScFpmZGejYpbt9F4aKx3NmzURySso/CG2SA1/1Rs/JwdnGwtPIYfbt24fFS5Za8lRvby8kJSXh8/ETkJWVjaCgAMybNx933XMfog8fRmhoMHbs2Imffv7ZpuTsP3AIN99+hwjybli0ZAk2bt5i1+Hw4RgsWrwY8fEJuSFkjiYwMFAE72nYtm2bxYXfs2cvnnn+BazbuMnE+b379mLx0uXIyMw0sV+96peKsUDL15j0c+bOM6E/PT0Dt98xxMLTLFq8BLukHN1+y/ZtWL5ilWtf+afQOixYuOio+i1ctMTi2eu6rKwsEeP/wOo1axEYEIDPJ0zAzp27RNj3sW0/HP0R3nn3PRQrXhwrVq7Cpi1bzPF+/aZNeGv4uzh0KBqlSpZAWkY6xo77FE899wLCKc4TQgghhBBCCCGE/OdQzS01OalQfdCtcpUaZ1/1I+QCJSUlGe98MAap8l0Yvn5+ePTewSJkx+SFjDlVNMlpaFRx824/22gdExITrcPQBLHqSa/e5Np5aAiZuLg4C/0CqUtwSIglQrW47rJMPeaTk1NMGFchWpO4eom4rx7jiVJmsnyCQ0PhIwL38cK86PGPHDlix3I824OCgkzU12scFh5u4rnW59ChQ/Y7XJZpHZJzj68qucaBj4uNhZ+/v4n2MVKXjIw0RERE5nWE0YcOmnd8Xv2SpH4hrvopGi9eVHqER0bmXQNNFKt1Uzd+PfeQkOC8uPZabw23o/trnWNjj1jcfDsvqWeYnHtODrtbQgghhBBCCCGEkP8abm6iHUUfsO+CMMQNISQPFc41drsrfjvyBGX9dsTw/Djrsy2MjZ99HCIiI+xbPdHzrztRDHZdp4J6fnT/gAB/+zjH1E9ERMRR5R17/Ej7VkE9ODhIfgXl7e9aH3XC+qmgXvAahBSoW975F6i3Lg8NDSl0W0IIIYQQQsj5Q7C7O3oGBSBInZVkXD8nKQW71SnnPKSDvBPFZ2VjWWoqmvr6IsjDzep7vG0KWx4v51jTx+uEx1meknbUNdBjlfbyOOE+Wo/4k3Aq21ixHIYficPw2DgQQghxQYGeEEIIIYQQQggh/zkGhQTj8fBQE6P3ZGahjKen/B123grIWtdlqWkmvtf08cZdocFom7L3KGFct1FjQ6Mdu/OWqRHi3WKReDEmFm7y34DgwLx1es4J2TmIy539q7yUfeQogb59gB/a+fudcJ89GVnHGAUIIYScHBeEQK+hJ9LT0y0+tobE+CeeqhYPSB54mozSCd9xJrY91Tro+Wgs7cBA/zMaelzLTklJtTp7e3vTq5cQQgghhBBCyH8OFbhVzFYhXgV5hyciwjAkNMS8yM9nwXldWroJ7zXlvd6ppwrnpT1dMo8uXye6gv2Wc1XWp2XYtmPj4vPK+bFsKRP9Hz10+LjHevFwrH3y7zMlMYle8IQQcoY4vaDY5xka97lkyZK46KKaJmyfLCpW674qsjtxqTXcRbVqVVGiRAlXrOkTUHBbLUPjYGu4i9NNCKr7xcXHo2zZsujerYsZHc4ker4XX1wL5cuVs9+EEEIIIYQQQsh/DfWUV6/5/OK8oqKzeoer13h+mvr5mnivn4LrVAwfEhZigvmgkCC8EhVhYXOCc/OQOev1Oz89AwNku0CcDiq+az1r5AtX08TXx85J1zXx8zmqfsq5MDiokUCvkXMNynh6/u32Ba+Ns6zgdVQ03M5AucYFrzUhhBRlirxAr4J2QkICbr7pBjzx+GMmOp+sV7iK+RUrVkCdurXzxOqkpGQ89OB96NTpSiQmJZ1w/4LbahktWjS3BJUq3p8O8SLO3zn4dtx/3z0IDgk+baH/eKj3fJfOndGkSWNXQk1CCCGEEEIIIeQ/Ri0RhOckJx+zXMPF3HHgEMbGJeQtUxH4vWJRFjpGPdT19+MiQjvU9PYyr/vppUugsQjIKh6/Ehlhf+vvPZmZGBQcfJSwb9tIuUHup/fOr/X8U4V4OZ5D+wB/E+GXp6ahfW5eMUXD06iX/NmmvRxnXtlSqJErtg8JDcWnJYsdV6TX5bpe65rn7S/76nVzzkvLcK6jooYH51rrcZxr/WnJ4iCEkKJKkQ9xoyJ79erVLMHjwoWLRCzviJkzv0VAwF8WVBW5VbRXcTo7Ows+Pj4WkiY2NhY9e3ZHxQoVsXDBQhPWNbHjgIE3wlPWh8qDICkxycLmOEK5fqu3vH6cbbUsTR55KDoagwYOwFtvv4OdO3daeSrae8pDRz9ah7/qknJUQktdniQif4mSJdGq1WXo2au3HCMbxYsXs/Uq+Os+up3ul1+4199pGhInLV2O4wHffA9oXace/SrGu3bJQXJKsmyfBnf3Myv+E0IIIYQQQgghRQEVxo+X1DS/p7l5ucun2579eSKyenGrsLxe/p6S8Jdj3/Aj8fJ34lHb9AgKwDgR+1VM13KcsDBNcz3cCyZ5PRX0+D0C/9I+9JiPRB9GQla2LVfxWs9RjRFj4+NxNtFjqee8hr5xwuXoMhXOXxZDRP99B47a3hHn47Nzjlr3XvFI/CD6hVOGGkRmlC5pXvPOtdNy++87mPfvod72Kto750sIIUWNIu1B74jaV1/dG3PmzMWkyVPQrWvnvHAzzjb6d7KI25e1bI7u3builIjg6ql+6aWXIioy0kTttm3aoF69uhaipnbt2ihTujQyRVxv3uySPFFd0bKCg0NQt24dE8x125KlSsFLHhrt27ZBYmIiqlWrhnZt2yIyIgIXX3yRCfVOuBwVy7WsSy+95KjY8irka7iczmJg2L9/P1q2vEzq28JVd6mTivLdunYxb30twzlHJyROhfLl5Dr0RLNmlyIhd0DgimWfgSwxSlx5ZQd07nyVa5kI+WfaM58QQgghhBBCCCkKOHHa9/xNWFulR1CgeZ+vyxdOVwV8XdYun5e6szz/73X5PNxHiLisx22a+3c78xrPOKk6HA8V91WULu3laSF41OiwPMV1XE0Gq97oKs67lp9dD3o1OOj55Y9Lr2L5VBHsm/r6HBWmxiXcqzOim81WcER1PQctY2o+o4deH72WNfKFwNFl+f899mS4rmGQxwURxZkQ8h+kSPde6lUeHh6OenXrYt6P87Fjx07zkm/SpIkJ8raNdPS63Yjhb4vo3QK+vn54+OEH0KZNK5QtWwaRItD7y4Oxbt3aqFKlsgnsfa69Gk2bNMahQ4fQp8+1sm1rC2fjCqeTiFtuvgF16tRGtFimddvGDRsiU45RVwR+pZyUq+V5+/iYkH/rrTdbGB4zKIjYrh7yvXv3lDIT885FBffy5ctbLH0V8OvXq4OKlSpafapUqYI33xgG/4AAhIWG4fVhr8HDw8OE+iNxcbi6dy/ce+/dyJCHeyOpy//+95gZIPS8dbv333sXdWrXQZAMLF568XlERISLQeD0BwGEEEIIIYQQQkhRxRHFS3v+fVCBMp4ehYrouqyWt9cJ91UB3hGmVWTWmPFObHgVrcfFJ+Cf8JdHv4+Fl1GjgYrdTvgbDalTI7eO604hX9/p4AjoBa9V/tA1DgODg+zaax3zb19a9AtFxfuNFcvlffTc8gv8hBByoVFkQ9yo2J0oltgbbxxooW00hIuPjzemTZ+B3r16YNmyZfD380OSCONPPP4ofv/9d7z66jAEBPjjq68mWfia7du3m/d8BRHGhw57EyEhwfCVfVTc19A5GpZm3Cef4uabbsS0adNNEFdxW73mX3/jTRO8dVsNmxMXF4+hrw3D6I8+xMxvZ2HN2rUIDg7GwYOH8PHHoxAVFYm0tHRkycOnW5fOeH/Uh1a+g788cL7+eqZsfwDXiVFgmNQnSB5aQUFBeO6Zp3Dr7beLAWK3CPkZFj7nxhsHYejQ1y2W/BWXd0C//gOgRufk5ES8+MLzaN++Lb755js88/T/sGTJEgx7/U3zwg8KCsbYMR9i5apVIIQQQgghhBBC/ouoMHw8gf6J8DCsyzg6fE1BVDDenXni3HMFy5+SmGhhbjRGvK5blpJ63LKDPaT8v3GsUyFeRXn10tc4+BpexmGuaCQDg10JaB3h/myixgfleGFm8i+z5LyxcXglKtxC14yLO9pQoeFr/snMAkIIKWoUWROkiuVeXp5o26Y1Pv/8C4unrqL9d9/NQonixVGxYsW8+O/Vq1fH7Nk/mLiuornGaNfwNIEBgfD29oGHu4csD3LFrc8Xd0YF7aVLl1sZderUweHDhy1MzOLFS8Q4kCzH/OvyecjDM0jK1hjvup/GpPeT48TGxmDF8pXo1KkTYmJiTNx3k/1Wrlx1VAz6bHmYqUjv66dT5NwsQax6v19Uq6Z53zdq2AgD+vfDwAH9UbpMGVSS81Ov+wYN6ltInG7duqHvddei3/XXW7lVq1aVYrJRoUJ5zJ03X849AmFhYea1v2bNWptJQAghhBBCCCGE/BeZIwJ2YZ7ZGhtdRWN9L8+/XUFUEP87Ebmg972GpFFh/vHwUBPNj7e/xlSfV6bUUXXTeum+BffROPRNTaD3PiqMzQ9Jyba9ivfrz7L3vLIu7VhPeUVj4as4n9+DXw0V+tEZBGoMcfZZn55h3zV8vMT4kZn30f13U7AnhFzAFFmBXuOyt2jR3ITmoUNfwdixo/Hh6Pfx+Wfj4OXjjSuvvNzi0ytOotSCiVVz5D8V9rPMklt4THbdbua336F7ty5IT081b/UpU6daWJxCt5f/NLSME7dexfIpU6bIfu3FYJCGnj264etvvslLGnsidL0mq83WpLKpqfJJRppY8Q8cOIDPvxhvhgaNfZ+Wlmae/PrREpevWImffvpZDAT+lsA2MyvTjAmWpFa+XfHrQQghhBBCCCGE/CdRD271+tZwKjVFQyiTG8f93eKR5uHteLePjUuw9/zHI8JMJHeSoQa7exwVb13RRKX5tykYk13D3KjAroL01MTje+c7iWPvEqHeqZv+Vgp69S+XMkubISDr6LjschzXsbz+USLak8WJy69e8VpnvQZq2NAZAwU95B1ePBxr+2hiWN1eQ97o34OCgyw8j6Jl6b9Rz6AAEELIhUqRDHHjJH69/rpr8cqrr2HpsuXmra6oOK5hYcZ8/CHGj59oCVQ1JMwlTZuIgP+RK2GrbKPbq2idKg/dYsWLITkp0cR6Kz/fsQLlYfLtzG9xVeeO6N69B3bt2o1t27abN3p6+rFJVlRMDxcL8JEjR+xYKtCvW7/B4tV37doNFSpUwKuvDTuuwJ8fHx8fbNy4CZGR4RayJ04eat7ycNVzV29/Feg3b95q3v3fzvxG/vZXB34zOGi4Hj2/3bv3oEH9+vj098/suqihQrffIOUSQgghhBBCCCH/RdQru9++AyIoR2B6qRJ5y1UgvuPAgTxPdf1+9NBhE+hVOHYty7J9j/GAl/fxeWVL2U8V/1WALriNhqFRIf944W1cdUjFS4ePmCe/c0wt79FDMceUtyzXaz5/glqHORbmJuisx5930Ouk3v/O9dQ6q4Fi+JG4E+4zo3RJu776+84Dh+z3e8Wi8rbR8zgXRgZCCPm3KJICfXJuolUfEb+XL1+JiPDwPG90Fe9jY2MtjEv/fn3xzvD38Mabb+Gdt980wXvTpk1o07YNfvv1N0yeMg3LV67EwIH9MUA+6ekZmDJFveMDLJ69eZxrrPukJCxeuBjPPPU/3HX3vVaOrtNPQL5ttQrLl69A//7XW4LYxIQErFq12sLoTJj4JZ763xOYMGGiebyruF7Qg17/Vo/4oMBAE9JVYNewOiPf/xAfj/4QE7+aZOFumje7FEfijmDkyA8xZ+481G9QHx+8/77Fvvfy8kCnjh0xbdoMzP/pJ3z08Ri8/vpr5rG/W4wLbdq2FmNEkoXTyT7LMegIIYQQQgghhJDzFRW7+4vQbjHfc2OnFxY//QfRIPRTJjem/PHCrQyPi8NLMbEnLMtiz58gvI3D2Ph4+/zdMfUY1bbtLHSdGgj0cyLa7NqLU+V4+zjGjJcOH/8aFKyr7tNwx668v3X7E5Vhgn+BmQtq9JhyghkJhBByvuMRHh75DIoYKmRXrlQJP83/2cR4j9xM3w4eHp7YsnWrJYLdsWMHUsQyPe/H+ahVqwbKlS+PX9b+gh/mzLUkr0ekY1++YgXq169nXu1//PGneeHv2LnLvOC1bA0Ts2vXLhw6dAg//fxznve7hc7Jys7bVr3lV61eg3QR4OvUvhgx8mDevn2HiPE+2LdvH7p07oy33xkOC4RTSIwZZ1lM7BHz+tdj675ap23btqFu3bqWbPZ3+XvKlOnm3a/Ggnnz5puYf/FFF8myQIvDv2r1agTK+Wkdlixeivr16qFUqZKY9NVkbNy00Tz6dV3Ba0dODU3a27FLd/suDA1RNGfWTAs/5HbacYVy4BsQeFR+BEIIIYQQQgghZ4Y0eddSETjtb965jie6a8ia9gH+FlM9WvSE45WlYrt6mI+LTzxpr/bjHfN85mSv59kugxBCzidUF0xNTipcE65cpUaR6+30RNSLXr9VLC/oCa7LNUGsCvPBudPBNCyMiqQ65UxF6QB5eDoe8urRnprqmhYWGhqMRLG8qse5erk7seszdP+kJAtb43i+u+d61xfcVpdly0NZl2somnixevfq1RO1atbE088+hzAxHBQWf96pd2pqqoWjyT8rQJelpaXbb62/y0jw13qNt6+GBcVbBgeOh76u05kBKSYQuxLf6jFU0Nff9KL/Z6SkJOOdD8YgVb4Lw1eu8aP3Dkb04ZijkgqfCjk52QiNKo4c/lsRQgghhBBCyHmHxlnXUDltdu/FnozCPd0/LVkctbw1+WkWuu3ZB0IIIf8t3NzccST6gH0XpEiGuHGSryqFCcyWXFVDxQQF5oncKmpr6Jj82zjfKmh752YNz87OyfOQd8q28mT/4ODgo4R1jTdf2LYB+eLL63It+5qre+GZZ5+32PfHSw7r1Fu94PNvo7/VU14/+bY+an3BmPb5z8/Ly1M+QXnrPHOnyFGcJ4QQQgghhBBC/hkasqb/voPHFeeVT+ISEOTuxlAshBBCjqFICvRFDfVmHzDwxrzfOZyiRQghhBBCCCGEXBBoHPW/iymvMewJIYSQwqBAfw5QT3WNY69QnCeEEEIIIYQQQgghhBCinF5QbEIIIYQQQgghhBBCCCGE/CPoQU8IIYQQQgghhBBygTAkLMS+pyYkYfffhN4hhBDy70OBnhBCCCGEEEIIIeQCoIynJwYFB7sS0iYwIS0hhBQFGOKGEEIIIYQQQggh5AKgia+PifPLUtP+NnEtIYSQ8wMK9IQQQgghhBBCCCEXAHnhbRLpPU8IIUUFCvSEEEIIIYQQQgghRZyegQEo7emJPZlZmJKQCEIIIUUDCvSEEEIIIYQQQgghRZweQYH2PfxIHAghhBQdKNATQgghhBBCCCGEFGFqeXujqa+Pec/PSUoGIYSQogMFekIIIYQQQgghhJAizICQIPtelpqK+OxsEEIIKTp4ghBCThN3N/k//eT8tczNzc2+c3JyF7r+hP6ZkwNCCCGEEEIIIWeQMp6eFn9eGR7L8DaEEFLUoEBPCDklVH93y/1OTZdPphvSM3KQnp2D7Gx30+r14y4beLhlw0tUfG8vN/h65sDX21VGNsV6QgghhBBCCDkj3BUWYt9TEpOwJzMThBBCihYU6AkhJ4UK8uoxn5EFJKQCifLRiZMuB3k3Ww+3HLjlLQOyctyQKdunyBgxTn67uecg0AcI9pPOx0P2z6ZQTwghhBBCCCGnC73nCSGk6EOBnhDyt7i7u8T0w4kizqe5xHg3EeNdSSxOrLCbWC/bOqp9Qqob4lOAIJ8chMk40kMKyWKIREIIIYQQQgg5Zeg9TwghRR8K9ISQ46JCvId84lNzEJvkBvWPd3f/Zy7vKuxruQnpbkhMz0G4PxAsH/W0J+S/hOZrSEtPR0pyMtzcj87ZniMWseDg4LycDmfqeOlyvLi4I/D19UNISAgSEhKQkZFhvwkhZx5td4lJScgSwUTbWc4FMG1Mzylb+qi4+Hj4ePsgIMDf+pHExERXX5aTO37w8ICfn5+FvONkOXIh4C73d5K057S0NISGhSEz97739/eX56qvtQtnO6fd67PcaffadjJlWUKC7uNnz+Ts7L+cWPKj+3h7eVnZ+tvGDGkyZkg5dsyQt8/fjB10+ZEjR+Dh6YmgwMALoj8iLu/5pr4+9pve86ePto/U1FT7ZElb0jbtJ58zORYveLysrCzExyfIs9LXnpfZZyixr5at/Ux2dpbrgVwAbfv6jA4OCir0mLq/81wPCAiAj4/PGasbIeT4UKAnhBSKS5x3w6GEHCSmuZswfyZfsd3dXGVFi/CflpmDyCB54ZfBAt8VyH8FfdGuVLEC6tatbS/p+fH28sacufOQKiLAmXoxUEGhapUquPaa3li5eg2mTp2Gdm3aoFSpkpg242sTFAghZw5tu8ligGvZrBkiIyMwZdoMBAWd36JYnvgeF2fihIqDBV/KVVAIlBf2Ht26YvOWLVi+YiXKlimDrp2vQnpGuga9s20Ox8Rg5cpViBHxISIiHIQUdVS4a9qkMSpWqIAZX39j300bN8LipcuwfccOeHu7ki2lpKSgcf36iIqKxHc/zIG/CG/a7lWcDxJB7OpePbH2199QqmSJXAH+WOHL29MLO3fvxip5Xmu5+gyvXKkS6taujbSMtELrp/v8MO9H27awsYOONa679hoR6ePw04IF8BIDACn69AgKQGkR6ZelptF7/jRwDGeHD8egibTnunXrIMDPH7///jsWLlki7cTbDNFnWqDOlOdkSHAQevXsjt//WIc//vgjrw/5p2hbv6JDO+tvsrKP9YLzdPdAjBjrFixcVOgxVZwvXbIkmje7FMvlOb5t+3b2F4ScAyjQE0KOwUkEu/8IkJzlBo+T8Jp3s/9yzMs+W3b2lF1cw4ET76tlJ6XJy3x2DooHO/sUTcqUKY3du/eAkJMhKSkRzZs3wysvPGcv80buC7WnhwdatG6HhD17zthgPUWEhWrVqmLwrbdg5qxZGDN6NO4YfBuaXdIUk6dMhZsMvM+WlxAh/0VUpPbwcMfHoz8wb9U//lyHLVu3mvB9vuKI79f07ok/163HmrW/HNMH6Yt7WFgYhr32MiZ9NQXffvsd2rdtixFvv2kCpvYjavDTl/n4+HiMHfcpnnzmOYr0pMijs84GDuiPbl2uwrz5PyFR/n7lpRcwa/ZsXHv9ABQrVsy1ndz3I4a/LX9HocZFdUzY03YRFxePmwYNxNP/ewLtLr8Sr7/2CsJCQ0281//SRGD19vGxWSfafrTca/r2FwNfpB2rXds2+N/jj5qYqKSlp8FTRHmPXAO7esRe2rIV9uxNLHTskJqcgtdeftEMazoO0GOTok3+2PMj6D1/WuhzLyM9A+M/HYtOHa+09pWZ+yxcv2Ej+g4YhL179+bNZjlTpIshrVTJ6hj2yssY8f4HWCLGAG3rZwL1nn/mqSdRvnx5m1mjpKalSr/g6l90Fs3GDRtwScvWCA8/9tmcLH1F7ToX4/Whr+Lhxx7Hb7//Ic999heEnG3oLkcIOQpXMlg3HIxzQ0qWetH/fYx5d/n/zJwMpGWnIz1LBjWZGUjNypFlmbIu5287Gk0em5LphgPxatE/8wJhrZo1MPTVl9C7Z3ecLTp0aIcF8+bgniF3ntJ+Kur/7/HHMP6zcfY5m3Uk5xcWckYGy/riPvCmW1CpSjXUrFPPPlUvqo2Dhw7ZC7p6sqogpp+YmBgT891zvVxjY2NNAHOmvzvlqkh2RNbFHjmS50mn01h/+nkBGjW5FA8/+gSCQsNlAB9vXvo51OUJOaNYKAlpg7fceCO85EVY2/P9996NI9Ke8xvC8nusa/tO0pBX+dqyviTrct1PRQRddqJ9VBhPSEy0j7Ot7qfbqkedCnjJ0odov+GE34mJic1bl5iYJP2OJ15+4Xl0vqoTDu3fb8a9gnXOkj5H90lMTpJnuIeF+siU5/9bbw9Hleo1cUmLy9Ct19X4VV7q75bn4gfvvYODBw/SCEiKNG4WuibRhHR9Pq9btw5Lli1DyxYtEC5it7ZL855v3Ni8493FQNel81V57U3DTVwtxq/t23eaV+oVnbqgSbOWIuLXxgejRluIi4E33ITaDRqjgTyrH3zkcTFsRdixw0REGz9xIhpd0hyNL22Bhk0vtba9ePFi1Ly4Lpo0v8yWH5b2rPXUUDbOmCGv3cm3/q3hqdxzDWk6XlDDgc7qc2bSqSFC99X+IO/cZXs9D91fxxxahh7D6ZfIv0N+7/ll8m9JTg13ee/U5/OHH7yHrl06Y+wnn6JGnfqoVqs27hhyD6pUroSZ06ZoTJjcMJFxFp7SaSvOTDmnjbvG4GmIlfajY3DHOPdXW3MZUbQdxctvXa/jew1dlb9MHbtr+9JxvvMMdrXBhLznu7NthhgUXO8KmXY+iorpPa/ugybSJ9SsXQ/PPPc8ggKD8NjjT8p7Rn00atoM14rxT8V5Z5wRm689u8JiZlhbt/cId7fcsDkJR7136PZOX6PXx9k3M7dOaujQ89PxkI43CCEnhh70hJCj0Od6dKJLMP+7ePPubu7IyM6Ae2Y62gWWwTXexXCRjw/cPDLwe0Ycpqcexuwjich0V08gjxN6HWjIm+RMV0idqOAzG5Ne43H27tHDnPknTZmGs8GyZcsxaepU/DBn7knvo+L8+E/HoUzp0vhz/XoEy8Bp6Csvo0P79rjtjrts+YIf50idp+KhRx8HuXDRQXt8UjIC3NztJUAHt+plq3EfNWzE4iVL7UW/0xWDsHTFCixcuAglSpTAkDsH41D0Ycz4eia8vF1edPqi3bB+PZuGr4P2xUuW4NffXJ4vKsDVk3WbNm+26fiEkLODE9/11ltuwoSvJuH3P/7AS889ayEx4uUFV0V7E8hFAAsM8MfA/tdbjPq1a37BYhH8dFr6wYOH0KbVZWjYoL69OH8363vzgNOXdZ1uP2hAf/OAXfvLr/henj0aRkeFg6uuvMJe+ueLQU6PoWE2uonwsPbXX7Fx4yZcesklKFG8GL6YMBFXdepoobbmzP0R6zdsQN06ddD80kvsGMWionD1NVebILB67dq/nc2j8+jU4Hck9ogY/dyxY+cuzPm+owiIC8X43BPDR4zEjl27ztisIEL+XaSNi0g/Zeo0tGjWDB2vuAJfyTgwUwaw6myRKKJd3JE49OrRHZ989rm1zVo1a1qoudffetvEuOjDh62vUDFP25way+Pi4+S5Hm1hcXQbT+krHDEsJSXV+gz92yWkuZsQtl8ExjQRwVR0V4NdyeLF0e+6a03wXyLj00WLlyBKPXPz6+iybYyIZnVqX4wmDRtinbT/latWmxjXo3s31KxRA79KnzHjm5lmJFCRrbecy14x2q1YsQrXSd/gI215uqzXMYzGqGZM+3OLes8PCXXlEHr00GGQUydJxt5tLmsp7fdy/DB3HgbfeRdKlCxlz6mPPvpInoPF8MxTT2Dw7bdhwpdfWdtesXK1jaH1nleDd1MxyFWsWAHTv/7GDN7169XFFR3aS1tMwhfjJ5iA7yl9hYanqlKlMibKmKBB/frWxlatWnVUfdxtHB+HGtWri+GvGbw8PLFCtlm0dJk976/rczViDsdg7vyfEODvyv9STNp2y+5dseaX37B161YzHmo5Om4wY5qUlyDiuAnsIu6rQULbubNNaxlnaB+gwvs0eZ84EnckT+h30Oe7hq3r0bWL9SUzZ3+P/fv22Syh/v36IlDqMmX619iyZSsCAwNkjFEczZo2wWy5poGBgXY9tmzdhu9/mCNjnWAQQgqHAj0hJA/R/5CQkoOEVPe/DWujLwVpmcmo7xuF6SGtUNZXBv6eSUhGtDzU03FJcBhu9imBg6kxuHXvbkw/IoN3b3ecKHqfeusnpLnBR+oQ6Auci1w0l8jgQYXMySLc796zx7ztO7RvJ0L7PPl7N24YOADr1q03QaVDu3ZYt36dCCHzbIBWulRpjPnkEwtro0YA59vhxkEDbJv4hHhMlhe4guFvasqxVITPL8B/8N5we4HTcm6Q/RX9W+sxZtwn5qG/Z89eq6vW5/mXXnYZIHLr49RPB1lKwXVLl6+weuQ/z0uaNs47F+WGAQOOW2dy5tHBc+VKFc1LRpNEqeFLX7T//HOdiHnl8dbrQ+3frVaN6jYlVUX7x598ykLVBMsgVwfsA/r2QccuPeyFe9L4z9BBBsI6HVdb8csvPId7H3gYo8eMMRFh1Pvv4d2RI7F40UIQQs4OGuP5mqt7o1TJkvKCPlGE8Q144Zmncdftt+Lhx5+0UBgqyJUpVRLff/eN9dUHD0XLM6EUhr87EvfcfTc+GPUBbr7xBouLqy/L2parVK+BErLvjz/MMvEtWoS8/z3xmAkHN916uwkGL7/4gmaLxEX1Gpq4V1P2Gf7WG3j62eewTAx2+hypV7cOOl91FVpd1sKMBY8/8jBatGojz4W2ePiB+7FXXrxb5YoW8+b9hOvkueB48p4I9dx1F3HAK/eTmZGOzz//Aq+98hJat2mF90Z+QIGeXDCoIW3ajG/wvLTtzl064Ysvv7T21L1bV4wXA9geGUM9+fijZuw6IKLYnSLyKTq+ChDRStun4unlnSuI5cBTBDnv3Paj5Be9VVDTjy77y9vW3bbXdqXerWrQmzbpS/NcjReD/dNPPoGhb7yJZ557wUJ0OOWkJCagWfPm+O7r6dgvonvrDleakPiD9Ef16ta12PdD7rgdXeT8brx9MHyl/NeHvYY//vgTxUsUt1l5oWJUvFO2ad3+ijxPYXLuuCvMJc5PEaMNY8+fHvocrl+vnhnUZ377nYyxg/LaZUSx4vju+9l45OH7UVsMWR988AFee/klMYr/gjbSXiyklTTPT8d9jA1i4Brxzju47/77Mey1V/Db779be7v7rjvRonV7e6e8rs81Ziy/RN47+13f18T03tf1O6o++kx/7eWXcdstN9qsM63fc88+jdfffBuPPPoI+lx9tcXJb3hJc3tvUIH9DTler549UK9R07xQmdpH5PUvnl4WOlPR89T+QscK2u7fGjYUt9x8o9Rvr4xDgvDEY4/gqq49LEfGXxNvRMg/uB+jPhwl296E90d9iK0ixDdp1BCzZs6wOuw/cACPPvwQuvbsbQZ/FeTflnHH9Blf2ztJmpyHhsYb/u57eEr6Iu07CDkXuOXOHNMnqZMP5nyGIW4IIYY+hLNEEI9JPomY87JtelYyBvpVw2qvASjlHonXkhahwoGpKLV3HorvXICKW5bi6R07ECzbTqtZHM+U8UdaVjb+buyux45NMm3hnKDi/L1D7jJvdkVFc/27Zs3q8vIRbL9V/Pjg3eEmuKuHu3q93yMDLv175rSpJqyo0K7bannKB++NsNA1l1zSxLz3dTsV2vOTEJ9g32ok0I+Wc9sdQ9CyTXsT2C8XAV1RwebyDq7fegw9ttZBj6/1njl9St6xtH76t9Upd51uX6tWjby66zrnPNUg4JyLrtOPCvq6bqgMQsnZR1+IX37xefw8bw5mz/xGBrtf49OPRyNZXrSd6fLl5N/yojr1Ua9hYxu8vyLbP/zoYyhdprwZeBo2aoSKlSqYF/2o0R+hcdNmJuRVrloNK1etwgP33Q0PaVRZ8gKXkZ5uHj98kSbk7KDil7azh+67B7/8+isWLfjZXoR1Blf//v0QEhJq3q+pKamYMXWyGd4uad4S1WvURPPW7fDRmLG4/Y7BuOWmG+13+UqVUa1mbdxy+x2IS0jGzBlTTXyr06AhKlergSeeehp9rrka998zBBmpyUhOSjSjstbDppqLwU/7ktQ0VwJXDW2lwqKG54iIjMK1ffvZy/rtt96K5557Hk2btTDvN53qH1WiJG667XZEicB4Onh6++CAiAyapC5UY21nn6OHOyHnABW7dKbLTwsWonWrVgiQl/8WLZqbYe7b72bh21mz5LnsbaEzcsRY1efqXli/foO0vQ3wlTZ3JtE2rjPvvhr/hXn3VqtxEapUq46R74/CQ/ffZ578mWmuECg6xqxUqZKMEaeaw0ejS1pgn/RR7w1/x7x6a9Wua+dx0cV10EPGhJ07Xoks6UfUe79+/bq48+57RaQviWGvv2mJa1uLMS+J4SvOKfljzw9n7PnTR8S6cuXLmSe6JXr2/atdqpC9Y8dOC2lVtXIlxMj4+/Px482AdfFFF5kofb2I7iHyXvXgo4+j+WWXmTh/7wMPol79Bqhes5YI95vw3oi3kJ6YKM/mZPMm17ZXo3Y91G/cFOEF4rqr4W769OloI0avCpWronKVahgvhr/bbr0ZoWHheP7Fl+3ZPkjGEjoDRo1/V4ohXWfEqYe690kmclVxX52/VJx/ddjr8r5QVd4z6onYHoevp02Gt7uby1FOxhDqGPY/MUKqOD98+Lu4a8i9llNm+pSvMGfePFSuXAWN5T3k8f89jc/HjYGnKIwZmRkW8qZq1SqoKOdRrUYtm8F33bXXQmUGvoOQc4GFm5R7unXLlpbQXWeEnu/3XpEV6J0YuypsaNws/VYR40KNg6fnpAOf41l8nHhnjANIThd13Dmiwjj+7v7ReHMZaOhZEmOzeiBe/qsS+ylGpm7FG8G1sD6yJdaVbYLhYWXxddoRlFq3BZti0vF0uSBcHeqD9My/73j0LleRPtfY/+8jFarbqCneHj7C/vxTRA39W4VR9TZQb/T86DINdaNe8eqF8NaIEbbMEe8dli5bjo/HfWLivgrjv6xcZnHoHWPBdf0G2reGLnB+K7r+uv4DUbFaTStT99eQOHosXa5/qxekvoCp170u0/2/nzPH1uknfx30XJx1b8vAS//WfdVoQM4+6mHz8COP45IWrdDm8ivR7vKO8m82CAG5szFUAJg6fQbiZXCv4Wz27d2HvfLRF399kVABUEPblCtb1jxkdPpo1WpVMWzYMLzz1tvIlueGhs7wDwhANjj9nJCzjRlYxahapUoV8ySrdXFtNGjYyGJF+4mAdpMYRA/Ii70aTnV6+BR5lqzbsBElSpfBtm3bsWHjRrRv285CVQx74y2ERUQiKCQYM2Z+i7q1Lzbx/MtJk7F3/0GULV8Boz78yKawXyYvIGnpGTArer6mnl3I2FHHzW/JM614qTJYuWaN/R1VPAqePn7SVwTaWFKFRQ8vX/j5+5n4dzpkygt6RHi49FEeluQSHKOSok5ec3Ldy94+3pgydbolgm7RsgWu7NDBhDsdX23Zut28ZDtf1RHlK1ZChQoV8MXEL+1Zfaa9+LQNN292qRjfAjH208/FEJ+MiOIl8MHo0faO3Lp1K8sToW25VKlSmD93Dnbu2mkzZ9S4H+DnjzatWkrdD+Kuu+7E6I/G4K67h1goDJ1No0Y2HWv88suvmCf9WnhUCSxbsdLKKy3jRxU4ybmD3vNnCHkm7RUBWmes6PuVPrMcNKa7LtPZKbt274GHty/eG/WRrRvUry8yRYu6/dZb8Oeff2LpokXmxa4hZGrLM/+9kSPxxhtvSP/ghcYNGsAv0DV7RVv9I48/YYZrfdYWHJbrGGHBwkUIkneA1155Ge++K8/pqGL2TK5atRp+/mm+zbDte9218HTLQb/r+tjM2ndHfmChY062X8nKykbbVpdZfUeOGo3iJUuLaH9EDBATzJHrojp1RFtKsc+D999rjmAjPxiF+x9+GBFRkWjRvJkZ+nXW7zA5z3dHvo8GDeqbAUL7Oc1poWF9Ro3+GCmiUaXL8XRWjhoRQ8LCTLMi5GyibUZnd1wp43E1UA/o2xcd2rWxZeezXlpkBXodBNSRjqOdXOQOHdri8ss72IuJTp1xknRcSGh8QR0cafiDwjpe7eQuvvgiS/SR+TcPaSfmKeMEEgdtLpny7h2f7max4E+4rYwkspGJMTntNKMrGiR+jot8QrEt6jr09K+ODFmXmp6FzqElsLpqHdwaGYF6f+5FcmoWRpb2hreV8Pf1SUzXBDPA+dCSly5fnvu9wr7V2yj/d0HUOpsj/2kIGY0hP0wGWIqK9AVRTwj1mL/tzrtM8L+kSZM8r/zjocfVFz9Ft1fUy1+PNfQVl9e7iu1aDx08Oesub9/+mHo45/bnuvV5Zdvf69eDnBu0T965ZzfWrd8gwtwmu/Zbt22Du/tfFiqNJe/EotVY9PrC7O3jawY1nQ5vSJ8eL4OOud/PwqiR78JfBsHqEafb5h6owIuAK2mV7pclLyE07hLyz3EcKobceYcJ7HffdQdWLl2EJT//iBHvvGUi2k03DoK3lyc83FyhKtIzM6RduwQ7TdCqRjmNJa3e5hY2ItcT3kunqcv67Bx5Ckub9cjtI3Lk7+zcmPeWuF221210bKhl6vqC7VvL1uXWr+TrQ7STcEJn6HjydMaKzpEsiWxCIrr36GZ1WbJkWV6IDUKKGk5yZm0XbtZGXG1Dx2vfffudGckG9b8e3bt3xXQxqmuCRW1LEyZ+hTq1a+OBe+8x57Ip06ab+HamsZAWuZ4t2TZm8MhN4pjbP9jz3s5EBAA32z7APwChIaEmRGrD1TGGiviavFLfpzXszqti7F+4eIntr92I9mG+FiYgOy+ERg6N/+eUpqIHqPd8QnYOvef/ITqTRXPEaNtu06q13Psu8U6fwbGHD6FVi5b23NIcLZ5iyPrj9z+weOlSXNWlM5qL9qQe4m++MwIZWS4Dln6Sk5Ms3JS2EXXYGvbm2/KMd3m2Z+U+VzVEnWLPW5vplmntU/NSjBszGpMmfI5IEcLVYKYJmbXP0Vbm4e2Dd9//ACVLlEDbNu1s9py+E6qzjorfJ4udY+64IyfbleNC667tX7HcF3rEHNhy3U695nXcodfKK3e9k3ReZxlsk3eX/z3zLLJyYNdP+4tsKU9DeDnl59gYA9ShyFnFEec7dmiPPtdeg88nTMBnYnzqe+21sqzDeS3SF1mBXgc4117bCy1btEDZMmVRvlw5XFz7Ygwb+ioGDRpog6QLSWxQ7/g77xyM0NCwQgV4TRr0yksvoEmTRjZwOhE61bmDWJJ8fLzZORJDvefjk0+uQ5BXflRzj0LttKoYn7USSW7p+CawJ6KTY9Hs4Lcot38Bauxbgeo7VuHPuMN4pUIp1Aj2w3N7kxERlo1LAt3NGHAyxKcC7ueol9JwNkrIGXhpUs9zFeU1PqfGiNdPYVhYmc9cIWe+/8Hlca+e7Cqg5/dyPxnU81331496zGtM/V65oWr+/HO9edhr2eQ8RA1kMjDPzp0Omi59dJoMeLMtzpPrOeZmsWn/eqa5ebgftb+iIS/UG7duvboYP+FL3CDPwldefskSN1lYiZyjirBBc2pyqnn/lSpZwpI/UaQn5J+hnqoaz7Zli+aYOfNbNL+sDS7veJV9WrRuZzOxdMza55pr8Msva+0lvnvXrogMDzODmpe8yKrHuRqE1RNNk8fuF8OpvrRXq1YFv4k4kJyUgi5XXQVfEet37NhuseQ1F8Xq1WvsRX/fgf0oUbyEJXA8En0Ivbp3O7Zt68tz7kt37gLrI1Tgs8SVsqRB3brIycrIC5dzMqSLQTAjzTWzVePzfv7pWLRs3hw//vSziRqOKEFIUULv/yPyQu/n64NLGjcyw/eunbtMxNKWFZ+UiG9nzRbBrA0iIyLw1eSplsg5SMZzOgNOkzlq/GltAy5v3TOfBk5FxGUrVtk4onvXzpb/Yd/ePejerYsdX71X1cCnors6Y7TucIXllZg/93ura4KIbGt+/QXlypTBBBEyHnrwfjz00COYKuPJn35eAC8fl/jnlivU22/n4HydPKe8Ehlu32Pj4uk9/w9R7/PvZv9gIncvMSb/73//w+FDB3FQnqNtNdfXs09ZOJi3RITXd0RtZ+qtXlyeb+M++hB79u61d66IqGJYJs9tXb9zxy489sgj0oYexvAR75rBLst51rr95RyjRjQNOae/K1asgJTkBHjLM7h9u7bmRX/dtX3wwnPPiPHdPS8xm86IVYcuzTP1xuuvyrigqhgIhstxA05Z11m1eq29q/YQY8PunTugDbm7/NZxzPp1f8BP2ryvGINeff11vPDyK7imd2+M+fgjxEQfttkzWZlZNs54/vkX8fDDD+G5Z5/F7NnfY9fu3TYDT/sFt1xR3mBwbXIOsLA2ogVfmSvOT5j4pYWh0894+X2dLFORXvVi9/PwvbfIJonVxp4t5rnvZn0vlsk5CJTOVT0ERvn74ZOxH2Pp0mVmxXMSUelASoVtr9ykGM4y/QfUbZwOzeX5lOxK1Jf74qLGAPX80f10f13mhNjRfXWdlqWDNLVcOuvTc6dIOeXrMvM6kG3yvygVVv4x5+uW65UrnbMJOPJxzkW31+mMHa7oaC8+2nHrMos3KsJ+dnaW1MHHBHm9BnHxcbh7yJ244YabkZiYaA8mj1yPC62LbuPh4Znnre94jGhZ/nJ9dRtFj6/18MuXbMG5LnotzPJKA0CRITFN//3+/t8rKycTLd1Lyg3giXfwJ14MvETnz6Nl0g8IlDZzZ3AFlJUx/Iex+3HF7h3YElgFrxULw+CDB/FKpi/aBXrg5/gseOlY4wTH0bokyq0WFoAzhsaA1+R4DjqgUnFE+d8Tj1rc+d49e+CfUrp0KftWr3T99OpReJnaptUDXuPAayga9XZXL3dNzKovTzpocuqtor/jNZ8fTTSmdVZvfS1Dv3v36G5CvRPz/s/168wIUDAGPvl30X7VR71dpNmNHT1K+t6/QpRp/9mmw+XWH2s/r15u5vEqL9Z6X+gLQLZ5vWSLYOBnfbivDKQPiMC3fPlyDBrYH5HyAlelchWLd23PHcA8X7Q8218a4Jwff0Tv3j3lBf0HzJjxDe5+4CGbIksIOT3Ue/7FZ5+x308+85wlePX2/ivZo8ZsvnPw7ZY4csKECbhuwA2YMflLrFy2FOs3rEeD+vXx2WdfYIgYV1u2bI4nHnvU4lfruLdWjRooXa4i+vQfgBlTvsLqlcuwZetWNG/WDEtE+Ht56DD4i7H5669novmll2LZ4oXmlKH9SKqMU318fcyjT0UGH3t5/kucV0OdGqp17KshtFatXI3LWrbA5o3rsWH9BnS/+lobXzrnoZ5wPjK2DAwIkn4oywRH7b8effhBPHD/vSb0O958aqi44dbbpE+K5LiQFEnU2+77mV+jevVq9t409PU3zCjuPLP1Xp8i4zH1Zt25a5cIdcsRpQkkhU2bt2DDpk2oW7s2Jk+eZmEfCrYDHQ/oc97T3dNyUmSfTDuRbbQdB+eGtfAw41o0htx7v82iW7tqBQ4eOiTjx6Y2Vhwz7lPbXt9Ly5Ytgy3Stjt27Y5Z38zAovlz0VbeI2+6ZTB+/GE21qxZhdWrVsHHzx8N69ez/BeTvvrK9tXkjllSX3ed8SN9m/YZrr6FbftcMEj+vUvLPbJHxozDj9B7/p+i9224GMgH3ngzJo7/DE8/+TjuvP1W02Y098rB6GgMuvEWC6msDlT6+e67WWL82otyYmx/4cWXzes8MiwUU2d8jeHvvYehr72Mm268AQcO7rdnuiZWVm/7gEBp454eeR7pPj5e0jdsxg7pMzRfWTNpq1169MaXk6eYE5ceJzg02JxRVXdxyze7TUPHPCnvrhoWb5aI4hqL/nj9hr1v5OpfLgdNeb+W+r4jdW3ZshneeOM19OrVXfqFsuYgdr2MS2KOxEv797O8NRoz/4XnnjNnHs1Vo97zAwYOkv7iNtPdNq7/w0Lz1axe3d43NW+ObqP9o76buGbs5dgYw9v6PxBy1lC9tdPll+P66/rgk88/x6zvf7AoK8p3339vBqMB119vzy59Dz7fHEc8wsMjn0ERREPctG3TGjt37rLEWzpYUkE5TizJ6kmflJSIzTIg0s5MRbCmIm5deukl9mKya5fL46FGjer2QpGQL5GWCu26bUxMrInPakG87LKWaNy4oU3T1Zih2sFpx1irVi3zMtK4e23atLIOTC2Gzvry5cub95N6XNh0Y+mc6teraxYdZ9qx3kCFlV/Y+Xbr2gXfyEtOxYoVzDNLhfD9+w/YoFDX1774YvO41Dq7vOxzLMFPfRlY6TKNh1i8eHGpQ31Uq14VMYdjbYCmL5NaD/WQ0m1btGgmZfqYgcMxAOgxNKnk5s2bLeZ1KREg9Zj6YNIM4/qwca5fDXmB1JdR/bdwd7+wTaWZmRno2KW7fReGDsLnzJr5DxMyyvW3GHVn52mm1UrNVIHe7W9Dw+rqrOwM9PapjpYp5TDM42c85FEP8TkJ+MPrCBp6inHILRNb0tNwlYiCiSLBX+zphgo+bhh3OAGDo9yxIy0H02PlZd7j70Pd5OTIg13MiF4e/8w5R+MHqogdFRWZl5BVPz/MnSvW1AWoX7euidcaS37kh6PRSgZRGvddk+LoAElFdp2i6JSjYWHUS8IpR198FGed/t2lUycLS6Vi+W4pR5NoOfs5aLnab1wibUqFeS1Ll919/wMm0Gub1IGOJovVdSrAq0e8Ltffim6nZXS5qqM9iLSP+Xz8RFuvyUT1XLReWoZajvU8tX46wNRj6nmuk2PmPxctU/dxYtKTs4N5ocmNrd6u6i279pdfsGrtWqyWzx9//oEVK1ZZX67C/c+LFmHPvn32TFNj9BrZ5pdff7M+RhvuYXkWLVy8GBmyTv/99R4pVaYMPvzoY0yZNs0S5Cxetsz6ZJ12/7PcC7HyLFqz9lds3rLF6rPm11/x62+/5Rm2CSGnjo6bKleuiK8mTbF2rQYvx2nBnDBkm/XrNiA9IxPbZQz7q7RjzSehjhE69X2CtN+Roz9CkDxDv5jwpYzd9luZmlzt4ceexJH4eHshn/ndbPirg4Q8mHXGjCaoUy9ZdVhRzztt19rH/Cy///f0MyaYL1i4WMo7ZMu3yBhv+YqVueNfl4ew9jMaXkudPr6YOMHCIeoYedWaNVgj/ZOG2FGcfTT01s8LF4oguds8/w/L2HmhlLFCxP0li5dgxjcz8ezzL2DkBx+auO9x3iSWIeTUcMVtL4nffv8dL706FJ99Md68zx1RWh2htm3fZu183KefYY8YuZzwL9pe9J1UjXU6xV4FsoLvBPq3hqzTuNSLliyx97YTv0O5uUJUiNF9obRxNQJo+1Lju7Zrbffq9KGJqFXIe+6FlxAeGWF76nYasmbbjl3YIX3QImmzWlZIaChWiCj/hfRB6sCl/Yu+9z3z4kuYN/8nC2ujRv5Fsu+GDRvzklEmiXC5UPoWHXM650zODpoY9s1iEfCRf6+XYo5gXb546eT00WdzimgYms9F7+19Bw7ac/aTz7/Ag488hu3btyM0NOQoh0R9X9Ox96gxY/PEaM1DMW36N/hTBHnVUhJEYxkv7emp51+U9hNgr/KaR2rxkmUyBki3Nq7tcZII8vpb48EvkPaoXr4HpQ6aK+Jb0X40pI0a2RdL28vINbqXKFEcPbt3k/7oNXl/+O2E4W2cvkTfBRYsWiwGx1hrqzq2+PyLCdJ2D1v71/fBhx57Qp7ji12CplRY+wIdUySlpePrb76zcDual+Zw7BHMm/cjZsl7pE+u8UD/vuu+B2RskGXHTMw9H52hq9dY+9HtO3ZKH7Ui7zoScqbRVhoh96++T//488/SdkPz2q6K8RpK9pAYr7VN7Zdn7r8xNjWn5uSkQtuAW+UqNYqkDUvjer70wnOY8fVMzJ0zx5LfqeitQv0n48bgvvsfFJE9xl4snnv2aes0Vsmgo3WrVjaw+PSzz22q4VUiot0s1j/thHQwVLt2bdx/391iFbzR/iHffPN17BHRXa2CHa+8Ep/JfsuWr0S2HGvo0FdsMOLr6ycDo83muarTenQahdZFpwZqR/v++x+aGKYi+KSvxuP++x/Bvv37zADwxhvDCi1fjQ35sWReUhcVzvQlSwd+Ha+8HB/KS9z8+T+bYPPeu+/IoGqCDLQW2434olwfTVqinlBt27XBl19OMtFdhf6LRczXQaZ2nlrntWt/ESvs4yK4l5WHxhIR4ZvIjXsQz7/wihgZAlCubDk89LCIhmLc0Gs5d848bNy0CR9/NArX9rk+r57a8X458XPcetudNh3sQh+opaQk450PxsgAuPCwQjqYffTewWLIiTltY4UalUKjirtCVJwFtFpxyW6IS/l7D3o9g7SsFLzgcxmeSGuLWh5vY7J3ewT5uaNq7GR0CyqNEf41cRCxeD5lJ76Oi8GaShXg7ZmO9lv3Y319H4zZl4VbdmTA19sNf5ceRgX6EH8gxC8HZ+n081AhXGPonekylZMp10kMq97zp1uOlqEGyYLb6fLCyiX/Lu4WpzLZDMpux8z7zLbEkNruY+UFwE+ebWrwVdQw7KYePyIOOPGutQwNgabiuvbD2v/qt+MVoH1VZGSUDepjYw7LMzPIRDh9zqkRWQf8KjComJh9thsbIRcw2iajZeDvKWJ2WHjYMe1J273202mpybI+wsZJOv7UF1m33KnvOoYzwS63fWab9xlsPObMWkxJTUWSs498QmUc6+yjZajHb1Zu7gpzFpE+IVAEO/0dI78zxJAeIX2M83IQLWM+L+kD7EUm2xWzWhPGWUx6GXeGh/11Lq641lnWN/mIIKge+eo0Em/hJd1zt9FQXB5mNMg/U5WQoogT4kafldoG9X2z4D3tavsHzetcZ7o57cWEKnlOp8hHn9vuR4WW+qt8NYilJCeKUBZ23BnVxx7vkMV3Vm/Y/MdzOV+lWDtU8cERKHTdIXWskvIdj0LbVsYQ3vI+q21ZZwboucLyV8DeSZ3xR8F91TErTrYNdGb2neT4QWOo3yWCZy1vLwSdRWeuZalpmCr95JSEJFwIvBIVYbHnNTHso4cOg5x5VDvSUJMW8s3TwwxdHgWSOjvic4oIbPocz79e16mIrTqPKyeMh4n7GqYmPj5RNIMkhOqzP3cfbcc6Nrc2J3toW9ZxgT6n9RnurREW5O+kxIS8MYM6p/7w7UwLe3dxvUYWhuZEYnfe+4aUERgUbH1Y/rb61zgjx/o2J1eMPdfj42wf/9yxh+prGp0hWGfnSt1c7yBJ9uxXM2OwGOPVUVPDL+ffV1HnzfT01LyxB8cF5GzgRPTIsplp/oU+q7U9aLtwop+c+zrKmCL6QN6YOT9FWj1Vr+T2IjxfVKumKwag9Ev169fH2HGfWFwu5YYbBpqY//hjj9uAafwX4/H5Z5/ip59+tinA115zjXl879q10wYZmthHRe6EhEQ88/STWL5sOYaPGCEWRj9MnTIFn376iU1b1KDdOp1JO7MHH3rEOvClS5bi2Wf/h4lffmX/4JqxWhNm5MXpkx/xUq56uWun/tijDx+3/MI6Le0wD+w/gBHvjsz1xtiM3r16irVyPvTfNkkeEtrB6w3Xp8+15m31v6eeEsEl3OIfanxSXTds2OuYPGUSPvv0CxyKPmTXrlevHqhcuRJuvOlW8+wYM/YTfPjBSPTq3ROTxaqbkZlhUxo/+GAUFixYZIJhmrzcrVy5SgwFV5inmHL11T2xZOlyuZ677QHDjrdokJ6Rc1LZWPVRrvfeuhwZRLh5ItwjBJu8DqNtVnkMCiiPKHcfGdBkINEtE6lyn98aUQwVfL0wOz4N/tLbeHi64880i6WDk8vdniP3mXydfM6b0+ZMi/OnWuaJBPSTLed4ZVCcPz/R54cODE7k9aIG0YioqLztlfDcF2NX8kdXoilHiHe2cV6eHfxzByj6EhEZ5Zp2rwKbkj8hMcV5Qv4ZlkgtMtJ+F9aedJkK7fpx/lYvtoKzJ53xkwprBfdX9MXY9zj76DYF86lE5vYjOk50hU8LOmqfiMij+xkdh+q0/4LHdfZxz9c3aV+igqJz3ijkmhBSlNH7P/+zsrB72tX2j25Hzm8VqByRqrB9bRt/P/scb5vCjxdZ6PHyjwvyl6frCu5TcAyhBr/wAmMIZ9uC+2q7j4w69pxPxJCwEAwJDcG5oKmvj300JExRT6aqwrx+LLQNE8OeNYJyw4vmp7CQVDqudoTs/Ot1XVCuQSs/6kypuR70k38fZ2yuM3LylxEacnQbcd4VVEPq0K4tLr20Kd56ZzgSRf/xD/A/YZ9R8H2jYFs93jhDjeuRBfq0/O8X+uwv7D1Gz7WwfdUxCAg86vwJOdO4wkf55P0ubL2f38k/a881RTr+iFoe1Ttc43qtW7/e4mPNnTsPEyZMzO1c3US8r4VEsYT2vf569BXRumevXiYsa7gWFatnz/7BkueoIK9ThapVqYIffphrHu/VqlUTQdED/fv1w/V9++DKjp3suBq6RmN6qrCtU37U41A9IjTOn4eHV17s9oLk5P2fy5vhROWrh0ZBVOjXqcOaQVtfmtR6qsmH3Ap4HugNuWrVajRp3AgPPvCgJY5VFwj12NLOMiAwyLyjNA6aWjn1JathgwYWwkOnYwXnJkD5/oc5FnfQlZpQLFFpqVixYiWKFy9m22kcQ4232KnjlblCUTY6yu9JItbrAJMdb9EhQ7O3n+S2bmLXW5mzR2PdoLdnOYzN2ILAgAh45Hjg4yObEekXhp1Ix7T9e1DSwxNegX54+lAM+obrwzsL8xI84H6SpkGbQp/N+4gQQgghhJCijArM50qcz48es6nvOfD2OUtoaBs1bCgad56JYf+7qEbz+5/rUKZcRbw67A2LPU/NhZALhyLtQa9is8YJm//TTxZmRsV5DSGjMQBXrVpj26gQnpGRad72WbnJfKZMnY4dO3ZaOIAZX3+ND0e9b7Hou3TujHnz5+clYFWveI3Vq9OINc6m7vvxmHE2BdGmJ2a7ErHalCL1JnJzN5HacUX2yI0777jQaxItJ2u3bvJ35RdEd9PEuM7USJsSkev4nHPUdfHB1q1bcc99D6Bt2zbo1q2rCPX344UXXpJrs8O20X3tegB5U6qz8j3sVZDX9U499BR0vU7Zzh/DafXqtVZ3ncXgljs9848//zTPCz4sigh6X+W442SjvHu4eWJzZgx2ee3GDZl1cH/aAuz324sRfs3wSkB1Mfvl4OX4Pags1viHIorh94NxWJ2Ygh+rRmFbfDp+S0kV45r7SceUz86WumnoHd5OhBBCCCGEFEl6BP3lWaxhZ16KiUX8WZq5p17zKsz3DHLNVrpLBO5l+1JRFHk5KsLOR0PbTElIBPlvY7PWxODkzTAxhFxwFGmBPseyx3vDT6cYiVicnJyDESNGYvDg2y2GvIrLe/bsMS/1KZMnWaiXrKxME+3VS1y9wDW5x+rVa9C1a1c0adoYTz75lIWSsaSq+w/YNKJJk3TfUJsWrF7zOg3Ikgm4HT+5hdYtLi7OYoImycM0Q4T46tWrueIcyX9ZmVl/W35hHe7JxOuyuJ9urtkF48Z9IueSiP4DBqJv3z54+pnn5Hp4Wgx9Pc7OnTttB00m1qRpE0sMpMaJhIR4Swary/+aBuV27PUXw8b0GV/jqk4dLdbo9GnTzbOeD4uihTqpn2yeFo0vp4Ex3vZei2GeXXCtexXUj52GWaGXoYTcO/cfXonVh2OwrmoDtZCh167teLJ0EIKDvHDfxiRk5ya2yjlJxZ13EiGEEEIIIUUbDTfjoJ7gZ0ucV9TLXA0AjkBf09sLRRH1nNfrxtA2JD9MsErIhUmRFejVe10T1mgGeSd5ZkBAIOb9+BP69bse1/e9Dl98MR4j3x+Ft94chheefwGrVq+2uFldu3bGY48/ieSkZJsmpDHjR3/4Pr799jsTzXUbFdKHDnsDb73xOkqWKIH1G9ajVKnSaNO6Fe5/4KG8+GIqqDtatPaTIRYvzBX3aOHChXjttVewc8cO27569eomwnu4e5r3+YnKL6zT1VA67h4uj3ZXvDJ3ET0DpWxXEh+nPpqAY/DgWy2W2YKfF1qssysu74BJk6ea8K/i/EoxSug23347CwcPHhQh/1O8885bePrpJ7FgwUI0u/RSREZG4sWXXjGDhSY40eO7Zgj8ha77/vsf0KNHV6mUG4YNfd1C55ALF70DvNx88EHab3gqpxHedxNhPmsM6sXOlg7FHZlp6RhaphZqhIfjxd2bEJORjefLFsPm6DiMO5wKbzGYZVN2J4QQQggh5D/JuQjTkt8AEOxe9CL7ajJdJyTQi4djGdqGEEIucDzCwyOfQZHEDVnZWdi2fbvFj/fIFa5VoP79999RsmQJbNmy1YTuWd/NRpkyZVC1ShX7e8zYcYgTq72K1bp9dHQ0EhITMGfujxbeRj3vdZ3GqNe47NWqVUXFChUtBvvo0R+7RHZZr9OLtm7dLts5IWlcGYM3btpkXuiHDkWbd369+vVMyP7o4zFSRpqFn8kWRV299I9XfsEQNxaLOyMTmzZttvj0zno99y1btli4HKc+uv+ff66zBGS1a1+McBFKNSHusqXLLDmHl5c3Fi9eYkaIWjVrmKf9gQMHMG/ejyhduhQuvqgW9h84iLffGWEe8s5sgUQ71taj6qbXU2cBNGjQwOLe//rbb8ckOruQyczMQMcu3e27MDzlPpgza6aFWDp9S3cOfMX4hLM0K0GrFZ/iBpxC9TScU0pOGlJ9ktHNvwlyPOPwY0Y0csT41CagGD4oURe/xe3H1bu2YF6VMijj54Grth/GrkwxLJ3iZdBkVcF+Z+30CSGEEEIIIWcZJ466oh70F+oxzwQad/694pFmWFDP+QkMbUMIIRcEqgumioZcmD7oVrlKjSIpe6lIHB8fb2KwfpwwLLo8TURwFco1jI0reWkOkpKS8gQ+TWDq8nx3LdALo+Fo/Pz8pSwv80h3lqvorfs6oWVUaFfBWv/W46vIrWK8U5Z6r4eKpdsVI94tty5pJoKqx7+K2frtiNzHK79giBhXHeNNdDfBPHdfjfmuXvsmshaojxoYdBstysfH2xVeJ1+5Whc1FGhIGvXod+ri1N3lOe+e71iJdqyCmcr1eKM+eA833Xyb/e1eBD0UTpeUlGS884EYXuS7MHzluj5672BEH4457euisxZCo4rnzRQ507jLvbPnSI7cC6emnKsXvGdOJrb79EGotz/KJ32GdDGabS3VCsFeHii3Yz4uDvTF7CpVMfHAbvTZfQg+Gl7JMhzkiFEjFtluWRATENzhMnBl5WQhy00MVLrUI9yO4+GWjVKhbmCuWEIIIYQQQoomGyuWy/tdbdtOnAv+jWP+U1SUn166hMWdn5OcgjsOHAIhhJALA80HeiT6gCunaAGKbIgbFYJV6HZ+51+ugnF+0VzFZmdbh/wis/5WMd+1/9HLVVQNCgo6Zl/9OGXmL8sVBiYnb7kmstWPg1OWs83xyi+Iq47H7qvLVMDVRQXro+F7TlRu/mviJLs93nVyHSv4mDJU0L97yJ1YvmIljoiRIyw0lPHnixhq3PESlT418+Tj0CueIqiny7/1IPyMWf7X4PGcGghxz0KYfzH03fMj9qalY0HpysjKTMFd+2Lg6eFlnvcZmdHmRX9pZH80D7sG5f1qINzL34LNx2QlYHvyZiyKnYgVhz9DppTv5xshFcs+I8Ho9R7XGSZJYrzKzMiAjxitNH+Fu8XEJ+TcYtZzTRKekWl9efYZNsI5RuLMzCwLdca+mZBzj46f1MHBcXzIPosxl881ek46G1RRR4/CnEu0D9LZqTqG/LtzP3LkiOVHIoT8N3Ec1lKOM/NYl+k7/vFytV0ofFqymInzGnf+0UOHQUhRhu2akJOnSCeJJf8+QSIqfTzmE3n5SqM4X4Tx9XIJ9Keigutrto+7D2Yn7cQaz3W4x7024J2Cnw9vwfiY3WgfEYVKck+8eWg7orNEDPfyRUradjSMHIAh5YYhxNMfqVJImnySc0MqBriFokFQIzQLaYT4Ms/ize0P4LfUTxGFcvinCr2KJBrOqmTJkujZvRvKlyuHX379FbN/mGOi/cmIB4ScSVS4qlmjBqKKRWHhwkU2OD2TpIsRqkrlSjbzac3aX2zm2OmgA+eEhAQzNutMLLYTQk4efSFt1LChGKsz8evvv5/XYQAdI7YaFEJPYkyn29a5+CLdE3+uX39MH6PCvIaXLFO6NH78+WfLG1UYNnNTntED+/fDjG++MWcZJsAj5L+FY9BTka5xI+0zs45e7+6G9LR07Ny922aQ6+zwC/G985WoCNSU8ZaK8/32HTiriXQJOduwXRNyalCgJ/+MHJfXtb5wsjMtmlgIJM8cS/KLU3wf1jA37vJC/kT2L/jWq72WhlsS12kyCAwIjJC39wy8e1jzPfggLXULrq/wMfqW7IuDGUBMIWH7s6QayVmuj4ebP56vOhIzYlpi/OEbEOVV5ZgkxSeLivOHDh3C7TffhJdffhGzZs3G3n37cOcdt+PtN4ahx9XX4vc//rQZJLyPyblCRbArLm+Ptq1b47vvZlm+kDOJeqPefecdaNy4Eeo0aGwJ0E8HHVh37tQR23fsxKbNm8+4IYGQCxUzbsXF48ORI0zMrlG7HkqUKHHePme0jhEREejWpTOmTp/xt239yJE4vPDcMybMt2p3ue2bn8SkJLRu1RK9e/XE199+i/Dj9EE2+1Ve3t96fSi+mfktMrMz8sI5EkL+G2ho1np16uC6a68xY17WMcJ0jgXJ1HfO4SNHYtOWrRam9UJCxfmegQF54jyTwpKizrHtOuuYbS70dk3IqUCBnpD/OBrVyddbhYRTFwx0DzcPTyxJikZGQBa2ZMViY3KsLPXCZd5B2J2egm1pGfLyvRvXV/wYfUr0xf40tZbLAztGk+jCeqGCh1ajj+yGND+gc1hf+3tC9M2I9KwoRoFTF+njExLQpk1rvPjCc6jfqImIjFvMG1iT9/a79lp89/V0VK1V23It6DLL5ZCbp8LlPZxouSucqXeWg0LKDA4KMg9B3U/3iYuPzwsV5SFGgfxhthJEjNWwOrqdEwrAyWWh3vt6XF2v3s70UP5voHHnUpNT7d5Q71En70lycool9HbCrGlIJg3DpPeNhazR+00GsnoPatiooOBAG9zqvaT3joZN03u1eLFiuP3OIcjJdolurvBs2SKaaYinTHj7eFuIp7/q4/Jycaag2n0s5Rw6sB/333s3PvtiApYuWYzwyCgT7pKkHK1nYm7uEm0PTv4TLcdL2lhgQMBR7UBD+qSkpFpidyfniqLtKO+84hNc4d+Oc140opGigj4Tru1zNTZv3WptrXvXrpgzb57d+w7aLjKk71fPMb3v8+ca0ntdZ69kZWVb+/f19cl7dmg71fbkIc+qoNzwhE4b1u31mZX3DJM+xi83R5G2Tz2Oiura1jw8Payd6jFjY2NRo1o1vCTPyjFjxsAvIPCY0If5iYqKRMfO3eQZno1i0t9o/+XMuMkQYSlL+pm0tHT72/1EHvG6LifHDASK1lH7gwB//6McQOy85ZxT5dy1/oH5zlv30WX60bxSISGhcp6uPlXPP0cGO9pf5c9BRQg5f9B22aplC6xZuxZjPvn0qH7SIVnGHddfdy2uaNcO69ZvuGCEPI05/27xKDSVPp7iPLmQOLl2nSTtus8F164JOR0o0BNCXDkMfIGEVLdTFuo9st1wxD0Tz6etsRfwagGhCIMHSrv5YH6qCGuZ0WhYbAD6iji/L82VlDZ2qwjvbwPVuoqBILPw+niIeL/4dWD1Z8BVkX2xLXURfkmeBH/3U/cyzkjPwNBXXsILL72CbWKZL1WqlAl+kTIg/mLiBNx88w146onHcd8DD6BHjx5Ys2atCSv6Iq8iSNvWl2H1L79KOekuwVReENTDcP5PP6NC+fLw9fPFunXrcfcdgxFzJBaTp06H+geoEUAHJoeio9G7Zw/UqlEDi5Yswdx5803Y0BPt0uUqfPXlZLRr1wbVqlTBZ+MnmIhP/nuokKQid4vmzfDzgoV2/6nYVrdObZsS+tvvf6BKlUoI9PPHxi1bcO9dd2L3nj34avIUE/gH9e9ng9ovJn5p++m9WkPuubDwMLun9W8V9Hp07YKKFSpgtQyWv/9hjon3KnAdPnwYF9Wqhcvbt0NqehrGj59odRowYIC1yerVqqKfHGPnrt3YLEauKzq0w+Rp03FN714irPtaaAo1GnS84nI0bdzY6jt1xgxERUba+alHf5OGDdGiRQvExMZg8pSpeQJj+fLl/jqvIX+dl7uFvbhezssn77w4Y4sUBUw0lmfFww/cj4cffQKBIg4/+tAD5pnuzNbS+1tF8XJly+HWm26Q9pOISVOmmFDtxGvte+01KFaiOObMnWczvULEoHvw4EF54W2Jli2bY9u2bZggzxDNgaTPtSqVK5sQvVaeWSrIq/jfrnUrbNy0Gfv270fd2rVxJD4OMTGxePD+m7Bt+3bM+Hom3MVoprNt2rVta7N7evW+Wo4VJO36W5jnaiECu7bHBg0a2Po/5RnoKceLjYnB1b16omqVyvj0s8/l/I6cWJwvcM2OyPXo3PkqVK5cCV/P/BZbtm5DqBiu7Vl66BCaXXop2rZphZ07duLzCRMRGhZmxu2mTZvYtUiUa/jwg/fj08/H2/YBcq3vuu1WeInw9dlnX1i+JL3+NIQTcn6h/WFIaKiNHTRHlD7rtU9IT1dHH5fXrX+AP6Z/MxOeYlB0xkhqXMyfe66oUUbOI3/MeYrz5ELi5Np1wAXXrgk5XdxBCPnPo8++ID+cHvriLS+6NRGMZ/xrY0Pxy7G01KXw9PHDriyNY+OOu8u9joPpLs/5hP1Az49d4vzcJ4G3qgIj6sh3ZWBUM+CNKsDQMsCfkwCfIJegHyPP776RQ21y6+ng7eWJcmXKYMWq1fDPF2tev339ArB46TLUq1sbqUmJGDSgn4gW95qooCKJejNO/OIzdL+qk3nlqWBSt/bFeOeNYTh88AA6XXkFRrz5Br6dPhVlRPjv3/c6LPpxrpWtnwMHDmD2NzMw+JabRPRIwGsvvWgizUERDnTQ8uF772Li+E/x3NNPmbcgRYP/LjogrVChPEaNfBdJiUm2TL3H77z9Ntx4w0Ac3LsH7du0wYh33sSXn3+KsIhwPPO/J/DCM0/j/XeHo3mzS9FKhLglC+a7hC4RxLvIffvU44/ab73ftqz/A13FuOQlbUK9ZN995y0R6mLs3lYh/OupkyxhbcXyFbB25TLbp60cU41QlSpWRId27VFa7nMV3Ue8/Sbmfvct7hDxy8fXGwf37cGYUe9Luc8iUdrSHYNvxaj3RoiYeMjEwLGjR2Gk1DM4NFgE/EZYvngB/Hz9TJBzzmvi55+IQaHAeYnBws7rZ9d5sY2QooA+Ky4V0TgyIhLzfpxvoVuqiGhdTwxu2tadNtpG7u3VyxejrDyjLpZny+9rVppXe2pqCtYsX4rr+lxjHvITPv0ENw8aiK2bNuHlF57HmI9GwUu2u/nGG7Bw/hx7ZsVJeWoMfvThB81rXVHv8XfeesMMffvleTSgX1+8J+3+yy8+FeE7GA/L8+7b6VNw5HC0xYtv2LA+cqSNtbqshXwuw4lSqMfFxeP2m2/E7bfcbH2V5nmZKc9CPb6HuwfGfTwavXt0N4P3yaAGvi+kD+hzzdX2zF6+aAFaiyFCDQYHxCjx+GOP4JOPP7R4tZ06dcQ3Uu9oeZbqud539xCMeOtNzJn1LSpVqIgUuX4lixfHn2tXobz0q95e3li+ZKHloUmV608IOf/QvsddZxDlzv7RGYQli0ehZs2aqF69un0qSz9avmIF+12zVk0Uj4p0zQw6i3kr1MO9Z1CAfZ9JmsrYanrpEhTnyQXNybRrHR9VqJi/XUed9XZNyPkIPegJIfb67S1jzkDvHCSmuzT3U9pZ/k9D2EMGlyuTtiLFMwNxbhl4Pm4rGhbvj2AvP8RIuanyjn5xL6BCG9eu3gGAVyBQuj5QrCbwywTgsoeAtZ+KMO/5V1pYDcMT4uGPJoEDsCJx3Cl50avIXqp0KfNm37JlyzHT5lSo3LBhE67vcy38A4PxytDXMXnC57j7vgeQIKLCzffcjY0bN6J37154b9RoEwdvvGEQxn36mYgTCYgXYbNsubKoW78h9u0/gKyMdGzbsgnt27XD5+Mn4J03Xzfx8yoRSt08vPHKy69g187t+PTzL0yk0c8SMRC8/EovhISFWbJlCpD/TSzEjdyvGr5BkyY5yzSETHJiMkS1M6FLZ4C0v6KjedF+9NHHIu4txX0PPoSRI0dCW836P/7ElVd0wNhxn0lZGkInyTxStKx6jZpi29ZtyM7KxAsvvIDDhw7i4UceR7KIWU88+ii6974WC+bPg0+AtIXXhto+/fsPwIKf5mPSlKkYJQK8f1CoiYwamundke/jq6++kvbqgfulDjrYvvji2siSW/i5Z5/F2jWr0VqEvpWr1+DRJ5/C9m3b7PxyMtPw7XezzTv4xddeO/a8Pnad1/0PPIT33j/6vKbP+OaEYTcI+bdxwpc9IYLyKGmj6p2uL6gfjRlnInOf6/sjUoxcIUHBmDThC7Ro0w6rVq4yb7EXXnzZxPbpkyZiybKl6NO3H4KDQvC8LNf7vreI1yqyV6pcDRlZWXacuXNm473hb2LAgBssXJqFzcp9kGsYrCT5OyM900TzGDGIlSpZSp5ZDWTbVDwugtOBvbvQtOkl+PjjMfj1198wVY59x+A74O3n75phc5zz1PPSkFlKUnwcHnjwQZQsURwX1a4Lb19fPPG//2HFsiUmrp8MGp92wYJF8jx8xcYh+2W/e+65C1/PnGnGxhsG9EflqtXkpT0VOVnpNhvhxhsH4v2Ro8wArrMH9Ly0r/SQ816xYQF69Loa38+aZS5J8+bOxej330W7Kzqd8Zwf5L+BGq1VNErKve/VoK0eoc64zTEi68wYHcPqmDM4n2OIU4aOCzWRu25fMDfDuT2GOgO4/aNj6CwdnOR5nApq5GwuRs4+11yD9Mx0FBrhUo6r/caEL7/E4uUrLJTXmUZF9Fciw01EH+4Zh+GxcfinqNA/JCwEA3OvyZzkFDx66DATwv5LFJV2a2Hs0tPl/TRB37xtTKDh8863Y5yIU2nX46VdLzlL7ZqQ8xUK9IQQI1MekKEimCel4xTJMdf4hTiIvp5V0QjFkeObjmiPJOw7kIDu5a5DqpMPRo7hXUBXk3dshFcCavYGFr0J1OsPrJum1vajt0uTw9QPuAbLEj7GqaDC5AERzvUFoly5cvj9jz+OSj6ncXIrV6poQoCHDAYWL16ClNQ082qcLS/1t958Iy5r2wGLf/4RNWpUx5bNm9C1y1Vo1rI1AmTw5efvjzVrf8GBQ9EoXqKEeSNv3LgJlSqWh4+nu4iTLbFW1j/08KMWQ1jFVo2h2+zSSzB79mwbvI2f+BVKlylj9aI4T472V3U7aoneQ3+uW4dYMQ4VF5EtRoQ8vWe+m/2D/F3a8iVs27ED5cqWFbE/Xybm3Pjv6oly152DESHioBqv9F4sXaYU/ly/ATO//Q7jPxuHd0a8ayF21v7yG4oXL4ZgGbxbzHi51wNDwi1OvM660fJmfvctypQvb/d9h3ZtsGvXLtx9z/0IDPAzw0CmGO2aN2uGhUuW2jr1er1IRPwc6QzKyHFVJMvJyDzueX37/bHnlZFB7zJyfqNtq0zp0mgl/f911/czT3dku+PFl17Czm1bUCwqCnEJCRYqTcM5/bL2VzEkl7Z9NR+DJkxt2KCBGMyuQbHiJax9KBqypVuXLvha2mqaWMGipBwVwkeLsP7ayy/BX9rdsWK6tDZtsLkrNIzWnHk/IjktHVHFi9vslt27d6NixQpYtXYtQkNDLF57QHCIvXSfLNmyj57vhC8nwUeEfZ0Jo7NjJsrfXTp3Oqky7Hn45VcoVaasvcRvkGephuTykHO48sor7FrdJoaDoIAAJCUn2bk0bdgY72W+ayLCl5OmiLHQy8La6IwfrX/NWrVwabNLzXMvLS0DF190kc1QIORUUWFKhS0NHXfbTWIMk2fg8BHv4bA8/5zcQhoWLk3GkI889CCqVq6EKWJEUmN0ZGSEPdNUHNOZJl3F4NRZxpJbNm/Fm+8Mt7jMWv75doyHH3oA1cTwdaaOcSpoPTQk3pwf52PiV18VHrtaxhnXXNMbLWW7xctW4ExSUERfJtdjSkIS/int/f3wRESYCf7Ki4djMS4+AeTfo6i0WzWolZAxwdNPPGai9chRo7Fx82Yx9gfZc/58OMbfcSrt+jLZbskZbteEnO9QoCeE5CEaHMLkORmd6Ca/Ty7mm27l6e6FzxL24GKP31Db2weeorqPSjiIVHdvVPGvgvR8z+ucY5O3a4Qc5GTmRsvJXa9G9fxCQ7ocqLRXDdnm1LutlLQ07NfYu3VqY9nyZXmDJYvJLSKAxt1d/+c6S0qn8bA1rm2fq3tj69bt5uG+bctmTJvxDa7p1QPzf16A7SIUOolmNYllusXKy008pwMcKVfFCk1Qp8lmU9NSEa8ejCLa6DGHDnvTYgl7WpZccPrefxbXPZIjQpvJ8HL/6P2nQpIKZK4tcqyR5eTeIubZIgNj88iV7Txzp1tnixDubolmpT3quqyjB8kq+pUXcXvh/Ln45LPPLR61xpzXe0/LUQ+aex58CJ07XokOHdrh3ruHYKcI6l17Xm1ivN7TGfmmXWu99R739PTOu+/1flbPXQ03YS8CskxnmvwmRjFtR9/NmGahciZNnirHjrZY0TlafXe3UzsvNhdyHqP3snqW3f3k4/Yiu2Xjerl3Pe2+VeOSvuDeOHAAnn7+BXiLUKxivjNjxnkuaZPSb0326pYvpIIruau7JVq2viN3unhGhrYTFZ3dTHx2tX9Xu8qU3565/YpTv0wx3un2ruO5HRU6So+RnZN9ysZidw83y0WRnpFuz8XcgyFdjnWyEWR1u+zcRLM5cPqZbKunl7eXxfRPVK8+fb7KIaZ//Y31ZT7+AS5fATdXX6Xb+/i4ZsupF6DGtbUuVZYPufd+MTYGgJBTRZ9jOktj9swZ0jYzrQ1163wVLmnZ2tq6h9x7OkNFwxpqqKhUeaZd3bsXbr3tDkyZMcMSnWsOhL59rsV7I96x2S8+nb3R/NJL0LlHLzO4/bvHaHPiY9x+h4lxxz1GMzlG9xMfAwMHnvwFz+0HksUY58SuLoj2n+q1nG1bnrlY1SqivxoVgSC5FgnSebwTe+Qfi+jqiX+XGEA1Eayigv9LIs6vSz9lzyhyBtGnVVFot3qv63bff/e1OcwoPbp3Q6v2V8g77gH4yDPyfDjG31/wf69dE1IUoEBPCMlD3+mD/eQlJCMHCenyon+SCWPlvRyJ8jAdl7QPE7xqYkFmIsbG7oOPmwcivIKQdAKHV/Wo3zof2LUcCK8OTOwDHPjDFfJmjxrNc6vgCnMjlXM7dc83fTl/9oWX8dYbQzFx4kQcPHgAXl7eSElKQsuWLdG+bRtUv7hOXiK60aM/xo8/zLap+599MR5evv4Y/fHHFk+3sgzAVHR0EsAqJqAUIhomJ6Vg/cYNItJ74X0ZDHkHhiA7IwP+/r4WTicwd/Dj5s50IP9F3HLFK00emZgQL/dkBHbv2Wten1kZqZBxNDJTU3FJ06b4euY3uXu5BLy8283RwVSsy/yrvRZsuRmpyehz7dX49fffcefg2+Hp7YdKlSvJveift7GKeBrG5qtJU+AmlrKdO7ai4+Ud8MUXE0x0U49gDWORIe3B5WnzV/kavuPXX3+VAXsDjBr5HrwDAk1o8/H2lPMLQYnixdG61WWIiCqOOBHmszPScN/dd9t+/+S8CDnfsNwm8sJ51x2D0bJ1e2zatEHam+sFNF3ac4OGDfHNtMkY9uZb+HnxEnxQoQJKlyqJvXv2yXbeZpTTF/p169ebh/2iRx5CcGikiPAuEWfJ0uUW4z1VxLIELy/ExRxG16s64o8//zDhXvOetGnVyvoUtYhHivFN49un5YpAJv67FXxm5YbD0anvIkJpqDU3EeljY2IRFBx0UonacrJysHz5clwlRr7nn3tBzsUL8bExuFL6EDW+nQxaC0ecR77fGrt21co1aN2iBcZ8/BFyNIu8Gu3k9T0kPNJe8p3tFX3h/0OM7lrntb/8gjWrV8HLz18M/xkICQlEWHiEGRgJORV0JpfmGdLn1pE4V16FYlGR6CpC3GfjJ5iBqs7FF6Fxo4bYt2+fy7AtY74BA/vhyylTbHt9Lt5y042Ijj5k4paWpQmOVdyLFqP5v3uMTic+xgA5xuQTHKPJ3x/jRGgXo04KKnA6bdnx+sUJ+h8zap6h9qxe86+IMK8CvaIiuoaeOd248E7s+nYy1nKE+TMl+JMzQ2paehFptwm4/ZZb7B1BZ9M54Wn6XNPbQuPlBAadF8coyPnQrgkpSlCgJ4QcRWYWEBXshqwjOUjJdJMX+b9/OOrz08vDE8szYlFp/8/24qyidE5GyomevUhPApL2i0hfSb4PubznYzYD3d6XQW15YNptsi7kr+21qNNxntWBxsSvJqGxiIeb1v+Jj8aOw779+1Gvdh1069oZ1w8cJAORaISKKKFs27ETm7dusaSZVWpejCgZZP362+9m0e/cqSPuHHKPvOQHm5ekeuPrdHtHaNRvDRGg0wID5Li33THEkmFOm/41vp01y5LW3XvPEDRr1dYMBCqKcvjx30TF8e9/mItn/vckXn35ZcyZNw8/zvsRW7duxYxp0/DJ51+gd8+edk8FB0tDyM6Ar9xXmrjYvEq1kBw3V3z53DJ1eYjcx376cikDcef+dPfysXvwwfvuxTPPPY+du3aj3/XXIV0EKxW/UlOSsWLRz/hiwpf4Y906NGpQ30SuH39agAAxIEyeMg0vPv+sDdgPH47BnyIeqmjnxKLSUDXPPP8S5v0wCwsXLcRnUnetx/1yrw+86Vb8NP8nrFi5El/PmI7XRZjs0a0byohoqOeD7Ez59jvp8/o7oZCQf5MjR+Lwv8cfwZat2/C7iOYlSpT4y5gbFISly5ZZ4uQHtC0++xweeewJLFu8UH4/by+xD91/H1q0boO+/QZi9Yqlds+vWLEKN8gL8Lx58/Hcc8+hZ/euWLhgPka89z5aNm+OTp2uRKOmzVGsREl8M3OWJR1Xg/SWbTvMiy9ehKDAAH/LPeHycMuxF3VFPfr9ZZ23GBE0lqyGgdPZNZ+MG4NFi5ZYOJz1ch7uuTO+HPSc9NnvlKcJ2N8a8S6ul35l+rSp+HLSZHTseDkqV6yIvfIib9dGRKksedAf/RzPMQNGhLRvV5vPnU0gbV7ro6FrfPwCMGbcJ+h4ZQesWbMaI0eNMiP7kMG3Yegbb+Gj0R8hRI4fINs5swqyZP9+g27EUunXXh36hvR5O3F5h/aW4Lprr6uPibtLyN+hod527tkNb/X4zB3z+ci9u3P3brt3NafR3n37kWEzVNytbekzToUspw/Q+3Lvvr2WENE1E8YlcB2KjrYyLvRjnEjmVuNkrPQ9mp9DPZKd0F7nikEyrh8SGvyPveZr+nibGJ9flFe0zLEi3mqZjDV//lBU2pSXPA937N7pyqWmM21tppgPdu/eI8/n8+cYBbF2HfPvtWtCihoe4eGRz4AQclroNPGOXbrbd2F4ioA1Z9ZMS9rmdtphTOThFxB4QivzmcZeun3Vk14Fe7eTThrr4aZe9x7wzA1Dk5OTgtZRt8PH3cdEt8w0oHgtoHxL1/bhFYFGNwPRG2T5xUCnYcCl9wChIs6PbiGDpgDL9ZZbtoj4OQmYH/c2vNxO/eGuIsLkqdPx86JFqFalKqrL588NG3Dn3fdi1eq1IjCG5Q0uNBb8li1bsW79BixbscIGHzoQ2bptG1auWi1i/R82YHG8+zS29oZNm/MScar3o4oc0dGHbb9Roz9GzRrV0bhRY7uWDzz8qAk0Xrle+MvlGI6oQP476P2ihqIlIth163KV3F/bRVDbZh5q5cqXQ/Nml8q9Mxrfz52LAwcOYvvO3dan7JGB8roNGy18kt1QchMuXeGK0WhhMTKzLITSPhHT9Rh6f+q9Gx0TY0kVr+x4BSqULy/34WOWWFE9TDVZ1A9iLGgmx2zauBEyRLi/efAdNoDXRFeLlyy1F43LL29vCbA0eaWGhFou7cEzN6eDhpT4UO519Rpq3ryZie6a2PKXX39FqIhhY8Z9itKlSqFd29aYNHUapkybboaxHbv25J3X+vznJSxdfux56bXw9KR/ATk/0Vu3du2L8fGYcYiNizvmXlURXtuETiffKM+ZhSKCb968GZ2uvMLitj8tBrR98gKcJOMGNXRpbOXatWvh+znzzLgcIft9LG1Jn1nt2ra1sFKDbrpNxhnJCBChPfbIEUuk3LJFc8uv8sjjT2CPvJD/uW6Dxb3X0FMbN22SdrfL2porzFW2CN9rzXteX8DV469+vboWl1496gYM6I/WrVqhbZvWeZ+rOna056O+3G+S+qvRT5+d4z751MLJNW3aGLO+m40R74+yfBWrVq/Bww/ch85XdbLZNE45na/qaF76+lzVYy/L1+YVfVb++vsfZhQf+8lnFi5IY92rl/97738ghu/ZCBRxPlOMD/rc3X/ggF1zXxHGfpP+Yo5ct/bt2pgg8dvvv+PJp55lkmlyWuhMjeVyf17SpAlq1aphsZM/lTb6/gcf2gxMJw61Pte6duksRrEAe8bffNsddj/rR9vcosVL0Kt7dzGoRcFPnpP3PfAwfpV7Vx078o7R9Bwco0ljOUbNkzrG/lM8ho6blxVyrer89lve9Rx+5Ohkq2qI15jd/fv2RbmyZfDTgoXS1i+zxPGbpa/UmasF0f5HvX+LFy+OxUuXuhwHCqBx5I93zPx8Wao4fJxZOPJdydsL7aVP1dA0JrrLdxnpo/S389H1HeRzVWCAHeeh8FCLWd9SRMgyuX2/euE/digGTx2OwXL5nUYng/OKM9umzmK7lfv/t99+R0V5P2gsxwmQe06N9hou73w6RkHOVrsmpCijbSk1OalQ7cetcpUafEoQcpqkyAvxOx+MMe/TwvCVAdqj9w5GtAzK3E8zjIm+OIdGFc8XCuLcoP2Fxn+Njs9BQtrJx6TPT0ZWNB6u/B3qBzdCchaQegSo0wdo8cjR2+1fC5So5/q9eykw7VYZHAeLkKHP7NzD+srlW5eyCiMPXIEgjyicDtoJalJM9VxXI4TGBAzU6fuenkdZ/vXfSpO5ajiC8Ii/EuvoFMbMjHQTUZxlmkxH43uHiQDpLNOkeypW6gDNvAwt2/2RvJNRY4EK/DZoiY6WY0TmxRMm/y3svhKBTWMrqwe5Ckd6P8XFxVsc6IDc2RnZNjMj1LbV+9K5BxW7hyIjTWjTe1zjQ+ogO0jKsu1z709FEy8myjJFl2kSRxXPVdDS7TQmpcWulns1WAbjnrltQ+t5RIQ/jaHt6enhimUZG4OIyKhj7lvdzhU3GnZO6i3j1FVnnehvnT1giSvlozNcnPZW8Lw0ma1bgfPSa8JkyuR8RduKvoxqmJvC7lV7vmhOEnkBddplvIjgrjAwOdYHOHlSdJt4eRkW862J1yEhLqFJ1zntzNqQ9A1e+dpq/nau/Ya2a62Llhtn5cE8zvMnjdPjqqimZehssTgpP1Pae5VqVdGwfj2bbZMf7QcWieFO27QOGLS8vH31GLmedfpinZIs/ZsmdBVBUEWA/OFl9Lx27RHjnBjE9Vzzt3nX8zpZnpGufkGX6QwFnSqvJej5BOYmmNN6qNE7MN81tzLkWuhz2vJkyLnqTBw3Nz5vyemh943OMKlbu47cV4lmVFfPUOd+0vak96K2bU1UvHzlSnsWO2M+p33qvd24YUNs2rRZ2n+8tW2njAv5GIcb1c+7ltW27Tzq2loumrR06bOCrR/RUCE66+83EfVnff9DockktW1rGK06tWtb2LDCvHM3Vix33GPmRxO3Oglh/wm7pe4qxC9PScWc5BR6yxcBikqbUnQWa1UxOJuYLsJ6ZO4z03n+/9vHKMjZateEFGXc3OS9OvqAfR+zjgI9IafPhSzQO8g7OOLk9GKTYSKBu9vJdxlZWbG4JKI/HqowFDHybp+WANToBDQXgT4zRV7M/aV8V4QLZMj788HfgIn9XJ71Fmo+36FCPIExhx7G8sRxCHAPByGEEELOHq6Espn2cl3QyUdf1P1z86icbFkqDBQmjOusAp98eV0IOZ8xz7dUV3gI70LuW2cmpRq9fXPzIxRWhrYH3V9nnhRWxoV4jA0VyuatK0wsd/oc3V7DYTxw/71Yu2Ytfpg7r9D+JkmMf5e3a4v69eph6Btv/iOBXuPFTy9dEqXlxUc97eckpdgy/bu0l8sbvnSBGVEam15D18Rr3hAxYurfFOSLJkWpTen+TviZ8/UYBbcvrF3rzECd+VeQk2nXhBRlTiTQc444IeSEaEx6TRwb6CMifZLLm15f1N1OQqj39AjDipjPcKTMs/Bw94dvMLB5HvDHDCD5INDnS6BkA+Czq4DEA4C7NxBRBSiYtN1djpeQlSzi/CcU5wkhhJBzgL6U68u7v/8/fzl2POpPtJ6QooAjWjm/C1uvQtTf3e/O+uOV8V84RmHbe+SGzdNZdpo6XoX5NBE9neX50eW63hLK45+hwromhP20ZDEMCQ0xgX6ZlE/+GxSlNuWEfDmfj1Fw+8LadXpaqs3GK8iZbNeEFDUo0BNC/pasbFfIm4ggICQgB/EpIqin6gPXzZW11S2n0OStulT3fXv7A3i+6kgcSAc85HnvHyadj4jx8buBHx6zXJYIKIFjhHmHcHl2jzjwINzy0sTycU0IIYQQQsiFiHrdLli4CH2u6Y3LWrQoPBeXCHga3mv8xC8tzN8/RQV5TeKqoW4ejwhD/30HQAg5c2i7Xijt+tpz2K4JKUpQoCeEnBT6/MzKcXmzhwWIaC6f1PQcpGa6QUPTZmTnyHr3vOesu3nZZ8PPNxy/pXyKGbEtcVVIX0RnuiR2bxH7F7wu336uMDfH09zDpZf6Nu4LLEschwjPirJZFgghhBBCCCEXJv5+fliybJklug8JD0N21rGhY9SLN+5ILHbv2Wset2diJs7w2Di0l7Ka+vpgYEgQxsUlgBByZtB2vVja9c7duy0nTGFx689GuyakqECBnhBySuTmdTS8vQAf79w/clye7U42atfDVH9no5hbeXwRfQM0ylYnEeljsjSru+wb6BR67HFU4FfP+Zlx4/G57FvMsyrFeUIIIYQQQi5wnDwXBw4dwt79+4+7nbu7xxkV8QqGupmblGKJXwkh/5y8dn3wIPbu23fc7c50uyakqECBnhBy2uQX649aWIDsnGwT2MdH34KtaQvRN2IYQjz9kSabpmfretd2HiLKe8nHR2POZydjxIGHsCxpDMV5QgghhBBC/kOoOOfp6Wmfv9vuTJI/1M3LUREMdUPIGeTfateEFAUo0BNCzgkqsEd4VcAvSZPlMwVNAvujrv+1KONdBcEeQeZrH5edhM2pG7Em+UusSPrEtP5Ij4rIpjhPCCGEEEJIkSUhOwdB7q6ZtsHu7uatfjYp43n6UocT6oYRsAkhhJwrKNATQs4ZOTnZ8HcPt8HussRPsCRhDDzcPEW897AEsDkixefkZMLdzcO208y02Ti7g3dCCCGEEELI2eXP9HSL7a5oEtYRIoKfrfAxagC4Kywk7+9lqWk4FdR40GbXHhBCCCHnCgr0hJBzjk5YC1AB/qS2JIQQQgghhBRlVJBvWrKY/e4ZGGCfc8XUxCQQQggh5zPuIIQQQgghhBBCCDlLaGx3DR1zrtFjTklIBCGEEHI+Qw96QgghhBBCCCGEnFWGH4nDnsws9AgKyAt3czbQePcaUke99tUwQAghhJzvUKAnhBBCCCGEEELIWWdKYqJ9CCGEEPIXDHFDCCGEEEIIIYQQQgghhPwLUKAnhBBCCCGEEEIIIYQQQv4FKNATQgghhBBCCCGEEEIIIf8CFOgJIYQQQgghhBBCCCGEkH8BCvSEEEIIIYQQQgghhBBCyL8ABXpCCCGEEEIIIYQQQggh5F+AAj0h5z1u8h8hhBBCCCGEEEIIIaRIcgJxzxOnQWZmJs4Enp6ndXhC/nvk5IAQQgghhBBCCCGEEFL0cDNtr3CV/pQV8oyMDFSrVg2VKlWw36eDCvPbtu3Apk2bKNIT8jfkSAPWtubp7Y2c7GwQQgghhBBCCCGEEEKKBm5ubi4dXUV6t2NF+lNWx93d3VGxYnmkpKTgdFEP/EqVyptATwg5MdqI05IT4e0TgSwQQgghhBBCCCGEEEKKCm6ip6cmJRYqziunHINevXmzsv65TJiVpZ7ApxZZW4XK7JxspKamIjExEcnJyVYfN7fzN0K31TnbVeeihNY7KSkJ5N9H/y3S0zOQnBAPDw/P8/p+J4QQQgghhBBCCCGEuIR5dw8PpCQkIDMj47ia3il70Ksgrh8fHx/7Ph3UCz8lJVX2V5He46T20RNQr31vb280bdoE5cuVQ+yRI1i8eAni4+MRFBRk9dFtNGyOl5fXadfvTKLifEBAAGrUqI6NG8/OjAFHTPf19RUB1+PMnLcU0bZtGyxbthzk30fbTKoYpLQx+wYEuu5vCvWEEEIIIYQQQgghhJxXmGInmnBGejrSkpPsW8X643HKAr2K34sWLUHZsmVO25Pe09MDe/fuNzH5ZEmXEyldujRefOE5rF+/Hnv27EXt2hfjhkED8fnn4/H1zJnwFtGyYcMGiI6OtvXnQ3x79ZyvV6+u1PtZdOnaS65ZpomtZxKNYdSiRXNs2rQZcXFx/7h8NSrov82999yNvv36Iysz64zXmZw62pA1PFTikdjcBSCEEEIIIYQQQgghhJxXuJnzs6Pduf2NrnpaMehVdP7zz3V/G2rDceT28vI00VcFfd1HPbw1VIev78l74asI/cLzz2LM2E/w9dffwN/fz8orXbqUJa31kHrFxMaiZ48e+PHHH/H7H38iLDTUPO7Vu9zPz7V9WlqaebQrWqfk5BQL/+Pr6yd1cj+qPrqtCqIqVuuMAa27fnSZlqVezBpmR6cq+Pn62j7qwa9l6PH0Wvn7+2PVqtVo0bIVQkPDrazU1DQzUjizAnSZb+7+inONdJ3WUctyQgvln7nghM/RmQSDBg7AW2+/g507dyI4ODjPOKGGDf1oXfQY+f/NXKFTjl3vbKMzE/ROcv52EhrodXFzc5d6+RapcCtaVb32ip7r+TDD4lSx603PeUIIIYQQQgghhBBCzl9OQb47ZYE+I0MTvFZC1aqVTag+ESrMb9y4GVu3bjOhunnzS01gVEF627YdliT2ZLzcVYQODAxAgJQxf/5PCA8PM3FciYuLtzA3Wn7jxo3MQ72UiPbt27XF4ejD2LJ1q3nVr169xrz+1ev+++/n5IndnTpdafWcP//nvDAxKtwmizjesH59lCtfFrt378aKFavsGHrOUVFRsq839u8/gK5du5jHvtZBRe42rVvBU+q2YMFCE7P1/AIC/O24f4jRQMuuXr0a9u3bJ8f1RseOV2LH9u1YvWatla/XR+umQnKrVi3tXOfPX2CCfkREuFy37XkzD1zivS/at21rMfnVUBEaEopdu3Zh/4EDJvBXqFAeDRs0MM/6+T/9bNfNueYJCQmFri/MW17rpccoW7aszQjQc1uwYIHVoSh412v91eCgMw3UwLR69Vq7p4qiSE8IIYQQQgghhBBCCLkwOGVl1c0tR4TgyiZyqlh9oo96p1erVsXEXBXHVVjW37pvpUrlT/qYKgDHxydgpwjld915u4jCWSYuq+Cqx3F5n+egXt065jFfvHhx+128RDER3RNx+2234t57hmDw7bchMCDQxO+wsDC8O+IdFC9WTARrL7w+7FURw8OtfipsvzfibXTo0M48/VVEf/LJx+yYGju/rpR926234IEH7kVQYCD697se119/HW6//VbUrFUTF198Md54/TXzdFbvdD3WQw8+YOetZXft0hmDB99q5+IrRoKbbr4RQ+66w8rPzs4xD/W33hyKtm3awFOOf9+9Q3CLbNNJ6qEe+w4qjnt7+6BuvTr2dzm5xnXr1rbziI09YkaKF55/zgwRDRrUx3vvDjfxX/fTY51ofUH0uG3atMaTTzwGfz8/FCsWhbfeeiPP2/98RuuohpyWLVvgiss7oHu3LmjW7BJbxoSrhBBCCCGEEEIIIYSQf4vTSBLr8qJ3UIFTPbJVpFVhN7+46woHo3HqXV7hrqSwLnT5qYijGubl6aefFSH7Tnwybiz279+PLVu2Yu68H/H7778jJCQEr746DEOHvoIlS5bi669nmse5n7/LS/pQ9GE88+wLCBRBXQ/7yssv4rnnX8SKFSv0rLBmzVrcecfteEqOoQlnH3n0CTuG1jM7Ox1Tp0w1z/w9u/cgKTkJZcqUxqAbb0bM4Vh8/8MP+HDU+3jr7eEWfkcZ/eEHaFC/HhYuXGyie2JiQl74GBX5S5Ysjnvve8CuzdRpM/DZp2Px4eiPzehw80034uChaDz66OPmVf/Z519g1Acj7TzzXzM1eBw5cgRDXxuG0R99iJnfzsKatWvNaKAzHO644zb0638j4uLjkCrHvHvInXj44Yfw9DPPomL58sdd/9xzL8j1DD7q+uu/67XX9MZLL7+K1atXyXUMwqRJU814cj4L9I44f9llLdD5qo6YPHmqhYDq3auHzTT5ecEiO1d60hNCCCGEEEIIIYQQQs41/yiLqhPDfPHipZbAtVy5MvD29soVtbNxJlEjgB7ruedfMLG+SpXKqFO7Dp566glMF4F7wsQvESxCqwbdV49w/a3e9Or5rfXUkDMaLkYF5WLFisFH1pUvXw4XXVTLxFn1xK9QoYKtV2OC7nd5hw4Ik30s5I38XSwqCju275R9fbBhw0akJKcgKipSxPckC4+zes0aK1u31fA3GgqnsES6GpZGr5mGk9F48erNnpAQb/vq7xo1qmHK1OlmdNBzTRDR/ucFC+waF0TrGxSsYror7n2I/M6Qc2nYoKGI9b+aYSA8LAzpAemYM3cuXn7pRVHbs9CoUaPjrtdY/AVR+XrZ8pV4+KH7MX3GNxauZ9v27Rbn/3xF/931eqrnvIrz33zzLZavWGnrdOZC586d7PfCRYvNKEORnhBCCCGEEEIIIYQQci75RwK9K2FsmoVu2bZtG/bs2WOhbFRI9vBwM8/xM4WTJFVFa/29adNmrFm9Fj8vXIh33nodkyZPMZHdJbBnHrOv472uv1UYzxIDQqolaHXPS2b7/gejTNRXT/+RI0dg1crV2LR5s8Ve13L/Oh9XslR3J3mqxWDPEd07O+847u5uVk7hkwRyLEyP432unvC6rf7Wuuh5upblJoKVPTQJLk5wOd1yZymYh72V6Y7MjMy8Y1hs+0zXMWF5AE68Xj9a9ZxcQ4t65X/88RisXfsLGjSo54q9f+gQXnzpFbue52OoGA0n1LJlS3TrepXNUlAjjd4/inrO6/Xt0b2r/fvprIv8iXoJIYQQQgghhBBCCCHkbPOPBHrFSfqqHu7qNb9+/Ubs3LkLrVtfZh7vZwJHVK9Qvpx5fXt6eZpgrSJ7SHCQhdzRY5snfHoGIiIikBCfYNu4BHPkCeVazq5dO+Hr54vNW7Zi08bN8PP3y41l720x3Zs0aSxidaaIzy8iKCjExOz77707T6x2zvso9T3HJcpnZeVT0Y8jqOc4+x+FW+65ZuO3334XAbwz5s6dJ+eWbrMS2rVri+XLV+J4ZMu56wwBDXmjnvTr1m9Ar949pT7Z5t2vXv5axr59e02Y/nPduuOuzxahP0P+7bzkuHpNdb16mLubkL3EEuKmp6dg/Befo379+li1atV5KW5r/gA1rkyY+JXUcXWecUfRsDaL5VzS0tPMsOIk3iWEEEIIIYQQQgghhJBzxT8W6F2Cp8t7W73KNeSLhp9RwftMoeK7j483HnvsUfOc/+OPP5AoonGJEsXRoX1bDB32ep4n+OKlS3HTjTcgPi4eqWlp+OGHuRb2xd3dI89TXnV29fx+681h+GrSZBw6GI169esgOCgYL7z4sgnkGmP9vnvvwx9//okrr7hcylLB2ju3Ll4ICAj4KySKfIWEhuSVr8t1vbePj23v7uaO4OAQ88C3df4Bdj7O/ro82OroZjHyP/9igoXe+XDUSAslU7FSBaxYuVJEcB84Qv7R1ydHxPsV6N//ejtmkojSKu7/OG8+hr/zJiZ++ZXFzO/erRseePBhO9bvv/9x3PUq8KekptisiAceuN/KUmF+2NBX8fPPC7Bz1y5UrlzZrqnGxdeQQucjatj4Xe4VNazodc0fwkZ/6zKdEeCeGxaJIW4IIYQQQgghhBBCCCHnEo/w8MhnTmUHFZwrVqxg3xYWRYT5rVu3ISIiDHXr1rbkpOql7sSgV8/kzZu3IDIywjy81WPbWb5t23ZXSJW/q6Rsm5ycgilTpiI7J0vE5LIWDz768GGM/mgMNm3c5BLERUBft24DDhw4iHr16iJNBPoNGzaIfu4KiaMGBK2z1m/nzp2WULVu3TooUbIEduzYZclYNSmrbqfJZ2vVqoVKFSti/IQJ2L9vP3bv3mMhfbSM6OjDFtJH66bO8GmyfNOmTSbSu+d69+sxNEGph6cHEhMSsGXrVttePbZ37Nxl3u76twrzGZkZdh56PT1l+2nTZ+CQnF+yGCI+HPUhypYtZ17qK1euMnE/P3req1avsfOtU/tiHI6JsQS3S5cts/Lq16tnMxyGj3gXhw4dsnL0s3DRouOu13ppgtsK5cvKv12kxddXw0WNmtXl37iKzTAY8e5ImyWh+56veObO7jjueln3T7znM+XfrWOX7vZdaPlyr82ZNRPJKSnnZRggQgghhBBCCCGEEELIv4db5So1TsltWD3j27Ztnechr2K0hkcJCwu1ZQWToqoY/t1336N69aqoXLmiCLoZecvnzZt/yuKoJmDNi7UON0u4qiKr4/2sy3UbJx69eovHxh5BYGBAblz3v7ZTcVnj56vCrl7uAQH+eSKq7q+iqiruKtrrdipca71VpNfQM/m9suPi4iyEiivyjZtdE62X7qNlaagVWy/bqve/s84xdOj+GkZGz61MmTIoKUaD77//wQR/rfuoUSMxevTHWLFilZ1zQeyYUm62CfyeVmdFw9M4/ybqGa/1z38NjrfeMb5omRoqSOumhgs1lLhwzRLIf03/i6SkJOOdD8YgVb4Lw1eu6aP3DhZjUsxJGaMIIYQQQgghhBBCCCH/Hf6x67MKzEFBgea9fS5whOf8FAxdokKzg4rMwcFBhW6nYrR+CitLhWdNjOqgYrSi56uhU7y9vY4qz0k+qotyckV9Z3vHUGBJYPOdgzPLQJfreoe0tFS0b9cO1/ftY576pUqVwg9z5ljs9/xx1AvWOyDftXG2KXi9Cl6D463Xb6t3UFBeXe2aBAUetzxCCCGEEEIIIYQQQgghJ89pCPRu5qHthItRCnrNH3UAT5eHvCuUi/7OyPub4u6xqMFARfmnnn7GPOw1vMyBAwfsGh9PnCeEEEIIIYQQQgghhBBS9DgNgd4Vz71atSrIzMw6ceEizm/cuNm+9+3bj1KlSpoArQK/xp+n2Hwsek1cnuouz/WYmBgT6p11hBBCCCGEEEIIIYQQQi4MTlmgV4F927YdJrD/XdJLl56cAx8fH6SkpOCnnxbIPu4Wp90JMUNOzD9JYEoIIYQQQgghhBBCCCHk/OWUBXoV1p2wNaeyj8YzZ5JMQgghhBBCCCGEEEIIIcQFFXNCCCGEEEIIIYQQQggh5F+AAj0hhBBCCCGEEEIIIYQQ8i9AgZ4QQgghhBBCCCGEEEII+RegQE8IIYQQQgghhBBCCCGE/AtQoCeEEEIIIYQQQgghhBBC/gUo0BNCCCGEEEIIIYQQQggh/wIU6AkhhBBCCCGEEEIIIYSQfwFPEEKKDDk5OfbtBkIIIYQQQgghhBBCyPmK6XhubvK/Eyt5FOgJKSLkZGfD08sLvgGB8PKUpuvujhwQQgghhBBCCCGEEELOJ9xEnM/IyEBqUiIy5dvN/fiBbCjQE1IEyMnJhq9/APyCgsz6li1iPfRDCCGEEEIIIYQQQgg5r1CnWnW0DY6IRHJ8HFKSk+F+HJGeMegJOc9RQd7T08vE+eysLPOkJ4QQQgghhBBCCCGEnL+oppeVmQn/4BB4e3vlha4uCAV6Qs53pPFqWBsK84QQQgghhBBCCCGEFC00EoaPfyAFekKKLG5u8PI6vpWNEEIIIYQQQgghhBByfqJOt6rtHS9ZLAV6Qs57XBmfCSGEEEIIIYQQQgghRY+cE2h7FOgJKQLQd54QQgghhBBCCCGEkCJKTt7/HQMFekIIIYQQQgghhBBCCCHkX4ACPSGEEEIIIYQQQgghhBDyL0CBnhBCCCGEEEIIIYQQQgj5F6BATwghhBBCCCGEEEIIIYT8C1CgJ4QQQgghhBBCCCGEEEL+BSjQE0IIIYQQQgghhBBCCCH/AhToCSGEEEIIIYQQQgghhJB/AU8Ucdzc3JCZmYn09HRkZWXB09MTPj4+tvxsHjMlJQUeHh7w9vZGTk4OCCGEEEIIIYQQQgghhJBToUgL9CqUx8fHIyIiApdeegmKRUVh2/btWLNmLbKzs+Hn53dWxPOMjAzUrVsHcXHx2L17txkFCCGEEEIIIYQQQgghhJBTociGuHHE+Ssuvxzvv/+uCOZ14evni04dO+Kj0aNQrlxZpKamnhVPei23R/duqF+/rnnSE0IIIYQQQgghhBBCCCGnSpF1/U5JSUWd2rUxePCtuOWWwdi3fx+8vLxMPG/V6jIMG/oqru8/CNnZOUhPTzMvd/2oR72K9vqt4rp62TvovhomR0PkaFnOtsnJybadrktLS4O7uzuSZFl6Wrr9VnQ79dpPTU2T7yzbX8tR0jMykJ2VDV9fnzyPfidMjm6jZeTf19vbRz5eDJ1DCCGEEEIIIYQQQgghFzBF1oNe487fdNMgfDxmLPYf2I/w8HAEBgYiKioKP/20AGt/+QV9rrkacXFxqFe3LkJDQmwfRcVw/WhYHBXB9XdSUhJatGiO3r17olTJkkhISDARXUX5hg0bmHhfokRxdO7cyeLdF1afbCmrVauW6N69GypVqmge/rq8UsWK8ncF2S/DttVytbz69eshJCQYqWJsUGFe9+3RozvKlClt4v3ZjKNPCCGEEEIIIYQQQggh5N+lyAr0np4eKF6sODZt2nJUrHn99vHxxvp1G1BRRPKUlGTUb1APt912CxITE030Vu/31q1aoXevnrZMxfA33hiGRrlC/IMP3o9mIt4nJ6fY37ffdivuvWcIBt9+GwIDApElgn5+VITXOPgfjhqJmjVqmKf+PXcPMbFdDQQBAQF4/rlnzftej69CffFixfDE448hJiYWAYEBeH3YUNSqWUNPAPfdd7fU7zKrGyGEEEIIIYQQQgghhJALkyIZ4ka92lUQF7Ub+/a5QtvkRwXy3Xv2oFXryxAUFIQvvpiIsWNGIzIy0kTyLBHUu3a9Ch988KH9/cQTj2H5suUYPmKEiPt+mDplCj799BMsW75cSnOFwzkUfRjPPPuClBcI39zQNX8dz8u85W+77Q4cPHhQykzH7Nmz8eYbr2PG199g2bJliI6ORvPmzbB06VIT6Lt3vwFff/MNDhw4YML/xo2b8L+nnkJISDimTp+BsJBQE/YJIYQQQgghhBBCCCGEXJgUSQ96Dw8PxMbGyK8cFCsWhUwR7POjAn6JEiUQGxNr8d2PHDmC5SK2d+rUETExMahdu7Ys98CKVatNBK9erRo8PD3Qv18/XN+3D67s2MnKKV++PDIyMs3rfcGChQgPDytUNNdINOqF7+HhaeFtBg0agCuvuMIMB+5u7mYwmDZ9Orp162xx5v38fC2czpSp0yw0z0qpR5PGjfDgAw+iSZNG5kUfn5CQF9+eEEIIIYQQQgghhBBCyIVHkVWAVTg/fDgGFSpUQGq+eO1OCJmqVatg1+7dItZni6juj8mTp+KKyzvIfmno0aMbZnw9E16ergkEGi5H90lJTUVyblkfjxmHxMQkEd3d8pLF5o8JL39ZzHlFvfA15vzwd95EaGiohbVRj3nXfjBRf+7c+ShbugwioyLQunVr/PHHnzh08JCt27p1K+657wFLJtutW1eMG/sxKlWsYIlwCSGEEEIIIYQQQgghhFyYFMkQN4p6l3/2xXjcM+RO/LxggXnJq6e6iuy1L77YYsgPGHgT/P39bPmGjRst/EzXrt1RUUT9114bJuv8LTns/v0HLN77pEmTEBISajHldR8V29VbX0X2/PlaVXjPycmCt5eX7JcAbx9fdOjQDgsXLcJ7770Lb28/NGxYHz75QuFkZKRjzrx56Na1Ky6+qBbGjvsEfn7+VpZ68+/duw/jZFlKSiL6DxiIvn374OlnnrN4+oQQQgghhBBCCCGEEEIuPIqsQK/i+qKFi1G1SmWMGf0hvps9CzGHj6BixQq47LKWeP6FF5GQEG8e6iqCe3t748uvJuGNoa9h5KhR5vXu6+trn6HD3sBbb7yOkiVKYP2G9ShVqjTatG6F+x94yBLChgQHm4ie6zAvYr07Vq1ei0ED+5vHvcaqnzfvJzz1v8exfdsOEfgz0KJlcxP3neS1Wo8pU6bhvXffwY4dO/Hrr78hLCwM8fEJGDSov8XUX/DzQvP2V0//SZOn2v6EEEIIIYQQQgghhBBCLkw8wsMjn0ERRWO5L1myDL/+9ruJ6qVLlcTuPbvx7nvvY8uWbQgMDMwTyFWg37NnDxKTkvDDnLm2TEPWqAienJxsy6pVq4qKFSoiNS0Vo0d/7PKk93BHhnxv2rQZGRkZto96ta9fv97E9Xp168q6Tdi4cSN++/13NG7cCAH+AbZ/Vu5+6u2vHvkHDx7C5Ze3x7TpM6Quey1GvZb1++9/SF0DULv2xRaT/uuvZ2LZ0mWWkNYxCpDzEzXGdOzS3b4Lw1P+jefMmpkXOun0yIFvQCB4MxBCCCGEEEIIIYQQUvRQXTA1OalQfdCtcpUaRVr1c8WcTzePeFe4GHcR7v2O8l7PT1x8PIJEuM+/XsvQxLIa7kZ/63L1eHc82OPi4k1AL7iPbq8ivhoCVIBPTU21JLC6TsV1PVZoSIjto3UsW7Ysnn7qSQwcdJN5yudHjQRaBy1eRXv17M+hIHvek5KSjHc+GINU+S4MX7kXH713MKIPx5x20t+cnGyERhVHTnY2CCGEEEIIIYQQQgghRQuNyHIk+oB9F6TIhrhxUBFbPdH1U3B5YWi4moLrHWE/KCio0DKCg4MK3UfD7Dhki3iqXvr6yX+snHyJZG8YNACzZs2WbbOOqVf+sgoei5BzhWOs0pwMmRmZ8PD0MIOX5lMwo5QYktLEEBUihidtM+fTfeoYzXSmi9aPEEIIIYQQQgghhJDznSIv0BcVgkWsf/nlVy1cTnA+4Z6Q8wUV3KOjoxEZGYk+116D4lHFsP/gQaxZvRq//vEHwkJD0bB+PVSrWhWzvv8eKSmp/yBsz5knLT0dl7VojlKlSmHajK9Pe8YCIYQQQgghhBBCCCHnCgr05wgV5N1EMFQPe4rz5HxDxez9+w/gniF34snHH4Gfnz9SkpPh7eOtIfAtwfJNN9+Ma3s9g379+mLpsuWIj9911IyRfxv1+r9j8O1odklTTJ4yFW5eXueVAYEQQgghhBBCCCGEkIJQoCeE4MiROFzf5xq89Pyz2LlrNx569Db8/tvvCAsPR38R5GvVqIn0jEwLcZOq+R6ysy3xbWJiEvz9/SwMjhmh8ofIycyElwj4gQEBed7sun9mbgiaBNlGczPoeieEjuZi0HBQuj5Fylcv/fzlK852ul7zQuiMFC3fXZYnJMS76pery+u2Gn4qwUL2ZFjSXs1BkV+4132Tc88rOCgoL9eEbhMXFwcPT0/bx8pJSLAQOp6eXpZnQrexJB+yr9bH2d/ZV41yQfmSVf91vBQ5T1eoIC0zMzPLQmlpqC4N06Nlaf6CAH//v72uJ3PddBvdT5Nka/Jqb7neWrZzHfRb90+S8t2l/k698tf/eNedBkdCCCGEEEIIIYSQ04cCPSFExN9MPP7oIybAduvZG1u2bEFIWBhiRWR+5LEnLGlxYEho3vYxsbG4pEljNGzYAIsWLcEvv/6GsLBQE3m9RWTu3bMnypYtjY2bNmPuvB/zhOxLmzZBieLF8cWEibiqY0dUqlQBc+bOw5Zt2+Enx6hbuzaqVKmMCV9+ZZ7wderWwWIpf+2vv0r5YSYGHzx0CK0ua4nLmjfHgUMH8fn4ifDy1K7saG95Rzh3E/24R9cuUm4VbNy4EbN/mGNCuCNOp6SmoqmcS5lSpTDnx/l5ArQaE3r36G7fc+QcNDxV185XoUrlSti+YydmzPjahHKlRtWquOiimvhpwSIxdhwxA0Y32TZZhPIFixYdlSNDr9HFF9dCddln4leTZLvOiIiMwNczv8X27dvRpnVrqU8jrFy1Cgvl3MPFSJJ3XXvJdS1z9HVVCl63unXqYNFi13ULDw8TYT4ZYaEh6N6lC6KiIvHHn3/auapIrwmuY+Xfs2rVKuh4+eWIT0zA2HGfostVneS46Vi4eLHNlHCue0u57gfzXXfOCiKEEEIIIYQQQgg5fSjQE/IfR4XnKpUqoUSJ4lixcqWJv8WLFzPR1VOEavVuV9Qr2/WdgpEj3sYlTZuaQKwCbb9BN+Lb72ahfv36mD1zhnmrHzh4UET6stgqYv/lnbshNiYG9wy5C/VEdFfx97KWLUy4fvyRh9G5ey8RoxfjhWefRk8RxVUobt36srzyB95wkwnKCQmJeOXF53H3XXeIgL0apUqWwO233IJWbdsfk3xZPd2DAwMx65sZJkqv27ARd95+mxkfLmt/OSJE+FY06W1UVBRGvPMWXnrlNbw67HU7ZzVAfDDyXbz86lDMmD4d8+b9gPp162HX7t0oJ+d1n5xLuyuvQnzcEXTqdCUevO9edO3RC8sOHLBjDxv6KqJF1G7S/DKEhv5l3IiPjxcDRg/073sdbhjY32L6q6f7XXcOxltvvYNXXnoB6bK/iud33Xs/xn7yKRo1bHjMddXzuEKu6+HDh3Fdn2uOe90mT58hhoYeGPvRKPPAj4mJRYUK5bFk6VJ063WNecFfeumlmDLxC/OyPyJGmVtvvNEMLtFSdovW7W2f4133LLlHGO+fEEIIIYQQQggh5PSgqkLIfxwVfSNFwHZzd8PevftENPc8oUe0Jos9eDBa9imOFq1ai8Cfgev79FGXdezcsQP33f8gypQrj5o1a4nw3hM1atRAl45XIl2EfQ1BExQUhHXr1iNCRPFr+/Y3Mfya3r2QlZaC5KRkE6bjE+KOKv/aPtci9vAh9Luuj4nE3XpejSZNmqJa9Zrw9PTAM089ieSEhKPqGXckDgP6XY9SpUqidt0GuOTSZqgudXr8f09b2BYHDecyYeKX2Lx5i8XXd3dzhby5+aabRJiOwdChr+H990eaON+t19WoKsds3f4KVK5cCR9/+D7SU10hZVSU11A1NltArqXG8I+LTzg2Dn5u+f5ynmvW/oKIyCg88tiTKCb/Bg8+cB/Klq+Eho2bWoiZPlf3NiOGc11LO9e1W0/UzL2uKUlJJ7xu6uWunvQ33Xq7lF0R1WvUxO133Y1mIspfckkT2T8Ro99/17zo6zVsggqVKmP0mLGIiIgwYT49NemY614133XX2RSEEEIIIYQQQggh5PSgBz0h/3E8LMSJhmXJQVRUMWRmuUTm44n06t395vDhCCtWHFu2bkOsiLilSpUwIVljnP+8cIGIyfejTOnSIr57W4iYShUrSnnZtr+K07p/8VJlsXLNavu7eIliFvs8r/x33kV4vvJLlyxh6664vJ15eLdr2xpdulxlZWdLfVu2aI4cHF1fH18fC+Wi9Zo2ZTK++342lixdju+//x4lS5WymPKKM1Pgg9Ef4bVXXrKyV61cifbtWmPMmHEmvLdp1Qp/ilFh3rwfUb5iJVm/CkuXL7dwMhqL/pgrlWP/w4lS1Gr8/U8+/Rz+IWFYuXq1XHN3fP7FeCSnpiHlwEEzlpQqWVLq5pl3XR+Q61q6wHVFduYJr5saQHbv2QN/uR5PPPmkCO9hiAiPQJocv3zZcnYtwkLD8P6oUdizbz/KVaiEUaM+wKMPPWCe8elp6fmue5tjrju95wkhhBBCCCGEEEJOHyorhPzH0VAom7dsMW/xRg0boKSI9HHx8XkJVjWBrCZZdXd3yc0aSkbFfF3v6eWdV056chJat7oMa1euQMcrLjfP6oMHD5kAnmVytUvG1vjsukyFXRWfXQv/ktetfDUOFChfN3DP3T4hMck8zHW/zydMxIcfj4W3n79LLNbjZWSaZ/zX336HTl26Y+2vv1j8+KlfTcC3M6bjsJxrfs/2kNBQfDF+AuJFhO7Vozt69epldRs5arRcHx85rjsyRNB2GRHk3OU7Iz3DVWc3PQ+XQSMjK9PqYNv+TQJVvbbZeh1kf5/cGPUaYkavsxOz3spMS867rlcWel3dTnjdUpMSceOA/li2eCEaN26Iw9ExOHTokO2lSWB1BkUOsuHn7yfXLd2S0Xq4uxLd5qblzXfdE20WRP7rHhgQCEIIIYQQQgghhBByelCgJ+S/joit2SK4jxj5AYKDg/DVV+NRtUplHBEhWPXeuwbfhhFvvmGx1h0cIdxxEdef6mne5aqOFtP+2uuux8MP3I+FCxdb6BVT1x093ELA5Bev3VDQBb2w8j29PLF85SqEBAdj7dq1eOjBB/DQQw/hww8/wqzZs03oTk1OhbePN0qWLIkDBw6Yh/maNaswcOANqFXrIrw9/F00b34pggOD8jzoneOpUeLzLyaga9fOFmrm+zlzsHXbNmRKJfR4tWrVQo1q1bBt2w6ULV0STZo0xsYNG5CclISDBw6ZoaNCuXLYt2sHWrRojqjISGQViIufHxXAXUYP5+Rzcr3R3Y66LBlibNDrmnm865rv4hV23TRRbhcxTqgHfNfO3fDYIw9h48ZN5lnvJcL7/v37sHv3Xlx37bVo1qIFYqOj8dprr1ooIrGmFHLdHzzqunt48DFCCCGEEEIIIYQQcrowxA0hBGHhoSJej0CF8uVw46CBWDBvjnlLqyd3YECAJXD1dPdAQGAAvL28TZQ1WTgrxzzMg0XM9ZRtp0ydjr59+mDO7O8s7nn9evWQJgJxgH+Aed2ryOsjQjbyifPe3l6yf7AtO1H5Pn4BeFeMCI0bNsRXE77Ab78/jgQR1Rs0aIDJ06ZjwICBmPPjj+jduyd+mvs9PhozFl6eXrK8H+bKcvUK79CuLWZ//wPiE+IRFhaWd/5qLNBEriNHfYh+119n4vo7w0ciSOrrLed15z3348cfZuHHObOxbPkKNBVxPiU1FTfdOhgh4RGWwPbIkSN4/bVXMPjWWywprQr+Gq+/oBe9ziAIkGvq4ekhdXI3Q4GHiOA+cp4al15DAeky9UxXz32N9f531/VE100NB5MmT0Wb1q2wdOkibN++w/ZPz0g3kT7HzQN9+l6P2d9+gx+//85C3/wo57Nh40Yrw0/qcaLrfvudQxAZEQFCCCGEEEIIIYQQcup4hIdHPgNCyGmRmZmBjl2623dhqGg9Z9ZMJKekHJss9KTJga+GETlBuJR/jBQdGBhoguvsH37A4cOHLW75vHnz8c677+Hp555HqAjRKgbv3bcXi5cuN0959djWhKhLRbTeuHkLtmzbhh/mzjMhXmOi337HECt84eIl2LVnr22/Zfs2LF+xyrWvXBJ3EaAXLFyETVu2icDscdzyNQZ8oAjRn0+YgJ07d8FbxOXDh2Pw4eiPrI7FihfHipWrpJwt5kC+ftMmvDX8XRw6FI1SJUsgTQTpseM+xVPPvYDwfOK8g6enJ6IP7sedg+8wcfrZF1607VRIT0pKwufjJyArKxtBQQF2Xe665z5Ey3VST3NNpvrdrNnIFnFdk8PeMvhOREcfxtpffrF6a9kOrvj+wP4DB7B4yVKLRa/nqfVbKNdh7/79JqqrSL9qzRr8sW7DCa/r7j37rfzjXbdNW7ZaOctXrEBEWDj27N+Hex94UOrghkWLF5shZt++fXj/gw+wfPkqfDD6Y7z6yit45umnsGbtWsz4ZqZch9DjXvfQkBAQQgghhBBCCCGEkOOjelBqclKh+qBb5So1zqLqR8iFTUpKMt75YAxS5bswfP388Oi9g0XIjTntZJrqUR0aVdw8r8821lmkpiJJRFvkhktRQTZIxHsNxxIfn2jnGhYebmK6bq/xzPV3uCxTb3FN+pqcnGJhVjQOfJyI134B/ggWcVmF7IyMNEREROZ1SNGHDsLL28c82uPjE05YvorWukzDtWjIFzUsqJd/SEhwXlx79WTXcDvqHa7iuSbAzc4NNaMx5Avzald0v759rsW777yFW24djMnTp1v9neuix4uT45pVQeoRLOv02M5xU8QIk5iYZH+HhIYgMSHB9nPq7aDbJsr1TZFOWY0eXiKua31jYw7DPzAIQQEB5gUfHR0Nd90/IqLw6xor19Xf37zk4/7muikJCfJvl5pix9froiGMAoOCkZqWireHvWaJaMd+8pmdxwP33Y1BAwbgTjFCjJ8w0Y53outOCCGEEEIIIYQQQo6Pm5toVtEH7PuYdRToCTl9LjSB/r9MfHw8flm5zBK31m3YRAwGofgvaM8q/A8a0B9D7hiMEiVLmFFAr8WI997HK0OHoXjx4kcZGAghhBBCCCGEEELIqXEigZ4x6AkhRAgJDUWLy9ogMSXFfrsyrV74Cr2GNhr10ccYNfojhIaGISQkCLt27ESOPDAozhNCCCGEEEIIIYScXSjQE0IIXMlb4elp4V/s7/9I6BYV4ENzQ9hkZWUhOjoGwRqjX86f4jwhhBBCCCGEEELI2YUCPSGE5HK6aXwvBJxY+u65uQcIIYQQQgghhBBCyNnn9IJiE0IIIYQQQgghhBBCCCHkH0GBnhBCCCGEEEIIIYQQQgj5F6BATwghhBBCCCGEEEIIIYT8C1CgJ4QQQgghhBBCCCGEEEL+BSjQE0IIIYQQQgghhBBCCCH/AhToCSGEEEIIIYQQQgghhJB/gSIv0Lu5uSErKwspKSlITExEamoqcnJycDbRY+pxMjIy7HdRQeuamZkpdU/Lq7d+JyUlgRBCCCGEEEIIIYQQQsi5pUgL9Coux8fHw8/PD61aXYY+116Dhg0bmHCuAvrZEs+1/Lp166Bs2bL2u6igdS1dujTq1Kn9V73FltG2bRsQQgghhBBCCCGEEEIIObcUWYHeEeevuPxyvP/+uyKY14Wvny86deyIj0aPQrlyZc+aSK/l9ujeDfXr1zXP/aKC1rtB/Xro0a2r1Ts7O1suJHDvPXfDzd3N9TchhBBCCCGEEEIIIYSQc4IniigpKamoU7s2Bg++FbfcMhj79u+Dl5eXidDqTT9s6Ku4vv8gEZ1zkJ6eBk9PT/to+BsV7fVbRWr1vnfQfTVcjo+Pj5XlbJucnGzb6bq0tDS4u7sjSZalp6Xbb0W3U4Fbw8dkZ2fZ/lqOkp6RgeysbPj6+uSF39Ht9fi6jZaRf19vbx/5eBUaqsc5TnJyCtT24O/vn+sN73bUPlpPDWfj4eFhx9D99JOeno7kFN3XPc94oYYO3T9/2JvsHKlPSqody9fX96hrV/B6aB0KXks7ltQrR/bX45/tsEOEEEIIIYQQQgghhBBS1CiyHvQqPt900yB8PGYs9h/Yj/DwcAQGBiIqKgo//bQAa3/5BX2uuRpxcXGoV7cuQkNCbB9FRWf9XHrpJSYc62+Nw96iRXP07t0TpUqWREJCQl58ew2bo+J9iRLF0blzJxO5C6tPtpTVqlVLdO/eDZUqVTThW5dXqlhR/q4g+7nCyjgx7OvXr4eQkOBcITzL9u3RozvKlCltgndB73+XwJ5hdbriig7o0qWzRqhByRIlUbZsmbywNSrA6zn37Nld6l7/lLz89RhaTkZaBtq1a2tlhIaGmChf2PXo1KmjGRguuaSp1c2ps5ZRvFgx1KxRo0iFASKEEEIIIYQQQgghhJBzRZEV6D09PUQALo5Nm7aY57bjoa3fPj7eWL9uAyqKSJ6Skoz6DerhtttusSSylhRVxObWrVqhd6+etkwF7DfeGIZGucLzgw/ej2Yi3quXuv59+2234t57hmDw7bchMCAQWQVCwagIHxERgQ9HjTRBWr3N77l7iIntaiAICAjA8889a97mjsiu4vUTjz+GmJhYBAQG4PVhQ1GrZg09Adx3391Sv8usbvlRcdzLyxPvjxxhMfAD/P3x+KMP46abb0CL5s1MRNdzeW/E2+jQoR08PDzRseOVePLJx8zgcDLouWgdR0gZVatUlr+zrO6VK1e2+h9zPcQoEhsbiyF33YnatS/OE/ITE5PwyMMPoqQYO9LS0kHOY+TfS+9T/bcuaBRS40tcXLwZWZzZImf+8G5IkftK7x33IpR0mZw+zkwgve/Ot0TbWh/t67QPO1v3PCGEEEIIIYQQQohDkQxxo0K1CuIqLO7b5wptkx8VyHfv2YNWrS9DUFAQvvhiIsaOGY3IyEgTXrJEhO7a9Sp88MGH9vcTTzyG5cuWY/iIESLu+2HqlCn49NNPsGz5cmjoFxX9D0UfxjPPviDlBcI3N3TNX8fzMm/52267AwcPHjRBevbs2Xjzjdcx4+tvsGzZMkRHR6O5iOhLly41gb579xvw9Tff4MCBAyZ0b9y4Cf976imEhIRj6vQZCAsJNWE/PypgPvrIw1i4aAnefPNtCy3j6+OLsWNHY+2aX+AmYpIue+TRJ7B//34TXLOz0+V8pqJU6VLYvXvP315bPcbQ117B559/gclTptm5zZ07B6+88jLuvPMeC5lT8HroNhMnfinn1BXL5Zrp9a9evaqt+06uQ5CI+OT8RM1a7vLveafcgxMnTbbZF16erm5BxcnDhw9jQP9++OOPP7F+wwZ4e3vjTKNtsGH9ehYKadnyFWflGMdDzzH2yBEzdjlhrcjZR/tw7Zu7XNUJ06SPdO658wG9H9XQGlUsCgsXLjrm+UIIIYQQQgghhBByJimS7oEqEsfGxkDlxWIiomSK2JMfFX9KlCiB2JhYE+COiACnwrGGY4mJiUHt2rVluQdWrFptInj1atXg4emB/v364fq+fXBlx05WTvny5ZGR4fIoX7BgIcLDw44RzRV1AFXPdfVY1/A2gwYNwJVXXGHCjrubuwnW06ZPR7dunS3OvJ+fr4XTmTJ1moXmWSn1aNK4ER584EE0adLIvOjjExKO8d7UvzV0ztw5c8XYEGHhcdIy0swA4O/vm3fu6nl/eYcOuP7669Cv3wAT3YtFyXXKyDzhdVWPVj2/MmXKICg4GIMG9hdxti+aNm2KSDGIBIrgnoOcY66Hv78fvps1GzXkOup1j49PQPduXfHtd7PsXMj5i/oux8QeQd26tTFj8pc4KAYjJ1+BGpsGSpt49n9PYMPGjWaIORskiHHr2muuxq033XjSMz3OFNoer7u6t4VrYiimc4caKUsUK4Y3hr6KlKQknE9o/3nF5e3x4L33nPP7kRBCCCGEEEIIIf89iuz8fRXODx+OQYUKFZCaL167E0KmatUq2LV7twjWKjr7Y/LkqSK6dJD90tCjRzfM+HpmntemhsvRfSzMRm5ZH48ZZyEOPDzc8pKj5g/FIH9ZzHlFPS5VOB/+zpsIDQ21sA3qMe/aDyZiz507H2VLl0FkVARat25tHsmHDh6ydVu3bsU99z1gSVW7ibA9buzHqFSxgiXCzY8rLEQW3HO92C3ZrYjqahjQquRki3yek42RI0egVq2aJjSph74rCa2rLm7ubraN/s47L8DKcV0LVzJYC5eTdz3cMXzEe67rlYNjroeFDRKR7WcR7TVGv7eXOxo3bowZM76xEDjk/EYNLf0G3AhvX18MfeVlm5Wis0DKlSuLt98chvYdr8oNf+NKKHzkSJyJ2fn//RMSEo9KgKyhkpKSkgsNX/JXcuIEM55lWdLj5NwQVH8lXdZl6t2elJx83DAoOmvECQWl7UW3T80NJZX/eFofrbeG61FDlJMoOib6IF54/llrm4cPRx8TysdJ5qzLXWUcsb91G91f23pCYuJRnvdOiBQ9ngq8zvGsHmJA0/NxnX+81UeNakclaJbt7dpI2frvUPBc0tLTrR6JSa4QLPmP/9f+rn+n/GUX9u+g+TS0Dno8Z9sT1VOPp98JueHCCl4nLa+gYdHZTq+Fc07u0g9lSV+m56L/5lreEQuzlHnUtdAOR89TzyU5Xy4Np8/Rc03PvR7JBZ4DJ1p/omul9UlNTnWdY74k4HqN7RyOxOWFKyOEEEIIIYQQQgj5pxRZgV5FoM++GI8bbxgIP38/E2BUkDkkwvhFF9WyGPITJnxl3t0aMkM9gNUjuGvX7qgoor6GoNFwMCrK7N9/wES+SZMm4bvvZomw/DXmzfvRylNvfRO282kxKtTk5GSJEO0l+yWYkKUx3xcuWoT33nvXhOmdu3ZZyA6HjIx0zJk3D926dkX7dm0wecpU+Pn5W1nqzb937z6MG/cJ7r//Pnwp9ejbt48IS2lHnbPWdd36jSLid0FMbKzFfg8LC7dktxprPzU1BfXr17cQPi++9KKdy+LFixEaEpwnwKvQ6uvrZ+er5anw6OXtCu2hApsKUPodc/gwvvrqr+vx808/54lnBa+HooaGKdOm4pKmTdG9e08LD5RQyCwAcv6h//YRkRG4olMX3HXH7dJ2LkX0gX2Y9c0M/O+ZZ7FxwyZpB+5mQLrlxhvw4H33mMd5bOwR+/dVY9lVna60+13L0vukRPHiuKxli2O80h2xXGeI9Jd7/OEH7kNkRHheUmbk3lcHxXjVpnUrPP7Iw7i8XVscOnSo0LpniPja8corrLwW0g4efuB+XFyzprUPrZszg0ZngNx/790YfOtNEMuaGRSCg4LQr18/E2IvadIYA/v3R+VKlcyr3kHPuXHjRggPC7PkzY8+9CAaNmiAg/v3i6HMHffdMwTdunS29uQYrvR4dS66CA/I8fr3u95mkWjuBm1vOpOlWdMmJnjfctON9tGZNsm5or9upzk0bpJ+7f67h0h9KprRQddp2ToDSJNOP/Lg/ejVvZsYU/ajk5y/d25fo32Wisp33narna+fGF2SkpIKnY2jxoUK5cvjnrvuwK033yjb+tm2J6qnitklS5RApysudx0rtyNQwbpOndryqWPnkP/fW+8B/fe97tpr8IDcO9WrVbFynKTTSdKH9pV1Q+4YjODgYLuWjiFA84D06NrF7pPLmje383fK1PtDb5ga1avL9XgAzZo0sZweJ7PeEfD1Wt1xzLU6Njm3/ftJ33n9dX2krPtQU8pk/0YIIYQQQgghhJAzQZFVF1RcX7RwsYVRGTP6Qwwa1B+dOnbEgyJwv/jCc3j+hRdFQInP8whXkf5LEZyff+Yp/Dh/vglKKq74qtfwsDdw7dVX45GHH0br1pdhwID++HDU+yYQqXdviIhGKqI7TrLqYblq9Vr06tUDvXv3RvHixUTQ/wnt2rZB3+uuR3cR0K+77tq8eO2KCdhTpomYeLl5bf76629ybB/zXL3uumvwyCMPomWLFugh4rZ6+v8ogrjunx8t49133zOBbsQ7b+HuIXfiUdlv8ZIlYqTwN4H0t99+R2BgEO679z4T7p/635NITUsXEd5broEP1q79xcKZ3HjjIFSUclSk27ZtGx4QYVPD7ug1eU6u3cMPP4Q7RDBrJSLXnfL9xpuvIzlJPWpzjrkeiop3O3fswubNm6Xsgfjyy0n2b8SY3kUDbQdqwLrjrrsx8fNP8NFHo7Fv7368/OowhIWHWSLm9b+uQdOmjU2sXrZoAa68/HKXx7oYqMZ8+IEtV2FURc5LRdx947WXTQjPj977SYlJWLpgvsW29/HxxfTJX6FJo0Z5CYb3HzggdfgUr0g71qSxTz35GKZ+9aUtL+i1rOFRRg5/G5+P/dgSFavY/90303HDgH4uz2i5vzXh8sqlixAVGYl69erhj19XIyw40O71Du3bmU3goosvQjsxBKj4rMY0hwRpn0PEaDH6g5F4TYxeAYGBmDZpIq7vex2mTJggZUaZaD/+009MPFYBeOzoURj53nCEhIagaePGWL54gYm/cVKfBmJAe1va0vfffY2LxZDYtk0rrFi8EGEhIWZwa97sUvyxdjUulvpoe589cwau7tnDDBB6Ltf27oWf5sxGWGgYLr+8PSaN/xwfSd10fxWMS0n9/5T9K1SsYH3e8iULLVGzzirIj84+eurJx+W6TpT+q7gZJlYtW4Ty5cpaPU5Uz0MHD2Dsxx+isvQfKly7kkInYvKELxAgBlE1wDiYEVCMKGuWL0XfPtdYPorxn32CGwcNNANPakoqZn37Ddq0amXHWbN8iSWndowKW9b/ga7/b+9OwKMqzzYAP5OZLGQnEZVNsCAkggjuAmEXAUGgbn9LtS5YirSIdQHrghvlp1ZFxSKiAhWBYCsgqICgLEZlERITkgAJJmyyJBBC9m3+930nM4YQ8C/WQuS5e40T5sw5c/Ze1/N95/2kAUQHx54w4Rm8Jvc93c/aqKL38hnTp2KifK7jXcya+ZaVY9Jz8oem6/7w7qsLa+2r2oNa6/ZEyj1P90+cNBLo00izZryJ24f9yspDERERERERERH9GI5WrWPqbYKqwZCGPG3btpHg8CpES5CoZW3WrPncgjINZWqWftBQ/iYJu1as/NQCJU/veE/vSA0gdZDTiPAI5OTmYPnyFRYYajmYQRIQrV2bYIGftyerzt9Hwj0NsubFx0vInYWYmLb2mQbZ2hgwaOANWPTBYmsk0PkOHszBW2++jvj579nyNMBWGmJpw4CGZBoGfbVuvQXp4eFhFgbV3F4t41FUXISuXTrbYLXLln+CPz0wWsLLg1i46APr1a/BnpbKCZZten/BArS7+GJs255hvZC13ENsbAwG3jAAq6QRYJ38lpah+Z/bbrHA/R/vzLZe9o0aRdt26yC0GowuXbrM9mVlZcVx+8NLA0KdFidB/4MPPYKGEtj+3AN6fXLhlWkzJGgsqnN6kByDcWNGyjl16JR72+o5GNnoPN9TED8VDcP1yY/4Oe+gb58+aBN7CVwSXB45kmch87z49/DchAnW0KPjNmxY9wViL+lopWH2ZH+L7n362kDEGnDeNHQIRv9hJOJ69kGEhLpe+mTGXyf+RRqJOqBL1ziESvDpkv2yNW0LFsq1MuL39+FhCby1Hn27Dh0QIOdfsVyHyUmJmDd/Pia/MsXKSHlpA1eaBO4LFi2SBqXR0hDllAa2OzBOGpg6XXmNfffb7enoHNcDSbKMyopya7y6b+QIWf5lqCgrxrat6RgxcpQ0sn2KKAnc9bqsqt7XGubOeGOqbG9bXH7lVaiSY3Hv736HKZNfwiWdLkeGXFcaxH+3Mxu/iLnYM/ipXE/a6KWlt9wVpdaImPDFV5j0wgu4We4/c9+Zhas7x+Gb5GSUyb1n3ZcJ+GjpUrz48qsWlufL/t6/7wDclWXoN2AQXnphEq7q0g3hstzdWZm44pouSN2yRa7Tcgy/Zzgmv/g8unTria3btmLHtnQMu/23WC7L0+bXvn37WYNl7+sH2HgX359Tbrvus7OzUKjliWQ9X5v6uvWiv3fE73HLrbecYD2XYfz48Zg7Z66F5r+9514ESkPjULnfPPrIQ7JPrrBxKLzXvd6HP3hfGlcOHMSvfj1M7snh1lgYKfeGxtKwuXrlJxh2x514/1/v2/bEx8+z/Tbyj/fLPaiRnZPf7vgWVXLfiYgIQ+7BA2jesjWKSkuQ8NlK7Nm7FwNuGGjn5NXSuLFkwfu44BetbfDjtZ+uqHN6c50u99Xtacl17qtrO3fFE48/gbhu0mB6y2123T09/klpkGjpaSwIDrNGUG2YLa5VNoeIiIiIiIiIqC7a4TsvZ7+vvHNNLtRjGgI1bBgpoeBuZGZmVpeL8bOwvWY47/2u9pLUsjgaoHl71utLew9rMD5r1ju+WsMacruqa9THx/9TApkQX494b7i1UoL+ZcuW298aBGZlZWPKlKm2DP39OfPiESnhpLu6xIXWhddgZ82aBKuL76XLXbbsEwv3dJW1xEVY2LHhvNIGhksuaWd/r1q12pargV737j3w6GNPIFC2T3uya2j09oyZVlpDw8aVn35m26jbo6+tW7dV9+APst/RbZ82/S04Zd/ptmi1DC1tMX36254flvxJ95mnZEjAcfvDvuLw1OS/YUB/+21vuROqP/T46fnwecIXaNa0GY4WFiA6KNrCVA3kZ82eg8byuZ5j2+R6y9yxA31698LcuXNtft/Rrh7foC46foL2wn9t6jREShiuZWZycnIlnP9AGsciLQwdOKAf3pVGr8CgYDSUUDnP7zBmz37XwtGXJMSuTc/jee+9j0aNz7dAd3vmDhtE2SFheu8e3e3+kCKBduMmTe0a0+ty4oRnZRub4jtpfFIaHEdGRduyqmo1hISEhGLJ0o8R2CDYSsloo6A2BGZl70KTZs1wWBpfCooK0eKCC7A9I8MaOfr372cNY7JBVhonOjpKQvAKuwft3LkTW9LS0ER+X7c9betWNG9xgf2Wjl3RXJZ5x+23W697nVevYUdVBbp1i8MOaQhMT9+K85s0se/P/+d7FtCXlpVKw1uslYiJvfhiK1OkAzqXlpajfbt2Ngh2TXrtZmfvRJfOnXHlFVfYZ20uaoMj+XlW9uXE69kcgbI/npfGhi8T1sjxC5VGjCNWzufFya9Yg1TNY6/jVlx22WUYevOtOPe88+3erAqkMc8p26D3xaXLlqFpc0/P/TT5va5dutiAxDpNj+eoUSPleJ5jAb6Oi9G0WROkyz1MS3PFS0NoRNQ5dr/eJeurjQWhck7pk0Enmt5AjmHLli1OuK+Ca9yblZYi00Gwlyz8lzVirPx0FT6T+2+uNDZ57tM/bcMZEREREREREf281fsCuhoGaWCowbKGJRrEeAdwrIunPIvfceG9fqbze5fj/Y6+tCd7XfNocBZevTwNaTTU0u9qOO/9LXeNgWTvuvMO64muA73WpsvS39X5TxRuewfO1Pr0b781HS9PfhFTXp2MN9+agR0SmGqPVp1Pw7ew6u3Qv3Wf1Gxc0OXreuv66nrr+odX7zvvdzTI1+2wV/VAryfbH7pe2nNeAzjtle99OoDqnwD/QBtjwNuIpSGrDuipT094G7AcVnu+3K497T9s10BlFapHH4bbIddUHS2COr+efzUHmdUQtqy8wmbV+t96rlaUl8HhLUivT7/I9zVkrnvQWT/rYe1n6ybhs7f8kq67NHaVaTmrGoPPlldUes7xAF13uV60Lr78Pk7UE1qWVVle6Zuu+6WoqMSuNxsAVp/E8XzNyq8sliD34QcfsLEpdu3aLWF0gewPmS7zayOY1pv3r772bJ30Wqp02xMp2hN91YplCJHr57t9+3BEwm8/26eeAV0D7Br/fpBb3XbvIND+AZ469Poki5Z4yT9aaMH9H8c8KMsLOWaTdD1fnfwCXnnxb1aCZtfuXcg7kudrxT3ZeupTNakS1icnJ8u96Db8omVzaVRojjlz51mD5LEHx7MsHazbUXPw3eonkfRpHT8/l+07t50L8htyrpXJ8dc6+OkpSYhp28bWV59S8qvebi8dzFbHAtC59TigehyAk01X/rINJ9pXDj+XnYduXWfAGlM3bd6My6/pYvdxbYzIykhHx44drBQPEREREREREdGPUa970NcnGohPnDhJwsEK+/tUepdroK699B96aKyF6dprf5+EeBpIneoy/1N0MN6UlC24Z/jvTvu60KnTo2bxpjc819JMOTk4fOgwevXsgfh5c61ne2RoiPUQT/jiCwuHjxYUIioyAltTU63sT4+4uGNqkXtpMJ/8TQoGDRiA2e+8Y5+VlhShT6+eNqCxhqLr1m/EQJn+7HN/sRA9PzcXQ24ciI0bvragt661rt0YYNvhdFlpmWmvtUZ0dEPk5uRKGF2CG2+80XpY7929x3r0l8l6NmlyPvIPH5LztqE1SNXuFe3wc3w/5oI1AjjgG9HW+7EEy9ENG6JHt26IbnQejkgwX1VeigfuH+0rT6Q9tR0OJ2o3BeiyHTL/7++9B397cTImTHjOwvIRI0bYeA9OufZ1EOpGjc5FF2kIW71qjfUof/zRcbaftdzV1vR0u+4SkxKx+etN8G8QjIqyckREhKJh1DnHbJM2YvzPbbfi6mu7ynWbbOs5RPaL9vj/ofXUBoJQ7UX/4st48s/jEHNRW8yYOQuVnomofbxTZb10IN2EsY8gPDLaavz7+wd4Bpv2cxzb6FL9d5mcQ1p265uUFIwa+Xs5Dxrgwla/qB7X4vvjYGWjvGODVK+t795zgulatilNztMT7Ss/OW/KZN+GSuNkwdF8u9fqvVefjnjk0cdQWVqMx598Es/Iq++Agb6nAoiIiIiIiIiITgUD+v8Sb69jDXpONbz2Pi2gL6UlIbw91U93IO4N7hhW1W9amzuwQaD1uPaWWNJSK7cNux3LPlxs5Ve0UejZp8Zj4vN/w7btmXC6/PGv9xfgrTdex3N/+V8bD0IH/HRqD/xaZZq0XM5j45/CxnUJmD79Daxesxa33nSTjZcQJg07wREReEaC+S/XrsLiRQsxb/57+OWQwVbK6cZf3oKo6Kjaa2zXVM1ySy6nH4LkM73etLzNU08/i/VfJuCJ8U8jOioKT49/AgOH3my967VH9AdLPrQBU3WgZa2ZrvXgtdSNZ39UISIy3FOSSpavZYACAj1P7FRVh9naC1+fCvCX/aDzb9j4taz7IrwweTKGDh6MZrLPdHka4AcGBEoDwPc17vVdn1IJ8C+F7qrZ7861OugHc3NsINjbh/3aSrXAxn+owm2//g2Wy3HQmvvnyz7ZnpFpA5XqPUGfMvjNnffgq8/XYtLzL1ipnb7X9bHBcW+86RYbxNdLe5Z//PFSxM+ZjSefeRZdO3dG52uuxlfr19s2n2w99Zjq3x9+9BGeeuLPGDbsV4hpf6mnnFeto6NP8dz+27ttkN4gacTbKPtGB/Bd8tHHWPHJShszw3vc9HcbyHeCZd86/QOxcNFiPPTAGDwl67dz1278Rn6nTEJ0O9by3ZDQkOPup1aWTMttyTqebLpu/4n2Vb+Bg7Fc1u2pJx7HpIkTrUzOr6Uxo9VFrRAf/x7CZTtHDB+O/5Xz31V9LyYiIiIiIiIiOlXOqKhzngLVS6c66Cj952gv5v6Dhth7XTTAW7H0QysXcuqDSboRFBJ6XO/kn4JfdU/xPd/ttVrnGmhq+LwjK8sGO72h//WIjYnBtOlvYsrfX8e55zaSRpkgLF6yBJUSivbu3QtJ3yRj0l9fQJn2lt+yxTeWg9JwVQdYnjsvHt3i4nBph0vwxlszsGjxEuuln/ltloXZb749E23aXIRuXbvaUyP33DvC1sPldB6/zrJf12/ciJLSMt8gzoWFBfh6c6I9zbF85Urs3rMHgwb0t1rmo//0oATFmxAZGWENSkuXLbcyL/qEwN693yEx6RsLdr20JNWW1DTslYYJT+OYAwcOHkByyvfbpod23YaNVsbmH/+YjaZNm6B3r57454IFWLBwkXw/B7t277Hz4cCBg1YT3zt4tIbfOojzfvl8w9ebrMf5kEEDreTKw2MftR7ym5OSLRTf+PXXeOfdObYei6Vh4aWXXsLEvzyHCRP/ao11KampWLFiJfr07o3WrVvZUy1/fvIpX5kqL33iZa40fmjP+379+mLdug2YMnWaHJtCq+Hv8nedcD2zd+6039fBsK38TG4uZr0z2/Z1bfq9I/n5ts56LC9pfzE+WfEp3p45y8L7oqJibNy0yc4LaVGxPu7ZEpZrOZucQ4ekIeID9JNzrmWLFnjwkXFWjiYxKcmeetDvbk5MsqchnE5XdXUlt22L5zx2n3C6nrO6bXXtKx3XRMsLfbluHQYPukH+3o/X35hujUQ9e3RDkyaN8fKrU/C+rJs2+PBpISIiIiIiIiL6IZpXlRQV1l2+uVXrGKYLRKdIy7m8Mm0GSuS9Ljpo5rgxI5GTe+iUG1T0yYTIRuf5yqT8lHQddTyB0pISG6DVV39cbyLymYbryjPeQvgxgwTrEx3ay1trs+vAmhqSR9VYhu83rOZ8udVX15TVO/aBln/yDqqs8+hgrFY7XP4XKaFpXWNLWAkeCcsjIxv6wnINtI/kHUb0OY1840tofXftLa+097sG8zW3Tddde1XrQMsRsg7eaTpvXl6eLTu0OuTW/VBUWIio6GjfGA4HDxywpwO8dft1eTpNQ/Oq6tIvur90AOfa8+q6KRuzAp666DoYqsvPaU8VHDlyWBoWGtm899z1W2ncmI/du7Jt/gcffAgjht+NDpdfZY0PSr9ntdFlu1yy/IjISF/N+pq+P2ay3TqItJZ2kUaBhrIdP7Seuq8KJczPztyK6wYMtEBdG1DqYnX/5XjnS1CuR1PPDy3PVW7nwLHHSRsIKuRzPd7ebfGec7peebK+3v2sA+rqMak5sG+ufBYt+0GXdbLp3v8zPNG+0pc2BmgjhA6Ireeo9xzRg6QBf2gdpZCIiIiIiIiIiOqipYzzcvb7xv87ZhoDeqJT93ML6OnMVShh8f2jRmLUfSOxd993CAoIlFA8AH0HDEKehN81e/3/1DSsfvSRhzGg//W4qks3ND7/fPYkJyIiIiIiIiI6AQb0RD8RBvT036Lnj9a4d0gQ3qRpUzsvdu7ebT3atff6f7M3t/Uyl/f8o/kIC+Og0EREREREREREJ3OygJ6DxBIR1QMawGvdfA3HNRhXOqiptyTQf5P+pkbyoaFhDOeJiIiIiIiIiH4EBvRERPWIBuLO6sFyGY4TEREREREREdVvp1Zzg4iIiIiIiIiIiIiIfhQG9EREREREREREREREpwEDeiIiIiIiIiIiIiKi04ABPRERERERERERERHRacCAnoiIiIiIiIiIiIjoNGBAT0RERERERERERER0GjCgJyIiIiIiIiIiIiI6DRjQExERERERERERERGdBgzoiYiIiIiIiIiIiIhOAwb0RERERERERERERESnAQN6IiIiIiIiIiIiIqLTgAE9EREREREREREREdFpwICeiIiIiIiIiIiIiOg0YEBPRERERERERERERHQauFBPORwOFBcXo6qqSv/l+9ztdiMwMAABAQEoKSmxzwIDA+1zIiIiIiIiIiIiIqIzRb0N6MvLy3HppR0QFRVlYb1XQIA/tm3bjszMHYiNjYHm8hkZGfD398eZRNdZGw0KCwsRGhrKBgQiIiIiIiIiIiKis4wE9I48wB2JekZ7x99y803yXoo9e/fC5XTa50ENGuDA/oMoKChAjx497LPklJQzLqDXnv8ulwvXXdcHn3+eAD8/VhsiIiIiIiIiIiIiOovkueBw58GNehfQOyTQdsv/Fi9ZgrVrE9CgQZBvWlBQkPw72EJ87VzvV6OHvfZcLy0rQ1lpmQTkTvuu9/My+Vw5nS4UFxfZuy5Xe7cXFRXZd/T7jtrLKy1FWXk5/CVw1+n6fd/y5F0bD3R+p7xruR0N4/X3ddr9o/+Ajz9eZj3/dV6dpuF9qUyvrKywhgWW6CEiIiIiIiIiIiL6mXE4slwOtztR4uSWqIfcVW4J0BsgLCzsmIBeaWhem4bmR/LzEdO2jZXH2b//AFavXivzh6K8vALNmzeX+Uqstn2/fn2RlZWNjRu/tmX373+9hOzFSEj4wnq+e3q8y/KOHEGnTh3Rpk0bZGdn46uv1iEiIgIVFRVo2aIFCiWYP3r0KIYOGYx9+/dj/foNcPo50aRpY5tH1yEurjMCAwLxTXKKlbzRdbn22mtw3nnnYmv6VqSmpSEkJIQh/VnLYaMs8OgTERERERERERHVQ466P5a4N9sF+K2WP4egHnJIRq691EtKtXe7J77UDNvTK/7YrdZwPk/C9FtvuRm9e/fE8mWf4IrLL0e3bl3xzDMTbHq3uDhc1KY1iiVUz8jcgdF/HIX58/+Jjh074GBODpo1a4b+/a7H2HGPSagfgtzcw7j//j/gwgsvxJrVayTE74fLLuuE116baj38e/TsjuZNm9rfaWnpuOmXQzBgQH88/PBYtI9uj/btLrb1b3dxO2sESJXvaG395/82CXt278EOWYc77hiGxKRvMGfOPKtVT2cpNs4QERERERERERHVSw7L9o5P6SWSTpSA3p2Ieio//yhG3TcS940cYb3pVYiE2H968GHk5eUd812tVd+p46W4vu91+M3td6CqCigqKsCE555Fnz69sGTJx9Z7/dxzG+Guu35nJWmSEpMwadJEjB07Dhs2brJe8/Pj50gg3wLbt2dI2N4PLS64APcOHw5XQBBmzpqJ16dORfv27ZGUlITCgkI0btIEw+8dYcH7rFkOvPfeXLRt28Z65ienJOMfM9/G32UeLaejJXB6dO+GMlnXsWPHIjw8EgsWLkLDhg2tBz2dnfTJCT1/XAEBcp5XgYiIiIiIiIiIiOoH7Riu2Z51wHUcG9L7oWqVKyMjfVWr1rH1cqBYLW3z2t+n2iCrWupG6XZqb3R//4BjvltWVmq92/ft24fBgwejQVCQ1ajX+S666CKUV3yAIJlv06bN1hv/nHOicLSgAIcPHcKW1DQrN6MDz+7fv09C/HOxZUuaBf77DxzArbfeZr32i2V5lRKgxsbGWCkbHbBW3ysrKy1k1/l3794jyzoP2dk7ER4WLg0FlRK+hyJAwlf9nv7W3XffhcceexybN2+SoD/Zyuho7/kqhrNnJRvnQBqTAgKjUQkiIiIiIiIiIiKqL7S6SklhwXHhvHyQlZNzcJWf/Qn3y6iPJIzXYFsHhNWgXV/BwQ2qB3F12+Cw2rPeWx1EB3HV2vRFxcX20o/Xb9iI1avXICQ42B4y0JDcOwis9pgvryiXd6dv4FeH/A23JzR1yvLKy8t8y1OffbYKiYlJFvbrUipkebocd3ULic7nW5b9jsNCfaW17bXn/6g/jMahQ7no1bMXZs18G1dccbn16Kezk2fA4XIUHc23Jy0cDgeIiIiIiIiIiIjozKXBvJ/TieKjR1FRXl5Hpudepf916X8qKoImO10l41HP6EZpL3gdhLWyssI+0/A7MNAzYKyG49pTvlBaKIKDQ5CR+S06dOiAjz5cgqCgYAvaNRyPiAiXcNzfAntvgF7zN2qXB3JX/05WVpb1vl+4cCHCwyNkHaoshI+U5QX4e5bn51erFn71EnS5OhhtQEAgwkJDkZuba73ktczNocOH8e67c2V6EXr36oW777nbeuLT2UsbeUqkkUYv5qCQUPjr+cWgnoiIiIiIiIiI6IxiiZ1kzuVlZSgtKrR3Detrq6p0Pq3vFtBnZSXmtWoV+zIc7vtRT2jPeO1x3r17HJo3b26BpQoKCrQe7PratGkTnnj8z9i1exdSUlKxdOkydOrUEdNen4oPP1om8zgxoH9/Cdg/wMdLl9q835fKcVsoGh4e7qtvXyWfaZjukhA9NDQE8+bNx4TnnsHkyS/ZILHBISG4cdBAvPLqFBvYVRsH9Ij4StPI/KFhYRLC+1tAf/RoAbZt24YHxoxGQsIXSE1PR7vYWFx55ZVYsXKl/f7gwTfason0Qq6oqEBB3uHqD0BERERERERERERnFIenh3d1dldXOC9m5uXtywJqRHwtW3aMdLpKv60vtei15EfXrteiceMm8HNoCRlPCK614HUA1tS0NAszr776KnTvFofFSz7C9u3bUVxcgn79+iI2JsZ6sG/YsBEpW7ZYGN7x0kvhH+Bvn2n4ryF89+7dsXjxEvu3FvO/7ro+SE1Nxd6939k8uoxBEsq3bNlSAvd8JHz+hTR4ZNuevfyyy+xYaEOBluLR+fvK/Mnye/u+22fza3h/0y+HynY0tkaCLVtS0aNHd6tjr5KTU7B27eeehoIaPfvpzKBPObwybQZKiusuQaTjEIwbMxI5uYfseBMREREREREREdHZzJFVVenX87iAXrVu3XaMG46XUA9o2KmDrmrN+Jo0w9b670GBgRZoa+12DcaDg4N9vewLCwt982lwrqG+9mjX7+r8ISHBNq+WrCkoOIqIiAhfj/r8/Hz7vpUYqQ7MdXneXvI6TZepy9PP9V1/W6fXNb++dDu88wbKeut82rigtGFA52c4f2ZiQE9ERERERERERET/XxLI35Wbe3Cm99+umhMzMrZObtUqtmV9KHWjgbcG1yebrryDxypvyF17Pm9QrgF5zXm1fnzNnuv6udaJr7ksFRISUufyvL/rXV5d82uAHxYWdsx6e+eruTwiIiIiIiIiIiIiqr8knH+5ZjivjuvSm5mZNkbeVoGIiIiIiIiIiIiIiH40hwOrJJwfU/vzOmtuVFYEDXXDkQgiIiIiIiIiIiIiIjplGs5XVoQMrWtanQF9VlZi3o6MtE5wO14GERERERERERERERH926ysTc7Bnnl5WXl1TT/pqJVW7saBu+SVBSIiIiIiIiIiIiIi+v/Ig8P9QF1lbWo6aUCvMrenz6x0oqeE9LNAREREREREREREREQnpL3mqypDLjyUkzP5h777gwG9ykpPz5Kg/s5KFy60oJ496omIiIiIiIiIiIiIvLTH/NMSzDfUXvMnKmlTmwv/Bg3q5e1O/bt165ge8iYvx6Xy3tItL8AdCSIiIiIiIiIiIiKiny8J3x15blQlOtxY7eeHxJycnFWeSTn4d/wf3thR/EVloIQAAAAASUVORK5CYII=";
|
|
@@ -9205,7 +10971,7 @@ function getJwtInstructionSteps({ pasteHint = "above" } = {}) {
|
|
|
9205
10971
|
return [
|
|
9206
10972
|
{
|
|
9207
10973
|
content: createElement2(
|
|
9208
|
-
|
|
10974
|
+
Fragment11,
|
|
9209
10975
|
null,
|
|
9210
10976
|
"Open ",
|
|
9211
10977
|
createElement2(
|
|
@@ -9218,7 +10984,7 @@ function getJwtInstructionSteps({ pasteHint = "above" } = {}) {
|
|
|
9218
10984
|
},
|
|
9219
10985
|
{
|
|
9220
10986
|
content: createElement2(
|
|
9221
|
-
|
|
10987
|
+
Fragment11,
|
|
9222
10988
|
null,
|
|
9223
10989
|
createElement2("img", {
|
|
9224
10990
|
src: streamElementsCopyJwt,
|
|
@@ -9235,7 +11001,7 @@ function getJwtInstructionSteps({ pasteHint = "above" } = {}) {
|
|
|
9235
11001
|
},
|
|
9236
11002
|
{
|
|
9237
11003
|
content: createElement2(
|
|
9238
|
-
|
|
11004
|
+
Fragment11,
|
|
9239
11005
|
null,
|
|
9240
11006
|
"When you're done, click ",
|
|
9241
11007
|
createElement2("strong", null, "Revoke"),
|
|
@@ -9246,7 +11012,7 @@ function getJwtInstructionSteps({ pasteHint = "above" } = {}) {
|
|
|
9246
11012
|
}
|
|
9247
11013
|
|
|
9248
11014
|
// src/se-import/ui/SEImportWizard.tsx
|
|
9249
|
-
import { Fragment as
|
|
11015
|
+
import { Fragment as Fragment12, jsx as jsx36, jsxs as jsxs26 } from "react/jsx-runtime";
|
|
9250
11016
|
function buildOverlaySaveBody(result, name, preview) {
|
|
9251
11017
|
return {
|
|
9252
11018
|
name: name.trim() || result.overlay.name,
|
|
@@ -9324,9 +11090,9 @@ function panelClass(extra) {
|
|
|
9324
11090
|
return ["se-import-panel", extra].filter(Boolean).join(" ");
|
|
9325
11091
|
}
|
|
9326
11092
|
function ErrorPanel({ message, hint }) {
|
|
9327
|
-
return /* @__PURE__ */
|
|
9328
|
-
/* @__PURE__ */
|
|
9329
|
-
hint && /* @__PURE__ */
|
|
11093
|
+
return /* @__PURE__ */ jsxs26("div", { className: "se-import-error", children: [
|
|
11094
|
+
/* @__PURE__ */ jsx36("div", { className: "se-import-error__title", children: message }),
|
|
11095
|
+
hint && /* @__PURE__ */ jsx36("div", { className: "se-import-error__hint", children: hint })
|
|
9330
11096
|
] });
|
|
9331
11097
|
}
|
|
9332
11098
|
function Field({
|
|
@@ -9336,7 +11102,7 @@ function Field({
|
|
|
9336
11102
|
placeholder,
|
|
9337
11103
|
disabled
|
|
9338
11104
|
}) {
|
|
9339
|
-
return /* @__PURE__ */
|
|
11105
|
+
return /* @__PURE__ */ jsx36("div", { className: "se-import-field", children: /* @__PURE__ */ jsx36(
|
|
9340
11106
|
LSInput,
|
|
9341
11107
|
{
|
|
9342
11108
|
label,
|
|
@@ -9348,7 +11114,7 @@ function Field({
|
|
|
9348
11114
|
) });
|
|
9349
11115
|
}
|
|
9350
11116
|
function ProgressBar({ value, max }) {
|
|
9351
|
-
return /* @__PURE__ */
|
|
11117
|
+
return /* @__PURE__ */ jsx36("progress", { className: "se-import-progress", value: max > 0 ? value : 0, max: max || 1 });
|
|
9352
11118
|
}
|
|
9353
11119
|
function StatusCard({
|
|
9354
11120
|
label,
|
|
@@ -9358,18 +11124,18 @@ function StatusCard({
|
|
|
9358
11124
|
icon,
|
|
9359
11125
|
tone = "neutral"
|
|
9360
11126
|
}) {
|
|
9361
|
-
return /* @__PURE__ */
|
|
9362
|
-
/* @__PURE__ */
|
|
9363
|
-
icon && /* @__PURE__ */
|
|
9364
|
-
/* @__PURE__ */
|
|
11127
|
+
return /* @__PURE__ */ jsxs26("div", { className: `se-import-stat se-import-stat--${tone}`, children: [
|
|
11128
|
+
/* @__PURE__ */ jsxs26("div", { className: "se-import-stat__label", children: [
|
|
11129
|
+
icon && /* @__PURE__ */ jsx36("img", { src: icon, alt: "", className: "se-import-stat__icon" }),
|
|
11130
|
+
/* @__PURE__ */ jsx36("span", { children: label })
|
|
9365
11131
|
] }),
|
|
9366
|
-
/* @__PURE__ */
|
|
9367
|
-
description && /* @__PURE__ */
|
|
9368
|
-
sub && /* @__PURE__ */
|
|
11132
|
+
/* @__PURE__ */ jsx36("div", { className: "se-import-stat__value", children: value }),
|
|
11133
|
+
description && /* @__PURE__ */ jsx36("div", { className: "se-import-stat__description", children: description }),
|
|
11134
|
+
sub && /* @__PURE__ */ jsx36("div", { className: "se-import-stat__sub", children: sub })
|
|
9369
11135
|
] });
|
|
9370
11136
|
}
|
|
9371
11137
|
function CoverageCards({ coverage }) {
|
|
9372
|
-
const byStatus =
|
|
11138
|
+
const byStatus = useMemo7(() => {
|
|
9373
11139
|
const acc = { direct: 0, partial: 0, template: 0, placeholder: 0 };
|
|
9374
11140
|
for (const item of coverage.mappings) acc[item.status] += item.count;
|
|
9375
11141
|
return acc;
|
|
@@ -9406,7 +11172,7 @@ function CoverageCards({ coverage }) {
|
|
|
9406
11172
|
}
|
|
9407
11173
|
].filter((card) => card.value > 0);
|
|
9408
11174
|
if (cards.length === 0) return null;
|
|
9409
|
-
return /* @__PURE__ */
|
|
11175
|
+
return /* @__PURE__ */ jsx36("div", { className: "se-import-grid se-import-grid--stats", children: cards.map((card) => /* @__PURE__ */ jsx36(
|
|
9410
11176
|
StatusCard,
|
|
9411
11177
|
{
|
|
9412
11178
|
label: card.label,
|
|
@@ -9426,7 +11192,7 @@ function CustomOverlayPreview({
|
|
|
9426
11192
|
width,
|
|
9427
11193
|
height
|
|
9428
11194
|
}) {
|
|
9429
|
-
const srcdoc =
|
|
11195
|
+
const srcdoc = useMemo7(() => {
|
|
9430
11196
|
const safeData = JSON.stringify(data ?? {});
|
|
9431
11197
|
const safeJs = (js || "").replace(/<\/script>/gi, "<\\/script>");
|
|
9432
11198
|
const safeHtml = (html || "").replace(/<\/script>/gi, "<\\/script>");
|
|
@@ -9443,7 +11209,7 @@ ${safeJs}
|
|
|
9443
11209
|
})().catch(__seImportShowError);
|
|
9444
11210
|
</script></body></html>`;
|
|
9445
11211
|
}, [html, css, js, data]);
|
|
9446
|
-
return /* @__PURE__ */
|
|
11212
|
+
return /* @__PURE__ */ jsx36(
|
|
9447
11213
|
"iframe",
|
|
9448
11214
|
{
|
|
9449
11215
|
title: "ai-preview",
|
|
@@ -9460,11 +11226,11 @@ function StepHeader({
|
|
|
9460
11226
|
title,
|
|
9461
11227
|
subtitle
|
|
9462
11228
|
}) {
|
|
9463
|
-
return /* @__PURE__ */
|
|
9464
|
-
/* @__PURE__ */
|
|
9465
|
-
/* @__PURE__ */
|
|
9466
|
-
/* @__PURE__ */
|
|
9467
|
-
subtitle && /* @__PURE__ */
|
|
11229
|
+
return /* @__PURE__ */ jsxs26("div", { className: "se-import-section-title", children: [
|
|
11230
|
+
/* @__PURE__ */ jsx36("div", { className: "se-import-section-title__num", children: number }),
|
|
11231
|
+
/* @__PURE__ */ jsxs26("div", { className: "se-import-section-title__content", children: [
|
|
11232
|
+
/* @__PURE__ */ jsx36("h3", { children: title }),
|
|
11233
|
+
subtitle && /* @__PURE__ */ jsx36("p", { children: subtitle })
|
|
9468
11234
|
] })
|
|
9469
11235
|
] });
|
|
9470
11236
|
}
|
|
@@ -9494,7 +11260,7 @@ function ModeCard({
|
|
|
9494
11260
|
icon,
|
|
9495
11261
|
onClick
|
|
9496
11262
|
}) {
|
|
9497
|
-
return /* @__PURE__ */
|
|
11263
|
+
return /* @__PURE__ */ jsxs26(
|
|
9498
11264
|
"button",
|
|
9499
11265
|
{
|
|
9500
11266
|
type: "button",
|
|
@@ -9525,8 +11291,8 @@ function ModeCard({
|
|
|
9525
11291
|
e.currentTarget.style.transform = "translateY(0)";
|
|
9526
11292
|
},
|
|
9527
11293
|
children: [
|
|
9528
|
-
icon && /* @__PURE__ */
|
|
9529
|
-
/* @__PURE__ */
|
|
11294
|
+
icon && /* @__PURE__ */ jsx36("span", { className: "se-import-mode-card__icon", children: /* @__PURE__ */ jsx36("img", { src: icon, alt: "" }) }),
|
|
11295
|
+
/* @__PURE__ */ jsx36(
|
|
9530
11296
|
"div",
|
|
9531
11297
|
{
|
|
9532
11298
|
style: {
|
|
@@ -9537,7 +11303,7 @@ function ModeCard({
|
|
|
9537
11303
|
children: title
|
|
9538
11304
|
}
|
|
9539
11305
|
),
|
|
9540
|
-
/* @__PURE__ */
|
|
11306
|
+
/* @__PURE__ */ jsx36(
|
|
9541
11307
|
"div",
|
|
9542
11308
|
{
|
|
9543
11309
|
style: {
|
|
@@ -9549,7 +11315,7 @@ function ModeCard({
|
|
|
9549
11315
|
children: body
|
|
9550
11316
|
}
|
|
9551
11317
|
),
|
|
9552
|
-
caveat && /* @__PURE__ */
|
|
11318
|
+
caveat && /* @__PURE__ */ jsx36("div", { style: { fontSize: 12, color: "var(--se-muted)", marginTop: "auto" }, children: caveat })
|
|
9553
11319
|
]
|
|
9554
11320
|
}
|
|
9555
11321
|
);
|
|
@@ -9559,8 +11325,8 @@ function StepModePicker({
|
|
|
9559
11325
|
onChooseUrl,
|
|
9560
11326
|
onOpenFullImport
|
|
9561
11327
|
}) {
|
|
9562
|
-
return /* @__PURE__ */
|
|
9563
|
-
/* @__PURE__ */
|
|
11328
|
+
return /* @__PURE__ */ jsxs26("div", { className: panelClass("se-import-panel--wide"), children: [
|
|
11329
|
+
/* @__PURE__ */ jsx36(
|
|
9564
11330
|
StepHeader,
|
|
9565
11331
|
{
|
|
9566
11332
|
number: 1,
|
|
@@ -9568,7 +11334,7 @@ function StepModePicker({
|
|
|
9568
11334
|
subtitle: "Pick a starting point. You can change your mind from the Back button on the next step."
|
|
9569
11335
|
}
|
|
9570
11336
|
),
|
|
9571
|
-
/* @__PURE__ */
|
|
11337
|
+
/* @__PURE__ */ jsxs26(
|
|
9572
11338
|
"div",
|
|
9573
11339
|
{
|
|
9574
11340
|
style: {
|
|
@@ -9578,38 +11344,38 @@ function StepModePicker({
|
|
|
9578
11344
|
marginTop: onOpenFullImport ? 18 : 8
|
|
9579
11345
|
},
|
|
9580
11346
|
children: [
|
|
9581
|
-
onOpenFullImport && /* @__PURE__ */
|
|
11347
|
+
onOpenFullImport && /* @__PURE__ */ jsx36(
|
|
9582
11348
|
ModeCard,
|
|
9583
11349
|
{
|
|
9584
11350
|
title: "Move your full StreamElements setup",
|
|
9585
11351
|
icon: source_se_default,
|
|
9586
|
-
body: /* @__PURE__ */
|
|
9587
|
-
/* @__PURE__ */
|
|
9588
|
-
/* @__PURE__ */
|
|
11352
|
+
body: /* @__PURE__ */ jsxs26(Fragment12, { children: [
|
|
11353
|
+
/* @__PURE__ */ jsx36("div", { style: { marginBottom: 12 }, children: "Open the dedicated Lumia Stream import page for counters, commands, loyalty, timers, tips, and activity." }),
|
|
11354
|
+
/* @__PURE__ */ jsx36("ul", { className: "se-import-mode-card__features", children: FULL_IMPORT_FEATURES.map((feat) => /* @__PURE__ */ jsx36("li", { children: feat }, feat)) })
|
|
9589
11355
|
] }),
|
|
9590
11356
|
onClick: onOpenFullImport
|
|
9591
11357
|
}
|
|
9592
11358
|
),
|
|
9593
|
-
/* @__PURE__ */
|
|
11359
|
+
/* @__PURE__ */ jsx36(
|
|
9594
11360
|
ModeCard,
|
|
9595
11361
|
{
|
|
9596
11362
|
primary: true,
|
|
9597
11363
|
title: "Import a single overlay",
|
|
9598
11364
|
icon: assets_default,
|
|
9599
|
-
body: /* @__PURE__ */
|
|
11365
|
+
body: /* @__PURE__ */ jsxs26(Fragment12, { children: [
|
|
9600
11366
|
"Paste a single overlay's public preview URL to bring just that overlay over.",
|
|
9601
|
-
/* @__PURE__ */
|
|
11367
|
+
/* @__PURE__ */ jsx36("div", { style: { marginTop: 10, color: "var(--se-muted)" }, children: "No login required \u2014 perfect for trying one overlay before deciding whether to migrate your whole account." })
|
|
9602
11368
|
] }),
|
|
9603
11369
|
onClick: onChooseUrl
|
|
9604
11370
|
}
|
|
9605
11371
|
),
|
|
9606
|
-
!onOpenFullImport && /* @__PURE__ */
|
|
11372
|
+
!onOpenFullImport && /* @__PURE__ */ jsx36(
|
|
9607
11373
|
ModeCard,
|
|
9608
11374
|
{
|
|
9609
11375
|
title: "Import everything from StreamElements",
|
|
9610
|
-
body: /* @__PURE__ */
|
|
9611
|
-
/* @__PURE__ */
|
|
9612
|
-
/* @__PURE__ */
|
|
11376
|
+
body: /* @__PURE__ */ jsxs26(Fragment12, { children: [
|
|
11377
|
+
/* @__PURE__ */ jsx36("div", { style: { marginBottom: 10 }, children: "Connect once and bring over your entire SE setup:" }),
|
|
11378
|
+
/* @__PURE__ */ jsx36(
|
|
9613
11379
|
"ul",
|
|
9614
11380
|
{
|
|
9615
11381
|
style: {
|
|
@@ -9619,7 +11385,7 @@ function StepModePicker({
|
|
|
9619
11385
|
gap: 6,
|
|
9620
11386
|
fontSize: 13
|
|
9621
11387
|
},
|
|
9622
|
-
children: JWT_FEATURES.map((feat) => /* @__PURE__ */
|
|
11388
|
+
children: JWT_FEATURES.map((feat) => /* @__PURE__ */ jsx36("li", { children: feat }, feat))
|
|
9623
11389
|
}
|
|
9624
11390
|
)
|
|
9625
11391
|
] }),
|
|
@@ -9642,8 +11408,8 @@ function StepConnect({
|
|
|
9642
11408
|
setSelectedChannelId,
|
|
9643
11409
|
onUseUrl
|
|
9644
11410
|
}) {
|
|
9645
|
-
return /* @__PURE__ */
|
|
9646
|
-
/* @__PURE__ */
|
|
11411
|
+
return /* @__PURE__ */ jsxs26("div", { className: panelClass("se-import-panel--narrow"), children: [
|
|
11412
|
+
/* @__PURE__ */ jsx36(
|
|
9647
11413
|
StepHeader,
|
|
9648
11414
|
{
|
|
9649
11415
|
number: 1,
|
|
@@ -9651,7 +11417,7 @@ function StepConnect({
|
|
|
9651
11417
|
subtitle: "Paste your StreamElements JWT to import overlays, live counters, chat commands, loyalty points, watch time, and recent events. The token is read in your browser only. Lumia never sends it to our servers."
|
|
9652
11418
|
}
|
|
9653
11419
|
),
|
|
9654
|
-
/* @__PURE__ */
|
|
11420
|
+
/* @__PURE__ */ jsx36(
|
|
9655
11421
|
Field,
|
|
9656
11422
|
{
|
|
9657
11423
|
label: "StreamElements JWT",
|
|
@@ -9661,16 +11427,16 @@ function StepConnect({
|
|
|
9661
11427
|
disabled: busy
|
|
9662
11428
|
}
|
|
9663
11429
|
),
|
|
9664
|
-
busy && /* @__PURE__ */
|
|
9665
|
-
/* @__PURE__ */
|
|
9666
|
-
/* @__PURE__ */
|
|
11430
|
+
busy && /* @__PURE__ */ jsxs26("div", { className: "se-import-token-loading", "aria-live": "polite", children: [
|
|
11431
|
+
/* @__PURE__ */ jsx36("span", { className: "se-import-spinner" }),
|
|
11432
|
+
/* @__PURE__ */ jsx36("span", { children: "Checking your token and loading StreamElements data." })
|
|
9667
11433
|
] }),
|
|
9668
|
-
channels && channels.length > 1 && /* @__PURE__ */
|
|
9669
|
-
/* @__PURE__ */
|
|
9670
|
-
/* @__PURE__ */
|
|
9671
|
-
/* @__PURE__ */
|
|
9672
|
-
/* @__PURE__ */
|
|
9673
|
-
/* @__PURE__ */
|
|
11434
|
+
channels && channels.length > 1 && /* @__PURE__ */ jsxs26("div", { className: "se-import-help se-import-help--info", children: [
|
|
11435
|
+
/* @__PURE__ */ jsx36("div", { className: "se-import-help__icon", children: "i" }),
|
|
11436
|
+
/* @__PURE__ */ jsxs26("div", { children: [
|
|
11437
|
+
/* @__PURE__ */ jsx36("div", { className: "se-import-help__title", children: "Pick a channel" }),
|
|
11438
|
+
/* @__PURE__ */ jsx36("p", { children: "This account has multiple StreamElements channels. Choose which one to import from." }),
|
|
11439
|
+
/* @__PURE__ */ jsx36("div", { style: { display: "grid", gap: 8, marginTop: 12 }, children: channels.map((c) => /* @__PURE__ */ jsxs26(
|
|
9674
11440
|
"label",
|
|
9675
11441
|
{
|
|
9676
11442
|
style: {
|
|
@@ -9684,7 +11450,7 @@ function StepConnect({
|
|
|
9684
11450
|
cursor: "pointer"
|
|
9685
11451
|
},
|
|
9686
11452
|
children: [
|
|
9687
|
-
/* @__PURE__ */
|
|
11453
|
+
/* @__PURE__ */ jsx36(
|
|
9688
11454
|
"input",
|
|
9689
11455
|
{
|
|
9690
11456
|
type: "radio",
|
|
@@ -9693,7 +11459,7 @@ function StepConnect({
|
|
|
9693
11459
|
onChange: () => setSelectedChannelId(c._id)
|
|
9694
11460
|
}
|
|
9695
11461
|
),
|
|
9696
|
-
c.avatar && /* @__PURE__ */
|
|
11462
|
+
c.avatar && /* @__PURE__ */ jsx36(
|
|
9697
11463
|
"img",
|
|
9698
11464
|
{
|
|
9699
11465
|
src: c.avatar,
|
|
@@ -9703,9 +11469,9 @@ function StepConnect({
|
|
|
9703
11469
|
style: { borderRadius: "50%" }
|
|
9704
11470
|
}
|
|
9705
11471
|
),
|
|
9706
|
-
/* @__PURE__ */
|
|
9707
|
-
/* @__PURE__ */
|
|
9708
|
-
/* @__PURE__ */
|
|
11472
|
+
/* @__PURE__ */ jsxs26("div", { style: { display: "flex", flexDirection: "column" }, children: [
|
|
11473
|
+
/* @__PURE__ */ jsx36("span", { style: { fontWeight: 700 }, children: c.displayName ?? c.username }),
|
|
11474
|
+
/* @__PURE__ */ jsxs26("span", { style: { fontSize: 12, color: "var(--se-muted)" }, children: [
|
|
9709
11475
|
c.provider,
|
|
9710
11476
|
" \xB7 ",
|
|
9711
11477
|
c.username
|
|
@@ -9717,17 +11483,17 @@ function StepConnect({
|
|
|
9717
11483
|
)) })
|
|
9718
11484
|
] })
|
|
9719
11485
|
] }),
|
|
9720
|
-
/* @__PURE__ */
|
|
9721
|
-
/* @__PURE__ */
|
|
9722
|
-
/* @__PURE__ */
|
|
9723
|
-
/* @__PURE__ */
|
|
9724
|
-
/* @__PURE__ */
|
|
11486
|
+
/* @__PURE__ */ jsxs26("div", { className: "se-import-help", children: [
|
|
11487
|
+
/* @__PURE__ */ jsx36("div", { className: "se-import-help__icon", children: "i" }),
|
|
11488
|
+
/* @__PURE__ */ jsxs26("div", { children: [
|
|
11489
|
+
/* @__PURE__ */ jsx36("div", { className: "se-import-help__title", children: "How to find your JWT" }),
|
|
11490
|
+
/* @__PURE__ */ jsx36("ol", { children: getJwtInstructionSteps({ pasteHint: "above" }).map((step, i) => /* @__PURE__ */ jsx36("li", { children: step.content }, i)) })
|
|
9725
11491
|
] })
|
|
9726
11492
|
] }),
|
|
9727
|
-
/* @__PURE__ */
|
|
11493
|
+
/* @__PURE__ */ jsxs26("div", { style: { marginTop: 16, fontSize: 13, color: "var(--se-muted)" }, children: [
|
|
9728
11494
|
"Prefer to import just a single overlay without logging in?",
|
|
9729
11495
|
" ",
|
|
9730
|
-
/* @__PURE__ */
|
|
11496
|
+
/* @__PURE__ */ jsx36(
|
|
9731
11497
|
"a",
|
|
9732
11498
|
{
|
|
9733
11499
|
href: "#",
|
|
@@ -9741,7 +11507,7 @@ function StepConnect({
|
|
|
9741
11507
|
),
|
|
9742
11508
|
"."
|
|
9743
11509
|
] }),
|
|
9744
|
-
error && /* @__PURE__ */
|
|
11510
|
+
error && /* @__PURE__ */ jsx36(ErrorPanel, { message: error.message, hint: error.hint })
|
|
9745
11511
|
] });
|
|
9746
11512
|
}
|
|
9747
11513
|
function StepPickOverlay({
|
|
@@ -9758,8 +11524,8 @@ function StepPickOverlay({
|
|
|
9758
11524
|
const total = overlays?.length ?? 0;
|
|
9759
11525
|
const allSelected = total > 0 && selectedCount === total;
|
|
9760
11526
|
const hasAnySelected = selectedCount > 0;
|
|
9761
|
-
return /* @__PURE__ */
|
|
9762
|
-
/* @__PURE__ */
|
|
11527
|
+
return /* @__PURE__ */ jsxs26("div", { className: panelClass("se-import-panel--wide"), children: [
|
|
11528
|
+
/* @__PURE__ */ jsx36(
|
|
9763
11529
|
StepHeader,
|
|
9764
11530
|
{
|
|
9765
11531
|
number: 2,
|
|
@@ -9767,23 +11533,23 @@ function StepPickOverlay({
|
|
|
9767
11533
|
subtitle: `Select one or more StreamElements overlays from your account. Each selected overlay will be created as a separate Lumia overlay. ${total > 0 ? `${total} overlay${total === 1 ? "" : "s"} on this channel.` : ""}`
|
|
9768
11534
|
}
|
|
9769
11535
|
),
|
|
9770
|
-
loading && /* @__PURE__ */
|
|
9771
|
-
/* @__PURE__ */
|
|
9772
|
-
/* @__PURE__ */
|
|
11536
|
+
loading && /* @__PURE__ */ jsxs26("div", { className: "se-import-help se-import-help--info", children: [
|
|
11537
|
+
/* @__PURE__ */ jsx36("div", { className: "se-import-help__icon", children: "\u2026" }),
|
|
11538
|
+
/* @__PURE__ */ jsx36("div", { children: "Fetching your StreamElements overlays." })
|
|
9773
11539
|
] }),
|
|
9774
|
-
error && /* @__PURE__ */
|
|
9775
|
-
/* @__PURE__ */
|
|
9776
|
-
/* @__PURE__ */
|
|
11540
|
+
error && /* @__PURE__ */ jsxs26(Fragment12, { children: [
|
|
11541
|
+
/* @__PURE__ */ jsx36(ErrorPanel, { message: error.message, hint: error.hint }),
|
|
11542
|
+
/* @__PURE__ */ jsx36("div", { style: { marginTop: 12 }, children: /* @__PURE__ */ jsx36(LSButton, { type: "button", color: "secondary", onClick: onRetry, label: "Retry" }) })
|
|
9777
11543
|
] }),
|
|
9778
|
-
!loading && !error && overlays && overlays.length === 0 && /* @__PURE__ */
|
|
9779
|
-
/* @__PURE__ */
|
|
9780
|
-
/* @__PURE__ */
|
|
9781
|
-
/* @__PURE__ */
|
|
9782
|
-
/* @__PURE__ */
|
|
11544
|
+
!loading && !error && overlays && overlays.length === 0 && /* @__PURE__ */ jsxs26("div", { className: "se-import-help se-import-help--info", children: [
|
|
11545
|
+
/* @__PURE__ */ jsx36("div", { className: "se-import-help__icon", children: "i" }),
|
|
11546
|
+
/* @__PURE__ */ jsxs26("div", { children: [
|
|
11547
|
+
/* @__PURE__ */ jsx36("div", { className: "se-import-help__title", children: "No overlays found" }),
|
|
11548
|
+
/* @__PURE__ */ jsx36("p", { children: "This StreamElements account doesn't have any overlays yet. Create one in the SE dashboard, or use the legacy preview URL flow from the Connect step." })
|
|
9783
11549
|
] })
|
|
9784
11550
|
] }),
|
|
9785
|
-
!loading && !error && overlays && overlays.length > 0 && /* @__PURE__ */
|
|
9786
|
-
/* @__PURE__ */
|
|
11551
|
+
!loading && !error && overlays && overlays.length > 0 && /* @__PURE__ */ jsxs26(Fragment12, { children: [
|
|
11552
|
+
/* @__PURE__ */ jsxs26(
|
|
9787
11553
|
"div",
|
|
9788
11554
|
{
|
|
9789
11555
|
className: "se-import-actions se-import-actions--inline",
|
|
@@ -9795,7 +11561,7 @@ function StepPickOverlay({
|
|
|
9795
11561
|
display: "flex"
|
|
9796
11562
|
},
|
|
9797
11563
|
children: [
|
|
9798
|
-
/* @__PURE__ */
|
|
11564
|
+
/* @__PURE__ */ jsxs26(
|
|
9799
11565
|
"label",
|
|
9800
11566
|
{
|
|
9801
11567
|
style: {
|
|
@@ -9807,7 +11573,7 @@ function StepPickOverlay({
|
|
|
9807
11573
|
fontWeight: 600
|
|
9808
11574
|
},
|
|
9809
11575
|
children: [
|
|
9810
|
-
/* @__PURE__ */
|
|
11576
|
+
/* @__PURE__ */ jsx36(
|
|
9811
11577
|
LSCheckbox,
|
|
9812
11578
|
{
|
|
9813
11579
|
checked: allSelected,
|
|
@@ -9816,7 +11582,7 @@ function StepPickOverlay({
|
|
|
9816
11582
|
size: "small"
|
|
9817
11583
|
}
|
|
9818
11584
|
),
|
|
9819
|
-
/* @__PURE__ */
|
|
11585
|
+
/* @__PURE__ */ jsxs26("span", { children: [
|
|
9820
11586
|
allSelected ? "Deselect all" : "Select all",
|
|
9821
11587
|
" (",
|
|
9822
11588
|
selectedCount,
|
|
@@ -9827,11 +11593,11 @@ function StepPickOverlay({
|
|
|
9827
11593
|
]
|
|
9828
11594
|
}
|
|
9829
11595
|
),
|
|
9830
|
-
/* @__PURE__ */
|
|
11596
|
+
/* @__PURE__ */ jsx36("span", { style: { fontSize: 13, color: "var(--se-muted)" }, children: hasAnySelected ? selectedCount > 1 ? `${selectedCount} overlays selected. Each will be created as its own Lumia overlay.` : "1 overlay selected. It will open the full review flow." : "Click overlays below to select them." })
|
|
9831
11597
|
]
|
|
9832
11598
|
}
|
|
9833
11599
|
),
|
|
9834
|
-
/* @__PURE__ */
|
|
11600
|
+
/* @__PURE__ */ jsx36(
|
|
9835
11601
|
"div",
|
|
9836
11602
|
{
|
|
9837
11603
|
className: "se-import-grid",
|
|
@@ -9842,7 +11608,7 @@ function StepPickOverlay({
|
|
|
9842
11608
|
},
|
|
9843
11609
|
children: overlays.map((o) => {
|
|
9844
11610
|
const selected = selectedIds.has(o._id);
|
|
9845
|
-
return /* @__PURE__ */
|
|
11611
|
+
return /* @__PURE__ */ jsxs26(
|
|
9846
11612
|
"label",
|
|
9847
11613
|
{
|
|
9848
11614
|
style: {
|
|
@@ -9857,7 +11623,7 @@ function StepPickOverlay({
|
|
|
9857
11623
|
transition: "border-color 120ms, background 120ms"
|
|
9858
11624
|
},
|
|
9859
11625
|
children: [
|
|
9860
|
-
/* @__PURE__ */
|
|
11626
|
+
/* @__PURE__ */ jsx36(
|
|
9861
11627
|
LSCheckbox,
|
|
9862
11628
|
{
|
|
9863
11629
|
checked: selected,
|
|
@@ -9871,7 +11637,7 @@ function StepPickOverlay({
|
|
|
9871
11637
|
}
|
|
9872
11638
|
}
|
|
9873
11639
|
),
|
|
9874
|
-
o.preview ? /* @__PURE__ */
|
|
11640
|
+
o.preview ? /* @__PURE__ */ jsx36(
|
|
9875
11641
|
"img",
|
|
9876
11642
|
{
|
|
9877
11643
|
src: o.preview,
|
|
@@ -9885,7 +11651,7 @@ function StepPickOverlay({
|
|
|
9885
11651
|
},
|
|
9886
11652
|
loading: "lazy"
|
|
9887
11653
|
}
|
|
9888
|
-
) : /* @__PURE__ */
|
|
11654
|
+
) : /* @__PURE__ */ jsx36(
|
|
9889
11655
|
"div",
|
|
9890
11656
|
{
|
|
9891
11657
|
style: {
|
|
@@ -9896,7 +11662,7 @@ function StepPickOverlay({
|
|
|
9896
11662
|
}
|
|
9897
11663
|
}
|
|
9898
11664
|
),
|
|
9899
|
-
/* @__PURE__ */
|
|
11665
|
+
/* @__PURE__ */ jsx36(
|
|
9900
11666
|
"div",
|
|
9901
11667
|
{
|
|
9902
11668
|
style: {
|
|
@@ -9909,7 +11675,7 @@ function StepPickOverlay({
|
|
|
9909
11675
|
children: o.name ?? "Unnamed overlay"
|
|
9910
11676
|
}
|
|
9911
11677
|
),
|
|
9912
|
-
/* @__PURE__ */
|
|
11678
|
+
/* @__PURE__ */ jsxs26(
|
|
9913
11679
|
"div",
|
|
9914
11680
|
{
|
|
9915
11681
|
style: {
|
|
@@ -9923,7 +11689,7 @@ function StepPickOverlay({
|
|
|
9923
11689
|
]
|
|
9924
11690
|
}
|
|
9925
11691
|
),
|
|
9926
|
-
o.updatedAt && /* @__PURE__ */
|
|
11692
|
+
o.updatedAt && /* @__PURE__ */ jsxs26(
|
|
9927
11693
|
"div",
|
|
9928
11694
|
{
|
|
9929
11695
|
style: {
|
|
@@ -9954,8 +11720,8 @@ function StepURL({
|
|
|
9954
11720
|
busy,
|
|
9955
11721
|
onSwitchToJwt
|
|
9956
11722
|
}) {
|
|
9957
|
-
return /* @__PURE__ */
|
|
9958
|
-
/* @__PURE__ */
|
|
11723
|
+
return /* @__PURE__ */ jsxs26("div", { className: panelClass("se-import-panel--narrow"), children: [
|
|
11724
|
+
/* @__PURE__ */ jsx36(
|
|
9959
11725
|
StepHeader,
|
|
9960
11726
|
{
|
|
9961
11727
|
number: 1,
|
|
@@ -9963,7 +11729,7 @@ function StepURL({
|
|
|
9963
11729
|
subtitle: "StreamElements (classic or Element). The wizard auto-detects which one you pasted."
|
|
9964
11730
|
}
|
|
9965
11731
|
),
|
|
9966
|
-
/* @__PURE__ */
|
|
11732
|
+
/* @__PURE__ */ jsx36(
|
|
9967
11733
|
LSInput,
|
|
9968
11734
|
{
|
|
9969
11735
|
label: "Overlay URL",
|
|
@@ -9973,15 +11739,15 @@ function StepURL({
|
|
|
9973
11739
|
disabled: busy
|
|
9974
11740
|
}
|
|
9975
11741
|
),
|
|
9976
|
-
/* @__PURE__ */
|
|
9977
|
-
/* @__PURE__ */
|
|
9978
|
-
/* @__PURE__ */
|
|
9979
|
-
/* @__PURE__ */
|
|
9980
|
-
/* @__PURE__ */
|
|
9981
|
-
/* @__PURE__ */
|
|
11742
|
+
/* @__PURE__ */ jsxs26("div", { className: "se-import-help", children: [
|
|
11743
|
+
/* @__PURE__ */ jsx36("div", { className: "se-import-help__icon", children: "i" }),
|
|
11744
|
+
/* @__PURE__ */ jsxs26("div", { children: [
|
|
11745
|
+
/* @__PURE__ */ jsx36("div", { className: "se-import-help__title", children: "How to find the overlay URL" }),
|
|
11746
|
+
/* @__PURE__ */ jsxs26("ol", { children: [
|
|
11747
|
+
/* @__PURE__ */ jsxs26("li", { children: [
|
|
9982
11748
|
"Open",
|
|
9983
11749
|
" ",
|
|
9984
|
-
/* @__PURE__ */
|
|
11750
|
+
/* @__PURE__ */ jsx36(
|
|
9985
11751
|
"a",
|
|
9986
11752
|
{
|
|
9987
11753
|
href: "https://streamelements.com/dashboard/overlays",
|
|
@@ -9992,14 +11758,14 @@ function StepURL({
|
|
|
9992
11758
|
),
|
|
9993
11759
|
"."
|
|
9994
11760
|
] }),
|
|
9995
|
-
/* @__PURE__ */
|
|
9996
|
-
/* @__PURE__ */
|
|
9997
|
-
/* @__PURE__ */
|
|
11761
|
+
/* @__PURE__ */ jsx36("li", { children: "Click the overlay you want to bring over." }),
|
|
11762
|
+
/* @__PURE__ */ jsx36("li", { children: "Click Copy URL in the top right of the editor." }),
|
|
11763
|
+
/* @__PURE__ */ jsx36("li", { children: "Paste it above." })
|
|
9998
11764
|
] })
|
|
9999
11765
|
] })
|
|
10000
11766
|
] }),
|
|
10001
|
-
error && /* @__PURE__ */
|
|
10002
|
-
error?.editorUrl && onSwitchToJwt && /* @__PURE__ */
|
|
11767
|
+
error && /* @__PURE__ */ jsx36(ErrorPanel, { message: error.message, hint: error.hint }),
|
|
11768
|
+
error?.editorUrl && onSwitchToJwt && /* @__PURE__ */ jsx36("div", { style: { marginTop: 12 }, children: /* @__PURE__ */ jsx36(
|
|
10003
11769
|
LSButton,
|
|
10004
11770
|
{
|
|
10005
11771
|
type: "button",
|
|
@@ -10064,15 +11830,15 @@ function StepDiscovery({
|
|
|
10064
11830
|
description: "Remote media files Lumia can mirror into local storage."
|
|
10065
11831
|
}
|
|
10066
11832
|
].filter((card) => card.value > 0);
|
|
10067
|
-
return /* @__PURE__ */
|
|
10068
|
-
/* @__PURE__ */
|
|
11833
|
+
return /* @__PURE__ */ jsxs26("div", { className: panelClass("se-import-panel--wide"), children: [
|
|
11834
|
+
/* @__PURE__ */ jsx36(
|
|
10069
11835
|
StepHeader,
|
|
10070
11836
|
{
|
|
10071
11837
|
number: 2,
|
|
10072
11838
|
title: overlayCount > 1 ? "Here's what we found in your overlays" : "Here's what we found in your overlay"
|
|
10073
11839
|
}
|
|
10074
11840
|
),
|
|
10075
|
-
topCards.length > 0 && /* @__PURE__ */
|
|
11841
|
+
topCards.length > 0 && /* @__PURE__ */ jsx36("div", { className: "se-import-grid se-import-grid--stats", children: topCards.map((card) => /* @__PURE__ */ jsx36(
|
|
10076
11842
|
StatusCard,
|
|
10077
11843
|
{
|
|
10078
11844
|
label: card.label,
|
|
@@ -10082,8 +11848,8 @@ function StepDiscovery({
|
|
|
10082
11848
|
},
|
|
10083
11849
|
card.key
|
|
10084
11850
|
)) }),
|
|
10085
|
-
/* @__PURE__ */
|
|
10086
|
-
reviewCount > 0 && /* @__PURE__ */
|
|
11851
|
+
/* @__PURE__ */ jsx36(CoverageCards, { coverage: result.coverage }),
|
|
11852
|
+
reviewCount > 0 && /* @__PURE__ */ jsx36("div", { className: "se-import-grid se-import-grid--two", children: /* @__PURE__ */ jsx36(
|
|
10087
11853
|
StatusCard,
|
|
10088
11854
|
{
|
|
10089
11855
|
label: "Review choices",
|
|
@@ -10101,19 +11867,19 @@ function StepOptions({
|
|
|
10101
11867
|
assetCount,
|
|
10102
11868
|
hideName = false
|
|
10103
11869
|
}) {
|
|
10104
|
-
return /* @__PURE__ */
|
|
10105
|
-
/* @__PURE__ */
|
|
10106
|
-
/* @__PURE__ */
|
|
10107
|
-
/* @__PURE__ */
|
|
10108
|
-
/* @__PURE__ */
|
|
10109
|
-
/* @__PURE__ */
|
|
10110
|
-
/* @__PURE__ */
|
|
11870
|
+
return /* @__PURE__ */ jsxs26("div", { className: panelClass("se-import-panel--medium"), children: [
|
|
11871
|
+
/* @__PURE__ */ jsx36(StepHeader, { number: 3, title: "Options", subtitle: "Choose how to handle your assets" }),
|
|
11872
|
+
/* @__PURE__ */ jsxs26("label", { className: `se-import-option ${assetCount === 0 ? "se-import-option--disabled" : ""}`, children: [
|
|
11873
|
+
/* @__PURE__ */ jsx36("span", { className: "se-import-option__icon", children: /* @__PURE__ */ jsx36("img", { src: assets_default, alt: "" }) }),
|
|
11874
|
+
/* @__PURE__ */ jsxs26("span", { className: "se-import-option__body", children: [
|
|
11875
|
+
/* @__PURE__ */ jsx36("span", { className: "se-import-option__title", children: "Mirror StreamElements assets to Lumia storage" }),
|
|
11876
|
+
/* @__PURE__ */ jsx36("span", { className: "se-import-option__copy", children: "Downloads every cdn.streamelements.com URL referenced in the overlay, uploads it to your Lumia asset library, then rewrites the URLs." })
|
|
10111
11877
|
] }),
|
|
10112
|
-
/* @__PURE__ */
|
|
11878
|
+
/* @__PURE__ */ jsxs26("span", { className: "se-import-option__count", children: [
|
|
10113
11879
|
assetCount,
|
|
10114
11880
|
" files"
|
|
10115
11881
|
] }),
|
|
10116
|
-
/* @__PURE__ */
|
|
11882
|
+
/* @__PURE__ */ jsx36(
|
|
10117
11883
|
"input",
|
|
10118
11884
|
{
|
|
10119
11885
|
type: "checkbox",
|
|
@@ -10122,9 +11888,9 @@ function StepOptions({
|
|
|
10122
11888
|
onChange: (e) => setOptions({ ...options, mirrorAssets: e.target.checked })
|
|
10123
11889
|
}
|
|
10124
11890
|
),
|
|
10125
|
-
/* @__PURE__ */
|
|
11891
|
+
/* @__PURE__ */ jsx36("span", { className: "se-import-toggle" })
|
|
10126
11892
|
] }),
|
|
10127
|
-
!hideName && /* @__PURE__ */
|
|
11893
|
+
!hideName && /* @__PURE__ */ jsx36(
|
|
10128
11894
|
LSInput,
|
|
10129
11895
|
{
|
|
10130
11896
|
label: "Overlay name",
|
|
@@ -10149,15 +11915,15 @@ function fileTypeIcon(url) {
|
|
|
10149
11915
|
return img_default;
|
|
10150
11916
|
}
|
|
10151
11917
|
function AssetTransferAnimation({ complete }) {
|
|
10152
|
-
return /* @__PURE__ */
|
|
11918
|
+
return /* @__PURE__ */ jsxs26(
|
|
10153
11919
|
"div",
|
|
10154
11920
|
{
|
|
10155
11921
|
className: `se-import-transfer ${complete ? "se-import-transfer--complete" : ""}`,
|
|
10156
11922
|
"aria-hidden": "true",
|
|
10157
11923
|
children: [
|
|
10158
|
-
/* @__PURE__ */
|
|
10159
|
-
/* @__PURE__ */
|
|
10160
|
-
/* @__PURE__ */
|
|
11924
|
+
/* @__PURE__ */ jsx36("div", { className: "se-import-transfer__source se-import-transfer__source--se", children: /* @__PURE__ */ jsx36("img", { src: source_se_default, alt: "" }) }),
|
|
11925
|
+
/* @__PURE__ */ jsxs26("div", { className: "se-import-transfer__files", children: [
|
|
11926
|
+
/* @__PURE__ */ jsx36(
|
|
10161
11927
|
"img",
|
|
10162
11928
|
{
|
|
10163
11929
|
className: "se-import-transfer__file se-import-transfer__file--one",
|
|
@@ -10165,7 +11931,7 @@ function AssetTransferAnimation({ complete }) {
|
|
|
10165
11931
|
alt: ""
|
|
10166
11932
|
}
|
|
10167
11933
|
),
|
|
10168
|
-
/* @__PURE__ */
|
|
11934
|
+
/* @__PURE__ */ jsx36(
|
|
10169
11935
|
"img",
|
|
10170
11936
|
{
|
|
10171
11937
|
className: "se-import-transfer__file se-import-transfer__file--two",
|
|
@@ -10173,7 +11939,7 @@ function AssetTransferAnimation({ complete }) {
|
|
|
10173
11939
|
alt: ""
|
|
10174
11940
|
}
|
|
10175
11941
|
),
|
|
10176
|
-
/* @__PURE__ */
|
|
11942
|
+
/* @__PURE__ */ jsx36(
|
|
10177
11943
|
"img",
|
|
10178
11944
|
{
|
|
10179
11945
|
className: "se-import-transfer__file se-import-transfer__file--three",
|
|
@@ -10181,7 +11947,7 @@ function AssetTransferAnimation({ complete }) {
|
|
|
10181
11947
|
alt: ""
|
|
10182
11948
|
}
|
|
10183
11949
|
),
|
|
10184
|
-
/* @__PURE__ */
|
|
11950
|
+
/* @__PURE__ */ jsx36(
|
|
10185
11951
|
"img",
|
|
10186
11952
|
{
|
|
10187
11953
|
className: "se-import-transfer__file se-import-transfer__file--four",
|
|
@@ -10190,9 +11956,9 @@ function AssetTransferAnimation({ complete }) {
|
|
|
10190
11956
|
}
|
|
10191
11957
|
)
|
|
10192
11958
|
] }),
|
|
10193
|
-
/* @__PURE__ */
|
|
10194
|
-
/* @__PURE__ */
|
|
10195
|
-
complete && /* @__PURE__ */
|
|
11959
|
+
/* @__PURE__ */ jsxs26("div", { className: "se-import-transfer__source se-import-transfer__source--lumia", children: [
|
|
11960
|
+
/* @__PURE__ */ jsx36("img", { src: source_lumia_default, alt: "" }),
|
|
11961
|
+
complete && /* @__PURE__ */ jsx36("span", { className: "se-import-transfer__done", children: "\u2713" })
|
|
10196
11962
|
] })
|
|
10197
11963
|
]
|
|
10198
11964
|
}
|
|
@@ -10211,8 +11977,8 @@ function StepMirror({
|
|
|
10211
11977
|
const percent = rows.length > 0 ? Math.round(completed / rows.length * 100) : 100;
|
|
10212
11978
|
const complete = !running && completed >= rows.length;
|
|
10213
11979
|
const summary = running ? `Downloading... (${done + reused + keptOnCdn}/${rows.length})` : `Finished. ${done} mirrored${reused ? `, ${reused} reused` : ""}${keptOnCdn ? `, ${keptOnCdn} kept on CDN` : ""}${failed ? `, ${failed} failed` : ""}.`;
|
|
10214
|
-
return /* @__PURE__ */
|
|
10215
|
-
/* @__PURE__ */
|
|
11980
|
+
return /* @__PURE__ */ jsxs26("div", { className: panelClass("se-import-panel--wide"), children: [
|
|
11981
|
+
/* @__PURE__ */ jsx36(
|
|
10216
11982
|
StepHeader,
|
|
10217
11983
|
{
|
|
10218
11984
|
number: 4,
|
|
@@ -10220,20 +11986,20 @@ function StepMirror({
|
|
|
10220
11986
|
subtitle: "We're downloading your assets from StreamElements and preparing them for import."
|
|
10221
11987
|
}
|
|
10222
11988
|
),
|
|
10223
|
-
/* @__PURE__ */
|
|
10224
|
-
/* @__PURE__ */
|
|
10225
|
-
/* @__PURE__ */
|
|
10226
|
-
/* @__PURE__ */
|
|
10227
|
-
/* @__PURE__ */
|
|
11989
|
+
/* @__PURE__ */ jsx36(AssetTransferAnimation, { complete }),
|
|
11990
|
+
/* @__PURE__ */ jsxs26("div", { className: "se-import-mirror-head", children: [
|
|
11991
|
+
/* @__PURE__ */ jsx36("span", { children: summary }),
|
|
11992
|
+
/* @__PURE__ */ jsx36(ProgressBar, { value: completed, max: rows.length }),
|
|
11993
|
+
/* @__PURE__ */ jsxs26("strong", { children: [
|
|
10228
11994
|
percent,
|
|
10229
11995
|
"%"
|
|
10230
11996
|
] })
|
|
10231
11997
|
] }),
|
|
10232
|
-
/* @__PURE__ */
|
|
10233
|
-
/* @__PURE__ */
|
|
10234
|
-
/* @__PURE__ */
|
|
10235
|
-
/* @__PURE__ */
|
|
10236
|
-
row.state === "failed" && /* @__PURE__ */
|
|
11998
|
+
/* @__PURE__ */ jsx36("div", { className: "se-import-asset-list", children: rows.map((row, index) => /* @__PURE__ */ jsxs26("div", { className: `se-import-asset-row se-import-asset-row--${row.state}`, children: [
|
|
11999
|
+
/* @__PURE__ */ jsx36("img", { className: "se-import-asset-row__icon", src: fileTypeIcon(row.url), alt: "" }),
|
|
12000
|
+
/* @__PURE__ */ jsx36("span", { className: "se-import-asset-row__url", title: row.url, children: row.url }),
|
|
12001
|
+
/* @__PURE__ */ jsx36("span", { className: "se-import-asset-row__state", children: mirrorLabel(row.state) }),
|
|
12002
|
+
row.state === "failed" && /* @__PURE__ */ jsx36(
|
|
10237
12003
|
LSButton,
|
|
10238
12004
|
{
|
|
10239
12005
|
type: "button",
|
|
@@ -10245,7 +12011,7 @@ function StepMirror({
|
|
|
10245
12011
|
label: "Retry"
|
|
10246
12012
|
}
|
|
10247
12013
|
),
|
|
10248
|
-
row.error && /* @__PURE__ */
|
|
12014
|
+
row.error && /* @__PURE__ */ jsx36("span", { className: "se-import-asset-row__error", children: row.error })
|
|
10249
12015
|
] }, row.url)) })
|
|
10250
12016
|
] });
|
|
10251
12017
|
}
|
|
@@ -10268,8 +12034,8 @@ function StepReview({
|
|
|
10268
12034
|
remainingCount,
|
|
10269
12035
|
marketplaceAvailable
|
|
10270
12036
|
}) {
|
|
10271
|
-
return /* @__PURE__ */
|
|
10272
|
-
/* @__PURE__ */
|
|
12037
|
+
return /* @__PURE__ */ jsxs26("div", { className: panelClass("se-import-panel--medium"), children: [
|
|
12038
|
+
/* @__PURE__ */ jsx36(
|
|
10273
12039
|
StepHeader,
|
|
10274
12040
|
{
|
|
10275
12041
|
number: 4,
|
|
@@ -10277,21 +12043,21 @@ function StepReview({
|
|
|
10277
12043
|
subtitle: "Choose how to handle this unsupported StreamElements widget"
|
|
10278
12044
|
}
|
|
10279
12045
|
),
|
|
10280
|
-
/* @__PURE__ */
|
|
10281
|
-
/* @__PURE__ */
|
|
10282
|
-
/* @__PURE__ */
|
|
10283
|
-
/* @__PURE__ */
|
|
12046
|
+
/* @__PURE__ */ jsxs26("div", { className: "se-import-review-card", children: [
|
|
12047
|
+
/* @__PURE__ */ jsxs26("div", { children: [
|
|
12048
|
+
/* @__PURE__ */ jsx36("div", { className: "se-import-review-card__type", children: item.seWidget.type }),
|
|
12049
|
+
/* @__PURE__ */ jsx36("p", { children: item.reason })
|
|
10284
12050
|
] }),
|
|
10285
|
-
/* @__PURE__ */
|
|
12051
|
+
/* @__PURE__ */ jsx36("div", { className: "se-import-review-card__status", children: item.flaggedOff ? "Auto-import disabled" : item.status })
|
|
10286
12052
|
] }),
|
|
10287
12053
|
remainingCount > 1 && /* Bulk-action row — shortcut to wrap up the review step when there are still
|
|
10288
12054
|
several unactioned widgets and the user doesn't want to walk each one. */
|
|
10289
|
-
/* @__PURE__ */
|
|
10290
|
-
/* @__PURE__ */
|
|
12055
|
+
/* @__PURE__ */ jsxs26("div", { className: "se-import-review-bulk", children: [
|
|
12056
|
+
/* @__PURE__ */ jsxs26("span", { children: [
|
|
10291
12057
|
remainingCount,
|
|
10292
12058
|
" remaining"
|
|
10293
12059
|
] }),
|
|
10294
|
-
/* @__PURE__ */
|
|
12060
|
+
/* @__PURE__ */ jsx36(
|
|
10295
12061
|
LSButton,
|
|
10296
12062
|
{
|
|
10297
12063
|
type: "button",
|
|
@@ -10301,7 +12067,7 @@ function StepReview({
|
|
|
10301
12067
|
label: "Keep all placeholders"
|
|
10302
12068
|
}
|
|
10303
12069
|
),
|
|
10304
|
-
/* @__PURE__ */
|
|
12070
|
+
/* @__PURE__ */ jsx36(
|
|
10305
12071
|
LSButton,
|
|
10306
12072
|
{
|
|
10307
12073
|
type: "button",
|
|
@@ -10312,12 +12078,12 @@ function StepReview({
|
|
|
10312
12078
|
}
|
|
10313
12079
|
)
|
|
10314
12080
|
] }),
|
|
10315
|
-
state === "generating" && /* @__PURE__ */
|
|
10316
|
-
state === "generated" && generated && /* @__PURE__ */
|
|
10317
|
-
/* @__PURE__ */
|
|
12081
|
+
state === "generating" && /* @__PURE__ */ jsx36("div", { className: "se-import-muted", children: "Generating with AI. This can take 30-90 seconds." }),
|
|
12082
|
+
state === "generated" && generated && /* @__PURE__ */ jsxs26("div", { className: "se-import-generated", children: [
|
|
12083
|
+
/* @__PURE__ */ jsx36("div", { className: "se-import-generated__title", children: "Preview" }),
|
|
10318
12084
|
(() => {
|
|
10319
12085
|
const landing = getAILandingBounds(item.seWidget, canvas);
|
|
10320
|
-
return /* @__PURE__ */
|
|
12086
|
+
return /* @__PURE__ */ jsx36(
|
|
10321
12087
|
CustomOverlayPreview,
|
|
10322
12088
|
{
|
|
10323
12089
|
html: generated.html ?? "",
|
|
@@ -10329,9 +12095,9 @@ function StepReview({
|
|
|
10329
12095
|
}
|
|
10330
12096
|
);
|
|
10331
12097
|
})(),
|
|
10332
|
-
/* @__PURE__ */
|
|
10333
|
-
/* @__PURE__ */
|
|
10334
|
-
/* @__PURE__ */
|
|
12098
|
+
/* @__PURE__ */ jsxs26("details", { className: "se-import-code", children: [
|
|
12099
|
+
/* @__PURE__ */ jsx36("summary", { children: "Generated code" }),
|
|
12100
|
+
/* @__PURE__ */ jsx36("pre", { children: JSON.stringify(
|
|
10335
12101
|
{
|
|
10336
12102
|
html: generated.html ?? "",
|
|
10337
12103
|
css: generated.css ?? "",
|
|
@@ -10342,15 +12108,15 @@ function StepReview({
|
|
|
10342
12108
|
) })
|
|
10343
12109
|
] })
|
|
10344
12110
|
] }),
|
|
10345
|
-
error && /* @__PURE__ */
|
|
10346
|
-
/* @__PURE__ */
|
|
10347
|
-
/* @__PURE__ */
|
|
10348
|
-
/* @__PURE__ */
|
|
12111
|
+
error && /* @__PURE__ */ jsx36(ErrorPanel, { message: error }),
|
|
12112
|
+
/* @__PURE__ */ jsxs26("details", { className: "se-import-code", children: [
|
|
12113
|
+
/* @__PURE__ */ jsx36("summary", { children: "Original StreamElements config" }),
|
|
12114
|
+
/* @__PURE__ */ jsx36("pre", { children: JSON.stringify(item.seWidget.variables ?? {}, null, 2) })
|
|
10349
12115
|
] }),
|
|
10350
|
-
/* @__PURE__ */
|
|
10351
|
-
/* @__PURE__ */
|
|
10352
|
-
/* @__PURE__ */
|
|
10353
|
-
/* @__PURE__ */
|
|
12116
|
+
/* @__PURE__ */ jsx36("div", { className: "se-import-actions se-import-actions--inline", children: state === "generated" ? /* @__PURE__ */ jsxs26(Fragment12, { children: [
|
|
12117
|
+
/* @__PURE__ */ jsx36(LSButton, { type: "button", color: "secondary", onClick: onRetry, label: "Try again" }),
|
|
12118
|
+
/* @__PURE__ */ jsx36(LSButton, { type: "button", color: "secondary", onClick: onSkip, label: "Skip this widget" }),
|
|
12119
|
+
/* @__PURE__ */ jsx36(
|
|
10354
12120
|
LSButton,
|
|
10355
12121
|
{
|
|
10356
12122
|
type: "button",
|
|
@@ -10359,8 +12125,8 @@ function StepReview({
|
|
|
10359
12125
|
label: "Use this and continue"
|
|
10360
12126
|
}
|
|
10361
12127
|
)
|
|
10362
|
-
] }) : /* @__PURE__ */
|
|
10363
|
-
!item.flaggedOff && /* @__PURE__ */
|
|
12128
|
+
] }) : /* @__PURE__ */ jsxs26(Fragment12, { children: [
|
|
12129
|
+
!item.flaggedOff && /* @__PURE__ */ jsx36(
|
|
10364
12130
|
LSButton,
|
|
10365
12131
|
{
|
|
10366
12132
|
type: "button",
|
|
@@ -10370,7 +12136,7 @@ function StepReview({
|
|
|
10370
12136
|
label: "Keep placeholder"
|
|
10371
12137
|
}
|
|
10372
12138
|
),
|
|
10373
|
-
/* @__PURE__ */
|
|
12139
|
+
/* @__PURE__ */ jsx36(
|
|
10374
12140
|
LSButton,
|
|
10375
12141
|
{
|
|
10376
12142
|
type: "button",
|
|
@@ -10380,7 +12146,7 @@ function StepReview({
|
|
|
10380
12146
|
label: "Skip"
|
|
10381
12147
|
}
|
|
10382
12148
|
),
|
|
10383
|
-
marketplaceAvailable && /* @__PURE__ */
|
|
12149
|
+
marketplaceAvailable && /* @__PURE__ */ jsx36(
|
|
10384
12150
|
LSButton,
|
|
10385
12151
|
{
|
|
10386
12152
|
type: "button",
|
|
@@ -10390,7 +12156,7 @@ function StepReview({
|
|
|
10390
12156
|
label: "Pick from Marketplace"
|
|
10391
12157
|
}
|
|
10392
12158
|
),
|
|
10393
|
-
/* @__PURE__ */
|
|
12159
|
+
/* @__PURE__ */ jsx36(
|
|
10394
12160
|
LSButton,
|
|
10395
12161
|
{
|
|
10396
12162
|
type: "button",
|
|
@@ -10401,7 +12167,7 @@ function StepReview({
|
|
|
10401
12167
|
}
|
|
10402
12168
|
)
|
|
10403
12169
|
] }) }),
|
|
10404
|
-
item.flaggedOff && !marketplaceAvailable && state !== "generated" && /* @__PURE__ */
|
|
12170
|
+
item.flaggedOff && !marketplaceAvailable && state !== "generated" && /* @__PURE__ */ jsx36("div", { className: "se-import-muted", children: "No curated Marketplace replacement is configured for this widget yet." })
|
|
10405
12171
|
] });
|
|
10406
12172
|
}
|
|
10407
12173
|
var CUSTOM_WIDGET_TABS = [
|
|
@@ -10415,20 +12181,20 @@ var CUSTOM_WIDGET_TABS = [
|
|
|
10415
12181
|
];
|
|
10416
12182
|
function CustomWidgetCard({ widget }) {
|
|
10417
12183
|
const tabs = CUSTOM_WIDGET_TABS.filter(({ key }) => widget[key].trim().length > 0);
|
|
10418
|
-
const [activeKey, setActiveKey] =
|
|
10419
|
-
const [copied, setCopied] =
|
|
12184
|
+
const [activeKey, setActiveKey] = useState12(tabs[0]?.key ?? "js");
|
|
12185
|
+
const [copied, setCopied] = useState12(false);
|
|
10420
12186
|
const value = widget[activeKey] ?? "";
|
|
10421
|
-
|
|
10422
|
-
const handleCopy =
|
|
12187
|
+
useEffect9(() => setCopied(false), [activeKey]);
|
|
12188
|
+
const handleCopy = useCallback4(() => {
|
|
10423
12189
|
void navigator.clipboard?.writeText(value).then(
|
|
10424
12190
|
() => setCopied(true),
|
|
10425
12191
|
() => setCopied(false)
|
|
10426
12192
|
);
|
|
10427
12193
|
}, [value]);
|
|
10428
12194
|
if (tabs.length === 0) return null;
|
|
10429
|
-
return /* @__PURE__ */
|
|
10430
|
-
/* @__PURE__ */
|
|
10431
|
-
/* @__PURE__ */
|
|
12195
|
+
return /* @__PURE__ */ jsxs26("div", { className: "se-import-cw", children: [
|
|
12196
|
+
/* @__PURE__ */ jsx36("div", { className: "se-import-cw__title", children: widget.title }),
|
|
12197
|
+
/* @__PURE__ */ jsx36("div", { className: "se-import-cw__tabs", role: "tablist", children: tabs.map(({ key, label }) => /* @__PURE__ */ jsx36(
|
|
10432
12198
|
"button",
|
|
10433
12199
|
{
|
|
10434
12200
|
type: "button",
|
|
@@ -10440,18 +12206,18 @@ function CustomWidgetCard({ widget }) {
|
|
|
10440
12206
|
},
|
|
10441
12207
|
key
|
|
10442
12208
|
)) }),
|
|
10443
|
-
/* @__PURE__ */
|
|
10444
|
-
/* @__PURE__ */
|
|
10445
|
-
/* @__PURE__ */
|
|
12209
|
+
/* @__PURE__ */ jsxs26("div", { className: "se-import-cw__body", children: [
|
|
12210
|
+
/* @__PURE__ */ jsx36("button", { type: "button", className: "se-import-cw__copy", onClick: handleCopy, children: copied ? "Copied!" : "Copy" }),
|
|
12211
|
+
/* @__PURE__ */ jsx36("pre", { className: "se-import-cw__code", children: value })
|
|
10446
12212
|
] })
|
|
10447
12213
|
] });
|
|
10448
12214
|
}
|
|
10449
12215
|
function CustomWidgetReview({ widgets }) {
|
|
10450
12216
|
if (widgets.length === 0) return null;
|
|
10451
|
-
return /* @__PURE__ */
|
|
10452
|
-
/* @__PURE__ */
|
|
10453
|
-
/* @__PURE__ */
|
|
10454
|
-
widgets.map((widget, index) => /* @__PURE__ */
|
|
12217
|
+
return /* @__PURE__ */ jsxs26("div", { className: "se-import-cw-review", children: [
|
|
12218
|
+
/* @__PURE__ */ jsx36("h3", { children: "Custom widgets" }),
|
|
12219
|
+
/* @__PURE__ */ jsx36("p", { className: "se-import-cw-review__hint", children: widgets.length === 1 ? "This overlay includes a custom-code widget. Copy any field and paste it straight into the StreamElements editor \u2014 values are shown exactly as StreamElements stores them, with no escaping." : `This overlay includes ${widgets.length} custom-code widgets. Copy any field and paste it straight into the StreamElements editor \u2014 values are shown exactly as StreamElements stores them, with no escaping.` }),
|
|
12220
|
+
widgets.map((widget, index) => /* @__PURE__ */ jsx36(CustomWidgetCard, { widget }, `${widget.title}-${index}`))
|
|
10455
12221
|
] });
|
|
10456
12222
|
}
|
|
10457
12223
|
function StepConfirm({
|
|
@@ -10475,21 +12241,21 @@ function StepConfirm({
|
|
|
10475
12241
|
},
|
|
10476
12242
|
{}
|
|
10477
12243
|
);
|
|
10478
|
-
return /* @__PURE__ */
|
|
10479
|
-
/* @__PURE__ */
|
|
10480
|
-
/* @__PURE__ */
|
|
10481
|
-
/* @__PURE__ */
|
|
10482
|
-
/* @__PURE__ */
|
|
12244
|
+
return /* @__PURE__ */ jsxs26("div", { className: panelClass("se-import-panel--confirm"), children: [
|
|
12245
|
+
/* @__PURE__ */ jsx36(StepHeader, { number: 5, title: "Confirm", subtitle: "Review and confirm your import" }),
|
|
12246
|
+
/* @__PURE__ */ jsxs26("div", { className: "se-import-overview", children: [
|
|
12247
|
+
/* @__PURE__ */ jsx36("h3", { children: "Overview" }),
|
|
12248
|
+
/* @__PURE__ */ jsx36(
|
|
10483
12249
|
Row,
|
|
10484
12250
|
{
|
|
10485
12251
|
label: overlayCount > 1 ? "Overlays to create" : "Overlay",
|
|
10486
12252
|
value: overlayCount > 1 ? `${overlayCount}` : options.name || result.overlay.name
|
|
10487
12253
|
}
|
|
10488
12254
|
),
|
|
10489
|
-
/* @__PURE__ */
|
|
10490
|
-
/* @__PURE__ */
|
|
10491
|
-
/* @__PURE__ */
|
|
10492
|
-
/* @__PURE__ */
|
|
12255
|
+
/* @__PURE__ */ jsx36(Row, { label: "Layers imported", value: `${layerCount}` }),
|
|
12256
|
+
/* @__PURE__ */ jsx36(Row, { label: "Widgets", value: `${widgets}` }),
|
|
12257
|
+
/* @__PURE__ */ jsx36(Row, { label: "Alerts", value: `${alertCount}` }),
|
|
12258
|
+
/* @__PURE__ */ jsx36(
|
|
10493
12259
|
Row,
|
|
10494
12260
|
{
|
|
10495
12261
|
label: "Assets to import",
|
|
@@ -10497,25 +12263,25 @@ function StepConfirm({
|
|
|
10497
12263
|
meta: options.mirrorAssets ? `Mirrored to Lumia storage (${mirrored})` : "Skipped"
|
|
10498
12264
|
}
|
|
10499
12265
|
),
|
|
10500
|
-
/* @__PURE__ */
|
|
12266
|
+
/* @__PURE__ */ jsx36(
|
|
10501
12267
|
Row,
|
|
10502
12268
|
{
|
|
10503
12269
|
label: "Import behavior",
|
|
10504
12270
|
value: options.mirrorAssets ? "Mirror assets and rewrite URLs" : "Keep original asset URLs"
|
|
10505
12271
|
}
|
|
10506
12272
|
),
|
|
10507
|
-
reviewBuckets.generated ? /* @__PURE__ */
|
|
10508
|
-
reviewBuckets.skipped ? /* @__PURE__ */
|
|
10509
|
-
reviewBuckets.kept ? /* @__PURE__ */
|
|
12273
|
+
reviewBuckets.generated ? /* @__PURE__ */ jsx36(Row, { label: "Generated with AI", value: `${reviewBuckets.generated}` }) : null,
|
|
12274
|
+
reviewBuckets.skipped ? /* @__PURE__ */ jsx36(Row, { label: "Skipped", value: `${reviewBuckets.skipped}` }) : null,
|
|
12275
|
+
reviewBuckets.kept ? /* @__PURE__ */ jsx36(Row, { label: "Kept as placeholder", value: `${reviewBuckets.kept}` }) : null
|
|
10510
12276
|
] }),
|
|
10511
|
-
isAdmin && result.customWidgets && result.customWidgets.length > 0 && /* @__PURE__ */
|
|
12277
|
+
isAdmin && result.customWidgets && result.customWidgets.length > 0 && /* @__PURE__ */ jsx36(CustomWidgetReview, { widgets: result.customWidgets })
|
|
10512
12278
|
] });
|
|
10513
12279
|
}
|
|
10514
12280
|
function Row({ label, value, meta }) {
|
|
10515
|
-
return /* @__PURE__ */
|
|
10516
|
-
/* @__PURE__ */
|
|
10517
|
-
/* @__PURE__ */
|
|
10518
|
-
meta && /* @__PURE__ */
|
|
12281
|
+
return /* @__PURE__ */ jsxs26("div", { className: "se-import-row", children: [
|
|
12282
|
+
/* @__PURE__ */ jsx36("span", { children: label }),
|
|
12283
|
+
/* @__PURE__ */ jsx36("strong", { children: value }),
|
|
12284
|
+
meta && /* @__PURE__ */ jsx36("em", { children: meta })
|
|
10519
12285
|
] });
|
|
10520
12286
|
}
|
|
10521
12287
|
function SEImportWizard({
|
|
@@ -10541,50 +12307,50 @@ function SEImportWizard({
|
|
|
10541
12307
|
CustomEmbed,
|
|
10542
12308
|
isAdmin
|
|
10543
12309
|
} = bindings;
|
|
10544
|
-
const [step, setStep] =
|
|
12310
|
+
const [step, setStep] = useState12(
|
|
10545
12311
|
initialStep ?? (initialUrl ? "url" : initialJwt ? "connect" : "mode")
|
|
10546
12312
|
);
|
|
10547
|
-
const [entryMode, setEntryMode] =
|
|
12313
|
+
const [entryMode, setEntryMode] = useState12(
|
|
10548
12314
|
initialStep === "url" ? "url" : initialStep === "connect" ? "jwt" : initialUrl ? "url" : initialJwt ? "jwt" : null
|
|
10549
12315
|
);
|
|
10550
|
-
const [jwt, setJwt] =
|
|
10551
|
-
const [seClient, setSeClient] =
|
|
10552
|
-
const [channels, setChannels] =
|
|
10553
|
-
const [selectedChannelId, setSelectedChannelId] =
|
|
10554
|
-
const [connectError, setConnectError] =
|
|
10555
|
-
const [connecting, setConnecting] =
|
|
10556
|
-
const [overlayList, setOverlayList] =
|
|
12316
|
+
const [jwt, setJwt] = useState12(initialJwt);
|
|
12317
|
+
const [seClient, setSeClient] = useState12(null);
|
|
12318
|
+
const [channels, setChannels] = useState12(null);
|
|
12319
|
+
const [selectedChannelId, setSelectedChannelId] = useState12(null);
|
|
12320
|
+
const [connectError, setConnectError] = useState12(null);
|
|
12321
|
+
const [connecting, setConnecting] = useState12(false);
|
|
12322
|
+
const [overlayList, setOverlayList] = useState12(
|
|
10557
12323
|
initialOverlayList?.length ? initialOverlayList : null
|
|
10558
12324
|
);
|
|
10559
|
-
const [overlaysLoading, setOverlaysLoading] =
|
|
10560
|
-
const [overlaysError, setOverlaysError] =
|
|
10561
|
-
const [selectedOverlayIds, setSelectedOverlayIds] =
|
|
10562
|
-
const [activeOverlaySummaries, setActiveOverlaySummaries] =
|
|
10563
|
-
const [activeOverlayPreview, setActiveOverlayPreview] =
|
|
10564
|
-
const [url, setUrl] =
|
|
10565
|
-
const [loadError, setLoadError] =
|
|
10566
|
-
const [loading, setLoading] =
|
|
10567
|
-
const [result, setResult] =
|
|
10568
|
-
const [batchImports, setBatchImports] =
|
|
10569
|
-
const [originalReviewItems, setOriginalReviewItems] =
|
|
10570
|
-
const [options, setOptions] =
|
|
12325
|
+
const [overlaysLoading, setOverlaysLoading] = useState12(false);
|
|
12326
|
+
const [overlaysError, setOverlaysError] = useState12(null);
|
|
12327
|
+
const [selectedOverlayIds, setSelectedOverlayIds] = useState12(/* @__PURE__ */ new Set());
|
|
12328
|
+
const [activeOverlaySummaries, setActiveOverlaySummaries] = useState12([]);
|
|
12329
|
+
const [activeOverlayPreview, setActiveOverlayPreview] = useState12();
|
|
12330
|
+
const [url, setUrl] = useState12(initialUrl);
|
|
12331
|
+
const [loadError, setLoadError] = useState12(null);
|
|
12332
|
+
const [loading, setLoading] = useState12(false);
|
|
12333
|
+
const [result, setResult] = useState12(null);
|
|
12334
|
+
const [batchImports, setBatchImports] = useState12([]);
|
|
12335
|
+
const [originalReviewItems, setOriginalReviewItems] = useState12([]);
|
|
12336
|
+
const [options, setOptions] = useState12({
|
|
10571
12337
|
mirrorAssets: true,
|
|
10572
12338
|
name: ""
|
|
10573
12339
|
});
|
|
10574
|
-
const [mirrorRows, setMirrorRows] =
|
|
10575
|
-
const [mirrorRunning, setMirrorRunning] =
|
|
10576
|
-
const [rowStates, setRowStates] =
|
|
10577
|
-
const [reviewIndex, setReviewIndex] =
|
|
10578
|
-
const [importing, setImporting] =
|
|
10579
|
-
const [marketplacePickerOpen, setMarketplacePickerOpen] =
|
|
10580
|
-
const mirrorStartedRef =
|
|
10581
|
-
const mirrorAbortRef =
|
|
10582
|
-
const initialOverlayImportStartedRef =
|
|
10583
|
-
const filenameCacheRef =
|
|
10584
|
-
const [assetUrls, setAssetUrls] =
|
|
12340
|
+
const [mirrorRows, setMirrorRows] = useState12([]);
|
|
12341
|
+
const [mirrorRunning, setMirrorRunning] = useState12(false);
|
|
12342
|
+
const [rowStates, setRowStates] = useState12({});
|
|
12343
|
+
const [reviewIndex, setReviewIndex] = useState12(0);
|
|
12344
|
+
const [importing, setImporting] = useState12(false);
|
|
12345
|
+
const [marketplacePickerOpen, setMarketplacePickerOpen] = useState12(false);
|
|
12346
|
+
const mirrorStartedRef = useRef8(false);
|
|
12347
|
+
const mirrorAbortRef = useRef8(null);
|
|
12348
|
+
const initialOverlayImportStartedRef = useRef8(false);
|
|
12349
|
+
const filenameCacheRef = useRef8(/* @__PURE__ */ new Map());
|
|
12350
|
+
const [assetUrls, setAssetUrls] = useState12([]);
|
|
10585
12351
|
const currentItem = originalReviewItems[reviewIndex];
|
|
10586
12352
|
const currentRow = currentItem ? rowStates[currentItem.moduleId] ?? { state: "pending" } : void 0;
|
|
10587
|
-
const handleConnect =
|
|
12353
|
+
const handleConnect = useCallback4(async () => {
|
|
10588
12354
|
setConnectError(null);
|
|
10589
12355
|
let client;
|
|
10590
12356
|
try {
|
|
@@ -10628,11 +12394,11 @@ function SEImportWizard({
|
|
|
10628
12394
|
setConnecting(false);
|
|
10629
12395
|
}
|
|
10630
12396
|
}, [bindings, initialJwt, jwt]);
|
|
10631
|
-
|
|
12397
|
+
useEffect9(() => {
|
|
10632
12398
|
if (initialJwt.trim() && step === "connect" && !seClient && !connecting && !connectError)
|
|
10633
12399
|
void handleConnect();
|
|
10634
12400
|
}, [connectError, connecting, handleConnect, initialJwt, seClient, step]);
|
|
10635
|
-
const loadOverlayList =
|
|
12401
|
+
const loadOverlayList = useCallback4(
|
|
10636
12402
|
async (client) => {
|
|
10637
12403
|
setOverlaysError(null);
|
|
10638
12404
|
setOverlaysLoading(true);
|
|
@@ -10657,7 +12423,7 @@ function SEImportWizard({
|
|
|
10657
12423
|
},
|
|
10658
12424
|
[bindings]
|
|
10659
12425
|
);
|
|
10660
|
-
const toggleOverlaySelection =
|
|
12426
|
+
const toggleOverlaySelection = useCallback4((id) => {
|
|
10661
12427
|
setSelectedOverlayIds((prev) => {
|
|
10662
12428
|
const next = new Set(prev);
|
|
10663
12429
|
if (next.has(id)) next.delete(id);
|
|
@@ -10665,13 +12431,13 @@ function SEImportWizard({
|
|
|
10665
12431
|
return next;
|
|
10666
12432
|
});
|
|
10667
12433
|
}, []);
|
|
10668
|
-
const selectAllOverlays =
|
|
12434
|
+
const selectAllOverlays = useCallback4(() => {
|
|
10669
12435
|
setSelectedOverlayIds(new Set((overlayList ?? []).map((o) => o._id)));
|
|
10670
12436
|
}, [overlayList]);
|
|
10671
|
-
const clearAllOverlays =
|
|
12437
|
+
const clearAllOverlays = useCallback4(() => {
|
|
10672
12438
|
setSelectedOverlayIds(/* @__PURE__ */ new Set());
|
|
10673
12439
|
}, []);
|
|
10674
|
-
const loadSelectedOverlaysAndKickoff =
|
|
12440
|
+
const loadSelectedOverlaysAndKickoff = useCallback4(
|
|
10675
12441
|
async (client, ids) => {
|
|
10676
12442
|
setLoadError(null);
|
|
10677
12443
|
setLoading(true);
|
|
@@ -10726,7 +12492,7 @@ function SEImportWizard({
|
|
|
10726
12492
|
},
|
|
10727
12493
|
[overlayList]
|
|
10728
12494
|
);
|
|
10729
|
-
const loadBootstrapAndKickoff =
|
|
12495
|
+
const loadBootstrapAndKickoff = useCallback4(
|
|
10730
12496
|
async (client, overlayId, summary) => {
|
|
10731
12497
|
setLoadError(null);
|
|
10732
12498
|
setLoading(true);
|
|
@@ -10769,7 +12535,7 @@ function SEImportWizard({
|
|
|
10769
12535
|
},
|
|
10770
12536
|
[]
|
|
10771
12537
|
);
|
|
10772
|
-
const handlePickConfirm =
|
|
12538
|
+
const handlePickConfirm = useCallback4(async () => {
|
|
10773
12539
|
if (!seClient) return;
|
|
10774
12540
|
const ids = Array.from(selectedOverlayIds);
|
|
10775
12541
|
if (ids.length === 0) return;
|
|
@@ -10789,7 +12555,7 @@ function SEImportWizard({
|
|
|
10789
12555
|
loadBootstrapAndKickoff,
|
|
10790
12556
|
loadSelectedOverlaysAndKickoff
|
|
10791
12557
|
]);
|
|
10792
|
-
|
|
12558
|
+
useEffect9(() => {
|
|
10793
12559
|
if (initialOverlayImportStartedRef.current || !seClient || !initialOverlayIds?.length || !overlayList || overlaysLoading || loading)
|
|
10794
12560
|
return;
|
|
10795
12561
|
const availableIds = new Set(overlayList.map((overlay) => overlay._id));
|
|
@@ -10813,7 +12579,7 @@ function SEImportWizard({
|
|
|
10813
12579
|
overlaysLoading,
|
|
10814
12580
|
seClient
|
|
10815
12581
|
]);
|
|
10816
|
-
const handleLoad =
|
|
12582
|
+
const handleLoad = useCallback4(async () => {
|
|
10817
12583
|
setLoadError(null);
|
|
10818
12584
|
const slParts = parseStreamlabsUrl(url);
|
|
10819
12585
|
if (slParts) {
|
|
@@ -10944,7 +12710,7 @@ function SEImportWizard({
|
|
|
10944
12710
|
}
|
|
10945
12711
|
}, [url, bindings.proxyFetch]);
|
|
10946
12712
|
const MIRROR_CONCURRENCY = 5;
|
|
10947
|
-
const processAssetRow =
|
|
12713
|
+
const processAssetRow = useCallback4(
|
|
10948
12714
|
async (assetUrl, idx, existingByFilename, signal) => {
|
|
10949
12715
|
const filename = filenameFromURL(assetUrl);
|
|
10950
12716
|
const reuseUrl = existingByFilename.get(filename);
|
|
@@ -10974,7 +12740,7 @@ function SEImportWizard({
|
|
|
10974
12740
|
},
|
|
10975
12741
|
[uploadAsset, bindings.proxyAssetFetch]
|
|
10976
12742
|
);
|
|
10977
|
-
const resolveOverlayThumbnailUrl =
|
|
12743
|
+
const resolveOverlayThumbnailUrl = useCallback4(
|
|
10978
12744
|
async (preview) => {
|
|
10979
12745
|
if (!preview) return void 0;
|
|
10980
12746
|
const filename = filenameFromURL(preview);
|
|
@@ -10998,7 +12764,7 @@ function SEImportWizard({
|
|
|
10998
12764
|
},
|
|
10999
12765
|
[existingAssets, notify, uploadAsset, bindings.proxyAssetFetch]
|
|
11000
12766
|
);
|
|
11001
|
-
const applyRewrite =
|
|
12767
|
+
const applyRewrite = useCallback4((mapping) => {
|
|
11002
12768
|
if (Object.keys(mapping).length === 0) return;
|
|
11003
12769
|
setResult(
|
|
11004
12770
|
(current) => current ? { ...current, overlay: rewriteAssetURLs(current.overlay, mapping) } : current
|
|
@@ -11013,7 +12779,7 @@ function SEImportWizard({
|
|
|
11013
12779
|
}))
|
|
11014
12780
|
);
|
|
11015
12781
|
}, []);
|
|
11016
|
-
const runMirror =
|
|
12782
|
+
const runMirror = useCallback4(async () => {
|
|
11017
12783
|
if (!result) return;
|
|
11018
12784
|
mirrorAbortRef.current?.abort();
|
|
11019
12785
|
mirrorAbortRef.current = new AbortController();
|
|
@@ -11052,7 +12818,7 @@ function SEImportWizard({
|
|
|
11052
12818
|
if (!signal.aborted) applyRewrite(rewriteMap);
|
|
11053
12819
|
setMirrorRunning(false);
|
|
11054
12820
|
}, [applyRewrite, assetUrls, existingAssets, processAssetRow, result]);
|
|
11055
|
-
const retryMirrorRow =
|
|
12821
|
+
const retryMirrorRow = useCallback4(
|
|
11056
12822
|
async (idx) => {
|
|
11057
12823
|
const rowUrl = mirrorRows[idx]?.url;
|
|
11058
12824
|
if (!rowUrl) return;
|
|
@@ -11071,29 +12837,29 @@ function SEImportWizard({
|
|
|
11071
12837
|
},
|
|
11072
12838
|
[applyRewrite, mirrorRows, processAssetRow]
|
|
11073
12839
|
);
|
|
11074
|
-
|
|
12840
|
+
useEffect9(() => {
|
|
11075
12841
|
if (step === "mirror" && !mirrorStartedRef.current) {
|
|
11076
12842
|
mirrorStartedRef.current = true;
|
|
11077
12843
|
void runMirror();
|
|
11078
12844
|
}
|
|
11079
12845
|
}, [step, runMirror]);
|
|
11080
|
-
|
|
12846
|
+
useEffect9(() => {
|
|
11081
12847
|
return () => {
|
|
11082
12848
|
setJwt("");
|
|
11083
12849
|
setSeClient(null);
|
|
11084
12850
|
mirrorAbortRef.current?.abort();
|
|
11085
12851
|
};
|
|
11086
12852
|
}, []);
|
|
11087
|
-
|
|
12853
|
+
useEffect9(() => {
|
|
11088
12854
|
if (step === "pick" && seClient && overlayList === null && !overlaysLoading) {
|
|
11089
12855
|
void loadOverlayList(seClient);
|
|
11090
12856
|
}
|
|
11091
12857
|
}, [step, seClient, overlayList, overlaysLoading, loadOverlayList]);
|
|
11092
|
-
const advanceReview =
|
|
12858
|
+
const advanceReview = useCallback4(() => {
|
|
11093
12859
|
if (reviewIndex + 1 < originalReviewItems.length) setReviewIndex(reviewIndex + 1);
|
|
11094
12860
|
else setStep("confirm");
|
|
11095
12861
|
}, [originalReviewItems.length, reviewIndex]);
|
|
11096
|
-
const setRow =
|
|
12862
|
+
const setRow = useCallback4(
|
|
11097
12863
|
(moduleId, patch) => {
|
|
11098
12864
|
setRowStates((previous) => ({
|
|
11099
12865
|
...previous,
|
|
@@ -11105,7 +12871,7 @@ function SEImportWizard({
|
|
|
11105
12871
|
},
|
|
11106
12872
|
[]
|
|
11107
12873
|
);
|
|
11108
|
-
const applyReviewActionToBatch =
|
|
12874
|
+
const applyReviewActionToBatch = useCallback4(
|
|
11109
12875
|
(moduleId, action, payload) => {
|
|
11110
12876
|
setBatchImports(
|
|
11111
12877
|
(current) => current.map(
|
|
@@ -11231,7 +12997,7 @@ function SEImportWizard({
|
|
|
11231
12997
|
setRowStates((previous) => ({ ...previous, ...patch }));
|
|
11232
12998
|
setStep("confirm");
|
|
11233
12999
|
};
|
|
11234
|
-
const handleFinalImport =
|
|
13000
|
+
const handleFinalImport = useCallback4(async () => {
|
|
11235
13001
|
if (!result || !seClient) {
|
|
11236
13002
|
if (!result) return;
|
|
11237
13003
|
setImporting(true);
|
|
@@ -11313,7 +13079,7 @@ function SEImportWizard({
|
|
|
11313
13079
|
activeOverlayPreview,
|
|
11314
13080
|
resolveOverlayThumbnailUrl
|
|
11315
13081
|
]);
|
|
11316
|
-
const visibleSteps =
|
|
13082
|
+
const visibleSteps = useMemo7(() => {
|
|
11317
13083
|
const showMirrorStep = options.mirrorAssets && (assetUrls.length > 0 || mirrorRows.length > 0 || step === "mirror");
|
|
11318
13084
|
if (step === "mode") return [];
|
|
11319
13085
|
const onUrlFlow = entryMode === "url" || step === "url";
|
|
@@ -11408,21 +13174,21 @@ function SEImportWizard({
|
|
|
11408
13174
|
return false;
|
|
11409
13175
|
})();
|
|
11410
13176
|
const activeIndex = visibleSteps.findIndex((item) => item.key === step);
|
|
11411
|
-
return /* @__PURE__ */
|
|
11412
|
-
visibleSteps.length > 0 && /* @__PURE__ */
|
|
13177
|
+
return /* @__PURE__ */ jsx36("div", { className: "se-import", children: /* @__PURE__ */ jsxs26("div", { className: "se-import__shell", children: [
|
|
13178
|
+
visibleSteps.length > 0 && /* @__PURE__ */ jsx36("header", { className: "se-import__header", children: /* @__PURE__ */ jsx36("div", { className: "se-import-stepper", children: visibleSteps.map((item, index) => /* @__PURE__ */ jsxs26(
|
|
11413
13179
|
"div",
|
|
11414
13180
|
{
|
|
11415
13181
|
className: stepClass(index < activeIndex, index === activeIndex),
|
|
11416
13182
|
children: [
|
|
11417
|
-
/* @__PURE__ */
|
|
11418
|
-
/* @__PURE__ */
|
|
11419
|
-
/* @__PURE__ */
|
|
13183
|
+
/* @__PURE__ */ jsx36("div", { className: "se-import-step__label", children: item.label }),
|
|
13184
|
+
/* @__PURE__ */ jsx36("div", { className: "se-import-step__line" }),
|
|
13185
|
+
/* @__PURE__ */ jsx36("div", { className: "se-import-step__dot", children: index < activeIndex ? "\u2713" : index + 1 })
|
|
11420
13186
|
]
|
|
11421
13187
|
},
|
|
11422
13188
|
item.key
|
|
11423
13189
|
)) }) }),
|
|
11424
|
-
/* @__PURE__ */
|
|
11425
|
-
step === "mode" && /* @__PURE__ */
|
|
13190
|
+
/* @__PURE__ */ jsxs26("main", { className: "se-import__content", children: [
|
|
13191
|
+
step === "mode" && /* @__PURE__ */ jsx36(
|
|
11426
13192
|
StepModePicker,
|
|
11427
13193
|
{
|
|
11428
13194
|
onChooseJwt: () => {
|
|
@@ -11436,7 +13202,7 @@ function SEImportWizard({
|
|
|
11436
13202
|
onOpenFullImport: bindings.onOpenFullImport
|
|
11437
13203
|
}
|
|
11438
13204
|
),
|
|
11439
|
-
step === "connect" && /* @__PURE__ */
|
|
13205
|
+
step === "connect" && /* @__PURE__ */ jsx36(
|
|
11440
13206
|
StepConnect,
|
|
11441
13207
|
{
|
|
11442
13208
|
jwt,
|
|
@@ -11452,7 +13218,7 @@ function SEImportWizard({
|
|
|
11452
13218
|
}
|
|
11453
13219
|
}
|
|
11454
13220
|
),
|
|
11455
|
-
step === "pick" && /* @__PURE__ */
|
|
13221
|
+
step === "pick" && /* @__PURE__ */ jsx36(
|
|
11456
13222
|
StepPickOverlay,
|
|
11457
13223
|
{
|
|
11458
13224
|
overlays: overlayList,
|
|
@@ -11465,7 +13231,7 @@ function SEImportWizard({
|
|
|
11465
13231
|
onRetry: () => seClient && void loadOverlayList(seClient)
|
|
11466
13232
|
}
|
|
11467
13233
|
),
|
|
11468
|
-
step === "url" && /* @__PURE__ */
|
|
13234
|
+
step === "url" && /* @__PURE__ */ jsx36(
|
|
11469
13235
|
StepURL,
|
|
11470
13236
|
{
|
|
11471
13237
|
url,
|
|
@@ -11479,7 +13245,7 @@ function SEImportWizard({
|
|
|
11479
13245
|
}
|
|
11480
13246
|
}
|
|
11481
13247
|
),
|
|
11482
|
-
step === "discovery" && result && /* @__PURE__ */
|
|
13248
|
+
step === "discovery" && result && /* @__PURE__ */ jsx36(
|
|
11483
13249
|
StepDiscovery,
|
|
11484
13250
|
{
|
|
11485
13251
|
result,
|
|
@@ -11487,7 +13253,7 @@ function SEImportWizard({
|
|
|
11487
13253
|
overlayCount: Math.max(1, activeOverlaySummaries.length)
|
|
11488
13254
|
}
|
|
11489
13255
|
),
|
|
11490
|
-
step === "options" && /* @__PURE__ */
|
|
13256
|
+
step === "options" && /* @__PURE__ */ jsx36(
|
|
11491
13257
|
StepOptions,
|
|
11492
13258
|
{
|
|
11493
13259
|
options,
|
|
@@ -11496,8 +13262,8 @@ function SEImportWizard({
|
|
|
11496
13262
|
hideName: activeOverlaySummaries.length > 1
|
|
11497
13263
|
}
|
|
11498
13264
|
),
|
|
11499
|
-
step === "mirror" && /* @__PURE__ */
|
|
11500
|
-
step === "review" && currentItem && result && !marketplacePickerOpen && /* @__PURE__ */
|
|
13265
|
+
step === "mirror" && /* @__PURE__ */ jsx36(StepMirror, { rows: mirrorRows, running: mirrorRunning, onRetry: retryMirrorRow }),
|
|
13266
|
+
step === "review" && currentItem && result && !marketplacePickerOpen && /* @__PURE__ */ jsx36(
|
|
11501
13267
|
StepReview,
|
|
11502
13268
|
{
|
|
11503
13269
|
item: currentItem,
|
|
@@ -11524,7 +13290,7 @@ function SEImportWizard({
|
|
|
11524
13290
|
marketplaceAvailable: hasMarketplaceCandidates(currentItem.seWidget.type)
|
|
11525
13291
|
}
|
|
11526
13292
|
),
|
|
11527
|
-
step === "review" && currentItem && marketplacePickerOpen && /* @__PURE__ */
|
|
13293
|
+
step === "review" && currentItem && marketplacePickerOpen && /* @__PURE__ */ jsx36("div", { className: panelClass("se-import-panel--wide"), children: /* @__PURE__ */ jsx36(
|
|
11528
13294
|
MarketplacePicker,
|
|
11529
13295
|
{
|
|
11530
13296
|
seWidgetType: currentItem.seWidget.type,
|
|
@@ -11534,7 +13300,7 @@ function SEImportWizard({
|
|
|
11534
13300
|
onCancel: () => setMarketplacePickerOpen(false)
|
|
11535
13301
|
}
|
|
11536
13302
|
) }),
|
|
11537
|
-
step === "confirm" && result && /* @__PURE__ */
|
|
13303
|
+
step === "confirm" && result && /* @__PURE__ */ jsx36(
|
|
11538
13304
|
StepConfirm,
|
|
11539
13305
|
{
|
|
11540
13306
|
result,
|
|
@@ -11546,8 +13312,8 @@ function SEImportWizard({
|
|
|
11546
13312
|
}
|
|
11547
13313
|
)
|
|
11548
13314
|
] }),
|
|
11549
|
-
/* @__PURE__ */
|
|
11550
|
-
step !== "mode" && /* @__PURE__ */
|
|
13315
|
+
/* @__PURE__ */ jsxs26("footer", { className: "se-import-actions", children: [
|
|
13316
|
+
step !== "mode" && /* @__PURE__ */ jsx36(
|
|
11551
13317
|
LSButton,
|
|
11552
13318
|
{
|
|
11553
13319
|
type: "button",
|
|
@@ -11558,7 +13324,7 @@ function SEImportWizard({
|
|
|
11558
13324
|
label: "Back"
|
|
11559
13325
|
}
|
|
11560
13326
|
),
|
|
11561
|
-
step !== "mode" && /* @__PURE__ */
|
|
13327
|
+
step !== "mode" && /* @__PURE__ */ jsx36(
|
|
11562
13328
|
LSButton,
|
|
11563
13329
|
{
|
|
11564
13330
|
type: "button",
|
|
@@ -12763,7 +14529,16 @@ function buildAIPromptForSEWidget(widget, canvas) {
|
|
|
12763
14529
|
].filter(Boolean).join("\n");
|
|
12764
14530
|
}
|
|
12765
14531
|
export {
|
|
14532
|
+
ChatMessageItem,
|
|
14533
|
+
ChatboxPanel,
|
|
14534
|
+
DialogChrome,
|
|
14535
|
+
EVENT_TYPE_FALLBACK_ICON,
|
|
14536
|
+
EVENT_TYPE_ICONS,
|
|
14537
|
+
EventList,
|
|
14538
|
+
EventListItem,
|
|
14539
|
+
EventTypeIcon,
|
|
12766
14540
|
FLAG_OFF_REASONS,
|
|
14541
|
+
GoalsList,
|
|
12767
14542
|
JWT_DASHBOARD_URL,
|
|
12768
14543
|
LSButton,
|
|
12769
14544
|
LSCheckbox,
|
|
@@ -12777,15 +14552,29 @@ export {
|
|
|
12777
14552
|
LSRadioGroup,
|
|
12778
14553
|
LSSelect,
|
|
12779
14554
|
LSSliderInput,
|
|
14555
|
+
LSSwitch,
|
|
12780
14556
|
LSTextField,
|
|
12781
14557
|
LSVariableInputField,
|
|
12782
14558
|
LSVariableInputProvider,
|
|
12783
14559
|
MEDIA_PREVIEW_USER_LEVEL_VALUES,
|
|
12784
14560
|
MarketplacePicker,
|
|
14561
|
+
ModActivityLog,
|
|
14562
|
+
ModQueueItem,
|
|
14563
|
+
ModQueueList,
|
|
14564
|
+
ModalChrome,
|
|
14565
|
+
PLATFORM_ICON_URLS,
|
|
14566
|
+
PanelChrome,
|
|
14567
|
+
PlatformIcon,
|
|
12785
14568
|
SEAuthError,
|
|
12786
14569
|
SEClient,
|
|
12787
14570
|
SEImportWizard,
|
|
12788
14571
|
SE_WIDGET_TO_MARKETPLACE_CANDIDATES,
|
|
14572
|
+
ShortcutDockGrid,
|
|
14573
|
+
SongRequestList,
|
|
14574
|
+
StreamStatusPanel,
|
|
14575
|
+
ViewersList,
|
|
14576
|
+
WidgetChrome,
|
|
14577
|
+
WidgetChromeButton,
|
|
12789
14578
|
applyReviewAction,
|
|
12790
14579
|
buildAIPromptForSEWidget,
|
|
12791
14580
|
buildBootstrapUrl,
|
|
@@ -12806,11 +14595,13 @@ export {
|
|
|
12806
14595
|
fetchWithProxyFallback,
|
|
12807
14596
|
filenameFromURL,
|
|
12808
14597
|
findSEAssetURLs,
|
|
14598
|
+
formatStatValue,
|
|
12809
14599
|
getAILandingBounds,
|
|
12810
14600
|
getJwtInstructionSteps,
|
|
12811
14601
|
getMarketplaceCandidates,
|
|
12812
14602
|
getMediaPreviewFromUrl,
|
|
12813
14603
|
getNormalizedUserLevels,
|
|
14604
|
+
getPlatformIconUrl,
|
|
12814
14605
|
hasMarketplaceCandidates,
|
|
12815
14606
|
importElementOverlay,
|
|
12816
14607
|
importSEBootstrap,
|
|
@@ -12837,5 +14628,6 @@ export {
|
|
|
12837
14628
|
substituteSeTokens,
|
|
12838
14629
|
tokenizeChatMessage,
|
|
12839
14630
|
transplantLayer,
|
|
14631
|
+
useAutoScroll,
|
|
12840
14632
|
variableCompletionOptions
|
|
12841
14633
|
};
|