@design.estate/dees-wcctools 1.2.1 → 2.0.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_bundle/bundle.js +1764 -218
- package/dist_bundle/bundle.js.map +4 -4
- package/dist_ts_demotools/demotools.d.ts +1 -1
- package/dist_ts_demotools/demotools.js +86 -38
- package/dist_ts_web/00_commitinfo_data.js +1 -1
- package/dist_ts_web/elements/wcc-dashboard.d.ts +11 -10
- package/dist_ts_web/elements/wcc-dashboard.js +370 -246
- package/dist_ts_web/elements/wcc-frame.d.ts +3 -3
- package/dist_ts_web/elements/wcc-frame.js +108 -57
- package/dist_ts_web/elements/wcc-properties.d.ts +14 -8
- package/dist_ts_web/elements/wcc-properties.js +442 -323
- package/dist_ts_web/elements/wcc-record-button.d.ts +12 -0
- package/dist_ts_web/elements/wcc-record-button.js +165 -0
- package/dist_ts_web/elements/wcc-recording-panel.d.ts +42 -0
- package/dist_ts_web/elements/wcc-recording-panel.js +1067 -0
- package/dist_ts_web/elements/wcc-sidebar.d.ts +7 -5
- package/dist_ts_web/elements/wcc-sidebar.js +250 -81
- package/dist_ts_web/elements/wcctools.helpers.d.ts +13 -0
- package/dist_ts_web/elements/wcctools.helpers.js +26 -1
- package/dist_ts_web/index.d.ts +3 -0
- package/dist_ts_web/index.js +5 -1
- package/dist_ts_web/services/ffmpeg.service.d.ts +42 -0
- package/dist_ts_web/services/ffmpeg.service.js +276 -0
- package/dist_ts_web/services/mp4.service.d.ts +32 -0
- package/dist_ts_web/services/mp4.service.js +139 -0
- package/dist_ts_web/services/recorder.service.d.ts +44 -0
- package/dist_ts_web/services/recorder.service.js +307 -0
- package/dist_watch/bundle.js +2126 -541
- package/dist_watch/bundle.js.map +4 -4
- package/package.json +8 -8
- package/readme.md +133 -141
- package/ts_web/00_commitinfo_data.ts +1 -1
- package/ts_web/elements/wcc-dashboard.ts +86 -26
- package/ts_web/elements/wcc-frame.ts +3 -3
- package/ts_web/elements/wcc-properties.ts +53 -9
- package/ts_web/elements/wcc-record-button.ts +108 -0
- package/ts_web/elements/wcc-recording-panel.ts +978 -0
- package/ts_web/elements/wcc-sidebar.ts +133 -22
- package/ts_web/elements/wcctools.helpers.ts +31 -0
- package/ts_web/index.ts +5 -0
- package/ts_web/readme.md +123 -0
- package/ts_web/services/recorder.service.ts +393 -0
|
@@ -1,14 +1,39 @@
|
|
|
1
|
-
var
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
|
|
2
|
+
function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
|
|
3
|
+
var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
|
|
4
|
+
var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
|
|
5
|
+
var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
|
|
6
|
+
var _, done = false;
|
|
7
|
+
for (var i = decorators.length - 1; i >= 0; i--) {
|
|
8
|
+
var context = {};
|
|
9
|
+
for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
|
|
10
|
+
for (var p in contextIn.access) context.access[p] = contextIn.access[p];
|
|
11
|
+
context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
|
|
12
|
+
var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
|
|
13
|
+
if (kind === "accessor") {
|
|
14
|
+
if (result === void 0) continue;
|
|
15
|
+
if (result === null || typeof result !== "object") throw new TypeError("Object expected");
|
|
16
|
+
if (_ = accept(result.get)) descriptor.get = _;
|
|
17
|
+
if (_ = accept(result.set)) descriptor.set = _;
|
|
18
|
+
if (_ = accept(result.init)) initializers.unshift(_);
|
|
19
|
+
}
|
|
20
|
+
else if (_ = accept(result)) {
|
|
21
|
+
if (kind === "field") initializers.unshift(_);
|
|
22
|
+
else descriptor[key] = _;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
if (target) Object.defineProperty(target, contextIn.name, descriptor);
|
|
26
|
+
done = true;
|
|
6
27
|
};
|
|
7
|
-
var
|
|
8
|
-
|
|
28
|
+
var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
|
|
29
|
+
var useValue = arguments.length > 2;
|
|
30
|
+
for (var i = 0; i < initializers.length; i++) {
|
|
31
|
+
value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
|
|
32
|
+
}
|
|
33
|
+
return useValue ? value : void 0;
|
|
9
34
|
};
|
|
10
35
|
import { DeesElement, property, html, customElement, queryAsync, render, domtools } from '@design.estate/dees-element';
|
|
11
|
-
import { resolveTemplateFactory } from './wcctools.helpers.js';
|
|
36
|
+
import { resolveTemplateFactory, getDemoAtIndex, getDemoCount, hasMultipleDemos } from './wcctools.helpers.js';
|
|
12
37
|
import * as plugins from '../wcctools.plugins.js';
|
|
13
38
|
// wcc tools
|
|
14
39
|
import './wcc-frame.js';
|
|
@@ -18,30 +43,125 @@ import {} from './wcc-properties.js';
|
|
|
18
43
|
import {} from './wcc-sidebar.js';
|
|
19
44
|
import { breakpoints } from '@design.estate/dees-domtools';
|
|
20
45
|
import { WccFrame } from './wcc-frame.js';
|
|
21
|
-
let WccDashboard =
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
46
|
+
let WccDashboard = (() => {
|
|
47
|
+
let _classDecorators = [customElement('wcc-dashboard')];
|
|
48
|
+
let _classDescriptor;
|
|
49
|
+
let _classExtraInitializers = [];
|
|
50
|
+
let _classThis;
|
|
51
|
+
let _classSuper = DeesElement;
|
|
52
|
+
let _selectedType_decorators;
|
|
53
|
+
let _selectedType_initializers = [];
|
|
54
|
+
let _selectedType_extraInitializers = [];
|
|
55
|
+
let _selectedItemName_decorators;
|
|
56
|
+
let _selectedItemName_initializers = [];
|
|
57
|
+
let _selectedItemName_extraInitializers = [];
|
|
58
|
+
let _selectedItem_decorators;
|
|
59
|
+
let _selectedItem_initializers = [];
|
|
60
|
+
let _selectedItem_extraInitializers = [];
|
|
61
|
+
let _selectedDemoIndex_decorators;
|
|
62
|
+
let _selectedDemoIndex_initializers = [];
|
|
63
|
+
let _selectedDemoIndex_extraInitializers = [];
|
|
64
|
+
let _selectedViewport_decorators;
|
|
65
|
+
let _selectedViewport_initializers = [];
|
|
66
|
+
let _selectedViewport_extraInitializers = [];
|
|
67
|
+
let _selectedTheme_decorators;
|
|
68
|
+
let _selectedTheme_initializers = [];
|
|
69
|
+
let _selectedTheme_extraInitializers = [];
|
|
70
|
+
let _isFullscreen_decorators;
|
|
71
|
+
let _isFullscreen_initializers = [];
|
|
72
|
+
let _isFullscreen_extraInitializers = [];
|
|
73
|
+
let _pages_decorators;
|
|
74
|
+
let _pages_initializers = [];
|
|
75
|
+
let _pages_extraInitializers = [];
|
|
76
|
+
let _elements_decorators;
|
|
77
|
+
let _elements_initializers = [];
|
|
78
|
+
let _elements_extraInitializers = [];
|
|
79
|
+
let _warning_decorators;
|
|
80
|
+
let _warning_initializers = [];
|
|
81
|
+
let _warning_extraInitializers = [];
|
|
82
|
+
let _wccFrame_decorators;
|
|
83
|
+
let _wccFrame_initializers = [];
|
|
84
|
+
let _wccFrame_extraInitializers = [];
|
|
85
|
+
var WccDashboard = class extends _classSuper {
|
|
86
|
+
static { _classThis = this; }
|
|
87
|
+
static {
|
|
88
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
89
|
+
_selectedType_decorators = [property()];
|
|
90
|
+
_selectedItemName_decorators = [property()];
|
|
91
|
+
_selectedItem_decorators = [property()];
|
|
92
|
+
_selectedDemoIndex_decorators = [property({ type: Number })];
|
|
93
|
+
_selectedViewport_decorators = [property()];
|
|
94
|
+
_selectedTheme_decorators = [property()];
|
|
95
|
+
_isFullscreen_decorators = [property()];
|
|
96
|
+
_pages_decorators = [property()];
|
|
97
|
+
_elements_decorators = [property()];
|
|
98
|
+
_warning_decorators = [property()];
|
|
99
|
+
_wccFrame_decorators = [queryAsync('wcc-frame')];
|
|
100
|
+
__esDecorate(this, null, _selectedType_decorators, { kind: "accessor", name: "selectedType", static: false, private: false, access: { has: obj => "selectedType" in obj, get: obj => obj.selectedType, set: (obj, value) => { obj.selectedType = value; } }, metadata: _metadata }, _selectedType_initializers, _selectedType_extraInitializers);
|
|
101
|
+
__esDecorate(this, null, _selectedItemName_decorators, { kind: "accessor", name: "selectedItemName", static: false, private: false, access: { has: obj => "selectedItemName" in obj, get: obj => obj.selectedItemName, set: (obj, value) => { obj.selectedItemName = value; } }, metadata: _metadata }, _selectedItemName_initializers, _selectedItemName_extraInitializers);
|
|
102
|
+
__esDecorate(this, null, _selectedItem_decorators, { kind: "accessor", name: "selectedItem", static: false, private: false, access: { has: obj => "selectedItem" in obj, get: obj => obj.selectedItem, set: (obj, value) => { obj.selectedItem = value; } }, metadata: _metadata }, _selectedItem_initializers, _selectedItem_extraInitializers);
|
|
103
|
+
__esDecorate(this, null, _selectedDemoIndex_decorators, { kind: "accessor", name: "selectedDemoIndex", static: false, private: false, access: { has: obj => "selectedDemoIndex" in obj, get: obj => obj.selectedDemoIndex, set: (obj, value) => { obj.selectedDemoIndex = value; } }, metadata: _metadata }, _selectedDemoIndex_initializers, _selectedDemoIndex_extraInitializers);
|
|
104
|
+
__esDecorate(this, null, _selectedViewport_decorators, { kind: "accessor", name: "selectedViewport", static: false, private: false, access: { has: obj => "selectedViewport" in obj, get: obj => obj.selectedViewport, set: (obj, value) => { obj.selectedViewport = value; } }, metadata: _metadata }, _selectedViewport_initializers, _selectedViewport_extraInitializers);
|
|
105
|
+
__esDecorate(this, null, _selectedTheme_decorators, { kind: "accessor", name: "selectedTheme", static: false, private: false, access: { has: obj => "selectedTheme" in obj, get: obj => obj.selectedTheme, set: (obj, value) => { obj.selectedTheme = value; } }, metadata: _metadata }, _selectedTheme_initializers, _selectedTheme_extraInitializers);
|
|
106
|
+
__esDecorate(this, null, _isFullscreen_decorators, { kind: "accessor", name: "isFullscreen", static: false, private: false, access: { has: obj => "isFullscreen" in obj, get: obj => obj.isFullscreen, set: (obj, value) => { obj.isFullscreen = value; } }, metadata: _metadata }, _isFullscreen_initializers, _isFullscreen_extraInitializers);
|
|
107
|
+
__esDecorate(this, null, _pages_decorators, { kind: "accessor", name: "pages", static: false, private: false, access: { has: obj => "pages" in obj, get: obj => obj.pages, set: (obj, value) => { obj.pages = value; } }, metadata: _metadata }, _pages_initializers, _pages_extraInitializers);
|
|
108
|
+
__esDecorate(this, null, _elements_decorators, { kind: "accessor", name: "elements", static: false, private: false, access: { has: obj => "elements" in obj, get: obj => obj.elements, set: (obj, value) => { obj.elements = value; } }, metadata: _metadata }, _elements_initializers, _elements_extraInitializers);
|
|
109
|
+
__esDecorate(this, null, _warning_decorators, { kind: "accessor", name: "warning", static: false, private: false, access: { has: obj => "warning" in obj, get: obj => obj.warning, set: (obj, value) => { obj.warning = value; } }, metadata: _metadata }, _warning_initializers, _warning_extraInitializers);
|
|
110
|
+
__esDecorate(this, null, _wccFrame_decorators, { kind: "accessor", name: "wccFrame", static: false, private: false, access: { has: obj => "wccFrame" in obj, get: obj => obj.wccFrame, set: (obj, value) => { obj.wccFrame = value; } }, metadata: _metadata }, _wccFrame_initializers, _wccFrame_extraInitializers);
|
|
111
|
+
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
112
|
+
WccDashboard = _classThis = _classDescriptor.value;
|
|
113
|
+
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
114
|
+
__runInitializers(_classThis, _classExtraInitializers);
|
|
38
115
|
}
|
|
39
|
-
|
|
40
|
-
|
|
116
|
+
#selectedType_accessor_storage = __runInitializers(this, _selectedType_initializers, void 0);
|
|
117
|
+
get selectedType() { return this.#selectedType_accessor_storage; }
|
|
118
|
+
set selectedType(value) { this.#selectedType_accessor_storage = value; }
|
|
119
|
+
#selectedItemName_accessor_storage = (__runInitializers(this, _selectedType_extraInitializers), __runInitializers(this, _selectedItemName_initializers, void 0));
|
|
120
|
+
get selectedItemName() { return this.#selectedItemName_accessor_storage; }
|
|
121
|
+
set selectedItemName(value) { this.#selectedItemName_accessor_storage = value; }
|
|
122
|
+
#selectedItem_accessor_storage = (__runInitializers(this, _selectedItemName_extraInitializers), __runInitializers(this, _selectedItem_initializers, void 0));
|
|
123
|
+
get selectedItem() { return this.#selectedItem_accessor_storage; }
|
|
124
|
+
set selectedItem(value) { this.#selectedItem_accessor_storage = value; }
|
|
125
|
+
#selectedDemoIndex_accessor_storage = (__runInitializers(this, _selectedItem_extraInitializers), __runInitializers(this, _selectedDemoIndex_initializers, 0));
|
|
126
|
+
get selectedDemoIndex() { return this.#selectedDemoIndex_accessor_storage; }
|
|
127
|
+
set selectedDemoIndex(value) { this.#selectedDemoIndex_accessor_storage = value; }
|
|
128
|
+
#selectedViewport_accessor_storage = (__runInitializers(this, _selectedDemoIndex_extraInitializers), __runInitializers(this, _selectedViewport_initializers, 'desktop'));
|
|
129
|
+
get selectedViewport() { return this.#selectedViewport_accessor_storage; }
|
|
130
|
+
set selectedViewport(value) { this.#selectedViewport_accessor_storage = value; }
|
|
131
|
+
#selectedTheme_accessor_storage = (__runInitializers(this, _selectedViewport_extraInitializers), __runInitializers(this, _selectedTheme_initializers, 'dark'));
|
|
132
|
+
get selectedTheme() { return this.#selectedTheme_accessor_storage; }
|
|
133
|
+
set selectedTheme(value) { this.#selectedTheme_accessor_storage = value; }
|
|
134
|
+
#isFullscreen_accessor_storage = (__runInitializers(this, _selectedTheme_extraInitializers), __runInitializers(this, _isFullscreen_initializers, false));
|
|
135
|
+
get isFullscreen() { return this.#isFullscreen_accessor_storage; }
|
|
136
|
+
set isFullscreen(value) { this.#isFullscreen_accessor_storage = value; }
|
|
137
|
+
#pages_accessor_storage = (__runInitializers(this, _isFullscreen_extraInitializers), __runInitializers(this, _pages_initializers, {}));
|
|
138
|
+
get pages() { return this.#pages_accessor_storage; }
|
|
139
|
+
set pages(value) { this.#pages_accessor_storage = value; }
|
|
140
|
+
#elements_accessor_storage = (__runInitializers(this, _pages_extraInitializers), __runInitializers(this, _elements_initializers, {}));
|
|
141
|
+
get elements() { return this.#elements_accessor_storage; }
|
|
142
|
+
set elements(value) { this.#elements_accessor_storage = value; }
|
|
143
|
+
#warning_accessor_storage = (__runInitializers(this, _elements_extraInitializers), __runInitializers(this, _warning_initializers, null));
|
|
144
|
+
get warning() { return this.#warning_accessor_storage; }
|
|
145
|
+
set warning(value) { this.#warning_accessor_storage = value; }
|
|
146
|
+
frameScrollY = (__runInitializers(this, _warning_extraInitializers), 0);
|
|
147
|
+
sidebarScrollY = 0;
|
|
148
|
+
scrollPositionsApplied = false;
|
|
149
|
+
#wccFrame_accessor_storage = __runInitializers(this, _wccFrame_initializers, void 0);
|
|
150
|
+
get wccFrame() { return this.#wccFrame_accessor_storage; }
|
|
151
|
+
set wccFrame(value) { this.#wccFrame_accessor_storage = value; }
|
|
152
|
+
constructor(elementsArg, pagesArg) {
|
|
153
|
+
super();
|
|
154
|
+
if (elementsArg) {
|
|
155
|
+
this.elements = elementsArg;
|
|
156
|
+
console.log('got elements:');
|
|
157
|
+
console.log(this.elements);
|
|
158
|
+
}
|
|
159
|
+
if (pagesArg) {
|
|
160
|
+
this.pages = pagesArg;
|
|
161
|
+
}
|
|
41
162
|
}
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
return html `
|
|
163
|
+
render() {
|
|
164
|
+
return html `
|
|
45
165
|
<style>
|
|
46
166
|
:host {
|
|
47
167
|
background: #fcfcfc;
|
|
@@ -57,14 +177,14 @@ let WccDashboard = class WccDashboard extends DeesElement {
|
|
|
57
177
|
.selectedItem=${this.selectedItem}
|
|
58
178
|
.isFullscreen=${this.isFullscreen}
|
|
59
179
|
@selectedType=${(eventArg) => {
|
|
60
|
-
|
|
61
|
-
|
|
180
|
+
this.selectedType = eventArg.detail;
|
|
181
|
+
}}
|
|
62
182
|
@selectedItemName=${(eventArg) => {
|
|
63
|
-
|
|
64
|
-
|
|
183
|
+
this.selectedItemName = eventArg.detail;
|
|
184
|
+
}}
|
|
65
185
|
@selectedItem=${(eventArg) => {
|
|
66
|
-
|
|
67
|
-
|
|
186
|
+
this.selectedItem = eventArg.detail;
|
|
187
|
+
}}
|
|
68
188
|
></wcc-sidebar>
|
|
69
189
|
<wcc-properties
|
|
70
190
|
.dashboardRef=${this}
|
|
@@ -74,239 +194,243 @@ let WccDashboard = class WccDashboard extends DeesElement {
|
|
|
74
194
|
.selectedTheme=${this.selectedTheme}
|
|
75
195
|
.isFullscreen=${this.isFullscreen}
|
|
76
196
|
@selectedViewport=${(eventArg) => {
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
197
|
+
this.selectedViewport = eventArg.detail;
|
|
198
|
+
this.scheduleUpdate();
|
|
199
|
+
}}
|
|
80
200
|
@selectedTheme=${(eventArg) => {
|
|
81
|
-
|
|
82
|
-
|
|
201
|
+
this.selectedTheme = eventArg.detail;
|
|
202
|
+
}}
|
|
83
203
|
@editorStateChanged=${async (eventArg) => {
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
204
|
+
const frame = await this.wccFrame;
|
|
205
|
+
if (frame) {
|
|
206
|
+
frame.advancedEditorOpen = eventArg.detail.isOpen;
|
|
207
|
+
frame.requestUpdate();
|
|
208
|
+
}
|
|
209
|
+
}}
|
|
90
210
|
@toggleFullscreen=${() => {
|
|
91
|
-
|
|
92
|
-
|
|
211
|
+
this.toggleFullscreen();
|
|
212
|
+
}}
|
|
93
213
|
></wcc-properties>
|
|
94
214
|
<wcc-frame id="wccFrame" viewport=${this.selectedViewport} .isFullscreen=${this.isFullscreen}>
|
|
95
215
|
</wcc-frame>
|
|
96
216
|
`;
|
|
97
|
-
}
|
|
98
|
-
setWarning(warningTextArg) {
|
|
99
|
-
if (this.warning !== warningTextArg) {
|
|
100
|
-
console.log(warningTextArg);
|
|
101
|
-
this.warning = warningTextArg;
|
|
102
|
-
setTimeout(() => {
|
|
103
|
-
this.scheduleUpdate();
|
|
104
|
-
}, 0);
|
|
105
217
|
}
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
document.addEventListener('keydown', (event) => {
|
|
114
|
-
if (event.key === 'Escape' && this.isFullscreen) {
|
|
115
|
-
this.isFullscreen = false;
|
|
218
|
+
setWarning(warningTextArg) {
|
|
219
|
+
if (this.warning !== warningTextArg) {
|
|
220
|
+
console.log(warningTextArg);
|
|
221
|
+
this.warning = warningTextArg;
|
|
222
|
+
setTimeout(() => {
|
|
223
|
+
this.scheduleUpdate();
|
|
224
|
+
}, 0);
|
|
116
225
|
}
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
226
|
+
}
|
|
227
|
+
toggleFullscreen() {
|
|
228
|
+
this.isFullscreen = !this.isFullscreen;
|
|
229
|
+
}
|
|
230
|
+
async firstUpdated() {
|
|
231
|
+
this.domtools = await plugins.deesDomtools.DomTools.setupDomTools();
|
|
232
|
+
// Add ESC key handler for fullscreen mode
|
|
233
|
+
document.addEventListener('keydown', (event) => {
|
|
234
|
+
if (event.key === 'Escape' && this.isFullscreen) {
|
|
235
|
+
this.isFullscreen = false;
|
|
236
|
+
}
|
|
237
|
+
});
|
|
238
|
+
// Set up scroll listeners after DOM is ready
|
|
239
|
+
setTimeout(() => {
|
|
240
|
+
this.setupScrollListeners();
|
|
241
|
+
}, 500);
|
|
242
|
+
// Route with demo index (new format)
|
|
243
|
+
this.domtools.router.on('/wcctools-route/:itemType/:itemName/:demoIndex/:viewport/:theme', async (routeInfo) => {
|
|
244
|
+
this.selectedType = routeInfo.params.itemType;
|
|
245
|
+
this.selectedItemName = routeInfo.params.itemName;
|
|
246
|
+
this.selectedDemoIndex = parseInt(routeInfo.params.demoIndex) || 0;
|
|
247
|
+
this.selectedViewport = routeInfo.params.viewport;
|
|
248
|
+
this.selectedTheme = routeInfo.params.theme;
|
|
249
|
+
if (routeInfo.params.itemType === 'element') {
|
|
250
|
+
this.selectedItem = this.elements[routeInfo.params.itemName];
|
|
251
|
+
}
|
|
252
|
+
else if (routeInfo.params.itemType === 'page') {
|
|
253
|
+
this.selectedItem = this.pages[routeInfo.params.itemName];
|
|
254
|
+
}
|
|
255
|
+
// Restore scroll positions from query parameters
|
|
256
|
+
if (routeInfo.queryParams) {
|
|
257
|
+
const frameScrollY = routeInfo.queryParams.frameScrollY;
|
|
258
|
+
const sidebarScrollY = routeInfo.queryParams.sidebarScrollY;
|
|
259
|
+
if (frameScrollY) {
|
|
260
|
+
this.frameScrollY = parseInt(frameScrollY);
|
|
261
|
+
}
|
|
262
|
+
if (sidebarScrollY) {
|
|
263
|
+
this.sidebarScrollY = parseInt(sidebarScrollY);
|
|
264
|
+
}
|
|
265
|
+
// Apply scroll positions after a short delay to ensure DOM is ready
|
|
266
|
+
setTimeout(() => {
|
|
267
|
+
this.applyScrollPositions();
|
|
268
|
+
}, 100);
|
|
269
|
+
}
|
|
270
|
+
const domtoolsInstance = await plugins.deesDomtools.elementBasic.setup();
|
|
271
|
+
this.selectedTheme === 'bright'
|
|
272
|
+
? domtoolsInstance.themeManager.goBright()
|
|
273
|
+
: domtoolsInstance.themeManager.goDark();
|
|
274
|
+
});
|
|
275
|
+
// Legacy route without demo index (for backwards compatibility)
|
|
276
|
+
this.domtools.router.on('/wcctools-route/:itemType/:itemName/:viewport/:theme', async (routeInfo) => {
|
|
277
|
+
this.selectedType = routeInfo.params.itemType;
|
|
278
|
+
this.selectedItemName = routeInfo.params.itemName;
|
|
279
|
+
this.selectedDemoIndex = 0; // Default to first demo
|
|
280
|
+
this.selectedViewport = routeInfo.params.viewport;
|
|
281
|
+
this.selectedTheme = routeInfo.params.theme;
|
|
282
|
+
if (routeInfo.params.itemType === 'element') {
|
|
283
|
+
this.selectedItem = this.elements[routeInfo.params.itemName];
|
|
284
|
+
}
|
|
285
|
+
else if (routeInfo.params.itemType === 'page') {
|
|
286
|
+
this.selectedItem = this.pages[routeInfo.params.itemName];
|
|
287
|
+
}
|
|
288
|
+
// Restore scroll positions from query parameters
|
|
289
|
+
if (routeInfo.queryParams) {
|
|
290
|
+
const frameScrollY = routeInfo.queryParams.frameScrollY;
|
|
291
|
+
const sidebarScrollY = routeInfo.queryParams.sidebarScrollY;
|
|
292
|
+
if (frameScrollY) {
|
|
293
|
+
this.frameScrollY = parseInt(frameScrollY);
|
|
294
|
+
}
|
|
295
|
+
if (sidebarScrollY) {
|
|
296
|
+
this.sidebarScrollY = parseInt(sidebarScrollY);
|
|
297
|
+
}
|
|
298
|
+
// Apply scroll positions after a short delay to ensure DOM is ready
|
|
299
|
+
setTimeout(() => {
|
|
300
|
+
this.applyScrollPositions();
|
|
301
|
+
}, 100);
|
|
302
|
+
}
|
|
303
|
+
const domtoolsInstance = await plugins.deesDomtools.elementBasic.setup();
|
|
304
|
+
this.selectedTheme === 'bright'
|
|
305
|
+
? domtoolsInstance.themeManager.goBright()
|
|
306
|
+
: domtoolsInstance.themeManager.goDark();
|
|
307
|
+
});
|
|
308
|
+
}
|
|
309
|
+
async updated(changedPropertiesArg) {
|
|
310
|
+
this.domtools = await plugins.deesDomtools.DomTools.setupDomTools();
|
|
311
|
+
await this.domtools.router._handleRouteState();
|
|
312
|
+
const wccFrame = this.shadowRoot.querySelector('wcc-frame');
|
|
313
|
+
if (changedPropertiesArg.has('selectedItemName')) {
|
|
314
|
+
document.title = this.selectedItemName;
|
|
129
315
|
}
|
|
130
|
-
|
|
131
|
-
|
|
316
|
+
;
|
|
317
|
+
if (this.selectedType === 'page' && this.selectedItem) {
|
|
318
|
+
if (typeof this.selectedItem === 'function') {
|
|
319
|
+
console.log('slotting page.');
|
|
320
|
+
const viewport = await wccFrame.getViewportElement();
|
|
321
|
+
const pageFactory = this.selectedItem;
|
|
322
|
+
const pageTemplate = await resolveTemplateFactory(pageFactory);
|
|
323
|
+
render(pageTemplate, viewport);
|
|
324
|
+
console.log('rendered page.');
|
|
325
|
+
}
|
|
326
|
+
else {
|
|
327
|
+
console.error('The selected item looks strange:');
|
|
328
|
+
console.log(this.selectedItem);
|
|
329
|
+
}
|
|
132
330
|
}
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
const
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
331
|
+
else if (this.selectedType === 'element' && this.selectedItem) {
|
|
332
|
+
console.log('slotting element.');
|
|
333
|
+
const anonItem = this.selectedItem;
|
|
334
|
+
if (!anonItem.demo) {
|
|
335
|
+
this.setWarning(`component ${anonItem.name} does not expose a demo property.`);
|
|
336
|
+
return;
|
|
139
337
|
}
|
|
140
|
-
|
|
141
|
-
|
|
338
|
+
// Support both single demo (function) and multiple demos (array)
|
|
339
|
+
const isArray = Array.isArray(anonItem.demo);
|
|
340
|
+
const isFunction = typeof anonItem.demo === 'function';
|
|
341
|
+
if (!isArray && !isFunction) {
|
|
342
|
+
this.setWarning(`component ${anonItem.name} has demo property, but it is not a function or array of functions`);
|
|
343
|
+
return;
|
|
142
344
|
}
|
|
143
|
-
//
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
345
|
+
// Get the specific demo to render
|
|
346
|
+
const demoFactory = getDemoAtIndex(anonItem.demo, this.selectedDemoIndex);
|
|
347
|
+
if (!demoFactory) {
|
|
348
|
+
this.setWarning(`component ${anonItem.name} does not have a demo at index ${this.selectedDemoIndex + 1}`);
|
|
349
|
+
return;
|
|
350
|
+
}
|
|
351
|
+
this.setWarning(null);
|
|
352
|
+
const viewport = await wccFrame.getViewportElement();
|
|
353
|
+
const demoTemplate = await resolveTemplateFactory(demoFactory);
|
|
354
|
+
render(demoTemplate, viewport);
|
|
147
355
|
}
|
|
148
|
-
const domtoolsInstance = await plugins.deesDomtools.elementBasic.setup();
|
|
149
|
-
this.selectedTheme === 'bright'
|
|
150
|
-
? domtoolsInstance.themeManager.goBright()
|
|
151
|
-
: domtoolsInstance.themeManager.goDark();
|
|
152
|
-
});
|
|
153
|
-
}
|
|
154
|
-
async updated(changedPropertiesArg) {
|
|
155
|
-
this.domtools = await plugins.deesDomtools.DomTools.setupDomTools();
|
|
156
|
-
await this.domtools.router._handleRouteState();
|
|
157
|
-
const wccFrame = this.shadowRoot.querySelector('wcc-frame');
|
|
158
|
-
if (changedPropertiesArg.has('selectedItemName')) {
|
|
159
|
-
document.title = this.selectedItemName;
|
|
160
356
|
}
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
const pageFactory = this.selectedItem;
|
|
167
|
-
const pageTemplate = await resolveTemplateFactory(pageFactory);
|
|
168
|
-
render(pageTemplate, viewport);
|
|
169
|
-
console.log('rendered page.');
|
|
357
|
+
buildUrl() {
|
|
358
|
+
const baseUrl = `/wcctools-route/${this.selectedType}/${this.selectedItemName}/${this.selectedDemoIndex}/${this.selectedViewport}/${this.selectedTheme}`;
|
|
359
|
+
const queryParams = new URLSearchParams();
|
|
360
|
+
if (this.frameScrollY > 0) {
|
|
361
|
+
queryParams.set('frameScrollY', this.frameScrollY.toString());
|
|
170
362
|
}
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
console.log(this.selectedItem);
|
|
363
|
+
if (this.sidebarScrollY > 0) {
|
|
364
|
+
queryParams.set('sidebarScrollY', this.sidebarScrollY.toString());
|
|
174
365
|
}
|
|
366
|
+
const queryString = queryParams.toString();
|
|
367
|
+
const fullUrl = queryString ? `${baseUrl}?${queryString}` : baseUrl;
|
|
368
|
+
this.domtools.router.pushUrl(fullUrl);
|
|
175
369
|
}
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
370
|
+
scrollUpdateTimeout = __runInitializers(this, _wccFrame_extraInitializers);
|
|
371
|
+
scrollListenersAttached = false;
|
|
372
|
+
async setupScrollListeners() {
|
|
373
|
+
// Prevent duplicate listeners
|
|
374
|
+
if (this.scrollListenersAttached) {
|
|
181
375
|
return;
|
|
182
376
|
}
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
377
|
+
const wccFrame = await this.wccFrame;
|
|
378
|
+
const wccSidebar = this.shadowRoot.querySelector('wcc-sidebar');
|
|
379
|
+
if (wccFrame) {
|
|
380
|
+
// The frame element itself is the scrollable container
|
|
381
|
+
wccFrame.addEventListener('scroll', () => {
|
|
382
|
+
this.frameScrollY = wccFrame.scrollTop;
|
|
383
|
+
this.debouncedScrollUpdate();
|
|
384
|
+
});
|
|
385
|
+
this.scrollListenersAttached = true;
|
|
386
|
+
}
|
|
387
|
+
if (wccSidebar) {
|
|
388
|
+
// The sidebar element itself is the scrollable container
|
|
389
|
+
wccSidebar.addEventListener('scroll', () => {
|
|
390
|
+
this.sidebarScrollY = wccSidebar.scrollTop;
|
|
391
|
+
this.debouncedScrollUpdate();
|
|
392
|
+
});
|
|
186
393
|
}
|
|
187
|
-
this.setWarning(null);
|
|
188
|
-
const viewport = await wccFrame.getViewportElement();
|
|
189
|
-
const demoTemplate = await resolveTemplateFactory(() => anonItem.demo());
|
|
190
|
-
render(demoTemplate, viewport);
|
|
191
|
-
}
|
|
192
|
-
}
|
|
193
|
-
buildUrl() {
|
|
194
|
-
const baseUrl = `/wcctools-route/${this.selectedType}/${this.selectedItemName}/${this.selectedViewport}/${this.selectedTheme}`;
|
|
195
|
-
const queryParams = new URLSearchParams();
|
|
196
|
-
if (this.frameScrollY > 0) {
|
|
197
|
-
queryParams.set('frameScrollY', this.frameScrollY.toString());
|
|
198
|
-
}
|
|
199
|
-
if (this.sidebarScrollY > 0) {
|
|
200
|
-
queryParams.set('sidebarScrollY', this.sidebarScrollY.toString());
|
|
201
|
-
}
|
|
202
|
-
const queryString = queryParams.toString();
|
|
203
|
-
const fullUrl = queryString ? `${baseUrl}?${queryString}` : baseUrl;
|
|
204
|
-
this.domtools.router.pushUrl(fullUrl);
|
|
205
|
-
}
|
|
206
|
-
async setupScrollListeners() {
|
|
207
|
-
// Prevent duplicate listeners
|
|
208
|
-
if (this.scrollListenersAttached) {
|
|
209
|
-
return;
|
|
210
|
-
}
|
|
211
|
-
const wccFrame = await this.wccFrame;
|
|
212
|
-
const wccSidebar = this.shadowRoot.querySelector('wcc-sidebar');
|
|
213
|
-
if (wccFrame) {
|
|
214
|
-
// The frame element itself is the scrollable container
|
|
215
|
-
wccFrame.addEventListener('scroll', () => {
|
|
216
|
-
this.frameScrollY = wccFrame.scrollTop;
|
|
217
|
-
this.debouncedScrollUpdate();
|
|
218
|
-
});
|
|
219
|
-
this.scrollListenersAttached = true;
|
|
220
|
-
}
|
|
221
|
-
if (wccSidebar) {
|
|
222
|
-
// The sidebar element itself is the scrollable container
|
|
223
|
-
wccSidebar.addEventListener('scroll', () => {
|
|
224
|
-
this.sidebarScrollY = wccSidebar.scrollTop;
|
|
225
|
-
this.debouncedScrollUpdate();
|
|
226
|
-
});
|
|
227
|
-
}
|
|
228
|
-
}
|
|
229
|
-
debouncedScrollUpdate() {
|
|
230
|
-
clearTimeout(this.scrollUpdateTimeout);
|
|
231
|
-
this.scrollUpdateTimeout = setTimeout(() => {
|
|
232
|
-
this.updateUrlWithScrollState();
|
|
233
|
-
}, 300);
|
|
234
|
-
}
|
|
235
|
-
updateUrlWithScrollState() {
|
|
236
|
-
const baseUrl = `/wcctools-route/${this.selectedType}/${this.selectedItemName}/${this.selectedViewport}/${this.selectedTheme}`;
|
|
237
|
-
const queryParams = new URLSearchParams();
|
|
238
|
-
if (this.frameScrollY > 0) {
|
|
239
|
-
queryParams.set('frameScrollY', this.frameScrollY.toString());
|
|
240
|
-
}
|
|
241
|
-
if (this.sidebarScrollY > 0) {
|
|
242
|
-
queryParams.set('sidebarScrollY', this.sidebarScrollY.toString());
|
|
243
394
|
}
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
async applyScrollPositions() {
|
|
250
|
-
// Only apply scroll positions once to avoid interfering with user scrolling
|
|
251
|
-
if (this.scrollPositionsApplied) {
|
|
252
|
-
return;
|
|
395
|
+
debouncedScrollUpdate() {
|
|
396
|
+
clearTimeout(this.scrollUpdateTimeout);
|
|
397
|
+
this.scrollUpdateTimeout = setTimeout(() => {
|
|
398
|
+
this.updateUrlWithScrollState();
|
|
399
|
+
}, 300);
|
|
253
400
|
}
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
401
|
+
updateUrlWithScrollState() {
|
|
402
|
+
const baseUrl = `/wcctools-route/${this.selectedType}/${this.selectedItemName}/${this.selectedDemoIndex}/${this.selectedViewport}/${this.selectedTheme}`;
|
|
403
|
+
const queryParams = new URLSearchParams();
|
|
404
|
+
if (this.frameScrollY > 0) {
|
|
405
|
+
queryParams.set('frameScrollY', this.frameScrollY.toString());
|
|
406
|
+
}
|
|
407
|
+
if (this.sidebarScrollY > 0) {
|
|
408
|
+
queryParams.set('sidebarScrollY', this.sidebarScrollY.toString());
|
|
409
|
+
}
|
|
410
|
+
const queryString = queryParams.toString();
|
|
411
|
+
const fullUrl = queryString ? `${baseUrl}?${queryString}` : baseUrl;
|
|
412
|
+
// Use replaceState to update URL without navigation
|
|
413
|
+
window.history.replaceState(null, '', fullUrl);
|
|
259
414
|
}
|
|
260
|
-
|
|
261
|
-
//
|
|
262
|
-
|
|
415
|
+
async applyScrollPositions() {
|
|
416
|
+
// Only apply scroll positions once to avoid interfering with user scrolling
|
|
417
|
+
if (this.scrollPositionsApplied) {
|
|
418
|
+
return;
|
|
419
|
+
}
|
|
420
|
+
const wccFrame = await this.wccFrame;
|
|
421
|
+
const wccSidebar = this.shadowRoot.querySelector('wcc-sidebar');
|
|
422
|
+
if (wccFrame && this.frameScrollY > 0) {
|
|
423
|
+
// The frame element itself is the scrollable container
|
|
424
|
+
wccFrame.scrollTop = this.frameScrollY;
|
|
425
|
+
}
|
|
426
|
+
if (wccSidebar && this.sidebarScrollY > 0) {
|
|
427
|
+
// The sidebar element itself is the scrollable container
|
|
428
|
+
wccSidebar.scrollTop = this.sidebarScrollY;
|
|
429
|
+
}
|
|
430
|
+
this.scrollPositionsApplied = true;
|
|
263
431
|
}
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
};
|
|
267
|
-
__decorate([
|
|
268
|
-
property(),
|
|
269
|
-
__metadata("design:type", String)
|
|
270
|
-
], WccDashboard.prototype, "selectedType", void 0);
|
|
271
|
-
__decorate([
|
|
272
|
-
property(),
|
|
273
|
-
__metadata("design:type", String)
|
|
274
|
-
], WccDashboard.prototype, "selectedItemName", void 0);
|
|
275
|
-
__decorate([
|
|
276
|
-
property(),
|
|
277
|
-
__metadata("design:type", Object)
|
|
278
|
-
], WccDashboard.prototype, "selectedItem", void 0);
|
|
279
|
-
__decorate([
|
|
280
|
-
property(),
|
|
281
|
-
__metadata("design:type", String)
|
|
282
|
-
], WccDashboard.prototype, "selectedViewport", void 0);
|
|
283
|
-
__decorate([
|
|
284
|
-
property(),
|
|
285
|
-
__metadata("design:type", String)
|
|
286
|
-
], WccDashboard.prototype, "selectedTheme", void 0);
|
|
287
|
-
__decorate([
|
|
288
|
-
property(),
|
|
289
|
-
__metadata("design:type", Boolean)
|
|
290
|
-
], WccDashboard.prototype, "isFullscreen", void 0);
|
|
291
|
-
__decorate([
|
|
292
|
-
property(),
|
|
293
|
-
__metadata("design:type", Object)
|
|
294
|
-
], WccDashboard.prototype, "pages", void 0);
|
|
295
|
-
__decorate([
|
|
296
|
-
property(),
|
|
297
|
-
__metadata("design:type", Object)
|
|
298
|
-
], WccDashboard.prototype, "elements", void 0);
|
|
299
|
-
__decorate([
|
|
300
|
-
property(),
|
|
301
|
-
__metadata("design:type", String)
|
|
302
|
-
], WccDashboard.prototype, "warning", void 0);
|
|
303
|
-
__decorate([
|
|
304
|
-
queryAsync('wcc-frame'),
|
|
305
|
-
__metadata("design:type", Promise)
|
|
306
|
-
], WccDashboard.prototype, "wccFrame", void 0);
|
|
307
|
-
WccDashboard = __decorate([
|
|
308
|
-
customElement('wcc-dashboard'),
|
|
309
|
-
__metadata("design:paramtypes", [Object, Object])
|
|
310
|
-
], WccDashboard);
|
|
432
|
+
};
|
|
433
|
+
return WccDashboard = _classThis;
|
|
434
|
+
})();
|
|
311
435
|
export { WccDashboard };
|
|
312
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2NjLWRhc2hib2FyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzX3dlYi9lbGVtZW50cy93Y2MtZGFzaGJvYXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxhQUFhLEVBQXVCLFVBQVUsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDNUksT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFHL0QsT0FBTyxLQUFLLE9BQU8sTUFBTSx3QkFBd0IsQ0FBQztBQUVsRCxZQUFZO0FBQ1osT0FBTyxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLGtCQUFrQixDQUFDO0FBQzFCLE9BQU8scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUFlLE1BQU0scUJBQXFCLENBQUM7QUFDbEQsT0FBTyxFQUFxQixNQUFNLGtCQUFrQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHbkMsSUFBTSxZQUFZLEdBQWxCLE1BQU0sWUFBYSxTQUFRLFdBQVc7SUFvQzNDLFlBQ0UsV0FBNEMsRUFDNUMsUUFBMkM7UUFFM0MsS0FBSyxFQUFFLENBQUM7UUE1QkgscUJBQWdCLEdBQStDLFNBQVMsQ0FBQztRQUd6RSxrQkFBYSxHQUFXLE1BQU0sQ0FBQztRQUcvQixpQkFBWSxHQUFZLEtBQUssQ0FBQztRQUc5QixVQUFLLEdBQXFDLEVBQUUsQ0FBQztRQUc3QyxhQUFRLEdBQW1DLEVBQUUsQ0FBQztRQUc5QyxZQUFPLEdBQVcsSUFBSSxDQUFDO1FBRXRCLGlCQUFZLEdBQVcsQ0FBQyxDQUFDO1FBQ3pCLG1CQUFjLEdBQVcsQ0FBQyxDQUFDO1FBQzNCLDJCQUFzQixHQUFZLEtBQUssQ0FBQztRQTRN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
|
|
436
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2NjLWRhc2hib2FyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzX3dlYi9lbGVtZW50cy93Y2MtZGFzaGJvYXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUF1QixVQUFVLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzVJLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxjQUFjLEVBQUUsWUFBWSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFHL0csT0FBTyxLQUFLLE9BQU8sTUFBTSx3QkFBd0IsQ0FBQztBQUVsRCxZQUFZO0FBQ1osT0FBTyxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLGtCQUFrQixDQUFDO0FBQzFCLE9BQU8scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUFlLE1BQU0scUJBQXFCLENBQUM7QUFDbEQsT0FBTyxFQUFxQixNQUFNLGtCQUFrQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7SUFHN0IsWUFBWTs0QkFEeEIsYUFBYSxDQUFDLGVBQWUsQ0FBQzs7OztzQkFDRyxXQUFXOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzRCQUFuQixTQUFRLFdBQVc7Ozs7d0NBRTFDLFFBQVEsRUFBRTs0Q0FHVixRQUFRLEVBQUU7d0NBR1YsUUFBUSxFQUFFOzZDQUdWLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQzs0Q0FHMUIsUUFBUSxFQUFFO3lDQUdWLFFBQVEsRUFBRTt3Q0FHVixRQUFRLEVBQUU7aUNBR1YsUUFBUSxFQUFFO29DQUdWLFFBQVEsRUFBRTttQ0FHVixRQUFRLEVBQUU7b0NBT1YsVUFBVSxDQUFDLFdBQVcsQ0FBQztZQWpDeEIseUxBQVMsWUFBWSw2QkFBWixZQUFZLG1HQUFlO1lBR3BDLHFNQUFTLGdCQUFnQiw2QkFBaEIsZ0JBQWdCLDJHQUFTO1lBR2xDLHlMQUFTLFlBQVksNkJBQVosWUFBWSxtR0FBaUM7WUFHdEQsd01BQVMsaUJBQWlCLDZCQUFqQixpQkFBaUIsNkdBQWE7WUFHdkMscU1BQVMsZ0JBQWdCLDZCQUFoQixnQkFBZ0IsMkdBQXlEO1lBR2xGLDRMQUFTLGFBQWEsNkJBQWIsYUFBYSxxR0FBa0I7WUFHeEMseUxBQVMsWUFBWSw2QkFBWixZQUFZLG1HQUFrQjtZQUd2QyxvS0FBUyxLQUFLLDZCQUFMLEtBQUsscUZBQXdDO1lBR3RELDZLQUFTLFFBQVEsNkJBQVIsUUFBUSwyRkFBc0M7WUFHdkQsMEtBQVMsT0FBTyw2QkFBUCxPQUFPLHlGQUFnQjtZQU9oQyw2S0FBUyxRQUFRLDZCQUFSLFFBQVEsMkZBQW9CO1lBckN2Qyw2S0FrWEM7OztZQWxYWSx1REFBWTs7UUFHdkIsNkZBQW9DO1FBQXBDLElBQVMsWUFBWSxrREFBZTtRQUFwQyxJQUFTLFlBQVksd0RBQWU7UUFHcEMsaUtBQWtDO1FBQWxDLElBQVMsZ0JBQWdCLHNEQUFTO1FBQWxDLElBQVMsZ0JBQWdCLDREQUFTO1FBR2xDLDZKQUFzRDtRQUF0RCxJQUFTLFlBQVksa0RBQWlDO1FBQXRELElBQVMsWUFBWSx3REFBaUM7UUFHdEQsMEpBQXFDLENBQUMsR0FBQztRQUF2QyxJQUFTLGlCQUFpQix1REFBYTtRQUF2QyxJQUFTLGlCQUFpQiw2REFBYTtRQUd2Qyw2SkFBd0UsU0FBUyxHQUFDO1FBQWxGLElBQVMsZ0JBQWdCLHNEQUF5RDtRQUFsRixJQUFTLGdCQUFnQiw0REFBeUQ7UUFHbEYsc0pBQWlDLE1BQU0sR0FBQztRQUF4QyxJQUFTLGFBQWEsbURBQWtCO1FBQXhDLElBQVMsYUFBYSx5REFBa0I7UUFHeEMsaUpBQWlDLEtBQUssR0FBQztRQUF2QyxJQUFTLFlBQVksa0RBQWtCO1FBQXZDLElBQVMsWUFBWSx3REFBa0I7UUFHdkMsa0lBQW1ELEVBQUUsR0FBQztRQUF0RCxJQUFTLEtBQUssMkNBQXdDO1FBQXRELElBQVMsS0FBSyxpREFBd0M7UUFHdEQsaUlBQW9ELEVBQUUsR0FBQztRQUF2RCxJQUFTLFFBQVEsOENBQXNDO1FBQXZELElBQVMsUUFBUSxvREFBc0M7UUFHdkQsa0lBQTJCLElBQUksR0FBQztRQUFoQyxJQUFTLE9BQU8sNkNBQWdCO1FBQWhDLElBQVMsT0FBTyxtREFBZ0I7UUFFeEIsWUFBWSx5REFBVyxDQUFDLEVBQUM7UUFDekIsY0FBYyxHQUFXLENBQUMsQ0FBQztRQUMzQixzQkFBc0IsR0FBWSxLQUFLLENBQUM7UUFHaEQscUZBQXFDO1FBQXJDLElBQVMsUUFBUSw4Q0FBb0I7UUFBckMsSUFBUyxRQUFRLG9EQUFvQjtRQUVyQyxZQUNFLFdBQTRDLEVBQzVDLFFBQTJDO1lBRTNDLEtBQUssRUFBRSxDQUFDO1lBQ1IsSUFBSSxXQUFXLEVBQUUsQ0FBQztnQkFDaEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxXQUFXLENBQUM7Z0JBQzVCLE9BQU8sQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUM7Z0JBQzdCLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzdCLENBQUM7WUFFRCxJQUFJLFFBQVEsRUFBRSxDQUFDO2dCQUNiLElBQUksQ0FBQyxLQUFLLEdBQUcsUUFBUSxDQUFDO1lBQ3hCLENBQUM7UUFDSCxDQUFDO1FBRU0sTUFBTTtZQUNYLE9BQU8sSUFBSSxDQUFBOzs7Ozs7Ozs7Ozs7d0JBWVMsSUFBSTt3QkFDSixJQUFJLENBQUMsWUFBWTt3QkFDakIsSUFBSSxDQUFDLFlBQVk7d0JBQ2pCLENBQUMsUUFBUSxFQUFFLEVBQUU7Z0JBQzNCLElBQUksQ0FBQyxZQUFZLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQztZQUN0QyxDQUFDOzRCQUNtQixDQUFDLFFBQVEsRUFBRSxFQUFFO2dCQUMvQixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQztZQUMxQyxDQUFDO3dCQUNlLENBQUMsUUFBUSxFQUFFLEVBQUU7Z0JBQzNCLElBQUksQ0FBQyxZQUFZLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQztZQUN0QyxDQUFDOzs7d0JBR2UsSUFBSTtvQkFDUixJQUFJLENBQUMsT0FBTzt3QkFDUixJQUFJLENBQUMsWUFBWTs0QkFDYixJQUFJLENBQUMsZ0JBQWdCO3lCQUN4QixJQUFJLENBQUMsYUFBYTt3QkFDbkIsSUFBSSxDQUFDLFlBQVk7NEJBQ2IsQ0FBQyxRQUFRLEVBQUUsRUFBRTtnQkFDL0IsSUFBSSxDQUFDLGdCQUFnQixHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUM7Z0JBQ3hDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN4QixDQUFDO3lCQUNnQixDQUFDLFFBQVEsRUFBRSxFQUFFO2dCQUM1QixJQUFJLENBQUMsYUFBYSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUM7WUFDdkMsQ0FBQzs4QkFDcUIsS0FBSyxFQUFFLFFBQVEsRUFBRSxFQUFFO2dCQUN2QyxNQUFNLEtBQUssR0FBRyxNQUFNLElBQUksQ0FBQyxRQUFRLENBQUM7Z0JBQ2xDLElBQUksS0FBSyxFQUFFLENBQUM7b0JBQ1YsS0FBSyxDQUFDLGtCQUFrQixHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDO29CQUNsRCxLQUFLLENBQUMsYUFBYSxFQUFFLENBQUM7Z0JBQ3hCLENBQUM7WUFDSCxDQUFDOzRCQUNtQixHQUFHLEVBQUU7Z0JBQ3ZCLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQzFCLENBQUM7OzBDQUVpQyxJQUFJLENBQUMsZ0JBQWdCLGtCQUFrQixJQUFJLENBQUMsWUFBWTs7S0FFN0YsQ0FBQztRQUNKLENBQUM7UUFFTSxVQUFVLENBQUMsY0FBc0I7WUFDdEMsSUFBSSxJQUFJLENBQUMsT0FBTyxLQUFLLGNBQWMsRUFBRSxDQUFDO2dCQUNwQyxPQUFPLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDO2dCQUM1QixJQUFJLENBQUMsT0FBTyxHQUFHLGNBQWMsQ0FBQztnQkFDOUIsVUFBVSxDQUFDLEdBQUcsRUFBRTtvQkFDZCxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7Z0JBQ3hCLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNSLENBQUM7UUFDSCxDQUFDO1FBRU0sZ0JBQWdCO1lBQ3JCLElBQUksQ0FBQyxZQUFZLEdBQUcsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDO1FBQ3pDLENBQUM7UUFFTSxLQUFLLENBQUMsWUFBWTtZQUN2QixJQUFJLENBQUMsUUFBUSxHQUFHLE1BQU0sT0FBTyxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsYUFBYSxFQUFFLENBQUM7WUFFcEUsMENBQTBDO1lBQzFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRTtnQkFDN0MsSUFBSSxLQUFLLENBQUMsR0FBRyxLQUFLLFFBQVEsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7b0JBQ2hELElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO2dCQUM1QixDQUFDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7WUFFSCw2Q0FBNkM7WUFDN0MsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDZCxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztZQUM5QixDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFFUixxQ0FBcUM7WUFDckMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUNyQixpRUFBaUUsRUFDakUsS0FBSyxFQUFFLFNBQVMsRUFBRSxFQUFFO2dCQUNsQixJQUFJLENBQUMsWUFBWSxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUMsUUFBd0IsQ0FBQztnQkFDOUQsSUFBSSxDQUFDLGdCQUFnQixHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDO2dCQUNsRCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsUUFBUSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNuRSxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQyxRQUFpQyxDQUFDO2dCQUMzRSxJQUFJLENBQUMsYUFBYSxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUMsS0FBZSxDQUFDO2dCQUN0RCxJQUFJLFNBQVMsQ0FBQyxNQUFNLENBQUMsUUFBUSxLQUFLLFNBQVMsRUFBRSxDQUFDO29CQUM1QyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDL0QsQ0FBQztxQkFBTSxJQUFJLFNBQVMsQ0FBQyxNQUFNLENBQUMsUUFBUSxLQUFLLE1BQU0sRUFBRSxDQUFDO29CQUNoRCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDNUQsQ0FBQztnQkFFRCxpREFBaUQ7Z0JBQ2pELElBQUksU0FBUyxDQUFDLFdBQVcsRUFBRSxDQUFDO29CQUMxQixNQUFNLFlBQVksR0FBRyxTQUFTLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQztvQkFDeEQsTUFBTSxjQUFjLEdBQUcsU0FBUyxDQUFDLFdBQVcsQ0FBQyxjQUFjLENBQUM7b0JBRTVELElBQUksWUFBWSxFQUFFLENBQUM7d0JBQ2pCLElBQUksQ0FBQyxZQUFZLEdBQUcsUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDO29CQUM3QyxDQUFDO29CQUNELElBQUksY0FBYyxFQUFFLENBQUM7d0JBQ25CLElBQUksQ0FBQyxjQUFjLEdBQUcsUUFBUSxDQUFDLGNBQWMsQ0FBQyxDQUFDO29CQUNqRCxDQUFDO29CQUVELG9FQUFvRTtvQkFDcEUsVUFBVSxDQUFDLEdBQUcsRUFBRTt3QkFDZCxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztvQkFDOUIsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO2dCQUNWLENBQUM7Z0JBRUQsTUFBTSxnQkFBZ0IsR0FBRyxNQUFNLE9BQU8sQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUN6RSxJQUFJLENBQUMsYUFBYSxLQUFLLFFBQVE7b0JBQzdCLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFO29CQUMxQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzdDLENBQUMsQ0FDRixDQUFDO1lBRUYsZ0VBQWdFO1lBQ2hFLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FDckIsc0RBQXNELEVBQ3RELEtBQUssRUFBRSxTQUFTLEVBQUUsRUFBRTtnQkFDbEIsSUFBSSxDQUFDLFlBQVksR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDLFFBQXdCLENBQUM7Z0JBQzlELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQztnQkFDbEQsSUFBSSxDQUFDLGlCQUFpQixHQUFHLENBQUMsQ0FBQyxDQUFDLHdCQUF3QjtnQkFDcEQsSUFBSSxDQUFDLGdCQUFnQixHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUMsUUFBaUMsQ0FBQztnQkFDM0UsSUFBSSxDQUFDLGFBQWEsR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDLEtBQWUsQ0FBQztnQkFDdEQsSUFBSSxTQUFTLENBQUMsTUFBTSxDQUFDLFFBQVEsS0FBSyxTQUFTLEVBQUUsQ0FBQztvQkFDNUMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQy9ELENBQUM7cUJBQU0sSUFBSSxTQUFTLENBQUMsTUFBTSxDQUFDLFFBQVEsS0FBSyxNQUFNLEVBQUUsQ0FBQztvQkFDaEQsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQzVELENBQUM7Z0JBRUQsaURBQWlEO2dCQUNqRCxJQUFJLFNBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztvQkFDMUIsTUFBTSxZQUFZLEdBQUcsU0FBUyxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUM7b0JBQ3hELE1BQU0sY0FBYyxHQUFHLFNBQVMsQ0FBQyxXQUFXLENBQUMsY0FBYyxDQUFDO29CQUU1RCxJQUFJLFlBQVksRUFBRSxDQUFDO3dCQUNqQixJQUFJLENBQUMsWUFBWSxHQUFHLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQztvQkFDN0MsQ0FBQztvQkFDRCxJQUFJLGNBQWMsRUFBRSxDQUFDO3dCQUNuQixJQUFJLENBQUMsY0FBYyxHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUMsQ0FBQztvQkFDakQsQ0FBQztvQkFFRCxvRUFBb0U7b0JBQ3BFLFVBQVUsQ0FBQyxHQUFHLEVBQUU7d0JBQ2QsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7b0JBQzlCLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztnQkFDVixDQUFDO2dCQUVELE1BQU0sZ0JBQWdCLEdBQUcsTUFBTSxPQUFPLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDekUsSUFBSSxDQUFDLGFBQWEsS0FBSyxRQUFRO29CQUM3QixDQUFDLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRTtvQkFDMUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUM3QyxDQUFDLENBQ0YsQ0FBQztRQUNKLENBQUM7UUFFTSxLQUFLLENBQUMsT0FBTyxDQUFDLG9CQUFzQztZQUN6RCxJQUFJLENBQUMsUUFBUSxHQUFHLE1BQU0sT0FBTyxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDcEUsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQy9DLE1BQU0sUUFBUSxHQUFhLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBRXRFLElBQUksb0JBQW9CLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FBQztnQkFDakQsUUFBUSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7WUFDekMsQ0FBQztZQUFBLENBQUM7WUFFRixJQUFJLElBQUksQ0FBQyxZQUFZLEtBQUssTUFBTSxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztnQkFDdEQsSUFBSSxPQUFPLElBQUksQ0FBQyxZQUFZLEtBQUssVUFBVSxFQUFFLENBQUM7b0JBQzVDLE9BQU8sQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztvQkFDOUIsTUFBTSxRQUFRLEdBQUcsTUFBTSxRQUFRLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztvQkFDckQsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFlBQWdDLENBQUM7b0JBQzFELE1BQU0sWUFBWSxHQUFHLE1BQU0sc0JBQXNCLENBQUMsV0FBVyxDQUFDLENBQUM7b0JBQy9ELE1BQU0sQ0FBQyxZQUFZLEVBQUUsUUFBUSxDQUFDLENBQUM7b0JBQy9CLE9BQU8sQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztnQkFDaEMsQ0FBQztxQkFBTSxDQUFDO29CQUNOLE9BQU8sQ0FBQyxLQUFLLENBQUMsa0NBQWtDLENBQUMsQ0FBQztvQkFDbEQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7Z0JBQ2pDLENBQUM7WUFDSCxDQUFDO2lCQUFNLElBQUksSUFBSSxDQUFDLFlBQVksS0FBSyxTQUFTLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO2dCQUNoRSxPQUFPLENBQUMsR0FBRyxDQUFDLG1CQUFtQixDQUFDLENBQUM7Z0JBQ2pDLE1BQU0sUUFBUSxHQUFRLElBQUksQ0FBQyxZQUFZLENBQUM7Z0JBQ3hDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7b0JBQ25CLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxRQUFRLENBQUMsSUFBSSxtQ0FBbUMsQ0FBQyxDQUFDO29CQUMvRSxPQUFPO2dCQUNULENBQUM7Z0JBRUQsaUVBQWlFO2dCQUNqRSxNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDN0MsTUFBTSxVQUFVLEdBQUcsT0FBTyxRQUFRLENBQUMsSUFBSSxLQUFLLFVBQVUsQ0FBQztnQkFFdkQsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO29CQUM1QixJQUFJLENBQUMsVUFBVSxDQUNiLGFBQWEsUUFBUSxDQUFDLElBQUksb0VBQW9FLENBQy9GLENBQUM7b0JBQ0YsT0FBTztnQkFDVCxDQUFDO2dCQUVELGtDQUFrQztnQkFDbEMsTUFBTSxXQUFXLEdBQUcsY0FBYyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7Z0JBQzFFLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztvQkFDakIsSUFBSSxDQUFDLFVBQVUsQ0FDYixhQUFhLFFBQVEsQ0FBQyxJQUFJLGtDQUFrQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsQ0FBQyxFQUFFLENBQ3pGLENBQUM7b0JBQ0YsT0FBTztnQkFDVCxDQUFDO2dCQUVELElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3RCLE1BQU0sUUFBUSxHQUFHLE1BQU0sUUFBUSxDQUFDLGtCQUFrQixFQUFFLENBQUM7Z0JBQ3JELE1BQU0sWUFBWSxHQUFHLE1BQU0sc0JBQXNCLENBQUMsV0FBVyxDQUFDLENBQUM7Z0JBQy9ELE1BQU0sQ0FBQyxZQUFZLEVBQUUsUUFBUSxDQUFDLENBQUM7WUFDakMsQ0FBQztRQUNILENBQUM7UUFFTSxRQUFRO1lBQ2IsTUFBTSxPQUFPLEdBQUcsbUJBQW1CLElBQUksQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLGdCQUFnQixJQUFJLElBQUksQ0FBQyxpQkFBaUIsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3pKLE1BQU0sV0FBVyxHQUFHLElBQUksZUFBZSxFQUFFLENBQUM7WUFFMUMsSUFBSSxJQUFJLENBQUMsWUFBWSxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUMxQixXQUFXLENBQUMsR0FBRyxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7WUFDaEUsQ0FBQztZQUNELElBQUksSUFBSSxDQUFDLGNBQWMsR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDNUIsV0FBVyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7WUFDcEUsQ0FBQztZQUVELE1BQU0sV0FBVyxHQUFHLFdBQVcsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUMzQyxNQUFNLE9BQU8sR0FBRyxXQUFXLENBQUMsQ0FBQyxDQUFDLEdBQUcsT0FBTyxJQUFJLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7WUFFcEUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3hDLENBQUM7UUFFTyxtQkFBbUIsd0RBQWlCO1FBQ3BDLHVCQUF1QixHQUFZLEtBQUssQ0FBQztRQUUxQyxLQUFLLENBQUMsb0JBQW9CO1lBQy9CLDhCQUE4QjtZQUM5QixJQUFJLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO2dCQUNqQyxPQUFPO1lBQ1QsQ0FBQztZQUVELE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQztZQUNyQyxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUVoRSxJQUFJLFFBQVEsRUFBRSxDQUFDO2dCQUNiLHVEQUF1RDtnQkFDdkQsUUFBUSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxHQUFHLEVBQUU7b0JBQ3ZDLElBQUksQ0FBQyxZQUFZLEdBQUcsUUFBUSxDQUFDLFNBQVMsQ0FBQztvQkFDdkMsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7Z0JBQy9CLENBQUMsQ0FBQyxDQUFDO2dCQUNILElBQUksQ0FBQyx1QkFBdUIsR0FBRyxJQUFJLENBQUM7WUFDdEMsQ0FBQztZQUVELElBQUksVUFBVSxFQUFFLENBQUM7Z0JBQ2YseURBQXlEO2dCQUN6RCxVQUFVLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxFQUFFLEdBQUcsRUFBRTtvQkFDekMsSUFBSSxDQUFDLGNBQWMsR0FBRyxVQUFVLENBQUMsU0FBUyxDQUFDO29CQUMzQyxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztnQkFDL0IsQ0FBQyxDQUFDLENBQUM7WUFDTCxDQUFDO1FBQ0gsQ0FBQztRQUVPLHFCQUFxQjtZQUMzQixZQUFZLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUM7WUFDdkMsSUFBSSxDQUFDLG1CQUFtQixHQUFHLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ3pDLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO1lBQ2xDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUNWLENBQUM7UUFFTyx3QkFBd0I7WUFDOUIsTUFBTSxPQUFPLEdBQUcsbUJBQW1CLElBQUksQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLGdCQUFnQixJQUFJLElBQUksQ0FBQyxpQkFBaUIsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3pKLE1BQU0sV0FBVyxHQUFHLElBQUksZUFBZSxFQUFFLENBQUM7WUFFMUMsSUFBSSxJQUFJLENBQUMsWUFBWSxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUMxQixXQUFXLENBQUMsR0FBRyxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7WUFDaEUsQ0FBQztZQUNELElBQUksSUFBSSxDQUFDLGNBQWMsR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDNUIsV0FBVyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7WUFDcEUsQ0FBQztZQUVELE1BQU0sV0FBVyxHQUFHLFdBQVcsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUMzQyxNQUFNLE9BQU8sR0FBRyxXQUFXLENBQUMsQ0FBQyxDQUFDLEdBQUcsT0FBTyxJQUFJLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7WUFFcEUsb0RBQW9EO1lBQ3BELE1BQU0sQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDakQsQ0FBQztRQUVNLEtBQUssQ0FBQyxvQkFBb0I7WUFDL0IsNEVBQTRFO1lBQzVFLElBQUksSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7Z0JBQ2hDLE9BQU87WUFDVCxDQUFDO1lBRUQsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDO1lBQ3JDLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBRWhFLElBQUksUUFBUSxJQUFJLElBQUksQ0FBQyxZQUFZLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQ3RDLHVEQUF1RDtnQkFDdkQsUUFBUSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDO1lBQ3pDLENBQUM7WUFFRCxJQUFJLFVBQVUsSUFBSSxJQUFJLENBQUMsY0FBYyxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUMxQyx5REFBeUQ7Z0JBQ3pELFVBQVUsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQztZQUM3QyxDQUFDO1lBRUQsSUFBSSxDQUFDLHNCQUFzQixHQUFHLElBQUksQ0FBQztRQUNyQyxDQUFDOzs7O1NBalhVLFlBQVkifQ==
|