@livepeer-frameworks/player-wc 0.1.8 → 0.2.1
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/esm/components/controls/fw-fullscreen-button.js +76 -0
- package/dist/esm/components/controls/fw-fullscreen-button.js.map +1 -0
- package/dist/esm/components/controls/fw-live-badge.js +109 -0
- package/dist/esm/components/controls/fw-live-badge.js.map +1 -0
- package/dist/esm/components/controls/fw-play-button.js +76 -0
- package/dist/esm/components/controls/fw-play-button.js.map +1 -0
- package/dist/esm/components/controls/fw-skip-button.js +62 -0
- package/dist/esm/components/controls/fw-skip-button.js.map +1 -0
- package/dist/esm/components/controls/fw-time-display.js +77 -0
- package/dist/esm/components/controls/fw-time-display.js.map +1 -0
- package/dist/esm/components/controls/fw-volume-control.js +76 -0
- package/dist/esm/components/controls/fw-volume-control.js.map +1 -0
- package/dist/esm/components/fw-dev-mode-panel.js +11 -15
- package/dist/esm/components/fw-dev-mode-panel.js.map +1 -1
- package/dist/esm/components/fw-error-overlay.js +13 -5
- package/dist/esm/components/fw-error-overlay.js.map +1 -1
- package/dist/esm/components/fw-idle-screen.js +10 -2
- package/dist/esm/components/fw-idle-screen.js.map +1 -1
- package/dist/esm/components/fw-loading-screen.js +89 -42
- package/dist/esm/components/fw-loading-screen.js.map +1 -1
- package/dist/esm/components/fw-loading-spinner.js +20 -9
- package/dist/esm/components/fw-loading-spinner.js.map +1 -1
- package/dist/esm/components/fw-player-controls.js +41 -26
- package/dist/esm/components/fw-player-controls.js.map +1 -1
- package/dist/esm/components/fw-player.js +165 -59
- package/dist/esm/components/fw-player.js.map +1 -1
- package/dist/esm/components/fw-settings-menu.js +44 -9
- package/dist/esm/components/fw-settings-menu.js.map +1 -1
- package/dist/esm/components/fw-stream-state-overlay.js +13 -5
- package/dist/esm/components/fw-stream-state-overlay.js.map +1 -1
- package/dist/esm/components/fw-toast.js +11 -1
- package/dist/esm/components/fw-toast.js.map +1 -1
- package/dist/esm/components/fw-volume-control.js +104 -39
- package/dist/esm/components/fw-volume-control.js.map +1 -1
- package/dist/esm/controllers/player-controller-host.js +14 -1
- package/dist/esm/controllers/player-controller-host.js.map +1 -1
- package/dist/esm/index.js +6 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/styles/shared-styles.js +401 -304
- package/dist/esm/styles/shared-styles.js.map +1 -1
- package/dist/fw-player.iife.js +722 -499
- package/dist/types/components/controls/fw-fullscreen-button.d.ts +18 -0
- package/dist/types/components/controls/fw-live-badge.d.ts +19 -0
- package/dist/types/components/controls/fw-play-button.d.ts +18 -0
- package/dist/types/components/controls/fw-skip-button.d.ts +17 -0
- package/dist/types/components/controls/fw-time-display.d.ts +17 -0
- package/dist/types/components/controls/fw-volume-control.d.ts +18 -0
- package/dist/types/components/controls/index.d.ts +6 -0
- package/dist/types/components/fw-dev-mode-panel.d.ts +1 -1
- package/dist/types/components/fw-error-overlay.d.ts +4 -0
- package/dist/types/components/fw-idle-screen.d.ts +4 -0
- package/dist/types/components/fw-loading-screen.d.ts +5 -1
- package/dist/types/components/fw-loading-spinner.d.ts +4 -0
- package/dist/types/components/fw-player-controls.d.ts +3 -1
- package/dist/types/components/fw-player.d.ts +10 -1
- package/dist/types/components/fw-settings-menu.d.ts +3 -1
- package/dist/types/components/fw-stream-state-overlay.d.ts +4 -0
- package/dist/types/components/fw-toast.d.ts +4 -0
- package/dist/types/components/fw-volume-control.d.ts +11 -0
- package/dist/types/controllers/player-controller-host.d.ts +7 -1
- package/dist/types/index.d.ts +1 -0
- package/package.json +10 -13
- package/src/components/controls/fw-fullscreen-button.ts +75 -0
- package/src/components/controls/fw-live-badge.ts +109 -0
- package/src/components/controls/fw-play-button.ts +75 -0
- package/src/components/controls/fw-skip-button.ts +59 -0
- package/src/components/controls/fw-time-display.ts +74 -0
- package/src/components/controls/fw-volume-control.ts +75 -0
- package/src/components/controls/index.ts +6 -0
- package/src/components/fw-dev-mode-panel.ts +10 -17
- package/src/components/fw-error-overlay.ts +13 -5
- package/src/components/fw-idle-screen.ts +10 -2
- package/src/components/fw-loading-screen.ts +90 -46
- package/src/components/fw-loading-spinner.ts +18 -9
- package/src/components/fw-player-controls.ts +39 -28
- package/src/components/fw-player.ts +166 -64
- package/src/components/fw-settings-menu.ts +49 -9
- package/src/components/fw-stream-state-overlay.ts +13 -5
- package/src/components/fw-toast.ts +11 -1
- package/src/components/fw-volume-control.ts +112 -43
- package/src/controllers/player-controller-host.ts +18 -0
- package/src/index.ts +10 -0
- package/src/styles/shared-styles.ts +401 -304
- package/dist/cjs/components/fw-context-menu.js +0 -17
- package/dist/cjs/components/fw-context-menu.js.map +0 -1
- package/dist/cjs/components/fw-dev-mode-panel.js +0 -907
- package/dist/cjs/components/fw-dev-mode-panel.js.map +0 -1
- package/dist/cjs/components/fw-dvd-logo.js +0 -211
- package/dist/cjs/components/fw-dvd-logo.js.map +0 -1
- package/dist/cjs/components/fw-error-overlay.js +0 -101
- package/dist/cjs/components/fw-error-overlay.js.map +0 -1
- package/dist/cjs/components/fw-idle-screen.js +0 -726
- package/dist/cjs/components/fw-idle-screen.js.map +0 -1
- package/dist/cjs/components/fw-loading-screen.js +0 -513
- package/dist/cjs/components/fw-loading-screen.js.map +0 -1
- package/dist/cjs/components/fw-loading-spinner.js +0 -62
- package/dist/cjs/components/fw-loading-spinner.js.map +0 -1
- package/dist/cjs/components/fw-player-controls.js +0 -441
- package/dist/cjs/components/fw-player-controls.js.map +0 -1
- package/dist/cjs/components/fw-player.js +0 -832
- package/dist/cjs/components/fw-player.js.map +0 -1
- package/dist/cjs/components/fw-seek-bar.js +0 -383
- package/dist/cjs/components/fw-seek-bar.js.map +0 -1
- package/dist/cjs/components/fw-settings-menu.js +0 -253
- package/dist/cjs/components/fw-settings-menu.js.map +0 -1
- package/dist/cjs/components/fw-skip-indicator.js +0 -143
- package/dist/cjs/components/fw-skip-indicator.js.map +0 -1
- package/dist/cjs/components/fw-speed-indicator.js +0 -61
- package/dist/cjs/components/fw-speed-indicator.js.map +0 -1
- package/dist/cjs/components/fw-stats-panel.js +0 -205
- package/dist/cjs/components/fw-stats-panel.js.map +0 -1
- package/dist/cjs/components/fw-stream-state-overlay.js +0 -338
- package/dist/cjs/components/fw-stream-state-overlay.js.map +0 -1
- package/dist/cjs/components/fw-subtitle-renderer.js +0 -217
- package/dist/cjs/components/fw-subtitle-renderer.js.map +0 -1
- package/dist/cjs/components/fw-thumbnail-overlay.js +0 -161
- package/dist/cjs/components/fw-thumbnail-overlay.js.map +0 -1
- package/dist/cjs/components/fw-title-overlay.js +0 -72
- package/dist/cjs/components/fw-title-overlay.js.map +0 -1
- package/dist/cjs/components/fw-toast.js +0 -74
- package/dist/cjs/components/fw-toast.js.map +0 -1
- package/dist/cjs/components/fw-volume-control.js +0 -221
- package/dist/cjs/components/fw-volume-control.js.map +0 -1
- package/dist/cjs/components/shared/hitmarker-audio.js +0 -76
- package/dist/cjs/components/shared/hitmarker-audio.js.map +0 -1
- package/dist/cjs/constants/media-assets.js +0 -11
- package/dist/cjs/constants/media-assets.js.map +0 -1
- package/dist/cjs/controllers/player-controller-host.js +0 -364
- package/dist/cjs/controllers/player-controller-host.js.map +0 -1
- package/dist/cjs/define.js +0 -53
- package/dist/cjs/define.js.map +0 -1
- package/dist/cjs/icons/index.js +0 -180
- package/dist/cjs/icons/index.js.map +0 -1
- package/dist/cjs/index.js +0 -108
- package/dist/cjs/index.js.map +0 -1
- package/dist/cjs/node_modules/.pnpm/@rollup_plugin-typescript@12.3.0_rollup@4.57.1_tslib@2.8.1_typescript@5.9.3/node_modules/tslib/tslib.es6.js +0 -33
- package/dist/cjs/node_modules/.pnpm/@rollup_plugin-typescript@12.3.0_rollup@4.57.1_tslib@2.8.1_typescript@5.9.3/node_modules/tslib/tslib.es6.js.map +0 -1
- package/dist/cjs/styles/shared-styles.js +0 -1985
- package/dist/cjs/styles/shared-styles.js.map +0 -1
- package/dist/cjs/styles/utility-styles.js +0 -725
- package/dist/cjs/styles/utility-styles.js.map +0 -1
|
@@ -1,221 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var tslib_es6 = require('../node_modules/.pnpm/@rollup_plugin-typescript@12.3.0_rollup@4.57.1_tslib@2.8.1_typescript@5.9.3/node_modules/tslib/tslib.es6.js');
|
|
4
|
-
var lit = require('lit');
|
|
5
|
-
var decorators_js = require('lit/decorators.js');
|
|
6
|
-
var classMap_js = require('lit/directives/class-map.js');
|
|
7
|
-
var styleMap_js = require('lit/directives/style-map.js');
|
|
8
|
-
var sharedStyles = require('../styles/shared-styles.js');
|
|
9
|
-
var index = require('../icons/index.js');
|
|
10
|
-
|
|
11
|
-
exports.FwVolumeControl = class FwVolumeControl extends lit.LitElement {
|
|
12
|
-
constructor() {
|
|
13
|
-
super(...arguments);
|
|
14
|
-
this._hovered = false;
|
|
15
|
-
this._focused = false;
|
|
16
|
-
this._hasAudio = true;
|
|
17
|
-
this._activePointerId = null;
|
|
18
|
-
this._onSliderPointerDown = (event) => {
|
|
19
|
-
if (!this._hasAudio) {
|
|
20
|
-
return;
|
|
21
|
-
}
|
|
22
|
-
event.preventDefault();
|
|
23
|
-
const target = event.currentTarget;
|
|
24
|
-
this._activePointerId = event.pointerId;
|
|
25
|
-
this._setVolumeFromClientX(event.clientX, target);
|
|
26
|
-
const onMove = (moveEvent) => {
|
|
27
|
-
if (this._activePointerId !== moveEvent.pointerId) {
|
|
28
|
-
return;
|
|
29
|
-
}
|
|
30
|
-
this._setVolumeFromClientX(moveEvent.clientX, target);
|
|
31
|
-
};
|
|
32
|
-
const onUp = (upEvent) => {
|
|
33
|
-
if (this._activePointerId !== upEvent.pointerId) {
|
|
34
|
-
return;
|
|
35
|
-
}
|
|
36
|
-
this._activePointerId = null;
|
|
37
|
-
window.removeEventListener("pointermove", onMove);
|
|
38
|
-
window.removeEventListener("pointerup", onUp);
|
|
39
|
-
window.removeEventListener("pointercancel", onUp);
|
|
40
|
-
};
|
|
41
|
-
window.addEventListener("pointermove", onMove);
|
|
42
|
-
window.addEventListener("pointerup", onUp);
|
|
43
|
-
window.addEventListener("pointercancel", onUp);
|
|
44
|
-
};
|
|
45
|
-
this._onWheel = (event) => {
|
|
46
|
-
if (!this._hasAudio) {
|
|
47
|
-
return;
|
|
48
|
-
}
|
|
49
|
-
event.preventDefault();
|
|
50
|
-
const current = this.pc.s.isMuted ? 0 : Math.round(this.pc.s.volume * 100);
|
|
51
|
-
const delta = event.deltaY < 0 ? 5 : -5;
|
|
52
|
-
const next = Math.max(0, Math.min(100, current + delta));
|
|
53
|
-
this.pc.setVolume(next / 100);
|
|
54
|
-
if (this.pc.s.isMuted && next > 0) {
|
|
55
|
-
this.pc.toggleMute();
|
|
56
|
-
}
|
|
57
|
-
};
|
|
58
|
-
}
|
|
59
|
-
get _expanded() {
|
|
60
|
-
return this._hovered || this._focused;
|
|
61
|
-
}
|
|
62
|
-
updated() {
|
|
63
|
-
this._updateHasAudio();
|
|
64
|
-
}
|
|
65
|
-
_updateHasAudio() {
|
|
66
|
-
const video = this.pc?.s.videoElement;
|
|
67
|
-
if (!video) {
|
|
68
|
-
this._hasAudio = true;
|
|
69
|
-
return;
|
|
70
|
-
}
|
|
71
|
-
if (video.srcObject instanceof MediaStream) {
|
|
72
|
-
this._hasAudio = video.srcObject.getAudioTracks().length > 0;
|
|
73
|
-
return;
|
|
74
|
-
}
|
|
75
|
-
const maybeWithTracks = video;
|
|
76
|
-
if (maybeWithTracks.audioTracks && typeof maybeWithTracks.audioTracks.length === "number") {
|
|
77
|
-
this._hasAudio = maybeWithTracks.audioTracks.length > 0;
|
|
78
|
-
return;
|
|
79
|
-
}
|
|
80
|
-
this._hasAudio = true;
|
|
81
|
-
}
|
|
82
|
-
_setVolumeFromClientX(clientX, target) {
|
|
83
|
-
const rect = target.getBoundingClientRect();
|
|
84
|
-
if (rect.width <= 0) {
|
|
85
|
-
return;
|
|
86
|
-
}
|
|
87
|
-
const pct = Math.max(0, Math.min(1, (clientX - rect.left) / rect.width));
|
|
88
|
-
this.pc.setVolume(pct);
|
|
89
|
-
if (this.pc.s.isMuted && pct > 0) {
|
|
90
|
-
this.pc.toggleMute();
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
render() {
|
|
94
|
-
const isMuted = this.pc.s.isMuted;
|
|
95
|
-
const volume = this.pc.s.volume;
|
|
96
|
-
const displayVolume = isMuted ? 0 : Math.max(0, Math.min(1, volume));
|
|
97
|
-
return lit.html `
|
|
98
|
-
<div
|
|
99
|
-
class=${classMap_js.classMap({
|
|
100
|
-
"fw-volume-group": true,
|
|
101
|
-
"fw-volume-group--expanded": this._expanded,
|
|
102
|
-
"fw-volume-group--disabled": !this._hasAudio,
|
|
103
|
-
})}
|
|
104
|
-
role="group"
|
|
105
|
-
aria-label="Volume controls"
|
|
106
|
-
@mouseenter=${() => {
|
|
107
|
-
this._hovered = true;
|
|
108
|
-
}}
|
|
109
|
-
@mouseleave=${() => {
|
|
110
|
-
this._hovered = false;
|
|
111
|
-
this._focused = false;
|
|
112
|
-
}}
|
|
113
|
-
@focusin=${() => {
|
|
114
|
-
this._focused = true;
|
|
115
|
-
}}
|
|
116
|
-
@focusout=${(event) => {
|
|
117
|
-
const related = event.relatedTarget;
|
|
118
|
-
if (!related || !this.renderRoot.contains(related)) {
|
|
119
|
-
this._focused = false;
|
|
120
|
-
}
|
|
121
|
-
}}
|
|
122
|
-
@click=${(event) => {
|
|
123
|
-
if (this._hasAudio && event.target === event.currentTarget) {
|
|
124
|
-
this.pc.toggleMute();
|
|
125
|
-
}
|
|
126
|
-
}}
|
|
127
|
-
@wheel=${this._onWheel}
|
|
128
|
-
>
|
|
129
|
-
<button
|
|
130
|
-
class="fw-volume-btn"
|
|
131
|
-
type="button"
|
|
132
|
-
@click=${() => {
|
|
133
|
-
if (this._hasAudio) {
|
|
134
|
-
this.pc.toggleMute();
|
|
135
|
-
}
|
|
136
|
-
}}
|
|
137
|
-
?disabled=${!this._hasAudio}
|
|
138
|
-
aria-label=${!this._hasAudio ? "No audio" : isMuted ? "Unmute" : "Mute"}
|
|
139
|
-
title=${!this._hasAudio ? "No audio" : isMuted ? "Unmute" : "Mute"}
|
|
140
|
-
>
|
|
141
|
-
${isMuted || !this._hasAudio ? index.volumeOffIcon(16) : index.volumeUpIcon(16)}
|
|
142
|
-
</button>
|
|
143
|
-
|
|
144
|
-
<div
|
|
145
|
-
class=${classMap_js.classMap({
|
|
146
|
-
"fw-volume-slider-wrapper": true,
|
|
147
|
-
"fw-volume-slider-wrapper--expanded": this._expanded,
|
|
148
|
-
"fw-volume-slider-wrapper--collapsed": !this._expanded,
|
|
149
|
-
})}
|
|
150
|
-
>
|
|
151
|
-
<div
|
|
152
|
-
class="slider"
|
|
153
|
-
role="slider"
|
|
154
|
-
aria-label="Volume"
|
|
155
|
-
aria-valuemin="0"
|
|
156
|
-
aria-valuemax="100"
|
|
157
|
-
aria-valuenow=${Math.round(displayVolume * 100)}
|
|
158
|
-
@pointerdown=${this._onSliderPointerDown}
|
|
159
|
-
>
|
|
160
|
-
<div class="slider-fill" style=${styleMap_js.styleMap({ width: `${displayVolume * 100}%` })}></div>
|
|
161
|
-
<div class="slider-thumb" style=${styleMap_js.styleMap({ left: `${displayVolume * 100}%` })}></div>
|
|
162
|
-
</div>
|
|
163
|
-
</div>
|
|
164
|
-
</div>
|
|
165
|
-
`;
|
|
166
|
-
}
|
|
167
|
-
};
|
|
168
|
-
exports.FwVolumeControl.styles = [
|
|
169
|
-
sharedStyles.sharedStyles,
|
|
170
|
-
lit.css `
|
|
171
|
-
:host {
|
|
172
|
-
display: flex;
|
|
173
|
-
align-items: center;
|
|
174
|
-
}
|
|
175
|
-
|
|
176
|
-
.slider {
|
|
177
|
-
position: relative;
|
|
178
|
-
width: 100%;
|
|
179
|
-
height: 0.25rem;
|
|
180
|
-
background: rgb(255 255 255 / 0.2);
|
|
181
|
-
border-radius: 9999px;
|
|
182
|
-
cursor: pointer;
|
|
183
|
-
}
|
|
184
|
-
|
|
185
|
-
.slider-fill {
|
|
186
|
-
position: absolute;
|
|
187
|
-
top: 0;
|
|
188
|
-
left: 0;
|
|
189
|
-
height: 100%;
|
|
190
|
-
border-radius: 9999px;
|
|
191
|
-
background: hsl(var(--tn-fg));
|
|
192
|
-
}
|
|
193
|
-
|
|
194
|
-
.slider-thumb {
|
|
195
|
-
position: absolute;
|
|
196
|
-
top: 50%;
|
|
197
|
-
width: 0.625rem;
|
|
198
|
-
height: 0.625rem;
|
|
199
|
-
border-radius: 9999px;
|
|
200
|
-
background: hsl(var(--tn-fg));
|
|
201
|
-
transform: translate(-50%, -50%);
|
|
202
|
-
pointer-events: none;
|
|
203
|
-
}
|
|
204
|
-
`,
|
|
205
|
-
];
|
|
206
|
-
tslib_es6.__decorate([
|
|
207
|
-
decorators_js.property({ attribute: false })
|
|
208
|
-
], exports.FwVolumeControl.prototype, "pc", void 0);
|
|
209
|
-
tslib_es6.__decorate([
|
|
210
|
-
decorators_js.state()
|
|
211
|
-
], exports.FwVolumeControl.prototype, "_hovered", void 0);
|
|
212
|
-
tslib_es6.__decorate([
|
|
213
|
-
decorators_js.state()
|
|
214
|
-
], exports.FwVolumeControl.prototype, "_focused", void 0);
|
|
215
|
-
tslib_es6.__decorate([
|
|
216
|
-
decorators_js.state()
|
|
217
|
-
], exports.FwVolumeControl.prototype, "_hasAudio", void 0);
|
|
218
|
-
exports.FwVolumeControl = tslib_es6.__decorate([
|
|
219
|
-
decorators_js.customElement("fw-volume-control")
|
|
220
|
-
], exports.FwVolumeControl);
|
|
221
|
-
//# sourceMappingURL=fw-volume-control.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fw-volume-control.js","sources":["../../../../src/components/fw-volume-control.ts"],"sourcesContent":["/**\n * <fw-volume-control> — Mute toggle + expandable volume slider.\n */\nimport { LitElement, html, css } from \"lit\";\nimport { customElement, property, state } from \"lit/decorators.js\";\nimport { classMap } from \"lit/directives/class-map.js\";\nimport { styleMap } from \"lit/directives/style-map.js\";\nimport { sharedStyles } from \"../styles/shared-styles.js\";\nimport { volumeUpIcon, volumeOffIcon } from \"../icons/index.js\";\nimport type { PlayerControllerHost } from \"../controllers/player-controller-host.js\";\n\n@customElement(\"fw-volume-control\")\nexport class FwVolumeControl extends LitElement {\n @property({ attribute: false }) pc!: PlayerControllerHost;\n\n @state() private _hovered = false;\n @state() private _focused = false;\n @state() private _hasAudio = true;\n\n private _activePointerId: number | null = null;\n\n static styles = [\n sharedStyles,\n css`\n :host {\n display: flex;\n align-items: center;\n }\n\n .slider {\n position: relative;\n width: 100%;\n height: 0.25rem;\n background: rgb(255 255 255 / 0.2);\n border-radius: 9999px;\n cursor: pointer;\n }\n\n .slider-fill {\n position: absolute;\n top: 0;\n left: 0;\n height: 100%;\n border-radius: 9999px;\n background: hsl(var(--tn-fg));\n }\n\n .slider-thumb {\n position: absolute;\n top: 50%;\n width: 0.625rem;\n height: 0.625rem;\n border-radius: 9999px;\n background: hsl(var(--tn-fg));\n transform: translate(-50%, -50%);\n pointer-events: none;\n }\n `,\n ];\n\n private get _expanded(): boolean {\n return this._hovered || this._focused;\n }\n\n protected updated(): void {\n this._updateHasAudio();\n }\n\n private _updateHasAudio(): void {\n const video = this.pc?.s.videoElement;\n if (!video) {\n this._hasAudio = true;\n return;\n }\n\n if (video.srcObject instanceof MediaStream) {\n this._hasAudio = video.srcObject.getAudioTracks().length > 0;\n return;\n }\n\n const maybeWithTracks = video as HTMLVideoElement & {\n audioTracks?: {\n length: number;\n };\n };\n\n if (maybeWithTracks.audioTracks && typeof maybeWithTracks.audioTracks.length === \"number\") {\n this._hasAudio = maybeWithTracks.audioTracks.length > 0;\n return;\n }\n\n this._hasAudio = true;\n }\n\n private _setVolumeFromClientX(clientX: number, target: HTMLElement): void {\n const rect = target.getBoundingClientRect();\n if (rect.width <= 0) {\n return;\n }\n\n const pct = Math.max(0, Math.min(1, (clientX - rect.left) / rect.width));\n this.pc.setVolume(pct);\n\n if (this.pc.s.isMuted && pct > 0) {\n this.pc.toggleMute();\n }\n }\n\n private _onSliderPointerDown = (event: PointerEvent) => {\n if (!this._hasAudio) {\n return;\n }\n\n event.preventDefault();\n const target = event.currentTarget as HTMLElement;\n this._activePointerId = event.pointerId;\n this._setVolumeFromClientX(event.clientX, target);\n\n const onMove = (moveEvent: PointerEvent) => {\n if (this._activePointerId !== moveEvent.pointerId) {\n return;\n }\n this._setVolumeFromClientX(moveEvent.clientX, target);\n };\n\n const onUp = (upEvent: PointerEvent) => {\n if (this._activePointerId !== upEvent.pointerId) {\n return;\n }\n\n this._activePointerId = null;\n window.removeEventListener(\"pointermove\", onMove);\n window.removeEventListener(\"pointerup\", onUp);\n window.removeEventListener(\"pointercancel\", onUp);\n };\n\n window.addEventListener(\"pointermove\", onMove);\n window.addEventListener(\"pointerup\", onUp);\n window.addEventListener(\"pointercancel\", onUp);\n };\n\n private _onWheel = (event: WheelEvent) => {\n if (!this._hasAudio) {\n return;\n }\n\n event.preventDefault();\n\n const current = this.pc.s.isMuted ? 0 : Math.round(this.pc.s.volume * 100);\n const delta = event.deltaY < 0 ? 5 : -5;\n const next = Math.max(0, Math.min(100, current + delta));\n this.pc.setVolume(next / 100);\n\n if (this.pc.s.isMuted && next > 0) {\n this.pc.toggleMute();\n }\n };\n\n protected render() {\n const isMuted = this.pc.s.isMuted;\n const volume = this.pc.s.volume;\n const displayVolume = isMuted ? 0 : Math.max(0, Math.min(1, volume));\n\n return html`\n <div\n class=${classMap({\n \"fw-volume-group\": true,\n \"fw-volume-group--expanded\": this._expanded,\n \"fw-volume-group--disabled\": !this._hasAudio,\n })}\n role=\"group\"\n aria-label=\"Volume controls\"\n @mouseenter=${() => {\n this._hovered = true;\n }}\n @mouseleave=${() => {\n this._hovered = false;\n this._focused = false;\n }}\n @focusin=${() => {\n this._focused = true;\n }}\n @focusout=${(event: FocusEvent) => {\n const related = event.relatedTarget as Node | null;\n if (!related || !this.renderRoot.contains(related)) {\n this._focused = false;\n }\n }}\n @click=${(event: MouseEvent) => {\n if (this._hasAudio && event.target === event.currentTarget) {\n this.pc.toggleMute();\n }\n }}\n @wheel=${this._onWheel}\n >\n <button\n class=\"fw-volume-btn\"\n type=\"button\"\n @click=${() => {\n if (this._hasAudio) {\n this.pc.toggleMute();\n }\n }}\n ?disabled=${!this._hasAudio}\n aria-label=${!this._hasAudio ? \"No audio\" : isMuted ? \"Unmute\" : \"Mute\"}\n title=${!this._hasAudio ? \"No audio\" : isMuted ? \"Unmute\" : \"Mute\"}\n >\n ${isMuted || !this._hasAudio ? volumeOffIcon(16) : volumeUpIcon(16)}\n </button>\n\n <div\n class=${classMap({\n \"fw-volume-slider-wrapper\": true,\n \"fw-volume-slider-wrapper--expanded\": this._expanded,\n \"fw-volume-slider-wrapper--collapsed\": !this._expanded,\n })}\n >\n <div\n class=\"slider\"\n role=\"slider\"\n aria-label=\"Volume\"\n aria-valuemin=\"0\"\n aria-valuemax=\"100\"\n aria-valuenow=${Math.round(displayVolume * 100)}\n @pointerdown=${this._onSliderPointerDown}\n >\n <div class=\"slider-fill\" style=${styleMap({ width: `${displayVolume * 100}%` })}></div>\n <div class=\"slider-thumb\" style=${styleMap({ left: `${displayVolume * 100}%` })}></div>\n </div>\n </div>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"fw-volume-control\": FwVolumeControl;\n }\n}\n"],"names":["FwVolumeControl","LitElement","html","classMap","volumeOffIcon","volumeUpIcon","styleMap","sharedStyles","css","__decorate","property","state","customElement"],"mappings":"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"}
|
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var mediaAssets = require('../../constants/media-assets.js');
|
|
4
|
-
|
|
5
|
-
function createSyntheticHitmarkerSound() {
|
|
6
|
-
try {
|
|
7
|
-
const AudioContextCtor = window.AudioContext ||
|
|
8
|
-
window.webkitAudioContext;
|
|
9
|
-
if (!AudioContextCtor) {
|
|
10
|
-
return;
|
|
11
|
-
}
|
|
12
|
-
const audioContext = new AudioContextCtor();
|
|
13
|
-
const oscillator1 = audioContext.createOscillator();
|
|
14
|
-
const oscillator2 = audioContext.createOscillator();
|
|
15
|
-
const noiseBuffer = audioContext.createBuffer(1, audioContext.sampleRate * 0.1, audioContext.sampleRate);
|
|
16
|
-
const noiseSource = audioContext.createBufferSource();
|
|
17
|
-
const noiseData = noiseBuffer.getChannelData(0);
|
|
18
|
-
for (let index = 0; index < noiseData.length; index += 1) {
|
|
19
|
-
noiseData[index] = Math.random() * 2 - 1;
|
|
20
|
-
}
|
|
21
|
-
noiseSource.buffer = noiseBuffer;
|
|
22
|
-
const gainNode1 = audioContext.createGain();
|
|
23
|
-
const gainNode2 = audioContext.createGain();
|
|
24
|
-
const noiseGain = audioContext.createGain();
|
|
25
|
-
const masterGain = audioContext.createGain();
|
|
26
|
-
oscillator1.connect(gainNode1);
|
|
27
|
-
oscillator2.connect(gainNode2);
|
|
28
|
-
noiseSource.connect(noiseGain);
|
|
29
|
-
gainNode1.connect(masterGain);
|
|
30
|
-
gainNode2.connect(masterGain);
|
|
31
|
-
noiseGain.connect(masterGain);
|
|
32
|
-
masterGain.connect(audioContext.destination);
|
|
33
|
-
oscillator1.frequency.setValueAtTime(1800, audioContext.currentTime);
|
|
34
|
-
oscillator1.frequency.exponentialRampToValueAtTime(900, audioContext.currentTime + 0.08);
|
|
35
|
-
oscillator2.frequency.setValueAtTime(3600, audioContext.currentTime);
|
|
36
|
-
oscillator2.frequency.exponentialRampToValueAtTime(1800, audioContext.currentTime + 0.04);
|
|
37
|
-
oscillator1.type = "triangle";
|
|
38
|
-
oscillator2.type = "sine";
|
|
39
|
-
gainNode1.gain.setValueAtTime(0, audioContext.currentTime);
|
|
40
|
-
gainNode1.gain.linearRampToValueAtTime(0.4, audioContext.currentTime + 0.002);
|
|
41
|
-
gainNode1.gain.exponentialRampToValueAtTime(0.001, audioContext.currentTime + 0.12);
|
|
42
|
-
gainNode2.gain.setValueAtTime(0, audioContext.currentTime);
|
|
43
|
-
gainNode2.gain.linearRampToValueAtTime(0.3, audioContext.currentTime + 0.001);
|
|
44
|
-
gainNode2.gain.exponentialRampToValueAtTime(0.001, audioContext.currentTime + 0.06);
|
|
45
|
-
noiseGain.gain.setValueAtTime(0, audioContext.currentTime);
|
|
46
|
-
noiseGain.gain.linearRampToValueAtTime(0.2, audioContext.currentTime + 0.001);
|
|
47
|
-
noiseGain.gain.exponentialRampToValueAtTime(0.001, audioContext.currentTime + 0.01);
|
|
48
|
-
masterGain.gain.setValueAtTime(0.5, audioContext.currentTime);
|
|
49
|
-
const startTime = audioContext.currentTime;
|
|
50
|
-
const stopTime = startTime + 0.15;
|
|
51
|
-
oscillator1.start(startTime);
|
|
52
|
-
oscillator2.start(startTime);
|
|
53
|
-
noiseSource.start(startTime);
|
|
54
|
-
oscillator1.stop(stopTime);
|
|
55
|
-
oscillator2.stop(stopTime);
|
|
56
|
-
noiseSource.stop(startTime + 0.02);
|
|
57
|
-
}
|
|
58
|
-
catch {
|
|
59
|
-
// Ignore audio errors.
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
function playHitmarkerSound() {
|
|
63
|
-
try {
|
|
64
|
-
const audio = new Audio(mediaAssets.HITMARKER_AUDIO_DATA_URL);
|
|
65
|
-
audio.volume = 0.3;
|
|
66
|
-
void audio.play().catch(() => {
|
|
67
|
-
createSyntheticHitmarkerSound();
|
|
68
|
-
});
|
|
69
|
-
}
|
|
70
|
-
catch {
|
|
71
|
-
createSyntheticHitmarkerSound();
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
exports.playHitmarkerSound = playHitmarkerSound;
|
|
76
|
-
//# sourceMappingURL=hitmarker-audio.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"hitmarker-audio.js","sources":["../../../../../src/components/shared/hitmarker-audio.ts"],"sourcesContent":["import { HITMARKER_AUDIO_DATA_URL } from \"../../constants/media-assets.js\";\n\nfunction createSyntheticHitmarkerSound(): void {\n try {\n const AudioContextCtor =\n window.AudioContext ||\n ((window as unknown as { webkitAudioContext?: typeof AudioContext }).webkitAudioContext as\n | typeof AudioContext\n | undefined);\n if (!AudioContextCtor) {\n return;\n }\n\n const audioContext = new AudioContextCtor();\n\n const oscillator1 = audioContext.createOscillator();\n const oscillator2 = audioContext.createOscillator();\n const noiseBuffer = audioContext.createBuffer(\n 1,\n audioContext.sampleRate * 0.1,\n audioContext.sampleRate\n );\n const noiseSource = audioContext.createBufferSource();\n\n const noiseData = noiseBuffer.getChannelData(0);\n for (let index = 0; index < noiseData.length; index += 1) {\n noiseData[index] = Math.random() * 2 - 1;\n }\n noiseSource.buffer = noiseBuffer;\n\n const gainNode1 = audioContext.createGain();\n const gainNode2 = audioContext.createGain();\n const noiseGain = audioContext.createGain();\n const masterGain = audioContext.createGain();\n\n oscillator1.connect(gainNode1);\n oscillator2.connect(gainNode2);\n noiseSource.connect(noiseGain);\n\n gainNode1.connect(masterGain);\n gainNode2.connect(masterGain);\n noiseGain.connect(masterGain);\n masterGain.connect(audioContext.destination);\n\n oscillator1.frequency.setValueAtTime(1800, audioContext.currentTime);\n oscillator1.frequency.exponentialRampToValueAtTime(900, audioContext.currentTime + 0.08);\n oscillator2.frequency.setValueAtTime(3600, audioContext.currentTime);\n oscillator2.frequency.exponentialRampToValueAtTime(1800, audioContext.currentTime + 0.04);\n\n oscillator1.type = \"triangle\";\n oscillator2.type = \"sine\";\n\n gainNode1.gain.setValueAtTime(0, audioContext.currentTime);\n gainNode1.gain.linearRampToValueAtTime(0.4, audioContext.currentTime + 0.002);\n gainNode1.gain.exponentialRampToValueAtTime(0.001, audioContext.currentTime + 0.12);\n\n gainNode2.gain.setValueAtTime(0, audioContext.currentTime);\n gainNode2.gain.linearRampToValueAtTime(0.3, audioContext.currentTime + 0.001);\n gainNode2.gain.exponentialRampToValueAtTime(0.001, audioContext.currentTime + 0.06);\n\n noiseGain.gain.setValueAtTime(0, audioContext.currentTime);\n noiseGain.gain.linearRampToValueAtTime(0.2, audioContext.currentTime + 0.001);\n noiseGain.gain.exponentialRampToValueAtTime(0.001, audioContext.currentTime + 0.01);\n\n masterGain.gain.setValueAtTime(0.5, audioContext.currentTime);\n\n const startTime = audioContext.currentTime;\n const stopTime = startTime + 0.15;\n\n oscillator1.start(startTime);\n oscillator2.start(startTime);\n noiseSource.start(startTime);\n\n oscillator1.stop(stopTime);\n oscillator2.stop(stopTime);\n noiseSource.stop(startTime + 0.02);\n } catch {\n // Ignore audio errors.\n }\n}\n\nexport function playHitmarkerSound(): void {\n try {\n const audio = new Audio(HITMARKER_AUDIO_DATA_URL);\n audio.volume = 0.3;\n void audio.play().catch(() => {\n createSyntheticHitmarkerSound();\n });\n } catch {\n createSyntheticHitmarkerSound();\n }\n}\n"],"names":["HITMARKER_AUDIO_DATA_URL"],"mappings":"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"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Shared media/data assets used by WC parity components.
|
|
5
|
-
*/
|
|
6
|
-
const LOGOMARK_DATA_URL = `data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+Cjxzdmcgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDE1ODA2IDE1ODA2IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHhtbDpzcGFjZT0icHJlc2VydmUiIHhtbG5zOnNlcmlmPSJodHRwOi8vd3d3LnNlcmlmLmNvbS8iIHN0eWxlPSJmaWxsLXJ1bGU6ZXZlbm9kZDtjbGlwLXJ1bGU6ZXZlbm9kZDtzdHJva2UtbGluZWpvaW46cm91bmQ7c3Ryb2tlLW1pdGVybGltaXQ6MjsiPgogICAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoNS41NTU1NiwwLDAsNS41NTU1NiwwLDApIj4KICAgICAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCg4LjMxNDYyLDAsMCw4LjMxNDYyLDguMjIyNjdlLTE0LC02LjQ5Mzg5ZS0xNCkiPgogICAgICAgICAgICA8Zz4KICAgICAgICAgICAgICAgIDxnIHRyYW5zZm9ybT0ibWF0cml4KDEsMCwwLDEsLTIxNy4xMjUsLTM2OC45MDIpIj4KICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNNDg4LjgyLDU5Ni4wOUM0ODkuMzYsNTk1LjIgNDg5Ljg5LDU5NC4zMSA0OTAuNDEsNTkzLjQxQzQ5MC41LDU5My4yNSA0OTAuNTksNTkzLjA5IDQ5MC42OCw1OTIuOTNDNDk5LjQzLDU3Ny41NiA1MDQuOCw1NjAuMDMgNTA1LjgsNTQxLjMzQzUwNS44Miw1NDEuMDUgNTA1LjgzLDU0MC43NyA1MDUuODUsNTQwLjQ5QzUwNS44OCw1MzkuNzkgNTA1LjkxLDUzOS4wOSA1MDUuOTMsNTM4LjM4QzUwNS45Niw1MzcuNDYgNTA1Ljk3LDUzNi41NCA1MDUuOTgsNTM1LjYxQzUwNS45OCw1MzUuNDEgNTA1Ljk5LDUzNS4yIDUwNS45OSw1MzVMNTA1Ljk5LDUzNC43MkM1MDUuOTksNDY5LjQzIDQ1My4wNiw0MTYuNTEgMzg3Ljc4LDQxNi41MUMzMjIuNSw0MTYuNTEgMjY5LjU3LDQ2OS40NCAyNjkuNTcsNTM0LjcyQzI2OS41Nyw1ODIuOTUgMjk4LjQ1LDYyNC40MyAzMzkuODYsNjQyLjgxQzM0Mi4xNyw2NDEuODMgMzQ0LjgyLDY0MS42IDM0Ny42LDY0Mi41QzM0Ny43MSw2NDIuNDggMzQ4LjA2LDY0Mi41OCAzNDguOCw2NDIuOTNDMzQ5Ljg3LDY0Mi41OSAzNTEuMDgsNjQyLjQ2IDM1Mi4xNyw2NDIuMjJDMzU0LjYzLDY0MS42OCAzNTcuMTIsNjQxLjMzIDM1OS41OCw2NDAuODFDMzY1LjE1LDYzOS42NCAzNzAuNTksNjM3Ljg5IDM3Ni4xNiw2MzYuNzNDMzgyLjMyLDYzNS40NSAzODguNjksNjM4LjQ2IDM5MC40NCw2NDQuODRDMzkxLjE2LDY0Ny40NiAzOTAuODEsNjUwLjM4IDM4OS42NSw2NTIuOTFDNDMwLjQyLDY1Mi4yOCA0NjYuMTcsNjMxLjAxIDQ4Ni45Myw1OTkuMDlDNDg3LjEsNTk4LjgzIDQ4Ny4yNyw1OTguNTcgNDg3LjQ0LDU5OC4zMUM0ODcuOTEsNTk3LjU3IDQ4OC4zNyw1OTYuODMgNDg4LjgzLDU5Ni4wOUw0ODguODIsNTk2LjA5WiIgc3R5bGU9ImZpbGw6cmdiKDI2LDI2LDI2KTtmaWxsLXJ1bGU6bm9uemVybzsiLz4KICAgICAgICAgICAgICAgIDwvZz4KICAgICAgICAgICAgICAgIDxnIHRyYW5zZm9ybT0ibWF0cml4KDEsMCwwLDEsLTIxNy4xMjUsLTM2OC45MDIpIj4KICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMzk4Ljg3LDQ4NC4yTDM5OS44OCw1MDUuODlMNDEwLjI4LDUwOS41NUwzOTUuNTIsNTA5LjU1TDM5NC40Myw0NzkuNDhMNDE1LjIsNDc5LjQ4TDM5OC44Nyw0ODQuMloiIHN0eWxlPSJmaWxsOnJnYig3Nyw3Nyw3Nyk7ZmlsbC1ydWxlOm5vbnplcm87Ii8+CiAgICAgICAgICAgICAgICA8L2c+CiAgICAgICAgICAgICAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgxLDAsMCwxLC0yMTcuMTI1LC0zNjguOTAyKSI+CiAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTQwNy41Miw2MzIuNDNMNDA3LjUyLDYzMi4zN0w0MDUuODMsNTY3LjgxTDQwNS45MSw1NjAuNzVMNDIwLjgxLDU1NS4zTDM5OS4zMSw1NTZMNDAyLjk1LDYzMC4yMkM0MDQuNDksNjMwLjg5IDQwNi4wMiw2MzEuNjIgNDA3LjUzLDYzMi40Mkw0MDcuNTIsNjMyLjQzWiIgc3R5bGU9ImZpbGw6cmdiKDc3LDc3LDc3KTtmaWxsLXJ1bGU6bm9uemVybzsiLz4KICAgICAgICAgICAgICAgIDwvZz4KICAgICAgICAgICAgICAgIDxnIHRyYW5zZm9ybT0ibWF0cml4KDEsMCwwLDEsLTIxNy4xMjUsLTM2OC45MDIpIj4KICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMzE1Ljc1LDQzNS44NkwzMTUuNzUsNDQ1LjE5QzMxNS43NSw0NDUuMTkgMzQzLjA5LDQ0NC4xIDM0My4wOSw0NjcuMzJMMzQzLjA5LDQ5MS4xMkwzNjYuMTcsNDc2LjJMNDY3LjI3LDQ3Ni4yQzQ3My4xNCw0NzYuMiA0NzguOTgsNDc3LjI3IDQ4NC40MSw0NzkuNUM0ODkuNCw0ODEuNTUgNDk0LjE1LDQ4NC42MSA0OTQuMTUsNDg4LjgyTDQ5NC4xNSw0NDIuNDFMNDA2LjI0LDQ0Mi40MUw0MDYuMjQsNDM1LjkyTDMxNS43NSw0MzUuODZaIiBzdHlsZT0iZmlsbDpyZ2IoMjQyLDI0MiwyNDIpO2ZpbGwtcnVsZTpub256ZXJvOyIvPgogICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0zODQuNTIsNTQ5LjUzQzM4Myw1NDkuODQgMzc0LjUsNTU0LjgxIDM3Mi40MSw1NTUuOTlDMzYxLjA2LDU2Mi4zOSAzNTAuNjYsNTcwLjI5IDM0MC41Niw1NzguNDdMMzQzLjU1LDUxMS4zQzM1Ny4yOSw0OTkuNzYgMzcyLjg5LDQ4OS43MSAzODkuNjksNDgzLjQ2TDM5MS4zNCw1MTEuODVMMzgwLjQxLDUxNS42OEw0NjUuMDUsNTE1LjY4TDQ2NS4wNSw1NDkuNTRMMzg0LjUxLDU0OS41NEwzODQuNTIsNTQ5LjUzWiIgc3R5bGU9ImZpbGw6cmdiKDI0MiwyNDIsMjQyKTtmaWxsLXJ1bGU6bm9uemVybzsiLz4KICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMzg0LjYyLDYyMC4xNUMzODYuMyw2MTguNDcgMzg4Ljc4LDYxNy40NCAzOTEuMTUsNjE3LjQ0QzM5Mi4zMiw2MTcuNDQgMzkzLjQyLDYxNy42NiAzOTQuNDMsNjE4LjA1TDM5MS41Myw1NjEuMjRDMzc2LjQ0LDU2OC41NCAzNjEuNjIsNTc2Ljc4IDM0OC40NSw1ODcuMjNDMzQ2LjUzLDU4OC43NSAzMzkuNDQsNTk0LjMgMzM4LjUzLDU5NS44OEMzMzguMTYsNTk2LjUzIDMzOC4wOCw1OTYuNzcgMzM3Ljk5LDU5Ny41MkMzMzYuMTUsNjExLjI5IDM0MS42OCw2MjYuMjQgMzI3LjQ4LDYzNS4wNkMzMjUuNCw2MzYuMzUgMzIyLjI4LDYzNy4xOCAzMjAuNDEsNjM4LjM2QzMxOS43Miw2MzguNzkgMzE5LjI2LDYzOC44NyAzMTkuNDYsNjM5Ljg3TDM1Ny42OCw2NDAuNzdMMzU3LjY4LDYyMS4wM0MzNTcuNjgsNjIwLjgyIDM1OC43OSw2MTguNDYgMzU5LjA3LDYxOC4wNUMzNjIsNjEzLjc2IDM2OC42NCw2MTMuMDUgMzcyLjQ1LDYxNi42M0MzNzMuMTgsNjE3LjMyIDM3NS4xNSw2MjAuODQgMzc1LjE1LDYyMS41N0wzNzUuMTUsNjI2LjY4QzM3Ni4zMiw2MjYuMDEgMzc3LjU2LDYyNS40NiAzNzguODcsNjI1LjA0QzM4MC4wMyw2MjQuNDMgMzgxLjIzLDYyMy45NCAzODIuNDUsNjIzLjU4QzM4Mi45NCw2MjIuMjcgMzgzLjcxLDYyMS4wNCAzODQuNjIsNjIwLjE0TDM4NC42Miw2MjAuMTVaIiBzdHlsZT0iZmlsbDpyZ2IoMjQyLDI0MiwyNDIpO2ZpbGwtcnVsZTpub256ZXJvOyIvPgogICAgICAgICAgICAgICAgPC9nPgogICAgICAgICAgICAgICAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoMSwwLDAsMSwtMjE3LjEyNSwtMzY4LjkwMikiPgogICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9IjMzNi41OSIgeT0iNDI4LjgyIiB3aWR0aD0iNTUuMTMiIGhlaWdodD0iOC42NiIgc3R5bGU9ImZpbGw6cmdiKDI0MiwyNDIsMjQyKTsiLz4KICAgICAgICAgICAgICAgIDwvZz4KICAgICAgICAgICAgICAgIDxnIHRyYW5zZm9ybT0ibWF0cml4KDEsMCwwLDEsLTIxNy4xMjUsLTM2OC45MDIpIj4KICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMzcwLjQzLDQwNS40MUwzODEuMjgsNDA1LjQxTDM4MS4yOCw0MjguODJMMzQ3LjAyLDQyOC44MkMzNDcuMDIsNDE1LjkgMzU3LjUxLDQwNS40MSAzNzAuNDMsNDA1LjQxWiIgc3R5bGU9ImZpbGw6cmdiKDI0MiwyNDIsMjQyKTtmaWxsLXJ1bGU6bm9uemVybzsiLz4KICAgICAgICAgICAgICAgIDwvZz4KICAgICAgICAgICAgICAgIDxnIHRyYW5zZm9ybT0ibWF0cml4KDEsMCwwLDEsLTIxNy4xMjUsLTM2OC45MDIpIj4KICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMzc1LjE1LDYyMS41OUwzNzUuMTUsNjQ2LjRMMzk5LjMxLDY0My4zMkwzOTMuODIsNjA2LjEyIiBzdHlsZT0iZmlsbDpyZ2IoMjQyLDI0MiwyNDIpO2ZpbGwtcnVsZTpub256ZXJvOyIvPgogICAgICAgICAgICAgICAgPC9nPgogICAgICAgICAgICAgICAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoMSwwLDAsMSwtMjE3LjEyNSwtMzY4LjkwMikiPgogICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik00MzQuOTUsNjQxLjc3QzQyNy40NSw2MzYuNzkgNDIwLjU0LDYzMC45OCA0MTQuMTMsNjI0LjY4QzM3OC44Niw2NTAuMSAzMzEuNjgsNjYwLjUxIDI4OS45Miw2NDUuMjRDMjc2LjcsNjU2LjM4IDI2MC4yLDY2My4wMyAyNDMuMjEsNjY2LjEzQzI0NS4yOCw2NjguNDIgMjQ3LjE3LDY3MC44NSAyNDksNjczLjM2QzI1OS4xMSw2NzMuNzUgMjY5LjQxLDY3My43OSAyNzkuNDcsNjcyLjk0QzMxNi42LDY2OS43NyAzNTEuNzgsNjUxLjg4IDM4OS4zOCw2NTMuMjZDNDIwLjMxLDY1NC40IDQ0OC40Niw2NzAuOTUgNDc5LjI2LDY3My4yNEM0OTMuNzQsNjc0LjMxIDUxMC43OCw2NzEuMDQgNTI0LjI4LDY2NS43MkM1MjQuNiw2NjUuNiA1MjUuMTcsNjY1LjYzIDUyNS4xLDY2NS4yQzQ5My41NSw2NjcuMTIgNDYxLjIyLDY1OS4yMiA0MzQuOTQsNjQxLjc4TDQzNC45NSw2NDEuNzdaIiBzdHlsZT0iZmlsbDpyZ2IoMjQyLDI0MiwyNDIpO2ZpbGwtcnVsZTpub256ZXJvOyIvPgogICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik00MzEuNjQsNjgxLjI4QzQzMS43MSw2ODEuODIgNDMwLjk5LDY4MS41NSA0MzAuNjcsNjgxLjVDNDI4LjcsNjgxLjE5IDQyNi40OSw2ODAuMzYgNDI0LjQ4LDY3OS45MkM0MDAuODEsNjc0LjcyIDM3NS4zNSw2NzIuNjkgMzUxLjIsNjc1LjY1QzM0MS4xMSw2NzYuODkgMzMxLjI4LDY3OS42MiAzMjEuMjQsNjgxLjIyQzMwMC40NSw2ODQuNTMgMjc4LjYyLDY4NS43NCAyNTcuODMsNjgyLjAxQzI3My44NSw2ODIuMTQgMjg5LjY2LDY4MC4xNiAzMDUuMjEsNjc2LjU0QzMxOS45OSw2NzMuMDkgMzM0Ljk1LDY2Ny4zOCAzNTAuMDEsNjY1LjUyQzM3Ny41NSw2NjIuMTEgNDA2LjI5LDY3MS43IDQzMS42NCw2ODEuMjhaIiBzdHlsZT0iZmlsbDpyZ2IoMjQyLDI0MiwyNDIpO2ZpbGwtcnVsZTpub256ZXJvOyIvPgogICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0zNzYuMzEsNjM2LjQxTDM2Ny42Nyw2MzkuOTRDMzQyLjA1LDY0OC4yIDMxNC4xMyw2NDYuODQgMjg4Ljc2LDYzOC4zN0MyODAuMSw2NDQuNDYgMjcxLjE0LDY1MC42NCAyNjAuODIsNjUzLjU2TDI2Ny4wNiw2NDkuMjJDMjc2LjE5LDY0Mi4yMiAyODUuMDgsNjM0LjY1IDI5MS40Nyw2MjQuOThDMjk0Ljc5LDYyNi40MyAyOTcuOTIsNjI4LjMxIDMwMS4yMyw2MjkuNzhDMzIzLjc2LDYzOS44MiAzNTIuMTIsNjQyLjMxIDM3Ni4zMSw2MzYuNDFaIiBzdHlsZT0iZmlsbDpyZ2IoMjQyLDI0MiwyNDIpO2ZpbGwtcnVsZTpub256ZXJvOyIvPgogICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik00OTYuNDQsNjc5Ljc5TDQ5My42Miw2ODAuOTlDNDU1LjExLDY5Ni4wOSA0MjIuMzIsNjY2LjAxIDM4NS4xMiw2NjEuN0wzNzQuNjEsNjYwLjEzQzM5Ny4wNSw2NTguMzMgNDE5LjAzLDY2My42MiA0NDAuMjQsNjcwLjE4QzQ0NS44Niw2NzEuOTIgNDUxLjQsNjc0LjEzIDQ1Ny4wMyw2NzUuNzdDNDY5LjY3LDY3OS40NiA0ODMuMzMsNjgxLjE5IDQ5Ni40NSw2NzkuOEw0OTYuNDQsNjc5Ljc5WiIgc3R5bGU9ImZpbGw6cmdiKDI0MiwyNDIsMjQyKTtmaWxsLXJ1bGU6bm9uemVybzsiLz4KICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNNTAyLjcyLDY1OC4wNEw0OTkuODksNjU4LjMzQzQ4MC40Miw2NTUuODcgNDYxLjU4LDY0OS41NiA0NDQuNTksNjM5LjkxQzQ0Mi44Niw2MzguOTMgNDQwLjk2LDYzNy44MyA0MzkuNDIsNjM2LjU4QzQ0Ny45LDYzOC45NCA0NTYuNzcsNjM1LjkyIDQ2NC4zMyw2MzIuMTJDNDcyLjIxLDY0Ni4xMyA0ODcuMzYsNjU0LjYyIDUwMi43Myw2NTguMDNMNTAyLjcyLDY1OC4wNFoiIHN0eWxlPSJmaWxsOnJnYigyNDIsMjQyLDI0Mik7ZmlsbC1ydWxlOm5vbnplcm87Ii8+CiAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTQ0MCw2OTAuODJDNDQwLjA3LDY5MS4zNiA0MzkuMzUsNjkxLjA5IDQzOS4wMyw2OTEuMDRDNDM1LjY5LDY5MC41MSA0MzIuMzUsNjg5LjY0IDQyOS4wMiw2ODkuMTFDMzk4LjE2LDY4NC4yMSAzNjYuNzcsNjg0LjAyIDMzNS42NCw2ODYuMDZDMzM1LjMyLDY4Ni4wOCAzMzQuMjMsNjg2LjI3IDMzNC4yOSw2ODUuNzVDMzY5LjA2LDY3Ni43OSA0MDYuMDQsNjgwLjQxIDQ0MCw2OTAuODJaIiBzdHlsZT0iZmlsbDpyZ2IoMjQyLDI0MiwyNDIpO2ZpbGwtcnVsZTpub256ZXJvOyIvPgogICAgICAgICAgICAgICAgPC9nPgogICAgICAgICAgICAgICAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoMSwwLDAsMSwtMjE3LjEyNSwtMzY4LjkwMikiPgogICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMTMuNTYsNTcyLjg3TDMxMy42OSw1NzIuMTRMMzEzLjk0LDU3Mi40OUwzMTMuNTYsNTcyLjg3WiIgc3R5bGU9ImZpbGw6cmdiKDIsMzgsNDMpO2ZpbGwtb3BhY2l0eTowLjY7ZmlsbC1ydWxlOm5vbnplcm87Ii8+CiAgICAgICAgICAgICAgICA8L2c+CiAgICAgICAgICAgICAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgxLDAsMCwxLC0yMTcuMTI1LC0zNjguOTAyKSI+CiAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTUzOS4wNiw2MjAuNTFDNTQyLjYyLDYxMy44MyA1NDUuNzIsNjA2Ljk1IDU0OC4zNSw1OTkuOTFDNTYwLjQ1LDU2Ny41NCA1NjIuNjMsNTMxLjg1IDU1NC4wMSw0OTcuODNDNTUzLjU2LDQ5Ni4wMyA1NTEuNzMsNDk0Ljk0IDU0OS45Myw0OTUuNEM1NDguMTQsNDk1Ljg1IDU0Ny4wNSw0OTcuNjggNTQ3LjUsNDk5LjQ3QzU1NS43OSw1MzIuMTcgNTUzLjY5LDU2Ni40NiA1NDIuMDgsNTk3LjU2QzUzOS45OCw2MDMuMTggNTM3LjU2LDYwOC43MSA1MzQuODQsNjE0LjFDNTMyLjYzLDYxOC40OCA1MzAuMjEsNjIyLjc3IDUyNy41OSw2MjYuOTZDNTI3LjMsNjI3LjQ0IDUyNyw2MjcuOTEgNTI2LjY5LDYyOC4zOEM1MjUuNDIsNjMwLjM5IDUyNC4xLDYzMi4zNyA1MjIuNzEsNjM0LjMyQzUyMi4wNSw2MzUuMjggNTIxLjM2LDYzNi4yNCA1MjAuNjYsNjM3LjE5QzUxOS43Niw2MzguNDIgNTE4Ljg0LDYzOS42MyA1MTcuODksNjQwLjg0QzUxMi41Niw2NDcuNzEgNTA2LjYyLDY1NC4yIDUwMC4wOSw2NjAuMjZDNDk4LjI1LDY2MS45NiA0OTYuMzYsNjYzLjY0IDQ5NC40Myw2NjUuMjdDNDkwLjQ4LDY2OC42MSA0ODYuMzMsNjcxLjggNDgyLDY3NC44MUM0NzguNTcsNjc3LjE5IDQ3NC44OCw2NzkuNTkgNDcxLjEzLDY4MS43N0M0NjcuODIsNjgzLjY5IDQ2NC40Nyw2ODUuNDUgNDYxLjIsNjg2LjkyQzQ2MS4wNiw2ODYuOTkgNDYwLjkyLDY4Ny4wNiA0NjAuNzksNjg3LjE0TDQ2MC43Niw2ODcuMTZMNDYwLjc0LDY4Ny4xNkw0NjAuNTgsNjg3LjI5TDQ2MC40Myw2ODcuNDFMNDYwLjM3LDY4Ny40NUw0NjAuMyw2ODcuNTFMNDYwLjExLDY4Ny43TDQ2MC4wNyw2ODcuNzVMNDYwLjA1LDY4Ny43N0w0NjAuMDMsNjg3LjhMNDYwLDY4Ny44M0M0NTkuNzcsNjg4LjExIDQ1OS41Nyw2ODguNDMgNDU5LjQ0LDY4OC43OUM0NTkuMyw2ODkuMTUgNDU5LjIzLDY4OS41MyA0NTkuMjIsNjg5LjlMNDU5LjIyLDY5MC4yNkw0NTkuMjUsNjkwLjQyTDQ1OS4yOSw2OTAuNjdMNDU5LjM1LDY5MC45QzQ1OS4zOSw2OTEuMDYgNDU5LjQ1LDY5MS4yMSA0NTkuNTEsNjkxLjM2QzQ1OS41OCw2OTEuNSA0NTkuNjUsNjkxLjY0IDQ1OS43Myw2OTEuNzdMNDU5Ljc1LDY5MS43OUw0NTkuNzcsNjkxLjgyTDQ1OS44OCw2OTEuOThMNDYwLDY5Mi4xM0w0NjAuMDQsNjkyLjE5TDQ2MC4zNCw2OTIuNDlMNDYwLjM2LDY5Mi40OUw0NjAuNDIsNjkyLjU2QzQ2MC43LDY5Mi43OSA0NjEuMDIsNjkyLjk4IDQ2MS4zOCw2OTMuMTJMNDgzLjA5LDcwMS4zOUw1MDQuNzUsNzA5LjY1QzUwNC45NCw3MDkuNzIgNTA1LjEzLDcwOS43OCA1MDUuMzQsNzA5LjgyQzUwNi4zMSw3MTAuMjEgNTA3LjQ0LDcxMC4xIDUwOC4zMiw3MDkuNDhDNTA4LjQ5LDcwOS4zNyA1MDguNjQsNzA5LjIzIDUwOC43OSw3MDkuMDhMNTU2LjM1LDY1OS44QzU1Ny4zOCw2NTguNzMgNTU3LjUsNjU3LjEyIDU1Ni43NSw2NTUuOTJMNTM5LjA2LDYyMC41MVoiIHN0eWxlPSJmaWxsOnJnYigyNDIsMjQyLDI0Mik7ZmlsbC1ydWxlOm5vbnplcm87Ii8+CiAgICAgICAgICAgICAgICA8L2c+CiAgICAgICAgICAgICAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgxLDAsMCwxLC0yMTcuMTI1LC0zNjguOTAyKSI+CiAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTQyNy43LDY5Ny42N0MzOTUsNzA1Ljk2IDM2MC43MSw3MDMuODYgMzI5LjYyLDY5Mi4yNEMzMTMuOTYsNjg2LjM5IDI5OS4xMSw2NzguMTMgMjg1LjY3LDY2Ny41NEMyODMuNjcsNjY1Ljk4IDI4MS42OSw2NjQuMzUgMjc5Ljc1LDY2Mi42N0MyNzIuMjEsNjU2LjE0IDI2NS4xNyw2NDguODMgMjU4Ljc3LDY0MC43N0MyNTcuNDYsNjM5LjE0IDI1Ni4xOCw2MzcuNDYgMjU0Ljk0LDYzNS43NkMyNTQuNTcsNjM1LjI3IDI1NC4yMSw2MzQuNzggMjUzLjg1LDYzNC4yOEMyNTMuMzUsNjMzLjU4IDI1Mi44NSw2MzIuODggMjUyLjM2LDYzMi4xN0MyNDkuOTgsNjI4LjczIDI0Ny41OSw2MjUuMDUgMjQ1LjQsNjIxLjI5QzI0My41MSw2MTguMDUgMjQxLjc4LDYxNC43NiAyNDAuMzMsNjExLjU0QzI0MC4zLDYxMS40OCAyNDAuMjgsNjExLjQzIDI0MC4yNSw2MTEuMzdDMjQwLjI1LDYxMS4zNSAyNDAuMjMsNjExLjMyIDI0MC4yMiw2MTEuM0MyNDAuMTYsNjExLjE4IDI0MC4xLDYxMS4wNyAyNDAuMDMsNjEwLjk2TDI0MC4wMSw2MTAuOTNMMjQwLjAxLDYxMC45TDIzOS44OSw2MTAuNzRMMjM5Ljc3LDYxMC42TDIzOS43Miw2MTAuNTRMMjM5LjY2LDYxMC40N0wyMzkuNTYsNjEwLjM2TDIzOS40Nyw2MTAuMjhMMjM5LjQzLDYxMC4yNEwyMzkuNCw2MTAuMjJMMjM5LjM4LDYxMC4xOUwyMzkuMzQsNjEwLjE3QzIzOS4yOSw2MTAuMTMgMjM5LjI0LDYxMC4wOSAyMzkuMTksNjEwLjA1QzIzOC45NSw2MDkuODcgMjM4LjY4LDYwOS43MiAyMzguMzksNjA5LjYxQzIzOC4wMiw2MDkuNDcgMjM3LjY1LDYwOS40IDIzNy4yOCw2MDkuMzlMMjM2LjkxLDYwOS4zOUwyMzYuNzUsNjA5LjQyTDIzNi41MSw2MDkuNDZMMjM2LjI3LDYwOS41MkMyMzYuMTIsNjA5LjU2IDIzNS45Nyw2MDkuNjIgMjM1LjgxLDYwOS42OEMyMzUuNjcsNjA5Ljc1IDIzNS41NCw2MDkuODIgMjM1LjQxLDYwOS45TDIzNS4zNSw2MDkuOTRMMjM1LjE5LDYxMC4wNUwyMzQuOTksNjEwLjIxTDIzNC45Miw2MTAuMjdMMjM0LjczLDYxMC40NkwyMzQuNjksNjEwLjUxTDIzNC42MSw2MTAuNTlDMjM0LjM4LDYxMC44NyAyMzQuMTksNjExLjE5IDIzNC4wNSw2MTEuNTVMMjI1Ljc4LDYzMy4yNUwyMTcuNTMsNjU0LjkyQzIxNy40NSw2NTUuMTEgMjE3LjM5LDY1NS4zIDIxNy4zNSw2NTUuNTFDMjE2Ljk2LDY1Ni40OCAyMTcuMDgsNjU3LjYxIDIxNy42OSw2NTguNDlDMjE3LjgsNjU4LjY2IDIxNy45NCw2NTguODEgMjE4LjA5LDY1OC45NkwyNjcuMzgsNzA2LjUyQzI2OC40NCw3MDcuNTUgMjcwLjA1LDcwNy42NyAyNzEuMjUsNzA2LjkyTDMwNi42Nyw2ODkuMjNDMzEzLjM0LDY5Mi43OSAzMjAuMjIsNjk1Ljg5IDMyNy4yNiw2OTguNTJDMzU5LjYzLDcxMC42MiAzOTUuMzIsNzEyLjggNDI5LjM0LDcwNC4xOEM0MzEuMTQsNzAzLjcyIDQzMi4yMyw3MDEuOSA0MzEuNzgsNzAwLjFDNDMxLjMyLDY5OC4zMSA0MjkuNSw2OTcuMjIgNDI3LjcsNjk3LjY3WiIgc3R5bGU9ImZpbGw6cmdiKDI0MiwyNDIsMjQyKTtmaWxsLXJ1bGU6bm9uemVybzsiLz4KICAgICAgICAgICAgICAgIDwvZz4KICAgICAgICAgICAgICAgIDxnIHRyYW5zZm9ybT0ibWF0cml4KDEsMCwwLDEsLTIxNy4xMjUsLTM2OC45MDIpIj4KICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMjIyLjM5LDU4Mi4wOEMyMjIuODQsNTgzLjg3IDIyNC42Nyw1ODQuOTYgMjI2LjQ2LDU4NC41MUMyMjguMjYsNTg0LjA1IDIyOS4zNSw1ODIuMjMgMjI4Ljg5LDU4MC40M0MyMjAuNjEsNTQ3Ljc0IDIyMi43LDUxMy40NCAyMzQuMzIsNDgyLjM1QzI0MC40Myw0NjYuMDEgMjQ5LjE2LDQ1MC41NSAyNjAuNDIsNDM2LjY2QzI2Ni44NSw0MjguNyAyNzQuMTEsNDIxLjI2IDI4Mi4xNyw0MTQuNDdDMjg2LjA2LDQxMS4xOSAyOTAuMTQsNDA4LjA2IDI5NC40LDQwNS4xQzI5Ny44Myw0MDIuNzEgMzAxLjUyLDQwMC4zMiAzMDUuMjcsMzk4LjEzQzMwOC41NywzOTYuMjEgMzExLjkyLDM5NC40NSAzMTUuMiwzOTIuOThDMzE1LjM0LDM5Mi45MiAzMTUuNDgsMzkyLjg0IDMxNS42MSwzOTIuNzZMMzE1LjYzLDM5Mi43NEwzMTUuNjYsMzkyLjc0TDMxNS44MiwzOTIuNjJMMzE1Ljk3LDM5Mi41TDMxNi4wMywzOTIuNDVMMzE2LjA5LDM5Mi4zOUwzMTYuMiwzOTIuMjlMMzE2LjI4LDM5Mi4yTDMxNi4zMywzOTIuMTZMMzE2LjM1LDM5Mi4xM0wzMTYuMzcsMzkyLjExTDMxNi40LDM5Mi4wN0MzMTYuNjMsMzkxLjc5IDMxNi44MiwzOTEuNDggMzE2Ljk2LDM5MS4xMkMzMTcuMSwzOTAuNzUgMzE3LjE3LDM5MC4zOCAzMTcuMTgsMzkwLjAxTDMxNy4xOCwzODkuNzhMMzE3LjE3LDM4OS42NEwzMTcuMTUsMzg5LjQ4TDMxNy4xMSwzODkuMjRMMzE3LjA1LDM4OUMzMTcuMDEsMzg4Ljg1IDMxNi45NSwzODguNyAzMTYuODgsMzg4LjU1QzMxNi44MiwzODguNCAzMTYuNzQsMzg4LjI3IDMxNi42NiwzODguMTRMMzE2LjY0LDM4OC4xMUwzMTYuNjQsMzg4LjA4TDMxNi41MiwzODcuOTJMMzE2LjQsMzg3Ljc3TDMxNi4zNSwzODcuNzJMMzE2LjI5LDM4Ny42NUwzMTYuMDYsMzg3LjQyTDMxNi4wMywzODcuNEwzMTYuMDEsMzg3LjM3TDMxNS45NywzODcuMzVDMzE1LjY5LDM4Ny4xMSAzMTUuMzcsMzg2LjkyIDMxNS4wMiwzODYuNzlMMjkzLjMxLDM3OC41MUwyNzEuNjUsMzcwLjI2QzI3MS40NiwzNzAuMTggMjcxLjI2LDM3MC4xMiAyNzEuMDYsMzcwLjA4QzI3MC4wOCwzNjkuNyAyNjguOTYsMzY5LjgxIDI2OC4wOCwzNzAuNDJDMjY3LjkxLDM3MC41NCAyNjcuNzUsMzcwLjY3IDI2Ny42MSwzNzAuODJMMjIwLjA1LDQyMC4xMUMyMTkuMDIsNDIxLjE4IDIxOC44OSw0MjIuNzggMjE5LjY1LDQyMy45OEwyMzcuMzMsNDU5LjRDMjMzLjc3LDQ2Ni4wNyAyMzAuNjcsNDcyLjk1IDIyOC4wNCw0ODBDMjE1Ljk1LDUxMi4zNiAyMTMuNzcsNTQ4LjA1IDIyMi4zOSw1ODIuMDhaIiBzdHlsZT0iZmlsbDpyZ2IoMjQyLDI0MiwyNDIpO2ZpbGwtcnVsZTpub256ZXJvOyIvPgogICAgICAgICAgICAgICAgPC9nPgogICAgICAgICAgICAgICAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoMSwwLDAsMSwtMjE3LjEyNSwtMzY4LjkwMikiPgogICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik01MTkuNjgsNDQxLjY1QzUyMC43OCw0NDMuMTIgNTIxLjg1LDQ0NC42MSA1MjIuOTEsNDQ2LjEzQzUyNS4zLDQ0OS41NiA1MjcuNjksNDUzLjI1IDUyOS44OCw0NTdDNTMxLjgsNDYwLjMgNTMzLjU2LDQ2My42NSA1MzUuMDMsNDY2LjkzQzUzNS4wOSw0NjcuMDcgNTM1LjE3LDQ2Ny4yMSA1MzUuMjUsNDY3LjM0TDUzNS4yNyw0NjcuMzZMNTM1LjI3LDQ2Ny4zOUw1MzUuMzksNDY3LjU1TDUzNS41MSw0NjcuN0w1MzUuNTYsNDY3Ljc2TDUzNS42Miw0NjcuODJMNTM1LjcyLDQ2Ny45M0w1MzUuODEsNDY4LjAxTDUzNS44NSw0NjguMDVMNTM1Ljg4LDQ2OC4wN0w1MzUuOSw0NjguMUw1MzUuOTQsNDY4LjEzQzUzNi4yMiw0NjguMzYgNTM2LjU0LDQ2OC41NSA1MzYuODksNDY4LjY5QzUzNy4yNiw0NjguODMgNTM3LjYzLDQ2OC44OSA1MzgsNDY4LjlMNTM4LjM3LDQ2OC45TDUzOC41Myw0NjguODhMNTM4Ljc3LDQ2OC44NEw1MzkuMDEsNDY4Ljc4QzUzOS4xNiw0NjguNzMgNTM5LjMxLDQ2OC42OCA1MzkuNDYsNDY4LjYxQzUzOS42MSw0NjguNTQgNTM5Ljc0LDQ2OC40NyA1MzkuODcsNDY4LjM5TDUzOS45LDQ2OC4zN0w1MzkuOTMsNDY4LjM3TDU0MC4wOSw0NjguMjVMNTQwLjI0LDQ2OC4xM0w1NDAuMjksNDY4LjA4TDU0MC4zNiw0NjguMDJMNTQwLjU5LDQ2Ny43OUw1NDAuNjEsNDY3Ljc2TDU0MC42NCw0NjcuNzRMNTQwLjY2LDQ2Ny43QzU0MC45LDQ2Ny40MiA1NDEuMDksNDY3LjEgNTQxLjIyLDQ2Ni43NEw1NDkuNSw0NDUuMDRMNTU3Ljc1LDQyMy4zOEM1NTcuODMsNDIzLjE5IDU1Ny44OSw0MjIuOTkgNTU3LjkzLDQyMi43OUM1NTguMzIsNDIxLjgxIDU1OC4yLDQyMC42OSA1NTcuNTksNDE5LjgxQzU1Ny40Nyw0MTkuNjQgNTU3LjM0LDQxOS40OCA1NTcuMTksNDE5LjMzTDUwNy45LDM3MS43OEM1MDYuODQsMzcwLjc1IDUwNS4yMywzNzAuNjIgNTA0LjAzLDM3MS4zOEw0NjguNjEsMzg5LjA2QzQ2MS45NCwzODUuNSA0NTUuMDYsMzgyLjQgNDQ4LjAxLDM3OS43N0M0MTUuNjUsMzY3LjY4IDM3OS45NiwzNjUuNSAzNDUuOTMsMzc0LjEyQzM0NC4xNCwzNzQuNTcgMzQzLjA1LDM3Ni40IDM0My41LDM3OC4xOUMzNDMuOTYsMzc5Ljk4IDM0NS43OCwzODEuMDggMzQ3LjU4LDM4MC42MkMzODAuMjcsMzcyLjM0IDQxNC41NywzNzQuNDMgNDQ1LjY2LDM4Ni4wNUM0NjEuMTksMzkxLjg1IDQ3NS45NCw0MDAuMDQgNDg5LjI5LDQxMC41QzUwMC41Miw0MTkuMjkgNTEwLjc3LDQyOS43IDUxOS42OCw0NDEuNjVaIiBzdHlsZT0iZmlsbDpyZ2IoMjQyLDI0MiwyNDIpO2ZpbGwtcnVsZTpub256ZXJvOyIvPgogICAgICAgICAgICAgICAgPC9nPgogICAgICAgICAgICA8L2c+CiAgICAgICAgPC9nPgogICAgPC9nPgo8L3N2Zz4K`;
|
|
7
|
-
const HITMARKER_AUDIO_DATA_URL = `data:audio/mpeg;base64,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`;
|
|
8
|
-
|
|
9
|
-
exports.HITMARKER_AUDIO_DATA_URL = HITMARKER_AUDIO_DATA_URL;
|
|
10
|
-
exports.LOGOMARK_DATA_URL = LOGOMARK_DATA_URL;
|
|
11
|
-
//# sourceMappingURL=media-assets.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"media-assets.js","sources":["../../../../src/constants/media-assets.ts"],"sourcesContent":["/**\n * Shared media/data assets used by WC parity components.\n */\n\nexport const LOGOMARK_DATA_URL = `data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+Cjxzdmcgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDE1ODA2IDE1ODA2IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHhtbDpzcGFjZT0icHJlc2VydmUiIHhtbG5zOnNlcmlmPSJodHRwOi8vd3d3LnNlcmlmLmNvbS8iIHN0eWxlPSJmaWxsLXJ1bGU6ZXZlbm9kZDtjbGlwLXJ1bGU6ZXZlbm9kZDtzdHJva2UtbGluZWpvaW46cm91bmQ7c3Ryb2tlLW1pdGVybGltaXQ6MjsiPgogICAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoNS41NTU1NiwwLDAsNS41NTU1NiwwLDApIj4KICAgICAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCg4LjMxNDYyLDAsMCw4LjMxNDYyLDguMjIyNjdlLTE0LC02LjQ5Mzg5ZS0xNCkiPgogICAgICAgICAgICA8Zz4KICAgICAgICAgICAgICAgIDxnIHRyYW5zZm9ybT0ibWF0cml4KDEsMCwwLDEsLTIxNy4xMjUsLTM2OC45MDIpIj4KICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNNDg4LjgyLDU5Ni4wOUM0ODkuMzYsNTk1LjIgNDg5Ljg5LDU5NC4zMSA0OTAuNDEsNTkzLjQxQzQ5MC41LDU5My4yNSA0OTAuNTksNTkzLjA5IDQ5MC42OCw1OTIuOTNDNDk5LjQzLDU3Ny41NiA1MDQuOCw1NjAuMDMgNTA1LjgsNTQxLjMzQzUwNS44Miw1NDEuMDUgNTA1LjgzLDU0MC43NyA1MDUuODUsNTQwLjQ5QzUwNS44OCw1MzkuNzkgNTA1LjkxLDUzOS4wOSA1MDUuOTMsNTM4LjM4QzUwNS45Niw1MzcuNDYgNTA1Ljk3LDUzNi41NCA1MDUuOTgsNTM1LjYxQzUwNS45OCw1MzUuNDEgNTA1Ljk5LDUzNS4yIDUwNS45OSw1MzVMNTA1Ljk5LDUzNC43MkM1MDUuOTksNDY5LjQzIDQ1My4wNiw0MTYuNTEgMzg3Ljc4LDQxNi41MUMzMjIuNSw0MTYuNTEgMjY5LjU3LDQ2OS40NCAyNjkuNTcsNTM0LjcyQzI2OS41Nyw1ODIuOTUgMjk4LjQ1LDYyNC40MyAzMzkuODYsNjQyLjgxQzM0Mi4xNyw2NDEuODMgMzQ0LjgyLDY0MS42IDM0Ny42LDY0Mi41QzM0Ny43MSw2NDIuNDggMzQ4LjA2LDY0Mi41OCAzNDguOCw2NDIuOTNDMzQ5Ljg3LDY0Mi41OSAzNTEuMDgsNjQyLjQ2IDM1Mi4xNyw2NDIuMjJDMzU0LjYzLDY0MS42OCAzNTcuMTIsNjQxLjMzIDM1OS41OCw2NDAuODFDMzY1LjE1LDYzOS42NCAzNzAuNTksNjM3Ljg5IDM3Ni4xNiw2MzYuNzNDMzgyLjMyLDYzNS40NSAzODguNjksNjM4LjQ2IDM5MC40NCw2NDQuODRDMzkxLjE2LDY0Ny40NiAzOTAuODEsNjUwLjM4IDM4OS42NSw2NTIuOTFDNDMwLjQyLDY1Mi4yOCA0NjYuMTcsNjMxLjAxIDQ4Ni45Myw1OTkuMDlDNDg3LjEsNTk4LjgzIDQ4Ny4yNyw1OTguNTcgNDg3LjQ0LDU5OC4zMUM0ODcuOTEsNTk3LjU3IDQ4OC4zNyw1OTYuODMgNDg4LjgzLDU5Ni4wOUw0ODguODIsNTk2LjA5WiIgc3R5bGU9ImZpbGw6cmdiKDI2LDI2LDI2KTtmaWxsLXJ1bGU6bm9uemVybzsiLz4KICAgICAgICAgICAgICAgIDwvZz4KICAgICAgICAgICAgICAgIDxnIHRyYW5zZm9ybT0ibWF0cml4KDEsMCwwLDEsLTIxNy4xMjUsLTM2OC45MDIpIj4KICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMzk4Ljg3LDQ4NC4yTDM5OS44OCw1MDUuODlMNDEwLjI4LDUwOS41NUwzOTUuNTIsNTA5LjU1TDM5NC40Myw0NzkuNDhMNDE1LjIsNDc5LjQ4TDM5OC44Nyw0ODQuMloiIHN0eWxlPSJmaWxsOnJnYig3Nyw3Nyw3Nyk7ZmlsbC1ydWxlOm5vbnplcm87Ii8+CiAgICAgICAgICAgICAgICA8L2c+CiAgICAgICAgICAgICAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgxLDAsMCwxLC0yMTcuMTI1LC0zNjguOTAyKSI+CiAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTQwNy41Miw2MzIuNDNMNDA3LjUyLDYzMi4zN0w0MDUuODMsNTY3LjgxTDQwNS45MSw1NjAuNzVMNDIwLjgxLDU1NS4zTDM5OS4zMSw1NTZMNDAyLjk1LDYzMC4yMkM0MDQuNDksNjMwLjg5IDQwNi4wMiw2MzEuNjIgNDA3LjUzLDYzMi40Mkw0MDcuNTIsNjMyLjQzWiIgc3R5bGU9ImZpbGw6cmdiKDc3LDc3LDc3KTtmaWxsLXJ1bGU6bm9uemVybzsiLz4KICAgICAgICAgICAgICAgIDwvZz4KICAgICAgICAgICAgICAgIDxnIHRyYW5zZm9ybT0ibWF0cml4KDEsMCwwLDEsLTIxNy4xMjUsLTM2OC45MDIpIj4KICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMzE1Ljc1LDQzNS44NkwzMTUuNzUsNDQ1LjE5QzMxNS43NSw0NDUuMTkgMzQzLjA5LDQ0NC4xIDM0My4wOSw0NjcuMzJMMzQzLjA5LDQ5MS4xMkwzNjYuMTcsNDc2LjJMNDY3LjI3LDQ3Ni4yQzQ3My4xNCw0NzYuMiA0NzguOTgsNDc3LjI3IDQ4NC40MSw0NzkuNUM0ODkuNCw0ODEuNTUgNDk0LjE1LDQ4NC42MSA0OTQuMTUsNDg4LjgyTDQ5NC4xNSw0NDIuNDFMNDA2LjI0LDQ0Mi40MUw0MDYuMjQsNDM1LjkyTDMxNS43NSw0MzUuODZaIiBzdHlsZT0iZmlsbDpyZ2IoMjQyLDI0MiwyNDIpO2ZpbGwtcnVsZTpub256ZXJvOyIvPgogICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0zODQuNTIsNTQ5LjUzQzM4Myw1NDkuODQgMzc0LjUsNTU0LjgxIDM3Mi40MSw1NTUuOTlDMzYxLjA2LDU2Mi4zOSAzNTAuNjYsNTcwLjI5IDM0MC41Niw1NzguNDdMMzQzLjU1LDUxMS4zQzM1Ny4yOSw0OTkuNzYgMzcyLjg5LDQ4OS43MSAzODkuNjksNDgzLjQ2TDM5MS4zNCw1MTEuODVMMzgwLjQxLDUxNS42OEw0NjUuMDUsNTE1LjY4TDQ2NS4wNSw1NDkuNTRMMzg0LjUxLDU0OS41NEwzODQuNTIsNTQ5LjUzWiIgc3R5bGU9ImZpbGw6cmdiKDI0MiwyNDIsMjQyKTtmaWxsLXJ1bGU6bm9uemVybzsiLz4KICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMzg0LjYyLDYyMC4xNUMzODYuMyw2MTguNDcgMzg4Ljc4LDYxNy40NCAzOTEuMTUsNjE3LjQ0QzM5Mi4zMiw2MTcuNDQgMzkzLjQyLDYxNy42NiAzOTQuNDMsNjE4LjA1TDM5MS41Myw1NjEuMjRDMzc2LjQ0LDU2OC41NCAzNjEuNjIsNTc2Ljc4IDM0OC40NSw1ODcuMjNDMzQ2LjUzLDU4OC43NSAzMzkuNDQsNTk0LjMgMzM4LjUzLDU5NS44OEMzMzguMTYsNTk2LjUzIDMzOC4wOCw1OTYuNzcgMzM3Ljk5LDU5Ny41MkMzMzYuMTUsNjExLjI5IDM0MS42OCw2MjYuMjQgMzI3LjQ4LDYzNS4wNkMzMjUuNCw2MzYuMzUgMzIyLjI4LDYzNy4xOCAzMjAuNDEsNjM4LjM2QzMxOS43Miw2MzguNzkgMzE5LjI2LDYzOC44NyAzMTkuNDYsNjM5Ljg3TDM1Ny42OCw2NDAuNzdMMzU3LjY4LDYyMS4wM0MzNTcuNjgsNjIwLjgyIDM1OC43OSw2MTguNDYgMzU5LjA3LDYxOC4wNUMzNjIsNjEzLjc2IDM2OC42NCw2MTMuMDUgMzcyLjQ1LDYxNi42M0MzNzMuMTgsNjE3LjMyIDM3NS4xNSw2MjAuODQgMzc1LjE1LDYyMS41N0wzNzUuMTUsNjI2LjY4QzM3Ni4zMiw2MjYuMDEgMzc3LjU2LDYyNS40NiAzNzguODcsNjI1LjA0QzM4MC4wMyw2MjQuNDMgMzgxLjIzLDYyMy45NCAzODIuNDUsNjIzLjU4QzM4Mi45NCw2MjIuMjcgMzgzLjcxLDYyMS4wNCAzODQuNjIsNjIwLjE0TDM4NC42Miw2MjAuMTVaIiBzdHlsZT0iZmlsbDpyZ2IoMjQyLDI0MiwyNDIpO2ZpbGwtcnVsZTpub256ZXJvOyIvPgogICAgICAgICAgICAgICAgPC9nPgogICAgICAgICAgICAgICAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoMSwwLDAsMSwtMjE3LjEyNSwtMzY4LjkwMikiPgogICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9IjMzNi41OSIgeT0iNDI4LjgyIiB3aWR0aD0iNTUuMTMiIGhlaWdodD0iOC42NiIgc3R5bGU9ImZpbGw6cmdiKDI0MiwyNDIsMjQyKTsiLz4KICAgICAgICAgICAgICAgIDwvZz4KICAgICAgICAgICAgICAgIDxnIHRyYW5zZm9ybT0ibWF0cml4KDEsMCwwLDEsLTIxNy4xMjUsLTM2OC45MDIpIj4KICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMzcwLjQzLDQwNS40MUwzODEuMjgsNDA1LjQxTDM4MS4yOCw0MjguODJMMzQ3LjAyLDQyOC44MkMzNDcuMDIsNDE1LjkgMzU3LjUxLDQwNS40MSAzNzAuNDMsNDA1LjQxWiIgc3R5bGU9ImZpbGw6cmdiKDI0MiwyNDIsMjQyKTtmaWxsLXJ1bGU6bm9uemVybzsiLz4KICAgICAgICAgICAgICAgIDwvZz4KICAgICAgICAgICAgICAgIDxnIHRyYW5zZm9ybT0ibWF0cml4KDEsMCwwLDEsLTIxNy4xMjUsLTM2OC45MDIpIj4KICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMzc1LjE1LDYyMS41OUwzNzUuMTUsNjQ2LjRMMzk5LjMxLDY0My4zMkwzOTMuODIsNjA2LjEyIiBzdHlsZT0iZmlsbDpyZ2IoMjQyLDI0MiwyNDIpO2ZpbGwtcnVsZTpub256ZXJvOyIvPgogICAgICAgICAgICAgICAgPC9nPgogICAgICAgICAgICAgICAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoMSwwLDAsMSwtMjE3LjEyNSwtMzY4LjkwMikiPgogICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik00MzQuOTUsNjQxLjc3QzQyNy40NSw2MzYuNzkgNDIwLjU0LDYzMC45OCA0MTQuMTMsNjI0LjY4QzM3OC44Niw2NTAuMSAzMzEuNjgsNjYwLjUxIDI4OS45Miw2NDUuMjRDMjc2LjcsNjU2LjM4IDI2MC4yLDY2My4wMyAyNDMuMjEsNjY2LjEzQzI0NS4yOCw2NjguNDIgMjQ3LjE3LDY3MC44NSAyNDksNjczLjM2QzI1OS4xMSw2NzMuNzUgMjY5LjQxLDY3My43OSAyNzkuNDcsNjcyLjk0QzMxNi42LDY2OS43NyAzNTEuNzgsNjUxLjg4IDM4OS4zOCw2NTMuMjZDNDIwLjMxLDY1NC40IDQ0OC40Niw2NzAuOTUgNDc5LjI2LDY3My4yNEM0OTMuNzQsNjc0LjMxIDUxMC43OCw2NzEuMDQgNTI0LjI4LDY2NS43MkM1MjQuNiw2NjUuNiA1MjUuMTcsNjY1LjYzIDUyNS4xLDY2NS4yQzQ5My41NSw2NjcuMTIgNDYxLjIyLDY1OS4yMiA0MzQuOTQsNjQxLjc4TDQzNC45NSw2NDEuNzdaIiBzdHlsZT0iZmlsbDpyZ2IoMjQyLDI0MiwyNDIpO2ZpbGwtcnVsZTpub256ZXJvOyIvPgogICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik00MzEuNjQsNjgxLjI4QzQzMS43MSw2ODEuODIgNDMwLjk5LDY4MS41NSA0MzAuNjcsNjgxLjVDNDI4LjcsNjgxLjE5IDQyNi40OSw2ODAuMzYgNDI0LjQ4LDY3OS45MkM0MDAuODEsNjc0LjcyIDM3NS4zNSw2NzIuNjkgMzUxLjIsNjc1LjY1QzM0MS4xMSw2NzYuODkgMzMxLjI4LDY3OS42MiAzMjEuMjQsNjgxLjIyQzMwMC40NSw2ODQuNTMgMjc4LjYyLDY4NS43NCAyNTcuODMsNjgyLjAxQzI3My44NSw2ODIuMTQgMjg5LjY2LDY4MC4xNiAzMDUuMjEsNjc2LjU0QzMxOS45OSw2NzMuMDkgMzM0Ljk1LDY2Ny4zOCAzNTAuMDEsNjY1LjUyQzM3Ny41NSw2NjIuMTEgNDA2LjI5LDY3MS43IDQzMS42NCw2ODEuMjhaIiBzdHlsZT0iZmlsbDpyZ2IoMjQyLDI0MiwyNDIpO2ZpbGwtcnVsZTpub256ZXJvOyIvPgogICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0zNzYuMzEsNjM2LjQxTDM2Ny42Nyw2MzkuOTRDMzQyLjA1LDY0OC4yIDMxNC4xMyw2NDYuODQgMjg4Ljc2LDYzOC4zN0MyODAuMSw2NDQuNDYgMjcxLjE0LDY1MC42NCAyNjAuODIsNjUzLjU2TDI2Ny4wNiw2NDkuMjJDMjc2LjE5LDY0Mi4yMiAyODUuMDgsNjM0LjY1IDI5MS40Nyw2MjQuOThDMjk0Ljc5LDYyNi40MyAyOTcuOTIsNjI4LjMxIDMwMS4yMyw2MjkuNzhDMzIzLjc2LDYzOS44MiAzNTIuMTIsNjQyLjMxIDM3Ni4zMSw2MzYuNDFaIiBzdHlsZT0iZmlsbDpyZ2IoMjQyLDI0MiwyNDIpO2ZpbGwtcnVsZTpub256ZXJvOyIvPgogICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik00OTYuNDQsNjc5Ljc5TDQ5My42Miw2ODAuOTlDNDU1LjExLDY5Ni4wOSA0MjIuMzIsNjY2LjAxIDM4NS4xMiw2NjEuN0wzNzQuNjEsNjYwLjEzQzM5Ny4wNSw2NTguMzMgNDE5LjAzLDY2My42MiA0NDAuMjQsNjcwLjE4QzQ0NS44Niw2NzEuOTIgNDUxLjQsNjc0LjEzIDQ1Ny4wMyw2NzUuNzdDNDY5LjY3LDY3OS40NiA0ODMuMzMsNjgxLjE5IDQ5Ni40NSw2NzkuOEw0OTYuNDQsNjc5Ljc5WiIgc3R5bGU9ImZpbGw6cmdiKDI0MiwyNDIsMjQyKTtmaWxsLXJ1bGU6bm9uemVybzsiLz4KICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNNTAyLjcyLDY1OC4wNEw0OTkuODksNjU4LjMzQzQ4MC40Miw2NTUuODcgNDYxLjU4LDY0OS41NiA0NDQuNTksNjM5LjkxQzQ0Mi44Niw2MzguOTMgNDQwLjk2LDYzNy44MyA0MzkuNDIsNjM2LjU4QzQ0Ny45LDYzOC45NCA0NTYuNzcsNjM1LjkyIDQ2NC4zMyw2MzIuMTJDNDcyLjIxLDY0Ni4xMyA0ODcuMzYsNjU0LjYyIDUwMi43Myw2NTguMDNMNTAyLjcyLDY1OC4wNFoiIHN0eWxlPSJmaWxsOnJnYigyNDIsMjQyLDI0Mik7ZmlsbC1ydWxlOm5vbnplcm87Ii8+CiAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTQ0MCw2OTAuODJDNDQwLjA3LDY5MS4zNiA0MzkuMzUsNjkxLjA5IDQzOS4wMyw2OTEuMDRDNDM1LjY5LDY5MC41MSA0MzIuMzUsNjg5LjY0IDQyOS4wMiw2ODkuMTFDMzk4LjE2LDY4NC4yMSAzNjYuNzcsNjg0LjAyIDMzNS42NCw2ODYuMDZDMzM1LjMyLDY4Ni4wOCAzMzQuMjMsNjg2LjI3IDMzNC4yOSw2ODUuNzVDMzY5LjA2LDY3Ni43OSA0MDYuMDQsNjgwLjQxIDQ0MCw2OTAuODJaIiBzdHlsZT0iZmlsbDpyZ2IoMjQyLDI0MiwyNDIpO2ZpbGwtcnVsZTpub256ZXJvOyIvPgogICAgICAgICAgICAgICAgPC9nPgogICAgICAgICAgICAgICAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoMSwwLDAsMSwtMjE3LjEyNSwtMzY4LjkwMikiPgogICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMTMuNTYsNTcyLjg3TDMxMy42OSw1NzIuMTRMMzEzLjk0LDU3Mi40OUwzMTMuNTYsNTcyLjg3WiIgc3R5bGU9ImZpbGw6cmdiKDIsMzgsNDMpO2ZpbGwtb3BhY2l0eTowLjY7ZmlsbC1ydWxlOm5vbnplcm87Ii8+CiAgICAgICAgICAgICAgICA8L2c+CiAgICAgICAgICAgICAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgxLDAsMCwxLC0yMTcuMTI1LC0zNjguOTAyKSI+CiAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTUzOS4wNiw2MjAuNTFDNTQyLjYyLDYxMy44MyA1NDUuNzIsNjA2Ljk1IDU0OC4zNSw1OTkuOTFDNTYwLjQ1LDU2Ny41NCA1NjIuNjMsNTMxLjg1IDU1NC4wMSw0OTcuODNDNTUzLjU2LDQ5Ni4wMyA1NTEuNzMsNDk0Ljk0IDU0OS45Myw0OTUuNEM1NDguMTQsNDk1Ljg1IDU0Ny4wNSw0OTcuNjggNTQ3LjUsNDk5LjQ3QzU1NS43OSw1MzIuMTcgNTUzLjY5LDU2Ni40NiA1NDIuMDgsNTk3LjU2QzUzOS45OCw2MDMuMTggNTM3LjU2LDYwOC43MSA1MzQuODQsNjE0LjFDNTMyLjYzLDYxOC40OCA1MzAuMjEsNjIyLjc3IDUyNy41OSw2MjYuOTZDNTI3LjMsNjI3LjQ0IDUyNyw2MjcuOTEgNTI2LjY5LDYyOC4zOEM1MjUuNDIsNjMwLjM5IDUyNC4xLDYzMi4zNyA1MjIuNzEsNjM0LjMyQzUyMi4wNSw2MzUuMjggNTIxLjM2LDYzNi4yNCA1MjAuNjYsNjM3LjE5QzUxOS43Niw2MzguNDIgNTE4Ljg0LDYzOS42MyA1MTcuODksNjQwLjg0QzUxMi41Niw2NDcuNzEgNTA2LjYyLDY1NC4yIDUwMC4wOSw2NjAuMjZDNDk4LjI1LDY2MS45NiA0OTYuMzYsNjYzLjY0IDQ5NC40Myw2NjUuMjdDNDkwLjQ4LDY2OC42MSA0ODYuMzMsNjcxLjggNDgyLDY3NC44MUM0NzguNTcsNjc3LjE5IDQ3NC44OCw2NzkuNTkgNDcxLjEzLDY4MS43N0M0NjcuODIsNjgzLjY5IDQ2NC40Nyw2ODUuNDUgNDYxLjIsNjg2LjkyQzQ2MS4wNiw2ODYuOTkgNDYwLjkyLDY4Ny4wNiA0NjAuNzksNjg3LjE0TDQ2MC43Niw2ODcuMTZMNDYwLjc0LDY4Ny4xNkw0NjAuNTgsNjg3LjI5TDQ2MC40Myw2ODcuNDFMNDYwLjM3LDY4Ny40NUw0NjAuMyw2ODcuNTFMNDYwLjExLDY4Ny43TDQ2MC4wNyw2ODcuNzVMNDYwLjA1LDY4Ny43N0w0NjAuMDMsNjg3LjhMNDYwLDY4Ny44M0M0NTkuNzcsNjg4LjExIDQ1OS41Nyw2ODguNDMgNDU5LjQ0LDY4OC43OUM0NTkuMyw2ODkuMTUgNDU5LjIzLDY4OS41MyA0NTkuMjIsNjg5LjlMNDU5LjIyLDY5MC4yNkw0NTkuMjUsNjkwLjQyTDQ1OS4yOSw2OTAuNjdMNDU5LjM1LDY5MC45QzQ1OS4zOSw2OTEuMDYgNDU5LjQ1LDY5MS4yMSA0NTkuNTEsNjkxLjM2QzQ1OS41OCw2OTEuNSA0NTkuNjUsNjkxLjY0IDQ1OS43Myw2OTEuNzdMNDU5Ljc1LDY5MS43OUw0NTkuNzcsNjkxLjgyTDQ1OS44OCw2OTEuOThMNDYwLDY5Mi4xM0w0NjAuMDQsNjkyLjE5TDQ2MC4zNCw2OTIuNDlMNDYwLjM2LDY5Mi40OUw0NjAuNDIsNjkyLjU2QzQ2MC43LDY5Mi43OSA0NjEuMDIsNjkyLjk4IDQ2MS4zOCw2OTMuMTJMNDgzLjA5LDcwMS4zOUw1MDQuNzUsNzA5LjY1QzUwNC45NCw3MDkuNzIgNTA1LjEzLDcwOS43OCA1MDUuMzQsNzA5LjgyQzUwNi4zMSw3MTAuMjEgNTA3LjQ0LDcxMC4xIDUwOC4zMiw3MDkuNDhDNTA4LjQ5LDcwOS4zNyA1MDguNjQsNzA5LjIzIDUwOC43OSw3MDkuMDhMNTU2LjM1LDY1OS44QzU1Ny4zOCw2NTguNzMgNTU3LjUsNjU3LjEyIDU1Ni43NSw2NTUuOTJMNTM5LjA2LDYyMC41MVoiIHN0eWxlPSJmaWxsOnJnYigyNDIsMjQyLDI0Mik7ZmlsbC1ydWxlOm5vbnplcm87Ii8+CiAgICAgICAgICAgICAgICA8L2c+CiAgICAgICAgICAgICAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgxLDAsMCwxLC0yMTcuMTI1LC0zNjguOTAyKSI+CiAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTQyNy43LDY5Ny42N0MzOTUsNzA1Ljk2IDM2MC43MSw3MDMuODYgMzI5LjYyLDY5Mi4yNEMzMTMuOTYsNjg2LjM5IDI5OS4xMSw2NzguMTMgMjg1LjY3LDY2Ny41NEMyODMuNjcsNjY1Ljk4IDI4MS42OSw2NjQuMzUgMjc5Ljc1LDY2Mi42N0MyNzIuMjEsNjU2LjE0IDI2NS4xNyw2NDguODMgMjU4Ljc3LDY0MC43N0MyNTcuNDYsNjM5LjE0IDI1Ni4xOCw2MzcuNDYgMjU0Ljk0LDYzNS43NkMyNTQuNTcsNjM1LjI3IDI1NC4yMSw2MzQuNzggMjUzLjg1LDYzNC4yOEMyNTMuMzUsNjMzLjU4IDI1Mi44NSw2MzIuODggMjUyLjM2LDYzMi4xN0MyNDkuOTgsNjI4LjczIDI0Ny41OSw2MjUuMDUgMjQ1LjQsNjIxLjI5QzI0My41MSw2MTguMDUgMjQxLjc4LDYxNC43NiAyNDAuMzMsNjExLjU0QzI0MC4zLDYxMS40OCAyNDAuMjgsNjExLjQzIDI0MC4yNSw2MTEuMzdDMjQwLjI1LDYxMS4zNSAyNDAuMjMsNjExLjMyIDI0MC4yMiw2MTEuM0MyNDAuMTYsNjExLjE4IDI0MC4xLDYxMS4wNyAyNDAuMDMsNjEwLjk2TDI0MC4wMSw2MTAuOTNMMjQwLjAxLDYxMC45TDIzOS44OSw2MTAuNzRMMjM5Ljc3LDYxMC42TDIzOS43Miw2MTAuNTRMMjM5LjY2LDYxMC40N0wyMzkuNTYsNjEwLjM2TDIzOS40Nyw2MTAuMjhMMjM5LjQzLDYxMC4yNEwyMzkuNCw2MTAuMjJMMjM5LjM4LDYxMC4xOUwyMzkuMzQsNjEwLjE3QzIzOS4yOSw2MTAuMTMgMjM5LjI0LDYxMC4wOSAyMzkuMTksNjEwLjA1QzIzOC45NSw2MDkuODcgMjM4LjY4LDYwOS43MiAyMzguMzksNjA5LjYxQzIzOC4wMiw2MDkuNDcgMjM3LjY1LDYwOS40IDIzNy4yOCw2MDkuMzlMMjM2LjkxLDYwOS4zOUwyMzYuNzUsNjA5LjQyTDIzNi41MSw2MDkuNDZMMjM2LjI3LDYwOS41MkMyMzYuMTIsNjA5LjU2IDIzNS45Nyw2MDkuNjIgMjM1LjgxLDYwOS42OEMyMzUuNjcsNjA5Ljc1IDIzNS41NCw2MDkuODIgMjM1LjQxLDYwOS45TDIzNS4zNSw2MDkuOTRMMjM1LjE5LDYxMC4wNUwyMzQuOTksNjEwLjIxTDIzNC45Miw2MTAuMjdMMjM0LjczLDYxMC40NkwyMzQuNjksNjEwLjUxTDIzNC42MSw2MTAuNTlDMjM0LjM4LDYxMC44NyAyMzQuMTksNjExLjE5IDIzNC4wNSw2MTEuNTVMMjI1Ljc4LDYzMy4yNUwyMTcuNTMsNjU0LjkyQzIxNy40NSw2NTUuMTEgMjE3LjM5LDY1NS4zIDIxNy4zNSw2NTUuNTFDMjE2Ljk2LDY1Ni40OCAyMTcuMDgsNjU3LjYxIDIxNy42OSw2NTguNDlDMjE3LjgsNjU4LjY2IDIxNy45NCw2NTguODEgMjE4LjA5LDY1OC45NkwyNjcuMzgsNzA2LjUyQzI2OC40NCw3MDcuNTUgMjcwLjA1LDcwNy42NyAyNzEuMjUsNzA2LjkyTDMwNi42Nyw2ODkuMjNDMzEzLjM0LDY5Mi43OSAzMjAuMjIsNjk1Ljg5IDMyNy4yNiw2OTguNTJDMzU5LjYzLDcxMC42MiAzOTUuMzIsNzEyLjggNDI5LjM0LDcwNC4xOEM0MzEuMTQsNzAzLjcyIDQzMi4yMyw3MDEuOSA0MzEuNzgsNzAwLjFDNDMxLjMyLDY5OC4zMSA0MjkuNSw2OTcuMjIgNDI3LjcsNjk3LjY3WiIgc3R5bGU9ImZpbGw6cmdiKDI0MiwyNDIsMjQyKTtmaWxsLXJ1bGU6bm9uemVybzsiLz4KICAgICAgICAgICAgICAgIDwvZz4KICAgICAgICAgICAgICAgIDxnIHRyYW5zZm9ybT0ibWF0cml4KDEsMCwwLDEsLTIxNy4xMjUsLTM2OC45MDIpIj4KICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMjIyLjM5LDU4Mi4wOEMyMjIuODQsNTgzLjg3IDIyNC42Nyw1ODQuOTYgMjI2LjQ2LDU4NC41MUMyMjguMjYsNTg0LjA1IDIyOS4zNSw1ODIuMjMgMjI4Ljg5LDU4MC40M0MyMjAuNjEsNTQ3Ljc0IDIyMi43LDUxMy40NCAyMzQuMzIsNDgyLjM1QzI0MC40Myw0NjYuMDEgMjQ5LjE2LDQ1MC41NSAyNjAuNDIsNDM2LjY2QzI2Ni44NSw0MjguNyAyNzQuMTEsNDIxLjI2IDI4Mi4xNyw0MTQuNDdDMjg2LjA2LDQxMS4xOSAyOTAuMTQsNDA4LjA2IDI5NC40LDQwNS4xQzI5Ny44Myw0MDIuNzEgMzAxLjUyLDQwMC4zMiAzMDUuMjcsMzk4LjEzQzMwOC41NywzOTYuMjEgMzExLjkyLDM5NC40NSAzMTUuMiwzOTIuOThDMzE1LjM0LDM5Mi45MiAzMTUuNDgsMzkyLjg0IDMxNS42MSwzOTIuNzZMMzE1LjYzLDM5Mi43NEwzMTUuNjYsMzkyLjc0TDMxNS44MiwzOTIuNjJMMzE1Ljk3LDM5Mi41TDMxNi4wMywzOTIuNDVMMzE2LjA5LDM5Mi4zOUwzMTYuMiwzOTIuMjlMMzE2LjI4LDM5Mi4yTDMxNi4zMywzOTIuMTZMMzE2LjM1LDM5Mi4xM0wzMTYuMzcsMzkyLjExTDMxNi40LDM5Mi4wN0MzMTYuNjMsMzkxLjc5IDMxNi44MiwzOTEuNDggMzE2Ljk2LDM5MS4xMkMzMTcuMSwzOTAuNzUgMzE3LjE3LDM5MC4zOCAzMTcuMTgsMzkwLjAxTDMxNy4xOCwzODkuNzhMMzE3LjE3LDM4OS42NEwzMTcuMTUsMzg5LjQ4TDMxNy4xMSwzODkuMjRMMzE3LjA1LDM4OUMzMTcuMDEsMzg4Ljg1IDMxNi45NSwzODguNyAzMTYuODgsMzg4LjU1QzMxNi44MiwzODguNCAzMTYuNzQsMzg4LjI3IDMxNi42NiwzODguMTRMMzE2LjY0LDM4OC4xMUwzMTYuNjQsMzg4LjA4TDMxNi41MiwzODcuOTJMMzE2LjQsMzg3Ljc3TDMxNi4zNSwzODcuNzJMMzE2LjI5LDM4Ny42NUwzMTYuMDYsMzg3LjQyTDMxNi4wMywzODcuNEwzMTYuMDEsMzg3LjM3TDMxNS45NywzODcuMzVDMzE1LjY5LDM4Ny4xMSAzMTUuMzcsMzg2LjkyIDMxNS4wMiwzODYuNzlMMjkzLjMxLDM3OC41MUwyNzEuNjUsMzcwLjI2QzI3MS40NiwzNzAuMTggMjcxLjI2LDM3MC4xMiAyNzEuMDYsMzcwLjA4QzI3MC4wOCwzNjkuNyAyNjguOTYsMzY5LjgxIDI2OC4wOCwzNzAuNDJDMjY3LjkxLDM3MC41NCAyNjcuNzUsMzcwLjY3IDI2Ny42MSwzNzAuODJMMjIwLjA1LDQyMC4xMUMyMTkuMDIsNDIxLjE4IDIxOC44OSw0MjIuNzggMjE5LjY1LDQyMy45OEwyMzcuMzMsNDU5LjRDMjMzLjc3LDQ2Ni4wNyAyMzAuNjcsNDcyLjk1IDIyOC4wNCw0ODBDMjE1Ljk1LDUxMi4zNiAyMTMuNzcsNTQ4LjA1IDIyMi4zOSw1ODIuMDhaIiBzdHlsZT0iZmlsbDpyZ2IoMjQyLDI0MiwyNDIpO2ZpbGwtcnVsZTpub256ZXJvOyIvPgogICAgICAgICAgICAgICAgPC9nPgogICAgICAgICAgICAgICAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoMSwwLDAsMSwtMjE3LjEyNSwtMzY4LjkwMikiPgogICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik01MTkuNjgsNDQxLjY1QzUyMC43OCw0NDMuMTIgNTIxLjg1LDQ0NC42MSA1MjIuOTEsNDQ2LjEzQzUyNS4zLDQ0OS41NiA1MjcuNjksNDUzLjI1IDUyOS44OCw0NTdDNTMxLjgsNDYwLjMgNTMzLjU2LDQ2My42NSA1MzUuMDMsNDY2LjkzQzUzNS4wOSw0NjcuMDcgNTM1LjE3LDQ2Ny4yMSA1MzUuMjUsNDY3LjM0TDUzNS4yNyw0NjcuMzZMNTM1LjI3LDQ2Ny4zOUw1MzUuMzksNDY3LjU1TDUzNS41MSw0NjcuN0w1MzUuNTYsNDY3Ljc2TDUzNS42Miw0NjcuODJMNTM1LjcyLDQ2Ny45M0w1MzUuODEsNDY4LjAxTDUzNS44NSw0NjguMDVMNTM1Ljg4LDQ2OC4wN0w1MzUuOSw0NjguMUw1MzUuOTQsNDY4LjEzQzUzNi4yMiw0NjguMzYgNTM2LjU0LDQ2OC41NSA1MzYuODksNDY4LjY5QzUzNy4yNiw0NjguODMgNTM3LjYzLDQ2OC44OSA1MzgsNDY4LjlMNTM4LjM3LDQ2OC45TDUzOC41Myw0NjguODhMNTM4Ljc3LDQ2OC44NEw1MzkuMDEsNDY4Ljc4QzUzOS4xNiw0NjguNzMgNTM5LjMxLDQ2OC42OCA1MzkuNDYsNDY4LjYxQzUzOS42MSw0NjguNTQgNTM5Ljc0LDQ2OC40NyA1MzkuODcsNDY4LjM5TDUzOS45LDQ2OC4zN0w1MzkuOTMsNDY4LjM3TDU0MC4wOSw0NjguMjVMNTQwLjI0LDQ2OC4xM0w1NDAuMjksNDY4LjA4TDU0MC4zNiw0NjguMDJMNTQwLjU5LDQ2Ny43OUw1NDAuNjEsNDY3Ljc2TDU0MC42NCw0NjcuNzRMNTQwLjY2LDQ2Ny43QzU0MC45LDQ2Ny40MiA1NDEuMDksNDY3LjEgNTQxLjIyLDQ2Ni43NEw1NDkuNSw0NDUuMDRMNTU3Ljc1LDQyMy4zOEM1NTcuODMsNDIzLjE5IDU1Ny44OSw0MjIuOTkgNTU3LjkzLDQyMi43OUM1NTguMzIsNDIxLjgxIDU1OC4yLDQyMC42OSA1NTcuNTksNDE5LjgxQzU1Ny40Nyw0MTkuNjQgNTU3LjM0LDQxOS40OCA1NTcuMTksNDE5LjMzTDUwNy45LDM3MS43OEM1MDYuODQsMzcwLjc1IDUwNS4yMywzNzAuNjIgNTA0LjAzLDM3MS4zOEw0NjguNjEsMzg5LjA2QzQ2MS45NCwzODUuNSA0NTUuMDYsMzgyLjQgNDQ4LjAxLDM3OS43N0M0MTUuNjUsMzY3LjY4IDM3OS45NiwzNjUuNSAzNDUuOTMsMzc0LjEyQzM0NC4xNCwzNzQuNTcgMzQzLjA1LDM3Ni40IDM0My41LDM3OC4xOUMzNDMuOTYsMzc5Ljk4IDM0NS43OCwzODEuMDggMzQ3LjU4LDM4MC42MkMzODAuMjcsMzcyLjM0IDQxNC41NywzNzQuNDMgNDQ1LjY2LDM4Ni4wNUM0NjEuMTksMzkxLjg1IDQ3NS45NCw0MDAuMDQgNDg5LjI5LDQxMC41QzUwMC41Miw0MTkuMjkgNTEwLjc3LDQyOS43IDUxOS42OCw0NDEuNjVaIiBzdHlsZT0iZmlsbDpyZ2IoMjQyLDI0MiwyNDIpO2ZpbGwtcnVsZTpub256ZXJvOyIvPgogICAgICAgICAgICAgICAgPC9nPgogICAgICAgICAgICA8L2c+CiAgICAgICAgPC9nPgogICAgPC9nPgo8L3N2Zz4K`;\n\nexport const HITMARKER_AUDIO_DATA_URL = `data:audio/mpeg;base64,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`;\n"],"names":[],"mappings":";;AAAA;;AAEG;AAEI,MAAM,iBAAiB,GAAG;AAE1B,MAAM,wBAAwB,GAAG;;;;;"}
|